注意:由于我的宏功能比较强,所以要求技能和装备的位置必须必须在我指定的位置,否则我的宏你是不能用的声明:不管你信不信,所有的宏都是可以用的,我自己都实际测试过,给出的宏直接用都OK(4楼由于未测试,也许 ...
注意:要求技能和装备的位置必须必须在我指定的位置,否则不能生效 声明:不管你信不信,所有的宏都是可以用的,我自己都实际测试过,给出的宏直接用都OK 当然,位置也可以你自己定,只要把相应的技能编号改下,具体的编号我都给出了 一,冲锋,压制,拦截,断筋 /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键,使用饰品,联盟徽记等 4,大脚的技能拦可以拖出来几个,放到屏幕中间,放一些常用的技能 拉怪宏,多功能 /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 |