#============================================================================== # 「ショップ・商品追加分割」(ACE) ver1.1 # 製作者:奈々(なな) # へぷたなすくろーる http://heptanas.mamagoto.com/ # # ◇使用規約 # 使用される場合はスクリプト作成者として「奈々」を明記して下さい。 # スクリプトの改変は自由に行って頂いて構いませんが # その場合も元のスクリプトの作成者として名前を載せて下さい。 # また配布前に必ず、ブログにある利用規約を確認して下さい。 # #------------------------------------------------------------------------------ # # ショップの処理を「商品リスト追加」と「ショップに入る」の2つに分割します。 # これにより条件分岐などを使った商品の操作が簡単になります。 # # ・使い方 # イベントコマンドのショップの処理を行うと # ショップには入らずに「リスト」に商品を追加します。 # # ショップに入るためにはイベントコマンドの「スクリプト」を使います。 # (ショップに入ると「リスト」はリセットされます。) # list_shop(false) :売却も可能なショップ # list_shop(true) :購入のみのショップ # # ・特殊なコマンド # list_shop(false, false) :リストをリセットしない(売却あり) # list_shop(true, false) :リストをリセットしない(購入のみ) # $game_systemshop_list = [] :リストをその場でリセットする # #============================================================================== #============================================================================== # ■ Game_System #------------------------------------------------------------------------------ # システム周りのデータを扱うクラスです。セーブやメニューの禁止状態などを保存 # します。このクラスのインスタンスは $game_system で参照されます。 #============================================================================== class Game_System #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :shop_list # 売品リスト #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- alias n7_shoplist_initialize initialize def initialize n7_shoplist_initialize @shop_list = [] end end #============================================================================== # ■ Game_Interpreter #------------------------------------------------------------------------------ # イベントコマンドを実行するインタプリタです。このクラスは Game_Map クラス、 # Game_Troop クラス、Game_Event クラスの内部で使用されます。 #============================================================================== class Game_Interpreter #-------------------------------------------------------------------------- # ● ショップの処理 #-------------------------------------------------------------------------- def command_302 return if $game_party.in_battle goods = [@params] while next_event_code == 605 @index += 1 goods.push(@list[@index].parameters) end $game_system.shop_list += goods end #-------------------------------------------------------------------------- # ● ショップの処理(リストモード) #-------------------------------------------------------------------------- def list_shop(only_buy, clear = true) SceneManager.call(Scene_Shop) SceneManager.scene.prepare($game_system.shop_list, only_buy) Fiber.yield $game_system.shop_list = [] if clear end end