#============================================================================== # クリティカルダメージ倍率 ver1.01 #------------------------------------------------------------------------------ #[特徴] # クリティカルによるダメージの倍率を強化します。 # #[設定方法] # アクター、職業、エネミー、アイテム、スキル、装備品、ステートのメモ欄に # <クリティカルダメージ倍率:数値> と書く。 # # <クリティカルダメージ倍率:200> と書くと、 # クリティカル時のダメージが200%(2倍)になります。 # #[注意] # スキルで反映されるのは使用したスキルのダメージ倍率です。 # いわゆるパッシブスキルのような反映はされません。 # # # 作成:ぶちょー # ホム:http://nyannyannyan.bake-neko.net # 著作:自分で作ったとか言わないで>< # 改造はご自由にどうぞ。 # リードミーとかに私の名前の載せたりするのは任意で。 #============================================================================== #============================================================================== # バージョンアップ情報 # ver1.01 カウンター時にエラーが出るのを修正 # ver1.00 公開 #============================================================================== #============================================================================== # 設定項目 #============================================================================== module Kazari module CriticalRate # 設定が重複したときの計算方法 # 0 : 加算【 300%(100%+200%)+200%(100%+100%)=400%(100%+300%) 】 # 1 : 最大 CALC_TYPE = 0 # アクター、エネミーのデフォルトのクリティカルダメージ倍率 DAMAGE_RATE = 3.0 end end #============================================================================== # ここまで #============================================================================== $kzr_imported = {} if $kzr_imported == nil $kzr_imported["CriticalDamageRate"] = true #============================================================================== # ■ Game_Battler #============================================================================== class Game_Battler #-------------------------------------------------------------------------- # ● ダメージ計算 #-------------------------------------------------------------------------- alias kzr_cdr_make_damage_value make_damage_value def make_damage_value(user, item) @skill_user = user kzr_cdr_make_damage_value(user, item) end #-------------------------------------------------------------------------- # ● クリティカルの適用 #-------------------------------------------------------------------------- def apply_critical(damage) damage * @skill_user.critical_damage_rate end #-------------------------------------------------------------------------- # ● クリティカルダメージの倍率 #-------------------------------------------------------------------------- def critical_damage_rate rate = current_action ? current_action.item.critical_damage_rate : 1.0 if Kazari::CriticalRate::CALC_TYPE == 0 feature_objects.inject(rate) {|r, obj| r += (obj.critical_damage_rate - 1.0) } else feature_objects.inject([rate]) {|r, obj| r << obj.critical_damage_rate }.max end end end #============================================================================== # ■ RPG #============================================================================== module RPG class BaseItem def critical_damage_rate return @critical_damage_rate if @critical_damage_rate @critical_damage_rate = 1.0 note.each_line {|line| case line when /<クリティカルダメージ倍率:(\d+)>/ @critical_damage_rate = $1.to_i / 100.0 end } return @critical_damage_rate end end class Actor < BaseItem def critical_damage_rate return @critical_damage_rate if @critical_damage_rate @critical_damage_rate = Kazari::CriticalRate::DAMAGE_RATE note.each_line {|line| case line when /<クリティカルダメージ倍率:(\d+)>/i @critical_damage_rate = $1.to_i * 0.01 end } return @critical_damage_rate end end class Enemy < BaseItem def critical_damage_rate return @critical_damage_rate if @critical_damage_rate @critical_damage_rate = Kazari::CriticalRate::DAMAGE_RATE note.each_line {|line| case line when /<クリティカルダメージ倍率:(\d+)>/i @critical_damage_rate = $1.to_i * 0.01 end } return @critical_damage_rate end end end