#============================================================================== # 「メニューDEコモン」(ACE) ver1.0 # 製作者:奈々(なな) # へぷたなすくろーる http://heptanas.mamagoto.com/ # # ◇使用規約 # 使用される場合はスクリプト作成者として「奈々」を明記して下さい。 # このスクリプトを改変したり、改変したものを配布するなどは自由ですが # その場合も元のスクリプトの作成者として名前は載せて下さい。 # その他、詳しい利用規約はブログを参照して下さい。 # #------------------------------------------------------------------------------ # # メニューを開いたときと閉じたときにコモンイベントを起動できます。 # メニュー画面だけでなく、アイテム画面や装備画面などにも設定可能です。 # 但し、当然ながら使えるイベントコマンドは限られています。 # (メッセージ、ピクチャ、キャラクターなどはそもそも存在しないので) # # 使い方は初期設定で、対応する項目にコモンイベントの番号を指定します。 # マイナスの数を指定した場合は、「メニュー中1回起動」設定となります。 # (メニューを閉じてマップ画面に戻るまでに、1回しか起動しない) # # メニュー画面終了時のみ、「メニュー中1回起動」は最初の1回ではなく # マップ画面に戻るときだけ(最後の1回)起動する設定です。 # # メニュー画面は他の画面を開いたり閉じたりするたびに # 終了と開始が行われますのでタイミングに注意して下さい。 # #============================================================================== # ◇初期設定 module Nana_MenuDECommon MENU_S = 0 #メニュー画面開始時 MENU_E = 0 #メニュー画面終了時 ITEM_S = 0 #アイテム画面開始時 ITEM_E = 0 #アイテム画面終了時 SKILL_S = 0 #スキル画面開始時 SKILL_E = 0 #スキル画面終了時 EQUIP_S = 0 #装備画面開始時 EQUIP_E = 0 #装備画面終了時 STATUS_S = 0 #ステータス画面開始時 STATUS_E = 0 #ステータス画面終了時 SAVE_S = 0 #セーブ画面開始時 SAVE_E = 0 #セーブ画面終了時 end #============================================================================== #============================================================================== # ■ Scene_Menu #------------------------------------------------------------------------------ # メニュー画面の処理を行うクラスです。 #============================================================================== class Scene_Menu < Scene_MenuBase #-------------------------------------------------------------------------- # ● 開始処理 #-------------------------------------------------------------------------- alias nmdec_start start def start if Nana_MenuDECommon::MENU_S > 0 common_event = $data_common_events[Nana_MenuDECommon::MENU_S] @interpreter = Game_Interpreter.new @interpreter.setup(common_event.list, 0) @interpreter.update end if Nana_MenuDECommon::MENU_S < 0 && $game_system.nmdec_switchs[0] == nil common_event = $data_common_events[-(Nana_MenuDECommon::MENU_S)] $game_system.nmdec_switchs[0] = true @interpreter = Game_Interpreter.new @interpreter.setup(common_event.list, 0) @interpreter.update end nmdec_start end #-------------------------------------------------------------------------- # ● 終了処理 #-------------------------------------------------------------------------- alias nmdec_terminate terminate def terminate if Nana_MenuDECommon::MENU_E > 0 common_event = $data_common_events[Nana_MenuDECommon::MENU_E] @interpreter = Game_Interpreter.new @interpreter.setup(common_event.list, 0) @interpreter.update end if Nana_MenuDECommon::MENU_E < 0 && SceneManager.scene_is?(Scene_Map) common_event = $data_common_events[-(Nana_MenuDECommon::MENU_E)] $game_system.nmdec_switchs[1] = true @interpreter = Game_Interpreter.new @interpreter.setup(common_event.list, 0) @interpreter.update end nmdec_terminate end end #============================================================================== # ■ Scene_Item #------------------------------------------------------------------------------ # アイテム画面の処理を行うクラスです。 #============================================================================== class Scene_Item < Scene_ItemBase #-------------------------------------------------------------------------- # ● 開始処理 #-------------------------------------------------------------------------- alias nmdec_start start def start if Nana_MenuDECommon::ITEM_S > 0 common_event = $data_common_events[Nana_MenuDECommon::ITEM_S] @interpreter = Game_Interpreter.new @interpreter.setup(common_event.list, 0) @interpreter.update end if Nana_MenuDECommon::ITEM_S < 0 && $game_system.nmdec_switchs[2] == nil common_event = $data_common_events[-(Nana_MenuDECommon::ITEM_S)] $game_system.nmdec_switchs[2] = true @interpreter = Game_Interpreter.new @interpreter.setup(common_event.list, 0) @interpreter.update end nmdec_start end #-------------------------------------------------------------------------- # ● 終了処理 #-------------------------------------------------------------------------- alias nmdec_terminate terminate def terminate if Nana_MenuDECommon::ITEM_E > 0 common_event = $data_common_events[Nana_MenuDECommon::ITEM_E] @interpreter = Game_Interpreter.new @interpreter.setup(common_event.list, 0) @interpreter.update end if Nana_MenuDECommon::ITEM_E < 0 && $game_system.nmdec_switchs[3] == nil common_event = $data_common_events[-(Nana_MenuDECommon::ITEM_E)] $game_system.nmdec_switchs[3] = true @interpreter = Game_Interpreter.new @interpreter.setup(common_event.list, 0) @interpreter.update end nmdec_terminate end end #============================================================================== # ■ Scene_Skill #------------------------------------------------------------------------------ # スキル画面の処理を行うクラスです。処理共通化の便宜上、スキルも「アイテム」 # として扱っています。 #============================================================================== class Scene_Skill < Scene_ItemBase #-------------------------------------------------------------------------- # ● 開始処理 #-------------------------------------------------------------------------- alias nmdec_start start def start if Nana_MenuDECommon::SKILL_S > 0 common_event = $data_common_events[Nana_MenuDECommon::SKILL_S] @interpreter = Game_Interpreter.new @interpreter.setup(common_event.list, 0) @interpreter.update end if Nana_MenuDECommon::SKILL_S < 0 && $game_system.nmdec_switchs[4] == nil common_event = $data_common_events[-(Nana_MenuDECommon::SKILL_S)] $game_system.nmdec_switchs[4] = true @interpreter = Game_Interpreter.new @interpreter.setup(common_event.list, 0) @interpreter.update end nmdec_start end #-------------------------------------------------------------------------- # ● 終了処理 #-------------------------------------------------------------------------- alias nmdec_terminate terminate def terminate if Nana_MenuDECommon::SKILL_E > 0 common_event = $data_common_events[Nana_MenuDECommon::SKILL_E] @interpreter = Game_Interpreter.new @interpreter.setup(common_event.list, 0) @interpreter.update end if Nana_MenuDECommon::SKILL_E < 0 && $game_system.nmdec_switchs[5] == nil common_event = $data_common_events[-(Nana_MenuDECommon::SKILL_E)] $game_system.nmdec_switchs[5] = true @interpreter = Game_Interpreter.new @interpreter.setup(common_event.list, 0) @interpreter.update end nmdec_terminate end end #============================================================================== # ■ Scene_Equip #------------------------------------------------------------------------------ # 装備画面の処理を行うクラスです。 #============================================================================== class Scene_Equip < Scene_MenuBase #-------------------------------------------------------------------------- # ● 開始処理 #-------------------------------------------------------------------------- alias nmdec_start start def start if Nana_MenuDECommon::EQUIP_S > 0 common_event = $data_common_events[Nana_MenuDECommon::EQUIP_S] @interpreter = Game_Interpreter.new @interpreter.setup(common_event.list, 0) @interpreter.update end if Nana_MenuDECommon::EQUIP_S < 0 && $game_system.nmdec_switchs[6] == nil common_event = $data_common_events[-(Nana_MenuDECommon::EQUIP_S)] $game_system.nmdec_switchs[6] = true @interpreter = Game_Interpreter.new @interpreter.setup(common_event.list, 0) @interpreter.update end nmdec_start end #-------------------------------------------------------------------------- # ● 終了処理 #-------------------------------------------------------------------------- alias nmdec_terminate terminate def terminate if Nana_MenuDECommon::EQUIP_E > 0 common_event = $data_common_events[Nana_MenuDECommon::EQUIP_E] @interpreter = Game_Interpreter.new @interpreter.setup(common_event.list, 0) @interpreter.update end if Nana_MenuDECommon::EQUIP_E < 0 && $game_system.nmdec_switchs[7] == nil common_event = $data_common_events[-(Nana_MenuDECommon::EQUIP_E)] $game_system.nmdec_switchs[7] = true @interpreter = Game_Interpreter.new @interpreter.setup(common_event.list, 0) @interpreter.update end nmdec_terminate end end #============================================================================== # ■ Scene_Status #------------------------------------------------------------------------------ # ステータス画面の処理を行うクラスです。 #============================================================================== class Scene_Status < Scene_MenuBase #-------------------------------------------------------------------------- # ● 開始処理 #-------------------------------------------------------------------------- alias nmdec_start start def start if Nana_MenuDECommon::STATUS_S > 0 common_event = $data_common_events[Nana_MenuDECommon::STATUS_S] @interpreter = Game_Interpreter.new @interpreter.setup(common_event.list, 0) @interpreter.update end if Nana_MenuDECommon::STATUS_S < 0 && $game_system.nmdec_switchs[8] == nil common_event = $data_common_events[-(Nana_MenuDECommon::STATUS_S)] $game_system.nmdec_switchs[8] = true @interpreter = Game_Interpreter.new @interpreter.setup(common_event.list, 0) @interpreter.update end nmdec_start end #-------------------------------------------------------------------------- # ● 終了処理 #-------------------------------------------------------------------------- alias nmdec_terminate terminate def terminate if Nana_MenuDECommon::STATUS_E > 0 common_event = $data_common_events[Nana_MenuDECommon::STATUS_E] @interpreter = Game_Interpreter.new @interpreter.setup(common_event.list, 0) @interpreter.update end if Nana_MenuDECommon::STATUS_E < 0 && $game_system.nmdec_switchs[9] == nil common_event = $data_common_events[-(Nana_MenuDECommon::STATUS_E)] $game_system.nmdec_switchs[9] = true @interpreter = Game_Interpreter.new @interpreter.setup(common_event.list, 0) @interpreter.update end nmdec_terminate end end #============================================================================== # ■ Scene_Save #------------------------------------------------------------------------------ # セーブ画面の処理を行うクラスです。 #============================================================================== class Scene_Save < Scene_File #-------------------------------------------------------------------------- # ● 開始処理 #-------------------------------------------------------------------------- alias nmdec_start start def start if Nana_MenuDECommon::SAVE_S > 0 common_event = $data_common_events[Nana_MenuDECommon::SAVE_S] @interpreter = Game_Interpreter.new @interpreter.setup(common_event.list, 0) @interpreter.update end if Nana_MenuDECommon::SAVE_S < 0 && $game_system.nmdec_switchs[10] == nil common_event = $data_common_events[-(Nana_MenuDECommon::SAVE_S)] $game_system.nmdec_switchs[10] = true @interpreter = Game_Interpreter.new @interpreter.setup(common_event.list, 0) @interpreter.update end nmdec_start end #-------------------------------------------------------------------------- # ● 終了処理 #-------------------------------------------------------------------------- alias nmdec_terminate terminate def terminate if Nana_MenuDECommon::SAVE_E > 0 common_event = $data_common_events[Nana_MenuDECommon::SAVE_E] @interpreter = Game_Interpreter.new @interpreter.setup(common_event.list, 0) @interpreter.update end if Nana_MenuDECommon::SAVE_E < 0 && $game_system.nmdec_switchs[11] == nil common_event = $data_common_events[-(Nana_MenuDECommon::SAVE_E)] $game_system.nmdec_switchs[11] = true @interpreter = Game_Interpreter.new @interpreter.setup(common_event.list, 0) @interpreter.update end nmdec_terminate end end #============================================================================== # ■ Game_System #------------------------------------------------------------------------------ # システム周りのデータを扱うクラスです。セーブやメニューの禁止状態などを保存 # します。このクラスのインスタンスは $game_system で参照されます。 #============================================================================== class Game_System #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :nmdec_switchs # 1回起動用の判定配列 #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- alias nmdec_initialize initialize def initialize nmdec_initialize @nmdec_switchs = Array.new(12) end end #============================================================================== # ■ Scene_Map #------------------------------------------------------------------------------ # マップ画面の処理を行うクラスです。 #============================================================================== class Scene_Map < Scene_Base #-------------------------------------------------------------------------- # ● 開始処理 #-------------------------------------------------------------------------- alias nmdec_start start def start nmdec_start $game_system.nmdec_switchs = Array.new(12) end end