北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 6878|回复: 7

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

[复制链接]
发表于 2013-12-18 15:54:55 | 显示全部楼层 |阅读模式
小弟新学mushclinet,按前辈的教程使用wait.regexp来抓取触发。但是一个问题一直困扰着我,就是在wait.make(function() ....end)之间如何判断busy,求解答

北大侠客行MUD,中国最好的MUD
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2013-12-18 16:02:10 | 显示全部楼层
repeat
send(checkbusy)
l =wait.regexp(你不忙,1)
until l不为空
后续代码……

是这个意思吗?爪机code无力
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2013-12-18 18:35:26 | 显示全部楼层
本帖最后由 iamhy 于 2013-12-18 11:22 AM 编辑

对,可是如何写为函数,写为函数,运作的话会报错,不写为函数,调用的时候没办法回调,如果忙等待后在判断就不会写了
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 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)
爪机。。。哭泣
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2013-12-18 18:50:57 | 显示全部楼层
以上只是个人风格,方法应该有好多,比如lzkd的mush中级教程里好像用的是一种hook的方法。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2013-12-18 19:23:30 | 显示全部楼层
谢谢了,我明白了
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2013-12-18 19:39:43 | 显示全部楼层
本帖最后由 hasea 于 2013-12-18 07:56 PM 编辑

回复 4# hijacker

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

另外while的时候掉线的话这个可能会陷入死循环。判断一下检测busy的次数或是时间是比较好的。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2013-12-18 21:07:38 | 显示全部楼层
太感谢了,帮我解决了很多的问题,现在我的机器人效率终于高了
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-11-28 01:47 PM , Processed in 0.009304 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表