iamhy 发表于 2013-12-18 15:54:55

求解答在mushclient中wait.regexp中判断busy

小弟新学mushclinet,按前辈的教程使用wait.regexp来抓取触发。但是一个问题一直困扰着我,就是在wait.make(function() ....end)之间如何判断busy,求解答

北大侠客行MUD,中国最好的MUD

hijacker 发表于 2013-12-18 16:02:10

repeat
send(checkbusy)
l =wait.regexp(你不忙,1)
until l不为空
后续代码……

是这个意思吗?爪机code无力

iamhy 发表于 2013-12-18 18:35:26

本帖最后由 iamhy 于 2013-12-18 11:22 AM 编辑

对,可是如何写为函数,写为函数,运作的话会报错,不写为函数,调用的时候没办法回调,如果忙等待后在判断就不会写了

hijacker 发表于 2013-12-18 18:42:22

function wait_busy()
while true do
    Send("checkbusy")
    local l, w = wait.regexp("你不忙", 1)
    if l ~= nil then break end
   end
end
--以上是while结构的函数,lua语言,用法:
wait.make(function()
Send("dazuo 100")
wait_busy()
Send("say finish")
end)
爪机。。。哭泣

hijacker 发表于 2013-12-18 18:50:57

以上只是个人风格,方法应该有好多,比如lzkd的mush中级教程里好像用的是一种hook的方法。

iamhy 发表于 2013-12-18 19:23:30

谢谢了,我明白了

hasea 发表于 2013-12-18 19:39:43

本帖最后由 hasea 于 2013-12-18 07:56 PM 编辑

回复 4# hijacker

这个方法应该就是很好的检测busy方法了。lzkd中说的那个hook好像不是使用wait模块。这样就要建有触发,要有回调,是比较麻烦的。

另外while的时候掉线的话这个可能会陷入死循环。判断一下检测busy的次数或是时间是比较好的。

iamhy 发表于 2013-12-18 21:07:38

太感谢了,帮我解决了很多的问题,现在我的机器人效率终于高了
页: [1]
查看完整版本: 求解答在mushclient中wait.regexp中判断busy