Действие — Задать временную переменную

Наглядный пример использования действия смотрите на видео:

Наглядный пример использования действия

Назначение

Главная цель этого действия — сократить нагрузку на Автопилот во время выполнения команды. Некоторые динамические переменные (такие как {get}000{/get}, {level}000{/level} и т. п.) в силу своих особенностей обращаются к базе данных Автопилота при КАЖДОМ использовании. А каждое обращение, ясное дело занимает время (подключиться, достать, обработать).

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

Второй не менее важный момент — удобство. Намного удобнее и нагляднее будет такая конструкция {math}%res% + 1{/math}, нежели такая:
{math}{get}Ресурс 1|name|body{/get} + 1{/math}.

Настройка

Создание данного блока находится в не совсем обычном месте (не рядом с другими действиями):

Как создать блок
Как создать блок

Сам блок действия имеет всего 2 параметра:

  • 1) Название переменной. Оно должно содержать только латинские буквы нижнего регистра (маленькие), цифры или нижние подчеркивания. А также начинаться и заканчиваться символом %. Остальные символы будут удалены при сохранении (что сохранилось можно увидеть после переоткрытия команды).
  • 2) Значение переменной. Здесь можно писать практически любой текст. Поддерживаются переменные. Ограничение по размеру — 4000 символов.
Пример настройки действия
Пример настройки действия

Особенности временных переменных

Да, верно, ключевой особенностью временной переменной есть её срок жизни. Такая переменная нигде не сохраняется а существует с момента выполнения действия «задать переменную» до момента выполнения последнего действия в команде и завершения выполнения команды.

Еще раз: как только команда выполнилась для подписчика, значение переменной для него удаляется. Аналогично происходит и для «условной переменной».

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

Лайкнуть / покритиковать статью (при желании) можно в этом посте.

Вернуться на главную страницу инструкций
3232 views·20 shares