首先,猫德应该是整个输出过程中,输出循环流程最为复杂的一系天赋,除了技能监测外,还涉及到变身回复能量,变身GCD控制,两秒回能等机制,甚至还有神像舞等等,导致一些玩猫德的输出会很乏力,这里的目的就是用宏来简化,解放一些操作细节;
注:还有在玩的话,我有改善宏的话就会回来更新宏。
这里先叠个甲,这里不是最牛X的宏,只是我个人玩的时候自己调配的,并不一定适用于所有人的操作习惯,仅作为抛砖引玉,我在霍格,ID 妖姬变,有兴趣的朋友可以一起交流。很多宏指令也是学习前面各位大佬的(如:B站大佬摸遍高压线等,他们把部分指令已经做了非常好了,没必要重复造轮子),我只是做一些组合调整。
【基础支持】
这里我们需要两个插件来辅助我们宏的使用,其中一个SuperMacro(超级宏),如果是原班的超级宏插件,需要手动修改个代码,由于原版无法判断超过16个buff/debuff,这个是乌龟服的特性,支持超过16个buff/debuff,所以这里需要进行修改,否则在团本中,目标和自己buff/debuff一大堆的时候,无法正确获取到这些信息,从而导致宏无法正常判断,修改方法如下:网页链接,可以根据文章中的方式进行修改,很简单的。
其实,还有一个IsBuffActive,这个插件可以在龟壳上获取到,这里就不去复述如何获取,有些朋友装的是整合插件包,里面有可能已经包含了,这个请自行判断下。这个插件也是可以提供一个突破16个buff/debuff的限制,这个就无需修改SuperMacro(超级宏)插件,但是需要把我贴的脚本中,"buffed"替换成"IsBuffActive"即可。
到这里。。。还有个问题需要解决,这应该是个很冷门的问题,没怎么见其他人提起过,就是在做宏判断的时候,很多插件支持的名称判断都是模糊判断,举个例子,“狂暴”“血之狂暴”,由于都有狂暴二字,在用“狂暴”作为名称进行buff/debuff判断的时候,这里就会出现判断错误的问题,为此,我自己修改了超级宏里的判断方式,一并解决了16个buff/debuff判断的限制,有需要的朋友可以下载该文件,覆盖下原班的超级宏里的这个SM_Slash.lua文件,用覆盖方式,可以忽略上面的修改。
链接: https://pan.baidu.com/s/1ZFTsxvXeFfcODbMYr59ebA?pwd=kw9u 提取码: kw9u
【通用宏】
先来些简单的宏,这个适用于所有小德;变身宏,可独立使用,不需要什么特殊支持
变熊,如果在其他形态,按第一下会取消原有形态,再按一下则变熊
/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;
变猫,如果在其他形态,按第一下会取消原有形态,再按一下则变猫
/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;
注:以上两个宏,其实仔细看下,“s~=1”"s~=3",这里1、3其实就是对应形态的图标位置,需要什么变形,可以自行更改这个数字。
跑路形态,小德有两个跑得快的形态,旅行形态和水栖形态,分别是地面和水里,这里优化一个键来自动分辨用哪个形态
/script for i=1, GetNumShapeshiftForms() do local icon, name, active = GetShapeshiftFormInfo(i); if active then CastShapeshiftForm(i);end;end;
/script if not buffed("旅行形态") then cast("旅行形态") end;
/script if not buffed("水栖形态") then cast("水栖形态") end;
【一键宏】
好了,到重点的一键宏,讲一键宏之前,简单说下猫德的输出,猫德输出主要就是技能释放能量,把能量打空,通过变身来重新获取能量,依此循环;
1.172更新后,猫德出现了两个流派,一个还是传统的打背撕碎流,一个是新的双流血爪击流;相比来说,打背撕碎相对简单点,但是双流血由于要监测的buff状态较多,会比打背更复杂一些。咱们不讨论那种打得更高,留给数据大神来进行研究,这里只是针对两种情况的一键宏,仅供参考。
注:清不熟悉宏和插件的朋友不要盲目直接复制粘贴,看完全文再进行操作,宏要顺利使用,依赖的设置点还有不少。
【打背撕碎一键宏】
/script if ( not PlayerFrame.inCombat ) then cast("攻击"); end;
/script myMana = UnitMana("player");
/script if not buffed("猎豹形态") then cast("猎豹形态(变形)") end;
/run if GetInventoryItemCooldown("player",13)==0 then UseInventoryItem(13) end
/run if GetInventoryItemCooldown("player",14)==0 then UseInventoryItem(14) end
/run local _, _, active = GetShapeshiftFormInfo(3) if not timer or GetTime() - timer > 18 then if active == 1 and UnitMana("player") >= 60 then CastSpellByName("猛虎之怒") timer = GetTime() end end
/script if buffed("节能施法","player") then cast("撕碎"); end;
/script if GetComboPoints("target") > 3 and myMana > 60 then cast("撕碎") end;
/script if GetComboPoints("target") > 3 and myMana < 55 then cast("凶猛撕咬") end;
/script if myMana >= 48 then cast("撕碎") end;
/script if (GetActionCooldown(72) < 0.2) and (myMana <= 27) and not buffed('节能施法',"player") and not (GetComboPoints('target') > 3 and myMana > 15) and not buffed("狂暴","player") then cast('猎豹形态(变形)') end;
/script if buffed("狂暴","player") and not buffed("血之狂暴","player") then cast('猛虎之怒') end;
【双流血一键宏】
/run if ( not PlayerFrame.inCombat ) then cast("攻击") end
/run if not buffed("猎豹形态") then cast("猎豹形态(变形)") end;
/script rage=UnitMana("player");
/script sj=32;
/script zj=37;
/run if GetInventoryItemCooldown("player",13)==0 then UseInventoryItem(13) end
/run if GetInventoryItemCooldown("player",14)==0 then UseInventoryItem(14) end
/run local _, _, active = GetShapeshiftFormInfo(3) if not timer or GetTime() - timer > 18 then if active == 1 and UnitMana("player") >= 60 then CastSpellByName("猛虎之怒") timer = GetTime() end end
/run if not buffed("扫击", "target") and rage>=sj then cast("扫击") sjtimer = GetTime() end
/run if not buffed("迸裂创伤", "player") or not sctimer or GetTime() - sctimer > 12 then if GetComboPoints("target")>4 and rage>=30 then cast("撕扯") sctimer = GetTime() end end
/run if GetComboPoints("target")>4 and rage<50 then cast("凶猛撕咬") end;
/run if rage >= zj then cast("爪击") end;
/run if GetActionCooldown(72) < 0.1 and rage<(zj-20) and not buffed("狂暴") then cast("猎豹形态(变形)"); end;
/run if buffed("狂暴") and not buffed("血之狂暴") then cast('猛虎之怒') end;
注:这个宏的好处就是不用找背,只要靠近就使劲饶。
【双流血+白嫖撕碎一键宏】
/run if ( not PlayerFrame.inCombat ) then cast("攻击") end
/run if not buffed("猎豹形态") then cast("猎豹形态(变形)") end;
/script rage=UnitMana("player");
/script sj=32;
/script zj=37;
/run if GetInventoryItemCooldown("player",13)==0 then UseInventoryItem(13) end
/run if GetInventoryItemCooldown("player",14)==0 then UseInventoryItem(14) end
/run local _, _, active = GetShapeshiftFormInfo(3) if not timer or GetTime() - timer > 18 then if active == 1 and UnitMana("player") >= 60 then CastSpellByName("猛虎之怒") timer = GetTime() end end
/run if buffed("节能施法") and buffed("猎豹形态") then cast("撕碎"); end;
/run if not buffed("扫击", "target") and rage>=sj then cast("扫击") sjtimer = GetTime() end
/run if not buffed("迸裂创伤", "player") or not sctimer or GetTime() - sctimer > 12 then if GetComboPoints("target")>4 and rage>=30 then cast("撕扯") sctimer = GetTime() end end
/run if GetComboPoints("target")>4 and rage<50 then cast("凶猛撕咬") end;
/run if rage >= zj then cast("爪击") end;
/run if GetActionCooldown(72) < 0.1 and rage<(zj-20) and not buffed("狂暴") then cast("猎豹形态(变形)"); end;
/run if buffed("狂暴") and not buffed("血之狂暴") then cast('猛虎之怒') end;
以上三个宏,通用部分
绿色部分是开饰品宏,13/14分别代表上面/下面的饰品位置,根据需要,可以删除,比如你带了梦之心+龙牙,这两行可以去掉,当然,不去掉也可以,不会影响使用,这里说明下是为了部分朋友使用主动饰品是根据战局时机来开,必要的做些调整。
蓝色部分是开猛虎之怒的,我知道有些人不用猛虎之怒,不用的可以删除掉即可。
德鲁伊变身有GCD,这点不像战士的姿态切换,虽然我也不知道设计师给小德留个这样的难受的设计的目的,但我们在追求DPS最大化的时候,不得不去考虑GCD与变身的关系,为了确保GCD在转到0.1秒的时候才进行变身,以达到接近无缝变身的要求,来降低变回人形态打出人性普攻的可能性;为达成此目的,一键宏中GetActionCooldown(72) < 0.1,这个条件就是判断左下方动作按钮的最后一个格子里技能的GCD,所以这里需要放一个能转圈圈的技能,比如愤怒、野性印记、翡翠祝福等等,任何可以转GCD的均可,万一你这个位置是放了个药水,不具备GCD的识别能力,GetActionCooldown(72),其中72就是格子顺序ID,可以自行修改,如果不知道怎么改,可以留言跟我说。
双流血宏
其中有个地方可根据自身装备配置情况进行修改,由于爪击和扫击拥有套装和神像的能量消耗减免,我们这里需要根据自己配装调整下,其中:
sj=32;
zj=37;
sj代表扫击所需要的能量,zj代表爪击所需要的能量;
以扫击为例(sj)我这里是穿着T2.5猫德套装三件,扫击35能量-套装减免3能量,所以是32;如果你还附带凶猛神像(减扫击爪击能量那个),这里可以改为29。
爪击同理。
【神像舞】
/run if GetComboPoints("target") == 5 then UseItemByName("腐败翡翠神像"); else UseItemByName("月牙神像") end;
如果需要神像舞,可以把这行加入到前面的一键宏里,这里需要注意的一些细节,在战斗中,切换武器是会触发GCD,但机制上还留有缺口,即,如果当前正处于GCD状态,你切换武器,不会再额外触发一次GCD,这个需要更多高手去测试下,但基本观察是这样,没太大毛病,所以在使用神像舞的时候,按键要按快一点,本来想加入GCD的判断,但略显臃肿,得不偿失。
【结尾】
不小心码了那么多字,再叠一次甲,仅供交流参考,另外关于双流血,还有个机制未加入,我们知道有些怪是不吃流血的,比如元素怪,这里留个悬念。
to bo continue...