我倒觉得用wait编程是最不需要水平的,关键它去掉了太复杂的逻辑,和相互引用。
举个简单的例子:
当你在等待一个busy结束的时候,zmud怎么做,大概是打点提前量吧,本来只有2秒busy,#wait 3000什么的。不用wait的mush怎么做,使用DoAfter?而一旦过多地使用DoAfter,逻辑关系就一团糟吧,绕来绕去容易绕出问题来,也不好维护。
但你如果使用wait.lua,问题就变得局部化、简单化了。
--下面这段代码等待一个busy的结束,与其它任何代码没有关联性,非常独立地完成一个功能
repeat
Execute("eat busy")
local l,w = wait.regexp("你身上没有busy这样食物|你现在正忙着呢",1)
if l~=nil and string.find(l,"没有busy") then
break
end
until false
--你也可以非常独立地完成一个打坐的功能模块,任何时候任何地方都可以调用,与其它代码完全没有关联,多么干净
--稍微简化一下,大致如下
function dazuo_to(neili) --打坐到规定内力
repeat
Execute("hp") --执行HP,得到目前内力
local l,w = wait.regexp("内力:\\s*(\\d+)", 2) --正则有点难看
local now_neili=w[1] --取得当前内力值
if now_neili
Execute("dazuo 100") --打坐
wait.regexp("你运功完毕",60) --等待打坐结束
else
break --内力到了,跳出
end
until false
end
这就是奇妙的wait
[ 本帖最后由 myu 于 2010-12-10 09:03 AM 编辑 ] |