#============================================================================== # [ZTBS] -Zenith Tactical Battle System- タクティカルバトルシステム #  〜+B6:コマンド追加機構〜 # 〜+B6:撤退システム〜   by 水夜 #  ver1.00  Zenith Creation (http://zenith.ifdef.jp/) #------------------------------------------------------------------------------ # マップ上での戦略的なバトルを実現。 #============================================================================== #============================================================================== # □ カスタマイズポイント #============================================================================== class ZTBSB6 # コマンドの配列。 COMMANDS = ["アクター一覧", "ターン終了", "セーブ", "撤退", "勝利条件"] # 実際に使用するメソッドとの関連付け。 # COMMANDS_HASH = {"アクター一覧" => "actors", "ターン終了" => "turnend", "セーブ" => "save", "撤退" => "escape", "勝利条件" => "common(60)"} end class Game_Map def get_tactics_end_map(map_id) case map_id #============================================================================== # ↓↓設定箇所は説明の下にあります↓↓ #============================================================================== #------------------------------------------------------------------------------ # when タクティカルマップID # 勝利 = [移動先マップID, X座標, Y座標, 暗転, コモンイベントID] # 敗北 = [移動先マップID, X座標, Y座標, 暗転, コモンイベントID] # 逃走 = [移動先マップID, X座標, Y座標, 暗転, コモンイベントID] #------------------------------------------------------------------------------ # # 勝利時/敗北時それぞれの移動先を設定します。 # # ※「移動先マップID」 # 移動先のマップのIDを指定してください。 # 0 にするとゲームオーバーに移行します。 # # ※「X座標 / Y座標」 # 移動先の座標を指定してください # # ※「暗転」 # true : 移動時に画面を暗転します。(移動先で元に戻してください) # false : 通常通りフェード切り替えします。 # # ※「コモンイベントID」 # 移動前に実行するコモンイベントのIDを指定してください。 # 省略可能です。 # #============================================================================== # ここより下が設定箇所です #============================================================================== when 2 勝利 = [1, 10, 10, false, 1] # マップ 2(X10, Y10) 暗転しない コモンイベント1 敗北 = [0] # ゲームオ−バー 逃走 = [1, 10, 10, false, 1] # マップ 2(X10, Y10) 暗転しない コモンイベント8 #============================================================================== # ここより上で設定してください #============================================================================== end 勝利 = [0, 0, 0, false] if 勝利 == nil 敗北 = [0, 0, 0, false] if 敗北 == nil 逃走= [0, 0, 0, false] if 逃走 == nil return [勝利, 敗北, 逃走] end end #============================================================================== # ■ Game_System #============================================================================== class Game_System def cannot_escape @cannot_escape = false if @cannot_escape == nil return @cannot_escape end def cannot_escape=(flag) @cannot_escape = flag end end #============================================================================== # ■ Scene_Map #============================================================================== class Scene_Map #-------------------------------------------------------------------------- # ● コマンドウィンドウ作成 #-------------------------------------------------------------------------- def make_command_window(index = 0) case $game_system.tactics_step when 0 @command_window = Window_Command.new(170, ZTBSB6::COMMANDS) @command_window.x = 0 @command_window.y = 64 when 2 s1 = "移動" s2 = $data_system.words.attack s3 = $data_system.words.skill s4 = $data_system.words.item @command_window = Window_Command.new(120, [s1, s2, s3, s4]) @command_window.x = 0 @command_window.y = 64 when 5 s1 = $data_system.words.attack s2 = $data_system.words.skill s3 = $data_system.words.item s4 = "待機" @command_window = Window_Command.new(120, [s1, s2, s3, s4]) @command_window.x = 0 @command_window.y = 64 end if @command_window != nil @command_window.back_opacity = 200 @command_window.index = index if $game_player.y < 4 @command_window.y = 416 - @command_window.height end if $game_player.x < 10 @command_window.x = 640 - @command_window.width end end end #-------------------------------------------------------------------------- # ● フレーム更新 (アクターフェーズ ステップ 0 : メニューコマンド) #-------------------------------------------------------------------------- def update_phase1_step0 # B ボタンが押された場合 if Input.trigger?(Input::B) # キャンセル SE を演奏 $game_system.se_play($data_system.cancel_se) # コマンドウィンドウを解放 dispose_command_window # カーソル固定を解除 $game_player.not_update = false # ステップ 1 へ移行 $game_system.tactics_step = 1 end # C ボタンが押された場合 if Input.trigger?(Input::C) if ZTBSB6::COMMANDS_HASH.include?(ZTBSB6::COMMANDS[@command_window.index]) command = ZTBSB6::COMMANDS_HASH[ZTBSB6::COMMANDS[@command_window.index]] eval("command_#{command}") end end end #-------------------------------------------------------------------------- # ● アクター確認 #-------------------------------------------------------------------------- def command_actors # 決定 SE を演奏 $game_system.se_play($data_system.decision_se) # コマンドウィンドウ解放 dispose_command_window # セレクト へ移行 @select = 0 # セレクトウィンドウを作成 make_select_window(0,0) end #-------------------------------------------------------------------------- # ● ターン終了 #-------------------------------------------------------------------------- def command_turnend # 決定 SE を演奏 $game_system.se_play($data_system.decision_se) # コマンドウィンドウを解放 dispose_command_window # 未行動アクター処理 not_acted_actor_refresh # ステップ 1 へ移行 $game_system.tactics_step = 1 end #-------------------------------------------------------------------------- # ● セーブ #-------------------------------------------------------------------------- def command_save # 決定 SE を演奏 $game_system.se_play($data_system.decision_se) # セーブ呼び出しフラグ $game_temp.save_calling = true # ステップ 1 へ移行 $game_system.tactics_step = 1 # コマンドウィンドウを解放 dispose_command_window # カーソル固定を解除 $game_player.not_update = false end #-------------------------------------------------------------------------- # ● 撤退 #-------------------------------------------------------------------------- def command_escape if $game_system.cannot_escape # ブザー SE を演奏 $game_system.se_play($data_system.buzzer_se) else # 決定 SE を演奏 $game_system.se_play($data_system.decision_se) dispose_command_window start_phase3(2) end end #-------------------------------------------------------------------------- # ● コモンイベント #-------------------------------------------------------------------------- def command_common(event_id) # 決定 SE を演奏 $game_system.se_play($data_system.decision_se) # コマンドウィンドウを解放 dispose_command_window # ステップ 1 へ移行 $game_system.tactics_step = 1 # カーソル固定を解除 $game_player.not_update = false # イベントをセットアップ common_event = $data_common_events[event_id] $game_system.map_interpreter.setup(common_event.list, 0) end end