如何加载wait.lua 啊??
本帖最后由 sizak 于 2012-3-18 06:57 PM 编辑已经在行首 加上 require "wait"
还是提示我这个。。。
北大侠客行MUD,中国最好的MUD 什么脚本,脚本代码贴出来看看 这个不是很懂,我也想知道。求答案!! wait.lua应该加载正常,应该是你调用wait.time的问题,所以需要看看脚本代码 wait不能在主线程调用。 必须在辅线程调用。
用mush,建议上来就开启辅线程, 然后一切代码都放辅线程中。 回复 5# wgogo
这个主线程和辅线程不是很明白,是不是可以理解为主线程就是直接调用的文件,辅线程就是主线程中require的文件 回复 7# shuigui
请高手指点,empty 在哪里 楼主的引用没有问题。出现这个错误提示,估计还是代码里有问题。
不懂啥是线程。。-----yct15. 本帖最后由 emyt 于 2012-3-22 11:51 AM 编辑
协同程序(coroutine)与多线程情况下的线程比较类似:有自己的堆栈,自己的局部变量,有自己的指令指针(IP,instructionpointer),但与其它协同程序共享全局变量等很多信息。线程和协同程序的主要不同在于:在多处理器情况下,从概念上来讲多线程程序同时运行多个线程;而协同程序是通过协作来完成,在任一指定时刻只有一个协同程序在运行,并且这个正在运行的协同程序只在必要时才会被挂起。
可以看看活鱼的代码
http://www.pkuxkx.com/forum/viewthread.php?tid=3866
引用一段function diaoyu_start()
wait.make (function ()--- coroutine below here
wait.regexp ("这里是城市的正中心,一个很宽阔的广场,铺着青石地面。一些游手好闲")
wait.time (1) -- 等待1秒
Note( '回到ct了' ) -- 提示到达目的地
diaoyu_cttomatou() -- 从ct走道岸边
end)-- end of coroutine
diaoyu_maiyuer() -- 去买鱼饵
end 多说两句:
比如有个程序:
function abc()
wait.time(10) --等待10秒的例子
l = wait.regexp("触发放这儿", 5) --等待触发5秒,
if(l == nil) then return end -- 没有等到触发
print("有了触发, 代码写下面")
--这里写其他代码
end
如果你的机器人就是调用abc, 那么这么调用:
co = coroutine.create(abc)
coroutine.resume(co)
我所有的机器人都是这个结构, 基本用wait.exp, wait.time这两个函数可以搞定所有东西。
希望对大家有点用。
页:
[1]
2