*尽量安装super macro插件的以便更好的支持宏命令


战士


冲锋,压制,拦截,断筋
/script C=CastSpellByName;
/script U=IsUsableAction;
/script R=IsActionInRange;
/script if(U(61)==1)then C("冲锋");elseif(R(61)==1)then C("拦截");elseif(U(63)==nil)then C("断筋");elseif(GetActionCooldown(63)==0)then C("压制");else C("断筋");end
前3行是定义语句,要不然写不下,另外也使宏更加好看和简练
首先判断冲锋是否可以用,如果能用则冲锋;
如果不能用,判断是否目标在拦截的范围以内,如果在范围内则拦截;
如果不在拦截的范围内,判断压制是否可以使用,如果不能使用则用断筋;
如果压制可以使用,判断压制的冷却是否为0,如果为0则压制,如果不为0则使用断筋。
效果就是,如果离敌人远就冲锋或者拦截,如果接近了就断筋,如果断筋被躲闪则立刻压制。
压制完了继续上断筋。断筋上好就该用下面的宏了。

致死,旋风,压制,英勇打击
/script C=CastSpellByName;
/script if(GetActionCooldown(63)==0) then C("压制");end
/script if(UnitHealth("target")<20) then C("斩杀");end
/施放 致死打击
/script if(IsActionInRange(63)==1)then C("旋风斩");end
/script if(UnitMana("Player")>39) then C("英勇打击");end
第一行为定义语句
第二行判断压制的CD是否为0,如果CD为0则压制,如果不能压制此行无效
第三行判断是否能处决,能则处决
第四行释放致死打击,(我为什么要用中文?用英文的话宏图标会一直是亮的,用中文明暗时间同致死打击)
第五行,判断敌人的距离,如果在5码内的话用旋风(利大弊大?自己衡量吧)
第六行,怒气大于39放英勇打击(这个自己可以随便定义)
效果,能压制压制,不能压制能处决就处决,都不能就放致死,致死CD中,敌人在攻击范围内就用旋风
怒非常多的时候就用英勇打击代替普通攻击。

破胆绷带
/施放 破胆怒吼
/script SpellStopCasting();
/target 自己的名字
/script if(GetActionCooldown(69)>0) then UseContainerItem(3,1);end
/script TargetLastEnemy()
第一行,释放战士的技能
第二行,停止当前动作
第三行,选择绷带目标,名字改成你自己
第四行,判断破胆这个技能的CD是否大于0,用处就是看看你破胆是否释放成功,经常我按技能的同时,对手跑出范围了,结果我在那傻傻的绷带,现在破胆不在CD中不会绷带了。 第五行,选择最后一个敌人
效果,目标被恐惧畏缩的同时你自己绷带,1秒都不浪费,恐惧结束刚好绷带完

群体攻击
/script G=GetActionCooldown;C=CastSpellByName;
/script F=CastShapeshiftForm;if(G(71)<2)then F(1);else F(3);end
/script if(IsUsableAction(71)==1)then C("横扫攻击");end
/施放 旋风斩 /施放 顺劈斩
/script if(UnitHealth("target")<5)then TargetNearestEnemy();end
自动判断横扫攻击的CD,当CD好了的时候如果不在战斗姿态则自动切换到战斗姿态放横扫攻击
然后再自动切换回狂暴姿态,放旋风和顺劈
最后一行判断目标的血量,如果少于5%,则切换下一个目标

双手武器和盾切换/script P=PickupInventoryItem;
/script C=PickupContainerItem;
/script P(17);if(CursorHasItem())then C(4,2);C(4,1);P(16);else C(4,1);P(16);C(4,2);P(17);end
第1、2步骤:定义P为拾取人物目前装备函数的别名,定义C为拾取背包物品函数的别名,纯粹是为了节省字数
第3步骤:P(17),拿起目前装备的副手物品(如果是双手武器,副手没有,这样就没有拾取到物品,如果当前是单手+盾牌,这里就拾取了盾牌)
第4步骤:判断,if (CursorHasItem()) then,检查当前有没有拾取物品()
第4.1步骤:如果第4步判断是真,就是当前拾取了盾牌
第4.1.1步骤:C(4,2),,那么将盾牌放到背包2号位置中;
第4.1.2步骤:C(4,1),拿起背包1号位置的物品——双手武器;
第4.1.3步骤:P(16),将双手武器替换掉当前主手武器;
第4.2步骤:如果第4步判断为否,就是当前没拾取到物品,那么表明当前装备是双手武器
第4.2.1步骤:C(4,1),拾取背包第1位置的物品——单手武器;
第4.2.2步骤:P(16),将单手武器装备到主手位置;
第4.2.3步骤:C(4,2),拾取背包第2号位置的物品——盾牌;
第4.2.4步骤:P(17),将盾牌装备到副手位置;

盾牌格档,复仇,破甲,英勇打击
/施放 盾牌格档
/script if((GetActionCooldown(64)==0) and (IsUsableAction(64)==1))then CastSpellByName("复仇");end
/施放 破甲攻击
/script if(UnitMana("Player")>44) then CastSpellByName("英勇打击");end
盾牌格档,能放复仇则复仇,放破甲,大于44怒放英勇打击

从防御姿态切换到狂暴姿态释放狂暴之怒再切换回防御姿态
/script G=GetActionCooldown;
/script if(G(70)<2)then CastShapeshiftForm(3);end
/script if(IsUsableAction(70)==1)then CastSpellByName("狂暴之怒");end
/script if(G(70)>0)then CastShapeshiftForm(2);end
狂暴之怒放在第70号键位,就是左下额外技能拦的第10个。
效果:如果狂暴之怒不在CD中,则切狂暴姿态,释放狂暴之怒,如果狂暴之怒开始CD,则切回防御姿态
需要连续按很多次,不过只要鼠标狂点此傻瓜宏就可以了。比如MT黑龙看见地板震动,立刻狂点,就OK
注意:此技能不要放在数字拦那里,因为换姿态后技能就变了,托到别的地方用鼠标连续点。