class RPG::Class < RPG::BaseItem
def cri_coe
self.note.split(/[\r\n]+/).each{ |line|
if line =~ /\<(?:致命打击)[ ]*(\d+)\>/
return $1.to_i
end}
return 2
end
end
class Game_Actor < Game_Battler
def apply_critical(damage)
damage * $data_classes[@class_id].cri_coe
end
end
基础为双倍爆,但某些职业为n倍爆
#--------------------------------------------------------------------------
# ● 计算伤害
#--------------------------------------------------------------------------
def make_damage_value(user, item)
value = item.damage.eval(user, self, $game_variables)
value *= item_element_rate(user, item)
value *= pdr if item.physical?
value *= mdr if item.magical?
value *= rec if item.damage.recover?
# value = apply_critical(value) if @result.critical 原来的代码
if @result.critical
# 如果技能没有特殊效果,还是用原来的算法
# 当然也可以直接把一般技能的critical_rate设为3
value = item.critical_rate ? value * item.critical_rate : apply_critical(value)
end
value = apply_variance(value, item.damage.variance)
value = apply_guard(value)
@result.make_damage(value.to_i, item)
end
[/pre]