电脑端传奇脚本错误通用处理:M2红字与登录器弹窗分开修

来源: 作者: 点击:
电脑上跑传奇提示脚本错误,先别重装客户端,也别换登录器瞎试。报错其实分两条线:M2控制台刷红字是服务端脚本问题;登录器或游戏内弹「当前页脚本发生错误」是客户端网页组件问题。两条线修法不一样,先分边再动手。

一、先看报错从哪边出来

服务端侧特征
M2Server窗口滚红字
格式类似:脚本命令:LOADVAR NPC名称:QManage 地图:0 参数…
或 ScriptError: QuestDiary\QFunction-0.txt Line 56
角色进游戏、点NPC、过地图时触发
这种跟玩家电脑基本无关,是Envir下脚本炸了

客户端侧特征
双击登录器就弹脚本错误
公告页、活动页打不开
点登录器设置或列表页卡住
M2那边安安静静没红字
这是登录器内嵌IE页面、JScript/VBScript组件、杀软拦截一类问题

快速判断
开M2看着控制台,自己登一个号。
M2同时刷红字 → 服务端脚本
M2没反应只弹窗 → 客户端组件

二、服务端报错:先抄M2那行红字

光看「脚本错误」四个字没用,必须抄这几项:
脚本命令名:LOADVAR、CALL、GIVE、CHECKITEM…
NPC名称:QManage、QFunction、某个NPC
文件名:QManage.txt、QFunction-0.txt、功能\xxx.txt
行号:Line 32
最后一句:找不到文件 / 命令不存在 / 标签不存在

日志也能翻:
Mir200\Log\ScriptError.log
Mir200\Log\M2Server-日期.log

三、进游戏瞬间报错:八成在QManage

角色一进游戏就弹,优先打开:
Mir200\Envir\MapQuest_def\QManage.txt
这是登录触发脚本,角色上线会跑一遍,里面常挂变量加载、名单检测、登录奖励。

典型样式
脚本命令:LOADVAR
NPC名称:QManage
找不到文件 => ..\QuestDiary\某某\神影名单.txt

意思就一个:脚本要读这个txt,文件没有或路径错。

四、LOADVAR / 名单文件缺失怎么补

报错里写 ..
QManage.txt在 MapQuest_def 里
..\ 表示回到上一级,也就是 Envir
所以真实路径是:
Mir200\Envir\QuestDiary\某某\神影名单.txt

处理步骤
1. 进 Envir\QuestDiary
2. 按报错路径一级级看文件夹在不在
3. 缺文件夹就新建,名一字不差
4. 缺txt就新建文本文档,改名对应文件
5. 右键文件属性,取消只读
6 保存后重启M2

举例报错:
找不到文件 => Envir\QuestDiary\诚意网络\军团功能\神影名单.txt
那就建:
QuestDiary\诚意网络\
QuestDiary\诚意网络\军团功能\神影名单.txt
内容可以先空着,LOADVAR能读到文件就不报。

注意隐藏后缀
资源管理器开了「隐藏已知扩展名」时,
看着叫 神影名单.txt
实际是 神影名单.txt.txt
文件夹选项里把隐藏后缀关掉再核对。

五、#CALL调用文件找不到

点NPC才报、进游戏不报,多是#CALL路径错。
格式:
CALL [\功能\领取.txt] @领取

核对四项
1. QuestDiary下是不是真有「功能」文件夹
2. 里面是不是真有 领取.txt
3. 中文文件夹别拼错,「登陆」和「登录」不是同一个
4. 目标文件里必须有 [@领取] 标签,顶格写

标签规则
[@领取] 前面不能空格不能Tab
GOTO @xxx、CALL @xxx 都要有对应标签
没有就报标签不存在

六、命令报错:拼写和全角符号

M2写 Unknown command / 命令错误
常见原因:
CHECKLEVEL 写成 CHECKLEVE
GIVE 写成 GIV
用了中文逗号、中文括号、中文引号
全角空格混进参数
IF #ACT 结构断了

GIVE 裁决之杖 1 没写数量

改法
Notepad++打开
开「显示所有字符」清行尾隐藏符
命令全大写按引擎手册核对
符号全换英文半角

七、变量重复定义

QManage里提示「变量 XXX 已存在」
是同一个变量被 VAR 声明了多次。

处理
搜变量名,比如 TTAE、CWFY、开放苍月岛
保留第一处 VAR 定义
后面重复的删掉
如果子脚本用 #INCLUDE 引进来也定义了,去子脚本删

变量类型也要对
HUMAN / GLOBAL / GUILD 别混
脚本里 LOADVAR HUMAN XXX
前面就得有 VAR Integer HUMAN XXX

八、编码问题最阴

记事本另存成 UTF-8,老引擎直接废。
表现是中文变乱码、标签认不出、进到那段就报错。

正确做法
Notepad++打开脚本
编码 → 转为 ANSI
保存覆盖
别用Word改脚本
别点记事本UTF-8另存

哪些文件都要查
QuestDiary 下所有功能txt
MapQuest_def\QManage.txt
QFunction-0.txt
Market_Def 下NPC脚本
名单类txt(神影名单、GM名单、封号名单)

九、路径还错就改绝对路径

文件在但还是报找不到,相对路径算歪了。
直接改绝对路径最稳:

LOADVAR HUMAN CWFY D:\MirServer\Mir200\Envir\QuestDiary\诚意网络\CWFYSave.txt

CALL也同理写全:

CALL [D:\MirServer\Mir200\Envir\QuestDiary\功能\领取.txt] @领取

改完存ANSI,重启M2。

十、客户端弹窗处理

M2没红字、登录器弹脚本错误,按下面来。

1. 注册系统脚本组件
管理员CMD执行:
regsvr32 jscript.dll
regsvr32 vbscript.dll
regsvr32 mshtml.dll
regsvr32 scrrun.dll
看到注册成功重启电脑

2. IE高级选项
控制面板 → Internet选项 → 高级
勾「禁用脚本调试」
取消「显示每个脚本错误的通知」

3. 杀软误拦
360、火绒把登录器、Script目录、Mir.exe隔离了
进隔离区恢复
整个客户端目录加信任
暂关脚本监控再开登录器

4. 登录器版本不对
Hero端配GOM登录器、老0328登录器吃新脚本必爆
用对应服的同引擎登录器
别拿A服登录器进B服

5. 运行库缺
.NET Framework、VC++运行库补一下
列表地址贴浏览器看是不是404
单机填 http://127.0.0.1:端口/list.txt

6. hosts被改
C:\Windows\System32\drivers\etc\hosts
只留 127.0.0.1 localhost
别的行删掉,别存成hosts.txt

十一、改完怎么验证

服务端侧
M2控制台点「重载脚本」也行
但QManage、变量声明类建议整端重启更稳
顺序:关网关 → 关M2 → 起DB/登录网关 → 起M2
起来看控制台还刷不刷红字
再登号触发一次进游戏、点NPC

客户端侧
关登录器
清客户端Cache
重新开登录器
公告页能加载、不弹脚本错误窗就过了

十二、常见坑汇总

.txt.txt 隐藏后缀
文件名多空格
登陆/登录混用
..\ 多写一层变 ..\..\
脚本存成UTF-8带BOM
标签前带空格
IF没#ACT

GOTO跳的标签不存在
变量重复VAR
名单文件只读
只建名单不建Save文件
改了路径不重启M2
只重启M2不关网关
拿GOM脚本塞Hero端
杀软把ScriptEngine.dll删了

十三、玩家自己玩别人的服

进游戏弹脚本错误、M2红字你看不到
那不是你电脑问题,是服主服务端脚本坏了
清缓存、换登录器都没用
只能等服主修QManage或补Envir文件

自己架端、单机、本地登录器
按上面流程走:
抄M2红字 → 进Envir\QuestDiary对路径 → 补txt → 改绝对路径 → 转ANSI → 重启
大多能消。

十四、标准排查顺序(照抄)

1. M2有红字没 → 有走服务端,没有走客户端
2. 抄命令+NPC+文件名+行号
3. 带「找不到文件」→ 去QuestDiary补文件
4. 文件在还报 → 改绝对路径
5. 带「命令不存在」→ 核对命令拼写和引擎版本
6. 带「变量已存在」→ 搜VAR去重
7. 带Line XX → 直接跳那行看全角符号
8. 文件转ANSI
9. 取消只读
10. 关网关关M2重启
11. 再登号验证

进游戏脚本错误不是「传奇坏了」,本质就是登录触发或NPC脚本链断了一环:文件没了、路径歪了、标签没了、编码乱了、变量重了。先别碰客户端,看一眼M2红字基本就能定位到具体txt;补文件、对齐路径、ANSI保存、重启端,大部分电脑端脚本错误到这就结束。真要是登录器弹窗而M2安静,再去注册组件、加信任、对登录器版本。