2014-02-23 07:56| 查看: 5167 |作者: 小雪+陈雨
宏的基本运用 一键多技能 如上面得例子,将所有的技能合并到一个键上,通过各种条件判断技能释放前后。 注意事项:所有有公共冷却以及冷却时间的技能,都需要加入冷却时间判断,才能整合在一起。例外:名动四方 这是判断公共CD跟技能CD,一般情况下只用判断技能CD,格式如下: /script N=GetClientPlayer() /script XX1,XX2,XX3=N.GetSkillCDProgress(XXX,X) /script YY1,YY2,YY3=N.GetSkillCDProgress(YYY,Y) /script ZZ1,ZZ2,ZZ3=N.GetSkillCDProgress(ZZZ,Z) . . . /script if XX2==0 and XX3==0 then OnUseSkill(XXX,X) end /script if YY2==0 and YY3==0 then OnUseSkill(YYY,Y) end /script if ZZ2==0 and ZZ3==0 then OnUseSkill(ZZZ,Z) end . . . 这是一个简单的技能冷却一到就使用技能的宏,适合于练第二门派技能的时候。 如果技能多了,可以进行函数封装: 下面是技能冷却的封装,调用的时候作为一个条件来用,只用改变括号里的ID就行了。 /scrpit function cd(id) A,B,C=N.GetSkillCDProgress(id,N.GetSkillLevel(id)) return C end 如果是判断坐忘无我的话就这样 /script if cd(312)==0 then OnUseSkill(312,N.GetSkillLevel(312)) end 这个是一个判断技能冷却以及使用技能的封装,一般情况下只需要直接使用就好了。 /script function use(id) A,B,C=N.GetSkillCDProgress(id,N.GetSkillLevel(id)) if C==0 then OnUseSkill(id,N.GetSkillLevel(id)) end end 如果是判断坐忘无我的话就这样 /script use(312) buff判断封装 /script function buff(mb,id,lvl) for _, D in pairs(mb.GetBuffList() or {}) do if D.dwID==id and (lvl==nil or D.dwLevel==lvl) then return true end end return false end 可以判断自己或者敌人的BUFF跟DEBUFF,以及BUFF跟DEBUFF的等级,作为一个条件,下面有实例。 省事很多。 关于七秀的一键整合 由于名动四方这个特殊的BUFF,需要加入一个判断BUFF的判断。 下面就以一键爆发来说明 满堂势+繁音急节+冲脉关门+剑气长江+剑主天地+剑心通明 剑舞BUFF(409) 名动四方(537,7) 满堂势(573,1) 繁音急节(568,4) 冲脉关门(168,1) 剑气长江(561,9) 剑主天地(562,10) 剑心通明(547,5) 有这么多技能就需要一些封装,不然写出来都是一大串。 /script N=GetClientPlayer() /script function use(id) A,B,C=N.GetSkillCDProgress(id,N.GetSkillLevel(id)) if C==0 then OnUseSkill(id,N.GetSkillLevel(id)) end end /script function buff(mb,id,lvl) for _, D in pairs(mb.GetBuffList() or {}) do if D.dwID==id and (lvl==nil or D.dwLevel==lvl) then return true end end return false end /script use(547) /script if not buff(N,409,35) then use(573) end /script if not buff(N,409) then use(537) end /script if not buff(N,568) then use(568) end /script use(168) /script if buff(N,409) then use(561) end /script if buff(N,409) then use(562) end 第一行是一个小封装,详细见上面。 第二行一个使用技能的封装,use(id)括号里的ID替代为技能ID。宣告ABC为获取技能冷却,如果技能CD等于0,则使用该技能。 第三行是一个判断BUFF的封装,buff(mb,id,lvl)括号里前面一个代表目标,后面一个是buffID,最后一个是判断BUFF等级,如果不填就不判断。这是一个判断目标BUFF跟DEBUFF的封装,只要需要判断BUFF就可以用到这个函数,我们这里目标是我们自己所以为N,剑舞BUFF为 409。在这里是为了判断剑舞是不是达到满堂势剑舞的等级,满堂势剑舞等级为35,而满层剑舞等级为34。 第四行是使用剑心通明 第五行是如果没有剑舞则使用满堂势 第六行是如果没有剑舞则使用剑舞(怕有些时候满堂势被去掉) 第七行是如果没有繁音,则使用繁音 第八行是使用冲脉关门 第九行是如果有剑舞则使用剑气长江 第十行是如果有剑舞则使用剑主天地 喜欢研究的同学可以对照研究,喜欢照搬的同学可以直接搬走。其他的一键输出可以参考这一项,后面会给一些实际例子。 |