wait函数出错求指导
本帖最后由 feixiong 于 2012-4-24 09:59 PM 编辑Error raised in timer function (in wait module).
stack traceback:
D:\MUSHclient1\worlds\mods\quest_tlsnew.lua:232: in function <D:\MUSHclient1\worlds\mods\quest_tlsnew.lua:229>
Run-time error
World: pkuxkx_2011
Function/Sub: wait.timer_resume called by timer
Reason: 正在处理定时器 "wait_trigger_91252"
D:\MUSHclient1\lua\wait.lua:51: D:\MUSHclient1\worlds\mods\quest_tlsnew.lua:232: attempt to index local 'w' (a nil value)
stack traceback:
: in function 'error'
D:\MUSHclient1\lua\wait.lua:51: in function <D:\MUSHclient1\lua\wait.lua:43>
232行就是脚本里的lostcname=w
function qtlsnew.lostman()
wait.make(function()
local l,w=wait.regexp("^(> )*( )*(.+)慌慌张张地走了过来,似乎迷了路。\\w",80)
lostcname=w
print(w)
print(w)
print(w)
if l==nil then
Execute("l=nil")
return
end
if string.find(l,"似乎迷了路") then
Execute("id here")
local l,w=wait.regexp(lostcname.."\\s*=\\s*(.+),.*",25)
lostename=string.low(w)
Execute("ask "..lostename.." about lost")
wait.time(2)
Execute("ask "..lostename.." about lead")
return
end
end)
end
北大侠客行MUD,中国最好的MUD 回复 2# istillsun
可以告诉我原因么? 回复 4# istillsun
l不是空值,如果为空if l==nil then
Execute("l=nil")
return
end
这个函数应该起作用 本帖最后由 feixiong 于 2012-4-25 09:17 PM 编辑
回复 4# istillsun
在胡子师叔的帮助下解决了
lostename=string.lower(w)
这里low后我没加er
此外正则表达不对,改正后应该是
local l,w=wait.regexp(lostcname.."\\s*=\\s*(.+)\\,\\s.*\\,\\s.*",5)
hehe
页:
[1]