传奇脚本错误报错类型与逐个排除解决法

来源: 作者: 点击:
脚本错误弹窗的形态直接决定了处理方向。先看报错内容,标题带“Internet Explorer脚本错误”或“当前页脚本发生错误”,内容显示行号、字符和“对象为null或未定义”,这是登录器内嵌IE组件的脚本解析出了问题。打开控制面板的Internet选项,常规选项卡里删除浏览历史记录,勾选临时Internet文件、Cookie、脱机内容,全部删掉。切换到高级选项卡,勾选“禁用脚本调试(Internet Explorer)”和“禁用脚本调试(其他)”,取消“显示每个脚本错误的通知”,应用确定后重启登录器,大部分登录器加载时的弹窗就能消掉。

如果报错内容带“script error, load fail”字样,后面跟着具体路径和文件名,那就是服务端启动或加载NPC时找不到对应脚本。比如提示“script error, load fail: \充值RMB点\RMB点\RMB点.txt@领取RMB点”,说明服务端在MerChant.txt里配置了这个NPC,但QuestDiary对应路径下缺少RMB点.txt这个脚本文件。解决方法只有两条路:要么补全这个脚本文件,要么去MerChant.txt里删除这行NPC配置。删配置之前先确认这个NPC是不是版本必须的功能,如果充值系统确实要用,那就要找完整的脚本补进去,否则直接删掉就行。

M2server启动时弹“错误变量信息”或“变量未定义”的提示,问题出在脚本里用了变量但没有提前声明。打开Mir200\Envir\Variables.txt,按报错提示的变量名,在文件里按“变量名=初始值”的格式加上定义。如果提示“变量类型不匹配”,检查赋值语句里数字型变量是不是被塞了文字,字符型变量是不是被塞了数字,改过来保存重启M2。变量冲突的提示说明不同脚本里定义了同名变量,在Variables.txt里删掉重复的,或者把自定义变量改成不重名的,比如把HumGold改成MyGold。

报错“脚本死循环”的时候,M2会提示“命令:GOTO @XXX”超过了循环次数。打开Mir200\!Setup.txt,找到ScriptGotoCountLimit=10这一行,把数值调大,建议不超过50000。改完之后还报错,那就是脚本里的GOTO跳转本身有逻辑问题。检查同一段#ACT下面是不是写了多个GOTO命令,每个执行段只保留一个跳转。用GetRandomText做循环判定的脚本,每次循环前必须用MOV命令先清空变量,否则上次循环的残留值会让循环永远停不下来。

登录器启动后只有“脚本错误”四个字的弹窗,没有具体路径,也没有IE标题,大概率是登录器自带的login.js或script.dat被删了或损坏了。去杀毒软件的隔离区翻一下,把被误删的文件恢复并加入信任区。把登录器整个目录挪到纯英文路径下,中文路径会导致脚本相对路径解析失败。右键登录器属性,兼容性里勾“以管理员身份运行”,选Windows 7兼容模式。

更新游戏之后才出现脚本错误,先打开登录器自带的“验证游戏完整性”功能,让它自动比对修复缺失或损坏的文件。如果登录器没有这个功能,直接卸载游戏,把安装目录残留文件夹全删掉,重新下载完整客户端安装。更新时旧的补丁和脚本没被覆盖也会引发冲突,进游戏安装目录,把Script文件夹里修改时间在更新之前的旧.txt脚本删掉,只保留新生成的文件。第三方补丁也一并清理,进Data文件夹删掉非官方的补丁文件。