#==============================================================================
# 「メニュー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