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