[术士完全指南] 术士常用宏汇总

经常有术士抱怨自己的键位不够用,术士几乎是WOW中常用技能最多的职业,没有之一。
各种DOT,各种诅咒,各种吸取,各种石头,死亡缠绕,恐惧术,暗影箭,暗影灼烧,献祭,点燃……
都是常用技能,我的天啊,这简直是动作条和快捷键地狱!

那么,来用宏吧,它能让你每个按钮代替至少两个按钮,而且还是根据不同情况自动施放相应技能!

大家可能发现这里有很多痛苦术士专用的宏,原因很简单,因为我就是那我痛苦所以要你更痛苦的痛苦术士呀~

基础知识

1. 关于一键xx宏

公共CD是WOW中的基本法律,你平时要遵守,用宏仍然要遵守,这里所说的一键xx是指:

同一个宏,你每按一下做一个动作,

同一个宏反复使用可以智能做出一系列反应,两次按键之间请自己留出公共CD时间

2. 动作条编号

下面的宏经常会要求你自己填某技能在动作条上的编号,这是因为技能/物品的冷却时间等信息只能这样得到


动作条共有6个,每条包括12个按钮,共72个,通过菜单->界面设置 可以全部显示出来

图上动作条上红色数字是每条第一个按钮和最后一个按钮的编号

实际上暴雪提供了120个按钮,不过后面73-120不显示的,通过Flexbar等插件可以全部看到

3. 技能书编号

上边动作条编号大部分时间可以用技能在法术书中的编号代替,这样可以有效减少动作条的使用

但并不是都能代替,因为使用法术书中的编号只能得到技能的冷却信息,射程等其他信息无法得到

得到技能在法术书中编号请使用这个宏

技能名不要加等级,比如 多重射击

/script local s,i,n="你要查的技能名",1;while 1 do n=GetSpellName(i,"spell");if n then if strfind(n,s) then ChatFrame1:AddMessage(i);break;end;i=i+1;else break;end;end;

4. 物品在背包中的位置

现在使用背包中的物品必须指定物品所在包裹编号,以及物品在包裹中的格子序号:UseContainerItem(bag, slot)

bag就是包裹编号,slot就是包裹中格子序号,WOW 2.0中这种情况将得到改善

包裹编号请看上边的图,每个包裹最左上角编号是1,其余格子从左往右依次2 3 4...

术士

一键3DOT宏

点一下放一个,缺啥补啥,一直按吧

注意,这是solo宏,团队中如果有其他术士的话就不好用了,因为无法判断DOT是不是你放的,比如其他术士放了痛苦诅咒,

这个宏就不会再放痛苦诅咒,直到那个术士的痛苦诅咒消失

通用版

/script local n,s,k,j,d,f={"Abomi","Sarge","Immol"},{"腐蚀术","痛苦诅咒","献祭"};for k=1,3 do f=nil;for j=1,16 do d=UnitDebuff("target",j);if d and strfind(d,n[k]) then f=1;break;end;end;if not f then CastSpellByName(s[k]);break;end;end;

痛苦术士风筝版

/script local n,s,k,j,d,f={"Abomi","Requi","Sarge"},{"腐蚀术","生命虹吸","痛苦诅咒"};for k=1,3 do f=nil;for j=1,16 do d=UnitDebuff("target",j);if d and strfind(d,n[k]) then f=1;break;end;end;if not f then CastSpellByName(s[k]);break;end;end;

献祭 + 宠物攻击

在使用前面一键3DOT宏之前我通常会使用这个宏作为起手,因为献祭有施法时间,这就跟猎人瞄准起手一样

/施放 献祭

/script PetAttack();

如果是痛苦术士,带小鬼而且作mana罐子的话用这个

/施放 献祭

/script if UnitCreatureFamily("pet")~="小鬼" then PetAttack();end;

RAID DOT宏

循环上DOT,如果使用间隔超过18秒则重新从第一个DOT开始放,以防止DOT序列没放完怪就死了

普通版

/script local x,t={"痛苦诅咒","腐蚀术","献祭"},GetTime();DOTI=DOTI or 3;DOTT=DOTT or t;DOTI=DOTI+1;if DOTI>3 or t-DOTT>18 then DOTI=1;DOTT=t;end;CastSpellByName(x[DOTI]);

痛苦术士版

/script local x,t={"生命虹吸","痛苦诅咒","腐蚀术","献祭"},GetTime();DOTI=DOTI or 4;DOTT=DOTT or t;DOTI=DOTI+1;if DOTI>4 or t-DOTT>18 then DOTI=1;DOTT=t;end;CastSpellByName(x[DOTI]);

这是模拟2.0中/castsequence的方式写的,但没有进入/脱离战斗重置序列和改变目标重置序列功能,

因为这需要做成插件了

到了2.0用这个就行了:

普通版

/castsequence reset=18/target/combat "生命虹吸","痛苦诅咒","腐蚀术","献祭"

痛苦术士版

/castsequence reset=18/target/combat "痛苦诅咒","腐蚀术","献祭"

RAID诅咒宏

如果目标没有元素诅咒就上元素,有元素没有暗影诅咒就上暗影诅咒,都有就上痛苦诅咒

raid中的术士们,为了名额,诅咒吧!

/script local n,s,k,j,d={"lTouc","fAchi"},{"元素","暗影","痛苦"},1;while k<3 do f=nil;for j=1,16 do d=UnitDebuff("target",j);if d and strfind(d,n[k]) then f=1;break;end;end;if f then k=k+1;else break;end;end;CastSpellByName(s[k].."诅咒");

增幅疲劳 / 增幅痛苦

把诅咒增幅放到动作条上,并查出编号,查编号看上边基础知识部分

增幅疲劳

/script local c,s,d=CastSpellByName,GetActionCooldown(增幅编号);if d<2 then c("诅咒增幅");SpellStopCasting();end;c("疲劳诅咒");

法术书版

/script local c,s,d=CastSpellByName,GetSpellCooldown(增幅编号,"spell");if d<2 then c("诅咒增幅");SpellStopCasting();end;c("疲劳诅咒");

增幅痛苦

/script local c,s,d=CastSpellByName,GetActionCooldown(增幅编号);if d<2 then c("诅咒增幅");SpellStopCasting();end;c("痛苦诅咒");

法术书版

/script local c,s,d=CastSpellByName,GetSpellCooldown(增幅编号,"spell");if d<2 then c("诅咒增幅");SpellStopCasting();end;c("痛苦诅咒");

其实这个宏也可以简写成

/施放 诅咒增幅

/script SpellStopCasting();

/施放 疲劳诅咒

/施放 诅咒增幅

/script SpellStopCasting();

/施放 痛苦诅咒

但写成上面/script的形势可以避免看到讨厌的“技能还没有准备好”的提示

智能契约分流宏 - 痛苦术士必备

为什么要分流

可能有人觉得只要契约就好,何必还要分流,我们有魔甲术,每5秒恢复15点hp,还有生命虹吸,吸血,

各位瘾君子每3秒吸个五六十应该不在话下吧,生命长满就不会再长了。所以只用契约的话会有大量的生命浪费,

实际上这些生命变成蓝的话数量相当惊人的,所以在尽量保证自己血量的前提下使用分流可以达到最大的转换效率

而不会出现安全问题,你会发现这才是真正的永动机

而且,最大的问题…… 分流恢复mana的速度比契约快多了>"<

送给抽风手的礼物

原则:不让小鬼满蓝,不让自己满血

小鬼满mana当然先抽他的,当抽到70%时,如果你受伤小于200就分流一次,然后继续抽小鬼,

直到抽空或者你血又差200没满,为了最大化的利用嘛,

如果把小鬼抽空了你还没搞定,没办法,抽自己吧

各位如果在raid而且治疗比较关照你的话可以把受伤200安全线往下降,比如1000,

这样顶着恢复,回春,抽着小鬼,想OOM都难啊

我们唯一要做的就是……

练就一根坚韧而神经质的手指……

/script local s,h,m="生命分流";if UnitExists("pet") then h=UnitHealthMax("player")-UnitHealth("player");m=UnitMana("pet")/UnitManaMax("pet");if m>0.1 and h>200 or m>=0.7 then s="黑暗契约";end;end;CastSpellByName(s);

上边200是开始分流的安全线,0.7是停止虐待小鬼开始分流的比例,当然是自己满血情况下

计算了魔伤和强化生命分流天赋的分流宏

你魔伤和生命分流效率自己填

你分流效率:你强化生命分流的天赋,1点就换成1.1,2点换成1.2,没有加这个天赋就是1

注意,这个宏不会分到死,自杀的话单拉出来一个最高级的吧

/script local b,r,p,j,h={30,75,140,220,310,424},{0.38,0.68,0.8,0.8,0.8,0.8},"player";for j=6,1,-1 do h=b[j]+r[j]*你魔伤;if UnitHealth(p)>=h and UnitManaMax(p)-UnitMana(p)>=h*你分流效率 then CastSpellByName("生命分流(等级 "..j..")");break;end;end

自身buff

自动上 魔甲术,侦测隐形,魔息术,缺啥补啥,侦测隐形用不着强效的

/script local n,s,k,j,b,f={"gScr","tInv","nBre"},{"魔甲术","侦测隐形","魔息术"};for k=1,3 do f=nil;for j=1,16 do b=UnitBuff("player",j);if b and strfind(b,n[k]) then f=1;break;end;end;if not f then CastSpellByName(s[k]);break;end;end;

死亡缠绕 + 恐惧

死亡缠绕 + 恐惧是术士最具杀伤力的连招,是术士反盘的基础,

能与之媲美的恐怕只有献祭 + 点燃了,什么?还有生命分流 + 自焚?

功能:如果死亡缠绕不在CD就放缠绕,如果CD中则施放恐惧术,连续使用就是 缠绕 + 恐惧

死亡缠绕的编号看图自己填

/script local s,d=GetActionCooldown(死亡缠绕编号);if d<2 then CastSpellByName("死亡缠绕");else CastSpellByName("恐惧术");end;

法术书版

/script local s,d=GetSpellCooldown(死亡缠绕编号,"spell");if d<2 then CastSpellByName("死亡缠绕");else CastSpellByName("恐惧术");end;

如果目标是恶魔或元素就放逐,否则恐惧

raid和跟术士PK时能省点事……

/script local t=UnitCreatureType("target");if t=="恶魔" or t=="元素生物" then CastSpellByName("放逐术");else CastSpellByName("恐惧术");end;

双法术石

法术石放饰品1,备用法术石放的位置自己填,看上边基础知识

/script local s,d,e=GetInventoryItemCooldown("player",17);if d<2 and e>0 then SpellStopCasting();UseInventoryItem(13);UseContainerItem(备用法术石包号,你备用法术石格子号);end;

狗智能吞噬魔法

优先驱散自己身上的debuff,没有就驱散对方身上的buff

/script local i,d,s,t,_;for i=1,16 do d,_,t=UnitDebuff("player",i);if d and t=="Magic" then s=1;break;end;end;CastSpellByName('吞噬魔法',s);

瞬召虚空并牺牲宏 - 传说中的双胖子

功能:如果带的是虚空则牺牲,不是的话按第一下瞬召虚空,再按一下牺牲,之所以要按两下因为所谓瞬召实际还是有0.5秒时间,

当然如果你是非恶魔术士或者恶魔支配CD中,那瞬召就变成慢召了……

/script local c=CastSpellByName;if UnitCreatureFamily("pet")=="虚空行者" then c("牺牲");else c("恶魔支配");SpellStopCasting();c("召唤虚空行者");end;

宝宝打图腾

/script local t,n,i,_={"根基","战栗","地缚","灼热","清毒"};for _,i in t do n=i.."图腾";TargetByName(n,1);end;PetAttack();

拉人宏

1 小队/团队自适应版

/施放 召唤仪式

/script local s="party";if UnitInRaid("player") then s="raid";end;SendChatMessage("开始召唤>%t<,机票1G,女生半价,来点门啊",s);

2 黑体震撼版

/施放 召唤仪式

/y   █   ●███◣ █

/y   ██  █   █ ▉

/y   █   █   █ ▊

/y █████ █   █ ▋

/y █   █ █   █ ▌

/y █████ █   █ ▍

/y ●● ●● █  ◥█ ●

3 车夫自虐版

这个不是拉人的宏,而是一次寻问团队中所有和你不在同一区域的人,自动问他需不需要拉,好像有点自讨苦吃,自虐用的……

只要点一下,你会收到无数订单的……

/script local i,n,z,_;for i=1,GetNumRaidMembers() do n,_,_,_,_,_,z=GetRaidRosterInfo(i) if z~=GetZoneText() then SendChatMessage("要拉的MM报职业","whisper",nil,n);end;end

智能灵魂石

没有灵魂石就制造,有就给目标绑灵魂石,并在小队或团队中报告

把做好的灵魂石放在动作条上,查出编号,具体看上边基础知识

/script local s,i="party",灵魂石所在编号;if IsUsableAction(i) then if GetActionCooldown(i)==0 then UseAction(i);if UnitInRaid("player") then s="raid";end;SendChatMessage("%t 已被绑定",s);end;else CastSpellByName("制造特效灵魂石");end

各位有什么需求,好的创意尽管提出来,尽量满足