自訂戰利品表
此共用格式為 Boss、寶箱、任務與競技場定義自訂物品、原版物品、貨幣及指令。每個項目各自進行機率判定,並非整張表只抽出一個獲獎項目。
若要自動涵蓋各職業與難度的裝備,請參閱自動職業戰利品。其獨立基礎抽取可與 uniqueLootList 同時運作。手工設計的遺物、腳本裝備及其他特殊獎勵仍保留在此表中。引用 itemType: CLASS_LOOT 物品的項目是職業戰利品候選,不參與一般 Boss 死亡抽取;其他項目繼續獨立抽取。
請注意,這是最新的格式,也是建議使用的格式,但仍存在一些其他的舊格式。
注意: 使用冒號分隔的語法 filename.yml:chance:permission 仍可支援舊版格式。然而,對於新的配置,建議使用下方所示的現代格式。
在該舊語法中,chance 與 permission 都是選填的,因此只寫 filename.yml 會以 100% 掉落該物品。以冒號分隔超過三個部分的舊版項目會被拒絕。
每個項目都會在其檔案載入時接受檢查。未知或重複的鍵、沒有值的鍵、不是有限數值的 chance、不是整數的 amount、currencyAmount、wave 或 itemLevel,以及無效的材質,都會讓該項目遭到拒絕,並記錄 Failed to parse entry ... due to invalid: <reason> 警告;表中其餘項目仍會正常載入。鍵不區分大小寫。
使用對應功能的鍵:Boss 用 uniqueLootList,寶箱用 lootList,任務用 customRewards,競技場用 rawArenaReward。任務的 customRewards 接受字串,請使用冒號分隔的 filename=...:chance=...,而非 YAML map。
自訂 Boss 的 uniqueLootList 支援全部四類項目。一般自訂項目的發放取決於 putLootDirectlyIntoPlayerInventory:
| 項目類型 | putLootDirectlyIntoPlayerInventory: false(預設) | putLootDirectlyIntoPlayerInventory: true |
|---|---|---|
精英物品(filename) | 個人地面掉落或共用裝備投票 | 個人背包發放或共用裝備投票 |
原版物品(material) | 地面掉落 | 放入背包;溢出物品掉在玩家腳邊 |
精英金幣(currencyAmount) | 可拾取的金幣雨 | 直接增加貨幣 |
指令(command=) | 由主控台執行 | 由主控台執行 |
Boss 獎勵對每位已記錄的傷害貢獻者分別抽取,排除已被該實例 Boss 鎖定獎勵的玩家。這條自訂戰利品流程沒有額外的 10% 傷害門檻。附近隊員若未造成傷害、僅取得共用參與資格,透過此流程只會得到非裝備精英物品項目,不會得到原版物品、貨幣或指令項目。觸發反利用保護會阻止這類死亡戰利品。
透過 EliteMobs 實例 Boss API 在其他外掛實例中生成的 Boss,會忽略 putLootDirectlyIntoPlayerInventory,也從不啟動隊伍或團隊投票。它們的戰利品一律如 false 欄所示掉落在 Boss 所在的地面上,精英物品作為個人掉落,因此會留在該實例的世界中。
寶箱使用相同的地面/背包設定;任務與競技場直接發放。四種來源皆支援下述類型;任務只接受字串項目。Boss 指令戰利品對每次成功的貢獻者抽取執行。獨立的 Boss 死亡指令語法請見 onDeathCommands。
掉落精英物品:
| 鍵 | 說明 | 值 | 預設值 |
|---|---|---|---|
filename | 設定要使用的自訂物品的檔案名稱。 | Filename | none |
範例
uniqueLootList:
- filename: magmaguys_toothpick.yml
這會讓怪物以 100% 的掉落機率掉落 1 個 MagmaGuy's Toothpick。
一般設定:
| 鍵 | 說明 | 值 | 預設值 |
|---|---|---|---|
chance | 每個項目獨立判定一次,1.0 為 100%。使用 0.0 到 1.0 的值。 | Double | 1.0 |
amount | 判定成功後產生的物品份數或指令執行次數。不乘算貨幣,金額請用 currencyAmount。 | Integer | 1 |
permission | 設定玩家領取此戰利品所需的權限節點。精英物品、貨幣與指令項目皆支援。原版物品項目在任何格式下都不會讀取它。 | String | none |
amount <= 0 或 chance <= 0 時不抽取;非數值或非有限值的 chance 會讓項目在檔案載入時遭到拒絕。大於 1.0 的 chance 一定通過;它不是 50 這類百分數。成功後不會為每份物品重新抽取。任務預覽會自行進行機率判定,並不預留最終獎勵。
範例
uniqueLootList:
- filename: magmaguys_toothpick.yml
chance: 0.5
amount: 10
permission: elitemobs.loot.rare
這會讓怪物以 50% 的掉落機率掉落 10 個 MagmaGuy's Toothpick,但僅限擁有 elitemobs.loot.rare 權限的玩家。
掉落精英金幣:
| 鍵 | 說明 | 值 | 預設值 |
|---|---|---|---|
currencyAmount | 設定將掉落的金幣數量。 | Integer | none |
currencyAmount 必須是整數,且必須為正才會發放貨幣。正數 amount 不會乘算金額,但 amount <= 0 會停用項目。零或負數的 currencyAmount 在兩種格式下都能載入,但不發放任何獎勵。
直接貨幣獎勵經由經濟處理器,優先償還賭債。地面發放使用可拾取的金幣雨,可取得 Harvester 技能加成;貨幣項目的直接發放不套用該加成。金幣雨在拾取時入帳,而非機率判定通過時。
範例
uniqueLootList:
- currencyAmount: 344
chance: 0.5
這讓每位符合資格的 Boss 貢獻者有 50% 的機率取得基礎獎勵 344 精英金幣(Elite Coins)。在寶箱中使用同一項目時改用 lootList。
掉落原版物品:
| 鍵 | 說明 | 值 | 預設值 |
|---|---|---|---|
material | 物品材質。兩種格式的材質名稱都不區分大小寫。type 可作為別名使用;同時設定 material 與 type 會讓項目遭到拒絕。 | Material | none |
範例
uniqueLootList:
- material: APPLE
chance: 0.3
amount: 5
這會讓怪物以 30% 的掉落機率掉落 5 個 蘋果(Apples)。
地面掉落與直接背包發放都只對項目抽取一次。此例中成功就發放全部 5 個蘋果。直接發放支援 Boss、寶箱、任務與競技場,背包裝不下的物品掉在玩家位置。AIR 材質及非正數量不發放物品。原版項目不檢查 permission。
在掉落戰利品時執行指令:
你可以在戰利品掉落時執行主控台指令。這對於與其他外掛整合或提供自訂獎勵很有用。指令項目接受冒號分隔的字串格式;除任務的 customRewards 外,也接受 YAML map。
| 鍵 | 說明 | 值 | 預設值 |
|---|---|---|---|
command | 設定要執行的主控台指令。使用 %player% 作為玩家名稱的佔位符。 | String | none |
使用字串格式時,指令不能包含 :,因為項目會以該字元分割。指令中出現 = 則沒有問題。指令需要冒號時,請使用 YAML map。
指令項目與其他項目一樣,只判定一次 chance。成功後執行指令 amount 次,沒有第二次判定或反向判定:
chance=1.0(預設)一定通過。chance=0.5有 50% 的機率通過。amount=3在這一次判定通過後執行三次。
玩家必須符合 permission,指令也不能為空。指令本身的要求仍然有效。它以主控台身分執行,請用 %player% 指定獎勵接收者。
範例
customRewards:
- command=give %player% diamond 1:chance=0.5:amount=1:permission=elitemobs.loot.command
此任務獎勵在交付任務時有 50% 的機率從主控台執行 give <player> diamond 1。%player% 替換為玩家名,玩家需要 elitemobs.loot.command。同一字串也可用於 Boss 的 uniqueLootList,為每位符合資格的貢獻者分別抽取。
競技場獎勵:
製作競技場戰利品表時,請務必以 rawArenaReward: 而非 uniqueLootList: 作為你戰利品表的開頭。
| 鍵 | 說明 | 值 | 預設值 |
|---|---|---|---|
wave | 完成哪一波競技場後發放此項目。所有項目類型在兩種格式下都接受此欄位。 | Integer | -1 |
itemLevel | 設定戰利品掉落的等級。僅由競技場使用,且只對精英物品(filename)項目有意義。兩種格式皆可使用。 | Integer | 1 |
- 只有
wave為1或更大的項目才會被註冊為波次獎勵。沒有wave的競技場獎勵項目雖然會被解析並接受,但永遠不會有任何一波把它發出去。 itemLevel預設為1,而不是競技場或玩家的等級。因此由競技場發放、但沒有明確itemLevel的scalable精英物品會以等級 1 的物品掉落。
範例
rawArenaReward:
- material: BREAD
wave: 1
amount: 10
chance: 0.5
- filename=magmaguys_toothpick.yml:wave=1:itemLevel=2
完成第 1 波後,麵包項目進行一次 50% 判定。成功則發放 10 個麵包,溢出部分掉在地上。自訂物品項目的機率為 100%,要求一個物品等級為 2 的 MagmaGuy's Toothpick;產生等級仍受物品定義的縮放規則控制。競技場會在這些獎勵之前先檢查玩家資格與等級差。
這兩個項目使用不同格式,只是為了同時示範兩者;wave 與 itemLevel 在任一格式下都能運作。
實例副本:
| 鍵 | 說明 | 值 | 預設值 |
|---|---|---|---|
difficultyID | 依接收者目前所在副本的難度篩選精英物品項目;YAML map 也接受 ID 清單。 | 字串、數字或清單 | none |
精英物品(filename)的 YAML map 與冒號分隔字串都會讀取 difficultyID。map 還支援 difficultyID: [normal, hard] 這類清單。原版物品、貨幣及指令項目會將它視為未知鍵而拒絕該項目。ID 與名稱遵循副本的難度解析器:0/1/2、Normal/Hard/Mythic 或內容包的 Easy/Medium/Hard 規則。未知 ID 保留精確比對。空清單或空白 ID 會讓項目在檔案載入時遭到拒絕。
Boss、寶箱、任務及競技場的精英物品獎勵都會檢查此條件,但僅在接收者目前處於副本實例內時產生限制,外部則忽略。透過實例 Boss API 在其他外掛實例中生成的 Boss,會依該外掛指派給它的難度進行篩選。一般競技場實例不屬於副本實例。寶箱、任務與競技場獎勵仍是個人獎勵,不進入共用裝備投票。
對於 Boss 發放,項目的行為如下:
- 副本難度符合
difficultyID:裝備進入 Boss 的共用團隊戰利品表,非裝備仍為個人發放。符合資格的戰鬥貢獻者可領取共用裝備;已被該 Boss 鎖定獎勵的玩家會在投票前排除。 - 副本難度不相符:該項目會被略過。
- 玩家不在副本實例內:忽略
difficultyID。附近至少有兩名符合資格的隊員時,裝備使用隊伍需求/貪婪,否則依一般個人方式發放。非裝備獎勵仍為個人發放。
沒有 difficultyID 時,裝備仍可能進入隊伍戰利品,但不會執行該欄位啟用的副本專用共用表分支。職業戰利品候選使用上文所述的獨立職業選擇與難度規則。
範例
uniqueLootList:
- filename: magmaguys_toothpick.yml
chance: 0.5
difficultyID: 1
如果玩家在難度 1 擊敗了首領,這會讓怪物以 50% 的掉落機率掉落 1 個 MagmaGuy's Toothpick。