faintokok 发表于 2013-4-13 16:34:41

mush wait的使用问题求解

请问站里的高手,有关wait的问题。
本人的mushclient版本是官网下载的4.84绿色英文版
本人在主脚本中参照本站脚本建立了一个函数测试wait的使用
脚本为:
脚本前面已经有:require("wait")
mushclient目录lua文件夹下也有wait.lua文件
function diaoyu_start()
wait.make (function ()--- coroutine below here
    wait.regexp ("你命令结束") -- 设置一个等待事件,只有在出现括号中的语句时,这行之后 end of coroutine 之前 代码才会被执行
    wait.time (1) -- 等待1秒
      Note("回到ct了") -- 提示到达目的地
      Execute("drink skin");--diaoyu_cttomatou() -- 从ct走道岸边
      end)-- end of coroutine
    Execute("eat pumpkin") -- 去买鱼饵
end
而后在alias中进行测试
alias名称:abb
Send中的内容:diaoyu_start();
送到Script。
执行过程中发现错误,具体如下:
Run-time error
World: fy4
Immediate execution
:891: attempt to index global 'wait' (a function value)
stack traceback:
      :891: in function 'diaoyu_start'
      :1: in main chunk
Error context in script:
890 : function diaoyu_start()
891*:   wait.make (function ()--- coroutine below here
892 :   wait.regexp ("你命令结束") -- 设置一个等待事件,只有在出现括号中的语句时,这行之后 end of coroutine 之前 代码才会被执行
893 :   wait.time (1) -- 等待1秒
894 :       Note("回到ct了") -- 提示到达目的地
895 :       Execute("drink skin");--diaoyu_cttomatou() -- 从ct走道岸边

从错误的描述看,好像没有认出来wait是个协程?找了好久也得不到解决,坐等高手,非常感谢。

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

labaz 发表于 2013-4-13 17:43:47

require后面需要括弧吗?或者wait.lua是在默认的那些搜索路径下吗?

faintokok 发表于 2013-4-13 17:46:26

tprint没有问题,看来是我的win8 64位的原因了。

labaz 发表于 2013-4-13 18:08:36

还有Execute("drink skin");--diaoyu_cttomatou() -- 从ct走道岸边
这个分号干嘛用的

nsonline 发表于 2013-4-13 20:53:51

tprint没有问题,看来是我的win8 64位的原因了。
faintokok 发表于 2013-4-13 17:46 http://pkuxkx.net/forum/images/common/back.gif


    win8   64位4.90表示一切正常

nsonline 发表于 2013-4-13 20:54:26

回复 6# labaz


    lua的最后加不加;都可以啊

labaz 发表于 2013-4-13 21:02:43

回复 8# nsonline

这不多余的么

faintokok 发表于 2013-4-13 22:19:30

习惯而已。另:上面几位的4.9哪里来的?

nsonline 发表于 2013-4-14 12:34:53

回复 10# faintokok


    就算你不看官网论坛你也得多看看北侠论坛啊,论坛上就有4.90

faintokok 发表于 2013-4-14 16:10:54

本帖最后由 yhzzyahoo 于 2013-4-15 10:24 AM 编辑

谢谢各位大神,现在已经搞清楚了,原因是我在测试脚本的时候写了一个名字为wait的函数,结果……
费了好一番心血,经各位大神验证确定代码无误后,我就不再检查代码是否出错的问题了,我也下载了4.9来测试仍然有问题,这时候检查才发现了那个wait函数,把他一注释,问题立马得到了解决。也让我明白了:891: attempt to index global 'wait' (a function value),这句话提示的是有函数冲突了。
衷心感谢各位大神。
页: [1]
查看完整版本: mush wait的使用问题求解