#==============================================================================
# 「ショップ・商品追加分割」(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