带?的触发语句触发报错
触发语句:你向韩寒莲问道:这位姑娘,不知最近有没有听说什么消息?
韩寒莲说道:「前几天我去那家店里买东西的时候总发现一个流浪汉在附近转悠。」
触发器匹配表达式:
^[> ]*你向(.+)问道:这位.+,不知最近有没有听说什么消息.*\n.+说道:「(.+)」$
报错信息:
Compile error
World: pkuxkx
Immediate execution
:1: unexpected symbol near '?
之前调试的时候就报错,把?进行转义\?还是报错,换成.+报错,换成.*终于不报错了,可真实
的服务器信息返回带?时又报如上的错误了,求高人指点迷津
北大侠客行MUD,中国最好的MUD 回复 1# whq
你理解错了,如果这个语句错误是不会报错的,因为根本不能触发。
既然触发了就说明语句正确,产生错误的是你的脚本内容 发送内容如下
if %2==asd then Note("if")
else SetVariable("lrh"..GetVariable("lri"), "%1");SetVariable("lrx"..GetVariable("lri"), "%2");SetVariable("lri", GetVariable("lri")+1)
end
Execute("ask luren "..GetVariable("lri").." about 消息")
没有和?有关的呀 回复 3# whq
1:lua没有智能到那个程度,知道你是"?"出错了,这是提示你第一行有问题
2:%2显然没有加引号
3:asd是变量还是字符串?你这个用法是比较变量内容的。显然不是你的本意吧,字符串必须带引号
4:这么多的Get Set看着不累么,你这是要把所有的描述都写在mcl变量里一条一条阅读的意思?
男爵会产生信息,使用lua的表格变量比mcl变量更能有效的记录每个路人的信息,以便于脑算或者机算。
这个任务的辅助机器也是适用的表格变量来运算得。
这是mush不是zmud,不需要每次都把变量内容写进mcl。 回复 4# creat
其实是想比较两个字串的,我以为%2没有引号所以==后面的也不需要引号。机器人这么写就是没想到好的实现方式才这么弄的,话说mcl变量和表格变量是什么意思 所谓mcl变量就是像zmud一样,写在配置-〉变量里的那种变量,这是存盘后写进配置文件保存在硬盘上的。
表格变量是lua的一种变量形式,也是常用的变量形式。你可以想象成windows的资源管理器
男爵机器人不难,关键是思路,其次是实现方法 回复 6# creat
这个表格变量是全局的吗,不然一个路人问完了问第二个,上一个的表格变量不就销毁了吗,还是说要把一个最终的表格变量保存在mcl变量里? 这就看你的定义了,使用全局变量或者非局部变量理论上可以的,这已经和mush没什么关系了,纯是lua的知识。
mcl只能保存字符串类型的变量。
事实上,我个人从不使用mcl变量。{:7_278:}
尽管mcl变量偶尔会有些用处 回复 8# creat
主要还是对这里面的一些东西不太了解,比如一个触发器里的变量怎么在另一个触发器里使用,除了mcl变量我是不知道lua里怎么去实现的,又懒得去专门学习lua,所以你才会看着写法别扭
话说我刚才看见你做爵位任务了,速度很快啊,这机器人不错 在不声明的情况下lua的变量都是全局变量,在环境里都可以用
这个速度不算快,除了判断部分全程手动{:7_278:}
页:
[1]
2