打开DBC2000管理器查看Monster数据库表,搜索名称字段是否包含弓箭手和守卫这两条记录。如果数据库里完全没有这两个名字或者名字中间有空格符号不一致,引擎读取时就会判定为缺失并抛出城堡初始化失败的错误。手动添加记录时要注意不同引擎对名称的定义区别,Hero引擎通常用弓箭手和守卫的汉字,部分3K或GEE引擎可能调用Archer和Guard的英文字段,必须对照Mir200\Castle目录下SabukW.txt里的Archer_1_Name和Guard_1_Name赋值来填,名字必须一字不差包括全角半角也要一致。
检查怪物种族Race和图像RaceImg字段数值是否正确,弓箭手一般设定Race为81或112代表远程固定炮塔模式,守卫大刀护卫通常设定Race为11或12代表近战巡逻模式。如果这些数值填错成普通怪物代码,即便名字对了引擎在加载城堡防御体时也会因为行为模式不支持而报初始化失败。同时确认HP、AC、MAC、DC等基础属性字段填有合法数值,不能留空或填0否则会导致怪物对象创建中止。
打开服务端Mir200目录下的Castle文件夹,确认里面存在List.txt文件以及以数字命名的子目录如0文件夹内的SabukW.txt。如果Castle目录缺失直接从完整服务端复制一份过来,避免路径指向错误连带引发读取怪物失败误报。查看!Setup.txt里的CastleFile配置路径是否和实际安装盘符目录一致,若你把服务端放在E盘但配置里写的D盘旧路径,引擎找不到城堡配置文件也会中断后续弓箭手守卫的数据库查询从而弹出检查怪物数据库的错误提示。
在DBC2000里修改保存完Monster数据库后必须重启DBServer和M2Server让数据重载,或者在M2控制台输入重载怪物数据库命令确认提示成功。有些时候数据库里有记录但因为DBC驱动缓存没更新,M2启动时读的还是旧空表同样会报这个错。如果是从别处下载的阉割版服务端Monster表被删减严重,直接找同引擎的完整Monster.DB覆盖回Mir200\Envir或Mud2\DB目录并提前备份原文件,覆盖后再次核对弓箭手守卫城墙MainDoor、LeftWall、CenterWall、RightWall等关联体是否齐全。
进游戏前先开M2看运行日志,如果不再刷城堡初始化弓箭手失败守卫失败的红字说明数据库名称和路径已对应上。进沙巴克地图走到城墙边看弓箭手是否射箭守卫是否挥刀移动,若站着不动可能是Race行动代码设错回数据库改对应数值。整个流程核心就是保证怪物数据库有标准名称记录、属性代码合法、城堡配置文件路径存在且内部调用的名字与数据库完全匹配、改完重启生效这四步闭环。

