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

條件

更新於 2026年10月18日

條件是一項檢查:「目標身上有絞喉」、「能量至少 70%」、「Burst 已開啟」。多個條件組成群組(且),多個群組組成規則(或)。在建立器中,你是從清單中挑選條件;在 KRC 文字與 JSON 中,條件寫成字串,本頁範例展示的就是這種寫法。

語法#

類型寫法範例
光環:存在/不存在Aura.up、Aura.downGarrote_DoT.down
光環:剩餘時間、層數Aura.duration op N、Aura.stacks op NRupture_DoT.duration <= 30
欄位:就緒/未就緒Slot.ready、Slot.oncdKingsbane.ready
欄位:冷卻、充能次數Slot.cd op N、Slot.charges op NDeathmark.cd <= 3
欄位:高亮Slot.glow、Slot.noglowAmbush.glow
資源Resource op NCombo_Points >= 70
附近敵人數enemies op Nenemies >= 3
與目標的距離target.distance op 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 的刷新時段(pandemic)是持續時間的 30%:在這段時間內刷新,不會損失任何持續時間。因此常用的門檻是 <= 30。

KRC 文字
use Rupture when  # 割裂
	Combo_Points >= 70 and Rupture_DoT.down  # 沒有 DoT
	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": "沒有 DoT"},
    {"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 層。

注意

層數從 2 開始計算:只有 1 層的光環會讀為 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 == 1BurstF3、⌃⇧B大型冷卻技能:現在使用或先保留
defensives == 1治療/防禦—治療與防禦技能
ground_spells == 1地面法術—需選擇地面位置的法術
movement == 1移動—移動中的動作
  • 只能與 == 0 或 == 1 比較。
  • cd == 1 是 Burst 按鈕,不是法術的冷卻。 欄位的冷卻是 Slot.cd。
  • aoe 與 st 永遠不會同時為 1。目標模式按鍵會依序切換「自動」、「單體」、「範圍」。
  • 預設情況下,Burst 為開啟,目標模式為「自動」,其他按鈕為關閉。KeyRota 會記住它們的狀態。
  • 只有在輸出循環會讀取某個開關時,對應的面板按鈕才會啟用;使用 Blizzard 設定檔時,所有按鈕都會變暗。
  • 開關永遠不會是未知值。

條件如何求值#

條件有值時光環不存在時未知時
X.up成立不成立不成立
X.down不成立成立不成立
X.duration op N、X.stacks op 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 >= 707 點中有 5 點以上連擊點數
Energy >= 70能量 ≥ 70%
enemies >= 3半徑內有 3 個以上的敵人
target.distance <= 8目標在 8 碼內(沒有目標時不成立)
aoe == 1/st == 1「範圍」/「單體」模式
aoe == 0 and st == 0「自動」模式
cd == 1Burst 開啟
defensives == 1「治療/防禦」開啟
ground_spells == 1「地面法術」開啟
movement == 1「移動」開啟