游戏运行过程弹出脚本错误提示,分为客户端脚本报错和服务端脚本报错两类,两者的报错来源、排查方向完全不同,先分清报错窗口属于哪一侧,再针对性处理。客户端报错多是登录器、补丁、UI界面文件读取异常,服务端报错一般是M2引擎加载NPC、物品、怪物触发脚本解析失败。
客户端弹出脚本错误,弹窗出现在打开登录器、进入游戏、切换界面的时候,没有打开M2服务端控制台。这类问题大多来自补丁文件缺失、UI配置损坏、pak补丁加载不全、客户端文件损坏。首先检查补丁是否完整覆盖,下载的补丁文件需要直接放到客户端根目录,不要放在子文件夹内。部分补丁文件解压过程被安全软件拦截,文件丢失或者内容不全,解压前暂时关闭防护工具,解压完成将客户端目录加入信任列表。pak补丁列表配置出错,pak文件路径填写错误,密码不对,登录器读取资源失败,触发界面脚本报错。打开登录器配置工具,核对pak列表内文件名、文件路径、pak密码,确认每一条记录都和客户端内pak文件保持一致,多余无效条目直接删除。客户端文件损坏,需要校验文件完整性,缺失的文件从原始安装包重新复制覆盖,不要单独拷贝零散文件替换。分辨率和窗口模式不匹配,自定义UI脚本对窗口尺寸有要求,全屏模式下UI渲染异常,切换成窗口或者无边框模式测试。
服务端脚本错误,报错信息显示在M2引擎黑色控制台窗口,会标注脚本文件名、报错行数,常见文件包含QManage.txt、QFunction-0.txt、NPC定义文件、怪物攻击脚本、物品触发脚本。这类报错是引擎读取文本脚本解析失败,优先记录控制台提示的文件名称和行数,直接打开对应文本定位问题代码。编码问题是高频故障,脚本文件必须保存为ANSI编码,使用记事本打开脚本,选择另存为,编码选项选择ANSI覆盖原文件,WPS编辑会带入隐藏格式符号,禁止使用WPS修改脚本,只用系统自带记事本操作。语法错误,所有指令符号必须使用英文半角符号,中文逗号、引号、括号都会造成解析中断。脚本内标签[@main]、[@trigger]不能重复,缺少结束标记,变量前后名称不一致,参数数量不对,都会触发报错。可以在可疑代码行前面添加分号进行注释,分段屏蔽代码,重启M2定位出错的段落,单独修改,不用重写全部脚本。
文件路径异常引发的脚本报错,服务端存放目录不能包含中文、空格,不要放在桌面或者D:\传奇服务端这类中文文件夹,建议使用D:\MirServer纯英文路径。脚本引用其他外部txt文件,如果被调用文件改名、移动、删除,引擎读取时直接报找不到文件。检查Envir目录下的NPC、物品、怪物脚本引用关系,确认所有被调用文件存在,文件名大小写保持一致。文件属性设置为只读,引擎无法读取修改脚本,右键脚本文件属性,取消只读选项。安全软件隔离脚本文件,导致文件缺失,把整个MirServer目录添加信任,恢复隔离文件。
数据库匹配错误,脚本内调用的物品编号、怪物编号,在StdItems.DB、Monsters.DB数据库中不存在,引擎执行脚本指令时触发报错。打开数据库工具,核对脚本内填写的ID,不存在的编号要么修改脚本里的数值,要么在数据库内新增对应记录。修改数据库之后需要关闭并重新加载数据库,没有重载直接启动M2,数据不会更新,报错持续存在。
换行符与隐藏字符问题,网页复制、文档粘贴过来的脚本代码,带有看不见的特殊换行符号,引擎解析出错。把全部脚本内容复制,新建空白记事本粘贴进去,保存替换原文件,重置换行格式,清理隐藏不可见字符。大量空白空行也会干扰解析,删除多余空行,精简脚本内容。
引擎版本不兼容,不同引擎脚本语法不互通,一套脚本不能直接在其他引擎运行。旧版本引擎不支持脚本内新增函数,会提示未知指令。确认脚本适配的引擎类型,升级引擎版本或者修改脚本,删除不支持的函数指令。
NPC相关脚本报错,打开Merchant.txt检查NPC坐标、外观、绑定脚本文件名,文件名书写错误或者脚本不存在,加载NPC就会报错。检查Envir\Npc_def目录,确认NPC脚本文件存在,脚本内部必须带有[@main]入口标签,缺少入口标签加载失败。
调试操作流程,修改脚本前关闭M2引擎,脚本改动完成保存之后再启动服务端,引擎运行时修改脚本不会实时生效。记下控制台提示的文件名与行数,打开对应文本定位代码。优先处理编码、中英文符号、隐藏字符,再核对ID、引用文件。分段注释可疑代码,缩小错误范围,修复完成重启M2,观察控制台是否继续弹出报错。M2不再提示报错之后,进入游戏测试NPC对话、拾取物品、怪物死亡触发等功能,部分脚本加载正常,但触发功能时才报错,需要在游戏内触发对应功能,查看M2实时日志定位运行阶段的代码问题。
常见误区,修改脚本之后不重启M2直接进游戏测试,改动不会生效,报错依旧存在。使用文档工具编辑脚本,引入隐藏格式标记。脚本混用中英文符号,肉眼不容易分辨,引擎识别直接失败。服务端放在中文文件夹,路径识别异常。客户端与服务端报错混淆,客户端弹窗脚本错误,反复修改服务端脚本,无法解决问题。
网络资源下载的脚本,很多代码本身就存在语法缺陷,拿到脚本先分段测试,不要一次性全部加载。少量脚本错误不会直接导致服务端关闭,只是部分功能失效,严重的脚本错误会直接造成M2引擎闪退,需要优先处理控制台提示的第一条报错。
传奇游戏弹出脚本错误弹窗 区分客户端与服务端报错完整排查处理办法
来源:
作者:
点击:

