mir.db属于传统dbc数据库文件,很多老版本引擎使用这个文件存放物品、怪物、技能等基础数据,修改数据库内容之后,需要完成对应的更新流程,改动才可以在游戏内生效,直接保存文件而不做后续操作,引擎依旧读取旧的数据。先准备好dbc数据库工具,打开工具之后找到mir.db对应的数据库别名,确认别名配置正确,别名填写错误会无法加载数据库文件,找到mir.db文件所在目录,路径不要包含中文和空格,避免读取异常。
打开mir.db之后,根据需求修改对应数据表,常见的表有items、monsters、magic,items负责装备道具属性,monsters控制怪物血量防御掉落,magic存放技能相关参数。修改字段的时候留意字段类型,数字类字段不要填入文字,超出字段上限的数值会保存失败,修改完成点击保存,关闭数据库编辑窗口,确认mir.db文件已经写入改动内容。这里需要区分,修改保存只是把改动写入db文件,不等于引擎已经识别更新,引擎启动的时候会一次性加载mir.db内的数据,运行期间不会自动读取db文件的变动。
单是保存mir.db还不够,需要执行引擎重载或者重启流程,不同引擎支持的操作不一样。部分引擎支持控制台重载命令,在M2控制台输入对应重载指令,分别重载物品、怪物、技能数据,重载成功之后日志会输出对应的提示,这类方式不用关闭整套服务,适合调试阶段频繁修改数据。不支持热重载的引擎,必须按顺序关闭网关、M2引擎,确认进程全部退出,再重新启动M2,引擎启动阶段会重新读取mir.db文件,加载最新的数据记录,启动完成之后再开启网关。
很多时候修改mir.db保存重启之后,游戏内没有任何变化,先排查几个方向。第一检查dbc工具的数据库别名,很多人会新建多个别名,引擎读取的别名和自己修改的db文件不是同一个,修改的是一份闲置mir.db,引擎加载的是另外一份,看起来保存成功,实际没有作用。第二核对db文件权限,文件设置只读属性的时候,修改内容无法写入,关闭工具之后改动直接丢失,右键文件属性取消只读勾选。第三确认文件没有被安全程序锁定,程序占用锁定状态下,保存操作不会报错,但是文件内容不会更新。
还有一种情况是资源目录存在备份db文件,引擎配置里面指向了备份文件,而不是你正在编辑的mir.db,打开M2配置,找到数据库路径设置,核对引擎读取的db文件路径,打开对应路径下的文件确认内容。如果使用的是配套数据库转换工具,从表格导出更新mir.db,导出完成之后要核对导出日志,查看有没有记录报错行,格式错误的数据行会直接丢弃,不会写入db。
更新mir.db之后进入游戏测试,优先测试改动项,修改装备属性就穿戴装备核对数值,修改怪物属性就找到对应怪物测试攻防,修改技能参数就学习技能测试效果。如果出现读取报错,M2窗口提示数据库字段错误、记录损坏,代表本次更新的时候有格式错误的数据写入mir.db,需要回退到之前正常的备份文件,逐条检查新增或者改动的记录,删掉格式异常条目再重新保存更新。
日常调试的时候养成备份习惯,每次改动mir.db之前复制一份原文件留存,一旦更新之后数据库损坏、引擎加载失败,可以直接替换回备份文件快速恢复。批量更新数据的时候,不要一次性修改大量条目,分批修改,每改动一部分就保存、重载或者重启测试,方便定位出错的记录。更新完成稳定运行之后,同步记录本次改动内容,后续再次调整相同数据表的时候,避免重复修改或者参数冲突。
传奇mir.db数据库更新操作步骤与数据同步失败以及引擎读取报错处理方法
来源:
作者:
点击:

