Extractioncraft マッチの流れ
このページでは、マッチが作成された瞬間からインスタンスワールドが削除される瞬間までに実際に何が起きるのかを、タイマー、脱出ルール、プレイヤーが装備を失う仕組みも含めて説明します。
マッチの作成
/exc createMatch <contentPackage.yml> は、パッケージの betterStructuresModulesContainerName をBetterStructuresに渡し、BetterStructuresが真新しいインスタンスワールドを非同期で生成します。生成が完了すると:
- そのワールド用に
ExtractionMatchが作成され、待機状態で開始します。 - コマンドを実行したプレイヤーがマッチに追加され、新しいワールド内のランダムに選ばれたスポーン地点にテレポートされます。
- マップのスポーンプールで定義されたインスタンスボスがスポーンします。
マッチに入ったプレイヤーはアドベンチャーモードになり、以前のゲームモードと座標が記憶されるため、退出時に復元されます。
キューもマッチメイキングもありません。マッチは誰かが作成したから存在します。
プレイヤーの待機
/exc createMatch は、プレイヤーをマッチに入れる唯一のコードパスです。Extractioncraftは join サブコマンドを登録しておらず、共通ランタイムの参加メソッドを呼び出すものも他にありません。そのため、マッチには現在ちょうど1人 — 作成した本人 — しか存在しません。以下の参加に関する記述はすべて、Extractioncraftが土台としている共通のMagmaCoreマッチランタイムの説明です。設定はされていますが、まだそこへ到達する経路がありません。
マッチが待機中の間:
- 参加経路が存在すれば、パッケージの
maxPlayers(すべてのプリメイドKobold Minesパッケージで8)までのプレイヤーを受け入れ、満員のインスタンスはfailedToJoinOngoingMatchAsPlayerInstanceIsFullで拒否されます。 - マッチが進行中になると、他の誰も参加できません。遅れて参加しようとしたプレイヤーには
failedToJoinOngoingMatchAsPlayerMessageが表示されます。 - 観戦はできません。Extractioncraftはマッチを観戦可能としてマークすることが一切ないため、観戦としての参加は常に拒否され、
messaging.ymlの観戦者向けメッセージが送信されることはありません。 - 今なら退出は無償です。アイテム消去のルールが適用されるのは、マッチが進行中になってからです。
開始
マッチ内のプレイヤーであれば /exc start を実行できます。
- 参加人数が
minPlayers未満の場合、マッチは開始を拒否し、matchFailedToStartNotEnoughPlayersMessageで全員に通知されます($amountが必要人数に置き換えられます)。 - 条件を満たしている場合は、3秒間のカウントダウンが実行され、タイトルが1秒ごとに更新されます。
- カウントダウン中にプレイヤー数が
minPlayersを下回ると、マッチは中止されそのまま終了します。
カウントダウンが終わった瞬間:
- チェストと樽がマップ全体に配置されます。
- マップのセットアップ中はブロックされていたレッドストーンの操作が解禁され、脱出用のレバーが使えるようになります。
- 15分のタイマー、縮小するワールドボーダー、コンパスのボスバーがすべて開始します。
- 各脱出ポイントの装飾用(使用不可)バージョンがマップに貼り付けられます。
タイマー
| タイマー | 長さ | 効果 |
|---|---|---|
| マッチタイマー | 15分 | Extractioncraft サイドバースコアボードに Timer MM:SS として表示され、1秒ごとに更新されます。00:00 で下限に達します。 |
| 脱出ポイントの解禁 | 開始から1分後 | 各脱出ポイントの使用可能なバージョンが、レバー付きで貼り付けられます。 |
| 脱出ウィンドウ | 20秒 | 脱出ポイントのレバーを引くことで開始します。 |
| コンテナを開ける時間 | 3秒 | チェストや樽を略奪するために静止していなければならない時間です。 |
マッチタイマー自体はマッチを終了させません。終了させるのはワールドボーダーです。
ワールドボーダー
ボーダーは幅 740ブロック から始まり、およそ24ティック(約1.2秒)ごとに1ブロックずつ縮小し、15分の少し手前で0に到達します(740回の縮小ステップ × 24ティックで14分48秒)。
ボーダーの警告距離は、その時点のボーダーの幅から50を引いた値に設定されます(開始時は690ブロック)。Minecraftは警告距離を「ボーダーから何ブロック手前で画面が色づき始めるか」として扱うため、これほど大きな値はプレイ可能エリア全体を覆ってしまいます。その結果、赤い警告オーバーレイは端に近づいたときだけでなく、マッチ中ずっと全員に表示され続けます。
BetterStructuresはマップ中心からの距離に応じてボスのレベルを調整する — 中央ほど高レベル、端ほど低レベル — ため、縮小するボーダーはプレイヤーをより難しく、より実入りの良いエリアへと着実に追い込んでいきます。
ボーダーが0に達すると、ボーダーダメージが致命的になります。そして致命的なダメージを受けたプレイヤーはマッチから除外されます(後述)。最後のプレイヤーがいなくなるとマッチは終了し、そのワールドは削除されます。
脱出する
- 脱出ポイントを探します。画面上部のボスバーはコンパスのストリップです。視線の向きから90°以内にあるすべての脱出ポイントに対し、1文字あたり約3°の精度で
⦿マーカーを表示します。バーはマッチ開始と同時に現れますが、最初の1分間は空のままです。マーカーは使用可能な脱出ポイントに対してのみ描画され、それらは解禁タイマーが発火するまで設置されないためです。 - 脱出ポイントのレバーを右クリックします。レバーは消費され、10ブロック以内の全員に「You have triggered an exit!」と通知され、そのポイントに対して20秒間の脱出ウィンドウが1回だけ開きます。
- 脱出ゾーンの中に立ちます。脱出ポイントから全方向に3ブロック広がる立方体です。その中にいる間は
Extracting! in N seconds!と表示されます。 - 外に出ると
Extraction cancelled!と表示されますが、ウィンドウ自体は動き続けます。閉じる前に戻れば有効です。 - ウィンドウが閉じると、中にいる全員が同時に脱出します:
Victory / Extraction successful!。彼らはマッチから除外され、所持しているものをすべて保持します。
レバーを引くとレバーは破壊されます。ポイントを起動したあとに20秒のウィンドウを逃すと、その脱出ポイントは使い切りです — 別のポイントを探してください。
死亡とアイテムの喪失
Extractioncraftのマッチでは各プレイヤーの命は1つだけで、リスポーンもデスチェストもありません。
- プレイヤーを死亡させるはずのダメージは完全にキャンセルされます。代わりに、そのプレイヤーはマッチから除外されます。
- 除外時に体力は最大まで回復し、以前のゲームモードが復元され、参加前に立っていた場所へテレポートで戻されます。
- インベントリの中身はすべてソウルバインドされます(EliteMobsのソウルバインドエンチャント)。そのうえで、その除外が脱出成功によるものではなく、かつ
deleteItemsOnFailToExtractがtrue(デフォルト)の場合、インベントリ全体が消去されます。
/exc leave、/exc quit、および切断はいずれも同じ除外パスを使うため、進行中のマッチではこの3つすべてでルートを失います。
| 退出のしかた | ルートを保持できる? |
|---|---|
| 脱出ポイントで脱出した | はい |
| モブ、プレイヤー、またはボーダーに倒された | いいえ(デフォルト設定の場合) |
マッチ中に /exc leave または /exc quit | いいえ(デフォルト設定の場合) |
| マッチ中に切断した | いいえ(デフォルト設定の場合) |
| マッチが待機中またはカウントダウン中に退出した | はい |
ワールドの保護
インスタンスのマッチワールドは、その存続期間中ずっと保護されています:
- プレイヤーはブロックを破壊・設置したり、骨粉を使ったり、地形にダメージを与えたりできません。
- マッチが開始するまでレッドストーンの操作はブロックされます。
- コンテンツパッケージが
pvpEnabled: falseを設定している場合、PvPはブロックされます。 - マッチワールドへの、またはそこからのテレポートはキャンセルされます。通るのはプラグイン自身のテレポートだけです。
- マッチが進行中の間、ランタイムはマッチワールド内の侵入者を検出します。オペレーターは除外の対象外で、代わりにアクションバーの警告を受け取ります。なお、除外そのものが機能するのは、サーバーがまだマッチプレイヤーの記録を保持しているプレイヤー(前回の再起動以降にマッチに入ったことのあるプレイヤー)に限られます。一度もマッチに入ったことのないプレイヤーは検出はされますが、実際には移動させられません。
- マッチ領域から出たプレイヤーを監視するウォッチドッグもありますが、これはインスタンスの開始地点にプレイヤーを戻そうとします。Extractioncraftはその開始地点を設定することが一切ないため、この安全網は現在機能していません。実際には、マッチワールドの外へのテレポートはそもそも完全にキャンセルされます。
管理者は /exc protection bypass でこれらの保護を自分に対して無効化できます。
マッチの終了
マッチは、最後のプレイヤーが除外された時点で終了します — 脱出、死亡、退出、切断のいずれであっても同じです。マッチが終了するとインスタンスワールドは完全に削除されるため、そこに残したものは何も残りません。
マッチは、プラグインが無効化されるときにも破棄されます。これには /exc reload とサーバーのシャットダウンが含まれます。