linjpen 发表于 2012-1-29 18:25:34

请教mush在行走中实现暂停!

比如:要去e;e;e;e;w;sw;e;e;
j结果要在中间某步实现触发暂停,要怎么做,mush函数看遍了也不知道有哪个函数可以实现、

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

littleknife 发表于 2012-1-29 19:50:20

我的做法是,把这个字符串先解释为单个命令,也就是用";"分割,然后,存放在一个表格里。
然后做个迭代器,无论是函数迭代,还是Timer迭代,基本就可以实现一步一步行走了。
最后,需要暂停的时候,就是不去执行迭代器或暂时关闭Timer就可以了。呵呵。。

linjpen 发表于 2012-1-29 20:05:07

mush里有哪个函数有这个功能吗?脚本什么的,实在没基础,只会做简单的触发

littleknife 发表于 2012-1-29 20:12:53

置顶帖的框架脚本《一个脚本》框架文件里的walk.mod就是行走模块,估计能对楼主有所帮助。建议去看看。

linjpen 发表于 2012-1-29 20:28:55

嗯。,这个大作我第一时间看了,因为我水平不高的关系,愣是没看懂,里面的do_walkgo是把里面已经做好某段路径中进行行走的吗》?我试了下walk_pause()和walk_resume(),发现只能在城际中起作用,据您所说的do_walkgo也是可以支持自定义任何路径的,但是不知道怎么应用呢。

pizzagoo 发表于 2012-1-29 20:38:44

回复 3# linjpen


    如果你用的是快速行走,试试这个方法,DiscardQueue()。
但是,如果这么用,最好把快速行走方法的每步时间调整到半秒以上,不然根本来不及

linjpen 发表于 2012-1-29 20:47:29

回复 6# pizzagoo

嗯,这样做停是停了,但要继续走怎么办

emyt 发表于 2012-1-29 23:45:18

maper 领悟机器人的行走模式也可以参考参考

littleknife 发表于 2012-1-30 08:01:58

本帖最后由 littleknife 于 2012-1-30 08:03 AM 编辑

回复 5# linjpen


    do_walkgo(path,steptime,ok_end,fail_end)

第一个参数:是一个zmud格式的路线。
第二个参数是:每一步的间隔时间。
第三个参数是:行走成功后调用函数。
第四个参数是:行走失败后调用函数。

若采用慢速行走,可以如下方式引用:



wait_step=-1----论坛模块的引用。-1为开启慢速行走。。新模块(未发布)已经不用这种方法。
path="e;e;e;e;w;sw;e;e"
local f=function()
print("默认成功回调函数")
end
local e=function()
print("默认失败回调函数")
end
do_walkgo(path,1,f,e)
--[[
walk_pause()---暂停
walk_resume()--继续

--]]

linjpen 发表于 2012-1-30 14:58:16

感谢大家,最近有些事,过几天再尝试
页: [1]
查看完整版本: 请教mush在行走中实现暂停!