<拡張> アイテム選択の処理

■ 概  要

  • ・ キーアイテム以外のものも選べるように拡張します。
  • ・ ヘルプウィンドウを表示する機能を追加します。

■ スクリーンショット


※ 画像は開発中のものです。

■ 更新履歴

■ スクリプト

■ 設定項目

■ 種類によるIDの増加値

イベントコマンド「アイテムの選択」で設定した変数に代入される値を設定します。

PLUS_ID = 0

RPG::Item, RPG::Weapon, RPG::Armor のいずれかのオブジェクトを代入します。
未選択の場合は、nil が代入されますので、参照時は0になります。

PLUS_ID = 1000

選択されたアイテムのIDに設定された値を加算した数値が代入されます。
未選択の場合は、0が代入されます。

 アイテム:アイテムのID
  武 器 :武器のID + PLUS_ID
  防 具 :防具のID + PLUS_ID * 2

例)ポーション : 1 ロングソード : 1020 バックラー : 2041

※ 使用方法でのサンプルなどは、基本的に PLUS_ID = 0 の設定のものです。

■ 行数の設定 (初期値)

ITEM_LINE = 4       # アイテム選択ウィンドウ
HELP_LINE = 0       # ヘルプウィンドウ ( 0 のとき非表示)

初期値を設定します。行数自体はゲーム中に変更できます。
ヘルプウィンドウでは、0 と設定するとウィンドウが非表示になります。

■ 表示位置の設定

POS_TOP = false

選択ウィンドウの表示位置を設定します。
trueなら上部にfalseなら下部に表示されます。

■ 使用方法

■ 選択カテゴリの設定

$game_message.item_choice_category = category

category
:all      .. すべての所持品
:all_item .. すべてのアイテム
:key_item .. キーアイテムのみ
:item     .. キーアイテム以外のアイテム
:weapon   .. すべての武器
:armor    .. すべての防具
:equip    .. 武器と防具
:sell     .. キーアイテム以外で価格が0でないもの
"keyword" .. メモ欄に <keyword> と書かれているもの

キーアイテム以外のアイテムを選択可能にするための設定です。
イベントコマンド「アイテム選択の処理」の前に実行してください。
この設定を省略した場合は、:key_item 設定となります。
※ アイテム選択の処理が終わると、この設定は初期化されます。

キーワード設定例:

■ ショップアイテムから選択する

$game_message.item_choice_from_goods = true

イベントコマンド「ショップの処理」で設定したアイテムから選択を行います。
スクリプト -> ショップの処理 -> アイテム選択の処理 という順で実行してください。
※ アイテム選択の処理が終わると、この設定は初期化されます。

■ 所持数を非表示にする

$game_message.item_choice_hide_number = true

アイテム名の横に表示される所持数を非表示にします。
※ アイテム選択の処理が終わると、この設定は初期化されます。

■ キャンセルを禁止する

$game_message.item_choice_cancel_disabled = true

アイテムを選択するまで処理が終了しません。
キャンセルしようとするとブザーが鳴ります。
カテゴリのアイテム所持数の取得」と併用してご使用ください。
※ アイテム選択の処理が終わると、この設定は初期化されます。
※ 選択できる項目がないと終了できなくなるので、ご注意ください。

■ 未所持アイテムも表示する

$game_message.item_choice_show_nothing = true

※ アイテム選択の処理が終わると、この設定は初期化されます。

■ カテゴリのアイテム所持数を取得する

$game_party.item_count(category)
※ category は、「選択カテゴリの設定」と同じものです。

■ 選択したアイテムの取得

"アイテム ID を受け取る変数" で設定したEV変数の内容は、
次のようなスクリプトで取得することができます。
$game_variables[ID]
このEV変数の情報を使ってアイテム情報を得るわけですが、
アイテムの取得方法は、PLUS_ID の設定によって異なります。

PLUS_ID = 0
EV変数には、アイテムのデータが格納されています。
上記の方法でEV変数を参照することでアイテムのデータを取得できます。
データそのものが格納されているので、スクリプトを多用することになります。
item = $game_variables[ID]
アイテムの各種情報取得例
アイテムの種類による分岐例
PLUS_ID = 1000
EV変数には、アイテムのIDっぽいものが格納されています。
アイテムのデータでもIDでもないので、
これらの情報を取得するには、さらに処理が必要になります。
ただし、アイテムのIDと種類はスクリプトなしで取得できます。

もし、アイテムのデータが必要な場合は、次のような方法で取得できます。
id   = $game_variables[ID] % 1000
kind = $game_variables[ID] / 1000
# アイテム
item = $data_items[id]   if kind == 0
# 武器
item = $data_weapons[id] if kind == 1
# 防具
item = $data_armors[id]  if kind == 2
PLUS_ID = 1000 時のイベントサンプル
アイテムの情報取得例
上記の方法で取得したアイテムのデータは、次のような使い方ができます。
ID           .. item.id
名前           .. item.name
アイコンの番号 .. item.icon_index
価格           .. item.price
アイテムの増減 .. $game_party.gain_item(item, 増減数)
アイテムか?   .. item.kind_of?(RPG::Item)
武器か?       .. item.kind_of?(RPG::Weapon)
防具か?       .. item.kind_of?(RPG::Armor)
※ 説明のため item という変数を使用しています。
実際に使用する場合は、サンプルのようにEV変数を使用してください。

■ アイテム所持数を取得する

$game_party.item_number(item)
※ item は、アイテムのデータです。詳しくはこちらをご覧ください。

選択されたアイテムを使用する場合は、以下のようにします。
$game_party.item_number($game_variables[ID])
ID は、イベントコマンド「アイテム選択の処理」で設定した変数の番号です。

アイテムの ID で調べるには、以下のようにします。
 アイテム .. $game_party.item_number($data_items[ID])
 武  器 .. $game_party.item_number($data_weapons[ID])
 防  具 .. $game_party.item_number($data_armors[ID])

■ アイテムを増減する

$game_party.gain_item(item, 増減数)

※ item は、アイテムのデータです。詳しくはこちらをご覧ください。
※ 減らす場合は、マイナス値で指定してください。

■ アイテム選択ウィンドウの行数を変更する

$game_message.item_choice_line = 行数

■ ヘルプウィンドウの行数を変更する

$game_message.item_choice_help_line = 行数
行数を 0 にすると、ヘルプウィンドウが非表示になります。