#============================================================================== # ★ BattleEventEx 1.0 by USK #------------------------------------------------------------------------------ # 特定の番号のスイッチが条件のバトルイベントを戦闘画面が表示される直前に実行 # します。また戦闘背景の変更が戦闘中に可能になります。 #============================================================================== =begin スクリプト16行目のStart_Event_Switch_IDが条件のバトルイベントを戦闘開始直後 (画面暗転中)に実行します。スイッチのオンオフ、他の条件は関係なく実行されます。 =end #============================================================================== # ■ Game_Troop #============================================================================== class Game_Troop Start_Event_Switch_ID = 2 # 1 以外 #-------------------------------------------------------------------------- # ● バトルイベントのセットアップ #-------------------------------------------------------------------------- def setup_start_battle_event return if @interpreter.running? return if @interpreter.setup_reserved_common_event troop.pages.each do |page| next unless se_conditions_met?(page) @interpreter.setup(page.list) @event_flags[page] = true if page.span <= 1 return end end #-------------------------------------------------------------------------- # ● バトルイベント(ページ)の条件合致判定 #-------------------------------------------------------------------------- def se_conditions_met?(page) return false if @event_flags[page] return Start_Event_Switch_ID == page.condition.switch_id end end #============================================================================== # ■ Game_Interpreter #============================================================================== class Game_Interpreter #-------------------------------------------------------------------------- # ● 戦闘背景の変更 #-------------------------------------------------------------------------- alias :usk_se_command_283 :command_283 def command_283 if SceneManager.scene_is?(Scene_Battle) SceneManager.scene.change_battleback(@params[0], @params[1]) else usk_command_283 end end end #============================================================================== # ■ Scene_Battle #============================================================================== class Scene_Battle #-------------------------------------------------------------------------- # ● #-------------------------------------------------------------------------- def change_battleback(filename1, filename2) bk1 = $game_map.battleback1_name bk2 = $game_map.battleback2_name $data_system.battleback1_name = filename1 $data_system.battleback2_name = filename2 $game_map.change_battleback(filename1, filename2) @spriteset.dispose_battleback1 @spriteset.create_battleback1 @spriteset.dispose_battleback2 @spriteset.create_battleback2 $game_map.change_battleback(bk1, bk2) end #-------------------------------------------------------------------------- # ● 開始後処理 #-------------------------------------------------------------------------- alias :usk_se_post_start :post_start def post_start process_start_event usk_se_post_start end #-------------------------------------------------------------------------- # ● #-------------------------------------------------------------------------- def process_start_event while !scene_changing? $game_troop.interpreter.update $game_troop.setup_start_battle_event wait_for_message wait_for_effect if $game_troop.all_dead? process_forced_action BattleManager.judge_win_loss break unless $game_troop.interpreter.running? update_for_wait end end end