Переменные и условия
Macro, который принимает значение, считает и ветвится. И признаки того, что для задачи уже нужен плагин.
Переменные превращают Macro из списка команд в маленькую программу.
| Вид | Команды | Где хранятся |
|---|---|---|
| Переменные шоу | SetVar, AddVar, ListVar |
В Show file, общие для всех пользователей |
| Пользовательские | SetUserVar, AddUserVar, ListUserVar |
У конкретного пользователя |
Задать и использовать
> SetVar $cue = 5 > Goto Cue $cue
Знак $ подставляет значение. AddVar $cue = 1 прибавляет единицу — так
получается «следующее Cue» с собственным счётчиком.
Посмотреть текущие значения: ListVar, ListUserVar.
Условия
Условие пишется в начале строки Macro в квадратных скобках. Если оно истинно, выполняется остаток строки, если нет — строка пропускается, и Macro идёт дальше.
[$mode == 1] Go Executor 1
[$mode == 0] Off Executor 1
Операторы: ==, >, <, >=, <=. Сравниваются строки, символ
за символом, а не числа: "61" окажется больше "599", потому что 6 больше 5.
Для счётчиков держите число знаков одинаковым или сравнивайте только на
равенство.
Блоков «если — иначе» и вложенности у Macro нет: каждое условие действует
на одну строку. If и EndIf в Command Line — фильтр выбора, к условиям
Macro они отношения не имеют.
Зачем это на шоу
Чаще всего переменная работает счётчиком эпизодов — один Macro, который каждый раз идёт на шаг дальше:
AddVar $ep = 1
Goto Cue $ep Executor 3
Второй по частоте случай — режим шоу. $mode хранит репетицию, прогон или
спектакль, и Macro ведут себя по-разному:
[$mode == 0] Off Executor Thru
[$mode == 1] Go Executor 1
Строка Macro умеет и спросить значение у оператора: текст в скобках появляется во всплывающем окне, а ответ подставляется на его место.
SetVar $answer = ("Really delete all groups? yes/no")
[$answer == "yes"] Delete Group Thru
Для текста вопрос пишут в кавычках внутри скобок, для чисел и команд — без
кавычек: Fixture (Which Fixture ID?).
$akt, $pesnya, $rezhim вместо $a, $b. Имя переменной — единственное
место, где записан её смысл.
Переменная $HOSTHARDWARE и функция gma.gethardwaretype() появились в 3.7
и отвечают GMA2 или GMA3 — по тому, на каком железе запущена консоль.
Когда пора на плагин
Переменные хранят числа и строки, арифметика ограничена сложением через
AddVar, отладка — выводом в Command Line Feedback.
Больше двух-трёх условий, цикл, вычисления сложнее сложения, работа со списками объектов — задача уже слишком сложна для Macro, см. плагины на Lua.
Нашли в статье ошибку, устаревшее или непонятное место?