メインコンテンツまでスキップ

ItemsAdder

TypeWriter のイベント、目標、ファクトで ItemsAdder のブロック、家具、作物、HUD、アイテムを利用できます。

有料v1.7連携
必要TypeWriter0.9ItemsAdderQuest (TypeWriter extension)Basic (TypeWriter extension)

概要​

ItemsAdder を使うと、リソースパックを通じて、カスタムブロック、家具、アイテム、作物、HUD、エンティティをサーバーに追加できます。この拡張機能は、それらすべてを TypeWriter で使えるようにします。クエストでカスタム鉱石を壊させたり、カスタムランプを置かせたりでき、ダイアログでプレイヤーが家具に座ったことに反応でき、criteria でプレイヤーがカスタムの剣を持っているかを確認できます。

すべては、ItemsAdder の名前空間付き ID(namespace:id、たとえば my_pack:ruby_ore)を使います。ここでコンテンツが作られることはありません。ブロック、家具、アイテムは、これまでどおり ItemsAdder で定義し、その ID を TypeWriter のエントリで使います。

機能​

  • ブロックと家具のイベント — カスタムブロックや家具が、壊された、置かれた、操作されたときのトリガー。
  • 設置前イベント — 家具がスポーンする直前に発火するトリガー。
  • カスタムエンティティの死亡 — プレイヤーが ItemsAdder のカスタムエンティティを倒したときのトリガー。
  • カウントする目標 — カスタムブロックや家具の破壊や設置を、クエストの目標にできます。
  • アイテムのインベントリツール — ItemsAdder のアイテムを与えたり削除したりし、拾う、捨てる、消費するに反応します。
  • アイテムとワールドのファクト — 手に持っているアイテム、アイテム数、使用回数と残りの耐久値、見ている、または立っているブロック、見ている家具。
  • 作物と HUD のファクト — 作物の成長段階、作物が熟しているか、指定した名前の HUD が表示されているか。
  • 変数 — 手に持っているアイテム、ブロック、家具の ID とプロパティ、フォント画像のグリフ、レジストリの一覧。あらゆるテキストでそのまま使えます。
  • サウンドエントリ — TypeWriter がサウンドを求めるあらゆる場所で、ItemsAdder のサウンド ID を使えます。

インストール​

  1. ItemsAdder をインストールし、リソースパックを生成させます。これがないと、この拡張機能は読み込まれません。
  2. TypeWriter の Quest と Basic の拡張機能がインストールされていることを確認します。
  3. ストアから拡張機能をダウンロードし(上のパネルのボタンを参照)、JAR を plugins/Typewriter/extensions/ に置きます。
  4. サーバーを再起動します。

はじめに​

この手順では、プレイヤーにカスタム鉱石ブロックを 3 つ壊させるクエストを作ります。

  1. Web パネルで、Quest 拡張機能を使ってクエストを作成し、進行状況を保存するファクトを作ります(永続ファクトが適しています)。
  2. manifest ページで、Break Block 目標を追加します。
  3. quest に自分のクエストを、fact に進行状況のファクトを設定します。item にブロック ID(たとえば my_pack:ruby_ore)を、amount に 3 を設定します。任意のカスタムブロックを数えるには、item を空にします。
  4. display に、クエストトラッカーに表示する行(たとえば Mine ruby ore)を設定します。進行状況の (1/3) は自動的に追加されます。
  5. 任意: onComplete を、報酬を与えるシーケンスにリンクします。たとえば、Give Item で itemId を my_pack:ruby_pendant にします。
  6. Publish し、クエストを開始して、ブロックを壊します。

カウントではなく、1 回だけ反応したい場合は、イベントを使います。シーケンスページに On Custom Block Break エントリを追加し、blockId を入力して、その triggers を、実行したいエントリにリンクします。

ブロックの ID

ItemsAdder が読み込んでいる内容は、Registry IDs 変数、またはゲーム内の ItemsAdder のコマンドで確認でき、正確な名前空間付き ID をコピーできます。

仕組み​

イベントは、何が起きたかについてのデータを持っています。トリガーされたエントリは、ブロックや家具の ID とその位置、使われたクリック(ブロックのインタラクトの場合)、手に持っているアイテムを読み取れます。

目標は、各位置をプレイヤーごとに 1 回だけカウントします。同じ場所で同じブロックを再び壊したり置いたりしても、カウントは増えません。カウントされるのは、プレイヤーがリンクされたクエストをアクティブにしている間だけです。キャンセルされた行動(たとえば保護されたリージョンでのもの)は、カウントされず、イベントも発火しません。

設定​

クエストトラッカーの目標の行は、TypeWriter の 2 つのスニペットから作られ、TypeWriter のスニペットファイルで変更できます。

スニペットデフォルト
advancedQuest.display<display> <dark_gray>(<gray><current><dark_gray>/<gray><required><dark_gray>)
advancedQuest.completed<green>✔</green> <st><display></st> <dark_gray>(<gray><current><dark_gray>/<gray><required><dark_gray>)

エントリ​

35 件のエントリー(拡張機能のソースから生成)。

アクション2
イベント11
目標4
ファクト10
変数7
サウンド1

トラブルシューティング​

拡張機能がパネルに表示されない。 ItemsAdder がインストールされていないか、有効になっていません。すべてのエントリが ItemsAdder の API を呼び出すため、プラグインがないと拡張機能は読み込まれません。

イベントがまったく発火しない。 ID を確認してください。ID だけではなく、完全な namespace:id でなければなりません。空の ID はすべてに一致します。location を入力した場合は、その正確なブロック位置だけが一致します。別のプラグイン(たとえば保護プラグイン)によってキャンセルされたイベントは、無視されます。

目標が進まない。 プレイヤーがリンクされたクエストをアクティブにしていて、目標に fact が設定されている必要があります。同じブロック位置は、プレイヤーごとに 1 回しかカウントされません。

ファクトが常に 0 を返す。 手に持っているアイテムやブロックが、ItemsAdder のものではありません。ブロックを見るファクトは、range ブロック(デフォルトは 5)以内の最初のブロックだけをチェックします。使用回数と耐久値のファクトは、アイテムに使用回数やカスタムの耐久値がない場合、0 を返します。

Registry IDs 変数が空になる。 ItemsAdder は、バックグラウンドでコンテンツを読み込みます。変数は、ItemsAdder がアイテムの読み込み完了を通知するまで何も返さないため、起動中には読み取らないでください。

Give Item が何も与えない。 itemId が ItemsAdder に認識されていないため、アイテムが作られず、何も与えられません。アクションは 0 個与えたと報告します。入りきらない分は、dropOverflow がオフでない限り、プレイヤーの足元にドロップされます。

HUD のファクトが常に 0 になる。 HUD の ID が ItemsAdder に存在し、プレイヤーがそれを持っている必要があります。ItemsAdder は HUD を一覧表示できないため、ファクトは、指定した 1 つだけをチェックします。

関連する拡張機能​

  • Nexo と Craft Engine — 他のカスタムコンテンツプラグイン向けの、同じ連携。