游戏之家 > 游戏库 > 魔兽世界

《魔兽世界》怀旧服法师宏设置攻略

魔兽世界60年代经典怀旧服除了各职业练级问题,宏设置也成为很多人非常头疼的问题。那么对于法师职业来说,宏命令怎么设置?下面就为大家带来魔兽世界60怀旧服法师宏设置教程。

魔兽世界怀旧服法师宏怎么设置

值得推荐的是一个叫做Super Macro的插件,它支持7000字长的宏,还支持/use命令,自己寻找背包内物品而不用把物品放在固定格子再做宏来使用,还支持宏显示宏内含的技能的冷却倒计时,还支持以buff名字来取消buff以下我会介绍一些基于这个插件的宏(基本都是我自创或者改写的,如果发现网上有类似的绝对我发布在别处被人引用的):

首先介绍个取得技能名字的语句

/script DEFAULT_CHAT_FRAME:AddMessage(GetSpellName(X,0));

可以把这句做成宏,然后要用的时候复制里面的内容到聊天栏,把这里的X请换成数字,可以显示出相应编号的技能,想要知道技能编号就一点点用数字试,因为不同天赋技能书的技能编号是不同的(因为有些技能要天赋支持)

奥术智慧宏:

/script r=5;l={1,14,28,42,56};if not UnitIsFriend("player","target")then TargetUnit("player");end;t=UnitLevel("target");for i=r,1,-1 do if (t>=l[ i]-10) then CastSpellByName("奥术智慧(等级 "..i..")");break;end;end;

/script if UnitIsUnit("player","target") then TargetLastTarget();end;

/script if( SpellIsTargeting()) then SpellTargetUnit("player");end;

效果:根据目标等级自动选择相应等级的奥术智慧,这个宏网上到处都是但是因为宏长度的关系所以不完善,我把它改了改但是超过255个字了所以必须要supermacro支持。原版没有的功能:如果目标为不可施放单位(敌对,npc等)则对自己使用并且不丢失目标,如果无目标则对自己使用并且保持无目标。

绷带宏:

/script if (GetZoneText() == "阿拉希盆地") then UseItemByName("污染者的符文布绷带"); elseif (GetZoneText() == "战歌峡谷") then UseItemByName("战歌峡谷符文布绷带"); elseif (GetZoneText() == "奥特兰克山谷") then UseItemByName("奥特兰克厚符文布绷带"); else UseItemByName("厚符文布绷带");end;

/script if( SpellIsTargeting()) then SpellTargetUnit("player");end;

效果:根据3大战场和其他场所自动选择对应3大战场的绷带及厚符问绷带,无目标/目标为敌人/目标不可被绷带/目标为自己时给自己打绷带,目标为友方时对其打绷带。身上带4种绷带就好无论放什么位置。原来为传统宏使用者设计过这个宏但是要分2个先点一个取变量很麻烦,现在既然用这个插件就合并成一键了。

强制对自己绷带宏:

/script TargetUnit("player");

/script if (GetZoneText() == "阿拉希盆地") then UseItemByName("污染者的符文布绷带"); elseif (GetZoneText() == "战歌峡谷") then UseItemByName("战歌峡谷符文布绷带"); elseif (GetZoneText() == "奥特兰克山谷") then UseItemByName("奥特兰克厚符文布绷带"); else UseItemByName("厚符文布绷带");end;

/script TargetLastTarget();

功能如上一个只是无论什么情况都对自己打(盗贼用丢星,法师用没事)

最完美的冰箱宏:

/script SpellStopCasting(); CancelBuff("寒冰屏障"); if (GetSpellCooldown(179,0) >= 2) then CastSpell(147,0); else CastSpellByName("寒冰屏障"); end;

功能:中断正在施放法术并使用冰箱;如果在冰箱中就解冰箱;如果冰箱冷却时间大于2秒则使用急冷。传统冰箱宏能解决冷却中使用急冷的问题,但是又没办法做到像按技能书里拉出来冰箱技能那样1键开1键解,这个宏把2者合并了,需要supermacro的cancelbuff语句支持

注:其中179是我目前的冰箱编号,147是急冷编号,下同

解毒剂宏:

/use 特效抗毒药剂

/script if( SpellIsTargeting()) then SpellTargetUnit("player");end;

功能:对目标使用解毒剂,无目标/目标为敌人/目标为自己/目标无法使用该物品则对自己使用

铁皮手雷宏:

/script SpellStopCasting();

/use 铁皮手雷

功能:使用手雷,再按为取消;不限制手雷放在背包什么位置

一键喝红:

/use 特效治疗石

/use 特效治疗药膏

/use 作战治疗药水

/use 特效治疗药水

效果:按顺序使用极效治疗石,战场5分钟冷却的瓶子,荣誉瓶子,极红

一键萝卜/夜龙:

/use 鞭根块茎

/use 夜龙之息

一键4种魔法石按顺序吃:

/use 法力红宝石

/use 法力黄水晶

/use 法力翡翠

/use 法力玛瑙

从大到小顺序,不用再为他们准备不同的格子了

以上宏都需要super macro支持

再来其他一些常规宏:

冰环宏:

/script SpellStopCasting(); local start, duration = GetSpellCooldown(156, 0); if ((GetTime() - start) <= 2) or ((GetTime() - start) >= 19) then CastSpellByName("冰霜新星(等级 1)"); else CastSpellByName("急速冷却"); end

效果:放冰环,冷却时间如果大于2秒小于19秒则使用急冷。

注:其中156是我目前的1级冰环编号

吹风宏:

/script local start, duration = GetSpellCooldown(151, 0); if ((GetTime() - start) <= 2) or ((GetTime() - start) >= 9) then CastSpellByName("冰锥术(等级 5)"); else CastSpellByName("急速冷却"); end;

效果:放吹风,冷却时间大于2秒小于9秒则使用急冷,用来狂按实现冰环后双吹风

注:其中151是我目前的5级吹风编号

法术增符:

/script if not UnitIsFriend("player","target")then TargetUnit("player");end;

/cast 魔法增效(等级 4)

/script if( SpellIsTargeting()) then SpellTargetUnit("player");end;

/script if UnitIsUnit("player","target") then TargetLastTarget();end;

目标为队友则对其使用,无目标/目标自己/目标敌人/目标不可使用该技能则对自己使用

法术抑制:

/script if not UnitIsFriend("player","target")then TargetUnit("player");end;

/cast 魔法抑制(等级 5)

/script if( SpellIsTargeting()) then SpellTargetUnit("player");end;

/script if UnitIsUnit("player","target") then TargetLastTarget();end;

同上,和alt cast说再见吧

气定猪:

/cast 气定神闲

/script SpellStopCasting();

/cast 变形术:猪

气定大火球:

/cast 气定神闲

/script SpellStopCasting();

/cast 炎爆术(等级 8)

奥强+护符双开(护符放在下面一格)

/script UseInventoryItem(14);

/cast 奥术强化

双开大火球(跑动中需连按3下,原地不动1下就好)

/script UseInventoryItem(14);

/script SpellStopCasting();

/cast 奥术强化

/script SpellStopCasting();

/cast 气定神闲

/script SpellStopCasting();

/cast 炎爆术(等级 8)

单开气定冰蛋

/script UseInventoryItem(14);

/cast 气定神闲

/script SpellStopCasting();

/cast 寒冰箭(等级 10)

中断正在施放法术并反制

/script SpellStopCasting()

/script CastSpellByName('法术反制')

盆地求助宏:

/script SendChatMessage ("Help "..GetSubZoneText().."!!", "Raid", nil, 1);