在热血传奇(HERO/GOM/GEE/LEG/BLUE等主流引擎)里给某张已有地图加一个版本原本没有的怪物,服务端至少要动四个地方,客户端动不动取决于新怪是用引擎自带旧外观还是自己导新素材。下面按“必须改—可选改—客户端”三层列文件,路径以标准 MirServer 服务端为例,D盘换成你实际盘符即可。
必须改的文件
1. 怪物属性库 Monster.DB
路径:MirServer\Mud2\DB\Monster.DB
用 DBC2000 或 DB Commander 打开 Monster 表,新增一行。关键字段:Name(怪物名,后面所有文件必须一字不差对照)、Appr(外观编号,决定读客户端哪个 MonXX.wil 里的第几只,公式 Appr=(XX-1)*10+帧偏移)、Race(种族/行为类型,0普通兽类、11人形、60人形魔法怪等)、Level、HP、MP、AC、MAC、DC、MC、Speed、Exp。
Name 别带空格和全角符号,后面 MonGen 和 MonItems 文件名都靠它关联。
2. 刷怪配置 MonGen.txt
路径:MirServer\Mir200\Envir\MonGen.txt
按行追加,格式:
地图编号 X Y 怪物名 范围 数量 间隔(分钟) 集中X 集中Y 颜色 内功(0/1)
例:3330 330 330 幽冥火龙 10 5 30
意思是3号盟重图330,330周围10格刷5只,死完30分钟补。地图编号去 Envir\MapInfo.txt 查,坐标用 M2“查看-在线人物”进图双击自己角色看,或游戏里 @mapinfo 查。怪物名必须和 Monster.DB 的 Name 完全一致,错一个字刷不出来。
3. 爆率文件 MonItems\怪物名.txt
路径:MirServer\Mir200\Envir\MonItems\幽冥火龙.txt
不建这个文件怪物死了啥也不掉。里面按行写:
1/5 屠龙
1/10 1000
1/1 金币 500
概率格式是“分母 物品名 数量”,也可用 1/1 必掉。文件名必须和 Monster.DB 的 Name 完全相同,包括大小写。
4. 重启或重载
改完 Monster.DB 和 MonGen.txt 必须让 M2 重新读库:M2面板“选项-重新加载-重新加载怪物数据库”或“重新加载刷怪配置”,懒得找按钮直接重启 M2Server。不重载新怪不进内存,进图看不到。
可选改的文件(看新怪要不要这些能力)
Envir\userdata\extramon.txt(HERO引擎):写新怪的特殊免疫,格式“怪物名 防麻 防火 禁诱惑 防绿毒 防红毒”,不写默认不免疫。
Envir\MonSpAbilList.txt(HERO引擎):给新怪加忽视防御、伤反、破复活、防麻痹等扩展属性,一行一个怪。
Envir\MonUseItems\怪物名.txt:只有做人形怪(Race=60或11)才需要,配置怪穿什么装备、用什么技能、职业性别头发,不配就是空手站桩。
Envir\MapQuest.txt 或 QFunction-0.txt:如果想“进图触发刷一批”“打死新怪触发任务给物品”,在这些触发脚本里写 MAPQUEST 或 @MonDie 段,纯静态刷怪不需要动。
客户端要改的文件(仅当用全新外观时)
客户端 Data\ 目录下的 MonXX.wil / MonXX.wzl:用 WIL 编辑器把新怪八方向站立/行走/攻击/死亡帧导进去,记牢 XX 编号,回 Monster.DB 把 Appr 按 (XX-1)*10+帧序 填回去。
如果新怪是直接复用引擎自带但没启用的旧怪外观(比如拿祖玛教主换皮改名),Appr 填对应值即可,客户端一个文件都不用动,只发个补丁说明就行。
客户端 Data\SmartMonster.dat(HERO自定义怪物):如果在 M2“自定义怪物”里配了攻击动作特效,要把生成的这个 dat 拷进客户端 Data 覆盖。
排查顺序
进图没怪→查 MonGen 地图号对不对、Name 和 DB 是否完全一致、M2 有没有重载。
怪是稻草人/透明→Appr 算错或客户端 MonXX.wil 没放对、登录器没读新补丁。
怪刷出来不打人不掉东西→Race 填错成不可动类型,或 MonItems 文件名拼错。
人形怪空手→漏了 MonUseItems 配置。
改完一切正常但线上玩家没看到→他们客户端没更新补丁,发补丁包或重出登录器。
只往已有图塞一只复用旧外观的新数值怪,最小改动就是 Monster.DB 加行 + MonGen.txt 加行 + MonItems 建个爆率文件 + 重载 M2,三个服务端文件搞定;要用新模型才碰客户端 WIL。

