更新后弹出的脚本错误对话框,先看标题和正文内容判断来源,再决定从哪一层入手,不要一上来就重装客户端。标题带“Internet Explorer 脚本错误”或“当前页的脚本发生错误”,正文给出行号和“对象为空”,问题在系统IE内核或登录器缓存;标题带“Script Execution Error”并给出“QFunction-0.txt Line XX”之类的路径,属于服务端脚本;只有“脚本错误”四个字、没有任何路径,通常是登录器自带的login.js或script.dat损坏或被杀软删除。三种情况处理方式完全不同,走错方向只会反复弹窗。
临时把对话框压住、先进游戏,最直接的操作在Internet选项里完成。控制面板打开“Internet 选项”,切到“高级”标签,在“浏览”分类下勾选“禁用脚本调试(Internet Explorer)”和“禁用脚本调试(其他)”,同时取消勾选“显示每个脚本错误的通知”,应用确定后重启登录器。这一步不会修复任何文件,但系统层会静默忽略脚本解析异常,弹窗不再拦在前台。部分登录器自身在“系统设置—基础设置”里也有“关闭所有脚本错误提示”的开关,勾上同样能压住。如果弹窗在游戏运行中反复冒出,按Ctrl+Shift+Esc打开任务管理器,在“传奇世界”进程下找“脚本错误提示”子进程,右键结束,可以临时打断弹窗循环。
屏蔽之后弹窗消失,不等于问题消失。更新后最常见的真因是旧缓存与新文件冲突。关掉游戏,进入登录器目录删掉Cache、Temp、ScriptCache、UserData这几个文件夹里的内容,文件夹本身保留;再清系统IE缓存:Internet选项→常规→删除浏览历史记录,临时Internet文件、Cookie、历史记录全部勾选,删完重启机器。游戏安装目录下的Cache、Temp、Log同样清空,老缓存里存的是上一版本的编译结果,新版脚本进来后直接与新文件冲突,清完能消掉相当一部分“更新后才出现”的弹窗。如果登录器自带“验证游戏完整性”功能,在设置或帮助菜单里找到后点一次,让它自动比对Script、Data、UI资源包并补下缺失文件,比手动删缓存更彻底。
Win10/Win11上还有一个高频断点:系统默认没有启用IE11,而传奇登录器的公告页、活动面板、列表控件底层调用的是WebBrowser(IE内核),JScript/VBScript宿主注册失效后,脚本解释器读到空对象就弹窗。管理员身份打开命令提示符,逐条执行regsvr32 actxprxy.dll、regsvr32 shdocvw.dll、regsvr32 jscript.dll、regsvr32 vbscript.dll、regsvr32 scrrun.dll,每条看到“DllRegisterServer 成功”再执行下一条,完成后重启。接着进“启用或关闭Windows功能”,确认“Internet Explorer 11”处于勾选状态,哪怕日常只用Edge,WebBrowser控件也需要这个组件在位。杀软隔离区里翻一下login.js、script.dat、ScriptEngine.dll,被误删的直接恢复并把整个游戏目录加进信任区,路径挪到纯英文无空格的位置,中文路径会让脚本相对路径解析失败。
如果弹窗里明确给出了服务端脚本路径和行号,比如“Envir\Market_Def\QFunction-0.txt第42行”,问题不在客户端。打开对应文件跳到该行,查三类语法错:命令拼写(#ACT写成#ACt、Give写成Gvie)、条件结构不完整(#IF下面没有条件直接跟#ACT)、符号不配对(括号、#SAY…#ENDSAY被截断)。服务端侧如果只是想先压住弹窗,M2Server→选项→脚本设置,取消“脚本错误弹出提示”和“显示运行时错误信息”,保存重启引擎,弹窗不再出现,但对应NPC功能也不会正常执行,属于屏蔽而非修复。引擎与插件版本不匹配同样会引发整片报错,更新时只换了主引擎而漏掉配套插件,旧脚本里的命令在新引擎中找不到定义,需要把插件补回PlugList.txt并在M2中启用,或者按新引擎手册逐条替换已废弃的指令。
把顺序固定下来:先看弹窗给不给路径,有路径查服务端脚本,没路径走客户端缓存和IE组件;进游戏前用Internet选项禁用脚本调试把弹窗压住,进去之后立刻清缓存、验证文件完整性、重注册脚本宿主DLL。临时屏蔽只是让对话框不再拦路,真正让弹窗不再复发的是把损坏或缺失的脚本文件补回来。

