法师水元素冰环宏

首先是最常被问到的

饰品 + 强力buff + 技能 双开宏的写法

到处都是这种如何写双开宏的问题,无非就是一个强力buff如奥术强化,能量灌注;和一个护符一起开

后面再接一个秒人的技能,其实写法很简单,通用写法:

/施放 强力buff 比如奥术强化,能量灌注,血性狂暴等

/script SpellStopCasting();

/script UseInventoryItem(13); 13是指饰品1,14是饰品2

/script SpellStopCasting();

/施放 秒人技能

只要记住,其实护符也属于强力buff,使用强力buff,开护符都不会触发公***CD,所以才能最后跟一个大技能,

而这些buff,护符之所以能连续使用,是因为后面跟了个/script SpellStopCasting();注意,每句都要跟

例如

奥火法奥术强化 + 护符 + 炎爆

/施放 奥术强化

/script SpellStopCasting();

/script UseInventoryItem(13);

/script SpellStopCasting();

/施放 炎爆术

双饰品 + 强力buff + 技能

有些有钱人不止有一个饰品,而现在饰品不能双开,开了一个另一个也跟着进入CD,这就需要使用下边的双饰品宏

两个饰品同时佩戴,哪个CD好了用哪个

/script local c,s,x,u,p,d,e,_=CastSpellByName,SpellStopCasting,GetInventoryItemCooldown,UseInventoryItem,"player";c("奥术强化");s();_,d,e=x(p,13);if d<2 and e>0 then u(13);else _,d,e=x(p,14);if d<2 and e>0 then u(14);end;end;s();c("炎爆术");

其他职业技能,种族天赋等请自己替换

铁皮手雷

点一下用手雷,再点一下取消并再用手雷,没瞄好可以重新瞄准

这个宏会停止自动攻击

背包号,格子号根据上边基础知识自己填

/script if PlayerFrame.inCombat then AttackTarget(); end; SpellStopCasting(); UseContainerItem(手雷所在包编号, 手雷所在格);

切换动作条

在1,2两动作条间切换,数字可以自己改

/script if CURRENT_ACTIONBAR_PAGE==1 then CURRENT_ACTIONBAR_PAGE=2;else CURRENT_ACTIONBAR_PAGE=1;end;ChangeActionBarPage();

根据目标职业要buff

如果目标是法师就M他要智力,牧师要韧,小D要爪子

/script local x,c,i,s={["法师"]="智力",["牧师"]="韧",["德鲁伊"]="爪子"},UnitClass("target");for i,s in x do if i==c then SendChatMessage("给个"..s..",谢谢~","whisper",nil,UnitName("target"));end;end;

报告当前团队活着、死亡、掉线人数,还有boss血量宏

/script local c,o,d,i,n,a,b,_=0,0,0;for i=1,40 do n,_,_,_,_,_,_,a,b=GetRaidRosterInfo(i);if n then c=c+1;if a then o=o+1;end;if b then d=d+1;end;end;end;SendChatMessage("%t 还剩"..UnitHealth("target").."%,***"..c.."人,死亡"..d..",掉线"..c-o,"raid")

给目标所在小队加群体Buff,并报告,团队/小队均可

/法师版

/script local t,n,g,i,_;CastSpellByName("奥术光辉");if UnitInRaid("player") then t=UnitName("target");for i=1,40 do n,_,g=GetRaidRosterInfo(i);if t==n then SendChatMessage(g.." 队智力已加过","yell");break;end;end;end

自动搜索团队内没有相应单体buff(真言术:韧,奥术智慧,野性印记)的团队成员,

为其补上,掉线的,死亡的,不在射程的都会忽略掉

/script local i,p;for i=1,40 do p="raid"..i;if CheckInteractDistance(p,4) and not UnitBuff(p,1,1) then TargetUnit(p);CastSpellByName("奥术智慧");TargetLastTarget();break;end;end;

不是人形姿态的时候(即熊、猫或者旅行姿态)使用 闪光雷

否则 铁皮手雷/script local i,b,s,l="铁皮手雷";if UnitClass("target")=="德鲁伊" and UnitCreatureType("target")=="野兽" then i="闪光雷";end;for b=0,4 do for s=1,18 do l=GetContainerItemLink(b,s);if l and strfind(l,i) then UseContainerItem(b,s);break;end;end;end;

冰箱能用就冰箱,没冷却就急速冷却+冰箱:

把 寒冰屏障 放到一个你不用的按钮上,记下编号,编号看上边基础知识,

把红色字用你查到的编号代替

/script local c,i,b,f,d,_=CastSpellByName;for i=1,16 do b=UnitBuff("player",i);if b and strsub(b,5)=="Frost" then f=1;break;end;end;if not f then _,d=GetActionCooldown(你冰箱编号);if d>2 then c("急速冷却");SpellStopCasting();end;c("寒冰屏障");end;

也可以使用法术书编号来节省动作条,编号看上边基础知识

/script local c,i,b,f,d,_=CastSpellByName;for i=1,16 do b=UnitBuff("player",i);if b and strsub(b,5)=="Frost" then f=1;break;end;end;if not f then _,d=GetSpellCooldown(你冰箱编号,"spell");if d>2 then c("急速冷却");SpellStopCasting();end;c("寒冰屏障");end;

奥术强化+护符+炎爆术

护符放哪里无所谓,会自动开已经冷却的护符

/script local c,x,u,s,p,d,e,_=CastSpellByName,GetInventoryItemCooldown,UseInventoryItem,SpellStopCasting,"player";c("奥术强化);s();_,d,e=x(p,13);if d<2 and e then u(13);else _,d,e=x(p,14);if d<2 and e then u(14);end;end;s();c("炎爆术");

气定神闲+炎爆术

/施放 气定神闲

/script SellStopCasting();

/施放 "炎爆术"

平时冰箭,出灵风8件效果就火球

/script local c,i,b,f=CastSpellByName;for i=1,16 do b=UnitBuff("player",i);if b and strfind(b,"Telep") then f=1;break;end;end;if f then c("火球术");else c("寒冰箭");end;

这类宏有个特点,平时用小技能,在特定buff出现后换大技能,比如这里冰箭就是小技能,火球就是大技能

既然分出了大小,那就知道可以怎么改了,火球术可以改成其他“大技能”,比如 炎爆术

冰箭可以换成其他“小技能”,比如 灼烧,都是中国字,别跟我说你不会

平时冰箭,出奥术专注效果就火球

/script local c,i,b,f=CastSpellByName;for i=1,16 do b=UnitBuff("player",i);if b and strfind(b,"ManaB") then f=1;break;end;end;if f then SpellStopCasting();c("火球术");else c("寒冰箭");end;

同上,火球术可以改成其他的,比如 炎爆术,奥术飞弹,冰箭可以改成 灼烧

平时冰箭,出奥术专注 或 出灵风8件效果就火球

奥术专注是下个法术免费,所以一旦出了特效,要马上取消当前法术,换大的,否则免费特效就被当前法术浪费了

而灵风8件是下个法术瞬发,当前正在引导的不受影响,所以不用取消当前的

由于256字节限制,要取消两个都取消,否则都不取消,那就是说必须都取消,这样灵风会损失当前引导的法术

这种损失就是半个冰箭或者半个灼烧,如果大家认为这种损失可以接受的话,就用这个合并版:

/script local c,i,j,b,f=CastSpellByName;for i=1,16 do b=UnitBuff("player",i);if b and (strfind(b,"ManaB") or strfind(b,"Telep")) then f=1;break;end;end;if f then SpellStopCasting();c("火球术");else c("灼烧");end;

灼烧叠5层就火球,否则继续灼烧

/script local c,i,d,n,f=CastSpellByName;for i=1,16 do d,n=UnitDebuff("target",i);if d and strfind(d,"SoulB") then f=1;break;end;end;if f and n==5 then then c("火球术");else c("灼烧");end;

打贼奥爆宏

有目标就放最高级奥术爆炸,没有目标就放1级奥术爆炸

/script if UnitCanAttack("target","player") then CastSpellByName("奥术爆炸");else CastSpellByName("奥术爆炸(等级 1)");end;

自动补 冰甲术,奥术智慧,魔法抑制

缺啥补啥,闲着没事按按能强身健体,定国安邦……

/script local n,s,k,j,b,f={"tArm","lSen","hMag"},{"冰甲术","奥术智慧","魔法抑制"};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;

自动把被控制的队友变羊,小队,团队通用版

对于会控制玩家的BOSS很有用,比如哈卡,AQ神庙1

/script local n,p,i,t=4,"party";if UnitInRaid("player") then n=40;p="raid";end;for i=1,n do t=p..i;if UnitCanAttack("player",t) then TargetUnit(t);CastSpellByName("变形术");SendChatMessage("%t 被控制,我把他变羊了~",p);break;end;end;

随机变羊,猪,乌龟宏

/script local s,m,r={"",":龟",":猪"},{"%t变羊了","%t是乌龟","%t是猪"},random(3); CastSpellByName("变形术"..s[r]);SendChatMessage(m[r],"yell");

可以根据变的种类喊话,想喊什么自己改

火冲打图腾

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

下面是动作条编号

在RAID中,公会都是用猎人标记来确定当时的攻击目标,这个宏可以帮助你以最快的速度选中你附近被LR标记的怪。

/script for i=1, GetNumRaidMembers() do if UnitClass("raid"..i) == "猎人" then for j=1, 16 do t = UnitDebuff("raid"..i.."target", j); if t and string.find(t, "Hunter_SniperShot") then AssistUnit("raid"..i); i=99; break; end; end; end; end;

将“TAB”的最远距离改为50码 (最大是50)

/console SET targetNearestDistance "50"

这个地址有更多更详细的宏.com/read.php?tid=782342&fpage=1