feixiong 发表于 2012-4-24 21:57:26

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

feixiong 发表于 2012-4-24 22:16:13

回复 2# istillsun


    可以告诉我原因么?

feixiong 发表于 2012-4-24 22:44:41

回复 4# istillsun


    l不是空值,如果为空if l==nil then
                        Execute("l=nil")
                        return
                end
这个函数应该起作用

feixiong 发表于 2012-4-25 21:02:21

本帖最后由 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]
查看完整版本: wait函数出错求指导