Руководство: как строить условия
Ротация в Rotation Maker — это список блоков, который проверяется сверху вниз: первое заклинание, у которого выполнились все условия и которое готово, нажимается, остальные в этом проходе пропускаются. Ниже три типовых случая: сбить чужое заклинание, применить боевое заклинание и вылечить союзника.
Блоки на схемах нарисованы упрощённо: названия полей в редакторе могут чуть отличаться, ориентируйтесь на смысл проверки. ■ условие, ■ заклинание, ■ цикл.
Из чего собирается ротация
- Условие — контейнер. Внутри него группа проверок, а под ней вложенные блоки, которые выполняются, только если проверки прошли.
- Заклинание — отдельный блок-действие: нажать кнопку заклинания. Выбирается через поиск по базе заклинаний.
- Цикл — перебирает список целей (например, всех союзников) и повторяет вложенные блоки для каждой. Текущая цель внутри цикла называется
ForeachUnit. - Блоки берутся из палитры слева: перетащите или дважды щёлкните — блок появится отдельным элементом, его можно перенести в нужный контейнер.
- Одна проверка выглядит как «что проверяем — оператор — значение»: операторы
==,~=,<,<=,>,>=,range; для проверок «да/нет» —TRUEиFALSE. Кнопка+добавляет проверку,−удаляет. - Проверки соединяются через AND (все сразу) или OR (любая из них), у каждого соединения своя логика. Операторы можно вкладывать друг в друга, глубина не ограничена.
- Блок Заклинание сам проверяет, что заклинание готово (перезарядка, ресурс, дальность), поэтому отдельно писать «перезарядка == 0» нужно только для особых случаев — например, чтобы не сбивать каст, пока не готов нужный пинок на другой цели.
Параметры блока «Заклинание»
| Поле | Что значит |
|---|---|
| Цель (unit) | На кого нажимается: target, focus, player, ForeachUnit и т. д. |
| Тип цели | «Авто (по заклинанию)» — по умолчанию, подходит почти всегда. «Атакуемая» — только враждебная цель. «Союзная» — только дружественная. |
| В движении | «Только мгновенные» — заклинание с временем каста не нажимается, пока персонаж бежит (мгновенные нажимаются всегда). «Любые» — нажимается и на бегу. Стоя на месте оба варианта работают одинаково. |
| Нажатие | «Обычное нажатие» — короткое нажатие клавиши заклинания (клавиша берётся автоматически; в поле можно указать свою, например F5 или ^1 = Ctrl+1). «Удерживать клавишу» — клавиша удерживается заданное число миллисекунд. |
1. Сбить чужое заклинание (прерывание)
Задача: если цель кастует что-то, что можно прервать, и каст идёт уже достаточно давно, — нажать прерывающее заклинание (например, «Пинок»).
- Поставьте блок Условие в самое начало ротации: прерывание важнее обычного урона, поэтому проверяться оно должно первым.
- Внутри добавьте проверки и соедините их через AND:
| Проверка | Настройка | Сравнение |
|---|---|---|
| Враждебная цель | цель: target | TRUE |
| Произношение | цель: target; тип: «Обычное» или «Оба» (каст и канал); «Прошло»; галка «прерываемое»; поле «заклинание» пустое = любое | > 0.4 (сек) |
| В радиусе (специально под ваш Пинок) | заклинание: Пинок; цель: target | TRUE |
- Внутри условия поставьте блок Заклинание: Пинок, цель target, тип цели «Атакуемая».
Проверка «Произношение — Прошло > 0.4» нужна, чтобы программа не сбивала каст в первый же кадр: это выглядит естественнее и даёт время увидеть, что именно кастуется.
Варианты
- Сбивать только опасные касты: в поле «заклинание» перечислите названия, по одному на строку (точно так, как они написаны в игре). Тогда проверка сработает только на них.
- Сбивать фокус: замените во всех проверках и в блоке «Заклинание» цель target на focus.
- Два прерывающих заклинания (основное и резервное): два блока «Условие» подряд. Первый сработает, пока он готов; когда на перезарядке — будет второй.
- Добавьте проверку «Способность → Осталось перезарядки == 0», если хотите явно видеть условие готовности в дереве.
2. Боевое заклинание (урон)
Задача: бить по цели, когда она подходящая, хватает ресурса и на ней нет вашего дебафа.
Пример: дебаф, затем ресурсный удар. Два отдельных блока «Условие», в таком порядке.
Что стоит знать
- Порядок блоков = приоритет. Дебаф стоит выше, поэтому всегда обновляется раньше удара.
- Условие «Дебаф» с источником «мой» не путает ваши эффекты с чужими.
- «Цель в радиусе» или «В радиусе» + заклинание — для ближнего боя, чтобы не жать, пока цель вне досягаемости. Но сам блок «Заклинание» дальность тоже проверяет.
- Чтобы применять заклинание только в бою или только на боссе, добавьте проверки «В бою» и «Враждебная цель».
- Несколько целей (АОЕ): «Количество врагов»
>=3 → заклинание по площади, выше одиночных ударов. - Бафф на себя — это тоже заклинание: цель player, тип цели «Авто», условие «Баф» (осталось времени
<5 с, источник «мой»)AND«В бою» FALSE.
3. Лечебное заклинание
Задача: найти союзника с низким здоровьем и вылечить его. Такая цель заранее не известна, поэтому нужен блок Цикл.
- Блок Цикл, группа целей «Союзники+игрок». Если включить сортировку по здоровью, в начале списка окажутся самые раненые.
- Внутри цикла — блок Условие. В проверках цель выбирается как ForeachUnit — это текущий союзник из цикла:
| Проверка | Настройка | Сравнение |
|---|---|---|
| Ресурс | цель: ForeachUnit; «Здоровье»; «Процент» | <= 85 |
| Баф (если это хот-заклинание) | цель: ForeachUnit; название эффекта; источник «мой»; «Осталось времени» | < 2 |
- Внутри условия — блок Заклинание: цель ForeachUnit, тип цели «Авто».
Результат: программа проходит по всем союзникам и нажимает заклинание на первого, для кого все условия выполняются.
Приоритеты в лечении
Ставьте выше то, что важнее, а между ними делайте отдельные циклы:
| Порядок | Цикл | Условие | Заклинание |
|---|---|---|---|
| 1 | Союзники+игрок | Здоровье % <= 35 | Быстрое сильное лечение |
| 2 | Союзники+игрок | Здоровье % <= 65 | Обычное лечение |
| 3 | Союзники+игрок | Здоровье % <= 90 и нет вашего HoT | HoT |
Полезные добавки
- «Здоровье с лечением» вместо «Здоровье» учитывает уже летящее лечение: меньше перелечивания.
- Не хватает маны: добавьте «Ресурс → Мана, процент
>10» для неэкстренных лечений. - Снять дебаф с союзника: «Тип Бафа/Дебафа» (вид Magic или Poison, фильтр HARMFUL) → заклинание-разрядка на ForeachUnit.
- Лечить только цель в цели: без цикла поставьте цель target (или focus для танка) и тип цели «Авто».
- Роль танка: проверка «Роль группы» работает только если роли назначены в группе; иначе надёжнее повесить хот на focus.
Частые ошибки
| Симптом | Причина и решение |
|---|---|
| Заклинание на себя не нажимается | В блоке стоит тип цели «Атакуемая». Смените на «Авто». |
| Лечение идёт всегда на одну цель | Не все условия взяли цель 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.
| This guide | In the editor | This guide | In 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 is a container. Inside it is a group of checks, and below it are nested blocks that run only if the checks pass.
- Spell is a separate action block: press the spell’s key. You pick it with the spell-database search.
- Loop goes through a list of targets (for example, all allies) and repeats the nested blocks for each one. The current target inside the loop is called
ForeachUnit. - Blocks come from the palette on the left: drag one in or double-click it; the block appears as a separate element that you can move into the container you need.
- A single check looks like “what we check — operator — value”: operators
==,~=,<,<=,>,>=,range; for yes/no checks useTRUEandFALSE. The+button adds a check,−removes it. - Checks are joined with AND (all at once) or OR (any one of them); every join has its own logic. Operators can be nested inside each other with no depth limit.
- The Spell block itself checks that the spell is ready (cooldown, resource, range), so you only need to write “cooldown == 0” separately for special cases — for example, to avoid interrupting a cast while the kick you need on another target isn’t ready.
“Spell” block parameters
| Field | What 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. |
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”).
- Put a Condition block at the very start of the rotation: interrupting matters more than ordinary damage, so it must be checked first.
- Add checks inside and join them with AND:
| Check | Setup | Comparison |
|---|---|---|
| Hostile target | unit: target | TRUE |
| Casting | unit: 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: target | TRUE |
- 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
- Interrupt only dangerous casts: in the “spell” field list the names, one per line (exactly as written in the game). The check will then fire only on those.
- Interrupt your focus: replace the unit target with focus in all checks and in the Spell block.
- Two interrupting spells (main and backup): two Condition blocks in a row. The first fires while it is ready; when it is on cooldown, the second takes over.
- Add the check “Ability → Cooldown remaining == 0” if you want the readiness condition to be visible in the tree.
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.
Good to know
- Block order = priority. The debuff is higher, so it is always refreshed before the strike.
- The “Debuff” condition with source “mine” doesn’t confuse your effects with other players’.
- “Target in range” or “In range” + spell is for melee, so you don’t press while the target is out of reach. The Spell block itself also checks range, though.
- To use a spell only in combat or only on a boss, add the checks “In combat” and “Hostile target”.
- Several targets (AoE): “Enemy count”
>=3 → an area spell, placed above the single-target strikes. - A self-buff is also a spell: unit player, target type “Auto”, condition “Buff” (time left
<5 s, source “mine”)AND“In combat” FALSE.
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.
- A Loop block, target group “Allies + player”. If you turn on sorting by health, the most wounded come first in the list.
- Inside the loop, a Condition block. In the checks the unit is chosen as ForeachUnit — the current ally from the loop:
| Check | Setup | Comparison |
|---|---|---|
| Resource | unit: ForeachUnit; “Health”; “Percent” | <= 85 |
| Buff (if it is a HoT spell) | unit: ForeachUnit; effect name; source “mine”; “Time left” | < 2 |
- 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:
| Order | Loop | Condition | Spell |
|---|---|---|---|
| 1 | Allies + player | Health % <= 35 | Fast strong heal |
| 2 | Allies + player | Health % <= 65 | Ordinary heal |
| 3 | Allies + player | Health % <= 90 and no HoT of yours | HoT |
Useful additions
- “Health with incoming heals” instead of “Health” accounts for healing already in flight: less overhealing.
- Running low on mana: add “Resource → Mana, percent
>10” for non-emergency heals. - Remove a debuff from an ally: “Buff/debuff type” (kind Magic or Poison, filter HARMFUL) → a dispel spell on ForeachUnit.
- Heal only your target’s target: without a loop, set the unit to target (or focus for the tank) and target type “Auto”.
- Tank role: the “Group role” check works only if roles are assigned in the group; otherwise it is more reliable to put the HoT on focus.
Common mistakes
| Symptom | Cause and fix |
|---|---|
| A self-cast spell isn’t pressed | The block has target type “Attackable”. Change it to “Auto”. |
| Healing always goes to the same target | Not all conditions took the ForeachUnit unit — one still has player or target. |
| The interrupt doesn’t fire | Check 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 working | Click “</>” 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.