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

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


help:transitions

Различия

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

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

Both sides previous revision Предыдущая версия
help:transitions [2013/10/31 09:38]
newsash удалено
— (текущий)
Строка 1: Строка 1:
-=====Переходы===== 
- 
-Переименовать в что-нибудь вида "​упорядочивание кода"​ 
- 
-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. 
  
help/transitions.1383212317.txt.gz · Последние изменения: 2013/10/31 13:38 (внешнее изменение)