proc DamageReduction { player mob armor } { *y[PNqyd
*y[PNqyd
set flags [GetNpcflags $mob] # 此处是 获得被玩家伤害的对象的npcflags参数 *y[PNqyd
if {$flags>0} {return -10000} #如果 npcflags>0 也就是说 对象是npc 则给玩家10000伤害系数 具体实际伤害是多少 还与 伤害对象的原来的damage有关 *y[PNqyd
set level [GetLevel $mob] *y[PNqyd
set denominator [expr {($level *85.0) +400.0 +$armor}] *y[PNqyd
set damage_reduction [expr { $armor /$denominator}] *y[PNqyd
if {$damage_reduction <0.0} { set damage_reduction 0.0 } *y[PNqyd
if {$damage_reduction >1.0} { set damage_reduction 1.0 } *y[PNqyd
return $damage_reduction *y[PNqyd
}