2014-02-23 07:56| 查看: 5163 |作者: 小雪+陈雨
关于减少宏的字数: 1.使用函数封装,最常用的就是N=GetClientPlayer() 比较复杂的如: function use(id) A,B,C=N.GetSkillCDProgress(id,N.GetSkillLevel(id)) if C==0 then OnUseSkill(id,N.GetSkillLevel(id)) end end 再复杂的就是上面的那几个函数了 2.合理运用判断语句以简化语句,如上面的 if c==0 then if GetItemNameByItem(wq)=="长恨" then OnUseSkill(52,2) else Equip("长恨") end else Equip("九霄双剑") end 如果c==0,如果武器名字等于长恨然后使用回春妙手,这里的else是除了以上情况以外,也就是说如果不是长恨,就使用技能。 如果c不等于0,就装备九霄双剑。 if c==0 and GetItemNameByItem(wq)~="长恨" then Equip("长恨") end if c==0 and GetItemNameByItem(wq)=="长恨" then OnUseSkill(52,2) end if c~=0 then Equip("九霄双剑") end 虽然都是达到一样的效果,但是后者比前者要多上50多个字符,金山宏限制1024字符,50个字符是很多的= = 3./script的省略 其实一个宏只需要在开头写上一个/script就可以了。 例如: /script N=GetClientPlayer() /script H=N.bOnHorse /script function say1()N.Talk(PLAYER_TALK_CHANNEL.NEARBY,"",{{type="text",text ="我有一头小毛驴,但我从来也不骑"}}) end /script function say2() N.Talk(PLAYER_TALK_CHANNEL.NEARBY,"",{{type="text",text ="小毛驴累了"}}) end; /script if H==true then say2() else say1() end /script OnUseSkill(605,1) 跟 /script N=GetClientPlayer() H=N.bOnHorse function say1()N.Talk(PLAYER_TALK_CHANNEL.NEARBY,"",{{type="text",text ="我有一头小毛驴,但我从来也不骑"}}) end function say2() N.Talk(PLAYER_TALK_CHANNEL.NEARBY,"",{{type="text",text ="小毛驴累了"}}) end; if H==true then say2() else say1() end OnUseSkill(605,1) 这两个效果是一样的,不过建议新手还是使用每行/script这样看起来比较有条理一些不像后者全部挤在一起。 |