Условия
Обновлено 18.10.2026
Условие — одна проверка: «Гаррота на цели есть», «энергии не меньше 70 %», «Burst включён». Условия собираются в группы (И), группы — в правило (ИЛИ). В конструкторе условие выбирается списками, в тексте KRC и JSON оно пишется строкой — она и показана в примерах.
Синтаксис#
| Вид | Форма | Пример |
|---|---|---|
| Аура: есть / нет | Аура.up, Аура.down | Garrote_DoT.down |
| Аура: остаток, стаки | Аура.duration оп N, Аура.stacks оп N | Rupture_DoT.duration <= 30 |
| Слот: готов / не готов | Слот.ready, Слот.oncd | Kingsbane.ready |
| Слот: кулдаун, заряды | Слот.cd оп N, Слот.charges оп N | Deathmark.cd <= 3 |
| Слот: подсветка | Слот.glow, Слот.noglow | Ambush.glow |
| Ресурс | Ресурс оп N | Combo_Points >= 70 |
| Враги рядом | enemies оп N | enemies >= 3 |
| Дистанция до цели | target.distance оп N | target.distance <= 8 |
| Переключатель | aoe, st, cd, defensives, ground_spells, movement == 0 или == 1 | cd == 1 |
Операторы: <, <=, ==, = (то же, что ==), >=, >. Оператора «не равно» нет.
Число N — целое от 0 до 100. Отрицательных, дробных и больших 100 нет: значение 120 вне 0..100.
Пробелы вокруг оператора необязательны: Energy>=70 и Energy >= 70 — одно и то же. Внутри имени и между именем и свойством пробелов нет: Garrote_DoT.up, а не Garrote_DoT .up.
Ссылки — по имени (Garrote_DoT) или по номеру: buff1, slot3, resource4. Ключевые слова — строчными.
Ауры#
Аура — ваш баф или ваш дебаф на цели, объявленный в списке аур с ID. Чужие бафы и дебафы не видны.
.up и .down#
Envenom_Buff.up — аура есть. Envenom_Buff.down — ауры нет. Если аура неизвестна (не читается), оба условия ложны.
use Garrote when # Гаррота: повесить, если её нет
Garrote_DoT.down
.duration: остаток в процентах#
Rupture_DoT.duration <= 30 — осталось не больше 30 % от полной длительности этой ауры. Полная длительность — та, с которой аура наложена в этот раз: у Рваной раны на 5 комбо-очках это 24 с, на 7 — 32 с, и 30 % — это 7,2 с и 9,6 с.
Важно
У отсутствующей ауры остаток равен 0. Поэтому Rupture_DoT.duration <= 30 выполняется и тогда, когда Рваной раны нет вовсе. Чтобы обновлять только висящую ауру, пишите Rupture_DoT.up and Rupture_DoT.duration <= 30, а случай «ауры нет» — отдельной группой с Rupture_DoT.down.
Окно «пандемии» в WoW — 30 % длительности: при обновлении в нём остаток не теряется. Отсюда типичный порог <= 30.
use Rupture when # Рваная рана
Combo_Points >= 70 and Rupture_DoT.down # дота нет
or
Combo_Points >= 70 and Rupture_DoT.up and Rupture_DoT.duration <= 30 # пандемия
{
"use": "Rupture",
"name": "Рваная рана",
"when": [
{"all": ["Combo_Points >= 70", "Rupture_DoT.down"], "comment": "дота нет"},
{"all": ["Combo_Points >= 70", "Rupture_DoT.up", "Rupture_DoT.duration <= 30"], "comment": "пандемия"}
]
}
Перевод секунд в проценты: процент = секунды / полная длительность × 100. Гаррота длится 18 с: «осталось 14 с» — это <= 78, «осталось 5,4 с» — <= 30.
Аура без длительности (Незаметность и подобные) всегда даёт остаток 1. Для таких аур используйте только .up и .down.
.stacks: число стопок#
Opportunity.stacks >= 6 — у ауры 6 стопок или больше. У отсутствующей ауры стопок 0.
Примечание
Счётчик стопок начинается с двух: аура с одной стопкой читается как 0, как и аура без счётчика. Чтобы проверить, что аура есть, используйте .up, а .stacks — для порогов от 2 и выше.
use Pistol_Shot when # Выстрел из пистоли на 6 стопках Замечательной возможности
Opportunity.stacks >= 6 and Combo_Points < 80
Слоты#
Условия на слоты читают состояние другой кнопки: «нажать Отравление, только если Знак смерти ещё не готов» и т. п. Готовность слота самого правила проверяется сама: если его заклинание нельзя применить, KeyRota просто переходит к следующему правилу.
.ready и .oncd#
Kingsbane.ready — заклинание слота можно применить, не считая глобального кулдауна. Для этого одновременно:
- заклинание изучено (талант взят);
- хватает ресурса;
- цель в дальности, если нужна;
- кулдаун меньше 0,2 с или есть заряд;
- Better Assistant показывает слот («С целью» — есть цель, «В бою» — идёт бой).
Kingsbane.oncd — слот не готов по любой из этих причин, а не только из-за кулдауна. Если состояние неизвестно, ложны оба.
use Preparation when # Подготовка, когда Выброс, Промеж глаз и Череда на кулдауне
Adrenaline_Rush.oncd and Between_the_Eyes.oncd and Killing_Spree.oncd
.cd: остаток кулдауна в процентах#
Deathmark.cd <= 3 — до готовности осталось не больше 3 % полного кулдауна. 0 — готово, 100 — только что использовано. Глобальный кулдаун сюда не входит. У заклинания с зарядами .cd — перезарядка следующего заряда, поэтому заклинание может быть готово при cd > 0.
| Кулдаун | 1 % = | Пример |
|---|---|---|
| 30 с | 0,3 с | X.cd <= 10 — осталось ≤ 3 с |
| 1 мин | 0,6 с | Kingsbane.cd <= 3 — осталось ≤ 1,8 с |
| 2 мин | 1,2 с | Deathmark.cd <= 3 — осталось ≤ 3,6 с; Deathmark.cd >= 44 — ещё ≥ 52 с |
| 3 мин | 1,8 с | X.cd >= 50 — ещё ≥ 90 с |
Типичное применение — «подождать большой кулдаун»: не тратить Погибель королей, если Знак смерти вот-вот откатится, и тратить, если до него далеко.
use Kingsbane when # Погибель королей
cd == 1 and Deathmark_DoT.up # под Знаком смерти
or
cd == 1 and Deathmark.cd >= 44 # до Знака больше 52 с
.charges: заряды#
Barbed_Shot.charges >= 2 — у заклинания 2 заряда или больше. У заклинаний без зарядов — 0. Типичный приём — не дать зарядам упереться в максимум:
use Barbed_Shot when # Разрывающий выстрел
Barbed_Shot.charges >= 2 # оба заряда: не терять перезарядку
or
Barbed_Shot.charges == 1 and Barbed_Shot.cd <= 20 # второй почти готов
.glow и .noglow: подсветка кнопки#
Ambush.glow — игра подсвечивает кнопку этого заклинания (та же подсветка, что на панели действий при проке). Ambush.noglow — не подсвечивает. Используйте .glow, только если кнопка этого заклинания в игре действительно светится; если не уверены, проверяйте баф прока: Blindside.up.
Ресурсы#
Energy >= 70 — энергии не меньше 70 % от максимума. Все ресурсы — в процентах от 0 до 100: здоровье, энергия, мана, ярость, руны, комбо-очки.
| Ресурс | Номер | Пример |
|---|---|---|
| Здоровье игрока | resource1 (PlayerHP) | PlayerHP <= 40 — здоровье 40 % и ниже |
| Здоровье цели | resource2 (TargetHP) | TargetHP >= 50 — цель ещё не на половине. Без цели — неизвестно |
| Ресурсы специализации | resource3 и дальше | Energy >= 70, Combo_Points >= 70, Rage >= 40 |
Перевод в проценты: процент = значение / максимум × 100. При 250 энергии 175 энергии — это 70 %. Максимум энергии и других ресурсов меняется от талантов, поэтому пороги в процентах переносятся между персонажами лучше, чем в единицах.
Комбо-очки. При максимуме 7 комбо-очков одно очко — около 14,3 %. Значение округляется до целого, и в зависимости от округления 2 очка — это 28 или 29, 3 — 42 или 43, 6 — 85 или 86. Поэтому порог ставьте посередине между ступенями: тогда он верен при любом округлении.
| Комбо-очков | % | «не меньше N» | «не больше N» |
|---|---|---|---|
| 0 | 0 | — | < 7 |
| 1 | 14 | >= 7 | < 20 |
| 2 | 28–29 | >= 20 | < 35 |
| 3 | 42–43 | >= 35 | < 50 |
| 4 | 57 | >= 50 | < 65 |
| 5 | 71 | >= 65 (>= 70) | < 80 |
| 6 | 85–86 | >= 80 | < 95 |
| 7 | 100 | >= 95 | — |
Для другого максимума порог «не меньше N» — (N − 0,5) / максимум × 100. При 5 комбо-очках «не меньше 4» — >= 70, «не меньше 5» — >= 90.
Враги рядом#
enemies >= 3 — в радиусе счётчика 3 врага или больше. Радиус и «только враги в бою» задаются на странице «Общее» (в JSON — enemies.range и enemies.combatOnly). Если число неизвестно, условие ложно.
- Чтобы враги считались, в игре должны быть включены индикаторы здоровья противников (клавиша V по умолчанию), без скрытия незначительных врагов.
- Радиус выбирайте по способностям: Веер клинков бьёт в 8 ярдах, и радиус 8 — самый честный для решения «Веер или Расправа».
- Для одной цели надёжнее
enemies <= 1, чемenemies == 1: так правило не замолчит, если враг не подсчитан.
Дистанция до цели#
target.distance <= 8 — до цели 8 ярдов или меньше. Без цели дистанция неизвестна, и условие ложно. Дистанция приблизительная: условие выполняется, только когда дистанция наверняка удовлетворяет порогу, в пограничных случаях — ложно.
use Pistol_Shot when # цель вне ближнего боя, но в 20 ярдах
target.distance >= 10 and target.distance <= 20
Переключатели панели#
Переключатели — кнопки панели быстрых настроек над игрой и горячие клавиши. Ротация сама решает, что они значат.
| Условие | Кнопка панели | Клавиша: Windows, macOS | Обычное назначение |
|---|---|---|---|
aoe == 1 | «Цели: Много» | F2, ⌃⇧T по кругу | Принудительно режим нескольких целей |
st == 1 | «Цели: Одна» | F2, ⌃⇧T по кругу | Принудительно одна цель |
aoe == 0 and st == 0 | «Цели: Авто» | F2, ⌃⇧T по кругу | Решают правила, обычно по enemies |
cd == 1 | «Burst» | F3, ⌃⇧B | Большие кулдауны: жать сейчас или придержать |
defensives == 1 | «Хил / защита» | — | Лечение и защитные способности |
ground_spells == 1 | «Наземные» | — | Заклинания с выбором места на земле |
movement == 1 | «Движение» | — | Действия в движении |
- Сравнение — только
== 0или== 1. cd == 1— это кнопка Burst, а не кулдаун заклинания. Кулдаун слота — этоСлот.cd.aoeиstодновременно не бывают равны 1. F2 переключает по кругу: Авто, Одна, Много.- По умолчанию Burst включён, режим целей — Авто, остальные кнопки выключены. KeyRota запоминает их состояние.
- Кнопка на панели активна, только если ротация читает этот переключатель; у профиля Blizzard все кнопки приглушены.
- Переключатели никогда не бывают неизвестными.
Как вычисляются условия#
| Условие | Значение есть | Ауры нет | Неизвестно |
|---|---|---|---|
X.up | истина | ложь | ложь |
X.down | ложь | истина | ложь |
X.duration оп N, X.stacks оп N | сравнение | сравнение с 0 | ложь |
X.ready / X.oncd | по готовности | — | ложь (оба) |
X.glow / X.noglow | по подсветке | — | ложь (оба) |
X.cd, X.charges, ресурс, enemies, target.distance | сравнение | — | ложь |
| переключатель | сравнение | — | не бывает |
Группа истинна, если истинны все её условия. Правило выполнено, если истинна хотя бы одна группа или групп нет совсем.
«Не», скобки и ИЛИ внутри группы#
В KRC нет not, != и скобок. Всё выражается группами:
- «Не» — парным условием: вместо «не
.up» пишут.down, вместо «не.ready» —.oncd, вместо «не.glow» —.noglow; для чисел — обратный оператор: вместо «не>= 70» пишут< 70. - (A или B) и C — две группы:
A and C,B and C. - A и не (B и C) — две группы:
A and не-B,A and не-C. - Одно и то же условие во всех группах (как защита канала) повторяется в каждой группе.
use Fan_of_Knives when # Веер клинков: (режим «Много» ИЛИ Авто и 2+ врага) И до 5 комбо
aoe == 1 and Combo_Points < 70
or
st == 0 and enemies >= 2 and Combo_Points < 70
Шпаргалка#
| Условие | Что значит |
|---|---|
X.up / X.down | аура есть / нет |
X.duration <= 30 | осталось ≤ 30 % (у отсутствующей ауры 0) |
X.up and X.duration <= 30 | висит и пора обновлять |
X.stacks >= 2 | 2 стопки и больше (1 стопка читается как 0) |
X.ready / X.oncd | слот готов / не готов по любой причине |
X.cd <= 3 | до готовности ≤ 3 % кулдауна |
X.charges >= 2 | 2 заряда и больше |
X.glow / X.noglow | кнопка подсвечена / нет |
PlayerHP <= 40 | ваше здоровье ≤ 40 % |
TargetHP >= 50 | у цели ≥ 50 % (без цели — ложно) |
Combo_Points >= 70 | 5+ комбо-очков из 7 |
Energy >= 70 | энергии ≥ 70 % |
enemies >= 3 | 3+ врага в радиусе |
target.distance <= 8 | цель в 8 ярдах (без цели — ложно) |
aoe == 1 / st == 1 | режим «Много» / «Одна» |
aoe == 0 and st == 0 | режим «Авто» |
cd == 1 | Burst включён |
defensives == 1 | «Хил / защита» включено |
ground_spells == 1 | «Наземные» включено |
movement == 1 | «Движение» включено |