#============================================================================== # # ■ エネミー行動パターン改良 拡張スクリプト # 行動条件追加:エネミー増援 □Ver2.10 □製作者:月紳士 # # ・RPGツクールVX用 RGSS2スクリプト # # ●…書き換えメソッド(競合注意) ◎…メソッドのエイリアス ○…新規メソッド # # ※二次配布禁止!配布元には利用規約があります。必ずそちらを見てください。 #------------------------------------------------------------------------------ # 更新履歴 # Ver2.10 ○「機能追加:二重行動」スクリプトの為の変更と仕様の見直し。 # Ver2.00 ○仕様の見直し。 # Ver1.70 ○機能追加:アクター行動パターン化 公開の為の更新。 # Ver1.62 ○記述の見直し(仕様変更無し) # Ver1.61 ○記述の見直し(仕様変更無し) # Ver1.60 ○エネミー増援スキルver.1.20へのアップに合わせた更新。 # ターゲット消失によるスキル無効時の、動作の再思考に対応。 # Ver1.50 ○スクリプトの簡略化。 #------------------------------------------------------------------------------ =begin ※このスクリプトは月紳士の「エネミー行動パターン改良」に  同じく月紳士の「エネミー増援スキル」専用の  新たな行動条件を追加する拡張スクリプトです。   「エネミー行動パターン改良」(Ver8.00以降)および   「エネミー増援スキル」(Ver2.01以降)が必要となります。  このスクリプトは「エネミー行動パターン改良」より下に挿入してください。  下記カスタマイズ項目で設定したスイッチを、   スクリプト「エネミー増援スキル」で作成した増援スキルの   行動条件に使用することで   増援対象となるエネミーが存在する時のみ   行動条件を満たすと判断されるようになります。   すでに仲間が一杯のときや、   敵グループに呼ぶべき仲間が配置されていない場合に、   増援スキルの無駄な使用を防いで他の行動を選ぶようにできます。   スキルの性質上、他の行動条件と組み合わせても   効果を成さないものもありますので、ご容赦ください。 =end #============================================================================== # ■ エネミー行動パターン行動条件追加:エネミー増援 #============================================================================== module EacAdd_Reinforcement_Call # カスタマイズ項目------------------------------------------------------------ SWITCHE_ID = 13 #↑# 「行動条件追加:エネミー増援」に使用するスイッチの、 # IDの番号をここで指定します。 # 「エネミー行動パターン改良」の元もとのスイッチ郡と # つなげる必要はありません。 # ゲーム中の判定に差し支えない番号にしてください。 # ---------------------------------------------------------------------------- end #============================================================================== # ■ Game_Temp #------------------------------------------------------------------------------ #  セーブデータに含まれない、一時的なデータを扱うクラスです。このクラスのイン # スタンスは $game_temp で参照されます。 #============================================================================== class Game_Temp #-------------------------------------------------------------------------- # ◎ 拡張行動条件に使用するスイッチデータの作成 #-------------------------------------------------------------------------- alias tig_eac_rcs_make_ex_conditions_switches make_ex_conditions_switches def make_ex_conditions_switches return tig_eac_rcs_make_ex_conditions_switches + [EacAdd_Reinforcement_Call::SWITCHE_ID] end end #============================================================================== # ■ Game_Battler #------------------------------------------------------------------------------ #  バトラーを扱うクラスです。このクラスは Game_Actor クラスと Game_Enemy クラ # スのスーパークラスとして使用されます。 #============================================================================== class Game_Battler #-------------------------------------------------------------------------- # ◎ 拡張行動条件合致判定 #-------------------------------------------------------------------------- alias tig_eac_rcs_ex_conditions_met? ex_conditions_met? def ex_conditions_met?(conditions, skill) result = tig_eac_rcs_ex_conditions_met?(conditions, skill) if conditions == EacAdd_Reinforcement_Call::SWITCHE_ID standby_members = [] for member in @action.friends_unit.members next if member.actor? next unless reinforcement_call_type_mach(skill, member) next unless member.hidden next if member.not_comeback? next if $game_troop.names_count[member.original_name].to_i > member.comeback_count_stop standby_members.push(member) end return false if standby_members.empty? end return result end end #============================================================================== # ■ Scene_Battle #------------------------------------------------------------------------------ #  バトル画面の処理を行うクラスです。 #============================================================================== class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # ◎ 戦闘行動の実行 : スキル「増援(仲間を呼ぶ)」専用処理 # ※ ターゲット消失によるスキル無効時の、動作の再思考に対応 #-------------------------------------------------------------------------- alias tig_eac_rcs_execute_action_reinforce execute_action_reinforce def execute_action_reinforce for array in @active_battler.action.target_conditions_arrays if array[1] == EacAdd_Reinforcement_Call::SWITCHE_ID standby_members = [] for member in $game_troop.members next unless @active_battler.reinforcement_call_type_mach(@active_battler.action.skill, member) next unless member.hidden next if member.not_comeback? next if $game_troop.names_count[member.original_name].to_i > member.comeback_count_stop standby_members.push(member) end if standby_members.empty? unless @active_battler.action.forcing case @active_battler.re_action_type when 1 @active_battler.action.set_attack @active_battler.action.skill_id = 0 return execute_action_attack when 2 @active_battler.action.skill_id = 0 @active_battler.action.kind = 0 @active_battler.action.basic = 3 return execute_action_wait end end end break end end tig_eac_rcs_execute_action_reinforce end end