Skip to content

Системные переменные ​

Системные переменные предоставляют скрипту информацию о текущем контексте выполнения. Они автоматически инициализируются движком в момент срабатывания перехода и доступны для чтения внутри 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 — количество выполненных (принятых автором) критериев ответа.

Особенности использования ​

Если один и тот же скрипт используется в качестве действия для разных событий (например, привязан и к событию «Введен код уровня», и к событию «Закрылся уровень»), набор доступных переменных будет отличаться в зависимости от того, что именно вызвало скрипт.

В таких случаях перед обращением к специфичной переменной необходимо проверять её наличие:

javascript
// Проверка наличия переменной codeAlias перед использованием
if (typeof codeAlias !== 'undefined') {
  ctx.team.lastResolvedAlias = codeAlias;
}

// Проверка наличия переменной autoclose
if (typeof autoclose !== 'undefined' && autoclose === true) {
  ctx.team.timeouts += 1;
}