盾T一键仇恨输出宏(详细注解)
大约 6 分钟
盾T一键仇恨输出宏【需要防御姿态】(详细注解)
第一步:打开黑兔客户端 → 点击"超级宏" → 新建一个宏 → 把下面代码粘贴进去。
第二步:在游戏里创建一个普通宏 /s S DTank_Main(),绑到按键上使用。
-- ============ 盾T一键仇恨输出宏【需要防御姿态】 ============
-- 使用方法:/s S DTank_Main()
-- 执行优先级从上至下:残血生命宝石饰品+破釜沉舟 > 输出双饰品自动开启 > 血性狂暴回怒 > 战斗怒吼补攻强buff(破甲≥3层) > 嘲讽抢仇恨(目标目标不是自己) > 五层破甲补挫志怒吼 > 复仇泄怒 > 维持五层破甲 > 盾牌猛击填充 > 英勇打击泄怒 > 盾牌格挡增伤减伤 > 顺劈泄怒
-- 核心思路:血量低于26%自动开破釜沉舟,血量低于41%自动生命宝石,怒气低于26自动开血性狂暴兜底回怒,目标破甲≥3层且自身战斗怒吼buff不足2秒才补怒吼提升攻强,仇恨丢失且怒气充足自动嘲讽抢怪,五层破甲且挫志debuff剩余不足2秒自动补挫志怒吼减攻,复仇触发优先泄怒,其次维持五层破甲稳住仇恨,盾猛CD就绪自动开启提升盾牌猛击伤害,盾牌格挡怒气45以上,怒气大于74才释放顺劈斩大额泄怒
-- 未加入自动喝药水,盾墙、群嘲技能,需要根据实际情况手动释放
function DTank_Main()
-- ====================== 【常量统一定义区】技能、饰品、装备ID集中管理,便于替换调试 ======================
-- 怒气获取、团队增益技能
local SPELL_BLOODRAGE = 2687 -- 血性狂暴:怒气<26、CD就绪时使用,快速获取怒气,防止断怒无法释放仇恨技能
local SPELL_BATTLE_SHOUT = 25289 -- 高阶战斗怒吼:破甲≥3层、buff剩余<2秒、怒气>9时补,高额攻强提升仇恨伤害
local SPELL_TAUNT = 355 -- 嘲讽:目标仇恨不是自己、怒气>9时强制抢仇恨
local SPELL_PAIN_SUPPRESS = 12975 -- 破釜沉舟:血量<26%自动释放,瞬发无怒气消耗
-- 核心仇恨/减益/生存技能
local SPELL_SUNDER_ARMOR = 11597 -- 破甲攻击:五层上限,核心仇恨来源,维持全程不断
local SPELL_REVENGE = 11601 -- 复仇:高额威胁值,触发即优先泄怒
local SPELL_DEMORALIZE = 11556 -- 挫志怒吼:目标破甲5层、debuff剩余<2秒时补减攻
local SPELL_SHIELD_SLAM = 23922 -- 盾牌猛击:高仇恨填充技能
local SPELL_SHIELD_BLOCK = 2565 -- 盾牌格挡:增伤减伤,盾牌猛击CD就绪、怒气>45自动开启
-- 输出泄怒技能
local SPELL_HEROIC_STRIKE= 25286 -- 英勇打击:中段怒气泄怒,提升单次威胁
local SPELL_CLEAVE = 20569 -- 顺劈斩:怒气溢出大额泄怒,怒气>74释放
-- 保命消耗品/生存饰品
local ITEM_LIFE_GEM = 19341 -- 生命宝石:血量低于41%自动开启,大额抬血生存饰品
-- 输出主动饰品
local ITEM_SPIDER = 22954 -- 蜘蛛之吻:攻强急速饰品,战斗就绪自动开
local ITEM_BUG_BADGE = 21670 -- 虫群卫士徽章:生存/仇恨饰品,战斗就绪自动开
-- ====================== 【战斗状态批量预读区】一次性读取全部状态,减少重复API调用提升效率 ======================
local me = GetMeInfo()
local inCombat = IsCombat() -- 判断是否处于战斗,药水、饰品仅战斗内触发
local rage = Power(1) -- 当前怒气值
local brCD = SCT(SPELL_BLOODRAGE) -- 血性狂暴冷却
local shoutLeft = AuraRemainingTime(SPELL_BATTLE_SHOUT) -- 自身战斗怒吼buff剩余毫秒
local tauntCD = SCT(SPELL_TAUNT) -- 嘲讽冷却
local painSupCD = SCT(SPELL_PAIN_SUPPRESS) -- 破釜沉舟冷却
local demoralizeCD = SCT(SPELL_DEMORALIZE) -- 挫志怒吼冷却
local demoralizeDebuffDur,_ = TART(SPELL_DEMORALIZE) -- 目标挫志怒吼debuff剩余毫秒
local ssCD = SCT(SPELL_SHIELD_SLAM) -- 盾牌猛击冷却
local sbCD = SCT(SPELL_SHIELD_BLOCK) -- 盾牌格挡冷却
local spiderCD = SCT(ITEM_SPIDER) -- 蜘蛛之吻冷却
local bugBadgeCD = SCT(ITEM_BUG_BADGE) -- 虫群卫士徽章冷却
local sunderDur, sunderStack = TART(SPELL_SUNDER_ARMOR) -- 当前破甲剩余时长、堆叠层数
local lifeGemCD = SCT(ITEM_LIFE_GEM) -- 生命宝石饰品冷却
local hpPercent = me and (me.health / me.maxHealth * 100) or 100 -- 自身当前血量百分比
local isTargetSelf = TTIS() -- TTIS()简写判断目标的目标是否是自己
-- ====================== 【第一优先级:战斗内血量低于41%先开生命宝石;血量低于26%满足再释放破釜沉舟】 ======================
if inCombat then
-- 生命宝石优先执行
if lifeGemCD <= 0 then
if hpPercent < 41 then
M('/use 生命宝石')
lifeGemCD = SCT(ITEM_LIFE_GEM)
end
end
-- 破釜沉舟后置:血量<26%、CD就绪,无怒气要求
if hpPercent < 26 and painSupCD <= 0 then
S(SPELL_PAIN_SUPPRESS)
painSupCD = SCT(SPELL_PAIN_SUPPRESS)
end
end
-- ====================== 【第二优先级:战斗内自动开启双输出饰品,提升仇恨输出】(用饰品管理插件 上位交替使用,下位留给生命宝石常驻) ======================
if inCombat then
-- 蜘蛛之吻CD≤0就绪自动开启
if spiderCD <= 0 then
M('/use 蜘蛛之吻')
spiderCD = SCT(ITEM_SPIDER)
end
-- 虫群卫士徽章CD≤0就绪自动开启
if bugBadgeCD <= 0 then
M('/use 虫群卫士徽章')
bugBadgeCD = SCT(ITEM_BUG_BADGE)
end
end
-- ====================== 【第三优先级:血性狂暴CD≤0且怒气<26兜底回怒,怒气充足不释放】 ======================
if brCD <= 0 and rage < 26 then
S(SPELL_BLOODRAGE)
rage = Power(1)
brCD = SCT(SPELL_BLOODRAGE)
end
-- ====================== 【第四优先级:自身战斗怒吼buff剩余<2秒、怒气>9、目标破甲层数≥3层才补战斗怒吼维持攻强(等别人吼,兜底,几乎用不上)】 ======================
if inCombat and shoutLeft < 2000 and rage > 9 and sunderStack >= 3 then
S(SPELL_BATTLE_SHOUT)
rage = Power(1)
end
-- ====================== 【第五优先级:目标的目标不是自己、怒气>9、嘲讽CD≤0,立刻嘲讽夺回仇恨(救OT的大傻子)】 ======================
if inCombat and not isTargetSelf and rage > 9 and tauntCD <= 0 then
S(SPELL_TAUNT)
tauntCD = SCT(SPELL_TAUNT)
end
-- ====================== 【第六优先级:目标破甲5层、挫志debuff剩余<2秒、怒气>9、挫志CD≤0补挫志怒吼(等别人打,兜底,几乎用不上)】 ======================
if inCombat and sunderStack == 5 and demoralizeDebuffDur < 2000 and rage > 9 and demoralizeCD <= 0 then
S(SPELL_DEMORALIZE)
rage = Power(1)
demoralizeCD = SCT(SPELL_DEMORALIZE)
end
-- ====================== 【第七优先级:复仇CD≤0触发优先泄怒,怒气>4,高额威胁值,无冷却立刻释放】 ======================
if CanDefensiveStrike() and SCT(SPELL_REVENGE) <= 0 and rage > 4 then
Spell(SPELL_REVENGE)
rage = Power(1)
end
-- ====================== 【第八优先级:破甲层数未满5层 / 持续时间不足3秒,怒气>14续破甲叠满五层】 ======================
if (sunderStack < 5 or sunderDur < 3000) and rage > 14 then
S(SPELL_SUNDER_ARMOR)
rage = Power(1)
sunderDur, sunderStack = TART(SPELL_SUNDER_ARMOR)
end
-- ====================== 【第九优先级:怒气>24、盾牌猛击CD≤0填充,高仇恨稳定维持威胁】 ======================
if rage > 24 and ssCD <= 0 then
S(SPELL_SHIELD_SLAM)
rage = Power(1)
ssCD = SCT(SPELL_SHIELD_SLAM)
end
-- ====================== 【第十优先级:怒气>36开启英勇打击,条件满足就释放】 ======================
if rage > 36 then
S(SPELL_HEROIC_STRIKE)
rage = Power(1)
end
-- ====================== 【第十一优先级:盾牌格挡,怒气>45且盾牌猛击CD就绪时开启,强化盾猛伤害】 ======================
if rage > 45 and sbCD <= 0 and ssCD <= 0 then
S(SPELL_SHIELD_BLOCK)
rage = Power(1)
sbCD = SCT(SPELL_SHIELD_BLOCK)
end
-- ====================== 【第十二优先级:怒气>74顺劈斩大额泄怒,高段位兜底泄怒(兜底,几乎用不上)】 ======================
if rage > 74 then
S(SPELL_CLEAVE)
rage = Power(1)
end
end