当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

传奇数据转换后脚本错误处置:FDB与IDDB清理、DB转换及Envir重载顺序

热度:
用数据转换工具把老引擎(Legend/BLUE/LEG/老Hero等)数据搬到HEROM2英雄版后出现“脚本错误”,根因不是转换工具把Envir脚本改坏了,而是DB结构、角色缓存、引擎字段、脚本调用三者没同步切换干净。按下面顺序处理,不用重做版本。

一、先分清两类报错来源
•M2弹“数据格式错误/请使用HEROM2配套转换程序转换Mir.DB/找不到DropRatePlus字段”→DB层不兼容,走第二节。

•M2控制台红字“未知命令/标签不存在/变量未定义/LinexxinQFunction-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/LEGDB扩展工具先扩字段再转,不能直接替
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红字Linexxin文件名跳行修,不要反复清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脚本,脚本错误最后修这一层就行。
[顶部]