#============================================================================== # # ■ エネミー行動パターン改良 拡張スクリプト # 行動条件追加:対象のポジション □Ver2.10 □製作者:月紳士 # # ・RPGツクールVX用 RGSS2スクリプト # # ●…書き換えメソッド(競合注意) ◎…メソッドのエイリアス ○…新規メソッド # # ※二次配布禁止!配布元には利用規約があります。必ずそちらを見てください。 #------------------------------------------------------------------------------ # 更新履歴 # Ver2.10 ○「機能追加:二重行動」スクリプトの為の変更と仕様の見直し。 # Ver2.00 ○仕様の見直し。 # Ver1.01 ○記述の見直し(仕様変更無し) #------------------------------------------------------------------------------ =begin ※このスクリプトは月紳士の「エネミー行動パターン改良」に  新たな行動条件を追加する拡張スクリプトです。   「エネミー行動パターン改良」(Ver8.00以降)が必要となります。  このスクリプトは「エネミー行動パターン改良」より下に挿入してください。 ○ 新たな行動条件の追加。   エネミーの行動パターンに、さらなる行動条件を追加します。   追加できるのは ・特定のポジションのアクターを対象とする行動条件 ・特定のポジションでないアクターを対象とする行動条件 の二種類です。 ポジションとは、クラスに設定できる 「前衛」「中衛」「後衛」 のことです。 追加する行動条件の数は任意で、カスタマイズ項目にて 行動条件にするポジションを登録した後、 登録した行動条件に合わせたスイッチを用意することで 設定します。 詳しくはカスタマイズ項目をご覧ください。 =end #============================================================================== # ■ エネミー行動パターン行動条件追加:対象のポジション・モジュール #============================================================================== module EacAdd_Position_Target # カスタマイズ項目------------------------------------------------------------ TOP_SWITCH = 14 #↑# 「行動条件追加:対象のポジション」に使用するスイッチ郡の、 # 最初の番号をここで指定します。 # 「エネミー行動パターン改良」の元もとのスイッチ郡と # つなげる必要はありません。 # ゲーム中の判定に差し支えない番号にしてください。 SETTING = [-3, 3] #↑# 行動条件追加にしたいポジションをここで設定します。 # ターゲットとして用意したい対象ポジションをここで決めてください。 # 数字により、行動条件にあげるポジションを指定します。 # 使える数字は以下です。 # 1 = 前衛 / 2 = 中衛 / 3 = 後衛 # 数値をマイナスにすると、それ以外、となります。 # (例) -2 なら 後衛以外、つまり前衛と中衛です。 =begin  ここで設定した順番、種類に対応させて、上記TOP_SWITCHから順番に  スイッチを用意してください。例をあげて説明しますと…  TOP_SWITCH = 14  SETTING = [1, 2, 3]  と設定したのであれば、  スイッチ14が「前衛を対象とする」行動条件、  スイッチ15が「中衛を対象とする」行動条件、  スイッチ16が「後衛を対象とする」行動条件となります。  スイッチの名前は任意でかまいません。製作中にわかりやすい名前にしてください。 =end # ------------------------------------------------(カスタマイズ項目ここまで)-- SWITCHES_RANGE = TOP_SWITCH...(TOP_SWITCH + SETTING.size) # ---------------------------------------------------------------------------- end #============================================================================== # ■ Game_Temp #------------------------------------------------------------------------------ #  セーブデータに含まれない、一時的なデータを扱うクラスです。このクラスのイン # スタンスは $game_temp で参照されます。 #============================================================================== class Game_Temp #-------------------------------------------------------------------------- # ◎ 拡張行動条件に使用するスイッチデータの作成 #-------------------------------------------------------------------------- alias tig_eac_pt_make_ex_conditions_switches make_ex_conditions_switches def make_ex_conditions_switches switches = Array.new(EacAdd_Position_Target::SETTING.size){|i|i+EacAdd_Position_Target::TOP_SWITCH} return tig_eac_pt_make_ex_conditions_switches + switches end end #============================================================================== # ■ Game_BattleAction #------------------------------------------------------------------------------ #  戦闘行動を扱うクラスです。このクラスは Game_Battler クラスの内部で使用され # ます。 #============================================================================== class Game_BattleAction #-------------------------------------------------------------------------- # ◎ 条件にあうターゲットグループの取得 #-------------------------------------------------------------------------- alias tig_eac_pt_conditions_targets conditions_targets def conditions_targets(arrays, skill) targets = tig_eac_pt_conditions_targets(arrays, skill) for array in arrays ; next if array[0] != 6 if EacAdd_Position_Target::SWITCHES_RANGE.include?(array[1]) new_targets = [] index = array[1] - EacAdd_Position_Target::TOP_SWITCH case EacAdd_Position_Target::SETTING[index] when 1 ; target_position = [0] when 2 ; target_position = [1] when 3 ; target_position = [2] when -1 ; target_position = [1, 2] when -2 ; target_position = [0, 2] when -3 ; target_position = [0, 1] end if target_position for target in targets next unless target.actor? next unless target_position.include?(target.class.position) new_targets.push(target) end end targets = new_targets end end return targets end end