双持狂暴战野外SOLO(详细注解)
2026年6月22日大约 5 分钟
双持狂暴战野外SOLO(详细注解)
第一步:打开黑兔客户端 → 点击"超级宏" → 新建一个宏 → 把下面代码粘贴进去。
第二步:在游戏里创建一个普通宏 /s S Yewai_DualWield(),绑到按键上使用。
-- ============ 双持狂暴战一键输出宏【野外单体完整版】 ============
-- 整体执行优先级从上到下:
-- 血性狂暴回怒 > 补战斗怒吼增益 > 拳击打断施法 > 低血量自动吃药 > 输出循环(斩杀>嗜血>英勇>旋风斩) > 死亡之愿爆发 > 断筋刷新乱舞BUFF > 自动开启双饰品
-- 使用场景:野外单体打怪,无自动选怪/平砍/取消嗜血debuff逻辑,手动控制目标
function Yewai_DualWield()
-- ====================== 技能/物品ID常量定义区 ======================
-- 增益、回怒技能
local SPELL_BLOODRAGE = 2687 -- 血性狂暴:快速获取怒气,解决断怒问题
local SPELL_BATTLE_SHOUT = 25289 -- 战斗怒吼:全队攻击强度增益buff
-- 核心输出技能
local SPELL_BLOODTHIRST = 23894 -- 嗜血:狂暴战核心填充输出技能
local SPELL_WHIRLWIND = 1680 -- 旋风斩:多目标/怒气溢出填充技能
local SPELL_EXECUTE = 20662 -- 斩杀:目标低血量高额伤害终结技
local SPELL_YYDJ = 25286 -- 英勇打击:同步平砍消耗多余怒气,提升单次平砍伤害
-- 功能性技能
local SPELL_FLURRY_PROC = 7373 -- 断筋:无乱舞buff时使用,触发乱舞增伤
local AURA_FLURRY = 12970 -- 乱舞buff:提升近战攻击速度核心增益
local SPELL_DEATH_WISH = 12328 -- 死亡之愿:爆发增伤,提升整体输出
local SPELL_PUNCH = 6554 -- 拳击:近战打断技能,中断目标施法读条
-- 消耗品、饰品道具ID
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 -- 计算自身当前血量百分比,空值默认满血100%
local healPotCD = SCT(ITEM_HEAL_POT) -- 获取特效治疗药水冷却时间
local inCombat = IsCombat() -- 判断自身是否处于战斗状态
local rage = Power(1) -- Power(1)读取怒气值,存入rage变量复用
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) -- 战斗怒吼buff剩余持续时间
local targetCasting = TSI() > 0 -- 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) -- 更新buff剩余时间
end
-- ====================== 第三优先级:拳击打断目标施法 ======================
-- 判定条件:目标在读条 + 拳击无冷却 + 怒气大于9(满足技能消耗),优先打断防止高额法术伤害
if targetCasting and punchCD <= 0 and rage >9 then
S(SPELL_PUNCH)
rage = Power(1)
punchCD = SCT(SPELL_PUNCH)
end
-- ====================== 第四优先级:低血量自动喝治疗药水自保 ======================
-- 自身血量百分比低于36%,且药水冷却就绪,自动使用特效治疗药水回血保命
if hpPercent < 36 and healPotCD <= 0 then
M('/use 特效治疗药水') -- M()函数发送游戏原生宏指令使用物品
healPotCD = SCT(ITEM_HEAL_POT) -- 刷新药水冷却时间
end
-- ====================== 第五优先级:核心输出循环 ======================
-- 5.1 斩杀(最高输出优先级)
-- 条件:目标可斩杀阶段 + 嗜血CD中 + 怒气大于29,优先打高额斩杀伤害
if CanWarriorExecute() and btCD > 0 and rage > 29 then
S(SPELL_EXECUTE)
rage = Power(1)
btCD = SCT(SPELL_BLOODTHIRST)
end
-- 5.2 嗜血(狂暴战核心输出)
-- 条件:怒气大于29 + 嗜血冷却完毕,无斩杀时优先释放嗜血
if rage > 29 and btCD <= 0 then
S(SPELL_BLOODTHIRST)
rage = Power(1)
btCD = SCT(SPELL_BLOODTHIRST)
end
-- 5.3 卡英勇打击:同步平砍泄怒机制
-- AttackTime1()获取主手武器平砍倒计时;平砍即将出手/怒气溢出41以上就打英勇同步伤害
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
-- 5.4 旋风斩填充(怒气溢出备用)
-- 条件:旋风斩无CD + 怒气大于66 + 嗜血处于冷却,怒气过多时填充伤害
if wwCD <= 0 and rage > 66 and btCD > 0 then
S(SPELL_WHIRLWIND)
rage = Power(1)
wwCD = SCT(SPELL_WHIRLWIND)
end
-- ====================== 第六优先级:死亡之愿爆发增伤 ======================
-- 怒气大于9、冷却完成自动开启,提升整体输出伤害
if rage > 9 and dwCD <= 0 then
S(SPELL_DEATH_WISH)
rage = Power(1)
dwCD = SCT(SPELL_DEATH_WISH)
end
-- ====================== 第七优先级:断筋刷新乱舞BUFF ======================
-- 预读乱舞buff剩余时间,判断是否缺少乱舞加速增益
local flurryLeft = AuraRemainingTime(AURA_FLURRY)
local flurryActive = flurryLeft > 0
-- 无乱舞buff、怒气充足、嗜血CD中时释放断筋,触发乱舞攻速加成
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