奥爆男的分割线
奥爆男换目标不一定因为OT,他经常乱来的
为奥爆男目标加盾:
/script local c,i,p="raid";for i=1,40 do p=c..i;if UnitIsVisible(p) and UnitName(p.."target")=="沙斯拉尔" and UnitIsUnit(p,p.."targettarget") then TargetUnit(p);CastSpellByName("真言术:盾");TargetLastTarget();break;end;end;
同样,喊话放不下,提供SuperMacro版
给炸弹套盾,SuperMacro版:
左边窗口:
/script PriestShieldForMC6Target();
右边窗口:
Code c:
function PriestShieldForMC6Target()
local c,i,p="raid";
for i=1,40 do
p=c..i;
if UnitIsVisible(p) and CheckInteractDistance(p,4) and
UnitName(p.."target")=="沙斯拉尔" and UnitIsUnit(p,p.."targettarget") then
TargetUnit(p);CastSpellByName("真言术:盾");
SendChatMessage("BS 你OT了 请立即跑向MT 就算要死 也要死在MT怀抱里","whisper",UnitName(p));
TargetLastTarget();break;
end;
end;
end;
这个宏没人OT不要乱用,因为会对MT也起作用
术士
一键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);
请把界面设置中 “自动自我施法”上打个勾,否则不会吃自己debuff
瞬召虚空并牺牲宏 - 传说中的双胖子
功能:如果带的是虚空则牺牲,不是的话按第一下瞬召虚空,再按一下牺牲,之所以要按两下因为所谓瞬召实际还是有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
盗贼
首先说明一下,宏无法判断是否在背后,所以做不出背后就背刺,否则就邪恶之类的宏,不要再问了
绷带不丢星,这其实就是自我施法,暴雪已经整合了这个功能,打开主菜单 -> 界面设置 -> 自动自我施法 打个勾就解决了
冷血 + 剔骨
如果目标是怪,连击点>=4才冷剔,否则普通剔骨;
如果目标是玩家,连击点>=3就冷剔,如果冷血未CD,才使用普通剔骨。
/script local p,f=GetComboPoints(),UnitIsPlayer("target");if f and p>2 or not f and p>3 then CastSpellByName("冷血");SpellStopCasting();end;
/施放 剔骨
剑刃乱舞 + 护符
/script 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(14);if d<2 and e>0 then u(14);end;end;
自动切割宏
平时用邪恶搌星 若无切割状态 只要有星 立即施放切割 若有 则继续 邪恶搌星 若能搌到5星时切割状态还在 则施放剔骨
/script local p,c,b,i,f=GetComboPoints(),CastSpellByName;for i=1,16 do b=UnitBuff("player",i);if b and strfind(b,"SliceDice") then f=1;break;end;end;if p>0 and not f then c("切割");elseif p==5 and f then c("剔骨");else c("邪恶攻击");end;
自动割裂宏
平时用邪恶搌星 若目标无割裂状态 只要有星 立即施放割裂 若有 则继续 邪恶搌星 若能搌到5星时割裂状态还在 则施放剔骨
/script local p,c,d,i,f=GetComboPoints(),CastSpellByName;for i=1,16 do d=UnitDebuff("target",i);if d and strfind(d,"Rupture") then f=1;break;end;end;if p>0 and not f then c("割裂");elseif p==5 and f then c("剔骨");else c("邪恶攻击");end;
偷袭起手,护符 + 背刺
/script local c,a,_=CastSpellByName;_,_,a=GetShapeshiftFormInfo(1);if a then c("偷袭");elseif UnitMana("player")>=60 then if GetInventoryItemCooldown("player",13)==0 then UseInventoryItem(13);SpellStopCasting();end;c("背刺");end;
护符放在饰品1上
如果在潜行状态,按第一下偷袭,再按就护符+背刺,不在潜行状态的话直接护符+背刺
自己掌握好距离和能量
邪恶还击宏
用 还击 在动作条上的序号替换下边红色字,查编号看上边基础知识
/script local s,d=GetActionCooldown(还击编号);if IsUsableAction(还击编号) and d<2 then CastSpellByName("还击");else CastSpellByName("邪恶攻击");end;
出血鬼魅宏
用 鬼魅攻击 在动作条上的序号替换下边红色字,查编号看上边基础知识
/script local c,s,d=CastSpellByName,GetActionCooldown(鬼魅编号);if d<2 then c("鬼魅攻击") else c("出血");end;
法术书版
/script local c,s,d=CastSpellByName,GetSpellCooldown(鬼魅编号,"spell");if d<2 then c("鬼魅攻击") else c("出血");end;
RAID专用: 平时邪恶攻击,目标转向自己就闪避
/script if UnitIsUnit("targettarget","player") then CastSpellByName("闪避");SpellStopCasting();end;CastSpellByName("邪恶攻击");
预备 + 消失
能消失就消失,消失冷却中就预备
消失编号参见上边基础知识
/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("消失");
致盲 + 绷带
没满60级的或者在战场中的绷带名自己改
/施放 致盲
/script local b,s,l;for b=0,4 do for s=1,18 do l=GetContainerItemLink(b,s);if l and strfind(l,"厚符文布绷带") then UseContainerItem(b,s,1);break;end;end;end
一键脱光
注意,你身上的包至少要都是16格的
local e,b,s=0;for b=0,4 do for s=1,16 do if not GetContainerItemLink(b,s) then while e<18 do e=e+1;if e==11 then e=16;end;if GetInventoryItemLink("player",e) then PickupInventoryItem(e);PickupContainerItem(b,s);break;end;end;end;end;end
远程武器宏
自动判定当前远程武器类型而决定使用该种武器进行射击,弓,弩使用箭,枪械使用子弹
这个不会切换,所以弹药自己处理
/script local l,_=GetInventoryItemLink("player",18);_,_,l=strfind(l,"item:(%d+)");_,_,_,_,_,l=GetItemInfo(l);l=strsub(l,1,6);if l~="投掷" then l=l.."射击";end;CastSpellByName(l);
1.12新潜行宏(不会因反复按而导致取消潜行)
/script local a,_;if not UnitAffectingCombat("player") then _,_,a=GetShapeshiftFormInfo(1);if not a then CastSpellByName("潜行");end;end;
暗夜精灵贼专用 - 潜行CD中使用影遁,连续按也不会取消影遁,潜行冷却完毕使用潜行,连续按不会取消潜行
连续按不取消影遁写不下了,去掉,但潜行中不取消潜行还可以,用时自己注意点
把潜行放动作条上,查出编号,替换下边红色字,查编号看上边基础知识
/script local c,s,d,a,_=CastSpellByName;_,_,a=GetShapeshiftFormInfo(1);if not a then s,d=Get(潜行编号);if d>2 then c("影遁");else c("潜行");end;end;
法术书版
/script local c,s,d,a,_=CastSpellByName;_,_,a=GetShapeshiftFormInfo(1);if not a then s,d=GetSpellCooldown(潜行编号,"spell");if d>2 then c("影遁");else c("潜行");end;end;
不取消潜行的:需要SuperMacro支持
左边窗口:
/script NEStealth();
右边窗口Code c:
function NEStealth()
local c,i,b,f,s,d,a,_=CastSpellByName;
_,_,a=GetShapeshiftFormInfo(1);
if not a then
s,d=GetActionCooldown(你潜行编号);
if d>2 then
for i=1,16 do
b=UnitBuff("player",i);
if b and strfind(b,"Ambu") then
f=1;break;
end;
end;
if not f then c("影遁");end;
else c("潜行");
end;
end;
end;
法术书版Code c:
function NEStealth()
local c,i,b,f,s,d,a,_=CastSpellByName;
_,_,a=GetShapeshiftFormInfo(1);
if not a then
s,d=GetSpellCooldown(你潜行编号,"spell");
if d>2 then
for i=1,16 do
b=UnitBuff("player",i);
if b and strfind(b,"Ambu") then
f=1;break;
end;
end;
if not f then c("影遁");end;
else c("潜行");
end;
end;
end;
德鲁伊
RP的变形宏,其他形态则变回人形,人形则喊话并变成相应形态,反复按不会再变回人形
人形态下变熊,并喊“熊的力量!” 其他任何形态则变回人形
/script local c,s,i,a,_=CastShapeshiftForm;for i=1,6 do _,_,a=GetShapeshiftFormInfo(i);if a then s=i;break;end;end;if not s then SendChatMessage("熊的力量!","yell");c(1);elseif s~=1 then c(s);end;
人形态下变猫,并喊“豹的速度!” 其他任何形态则变回人形
/script local c,s,i,a,_=CastShapeshiftForm;for i=1,6 do _,_,a=GetShapeshiftFormInfo(i);if a then s=i;break;end;end;if not s then SendChatMessage("豹的速度!","yell");c(3);elseif s~=3 then c(s);end;
人形态下变风暴乌鸦,并喊“鹰的眼睛!” 其他任何形态则变回人形(资料片适用)
/script local c,s,i,a,_=CastShapeshiftForm;for i=1,6 do _,_,a=GetShapeshiftFormInfo(i);if a then s=i;break;end;end;if not s then SendChatMessage("鹰的眼睛!","yell");c(6);elseif s~=6 then c(s);end;
人形态下变鹌鹑/奶树,并喊“鹌鹑的可爱!” 其他任何形态则变回人形(鹌鹑/奶树自己根据天赋调整……)
/script local c,s,i,a,_=CastShapeshiftForm;for i=1,6 do _,_,a=GetShapeshiftFormInfo(i);if a then s=i;break;end;end;if not s then SendChatMessage("鹌鹑的可爱!","yell");c(5);elseif s~=5 then c(s);end;
海豹 台词征集中
/script local c,s,i,a,_=CastShapeshiftForm;for i=1,6 do _,_,a=GetShapeshiftFormInfo(i);if a then s=i;break;end;end;if not s then SendChatMessage("海豹,海豹……","yell");c(2);elseif s~=2 then c(s);end;
旅行 台词征集中
/script local c,s,i,a,_=CastShapeshiftForm;for i=1,6 do _,_,a=GetShapeshiftFormInfo(i);if a then s=i;break;end;end;if not s then SendChatMessage("旅行……","yell");c(4);elseif s~=4 then c(s);end;
各种形态变回人形,包括资料片飞行形态
/script local i,a,_; for i=1,6 do _,_,a=GetShapeshiftFormInfo(i); if a then CastShapeshiftForm(i); break; end; end;
1.12猎豹形态新潜行宏(不会因反复按而导致取消潜行)
/script local i,b,f;if not UnitAffectingCombat("player") then for i=1,16 do b=UnitBuff("player",i);if b and strfind(b,"Ambu") then f=1;break;end;end;if not f then CastSpellByName("潜行");end;end;
一键 精灵之火 + 月火 + 虫群
有虫群的:
/script local n,s,k,j,d,f={"rFall","tSwar","eFire"},{"月火术","虫群","精灵之火"};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={"rFall","eFire"},{"月火术","精灵之火"};for k=1,2 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 t,n,i,_={"根基","战栗","地缚","灼热","清毒"};for _,i in t do n=i.."图腾";TargetByName(n,1);end;CastSpellByName("月火术(等级 1)");
变熊 + 冲锋
/script local c,a,_=CastSpellByName;_,_,a=GetShapeshiftFormInfo(1);if a then c("野性冲锋");else c("巨熊形态");end;
重击 + 人形 + 加血
按第一下 重击 敌人,按第二下 如果敌人昏迷则回到人形,按第三下开始放治疗之触,想放别的可以改
优点是如果重击未击中,招架等敌人没晕的话不会变回人形,避免出现危险
由于变形无公共CD,狂按的话可以实现瞬间重击 + 人形效果 + 加血效果
/script local c,i,d,f,a,_=CastSpellByName;for i=1,16 do d=UnitDebuff("target",i);if d and strfind(d,"Bash") then f=1;break;end;end;if f then _,_,a=GetShapeshiftFormInfo(1);if a then c("巨熊形态");else c("治疗之触");end;else c("重击");end;
治疗之触可以改成其他法术
猎人
自动反击,猫鼬,猛禽宏
可以代替猛禽一击,能放的话会自动放反击,猫鼬
出了反击天赋的
在下边依次填上反击,猫鼬撕咬,猛禽一击 在动作条上的编号,查编号看上边基础知识
/script local b,s,j={反击编号,猫鼬编号,猛禽编号},{"反击","猫鼬撕咬","猛禽一击"};for j=1,3 do if IsUsableAction(b[j]) and GetActionCooldown(b[j])==0 then CastSpellByName(s[j]);break;end;end;
没出反击的
在下边依次填上猫鼬撕咬,猛禽一击 在动作条上的编号,查编号看上边基础知识
/script local b,s,j={猫鼬编号,猛禽编号},{"猫鼬撕咬","猛禽一击"};for j=1,2 do if IsUsableAction(b[j]) and GetActionCooldown(b[j])==0 then CastSpellByName(s[j]);break;end;end;
智能钉刺宏
牧师不会解毒,应该用蝰蛇,反倒是对德鲁伊要用蝰蛇1骗驱毒,到头来毒蛇无用?其实应该对所有怪都用毒蛇
功能介绍:按照下列规则放钉刺
战、贼:毒蝎
猎、法、术,萨,牧:蝰蛇
骑,德:蝰蛇1
NPC:毒蛇
/script local c,s,t=UnitClass("target"),"毒蛇钉刺",UnitPowerType("target");if UnitIsPlayer("target") then if t==0 then s="蝰蛇钉刺";if c=="圣骑士" or c=="德鲁伊" then s=s.."(等级 1)";end;else s="毒蝎钉刺";end;end;CastSpellByName(s);
打贼专用:标记 / 照明弹
有目标就标记,没有就放闪光弹
/script if UnitExists("target") then CastSpellByName("猎人印记");else CastSpellByName("照明弹");end;
雄鹰守护 + 猎人印记 + 宠物攻击
/script local c,i,b,f=CastSpellByName;for i=1,16 do b=UnitBuff("player",i);if b and strfind(b,"RavenF") then f=1;break;end;end;if f then c("猎人印记");PetAttack();else c("雄鹰守护");end;
灵猴 猎豹切换
/script local c,i,b,f=CastSpellByName;for i=1,16 do b=UnitBuff("player",i);if b and strfind(b,"Monk") then f=1;break;end;end;if f then c("猎豹守护");else c("灵猴守护");end;
灵猴 雄鹰切换
/script local c,i,b,f=CastSpellByName;for i=1,16 do b=UnitBuff("player",i);if b and strfind(b,"Monk") then f=1;break;end;end;if f then c("雄鹰守护");else c("灵猴守护");end;
猎豹 雄鹰切换
/script local c,i,b,f=CastSpellByName;for i=1,16 do b=UnitBuff("player",i);if b and strfind(b,"eTiger") then f=1;break;end;end;if f then c("雄鹰守护");else c("猎豹守护");end;
灵猴守护 + 威慑
威慑的编号看上边基础知识自己填
/script local c,i,b,f,s,d=CastSpellByName;for i=1,16 do b=UnitBuff("player",i);if b and strfind(b,"Monk") then f=1;break;end;end;if not f then c("灵猴守护");SpellStopCasting();end;s,d=GetActionCooldown(你威慑编号);if d<2 then c("威慑");end;
法术书版
/script local c,i,b,f,s,d=CastSpellByName;for i=1,16 do b=UnitBuff("player",i);if b and strfind(b,"Monk") then f=1;break;end;end;if not f then c("灵猴守护");SpellStopCasting();end;s,d=GetSpellCooldown(你威慑编号,"spell");if d<2 then c("威慑");end;
多重 + 瞄准
多重和瞄准哪个CD好了用哪个,raid的时候非常安逸,目标是NPC就使用1级多重,省蓝,是玩家就用顶级的。
按住Alt则强制使用瞄准射击,因为raid中10秒循环一般都是瞄准起手,紧跟多重,为了充分利用5秒回蓝
每个怪最开始按一下Alt就行了,因为这个宏会优先放多重,所以PK的时候用来放风筝也可以
多重编号看上边基础知识自己填
/script local c,x,s,d=CastSpellByName,"瞄准射击",GetActionCooldown(你多重编号);if d<2 and not IsAltKeyDown() then x="多重射击";if not UnitIsPlayer("target") then x=x.."(等级 1)";end;end;c(x);
法术书版
/script local c,x,s,d=CastSpellByName,"瞄准射击",GetSpellCooldown(你多重编号,"spell");if d<2 and not IsAltKeyDown() then x="多重射击";if not UnitIsPlayer("target") then x=x.."(等级 1)";end;end;c(x);
宁神射击 只有成功施放后才喊话
注意,不是命中之后自动喊话,那需要插件,而是宁神打出去之后按这个宏才会喊话,之前会一直尝试宁神,没有废话
动作条版:
/script local s,d=GetActionCooldown(你宁神编号);if d>2 then SendChatMessage("我已施放宁神","yell");else CastSpellByName("宁神射击");end;
法术书版:
/script local s,d=GetSpellCooldown(你宁神在法术书中的编号,"spell");if d>2 then SendChatMessage("我已施放宁神","yell");else CastSpellByName("宁神射击");end;
一键脱光
注意,你身上的包至少要都是16格的,另外,假死不能加进去,假死瞬间衣服脱不下来的
/script local e,b,s=0;for b=0,4 do for s=1,16 do if not GetContainerItemLink(b,s) then while e<18 do e=e+1;if e==11 then e=16;end;if GetInventoryItemLink("player",e) then PickupInventoryItem(e);PickupContainerItem(b,s);break;end;end;end;end;end
收宠 假死 陷阱
非战斗状态就放陷阱,否则假死,再按陷阱,注意,战斗中假死瞬间陷阱放不出来的,会提示你正在战斗中
所以战斗中需要狂按这个宏
这个宏WOW 2.0就用不着了
/script PetFollow();if UnitAffectingCombat("player") then CastSpellByName("假死"); else CastSpellByName("冰冻陷阱");end;
野兽护符 - 双多重宏
护符放饰品1上,把你多重射击换个地方,并查出编号,替换红色字,查编号看上边基础知识
/script local s,d;s,d=GetActionCooldown(你多重射击的编号);if d>2 then UseInventoryItem(13);SpellStopCasting();end;CastSpellByName("多重射击");
法术书版
/script local s,d;s,d=GetSpellCooldown(你多重射击的编号,"spell");if d>2 then UseInventoryItem(13);SpellStopCasting();end;CastSpellByName("多重射击");
这个宏可以目前替代多重了,但是马上WOW 2.0要来了,这个宏届时将失效,目前没有解决方案
宝宝打图腾
/script local t,n,i,_={"根基","战栗","地缚","灼热","清毒"};for _,i in t do n=i.."图腾";TargetByName(n,1);end;PetAttack();
宠物宏 - 智能召唤/复活/治疗
如果宠物存在,死的就复活,没死就++,宠物消失了的话就召唤,如果是尸体消失,请同时按住Alt键,
会强制使用复活,因为WOW消失了仍然认为是活的……
/script local p,s="pet","召唤";if UnitIsDead(p) then s="复活";elseif UnitExists(p) then s="治疗" elseif IsAltKeyDown() then s="复活";end;CastSpellByName(s.."宠物");
寻找稀有精英宠物
公共部分已经有了,不过鉴于猎人特殊性在专门写一个
/script local s="断牙";TargetByName(s,1);if UnitName("target")==s then ChatFrame1:AddMessage("找到");end;
上边名字自己修改
针对不同目标调整宠物技能自动施放情况
这个宏可以针对不同类型的目标调整宠物技能的自动施放,比如带蝙蝠面对近战应该打开尖啸,而面对法系就应该关掉
带会爪击的宠物打怪时应该关掉爪击开低吼,而遇到玩家需要关低吼开爪击,这个宏可以自动为你做到
/施放 猎人印记
/script local x,p,j,e,_={1,1,1},UnitPowerType("target");if UnitIsPlayer("target") then if p==0 then x={1,nil,nil,1};else x={1,nil,1};end;end;for j=4,7 do _,_,_,_,_,_,e=GetPetActionInfo(j);if x[j-3]~=e then TogglePetAction(j);end;end;
说明一下,红色的{1,1,1}对应NPC,蓝色的{1,nil,nil,1}对应有蓝职业,绿色的{1,nil,1}对应战,贼
四个1/nil对应宠物技能条4 5 6 7按钮,1代表开,nil代表关,最后一个是nil的话可以不写,
大家可以自己调整技能和对应职业的开关顺序,毕竟不同bb技能不用
比如我带的断牙,
-------4 突进-----5 撕咬-----6 爪击-----7 低吼
怪-----1----------1----------nil--------1
贼战---1----------1----------1----------nil
其他---1----------1----------1----------nil
猫头鹰/蝙蝠
-------4 俯冲-----5 尖啸-----6 爪击-----7 低吼
怪-----1----------1----------nil----------1
贼战--1-----------1----------1----------nil
其他--1-----------nil---------1----------nil
战士
MT 救命宏
首先吃糖
糖CD就使用生命宝石
如果在CD就使用破釜沉舟
如果也在CD就吃极效红
全部CD就盾墙
把 糖、生命宝石、破釜沉舟、极效红、盾墙 依次放到动作条上,记住,依次,参考上面的图,假设是编号从37-41
/script local i,s,d,e;for i=37,41 do s,d,e=GetActionCooldown(i);if d<2 and e>0 then UseAction(i);break;end;end;
用你查到的编号替换上边红色数字
MT 开怪宏 - 战斗 + 冲锋 + 防御 + 嘲讽,懒人MT必备!!
如果不在战斗中,防御姿态就切战斗姿态,战斗姿态的话就冲锋,
如果在战斗中,战斗姿态就切防御,防御姿态就嘲讽
貌似MT不用冲锋开怪…… orz
/script local c,f,a,b,_=CastSpellByName,GetShapeshiftFormInfo;_,_,a=f(1);_,_,b=f(2);if UnitAffectingCombat("player") then if a then c("防御姿态");elseif b then c("嘲讽");end;else if a then c("冲锋");elseif b then c("战斗姿态");end;end;
MT 狂暴之怒宏
功能:如果防御姿态,按一下切狂暴,如果狂暴姿态按一下狂暴之怒,如果狂暴姿态而且狂暴之怒CD中按一下切回防御
把狂暴之怒放到动作条上,查出编号,编号看上边基础知识:
/script local c,a,_=CastSpellByName;_,_,a=GetShapeshiftFormInfo(3);if a then if GetActionCooldown(狂暴之怒编号)==0 then c("狂暴之怒");else c("防御姿态");end;else c("狂暴姿态");end;
用你查到的编号替换上面红色数字
法术书版
/script local c,a,_=CastSpellByName;_,_,a=GetShapeshiftFormInfo(3);if a then if GetSpellCooldown(狂暴之怒编号,"spell")==0 then c("狂暴之怒");else c("防御姿态");end;else c("狂暴姿态");end;
非战斗就战斗姿态+冲锋,战斗中则狂暴+拦截
每次做一个动作,反复按吧
/script local c,a,b,_=CastSpellByName;_,_a=GetShapeshiftFormInfo(1);_,_,b=GetShapeshiftFormInfo(3);if UnitAffectingCombat("player") then if b then c("拦截");else c("狂暴姿态");end;elseif a then c("冲锋");else c("战斗姿态");end;
WOW 2.0版,每次做一个动作,反复按吧
/施放 [nocombat,nostance:1]战斗姿态;[nocombat,stance:1]冲锋;[combat,nostance:3]狂暴姿态;[combat,stance:3]拦截
挫志怒吼 + 雷霆一击 + 撕裂 + 致死打击
/script local n,s,k,j,d,f={"Cry","Clap","Gouge","."},{"挫志怒吼","雷霆一击","撕裂","致死打击"};for k=1,4 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
破胆怒吼 + 绷带
没满60级的或者在战场中的绷带名自己改
/施放 破胆怒吼
/script local b,s,l;for b=0,4 do for s=1,18 do l=GetContainerItemLink(b,s);if l and strfind(l,"厚符文布绷带") then UseContainerItem(b,s,1);break;end;end;
远程武器宏
自动判定当前远程武器类型而决定使用该种武器进行射击,弓,弩使用箭,枪械使用子弹
这个不会切换,所以弹药自己处理
/script local l,_=GetInventoryItemLink("player",18);_,_,l=strfind(l,"item:(%d+)");_,_,_,_,_,l=GetItemInfo(l);l=strsub(l,1,6);if l~="投掷" then l=l.."射击";end;CastSpellByName(l);
如果在防御姿态就用盾牌格挡,在狂暴姿态就用狂暴之怒,在战斗姿态就用惩戒痛击
/script local s,j,a,_={"惩戒痛击","盾牌格挡","狂暴之怒"};for j=1,3 do _,_,a=GetShapeshiftFormInfo(j);if a then CastSpellByName(s[j]);break;end;end;
亡灵战士 智能亡灵意志/狂暴之怒
被恐惧时如果狂暴之怒没有CD优先使用狂暴之怒 如果狂暴之怒有CD使用亡灵意志
如果被闷棍或凿击使用狂暴之怒
如果被媚惑使用亡灵意志
把狂暴之怒放到动作条上,查出编号,记下来,查编号看上边基础知识
/script local f,s,j,d,i=strfind,{"被遗忘者的意志","狂暴之怒"},1;for i=1,16 do d=UnitDebuff("player",i);if d then if f(d,"dSte") or f(d,"Goug") or f(d,"Poss") and GetActionCooldown(狂暴之怒编号)<2 then j=2;break;end;end;end;CastSpellByName(s[j]);
法术书版
/script local f,s,j,d,i=strfind,{"被遗忘者的意志","狂暴之怒"},1;for i=1,16 do d=UnitDebuff("player",i);if d then if f(d,"dSte") or f(d,"Goug") or f(d,"Poss") and GetSpellCooldown(狂暴之怒编号,"spell")<2 then j=2;break;end;end;end;CastSpellByName(s[j]);
用你查到的编号替换上边红色字
注意:这个宏别乱按,没事空按的话直接亡灵意志
圣骑士
自动换圣契
当然使用圣光闪现的时候 自动装备[神性圣契],当我使用驱散的时候 自动装备[优雅圣契]
把两个圣契一个装在身上,另一个放在右边第一个包的第一个格子里
第一个宏:放圣光闪,如果身上带的不是神性圣契就先换,再按放圣光闪现
/script local l=GetInventoryItemLink("player",17);if l and strfind(l,"神性") then CastSpellByName("圣光闪现");else UseContainerItem(0,1);end;
第二个宏:放清洁术,如果身上带的不是优雅圣契就先换,再按放清洁术
/script local l=GetInventoryItemLink("player",17);if l and strfind(l,"优雅") then CastSpellByName("清洁术");else UseContainerItem(0,1);end;
如果圣契放在包的其他位置,自己修改上边红色数字,修改方法看上边基础知识
打贼奉献宏
有目标就放最高级奉献,没有目标就放1级奉献
/script if UnitCanAttack("target","player") then CastSpellByName("奉献");else CastSpellByName("奉献(等级 1)");end;