Руководство: как строить условия

Ротация в Rotation Maker — это список блоков, который проверяется сверху вниз: первое заклинание, у которого выполнились все условия и которое готово, нажимается, остальные в этом проходе пропускаются. Ниже три типовых случая: сбить чужое заклинание, применить боевое заклинание и вылечить союзника.

Блоки на схемах нарисованы упрощённо: названия полей в редакторе могут чуть отличаться, ориентируйтесь на смысл проверки. ■ условие, ■ заклинание, ■ цикл.

Из чего собирается ротация

Условие
Враждебная цельцель: target==TRUE
AND
В боюцель: player==TRUE
Вложенное условие
Количество врагов>=3
Заклинание
Удар по площади цель: target
Заклинание
Одиночный удар цель: target
Условия вкладываются: внутри условия можно ставить другие блоки

Параметры блока «Заклинание»

ПолеЧто значит
Цель (unit)На кого нажимается: target, focus, player, ForeachUnit и т. д.
Тип цели«Авто (по заклинанию)» — по умолчанию, подходит почти всегда. «Атакуемая» — только враждебная цель. «Союзная» — только дружественная.
В движении«Только мгновенные» — заклинание с временем каста не нажимается, пока персонаж бежит (мгновенные нажимаются всегда). «Любые» — нажимается и на бегу. Стоя на месте оба варианта работают одинаково.
Нажатие«Обычное нажатие» — короткое нажатие клавиши заклинания (клавиша берётся автоматически; в поле можно указать свою, например F5 или ^1 = Ctrl+1). «Удерживать клавишу» — клавиша удерживается заданное число миллисекунд.
Для баффов на себя оставляйте тип цели «Авто». Если поставить «Атакуемая цель» при цели player, заклинание никогда не будет готово.

1. Сбить чужое заклинание (прерывание)

Задача: если цель кастует что-то, что можно прервать, и каст идёт уже достаточно давно, — нажать прерывающее заклинание (например, «Пинок»).

Условие
Враждебная цельцель: target==TRUE
AND
Произношениецель: target · «Обычное» или «Оба» · Прошло · прерываемое>0.4 с
AND
В радиусезаклинание: Пинок · цель: target==TRUE
Заклинание
Пинок цель: target · тип цели: Атакуемая
Прерывание: блок ставится в самое начало ротации
  1. Поставьте блок Условие в самое начало ротации: прерывание важнее обычного урона, поэтому проверяться оно должно первым.
  2. Внутри добавьте проверки и соедините их через AND:
ПроверкаНастройкаСравнение
Враждебная цельцель: targetTRUE
Произношениецель: target; тип: «Обычное» или «Оба» (каст и канал); «Прошло»; галка «прерываемое»; поле «заклинание» пустое = любое> 0.4 (сек)
В радиусе (специально под ваш Пинок)заклинание: Пинок; цель: targetTRUE
  1. Внутри условия поставьте блок Заклинание: Пинок, цель target, тип цели «Атакуемая».

Проверка «Произношение — Прошло > 0.4» нужна, чтобы программа не сбивала каст в первый же кадр: это выглядит естественнее и даёт время увидеть, что именно кастуется.

Варианты

2. Боевое заклинание (урон)

Задача: бить по цели, когда она подходящая, хватает ресурса и на ней нет вашего дебафа.

Пример: дебаф, затем ресурсный удар. Два отдельных блока «Условие», в таком порядке.

Условие
Враждебная цельцель: target==TRUE
AND
Цель мертвацель: target==FALSE
AND
Дебафцель: target · название · источник «мой» · осталось времени<3
Заклинание
Наложение дебафа цель: target · тип цели: Атакуемая
Блок А: повесить или обновить дебаф
Условие
Враждебная цельцель: target==TRUE
AND
Ресурсцель: player · «Энергия» · текущее количество>=40
AND
Серия приёмовесли есть у класса>=5
Заклинание
Завершающий удар цель: target
Блок Б: потратить ресурс (стоит ниже блока А)

Что стоит знать

3. Лечебное заклинание

Задача: найти союзника с низким здоровьем и вылечить его. Такая цель заранее не известна, поэтому нужен блок Цикл.

Цикл · Союзники+игрок
Условие
Ресурсцель: ForeachUnit · «Здоровье» · «Процент»<=85
AND
Бафцель: ForeachUnit · название · источник «мой» · осталось времени<2
Заклинание
Лечение цель: ForeachUnit · тип цели: Авто
Лечение: цикл по союзникам, ForeachUnit — текущий союзник
  1. Блок Цикл, группа целей «Союзники+игрок». Если включить сортировку по здоровью, в начале списка окажутся самые раненые.
  2. Внутри цикла — блок Условие. В проверках цель выбирается как ForeachUnit — это текущий союзник из цикла:
ПроверкаНастройкаСравнение
Ресурсцель: ForeachUnit; «Здоровье»; «Процент»<= 85
Баф (если это хот-заклинание)цель: ForeachUnit; название эффекта; источник «мой»; «Осталось времени»< 2
  1. Внутри условия — блок Заклинание: цель ForeachUnit, тип цели «Авто».

Результат: программа проходит по всем союзникам и нажимает заклинание на первого, для кого все условия выполняются.

Приоритеты в лечении

Ставьте выше то, что важнее, а между ними делайте отдельные циклы:

ПорядокЦиклУсловиеЗаклинание
1Союзники+игрокЗдоровье % <= 35Быстрое сильное лечение
2Союзники+игрокЗдоровье % <= 65Обычное лечение
3Союзники+игрокЗдоровье % <= 90 и нет вашего HoTHoT

Полезные добавки

Частые ошибки

СимптомПричина и решение
Заклинание на себя не нажимаетсяВ блоке стоит тип цели «Атакуемая». Смените на «Авто».
Лечение идёт всегда на одну цельНе все условия взяли цель ForeachUnit — у одного осталась player или target.
Прерывание не срабатываетПроверьте галку «прерываемое» и что цель в дальности прерывателя. Если выбраны названия заклинаний — они должны совпадать с игровыми буква в букву.
Серия приёмов или ресурс «не видны»Проверяйте цель: для своих ресурсов это player, для очков комбо — тоже player.
Непонятно, почему не работает блокНажмите «</>» у группы — покажет Lua-код этой группы; в игре команда /rm STATUS покажет состояние ротации.

Остались вопросы? Напишите в поддержку.

Manual: how to build conditions

A rotation in Rotation Maker is a list of blocks that is checked from top to bottom: the first spell whose conditions are all met and which is ready gets pressed, and the rest are skipped for that pass. Below are three typical cases: interrupting an enemy cast, casting a damage spell, and healing an ally.

Block and field names in the editor are shown in Russian. The table below maps them to the English terms used in this guide; the editor name is given in the right-hand column.
This guideIn the editorThis guideIn the editor
ConditionУсловиеSpellЗаклинание
LoopЦиклNested conditionВложенное условие
Hostile targetВраждебная цельIn combatВ бою
Enemy countКоличество враговTarget is deadЦель мертва
CastingПроизношениеElapsedПрошло
InterruptibleпрерываемоеIn rangeВ радиусе
Debuff / BuffДебаф / БафResourceРесурс
Combo points / attack chainСерия приёмовHealth / PercentЗдоровье / Процент
Time leftОсталось времениHealth with incoming healsЗдоровье с лечением
Buff/debuff typeТип Бафа/ДебафаGroup roleРоль группы
Allies + playerСоюзники+игрокAbility → Cooldown remainingСпособность → Осталось перезарядки

Blocks in the diagrams are drawn in simplified form: field names in the editor may differ slightly, so go by the meaning of the check. ■ condition, ■ spell, ■ loop.

What a rotation is made of

Condition
Hostile targetunit: target==TRUE
AND
In combatunit: player==TRUE
Nested condition
Enemy count>=3
Spell
Area strike unit: target
Spell
Single-target strike unit: target
Conditions nest: you can put other blocks inside a condition

“Spell” block parameters

FieldWhat it means
Target (unit)Who the spell is pressed on: target, focus, player, ForeachUnit, etc.
Target type“Auto (by spell)” is the default and fits almost always. “Attackable” means a hostile target only. “Friendly” means a friendly target only.
While moving“Instant only” or “Allowed” (for spells that can be cast on the move).
Press“Own bind” uses its own key; “Hold” holds the key for a set time.
For self-buffs keep the target type “Auto”. If you set “Attackable target” while the unit is player, the spell will never be ready.

1. Interrupting an enemy cast

Task: if the target is casting something that can be interrupted and the cast has been going for a while, press the interrupting spell (for example, “Kick”).

Condition
Hostile targetunit: target==TRUE
AND
Castingunit: target · “Normal” or “Both” · Elapsed · interruptible>0.4 s
AND
In rangespell: Kick · unit: target==TRUE
Spell
Kick unit: target · target type: Attackable
Interrupt: the block goes at the very start of the rotation
  1. Put a Condition block at the very start of the rotation: interrupting matters more than ordinary damage, so it must be checked first.
  2. Add checks inside and join them with AND:
CheckSetupComparison
Hostile targetunit: targetTRUE
Castingunit: target; type: “Normal” or “Both” (cast and channel); “Elapsed”; tick “interruptible”; empty “spell” field = any> 0.4 (sec)
In range (specifically for your Kick)spell: Kick; unit: targetTRUE
  1. Inside the condition put a Spell block: Kick, unit target, target type “Attackable”.

The “Casting — Elapsed > 0.4” check keeps the program from interrupting on the very first frame: it looks more natural and gives you time to see what is actually being cast.

Variations

2. A damage spell

Task: hit the target when it is suitable, you have enough resource, and your debuff is not on it.

Example: a debuff, then a resource-spending strike. Two separate Condition blocks, in this order.

Condition
Hostile targetunit: target==TRUE
AND
Target is deadunit: target==FALSE
AND
Debuffunit: target · name · source “mine” · time left<3
Spell
Apply debuff unit: target · target type: Attackable
Block A: apply or refresh the debuff
Condition
Hostile targetunit: target==TRUE
AND
Resourceunit: player · “Energy” · current amount>=40
AND
Combo pointsif your class has them>=5
Spell
Finishing strike unit: target
Block B: spend the resource (goes below block A)

Good to know

3. A healing spell

Task: find an ally with low health and heal them. That target isn’t known in advance, so you need a Loop block.

Loop · Allies + player
Condition
Resourceunit: ForeachUnit · “Health” · “Percent”<=85
AND
Buffunit: ForeachUnit · name · source “mine” · time left<2
Spell
Heal unit: ForeachUnit · target type: Auto
Healing: a loop over allies; ForeachUnit is the current ally
  1. A Loop block, target group “Allies + player”. If you turn on sorting by health, the most wounded come first in the list.
  2. Inside the loop, a Condition block. In the checks the unit is chosen as ForeachUnit — the current ally from the loop:
CheckSetupComparison
Resourceunit: ForeachUnit; “Health”; “Percent”<= 85
Buff (if it is a HoT spell)unit: ForeachUnit; effect name; source “mine”; “Time left”< 2
  1. Inside the condition, a Spell block: unit ForeachUnit, target type “Auto”.

Result: the program goes through all allies and presses the spell on the first one for whom all conditions are met.

Healing priorities

Put the more important things higher, and make separate loops between them:

OrderLoopConditionSpell
1Allies + playerHealth % <= 35Fast strong heal
2Allies + playerHealth % <= 65Ordinary heal
3Allies + playerHealth % <= 90 and no HoT of yoursHoT

Useful additions

Common mistakes

SymptomCause and fix
A self-cast spell isn’t pressedThe block has target type “Attackable”. Change it to “Auto”.
Healing always goes to the same targetNot all conditions took the ForeachUnit unit — one still has player or target.
The interrupt doesn’t fireCheck the “interruptible” tick and that the target is within the interrupter’s range. If spell names are selected, they must match the in-game ones letter for letter.
Combo points or a resource “aren’t visible”Check the unit: for your own resources it is player, and for combo points it is also player.
It’s unclear why a block isn’t workingClick “</>” on the group — it shows the Lua code of that group; in the game the command /rm STATUS shows the rotation state.

Still have questions? Write to support.