Содержание

Назад: Окно сообщений

Действия

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

Обычно действия отделены от основного описания и представляют собой ряд кликабельных кнопок. В QSP для размещения действий есть отдельное окно, оно так и называется Окно действий, или Список действий (в плеере просто: Действия).

С этим окном, в зависимости от нужд вашей игры, вы можете проделывать разные манипуляции. Вы можете:

В названиях действий не важен регистр букв, то есть "Пойти" и "поЙти" - одно и то же действие.

При создании действия, весь код, относящийся к действию, "прикрепляется" к этому действию, но не выполняется. Этот код будет выполнен только тогда, когда игрок нажмёт на действие (щёлкнет по нему мышью).

Команды для работы с Окном действий

Включение и выключение Окна действий

Команды для управления действиями

Команды очистки Окна действий

* CLS - эквивалентно конструкции "CLEAR & *CLEAR & CLA & CMDCLEAR", т.е. очищает все окна кроме списка предметов.

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

Событие "Выделение действия"

Когда вы наводите курсор мыши на действие, в классическом плеере это действие подсвечивается голубым цветом, и это означает, что действие выделено. При этом функция $SELACT, вызванная в любом месте игры, будет возвращать название такого выделенного действия.

Выделение действия — это событие, к которому вы можете привязать автоматическое выполнение кода. Делается это с помощью системной переменной $ONACTSEL:

Более подробная информация в разделе "Служебные локации".

Локальные переменные в действии

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

яблоки = 245

act "Наколдовать яблоки":
  local яблоки & ! объявляем локальную переменную
  яблоки = val($input('Сколько вам нужно яблок?'))
  яблоки_у_Миши += яблоки
  *pl "Наколдовано яблок: <<яблоки>>"
end

act "Сколько яблок на локации?":
  ! это действие работает с глобальной переменной
  *pl "Яблок на локации: <<яблоки>>"
end

Ограничения

Вперёд: Переходы