跳至主要內容

建立 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 是否啟用。

KeyValuesDefault
isEnabledtrue / falsetrue
範例
isEnabled: true

entityType

設定 Boss 的實體類型。

KeyValuesDefault
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 的名稱。

KeyValuesDefault
name字串,接受 color codes 以及下方列出的預留位置"Default Name"
範例
name: "$normalLevel &cCool boss!"

create_boss_name_pic_no_level.jpg

如果你希望在名稱欄位中包含 Boss 的等級,只要使用下列其中一個預留位置即可。

PlaceholderDescriptionExampleOutput (for a level 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 的等級。

KeyValuesDefault
level整數dynamicdynamic

dynamic 用於事件,會在 Boss 生成當下依附近玩家的等級進行調整。 不建議用於區域 Boss。

範例
level: 1

scale

設定 Boss 的縮放比例(體型大小)。

KeyValuesDefault
scale倍率1.0

縮放時,1.0 代表預設大小。若要讓實體變大,請提高數值(例如 1.2)。若要讓實體變小,請降低數值(例如 0.8)。

範例
scale: 1.2

bossType

設定 Boss 的類型。這用於顯示 Boss 血條以及其他功能。

KeyValuesDefault
bossTypeNORMALMINIBOSSBOSSREINFORCEMENTEVENTNORMAL

MINIBOSSBOSSEVENT 會讓插件在玩家與這些 Boss 類型戰鬥時顯示血條。

註: REINFORCEMENT 通常會自動指派給被召喚出來的增援怪物,但必要時也可以手動設定。

範例
bossType: MINIBOSS

silent

設定是否要靜音 Boss 的音效。

KeyValuesDefault
silent布林值false

設為 true 時,此選項會靜音所有預設的 Minecraft 怪物音效,使 Boss 完全不發出任何聲音。

範例
silent: true

healthMultiplier

設定 Boss 的血量。此設定的數值也決定了戰鬥期間顯示的血條類型。數值越高,會顯示迷你 Boss 或完整 Boss 的血條。

KeyValuesDefault
healthMultiplier倍率1.0
Boss health is hard-capped, boss damage is not

最終血量為 baseHealth × healthMultiplier,而該乘積會被限制在伺服器 spigot.yml 中的 settings.attribute.maxHealth.max。若該值較低,EliteMobs 會在啟動時把它提高到 2048,但絕不會超過,因此在預設伺服器上 2048 就是實際上限。

基礎血量遵循 2.1875 × 2^(level / 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 的傷害倍率。

KeyValuesDefault
damageMultiplier倍率1.0
範例
damageMultiplier: 1.5

isBaby

設定 Boss 是否使用該怪物的幼體變體。只能套用在具有幼體變體的怪物上。 如果你想偽裝 Boss,但也希望它在偽裝狀態下仍維持幼體(請確認偽裝實體同樣支援幼體變體),你可以使用這個設定:

disguise: HOGLIN:baby
KeyValuesDefault
isBabytrue / falsefalse
範例
isBaby: true

helmet/chestplate/leggings/boots/mainhand/offhand

設定 Boss 的裝備。並非所有 Minecraft 模型都能顯示裝備。Boss 裝備純屬外觀,不會影響遊戲性。

KeyValuesDefault
helmet材質UUID
chestplate材質
leggings材質
boots材質
mainHand材質
offHand材質

註: 此欄位也可讓你為物品設定自訂模型。若要設定自訂模型 ID,請依照 ITEM_MATERIAL:ID 的格式,在材質類型後方加上該 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 擁有的能力。

KeyValuesDefault
powers參考下方清單
範例
powers:
- hyper_loot.lua
- attack_arrow.lua
- mycoolpower.lua

註:如果你想查看可用的預製能力清單,可以參考這個頁面

註:能力可以是 .yml 檔案(EliteScript)或 .lua 檔案(Lua 腳本)。兩種類型都受支援,並可在 powers 清單中自由混用。目前幾乎所有預製能力都已是 .lua

Old .yml power names still work

若存在同名的 .lua 能力,EliteMobs 會自動將 .yml 的請求解析到它。在 Lua 遷移之前寫成的 Boss 設定無需修改即可繼續運作——attack_arrow.yml 會透明地載入 attack_arrow.lua。新的設定應直接指名 .lua 檔案。


中階設定 - 生成增援

增援同樣屬於 powers 類別,使用以下設定:

註: 增援是在你的 Boss 設定檔的 powers 區段中設定,而不是獨立的區段。

增援設定
KeyDescriptionValuesDefault
summonType觸發增援生成的條件。必填。參考下方清單
filename要作為增援生成的 Boss 檔名。必填。字串
chance增援生成的機率。選填。雙精度數1.0
amount設定要生成的增援數量。選填。整數1
inheritAggro讓增援繼承 Boss 的仇恨。選填。true / falsefalse
spawnNearby讓增援在距離 Boss 30 格的半徑內生成。選填。true / falsefalse
inheritLevel讓增援繼承 Boss 的等級。選填true / falsefalse
customSpawn讓增援使用自訂生成系統生成。僅用於 summonType: GLOBAL自訂生成點檔名
location生成位置。選填。world_name,x,y,z,或使用 x,y,z 表示相對於 Boss 的位置。對區域 Boss 而言,偏移量是相對於其生成位置。你也可以使用 same_as_boss 讓增援生成在與 Boss 相同的世界中。
lightningRod專為 summonType: ON_COMBAT_ENTER_PLACE_CRYSTAL 設計的特殊設定。讓終界水晶在其周圍產生閃電。選填。true / false

召喚類型設定了增援生成的條件。以下是有效召喚類型的清單:

召喚類型
ValueDescription
ONCE只在 Boss 第一次受到傷害時生成增援一次。
ON_HIT在受到攻擊時生成增援。
ON_COMBAT_ENTER在 Boss 進入戰鬥時生成增援。
ON_DEATH在 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
location: same_as_boss,10,20,30
lightningRod: false

專家設定 - 建立你自己的能力

你可以建立自己的能力,無論是直接寫在 Boss 檔案裡,或是在 powers 資料夾中新增一個設定檔。你可以在這裡進一步了解。

註: 你也可以使用 eliteScript 欄位直接在 Boss 設定檔中定義 Boss 行為。關於使用 Elite Scripts 的完整說明文件,請參閱能力指南

除了 EliteScript 之外,你也可以使用 Lua 腳本撰寫能力。Lua 能力放在 powers 資料夾中,副檔名為 .lua,並在 powers 清單中以檔名引用。更多資訊請參閱 Lua 入門指南。

依實例副本難度限制能力

實例副本可以有難度設定,而你可以讓某個特定能力只在特定難度下啟用。

能力限制選項
KeyDescriptionValuesDefault
filename能力的檔名。字串
difficultyID難度名稱,需與副本包中該難度的名稱一致。字串

這只會套用在實例副本上。

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

spawnMessage

設定 Boss 生成時要送出的訊息。需要先設定 announcementPriority

KeyValuesDefault
spawnMessageStringscolor codes
範例
announcementPriority: 3
spawnMessage: I rise once more!

create_boss_spawn_message.jpg


deathMessages

設定 Boss 死亡時要送出的訊息清單。需要先設定 announcementPriority

KeyValuesDefault
deathMessagesStringscolor codes 以及下方的預留位置
範例
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

死亡訊息使用以下預留位置:

預留位置
ValueDescription
$damager1name傷害排名第一者的名稱
$damager2name傷害排名第二者的名稱
$damager3name傷害排名第三者的名稱
$damager1damage傷害排名第一者的傷害量
$damager2damage傷害排名第二者的傷害量
$damager3damage傷害排名第三者的傷害量
$players顯示所有造成傷害者的清單

deathMessage

設定 Boss 死亡時要送出的單一則訊息。當你只需要一則死亡訊息而非一份清單時,這是 deathMessages 的替代方案。需要先設定 announcementPriority

KeyValuesDefault
deathMessage字串color codes,以及與 deathMessages 相同的預留位置
範例
announcementPriority: 3
deathMessage: '&4The Test Boss has been killed by $players!'

onKillMessage

設定 Boss 擊殺玩家時要送出的訊息。需要先設定 announcementPriority

KeyValuesDefault
onKillMessageStringscolor codes

預留位置:

ValueDescription
$player被擊殺玩家的顯示名稱
$playerName被擊殺玩家的使用者名稱
範例
announcementPriority: 3
onKillMessage: I win, you lose!

create_boss_spawn_message.jpg


slimeSize

設定史萊姆 Boss 的大小,但只對史萊姆與岩漿怪有效。

KeyValuesDefault
slimeSize整數4
範例
slimeSize: 5

neutral

設定 Boss 是否以中立狀態生成。這只適用於可以呈中立狀態的實體類型,例如狼或鐵傀儡。

KeyValuesDefault
neutral布林值false
範例
neutral: true

進階設定

timeout

設定自訂 Boss 消失前的時間,以分鐘為單位。

KeyValuesDefault
timeout時間(分鐘)整數0
範例
timeout: 20

設定 Boss 在 20 分鐘後逃脫。


isPersistent

設定 Boss 是否能在區塊卸載後存活。由於持續載入區塊以及跨伺服器重啟追蹤實體可能造成效能影響,只建議用於事件 Boss。

KeyValuesDefault
isPersistenttrue / falsefalse
範例

範例:

isPersistent: true

damageModifiers

設定 Boss 對哪些武器特別強韌或特別脆弱。

KeyValuesDefault
damageModifiers材質
範例
damageModifiers:
- material:DIAMOND_SWORD,multiplier:0.8
- material:TRIDENT,multiplier:2.0

在這個範例中,Boss 只會受到鑽石劍 80% 的傷害(即少 20%),但會受到三叉戟 200% 的傷害(即 2 倍)。


normalizedCombat

修改 Boss 的傷害與最大血量,使其符合 ~/plugins/EliteMobs/mobproperties 中正規化實體的數值。這是區域 Boss 的預設值,用以確保平順的難度曲線。

KeyValuesDefault
normalizedCombattrue / falsefalse
範例

範例:

normalizedCombat: true

scaledCombat

設定 Boss 是否使用縮放戰鬥系統。啟用後,Boss 會模擬成與跟它戰鬥的玩家同等級——傷害、血量縮放與戰利品都會依玩家的進度等級調整,而非依 Boss 儲存的等級。這讓所有玩家無論進度如何,都能感受到同樣公平的戰鬥。

縮放戰鬥主要是為主世界事件 Boss,以及應讓任何等級玩家都能挑戰的自訂 Boss 而設計。對於有固定預期難度的副本內容,請改用 normalizedCombat

當設定 scaledCombat: true 時,即使該 Boss 原本會使用正規化戰鬥,縮放戰鬥仍會優先生效。自然生成的精英怪預設使用縮放戰鬥(由 MobCombatSettings.yml 中的 useScaledCombatForNaturalElites 設定控制)。

關於縮放戰鬥如何運作的完整細節,請參閱傷害系統頁面。

KeyValuesDefault
scaledCombattrue / falsefalse
範例
scaledCombat: true

escapeMessage

設定當 Boss 透過 timeout 機制逃脫時,廣播給玩家的訊息。需要設定 announcementPriority

KeyValuesDefault
escapeMessage字串
範例
announcementPriority: 3
timeout: 60
escapeMessage: "Sayonara!"

create_boss_escape_message.jpg


locationMessage

設定顯示在 Boss 血條上的訊息。這用來同時追蹤自訂 Boss 的血量以及它在伺服器中的位置。需要設定 announcementPriority

KeyValuesDefault
locationMessage字串Color codes 以及下方列出的預留位置

預留位置:

ValueDescription
$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 會掉落的自訂物品

KeyValuesDefault
uniqueLootListList

自訂戰利品中的戰利品項目遵循戰利品表格式。相關資訊請看這裡! 請注意,有些較舊的檔案可能仍在使用與範例不同的過時戰利品表。

範例
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 中的物品。包含金幣。

KeyValuesDefault
dropsEliteMobsLoottrue / falsetrue

建議為增援怪物設為 false。

範例
dropsEliteMobsLoot: true

dropsVanillaLoot

設定自訂 Boss 是否會掉落其原版怪物類型通常會掉落的原版戰利品。

KeyValuesDefault
dropsVanillaLoottrue / falsetrue
範例
dropsVanillaLoot: true

dropsRandomLoot

設定自訂 Boss 是否會掉落 EliteMobs 程序化生成的戰利品。不包含精英金幣。

KeyValuesDefault
dropsRandomLoottrue / falsetrue
範例
dropsRandomLoot: true

dropsSkillXP

設定 Boss 被擊殺時是否掉落技能經驗值。技能經驗值用於武器技能加成系統。

KeyValuesDefault
dropsSkillXPtrue / falsetrue

建議為增援怪物,或不應計入技能進度的 Boss 設為 false。

範例
dropsSkillXP: false

trails

設定 Boss 移動時留下的軌跡。

KeyValuesDefault
trails粒子物品材質

只有不需要額外資料的粒子才能作為 Boss 軌跡使用(也就是有效粒子清單中所有的「簡單粒子」)。像 BLOCKDUSTITEM 等粒子會被靜默略過。而材質名稱則會改為生成一道動態的物品軌跡。

範例
trails:
- CLOUD

onDamageMessages

設定 Boss 怪物擊中玩家時顯示的訊息。這是一份清單,實際使用的訊息會從清單中隨機挑選。

KeyValuesDefault
onDamageMessagesList
範例
onDamageMessages:
- "I hit you!"
- "Haha I hit you!"

create_boss_damage_message.jpg


onDamagedMessages

設定 Boss 怪物被玩家傷害時顯示的訊息。這是一份清單,實際使用的訊息會從清單中隨機挑選。

KeyValuesDefault
onDamagedMessagesList
範例
onDamagedMessages:
- "You hit me!"
- "I've been hit!"

create_boss_damaged_message.jpg


mountedEntity

設定 Boss 將騎乘的實體。

KeyValuesDefault
mountedEntity要騎乘的 Boss 檔名實體類型

別試著讓 Boss 騎乘它自己。

範例
mountedEntity: wild_wolf.yml

create_boss_mounted.jpg

註:區域 Boss 會與它所騎乘的實體共用拴繩,也就是說,若超出拴繩允許的距離,兩者都會被拉回生成位置。


announcementPriority

設定公告的優先度等級。較低的優先度代表不會發出任何公告,較高的優先度不僅能在聊天室公告,若有設定的話還能公告到 Discord。

KeyValuesDefault
announcementPriority整數0

以下是各優先度作用的清單:

ValueDescription
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 產生仇恨並進入戰鬥的距離。從怪物本身開始測量。

KeyValuesDefault
followDistance整數0

註 1:區域 Boss 在脫離戰鬥時的 followDistance 只有一半。這是為了避免它們從太遠的地方產生仇恨,以免因拴繩限制而造成惱人的戰鬥問題。

註 2:followDistance 越高,Boss 對伺服器 CPU 的負擔就越重。請謹慎並負責任地使用!

範例
followDistance: 30

設定一個 30 格的範圍,只要玩家進入 Boss 附近的這個距離內,它就會開始追擊/攻擊該玩家。


onDeathCommands

設定自訂 Boss 死亡時要執行的指令清單。

KeyValuesDefault
onDeathCommandsList

此清單支援以下預留位置:

ValueDescription
$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 生成時要執行的指令清單。

KeyValuesDefault
onSpawnCommandsList

這與 onDeathCommands 使用相同的預留位置! 傷害者相關的預留位置不適用,因為此時還不會有任何傷害者。

範例
onSpawnCommands:
- say Boss has spawned!

create_boss_mounted.jpg


onCombatEnterCommands

設定 Boss 進入戰鬥時要執行的指令清單。

KeyValuesDefault
onCombatEnterCommandsList

這與 onDeathCommands 使用相同的預留位置! 傷害者相關的預留位置不適用,因為此時還不會有任何傷害者。

範例
onCombatEnterCommands:
- say Boss has entered combat!

create_boss_mounted.jpg


onCombatLeaveCommands

設定 Boss 脫離戰鬥時要執行的指令清單。

KeyValuesDefault
onCombatLeaveCommandsList

這與 onDeathCommands 使用相同的預留位置!

範例
onCombatLeaveCommands:
- say Boss has left combat!

create_boss_mounted.jpg


disguise

若已啟用 LibsDisguises 插件,則設定其偽裝。更多資訊請看這裡。

KeyValuesDefault
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 插件,則設定要使用的自訂模型。關於製作與使用自訂模型的更多資訊請看這裡。

KeyValuesDefault
customModel字串
範例
customModel: your_model

customModelMountPointID

設定當 Boss 騎乘其他實體或被其他實體騎乘時,自訂模型所使用的掛載點 ID。

KeyValuesDefault
customModelMountPointID字串
範例
customModelMountPointID: your_mount_point_id


frozen

設定 Boss 是否能移動。被凍結的 Boss 仍然可以攻擊。
註:這在某些實體上可能無效。

KeyValuesDefault
frozentrue / falsefalse
範例
frozen: true

ai

設定 Boss 是否啟用 AI。設為 false 時,Boss 不會自行移動或攻擊。這對於完全由 Elite Scripts 控制的 Boss 很有用。

KeyValuesDefault
aitrue / falsetrue
範例
ai: false

alwaysShowName

設定 Boss 是否總是在頭頂顯示名稱標籤。預設情況下,Boss 名稱標籤只會在戰鬥期間顯示。此設定會針對這隻特定 Boss 覆寫該行為,讓名稱標籤永遠可見。

KeyValuesDefault
alwaysShowNametrue / falsefalse
範例
alwaysShowName: true

reinforcement

設定 Boss 是否為增援。增援 Boss 在啟動時不會被初始化為區域 Boss,只用於被其他 Boss 當作增援生成。

KeyValuesDefault
reinforcementtrue / falsefalse
範例
reinforcement: true

song

設定 Boss 會播放的音樂,從它生成時開始。需要該歌曲的 .ogg 檔案存在於材質包中。

KeyValuesDefault
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 死亡時是否移除它的增援。

KeyValuesDefault
cullReinforcementstrue / falsetrue
範例
cullReinforcements: true

movementSpeedAttribute

設定 Boss 的移動速度。
註:超過 0.36 的數值可能會太快。

KeyValuesDefault
movementSpeedAttribute雙精度數
範例
movementSpeedAttribute: 0.3

Boss 階段

Boss 可以擁有階段,在血量達到特定百分比時切換。發生切換時,Boss 會開始使用另一個設定檔,也就是說 Boss 的一切都可以改變,甚至包含實體類型之類的項目。
若要進一步了解 Boss 階段,請點這裡

KeyDescriptionValuesDefault
phases設定 Boss 將擁有的階段。必填List
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% 時,於與階段 2 相同的世界、座標 x=10、y=64、z=100 處切換到設定檔 phase_3_boss.yml。Boss 的實體類型與名稱也會隨之改變。

一個項目的格式為 filename:healthPercentage

phaseSpawnLocation 是選填的,若未設定,Boss 就會在它當下所站的位置切換階段。

設計階段 Boss 時,以下幾點很重要:

  • 第一階段的設定檔決定了 Boss 的所有階段。
  • 玩家的仇恨/已計算傷害會在各階段之間保留。
  • 階段切換是依據已損失血量的百分比,而該百分比在切換到不同階段時會被保留。這表示在階段之間提高或降低 healthMultiplier 並不會治療或傷害 Boss,它仍會在相同的百分比切換,只是該階段的血量會更多或更少。
  • 階段 Boss 若脫離戰鬥,會退回第一階段。
  • 同時也是區域 Boss 的階段 Boss,在所有階段共用相同的拴繩半徑與 timeout 機制,並會在計時結束後以第一階段的 Boss 重新生成。
  • 最後一個階段的設定檔決定了 Boss 的戰利品。
  • 階段無法被跳過——超額傷害仍然只會讓 Boss 在所定義的百分比切換階段。
  • 具有坐騎的階段 Boss 在切換階段時會停止騎乘。

區域 Boss

區域 Boss 是一種特殊的自訂 Boss,它們會在特定的設定位置生成,並且能在延遲之後於該位置重新生成。此外,它們還可以擁有拴繩以確保它們待在特定區域內,以及其他功能。

所有的副本內容都使用這種 Boss。若要進一步了解區域 Boss,請點這裡

KeyDescriptionValuesDefault
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

這是一個在戰鬥期間修改戰鬥競技場非常實用的功能,尤其是與階段切換結合時,因為這樣就能透過改變方塊狀態來開啟與關閉戰鬥競技場。

這些設定的格式太過複雜,無法手動撰寫,因此有幾個指令可以協助你設定它們:

CommandDescription
/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 在戰鬥之外被減速與縮短仇恨距離,因此它們無論在戰鬥中或戰鬥外都會有相同的行為。

KeyValuesDefault
alert布林值false
範例
alert: true

removeAfterDeath

設定區域 Boss 在被擊殺後是否永久刪除。BetterStructures 的神殿就是使用這個設定,那裡的區域 Boss 只被設計成挑戰一次,之後就不會再於該位置出現。

KeyValuesDefault
removeAfterDeath布林值false
範例
removeAfterDeath: true

實例 Boss

實例 Boss 是區域 Boss 的一種子類型,用於實例副本中。

KeyDescriptionValuesDefault
instanced讓自訂 Boss 成為實例 Boss。必填。true / falsefalse

將 Boss 設為實例 Boss 是實例副本正確運作的必要條件。我們也建議移除任何實例 Boss 的拴繩。

範例
instanced: true