#============================================================================== # ■ RGSS2 KGC_DelaySkill拡張 # 遅延スキル多重指定・元スキル発動化 Ver1.00 by 星潟 #------------------------------------------------------------------------------ # スキル1つにつき1つしか指定できなかった遅延スキルが # 繰り返し記述する事で複数指定できるようになります。 # また、発動元のスキルの効果を発動させるようにする設定を可能とします。 #------------------------------------------------------------------------------ # 使用例(全て、スキルのメモ欄に記述) # # <遅延スキル 2, 1> # <遅延スキル 3, 2> # 相手が1回行動した後、スキルID2が発動。 # 相手が2回行動した後、スキルID3が発動。 # # <オリジナルスキル実行> # 遅延スキルを発動させた元々のスキルの効果も発動させる。 # #============================================================================== module KGC module DelaySkill module Regexp module Skill OS_EX = "<オリジナルスキル実行>" end end end end class RPG::Skill < RPG::UsableItem #処理の都合上再定義 def create_delay_skill_cache @__delay_skill_id = []#配列化 @__delay_skill_turn = []#配列化 @__original_ex = false self.note.each_line { |line| case line when KGC::DelaySkill::Regexp::Skill::DELAY_SKILL @__delay_skill_id.push($1.to_i) @__delay_skill_turn.push($2.to_i) end } #オリジナルスキルも発動させるかどうかのフラグを登録 if self.note.include?(KGC::DelaySkill::Regexp::Skill::OS_EX) @__original_ex = true end end #オリジナルスキル発動用確認処理 def os_ex_skill? create_delay_skill_cache if @__original_ex == nil return (@__original_ex) end #処理の都合上再定義 def delay_skill? create_delay_skill_cache if @__delay_skill_id == nil return (@__delay_skill_id.size > 0) end end class Game_Battler #処理の都合上再定義 def make_delay_skill_result(user, skill) return unless @skipped return unless skill.delay_skill? return unless @delay_skill_effect return if @missed || @evaded for i in 0..skill.delay_skill_turn.size next if skill.delay_skill_turn[i] == nil ds = Game_DelaySkillInfo.new ds.turn_count = skill.delay_skill_turn[i] ds.skill_id = skill.delay_skill_id[i] ds.user = user self.delay_skills << ds end end #オリジナルスキル発動用処理1 alias make_delay_skill_result_add make_delay_skill_result def make_delay_skill_result(user, skill) @skipped = true if skill.os_ex_skill? make_delay_skill_result_add(user, skill) @skipped = false if skill.os_ex_skill? end #オリジナルスキル発動用処理2 alias skill_effective_KGC_DelaySkill2? skill_effective? def skill_effective?(user, skill) result = skill_effective_KGC_DelaySkill2?(user, skill) if skill.os_ex_skill? result = true end return result end end