Перейти к содержимому

Условия

Обновлено 18.10.2026

Условие — одна проверка: «Гаррота на цели есть», «энергии не меньше 70 %», «Burst включён». Условия собираются в группы (И), группы — в правило (ИЛИ). В конструкторе условие выбирается списками, в тексте KRC и JSON оно пишется строкой — она и показана в примерах.

Синтаксис#

ВидФормаПример
Аура: есть / нетАура.up, Аура.downGarrote_DoT.down
Аура: остаток, стакиАура.duration оп N, Аура.stacks оп NRupture_DoT.duration <= 30
Слот: готов / не готовСлот.ready, Слот.oncdKingsbane.ready
Слот: кулдаун, зарядыСлот.cd оп N, Слот.charges оп NDeathmark.cd <= 3
Слот: подсветкаСлот.glow, Слот.noglowAmbush.glow
РесурсРесурс оп NCombo_Points >= 70
Враги рядомenemies оп Nenemies >= 3
Дистанция до целиtarget.distance оп Ntarget.distance <= 8
Переключательaoe, st, cd, defensives, ground_spells, movement == 0 или == 1cd == 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 — ауры нет. Если аура неизвестна (не читается), оба условия ложны.

Текст KRC
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.

Текст KRC
use Rupture when  # Рваная рана
	Combo_Points >= 70 and Rupture_DoT.down  # дота нет
	or
	Combo_Points >= 70 and Rupture_DoT.up and Rupture_DoT.duration <= 30  # пандемия
JSON
{
  "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 и выше.

Текст KRC
use Pistol_Shot when  # Выстрел из пистоли на 6 стопках Замечательной возможности
	Opportunity.stacks >= 6 and Combo_Points < 80

Слоты#

Условия на слоты читают состояние другой кнопки: «нажать Отравление, только если Знак смерти ещё не готов» и т. п. Готовность слота самого правила проверяется сама: если его заклинание нельзя применить, KeyRota просто переходит к следующему правилу.

.ready и .oncd#

Kingsbane.ready — заклинание слота можно применить, не считая глобального кулдауна. Для этого одновременно:

  • заклинание изучено (талант взят);
  • хватает ресурса;
  • цель в дальности, если нужна;
  • кулдаун меньше 0,2 с или есть заряд;
  • Better Assistant показывает слот («С целью» — есть цель, «В бою» — идёт бой).

Kingsbane.oncd — слот не готов по любой из этих причин, а не только из-за кулдауна. Если состояние неизвестно, ложны оба.

Текст KRC
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 с

Типичное применение — «подождать большой кулдаун»: не тратить Погибель королей, если Знак смерти вот-вот откатится, и тратить, если до него далеко.

Текст KRC
use Kingsbane when  # Погибель королей
	cd == 1 and Deathmark_DoT.up  # под Знаком смерти
	or
	cd == 1 and Deathmark.cd >= 44  # до Знака больше 52 с

.charges: заряды#

Barbed_Shot.charges >= 2 — у заклинания 2 заряда или больше. У заклинаний без зарядов — 0. Типичный приём — не дать зарядам упереться в максимум:

Текст KRC
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»
00—< 7
114>= 7< 20
228–29>= 20< 35
342–43>= 35< 50
457>= 50< 65
571>= 65 (>= 70)< 80
685–86>= 80< 95
7100>= 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 ярдов или меньше. Без цели дистанция неизвестна, и условие ложно. Дистанция приблизительная: условие выполняется, только когда дистанция наверняка удовлетворяет порогу, в пограничных случаях — ложно.

Текст KRC
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.
  • Одно и то же условие во всех группах (как защита канала) повторяется в каждой группе.
Текст KRC
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 >= 22 стопки и больше (1 стопка читается как 0)
X.ready / X.oncdслот готов / не готов по любой причине
X.cd <= 3до готовности ≤ 3 % кулдауна
X.charges >= 22 заряда и больше
X.glow / X.noglowкнопка подсвечена / нет
PlayerHP <= 40ваше здоровье ≤ 40 %
TargetHP >= 50у цели ≥ 50 % (без цели — ложно)
Combo_Points >= 705+ комбо-очков из 7
Energy >= 70энергии ≥ 70 %
enemies >= 33+ врага в радиусе
target.distance <= 8цель в 8 ярдах (без цели — ложно)
aoe == 1 / st == 1режим «Много» / «Одна»
aoe == 0 and st == 0режим «Авто»
cd == 1Burst включён
defensives == 1«Хил / защита» включено
ground_spells == 1«Наземные» включено
movement == 1«Движение» включено