注意:由于我的宏功能比较强,所以要求技能和装备的位置必须必须在我指定的 位置,否则我的宏你是不能用的
声明:不管你信不信,所有的宏都是可以用的,我自己都实际测试过,给出的宏直接用都OK。
如果你发现有问题,仔细检查自己的技能或者装备是否在我所给出的位置,否则你是用不了我的宏的。
当然,位置也可以你自己定,只要把相应的技能编号改下,具体的编号我都给出了
由于需要规定的技能位置较多,详细请看1楼,我所提到的技能必须严格按我的位置放置!!
一,冲锋,压制,拦截,断筋
/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 UseInventoryItem(13)
用处,即使你换了饰物,仍然可以不换快捷键的使用,前提是你把这个语句做成宏
七,盾牌格档,复仇,破甲,英勇打击
/施放 盾牌格档
/script if((GetActionCooldown(64)==0) and (IsUsableAction(64)==1))then CastSpellByName("复仇");end
/施放 破甲攻击
/script if(UnitMana("Player")>44) then CastSpellByName("英勇打击");end
盾牌格档,能放复仇则复仇,放破甲,大于44怒放英勇打击
八,另外一个换武器的宏,这个连弓一块换,我是为了吃面包做的
/script P=PickupInventoryItem;C=PickupContainerItem;
/script P(17);if(CursorHasItem())then C(4,14);C(4,13);P(16);else C(4,13);P(16);C(4,14);P(17);end
/script UseContainerItem(4,15)
使用后同时换单手武器,盾,弓
九,自动给武器上鱼饵的,也可以上磨刀石,我钓鱼为了省事
/script UseContainerItem(2,1)
/script PickupInventoryItem(16)
十,切换防御姿态,缴械
/script CastShapeshiftForm(2)
/施放 缴械
如果不在防御姿态则切防御姿态,如果在则缴械 如果你是战斗或者狂暴姿态要缴械需要连续按2下
十一,守信史(呵呵)
/target 暮光预言者
/施放 冲锋(等级 3)
/施放 断筋(等级 3)
十二,从防御姿态切换到狂暴姿态释放狂暴之怒再切换回防御姿态
/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
注意:此技能不要放在数字拦那里,因为换姿态后技能就变了,托到别的地方用鼠标连续点。
十三,战斗怒吼宏,有就不管,没有就补上。我自己觉得不太好用。
/script local q; local t;for i=0,15,1 do t=GetPlayerBuffTexture(i); if (t and string.find(t, "BattleShout")) then q=1; break; end; end;if not (q ==1) then CastSpellByName("战斗怒吼") end;
十四 扔炸弹(很重要的)
/script if(IsCurrentAction(72)==nil)then UseAction(72);else SpellStopCasting();end
把炸弹放到左下第12个格子
第一下按是扔(必须要鼠标点地,本来想做个全自动的,但是命令,楼上的那个被封了,遗憾) 第二下按是取消扔炸弹,比按ESC容易多了。
十五 自动攻击的,如果按T,多按了就会取消攻击很讨厌,这个就不会取消了,哈
/script if(IsCurrentAction(50)==nil)then UseAction(50);end
把攻击放到右下中间第2个(或者从左数第14个)
如果没有攻击的话自动开始攻击 如果已经攻击则什么也不做。
补充几个重要技巧
1,战斗姿态,鼠标滚轮想上,狂暴姿态,向下滚
找到按键设置的CTRL+F1那里,这个是切换战斗姿态,把后面的第二快截键设置为鼠标滚轮向上
然后到CTRL+F2那里,这个切换狂暴姿态,把后面的第二快捷键设置为鼠标滚轮向下
2,R键,我现在改成扔雷
3,C键,使用饰品,联盟徽记等
拉怪宏,多功能
/script if((UnitHealth("Player")<2000) and (GetActionCooldown(33)==0)) then CastSpellByName("破釜沉舟");elseif ((UnitHealth("Player")<2000) and (GetActionCooldown(32)==0)) then UseAction(32);elseif ((UnitHealth("Player")<2000) and (GetActionCooldown(45)==0))then CastSpellByName("盾墙");end
/script if not IsBuffActive("战斗怒吼","player") then CastSpellByName("战斗怒吼");end
/script if((GetActionCooldown(64)==0) and (IsUsableAction(64)==1))then CastSpellByName("复仇");elseif ((GetActionCooldown(66)==0) and (UnitMana("Player")>19))then CastSpellByName("盾牌猛击");elseif (UnitMana("Player")>35))then CastSpellByName("破甲攻击");end
/施放 盾牌格挡
/script if(UnitMana("Player")>59) then CastSpellByName("英勇打击");end
33的位置代表破釜沉舟,32的位置是大红,45的位置是盾墙,64的位置是复仇,66的位置是盾牌猛击
此宏需要2个插件IsBuffActive和SuperMacro