#==============================================================================
# 「スキル毎クリティカル設定」(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