# #  ステート解除タイミングの変更(Ver1.02) #  (C)2006,2009 TYPE74RX-T # #============================================================================== # ■ Game_Temp #------------------------------------------------------------------------------ #  セーブデータに含まれない、一時的なデータを扱うクラスです。このクラスのイン # スタンスは $game_temp で参照されます。 #============================================================================== class Game_Temp #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :rx_turn_end # ★ ターン終了フラグ #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- alias rx_rgssb14_initialize initialize def initialize # メソッドを呼び戻す rx_rgssb14_initialize # ★ ターン終了フラグ @rx_turn_end = false end end #============================================================================== # ■ Game_Battler (分割定義 2) #------------------------------------------------------------------------------ #  バトラーを扱うクラスです。このクラスは Game_Actor クラスと Game_Enemy クラ # スのスーパークラスとして使用されます。 #============================================================================== class Game_Battler #-------------------------------------------------------------------------- # ● ステート自然解除 (ターンごとに呼び出し) #-------------------------------------------------------------------------- alias rx_rgssb14_remove_states_auto remove_states_auto def remove_states_auto # ★ ターン終了フラグが無ければ処理をスルー return unless $game_temp.rx_turn_end # メソッドを呼び戻す rx_rgssb14_remove_states_auto end end #============================================================================== # ■ Scene_Battle #------------------------------------------------------------------------------ #  バトル画面の処理を行うクラスです。 #============================================================================== class Scene_Battle #-------------------------------------------------------------------------- # ● 戦闘終了 # result : 結果 (0:勝利 1:敗北 2:逃走) #-------------------------------------------------------------------------- alias rx_rgssb14_battle_end battle_end def battle_end(result) # ★ 強制的にターンエンドフラグをオン $game_temp.rx_turn_end = true # メソッドを呼び戻す rx_rgssb14_battle_end(result) # ★ 強制的にターンエンドフラグをオフ $game_temp.rx_turn_end = false end #-------------------------------------------------------------------------- # ● パーティコマンドフェーズ開始 #-------------------------------------------------------------------------- alias rx_rgssb14_start_phase2 start_phase2 def start_phase2 # ★ ターン終了フラグがあれば if $game_temp.rx_turn_end @active_battler = nil # ターンの最後に特殊効果(ステート絡み等)を消す for active_battler in @rx_copy_action_battlers active_battler.remove_states_auto if active_battler.exist? end @status_window.refresh $game_temp.rx_turn_end = false end # メソッドを呼び戻す rx_rgssb14_start_phase2 end #-------------------------------------------------------------------------- # ● 戦闘終了 # result : 結果 (0:勝利 1:逃走 2:敗北) #-------------------------------------------------------------------------- alias rx_rgssb14_battle_end battle_end def battle_end(result) # ★ 強制的にターンエンドフラグをオン $game_temp.rx_turn_end = true # メソッドを呼び戻す rx_rgssb14_battle_end(result) # ★ 強制的にターンエンドフラグをオフ $game_temp.rx_turn_end = false end #-------------------------------------------------------------------------- # ● 行動順序作成 #-------------------------------------------------------------------------- alias rx_rgssb14_make_action_orders make_action_orders def make_action_orders # メソッドを呼び戻す rx_rgssb14_make_action_orders # ★ 各バトラーのアクションをコピー @rx_copy_action_battlers = [] @rx_copy_action_battlers.concat(@action_battlers) end #-------------------------------------------------------------------------- # ● フレーム更新 (メインフェーズ ステップ 1 : アクション準備) #-------------------------------------------------------------------------- alias rx_rgssb14_update_phase4_step1 update_phase4_step1 def update_phase4_step1 # ★ 未行動バトラーが存在しない場合 (全員行動した)ターン終了フラグをオン $game_temp.rx_turn_end = (@action_battlers.size == 0 ? true : false) # メソッドを呼び戻す rx_rgssb14_update_phase4_step1 end end