跳到主要内容

创建 Boss

webapp_banner.jpg

创建自定义 Boss

开始之前

Boss 配置文件放在哪里?

Boss 配置文件放在配置文件夹 ~/plugins/EliteMobs/custombosses 中。

你也可以创建子文件夹,例如 ~/plugins/EliteMobs/custombosses/mybosses。推荐这样做,以便保持文件井然有序。

一个文件定义一个 Boss,不过同一个 Boss 可以被多次生成,甚至可以为同一个 Boss 文件设置多个生成点。

你可以使用 网页应用 来快速、轻松地创建自定义 Boss 以及更多内容。

最简配置

自定义 Boss 的最简配置文件是:

注意这就是一个空文件。它依然会生成一个带有自定义名称的僵尸自定义 Boss,因为这些都是默认值。本页面中的所有内容都是可选的!

Boss 示例

我们来看一个 Boss 文件的示例。

示例
isEnabled: true
entityType: ZOMBIE
name: '&eTest boss'
level: dynamic
timeout: 10
isPersistent: false
healthMultiplier: 2.0
damageMultiplier: 0.5
helmet: GOLDEN_HELMET
chestplate: IRON_CHESTPLATE
leggings: LEATHER_LEGGINGS
boots: CHAINMAIL_BOOTS
mainHand: GOLDEN_AXE
offHand: SHIELD
isBaby: false
powers:
- invulnerability_knockback.lua
spawnMessage: A test boss has been spawned!
deathMessage: A test boss has been slain by $players!
escapeMessage: A test boss entity has escaped!
locationMessage: 'Test entity: $location'
uniqueLootList:
- magmaguys_toothpick.yml:1
dropsEliteMobsLoot: true
dropsVanillaLoot: true
trails:
- BARRIER
onDamageMessages:
- "I've hit you!"
onDamagedMessages:
- "I've been hit!"

基础设置

isEnabled

设置该 Boss 是否启用。

取值默认值
isEnabledtrue / falsetrue
示例
isEnabled: true

entityType

设置 Boss 的实体类型。

取值默认值
entityType从这里挑选
该值还必须存在于文件夹 ~plugins/EliteMobs/mobproperties 中。
ZOMBIE
岩浆怪与史莱姆

由于这些实体类型不会直接攻击玩家,而是通过接触造成伤害,这会导致在很短的时间内爆发出大量伤害。因此,我们通常不建议频繁地把它们用作精英怪。不过,如果你仍然想使用它们,我们建议把 damageMultiplier 设置在 0.1 左右。

我们还建议使用下面这段 EliteScript,以防止岩浆怪或史莱姆把玩家锁死在硬直中:

eliteScript:
NerfDamage:
Events:
- ZoneEnterEvent
- ZoneLeaveEvent
Zone:
shape: SPHERE
radius: 1
Target:
targetType: SELF
Actions:
- action: SET_MOB_AI
Target:
targetType: SELF
bValue: false
duration: 10
示例
entityType: ZOMBIE

name

设置 Boss 的名称。

取值默认值
name字符串,支持 颜色代码 和下面列出的占位符"Default Name"
示例
name: "$normalLevel &cCool boss!"

create_boss_name_pic_no_level.jpg

如果你希望在名称字段中包含 Boss 的等级,只需使用下列占位符之一。

占位符说明示例输出(以 10 级 Boss 为例)
$level替换为等级"$level Cool boss"10 Cool boss
$normalLevel替换为等级,为普通怪物设计"$normalLevel Cool boss"[10] Cool boss
$minibossLevel替换为等级,为小 Boss 设计"$minibossLevel Cool boss"〖10〗 Cool boss
$bossLevel替换为等级,为 Boss 设计"$bossLevel Cool boss"『10』 Cool boss
$reinforcementLevel替换为等级,为增援怪设计"$reinforcementLevel Cool boss"〔10〕 Cool Boss
$eventBossLevel替换为等级,为事件 Boss 设计"$eventBossLevel Cool boss"「10」 Cool boss
示例
name: "$normalLevel &cCool boss!"

create_boss_name_pic.jpg


level

设置 Boss 的等级。

取值默认值
level整数dynamicdynamic

dynamic 用于事件,会在 Boss 生成时根据附近玩家的等级进行调整。 不建议用于区域 Boss。

示例
level: 1

scale

设置 Boss 的缩放比例(体型大小)。

取值默认值
scale倍率1.0

进行缩放时,1.0 代表默认大小。想让实体变大,就提高该值(例如 1.2)。想让实体变小,就降低该值(例如 0.8)。

示例
scale: 1.2

bossType

设置该 Boss 的类型。这会影响 Boss 血条的显示以及其他功能。

取值默认值
bossTypeNORMALMINIBOSSBOSSREINFORCEMENTEVENTNORMAL

当玩家与 MINIBOSSBOSSEVENT 这几类 Boss 战斗时,插件会显示血条。

注意: REINFORCEMENT 通常会自动分配给被召唤出来的增援怪,但在需要时也可以手动设置。

示例
bossType: MINIBOSS

silent

设置是否静音 Boss 的音效。

取值默认值
silent布尔值false

设置为 true 时,该选项会静音所有原版 Minecraft 怪物音效,使该 Boss 完全不发出任何声音。

示例
silent: true

healthMultiplier

设置 Boss 的生命值。该设置的数值同时也决定了战斗中显示哪种血条。数值越高,越有可能显示小 Boss 或完整 Boss 血条。

取值默认值
healthMultiplier倍率1.0
Boss 生命值有硬性上限,Boss 伤害没有

最终生命值为 基础生命值 × healthMultiplier,而这个乘积会被限制在服务器 spigot.yml 中的 settings.attribute.maxHealth.max 之内。EliteMobs 会在启动时把该值提升到 2048(如果它更低的话),但绝不会超过这个数,所以在默认服务器上 2048 就是实际上限。

基础生命值遵循 2.1875 × 2^(等级 / 5),因此每 5 级翻一倍。结合这个上限,每一个 healthMultiplier 都存在一个等级,超过该等级后 Boss 的生命值完全停止增长,而它的伤害却仍在继续增长:

healthMultiplier生命值停止增长的等级
1.050
2.045
5.038
7.036
10.033
20.028
40.023

超过该等级后,你把它推得越高,Boss 相对于自身伤害就越脆:玩家依然用同样的攻击次数就能杀死它,但玩家自己会死得更快。当上限被触发时,EliteMobs 会记录一条警告,指明该 Boss、其等级和倍率——调整高等级 Boss 时请留意控制台。

如果你确实需要超过 2048 点生命值,请自行在 spigot.yml 中提高 settings.attribute.maxHealth.max;该上限读取的是服务器的实时数值,而不是硬编码常量。

示例
healthMultiplier: 1.5

damageMultiplier

设置 Boss 的伤害倍率。

取值默认值
damageMultiplier倍率1.0
示例
damageMultiplier: 1.5

isBaby

设置 Boss 是否使用该怪物的幼年变种。只能应用于拥有幼年变种的怪物。 如果你想 伪装 该 Boss,同时希望它在伪装状态下仍然是幼年体(请确认伪装实体也支持幼年变种),可以使用这个设置:

disguise: HOGLIN:baby
取值默认值
isBabytrue / falsefalse
示例
isBaby: true

helmet/chestplate/leggings/boots/mainHand/offHand

设置 Boss 的装备。并非所有 Minecraft 模型都能显示装备。Boss 的装备纯属外观展示,不会影响实际战斗数值。

取值默认值
helmet材料UUID
chestplate材料
leggings材料
boots材料
mainHand材料
offHand材料

注意: 该字段还允许你为物品设置自定义模型。要设置自定义模型 ID,请按以下格式在材料类型后面加上 ID:ITEM_MATERIAL:ID。例如:DIAMOND_SWORD:1 会让 Boss 手持一把使用你材质包中 1 号自定义模型的钻石剑。

注意 2: 该字段还允许你按 ITEM_MATERIAL:CODE 的格式设置自定义皮革颜色,其中 CODE 是该颜色的十六进制表示。例如:LEATHER_LEGGINGS:ffa500 会生成橙色的皮革护腿。你可以使用十六进制代码,只要去掉其中的 # 即可。你可以从 这里 获取十六进制代码。

注意 3: helmet 字段还允许你把怪物的头盔设置成玩家头颅。只需获取你想使用的玩家头颅的 UUID,并把它填入 helmet 字段即可。该玩家必须在线才能生效,否则头颅会退回成通用的 Minecraft 头颅。 你可以从 这里 获取玩家 UUID。

示例
helmet: 198c4123-cafc-45df-ba79-02a421eb8ce7
chestplate: DIAMOND_CHESTPLATE:1
leggings: LEATHER_LEGGINGS:ffa500
boots: NETHERITE_BOOTS
mainHand: DIAMOND_SWORD
offHand: SHIELD

create_boss_armor.jpg


powers

设置 Boss 拥有的能力。

取值默认值
powers参见下面的列表
示例
powers:
- hyper_loot.lua
- attack_arrow.lua
- mycoolpower.lua

注意:如果你想查看可以直接使用的预制能力列表,可以查阅 此页面

注意:能力可以是 .yml 文件(EliteScript)或 .lua 文件(Lua 脚本)。两种类型都受支持,并且可以在 powers 列表中自由混用。几乎所有预制能力现在都是 .lua

旧的 .yml 能力名称仍然可用

如果存在同名的 .lua 能力,EliteMobs 会自动把 .yml 请求解析到它。在 Lua 迁移之前编写的 Boss 配置无需修改即可继续工作——attack_arrow.yml 会透明地加载 attack_arrow.lua。新的配置应直接写 .lua 文件名。


进阶配置 —— 召唤增援

增援同样归入 powers 类别,使用以下设置:

注意: 增援是在 Boss 配置文件的 powers 部分中配置的,而不是作为一个独立的部分。

增援设置
说明取值默认值
summonType触发增援生成的条件。必填。参见下面的列表
filename作为增援生成的 Boss 的文件名。必填。字符串
chance增援生成的概率。可选。双精度小数1.0
amount设置生成的增援数量。可选。整数1
inheritAggro让增援继承 Boss 的仇恨。可选。true / falsefalse
spawnNearby让增援在生成点周围 30x30 格的范围内生成(X 和 Z 轴上各 ±15 格)。可选。true / falsefalse
inheritLevel让增援继承 Boss 的等级。可选。true / falsefalse
customSpawn让增援通过 自定义生成系统 生成。仅用于 summonType: GLOBAL自定义生成文件名
location相对生成偏移量。可选。x,y,z —— 始终是相对于 Boss 的偏移量。对于区域 Boss,该偏移量相对于其生成位置。
lightningRod针对 summonType: ON_COMBAT_ENTER_PLACE_CRYSTAL 的特殊设置。让末影水晶周围产生闪电。可选。true / falsefalse
difficultyID将该条目限制在特定的 副本地下城难度。可选。字符串 或字符串列表

召唤类型设定了增援生成的条件。以下是有效召唤类型的列表:

召唤类型
取值说明
ONCE只在 Boss 第一次受到伤害时生成一次增援。
ON_HIT每次受到攻击时生成增援。
ON_COMBAT_ENTER当 Boss 进入战斗时生成增援。
ON_DEATH当 Boss 死亡时生成增援。
GLOBAL每 10 秒在与该 Boss 处于同一世界的每位玩家附近反复生成增援,且该世界中每位玩家最多同时存在 30 个全局增援。要求 customSpawn 键设置了有效的 自定义生成
ON_COMBAT_ENTER_PLACE_CRYSTAL进入战斗时放置末影水晶增援,仅用于自定义末影龙战斗。

注意,也可以通过 Elite Script 来生成增援,因此还有更多可自定义的增援生成方式。

示例
powers:
- summonType: ON_COMBAT_ENTER
filename: test_boss.yml
chance: 0.5
amount: 5
inheritAggro: true
spawnNearby: true
inheritLevel: true
location: 10,20,30
lightningRod: false

专家配置 —— 创建你自己的能力

你可以创建属于自己的能力,既可以写在 Boss 文件本身里,也可以在 powers 文件夹中新建一个配置文件。你可以在 这里 了解更多。

注意: 你也可以使用 eliteScript 字段直接在 Boss 配置文件中定义 Boss 行为。关于使用 Elite Script 的完整文档,请参见 能力指南

作为 EliteScript 的替代方案,你也可以用 Lua 脚本编写能力。Lua 能力放在 powers 文件夹中,扩展名为 .lua,并在 powers 列表中以文件名引用。更多信息请参见 Lua 入门 指南。

根据副本地下城难度限制能力

副本地下城 可以设置难度,你也可以让某个特定能力只在特定难度下启用。

能力限制选项
说明取值默认值
filename能力的文件名。字符串
difficultyID难度名称,与地下城包中的难度名称一致。字符串

这只会对副本地下城生效。

示例
powers:
- filename: movement_speed.lua
difficultyID:
- myDifficultyName1
- myDifficultyName2
- myDifficultyName3

spawnMessage

设置 Boss 生成时发送的消息。需要配置 announcementPriority

取值默认值
spawnMessage字符串颜色代码
示例
announcementPriority: 3
spawnMessage: I rise once more!

create_boss_spawn_message.jpg


deathMessages

设置 Boss 死亡时发送的消息列表。需要配置 announcementPriority

取值默认值
deathMessages字符串颜色代码 以及下面的占位符
示例
announcementPriority: 3
deathMessages:
- '&e&l---------------------------------------------'
- '&4The Test Boss has been killed!'
- '&c&l 1st Damager: $damager1name &cwith $damager1damage damage!'
- '&6&l 2nd Damager: $damager2name &6with $damager2damage damage!'
- '&e&l 3rd Damager: $damager3name &ewith $damager3damage damage!'
- '&4Slayers: $players'
- '&e&l---------------------------------------------'

create_boss_death_message.jpg

死亡消息可使用以下占位符:

占位符
取值说明
$damager1name伤害榜第一名的名称
$damager2name伤害榜第二名的名称
$damager3name伤害榜第三名的名称
$damager1damage伤害榜第一名的伤害量
$damager2damage伤害榜第二名的伤害量
$damager3damage伤害榜第三名的伤害量
$players显示所有造成伤害的玩家列表

deathMessage

设置 Boss 死亡时发送的单条消息。当你只需要一条死亡消息而非一个列表时,这是 deathMessages 的替代方案。需要配置 announcementPriority

取值默认值
deathMessage字符串颜色代码 以及与 deathMessages 相同的占位符
示例
announcementPriority: 3
deathMessage: '&4The Test Boss has been killed by $players!'

onKillMessage

设置 Boss 击杀玩家时发送的消息。需要配置 announcementPriority

取值默认值
onKillMessage字符串颜色代码

占位符:

取值说明
$player被击杀玩家的显示名称
$playerName被击杀玩家的用户名
示例
announcementPriority: 3
onKillMessage: I win, you lose!

create_boss_spawn_message.jpg


slimeSize

设置史莱姆 Boss 的大小,仅对史莱姆和岩浆怪有效。

取值默认值
slimeSize整数4
示例
slimeSize: 5

neutral

设置 Boss 是否以中立状态生成。这只适用于可以保持中立的实体类型,例如狼或铁傀儡。

取值默认值
neutral布尔值false
示例
neutral: true

高级设置

timeout

设置自定义 Boss 消失前的时间,单位为分钟。

取值默认值
timeout时间(分钟)整数0
示例
timeout: 20

设置 Boss 在 20 分钟后逃离。


isPersistent

设置 Boss 是否能在区块卸载后继续存在。由于持续加载区块以及跨服务器重启追踪实体可能带来性能开销,仅推荐用于事件 Boss。

取值默认值
isPersistenttrue / falsefalse
示例

示例:

isPersistent: true

damageModifiers

设置 Boss 对某些武器的抗性或弱点。

取值默认值
damageModifiers材料
示例
damageModifiers:
- material:DIAMOND_SWORD,multiplier:0.8
- material:TRIDENT,multiplier:2.0

在这个示例中,Boss 只会承受钻石剑 80% 的伤害(即减少 20%),但会承受三叉戟 200% 的伤害(即 2 倍伤害)。


normalizedCombat

将 Boss 的伤害和最大生命值修改为 ~/plugins/EliteMobs/mobproperties 中标准化实体的数值。这是区域 Boss 的默认设置,以保证平滑的难度曲线。

取值默认值
normalizedCombattrue / falsefalse
示例

示例:

normalizedCombat: true

scaledCombat

设置 Boss 是否使用缩放战斗系统。启用后,Boss 会模拟成与正在与之战斗的玩家同等级——伤害、生命值缩放和战利品都会依据玩家的进度等级而非 Boss 存储的等级来调整。这让所有玩家无论进度如何,都能获得同样公平的战斗体验。

缩放战斗主要是为主世界事件 Boss 以及那些应当让任何等级玩家都能挑战的自定义 Boss 设计的。对于有固定预期难度的地下城内容,请改用 normalizedCombat

当设置了 scaledCombat: true 时,即使该 Boss 本应使用标准化战斗,缩放战斗也会优先生效。自然生成的精英怪默认使用缩放战斗(由 MobCombatSettings.yml 中的 useScaledCombatForNaturalElites 配置控制)。

关于缩放战斗如何运作的完整细节,请参见 伤害系统 页面。

取值默认值
scaledCombattrue / falsefalse
示例
scaledCombat: true

escapeMessage

设置当 Boss 通过 timeout 机制逃离时向玩家广播的消息。需要配置 announcementPriority

取值默认值
escapeMessage字符串
示例
announcementPriority: 3
timeout: 60
escapeMessage: "Sayonara!"

create_boss_escape_message.jpg


locationMessage

设置显示在 Boss 血条上的消息。它用于追踪自定义 Boss 的生命值及其在服务器中的位置。需要配置 announcementPriority

取值默认值
locationMessage字符串颜色代码 以及下面列出的占位符

占位符:

取值说明
$distance替换为玩家与该自定义 Boss 之间的距离。这是更推荐的选项。
$location替换为该自定义 Boss 的 x y z 坐标位置
示例
announcementPriority: 3
locationMessage: "&4Cool boss: At $location only $distance blocks away!"

create_boss_location_message.jpg

这会显示类似 Cool boss: At 414,55,347 only 10 blocks away! 的内容。


uniqueLootList

设置该 Boss 掉落的 自定义物品

取值默认值
uniqueLootList列表

自定义战利品中的条目遵循战利品表格式。相关信息请看这里! 请注意,某些较旧的文件可能仍在使用与示例不同的过时战利品表格式。

示例
uniqueLootList:
- filename: magmaguys_toothpick.yml
chance: 0.02
- minecraft:type=DIAMOND:amount=1:chance=0.9
- magmaguys_toothpick.yml:0.5:elitemobs.*

dropsEliteMobsLoot

设置该 Boss 是否掉落 EliteMobs 战利品(不包括 uniqueLootList 中的物品)。包含金币。

取值默认值
dropsEliteMobsLoottrue / falsetrue

建议对增援怪设置为 false。

示例
dropsEliteMobsLoot: true

dropsVanillaLoot

设置该自定义 Boss 是否掉落其原版怪物类型通常会掉落的原版战利品。

取值默认值
dropsVanillaLoottrue / falsetrue
示例
dropsVanillaLoot: true

dropsRandomLoot

设置该自定义 Boss 是否掉落 EliteMobs 程序化生成的战利品。不包括精英金币。

取值默认值
dropsRandomLoottrue / falsetrue
示例
dropsRandomLoot: true

dropsSkillXP

设置该 Boss 被击杀时是否掉落技能经验。技能经验用于武器技能加成系统。

取值默认值
dropsSkillXPtrue / falsetrue

建议对增援怪,或者不应参与技能进度成长的 Boss 设置为 false。

示例
dropsSkillXP: false

trails

设置 Boss 移动时留下的尾迹。

取值默认值
trails粒子物品材料

只有不需要附加数据的粒子才能作为 Boss 尾迹使用(也就是 有效粒子列表 中的所有“简单粒子”)。像 BLOCKDUSTITEM 等粒子会被静默跳过。填写材料名称则会生成动态的物品尾迹。

示例
trails:
- CLOUD

onDamageMessages

设置 Boss 命中玩家时显示的消息。这是一个列表,实际使用的消息会从列表中随机挑选。

取值默认值
onDamageMessages列表
示例
onDamageMessages:
- "I hit you!"
- "Haha I hit you!"

create_boss_damage_message.jpg


onDamagedMessages

设置 Boss 被玩家伤害时显示的消息。这是一个列表,实际使用的消息会从列表中随机挑选。

取值默认值
onDamagedMessages列表
示例
onDamagedMessages:
- "You hit me!"
- "I've been hit!"

create_boss_damaged_message.jpg


mountedEntity

设置 Boss 将骑乘的实体。

取值默认值
mountedEntity要骑乘的 Boss 的文件名实体类型

不要试图让 Boss 骑乘它自己。

示例
mountedEntity: wild_wolf.yml

create_boss_mounted.jpg

注意:区域 Boss 会与它所骑乘的实体共享牵引绳,这意味着一旦超出牵引绳允许的距离,两者都会被拉回生成位置。


announcementPriority

设置公告的优先级。优先级较低意味着不会发出任何公告,优先级较高则不仅能在聊天中公告,若已配置还能发送到 Discord。

取值默认值
announcementPriority整数0

注意: 如果某个 Boss 文件确实包含公告文本(locationMessagespawnMessagedeathMessageescapeMessage 或非空的 deathMessages 列表)却缺少该键,EliteMobs 会在加载时把 announcementPriority: 0 写入该文件,让这个设置可见且便于调高。在你修改之前,该 Boss 仍按优先级 0 运作。

以下是各优先级的作用列表:

取值说明
0这是默认值。Boss 将完全静默,不发出任何公告消息。
1Boss 可以发送聊天消息,包括生成消息、死亡消息和逃离消息。如果设置了 locationMessage,通过 /em 菜单追踪 Boss 的功能也会在此级别启用。
2对自定义 Boss 而言1 完全相同 —— 优先级 2 并没有单独的代码路径。(自定义事件确实会区别对待 2;参见 公告优先级系统。)
31 的基础上,若已配置,广播消息还会同步到 Discord。Discord 配置信息请看这里。

下面是一个可被追踪、并且能在聊天和 Discord 中发送生成/死亡/逃离消息的 Boss 示例:

示例
announcementPriority: 3

注意:如果你想使用对应的公告优先级等级,你还需要配置 spawnMessage、deathMessage/deathMessages、escapeMessage 用于聊天和 Discord 公告,以及 locationMessage 用于追踪功能。

注意:当存在任何公告内容(spawnMessage、deathMessage、deathMessages、escapeMessage 等)时,若未显式设置,announcementPriority 会自动默认为 1


followDistance

设置 Boss 产生仇恨并进入战斗的距离。以怪物自身为中心测量。

取值默认值
followDistance整数0

注意 1:区域 Boss 在脱离战斗时的 followDistance 只有一半。这样它们就不会从太远的地方拉仇恨,从而避免因牵引绳限制而产生恼人的战斗问题。

注意 2:followDistance 越高,该 Boss 对服务器 CPU 的开销就越大。请谨慎且负责任地使用!

示例
followDistance: 30

设置一个 30 格的范围,只要玩家进入该距离靠近 Boss,Boss 就会开始追击/攻击该玩家。


onDeathCommands

设置自定义 Boss 死亡时执行的命令列表。

取值默认值
onDeathCommands列表

该列表支持以下占位符:

取值说明
$levelBoss 等级的占位符。
$nameBoss 名称的占位符。
$chance=x$让某条命令有一定概率执行。
$players让该命令对伤害列表中的每位玩家各执行一次,每次分别替换为该列表中不同玩家的用户名。
$locationXBoss 死亡时的 X 坐标。
$locationYBoss 死亡时的 Y 坐标。
$locationZBoss 死亡时的 Z 坐标。
$damager1name伤害榜第一名的用户名
$damager2name伤害榜第二名的用户名
$damager3name伤害榜第三名的用户名

请看下面的示例,以更好地理解它们的用法。

示例
onDeathCommands:
- "say $players has killed $name! That was level $level!"
- "$chance=0.5$ say What a kill!"

create_boss_mounted.jpg

如果 Player1、Player2 和 Player3 都在击杀 Boss 前对它造成过伤害,那么控制台中的命令输出会是:

say Player1 has killed CustomBossName! That was level X!
say Player2 has killed CustomBossName! That was level X!
say Player3 has killed CustomBossName! That was level X!

此外,还有 50% 的概率会额外输出下面这条:

say What a kill!

onSpawnCommands

设置 Boss 生成时执行的命令列表。

取值默认值
onSpawnCommands列表

它使用与 onDeathCommands 相同的占位符! 伤害相关的占位符不会生效,因为此时还不存在任何造成伤害的玩家。

示例
onSpawnCommands:
- say Boss has spawned!

create_boss_mounted.jpg


onCombatEnterCommands

设置 Boss 进入战斗时执行的命令列表。

取值默认值
onCombatEnterCommands列表

它使用与 onDeathCommands 相同的占位符! 伤害相关的占位符不会生效,因为此时还不存在任何造成伤害的玩家。

示例
onCombatEnterCommands:
- say Boss has entered combat!

create_boss_mounted.jpg


onCombatLeaveCommands

设置 Boss 脱离战斗时执行的命令列表。

取值默认值
onCombatLeaveCommands列表

它使用与 onDeathCommands 相同的占位符!

示例
onCombatLeaveCommands:
- say Boss has left combat!

create_boss_mounted.jpg


disguise

如果启用了 LibsDisguises 插件,则设置该插件的伪装。更多信息请看这里。

取值默认值
disguise字符串
customDisguiseData字符串
伪装示例
disguise: CHICKEN

create_boss_mounted.jpg

自定义伪装示例
disguise: custom:the_beast_sanctuary_beast
customDisguiseData: player the_beast_sanctuary_beast setskin {"id":"44e6d42b-bd8d-4e48-873b-fae7afed36e4","name":"Unknown","properties":[{"name":"textures","value":"ewogICJ0aW1lc3RhbXAiIDogMTY2NjcwNjYwODA1MCwKICAicHJvZmlsZUlkIiA6ICI3MmY5MTdjNWQyNDU0OTk0YjlmYzQ1YjVhM2YyMjIzMCIsCiAgInByb2ZpbGVOYW1lIiA6ICJUaGF0X0d1eV9Jc19NZSIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS82YmYyMTY4NmM1MGQ1ODhmZmExMDZhZDdjNmViZTk1ZWZiMjE2NDU5ODRjZDFjZWYwODkzNDc4NzMzNmI2YTI3IiwKICAgICAgIm1ldGFkYXRhIiA6IHsKICAgICAgICAibW9kZWwiIDogInNsaW0iCiAgICAgIH0KICAgIH0KICB9Cn0=","signature":"jSsQvpUeWVtyqjtnydPadormkrZLVihetiX4dFQb3+BF/1x6wOgsNKRnnwj6J1mfu2im79LYEJbL+fQ9p1SJIW1uZ6hV7vPSAGUopyXGHNibNXorfV/dGjM77S0t86Jls50XWgJAnLn5RdhQcHahDAHHZ8to6K0HW5gvKKSalR5X/myaiV0E5ujJ+LUFWIiuDmtsmyxTX1zsohyYrVMo/4sD0DpBN+as95wO476gLb5fDTDV569QwExlDOt60W8qSzPw6ncYsOKJIiRE3EddspUm3/NrfDiKApUh8UbzVtwu1XlVAxWNgYN3PkqhWKuE4kvORQuoSJzOgSHkiqdXsQOED2HXfOKdfsnpZUwjepIU5A+/mu0gc3mPQPToKSss2bC1nXn//0bOZZSuQRgTS6PkKDHIQ1nClSZQZlJIsiLmaaN2k1tIHTIlDquKN6G1Ta9c3t6G5kugjqRo78ebbt7l3e0Z3BcdOkuO2WbvBjIg5Uiqyf+cYDZedJ+OEOqL/U6VVlsmbw0rd5deHrbnPn9cRzmWGjrXnxIlAszl+0Uqabj/BrkWcbBCwZJEPaV1hHpC4nJX1m5xvKZHB2Bw0AYWaQ3f3tRBbCA/xqwCS0Px1QohzV0nvtiMbjB38ziT1M5DgLtAVLcHPio7THZMxXAi4IjEIMac9ODbh5OxthA="}],"legacy":false}

create_boss_mounted.jpg

设置来自 skindex 的自定义伪装。请查看此页面 了解如何正确地格式化这些数据。


customModel

如果你拥有自定义模型以及 FreeMinecraftModels 或 ModelEngine 插件,则设置要使用的自定义模型。关于制作和使用自定义模型的更多信息请看这里。

取值默认值
customModel字符串
示例
customModel: your_model

customModelMountPointID

设置当该 Boss 骑乘其他实体或被其他实体骑乘时,自定义模型所使用的挂载点 ID。

取值默认值
customModelMountPointID字符串
示例
customModelMountPointID: your_mount_point_id


frozen

设置该 Boss 是否可以移动。被冻结的 Boss 仍然可以攻击。
注意:这在某些实体上可能无效。

取值默认值
frozentrue / falsefalse
示例
frozen: true

ai

设置该 Boss 是否启用 AI。设置为 false 时,Boss 不会自行移动或攻击。这对完全通过 Elite Script 控制的 Boss 很有用。

取值默认值
aitrue / falsetrue
示例
ai: false

alwaysShowName

设置该 Boss 是否始终在头顶显示名称标签。默认情况下,Boss 名称标签只在战斗中显示。该设置会为这个特定 Boss 覆盖该行为,使名称标签始终可见。

取值默认值
alwaysShowNametrue / falsefalse
示例
alwaysShowName: true

reinforcement

设置该 Boss 是否为增援怪。增援 Boss 在服务器启动时不会被初始化为区域 Boss,它们只应由其他 Boss 作为增援召唤出来。

取值默认值
reinforcementtrue / falsefalse
示例
reinforcement: true

song

设置该 Boss 从生成时开始播放的音乐。要求音乐的 .ogg 文件位于资源包中。

取值默认值
song字符串

注意:song 设置需要同时设置 followDistance,因为 followDistance 决定了音乐开始播放的范围。 请查看示例,了解如何设置 songlength(毫秒)。

示例

设置音乐有两种方式。这是第一种:

song: name=elitemobs:ice_queen.idle length=76370

这会播放 ice_queen.idle 这首音乐 76370 毫秒,然后循环播放。注意音乐所在的位置由资源包决定。

这是设置音乐的第二种方式:

song: name=elitemobs:ice_queen.end_transition length=14328->name=elitemobs:ice_queen.end_loop length=28657

这会先播放 ice_queen.end_transition 14328 毫秒,然后过渡到 ice_queen.end_loop 播放 28657 毫秒,并循环播放 end_loop。

这样 Boss 就可以拥有一段“前奏”或“过渡”音乐,随后进入循环播放的主曲目。


cullReinforcements

设置 Boss 死亡时是否移除它的增援怪。

取值默认值
cullReinforcementstrue / falsetrue
示例
cullReinforcements: true

movementSpeedAttribute

设置 Boss 的移动速度。
注意:超过 0.36 可能就太快了。

取值默认值
movementSpeedAttribute双精度小数
示例
movementSpeedAttribute: 0.3

Boss 阶段

Boss 可以拥有阶段,当 Boss 生命值降到某个百分比时切换阶段。发生切换时,Boss 会开始使用另一个配置文件,这意味着 Boss 的一切都可以改变,包括实体类型这类属性。
要了解更多关于 Boss 阶段的内容,请点击 这里

说明取值默认值
phases设置该 Boss 将拥有的阶段。必填列表
phaseSpawnLocation设置阶段 Boss 的生成位置。可选字符串
示例

在这个示例中,我们会展示三个不同的配置文件。

第一个 Boss 配置文件:phase_1_boss.yml

name: "Phase 1"
entityType: ZOMBIE
phases:
- phase_2_boss.yml:0.60
- phase_3_boss.yml:0.30

第二个 Boss 配置文件:phase_2_boss.yml

name: "Phase 2"
entityType: SKELETON

第三个 Boss 配置文件:phase_3_boss.yml

name: "Phase 3"
phaseSpawnLocation: same_as_boss,10,64,100,0,0
entityType: RAVAGER

这个 Boss 会在生命值 60% 时切换到配置文件 phase_2_boss.yml,并在生命值 30% 时切换到配置文件 phase_3_boss.yml,位于与第二阶段相同的世界、坐标 x=10、y=64、z=100 处。Boss 的实体类型和名称也会随之改变。

条目的格式为 filename:healthPercentage

phaseSpawnLocation 是可选的,如果不设置,Boss 会在它当前所站的位置切换阶段。

设计阶段 Boss 时,以下几点很重要:

  • 第一阶段的配置文件决定了该 Boss 的所有阶段。
  • 玩家的仇恨值 / 累计伤害会在各阶段之间保留。
  • 阶段切换基于已损失生命值的百分比,该百分比在切换阶段时会被保留。这意味着在各阶段之间调高或调低 healthMultiplier 并不会治疗或伤害该 Boss,它仍会在相同的百分比处切换,只是在那个阶段拥有更多或更少的生命值。
  • 阶段 Boss 一旦脱离战斗就会回到第一阶段。
  • 同时也是区域 Boss 的阶段 Boss,在所有阶段共享同一个牵引半径和超时机制,并会在计时结束后以第一阶段 Boss 的形态重生。
  • 最后一个阶段的配置文件决定了该 Boss 的战利品。
  • 阶段无法被跳过——过量伤害仍然会让 Boss 在设定的百分比处切换阶段。
  • 拥有坐骑的阶段 Boss 在切换阶段时会不再骑乘。

区域 Boss

区域 Boss 是一种特殊类型的自定义 Boss,它们会在配置好的特定位置生成,并且能在一段延迟后于该位置重生。此外,它们还可以拥有牵引绳来确保其停留在特定区域内,以及其他一些功能。

所有地下城内容都使用这类 Boss。要了解更多关于区域 Boss 的内容,请点击 这里

说明取值默认值
isRegionalBoss设置该 Boss 是否为区域 Boss。如果你想要一个区域 Boss,应设为 true。true / falsefalse
spawnLocations设置该 Boss 的生成位置。请通过 /em place boss [filename.yml] 命令添加!
spawnCooldown设置该 Boss 的重生冷却时间,单位为分钟整数0
leashRadius设置 Boss 在被拉回之前可以离开生成点的距离。以生成点为中心测量。双精度小数
onSpawnBlockStates设置该 Boss 生成时会修改的方块。参见下面的命令
onRemoveBlockStates设置该 Boss 消失时会修改的方块。参见下面的命令

如上所示,区域 Boss 可以拥有 onSpawnBlockStatesonRemoveBlockStates

这是一个非常实用的功能,可以在战斗过程中改变战斗场地,尤其是与阶段切换结合使用时,因为这样就可以通过改变方块状态来开启和关闭战斗场地。

这些配置的格式过于复杂,无法手动书写,因此提供了几条命令来帮助你设置:

命令说明
/em transitiveBlocks register [regional_boss_file.yml] [on_spawn/on_remove]开始为生成时或移除时的方块状态登记手动选取的方块。
/em transitiveBlocks edit [regional_boss_file.yml] [on_spawn/on_remove]编辑生成时或移除时的方块状态。
/em transitiveBlocks registerArea [regional_boss_file.yml] [on_spawn/on_remove]允许管理员选取大片方块区域并保存为状态。
/em transitiveBlocks editArea [regional_boss_file.yml] [on_spawn/on_remove]允许管理员编辑大片方块区域并保存为状态。
使用示例:

假设你想做一场战斗:Boss 在一个有着敞开大门的场地中生成,你希望战斗开始时门关闭,战斗结束后门重新打开。

要做到这一点,你需要两个 Boss 阶段,并登记三组不同的方块状态。在这个示例中,我把这两个阶段分别命名为 phase_1_boss.yml 和 phase_2_boss.yml。

  1. 使用 /em transitiveBlocks register phase_1_boss.yml on_spawn/em transitiveBlocks edit phase_1_boss.yml on_spawn 来登记处于打开状态的门方块。

这意味着登记的是空气方块。这里推荐使用区域选取。

这样才能确保 Boss 生成时门是打开的,从而保证玩家有路可进。

  1. 使用 /em transitiveBlocks register phase_2_boss.yml on_spawn/em transitiveBlocks edit phase_2_boss.yml on_spawn 来登记处于关闭状态的门方块。

这意味着登记的是那些会阻止玩家离开的实心门方块。

这样才能在 Boss 进入第二阶段时把门变为实心,阻止玩家离开。

  1. 使用 /em transitiveBlocks register phase_2_boss.yml on_remove/em transitiveBlocks edit phase_2_boss.yml on_remove 来登记处于打开状态的门方块。

这意味着再次登记第一步中的那些方块(也就是空气方块)。

这样才能在 Boss 死亡时打开门,让玩家可以离开场地。


alert

设置该 Boss 是否处于警戒状态。默认情况下,区域 Boss 在脱离战斗时会被减速,并且仇恨距离更短。该设置可以让区域 Boss 在战斗之外也不被减速、不缩短仇恨距离,因此无论在战斗中还是战斗外,它们的行为都保持一致。

取值默认值
alert布尔值false
示例
alert: true

removeAfterDeath

设置该区域 Boss 在被击杀后是否被永久删除。BetterStructures 的神龛就使用了这一设置,在那里区域 Boss 被设计为只在该位置被挑战一次,之后不会再出现。

取值默认值
removeAfterDeath布尔值false
示例
removeAfterDeath: true

副本 Boss

副本 Boss 是区域 Boss 的一个子类型,用于副本地下城中。

说明取值默认值
instanced让该自定义 Boss 成为副本 Boss。必填。true / falsefalse

要让副本地下城正常运作,必须把 Boss 设置为副本 Boss。我们还建议移除所有副本 Boss 的牵引绳。

示例
instanced: true