宏无法判断是否在背后,所以做不出背后就背刺,否则就邪恶之类的宏,不要再问了
绷带不丢星,这其实就是自我施法,暴雪已经整合了这个功能,打开主菜单 -> 界面设置 -> 自动自我施法 打个勾就解决了
冷血 + 剔骨
如果目标是怪,连击点>=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 PickupInventoryItem(16)拿走主手武器
/script PickupContainerItem(x,y)把它放到X指第几个背包Y指第几个格子
/script PickupInventoryItem(17)拿走副手武器
/script PickupContainerItem(x,y)把他放到...
/script UseContainerItem(x,y)使用某包某格子的物品
/script UseContainerItem(x,y)同上
设计的不怎么巧妙,所以有点麻烦,楼主就将就一下吧,呵呵~~