#============================================================================== # ■ RGSS3 戦闘行動の強制による行動消去無効 Ver1.00 by 星潟 #------------------------------------------------------------------------------ # 戦闘行動の強制を実行した際、指定変数の値に応じて # 本来の行動を消去せず、強制行動を追加する形で強制行動を行わせます。 #============================================================================== module FAAntiClearActionsByVariables #戦闘行動の強制制御用変数IDを指定。 #この変数IDに格納されている値によって動作が変動。 #この変数IDに格納されている値は、戦闘行動の強制の処理を実行する度に0に戻る。 #1の場合 #強制行動を行った後、元々の行動順で元の行動を行う。 #2の場合 #元々の行動順で強制行動を行った後、続けて元の行動を行う。 #3の場合 #元々の行動順で元の行動を行った後、最後に強制行動を行う。 #その他の場合 #通常の強制行動と同じ。 VID = 41 end class Game_Battler < Game_BattlerBase #-------------------------------------------------------------------------- # 戦闘行動の強制 #-------------------------------------------------------------------------- alias force_action_anti_clear_actions_by_switches force_action def force_action(skill_id, target_index) v = $game_variables[FAAntiClearActionsByVariables::VID] array = v > 0 && v < 4 && !@actions.empty? ? @actions.clone : nil force_action_anti_clear_actions_by_switches(skill_id, target_index) @actions = v == 3 ? array + @actions : @actions + array if array end end class << BattleManager #-------------------------------------------------------------------------- # 戦闘行動の強制 #-------------------------------------------------------------------------- alias force_action_anti_clear_actions_by_switches force_action def force_action(battler) vid = FAAntiClearActionsByVariables::VID v = $game_variables[vid] $game_variables[vid] = 0 return if v > 1 flag = v > 0 && v < 4 @pre_delete_action_battlers = @action_battlers.clone if flag force_action_anti_clear_actions_by_switches(battler) @action_battlers = @pre_delete_action_battlers if flag end end