新しいスキルやアイテムを追加したとき、選択画面において一番下に置かれるのが嫌で
作ってみました。
・仕様
アイテム、武器、防具、スキルのウィンドウに表示される順番を設定できます。
・テストゲーム
ダウンロード
・スクリプト
DataManager
RPG::BaseItem
Game_Actor
Game_Party
上の3つをまとめたもの
composed_scripts
・導入法
DataManagerのself.init内のcreate_game_objectsの下の辺りにload_normal_databasetakoitem_order
を挿入します。
例
・使い方
新しく導入したDataManager内のload_normal_databasetakoitem_orderにおいて
$item_order_item_type_switchを1にすると武器の武器タイプや防具の装備タイプによってブロックに分かれます。0にすると無効です。
$data_items[
id].order_group = グループ名(文字列、""でくくること、例 "pendant")で
id番目アイテムの所属するグループを決めます。
グループごとにブロックを作ります。
$order_group_type[グループ名] =
aで
aの値が大きいほどグループ全体が後ろに配置されます。
グループに所属していないアイテムのグループは0となります。
$data_items[
id].order_priority =
a で
aの値が大きいほど
id番目アイテムはグループ内の後ろに配置されます。デフォルトは0です。
武器は$data_weapons[id].order_group、$data_weapons[id].order_priority
防具は$data_armors[id].order_group、$data_armors[id].order_priority
スキルは$data_armors[id].order_group、$data_armors[id].order_priorityで同様に定められます。
order_priorityやorder_groupによる値が等しい場合はアイテムidの順となります。
影響の大きさはorder_group > order_priority > idとなります。
order_priority や$order_group_typeは常識的な範囲内だと問題ないのですが
絶対値があまりにも大きい場合はうまくいかなくなります。
ちなみに計算式はaをアイテムor武器or防具orスキルとして
$order_group_type[a.order_group] * 100000 + a.order_priority * 1000 + a.id
の小さい順に並べます。
・使用例
新しくスキルにダイヤモンドダストというスキルを追加します。
そうすると最後に置かれるのでサンダーより後ろになってしまいます。
そこで
$order_group_type["ice"] = 2
$order_group_type["thunder"] = 3
$data_skills[55].order_group = "ice"
$data_skills[56].order_group = "ice"
$data_skills[57].order_group = "ice"
$data_skills[59].order_group = "thunder"
$data_skills[127].order_group = "ice"
とすると
となります。
さらに今回のダイヤモンドダストは単体魔法なのでアイス2の後ろの配置したいので
$data_skills[57].order_priority = 1
とすると(57はブリザードのid)
のようにブリザードがアイスの中で一番最後になります。