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

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


help:modules

Различия

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

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

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