Extractioncraft ルートシステム
Extractioncraftは3つの概念に基づいた階層型ルートシステムを持っています。コンテンツパッケージはルートテーブルを参照し、ルートテーブルはルートプールを参照し、ルートプールはドロップする実際のアイテムを定義します。
概要
Content Package
-> chestLootTables / barrelLootTables (weighted selection)
-> Loot Table
-> lootTable entries (each has a chance to roll)
-> Loot Pool
-> eliteMobsLoot / vanillaLoot (weighted selection of one item)
ルートテーブル
ルートテーブルの設定は loot_tables/ フォルダにあります。各ファイルはルートプールエントリのリストを定義し、各エントリにはアイテムを生成する独立した確率があります。
| キー | 型 | デフォルト | 説明 |
|---|---|---|---|
isEnabled | Boolean | true | false に設定すると、このテーブルはドロップを一切生成しなくなります。コンテナはテーブルを選ぶ際に無効なテーブルをスキップし、モブキルでも無視されます。 |
spawnPools | String list | [] | BetterStructuresのスポーンプール名。一致するスポーンプールに関連付けられたEliteMobが倒されると、このルートテーブルがドロップに使用されます。比較は大文字小文字を区別せず、末尾の .yml も無視されるため、kobold_miner_pool と Kobold_Miner_Pool.yml はどちらも一致します。 |
lootTable | List of objects | [] | 各エントリはルートプールのファイル名と chance(0.0〜1.0)を参照 |
ルートテーブルエントリの形式
lootTable:
- filename: my_loot_pool.yml
chance: 0.5
- filename: another_pool.yml
chance: 0.2
各エントリは独立して判定されます。chance が 0.5 の場合、このプールがドロップを生成する確率は50%です。chance は数値でも数値文字列でも指定できます。プールファイルが loot_pools/ に存在しないエントリや、chance が欠落しているか0〜1の範囲外のエントリは、起動時に警告とともにスキップされます。他のエントリは引き続き読み込まれます。
ルートプール
ルートプールの設定は loot_pools/ フォルダにあります。各プールは取得可能なアイテムのセットを定義します。プールが判定されると、重み確率に基づいて1つのアイテムが選択されます。
| キー | 型 | デフォルト | 説明 |
|---|---|---|---|
isEnabled | Boolean | true | false に設定すると、このプールを参照するルートテーブルのエントリがこのプールを判定することはなくなります。 |
eliteMobsLoot | List of objects | [] | ドロップ可能なEliteMobsカスタムアイテム |
vanillaLoot | List of objects | [] | ドロップ可能なバニラMinecraftアイテム |
EliteMobsルートエントリ
eliteMobsLoot:
- filename: my_elite_item.yml
weight: 1.0
- filename: another_item.yml
weight: 0.5
filename はEliteMobsカスタムアイテムの設定を参照します。weight はプール内のすべてのエントリ間でのドロップ確率の相対値を決定します。
一部のカスタムアイテムは、選択が行われる前に候補から除外されます:
permissionを持つアイテムは、チェストと樽からのみ、かつその権限を持つプレイヤーに対してのみ候補になります。ドロップしたアイテムはそのプレイヤーのものになるため、他の誰も拾えません。モブキルで権限付きのアイテムがドロップすることはありません。itemType: CLASS_LOOTを持つアイテムは、EliteMobsのクラス戦利品がそのドロップの難易度とランクで許可している場合にのみ候補になります。クラス戦利品は未結合の状態でドロップします。
バニラルートエントリ
vanillaLoot:
- material: DIAMOND
weight: 1.0
- material: GOLD_INGOT
weight: 2.0
material はBukkitの Material enum名です。weight はエリートルートエントリと同様に機能します。プール内のすべてのエリートおよびバニラエントリは1回の重み付き選択で競合するため、プールは1回の判定につき最大でも1個のアイテムしか生成しません。バニラアイテムは常に1個としてドロップします。認識されない material、アイテムではない material、空気の material は起動時に警告とともにスキップされ、EliteMobsカスタムアイテムに一致しない eliteMobsLoot のファイル名はドロップ時に警告を出力して何も生成しません。
重みは小数(0.5)、整数(2)、数値文字列("1.5")で指定でき、0 より大きくなければなりません。重みが欠落している、0、負、または数値でないエントリや、filename または material のないエントリは、起動時に警告とともにスキップされます。プールの残りは引き続き読み込まれます。
コンテナルート(チェストと樽)
マッチが進行中になると、BetterStructuresはマップ内のすべてのコンテナマーカーにチェストまたは樽を配置します。マッチ内のプレイヤーがチェストまたは樽を右クリックすると:
- バニラのコンテナは開きません。インタラクションはキャンセルされ、Extractioncraftの略奪処理に置き換えられます。この処理はマッチが進行中の間だけ、かつマッチが配置したコンテナに対してだけ動作します。
- プレイヤーは3秒間、完全に静止していなければなりません。カウントダウンがサブタイトルとして表示されます。
- 位置が少しでも変わるとインタラクションはキャンセルされます(「Don't move while opening a container!」)。移動せずに周囲を見回すことはできます。プレイヤーが同時に開けられるコンテナは1つだけで、1つのコンテナを同時に開けられるプレイヤーも1人だけです。
- ルートテーブルは操作開始時に、パッケージの重み付き
chestLootTablesまたはbarrelLootTablesリストから選択済みです。成功時にそのテーブルがドロップを生成します。 - コンテナは空気に置換され、選択されたルートテーブルの各エントリが独立して判定されます。結果のアイテムはコンテナの位置に地面へドロップします。
マッチ中にアクティブなコンテナは10ティックごとにポータルパーティクルを表示し、プレイヤーが見つけやすくなっています。
コンテナのドロップは、パッケージの contentLevel(デフォルト 10)をEliteMobsのアイテムレベルとして使用します。クラス戦利品の難易度は、モブキルルートで説明するように、コンテナが置かれているゾーンによって決まり、ランクは最も低いtrashです。
モブキルルート
進行中のExtractioncraftマッチのワールドでEliteMobが死亡すると、プラグインは、BetterStructuresがスポーンさせたボスに付与する betterstructures:spawnpool カスタムデータを読み取ります。このデータのないモブや、進行中のマッチワールド以外での死亡では、Extractioncraftのルートは生成されません。
spawnPools リストがそのモブのスポーンプールに一致する、有効なすべてのルートテーブルが、死亡地点にドロップを生成します。これは重み付き選択ではないため、同じスポーンプールを3つのルートテーブルに記載すれば、独立した判定が3セット行われます。モブ自身のレベルが、ボスのクラス戦利品の難易度とランクとともにEliteMobsに渡され、レベルに応じたアイテム生成が行われます。
BetterStructuresは、マッチが進行中になると各インスタンスボスをそのスポーンプールの maxLevel でスポーンさせます。それぞれのボスには、スポーンしたゾーンの難易度も設定されます。ゾーンはマップ中心を囲む正方形の帯です:
| ゾーン | いずれかの軸での中心からの距離 | EliteMobsのデフォルト難易度 |
|---|---|---|
2 | マップ幅の6分の1未満 | Mythic |
1 | マップ幅の3分の1未満 | Hard |
0 | マップの残りの部分 | Normal |
難易度名は、EliteMobsのクラス戦利品設定にある difficultyIds の対応付けに由来します。EliteMobsは、difficultyID で制限されたボスパワーも対応するゾーンでのみ適用し、Kobold Minesのボスはこれを利用しています。したがって、中央へ向かって縮小するワールドボーダーは、プレイヤーをHardゾーンとMythicゾーンへと押し込んでいきます。
脱出時のアイテムの挙動
- 脱出に成功したプレイヤーはすべてのアイテムを保持します。Extractioncraftは、インベントリ、カーソル、クラフトグリッド内のすべての未結合アイテムをそのプレイヤーにソウルバウンドします。すでにソウルバウンドされているアイテムは元の所有者のままです。結合が行われるのは、EliteMobsのSoulbindエンチャントが有効な間だけです。
- 進行中のマッチ中のサーバーのシャットダウンやプラグインのリロードは、脱出と同じ扱いになります。
- 進行中のマッチからのそれ以外の退出では、
deleteItemsOnFailToExtractがtrue(デフォルト)であれば、インベントリ、カーソル、クラフトグリッドが消去されます。falseに設定すると、それらのアイテムは代わりにソウルバウンドされます。 - マッチが待機中またはカウントダウン中の退出では、インベントリには手が加えられません。すべての退出方法についてはマッチの流れを参照してください。