MMOItems
概要
MMOItems 拡張機能は、MMOItems プラグインを TypeWriter に接続します。アイテムを、MMOItems のタイプ(たとえば SWORD)と ID で選ぶと、TypeWriter はそれを与えたり、取り上げたり、数えたりでき、プレイヤーがそれをクラフトしたり、使ったり、装備したり、ジェムをはめ込んだりしたときに反応できます。
この拡張機能には、Advanced Tooltip System も含まれます。これは、プレイヤーに送るパケットとして、MMOItems のアイテムのロアをその場で書き換えます。そのため、1 つのアイテムで、複数のページ、ライブの「要件を満たしている」マーク、別のアイテムとのステータス比較を表示できます。保存されているアイテム自体は、決して変更されません。
すべては Web パネルで設定します。アイテムのタイプと ID は、MMOItems の設定から候補として表示されます。
機能
- アイテムの付与と削除 — 1 人のプレイヤー、またはグループ全体に対して、リストまたはファクトから、MMOItems のアイテムを配ったり取り上げたりします。
- アイテムのカウント — ファクトが、インベントリ(防具、オフハンド、カーソル上のものを含む)やメインハンドにある、一致するアイテムを数えます。
- 使用イベントと目標 — MMOItems のアイテムの右クリックや消費に反応します。
- クラフトイベントと目標 — MMOItems のクラフトステーションで作られたアイテムに反応します。ステーションでの絞り込みも可能です。
- ジェムストーンのイベントと目標 — アイテムに適用されたジェムストーンに反応します。対象アイテムとジェムで絞り込めます。
- 装備の目標 — 防具スロットに身につけた MMOItems の装備品を数えます。
- アビリティ発動の目標 — MMOItems のアビリティの発動回数を数えます。
- アイテム所持の目標 — プレイヤーが選んだアイテムを十分に持っているときに完了します。完了時のモディファイアを設定できます。
- アイテム変数 — アイテムが求められるあらゆる場所で、MMOItems のアイテムを使えます。
- 高度なツールチップ — 複数ページのロア、要件マーク、ステータス比較、カテゴリアイコン。
インストール
- MMOItems とそのライブラリである MythicLib をインストールします。ツールチップシステムの要件マークで、クラス、レベル、職業を確認したい場合は、MMOCore もインストールします。
- TypeWriter の公式 Quest 拡張機能をインストールします(目標に必要です)。
- ストアから拡張機能を入手し(上のサマリーパネルのボタンを参照)、JAR を
plugins/Typewriter/extensions/に置きます。 - サーバーを再起動します。TypeWriter 0.9 は PacketEvents に依存しており、ツールチップシステムはこれを使ってアイテムのロアを書き換えます。
はじめに
錬金ステーションでポーションをクラフトしたプレイヤーに、剣を報酬として与えます。
- TypeWriter の Web パネルで sequence ページを開き、Give MMOItem アクションを追加します。
itemsは空のままにします。itemに、type(たとえばSWORD)とid(たとえばSTEEL_BLADE)を設定し、amountを1にします。- static ページを開き、Craft Objective を追加します。
quest、display、amountを入力し、factに進行状況を保存する永続ファクトを設定します。 itemsに、クラフトされる MMOItems のアイテムを追加し(空の場合は任意のアイテム)、必要に応じて、MMOItems のステーション ID をstationIdsに指定します。onCompleteを Give MMOItem アクションに設定し、パブリッシュします。
進行状況を追跡せずに、1 回だけ反応したい場合は、代わりに Craft Event を使い、その triggers に Give アクションをリンクします。
イベントとツールチップは、クリエイティブモードのプレイヤーを無視します。サバイバルまたはアドベンチャーのプレイヤーでテストしてください。
仕組み
アイテムの照合は、MMOItems のタイプと ID を、大文字と小文字を区別せずに比較します。タイプと ID が空の場合は、任意の MMOItems のアイテムに一致します。MMOItems のアイテムではないものは、決して一致しません。
fact フィールドに基づく目標(クラフト、使用、装備、ジェムストーン、アビリティ発動、作業台を開く)は、進行状況を永続的な(キャッシュ可能な)ファクトに書き込み、amount に達したときに、onComplete を 1 回トリガーします。
高度なツールチップ
manifest ページに Advanced Tooltip System エントリを追加して、パブリッシュします。これは、クリエイティブモード以外の全プレイヤーについて、インベントリ、ホットバー、コンテナ内のすべての MMOItems のアイテムに適用されます。
ページ分割と高度なロアはサバイバルとアドベンチャーでのみ適用されます。クリエイティブでは、MMOItems 元のロアがタグを含めてそのまま表示されます。クリエイティブクライアントは表示したとおりにアイテムを送り返すため、ロアを書き換えると実際のアイテムが恒久的に変わってしまうからです。
システムが無効の場合、overrideDefaultLore がオフの場合、またはエントリが公開されていない場合は、タグが削除され、ロア全体が 1 ページに表示されます。
MMOItems のアイテムのロアを(MMOItems のアイテムエディタまたはその設定で)編集し、次のタグを追加します。
| タグ | 効果 |
|---|---|
<page_break> | 新しいページを開始します。空のページは破棄されます。 |
<category_image> | アイテムタイプについて、categoryImages に設定されたアイコンに置き換えられます。 |
<pagination_indicator> | paginationIndicator に置き換えられます。 |
<comparison_indicator> | comparisonIndicator に置き換えられます。 |
<requirement_met> と <requirement_not_met> | どちらか一方だけが表示され、requirementMetSymbol または requirementNotMetSymbol が使われます。 |
<comparison_value> と <comparison_sign> | 比較の基準アイテムとのステータスの差と、正の場合の +。 |
ページと比較はキーで操作し、paginationKeybind(デフォルトは SWAP_OFFHAND、F キー)と comparisonKeybind(デフォルトは SNEAK)で設定します。指定できる値は、SWAP_OFFHAND、DROP、SNEAK、SHIFT_LEFT、SHIFT_RIGHT、LEFT_CLICK、RIGHT_CLICK、MIDDLE_CLICK です。
- MMOItems のアイテムでページ送りのキーを押すと、誤操作を避けるため、1 ページしかないアイテムであっても、常にバニラの動作(入れ替え、ドロップ、クリック)がキャンセルされます。ページは 1 ページ目に戻って循環し、押す間に短いクールダウンがあります。
- アイテムで比較キーを押すと、そのアイテムが比較の基準に設定されます。同じアイテムで再び押すと、解除されます。比較されるのは、同じ MMOItems タイプのアイテムだけで、基準はインベントリを閉じると解除されます。
- 要件は、MMOCore のデータに対してチェックされます。レベル、クラス、職業レベル、権限です。要件が 1 つでも満たされない場合、すべての
<requirement_not_met>が表示されます。
目標の表示形式
クエストトラッカーに表示される目標の行は、コードに固定されていません。plugins/Typewriter/snippets.yml で編集する TypeWriter のスニペットから読み込まれます。プレースホルダー: <display>(目標の display フィールド)、<current>、<required>。PlaceholderAPI のプレースホルダーも解析されます。
| スニペット | 使用元 | デフォルト |
|---|---|---|
advancedQuest.display | Craft、Use、Equip、Gem Stone、Ability Cast、Open Crafting Table の各目標(進行中) | <display> (<current>/<required>)(グレー系) |
advancedQuest.completed | 同じ目標(amount に達したとき) | ✔、続いて取り消し線付きの <display> と進捗 |
mmoitems.countObjective.display | Mmoitems Count Objective(進行中) | <display> (<current>/<required>)(グレー系) |
mmoitems.countObjective.completed | 同じ目標(amount に達したとき) | 緑の取り消し線付き <display>、続いて進捗 |
2 つの advancedQuest.* キーは、他の BTC の目標系エクステンションと共有されています。1 回の編集で、すべてのスタイルが変わります。
エントリ
16 件のエントリー(拡張機能のソースから生成)。
アクション3
- Give Mmoitem ActionGive MMOItem
- Open Crafting Table ActionOpen Crafting Table
- Remove Mmoitem ActionRemove MMOItem
イベント3
- Mmoitems Gem Stone Apply EventMMOItems Gem Stone Apply Event
- Mmoitems Item Craft EventMMOItems Item Craft Event
- Use Mmoitem EventUse MMOItem Event
目標7
- Mmoitems Ability Cast ObjectiveCast MMOItems abilities
- Mmoitems Count ObjectiveIdentify and count specific MMOItems from a fact
- Mmoitems Gem Stone Apply ObjectiveMMOItems Gem Stone Apply Objective
- Mmoitems Item Craft ObjectiveMMOItems Item Craft Objective
- Mmoitems Item Equip ObjectiveEquip MMOItems
- Open Crafting Table ObjectiveOpen Crafting Table Objective
- Use Mmoitem ObjectiveUse MMOItem Objective
ファクト1
- Mmoitems Count FactCount MMOItems in player's inventory or hand
変数1
- Mmoitem VariableMMOItem Identifier
マニフェスト1
- Advanced Tooltip ConfigAdvanced Tooltip System
トラブルシューティング
パネルで、アイテムのタイプまたは ID の一覧が空になる。 一覧は、稼働中のサーバーの MMOItems の設定から取得されます。MMOItems が読み込まれていて、そのタイプのテンプレートが少なくとも 1 つあることを確認し、パネルでページを開き直してください。
Give MMOItem が何もしない。 アクションは、コンソールから mmoitems give <type> <id> <player> <amount> を実行します。不明な type のアイテムは、通知なくスキップされるため、タイプのつづりを確認してください。fact が設定されている場合は、そのファクトが提供するアイテム(item / items が入力されている場合は、それに一致するもの)だけが、アクションの amount で与えられます。
Remove MMOItem が何も取り上げない。 デフォルトでは、インベントリだけがスキャンされます(checkInventory がオン、checkHand がオフ)。インベントリのスキャンには、防具、オフハンド、カーソル上のものが含まれます。メインハンドから先に取り上げるには、checkHand をオンにします。
クラフト目標がまったく進まない。 デフォルトでは、即時レシピとクラフトキューだけがカウントされます。detectUpgradeRecipe は存在しますが、現在のコードでは、アップグレードの結果はカウントされません。また、ステーション ID(stationIds。従来の stationId と統合されます)と、fact に永続ファクトがリンクされていることも確認してください。
クリエイティブモードで、イベントと目標が発火しない。 使用、クラフト、ジェムストーンのイベントは、クリエイティブモードのプレイヤーに対しては早期に終了し、ツールチップシステムも無効になります。サバイバルでテストしてください。
ツールチップのタグがテキストとして表示される、またはページが切り替わらない。 まず、プレイヤーがクリエイティブでないか確認してください。クリエイティブではロアがそのまま残ります。ページが切り替わるのは、Advanced Tooltip System エントリが isEnabled と overrideDefaultLore をオンにして公開されている場合だけです。それ以外ではタグが削除され、ロアは 1 ページのままです。既定の F キーが他のプラグインと競合する場合は、paginationKeybind で別のキーを選んでください。
要件マークが常に満たされていると表示される。 チェックは、MMOCore のプレイヤーデータを読み取ります。MMOCore がない場合(またはプロファイルを持たないプレイヤーの場合)、チェックは「満たしている」にフォールバックします。
関連する拡張機能
- MMOCore — 同じ Phoenix Development の RPG スイートの、クラス、職業、スキル。
- MMO Inventory — MMOInventory との連携。Give と Remove アクションの、アイテムを提供するファクトとして使えます。