传奇脚本错误exit第130行QManage.txt报错修复方法

来源: 作者: 点击:
你贴出来的这个脚本报错信息指向QManage.txt的第130行,错误内容是exit。从你提供的脚本片段来看,问题出在最后一行写的是eixt,正确的命令应该是exit。这种拼写错误在传奇脚本里非常常见,多一个字母少一个字母都会导致引擎加载脚本时中断并报错。

先把你脚本里的错误指出来。在[@jiechu]段落的最后一行,你写的是eixt,而传奇引擎能识别的命令是exit。把eixt改成exit,保存文件,重新加载脚本就能解决这个报错。

但你的脚本里不止这一个问题。仔细看你提供的整个QManage.txt,还有几处需要修正的地方。

第一处是[@denglu]段落的写法。你写了两个#CALL命令,然后紧接着是#IF和#SAY,但#IF前面没有任何条件判断,这种写法是不规范的。#IF必须配合条件表达式使用,比如CHECKLEVELEX > 0这种。如果只是想执行#CALL然后结束,不需要加#IF和#SAY。

第二处是[@jiechu1]段落的#SAY下面跟了一大段文字,但这段文字前后缺少必要的格式符号。在传奇脚本里,用#SAY显示对话框内容时,每一行后面要用\换行,最后用\ \ \ \收尾。你这里的写法基本正确,但要注意所有符号都必须是英文半角字符,不能是全角。你提供的文字里用了┆这个符号,看起来是全角的,最好换成|这种半角字符,否则在某些引擎里会显示乱码或者导致脚本出错。

第三处是[@jiechu]段落的最后一行,除了eixt拼错,这行前面还有一个close。close这个命令在某些引擎里可能不被识别,你想实现的功能如果是关闭对话框,应该用CLOSE。正确的写法是CLOSE,然后另起一行写exit。或者直接写成CLOSE,因为exit有时候可以省略。

针对你的脚本,给出一个修正后的完整版本供参考:

[@denglu]
#CALL [\登陆\登陆脚本.txt] @登陆设置
#CALL [\封号系统\封号系统.txt] @封号分类

[@jiechu1]
#SAY
╔┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄╗ \
┆ 本窗口进行再次解除禁言操作! ┆ \
┆ 您可以按下面的提示帮助进行操作恢复发言. ┆ \
┆ 请点击 [<解除禁言/@jiechu>],为自己恢复发言! ┆ \
┆ —暴雪神话2007— ┆ \
╚┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄╝ \ \ \ \

[@jiechu]
#ACT
Gmexecute ReleaseShutup Self
CLOSE

注意把最后一行改成CLOSE,删掉了有问题的close break eixt。Gmexecute ReleaseShutup Self这条命令本身就能解除禁言,执行完后直接关闭对话框就行。

另外提醒几个细节:QManage.txt文件的编码格式必须是ANSI,不能用UTF-8,否则中文字符会乱码导致脚本失效。修改完脚本后,在M2server上点重新加载所有脚本,或者直接重启M2,让修改生效。

如果你修改后还是报错,检查一下#CALL命令调用的那两个文件是否存在。路径是D:\mirserver\Mir200\Envir\登陆\登陆脚本.txt和D:\mirserver\Mir200\Envir\封号系统\封号系统.txt。如果这两个文件不存在或者路径不对,#CALL执行失败也会导致QManage.txt加载报错。确保文件夹和文件都存在,文件名和路径大小写都要一致。

最后建议在写脚本时养成好习惯,每个命令单独一行,不要写在一行里用空格隔开。这样出错时引擎提示的行号更容易对应到具体哪行命令,排查起来方便很多。