0
焦点头条

官方内置宏语法攻略

2014-02-23 07:56| 查看: 5202 |作者: 小雪+陈雨




宏的基本运用
一键多技能
如上面得例子,将所有的技能合并到一个键上,通过各种条件判断技能释放前后。
注意事项:所有有公共冷却以及冷却时间的技能,都需要加入冷却时间判断,才能整合在一起。例外:名动四方
这是判断公共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。
第四行是使用剑心通明
第五行是如果没有剑舞则使用满堂势
第六行是如果没有剑舞则使用剑舞(怕有些时候满堂势被去掉)
第七行是如果没有繁音,则使用繁音
第八行是使用冲脉关门
第九行是如果有剑舞则使用剑气长江
第十行是如果有剑舞则使用剑主天地
喜欢研究的同学可以对照研究,喜欢照搬的同学可以直接搬走。其他的一键输出可以参考这一项,后面会给一些实际例子。

收藏 分享 邀请

发表评论

关注订阅号"剑网3PVE"
获取第一手剑三资讯

关闭
您当前使用的浏览器版本过低,网站部分功能可能失效,请更换合适的浏览器。了解更多
返回顶部