# # エネミーがスキルをラーニング #  (C)2005,2009 TYPE74RX-T # module RX_T # ★受けたスキルを毎回ラーニングするエネミーの設定を適当に初期化 Learning_enemy = [false ,false ,false] # ★指定エネミーID(ここでは例として2番・バジリスクを設定)を #  スキルラーニングモンスターとして設定 Learning_enemy[2] = true # ★受けたスキルをラーニングできる状態(※)として定義しているステートIDを設定 #  (※戦闘終了まで有効なステート) Auto_learning_state_id = 18 # ★ラーニング行為時にラーニング中の状態として定義しているステートIDを設定 #  (ラーニング行為をしたターンの間だけ有効なステート) Learning_state_id = 17 end class Game_Battler attr_accessor :rx_skill_dic # ★エネミー用習得スキル辞書 #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- alias rx_rgssb7_initialize_super initialize def initialize # メソッドを呼び戻す rx_rgssb7_initialize_super @rx_skill_dic = [] # ★エネミー用習得スキル辞書の初期化 end #-------------------------------------------------------------------------- # ● スキルの効果適用 # user : スキルの使用者 (バトラー) # skill : スキル #-------------------------------------------------------------------------- alias rx_rgssb7_skill_effect skill_effect def skill_effect(user, skill) # ★スキル発動対象がエネミーで、且つ、そのエネミーが #  (スキルの)ラーニングモード中かラーニングモンスターであれば if self.is_a?(Game_Enemy) if self.states.include?(RX_T::Auto_learning_state_id) or self.states.include?(RX_T::Learning_state_id) # ★習得しているスキル数を取得 skills = self.rx_new_actions.size # ★リスト作成用の習得スキル数を設定 learn_skills = skills - 1 # ★対象エネミーの習得スキルリストを作成 self.rx_skill_dic = [] i = 0 if learn_skills >= 0 and self.rx_new_actions[0] != nil while i <= learn_skills self.rx_skill_dic[i] = self.rx_new_actions[i].skill_id i += 1 end end # ★喰らったスキルと習得スキルが被ってなければラーニング unless self.rx_skill_dic.include?(user.current_action.skill_id) self.rx_new_actions[skills] = RPG::Enemy::Action.new self.rx_new_actions[skills].kind = 1 self.rx_new_actions[skills].basic = 0 self.rx_new_actions[skills].skill_id = user.current_action.skill_id self.rx_new_actions[skills].condition_turn_a = 0 self.rx_new_actions[skills].condition_turn_b = 1 self.rx_new_actions[skills].condition_hp = 100 self.rx_new_actions[skills].condition_level = 1 self.rx_new_actions[skills].condition_switch_id = 0 self.rx_new_actions[skills].rating = 5 end end end # メソッドを呼び戻す rx_rgssb7_skill_effect(user, skill) end end class Game_Enemy < Game_Battler #-------------------------------------------------------------------------- # ● オブジェクト初期化 # troop_id : トループ ID # member_index : トループメンバーのインデックス #-------------------------------------------------------------------------- attr_accessor :rx_new_actions # ★ 追加されたアクション alias rx_rgssb7_initialize initialize def initialize(troop_id, member_index) # メソッドを呼び戻す rx_rgssb7_initialize(troop_id, member_index) # ★受けたスキルを全てラーニングするタイプのモンスターがいればステート設定 if RX_T::Learning_enemy[@enemy_id] != nil and RX_T::Learning_enemy[@enemy_id] states = @states.size @states[states] = RX_T::Auto_learning_state_id end # ★ 追加されたアクション @rx_new_actions = [] end #-------------------------------------------------------------------------- # ● アクションの取得 #-------------------------------------------------------------------------- alias rx_rgssb7_actions actions def actions if @rx_new_actions.size > 0 @rx_new_actions.concat($data_enemies[@enemy_id].actions) return @rx_new_actions end # メソッドを呼び戻す rx_rgssb7_actions end end