#============================================================================== # 「オリジナルメニューコマンド」(ACE) ver.2.0 # 製作者:奈々(なな) # へぷたなすくろーる http://heptanas.mamagoto.com/ # # ◇使用規約 # この素材はフリーゲームにのみご利用頂けます。 # シェアウェア、販売作品への利用は原則として禁止します。 # 利用される場合はスクリプト作成者として「奈々」を明記し # 配布時にブログで利用規約の確認と、利用報告を行って下さい。 # #------------------------------------------------------------------------------ # # コモンイベントを利用した、独自のメニューコマンドを作成できます。 # 仲間との会話やアイテム合成など、自由度の高いコマンドを自作可能です。 # # 使い方は、まず初期設定でオリジナルコマンドを作成します。 # コモンイベントの指定と、コマンド名や条件スイッチなどの設定をします。 # 次にコモンイベントを作りこんで、コマンドの中身となる処理を作成します。 # 設定により、マップ画面に移行するか、メニュー画面のまま処理するか選択可能です。 # # 最後にオリジナルコマンドをメニュー画面に追加します。 # これは、別の素材である「簡単コマンドカスタム(Ver.1.1〜)」を使います。 # 別途ブログよりダウンロードして、説明を読んでご利用下さい。 # #============================================================================== #◇初期設定 module Nana module OMC C = [] #消したり変えたりしないで下さい #オリジナルコマンドの追加 #C[コマンド番号] = [コモンEV番号, "コマンド名", 条件スイッチ番号, 起動モード] #条件スイッチ番号は、指定スイッチがonならコマンドが有効に(0で常時有効) #起動モードはtrueでマップ起動、falseでメニュー起動 C[10] = [1, "会話", 0, false] C[11] = [2, "召喚", 0, true] C[12] = [3, "休憩", 0, false] #メニューへの反映には「簡単コマンドカスタム」スクリプトで設定します end end #============================================================================== # ■ Window_MenuCommand #------------------------------------------------------------------------------ #  メニュー画面で表示するコマンドウィンドウです。 #============================================================================== class Window_MenuCommand < Window_Command #-------------------------------------------------------------------------- # ● コマンドリストの作成 #-------------------------------------------------------------------------- def add_n7_original_command(n) c = Nana::OMC::C[n] return unless c enabled = c[2] == 0 ? true : $game_switches[c[2]] ext = {:cev => c[0], :mode => c[3]} add_command(c[1], :omc, enabled , ext) end end #============================================================================== # ■ Scene_Menu #------------------------------------------------------------------------------ #  メニュー画面の処理を行うクラスです。 #============================================================================== class Scene_Menu < Scene_MenuBase #-------------------------------------------------------------------------- # ● 開始処理 #-------------------------------------------------------------------------- alias start_n7omc start def start start_n7omc restore_cursor end #-------------------------------------------------------------------------- # ● コマンドウィンドウの作成 #-------------------------------------------------------------------------- alias create_command_window_n7omc create_command_window def create_command_window create_command_window_n7omc @command_window.set_handler(:omc, method(:command_omc)) end #-------------------------------------------------------------------------- # ● コマンド[オリジナルメニューコマンド] #-------------------------------------------------------------------------- def command_omc ext = @command_window.current_ext $game_temp.reserve_common_event(ext[:cev]) if ext[:mode] == true SceneManager.goto(Scene_Map) else memory_cursor @interpreter = Game_Interpreter.new @interpreter.setup_reserved_common_event @interpreter.update #@command_window.refresh @status_window.refresh @gold_window.refresh @command_window.activate end end #-------------------------------------------------------------------------- # ● カーソル位置を記憶 #-------------------------------------------------------------------------- def memory_cursor $game_system.memory_cursor = @command_window.index end #-------------------------------------------------------------------------- # ● カーソル位置を復元 #-------------------------------------------------------------------------- def restore_cursor if $game_system.memory_cursor >= 0 @command_window.index = $game_system.memory_cursor end $game_system.memory_cursor = -1 end end #============================================================================== # ■ Game_System #------------------------------------------------------------------------------ #  システム周りのデータを扱うクラスです。セーブやメニューの禁止状態などを保存 # します。このクラスのインスタンスは $game_system で参照されます。 #============================================================================== class Game_System #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :memory_cursor # カーソル位置の記憶(-1で位置なし) #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- alias initialize_n7omc initialize def initialize @memory_cursor = -1 initialize_n7omc end end