双持狂暴战野外SOLO(简单注解)
2026年6月22日大约 2 分钟
双持狂暴战野外SOLO(简单注解)
第一步:打开黑兔客户端 → 点击"超级宏" → 新建一个宏 → 把下面代码粘贴进去。
第二步:在游戏里创建一个普通宏 /s S Yewai_DualWield(),绑到按键上使用。
-- ============ 双持狂暴战一键输出宏【野外单体】【精简注解】 ============
-- 优先级:血性狂暴 > 战斗怒吼 > 拳击打断 > 低血药水 > 输出技能 > 死亡之愿 > 断筋刷乱舞 > 饰品
function Yewai_DualWield()
-- 技能/物品ID常量区
local SPELL_BLOODRAGE = 2687 -- 血性狂暴
local SPELL_BATTLE_SHOUT = 25289 -- 战斗怒吼
local SPELL_BLOODTHIRST = 23894 -- 嗜血
local SPELL_WHIRLWIND = 1680 -- 旋风斩
local SPELL_EXECUTE = 20662 -- 斩杀
local SPELL_FLURRY_PROC = 7373 -- 断筋
local AURA_FLURRY = 12970 -- 乱舞buff
local SPELL_DEATH_WISH = 12328 -- 死亡之愿
local SPELL_YYDJ = 25286 -- 英勇打击
local SPELL_PUNCH = 6554 -- 拳击
local ITEM_HEAL_POT = 13446 -- 特效治疗药水
local ITEM_SPIDER = 22954 -- 蜘蛛之吻
local ITEM_BUGBADGE = 21647 -- 虫群卫士徽章
-- 统一预读全局状态
local me = GetMeInfo()
local hpPercent = me and (me.health / me.maxHealth * 100) or 100
local healPotCD = SCT(ITEM_HEAL_POT)
local inCombat = IsCombat()
local rage = Power(1)
local brCD = SCT(SPELL_BLOODRAGE)
local btCD = SCT(SPELL_BLOODTHIRST)
local wwCD = SCT(SPELL_WHIRLWIND)
local dwCD = SCT(SPELL_DEATH_WISH)
local punchCD = SCT(SPELL_PUNCH)
local shoutLeft = AuraRemainingTime(SPELL_BATTLE_SHOUT)
local targetCasting = TSI() > 0 -- 判断目标是否在读条
-- 血性狂暴回怒:怒气低于26就使用
if rage < 26 and brCD <= 0 then
S(SPELL_BLOODRAGE)
rage = Power(1)
brCD = SCT(SPELL_BLOODRAGE)
end
-- 维持战斗怒吼,怒气>9无buff补吼
if rage > 9 and shoutLeft <= 0 then
S(SPELL_BATTLE_SHOUT)
rage = Power(1)
shoutLeft = AuraRemainingTime(SPELL_BATTLE_SHOUT)
end
-- 目标正在施法、拳击无CD、怒气足够则优先拳击打断
if targetCasting and punchCD <= 0 and rage >9 then
S(SPELL_PUNCH)
rage = Power(1)
punchCD = SCT(SPELL_PUNCH)
end
-- 自身血量低于35%且药水冷却完毕自动喝特效治疗药水
if hpPercent < 36 and healPotCD <= 0 then
M('/use 特效治疗药水')
healPotCD = SCT(ITEM_HEAL_POT)
end
-- 输出循环优先级:斩杀 → 嗜血 → 英勇打击 → 旋风斩
-- 斩杀:可斩杀、嗜血CD、怒气>29
if CanWarriorExecute() and btCD > 0 and rage > 29 then
S(SPELL_EXECUTE)
rage = Power(1)
btCD = SCT(SPELL_BLOODTHIRST)
end
-- 嗜血主输出
if rage > 29 and btCD <= 0 then
S(SPELL_BLOODTHIRST)
rage = Power(1)
btCD = SCT(SPELL_BLOODTHIRST)
end
-- 卡英勇打击逻辑
local swingTimer = AttackTime1()
local curRage = rage
if swingTimer > 220 or curRage > 41 then
S(SPELL_YYDJ)
if swingTimer > 220 then
Sleep(1, swingTimer - 220, function()
if curRage > 41 then
S(SPELL_YYDJ)
else
StopCasting()
end
end)
end
end
-- 旋风斩填充:嗜血CD中、怒气>66
if wwCD <= 0 and rage > 66 and btCD > 0 then
S(SPELL_WHIRLWIND)
rage = Power(1)
wwCD = SCT(SPELL_WHIRLWIND)
end
-- 死亡之愿爆发
if rage > 9 and dwCD <= 0 then
S(SPELL_DEATH_WISH)
rage = Power(1)
dwCD = SCT(SPELL_DEATH_WISH)
end
-- 预读乱舞状态,无乱舞buff时打断筋刷新
local flurryLeft = AuraRemainingTime(AURA_FLURRY)
local flurryActive = flurryLeft > 0
if not flurryActive and rage > 9 and btCD > 0 then
S(SPELL_FLURRY_PROC)
rage = Power(1)
flurryLeft = AuraRemainingTime(AURA_FLURRY)
end
-- 双饰品仅战斗内自动开启
if inCombat then
local spiderCD = SCT(ITEM_SPIDER)
local bugBadgeCD = SCT(ITEM_BUGBADGE)
if spiderCD <= 0 then
M('/use 蜘蛛之吻')
end
if bugBadgeCD <= 0 then
M('/use 虫群卫士徽章')
end
end
end