Skip to main content

Как воспринимать макрос в редакторе

В UI макрос это не скрипт, а просто цепочка блоков. Ты добавляешь действия сверху вниз в том порядке, в котором они должны произойти. По ощущению это ближе к Scratch: ты собираешь сценарий из готовых визуальных блоков.

Базовый порядок сборки

  1. Если сценарий зависит от предмета, цели или состояния игрока, то следует добавить проверки, так как это экономит время при выполнении (см. дефолтные пресеты)
  2. Далее уже добавляете действия: перенос в хотбар, выбор слота, use, перенос в оффхенд и так далее. По сути основная часть макроса.
  3. После инвентарных шагов при необходимости добавь короткий Await. В целом, не всегда нужно, но для безопасности он добавлен в дефолтных пресетах.
  4. В конце добавь Notify, так банально понятнее.
Когда используешь If Condition, думай о нём как о Scratch-блоке с внутренней областью. Снаружи стоит сама проверка, а внутри неё лежат дочерние блоки, которые ты отдельно добавляешь внутрь этого контейнера. Они должны выполниться только при выполнении условия.

Рабочий шаблон

Самый стабильный пользовательский шаблон выглядит так:
  1. Проверить, что предмет есть.
  2. Переложить его в нужное место.
  3. Подождать короткую паузу.
  4. Выбрать предмет или нужную руку.
  5. Использовать предмет.
  6. Показать уведомление.

Когда макросы обычно ломаются

Чаще всего проблемы не в самом editor UI, а в порядке действий. Если сначала ставить use, а потом перенос, сценарий НЕ будет работать. Если не добавить паузу после перемещения предмета, следующий шаг может начаться слишком рано (часто это может происходить из-за пинга). Если не сделать предварительную проверку, макрос будет выглядеть как будто “ничего не сделал”, так что да, для дебага удобнее или чат или уведомления.

Практический совет

Если действие можно привязать к предмету, лучше привязывать его к предмету, а не к номеру слота. Слот удобен только тогда, когда раскладка инвентаря у тебя всегда одинаковая. Так обычно не бывает, но было бы глупо не добавлять просто селект конкретного слота. Ещё один хороший ориентир: если блок в голове читается как отдельный шаг сценария, значит его место в макросе скорее всего выбрано правильно. Если без пояснений уже непонятно, что делает кусок цепочки, то макрос лучше упростить или разбить на вложенные условия и отдельные части. Хорошим напоминанием, что ты можешь разбивать макросы на несколько подмакросов. Макрос позволяет вызывать другие, потому таким образом можно разгрузить логическую нагрузку на экране. Часть функций в макросах может не содержаться, потому можно применять просто команды клиента И/ИЛИ сервера.
ЗапомнитьВ UI макрос почти всегда собирается по схеме: проверка -> перенос -> пауза -> использование -> уведомление.