- Вывод текста
- Программирование
- Оформление
- Расширенные возможности
- Нюансы написания игр под разные плееры
-
- x AeroQSP
- Утилиты и средства разработки
Это старая версия документа.
EXIT - завершение выполнения текущего кода (преждевременный выход из подпрограммы / обработчика какого-либо события…).
JUMP [$выражение] - переход в текущем коде (при обработке локации / выбора действия) на метку [$выражение]. Метка на локации обозначается как ":[название метки]". После описания метки (через "&") могут идти операторы. Если интерпретатор находит случайную метку, то он её просто игнорирует. Например:
jump 'КонеЦ'
p 'Это сообщение не будет выведено'
:конец
p 'А это сообщение пользователь увидит'
С помощью оператора "JUMP" можно организовывать циклы:
s=0
:loop
if s<9:
s=s+1
pl s
jump 'LOOP'
end
p 'Всё!'
Оператор "JUMP" также полезен во время отладки квеста, чтобы "обойти" группу операторов, которые временно не нужны.
GOSUB [$выражение],[параметр 1],[параметр 2], … или GS [$выражение],[параметр 1],[параметр 2], … - обработка локации с названием [$выражение]. Базовое описание локации добавляется к текущему описанию, базовые действия добавляются к текущим действиям, и происходит выполнение операторов в поле "Выполнить при посещении", затем возврат на исходную строку (продолжение выполнения программы).
Переданные параметры хранятся в массиве ARGS. После обработки локации предыдущие значения ARGS восстанавливаются. Примеры:
GS 'ход' - обработка локации "ход". Массив ARGS пуст.
GS $loc,1 - обработка локации, название которой хранится в $loc с передачей одного параметра. ARGS[0] равен 1.
GS 'ход',$var,2,'данные' - обработка локации "ход" с передачей 3-х параметров. $ARGS[0] равен значению $var, ARGS[1] равен 2, $ARGS[2] содержит строку "данные".
PS:
При обработке локаций по GOSUB, а также локаций, на которые указывают пункты пользовательского меню и системные переменные ($COUNTER, $USERCOM, $ONGLOAD, $ONGSAVE, $ONNEWLOC, $ONACTSEL, $ONOBJSEL, $ONOBJADD, $ONOBJDEL), учитываются базовые описания и действия на локациях (при отсутствии действий с такими же названиями - к текущим действиям добавляются базовые действия обрабатываемой локации, базовое описание локации добавляется к текущему основному описанию). Аналогично, при вызовах XGOTO, к текущему основному описанию добавляется базовое описание локации, на которую произошёл переход.
FUNC([$выражение],[параметр 1],[параметр 2], …) - обработка локации с названием [$выражение]. Указанные параметры передаются в массиве ARGS. Результат функции равен значению $RESULT при возврате строкового значения или RESULT при возврате числового значения. Если при обработке локации были установлены и RESULT, и $RESULT, то предпочтение отдаётся строковому значению. После обработки локации предыдущие значения ARGS и RESULT восстанавливаются. Примеры: PL 4 + FUNC('функция') - обработка локации "функция" как функции. Массив ARGS пуст. Результат передается через $RESULT или RESULT, в зависимости от кода обрабатываемой локации. PL FUNC($name, 1) * 78 - обработка локации с названием в $name как функции. ARGS[0] равен 1. MSG "text" + FUNC($name, "строка", 2) - обработка локации с названием в $name как функции. $ARGS[0] содержит строку "строка", ARGS[1] равен 2.