返回上一页
游戏技术

奇迹怪物添加、刷新 MonsterSetBase.txt 设置方法

奇迹服务端里的怪物刷新,主要就是由 MonsterSetBase.txt 这个核心文件控制的,它决定了怪物会在哪里、什么时候“出生”。

需要特别说明的是,奇迹这个游戏的服务端,“起源”很多,版本也相当多。不同版本(比如1.03H,S6,S12等)的文件结构、刷怪机制和配置参数可能会有不小区别。下面的讲解会尽量以通用和主流的结构为主。

🗺️ 第一步:认识核心刷怪文件

MonsterSetBase.txt 通常位于服务端的 \Data\\GameServer\Data\ 目录下。文件的通用结构如下:

  • end:作为整个文件的结尾标记,必不可少,缺少了它服务端将无法读取后面的刷怪配置。
  • 行首数字 (Type):这行前面的数字(通常是 0, 1, 2)决定了这一行配置的是NPC还是怪物。这个数字通常代表配置类型,例如 0 可能代表普通NPC,1 代表特殊NPC,而最常见的 2 就代表普通怪物。

🧬 第二步:详解两种刷怪方式

MonsterSetBase.txt 中,定义怪物刷新点主要有两种语法格式:

方式一:单点精准刷怪

这种方式是指定一个单一的坐标点,在这个点上刷出怪物。

格式: Type MonsterID MapNum Count Respawn X Y Width Height -1
  • MonsterID & MapNum & Count: 怪物ID对应Monster.txt里的编号,地图编号参考表格,刷怪数量这里通常为1。
  • Respawn: 怪物死亡后的重生时间(秒)。
  • X & Y: 刷怪点的中心坐标。
  • Width & Height: 控制怪物在中心点周围的活动范围。例如,宽高都设为3,怪物会在中心点3x3的范围内活动。
  • -1: 通常是参数的结束标记或保留位。

方式二:批量范围刷怪

这种方式是定义一个矩形区域,系统会在该区域内随机生成指定数量的怪物。

格式: Type MonsterID MapNum Count Respawn X1 Y1 X2 Y2 -1 SpawnCount
  • X1, Y1 & X2, Y2: 分别代表刷怪矩形区域的左下角和右上角坐标,怪物会在两者决定的矩形内随机生成。该区域将帮助玩家更直观地理解坐标范围的定义。
  • SpawnCount: 在整个区域内实际生成的怪物总数量。

⚖️ 两种刷怪方式对比与选择建议

为了方便你根据服务器情况进行选择,这里对比了两种刷怪方式的特点:


比较维度单点刷怪 (Point)范围刷怪 (Area)
配置方式指定一个点指定一个矩形区域
怪物分布严格围绕固定点,几乎不扩散在区域内随机分布,位置多变
文件大小每群怪物占一行一个区域配置可代表多个点
性能影响怪物数量多时文件膨胀,加载慢文件体积小,服务器加载效率高
适用场景BOSS、关键NPC、需要位置固定的怪物数量庞大的普通小怪,需要分布自然

🔄 第三步:关联文件与高级配置

怪物刷新是一个体系,除了 MonsterSetBase.txt,以下文件也直接影响怪物的最终表现:

  • Monster.txt:定义了怪物的基础属性(等级、血量、攻击等),刷新文件通过ID引用这里的怪物数据。
  • MonsterAI 系列:控制怪物的行为逻辑(追击、施法、逃跑等)。
  • MonsterSkill 系列:定义怪物专用技能的具体参数(冷却、效果、范围等)。
  • 事件与地图刷怪文件:DevilSquare.dat:恶魔广场的刷怪配置。BloodCastle.dat:血色城堡的刷怪配置。ChaosCastle.dat:赤色要塞的刷怪配置。MuCastleData.dat:攻城战的怪物配置。
  • 其他相关数据文件:eventitembag系列:怪物死亡后的宝箱掉落内容。commonserver.cfg:全局经验、掉宝率等宏观配置。Gate.txt:地图入口坐标,与怪物的生成和活动范围间接相关。

⚠️ 第四步:重点注意事项 (避坑指南)

  1. 修改前务必备份:这是任何修改操作前的第一原则,请复制并妥善保存原始文件。
  2. 总数控制:单个地图或全服的怪物总数不能超过服务端 GameServer 程序的上限,否则会导致启动失败或运行时崩溃。这也是服务端不推荐刷太多怪的原因。
  3. ID与编号冲突:新增怪物时,怪物ID不能与Monster.txt中现有的ID重复,地图编号也不能与现有设定冲突。
  4. 严格遵循格式:文件使用制表符 (Tab) 作为列分隔符,并且所有标点符号(特别是负号和冒号)必须是英文半角格式。任何错用都可能导致解析失败。
  5. 修改后必须重启:对 MonsterSetBase.txt 的任何修改,都需要完全重启GameServer进程才能生效。/reload 等命令通常不作用于该文件。
  6. 客户端同步:刷怪配置本身不需要同步,但如果创建了全新的怪物ID,需要同步修改客户端相关文件,否则可能显示异常。

🛠️ 第五步:实战演练 --- 如何建立一个刷怪点

假设我们想在“勇者大陆”的(120, 130)坐标处,添加10只在周围活动的“幼龙”。

  1. 查ID:在 Monster.txt 中查找“幼龙”的ID(假设是 10)。在 MapServerInfo.dat 或相关资料中确认“勇者大陆”的地图编号(通常是 0)。
  2. 备份:备份 MonsterSetBase.txt。
  3. 写规则:使用范围刷怪方式,因为数量多且希望它们分布开。假设活动区域为(115, 125)到(125, 135)的矩形。生成10只幼龙。重生时间定为5秒。规则大致如下(仅供参考,实际格式需根据你的服务端版本确定):text2 10 0 10 5 115 125 125 135 -1 10
  4. 保存并测试:保存文件,重启服务端,进入游戏验证。

你可以参考这个例子的思路来修改其他地图的怪物。



为了方便你理解,我把 MonsterSetBase.txt 里常见的地图编号也整理了出来,你可以参考:

  • 0:勇者大陆
  • 1:地下城
  • 2:冰风谷
  • 3:仙踪林
  • 4:失落之塔
  • 5:流放地 / 竞技场
  • 6:古战场 / 竞技场
  • 7:亚特兰蒂斯
  • 8:死亡沙漠
  • 9:恶魔广场
  • 10:天空之城
  • 11 - 17:血色城堡1-7线
请注意,不同服务端版本的地图编号可能与上表不符,建议以你服务端的 MapServerInfo.dat 或相关配置文件为准。