Перейти к основному содержимому

Назад: Ввод текста игроком

Работа с файлами игр, использование модулей

QSP позволяет загружать в выполняемую игру другие файлы игр. Это можно сделать двумя способами:

  • Добавить локации из другой игры к списку локаций текущей игры.
  • Заменить локации текущей игры локациями из другой игры.

Первый способ обычно используется для того, чтобы разбить игру на несколько частей и работать над каждой частью отдельно, а затем объединять эти части уже при запуске основного файла игры. Так, например, можно создать различные наборы пользовательских функций и процедур и повторно использовать их в разных играх.

Конечно, такие наборы уже не являются самостоятельными играми, хотя и представляют собой обычные QSP-файлы. Подобные, многократно используемые QSP-файлы принято называть модулями или библиотеками.

(Ниже по тексту слово библиотека означает движок плеера QSP, а не подключаемые файлы QSP)

Второй способ используется достаточно редко, и он позволяет объединить запуск различных игр из одного сеанса работы плеера. При этом во время сеанса сохраняются значения всех переменных, предметов и состояния всех окон, т.е. игрок не замечает, как одна игра подменяется другой.

Для примера представьте, что вы пишете симулятор казино на QSP. В казино есть множество различных игр: рулетка, покер, блэкджек, кости и другие. И каждая такая игра у вас смоделирована в отдельном QSP-файле. И есть главный файл, из которого вы можете запустить любую из этих игр. Пока работает плеер, деньги, заработанные в любой из этих игр, могут использоваться также и в любой другой, благодаря тому, что во всех отдельных играх они описываются одной и той же переменной money.

Ознакомьтесь с операторами, управляющими подключением файлов к игре, чтобы узнать, как на практике использовать оба способа.

Операторы для работы с модулями

  • INCLIB — из указанного файла игры добавляет все локации, названия которых отсутствуют среди текущих игровых локаций. Загруженные локации полностью эквивалентны локациям из основного файла игры. Общая запись:

    INCLIB [$путь к файлу игры]

    Пример:

    inclib "lib/easy.math.qsp"
    inclib "lib/easy.title.qsp"
    inclib "res/drive.qsp"
    inclib "res/base.qsp"
    inclib "res/intro.qsp"

    Обратите внимание! Несмотря на то, что с применением оператора INCLIB увеличивается список доступных для использования локаций, сама запущенная игра не изменяется и не заменяется. Это позволяет запускать сохранения при отключенном режиме отладки (см. DEBUG) даже в тех случаях, когда вы изменяете подключаемые к игре модули. То есть вы можете написать основной файл игры, включающий всего одну локацию, на которой подключаются все прочие модули, и сохранения от вашей игры будет невозможно запустить в других играх; однако при этом вы спокойно можете изменять все подключаемые к игре модули (например, если выпускаете патчи на игру), не боясь, что старые сохранения не запустятся с новыми версиями модулей.

  • FREELIB — удаляет все локации, добавленные с помощью оператора INCLIB.

    ! удаляем все добавленные локации
    freelib
  • OPENQST — открывает и запускает указанный файл игры. То есть в сеансе плеера полностью очищается весь список локаций, затем добавляются локации из указанной игры, и на самую первую из них осуществляется переход, как если бы этот переход осуществлялся с помощью оператора GOTO. Общая запись:

    OPENQST [$путь]

    , где [$путь] — путь к файлу игры, которую требуется запустить. Пример:

    openqst "gamespool/cubesgame.qsp"

    При использовании данного оператора, не происходит удаления переменных, удаления предметов инвентаря, очистки дополнительного описания и строки ввода, а также остановки проигрываемых файлов. Если вам нужно очистить экран и значения всех переменных, можно прописать в начале загружаемого файла игры такие команды:

    killall & cls & close all

    Обратите внимание! Загружаемая с помощью OPENQST игра — это совершенно другая игра, не та, из которой она была вызвана. Поэтому если вы из игры "1" запустили игру "2" и в игре "2" сделали сохранение, это сохранение не получится запустить из игры "1" при отключенном режиме отладки (см. DEBUG). Внимание! Не путайте операторы OPENQST и OPENGAME.

Список готовых авторских модулей

Olegus

Werewolf

Ntropy

Aleks Versus

  • Easy.Math — математический модуль, расширяющий возможности работы с числами. Вещественные числа, работа со строками и массивами и другие полезные функции.

Вперёд: Файлы сохранений