北大侠客行MUD论坛

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

lua脚本错误求教

[复制链接]
发表于 2012-4-23 20:10:02 | 显示全部楼层 |阅读模式
本帖最后由 feixiong 于 2012-4-23 08:28 PM 编辑

加载脚本后提示:
Run-time error
World: pkuxkx_2011
Function/Sub: qtlsnew.start called by alias
Reason: 正在处理别名 "alias_tlsnewstart"
D:\MUSHclient1\lua\wait.lua:161: D:\MUSHclient1\lua\wait.lua:110: 正则表达式的语法不正确
stack traceback:
        [C]: ?
        D:\MUSHclient1\lua\wait.lua:161: in function 'make'
        D:\MUSHclient1\worlds\mods\quest_tlsnew.lua:351: in function 'gotoshami'
        D:\MUSHclient1\worlds\mods\quest_tlsnew.lua:183: in function





351处我的脚本:

function gotoshami()
  1. local count
  2.         local playername=GetVariable("playername")
  3.         local tlsnew_trilist={
  4.                         "沙弥说道:「你刚入本门,一切还不熟悉,应该尽快习惯天龙寺的生活。」",
  5.                         "你向沙弥打听有关『job』的消息。\\n沙弥说道:「(.+)前些日子在我寺捐了很多香火钱,你到(.+)把这本佛经送(song)给他吧。」",
  6.                         "你向沙弥打听有关『job』的消息。\\n沙弥说道:「近年来道路变化极大,很多人都难辨方向,你去天龙寺山脚看看有没有人迷路了,有的话去帮帮他们把。」",
  7.                         "你向沙弥打听有关『job』的消息。\\n沙弥说道:「(.+)家里很有钱,你到(.+)向他化缘(huayuan)重塑佛祖金身吧。」",
  8.                         "但是很显然的,沙弥现在的状况没有办法给你任何答覆。",
  9.                         }
  10.         local _tlsnewtri=linktri(tlsnew_trilist)
  11.         wait.make(function()

  12.                 local l,w=wait.regexp(_tlsnewtri,5)

  13.                 if l==nil then
  14.                         return
  15.                         Execute("l=nil")
  16.                 end
  17.                 if string.find(l,"你刚入本门") then
  18.                         Execute("time")
  19.                 return
  20.                 end
  21.                 if string.find(l,"沙弥现在的状况没有办法") then
  22.                         wait.time(5)
  23.                         gotoshami()
  24.                 return
  25.                 end
  26.                 if string.find(l,"有人迷路了") then
  27.                         Execute("s;sd;ed")
  28.                 --qtlsnew.autofind()
  29.                 return
  30.                 end
  31.         wait.time(5)
  32.         end)
  33. end
复制代码
实在找不到原因,求指教

北大侠客行MUD,中国最好的MUD
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2012-4-24 08:30:32 | 显示全部楼层
【(song),(huayuan)】这里的()要单独处理"\\("。否则正则是不对的。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2012-4-24 18:55:28 | 显示全部楼层
本帖最后由 feixiong 于 2012-4-24 07:17 PM 编辑

回复 2# littleknife


    回复 2# littleknife


    已经改正胡子说的这几个地方,但是在MUSH中我ask sha mi about job 后他说
> 你向沙弥打听有关『job』的消息。
沙弥说道:「近年来道路变化极大,很多人都难辨方向,你去天龙寺山脚看看有没有人迷路了,有的话去帮帮他们把。」

然后我
  1. tlsnew_trilist={
  2.                         "沙弥说道:「你刚入本门,一切还不熟悉,应该尽快习惯天龙寺的生活。」",
  3.                         "你向沙弥打听有关『job』的消息。\\n沙弥说道:「(.+)前些日子在我寺捐了很多香火钱,你到(.+)把这本佛经送\\(song\\)给他吧。」",
  4.                         "你向沙弥打听有关『job』的消息。\\n沙弥说道:「近年来道路变化极大,很多人都难辨方向,你去天龙寺山脚看看有没有人迷路了,有的话去帮帮他们把。」",
  5.                         "你向沙弥打听有关『job』的消息。\\n沙弥说道:「(.+)家里很有钱,你到(.+)向他化缘\\(huayuan\\)重塑佛祖金身吧。」",
  6.                         "但是很显然的,沙弥现在的状况没有办法给你任何答覆。",
  7.                         "沙弥说道:「我不是让你去帮助迷路的人了吗?」",
  8.                         }
  9.         local _tlsnewtri=linktri(tlsnew_trilist)
  10.         wait.make(function()
  11.                 local l,w=wait.regexp(_tlsnewtri,5)

  12.                 if l==nil then
  13.                         Execute("l=nil")
  14.                         return
  15.                 end

  16.                 if string.find(l,"你刚入本门") then

  17.                         Execute("time")

  18.                 return
  19.                 end
  20.                 if string.find(l,"沙弥现在的状况没有办法") then
  21.                         wait.time(5)
  22.                         gotoshami()
  23.                 return
  24.                 end
  25.                 if string.find(l,"我不是让你去") then
  26.                         wait.time(1)
  27.                         Execute("ask sha mi about fail;ask sha mi about 失败")
  28.                         gotoshami()
  29.                 return
  30.                 end

  31.                 if string.find(l,"有人迷路了") then

  32.                         Execute("s;sd;ed")
  33.                 --qtlsnew.autofind()

  34.                 return
  35.                 end

  36.         wait.time(5)
  37.         end)
  38. end
复制代码
结果MUSH里显示的是
l=nil
_tlsnewtril里竟然找不到   有人迷路了  
这是怎么回事呢?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2012-4-24 20:25:09 | 显示全部楼层
本帖最后由 shuigui 于 2012-4-24 12:34 PM 编辑

回复 4# istillsun


    是的,l,w=wait.regexp("你向沙弥打听有关『job』的消息。")
   l,w=wait.regexp(_tlsnewtri,5)
这样的格式写多行触发就OK
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2012-4-24 20:29:26 | 显示全部楼层
regexp里有regexp,timeout,flags3个参数,纸箱给讲讲flags怎么用吧
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2012-4-24 21:55:40 | 显示全部楼层
回复 6# shuigui


    嗯,请指教,已经按照水果六湿胸的方法解决
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-29 03:47 PM , Processed in 0.011825 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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