宏的基本运用
一键多技能
如上面得例子,将所有的技能合并到一个键上,通过各种条件判断技能释放前后。
注意事项:所有有公共冷却以及冷却时间的技能,都需要加入冷却时间判断,才能整合在一起。
例外:名动四方。这是判断公**跟技能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)
/scriptif XX2==0 and XX3==0 then OnUseSkill(XXX,X) end
/scriptif YY2==0 and YY3==0 then OnUseSkill(YYY,Y) end
/script ifZZ2==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的等级,作为一个条件,下面有实例。
省事很多。