module KS_Extend #-------------------------------------------------------------------------- # ● 設定項目・falseなら無印VX #-------------------------------------------------------------------------- VXACE ||= true class ConditionsExtend #-------------------------------------------------------------------------- # ● 設定項目・スイッチ番号と対応する計算式を記述。 # 対応するスイッチID=>判定に使う計算式文字列。 # =>左のスイッチIDは、範囲式で複数のスイッチを指定することが可能。 # 計算式中の、sidはスイッチID、batはエネミー本人、objはその行動のスキルを参照できる。 #-------------------------------------------------------------------------- SWITCH_FOR_CONDITIONS = { # 例・スイッチ1が条件の行動は、MPが強化されてる場合に条件を満たす。 #1 =>'bat.buff?(1)', # 例・スイッチ2〜5が条件の行動は、HPが最大HPの(1/スイッチID)以下の場合に条件を満たす。 #2..5=>'bat.hp < bat.mhp / sid', # 例・スイッチ6が条件の行動は、行動の消費MPが現在MPの1/2以下の場合に条件を満たす。 #6 =>'obj.mp_cost <= bat.mp / 2', }.inject({}){|has, (key, proc)| key = key..key if Numeric === key key.each{|id| has[id] = proc} has } #p *SWITCH_FOR_CONDITIONS end end =begin ★ks_行動条件拡張(VX・Ace切り替え式) 最終更新日2012/02/01 20時 2012/02/01 20時。本公開。 2012/02/01 12時。VX版の記述ミスを修正。標記を整理。無駄なメソッドを削除。 2012/02/01 11時。公開。 □===制作・著作===□ MaidensnowOnline 暴兎 使用プロジェクトを公開する場合、readme等に当HP名とそのアドレスを記述してください。 使用報告はしてくれると喜びます。 □===配置場所===□ エリアスのみで構成されているので、 可能な限り"main"の上、近くに配置してください。 □使用法・機能 設定項目参照のこと。 =end #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ # ■ RPG::Enemy::Action #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ class RPG::Enemy::Action unless method_defined?(:obj) #-------------------------------------------------------------------------- # ● 敵行動の該当スキル #-------------------------------------------------------------------------- def obj# RPG::Enemy::Action 存在しなければ定義 @kind == 0 ? nil : $data_skills[@skill_id] end end end #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ # ■ Game_Enemy #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ class Game_Enemy #-------------------------------------------------------------------------- # ● 行動条件合致判定[スイッチ番号に対応した拡張条件式による判定] #-------------------------------------------------------------------------- def condition_met_extend?(bat, sid, obj) eval(KS_Extend::ConditionsExtend::SWITCH_FOR_CONDITIONS[sid]) end unless KS_Extend::VXACE #-------------------------------------------------------------------------- # ● 行動条件合致判定 #-------------------------------------------------------------------------- alias conditions_met_condition_extend conditions_met? def conditions_met?(action) if action.condition_type == 6 && KS_Extend::ConditionsExtend::SWITCH_FOR_CONDITIONS[action.condition_param1] return condition_met_extend?(self, action.condition_param1, action.obj) end conditions_met_condition_extend(action) end else #unless KS_Extend::VXACE #-------------------------------------------------------------------------- # ● 行動条件合致判定 #-------------------------------------------------------------------------- alias conditions_met_condition_extend conditions_met? def conditions_met?(action) @ks_extends_judge = action result = conditions_met_condition_extend(action) remove_instance_variable(:@ks_extends_judge) result end #-------------------------------------------------------------------------- # ● 行動条件合致判定[スイッチ] #-------------------------------------------------------------------------- alias conditions_met_switch_for_condition_extend conditions_met_switch? def conditions_met_switch?(param1, param2)# Game_Enemy alias if KS_Extend::ConditionsExtend::SWITCH_FOR_CONDITIONS[param1] action = @ks_extends_judge || RPG::Enemy::Action.new return condition_met_extend?(self, param1, action.obj) end conditions_met_switch_for_condition_extend(param1, param2) end end end #unless KS_Extend::VXACE else