huoyu 发表于 2008-12-26 00:15:05

我写的大部分机器人应该算状态试的

xxxcc 发表于 2008-12-26 15:13:31

请教我一下,zmud中如果测试busy状态呢?

xxxcc 发表于 2008-12-30 10:31:05

实在不了解LUA和MUSHCLIENT,所以对楼主的意思还不是很明了。
busyok=function(name,line,wildcards) -- 自杀有两种,您是要永远死掉还是重新投胎
      if busyhook==nil then return end
      busyhook()
      busyhook=nil
end

busyfail=function(name,line,wildcards)--你上一个动作还没完成。
    if busyhook~=nil then
      DoAfterSpecial(1,'suicide -1'")
    end
end
这个意思是,如果接收到“自杀有两种,您是要永远死掉还是重新投胎”就执行busyok函数,如果接收到“你上一个动作还没完成”就执行busyfail函数,也就是过一秒再执行一次suicide -1来确定下一秒是否还是busy状态。那本质上,这还是一个触发式的机器人啊,只要其中一次“你上一个动作还没完成”没有触发成功,就会导致整个机器人停下来?

xxxcc 发表于 2008-12-30 10:40:08

我现在在ZMUD中的做法是这样的,比如dazuo以后,计算一下需要打坐的时间,应该是打坐的气血除以(enable force/10+1),比如算出来是10秒,那么10秒之后我就设定busy变量为1,同时建立一个时间触发,每一秒钟检测busy变量的值,如果busy变量是0,就执行busy_ok函数,如果busy变量是1,就执行busy_fail函数。另外建立一个普通触发:“自杀有两种,您是要永远死掉还是重新投胎”修改busy变量为0。
如果时间触发执行了10次,还是没有执行busy_ok函数,表示10秒钟发送了10次suicide -1,还是没接收到“自杀有两种,您是要永远死掉还是重新投胎”,于是执行掉线函数的处理。

zliao 发表于 2008-12-30 11:13:23

回复 undefined 的帖子

效率不如触发的吧?
因为suicide来check状态,本身就是靠触发的

chatter 发表于 2009-4-6 16:08:35

最头疼的是,在pkuxkx,有时候一个命令过去,什么回复都没有,然后就开始发呆了。。。

yaoguai 发表于 2009-4-7 15:51:39

如果是zmud的话
建议timer就用来做status check.
比如说
#alias timer {failJob;goBack;startNewJob}

然后机器人每执行一步
#ts 60
60秒内没有刷新这个ts
自动判定失败
重新来

syyzy 发表于 2009-6-25 12:39:04

好象检测是否处于busy状态可以用dazuo 1做到

yuerr 发表于 2009-6-26 16:10:48

dazuo guard估计都可以
dazuo之所以不考虑是新人没办法用
如果你没学过内功,dazuo就失效了
起码钓鱼机器人没办法写

feixiong 发表于 2010-1-7 17:16:18

高手机器求教

Timer function "on_steptimeout" cannot execute - scripting disabled/parse error.
高手大人,我用你的机器去连哪个 夕阳在现 hellyn3的mushclient可是连上了就出这个东西,是什么意思啊、/
页: 1 [2] 3
查看完整版本: 关于mushclient和lua的一些东西