RPGツクールVXaceのダメージ計算でスキルやアイテムの計算式欄に
[a.atk * 4 - b.def * 2 , 1].max
の様に記述しても、相手の防御や属性有効度で半減されるとノーダメージになったり
先に防御力で減算してからクリティカルで3倍にするという計算方式が釈然としなかったので
全てのスキル・アイテムのダメージ計算式欄から『- b.def * 2 』『- b.mdf * 2 』の表記を削除し
Game_Battler の347行目以降を下記の様に改変しました。
コード: 全て選択
#--------------------------------------------------------------------------
# ●ダメージ計算
#--------------------------------------------------------------------------
def make_damage_value(user, item) #user=攻撃者 item=スキル self=攻撃された側
value = item.damage.eval(user, self, $game_variables) #基本計算
value = apply_critical(value) if @result.critical #クリティカルなら補正
value -= (self.def + self.def) if item.physical? #物理攻撃の防御力減算
value -= (self.mdf + self.mdf ) if item.magical? #魔法攻撃の防御力減算
value = apply_variance(value, item.damage.variance) #分散度による補正
value = apply_guard(value) #ガード状態なら補正
value = 1 if value < 1 #防御では0にしない
value *= item_element_rate(user, item) #属性による補正
value *= pdr if item.physical? #物理ダメージ率による補正
value *= mdr if item.magical? #魔法ダメージ率による補正
value = 1 if value < 1 && value > 0 #0%以外の時は1ダメージ
value *= rec if item.damage.recover? #回復スキルなら回復率による補正
@result.make_damage(value.to_i, item)
end
『クリティカルの時』と『スキル・アイテムのメモ欄に<防具貫通>の文字列がある時』に
防御力や魔法防御力による減算を行わない(value -=0として計算)様にするには
どのように記述すればよいでしょうか?