5.3 KiB
5.3 KiB
Items Base — アイテム、インベントリ、使い方
Items Base は、ゲームにアイテムと、それを入れるバッグを与えます。アイテムとは何か(名前・画像・価格・種類、そして使ったときに何が起きるか)を定義し、インベントリパネルを表示し、プレイヤーの所持品をセーブし、シナリオがアイテムを渡したり奪ったり確かめたりできるようにします。交易、料理、クラフト、装備、RPG マップはすべてこの上に成り立っています。
インベントリパネル
ツールバーのバッグ・アイコンで開きます。左の一覧でアイテムをクリックすると、右に詳しい情報が出ます。
- 上部のタブは種類で絞り込みます(食料・素材・レシピ・クエスト)。検索欄と並び替えで格子をさらに狭められます。
- 詳細には名前、種類のバッジ、価格、説明、スタック数、id、そしてアイテム自身のプロパティが出ます。
- アクションボタンの名前はアイテムが決めます。使う、食料なら食べる、対象に使う、レシピを覚える、あるいはアイテムが定義した動詞(キノコは
verbのおかげで食べると表示)。 - 対象指定アイテムは、誰に使うか尋ねてきます。パーティのメンバーを選ぶかキャンセルします。
- 捨てるは確認のうえスタックを捨てます。大事なアイテムは捨てられません。
- 戦闘中は、使うのも捨てるのも行動中のキャラクターのアクションポイントを 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 が保持し、料理とクラフトが使います。
うまく動かないとき
- アイテムが名前ではなく id を表示する。
Nameのキーを mod のlocaleファイルに追加してください。 - アクションボタンがない。 アイテムには
ItemTypeのUsedかTargetUsedと、ItemActionが必要です。 - 使っても何も起きず、アイテムが残る。 アクションが拒否しました。回復なら対象の体力が満タンか、倒れています。
item.addが何も足さない。 id が未知です。アイテムファイルのIdを確かめてください。

