打开传奇客户端或登录器窗口就连续弹“脚本错误”,报错内容多为“行:XX 字符:XX 错误:对象为 null 或未定义 / 缺少对象 / 无法获取属性 parent 的值”,这类现象不是显卡驱动问题,而是窗口初始化阶段脚本解释器在解析登录界面、公告页、NPC预载脚本或内嵌IE网页时撞到了空对象、路径缺失、编码乱码、引擎命令不兼容。按下面顺序查,基本都能定位到具体文件。
先看弹窗里有没有带文件路径和行号。如果有“QuestDiary\Login.txt 第 X 行”或“Market_Def\XXX.txt Line:X”之类信息,直接去服务端 Mir200\Envir 下对应文件跳到那一行。常见情况是 #IF 后没跟 #ACT、@标签名拼写错、GOTO 跳到不存在的段、变量没用 VAR 声明就直接参与计算,或者脚本里写了 GOM 专属命令但引擎是 HERO/V8。 用 Notepad++ 打开,开启“显示空格与制表符”,重点看行尾有没有黄色空格、全角逗号、UTF-8 BOM 头。传奇所有 .txt 脚本必须 ANSI(GBK) 保存,UTF-8 一存中文就变乱码,引擎读到乱码段直接抛错。
弹窗不带服务端路径、只提示“当前页脚本发生错误”或“Internet Explorer 脚本错误”,那是客户端登录器内嵌网页(公告、客服、活动页)在调用系统 JScript/VBScript 时组件没注册。管理员 CMD 执行 regsvr32 vbscript.dll 和 regsvr32 jscript.dll,顺手把 mshtml.dll 也注册一次,重启机器再开登录器。 Win10/Win11 还要进“启用或关闭 Windows 功能”把 Internet Explorer 11 和 .NET Framework 3.5 勾上,很多新装系统默认关了 IE 组件,老登录器立刻崩脚本。
登录器本身脚本损坏也会一开窗口就报错。下载时断网、解压用了系统自带解压、杀软把 script.dat / login.js / ScriptEngine.dll 删进隔离区,都会让登录器找不到核心指令。删掉旧登录器目录重新从发布站拉完整版,用 WinRAR/7-Zip 解压,解压完先关掉 360、火绒再启动;或者进杀软隔离区恢复 Login.exe、Mir.exe、Script 文件夹并加信任。
客户端补丁不完整是另一大类。界面图、弹窗背景、NPC大对话框靠 Pak 资源包和 IMG 索引,脚本写了 IMG(38) 但 Pak 里没 38 号图,或者 Pak0~PakXX 少下了一个,窗口渲染到那一步就抛“无法获取属性/对象为空”。把登录器里的“验证客户端”“修复补丁”跑一遍,或手动核对 Data 目录下的 Pak 文件大小和服务端发的一不一致,缺哪个补哪个。
缓存冲突在更新版本后最常见。客户端根目录的 Cache、Temp、ScriptCache 里留着上版本的旧 js/vbs 片段,和新脚本抢对象,清掉这三个文件夹再开登录器让它重新拉取同步。 同时确认游戏路径是纯英文无空格,右键登录器选“以管理员身份运行”+ Windows 7 兼容模式,能避开一大半权限导致的脚本加载中断。
服务端这边如果全服玩家一开机窗口都报错,查 Mir200\Envir\QuestDiary 下的 Login.txt、UserLogin.txt、QManage.txt 首部自动执行段,看有没有在角色对象生成前就去读 parent、GUILD、Dear 这类可能为空的关系字段;再翻 Mir200\Log 里当天 -M2Server-日期.log,搜“Script Error / Load fail / Unknown command”,日志会给精确文件名和行号。 引擎和登录器必须同族(GOM 配 GOM 登录器、GEE 配 GEE),跨引擎抄脚本必弹窗。
临时压弹窗的办法:登录器设置里关“显示脚本错误通知”,或 IE 高级选项勾“禁用脚本调试”“不显示每处脚本错误通知”,能进游戏但不治本;治本还是按上面把对应脚本段、编码、Pak 索引、系统组件逐项对齐。

