Dungeon
概要
Dungeon を使うと、パーティがダンジョンの専用コピーを遊べます。1 回の攻略が ラン(run) です。ランは専用のワールド(または共有ワールド内の専用スロット)、専用のメンバー、専用の制限時間、専用のチェスト・NPC・モブを持ち、終了時にきれいに片付けられて、全員が元いた場所に戻ります。
ダンジョンは 1 つの Dungeon Instance エントリで記述します。プレイヤーは グローバルメニュー(カテゴリごとにまとめたダンジョンのブラウザ)でダンジョンを選び、パーティメニューの ロビー に参加して準備完了にし、カウントダウンが終わると中にテレポートされます。スタッフやクエストは、Dungeon Enter アクションやコマンドで、プレイヤーを直接送り込むこともできます。
ダンジョンには 2 種類あります。
- 固定型: テンプレートワールドにダンジョンを一度だけ建築します。ルームはゲーム内で描くゾーンで、すべてはあなたが決めた場所で起こります。昔ながらのダンジョンです。
- 生成型: ルームテンプレート(扉とマーカーを持つ小さな構造物)を作ると、ジェネレーターがランごとに、開始ルームからボスルームまでの新しいレイアウトを組み立てます。同じシードからは必ず同じダンジョンができます。生成型ダンジョンを参照してください。
どちらの種類も、ラン、メニュー、チェスト、NPC、モブ、イベント、ファクトを共有します。
Dungeon は Paper を対象としています。Folia ではサポートされません。公式の Typewriter プラグインが Folia 上では動作しないためです。
機能
- ランとグループ: グループごとに 1 つのラン。同じダンジョンの複数のランを同時に実行可能(
maxSimultaneousInstances)。制限時間、参加コスト、完了・時間切れ・無人・管理者による終了でのラン終了。ランとワールドの隔離を参照してください。 - 3 つの隔離モード:
SLIME_CLONE、WORLD_PER_RUN、SHARED_WORLD_SLOTS。ダンジョンごとにisolationフィールドで選びます。 - 固定型ダンジョン:
onEnter/onLeaveトリガー、モディファイア、クライテリア、優先度を持つルーム。 - 生成型ダンジョン: ルームテンプレート、コネクタータイプ、ルームプール、ジェネレーター、アフィックス、そしてルームの取り込みと扉・マーカーの配置を行うゲーム内エディタ。
- グローバルメニューとパーティメニュー: GUI 拡張機能のレイアウトを使用し、プレイヤーがロビーに出入りするとリアルタイムで更新されます。
- 戦利品チェスト: ブロックのチェスト、または NPC に固定されたチェスト。実体のものとクライアント側のもの、プレイヤーごとのインベントリまたは共有、重み付きまたは独立のルート。
- ラン専用 NPC: 1 つのランのメンバーにだけ表示される NPC。任意の Typewriter エンティティ定義から作れます。ダンジョン内のエンティティを参照してください。
- 戦闘モブ: ランごとに一度だけ出現する本物のバニラモブ。装備、属性、ドロップのルール、死亡時のトリガーを持ち、上限で制限されます。
- イベント、ファクト、アクション: 開始、完了、ルーム進入、ルーム退出、モブ死亡のイベント。「ダンジョン内にいるか」と「生存モブ数」のファクト。ランの完了、ルームのクリア、ウェーブのスポーンを行うアクション。
- 統計: プレイヤーごとに 22 の統計(ラン、ベストタイム、モブのキル数、与ダメージ・被ダメージ、死亡、クリアしたウェーブなど)。プレースホルダーとファクトで読み取れ、GUI のリーダーボードでランキングにもできます。統計を参照してください。
- リロードに強い:
typewriter reloadや Publish ではランが継続します。サーバーを再起動すると終了します。 - 他プラグインのパーティ: MMOCore、Parties、または Typewriter のパーティ拡張機能のパーティを読み取り、友達が一緒に入れます。
インストール
- GUI のページから GUI 拡張機能をインストールします。Dungeon の 2 つのメニューは、そのレイアウトを使います。
- TypeWriter の Quest 拡張機能がインストールされていることを確認します。
- 隔離モードに必要なものを用意します(ランとワールドの隔離を参照)。
- 固定型ダンジョン: テンプレートワールド。サーバーのルート(
worldの隣)のフォルダとして置きます。例:dungeon_temple。名前には英字、数字、_、-が使え、64 文字までです。 - 生成型ダンジョン: テンプレートワールドは不要です。拡張機能がランごとに空のワールドを作ります。
- Slime クローン: Advanced Slime Paper と、読み込み済みの Slime ワールドとしてのテンプレート。
- 固定型ダンジョン: テンプレートワールド。サーバーのルート(
- ストアから Dungeon をダウンロードし(上のパネルのボタンを参照)、JAR を
plugins/Typewriter/extensions/に置きます。 - サーバーを再起動します。
- 任意: 外部パーティに対応するには MMOCore または Parties を、プレースホルダーには PlaceholderAPI をインストールします。
0.10 からアップグレードしますか? 先に移行ノートをお読みください。
はじめに
このチュートリアルでは、ロビーメニューとチェストを備えた固定型ダンジョンを 1 つ作ります。生成型ダンジョンの場合は、生成型ダンジョンから始めてください。
- Web パネルで manifest ページを開き、Dungeon Room Config を追加します。プレイヤーが到着する場所に立ち、
spawnPointのコンテンツエディタをクリックして確定します。ワールド、座標、視線の向きが取り込まれます。 - Dungeon Instance を追加します。
templateWorldにワールドのフォルダ名を設定し、ルーム設定をroomConfigurationsに追加して、minPartySizeとmaxPartySizeを設定します。 - Dungeon Artifact(統計)と Active Dungeon Instance Artifact(ランの状態)を追加し、
artifactとruntimeArtifactにリンクします。後者がない場合、ランは拡張機能のruns.jsonファイルに保存され、読み込み時に警告がログに出ます。partyLobbyArtifactフィールドはもう使われません。空のままにしてください。 - Dungeon Category を追加します。
instancesにスロットを追加し、dungeonInstanceを設定して、解放時とロック時のアイテムを選びます。 - sequence ページに、Dungeon Global Menu と Dungeon Party Menu を追加します。両方のレイアウトを、メニューの説明に従って設計します。
- グローバルメニューを、NPC の会話、コマンドイベント、その他のトリガーから発火させます。Publish します。
- インスタンス用の Dungeon Loot Chest を追加します。チェストを置きたい場所に立って
locationを取り込み、lootTableを設定します。 - ダンジョンを終わらせたい場所(例えば最後のチェストの後の会話の終わり)に、Dungeon Complete アクションを追加します。
- テストします。メニューを開き、ダンジョンをクリックし、ロビーをクリックして、準備完了ボタンを押します。
メニューを飛ばして 1 人のプレイヤーを直接送り込むには、Dungeon Enter か /typewriter dungeon enter <instance> を使います。ロビーは飛ばしますが、ルールは飛ばしません。グループの人数(1 人が minPartySize で許可されている必要があります)、クライテリア、参加コスト、同時ラン数のすべてが確認されます。
仕組み
ランは、ロビーが開始されたとき、または Dungeon Enter アクションが実行されたときに始まります。拡張機能は、全プレイヤーのクライテリアとグループの人数を確認し、枠を確保し(ダブルクリックしても 1 つのランしかできません)、ワールドを準備し、参加コストを徴収し(全額か、なしか)、プレイヤーをテレポートして、各メンバーに対して onStart を発火し modifiers を適用します。途中で何かが失敗した場合、何も残りません。プレイヤーは元の場所にとどまり、コストは返金され、ワールドは破棄されます。
ランは、Dungeon Complete が実行されたとき、制限時間が 0 になったとき、Dungeon Close か /typewriter dungeon close が実行されたとき、または最後のプレイヤーが退出・ワールド移動・切断したときに終わります。各メンバーに対して onEnd が発火し、ランのチェスト・NPC・モブが削除され、プレイヤーは出口地点(または元いた場所)にテレポートされ、ワールドが解放されます。
複数の終了が同時に起きても、有効になるのは 1 つだけです。そのため onEnd が 2 回発火したり、二重に返金されたりすることはありません。
リロードと再起動
typewriter reload や Publish でランが失われることはありません。ランは、メンバー、ワールド、期限、ルームの状態(once のルームは使用済みのまま)、開けたチェスト、すでにスポーンしたモブとともに、再び引き継がれます。onStart、モディファイア、チェストは再実行されません。生成型ダンジョンは、そのシードからメモリ上で再構築されます。
サーバーを再起動するとランは終了します。ランのワールドは失われ、プレイヤーは次回の参加時に元の場所へ送り返され、残ったワールドフォルダは削除されます。ロビーは、どちらの場合も復元されません。
切断時の扱い
進行中のダンジョンから切断したメンバーは、Dungeon Instance の reconnectGrace(既定 2 分)の間、席を保持します。その間ランは閉じられず、そのメンバーの統計も加算されません。時間内に戻ったメンバーは、サイドバー、非表示、ゲームモードをそのままに、元の場所に再び現れます。時間が過ぎるとランから外れ、次に参加したときに入った場所へ送り返されます。ランの制限時間は進み続けます。
待たれているメンバーも引き続きメンバーです。その間にランが終わると、他のメンバーと同様に結果(クリアとベストタイムを含む)を受け取ります。ただし onEnd トリガーが実行されるのはオンラインのメンバーだけです。0 は猶予なしで、切断するとすぐにプレイヤーが外されます。猶予の間に typewriter reload を行うと、待たれているプレイヤーの猶予は終わります。
MMOProfiles が入っている場合、プレイヤーがプロファイルを選んだあとに復帰が再確認されます。どのランにも入っておらず、プロファイルによってダンジョンのワールドに置かれたプレイヤーは、入った場所へ送り返されます。ダンジョンが変更したゲームモードは、プロファイルが復元したモードに関係なく返されます。自分のラン(猶予中)にいるプレイヤーは、そのまま再開します。MMOProfiles がなければ何も変わりません。
メニュー
Dungeon には 2 つのメニューがあります。どちらも、GUI の layoutPool と mainLayoutId を持つアクションです。レイアウト内のアイテムは、通常の GUI アイテムと同じように動作します。buttonType が下記の値のいずれかであるアイテムは、Dungeon が内容を埋めます。あなたのアイテム(素材、名前、説明文)はそのまま残り、クリック時の動作が追加されます。buttonType は、記載のとおり大文字で正確に書いてください。buttonPrefix は空のままにします。
どちらのメニューも、autoRefreshTicks(デフォルトは 20、10 から 1200 の範囲に収められます)ごとに再描画され、表示しているダンジョンのロビーが変化するたびに、それを開いているすべてのプレイヤーに対して即座に再描画されます。プレイヤーは、クリックしなくても他のプレイヤーの参加が見えます。
レイアウトの種類、アイテムのフィールド(x、y、count、direction、gap、repeatY)、クリックアクションについては、GUI ガイドをお読みください。手順を追った構築はメニューの設計にあります。
グローバルメニュー
Dungeon Global Menu は、1 つの category のダンジョンを表示します。アクションがトリガーされたとき、または /typewriter dungeon global-menu <category> で開きます。
buttonType | 動作 |
|---|---|
DUNGEON_INSTANCE_SLOT | ダンジョンを表示する場所を示します。ダンジョンごとに 1 つ置くか、count、direction、gap、repeatY を使って 1 行またはブロックを示します。各マーカーは、カテゴリの次のダンジョンに置き換えられます。余ったマーカーは空のままです。 |
DUNGEON_FIND_PARTY | 左クリックで、カテゴリの解放済みダンジョンのうち、空きがある最初の空でないロビーに参加し、パーティメニューを開きます。すでにカテゴリのロビーにいる場合は、代わりにそこから退出します。 |
DUNGEON_INFO | 表示専用です。ヘルプ用のアイテムに使います。 |
ダンジョンの描画のされ方:
- ダンジョンは
categoryPriority(小さい順)、次にエントリ id の順に並びます。 - スロットは、その
criteriaがプレイヤーに一致する場合(空のリストは常に一致)、unlockedItem、unlockedName、unlockLoreで表示されます。クリックすると、そのダンジョンのパーティメニューが開きます。 criteriaが一致しないスロットは、ロック時の見た目で表示され、開けません。クライテリアは、メニューを開くプレイヤーごとに評価され、プレイヤーがクリックしたときにも再度評価されます。- 名前と説明文には、
{dungeon_name}、{players}、{max}、および PlaceholderAPI のプレースホルダーが使えます。{players}は、そのダンジョンの最初のロビーの人数です。 DUNGEON_INSTANCE_SLOTマーカーは、simple、paginated、scrollableのレイアウトに置きます。ベースのレイアウトがスクロール式なら、ダンジョンも一緒にスクロールします。DUNGEON_INSTANCE_SLOTマーカーが 1 つもない場合、ダンジョンは表示されません。
パーティメニュー
Dungeon Party Menu はロビーです。プレイヤーがグローバルメニューでダンジョンをクリックしたとき、または /typewriter dungeon instance-menu <instance> で開きます。アクション自体をトリガーしても、ヒントを表示する以外は何も起こらないため、NPC には接続しないでください。
どのメニューがどのダンジョンを担当するか。 dungeonInstance がそのダンジョンを指定しているパーティメニューが、そのダンジョンを担当します。dungeonInstance が空のパーティメニューは、他のどのメニューにも指定されていないすべてのダンジョンを担当します。別のダンジョン用に書かれたメニューが代わりに開くことはありません。合うものがない場合、プレイヤーに通知され、サーバーログに No dungeon_party_menu serves '<instance>' と出ます。そのため、ダンジョンごとに 1 つのメニュー、共有の 1 つのメニュー、またはその両方を持てます。
ダンジョンには、maxSimultaneousInstances と同じ数のロビーがあります。各ロビーは 1 つのアイテムです。lobbyItem を lobbyName で名付け、lobbyLore で説明します。ロビーが描画される場所:
simpleレイアウトのDUNGEON_LOBBY_SLOTマーカーがある場合(DUNGEON_INSTANCE_SLOTと同様に、複数を示すにはcount、direction、gapを使います)、各マーカーが次のロビーに置き換えられます。- マーカーがない場合、0 から数えてロビー
nは、列lobbyOffsetX + (n mod 9)、行lobbyOffsetY + (n div 9)に置かれます。
ロビーをクリックすると参加します。
lobbyName と lobbyLore のプレースホルダー | 値 |
|---|---|
{index} | ロビー番号(1 から)。 |
{players}, {max} | ロビーのプレイヤー数と、maxPartySize。 |
{player_names} | メンバーの名前。準備完了または未完了のプレフィックスとサフィックスで囲まれます。説明文のみ。 |
{ready_players}, {not_ready_players} | 人数。説明文のみ。 |
readyPlayerPrefix、readyPlayerSuffix、notReadyPlayerPrefix、notReadyPlayerSuffix は、{player_names} の名前に色を付けます。
buttonType | 動作 |
|---|---|
DUNGEON_LOBBY_SLOT | ロビーを表示する場所を示します。 |
DUNGEON_READY | 準備完了を切り替えます。プレイヤーが参加コストを満たしていない場合、誰も準備完了にならず、ロビーにはダンジョンの missingItemsMessage が表示されます。 |
DUNGEON_LEAVE | ロビーから退出し、プレイヤーが来たグローバルメニューに戻ります。 |
DUNGEON_AUTO_FILL | 空きのある最初の空でないロビーに参加します。 |
ランが始まるとき:
- ロビーの全員が準備完了で、ロビーに少なくとも
minPartySize人いる必要があります。 startCooldownSecondsのカウントダウンが進みます。誰かが準備を解除すると止まります。0の場合、ランはすぐに始まります。- 全プレイヤーのクライテリア、続いて参加コストが確認されます。
entryCostModeがLEADERの場合は、ロビーの最初のプレイヤーが支払います。GROUPの場合は、全員が支払います。アイテムは、誰も不足していない場合にのみ徴収されます。 - ランが作成され、プレイヤーがスポーン地点にテレポートされます。
カウントダウンなしで lobbyIdleKickSeconds(デフォルトは 120 秒)待機しているロビーは、空にされます。管理者は /typewriter dungeon force-start <instance> でロビーを手動で開始でき、これは最小グループ人数とクライテリアを免除します。
プレイヤーが待っている間、パーティメニューは待機中スコアボード(enableWaitingScoreboard、scoreboardTitle、{missing} を使う scoreboardWaiting、{time} を使う scoreboardCountdown)を表示できます。
他プラグインのパーティ。 MMOCore(独自のパーティモジュールを使用)、Parties、または Typewriter のパーティ拡張機能がインストールされている場合、Dungeon はそのパーティを読み取り、作成・統合・変更は一切行いません。プレイヤーがロビーに参加するとき、ロビーに全員分の空きがあれば、そのプレイヤーのパーティ全員が一緒に参加します。MMOCore がある場合は、それだけが使われます。
ボタンが使うコマンド
ボタンはサーバーコマンドを使いません。メニューシステムの内部ハンドラーを呼び出すので、プレイヤーに権限は不要で、手で入力するものもありません。
設定
拡張機能には設定ファイルがありません。ほとんどの設定はエントリにあります。アクションエントリ(Enter、Leave、Close、Complete)のメッセージと、ダンジョンインスタンスのメッセージ(missingItemsMessage)はフィールドです。ロビーの待機時間は、ダンジョンインスタンスの lobbyIdleKickSeconds フィールドです(デフォルトは 120、2 分)。
プレイヤーが読むそれ以外のテキストはすべて Typewriter のスニペットなので、コードに固定されたものはありません。Web パネル(スニペット)で変更や翻訳ができます。値は MiniMessage で、{...} のプレースホルダーは記載のとおり置き換えられます。デフォルトのままなら何も変わりません。
| ファミリー | キー(プレフィックスの後) |
|---|---|
content.dungeon_menu. | invalid_action, action_failed, in_instance, party_in_instance, global_in_instance, locked, lobby_unavailable, left_lobby, not_in_lobby, no_lobby_available, left_party, no_party_found, no_party_menu ({dungeon}), no_category, party_needs_dungeon |
content.dungeon_lobby. | idle_kick ({seconds}, {minutes}), party_sync, missing_items_fallback ({PlayerName}, {MissingQuantity}, {ItemName}。missingItemsMessage が空のときに使用), scoreboard_syncing |
content.dungeon_run.sidebar. | time_left ({seconds}), quest ({number})。サイドバーの行はプレーンテキストで、MiniMessage タグは取り除かれます。 |
content.dungeon_chest. | default_title (containerTitle が空のチェストのタイトル), trigger_chest_missing, trigger_not_manual |
content.dungeon_launch. | prefix (このファミリーの全テキストの前に付く), no_online_member, already_in_run ({player}), no_room_configuration, group_size ({size}, {min}, {max}), criteria_not_met ({player}), missing_cost と missing_cost_leader ({player}, {amount}, {item}), max_runs_reached, isolation_unavailable, generation_failed ({text}), failed |
content.dungeon_stats. | 統計プレースホルダーの表記: duration_format(トークン {h}、{m}、{mm}、{ss}、{SSS}。既定は {mm}:{ss})と missing_value(まだ存在しない値の表記。既定は -)。 |
content.dungeon_command. | /typewriter dungeon ... コマンドの返信: only_players.close, only_players.enter, only_players.leave, only_players.menu, only_players.force_start, only_players.edit_room (コンソールに送信), not_in_run, close.done, close.already_closing, enter.done ({dungeon}), leave.done ({dungeon}), instance_menu.join_failed, instance_menu.joined ({dungeon}), global_menu.not_configured ({category}), force_start.not_in_lobby, force_start.done ({dungeon}), room.invalid_index ({index}) |
content.dungeon_room., content.dungeon_room_template., content.dungeon_generated. | ルームエディタと、生成型ダンジョンの拒否メッセージ。 |
/typewriter dungeon ... コマンドの返信も、コマンドがスタッフ専用であってもスニペットです。ルームエディターの返信(addnode、removenode、save など)は content.dungeon_room. にあり、拒否された enter のテキストは content.dungeon_launch. のスニペットです。
アーティファクトは、plugins/Typewriter/ の下にデータを保存します。
| アーティファクト | 内容 |
|---|---|
| Dungeon Artifact | ダンジョンごと・プレイヤーごとの統計(artifactId のデフォルトは dungeon_data)。 |
| Active Dungeon Instance Artifact | 進行中のランの状態。リロードで失われないようにします。 |
| Dungeon Room Template | 生成型ダンジョンの 1 つのルームの保存済み構造。 |
| Dungeon Party Lobby Artifact | 機能しません。古いページが読み込めるように残してあります。 |
コマンド
Dungeon のコマンドはすべて /typewriter dungeon(/tw dungeon)の下にあります。どれも権限 typewriter.dungeon.admin が必要で、プレイヤーが実行する必要があります。
| コマンド | 説明 |
|---|---|
/typewriter dungeon enter <instance> | あなただけのランを作成し、そこにテレポートします。グループ人数、クライテリア、参加コスト、ラン数の上限は引き続き適用されます。 |
/typewriter dungeon leave <instance> | そのダンジョンのランから自分を外し、元いた場所に戻ります。 |
/typewriter dungeon close <instance> | そのダンジョンの自分のランを終了します(管理者による終了)。 |
/typewriter dungeon global-menu <category> | カテゴリに設定されたグローバルメニューを開きます。 |
/typewriter dungeon instance-menu <instance> | グループが入れる最初のロビーに参加し、パーティメニューを開きます。 |
/typewriter dungeon force-start <instance> | 準備完了、カウントダウン、最小グループ人数、クライテリアを待たずに、今いるロビーを開始します。 |
/typewriter dungeon room <room> edit | Dungeon Room のゲーム内ルームエディタを開きます。 |
/typewriter dungeon room <room> addnode | 足元にノードを追加します。 |
/typewriter dungeon room <room> removenode | 最後のノードを削除します。 |
/typewriter dungeon room <room> removenodeat <index> | 番号(1 から)でノードを削除します。 |
/typewriter dungeon room <room> save | ルームを保存します。 |
/typewriter dungeon room <room> cancel | 編集を破棄します。 |
leave と close は、指定したダンジョンのランに参加している必要があります。参加していない場合は「You are not in a run of this dungeon」と返信されます(スニペット content.dungeon_command.not_in_run)。以前の start サブコマンドは廃止されました。enter を使用してください。
生成型ダンジョンのルームテンプレートは、コマンドではなく Web パネル(artifactId フィールドのコンテンツエディタ)で編集します。生成型ダンジョンを参照してください。
ルームエディタ(固定型ダンジョン)
edit は、ホットバーにツールバーを備えたエディタを開きます。スロット 1 のブレイズロッドはノードを追加し(見ているブロックに、スニーク中は足元に)、スロット 2 のレッドストーンは最後のノードを削除し、スロット 8 のライムの染料は保存して終了します。スニークを素早く 2 回押すと、保存せずに終了します。ノードはパーティクルの輪郭付きのブロックとして表示され、スニークしながらノードをクリックすると削除できます。ノード 1 つで点のルーム(半径 0.5 ブロック)、2 つで線、3 つ以上で多角形になります。垂直方向の範囲は、最も低いノードと最も高いノードから決まり、verticalMargin が加わります。
権限
| 権限 | 許可する内容 |
|---|---|
typewriter.dungeon.admin | ルームエディタを含む、すべての /typewriter dungeon コマンド。 |
メニューの利用に、プレイヤーの権限は不要です。
統計
Dungeon は、ラン中に各プレイヤーが行ったことを数え、Dungeon Artifact ごとに 22 の統計として保存します。ランのカウンターはランが続く間保持され、各メンバーはランを離れたとき、またはランが終わったときに1 回だけ加算されます。1 回ごとの攻撃でディスクに書き込むことはなく、typewriter reload でも進行中のランのカウンターは保たれます。アーティファクトを共有するダンジョンは、同じ統計に加算されます。
| キー | 単位 | 内容 |
|---|---|---|
runs_started | 回数 | 開始したラン。ランに失敗しても、開始時に数えます。 |
runs_completed | 回数 | プレイヤーがまだ参加している状態で終了したラン。 |
best_time | 時間 | クリアしたランの最短時間(記録。最初のクリアまで値はありません)。 |
runs_timed_out | 回数 | プレイヤーがまだ参加している状態で制限時間が切れたラン。 |
runs_left | 回数 | プレイヤーが自分から離れたラン、または再接続の猶予が切れたラン。プレイヤーをランから外す死亡はここに数えません(deaths には残ります)。 |
mob_kills | 回数 | 倒したモブ。 |
damage_dealt | 体力 | モブに与えたダメージ。実際に体力を減らした分で、体力 2 の相手への 100 の一撃は 2 と数えます。 |
damage_taken | 体力 | 受けたダメージ。同じ上限があります(プレイヤーが持っていた体力と吸収)。 |
deaths | 回数 | 死亡。 |
time_played | 時間 | ランで過ごした時間。 |
completion_rate | 割合 | runs_completed を runs_started で割った値。読み取り時に計算し、パーセントで表記します。 |
current_health | 体力 | プレイヤーの現在の体力。値があるのはラン中だけで、保存されません。 |
best_run_kills | 回数 | 1 回のランで倒したモブの最多数(記録)。 |
best_run_damage | 体力 | 1 回のランで与えたダメージの最大値(記録)。 |
flawless_completions | 回数 | 死亡なしでクリアしたラン。 |
solo_completions | 回数 | メンバー 1 人で始めてクリアしたラン。 |
best_time_solo | 時間 | ソロでクリアしたランの最短時間。 |
health_regained | 体力 | 実際に回復した体力。足りなかった分を超えません。 |
rooms_entered | 回数 | 入ったルーム。1 回のランで 2 回入っても 1 回と数えます。 |
rooms_cleared | 回数 | Dungeon Clear Room でクリアしたルーム。そのルームにいたメンバーが対象です。 |
chests_opened | 回数 | 開けたルートチェスト。ルートを生成したプレイヤーについて、チェスト 1 つにつき 1 回。 |
waves_cleared | 回数 | クリアしたウェーブ。本当のウェーブだけが対象です。waves を定義した Dungeon Mob Spawn のグループです。 |
単位: 体力は体力ポイント(ハート 1 つが 2)、時間はスニペットで変えない限り mm:ss、割合はパーセントで表記します。
数えられる対象:
- 進行中のランのメンバーのうち、ランのワールド内で、
SURVIVALまたはADVENTUREのプレイヤーだけです。CREATIVEやSPECTATORのプレイヤーは何も数えられないため、ランを見ている管理者がランキングの首位に立つことはありません。 - 数えるモブは Dungeon Instance の
statsMobScopeで決まります。MARKED_ONLY(既定)は、そのランが生み出したモブ(dungeon_mob_runの印付き)だけです。分裂するスライムの欠片はキルに数えません。ANY_MOB_IN_RUN_WORLDは、他のプラグインが置いたボスなど、ランのワールドにいる他のモブも数えます。他のランを含むワールドを持つSHARED_WORLD_SLOTSでは拒否され、MARKED_ONLYが使われ、読み込み時に警告が出ます。 - 統計はアーティファクトごとに数えます。複数のアーティファクトにまたがる合計では、カウンターを足し合わせ、記録は最良のものを残します。同じ
artifactIdを持つ 2 つのアーティファクトは 1 つのファイルとして 1 回だけ数えます。
プレースホルダー、ファクト Player Dungeon Statistic で読み取れるほか、Dungeon Leaderboard Source を使って GUI のリーダーボードでランキングにできます(GUI 0.20 以降)。
プレースホルダー
PlaceholderAPI のプレースホルダーは、%typewriter_dungeon_…% というプレフィックスを使います。現在のランに関するプレースホルダーは、プレイヤーがランにいないとき、0 または空の値を返します。ただし %typewriter_dungeon_stat_KEY% とその _raw 形式はランの最中にしか置換されず、ラン外では書いたままの文字列で表示されます。ラン外でも使えるのは dungeon_total_KEY と dungeon_inst_ID_KEY だけです。
| プレースホルダー | 返す値 |
|---|---|
%typewriter_dungeon_remaining% | プレイヤーのランの残り秒数。 |
%typewriter_dungeon_remaining_formatted% | 残り時間を mm:ss で。 |
%typewriter_dungeon_players% | プレイヤーのランの人数。 |
%typewriter_dungeon_max% | プレイヤーのダンジョンの maxPartySize。 |
%typewriter_dungeon_list% | ランにいるプレイヤーの名前(カンマ区切り)。 |
%typewriter_dungeon_player_N_name% | ランの N 番目(1 から)のプレイヤーの名前。 |
%typewriter_dungeon_player_N_health%, …_maxhealth%, …_healthpercent% | N 番目のプレイヤーの体力、最大体力、割合。 |
%typewriter_dungeon_player_health_N% | N 番目のプレイヤーの Name: health/max。 |
%typewriter_dungeon_lobby_time% | プレイヤーのロビーのカウントダウンの残り秒数。_formatted を付けると mm:ss。 |
%typewriter_dungeon_attempts%, %typewriter_dungeon_completions%, %typewriter_dungeon_best% | プレイヤーが今いるダンジョンでの、挑戦回数、クリア回数、ベストタイム。 |
%typewriter_dungeon_total_attempts%, …_total_completions%, …_total_ratio% | 全ダンジョンの合計と、クリア率。 |
%typewriter_dungeon_inst_ID_attempts%, …_completions%, …_best% | エントリ id が ID のダンジョンについての同じ統計。id にはアンダースコアを含められません。 |
%typewriter_dungeon_stat_KEY%, …_stat_KEY_raw% | プレイヤーが今いるダンジョンのアーティファクトにある任意の統計。KEY は表のキーで、例は %typewriter_dungeon_stat_mob_kills% です。_raw は単位そのままの素の数値(ミリ秒、体力ポイント、千分率)で、値がなければ 0 です。 |
%typewriter_dungeon_total_KEY%, …_total_KEY_raw% | すべてのダンジョンにわたる同じ統計。 |
%typewriter_dungeon_inst_ID_KEY%, …_inst_ID_KEY_raw% | エントリ id が ID のダンジョンについての同じ統計。 |
current_health に値があるのは、ラン中の dungeon_stat_current_health だけです。時間はスニペット content.dungeon_stats.duration_format で、存在しない値は content.dungeon_stats.missing_value で表記します。
統計は、ダンジョンの artifact フィールドにリンクされた Dungeon Artifact から取得されます。Dungeon が自分で書き込みます(ランの開始時に挑戦回数、ランの完了時にクリア回数とベストタイム)。プレイヤーのベストタイムは、アーティファクトごとに 1 つだけ保存され、それを共有するすべてのダンジョンにまたがります。各ダンジョンに独自のベストタイムが必要なら、ダンジョンごとに専用のアーティファクトを用意してください。MMOProfiles が入っている場合、統計は MMOProfiles のプロファイルごとに、入っていない場合はプレイヤーごとに保存されます。設定は不要です。
エントリ
39 件のエントリー(拡張機能のソースから生成)。
アクション9
- Dungeon Clear RoomDungeon Clear Room
- Dungeon CloseDungeon Close
- Dungeon CompleteDungeon Complete
- Dungeon EnterDungeon Enter
- Dungeon Global MenuDungeon Global Menu
- Dungeon LeaveDungeon Leave
- Dungeon Party MenuDungeon Party Menu
- Dungeon Spawn MobsDungeon Spawn Mobs
- Loot Chest TriggerLoot Chest Trigger
イベント6
- On Dungeon CompleteWhen a dungeon run is completed
- On Dungeon Mob DeathWhen a dungeon mob dies
- On Dungeon Mobs ClearedWhen dungeon mobs are cleared
- On Dungeon Room EnterWhen a player enters a dungeon room
- On Dungeon Room LeaveWhen a player leaves a dungeon room
- On Dungeon StartWhen a dungeon run starts
ファクト4
- Dungeon Mobs AliveDungeon Mobs Alive
- Dungeon StatPlayer Dungeon Statistic
- IndungeonPlayer Inside Dungeon
- Indungeon InstancePlayer Inside Specific Dungeon
オーディエンス1
- Dungeon Run AudiencePlayers in a dungeon run
エンティティ1
- Dungeon NPC InstanceDungeon NPC Instance
グループ1
- Dungeon Run GroupPlayers of a dungeon run
アーティファクト4
- Active Dungeon Instance ArtifactActive Dungeon Instance Artifact
- Dungeon ArtifactUnified Dungeon Data Artifact
- Dungeon Party Lobby ArtifactDungeon Party Lobby Artifact
- Dungeon Room TemplateDungeon Room Template
マニフェスト13
- Dungeon AffixDungeon Affix
- Dungeon CategoryDungeon Category
- Dungeon Connector TypeDungeon Connector Type
- Dungeon GeneratorDungeon Generator
- Dungeon InstanceDungeon Instance
- Dungeon Leaderboard SourceDungeon Leaderboard Source
- Dungeon Loot ChestDungeon Loot Chest
- Dungeon Loot TableDungeon Loot Table
- Dungeon Mob SpawnDungeon Mob Spawn
- Dungeon RestrictionsDungeon Restrictions
- Dungeon RoomDungeon Room
- Dungeon Room ConfigDungeon Room Config
- Dungeon Room PoolDungeon Room Pool
トラブルシューティング
メニューが開かない。 GUI 拡張機能がない、または mainLayoutId が layoutPool のどのレイアウトの id とも一致していません。GUI をインストールし、id を確認してください。
ダンジョンがグローバルメニューに表示されない。 レイアウトに buttonType が DUNGEON_INSTANCE_SLOT のアイテムがない、またはマーカーが simple、paginated、scrollable 以外のレイアウトタイプにあります。
ボタンが何もしない、またはボタンのように見えない。 buttonType は大文字小文字を区別し、DUNGEON_FIND_PARTY、DUNGEON_INFO、DUNGEON_INSTANCE_SLOT、DUNGEON_LOBBY_SLOT、DUNGEON_READY、DUNGEON_LEAVE、DUNGEON_AUTO_FILL のいずれかでなければなりません。パーティメニューにあるグローバルのボタン、またはその逆は、無視されます。
ダンジョンが「ロック」と表示される。 カテゴリ内のそのスロットの criteria が、このプレイヤーに一致していません。プレイヤーのファクトで確認するか、リストを空にしてください。
ダンジョンをクリックしても何も表示されず、メニューも開かない。 そのダンジョンを担当するパーティメニューがありません。サーバーログで No dungeon_party_menu serves を確認し、dungeonInstance が空のもの、またはそのダンジョンを指定するものを作成してください。
「The dungeon cannot be started on this server.」 ダンジョンの隔離モードがここでは動作できません(例えば Advanced Slime Paper なしの SLIME_CLONE)。または、生成型ダンジョンを保持できません。他のモードへのフォールバックはありません。ランとワールドの隔離を参照してください。
「The group has N player(s): this dungeon needs X to Y.」 ロビーまたは enter コマンドが、minPartySize から maxPartySize の範囲外のグループで使われました。管理者はロビーから force-start を使えます。
「All the runs of this dungeon are taken.」 maxSimultaneousInstances 個のランがすでに進行中です。
プレイヤーが空の新しいワールドに到着する。 templateWorld が、サーバーのルートにあるワールドフォルダと一致していません。ワールドをまったく読み込めない場合、ログに Cannot teleport player … world '…' not found と出ます。
プレイヤーがランから追い出され続ける。 コマンド経由であっても、ランのワールドから離れると、プレイヤーはランから外されます。最後のプレイヤーが離れると、ランは終了します。
Loot Chest Trigger で発動した戦利品チェストが戻ってこない。 デフォルトの triggerMode の ONCE は、ランごとに一度です。同じランで複数回発動させるには REPEATABLE を使ってください。次のランはまっさらな状態で始まります。
NPC が表示されない。 生成型ダンジョンでは、NPC はランのルームの NPC マーカーを通してのみ表示されます。固定型ダンジョンでは、allowedDungeonIds と spawnLocation を確認してください。ダンジョン内のエンティティを参照してください。
生存しているモブがいないのに、ルームにモブが残っていない。 上限 maxAliveMobs がいくつかを保留している可能性があり、リロードすると拡張機能が数え直します。ルームがクリアされたかどうかの判断に Dungeon Mobs Alive を使わないでください。モブ死亡イベントを使ってください。
関連する拡張機能
- FakeBlock: その
INSTANCE_DIMENSION位置モードは、Dungeon のランのためのものです。 - GUI: グローバルメニューとパーティメニューのレイアウト。
- MMOCore: ロビーのパーティの取得元。
- 変更履歴と0.10 からの移行。