Files

5.3 KiB

Items Base — アイテム、インベントリ、使い方

Items Base は、ゲームにアイテムと、それを入れるバッグを与えます。アイテムとは何か(名前・画像・価格・種類、そして使ったときに何が起きるか)を定義し、インベントリパネルを表示し、プレイヤーの所持品をセーブし、シナリオがアイテムを渡したり奪ったり確かめたりできるようにします。交易、料理、クラフト、装備、RPG マップはすべてこの上に成り立っています。

インベントリパネル

ツールバーのバッグ・アイコンで開きます。左の一覧でアイテムをクリックすると、右に詳しい情報が出ます。

RPG Plus で森のキノコを使う場面: 格子で選ばれたキノコ (×2)、右側の詳細 — 「対象指定」と「食料」のバッジ、説明「体力を 5 回復」、heal 5 のプロパティを持つ action/heal — そして「食べる」の後、対象一覧には 10/24 の体力の主人公。

  • 上部のタブは種類で絞り込みます(食料・素材・レシピ・クエスト)。検索欄と並び替えで格子をさらに狭められます。
  • 詳細には名前、種類のバッジ、価格、説明、スタック数、id、そしてアイテム自身のプロパティが出ます。
  • アクションボタンの名前はアイテムが決めます。使う、食料なら食べる、対象に使う、レシピを覚える、あるいはアイテムが定義した動詞(キノコは verb のおかげで食べると表示)。
  • 対象指定アイテムは、誰に使うか尋ねてきます。パーティのメンバーを選ぶかキャンセルします。
  • 捨てるは確認のうえスタックを捨てます。大事なアイテムは捨てられません。
  • 戦闘中は、使うのも捨てるのも行動中のキャラクターのアクションポイントを 1 消費します。戦闘外は無料です。

主人公を選んだ後: スタックは ×1 に減り、パネルは「使用しました: 森のキノコ → 主人公」と伝えます。

アクションができないとき — たとえば対象の体力がすでに満タン — には、アイテムは消費されず、パネルが理由を伝えます。

アイテムの定義

アイテムは、mod の items/ フォルダーに入る kind item の JSON ファイルで、画像はそのそばに置きます。こちらは上の画像のキノコ(RPG Demo のもの)です。

{
  "Kind": "item",
  "Items": [
    {
      "Id": "rpg_demo/mushroom",
      "Name": "rpg_demo/item/mushroom/name",
      "Description": "rpg_demo/item/mushroom/desc",
      "Cost": 2,
      "Sprite": "rpg_demo/forest_mushroom",
      "ItemType": "Food,TargetUsed",
      "ItemAction": "action/heal",
      "heal": 5,
      "verb": "ui/inventory/verb_eat"
    }
  ]
}
  • Name、Description — 翻訳キー。詳細に表示されます。
  • Cost — 価格。店で使われます。
  • Sprite — 画像 items/rpg_demo/forest_mushroom.png。
  • ItemType — 一つ以上の種類をカンマで並べます。Food、Resource、Quest、Recipe、Used(対象なしで使う)、TargetUsed(パーティのメンバーに使う)、CantDrop。
  • ItemAction — 使ったときに何が起きるか。action/heal はアイテムの heal の値だけ体力を回復します。最大値を超えず、倒れたキャラクターには決して使いません。ほかの mod もアクションを追加します。たとえば equipment の action/equip。
  • その他のキー(heal、verb)はアイテムのプロパティです。アクションが読み、詳細にも並びます。verb がアクションボタンの名前になります。

シナリオの中のアイテム

action item.add id=rpg_demo/mushroom count=2
when "item('rpg_demo/mushroom') >= 2" -> :enough
action item.remove id=rpg_demo/mushroom count=2
  • item.add はアイテムをバッグへ入れます(宝箱、贈り物、マップの拾い物)。count の既定値は 1 です。
  • item('id') はプレイヤーの所持数を比べます。when、選択肢の条件、クエスト、マップイベントで使えます。
  • item.remove はアイテムを奪います。足りなければ拒否するので、先に item('id') で確かめてください。

レシピ

レシピ(kind recipe)は Input と Output のアイテムと数を並べます。プレイヤーがどのレシピを覚えているかはこの mod が保持し、料理とクラフトが使います。

うまく動かないとき

  1. アイテムが名前ではなく id を表示する。 Name のキーを mod の locale ファイルに追加してください。
  2. アクションボタンがない。 アイテムには ItemType の Used か TargetUsed と、ItemAction が必要です。
  3. 使っても何も起きず、アイテムが残る。 アクションが拒否しました。回復なら対象の体力が満タンか、倒れています。
  4. item.add が何も足さない。 id が未知です。アイテムファイルの Id を確かめてください。