どういったものに需要があるかなど
スクリプト製作の参考にしたいので,
いいね!と思ったスクリプトにクリックお願いします.
スクリプトに丸ごと貼り付けていただければ使用できます.
まずこのスクリプトの概念の説明をします.
VXAceデフォルトの仕様ではアイテムはアイテムIDごとに個数(整数)で管理されています.
このスクリプトではアイテム一つ一つを別のオブジェクトとして管理します.
この一つ一つを拡張アイテムと呼ぶことにします.
なので,同じアイテムでも一つだけ効果が違ったり,強化したりすることが可能になります.
また,アイテムごとに最大所持数を変更でき,セグメントとよばれるアイテムをひとまとまりにする単位の個数もアイテムごとに指定できます.
例えば,最大所持数50,セグメントサイズ10のアイテムAは
A:10,A:10,A:10,A:10,A:10
と所持したり
A:10,A:5,A:6,A:5,A:5,A:8,A:8,A:1
と所持したりすることができます.
詳細設定から各種セグメントサイズのデフォルトを指定できます.
また,アイテムごとに設定するにはアイテムのメモ欄に以下の様に記述します.
すると,そのアイテムのセグメントサイズはがxになります.
セグメントサイズを1にするとそのアイテムは一つずつ個別に所持します.
詳細設定から各種最大所持数のデフォルトを指定できます.
また,アイテムごとに設定するにはアイテムのメモ欄に以下のように記述することで,そのアイテムの最大所持数をxにできます.
最大所持数をセグメントサイズの倍数にしておくとアイテムを綺麗にまとめられます.
このスクリプトでは拡張のためにスキルについてもセグメントを導入しています.
しかし,このスクリプト単体ではスキルの最大所持数やセグメントサイズを変えても利点は特にありません.
詳細設定のITEM_SELECT_EXTENDがtrueのとき,アイテム画面にてセグメントを選択すると拡張アイテム選択ウインドウが開き,セグメント内の任意の拡張アイテムを選択することができます.
ITEM_SELECT_EXTENDをfalseにするとセグメントを選択すると自動的にセグメント内の先頭のアイテムが選択されます.
セグメントサイズ1のアイテムのみしか効果に差異をつけないとわかっているような場合ではITEM_SELECT_EXTENDをfalseにしても良いでしょう.
アイテムの追加や売却などで同じ種類のセグメントが無駄に増えてきます.
このとき詳細設定でDEFLAGをtrueにしておけば「まとめる」コマンドが使用でき,セグメント数ができるだけ少なくなるようにまとめることができます.
この機能には「BMSP 複数選択機能」を使用していて,アイテム画面で複数選択ボタンを押すとまとめるためのウインドウが表示されます.
「全部まとめる」を選ぶと,選択しているアイテムのセグメントをすべてまとめます.
「選んでまとめる」を選ぶと,選択しているアイテムを基準にして同じ種類のセグメントを任意個選択し,それらをまとめることができます.
イベントコマンドでアイテムの減少を行うと,対応するセグメント一覧の最初から順番に削除されていきます.
イベントコマンド「アイテム選択の処理」は,詳細設定のITEM_SELECT_EXTENDがtrueのとき,選んだ拡張アイテムのアイテムオブジェクトが指定した変数に格納されます.
なので,通常の変数の大小による比較はできなくなるので注意してください.
なにも選ばなかった場合は通常通り0が格納されます.
ITEM_SELECT_EXTENDがfalseのときはアイテム選択の処理の挙動はデフォルトと同じです.
ただしこの場合は選んだアイテムIDしか得られないため,拡張アイテムを直接指定してアイテムを減少させたりすることはできなくなります.
詳細設定でSHOP_EXTENDをtrueにするとショップ画面での売却を拡張アイテムごとに行うことができます.
また,複数選択ボタンを押すことでセグメントを一気に指定してまとめて売却することができます.
SHOP_EXTENDがfalseの場合はデフォルトのショップ画面と同じ仕様になり,セグメント内のアイテムは先頭から順番に売却されます.
例えば武器だけセグメントサイズを1にして残りのアイテムはデフォルトのままで管理するので,いちいち拡張アイテム選択ウインドウいらないんだけど!などのような場合,NEW_SEGMENT,DEFLAG,SHOP_EXTEND,ITEM_SELECT_EXTENDをすべてfalseにすることでデフォルトの挙動に近づけることが可能です.
このスクリプトでは「RPG::BaseItem」「RPG::Skill」「RPG::Weapon」「RPG::Armor」「BattleManager」「Game_BaseItem」「Game_Actor」「Game_Party」「Game_Action」「Window_ItemList」「Window_SkillList」「Window_BattleItem」「Window_BattleSkill」「Window_EquipItem」「Window_KeyItem」「Window_Message」「Window_ShopSell」「Window_ShopNumber」「Scene_Shop」「Scene_ItemBase」「Scene_Item」「Scene_Skill」「Scene_Equip」「Scene_Battle」のメソッドを改変しています.