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

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


Боковая панель

help:locations

Это старая версия документа.


Назад: Что такое QSP?

Локации

Локация - элементарная единица игрового мира. Это может быть пещера, дом, комната, улица, большой город или даже целая планета.

С точки зрения игрока он исследует игровой мир перемещаясь по локациям, но с точки зрения создателя игры понятие локации гораздо шире. В QSP локации — это отдельные блоки кода, и они могут использоваться не только для написания различных мест.

Возможные назначения локаций:

  • Игровые локации - локации, по которым ходит игрок, основа игрового мира. Такие локации можно разделить по назначению:
    • локации мест - локации, в которых описывается некоторый кусочек игрового мира. Комнаты, дома, города, пещеры, подземелья и т.д.
    • информационные локации - локации, на которых размещается информация об игре, своего рода страницы. Это могут быть: стартовый экран, страницы главного меню, страницы информации об авторе и об игре.
    • локации главы, параграфы, или разделы - локации, составляющие основу книг-игр. В книгах-играх игрок перемещается не столько по игровому миру, сколько между страницами интерактивной истории. Вот в такой роли и могут в данном случае выступать локации.
  • Служебные локации - локации, на которые игрок не может попасть, но которые необходимы для работы игры:
    • Локации-обработчики - локации, обрабатывающие определенные события в игре (переходы между локациями, таймер, выбор предмета и т.п.).
    • Локации-данные - иногда удобно хранить игровые тексты в отдельных переменных, а переменные - в отдельной локации, чтобы не захламлять код.
    • Локации-функции - в QSP есть возможность сделать локацию-функцию.
    • Локации с кодом - иногда удобно вынести часть кода в отдельную локацию. Чаще всего это код, который используется в нескольких локациях.

Вы сами определяете назначение локации, для плеера абсолютно все локации равнозначны.

Любая локация может состоять из трёх полей:

  • Базовое описание локации
  • Базовые действия локации
  • Код "Выполнить при посещении"

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

Поля Базовое описание локации и Базовые действия локации доступны для заполнения только в редакторе Quest Generator, если вы работаете в обычном текстовом редакторе, весь код пишется только для поля Выполнить при посещении.

Именование локаций

Имя локации в процессе игры не отображается и может быть любым. Вы сами решаете, как назвать вашу локацию и какие символы использовать для названия. Но есть общие рекомендации:

  • Имя локации должно соответствовать её смыслу - если локация описывает дом, то это может быть "Дом", "House", но никак не "Пещера".
  • Можно пользоваться префиксами в названии:
    • !название или $название - служебная локация (не с базой данных)
    • #название - служебная локация с базой данных
    • ^название - локация, вложенная в предыдущую. Например, названия локаций через запятую: Северная площадь, ^Магазин игрушек, ^^Продавец игрушек, ^Магазин оружия, ^^Мечи, ^^Булавы, ^^Оружейник.
      Подобная маркировка префиксами была актуальна для старых версий Quest Generator, в которых не было возможности распределять локации по папкам. Сейчас такая маркировка менее актуальна, так как названия без префиксов использовать намного удобнее, а в Quest Generator есть возможность размещать локации в отдельных папках.
  • Названия локаций из нескольких слов можно писать любым удобным способом, например:
    • Дом с трубой
    • Дом_с_трубой
    • ДомСТрубой
  • Регистр букв не важен: "домструбой", "ДОМСТРУБОЙ" и "ДомСТрубой" - одна и та же локация.
  • Если вы пишете локацию-функцию, рекомендуется использовать в названии только буквы, цифры, символ подчёркивания и точку. Остальные символы могут поломать работу кода при упрощённом (неявном) вызове таких локаций-функций.
  • Рекомендуется выбирать названия локаций не совпадающие с ключевыми словами QSP.

Команды для работы с локациями

Функции для обработки локаций

  • $CURLOC — данная функция возвращает название текущей ("активной") локации, т.е. локации на которой "находится" игрок. Пример:
    	*pl $curloc & ! выводим название текущей локации в Окно основного описания
    	*pl "Сколько раз перезашли: <<перезашёл>>"
    	act "Перезайти на текущую локацию":
    		перезашёл+=1
    		goto $curloc
    	end
    	

Порядок воспроизведения локаций

Автоматически при запуске игры воспроизводится только самая первая локация в игре, на все остальные локации нужно делать переходы, или вызывать их иным образом.

Так же, автоматически может выполняться код служебных локаций, отвечающих за обработку разных событий, и локации-счётчика.

Подробнее о порядке воспроизведения локаций смотри статью "Порядок работы интерпретатора".

Вперёд: Окно основного описания

help/locations.1725303180.txt.gz · Последние изменения: 2024/09/02 18:53 — aleks_versus