求教mushclient高手,如果两个触发器同时触发了,怎么处理啊?
如题,如果这两个触发器是同一类型,那不可能,可如果一个是timer一个是trigger,怎么办?我做的机器人经常跑乱,诸位高人,都是怎么解决的啊? 这个应该是你机器人的思路问题 回小刀,举个最简单的例子send("halt");
world.DiscardQueue();
world.DeleteTemporaryTimers();
world.DoAfterSpeedWalk(2,DoOtherThing);
如上的这个,写在一个一次性timer里,用以避免发呆的busy,并跳出开始DoOtherThing,trigger里有另一个触发器
<trigger enabled="y" group="learn" match="^(.*?)你发呆了一会儿,发现自己居然精神百倍!(.*?)$" regexp="y" send_to="12" sequence="100">
<send>world.DoAfterSpeedWalk(1,"(learn zhu for literate 50) (fadai)");</send>
</trigger>
现在从发呆室出发,要保证绝对可以做DoOtherThing,该怎么做?如果DoOtherThing之后再回来发呆以此循环,网络好些不容易测出,网络稍差很容易就一只发呆了,DoOtherThing做不了 写一个自定义的触发,或者其他触发来Doothering.
Set nextdo start---->设置环境变量 nextdo start--->触发Doothering.
send("halt");
world.DiscardQueue();
world.DeleteTemporaryTimers();
world.DoAfterSpecial(10,"Set nextdo start",10);
[ 本帖最后由 littleknife 于 2011-1-18 06:45 PM 编辑 ] 这个情况,你用以下思路可以解决.
因目前我的环境问题,无法给出代码,这个请见谅.
一般是---你发呆了一会儿,发现自己居然精神百倍---这句会引起一个触发.
你在那个触发前面再加一句,
把你timer的时间设置往后移动个20秒的样子(即延后20秒再运行timer,具体命令查手册)
这样,如果你的网络一直正常,你就可以一直正常触发,而不会使用到timer(因为他一直往后延嘛),如果网络出了问题,不能正常触发,则,timer可以解决问题
这只是一个思路,供参考
页:
[1]