dongzy604 发表于 2019-3-9 18:57:30

60版本1.12版本法师宏,PVP宏,副本宏,亲测可用

1. 法师的法术反制提示宏,能根据自己的法术书中的反制技能,来提示是不是能够使用.没有冷却时用/S频道报出冷却时间.其中的"94"需要根据具体反制在法术书中的位置做调整.因为字节超过255,以上需要SUPERMACRO插件支持.
/script local start,duration=GetSpellCooldown(94,1);SCM=SendChatMessage;cd=GetTime()-start;cd=math.floor(duration-cd);if (start>0 and duration>0) then SCM("法术反制CD还有"..cd.." 秒.","say") elseif UnitCanAttack("player","target") then SpellStopCasting();CastSpellByName("法术反制");SCM("已经对>>"..UnitName("target") .."<<反制!","say") end

2 法师的开饰品,然后再攻击的宏.其中的14为最下面一个饰品.另一个饰品需要改为13
同样的,这个宏适合其它饰品的使用,这个宏好处是,不会在屏幕上频繁的提示"物品没有准备好"
/script if GetInventoryItemCooldown("player",14)==0 then UseInventoryItem(14)
/施放 寒冰箭


3打断施法在地球时代要用以下脚本才行。
/run SpellStopCasting()
/cast Blink
这个宏就会打断你的施法然后释放闪现。下面的技能换成冰箱拉打断啦都行。


4气定神闲+炎爆术
/施放 气定神闲
/script SpellStopCasting();
/施放 炎爆术




5自动补 冰甲术,奥术智慧,魔法抑制
缺啥补啥,闲着没事按按能强身健体,定国安邦……
/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) then f=1;break;end;end;if not f then CastSpellByName(s);break;end;end;


6自动把被控制的队友变羊,小队,团队通用版
对于会控制玩家的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;




7随机变羊,猪,乌龟宏
/script local s,m,r={"",":龟",":猪"},{"%t变羊了","%t是乌龟","%t是猪"},random(3); CastSpellByName("变形术"..s);SendChatMessage(m,"yell");
可以根据变的种类喊话,想喊什么自己改




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




9/script if not buffed("Ice Block", 'player') then cast("Ice Block") end
这个命令可以狂按来释放冰箱而不用担心取消冰箱。
这包括奥术能量。

10取消冰箱可以/unbuff Ice Block也可以手动点掉。


11/script if UnitCanAttack("target","player") then CastSpellByName("暴风雪");else CastSpellByName("暴风雪(等级 1)");end;
有目标顶级下雪 没目标1级下雪pvpe双用 省蓝 抓贼....


12/script SpellStopCasting();CastSpellByName("法术反制")
停止当前施法 反制
/script SpellStopCasting();CastSpellByName("闪现术")
同上...


13法师冰箭宏
触发了节能自动释放奥弹
装备不好的法师可以考虑
/script i=1;m=0;while(UnitBuff("player",i)~=nil) do if(strfind(UnitBuff("player",i), "Spell_Shadow_ManaBurn") ~=nil) then m=1; end; i=i+1;end; c=CastSpellByName; if(m==1) then c("Arcane Missiles"); else c("Frostbolt"); end;


14/施放 奥术强化/script SpellStopCasting();/script UseInventoryItem(13); /script UseInventoryItem(14);短暂放饰品的下面那一格此宏直接复制粘贴即可,再不会你好去自杀了AP一定要比ZG护符先启动,
15奥术强化+护符+炎爆术
护符放哪里无所谓,会自动开已经冷却的护符
/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("炎爆术");

16气定神闲+炎爆术
/施放 气定神闲
/script SpellStopCasting();
/施放 炎爆术

17平时冰箭,出灵风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出现后换大技能,比如这里冰箭就是小技能,火球就是大技能
既然分出了大小,那就知道可以怎么改了,火球术可以改成其他“大技能”,比如 炎爆术
冰箭可以换成其他“小技能”,比如 灼烧,都是中国字,别跟我说你不会

18平时冰箭,出奥术专注效果就火球
/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;

1级奥暴骗节能,出节能就用顶级奥暴
/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("魔暴术(等级 1)");end;

19灼烧叠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 c("火球术");else c("灼烧");end;

20打贼奥爆宏
有目标就放最高级奥暴,没有目标就放1级奥暴
/script if UnitCanAttack("target","player") then CastSpellByName("魔暴术");else CastSpellByName("魔暴术(等级 1)");end;

21自动补 冰甲术,奥术智慧,魔法抑制
缺啥补啥,闲着没事按按能强身健体,定国安邦……
/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) then f=1;break;end;end;if not f then CastSpellByName(s);break;end;end;

22自动把被控制的队友变羊,小队,团队通用版
对于会控制玩家的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;

23随机变羊,猪,乌龟宏
/script local s,m,r={"",":龟",":猪"},{"%t变羊了","%t是乌龟","%t是猪"},random(3); CastSpellByName("变形术"..s);SendChatMessage(m,"yell");
可以根据变的种类喊话,想喊什么自己改
法师自动制造各种魔法宝石
SuperMacro版,宏写不下
左边窗口:
/script ConjureManaStone();

右边窗口:
Code (c):

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
function ConjureManaStone()
local x,j,b,s,l,f={"红宝石","黄水晶","翡翠","玛瑙"},1;
while j<5 do
f=nil;
for b=0,4 do
for s=1,18 do
l=GetContainerItemLink(b,s);
if l and strfind(l,"法力"..x) then
f=j;break;
end;
end;
if f then break;end;
end;
if f then j=j+1;
else CastSpellByName("制造魔法"..x);break;
end;
end;
end;

24冰箱开关
冰箱宏
/script SpellStopCasting(); if (GetSpellCooldown(159,0) == 0) then CastSpell(159,0); end
取消冰箱宏
/script if (GetTime() - GetSpellCooldown(159,0) < 10) then CastSpell(159,0); end

效果说明:
冰箱按一次有时候不起作用,不小心按两次又取消了,很多法师都头疼这个问题。
这里将冰箱和取消冰箱做成两个宏。
需要冰箱的时候,拼命的按第一个宏就是了,再以不怕多按又把冰箱给取消了。

补充:
注意(159,0)的159,每个人这个数字都不同,再实际使用的时候请替换成自己的实际数字。这个数字是法术顺序号,也就是打开技能书,从第一个也能一页一页的往下数,数到第159个如果是冰箱,那么你就用159,如果数到第100个法术是冰箱,那你就用100。

小技巧:
利用下面的宏,可以输出第x个法术是什么,帮你检验。
/script DEFAULT_CHAT_FRAME:AddMessage(GetSpellName(X,0));


25霜之新星
/script if ((UnitMana("player"))<65) then CastSpellByName("霜之新星(等级 1)");end
/script if ((UnitMana("player"))>=65) then CastSpellByName("霜之新星");end


效果说明:施放顶级(4级别)霜之新星,如果蓝不够,则用最节约的1级霜之新星。
这个宏设置的蓝低于65选择1级新星,你可以自行修改。

12:冰锥
/script if ((UnitMana("player"))<50) then CastSpellByName("冰锥术(等级 1)");end
/script if ((UnitMana("player"))>=500) then CastSpellByName("冰锥术");end


效果说明:类似的上一个宏,这个宏用来再蓝少的时候自动用最低级别级别(1级别)的冰锥术。
这两个宏,在风筝ae精英的时候特别有用,用来节约蓝,和拖延时间回蓝。


26
/script for bag = 0,4,1 do for slot = 1, GetContainerNumSlots(bag), 1 do local name = GetContainerItemLink(bag,slot); if name and string.find(name,"ff9d9d9d") then DEFAULT_CHAT_FRAME:AddMessage("Selling "..name); UseContainerItem(bag,slot) end; end; end 效果说明:搜索背包所有的格,如果发现内有灰色品质物品,则卖掉它。补充:在遇到商人打开交易界面的时候使用这个宏


27做水

/stand
/script if (UnitMana("player")>780) then CastSpellByName("造水术(等级 7)") else UseContainerItem(0, 1); end;


效果说明:有蓝就做水,蓝不足了就自动做下来喝水,前提要把水放在第一个包第一个位置

4:吃喝
/script if UnitHealth('player') / UnitHealthMax('player') < 0.7 then UseContainerItem(0, 2); end
/script if UnitMana('player') / UnitManaMax('player') < 0.7 then UseContainerItem(0, 1); end


效果说明:这个宏是给懒法师用的。如果生命或者蓝低于70%则做下来自动选择是吃还是喝。
前提是水放在第一个包第一个位置,面包放到第二个位置


28最完美的冰箱宏:
/script SpellStopCasting(); CancelBuff("Ice Block"); if (GetSpellCooldown(179,0) >= 2) then CastSpell(147,0); else CastSpellByName("Ice Block"); end;
功能:中断正在施放法术并使用冰箱;如果在冰箱中就解冰箱;如果冰箱冷却时间大于2秒则使用急冷。传统冰箱宏能解决冷却中使用急冷的问题,但是又没办法做到像按技能书里拉出来冰箱技能那样1键开1键解,这个宏把2者合并了,需要supermacro的cancelbuff语句支持
注:其中179是我目前的冰箱编号,147是急冷编号,下同


29一键4种魔法石按顺序吃:
/use Mana Ruby
/use Mana Citrine
/use Mana Jade
/use Mana Agate
从大到小顺序,不用再为他们准备不同的格子了

30/stand
/script if (UnitMana("player")>[你的造水术消耗的法力值]) then castSpellByName("造水术(等级 X)") else UseContainerItem(0, 1); end;
水放在包的0。1位置

自动饮食:
---
/script if UnitHealth('player') / UnitHealthMax('player') < 0.8 then UseContainerItem(X1, X2); end
/script if UnitMana('player') / UnitManaMax('player') < 0.8 then UseContainerItem(X1, X2); end

冰环寒流
---
/cast Frost Nova(Rank 4)
/cast Frost Nova(Rank 1)
/script last_cast, cooldown = GetSpellCooldown(21, SpellBookFrame.bookType); if cooldown==0 then CastSpellByName("Cold Snap") end;


协助宏
---
/script ClearTarget();
/assist Character
---
自动释放免费奥术飞弹
---
/script local q; local t;for i=0,15,1 do t=GetPlayerBuffTexture(i); if (t and string.find(t, "ManaBurn")) then q=1; break; end; end; if(q ~= nil) then CastSpellByName("Arcane Missiles(Rank X)") else CastSpellByName("(Rank X)"); end;
---
Arcane Missiles(Rank 7)为 奥术飞弹(等级 7)其他的类似

ManaBurn是节能的BUFF这个不用改中文 其他的技能名称要改

88灵风宏,中文客户端把火球冰箭的名字改成中文应该就能用
/script i=1;m=0;while(UnitBuff("player",i)~=nil) do if(strfind(UnitBuff("player",i),"Spell_Shadow_Teleport")~=nil) then m=1; end;i=i+1;end; c=CastSpellByName; if(m==1) then c("Fireball");else c("Frostbolt");end;

灰色物品自动售出 不知道是否好用……

当你买卖东西的时候自动售出所有灰色物品

Q u o t e:

/script for bag = 0,4,1 do for slot = 1, GetContainerNumSlots(bag), 1 do local name = GetContainerItemLink(bag,slot); if name and string.find(name,"ff9d9d9d") then DEFAULT_CHAT_FRAME:AddMessage("Selling "..name); UseContainerItem(bag,slot) end; end; end


31法师解诅咒
/施放 解除次级诅咒
/script if ( SpellIsTargeting() ) then SpellTargetUnit ("Player");end

这个宏在你指向目标是敌人或者没有目标时对自己施放解除次级诅咒法术,并且指向的目标不变。这在对付术士或者中了其他诅咒时非常有用,只需要按一下宏便可以将诅咒驱除,并且指向的目标仍然是敌人。
在当前目标是指向一个可以被施放魔法抑制的对象时,会对该目标施放而不是自己。

把第一行换成 /施放 魔法抑制(等级 x) 就变成魔法抑制宏了。把x改为你当前学会的魔法抑制的最高等级
页: [1]
查看完整版本: 60版本1.12版本法师宏,PVP宏,副本宏,亲测可用