第2个回答 2007-10-31
一键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);
瞬召虚空并牺牲宏 - 传说中的双胖子
功能:如果带的是虚空则牺牲,不是的话按第一下瞬召虚空,再按一下牺牲,之所以要按两下因为所谓瞬召实际还是有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本回答被提问者和网友采纳