
有兴趣的朋友可移步:
https://docs.qq.com/doc/DSmREWnBjQ3RQeGVC
【腾讯文档】野性德鲁伊一键宏
1. 熊T一键宏中增添了保证切换为熊形态的命令。
2. 修正了猫德一键宏中战斗状态判断调用错误函数的问题。
3. 猫德一键宏中对释放潜行增加“最少脱离战斗3秒后”的限制,避免出现因为按键过快,导致刚杀死目标就直接进入潜行的情况。
4. 猫德一键宏中增添了一条宏确保不会因自动攻击打破潜行而无法毁灭起手。
5. 猫德一键宏中增添了一条宏确保会在战斗且非潜行状态保持自动攻击。
6. 根据个人习惯微调优化了部分宏的参数。
7. 宏文本标点统一进行英文半角标准化,去除多余的标点和空格以压缩宏占用字节数。
8. 增添技能栏编号示意图。
近日有朋友在游戏里询问德鲁伊一键宏的问题,正好几天前花了些时间把自用的一键宏刚调配完,这里分享一下自用的手动档和自动挡宏,供德鲁伊玩家参考。(目前只有野性德鲁伊常用宏)
分享初衷:“授人以鱼,不如授人以渔”。本文通过对笔者使用宏的拆解及逻辑描述,帮助宏新手简单理解宏中的部分参数意义,以便借鉴者可以根据自己习惯调整宏内容,使其更加符合自己的使用习惯。
笔者对于一键宏的态度:一键宏就像开自动挡的车,相对简单高效。但手动挡也有手动挡独有的乐趣和灵活性,请根据自己的需求酌情选用。多数情况下,手动自动混合会得到比较好的游戏体验。
本文内提到的一键宏,需要专门的宏插件支持。由于本人不是宏大佬,使用的宏是参考网络上他人的分享内容,然后结合自身习惯和 DeepSeek 辅助修改输出的结果。这里只能陈述自己的使用环境和习惯,无法保证其他人使用不会出问题或报错。请恕本人能力有限,无法解答所有使用本宏后出现的问题。我只能保证自己使用时,暂时没有报错。
宏环境:需要宏插件 Classic Macro(经典宏)、SuperMacro(超级宏),这两个宏插件。同时需要最新的 !Libs必备依赖库 支持。另外,笔者运行环境还安装了 IsBuffActive(BUFF/DEBUFF 判断插件)。注意:笔者虽然使用黑猫插件,但是对于黑猫插件自带的【简单宏】插件是处于禁用状态的。因为黑猫的【简单宏】和我前面用到的两个宏插件冲突。最后,对于部分牵扯到技能栏编号的宏命令,建议将对应技能放到对应编号的技能栏以保证宏正确运行。
技能栏编号示意图:

一键宏使用方法:在超级宏内编辑完成后,直接将超级宏图标拖到动作栏使用。
野性手动宏:包含笔者自用的部分手动档宏,应对日常手动操作。
野性一键宏:熊T宏3个,猫德宏4个。之所以有7个宏,是因为笔者能力有限,无法做到用一个宏就覆盖所有战斗环境。只好通过不同战斗环境下使用不同的宏的操作思路来解决实战问题。
本质上,所有一键宏都是在1号一键宏的基础上进行的删改和微调。只需要理解1号一键宏的语句意义以及运行逻辑,便不难明白后几个宏的意义。所以,后文只详细描述1号一键宏的各语句意义,其他一键宏只做内容展示。
---------------------
#showtooltip
/cast [mod:shift]旅行形态;[nostance:1]巨熊形态;[stance:1]低吼
不在巨熊形态时,释放“巨熊形态”;在巨熊形态下时释放“低吼”;按住shift键时释放“旅行形态”。
-------
#showtooltip
/startattack
/cast [mod:shift]迅捷旅行形态;[nostance:1]巨熊形态;[stance:1]野性冲锋
释放自动攻击;不在巨熊形态时,释放“巨熊形态”;在巨熊形态下时释放“野性冲锋”;按住shift键时释放“迅捷旅行形态”。
-------
#showtooltip
/cast [mod:shift]猎豹形态;[stance:3,nostealth,nocombat]潜伏;[stance:3,combat]扫击;[nostance:3]猎豹形态;[stance:3,stealth]突袭
不在猎豹形态时,释放“猎豹形态”,在猎豹形态下,非战斗状态且非潜行时释放“潜伏”;在猎豹形态下且潜行时释放“突袭”;在猎豹形态下且战斗状态时释放“扫击”;按住shift键时释放“猎豹形态”。
-------
#showtooltip
/equip 月牙神像
/cast [mod:alt]撕碎;[stance:3,nostealth,nocombat]潜伏;[stance:3,nostealth]撕碎;[nostance:3]猎豹形态;[stance:3,stealth]毁灭
装备“月牙神像”;不在猎豹形态时,释放“猎豹形态”,在猎豹形态下,非战斗状态且非潜行时释放“潜伏”;在猎豹形态下且潜行时释放“毁灭”;在猎豹形态下且非潜行时释放“撕碎”;按住shift键时释放“撕碎”。
-------
#showtooltip
/equip 凶猛神像
/cast [mod:alt]扫击;爪击
装备“凶猛神像”;释放爪击;按住alt键时释放“扫击”。
-------
#showtooltip
/equip 腐败翡翠神像
/cast [mod:alt]撕扯;凶猛撕咬
装备“腐败翡翠神像”;释放凶猛撕咬;按住alt键时释放“撕扯”。
-------
/startattack
/cast [stance:1/3]精灵之火(野性)
/cast [stance:0/2/4/5/6]精灵之火
释放自动攻击;熊或猎豹形态下释放“精灵之火(野性)”,其他形态下释放“精灵之火”。(Tips:若没有自动切换形态插件,旅行或游泳形态下释放精灵火可能会受阻)
----------------------------
熊T一键宏:
---------------常规单体拉怪宏----------------
逐条分析宏命令内容:
1./script if GetActionText(23)~="愤怒" then PickupSpell(GetSpellIndex("愤怒"),BOOKTYPE_SPELL) PlaceAction(23) ClearCursor() end
功能:动态绑定“愤怒”技能到动作栏 23 号位置。(Tips:强制统一将动作条23格放置为愤怒技能,用以检测公共CD)
逻辑:
如果 23 号动作栏当前绑定的技能名称不是“愤怒”,则从法术书中获取该技能并放置到 23 号位置,清除光标残留操作。
2./script local c,s,i,b,f,a,_=CastShapeshiftForm;for i=1,6 do ,,a=GetShapeshiftFormInfo(i) if a then s=i break end end if not s then c(1) elseif s~=1 then c(s) end
功能:强制切换至熊形态。(Tips:执行逻辑:当不是熊形态时取消当前形态切换回人形态;当在人形态时,切换为熊形态。)
逻辑:
遍历 1-6 号形态栏位,检测当前激活的形态(a=true 表示已激活)。
若未激活任何形态(s 未赋值),切换到熊形态(c(1))。
若当前激活形态不是熊形态(s~=1),重新激活当前形态(用于取消当前非熊形态)。
3./startattack
功能:自动开始攻击目标。(Tips:需要宏插件支持)
说明:确保玩家在施放技能前已进入攻击状态。
4./script if GetSpellCooldown(3,"spell")<=0.2 and buffed("节能施法") then CastSpellByName("野蛮撕咬") else CastSpellByName("槌击") end
功能:优先级施放“野蛮撕咬”或“槌击”。 (Tips:实现有节能施法时尽量释放“野蛮撕咬”,否则释放“槌击”)
逻辑:
条件 1:若“野蛮撕咬”冷却时间 ≤0.2 秒且玩家有“节能施法”buff(0能量消耗)。
结果 1:施放“野蛮撕咬”。
条件 2:不满足上述条件时。
结果 2:施放“槌击”作为填充技能。
5./script if not buffed("精灵之火","target") and (GetActionCooldown(55)<0.2) then CastSpellByName("精灵之火(野性)") end
功能:检查目标是否缺少“精灵之火”debuff,并在条件满足时施放“精灵之火(野性)”。(Tips:确保目标身上最大限度覆盖精灵之火)
逻辑:
条件:目标无“精灵之火”debuff 且 55 号动作栏技能冷却完成。
结果:施放“精灵之火(野性)”。
6./script local a,rage=IsActionInRange(99),UnitMana("player") if (GetActionCooldown(23)<0.2) and not buffed("挫志","target") and a==1 and rage>=17 and UnitExists("target") and not UnitIsDeadOrGhost("target") and not buffed("狂暴回复") then CastSpellByName("挫志咆哮") end
功能:检查目标是否缺少“挫志”debuff,并在条件满足时施放“挫志咆哮”。 (Tips:确保目标身上最大限度覆盖挫志,并保证只在目标存活且处于近战范围内时才释放挫志;使用关键字“挫志”检测,确保如有战士释放挫志怒吼时,不再释放挫志咆哮;17点怒气阈值,保证留有7怒气释放槌击。)
逻辑:
条件:
23 号动作栏技能冷却完成。
目标无“挫志”debuff。
目标在近战范围内(a=1)。
玩家怒气 ≥17。
目标存在且存活。
玩家无“狂暴回复”buff。
结果:施放“挫志咆哮”。
7./script if GetSpellCooldown(3,"spell")<=0.2 and UnitMana("player")>=75 and not buffed("狂暴回复") then CastSpellByName("野蛮撕咬") end
功能:在条件满足时施放“野蛮撕咬”。(Tips:怒气高于等于75时,使用野蛮撕咬泄怒;同时,若处于狂暴回复情况下,则停止释放技能,留怒气给狂暴回复)
逻辑:
条件:“野蛮撕咬”冷却完成、怒气 ≥75、无“狂暴回复”buff。
结果:施放“野蛮撕咬”。
8./script if UnitMana("player")>=60 and not buffed("狂暴回复") then CastSpellByName("横扫") end
功能:在条件满足时施放“横扫”。(Tips:怒气高于等于60时,使用横扫泄怒;同时,若处于狂暴回复情况下,则停止释放技能,留怒气给狂暴回复)
逻辑:
条件:怒气 ≥60 且无“狂暴回复”buff。
结果:施放“横扫”。
9./script if UnitMana("player")>=7 and not buffed("狂暴回复") then CastSpellByName("槌击") end
功能:在条件满足时施放“槌击”。(Tips:怒气高于等于7时,释放槌击;同时,若处于狂暴回复情况下,则停止释放技能,留怒气给狂暴回复)
逻辑:
条件:怒气 ≥7 且无“狂暴回复”buff。
结果:施放“槌击”。
10./script local a,rage=IsActionInRange(99),UnitMana("player") if (GetActionCooldown(7)<0.2) and not buffed("血之狂暴") and rage<70 and a==1 and UnitExists("target") and not UnitIsDeadOrGhost("target") then CastSpellByName("激怒") end
功能:在条件满足时施放“激怒”。(Tips:当目标在攻击范围内时,卡CD释放激怒。保证最大化利用激怒获得的血之狂暴BUFF)
逻辑:
条件:
7 号动作栏技能冷却完成。
无“血之狂暴”buff。
当前怒气 <70。
目标在近战范围内且存活。
结果:施放“激怒”。
11./script if GetSpellCooldown(55,"spell")<=0.2 then CastSpellByName("精灵之火(野性)") end
功能:强制补“精灵之火”debuff(独立于第 5 条的逻辑)。(Tips:用精灵之火填充无法释放其他技能的间隙,最大化仇恨,同时期望触发节能施法)
逻辑:
条件:55 号法术书技能冷却完成。
结果:直接施放“精灵之火(野性)”。
12./script if buffed("狂暴回复") and UnitMana("player")<=70 and (GetActionCooldown(7)<0.2) then CastSpellByName("激怒") end
功能:在“狂暴回复”期间补充怒气。(Tips:当狂暴回复激活,且怒气小于等于70时,尽可能释放激怒产生怒气供应狂暴回复)
逻辑:
条件:
处于“狂暴回复”状态。
怒气 ≤70。
“激怒”冷却完成。
结果:施放“激怒”。
13./script if buffed("拯救祝福") then DEFAULT_CHAT_FRAME:AddMessage ("智能判断:身上存在拯救祝福") end
14./script if buffed("强效拯救祝福") then DEFAULT_CHAT_FRAME:AddMessage ("智能判断:身上存在强效拯救祝福") end
功能:检测玩家是否拥有“拯救祝福”或"强效拯救祝福"buff,并在聊天框中显示提示信息。(Tips:不使用直接解除拯救祝福BUFF命令,是因为据说有案例显示,解除命令有时会错误解除其他BUFF,故只使用信息提示)
说明:如果玩家拥有“拯救祝福”或“强效拯救祝福”buff,则在聊天框中显示“智能判断:身上存在拯救祝福”或“ 智能判断:身上存在强效拯救祝福”。
1. 常规单体拉怪宏(熊1号一键宏)

(Tips:熊1号一键宏)
/script if GetActionText(23)~="愤怒" then PickupSpell(GetSpellIndex("愤怒"),BOOKTYPE_SPELL) PlaceAction(23) ClearCursor() end
/script local c,s,i,b,f,a,_=CastShapeshiftForm;for i=1,6 do _,_,a=GetShapeshiftFormInfo(i) if a then s=i break end end if not s then c(1) elseif s~=1 then c(s) end
/startattack
/script if GetSpellCooldown(3,"spell")<=0.2 and buffed("节能施法") then CastSpellByName("野蛮撕咬") else CastSpellByName("槌击") end
/script if not buffed("精灵之火","target") and (GetActionCooldown(55)<0.2) then CastSpellByName("精灵之火(野性)") end
/script local a,rage=IsActionInRange(99),UnitMana("player") if (GetActionCooldown(23)<0.2) and not buffed("挫志","target") and a==1 and rage>=17 and UnitExists("target") and not UnitIsDeadOrGhost("target") and not buffed("狂暴回复") then CastSpellByName("挫志咆哮") end
/script if GetSpellCooldown(3,"spell")<=0.2 and UnitMana("player")>=75 and not buffed("狂暴回复") then CastSpellByName("野蛮撕咬") end
/script if UnitMana("player")>=60 and not buffed("狂暴回复") then CastSpellByName("横扫") end
/script if UnitMana("player")>=7 and not buffed("狂暴回复") then CastSpellByName("槌击") end
/script local a,rage=IsActionInRange(99),UnitMana("player") if (GetActionCooldown(7)<0.2) and not buffed("血之狂暴") and rage<70 and a==1 and UnitExists("target") and not UnitIsDeadOrGhost("target") then CastSpellByName("激怒") end
/script if GetSpellCooldown(55,"spell")<=0.2 then CastSpellByName("精灵之火(野性)") end
/script if buffed("狂暴回复") and UnitMana("player")<=70 and (GetActionCooldown(7)<0.2) then CastSpellByName("激怒") end
/script if buffed("拯救祝福") then DEFAULT_CHAT_FRAME:AddMessage("智能判断:身上存在拯救祝福") end
/script if buffed("强效拯救祝福") then DEFAULT_CHAT_FRAME:AddMessage("智能判断:身上存在强效拯救祝福") end
2. 常规群拉宏(熊2号一键宏)

(Tips:将熊1号一键宏中的横扫优先级提高)
/script if GetActionText(23)~="愤怒" then PickupSpell(GetSpellIndex("愤怒"),BOOKTYPE_SPELL) PlaceAction(23) ClearCursor() end
/script local c,s,i,b,f,a,_=CastShapeshiftForm;for i=1,6 do _,_,a=GetShapeshiftFormInfo(i) if a then s=i break end end if not s then c(1) elseif s~=1 then c(s) end
/startattack
/script if UnitMana("player")>=12 and not buffed("狂暴回复") then CastSpellByName("横扫") end
/script if GetSpellCooldown(3,"spell")<=0.2 and buffed("节能施法") then CastSpellByName("野蛮撕咬") else CastSpellByName("横扫") end
/script local a,rage=IsActionInRange(99),UnitMana("player") if (GetActionCooldown(23)<0.2) and not buffed("挫志","target") and a==1 and rage>=17 and UnitExists("target") and not UnitIsDeadOrGhost("target") and not buffed("狂暴回复") then CastSpellByName("挫志咆哮") end
/script if GetSpellCooldown(3,"spell")<=0.2 and UnitMana("player")>=75 and not buffed("狂暴回复") then CastSpellByName("野蛮撕咬") end
/script if UnitMana("player")>=19 and not buffed("狂暴回复") then CastSpellByName("槌击") end
/script local a,rage=IsActionInRange(99),UnitMana("player") if (GetActionCooldown(7)<0.2) and not buffed("血之狂暴") and rage<70 and a==1 and UnitExists("target") and not UnitIsDeadOrGhost("target") then CastSpellByName("激怒") end
/script if GetSpellCooldown(55,"spell")<=0.2 then CastSpellByName("精灵之火(野性)") end
/script if buffed("狂暴回复") and UnitMana("player")<=70 and (GetActionCooldown(7)<0.2) then CastSpellByName("激怒") end
/script if buffed("拯救祝福") then DEFAULT_CHAT_FRAME:AddMessage("智能判断:身上存在拯救祝福") end
/script if buffed("强效拯救祝福") then DEFAULT_CHAT_FRAME:AddMessage("智能判断:身上存在强效拯救祝福") end
3. 纯单体优先槌击宏(熊3号一键宏)

(Tips:将熊1号一键宏中的可能ADD元素去除)
/script if GetActionText(23)~="愤怒" then PickupSpell(GetSpellIndex("愤怒"),BOOKTYPE_SPELL) PlaceAction(23) ClearCursor() end
/script local c,s,i,b,f,a,_=CastShapeshiftForm;for i=1,6 do _,_,a=GetShapeshiftFormInfo(i) if a then s=i break end end if not s then c(1) elseif s~=1 then c(s) end
/startattack
/script if not buffed("精灵之火","target") and (GetActionCooldown(55)<0.2) then CastSpellByName("精灵之火(野性)") end
/script if GetSpellCooldown(3,"spell")<=0.2 and UnitMana("player")>=75 and not buffed("狂暴回复") then CastSpellByName("野蛮撕咬") end
/script if UnitMana("player")>=7 and not buffed("狂暴回复") then CastSpellByName("槌击") end
/script local a,rage=IsActionInRange(99),UnitMana("player") if (GetActionCooldown(7)<0.2) and not buffed("血之狂暴") and rage<70 and a==1 and UnitExists("target") and not UnitIsDeadOrGhost("target") then CastSpellByName("激怒") end
/script if GetSpellCooldown(55,"spell")<=0.2 then CastSpellByName("精灵之火(野性)") end
/script if buffed("狂暴回复") and UnitMana("player")<=70 and (GetActionCooldown(7)<0.2) then CastSpellByName("激怒") end
/script if buffed("拯救祝福") then DEFAULT_CHAT_FRAME:AddMessage("智能判断:身上存在拯救祝福") end
/script if buffed("强效拯救祝福") then DEFAULT_CHAT_FRAME:AddMessage("智能判断:身上存在强效拯救祝福") end
--------------
熊T一键宏使用场景简述:熊1号一键宏平衡了节能施法触发时以及高怒气时的资源消耗,以求最大化快速建立单体仇恨,可以覆盖绝大多数单体拉怪环境;熊2号一键宏将资源优先倾斜给横扫以确保多目标仇恨制造能力,在需要优先群体拉怪时使用;熊3号一键宏针对某些需要防止ADD的场合(例如安其拉神殿双子皇帝中虫T;或身边有被控制怪物,不可打醒控制等环境)使用。同时力求资源优先倾斜给槌击保证总体仇恨最大化,若有瞬时仇恨需求,需酌情手动释放野蛮撕咬等其他技能。
--------------------------------------------------------------------
---------------流血爪击宏---------------
逐条分析宏命令内容:
1. /script zj=34 sj=29
功能:初始化技能能量阈值。定义两个变量 zj 和 sj。(Tips:由于笔者使用5件T2.5和凶猛神像,故而爪击能量定义为40-3-3=34,扫击能量定义为35-3-3=29)
逻辑:
定义 zj=34(爪击能量阈值)和 sj=29(扫击能量阈值)。
2. /script local _,_,_,_,hntf=GetTalentInfo(3,2) local _,_,_,_,sstf=GetTalentInfo(2,10) local _,_,_,_,mhtf=GetTalentInfo(2,12) ss=60-6*sstf hn=hntf*8 kb=6+6*mhtf
功能:读取天赋数据并计算技能参数。
逻辑:
通过 GetTalentInfo 获取天赋等级:
hntf:获取第 3 行第 2 列的天赋点数。(Tips:恢复系的激怒天赋点数)
sstf:获取第 2 行第 10 列的天赋点数。(Tips:野性系的强化撕碎点数)
mhtf:获取第 2 行第 12 列的天赋点数。(Tips:野性系的强化猛虎点数)
计算:ss=60-6*sstf(撕碎能量消耗)、hn=hntf*8(利用激怒投入的天赋点数输出判断阈值,若点满5点激怒则输出为40)、kb=6+6*mhtf(猛虎之怒持续时间)。
3. /script if GetActionText(23)~="愤怒" then PickupSpell(GetSpellIndex("愤怒"),BOOKTYPE_SPELL) PlaceAction(23) ClearCursor() end
功能:动态绑定“愤怒”技能到动作栏23号位。(Tips:强制统一将动作条23格放置为愤怒技能,用以全局检测技能公共CD)
逻辑:
条件:23号动作栏未绑定“愤怒”技能。
结果:从法术书中抓取“愤怒”图标并放置到23号栏位,清除光标残留操作。
4. /script rake=UnitHasAura("target","扫击") tear=UnitHasAura("target","撕扯")
功能:检查目标是否拥有“扫击”和“撕扯”debuff,并将结果分别赋值给 rake 和 tear。(Tips:由于目前还没有特别完美的DEBUFF判断方案来区分目标身上的同名DEBUFF是自己释放的还是其他团员释放的,故若团队中有其他猫德,或目标身上存在同名DEBUFF,可能会导致自身释放的流血DEBUFF判断失误)
逻辑:
rake 标记目标是否有“扫击”debuff。
tear 标记目标是否有“撕扯”debuff。
5. /script local c,s,i,b,f,a,_=CastShapeshiftForm;for i=1,6 do _,_,a=GetShapeshiftFormInfo(i) if a then s=i break end end if not s then c(3) elseif s~=3 then c(s) end
功能:强制切换至猎豹形态。(Tips:执行逻辑:当不是猎豹形态时取消当前形态切换回人形态;当在人形态时,切换为猎豹形态。)
逻辑:
遍历 1-6 号形态栏位,检测当前激活的形态(a=true 表示已激活)。
若未激活任何形态(s 未赋值),切换到猎豹形态(c(3))。
若当前激活形态不是猎豹形态(s~=3),重新激活当前形态(用于取消当前非猎豹形态)。
6. /script if not tzTimer then tzTimer=0 end
功能:初始化脱战计时器。
逻辑:
声明全局变量 tzTimer 并初始化为 0。
7. /script if not UnitAffectingCombat("player") then if tzTimer==0 then tzTimer=GetTime() end if (GetTime()-tzTimer>=3) and not buffed("潜伏") and (GetActionCooldown(99)<=0.2) then CastSpellByName("潜伏") tzTimer=0 end else tzTimer=0 end
功能:脱战3秒后若可以的话,释放潜伏。
逻辑:
条件:
玩家未进入战斗(not UnitAffectingCombat("player"))。
脱战时间≥3秒(GetTime()-tzTimer>=3)。
未潜行(not buffed("潜伏"))。
潜伏技能可用(GetActionCooldown(99)<=0.2)。
结果:施放“潜伏”并重置计时器。
8. /script if (PlayerFrame.inCombat) and (buffed("潜伏") or not UnitAffectingCombat("player")) then CastSpellByName("攻击") end
功能:如果非战斗或潜行状态下已开始自动攻击则停止自动攻击。(Tips:防止因自动攻击解除潜行或进入战斗而导致无法打出毁灭)
逻辑:
条件:
玩家正在进行自动攻击。
玩家处于潜行状态或未进入战斗状态。
结果:施放“攻击”以停止当前自动攻击状态。
9. /script if not mhTimer then mhTimer=GetTime() end
功能:初始化 mhTimer 变量。
逻辑:
声明全局变量 mhTimer 并初始化为当前时间。
10. /script local mht=kb-(GetTime()-mhTimer) if not buffed("潜伏") and not buffed("血之狂暴") or ((mht<=1 and UnitMana("player")>=30) or UnitMana("player")==100) then CastSpellByName("猛虎之怒") mhTimer=GetTime() end
功能:在非“潜伏”状态下,根据能量值和“猛虎之怒”剩余时间施放“猛虎之怒”。 (Tips:最大限度覆盖“血之狂暴”。不用猛虎之怒BUFF来判断,是由于,切换形态会解除已有的猛虎之怒,如果以猛虎之怒来判断,会导致每次切换形态时获得的能量都有30被用于猛虎之怒。改用血之狂暴来判断,可以保证在血之狂暴覆盖期间,能量被最大限度的应用于伤害技能)。
逻辑:
条件:
未潜行且无“血之狂暴”buff。
猛虎剩余时间 ≤1秒且能量≥30,或能量满(100)。
结果:施放“猛虎之怒”并重置计时器。
11. /script if buffed("潜伏") then if UnitMana("player")>=90 and(not buffed("猛虎之怒")or(kb-(GetTime()-mhTimer))<12)then CastSpellByName("猛虎之怒")mhTimer=GetTime()elseif buffed("猛虎之怒") and (UnitMana("player")>=80 or buffed("节能施法")) then CastSpellByName("毁灭")end end
功能:在“潜伏”状态下,根据能量值和 buff 状态施放“猛虎之怒”或“毁灭”。 (Tips:毁灭技能起手式。尽量保证在潜行状态下且于能量高于等于80时以身带猛虎状态的毁灭起手;若同时存在节能施法,则无视80能量要求。)
逻辑:
条件1:能量≥90且猛虎剩余时间<12秒。
结果:施放“猛虎之怒”。
条件2:已有猛虎buff且能量≥80(或触发节能施法)。
结果:施放“毁灭”(需潜行后背发动技能)。
12. /script if (not PlayerFrame.inCombat) and UnitAffectingCombat("player") and not buffed("潜伏") then CastSpellByName("攻击") end
功能:如果已处在战斗且非潜行状态下而没有开始自动攻击,则释放攻击。(Tips:战斗中切换目标后,若没有自动攻击则立刻自动攻击。)
逻辑:
条件:
玩家正没有进行自动攻击。
玩家处于非潜行状态且战斗状态。
结果:施放“攻击”以开始对当前自动攻击状态。
13. /script if not buffed("潜伏") and not UnitHasAura("target","精灵之火") and UnitAffectingCombat("player") and not buffed("节能施法") then CastSpellByName("精灵之火(野性)") end
功能:在非“潜伏”状态下,如果目标没有“精灵之火”debuff,则施放“精灵之火(野性)”。(Tips:最大限度保证目标身上覆盖精灵之火,同时保证有节能施法时不释放精灵之火,避免进入GCD影响DPS)
逻辑:
条件:非潜行、目标无“精灵之火”、玩家未触发节能施法。
结果:施放“精灵之火(野性)”。
14. /script if (GetComboPoints("target")>3 and UnitHealth("target")<2000) or (GetComboPoints("target")>2 and UnitHealth("target")<1500) or (GetComboPoints("target")>1 and UnitHealth("target")<1000) then CastSpellByName("凶猛撕咬") end
功能:根据连击点数和目标血量施放“凶猛撕咬”。(Tips:目标残血时,优先释放凶猛撕咬,以避免浪费连击点。)
逻辑:
条件:目标血量低于阈值且连击点数足够(如3星+2000血以下)。
结果:提前施放“凶猛撕咬”。
15. /script if not catTimer then catTimer=GetTime() end
功能:初始化 catTimer 变量。
逻辑:
声明全局变量 catTimer 并初始化为当前时间。
16. /script if (GetActionCooldown(23)<0.1)and UnitMana("player")<zj-20 and hn>39 and not buffed("节能施法")and((not UnitHasAura("target","智慧审判")and GetComboPoints("target")<4 and(GetTime()-catTimer>9))or UnitHasAura("target","智慧审判"))then CastSpellByName("猎豹形态") catTimer=GetTime() end
功能:根据能量值和目标状态施放“猎豹形态”。(Tips:能量转换宏。当激怒天赋点满5点时才会触发。其他触发条件为:当前能量低于爪击需要能量-20时,若目标身上没智慧审判,则需要满足目标当前连击点小于4且距离上次变身时间超过9秒才会进行形态切换。若目标身上有智慧审判,则无视连击点和变身间隔要求;当自身存在节能施法时,暂不进行形态切换。)
逻辑:
条件:
动作条第 23 格的技能冷却时间小于 0.1 秒。
能量低于阈值(zj-20)。
变量hn的值大于39。
身上没有节能施法BUFF
目标无“智慧审判”且连击点<4且距离上次切换形态超过9秒,或目标有“智慧审判”。
结果:切回猎豹形态回能量,并重置计时器。
17. /script if not scTimer then scTimer=GetTime() end
功能:初始化 scTimer 变量。
逻辑:
声明全局变量 scTimer 并初始化为当前时间。
18. /script if not buffed("潜伏") and GetComboPoints("target")>0 and not tear and UnitAffectingCombat("player") then CastSpellByName("撕扯")scTimer=GetTime() end
功能:在非“潜行”状态下,根据连击点数和玩家状态施放“撕扯”。(Tips:最大限度保证撕扯覆盖,以触发T2.5效果)
逻辑:
条件:
玩家不在潜行状态。
目标身上连击点数大于0。
目标身上没有“撕扯”debuff。
玩家处于战斗状态。
结果:释放“撕扯”,并重置计时器。
19. /script if not buffed("潜伏") and not rake and GetComboPoints("target")<4 and UnitAffectingCombat("player") and UnitMana("player")>=sj then CastSpellByName("扫击") end
功能:在非“潜行”状态下,根据连击点数和玩家状态施放“扫击”。(Tips:最大限度保证扫击覆盖,以触发T2.5效果)
逻辑:
条件:
玩家不在潜行状态。
目标身上连击点数小于4。
目标身上没有“扫击”debuff。
玩家处于战斗状态。
玩家能量值大于等于sj。
结果:释放“扫击”。
20. /script if not buffed("潜伏") and UnitMana("player")>=zj and GetComboPoints("target")<4 and UnitAffectingCombat("player") and rake and tear then CastSpellByName("爪击") end
功能:在非“潜行”状态下,根据连击点数和玩家状态施放“撕扯”。(Tips:最大限度保证撕扯覆盖,以触发T2.5效果)
逻辑:
条件:
玩家不在潜行状态。
目标身上连击点数小于4。
目标身上有“扫击”和“撕扯”debuff。
玩家处于战斗状态
玩家能量值大于等于zj
结果:释放“爪击”。
21. /script if not buffed("潜伏") and GetComboPoints("target")>3 and UnitMana("player")>=35 and (12-(GetTime()-scTimer))>2 and (kb-(GetTime()-mhTimer))>3 and (UnitMana("player")<=80 or GetComboPoints("target")==5) then CastSpellByName("凶猛撕咬") end
功能:在非“潜伏”状态下,根据连击点数和目标状态施放“凶猛撕咬”。(Tips:在保证撕扯和猛虎之怒覆盖率的前提下,最大限度释放凶猛撕咬)
逻辑:
条件:
玩家不在潜行状态。
目标身上连击点数大于3。
目标身上“撕扯”debuff剩余时间大于2秒。
血之狂暴持续时间大于3秒
玩家能量值大于等于35。
玩家能量值小于等于80 或者 连击点数等于5。
结果:释放“凶猛撕咬”。
22. /script if not buffed("潜伏") and buffed("节能施法") then if (kb-(GetTime()-mhTimer))>3 and GetComboPoints("target")>3 and (12-(GetTime()-scTimer))>2 then CastSpellByName("凶猛撕咬") elseif not tear and GetComboPoints("target")>0 then CastSpellByName("撕扯") scTimer=GetTime() elseif not rake and GetComboPoints("target")<4 then CastSpellByName("扫击") elseif GetComboPoints("target")<4 then CastSpellByName("爪击") end end
功能:在非“潜伏”状态下,当拥有“节能施法”buff 时,根据目标状态施放技能。(Tips:节能施法触发时,优先保证撕扯,然后根据连击点判断是否扫击或爪击,最后在保证猛虎和撕扯覆盖时间的情况下,释放凶猛撕咬)
逻辑:
条件0:
玩家不在潜行状态。
玩家身上有“节能施法”BUFF。
条件1:
目标身上连击点数大于3。
目标身上“撕扯”debuff剩余时间大于2秒。
结果1:释放“凶猛撕咬”。
条件2:
目标身上连击点数大于0。
目标身上没有“撕扯”debuff。
结果2:释放“撕扯”,重置计时器。
条件3:
目标身上连击点数小于4。
目标身上没有“扫击”debuff。
结果3:释放“扫击”。
条件4:
目标身上连击点数小于4。
结果4:释放“爪击”。
23. /script if not buffed("潜伏") and UnitMana("player")<zj and UnitAffectingCombat("player") and not buffed("节能施法") then CastSpellByName("精灵之火(野性)") end
功能:在非“潜伏”状态下,根据条件施放“精灵之火(野性)”。(Tips:技能CD或低能量期间,填充精灵之火以求触发“节能施法”。同时保证有“节能施法时”不释放精灵之火,避免进入公共CD影响DPS)
逻辑:
条件:
玩家不在潜行状态。
玩家处于战斗状态。
玩家能量值小于zj。
玩家身上没有“节能施法”BUFF。
结果:释放“精灵之火(野性)”。
24. /script if GetComboPoints("target")>3 then UseItemByName("腐败翡翠神像") else UseItemByName("凶猛神像") end
功能:根据目标连击点数装备不同的神像。(Tips:神像舞宏。使用终结技前装备腐败翡翠神像,以求触发特效。战斗中更换神像会触发公共CD,在释放技能后立刻更换神像可以将更换神像引发的公共CD影响降至最低,但不是完全没有。请根据自己网络情况和实际游戏体验酌情决定是否使用神像舞宏。)
逻辑:
条件:连击点>3。
结果:装备“腐败翡翠神像”(终结技附加神像伤害)。
其他情况:使用“凶猛神像”(降低基础技能能量消耗)。
1. 流血爪击宏(猫德1号一键宏)

(Tips:猫德1号一键宏)
/script zj=34 sj=29
/script local _,_,_,_,hntf=GetTalentInfo(3,2) local _,_,_,_,sstf=GetTalentInfo(2,10) local _,_,_,_,mhtf=GetTalentInfo(2,12) ss=60-6*sstf hn=hntf*8 kb=6+6*mhtf
/script if GetActionText(23)~="愤怒" then PickupSpell(GetSpellIndex("愤怒"),BOOKTYPE_SPELL) PlaceAction(23) ClearCursor() end
/script rake=UnitHasAura("target","扫击") tear=UnitHasAura("target","撕扯")
/script local c,s,i,b,f,a,_=CastShapeshiftForm;for i=1,6 do _,_,a=GetShapeshiftFormInfo(i) if a then s=i break end end if not s then c(3) elseif s~=3 then c(s) end
/script if not tzTimer then tzTimer=0 end
/script if not UnitAffectingCombat("player") then if tzTimer==0 then tzTimer=GetTime() end if (GetTime()-tzTimer>=3) and not buffed("潜伏") and (GetActionCooldown(99)<=0.2) then CastSpellByName("潜伏") tzTimer=0 end else tzTimer=0 end
/script if (PlayerFrame.inCombat) and (buffed("潜伏") or not UnitAffectingCombat("player")) then CastSpellByName("攻击") end
/script if not mhTimer then mhTimer=GetTime() end
/script local mht=kb-(GetTime()-mhTimer) if not buffed("潜伏") and not buffed("血之狂暴") or ((mht<=1 and UnitMana("player")>=30) or UnitMana("player")==100) then CastSpellByName("猛虎之怒") mhTimer=GetTime() end
/script if buffed("潜伏") then if UnitMana("player")>=90 and(not buffed("猛虎之怒")or(kb-(GetTime()-mhTimer))<12)then CastSpellByName("猛虎之怒")mhTimer=GetTime()elseif buffed("猛虎之怒") and (UnitMana("player")>=80 or buffed("节能施法")) then CastSpellByName("毁灭")end end
/script if (not PlayerFrame.inCombat) and UnitAffectingCombat("player") and not buffed("潜伏") then CastSpellByName("攻击") end
/script if not buffed("潜伏") and not UnitHasAura("target","精灵之火") and UnitAffectingCombat("player") and not buffed("节能施法") then CastSpellByName("精灵之火(野性)") end
/script if (GetComboPoints("target")>3 and UnitHealth("target")<2000) or (GetComboPoints("target")>2 and UnitHealth("target")<1500) or (GetComboPoints("target")>1 and UnitHealth("target")<1000) then CastSpellByName("凶猛撕咬") end
/script if not catTimer then catTimer=GetTime() end
/script if (GetActionCooldown(23)<0.1)and UnitMana("player")<zj-20 and hn>39 and not buffed("节能施法")and((not UnitHasAura("target","智慧审判")and GetComboPoints("target")<4 and(GetTime()-catTimer>9))or UnitHasAura("target","智慧审判"))then CastSpellByName("猎豹形态") catTimer=GetTime() end
/script if not scTimer then scTimer=GetTime() end
/script if not buffed("潜伏") and GetComboPoints("target")>0 and not tear and UnitAffectingCombat("player") then CastSpellByName("撕扯")scTimer=GetTime() end
/script if not buffed("潜伏") and not rake and GetComboPoints("target")<4 and UnitAffectingCombat("player") and UnitMana("player")>=sj then CastSpellByName("扫击") end
/script if not buffed("潜伏") and UnitMana("player")>=zj and GetComboPoints("target")<4 and UnitAffectingCombat("player") and rake and tear then CastSpellByName("爪击") end
/script if not buffed("潜伏") and GetComboPoints("target")>3 and UnitMana("player")>=35 and (12-(GetTime()-scTimer))>2 and (kb-(GetTime()-mhTimer))>3 and (UnitMana("player")<=80 or GetComboPoints("target")==5) then CastSpellByName("凶猛撕咬") end
/script if not buffed("潜伏") and buffed("节能施法") then if (kb-(GetTime()-mhTimer))>3 and GetComboPoints("target")>3 and (12-(GetTime()-scTimer))>2 then CastSpellByName("凶猛撕咬") elseif not tear and GetComboPoints("target")>0 then CastSpellByName("撕扯") scTimer=GetTime() elseif not rake and GetComboPoints("target")<4 then CastSpellByName("扫击") elseif GetComboPoints("target")<4 then CastSpellByName("爪击") end end
/script if not buffed("潜伏") and UnitMana("player")<zj and UnitAffectingCombat("player") and not buffed("节能施法") then CastSpellByName("精灵之火(野性)") end
/script if GetComboPoints("target")>3 then UseItemByName("腐败翡翠神像") else UseItemByName("凶猛神像") end
2. 流血撕碎宏(猫德2号一键宏)

(Tips:将猫德1号一键宏中的对应技能和参数更换为撕碎)
/script zj=37 sj=32
/script local _,_,_,_,hntf=GetTalentInfo(3,2) local _,_,_,_,sstf=GetTalentInfo(2,10) local _,_,_,_,mhtf=GetTalentInfo(2,12) ss=60-6*sstf hn=hntf*8 kb=6+6*mhtf
/script if GetActionText(23)~="愤怒" then PickupSpell(GetSpellIndex("愤怒"),BOOKTYPE_SPELL) PlaceAction(23) ClearCursor() end
/script rake=UnitHasAura("target","扫击") tear=UnitHasAura("target","撕扯")
/script local c,s,i,b,f,a,_=CastShapeshiftForm;for i=1,6 do _,_,a=GetShapeshiftFormInfo(i) if a then s=i break end end if not s then c(3) elseif s~=3 then c(s) end
/script if not tzTimer then tzTimer=0 end
/script if not UnitAffectingCombat("player") then if tzTimer==0 then tzTimer=GetTime() end if (GetTime()-tzTimer>=3) and not buffed("潜伏") and (GetActionCooldown(99)<=0.2) then CastSpellByName("潜伏") tzTimer=0 end else tzTimer=0 end
/script if (PlayerFrame.inCombat) and (buffed("潜伏") or not UnitAffectingCombat("player")) then CastSpellByName("攻击") end
/script if not mhTimer then mhTimer=GetTime() end
/script local mht=kb-(GetTime()-mhTimer) if not buffed("潜伏") and not buffed("血之狂暴") or ((mht<=1 and UnitMana("player")>=30) or UnitMana("player")==100) then CastSpellByName("猛虎之怒") mhTimer=GetTime() end
/script if buffed("潜伏") then if UnitMana("player")>=90 and(not buffed("猛虎之怒")or(kb-(GetTime()-mhTimer))<12)then CastSpellByName("猛虎之怒")mhTimer=GetTime()elseif buffed("猛虎之怒") and (UnitMana("player")>=80 or buffed("节能施法")) then CastSpellByName("毁灭")end end
/script if (not PlayerFrame.inCombat) and UnitAffectingCombat("player") and not buffed("潜伏") then CastSpellByName("攻击") end
/script if not buffed("潜伏") and not UnitHasAura("target","精灵之火") and UnitAffectingCombat("player") and not buffed("节能施法") then CastSpellByName("精灵之火(野性)") end
/script if (GetComboPoints("target")>3 and UnitHealth("target")<2000) or (GetComboPoints("target")>2 and UnitHealth("target")<1500) or (GetComboPoints("target")>1 and UnitHealth("target")<1000) then CastSpellByName("凶猛撕咬") end
/script if not catTimer then catTimer=GetTime() end
/script if (GetActionCooldown(23)<0.1)and UnitMana("player")<ss-20 and hn>39 and not buffed("节能施法")and((not UnitHasAura("target","智慧审判")and GetComboPoints("target")<4 and not buffed("强化撕碎"))or UnitHasAura("target","智慧审判"))then CastSpellByName("猎豹形态") catTimer=GetTime() end
/script if not scTimer then scTimer=GetTime() end
/script if not buffed("潜伏") and GetComboPoints("target")>0 and not tear and UnitAffectingCombat("player") then CastSpellByName("撕扯")scTimer=GetTime() end
/script if not buffed("潜伏") and not rake and GetComboPoints("target")<4 and UnitAffectingCombat("player") and UnitMana("player")>=sj then CastSpellByName("扫击") end
/script if not buffed("潜伏") and UnitMana("player")>=ss and GetComboPoints("target")<4 and UnitAffectingCombat("player") and rake and tear then CastSpellByName("撕碎") end
/script if not buffed("潜伏") and GetComboPoints("target")>3 and UnitMana("player")>=35 and (12-(GetTime()-scTimer))>2 and (kb-(GetTime()-mhTimer))>3 and (UnitMana("player")<=80 or GetComboPoints("target")==5) then CastSpellByName("凶猛撕咬") end
/script if not buffed("潜伏") and buffed("节能施法") then if (kb-(GetTime()-mhTimer))>3 and GetComboPoints("target")>3 and (12-(GetTime()-scTimer))>2 then CastSpellByName("凶猛撕咬") elseif not tear and GetComboPoints("target")>0 then CastSpellByName("撕扯") scTimer=GetTime() elseif not rake and GetComboPoints("target")<4 then CastSpellByName("扫击") elseif GetComboPoints("target")<4 then CastSpellByName("撕碎") end end
/script if not buffed("潜伏") and UnitMana("player")<ss and UnitAffectingCombat("player") and not buffed("节能施法") then CastSpellByName("精灵之火(野性)") end
/script if GetComboPoints("target")>3 then UseItemByName("腐败翡翠神像") else UseItemByName("月牙神像") end
3. 无流血爪击宏(猫德3号一键宏)

(Tips:将猫德1号一键宏中的流血技能对应命令删除)
/script zj=34 sj=29
/script local _,_,_,_,hntf=GetTalentInfo(3,2) local _,_,_,_,sstf=GetTalentInfo(2,10) local _,_,_,_,mhtf=GetTalentInfo(2,12) ss=60-6*sstf hn=hntf*8 kb=6+6*mhtf
/script if GetActionText(23)~="愤怒" then PickupSpell(GetSpellIndex("愤怒"),BOOKTYPE_SPELL) PlaceAction(23) ClearCursor() end
/script local c,s,i,b,f,a,_=CastShapeshiftForm;for i=1,6 do _,_,a=GetShapeshiftFormInfo(i) if a then s=i break end end if not s then c(3) elseif s~=3 then c(s) end
/script if not tzTimer then tzTimer=0 end
/script if not UnitAffectingCombat("player") then if tzTimer==0 then tzTimer=GetTime() end if (GetTime()-tzTimer>=3) and not buffed("潜伏") and (GetActionCooldown(99)<=0.2) then CastSpellByName("潜伏") tzTimer=0 end else tzTimer=0 end
/script if (PlayerFrame.inCombat) and (buffed("潜伏") or not UnitAffectingCombat("player")) then CastSpellByName("攻击") end
/script if not mhTimer then mhTimer=GetTime() end
/script local mht=kb-(GetTime()-mhTimer) if not buffed("潜伏") and not buffed("血之狂暴") or ((mht<=1 and UnitMana("player")>=30) or UnitMana("player")==100) then CastSpellByName("猛虎之怒") mhTimer=GetTime() end
/script if buffed("潜伏") then if UnitMana("player")>=90 and(not buffed("猛虎之怒")or(kb-(GetTime()-mhTimer))<12)then CastSpellByName("猛虎之怒")mhTimer=GetTime()elseif buffed("猛虎之怒") and (UnitMana("player")>=80 or buffed("节能施法")) then CastSpellByName("毁灭")end end
/script if (not PlayerFrame.inCombat) and UnitAffectingCombat("player") and not buffed("潜伏") then CastSpellByName("攻击") end
/script if not buffed("潜伏") and not UnitHasAura("target","精灵之火") and UnitAffectingCombat("player") and not buffed("节能施法") then CastSpellByName("精灵之火(野性)") end
/script if (GetComboPoints("target")>3 and UnitHealth("target")<2000) or (GetComboPoints("target")>2 and UnitHealth("target")<1500) or (GetComboPoints("target")>1 and UnitHealth("target")<1000) then CastSpellByName("凶猛撕咬") end
/script if not catTimer then catTimer=GetTime() end
/script if (GetActionCooldown(23)<0.1)and UnitMana("player")<zj-20 and hn>39 and not buffed("节能施法")and((not UnitHasAura("target","智慧审判")and GetComboPoints("target")<4 and(GetTime()-catTimer>9))or UnitHasAura("target","智慧审判"))then CastSpellByName("猎豹形态") catTimer=GetTime() end
/script if not buffed("潜伏") and UnitMana("player")>=zj and GetComboPoints("target")<4 and UnitAffectingCombat("player") then CastSpellByName("爪击") end
/script if not buffed("潜伏") and GetComboPoints("target")>3 and UnitMana("player")>=35 and (kb-(GetTime()-mhTimer))>3 and (UnitMana("player")<=80 or GetComboPoints("target")==5) then CastSpellByName("凶猛撕咬") end
/script if not buffed("潜伏") and buffed("节能施法") then if (kb-(GetTime()-mhTimer))>3 and GetComboPoints("target")>3 then CastSpellByName("凶猛撕咬") elseif GetComboPoints("target")<4 then CastSpellByName("爪击") end end
/script if not buffed("潜伏") and UnitMana("player")<zj and UnitAffectingCombat("player") and not buffed("节能施法") then CastSpellByName("精灵之火(野性)") end
/script if GetComboPoints("target")>3 then UseItemByName("腐败翡翠神像") else UseItemByName("凶猛神像") end
4. 无流血撕碎宏(猫德4号一键宏)

(Tips:将猫德2号一键宏中的流血技能对应命令删除)
/script zj=37 sj=32
/script local _,_,_,_,hntf=GetTalentInfo(3,2) local _,_,_,_,sstf=GetTalentInfo(2,10) local _,_,_,_,mhtf=GetTalentInfo(2,12) ss=60-6*sstf hn=hntf*8 kb=6+6*mhtf
/script if GetActionText(23)~="愤怒" then PickupSpell(GetSpellIndex("愤怒"),BOOKTYPE_SPELL) PlaceAction(23) ClearCursor() end
/script local c,s,i,b,f,a,_=CastShapeshiftForm;for i=1,6 do _,_,a=GetShapeshiftFormInfo(i) if a then s=i break end end if not s then c(3) elseif s~=3 then c(s) end
/script if not tzTimer then tzTimer=0 end
/script if not UnitAffectingCombat("player") then if tzTimer==0 then tzTimer=GetTime() end if (GetTime()-tzTimer>=3) and not buffed("潜伏") and (GetActionCooldown(99)<=0.2) then CastSpellByName("潜伏") tzTimer=0 end else tzTimer=0 end
/script if (PlayerFrame.inCombat) and (buffed("潜伏") or not UnitAffectingCombat("player")) then CastSpellByName("攻击") end
/script if not mhTimer then mhTimer=GetTime() end
/script local mht=kb-(GetTime()-mhTimer) if not buffed("潜伏") and not buffed("血之狂暴") or ((mht<=1 and UnitMana("player")>=30) or UnitMana("player")==100) then CastSpellByName("猛虎之怒") mhTimer=GetTime() end
/script if buffed("潜伏") then if UnitMana("player")>=90 and(not buffed("猛虎之怒")or(kb-(GetTime()-mhTimer))<12)then CastSpellByName("猛虎之怒")mhTimer=GetTime()elseif buffed("猛虎之怒") and (UnitMana("player")>=80 or buffed("节能施法")) then CastSpellByName("毁灭")end end
/script if (not PlayerFrame.inCombat) and UnitAffectingCombat("player") and not buffed("潜伏") then CastSpellByName("攻击") end
/script if not buffed("潜伏") and not UnitHasAura("target","精灵之火") and UnitAffectingCombat("player") and not buffed("节能施法") then CastSpellByName("精灵之火(野性)") end
/script if (GetComboPoints("target")>3 and UnitHealth("target")<2000) or (GetComboPoints("target")>2 and UnitHealth("target")<1500) or (GetComboPoints("target")>1 and UnitHealth("target")<1000) then CastSpellByName("凶猛撕咬") end
/script if not catTimer then catTimer=GetTime() end
/script if (GetActionCooldown(23)<0.1)and UnitMana("player")<ss-20 and hn>39 and not buffed("节能施法")and((not UnitHasAura("target","智慧审判")and GetComboPoints("target")<4 and not buffed("强化撕碎"))or UnitHasAura("target","智慧审判"))then CastSpellByName("猎豹形态") catTimer=GetTime() end
/script if not buffed("潜伏") and UnitMana("player")>=ss and GetComboPoints("target")<4 and UnitAffectingCombat("player") then CastSpellByName("撕碎") end
/script if not buffed("潜伏") and GetComboPoints("target")>3 and UnitMana("player")>=35 and (kb-(GetTime()-mhTimer))>3 and (UnitMana("player")<=80 or GetComboPoints("target")==5) then CastSpellByName("凶猛撕咬") end
/script if not buffed("潜伏") and buffed("节能施法") then if (kb-(GetTime()-mhTimer))>3 and GetComboPoints("target")>3 then CastSpellByName("凶猛撕咬") elseif GetComboPoints("target")<5 then CastSpellByName("撕碎") end end
/script if not buffed("潜伏") and UnitMana("player")<ss and UnitAffectingCombat("player") and not buffed("节能施法") then CastSpellByName("精灵之火(野性)") end
/script if GetComboPoints("target")>3 then UseItemByName("腐败翡翠神像") else UseItemByName("月牙神像") end
--------------
猫德一键宏使用场景简述:猫德1号一键宏一般应用于需要正面输出的可流血目标,若遇到流血免疫目标则改用猫德3号一键宏;猫德2号一键宏一般应用于可背后输出的环境,若遇到流血免疫目标则改用猫德4号一键宏。
需要注意的是当前游戏环境内,并不能绝对化的以目标种族来判断其是否免疫流血(纯假设个例:非亡灵非元素但免疫流血;或者,属于亡灵属于元素但不免疫流血)。另,此系列一键宏由于为了覆盖从起手到结束的全流程判断,已经过于冗长,过多的判定条件,可能会影响其执行效能,增加出错概率。
关于对于DEBUFF是否源于自身释放的判断问题
笔者曾经尝试过几种网上提到的方法,包括但不局限于某些插件,某些命令,但最终没有得到比较理想的效果(要么插件经常出错,不稳定;要么某些判断命令未能在笔者的游戏环境内有效运行;最终导致一键宏运行报错),最后暂时放弃了对于DEBUFF是否为自身释放判定的研究。如有大佬能分享完美解决方案,这里不胜感激。
关于能量转换宏判定阈值设置问题。
在没有智慧审判支持的情况下,过多的变身进行能量转换容易出现空蓝情况。会产生一键宏在SOLO和队伍战斗中出现由于空蓝导致运行不畅的问题。
目前笔者的能量转换宏加入了诸如是否点满激怒、是否有智慧审判的考量,如无智慧审判则增加条件限制以抑制变身回能量的频率。对于想无视限制极限输出的小伙伴,可以考虑去掉限制条件以最大化能量转换的极限爆发输出。
----------------------------------------------------------------------
以上便是笔者自用的部分野性宏以及部分使用心得的分享,感谢有耐心看到这里的小伙伴,愿艾露恩与你同在。
太痛苦了,本来只想修正一个错误,却在修正过程中又增添了新的想法和判定功能实现需求。于是来来回回折腾,然后彻底返工文章。这应该是最后一次更新了。以后如无特别严重的问题,不会再返工了。如果未来有了有趣的小功能或小改进,可能会根据心情发表在评论区供小伙伴参考。