|
发表于 2009-11-6 17:52:00
|
显示全部楼层
Re:请教一个伤害公式问题
a(攻击者)等级=lv_a
b(防御者)等级=lv_b
a攻击力=att
b防御力=def
a暴击率=hit
//计算是否暴击
hitok=0
if hit>rand()*100
hitok=1
//计算基本防御,攻击者等级越高,要求的基本防御越高
basedef=lv_a*50+200
//基本伤害吸收
baseabsorb=10
//防御吸收以防御力和基本防御的比较决定
if def>basedef
absorb=baseabsorb+(def-basedef)/50
//吸收上限--50%
if absorb>50
absorb=50
else
absorb=baseabsorb+(def-basedef)/25
//吸收下限--0%
if absorb<0
absorb=0
//计算伤害
dam=att*(100-absorb)/100
if hitok==1
dam=dam*2
//伤害上限
if dam>1000
dam=1000
if dam<20
dam=20
//加入随机因子(10%随机加强或减弱)
dam=dam*(rand()/5+0.9)
//对伤害取整
dam=round(dam,0)
//输出伤害 |
|