=begin FSM様「FSG_Storage」「FSG_Storage - Shop」の併用でバグを起こさせるスクリプト。 具体的には手持ちのアイテムが255個になります。 ・用意するもの (BUG_INDEX+1)種類以上のアイテム(武具は不可)、その他に11種類以上のアイテムか武具 ・やり方 @「保管する」で(BUG_INDEX+1)種類目のアイテムを選択し、倉庫に入れずキャンセル。 A255個にしたいアイテムにカーソルを合わせる(決定キーを押さない)。 B「引き出す」で11種類目より下(ウィンドウがスクロールするのが目印)のアイテムを全て 引き出す。 C「保管する」でカーソルを動かさず決定キーを押して全て保管する。 Dアイテム画面ではアイテムが存在しないが、一度メニューを切り替えると255個に なっている。 ・問題点 255個というのは本来管理できるものではなく、使用・装備・購入・売却などをすることに よって最大99個(ツクールデフォ)に戻ります。改善するには最大所持数を変更する スクリプト(FSG_Possessionとか)を使用しなくてはいけません。 作成:faida このスクリプトはFSM様の利用規約に従って使用してください。 =end # このインデックスの「アイテム」から始まる BUG_INDEX = 10 #============================================================================== # □ Game_Party #============================================================================== class Game_Party < Game_Unit #-------------------------------------------------------------------------- # ○ アイテムの設定 #-------------------------------------------------------------------------- def set_item(item, n); case item; when RPG::Item; @items[item.id] = n when RPG::Weapon; @weapons[item.id] = n when RPG::Armor; @armors[item.id] = n; end; end end #============================================================================== # □ Scene_FSG_Storage #============================================================================== class Scene_FSG_StorageShop < Scene_Shop #-------------------------------------------------------------------------- # ☆ 開始処理 #-------------------------------------------------------------------------- alias start_bug start unless $@ def start start_bug @bug_phase = 0 end #-------------------------------------------------------------------------- # ☆ 保管アイテム選択の更新 #-------------------------------------------------------------------------- alias update_sell_selection_bug update_sell_selection unless $@ def update_sell_selection update_sell_selection_bug @bug_phase = 0 if !Input.dir4.zero? && @bug_phase == 2 end #-------------------------------------------------------------------------- # ☆ 個数入力のキャンセル #-------------------------------------------------------------------------- alias cancel_number_input_bug cancel_number_input unless $@ def cancel_number_input cancel_number_input_bug if @command_window.index == 0 && @sell_window.index == BUG_INDEX && @bug_phase == 0 && @item.is_a?(RPG::Item); @bug_phase += 1 else; @bug_phase = 0; end end #-------------------------------------------------------------------------- # ☆ 個数入力の決定 #-------------------------------------------------------------------------- alias decide_number_input_bug decide_number_input def decide_number_input number = @number_window.number decide_number_input_bug case @command_window.index when 0 # 保管する if FSG::Storage.number(@item,@storage_index) == number && @bug_phase == 2 $game_party.set_item(@item, 255) end; @bug_phase = 0 when 1 # 引き出す if FSG::Storage.number(@item,@storage_index) == 0 && @bug_phase == 1 && @buy_window.index >= 11; @bug_phase += 1 else; @bug_phase = 0; end end end end