Rogue Team Boss Fight (Detailed Annotations)
About 3 min
Rogue Team Boss Fight (Detailed Annotations)
Step 1: Open the Heitu client → click "Super Macro" → create a new macro → paste the code below.
Step 2: Create a regular macro in-game with /s S Boss_Main(), bind it to a key.
Tips
Make sure to place the Rogue Main Control Macro in the first slot of your action bar first.
-- ============ Rogue One-Button DPS Macro [Party / Raid / Boss Fight Full Version | Detailed Annotations] ============
-- Usage: /s S Boss_Main()
-- Overall priority: group OT self-preservation (Vanish/Invul Pot) > low-HP healing potion > maintain Slice and Dice > finisher Eviscerate > Sinister Strike combo building > target non-full HP auto trinket burst
function Boss_Main()
-- ====================== [Constant Definition Area] Unified management of survival skills, consumables, DPS skills, and trinket IDs ======================
-- OT self-preservation skill
local SPELL_VANISH = 1857 -- Vanish: clears own threat, avoids high boss melee damage for self-preservation
-- Survival consumable potions
local ITEM_INVUL = 17016 -- Limited Invulnerability Potion: short-duration full damage immunity; emergency survival during Vanish CD downtime
local ITEM_HEAL_POT = 13446 -- Major Healing Potion: auto-heal when HP is low to stabilize health pool
-- Core DPS skills
local SPELL_SLICE = 6774 -- Slice and Dice: core sustained damage buff; maintain 100% uptime
local SPELL_EVISCERATE = 31016 -- Eviscerate: high-burst finisher damage, consumes combo points
local SPELL_SINISTER = 11294 -- Sinister Strike: basic combo point builder filler skill
-- Active DPS trinkets
local ITEM_SPIDER = 22954 -- Kiss of the Spider: haste/AP DPS trinket
local ITEM_SLAYER = 23041 -- Slayer's Crest: high AP burst trinket
-- ====================== [Combat State Pre-read Area] Read all states at once to reduce repeated API calls and improve efficiency ======================
local me = GetMeInfo() -- Fetch character HP and max HP base info
local hpPercent = me and (me.health / me.maxHealth * 100) or 100 -- Calculate current HP percentage; default to 100% if null
local vanishCD = SCT(SPELL_VANISH) -- Vanish remaining cooldown
local invulCD = SCT(ITEM_INVUL) -- Limited Invulnerability Potion remaining cooldown
local healPotCD = SCT(ITEM_HEAL_POT) -- Major Healing Potion remaining cooldown
local sliceTime,_ = ART(SPELL_SLICE) -- Own Slice and Dice buff remaining duration
local cp = CP() -- Current combo points
local energy = P(3) -- Current available energy
local targetHpLow = HTP(0, 20) -- Check if target HP is below 20% (execute phase)
local spiderCD = SCT(ITEM_SPIDER) -- Kiss of the Spider trinket cooldown
local slayerCD = SCT(ITEM_SLAYER) -- Slayer's Crest trinket cooldown
local teamList = TeamMembers() -- Get party member list to determine if in a group
-- ====================== [Priority 1: Group OT self-preservation — only takes effect in multi-player parties / raids] ======================
-- Trigger conditions: party size > 1 (not solo) + self is at the top of the threat list (OT)
if #teamList > 1 and TTIS() then
-- Prioritize Vanish to clear threat; cast immediately if cooldown is ready
if vanishCD <= 0 then
S(SPELL_VANISH)
vanishCD = SCT(SPELL_VANISH) -- Refresh Vanish CD variable after cast to prevent repeated casting in a single cycle
-- If Vanish is on CD, use Limited Invulnerability Potion for emergency survival
elseif invulCD <= 0 then
M('/use Limited Invulnerability Potion')
invulCD = SCT(ITEM_INVUL) -- Refresh potion cooldown after use
end
end
-- ====================== [Priority 2: Auto-use healing potion at low HP] ======================
-- Condition: HP below 50% + potion cooldown ready; auto-heal to prevent sudden death
if hpPercent < 50 and healPotCD <= 0 then
M('/use Major Healing Potion')
healPotCD = SCT(ITEM_HEAL_POT)
end
-- ====================== [Priority 3: Maintain Slice and Dice sustained damage buff — keep it up at all times without interruption] ======================
-- Conditions: at least 1 combo point, Slice and Dice remaining duration < 2 seconds, energy ≥ 25 to cover cast cost
if cp >= 1 and sliceTime < 2000 and energy >= 25 then
S(SPELL_SLICE)
energy = P(3) -- Update remaining energy after cast
cp = CP() -- Update current combo points
end
-- ====================== [Priority 4: Eviscerate finisher logic — two separate checks for execute phase vs. normal phase] ======================
-- Rule: target HP below 20% (execute phase) → Eviscerate at 4 combo points; target full/mid HP → must build to 5 combo points before Eviscerate
if energy >= 35 and ((cp >= 4 and targetHpLow) or cp == 5) then
S(SPELL_EVISCERATE)
energy = P(3)
cp = CP()
end
-- ====================== [Priority 5: Sinister Strike to build combo points — keep building until 5 combo points] ======================
-- Conditions: current combo points ≤ 4, energy ≥ 40; keep building points in preparation for finishers
if cp <= 4 and energy >= 40 then
S(SPELL_SINISTER)
energy = P(3)
cp = CP()
end
-- ====================== [Priority 6: Auto-activate both DPS trinkets — restrict to target HP < 98% to avoid early-burst aggro death] ======================
-- Kiss of the Spider trinket
if HTP(0, 98) and spiderCD <= 0 then
M('/use Kiss of the Spider')
spiderCD = SCT(ITEM_SPIDER)
end
-- Slayer's Crest trinket
if HTP(0, 98) and slayerCD <= 0 then
M('/use Slayer's Crest')
slayerCD = SCT(ITEM_SLAYER)
end
end