为什么要使用wait
http://p.kaixin001.com/privacy/photo/14/25/50132174_563142589.jpg如上图,假如事件A.B.C.D都可能引起事件1.2.3.4,事件1.2.3.4又都可能引起事件I.II.III.IV.V.VI
那么在mushclient使用中,如果你用纯粹的触发或DoAfter来处理这类事件,逻辑关系会变得非常的复杂。
例如,当事件V发生时,你可能需要知道是哪个事件触发了事件V,然后根据不同的触发源进行不一样的处理。
大量的使用标志变量也许能解决这个问题,但是大量地使用标志变量会使程序变得非常的难懂。
而使用wait,这些事件的处理是封闭的、顺序执行的,其优点是逻辑清晰,可读性好,而且一个模块的内部修改
不会影响其它模块,可维护性也就好得多。 我说的这个wait,就是mushclient自带的wait.lua,使用它可以使复杂的流程局部化、模块化。
例如:有一个流程,有连续三个action,第一个是打坐,第二个是拿剑,第三个是练sword。如果你不使用wait.lua,很难将这三个动作局部化到一个模块里,而使用wait就可以做到,示意如下:
do 打坐action
wait打坐完成 (这里你如果不用wait,动作完成后的处理代码就不能直接写在下面了,而要写到触发器里,或者写到其它模块,这样可读性可维护性就差了)
do 拿剑action
wait拿剑完成,并判断是否拿到了剑
如果拿到了剑
do 练剑法action
否则
返回 学习下。。。yct56
页:
[1]