# # 敵の複数回行動(Ver2.00) #  (C)2005 TYPE74RX-T # # ★変数を初期化 $enemy_act_times = [] # ★指定エネミーID(ここでは例として2番・バジリスクを設定)の攻撃回数を設定(3回) $enemy_act_times[2] = 3 class Game_Battler #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_reader :maxacttimes # ★1ターン中に行動できる最大回数 attr_accessor :acttimes # ★1ターン中に行動できる回数 #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- alias rx_t_rgssb1gb_initialize initialize def initialize rx_t_rgssb1gb_initialize @maxacttimes = 1 # ★1ターン中に行動できる最大回数を設定 @acttimes = 1 # ★1ターン中に行動できる回数を設定 end end class Game_Enemy < Game_Battler #-------------------------------------------------------------------------- # ● オブジェクト初期化 # troop_id : トループ ID # member_index : トループメンバーのインデックス #-------------------------------------------------------------------------- alias rx_t_rgssb1ge_initialize initialize def initialize(troop_id, member_index) rx_t_rgssb1ge_initialize(troop_id, member_index) # ★2回以上行動できるエネミーの場合は@acttimesに攻撃回数を設定 if $enemy_act_times[@enemy_id] != nil @maxacttimes = $enemy_act_times[@enemy_id] @acttimes = $enemy_act_times[@enemy_id] else # ★ノーマルタイプの敵には攻撃回数を1に設定 @maxacttimes = 1 @acttimes = 1 end end #-------------------------------------------------------------------------- # ● 変身 # enemy_id : 変身先のエネミー ID #-------------------------------------------------------------------------- alias rx_rgssb1_transform transform def transform(enemy_id) # エネミー ID を変更 @enemy_id = enemy_id # ★2回以上行動できるエネミーの場合は@acttimesに攻撃回数を設定 if $enemy_act_times[@enemy_id] != nil @maxacttimes = $enemy_act_times[@enemy_id] @acttimes = $enemy_act_times[@enemy_id] else # ★ノーマルタイプの敵には攻撃回数を1に設定 @maxacttimes = 1 @acttimes = 1 end rx_rgssb1_transform(enemy_id) end end class Scene_Battle #-------------------------------------------------------------------------- # ● 基本アクション 結果作成 #-------------------------------------------------------------------------- alias rx_t_rgssb1sb_make_basic_action_result make_basic_action_result def make_basic_action_result # 防御の場合 if @active_battler.current_action.basic == 1 # ヘルプウィンドウに "防御" を表示 @help_window.set_text($data_system.words.guard, 1) #------------------------追加開始----------------------------- # ★アニメーション ID を設定(前回の行動アニメ発動防止) @animation1_id = 0 @animation2_id = 0 #------------------------追加終了----------------------------- return end rx_t_rgssb1sb_make_basic_action_result end #-------------------------------------------------------------------------- # ● フレーム更新 (メインフェーズ ステップ 2 : アクション開始) #-------------------------------------------------------------------------- alias rx_t_rgssb1sb_update_phase4_step6 update_phase4_step6 def update_phase4_step6 rx_t_rgssb1sb_update_phase4_step6 # ★ もし何かの間違いで@active_battler.acttimesがnilだったら強引に1を代入 @active_battler.acttimes = 1 if @active_battler.acttimes == nil # ★行動回数を減算 @active_battler.acttimes -= 1 if @active_battler.acttimes > 0 # ★まだ行動回数が残っているならフェーズ4のstep2に移行 if @active_battler.acttimes > 0 # ★敵の行動を決める if @active_battler.is_a?(Game_Enemy) @active_battler.make_action end @phase4_step = 2 else # ★行動回数を初期化 @active_battler.acttimes = @active_battler.maxacttimes # ステップ 1 に移行 @phase4_step = 1 end end end