跳至主要內容

建立生成點

webapp_banner.jpg

什麼是自訂生成點?

自訂生成點供事件與全域增援使用,用來設定某個事件應如何、在何處以及何時為該事件生成 Boss。

事件與全域增援透過寫下生成點的檔名來指定它們所使用的生成點。

建立自訂生成點

自訂生成點放在 customspawns 資料夾中。一個自訂生成點可同時被多個事件使用,因此你不必為每個事件各建立一個。

以下是一個自訂生成點範例:

isEnabled: true
validWorldEnvironments:
- NORMAL
- CUSTOM
bypassWorldGuard: false
isSurfaceSpawn: true

建立「任意位置」生成點

若要製作一個可在任何地方發生的生成點,你的設定應類似於以下內容:

isEnabled: true
canSpawnInLight: true

此設定允許怪物在任何世界、任何時間、任何月相下的任何位置生成。

如果你有興趣建立更客製化的生成點,請繼續閱讀下方內容。

數值


isEnabled

設定生成點是否啟用。

KeyValuesDefault
isEnabled布林值true
範例
isEnabled: true

lowestYLevel

設定所使用的最低 Y 軸高度(地圖高度)。請注意,預設值 0 會讓地下生成永遠不會低於海平面——若你想要在深層洞窟中生成,請把它設為負值,例如 -64

KeyValuesDefault
lowestYLevel整數0
範例
lowestYLevel: 0

highestYLevel

設定所使用的最高 Y 軸高度(地圖高度)。

KeyValuesDefault
highestYLevel整數320
範例
highestYLevel: 320

validWorlds

設定自訂生成點可發生的世界列表。此設定可以省略,以允許你所有的世界都有效。

KeyValuesDefault
validWorlds字串列表
範例
validWorlds:
- WORLD
- FUN_LAND

如果你想讓所有世界都有效,你可以直接不使用此設定,或將它寫成這樣:

validWorlds: []

validWorldEnvironments

設定自訂生成點可發生的有效世界環境列表。此設定可以省略,以允許所有環境都有效。

KeyValuesDefault
validWorldEnvironments環境列表
範例
validWorldEnvironments:
- NORMAL
- NETHER

如果你想讓所有環境都有效,你可以直接不使用此設定,或將它寫成這樣:

validWorldEnvironments: []

validBiomesV2

原意是設定自訂生成點可發生的有效生態域列表。 此設定在較舊版本的 EM 中曾被稱為 validBiomes

此設定目前沒有任何作用。 EliteMobs 會把該鍵寫進你的生成點檔案,但從不會讀回它,因此你放進去的內容都會被忽略,該生成點的行為就如同沒有設定任何生態域限制一樣。

請不要依賴它把 Boss 限制在特定生態域內。請改用 validWorldsvalidWorldEnvironments,或以 isSurfaceSpawn / isUndergroundSpawn 與 Y 軸高度設定來限制生成。

KeyValuesDefault
validBiomesV2生態域列表

earliestTime

設定自訂生成點可發生的最早遊戲內時間。與其他設定不同,earliestTimelatestTimemoonPhase 是在 Boss 即將被放置的當下才檢查,而非在搜尋位置的過程中檢查,因此已經找到位置的生成點只會等到時間與月相條件被滿足為止。

KeyValuesDefault
earliestTime長整數0
範例
earliestTime: 0

latestTime

設定自訂生成點可發生的最晚遊戲內時間。

KeyValuesDefault
latestTime長整數24000
範例
latestTime: 24000

moonPhase

設定自訂生成點發生所需的月相。

KeyValuesDefault
moonPhase特殊 [1]
範例
moonPhase: FULL_MOON

特殊 [1]

展開表格
月相預覽
NEW_MOON🌑
WAXING_CRESCENT🌒
FIRST_QUARTER🌓
WAXING_GIBBOUS🌔
FULL_MOON🌕
WANING_GIBBOUS🌖
WANING_CRESCENT🌘
LAST_QUARTER🌗

bypassWorldGuard

原意是讓自訂生成點繞過如 WorldGuard 之類的保護系統。

此設定目前沒有任何作用。 EliteMobs 會從你的生成點檔案讀出該鍵,但從不會依它採取行動,因此無論你設定什麼,WorldGuard 旗標一律會被檢查。若要讓生成發生在受保護的區域內,請改為在該區域上設定相關的 WorldGuard 旗標。

KeyValuesDefault
bypassWorldGuard布林值false

canSpawnInLight

指定自訂生成點是否可發生在受光源照亮的方塊上。設定為 false 時,僅在亮度等級 8 或以下生成。設定為 true 時,可在任何亮度等級生成。

KeyValuesDefault
canSpawnInLight布林值false
範例
canSpawnInLight: false

isSurfaceSpawn

設定自訂生成點是否只能發生在世界的地表。

KeyValuesDefault
isSurfaceSpawn布林值false
範例
isSurfaceSpawn: false

isUndergroundSpawn

設定自訂生成點是否只能發生在地下。

KeyValuesDefault
isUndergroundSpawn布林值false
範例
isUndergroundSpawn: false

生成位置是如何被挑選的

EliteMobs 不會掃描世界來尋找地點。它會隨機挑選一位在線玩家,並以他們為基準偏移:

  1. 從符合此生成點條件的玩家中隨機挑選一位。若玩家所在世界不在 ValidWorlds.yml 中、玩家位於競技場或副本實例內、玩家所在世界關閉了怪物生成,或該生成點的 validWorlds / validWorldEnvironments 排除了他們的世界,該玩家就會被略過。定時事件還會額外略過位於 EliteMobs 副本世界中的玩家。
  2. 在該玩家的 X 與 Z 軸上,於 24 到 128 格之間、任意方向挑選一個候選地點。
  3. Y 軸高度會依 isSurfaceSpawnisUndergroundSpawn 決定;若兩者皆未設定,則向上搜尋第一個下方為固體地面、上方有兩格空氣的方塊。
  4. 接著該候選地點會通過下列各項驗證。

最多會嘗試 100 個候選地點,每 tick 4 個。若全都不成立,EliteMobs 會等待一分鐘後再試,因此在繁忙或保護區域密集的伺服器上,事件可能要過一陣子才會真正出現。

生成驗證行為

當 EliteMobs 嘗試使用自訂生成點設定來生成 Boss 時,除了已設定的欄位外,還會執行幾項自動驗證:

  • 玩家鄰近度:Boss 不會在任何玩家的 24 格範圍內生成
  • 地獄天花板:在地獄維度中,Y=127 以上的生成會被阻擋
  • 方塊安全性:確保生成處有堅實的地面以及上方的空氣空間
  • Y 軸高度:最終位置必須落在 lowestYLevelhighestYLevel 之間
  • 遊戲規則:遵守該世界的怪物生成遊戲規則(Minecraft 1.21.11 及更新版本為 spawnMobs,之前為 doMobSpawning
  • WorldGuard 旗標:檢查 elitemobs-eventselitemob-spawning 以及 WorldGuard 自身的 mob-spawning 旗標
  • 和平旗幟:若 PeaceBanner.yml 中啟用了 suppressEvents(預設為啟用),受和平旗幟保護的區域會被略過
  • 最終測試生成:就在 Boss 出現之前,EliteMobs 會在該位置生成並立即移除一隻普通的原版殭屍。若有其他保護外掛擋下了那隻殭屍,該位置會被捨棄並重新開始搜尋

這些驗證會自動進行,且無法透過設定停用。