北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 2938|回复: 3

wait函数出错求指导

[复制链接]
发表于 2012-4-24 21:57:26 | 显示全部楼层 |阅读模式
本帖最后由 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
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:
        [C]: in function 'error'
        D:\MUSHclient1\lua\wait.lua:51: in function

232行就是脚本里的lostcname=w[1]

  1. function qtlsnew.lostman()
  2. wait.make(function()

  3.                 local l,w=wait.regexp("^(> )*( )*(.+)慌慌张张地走了过来,似乎迷了路。\\w",80)
  4.                         lostcname=w[1]
  5.                 print(w[3])
  6.                 print(w[2])
  7.                 print(w[1])
  8.                 if l==nil then
  9.                         Execute("l=nil")
  10.                         return
  11.                 end

  12.                 if string.find(l,"似乎迷了路") then
  13.                         Execute("id here")
  14.                 local l,w=wait.regexp(lostcname.."\\s*=\\s*(.+),.*",25)

  15.                         lostename=string.low(w[1])
  16.                         Execute("ask "..lostename.." about lost")
  17.                         wait.time(2)
  18.                         Execute("ask "..lostename.." about lead")
  19.                         return
  20.                 end

  21.         end)
  22. end
复制代码


北大侠客行MUD,中国最好的MUD
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2012-4-24 22:16:13 | 显示全部楼层
回复 2# istillsun


    可以告诉我原因么?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2012-4-24 22:44:41 | 显示全部楼层
回复 4# istillsun


    l不是空值,如果为空if l==nil then
                        Execute("l=nil")
                        return
                end
这个函数应该起作用
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2012-4-25 21:02:21 | 显示全部楼层
本帖最后由 feixiong 于 2012-4-25 09:17 PM 编辑

回复 4# istillsun


    在胡子师叔的帮助下解决了  

lostename=string.lower(w[1])

这里low后我没加er

此外正则表达不对,改正后应该是

  1. local l,w=wait.regexp(lostcname.."\\s*=\\s*(.+)\\,\\s.*\\,\\s.*",5)
复制代码

hehe
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-11-29 05:22 PM , Processed in 0.012920 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表