bingonb Posted January 26, 2021 Share Posted January 26, 2021 随着版本变动,PVP得到了越来越多的重视,这是一件非常好的事情。 但是大家肯定还有很多基础性的知识不过关,所以我打算每周用一两个问题来巩固大家的基础知识。欢迎大家回复自己的答案! WurenBB 1 Link to comment
bingonb Posted January 26, 2021 Author Share Posted January 26, 2021 第一问 图片中是神奇宝贝百科对于伤害计算公式的具体描述,那么请问错误在哪?正确的伤害计算公式应该是怎么样的? Link to comment
dorybo Posted January 26, 2021 Share Posted January 26, 2021 (edited) 结合一个例子。 一只满攻命玉地龙对我的满hp、无防御努力老班(血和防御的个体都是v)点出地震,打出了205伤害。老班靠着最小随机数苟活并且打了一发冰拳。 如果根据前面的伤害公式,来算算看伤害。 先算基础伤害,也就是公式括号里的部分。 地龙的攻击为182,老班的防御为130。等级为50级,地震威力100。 (2x50+10)/250=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 July 18, 2021 by dorybo 有一处笔误,感谢指正 GuaPizzz, ByHeart and bingonb 3 Link to comment
BlueNose Posted January 26, 2021 Share Posted January 26, 2021 很久之前我根据上图的伤害计算公式写了一份伤害计算器代码,现在距离他被回收站清空也有大半年了 Link to comment
bingonb Posted January 26, 2021 Author Share Posted January 26, 2021 (edited) dorybo兄是正解,在整个过程中是经过先取整再考虑加成的倍率关系的。举个很简单的例子,一级妙蛙种子不带道具打一百级的水箭龟,飞叶快刀的伤害会是2而非1,这就是因为经过取整后小于1而定为1,接着克制关系乘2使得伤害量变成2。还有很多例子,最直观的就是不考虑道具和特性,克制技能打出的伤害必定是2的倍数,如果先进行倍率加成的计算再取整,不可能总会是2的倍数的,所以实际上的计算公式,都是经过先取整再考虑倍率关系,而且每一次取整后小于1都要取1,考虑完倍率关系后,再进行一次最终的取整。 具体还有一些加成也不是在倍率当中计算的,这点dorybo兄也提到了,我认为他的答案是非常完整且具有参考价值的。 Edited January 26, 2021 by bingonb dorybo 1 Link to comment
Altaria1 Posted January 26, 2021 Share Posted January 26, 2021 我不了解pvp,我只会用七夕青鸟打pvp/滑稽保命 Link to comment
GuaPizzz Posted January 26, 2021 Share Posted January 26, 2021 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 comment
xiaoyenanoha Posted January 27, 2021 Share Posted January 27, 2021 原来如此,学到了,所以我选择用伤害计算器。 Link to comment
Altaria1 Posted January 27, 2021 Share Posted January 27, 2021 8小时前,xiaoyenanoha 说: 原来如此,学到了,所以我选择用伤害计算器。 伤害计算器艹 Link to comment
Daifang Posted January 27, 2021 Share Posted January 27, 2021 好家伙,当年学习时有这么认真,年级第一不回回都是你的?doge Link to comment
Altaria1 Posted January 28, 2021 Share Posted January 28, 2021 10小时前,Daifang 说: 好家伙,当年学习时有这么认真,年级第一不回回都是你的?doge 哈哈哈哈哈哈哈哈哈哈 Link to comment
bingonb Posted February 5, 2021 Author Share Posted February 5, 2021 第二问 索罗亚克,特性幻觉,会变成队伍末尾的宝可梦,而沙奈朵有个特性叫复制,会复制对面宝可梦的特性。那么请问在mmo的PVP中,当索罗亚克伪装成队伍末尾宝可梦在场上首发,而对方首发沙奈朵,那么沙奈朵会复制什么特性? (墙裂建议自己去试一下) Link to comment
Altaria1 Posted February 6, 2021 Share Posted February 6, 2021 15小时前,bingonb 说: 第二问 索罗亚克,特性幻觉,会变成队伍末尾的宝可梦,而沙奈朵有个特性叫复制,会复制对面宝可梦的特性。那么请问在mmo的PVP中,当索罗亚克伪装成队伍末尾宝可梦在场上首发,而对方首发沙奈朵,那么沙奈朵会复制什么特性? (墙裂建议自己去试一下) 复制失败() Link to comment
Mint2B Posted July 15, 2021 Share Posted July 15, 2021 On 1/26/2021 at 12:57 AM, dorybo said: 基础伤害=[[[攻击方等级×2÷5+2]×技能威力×攻击力÷防御力]÷50]+2 标方括号的运算需要向下取整结果。计算结果为63。 5.随机修正。使伤害乘上[0.85, 1]的随机数。取0.85,相乘后再向下取整。这一步的计算结果为53。 6.属性修正。包括属性一致加成和克制。 伤害=[[伤害×1.5]×属性相克倍率]。 这里计算算完STAB之后要先取整,乘上克制倍率之后再取整。这一步计算结果为158。 7.实际伤害修正。在这个阶段有触发的是命玉,伤害修正=1.3。 最终伤害=[伤害×伤害修正]。结果为205。 两种公式的计算的区别相当明显,前者只有最后一步舍去小数。而后者的计算过程中要多次进行取整,并且有严格的计算顺序要求。 因为中途的小数被舍去,这部分小数不会在被加成后达到整数部分,所以不同的公式计算结果会有出入。而正是因为这样,所以才要控制计算顺序,而不能简单地将各个因子相乘。游戏内的结果能证明这种中途舍去小数的计算结果才是对的。 公式的还有一个错误在于,并非所有修正都乘在最终伤害上。 像是技术高手、属性宝石、力量头带、猛火、强行这些加成,是乘在攻击或威力的修正中的。基础伤害里还有个常数“+2”,所以乘在威力或攻击上和乘在最终伤害上会有微小的区别。 请问像这样子的代表着什么意思⌊攻击力×攻击力修正⌉, 我知道⌊⌋是向下取整(floor),⌈⌉则是向上取整(ceiling)。但这两个组合在一起是代表round吗? Link to comment
dorybo Posted July 15, 2021 Share Posted July 15, 2021 6小时前,Mint2B 说: 请问像这样子的代表着什么意思⌊攻击力×攻击力修正⌉, 我知道⌊⌋是向下取整(floor),⌈⌉则是向上取整(ceiling)。但这两个组合在一起是代表round吗? 可能是不太规范的混用吧。 伤害计算里的过程都是向下取整的。 Link to comment
Mint2B Posted July 15, 2021 Share Posted July 15, 2021 8 hours ago, dorybo said: 可能是不太规范的混用吧。 伤害计算里的过程都是向下取整的。 好的! Link to comment
bingonb Posted July 28, 2021 Author Share Posted July 28, 2021 来讨论一下先制度的问题吧。如图,神奇宝贝百科给出了先制度表。 那么问题来了,突袭能否打断真气拳呢? Link to comment
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