bingonb Posted January 26 Share Posted January 26 随着版本变动,PVP得到了越来越多的重视,这是一件非常好的事情。 但是大家肯定还有很多基础性的知识不过关,所以我打算每周用一两个问题来巩固大家的基础知识。欢迎大家回复自己的答案! WurenBB 1 Link to post
bingonb Posted January 26 Author Share Posted January 26 第一问 图片中是神奇宝贝百科对于伤害计算公式的具体描述,那么请问错误在哪?正确的伤害计算公式应该是怎么样的? Link to post
dorybo Posted January 26 Share Posted January 26 (edited) 结合一个例子。 一只满攻命玉地龙对我的满hp、无防御努力老班(血和防御的个体都是v)点出地震,打出了205伤害。老班靠着最小随机数苟活并且打了一发冰拳。 如果根据前面的伤害公式,来算算看伤害。 先算基础伤害,也就是公式括号里的部分。 地龙的攻击为182,老班的防御为130。等级为50级,地震威力100。 (2x50+10)/100=0.44 0.44x182/130x100+2=63.6 在以上两个步骤中都没有舍弃小数,因为原公式的说明中提到最后的伤害舍去小数。所以暂且保留小数。 再来算加成后的伤害。 在这个过程里参与的加成包括地龙地震的本系加成,地震克制老班,命玉加成,最小随机数。 63.6x1.5(本系)x2(克制)x1.3(命玉)x0.85(随机数)=210.834 我们的结果就是这个210.834,将其小数舍去,伤害就是210。 如果地震最小伤害是210,那上述情景就是确一,现在公式和游戏内计算结果的偏差的事实,正说明了公式有误。 我在另一家口袋百科(pokemon.name/wiki)找到了比较符合的伤害计算公式。 (题外话,这个网页经常上不去,今天突然能上了。) 它的公式对于这一次攻击的计算过程如下: 1~3.读取招式威力,攻击力,防御力。没有多的计算。 4.基础伤害计算。这步很关键,公式如下: 基础伤害=[[[攻击方等级×2÷5+2]×技能威力×攻击力÷防御力]÷50]+2 标方括号的运算需要向下取整结果。计算结果为63。 5.随机修正。使伤害乘上[0.85, 1]的随机数。取0.85,相乘后再向下取整。这一步的计算结果为53。 6.属性修正。包括属性一致加成和克制。 伤害=[[伤害×1.5]×属性相克倍率]。 这里计算算完STAB之后要先取整,乘上克制倍率之后再取整。这一步计算结果为158。 7.实际伤害修正。在这个阶段有触发的是命玉,伤害修正=1.3。 最终伤害=[伤害×伤害修正]。结果为205。 两种公式的计算的区别相当明显,前者只有最后一步舍去小数。而后者的计算过程中要多次进行取整,并且有严格的计算顺序要求。 因为中途的小数被舍去,这部分小数不会在被加成后达到整数部分,所以不同的公式计算结果会有出入。而正是因为这样,所以才要控制计算顺序,而不能简单地将各个因子相乘。游戏内的结果能证明这种中途舍去小数的计算结果才是对的。 公式的还有一个错误在于,并非所有修正都乘在最终伤害上。 像是技术高手、属性宝石、力量头带、猛火、强行这些加成,是乘在攻击或威力的修正中的。基础伤害里还有个常数“+2”,所以乘在威力或攻击上和乘在最终伤害上会有微小的区别。 Edited January 26 by dorybo GuaPizzz, ByHeart and bingonb 3 Link to post
BlueNose Posted January 26 Share Posted January 26 很久之前我根据上图的伤害计算公式写了一份伤害计算器代码,现在距离他被回收站清空也有大半年了 Link to post
bingonb Posted January 26 Author Share Posted January 26 (edited) dorybo兄是正解,在整个过程中是经过先取整再考虑加成的倍率关系的。举个很简单的例子,一级妙蛙种子不带道具打一百级的水箭龟,飞叶快刀的伤害会是2而非1,这就是因为经过取整后小于1而定为1,接着克制关系乘2使得伤害量变成2。还有很多例子,最直观的就是不考虑道具和特性,克制技能打出的伤害必定是2的倍数,如果先进行倍率加成的计算再取整,不可能总会是2的倍数的,所以实际上的计算公式,都是经过先取整再考虑倍率关系,而且每一次取整后小于1都要取1,考虑完倍率关系后,再进行一次最终的取整。 具体还有一些加成也不是在倍率当中计算的,这点dorybo兄也提到了,我认为他的答案是非常完整且具有参考价值的。 Edited January 26 by bingonb dorybo 1 Link to post
GuaPizzz Posted January 26 Share Posted January 26 4小时前,dorybo 说: 结合一个例子。 一只满攻命玉地龙对我的满hp、无防御努力老班(血和防御的个体都是v)点出地震,打出了205伤害。老班靠着最小随机数苟活并且打了一发冰拳。 如果根据前面的伤害公式,来算算看伤害。 先算基础伤害,也就是公式括号里的部分。 地龙的攻击为182,老班的防御为130。等级为50级,地震威力100。 (2x50+10)/100=0.44 0.44x182/130x100+2=63.6 在以上两个步骤中都没有舍弃小数,因为原公式的说明中提到最后的伤害舍去小数。所以暂且保留小数。 再来算加成后的伤害。 在这个过程里参与的加成包括地龙地震的本系加成,地震克制老班,命玉加成,最小随机数。 63.6x1.5(本系)x2(克制)x1.3(命玉)x0.85(随机数)=210.834 我们的结果就是这个210.834,将其小数舍去,伤害就是210。 如果地震最小伤害是210,那上述情景就是确一,现在公式和游戏内计算结果的偏差的事实,正说明了公式有误。 我在另一家口袋百科(pokemon.name/wiki)找到了比较符合的伤害计算公式。 (题外话,这个网页经常上不去,今天突然能上了。) 它的公式对于这一次攻击的计算过程如下: 1~3.读取招式威力,攻击力,防御力。没有多的计算。 4.基础伤害计算。这步很关键,公式如下: 基础伤害=[[[攻击方等级×2÷5+2]×技能威力×攻击力÷防御力]÷50]+2 标方括号的运算需要向下取整结果。计算结果为63。 5.随机修正。使伤害乘上[0.85, 1]的随机数。取0.85,相乘后再向下取整。这一步的计算结果为53。 6.属性修正。包括属性一致加成和克制。 伤害=[[伤害×1.5]×属性相克倍率]。 这里计算算完STAB之后要先取整,乘上克制倍率之后再取整。这一步计算结果为158。 7.实际伤害修正。在这个阶段有触发的是命玉,伤害修正=1.3。 最终伤害=[伤害×伤害修正]。结果为205。 两种公式的计算的区别相当明显,前者只有最后一步舍去小数。而后者的计算过程中要多次进行取整,并且有严格的计算顺序要求。 因为中途的小数被舍去,这部分小数不会在被加成后达到整数部分,所以不同的公式计算结果会有出入。而正是因为这样,所以才要控制计算顺序,而不能简单地将各个因子相乘。游戏内的结果能证明这种中途舍去小数的计算结果才是对的。 公式的还有一个错误在于,并非所有修正都乘在最终伤害上。 像是技术高手、属性宝石、力量头带、猛火、强行这些加成,是乘在攻击或威力的修正中的。基础伤害里还有个常数“+2”,所以乘在威力或攻击上和乘在最终伤害上会有微小的区别。 多利兄很强啊 Link to post
Altaria1 Posted January 27 Share Posted January 27 8小时前,xiaoyenanoha 说: 原来如此,学到了,所以我选择用伤害计算器。 伤害计算器艹 Link to post
Altaria1 Posted January 28 Share Posted January 28 10小时前,Daifang 说: 好家伙,当年学习时有这么认真,年级第一不回回都是你的?doge 哈哈哈哈哈哈哈哈哈哈 Link to post
bingonb Posted February 5 Author Share Posted February 5 第二问 索罗亚克,特性幻觉,会变成队伍末尾的宝可梦,而沙奈朵有个特性叫复制,会复制对面宝可梦的特性。那么请问在mmo的PVP中,当索罗亚克伪装成队伍末尾宝可梦在场上首发,而对方首发沙奈朵,那么沙奈朵会复制什么特性? (墙裂建议自己去试一下) Link to post
Altaria1 Posted February 6 Share Posted February 6 15小时前,bingonb 说: 第二问 索罗亚克,特性幻觉,会变成队伍末尾的宝可梦,而沙奈朵有个特性叫复制,会复制对面宝可梦的特性。那么请问在mmo的PVP中,当索罗亚克伪装成队伍末尾宝可梦在场上首发,而对方首发沙奈朵,那么沙奈朵会复制什么特性? (墙裂建议自己去试一下) 复制失败() Link to post
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now