目前公版的hs任务,时不时会出现发现npc却走过的情况,这时候系统提示"这里没有这个人。"然后就开始发呆.
前两天我打算修改这个bug,结果出了一堆错,下面把犯的这些错误给各位大神分享一下:
首先呢,我想抓"这里没有这个人。"这个提示,然后激发重新搜索,编好以后发现,发呆变成高频了,原来一旦开始hs2,遇到拦路npc,lujing.lua里面wipe_trigger开始启动自动杀npc,里面也有一个trigger是"这里没有这个人。",我的trigger被激发,wipe的trigger失效,就不继续走路了.
好吧,我就加了一句 'compare '..job.id,这样提示就变成 "xxx 不在这里",我抓这个trigger算了.
不料发现,还是解决不了问题,原来hs是用快速行走,这个地方会走过,重新搜索时还是会走过,不停重复的错过npc,还好自动找二次以后就停了,至少,不发呆了.
于是我就再加一个trigger,"^(> )*(\\S*) -",不停的记录当前房间名称,发现npc这个trigger被激发时立即记下当前房间名,一旦错过就直接奔回记录下的房间名重新搜索,避免重复错过.
这个问题的确解决了,又发现,每次在华山菜地做任务时,做完不回祭坛交首级,直接奔下一个任务点了.
琢磨很久,最后才发现,原来lujing.lua里面判断菜地也有一个trigger,和我刚才建的trigger重复了,我的trigger一旦激发,lujing.lua就不知道自己已经出了菜地,仍然暴走,直到最后放弃,奔下一个任务去了.
连续两处遇到重复trigger激发问题,于是我就去mush他家 Gammon Software的网站去找答案,原来可以通过设置SetTriggerOption,允许Trigger多次激发.
加了SetTriggerOption("huashan_miss","keep_evaluating","y"),终于可以跑出菜地了.
回过头来看,我其实应该把这个trigger放到huashan_find这个group里面,切首级后这个group会被false,也就不影响lujing.lua.
不过呢,学习了SetTriggerOption的一堆参数,也算值吧.
这些教训,估计很多大神早就明白,不过呢,分享一下自己的教训,给其他新人看看,避免弯路吧.
另外,由于我的mush被改得七零八落,实在没办法把修改后的模块共享给大家,如有需要,参考上面的思路自行修改吧.各位大神有更好的办法,也请多多指教. |