首先是最常被问到的
饰品 + 强力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"
这个地址有更多更详细的宏http://bbs.ngacn.com/read.php?tid=782342&fpage=1
首先是最常被问到的
饰品 + 强力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
使用宏用技能应该都加个/施放吧,比如冰冻术应该就是:
/施放 冰冻术