跳到主要内容

创建 EliteMobs 内容

EliteMobs 用 YAML 定义 Boss、物品、任务等内容,用 Lua 编写能力、NPC 脚本和原生行为。请将文件放到 plugins/EliteMobs/ 下对应的内容文件夹。

内容类型​

本概览介绍八种主要内容,以及下文列出的辅助定义和脚本:

  1. 自定义 Boss —— 创建拥有自定义技能、装备和能力的独特精英怪
  2. 自定义物品 —— 设计带有附魔的自定义武器、盔甲和物品
  3. 自定义任务 —— 构建带有目标和奖励的任务链
  4. 自定义事件 —— 设置定时或触发式的 Boss 事件
  5. 自定义 NPC —— 添加任务发布者、商店和可交互 NPC
  6. 宝箱 —— 放置带有自定义奖励和拟态机制的战利品箱
  7. 竞技场 —— 设计带有 Boss 遭遇战的基于波次的战斗挑战
  8. 虫洞 —— 创建在不同位置之间的传送门

每种内容类型都有自己的配置文件夹和字段结构。

快速上手​

创建 YAML 内容定义的步骤:

  1. 创建一个扩展名为 .yml 的 YAML 文件
  2. 使用 lowercase_with_underscores.yml 格式为其命名
  3. 将其放入相应的文件夹
  4. 使用 YAML 字段配置内容
  5. 重载 EliteMobs 或重启服务器

文件位置​

每种内容类型都存储在它自己的文件夹中:

  • 自定义 Boss:~/plugins/EliteMobs/custombosses/
  • 自定义物品:~/plugins/EliteMobs/customitems/
  • 自定义任务:~/plugins/EliteMobs/customquests/
  • 自定义事件:~/plugins/EliteMobs/customevents/
  • 自定义 NPC:~/plugins/EliteMobs/npcs/
  • 宝箱:~/plugins/EliteMobs/customtreasurechests/
  • 竞技场:~/plugins/EliteMobs/customarenas/
  • 虫洞:~/plugins/EliteMobs/wormholes/

辅助内容还有以下文件夹:

  • 技能:~/plugins/EliteMobs/powers/
  • 自定义生成:~/plugins/EliteMobs/customspawns/
  • NPC Lua 脚本:~/plugins/EliteMobs/npc_scripts/
  • 原生 Lua 行为:~/plugins/EliteMobs/behaviors/
  • 交通路线:~/plugins/EliteMobs/transport_routes/
  • 飞行网络:~/plugins/EliteMobs/transport_networks/
  • 附魔定义和 Lua:~/plugins/EliteMobs/enchantments/
  • 地下城包:~/plugins/EliteMobs/content_packages/
  • 实例世界模板:~/plugins/EliteMobs/world_blueprints/

内容包一级的 scripts/ 文件夹属于 FreeMinecraftModels,不是 EliteMobs 的 NPC 或行为脚本文件夹。参阅内容包文件夹路由。

内容创建工具​

EliteMobs WebApp 提供生成配置的可视化界面。请将输出与对应内容类型的最新参考文档核对;新字段和 Lua 脚本可能需要手动编辑。

手动 YAML 配置​

对于高级用户,可以手动创建 YAML 文件,以完全掌控所有可用的字段和选项。

YAML 文件格式​

YAML 内容定义遵循以下规则。Lua 能力、NPC 脚本和行为使用独立的 .lua 文件:

  • 缩进使用空格,而非制表符
  • 以颜色代码开头的字符串要加引号;单引号适合保留字面文本
  • 列表使用连字符格式或方括号格式
  • isEnabled 控制 YAML 定义是否启用。默认值取决于内容类型和预制定义;新文件请明确设置,并查阅对应参考文档
  • 文件名应使用 lowercase_with_underscores.yml 格式

有关详细的 YAML 语法帮助,请参阅 配置文件指南。

内容类型概览​

自定义 Boss​

自定义 Boss 是拥有增强能力、自定义装备和特殊技能的精英怪。Boss 系统支持 60 多个配置字段,包括:

  • 实体类型和等级
  • 生命值和伤害倍率
  • 装备(盔甲和武器)
  • 精英技能和能力
  • 战利品表和掉落物
  • 生成 / 死亡消息和命令
  • 多阶段机制
  • 自定义模型和伪装

基础 Boss 示例:

isEnabled: true
entityType: ZOMBIE
name: '&e Test Boss'
level: dynamic
healthMultiplier: 2.0
damageMultiplier: 0.5
helmet: GOLDEN_HELMET
chestplate: IRON_CHESTPLATE
mainHand: GOLDEN_AXE
powers:
- invulnerability_knockback.lua
spawnMessage: A test boss has been spawned!
deathMessage: A test boss has been slain by $players!

自定义物品​

自定义物品可创建带有自定义附魔和效果的武器、盔甲和工具。功能包括:

  • 材质类型
  • 显示名称和说明文字(lore)
  • 附魔列表
  • 药水效果
  • 自定义模型 ID
  • 掉落权重和缩放
  • 等级和灵魂绑定设置

基础物品示例:

isEnabled: true
material: DIAMOND_SWORD
name: '&4Legendary Blade'
lore:
- '&7A powerful weapon'
- '&7forged in dragon fire'
enchantments:
- DAMAGE_ALL,5
- FIRE_ASPECT,2
level: 10
soulbound: true

自定义任务​

自定义任务为玩家定义目标和完成奖励。功能包括:

  • 任务目标和类型
  • 奖励(物品、金钱、权限)
  • 接受 / 完成对白
  • NPC 交付要求
  • 任务锁定计时器
  • 追踪和音效

自定义事件​

自定义事件根据时间、几率或其他条件触发 Boss 生成。功能包括:

  • 事件类型和 Boss 列表
  • 触发几率和权重
  • 开始 / 结束消息和命令
  • 冷却计时器(本地和全局)
  • 最少玩家数量
  • 事件持续时间

自定义 NPC​

自定义 NPC 为任务、商店和竞技场提供可交互角色。功能包括:

  • NPC 名称、角色身份和职业
  • 生成位置
  • 对白(问候语、对白、告别语)
  • 交互类型
  • 任务和竞技场引用
  • 自定义模型和伪装
  • NPC Lua 钩子和巡逻路线

宝箱​

宝箱提供战利品,可配置补货时间和拟态机制。功能包括:

  • 宝箱类型和朝向
  • 位置坐标
  • 战利品表
  • 补货计时器
  • 拟态几率和 Boss 列表
  • 单人掉落或按玩家分别掉落的团队掉落方式

竞技场​

竞技场提供包含 Boss 的波次战斗。功能包括:

  • 竞技场边界(corner1、corner2)
  • 波次数量和延迟
  • Boss 列表和生成点
  • 奖励和玩家数量限制
  • 竞技场消息
  • 间歇波次

虫洞​

虫洞在两个位置之间创建传送门。功能包括:

  • 两个位置端点
  • 每个位置的显示文本
  • 视觉样式和粒子颜色
  • 硬币花费和权限
  • 致盲效果和大小倍率
  • 两个端点可选的实体模型
  • 打开飞行网络菜单的飞行传送门
  • 复制到每个实例化地下城中的实例化虫洞

常见模式​

引用内容​

各内容类型之间使用文件名相互引用:

  • 在 Boss 中引用技能: power_name.lua(旧式的 power_name.yml 引用会被自动解析到同名的 .lua 技能)
  • 在战利品中引用物品: filename: item_name.yml(关于几率、数量等,请参阅 战利品表 格式)
  • 在事件中引用 Boss: boss_filename.yml
  • 在 NPC 中引用任务: quest_filename.yml

复用定义​

自定义 Boss、NPC 和运输路线文件可以通过 extends: base_file.yml 以同类型的另一个文件为基础,只覆盖不同的键。放置位置和 isEnabled 永远不会被继承。完整规则请参阅复用另一个 Boss 文件和复用另一个 NPC 文件。

占位符​

占位符取决于读取它的字段,并非所有消息都会进行全局替换:

  • $players - Boss 死亡公告中参与攻击者的显示名称
  • $distance - locationMessage 中到被追踪 Boss 的距离
  • $eventBossLevel - Boss 名称中带格式的等级;预览时等级未知可能显示 ?

颜色代码​

名称和消息可以使用 Minecraft 颜色代码。如果文本以颜色代码开头,请用引号包住整个字符串。单引号会保留反斜杠的字面含义;YAML 双引号也有效。

标准 Minecraft 颜色代码:

  • &0 - 黑色
  • &1 - 深蓝色
  • &2 - 深绿色
  • &3 - 深青色
  • &4 - 深红色
  • &5 - 深紫色
  • &6 - 金色
  • &7 - 灰色
  • &8 - 深灰色
  • &9 - 蓝色
  • &a - 绿色
  • &b - 青色
  • &c - 红色
  • &d - 浅紫色
  • &e - 黄色
  • &f - 白色

格式化代码:

  • &l - 粗体
  • &m - 删除线
  • &n - 下划线
  • &o - 斜体
  • &r - 重置

精英能力系统​

EliteMobs 提供 71 种精英能力。其中 68 种是 Lua 文件(*.lua),只有 bonus_coins.yml、custom_summon.yml 和 elite_script.yml 仍然基于 YAML。能力在 Boss 配置中通过文件名引用,而旧式的 .yml 引用会自动解析为同名的 .lua 能力。参见创建能力。

能力分类​

能力所属的分类就是它的 powerType,它同时决定了自然精英怪能否随机获得该能力。

攻击型(Offensive): arrow_fireworks、arrow_rain、attack_arrow、attack_fire、attack_fireball、attack_freeze、attack_gravity、attack_lightning、attack_poison、attack_push、attack_vacuum、attack_wither、fireworks_barrage、lightning_bolts、taze

防御型(Defensive): invulnerability_arrow、invulnerability_fall_damage、invulnerability_fire、invulnerability_fireworks、invulnerability_knockback、shield_wall

杂项(Miscellaneous): attack_blinding、attack_confusing、attack_weakness、attack_web、bonus_loot、channel_healing、corpse、frost_walker、ground_pound、implosion、invisibility、moonwalk、movement_speed、taunt

主要能力(锁定实体类型):

  • MAJOR_ZOMBIE:zombie_bloat、zombie_friends、zombie_necronomicon、zombie_parents
  • MAJOR_SKELETON:bullet_hell、skeleton_pillar、skeleton_tracking_arrow
  • MAJOR_BLAZE:firestorm、flame_pyre
  • MAJOR_ENDERMAN:plasma_blaster
  • MAJOR_GHAST:tracking_fireball

独特能力(仅在 Boss 按名称明确要求时才会生效): death_slice、flamethrower、frost_cone、gold_explosion、gold_shotgun、hyper_loot、meteor_shower、photon_ray、spirit_walk、summon_embers、summon_the_returned、thunderstorm,以及十种末影龙能力:ender_dragon_aimed_fireball、ender_dragon_arrow_bombardment、ender_dragon_disco_fireballs、ender_dragon_empowered_lightning、ender_dragon_ender_fireball_bombardment、ender_dragon_endermite_bombardment、ender_dragon_fireball_bombardment、ender_dragon_potion_bombardment、ender_dragon_shockwave、ender_dragon_tornado

仍为 YAML: bonus_coins.yml、custom_summon.yml(增援系统)、elite_script.yml

能力通过 powers 列表字段添加到 Boss 上:

powers:
- invulnerability_knockback.lua
- flame_pyre.lua
- spirit_walk.lua

进阶功能​

多阶段 Boss​

Boss 可以拥有多个阶段,每个阶段使用独立的配置文件。使用 phases 字段引用阶段 Boss 文件,并使用 phaseSpawnLocation 设置阶段转换发生的位置。

精英脚本(Elite Scripts)​

EliteScript 提供事件驱动的动作、条件和冷却。YAML 版本使用 Boss 的 eliteScript 字段;Lua 能力是独立的 .lua 文件,由 powers 引用。参阅创建能力。

自定义模型​

Boss 和 NPC 的实体模型使用 customModel。物品使用专属字段,包括 customModelV2、equipmentModelID 和 fmmItemModel;参阅自定义物品。实体模型与物品模型分别配置。

Boss 装备​

Boss 装备字段接受 Minecraft 材质名称,不会加载自定义物品文件或其 EliteMobs 属性:

helmet: DIAMOND_HELMET
chestplate: IRON_CHESTPLATE
leggings: LEATHER_LEGGINGS
boots: CHAINMAIL_BOOTS
mainHand: GOLDEN_AXE
offHand: SHIELD

命令执行​

Boss 可以在特定事件时执行命令:

  • onSpawnCommands - 在 Boss 生成时执行
  • onDeathCommands - 在 Boss 被击败时执行
  • onCombatEnterCommands - 在战斗开始时执行
  • onCombatLeaveCommands - 在战斗结束时执行

Boss 消息​

自定义 Boss 公告:

  • spawnMessage - 在 Boss 生成时广播
  • deathMessage - 在 Boss 被击败时广播(支持 $players 占位符)
  • escapeMessage - 在 Boss 逃脱时广播
  • locationMessage - 显示到 Boss 的距离(支持 $distance 占位符)
  • deathMessages - 有攻击者记录时,在 Boss 死亡后按顺序发送的多行文本;非空列表优先于 deathMessage,并非随机选取

announcementPriority(0–3)控制公告投递、追踪和 DiscordSRV 转发。死亡公告在 0 时发送给记录的攻击者;正优先级向全服广播,3 还通过已配置的 DiscordSRV 集成转发。生成公告和追踪有各自的规则。

区域 Boss​

区域 Boss 使用 isRegionalBoss 字段,可以拥有牵引半径、生成限制和方块状态变化:

  • leashRadius - 距离生成点的最大距离
  • onSpawnBlockStates - Boss 生成时的方块变化
  • onRemoveBlockStates - Boss 被击败时的方块变化;普通卸载、消失和重置不会应用击败后的状态

自动职业战利品​

职业战利品提供与等级和玩家职业匹配的奖励。遭遇战品级和难度预算可独立于 Boss 生命与伤害调整奖励品质。自定义物品系列可提供作者指定的名称、材质、说明和模型。

战利品配置​

控制 Boss 掉落物:

  • dropsEliteMobsLoot - 启用常规生成战利品和金币的处理路径(默认 true);不是自定义或职业战利品的总开关
  • dropsVanillaLoot - 启用原版掉落(默认 true)
  • dropsRandomLoot - 在常规掉落路径内启用随机生成战利品(默认 true)
  • uniqueLootList - 作者指定的掉落条目,与这些生成掉落开关分开处理
  • classLoot - 单独控制自动职业战利品;仍受其全局设置和资格条件约束

示例:

uniqueLootList:
- filename=custom_sword.yml:chance=1.0
- filename=rare_helmet.yml:chance=0.05:amount=1

旧式简写 custom_sword.yml:1 仍然可以被解析,但冒号后面的数字是掉落几率(1 = 100%),而不是数量。数量请使用 amount=。完整选项请参阅战利品表。

预制内容​

EliteMobs 附带了大多数内容类型的预制配置,并在首次启动时把它们直接写入常规内容文件夹 —— 磁盘上并不存在单独的 /premade/ 文件夹。生成出来的这些文件(Boss 在 custombosses/、物品在 customitems/、NPC 在 npcs/,以此类推)都是普通的 YAML,可以作为你自己内容的可用示例。

插件也附带预制内容包定义;其地下城世界和额外内容通过 /em setup 下载并安装。参阅地下城打包器。

获取帮助​