#============================================================================== # 「スキル毎クリティカル設定」(ACE) ver3.0 by奈々 # # ◇使用規約 # 使用される場合はスクリプト作成者として「奈々」を明記して下さい。 # このスクリプトを改変したり、改変したものを配布するなどは自由ですが # その場合も元のスクリプトの作成者として名前は載せて下さい。 # #------------------------------------------------------------------------------ # # ・会心率をスキル毎に増減 # スキルのメモ欄に<会心率プラス 数値>か<会心率マイナス 数値>と書きます。 # このスキルを使用する場合、アクターの「会心率」にその数値が足されます。 # (例えば<会心率プラス 50>のスキルを会心率+10%のアクターが使うと60%扱い) # # ・クリティカル時にダメージを何倍にするか指定 # スキルのメモ欄に<会心威力 数値>と書いて設定します。(1.5などの小数も可能) # 書かない場合はデフォルトの3倍で計算されます。 # #============================================================================== #============================================================================== # # 内蔵型MDVリッパー # #------------------------------------------------------------------------------ unless (NanaSeven::MDV_RIPPER rescue false) # 他のMDVリッパーの検出 module NanaSeven MDV_RIPPER = true end class Game_Battler < Game_BattlerBase #-------------------------------------------------------------------------- # ● ダメージ計算(極力再定義しない) #-------------------------------------------------------------------------- def make_damage_value(user, item) value = make_damage_value_1(user, item) value = make_damage_value_2(user, item, value) value = make_damage_value_3(user, item, value) value = make_damage_value_4(user, item, value) value = make_damage_value_5(user, item, value) value = make_damage_value_6(user, item, value) value = make_damage_value_7(user, item, value) value = make_damage_value_8(user, item, value) value = make_damage_value_new(user, item, value) @result.make_damage(value.to_i, item) end #-------------------------------------------------------------------------- # ● 再定義用下位メソッド群 #-------------------------------------------------------------------------- #-------------------------------------------------------------------------- # ● *ダメージ計算式 #-------------------------------------------------------------------------- def make_damage_value_1(user, item) value = item.damage.eval(user, self, $game_variables) return value end #-------------------------------------------------------------------------- # ● *属性有効度 #-------------------------------------------------------------------------- def make_damage_value_2(user, item, value) value *= item_element_rate(user, item) return value end #-------------------------------------------------------------------------- # ● *物理ダメージ率 #-------------------------------------------------------------------------- def make_damage_value_3(user, item, value) value *= pdr if item.physical? return value end #-------------------------------------------------------------------------- # ● *魔法ダメージ率 #-------------------------------------------------------------------------- def make_damage_value_4(user, item, value) value *= mdr if item.magical? return value end #-------------------------------------------------------------------------- # ● *回復効果率 #-------------------------------------------------------------------------- def make_damage_value_5(user, item, value) value *= rec if item.damage.recover? return value end #-------------------------------------------------------------------------- # ● *クリティカル #-------------------------------------------------------------------------- def make_damage_value_6(user, item, value) value = apply_critical(value) if @result.critical return value end #-------------------------------------------------------------------------- # ● 分散度 #-------------------------------------------------------------------------- def make_damage_value_7(user, item, value) value = apply_variance(value, item.damage.variance) return value end #-------------------------------------------------------------------------- # ● 防御修正 #-------------------------------------------------------------------------- def make_damage_value_8(user, item, value) value = apply_guard(value) return value end #-------------------------------------------------------------------------- # ● エイリアス用新規メソッド #-------------------------------------------------------------------------- def make_damage_value_new(user, item, value) return value end end end #------------------------------------------------------------------------------ # # ここまでMDVリッパー # #============================================================================== class Game_Battler < Game_BattlerBase #-------------------------------------------------------------------------- # ○ スキル/アイテムの会心率計算(再定義) #-------------------------------------------------------------------------- def item_cri(user, item) item.damage.critical ? (user.cri + item.cri_fix) * (1 - cev) : 0 end #-------------------------------------------------------------------------- # ○ クリティカルの適用(再定義) #-------------------------------------------------------------------------- def apply_critical(damage, item) item.cri_damage ? damage * item.cri_damage.truncate : damage * 3 end #-------------------------------------------------------------------------- # ○ *クリティカル(再定義) #-------------------------------------------------------------------------- def make_damage_value_6(user, item, value) value = apply_critical(value, item) if @result.critical return value end end class RPG::UsableItem < RPG::BaseItem #-------------------------------------------------------------------------- # ☆ 会心率修正の定義(追加定義) #-------------------------------------------------------------------------- def cri_fix @note.scan(/<会心率(プラス|マイナス)\s?(\d*)>/) return ($2.to_i * 0.01) if $2 && $1 == "プラス" return -(($2.to_i * 0.01)) if $2 && $1 == "マイナス" return 0 end #-------------------------------------------------------------------------- # ☆ 会心の威力の定義(追加定義) #-------------------------------------------------------------------------- def cri_damage @note.scan(/<会心威力\s?(\d*)>/) return $1.to_i if $1 return 3 end end