首页 > 代码库 > 魔兽世界中的一些公式

魔兽世界中的一些公式

一、攻击力(Attack
Power,简称AP)

Warrior/Paladin:AP=角色等级*3+力量*2-20
Hunter/Rogue:AP=角色等级*2+力量+敏捷-20
Shaman:AP=角色等级*2+力量*2-20
Druid:AP=力量*2-20
Mage/Priest/Warlock:AP=力量-10
角色DPS=AP/14+武器DPS
单次攻击伤害(最小/最大)=攻击速度*AP/14+武器伤害(最小/最大)+技能附加伤害


二、防御力(Armor)
1敏捷(Agilty)=2Armor
原来:Armor减少伤害%=0.75%*防御力/(攻击方等级+9)
  例:防御力5000的角色,
被61级敌人攻击时,可以减少伤害0.75%*5000/(61+9)=53.6%
被51级敌人攻击时,可以减少伤害0.75%*5000/(51+9)=62.5%

现在:伤害=原始伤害值/(1+armor/x),x和等级有关,那个x好像是400+85*lvl
伤害减少百分比的封顶值是75%


三、敏捷对物理攻击重击(crit)、闪避(Dodge)几率影响
在不计装备和天赋影响的情况下,重击和闪避几率受以下因素影响:
1.重击/闪避的基础值和变化值
角色的重击/闪避几率中,有一部分是不受敏捷影响的(这里称为基础值),另外一部分受敏捷影响(这里称为变化值)。
角色重击/闪避的计算公式为:基础值+变化值*角色的敏捷/敏捷标准值。
对一般的职业来说,当角色敏捷等于标准值的时候,重击/闪避几率为5%。也就是说基础值+变化值=5%。变化值越高表示敏捷对这个职业的影响越大。
敏捷标准值是与等级和职业相关的一个参数。1级时一般职业的标准值为20,盗贼和猎人为23。60级的时候战士敏捷标准值100,即敏捷100时重击/闪避几率为5%。
敏捷标准值似乎没有计算公式,是通过查表获得的,也可以自己推算,我在后面会附上算法,大家有兴趣可以自己计算。
各个职业的重击/闪避基础值和变化值
Rogue:重击基础值0%,变化值10%;闪避基础值0%,变化值20%
Hunter:重击基础值0%,变化值5%;闪避基础值0%,变化值10%
Warrior:基础值0%,变化值5%
Paladin:基础值0.7%,变化值4.3%
Druid:基础值0.9%,变化值4.1%
Shaman:基础值1.7%,变化值3.3%
Warlock:基础值2%,变化值3%
Priest:基础值3%,变化值2%
Mage:基础值3.2%,变化值1.8%
2.角色的武器技能等级(熟练度)和防御技能等级
即属性栏里显示的attack和defense。其中attack影响角色重击几率,defense影响角色闪避几率。具体来说就是重击/闪避受一个(attack(或defense)*0.04-等级/5)%的修正。
大家知道角色每升一级attack/defense上限会增加5级,正好和等级/5抵消,也就是说如果把attack/defense修满,重击/闪避几率就不受任何惩罚,如果没有修满,则每差一个等级减少0.04%的重击/闪避几率.。反之如果通过装备把attack/defense加的超过上限就会有额外奖励。
例:一个60级战士,敏捷90,defense330级,那么他的闪避为0+5%*90/100+(330*0.04-60/5)%=5.7%


四、格挡几率(Block)和招架几率(Parry)
基本几率5%,受防御技能(defense)的影响。
每级防御技能增加0.04%格挡/招架几率。或者说同闪避一样受(defense*0.04-等级/5)%的修正


-------------------------------------------------------------------------------

附:角色敏捷标准值的算法
首先注意把与重击/闪避或者防御技能相关的装备都拿掉,最好不要加任何天赋,以免引起混乱。
记录敏捷值A和闪避/重击几率D。将attack/defense对D值的修正还原,如你的角色武器技能差N级达到上限,就在D上加N*0.04%。
敏捷标准值=敏捷A/(1+(闪避或重击几率D值-5%)/闪避或重击变化值)
最后,可以更换一下敏捷装备,使敏捷发生变化,再根据上面给的公式检验一下计算结果是否正确。
重击几率可以在角色的基本技能“Attack”上查看,闪避几率可以在角色的基本技能“Dodge”上查看