為 EliteMobs 建造
以下這篇 wiki 頁面幫助你了解建立 EliteMobs 副本與競技場所需的流程。
詞彙:
- 「BOSS」- 大型遭遇戰,設計給許多人一起對抗
- 「迷你 BOSS(Miniboss)」- 較小的遭遇戰,通常 1 名玩家就能擊殺
- 「雜兵(Fodder)」- 相對容易擊殺的怪物
了解 EliteMobs 的副本分類
巢穴(Lairs)
最小的尺寸分類
巢穴通常約為 50x50 的單一建築結構,以世界的形式發布,通常包含一場大型 BOSS 遭遇戰,不過有些也可能包含一個迷你 BOSS 與一些雜兵。
迷你副本(Minidungeons)
中等尺寸分類
迷你副本通常約為 100x100 或 150x150 的結構,常常有數個結構或具有多個區段的結構。這些有 1 個 BOSS,通常至少有 3 個以上的迷你 BOSS。它們也有大量的雜兵。
冒險(Adventures)
冒險是完整的冒險地圖,通常不以方塊來衡量。這些有城市規模甚至更大。它們有 1 個 BOSS 與 10 個以上的迷你 BOSS,以及數十種獨特的雜兵,在地圖中總數通常達到數百或數千。
競技場(Arenas)
競技場是 EliteMobs 中以波次為基礎的生存競技場挑戰。這些通常約為 100x100,不過依據角落座標設定可以是任何尺寸。它們可以有任意數量的波次,但基於效能考量通常不建議超過 50 波。
競技場設定選項:
- 競技場形狀:競技場可使用
cylindricalArena設定配置為矩形或圓柱形 - 玩家限制:設定參與競技場的最低與最高玩家數
- 存取控制:使用權限需求限制競技場存取
- 自訂獎勵:為完成競技場波次設定特定獎勵
- 波次自訂:為每一波自訂波次間的中場休息與 BOSS 組成
實例副本(Instanced Dungeons)
實例副本與迷你副本類似,差別在於它們是實例化的。意思是每次一名玩家或一群玩家想進入實例副本時,都會專為他們產生一個新的世界。
實例副本為每位玩家或每個隊伍提供個人化的副本體驗。當玩家進入實例副本時:
- 會專為該隊伍建立一個新世界
- BOSS 血量會隨隊伍人數縮放:兩人以上的隊伍,BOSS 的最大血量會變成
baseHealth x 0.75 x playerCount。單人玩家則是面對未縮放血量的 BOSS - BOSS 等級可依玩家所選的難度調整
- 可設定戰利品鎖定,讓最近已擊敗該副本 BOSS 的玩家無法從它身上獲得戰利品與技能經驗
附魔挑戰副本:實例副本也可以設定為附魔挑戰,玩家僅在物品附魔嘗試出現挑戰結果時才能進入。這創造了一個獨特的遊戲循環,讓附魔強力物品需要完成副本內容。
突襲(Raids)
實例化內容——即將推出
副本設定選項
在建立副本時,管理員可使用數個設定選項:
環境設定:
- 世界環境:透過
environment欄位,將副本設定為使用主世界、地獄或終界的世界環境 - 爆炸控制:使用
allowExplosionBlockDamage旗標啟用或停用副本內的爆炸方塊破壞(預設為false) - 液體流動控制:使用
allowLiquidFlow旗標控制液體是否能在副本內流動(預設為true) - 鞘翅控制:使用
allowElytra旗標允許或禁止在副本內使用鞘翅飛行(預設為false)
玩家管理:
- 戰利品鎖定:設定
dungeonLockoutMinutes來控制擊敗實例副本 BOSS 的玩家在多久之內無法從該 BOSS 獲得戰利品或技能經驗(預設為4320分鐘 / 72 小時;設為0可停用鎖定)。它並不會阻止玩家再次進入副本 - 玩家數量:為實例化內容設定
minPlayerCount(預設1)與maxPlayerCount(預設5) - 區域訊息:設定
regionEnterMessage與regionLeaveMessage以自訂玩家通知 - 權限需求:使用
permission限制實例副本的存取
建造方式:
- 基於世界的建造:每個副本都以 Minecraft 世界的形式發佈。藍圖副本已在 EliteMobs 9.0 中移除——宣告
contentType: SCHEMATIC_DUNGEON的套件在載入時會被拒絕並發出警告,套件中的schematics資料夾在匯入時也會被拒絕。請改用 BetterStructures 的精英神殿來製作藍圖風格的內容 - 包版本控制:使用
dungeonVersion來追蹤內容更新並管理副本版本 - 傳送列表:使用
listedInTeleports(預設為true)來控制副本是否顯示在副本傳送員選單中 - 背景音樂:設定
song在玩家位於副本內時播放自訂曲目
主題設計
任何 EliteMobs 結構最重要的事情就是主題。主題會影響建築的設計、其內容、其背景故事與其 BOSS。
舉例來說,你可以看看這裡的北極。它的概念是把與聖誕相關的 BOSS 放進一個雪花玻璃球裡,造就了一個視覺上引人注目且機制上有趣的地點。
這裡還有另一個範例,綠洲(The Oasis)。這完全是在打造一個被亡靈與木乃伊佔據的古埃及地點,它是 EliteMobs 中最受歡迎的建築之一。
戰鬥地點
戰鬥地點應避免製造容易被利用的地形。這表示要避免製作玩家可以攀爬上去躲避的柱子、可被用來鑽 AI 漏洞的裝飾物及其他類似障礙物。總是會有一些漏洞被找到,這不太重要,但 BOSS 地點應較不容易遭受這些漏洞利用。
理想的 BOSS 戰鬥區域相對平坦、無遮蔽、半徑約 30 格,且可包含一些柱子或其他地圖元素,讓玩家必須躲在後面以化解特定的 BOSS 機制。
如果走廊預計要有增援怪在其中,應力求至少 5 格寬。迷你 BOSS 競技場可以是約 15 格的半徑,視它們擁有的能力/主題而定。
請注意這些是最低尺寸。如果你超過也沒什麼問題。
請記住,你可以使用 EliteScript 或過渡方塊來封閉或改變環境方塊。這是個確保玩家只有在擊敗特定怪物後才能繼續前進的好方法。
過渡方塊指令
過渡方塊是在遊戲中錄製的,而不是手寫出來的。以下所有指令都需要 elitemobs.transitiveblocks 權限且必須由玩家執行,而 <type> 為 ON_SPAWN(BOSS 生成時放置的方塊)或 ON_REMOVE(BOSS 被擊敗時放置的方塊):
| 指令 | 用途 |
|---|---|
/em transitiveBlocks register <filename> <ON_SPAWN/ON_REMOVE> | 為區域 BOSS 錄製過渡方塊 |
/em transitiveBlocks registerArea <filename> <ON_SPAWN/ON_REMOVE> | 錄製一大片過渡方塊區域,而非逐一錄製方塊 |
/em transitiveBlocks edit <filename> <ON_SPAWN/ON_REMOVE> | 編輯已為該 BOSS 錄製的方塊 |
/em transitiveBlocks editArea <filename> <ON_SPAWN/ON_REMOVE> | 編輯已錄製的過渡方塊區域 |
/em transitiveBlocks cancel | 中止你目前所處的錄製或編輯階段 |
<filename> 是這些方塊所屬的 BOSS 檔案,並會從你已安裝的自訂 BOSS 中自動補全。
ON_REMOVE 方塊會在 BOSS 真正被擊敗時套用——在戰鬥中被擊殺,或以擊殺指令移除。它們刻意不會在 BOSS 因其他原因消失時套用,例如伺服器關閉、重新載入、消失逾時或競技場重置,如此一來重新啟動就不會把世界存成 BOSS 結構被錯誤清除的狀態。
EliteMobs 包含反漏洞利用系統與戰鬥標記功能,以防止玩家利用 BOSS 機制的漏洞,與設計良好的戰鬥地點相輔相成。
為 EliteMobs 設計
你越了解 EliteMobs,你為它製作的內容就會越好。以下是一份 EliteMobs 功能清單,可幫助你為副本想出有趣的點子:
- 區域 BOSS - 副本中的每個生物都是區域 BOSS,意思是它們有一條牽引繩(如果它們超過特定距離,就會被拉回它們的生成點),並按計時器重生。
- 建立 BOSS - 這將向你展示一個 BOSS 能做什麼、能是什麼,例如偽裝、血量倍率、它是否能移動以及移動速度、嘲諷等等!
- EliteScript - EliteScript 是你在打造令人難忘的遭遇戰時最強大的工具,在這裡只有你的想像力是極限。EliteMobs 另外還隨附 60 種以上的內建能力,包括元素攻擊、各種變化的投射物、BOSS 專屬機制與輔助能力,並以 Lua 檔案形式發佈。
- 寶藏箱 - 這些可以裝有物品,甚至變成敵人(擬態怪)
- BOSS 階段 - BOSS 可以有多個階段。這套系統非常強大,因為 BOSS 在各階段之間可以變成任何東西,包括不同的實體類型、不同的偽裝、不同的自訂模型等等。還可以設定階段專屬的音樂以增強氣氛。
- 過渡方塊 - 這些是在 BOSS 生成或死亡時放置的方塊。它們也可以在 BOSS 切換階段時生成與清除!這些可用來打造非常有趣的動態競技場。
- 蟲洞 - 可將玩家傳送到其他位置的酷炫傳送門。
style鍵接受CUBE(預設)、ICOSAHEDRON、CRYSTAL或NONE,並具備可自訂的粒子效果與 RGB 顏色。
額外的 BOSS 功能:
- BOSS 坐騎:BOSS 可以騎乘其他實體,並具備自訂模型的坐騎掛載點以產生獨特的視覺效果
- BOSS 拖尾:設定跟隨 BOSS 移動的視覺粒子拖尾
- BOSS 嘲諷:設定多則 BOSS 可使用的隨機戰鬥訊息(造成傷害時與受到傷害時的訊息)
- BOSS 逃脫機制:設定 BOSS 可從戰鬥中逃脫的條件
遭遇戰設計
在設計戰鬥區域時,遭遇戰設計應該是優先考量。理想上你會先有個概念,知道你想使用哪些能力,或至少知道能力的主題該是什麼——例如火、閃電、冰、增援,或任何符合 EliteMobs 能力的東西。一旦你知道你想要的能力是什麼,你就可以相應地設計戰鬥區域。
如果 BOSS 有一個需要遠離它們的能力,該區域就需要夠大以容納這點。如果有一個你必須躲在障礙物後面的能力,該結構就需要那種障礙物。建造這些競技場可以投入很多細節,你考量得越多,遭遇戰就會越好。
修改 EliteMobs 資源包
自 Minecraft 版本 1.21.4 與 EliteMobs 版本 9.1.13 起,EliteMobs 資源包已更新,以配合 Minecraft 使用自訂模型的新方法。
EliteMobs 每次啟動時都會把它的預設資源包匯出到 plugins/EliteMobs/resource_pack/em_rsp_defaults/。請不要直接編輯該資料夾:EliteMobs 會在啟動時對其 jar 內的副本計算校驗碼,只要兩者不同就會清空並重新匯出該資料夾,你的修改將會遺失。請把它複製到別的地方,或把你的變更以你自己的資源包形式放在 resource_pack/ 底下。
資源包結構如下:
em_rsp_defaults
- assets
- elitemobs
- items
- 此目錄包含定義 Minecraft 可使用哪些自訂模型的 JSON 檔案。實際的模型儲存在
models資料夾中。 - 子目錄:
- coins
- elitescroll
- gear
- ui
- 此目錄包含定義 Minecraft 可使用哪些自訂模型的 JSON 檔案。實際的模型儲存在
- models
- 此資料夾包含以 JSON 檔案形式存在的實際模型檔案。
- 子目錄:
- coins
- elitescroll
- gear
- ui
- textures
- 此資料夾儲存所有材質,包括模型所使用的材質。
- 子目錄:
- coins
- elitescroll
- entity
- gui
- items(模型專屬材質存放於此處)
- ui
- equipment(裝備模型定義)
- rspm_bedrock_pack(透過 ResourcePackManager 建置 Bedrock 配套資源包時所使用的資源)
- items
- minecraft
- atlases
- font
- models
- item(包含指定 Minecraft 中哪些物品應使用自訂模型的 JSON 檔案)
- textures
- sounds
- custom(儲存自訂音效檔案)
- elitemobs
讓我們來拆解 assets/elitemobs/items/coins/ 資料夾中的一個 JSON 檔案是如何組成的,以及它的作用:
{
"model": {
"type": "minecraft:model",
"model": "elitemobs:coins/coin1"
}
}
用途: 這個 JSON 檔案告訴 Minecraft 這是一個模型、指定模型的類型,並指出模型檔案的位置。
關鍵欄位:
type: minecraft:model
這指定該檔案代表一個模型類型。
model: elitemobs:coins/coin1
這指向模型在資源包中的位置。
路徑細節:
elitemobs: 指示 Minecraft 在 assets 目錄中的 elitemobs 資料夾裡尋找。
coins/coin1 指定子資料夾與模型檔案名稱。
所引用模型檔案的完整路徑為:
assets/elitemobs/models/coins/coin1.json
測試你的自訂模型是否正常運作的一個好方法是使用以下指令:
/minecraft:give @p apple[item_model="elitemobs:coins/coin1"]
運作方式:
這個指令會給你一顆使用 elitemobs:coins/coin1 模型的蘋果。如果資源包設定正確,你應該會看到自訂的金幣模型套用在蘋果物品上。
測試你自己的自訂模型: 如果你已將自己的自訂模型加入資源包,請依照以下步驟測試它:
-
建立模型 JSON: 將你的 JSON 檔案放入
items目錄下適當的子資料夾中。 例如:assets/elitemobs/items/mymodel/myawesomemodel.json -
加入模型檔案: 將對應的模型檔案(
myawesomemodel.json)加入同一子資料夾內的models資料夾。 例如:assets/elitemobs/models/mymodel/myawesomemodel.json -
加入材質: 將模型的材質檔案加入
textures資料夾。 例如:assets/elitemobs/textures/items/myawesomemodel.png
一切設定完成後,使用以下指令來測試你的模型:
/minecraft:give @p apple[item_model="elitemobs:mymodel/myawesomemodel"]
如果一切都正確完成,你的手上會收到一顆蘋果,它將顯示你的自訂模型而非預設的蘋果模型。