Инструменты пользователя

Инструменты сайта


help:modules

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Both sides previous revision Предыдущая версия
Следущая версия
Предыдущая версия
help:modules [2013/11/09 10:56]
newsash
help:modules [2024/10/14 12:46] (текущий)
aleks_versus
Строка 1: Строка 1:
 [[help:​inputs|Назад:​ Ввод текста игроком]] [[help:​inputs|Назад:​ Ввод текста игроком]]
-=====Работа с файлами,​ использование модулей===== 
  
-  * **OPENQST** //​[$путь]//​ - открытие и запуск заданного файла игры. +====== Работа с файлами игр, использование ​модулей ======
-    * При использовании данного оператора, не происходит удаления переменных,​ удаления предметов инвентаря,​ очистки дополнительного описания и строки ввода, а также остановки проигрываемых ​файлов (для этого в начале загружаемой игры можно выполнить "​KILLALL & CLS & CLOSE ALL"​). +
-  * **ADDQST** //​[$путь]//​ - из заданного файла ​игры добавляет все локацииназвания которых отсутствуют среди текущих игровых локаций. Загруженные локации ​полностью эквивалентны локациям из основного файла игры. +
-    * В более ​новых версиях библиотеки команда переименована в **ADDLIB**, затем в **INCLIB** +
-  * **KILLQST** - удаляет все локации,​ добавленные с помощью оператора //"​ADDQST"//​. +
-    * В более новых версиях библиотеки команда переименована в **DELLIB**, затем в **FREELIB**+
  
-====Сохранения====+**QSP** позволяет загружать в выполняемую ​игру другие файлы игр. Это можно сделать двумя способами:​
  
-  * **OPENGAME** //[$выражение]// - если //[$выражение]// равно ​""​ (пустая строка) или отсутствует, то вызов окна загрузки состояния игры, иначе ​загрузка ​состояния из указанного ​файла.  +  * Добавить локации из другой игры к списку локаций текущей игры. 
-    * См. также [[help:​service_locations|$ONGLOAD]]+  * Заменить локации текущей игры локациями из другой игры. 
-  * **SAVEGAME** //[$выражение]// - если ​//[$выражение]// равно ​""​ (пустая строкаили отсутствует, то вызов окна сохранения состояния игрыиначе сохранение состояния ​в указанный файл.  + 
-    * См. также [[help:service_locations|$ONGSAVE]]+Первый способ обычно используется для ​того, чтобы разбить игру на несколько частей ​и работать над каждой частью отдельноа затем объединять эти части уже при ​запуске основного файла игры. Такнапример,​ можно создать различные наборы [[help:​organizing|пользовательских функций и процедур]] и повторно использовать их в разных играх. 
-  * **NOSAVE** - если значение переменной отлично от 0, то сохранение состояния игры пользователем невозможно+ 
-  ​* **DEBUG** - если значение переменной не равно 0, то отключается проверка идентификатора игры при загрузке состояния. +Конечно,​ такие наборы уже не являются самостоятельными играмихотя ​и представляют собой обычные QSP-файлы. Подобные,​ многократно используемые QSP-файлы принято называть **модулями** или **библиотеками**. 
-    ​Иначе при каждом изменении ​файла игры не поддерживаются предыдущие сохранения.+ 
 +(Ниже по тексту слово **библиотека** означает движок плеера **QSP**, а не подключаемые файлы QSP) 
 + 
 +Второй способ используется достаточно редко, ​и он позволяет объединить ​запуск различных игр из одного ​сеанса работы плеера. При этом во время сеанса сохраняются значения всех переменных,​ предметов и состояния всех окон, т.е. игрок не замечает, как одна игра подменяется другой
 + 
 +Для примера представьте,​ что вы пишете симулятор казино на **QSP**. В казино есть множество различных игр: рулетка, покер, блэкджек, кости и другие. И каждая такая игра у вас смоделирована в отдельном QSP-файле. И есть главный файл, из которого вы можете запустить любую из этих игр. Пока ​работает плеер, деньги, заработанные в любой ​из этих игр, могут использоваться также и в любой другой, благодаря ​томучто во всех отдельных играх они описываются одной и той же переменной ''​%%money%%''​. 
 + 
 +Ознакомьтесь с операторами,​ управляющими подключением файлов к игре, чтобы узнать,​ как на практике использовать оба способа. 
 + 
 +===== Операторы для работы с модулями ===== 
 + 
 +  * ''​%%INCLIB%%''​ — из указанного файла игры добавляет все локации,​ названия ​которых отсутствуют среди текущих игровых локаций. Загруженные локации полностью эквивалентны локациям из основного файла ​игры. Общая запись:​ <sxh qsp> 
 +INCLIB [$путь к файлу ​игры
 +</​sxh>​ Пример: <sxh qsp> 
 +inclib "​lib/​easy.math.qsp"​ 
 +inclib "​lib/​easy.title.qsp"​ 
 +inclib "​res/​drive.qsp"​ 
 +inclib "​res/​base.qsp"​ 
 +inclib "​res/​intro.qsp"​ 
 +</​sxh>​ **Обратите внимание!** Несмотря на то, что с применением оператора ''​%%INCLIB%%''​ увеличивается список доступных для использования ​локаций, сама запущенная игра не изменяется и не заменяетсяЭто позволяет запускать сохранения при отключенном режиме отладки (см. ''​**[[help:savegame|DEBUG]]**''​) даже в тех ​случаях, когда вы изменяете подключаемые к игре модули. То есть вы можете написать основной файл игры, включающий всего одну локацию,​ на которой ​подключаются все прочие модули, и сохранения от вашей игры будет ​невозможно запустить в других играх; однако при этом вы спокойно можете изменять все подключаемые к игре модули (например,​ если выпускаете патчи на игру)не боясь, что старые ​сохранения не запустятся с новыми версиями модулей. 
 +  * ''​%%FREELIB%%''​ — удаляет все локации, добавленные с помощью оператора ''​%%INCLIB%%''​. <sxh qsp> 
 +! удаляем все добавленные локации 
 +freelib 
 +</​sxh>​ 
 +  * ''​%%OPENQST%%''​ — открывает и запускает указанный файл ​игры. То есть в сеансе плеера ​полностью очищается весь список ​локаций,​ затем добавляются локации из указанной игры, и на самую первую из них осуществляется переход,​ как если бы этот переход осуществлялся с помощью ​оператора ''​**[[help:​goto|GOTO]]**''​. Общая запись: <sxh qsp> 
 +OPENQST [$путь] 
 +</​sxh>​ , где ''​%%[$путь]%%''​ — путь к файлу игры, которую требуется ​запустить. Пример:​ <sxh qsp> 
 +openqst "​gamespool/​cubesgame.qsp"​ 
 +</​sxh>​ При использовании данного оператора, ​не происходит удаления ​переменных, удаления предметов инвентаря, очистки дополнительного описания и строки вводаа также ​остановки проигрываемых файлов. Если вам нужно очистить экран и значения всех ​переменных,​ можно прописать ​в начале загружаемого файла игры такие команды: <sxh qsp> 
 +killall & cls & close all 
 +</​sxh>​ **Обратите внимание!** Загружаемая с помощью ''​%%OPENQST%%''​ игра — это совершенно другая игра, не та, из которой она была вызвана. Поэтому если вы из игры "​1" ​запустили игру ​"​2"​ и в игре "​2" ​сделали ​сохранение,​ это сохранение не получится запустить из игры "​1"​ при отключенном режиме отладки (см''​**[[help:​savegame|DEBUG]]**''​).\\ **Внимание!** Не путайте операторы ''​%%OPENQST%%'' ​и [[help:​savegame|''​OPENGAME''​]]. 
 + 
 +===== Список готовых ​авторских модулей ===== 
 + 
 +==== Olegus ==== 
 + 
 +  * [[https://​forum.ifiction.ru/​viewtopic.php?​id=1613|QSP:​Экран]] — модуль для управления отдельными HTML-областями на экране. 
 +  * [[https://​forum.ifiction.ru/​viewtopic.php?​id=1522|Модуль для работы с таблицами данных]] 
 +  * [[https://​forum.ifiction.ru/​viewtopic.php?​id=1527|Модуль для ​работы с меню]] — облегчает работу со всплывающими меню. 
 +  * [[https://​forum.ifiction.ru/​viewtopic.php?​id=1540|QSP:​Типограф]] — модуль ​для форматирования ​текста. 
 +  * [[https://​forum.ifiction.ru/​viewtopic.php?​id=1873|QSP:​Таймер]] — модуль для управления событиями по таймеру. 
 + 
 +==== Werewolf ==== 
 + 
 +  * [[https://​qsp.org/​index.php?​option=com_content&​id=71&​Itemid=56|Отладчик]] 
 +  * [[https://​qsp.org/​index.php?​option=com_content&​view=article&​id=79:​-10&​catid=36:​2009-02-19-06-11-21&​Itemid=76|Гибкий плейлист]] 
 + 
 +==== Ntropy ==== 
 + 
 +  * [[https://​qsp.org/​index.php?​option=com_content&​view=article&​id=70:​qsp-inventory-advanced-lib-076&​catid=36:​2009-02-19-06-11-21&​Itemid=76|Библиотечка,​ дополняющая инвентарь]] 
 + 
 +==== Aleks Versus ==== 
 + 
 +  * [[https://​github.com/​AleksVersus/​easy.math.3|Easy.Math]] — математический модуль, расширяющий возможности работы с числами. Вещественные числа, работа со строками и массивами и другие полезные функции. 
 + 
 +[[help:​savegame|Вперёд:​ Файлы сохранений]]
  
----- 
-[[help:​realtime|Вперёд:​ Реальное время]] 
help/modules.1383994587.txt.gz · Последние изменения: 2013/11/09 14:56 (внешнее изменение)