跳至主要內容

建立物品

webapp_banner.jpg

建立自訂物品​

什麼是自訂物品?​

自訂物品是由 EliteMobs 透過設定檔定義的物品。你可以自訂這些物品的許多面向,例如物品等級、附魔、名稱、說明文字、貼圖等等!

網頁應用程式​

你可以在這裡輕鬆快速地建立自訂戰利品!

開始之前​

自訂物品放在哪裡?​

自訂物品檔案放在 plugins/EliteMobs/customitems/。

可以使用 plugins/EliteMobs/customitems/myitems/ 這類子資料夾來整理檔案。引用時使用包含 .yml 的檔名,因此請讓檔名在所有子資料夾之間保持唯一。儲存變更後執行 /em reload,再產生一個新物品來檢查結果。

檔案以 .yml 格式儲存,設定檔編輯建議使用 Notepad++。一個檔案定義一種自訂物品。多個 BOSS、寶箱或任務可以引用同一個物品檔案。

你也可以使用網頁應用程式快速輕鬆地建立自訂 BOSS 等內容。

最小設定​

請注意,自訂物品最小的設定檔如下:

一般的空物品檔案預設為名為 "Default name" 的木劍。特殊定義有額外的要求:CLASS_LOOT、消耗品和魔法武器必須提供下方各自章節所述的欄位。

物品範例​

我們來看看物品檔案長什麼樣子的範例。

範例
isEnabled: true
material: WOODEN_AXE
name: '&4Test item'
lore:
- This is a cool item
- It has cool lore
enchantments:
- SHARPNESS,4
- elitemobs:flamethrower,1
potionEffects:
- HASTE,0,self,onHit
- POISON,0,target,onHit
- GLOWING,0,self,continuous
dropWeight: dynamic
scalability: scalable
itemType: custom

自訂物品設定​

以下列出自訂物品所有可以設定的項目:


isEnabled​

啟用新物品的定義。已經存在的物品不會被改寫。不過,消耗品服務會解析目前已啟用的定義,因此停用定義可能讓先前產生的物品無法再發揮該用途。

鍵值預設值
isEnabledtrue / falsetrue
範例
isEnabled: true

material​

設定物品的材質。

鍵值預設值
material請從此清單中挑選!WOODEN_SWORD
範例
material: DIAMOND_SWORD

level​

設定物品的等級。

鍵值預設值
level整數0

將此項保留為預設值 0 時,EliteMobs 會根據材質推算等級,而不是使用固定等級。

scalability 設為 scalable 時,由掉落或獎勵流程提供等級。這不一定等於 BOSS 的確切等級。設為 limited 時,設定的等級是上限;設為 fixed 時,設定的等級就是物品的等級。預設物品的預覽則改用設定的等級或由材質推算出的等級。

護甲有材質基準:皮革、金和海龜算 3 級,鎖鏈 5 級,鐵 6 級,鑽石 7 級,獄髓 8 級。物品等級低於這個基準時,不會額外提供精英等級防禦。附魔和原版屬性是另外計算的,因此這並不代表該物品的表現與未經修改的原版護甲完全相同。

範例
level: 100

name​

設定物品的顯示名稱。

鍵值預設值
name可含顏色代碼的字串"Default name"
範例
name: "&2Cool item"

create_item_name.jpg


lore​

設定物品的說明文字。

鍵值預設值
lore可含顏色代碼的清單無
範例
lore:
- "&2This is the coolest sword"
- "&2of all time!"

create_item_lore.jpg


enchantments​

設定物品上的附魔。

鍵值預設值
enchantmentsMinecraft 附魔或 EliteMobs 自訂附魔的清單無

原生項目使用 Bukkit 附魔名稱。自訂效果必須使用小寫的提供者 ID,例如 elitemobs:loud_strikes,3 或 freeminecraftmodels:multicast,2,後面接一個正整數等級。重複的自訂 ID 和格式錯誤的自訂項目會停用該定義。已淘汰、沒有命名空間的自訂名稱同樣會停用該定義,不會被轉換。提供該附魔的提供者必須可用,並且接受該物品。

範例
enchantments: 
- "SMITE,8"
- "UNBREAKING,4"
- "SHARPNESS,7"
- "elitemobs:loud_strikes,3"

create_item_enchantments.jpg

受支援的精英附魔(例如 Sharpness)會保留完整的 EliteMobs 等級,而它們的原生附魔則被限制在原版的最大值。原生附魔的套用會遵循該附魔的啟用設定。程序生成的上限並不是對作者指定等級的通用限制。

在縮放產生的過程中,scalable 與 limited 物品會不放回地抽取 ceil(total configured native levels * 0.5) 個附魔單位。這不會保留完整的總量,也不保證一定抽到特定附魔。自訂附魔不在這個預算之內。預設物品的產生(包括 /em loot give)則改用作者指定的原生等級。fixed 物品同樣使用作者指定的等級。

自動職業戰利品沿用相同的預算原則,並提供可設定的難度與階級設定檔、獨立的規則機率,以及可設定的主要附魔最低值。請用該系統來製作一致的基礎裝備;刻意設計為特殊獎勵的物品,則另外保留獨立的自訂物品檔案。


proceduralEnchantments​

可選的布林值,預設為 false。在一般自訂物品建構期間啟用程序生成抽選,並受程序生成設定約束。每個抽到的附魔會與作者指定或縮放後的結果合併,並取較高的等級,而不是把兩個等級相加。抽選可能引入新的附魔種類;相容的魔法武器也可以抽到 FMM 附魔。CLASS_LOOT 則改用它自己的設定檔。

potionEffects​

設定物品擁有的藥水效果。這些效果可以套用在玩家身上,或套用在被玩家傷害的實體上。

鍵值預設值
potionEffectsMinecraft 藥水效果的清單無

此外,藥水效果使用特定的格式,讓管理員選擇誰受到影響以及何時生效:

設定說明值預設值
藥水效果等級設定藥水效果的等級。藥水效果從等級 0 開始!整數無
受影響的實體設定誰會受到命中效果影響。self(玩家)/ target(被擊中的實體)self
套用方式設定效果何時套用。onHit / continuouscontinuous

藥水效果的格式為 potionEffectName,potionEffectLevel,affectedEntity,applicationMethod。最後兩個參數(affectedEntity 和 applicationMethod)是選填的,未指定時預設為 self 和 continuous。請參考下方的範例!

請使用 Bukkit 效果名稱,逗號前後不要加空格。效果會從主手、副手和四個護甲欄位收集,不包括背包的其餘位置。損壞的物品、其他玩家的靈魂綁定物品,以及被技能限制拒絕的裝備都不會提供效果。持續效果一律作用於穿戴者;target,continuous 不會產生光環。命中效果可以來自這六個欄位中的任何一個,並在玩家對活體目標發動未被取消的攻擊時套用,包括投射物攻擊。

藥水效果持續時間:

  • 持續性的裝備效果每秒檢查一次。一般套用持續 2 秒,並在接近到期時刷新;夜視持續 15 秒,並在剩餘 12 秒以下時刷新。
  • 對每種效果類型,已裝備的來源中最強者生效。卸下或更換裝備時,會移除或更新 EliteMobs 追蹤為自己施加的效果。來自其他來源的既有效果會被保留,即使裝備的效果更強也一樣;裝備效果可能要等該外部效果到期後才會套用。
  • 一般的命中效果使用對應 potionEffects/ 設定中的 onHitDuration,單位為秒。

對自身施加的 INSTANT_HEALTH、INSTANT_DAMAGE 和 SATURATION 會使用特殊的處理程序,無論採用哪種套用方式。每種效果都有每位玩家共用的 100 tick 冷卻(以 20 TPS 計為 5 秒)。數量為增幅值加一:分別代表恢復的生命點、提交的傷害,或恢復的飢餓點。SATURATION 改變的是飢餓條,而不是飽和度儲備。這些效果不使用一般持續效果的租約(lease)機制。

以下預設的藥水效果圖示可以在 ItemSettings.yml 中修改:

  • ☠️ 骷髏 – 針對敵人。
  • 🛡️ 盾牌 – 針對使用者/玩家。
  • ⚔️ 雙劍 – 在命中時啟動。
  • ⟲ 圓圈 – 在物品被穿戴或手持期間持續套用。

EliteMobs 也提供作為護身符使用的自訂物品。這些物品別無其他功能,只會在物品被手持或裝備於欄位時為玩家提供藥水效果。

警告:使用 INSTANT_DAMAGE 藥水效果會在命中時治療不死生物,這是原版 Minecraft 的預設機制。

無效的效果:

  • ABSORPTION 和 HEALTH_BOOST 會被物品藥水效果系統完全略過。無論設為 continuous 還是 onHit,它們都不會被套用。
  • 當被擊中的實體是生命倍率大於 1 的精英時,命中時對 target 施加的 LEVITATION、SLOWNESS 和 BLINDNESS 會被忽略。這包括以提高生命值方式設計的 BOSS;healthMultiplier 預設為 1,因此這並未涵蓋所有自訂 BOSS。這些效果對其他精英和原版生物仍然有效。
範例
potionEffects: 
- "POISON,0,target,onHit"
- "INSTANT_HEALTH,1,self,onHit"
- "NIGHT_VISION,0,self,continuous"

create_item_potion_effects.jpg

套用這組藥水效果後,會發生以下情況:

命中時,目標會獲得中毒 I。玩家透過特殊的治療處理程序恢復 2 點生命,且最多每 100 tick 一次。

持續地,玩家會獲得夜視效果。這表示只要玩家穿戴或手持該物品,就會一直擁有夜視效果。


scalability​

控制物品如何使用其掉落或獎勵流程所提供的等級。

鍵值預設值
scalabilityfixed、limited 或 scalable。請看下方說明!scalable

請看這份清單,了解各個選項的作用!

設定說明
fixed使用設定的等級,或由材質推算出的物品等級。
limited使用請求等級與設定上限中較低的一個。
scalable使用請求等級。

帶有數值型 dropWeight 的一般物品會被強制設為 fixed。dynamic 不會強制任何模式。CLASS_LOOT 遵循它自己的縮放建構流程。

範例
scalability: "scalable"

itemType​

設定可以從哪裡取得該物品。

鍵值預設值
itemTypecustom、unique、droppable、CLASS_LOOTcustom

共有四種物品類型:

設定說明
custom可進入一般的隨機自訂物品掉落和自訂商店。仍會套用掉落池與等級篩選。
unique將物品排除在一般隨機掉落池和自訂商店之外。請從 BOSS 戰利品、寶箱、任務或競技場獎勵中明確引用它,或用管理員指令給予。
droppable可進入一般的隨機自訂物品掉落,但被排除在自訂商店之外。
CLASS_LOOT被明確引用時使用職業戰利品設定檔。被排除在一般自訂物品池和自訂商店之外。
範例
itemType: "unique"

dropWeight​

設定物品所屬的戰利品表。

鍵值預設值
dropWeightdynamic 或小數值。dynamic

一般的隨機裝備產生會在五個池之間做選擇。像是 BOSS 的 uniqueLootList 這類明確指定的表則是獨立的。

這些池如下:

戰利品表說明預設權重
程序生成物品依伺服器設定檔隨機產生的物品90.0
加權物品權重不是 dynamic 的物品1.0
固定物品縮放方式為固定的物品10.0
受限物品縮放方式為受限的物品3.0
可縮放物品可縮放的物品6.0

產生一般的隨機裝備掉落時,會依據 ItemSettings.yml 中的這些權重來選擇掉落池。這些權重只用來選擇池;它們不保證每次 BOSS 死亡都會有物品,也不控制明確指定的 BOSS 戰利品表。

「加權物品」的「預設權重」很小,表示它們不太常掉落。dropWeight 不是 dynamic 的物品設計為稀有,只用於預設內容中 BOSS 掉落的護身符——也就是不直接用於戰鬥,而是用藥水效果強化玩家的物品。

請使用 0 或更大的有限數值作為 dropWeight。它控制的是在加權池內的相對選取率,而不是選中該池的機率。權重為 0 時,物品仍會以 fixed 載入,但不會進入加權池。負數或非數字的值會使該物品無法載入。

如果你感到困惑,只想製作武器與護甲,請跳過此設定,因為它預設就會正確地使用 dynamic。

「加權物品」的權重通常為 1.0。

數值型 dropWeight 會把物品加入固定池和加權池,除非其 itemType 為 unique。帶有數值權重的 unique 物品不會進入這兩個池,並且仍然使用固定縮放。

加權池會複製快取的物品,因此每次掉落不會重新抽選程序附魔。為玩家挑選物品時,它會跳過 unique 物品、已停用的物品,以及玩家缺少其 permission 的物品。只有當此定義設有 soulbound: true 且全域靈魂綁定附魔已啟用時,掉落物才會靈魂綁定。CLASS_LOOT 會忽略 dropWeight,也不會進入這些池。

目前,一般的隨機受限物品選擇器只考慮上限嚴格低於請求掉落等級的定義。請不要假定每個受限定義都適用於每次較低等級的隨機掉落;明確的戰利品引用則會直接選取定義。

範例
dropWeight: "dynamic"

customModelID​

注意: 此設定已被移除,不再從設定檔讀取。請改用 customModelV2,這是自 Minecraft 1.21.4+(EliteMobs 9.1.13+)起唯一會被辨識的模型 ID 設定。設定檔中任何既有的 customModelID 項目都會被忽略。

設定物品的貼圖。需要使用資源包中有效的貼圖!

鍵值預設值
customModelID整數無
範例(已不再有效)
material: DIAMOND_SWORD
customModelID: 1

此設定已不再有效。請改為遷移到 customModelV2。


customModelV2​

自 Minecraft 1.21.4 版本(EM 9.1.13)起,這是設定自訂物品模型 ID 時新的必要設定。 設定物品的貼圖。需要使用資源包中有效的貼圖!

物品和裝備模型鍵需要 CustomModels.yml 中的 useModels: true,並且需要安裝 ResourcePackManager,或在 config.yml 中設定 useResourcePackEvenIfResourcePackManagerIsNotInstalled: true。後者並不會分發資源包:玩家仍然需要相符的資源。

鍵值預設值
customModelV2字串無

**自動外觀階級:**如果此項與 equipmentModelID 都沒有設定,EliteMobs 會套用 EliteMobs 資源包中依等級區分的外觀。階級依物品的等級挑選:

最低物品等級階級
20bronze
40palladium
60corrupted
80living
100ultimatium

低於 20 級的物品不會獲得階級外觀。階級只會套用於劍、斧、鋤(以鐮刀呈現)、弓、弩、頭盔、胸甲、護腿和靴子。三叉戟被刻意排除在外。

設定 customModelV2 或 equipmentModelID 其中之一,會在支援之處使用你明確指定的鍵來呈現該外觀。另一種外觀仍可能退回使用其階級模型。任何明確指定的鍵都會略過自動的原版屬性縮放,即使模型已停用也一樣。沒有明確指定的鍵時,CustomModels.yml 中的 useAttributeScaling 會控制支援的伺服器版本(1.21.2+)上的屬性縮放,包括低於 20 的正數等級;這不需要啟用模型。這會改變原版的攻擊傷害、攻擊速度、護甲、護甲韌性和擊退抗性。EliteMobs 的傷害與防禦仍然使用它們自己的計算方式。

範例
customModelV2: elitemobs:equipment/magmaguys_toothpick

此設定會為物品指定特定的貼圖。運作方式如下:

  • elitemobs: 是資源包 assets 資料夾中的主要目錄。
  • equipment 是 assets/elitemobs/items 內的子目錄。
  • magmaguys_toothpick 會選取物品定義 assets/elitemobs/items/equipment/magmaguys_toothpick.json。該定義引用 assets/<namespace>/models/ 下的實際模型。

物品定義路徑: \.minecraft\resourcepacks\elitemobs_resource_pack\assets\elitemobs\items\equipment\magmaguys_toothpick.json

這會使用玩家所用的 EliteMobs 資源包中的自訂貼圖 magmaguys_toothpick。若想正確使用此功能,建議將伺服器設定為讓玩家登入時取得資源包。


equipmentModelID​

設定支援的護甲欄位所使用的穿戴裝備資源。它不會讓任意材質變得可穿戴。頭盔刻意改用它們的物品模型,因此請用 customModelV2 設定頭盔的外觀。上述的模型要求在此同樣適用。

鍵值預設值
equipmentModelID字串無

未設定 customModelV2 時,仍可能退回使用依等級區分的背包模型。

範例
material: DIAMOND_CHESTPLATE
equipmentModelID: elitemobs:bronze

這會為胸甲的穿戴外觀選取 assets/elitemobs/equipment/bronze.json,與它的背包物品模型分開。


weaponType 與 fmmItemModel​

魔法武器請使用 weaponType: WANDS 或 weaponType: STAVES。其他武器技能則依材質而定。fmmItemModel 用來識別由 FMM 設計的武器或僅供顯示的模型:

material: BLAZE_ROD
name: "&bApprentice's Wand"
lore: []
weaponType: WANDS
fmmItemModel: fmm_default_arcane_wand
enchantments:
- "POWER,3"
- "freeminecraftmodels:multicast,1"
scalability: scalable

魔法武器需要一個可用、相容且符合所宣告類型的 FMM 武器定義。缺少魔法武器識別資料會導致無法產生物品;僅更改材質或顯示模型並不會產生可運作的魔杖。缺少非武器的顯示模型時,會保留原版材質的外觀;當 FMM 可用時,未知的模型也會記錄警告。魔法武器會捨棄 PUNCH,堆疊上限為 1;沒有作者指定最大耐久的可損耗魔法物品,其最大耐久為 384。

FMM 識別欄位的優先順序高於 customModelV2、equipmentModelID 和依等級區分的自動外觀,即使顯示模型無法解析也是如此。EliteMobs 仍保留它的名稱、說明文字、附魔、等級和所有權系統。請參閱 FMM 魔法武器。

scriptedItem​

這個較舊的欄位仍作為 FMM 設計物品的識別與顯示橋接。它不再執行裝備物品的 Lua 腳本。所引用的物品 ID 必須存在於 FMM 的物品目錄中,且不含 .yml;包含非空 scripts: 清單的物品定義已不再有效。

新內容請使用 fmmItemModel,魔法武器則另外使用 weaponType。請不要將設計的魔法武器與 scriptedItem 合用;產生時會拒絕這種組合。這兩種橋接都不會把 FMM 的名稱、說明文字或附魔複製到 EliteMobs 物品上。

consumable​

服務物品使用明確的用途,而不是標記附魔:

material: PAPER
name: "&aRepair Scrap"
lore: []
consumable:
type: repair_scrap
tier: 2
類型額外欄位用途
repair_scrap整數 tier,1 到 5修理員廢料,從極小到巨大
lucky_ticket無升級系統使用的幸運券
unbind無移除靈魂綁定的物品

只有修理廢料接受 tier。未知欄位、缺少或無效的類型,或超出範圍的廢料階級,都會停用該定義。解析後的材質必須是非空氣物品。服務會檢查目前已啟用的自訂物品定義、識別資料和相符的材質,而不是舊的 REPAIR、LUCKY_SOURCE 或 UNBIND 附魔。

CLASS_LOOT 物品​

在一般的自訂物品檔案中設定 itemType: CLASS_LOOT,再從 BOSS 的一般戰利品表引用它。請提供有效的 material、name 和 lore 欄位;lore: [] 可以被接受。護甲另外需要相符的 classLootFamily,例如 TANK_HELMETS。

此類型使用它自己的縮放建構器,並忽略一般的 scalability、dropWeight 和 proceduralEnchantments。階級與難度由 BOSS 情境提供;沒有該情境的指令無法重現特定 BOSS 的抽選結果。預設預覽至少為 1 級。作者指定的附魔會覆寫相符的設定檔項目,作者指定的藥水效果則會附加到設定檔的效果之後。

職業戰利品指南涵蓋物品族推斷、設定檔抽選、作者指定的覆寫和選擇。BOSS 端 classLootItems 的呈現設定已不再被讀取。

showSource​

注意: 此設定目前沒有作用。該鍵仍會從設定檔讀取且不會報錯,但外掛中沒有任何部分會讀取所得的值,因此將它設為 false 並不會隱藏物品的來源說明文字。

自動產生的來源行使用 ItemSettings.yml 中 itemLoreStructureV2 內的 $itemSource。移除該預留位置即可全域隱藏這一行。來源說明文字只會加到裝備或最大堆疊數為 1 的物品上;一般可堆疊的非裝備物品不會加上。作者自訂的說明文字則是獨立的。

鍵值預設值
showSource布林值true

permission​

設定取得該物品所需的權限。

鍵值預設值
permission字串無

請使用你的權限管理外掛授予該權限節點。

有玩家參與的產生流程會檢查此權限:隨機掉落(包括加權掉落)、明確的個人掉落、/em loot give 和 /em loot reward。沒有接收者的個人掉落會跳過設有權限的物品。它並不是通用的取得限制:沒有玩家的產生流程和管理員戰利品選單可以略過它。沒有已註冊的 /em loot get 指令。交易不會重新檢查該權限節點。當產生的物品有擁有者時,soulbound 會限制轉移;它不會讓此權限變成持續性的使用檢查。

範例
permission: "elitemobs.cool.permission"

在這個設定下,會檢查權限的產生流程需要 elitemobs.cool.permission。


soulbound​

設定物品掉落時是否靈魂綁定。

綁定需要有接收者,且全域靈魂綁定功能必須啟用。沒有玩家的預覽沒有擁有者。一般建構、加權掉落和團隊戰利品分配都會遵循 false。

鍵值預設值
soulbound布林值true
範例
soulbound: true

測試你的物品​

儲存檔案,執行 /em reload,然後產生一個新物品。請預留背包空間,並使用包含 .yml 的檔名。這些指令要求接收者必須在線上:

指令作用
/em loot give <player> <filename>使用預設建構,採用設定的等級或由材質推算出的等級,保留完整的作者指定原生附魔,並檢查接收者的權限。背包溢出的物品不會被交付。
/em loot reward <player> <filename>將接收者的戰鬥等級提供給一般建構:固定等級和受限上限仍然適用。縮放建構會抽選原生附魔。背包溢出的物品會掉落在地上。

兩者都需要 elitemobs.loot.admin 權限。

請檢查產生的說明文字、裝備外觀、藥水效果和所有權。同時也要檢查你打算使用的實際 BOSS、寶箱或獎勵流程:指令產生物品並不能證明該流程的選取規則和來源情境與之相符。