Системные переменные
Системные переменные предоставляют скрипту информацию о текущем контексте выполнения. Они автоматически инициализируются движком в момент срабатывания перехода и доступны для чтения внутри JavaScript-кода.
Общие переменные
Эти переменные доступны при выполнении любого скрипта, независимо от того, какое событие послужило триггером для перехода.
ctx— объект контекста, предоставляющий доступ к состоянию:ctx.team(командные переменные) иctx.game(глобальные переменные квеста).gameId— идентификатор текущей игры.teamId— идентификатор команды, для которой в данный момент выполняется скрипт.teams— массив идентификаторов всех команд, участвующих в игре.rivals— массив идентификаторов команд-соперников.
Переменные событий
Набор дополнительных переменных строго зависит от события, инициировавшего переход. Если скрипт вызван определенным событием, в его области видимости появляются соответствующие переменные.
Уровни
Событие: Закрылся уровень
levelId— идентификатор закрывшегося уровня.autoclose(boolean) — флаг, указывающий, закрылся ли уровень по таймауту (true) или по другой причине (false).
Коды
Событие: Введен код уровня (введенный текст подошёл)
code— текст, введённый игроком.codes— массив идентификаторов кодов, в которые прошёл введенный текст.codeAlias— текстовый алиас первого кода, в который прошёл текст.levelId— идентификатор уровня, на котором вводился код.
Событие: Введенный код не подошёл
code— текст, введённый игроком.levelId— идентификатор уровня, на котором вводился код.
Инфоблоки и взаимодействие
Событие: Открылся инфоблок
blockId— идентификатор открытого блока.levelId— идентификатор уровня.
Событие: Закрылся инфоблок
blockId— идентификатор закрытого блока.levelId— идентификатор уровня.
Событие: Нажата кнопка в блоке
buttonAlias— текстовый алиас нажатой кнопки.blockId— идентификатор блока, в котором находится кнопка.levelId— идентификатор уровня.
Событие: Сохранен свободный ответ в блоке
blockId— идентификатор блока, в котором сохранен ответ.
Событие: Автором проверены критерии ответа
blockId— идентификатор блока с проверяемым ответом.acceptedTermsCount— количество выполненных (принятых автором) критериев ответа.
Особенности использования
Если один и тот же скрипт используется в качестве действия для разных событий (например, привязан и к событию «Введен код уровня», и к событию «Закрылся уровень»), набор доступных переменных будет отличаться в зависимости от того, что именно вызвало скрипт.
В таких случаях перед обращением к специфичной переменной необходимо проверять её наличие:
// Проверка наличия переменной codeAlias перед использованием
if (typeof codeAlias !== 'undefined') {
ctx.team.lastResolvedAlias = codeAlias;
}
// Проверка наличия переменной autoclose
if (typeof autoclose !== 'undefined' && autoclose === true) {
ctx.team.timeouts += 1;
}