ddid 发表于 2009-5-31 22:30:06

其实就是在search那个Execute的Delay的时候发现wait的,已经可以通过如下脚本实现从从黄厝到桃花岛中间坐船的wait:

-- 从黄厝到桃花岛,测试坐船wait
function wtt()
require "wait"
wait.make (function ()
Send (EvaluateSpeedwalk("(nw)3n(enter boat)"))
wait.time (6)
Send (EvaluateSpeedwalk("2n"))
wait.time (2)
Note ("Done")
end)
end -- wtt()

但还是不知道Execute的Delay到底如何实现,呵呵……

duno能否演示一下?

yuerr 发表于 2009-5-31 23:51:00

wait没有意义,用Queue+busytest更方便
我实在没看出哪里有用wait的必要
可以参考我的钓鱼机器人

ddid 发表于 2009-6-1 00:05:34

按照我的理解,自己做了一个增加Delay的小脚本,功能与51楼的脚本相同,duno看看是不是这个意思?

代码无用,废弃掉……

[ 本帖最后由 ddid 于 2009-6-1 09:24 AM 编辑 ]

duno 发表于 2009-6-1 00:15:48

wait的可以简化busy型行为的衔接,这也是意义 囧
只是不够健壮,且对speed walk没用处,有更好替代方案
比如
Send (EvaluateSpeedwalk("(nw)3n(enter boat)"))
wait.time (6)
Send (EvaluateSpeedwalk("2n"))
中间的wait 6s很脆弱,只要稍有延迟或其他干扰发生,就不能按预期执行了

Execute 需要在Commands->speed walking设置delay
Execute ("# (nw) (do 3 n) ") , enter boat,check到岸,Execute("# (do 2 n)")

duno 发表于 2009-6-1 00:24:07

回复 53# 的帖子

高科技(囧)的方法是enter boat后,check是否到岸,到岸则继续后面的路程

check方式就是一个one_shot的 trigger,
如:
set brief 2    --保证出现 “出口”行
trigger"^    这里XXXXXX的出口XXXX" , "到岸判定确认,继续路程"
SetTriggerOption ("trigger名称", "one_shot", 1)-- 设定只触发一次

ddid 发表于 2009-6-1 00:35:12

确实不够健壮,单纯模仿zmud的#wait而已……

看来zmud的#wait是一个通用的解决方案,无论什么情况,等够时间就执行,但是不够健壮,

MUSH虽然需要更细致的状态检查(如:检查到岸……等),但可以更精密地执行……

感觉MUSH还有很多需要细致研究的地方啊。

谢谢了,duno and everyone.

muxiao 发表于 2009-6-1 09:18:13

真是讨论出花来了.哈哈,感觉我的生动的描述把大家引入一个前所未有的,昏头昏脑的境界.

ddid 发表于 2009-6-1 09:27:24

怎么看都是我——比较晕,各个都比我清醒……

bow
页: 1 2 3 4 5 [6]
查看完整版本: 请教这个mush的alias问题