mush lua的repeat问题
我用下面这段代码来循环走树林,碰到有npc出来杀我,我就执行其他函数处理。但是我发现repeat经常无辜就卡住不走了,不知道是什么原因
function suckmmr_search()
repeat
local l,w=wait.regexp("^[>\\s]*看起来(.*)想杀死你|"..
"^[>\\s]*回显:go",3)
print(l)
if l~=nil then
if string.find(l,"杀死") then
print(l)
print(w)
SetVariable("mmr_name",w)
DoAfterSpecial(0.5,'kill_mmr()',12)
return "over"
end
if string.find(l,"go") then
wait.time(1)
end
else
print("匹配不到了")
end
Execute("n;s;echo go")
until false
end
请问是wait.lua问题?还是啥原因呢?
不是每次都不正常,就是有时候无辜就退出repeat循环了,后面代码都不执行了。也不报任何错误
北大侠客行MUD,中国最好的MUD 不懂,你可以论坛里面私信labaz 为啥是\\s而不是\s? 回复 3# pizzagoo
脚本里需要\\,转意\ yct30 因为lua里面\用来去掉后面字符的特殊含义,所有用两个 有人杀你-------killmmr()函数-----n;s
在杀的过程中也会执行n;s这时候有可能会逃跑失败或者还没进入战 ...
huacuoh 发表于 2012-10-9 07:03 PM http://pkuxkx.com/forum/images/common/back.gif
我是先判断是否有人杀我,如果没有人杀我,才继续走n;s。如果有人杀我,就执行kill_mmr()后面跟着return "over"就不会再执行后面的n;s了。
现在程序本身可以正常执行,但是有时候循环着,就突然没反应了。 阅。转腊同志批复 类似的问题:http://pkuxkx.com/forum/thread-13071-1-1.html 本帖最后由 labaz 于 2012-10-9 07:43 PM 编辑
已阅,协程问题转毛毛解答。我水平不够,这玩意不敢用。
建议每个分支都加打印,定位到停在哪一步。
页:
[1]
2