用数据转换工具把老引擎(Legend/BLUE/LEG/老Hero等)数据搬到 HEROM2 英雄版后出现“脚本错误”,根因不是转换工具把 Envir 脚本改坏了,而是 DB 结构、角色缓存、引擎字段、脚本调用三者没同步切换干净。按下面顺序处理,不用重做版本。
一、先分清两类报错来源
• M2 弹“数据格式错误 / 请使用HEROM2配套转换程序转换Mir.DB / 找不到 DropRatePlus 字段” → DB 层不兼容,走第二节。
• M2 控制台红字“未知命令 / 标签不存在 / 变量未定义 / Line xx in QFunction-0.txt” → 脚本层问题,走第三节。
两者常同时出现:DB 加载失败 → 物品/技能/职业字段空 → NPC 脚本 CHECKITEM/CHANGESKILL 全报未知参数。
二、DBServer\FDB 与 LoginSrv\IDDB 清理(角色缓存层)
操作前必须关干净:M2Server、DBServer、LoginSrv、LogServer、Gate 全部退出。
1. 删 D:\MirServer\DBServer\FDB\ 下全部文件(Mir.DB 角色数据、索引文件等)
2. 删 D:\MirServer\LoginSrv\IDDB\ 下全部文件(账号注册、密码校验、创建记录)
3. 保留目录本身,只清内容;若有备份先拷一份到别处
4. 重启 DBServer / LoginSrv,引擎会自动重建纯净空表,旧角色结构冲突消失
注意:清 FDB/IDDB 等于丢弃已有角色存档,只适合开新区/单机测试;老号要保留需先用 HeroDBConvert 导角色,再清缓存。
三、Mir.DB / StdItems.DB / Magic.DB 正式转换(DB结构层)
HEROM2 英雄版物品表、怪物表、技能表字段比老 Legend 多(套装属性、特效ID、AI类型、合击字段等),直接拷老 DB 必崩。
1. 从 HEROM2 官方英雄版引擎包里取配套工具:DBConverter.exe / HeroDBConvert.exe / HERO_DBConverter.exe,版本必须和当前 M2 一致(普及版/IP版/复古版/英雄合击版不能混用)
2. 备份 D:\MirServer\Mud2\DB\(Mir.DB、StdItems.DB、StdMonsters.DB、Magic.DB、HeroDB.MDB 等)
3. 运行转换工具 → 加载原 DB → 选目标格式“英雄合击/英雄版” → 转换 → 覆盖回原路径
4. 若 M2 报“StdItems.DB 找不到 DropRatePlus / ExpandField”等字段 → 用 BLUE/LEG DB 扩展工具先扩字段再转,不能直接替
5. 启动顺序:DBServer → LoginSrv → LogServer → M2Server → Gate,看是否还弹数据格式错误
四、脚本层报错清理(Envir 层)
DB 能加载后若仍报脚本错误,按常规修,但重点查以下几处转换期高发点:
• QuestDiary\ 下任务脚本里 GIVE / CHECKITEM 物品名,必须与转换后 StdItems.DB 完全一致(老版本改名/删字段后脚本还引用旧名 → 未知物品)
- Magic.DB 技能编号变了 → @Skill / ADDSKILL / CHANGESKILL 脚本指向旧编号 → 改新编号或技能名
• QFunction-0.txt、QManage.txt 里职业判定 CHECKJOB、英雄/合击判定命令(Hero 特有 CHECKHERO、CALLHERO 等)老 Legend 脚本没有 → 补全或注释
- 编码全部 ANSI + CRLF,转换工具若生成 UTF-8 脚本文件需转回
• 清 Mir200\Envir\Cache\ 或 Log\ScriptCache.dat(存在的话),防止旧脚本缓存
五、重载与验证顺序
1. 关 M2 → 删 FDB/IDDB → 覆盖转换后 DB → 启 DBServer/LoginSrv → 启 M2
2. M2 菜单【控制】→【重新加载】→ 重读 QFunction / 重读所有 NPC / 重读登录脚本(或 GM 输 @reloadnpc @reloadqfunction)
3. 建新号进游戏 → 点原报错 NPC → 看是否还弹脚本错误
4. 仍报错就按 M2 红字 Line xx in 文件名 跳行修,不要反复清 FDB(清一次够,反复清只是重置角色不修脚本)
六、常见组合报错速查
• 启动 M2 直接弹“数据格式错误” → 没转 Mir.DB,先跑配套转换工具,别先清 FDB
• 能进游戏但点 NPC 脚本错误 → DB 已好,脚本引了老物品/技能名,查 StdItems.DB 对照
- 创建角色 Error=4 / 进游戏秒退 → FDB/IDDB 损坏,清掉重建,检查 DBServer 勾选“允许创建新人物”
• 合击英雄不触发连击/内功 → Magic.DB 合击技能段没转全,重转 DB 并核对技能脚本编号
- 转换后背包/仓库物品全丢 → 老角色数据未迁移,清 FDB 前没导号,只能回备份
一句话顺序:备份 → 关进程 → 清 FDB/IDDB → 用 HEROM2 配套工具转 Mud2\DB 下所有 DB → 启底层服务 → 修 Envir 脚本引用 → M2 重载。转换工具只管 DB 结构,不管 Envir 脚本,脚本错误最后修这一层就行。
传奇数据转换后脚本错误处置:FDB与IDDB清理、DB转换及Envir重载顺序
来源:
作者:
点击:

