wubi 发表于 2011-1-29 22:43:16

mush 延时执行命令变通解决方法

正好在挂基本功,上来发个帖子。
大致浏览了一下论坛,当然也摆渡了一下,发现MUSH当前使用的4.43版本并没有内置类似于ZMUD的wait函数。官方网站老实说本人看不懂,可能新版本已经有了。
这里想说一下的是通过LUA脚本以及MUSH内置的doafter()来变通实现延时执行命令(MUSH爱好者上有更牛的方法about线程控制,可以实现暂停)。
我的方法只能延时执行,无法暂停,无法结束。如果对你没什么帮助,只能说很遗憾了。
废话说完,正式开始:
建立两个数组,一个存储指令,一个存储延时时间,然后通过循环语句输出一组doafter()
比如:A 1秒,B 2秒,C 3秒
myArray1={A,B,C}
myArray2={1,3,6}
for i=1,3,1 do
doafter(myArray2,myArray1)
end
为什么是1,3,6呢,因为第二个指令等待时间不是两个指令的间隔时间。所有的doafter()都是从0秒一起开始计时,所以第二个指令要加上第一个指令的等待时间,第三个要加上前两个的,如此类推。
这里只有例子没有现成的函数,实在看不懂或者想要现成的MAN,可以留言或者直接去WIKI上找!

jarlyyn 发表于 2011-1-29 22:49:23

要实现#wait
重点不再doafter上或者现成上,重点在于实现一个指令解释器

ptouch 发表于 2011-1-30 10:35:21

wait 是用了lua 的协同程序
页: [1]
查看完整版本: mush 延时执行命令变通解决方法