跳到主要内容

创建Boss

webapp_banner.jpg

创建自定义boss

开始之前

boss文件放在哪里?

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

可以创建子文件夹,例如 ~/plugins/EliteMobs/custombosses/mybosses。建议这样做以保持组织性。

一个文件定义一个boss,尽管可以多次生成同一个boss,甚至可以为同一个boss文件设置多个生成位置。

可以使用 webapp 快速轻松地创建自定义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.yml
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
Magma Cubes和Slimes

由于这些实体类型不会直接攻击玩家,而是通过接触造成伤害,这可能会在短时间内造成大量伤害爆发。因此,我们通常不建议经常使用它们作为Elite怪物。但是,如果您仍想使用它们,我们建议将 damageMultiplier 设置为约 0.1

我们还建议使用以下EliteScript来防止Magma Cubes或Slimes使玩家陷入击晕锁定:

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的名称。

默认值
nameString,接受颜色代码和下面列出的占位符"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生命条和其他功能。

默认值
bossTypeNORMALMINIBOSSBOSSEVENTNORMAL

MINIBOSSBOSSEVENT 将使插件在玩家与这些boss类型战斗时显示生命条。

示例
bossType: MINIBOSS

silent

设置boss声音是否应该静音。

默认值
silent布尔值false

当设置为 true 时,此选项会静音所有默认Minecraft怪物声音,导致boss完全不产生声音。

示例
silent: true

bossType

设置boss的类型。这用于显示boss生命条和其他功能。

默认值
bossTypeNORMALMINIBOSSBOSSEVENTNORMAL

MINIBOSSBOSSEVENT 将使插件在玩家与这些boss类型战斗时显示生命条。

示例
bossType: MINIBOSS

healthMultiplier

设置boss的生命值。此设置的值还决定了战斗期间显示的生命条类型。较高的值将显示小boss或完整boss生命条。

默认值
healthMultiplier倍数1.0
示例
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盔甲纯粹是装饰性的,不影响游戏玩法。

默认值
helmetMaterialUUIDnone
chestplateMaterialnone
leggingsMaterialnone
bootsMaterialnone
mainHandMaterialnone
offHandMaterialnone

注意: 此字段还允许您为物品设置自定义模型。要设置自定义模型ID,请在材料类型后按以下格式添加ID: ITEM_MATERIAL:ID。示例: DIAMOND_SWORD:1 将boss设置为穿戴带有纹理包中自定义模型#1的钻石剑。

注意2: 此字段还允许您使用格式 ITEM_MATERIAL: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参考下面的列表none
示例
powers:
- hyper_loot.yml
- attack_arrow.yml

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


中级配置 - 生成增援

增援也进入powers类别,使用以下设置:

增援设置
描述默认值
summonType触发增援生成的条件。必填。参考下面的列表none
filename作为增援生成的boss的文件名。必填。Stringnone
chance增援生成的几率。可选。Double1.0
amount设置要生成的增援数量。可选。Integer1
inheritAggro使增援继承boss的仇恨。可选。true / falsefalse
spawnNearby使增援在boss周围30格半径内生成。可选。true / falsefalse
inheritLevel使增援继承boss的等级。可选true / falsefalse
customSpawn使增援使用自定义生成系统生成。仅用于 summonType: GLOBAL
location生成位置。可选。world_name,x,y,zx,y,z 表示相对于boss的位置。对于区域boss,偏移量相对于生成位置。您还可以使用 same_as_boss 使增援在与boss相同的世界中生成。none
lightningRodsummonType: ON_COMBAT_ENTER_PLACE_CRYSTAL 的特殊设置。使末影水晶在其周围生成闪电。可选。true / falsenone

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

召唤类型
描述
ONCE仅在boss第一次受到伤害时生成一次增援。
ON_HIT被击中时生成增援。
ON_COMBAT_ENTER当boss进入战斗时生成增援。
GLOBAL为每个在线玩家生成一个增援。需要 customSpawn 键设置有效的自定义生成
ON_COMBAT_ENTER_PLACE_CRYSTAL在进入战斗时放置末影水晶增援,仅用于自定义龙战。

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

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

专家配置 - 创建您自己的能力

可以创建您自己的能力,可以在boss文件本身上创建,也可以在powers文件夹中作为新配置文件创建。您可以在这里了解更多信息。

根据实例地牢难度限制能力

实例地牢可以有难度设置,可以使特定能力仅针对特定难度启用。

限制能力选项
描述默认值
filename能力的文件名。Stringnone
difficultyID难度名称,与地牢包中的难度名称匹配。Stringnone

这仅适用于实例地牢。

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

spawnMessage

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

默认值
spawnMessageStrings颜色代码none
示例
announcementPriority: 3
spawnMessage: I rise once more!

create_boss_spawn_message.jpg


deathMessages

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

默认值
deathMessagesStrings颜色代码和下面的占位符none
示例
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显示所有伤害者的列表

onKillMessage

设置boss杀死玩家时发送的消息。需要设置announcementPriority

默认值
onKillMessageStrings颜色代码none
示例
announcementPriority: 3
onKillMessage: I win, you lose!

create_boss_spawn_message.jpg


slimeSize

设置史莱姆boss的大小,但仅适用于Slimes和Magmacubes。

默认值
slimeSizeInteger4
示例
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可以对其强大或脆弱的武器。

默认值
damageModifiersMaterialnone
示例
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

escapeMessage

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

默认值
escapeMessageStringnone
示例
announcementPriority: 3
timeout: 60
escapeMessage: "Sayonara!"

create_boss_escape_message.jpg


locationMessage

设置在boss栏中显示的消息。这用于跟踪自定义Boss的生命值及其在服务器中的位置。需要配置annoucementPriority

默认值
locationMessageString颜色代码和下面列出的占位符none

占位符:

描述
$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掉落的自定义物品

默认值
uniqueLootListListnone

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

示例
uniqueLootList:
- filename: magmaguys_toothpick.yml
chance: 0.02
- minecraft:type=DIAMOND:amount=1:chance=0.9
- SCRAP:level=5-10:amount=10-20:ignorePlayerLevel=false:chance=0.5
- UPGRADE_ITEM:level=5-10:amount=1-2:ignorePlayerLevel=false:chance=0.1
- 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

trails

设置boss移动时留下的轨迹。

默认值
trails粒子物品材料none
示例
trails:
- CLOUD

onDamageMessages

设置Boss怪物在击中玩家时显示的消息。这是一个列表,使用的是从列表中随机选择的。

默认值
onDamageMessagesListnone
示例
onDamageMessages:
- "I hit you!"
- "Haha I hit you!"

create_boss_damage_message.jpg


onDamagedMessages

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

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

create_boss_damaged_message.jpg


mountedEntity

设置boss将骑乘的实体。

默认值
onDamagedMessages要骑乘的boss的文件名实体类型none

不要试图让boss骑乘自己。

示例
mountedEntity: wild_wolf.yml

create_boss_mounted.jpg

注意: 区域boss将与它们骑乘的实体共享它们的拴绳,这意味着如果它们超过拴绳允许的距离,它们都会被拖回生成位置。


announcementPriority

设置公告的优先级。较低的优先级意味着不进行公告,较高的优先级不仅可以在聊天中公告,如果配置了,还可以在discord上公告。

默认值
announcementPriorityInteger1

以下是优先级的功能列表:

描述
0boss将完全沉默,没有公告消息。
1这是默认值。Boss可以发送聊天消息、生成消息、死亡和逃脱消息。
2除了 1 中的功能外,boss将被设置为可通过 /em 菜单被玩家跟踪。
3除了 2 中的功能外,如果配置了,广播消息将在Discord上镜像。Discord配置信息在这里。

以下是一个可跟踪的boss的示例,能够在聊天和Discord上发送生成/死亡/逃脱消息:

示例
announcementPriority: 3

注意: 如果您希望使用相应的公告优先级,您必须配置spawnMessage、deathMessage/deathMessages、escapeMessage用于聊天和discord公告,以及locationMessage用于跟踪功能。


followDistance

设置boss仇恨和进入战斗的距离。从怪物本身测量。

默认值
followDistanceDoublenone,使用Minecraft的默认值

注意1: 区域boss在脱战时的 followDistance 为一半。这样它们就不会从太远的地方仇恨,这可能会由于拴绳约束而导致烦人的战斗问题。

注意2: followDistance 越高,boss对服务器CPU的占用就越大。谨慎负责地使用!

示例
followDistance: 30

设置30格的范围,如果玩家进入该距离附近的boss,它将开始追逐/攻击玩家。


onDeathCommands

设置在自定义boss死亡时运行的命令列表。

默认值
onDeathCommandsListnone

该列表支持以下占位符:

描述
$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生成时将运行的命令列表。

默认值
onSpawnCommandsListnone

这使用与onDeathCommands相同的占位符! 伤害者占位符此时不适用,因为此时不会有任何伤害者。

示例
onSpawnCommands:
- say Boss has spawned!

create_boss_mounted.jpg


onCombatEnterCommands

设置boss进入战斗时将运行的命令列表。

默认值
onCombatEnterCommandsListnone

这使用与onDeathCommands相同的占位符! 伤害者占位符此时不适用,因为此时不会有任何伤害者。

示例
onCombatEnterCommands:
- say Boss has entered combat!

create_boss_mounted.jpg


onCombatLeaveCommands

设置boss脱离战斗时运行的命令列表。

默认值
onCombatLeaveCommandsListnone

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

示例
onCombatLeaveCommands:
- say Boss has left combat!

create_boss_mounted.jpg


disguise

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

默认值
disguiseStringnone
customDisguiseDataStringnone
伪装示例
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插件,则设置要使用的自定义模型。有关制作和使用自定义模型的更多信息在这里。

默认值
customModelStringnone
示例
customModel: your_model

frozen

设置boss是否可以移动。冻结的boss仍然可以攻击。
注意: 这可能不适用于某些实体。

默认值
frozentrue / falsefalse
示例
frozen: true

song

设置boss将播放的音乐,从它生成时开始。需要资源包中歌曲的.ogg文件。

默认值
songStringnone

注意: 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死亡时是否移除boss的增援。

默认值
cullReinforcementstrue / falsetrue
示例
cullReinforcements: true

movementSpeedAttribute

设置boss的移动速度。
注意: 超过0.36的任何值可能太快。

默认值
movementSpeedAttributeDoublenone
示例
movementSpeedAttribute: 0.3

Boss阶段

Boss可以有阶段,当boss达到一定百分比的生命值时会发生变化。当这种情况发生时,boss开始使用不同的配置文件,这意味着关于boss的一切都可以改变,包括实体类型等。
要了解有关boss阶段的更多信息,请单击这里

描述默认值
phases设置boss将拥有的阶段。必填Listnone
phaseSpawnLocation设置阶段boss生成的位置。可选Stringnone
示例

对于此示例,我们将展示三个不同的配置文件。

第一个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,在与阶段2相同的世界中,坐标为x=10、y=64和z=100。boss的实体类型和名称也会改变。

条目的格式是 filename:healthPercentage

phaseSpawnLocation是可选的,如果未设置,boss将在其站立的位置更改阶段。

在设计阶段boss时,以下事项很重要:

  • 第一阶段的配置文件设置boss的所有阶段。
  • 玩家的威胁/伤害计数在阶段之间保留。
  • 切换阶段基于损失的生命值百分比,该百分比在切换到不同阶段时保留。这意味着在阶段之间增加或减少healthMultiplier不会治愈或伤害boss,它仍然会以相同的百分比切换,但该阶段的生命值会更多或更少。
  • 阶段boss在脱离战斗时会恢复到阶段1。
  • 同时也是区域boss的阶段boss在所有阶段共享相同的拴绳半径和超时机制,并在计时器完成时作为阶段1 boss重生。
  • 最后阶段的配置文件设置boss的战利品。
  • 阶段不能被跳过 - 过度杀伤伤害仍会使boss在定义的百分比处切换阶段。
  • 具有骑乘的阶段boss在切换阶段时停止骑乘。

区域boss

区域boss是一种特定类型的自定义Boss,它们在特定的配置位置生成,并能够在延迟后在该位置重生。此外,它们可以有拴绳以确保它们留在特定区域,以及其他功能。

这些用于所有地牢内容。要了解有关区域boss的更多信息,请单击这里

描述默认值
isRegionalBoss设置boss是否为区域boss。如果您想要区域boss,应该为true。true / falsefalse
spawnLocation设置boss的生成位置。通过 /em addSpawnLocation [filename.yml] 命令添加这些!none
spawnCooldown设置boss的重生冷却时间,以分钟为单位。Integer0
leashRadius设置boss在被拉回之前可以离开其生成点的距离。从生成点测量。Doublenone
onSpawnBlockStates设置boss生成时将修改的方块。查看下面的命令none
onRemoveBlockStates设置boss消失时将修改的方块。查看下面的命令none

如所指示的,区域Boss可以有 onSpawnBlockStatesonRemoveBlockStates

这是在战斗中修改战斗竞技场的非常有用的功能,特别是当与阶段切换结合使用时,因为通过更改方块状态来打开和关闭战斗竞技场成为可能。

这些的格式太复杂,无法手动编写,因此存在一些命令来帮助您设置它们:

命令描述
/em registerblocks [regional_boss_file.yml] [on_spawn/on_remove]开始为生成或移除方块状态注册手动方块选择。
/em registerblocksedit [regional_boss_file.yml] [on_spawn/on_remove]编辑生成或移除方块状态。
/em registerblocksarea [regional_boss_file.yml] [on_spawn/on_remove]允许管理员选择大区域的方块以保存为状态。
/em registerblocksareaedit [regional_boss_file.yml] [on_spawn/on_remove]允许管理员编辑大区域的方块以保存为状态。
使用示例:

假设您想要进行一场战斗,其中boss在一个有开放门的竞技场中生成,并且您希望在战斗开始时关闭门并在战斗结束时重新打开门。

要做到这一点,您需要两个boss阶段并注册三组不同的方块状态。对于此示例,我将这些阶段命名为phase_1_boss.yml和phase_2_boss.yml。

  1. 使用 /em registerblocks phase_1_boss.yml on_spawn/em registerblocksedit phase_1_boss.yml on_spawn 在它们的打开状态下注册门方块。

这意味着注册空气方块。建议在这里使用区域选择。

这是必要的,以确保boss生成时门是开的,因此玩家保证有进入的方式。

  1. 使用 /em registerblocks phase_2_boss.yml on_spawn/em registerblocksedit phase_2_boss.yml on_spawn 在它们的关闭状态下注册门方块。

这意味着注册将阻止玩家离开的门的固体方块。

这是必要的,以在boss进入阶段2时将门更改为固体,防止玩家离开。

  1. 使用 /em registerblocks phase_2_boss.yml on_remove/em registerblocksedit phase_2_boss.yml on_remove 在它们的打开状态下注册门方块。

这意味着再次注册第一步中的相同方块(空气方块)。

这是必要的,以在boss死亡时打开门,允许玩家离开竞技场。


alert

设置boss是否处于警戒状态。默认情况下,区域Boss在脱离战斗时会变慢并具有较短的仇恨距离。此设置可防止区域Boss在脱离战斗时变慢并具有较短的仇恨距离,因此它们在战斗内外的行为方式始终相同。

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

removeAfterDeath

设置区域Boss被杀死后是否将被永久删除。这是BetterStructures用于Shrines的,其中区域Boss只设计为在该位置被战斗一次,然后再也不会出现。

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

实例boss

实例boss是实例地牢中使用的区域Boss的子类型。

描述默认值
instanced使自定义boss实例化。必填。true / falsefalse

将boss设置为实例化对于实例地牢正常工作是必需的。我们还建议移除任何实例boss的拴绳。

示例
instanced: true