跳转到内容

怪物配置 monsters.yml

monsters.yml 定义了地牢中的怪物组。每个怪物组包含一组怪物和它们的刷新规则。

需要安装 MythicMobs 插件。

groups:
wave_1:
auto_start: false
spawn_timing:
type: MANUAL # 刷新方式(默认 MANUAL)
delay: 0 # 延迟秒数(DELAYED 类型用,默认 0)
trigger_group: "" # 触发组ID(TRIGGERED 类型用)
trigger_script: "" # 触发脚本(SCRIPTED 类型用,可选)
condition: [] # 刷新条件表达式(字符串列表,可选)
monsters:
- id: "Zombie_Warrior" # MythicMobs 怪物ID
location: "10,64,10" # x,y,z
amount: 3
level: 1
- id: "Skeleton_Archer"
location: "15,64,15"
amount: 2
level: 1
on_start: # 怪物组开始刷新时执行
- "action.title('@all', '&c第一波', '&7消灭所有怪物!')"
on_end: # 该组怪物全部被击杀后执行
- "action.message('@all', '&a第一波已清除!')"
- "action.spawn_group('wave_2')"
wave_2:
spawn_timing:
type: TRIGGERED
trigger_group: wave_1 # wave_1 完成后自动触发
monsters:
- id: "Elite_Guard"
location: "0,64,0"
amount: 1
level: 5
on_end:
- "action.complete()"
类型说明
AUTO_START地牢开始时自动刷新
DELAYED地牢开始后延迟指定秒数再刷新
TRIGGERED指定怪物组完成后自动触发
MANUAL手动调用 action.spawn_group() 触发
SCRIPTED由脚本控制
字段类型默认值说明
idString必填MythicMobs 怪物ID
locationString0,64,0刷新位置 x,y,z
amountInt1刷新数量
levelInt1怪物等级

以下全部可选,只写 id / location / amount / level 的老配置逐字不变。

groups:
第一波:
zone: 战斗区 # 组默认区域;成员可用 point 引用该区域的点位
repeat: # 重复生成,max 必填,没有无限增援
interval: 200 # tick
max: 3
wait_cleared: true # 前一波没清完就跳过本轮(不计入轮次)
monsters:
- id: Zombie_Warrior
point: 左侧 # 引用 战斗区.左侧;写 区域.点位 可跨区域
amount: "3-6" # 区间随机
level: 1
- id: Elite_Guard
point: 中心
amount: 1
chance: 30 # 30% 概率出现
delay: 60 # 延迟 60 tick 生成
boss: true # 击杀触发 boss_kill 事件任务并推进阶段
- id: Zombie_Warrior
point: 右侧
amount: 2
when: "getVar('难度') >= 3" # 成员级条件
replace_with: Elite_Guard # 条件成立时改用这个 ID

组级

键(中/英)默认说明
zone / 区域无成员的 point 在此区域内找;成员没写位置时用区域落点
repeat.interval / 重复.间隔—tick,有这个键才重复
repeat.max / 重复.次数必填重复上限
repeat.wait_cleared / 重复.等待清空true前一波未清完则跳过本轮

成员级

键(中/英)默认说明
point / 点位无命名点位,优先于 location;不存在时加载期 warn 并退回 location
amount / 数量1数字或 "a-b" 区间,单成员单次最多 32
chance / 概率100出现概率百分比
delay / 延迟0tick,分批登场
bossfalseBoss 标记
when / 条件无JS 表达式。成立:生成(有 replace_with 则换 ID);不成立:有 replace_with 按原 ID 生成,否则跳过
replace_with / 替换为无见上

生成前会检查主配置的 performance.entity-limit,超限直接跳过不排队;单次生成超过 32 只时自动拆到多个 tick。重复生成用一次性任务自我续期,达到 max 自然停止,副本结束全部取消。

Boss 击杀:tasks.yml 里 trigger: boss_kill(可选 trigger_target: 组名),阶段通关条件可写 dungeon.isBossKilled('Boss战')。

脚本

写法说明
action.spawn_group('第一波', 2.0)第二参数为数量倍率
action.stop_repeat('第一波')停止重复生成
dungeon.getGroupAlive('第一波')存活数
dungeon.getGroupSpawned('第一波') / getGroupKilled累计生成 / 击杀
dungeon.getRepeatCount('第一波')已重复轮次
dungeon.isBossKilled('Boss战')Boss 是否已被击杀

编辑器:怪物组详情里 右键 生成点进入高级设置(点位 / 区间 / 概率 / 延迟 / Boss / 条件),怪物组设置里的「区域与重复」管组级字段。默认值不会写进 YAML。

每个怪物组支持:

  • 条件 (condition): 条件表达式字符串列表(如 存活怪物 <= 0),满足时才允许刷新
  • 开始脚本 (on_start): 怪物组开始刷新时执行
  • 完成脚本 (on_end): 该组怪物全部被击杀后执行