架设传奇服务端时,脚本错误是最常遇到的拦路虎。M2Server启动过程中报错弹窗或者日志里出现红色报错信息,通常是脚本文件里的格式、变量或命令写错了。不把错误修掉,引擎要么启动失败,要么进游戏后功能异常。脚本错误分几种常见类型,逐一排查就能解决。
### 脚本错误的常见类型识别
M2Server窗口报错信息里会提示错误类型和位置。最常见的是脚本命令报错,比如使用了引擎不支持的命令,或者命令拼写有误。GOM引擎和GEE引擎的命令语法不一样,用GEE的脚本直接放到GOM里跑就会报错。
变量类型不匹配也很常见。整数变量和字符串变量混用,在比较判断时引擎认不出来。比如把文字赋值给了只接受数字的变量,或者用#IF检测字符型变量时没加引号。
脚本格式错误占了很大比例。缺少必要的换行符、括号没配对、等于号前后多空格少空格都会导致引擎解析失败。传奇脚本对格式要求严格,一个标点符号错了整段脚本就废了。
还有一种错误是调用了一个不存在的文件。比如脚本里写了#CALL [\\QuestDiary\\功能脚本.txt] @功能,但QuestDiary文件夹下根本没有这个文件,或者文件名写错了。
### 定位错误的具体脚本文件
M2Server报错时会在日志里打印出错误所在的具体文件和行号。比如"D:\MirServer\Mir200\Envir\Market_Def\盟重土城-3.txt line 15"。这句话告诉你在盟重土城-3.txt这个NPC脚本的第15行有错误。直接用记事本或文本编辑器打开对应文件,跳到指定行就能看到问题代码。
如果报错信息只提示了错误类型没指明文件,去Mir200\\Log文件夹里找最新的日志文件。日志里有详细错误堆栈,能定位到具体的脚本片段。有些引擎启动时弹窗报错,弹窗本身就会显示文件名和行号,这个信息更直接。
### 逐项修复常见脚本问题
命令拼写错误直接对照引擎说明书改。GOM引擎支持的命令列表和GEE不同,查清楚引擎版本再确认命令写法。CHECKLEVELEX是检测等级,CHECKKIMONEY是检测元宝,字母少写一个就是无效命令。
变量类型不匹配时,检查变量声明的地方。P、G、M这类整型变量只能存数字,A、S这类字符型变量只能存文本。如果脚本里把数字赋值给A变量,或者把文本赋值给G变量,就需要改用对应类型的变量或者在赋值时转换格式。
格式问题大多出在括号和等号上。条件判断语句里缺少了一个")"会导致整段脚本无法解析。用文本编辑器的括号匹配功能检查每一对括号是否完整。#IF和#ACT之间的条件语句每个条件都要单独占一行,挤在一行里也会报错。
找不到文件的错误,检查#CALL语句里的路径是否真实存在。路径区分大小写,QuestDiary和questdiary在Windows里看着一样,但引擎严格匹配字符串,大小写不同也算路径错误。
### 特殊错误的处理技巧
脚本报错但无法直接看出问题所在时,用排除法定位。把出错的脚本文件分成两半,注释掉一半的内容,重新启动引擎看是否还报错。如果报错消失,说明错误在注释掉的那一半里。继续对半切分注释,直到锁定到具体某一行。
引擎版本差异导致的问题,需要对照引擎发布时带的说明书。有些老版本引擎不支持新写法,升级引擎版本或者把脚本改成兼容写法。反过来新版本引擎废弃了某些旧命令,需要按新语法重写。
脚本错误修复后启动引擎,M2Server窗口不再出现红色报错行,同时游戏里对应的功能恢复正常,说明问题解决了。每次修改完记得备份一份正常的脚本文件,方便以后对照。
传奇架设脚本错误类型解析与逐项排查步骤
来源:
作者:
点击:

