lua脚本错误求教
本帖最后由 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:
: ?
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 <D:\MUSHclient1\worlds\mods\quest_tlsnew.lua:181>
351处我的脚本:
function gotoshami()local count
local playername=GetVariable("playername")
local tlsnew_trilist={
"沙弥说道:「你刚入本门,一切还不熟悉,应该尽快习惯天龙寺的生活。」",
"你向沙弥打听有关『job』的消息。\\n沙弥说道:「(.+)前些日子在我寺捐了很多香火钱,你到(.+)把这本佛经送(song)给他吧。」",
"你向沙弥打听有关『job』的消息。\\n沙弥说道:「近年来道路变化极大,很多人都难辨方向,你去天龙寺山脚看看有没有人迷路了,有的话去帮帮他们把。」",
"你向沙弥打听有关『job』的消息。\\n沙弥说道:「(.+)家里很有钱,你到(.+)向他化缘(huayuan)重塑佛祖金身吧。」",
"但是很显然的,沙弥现在的状况没有办法给你任何答覆。",
}
local _tlsnewtri=linktri(tlsnew_trilist)
wait.make(function()
local l,w=wait.regexp(_tlsnewtri,5)
if l==nil then
return
Execute("l=nil")
end
if string.find(l,"你刚入本门") then
Execute("time")
return
end
if string.find(l,"沙弥现在的状况没有办法") then
wait.time(5)
gotoshami()
return
end
if string.find(l,"有人迷路了") then
Execute("s;sd;ed")
--qtlsnew.autofind()
return
end
wait.time(5)
end)
end实在找不到原因,求指教
北大侠客行MUD,中国最好的MUD 【(song),(huayuan)】这里的()要单独处理"\\("。否则正则是不对的。 本帖最后由 feixiong 于 2012-4-24 07:17 PM 编辑
回复 2# littleknife
回复 2# littleknife
已经改正胡子说的这几个地方,但是在MUSH中我ask sha mi about job 后他说
> 你向沙弥打听有关『job』的消息。
沙弥说道:「近年来道路变化极大,很多人都难辨方向,你去天龙寺山脚看看有没有人迷路了,有的话去帮帮他们把。」
然后我 tlsnew_trilist={
"沙弥说道:「你刚入本门,一切还不熟悉,应该尽快习惯天龙寺的生活。」",
"你向沙弥打听有关『job』的消息。\\n沙弥说道:「(.+)前些日子在我寺捐了很多香火钱,你到(.+)把这本佛经送\\(song\\)给他吧。」",
"你向沙弥打听有关『job』的消息。\\n沙弥说道:「近年来道路变化极大,很多人都难辨方向,你去天龙寺山脚看看有没有人迷路了,有的话去帮帮他们把。」",
"你向沙弥打听有关『job』的消息。\\n沙弥说道:「(.+)家里很有钱,你到(.+)向他化缘\\(huayuan\\)重塑佛祖金身吧。」",
"但是很显然的,沙弥现在的状况没有办法给你任何答覆。",
"沙弥说道:「我不是让你去帮助迷路的人了吗?」",
}
local _tlsnewtri=linktri(tlsnew_trilist)
wait.make(function()
local l,w=wait.regexp(_tlsnewtri,5)
if l==nil then
Execute("l=nil")
return
end
if string.find(l,"你刚入本门") then
Execute("time")
return
end
if string.find(l,"沙弥现在的状况没有办法") then
wait.time(5)
gotoshami()
return
end
if string.find(l,"我不是让你去") then
wait.time(1)
Execute("ask sha mi about fail;ask sha mi about 失败")
gotoshami()
return
end
if string.find(l,"有人迷路了") then
Execute("s;sd;ed")
--qtlsnew.autofind()
return
end
wait.time(5)
end)
end结果MUSH里显示的是
l=nil
_tlsnewtril里竟然找不到 有人迷路了
这是怎么回事呢? 本帖最后由 shuigui 于 2012-4-24 12:34 PM 编辑
回复 4# istillsun
是的,l,w=wait.regexp("你向沙弥打听有关『job』的消息。")
l,w=wait.regexp(_tlsnewtri,5)
这样的格式写多行触发就OK regexp里有regexp,timeout,flags3个参数,纸箱给讲讲flags怎么用吧 回复 6# shuigui
嗯,请指教,已经按照水果六湿胸的方法解决
页:
[1]