弹弹堂手游吧 关注:68,864贴子:763,261

【讨论】数据说话-弹弹堂手游伤害计算bySilver

只看楼主收藏回复

游戏玩了小半个月了,目前大师2,逛了好长时间贴吧和游戏网站找攻略,有营养的不多,比较喜欢的一个是宝珠分析贴(包括原帖和新讨论帖),还有就是副本攻略贴,有些不为人知的Bug或者小Tips(然后流行起来的击飞卡位置Bug在下次更新就被封了
本人用了半个小时左右的时间打了9把个人休闲赛,统计了对手的信息和互相的伤害,部分数据由于时间原因没有记录,但就分析简单的公式计算应该是足够了,经过一个小时的计算楼主无果未得出最终公示,下面是楼主已经得出的一些结论


来自iPhone客户端1楼2017-05-14 14:07回复
    2楼


    IP属地:河北来自手机贴吧2楼2017-05-14 14:11
    收起回复


      3楼2017-05-14 14:11
      收起回复
        火钳


        IP属地:美国来自iPhone客户端4楼2017-05-14 14:12
        回复
          然后楼主的数据


          来自iPhone客户端5楼2017-05-14 14:12
          回复
            前排


            IP属地:黑龙江来自Android客户端6楼2017-05-14 14:18
            回复
              先从一些简单的结论开始:
              Conclusion1:游戏是二位平面游戏,楼主认为在游戏中,每个人都有一定的体积,而这个体积是由坐标点(x,y)决定的,根据判定武器轨迹最终落点,得到一个位置(x1,x2)和目标单位位置(x2,y2)的距离,然后根据这个距离判定是否击中目标或是否为精准。
              大家在游戏中可能会见到这种情况:我打到对面了,但是因为打在了对面前面的地上所以只有很少一点的伤害,这应该就是距离远近导致的伤害减少的结果,因此, 由于下面测试的结果不能保证距离完全一致所以会带来伤害的不同。
              但是,细心的楼主观察到一个现象,单位之间的距离计算好像并不是按照二维坐标里的距离公式来计算的。这里有一张小鸡本的图,假设小鸡的攻击方式和玩家一致(不可能会为了一个小怪重新建模吧。。。),那么我们可以观察到,小鸡在移动到玩家下方水平位置就爆炸了,为什么呢?按道理小鸡的坐标与玩家并不为0,但是小鸡爆炸了。玩过小鸡本的玩家都应该知道,小鸡只有在判定能攻击到玩家的时候才会爆炸,否则会保持在原位置卡住,这里小鸡应该是垂直走到了玩家的下方位置,然后判定距离为0,可以攻击,然后爆炸。所以这里楼主推测距离的计算可能是min{x1-x2,y1-y2}。
              在和人机对战的时候大家应该也能注意到这种现象就是电脑打的很准,每次都能垂直打到玩家的头上障碍物或者脚底障碍物,大概率是这个原因。


              来自iPhone客户端7楼2017-05-14 14:26
              收起回复
                Conclusion2:
                这一点很显而易见,游戏内数据是存在小数点的,这一点可以从很多地方看出来,包括但不限于
                a.强化武器时的生命、攻击、护甲、速度都是以.0结尾的,这是表面可以看出来的,但是在玩家面板里被隐藏了;
                b.同样的速度情况对方比你先出手,就是小数点部分你要低于对面;
                c.在进行数据统计的过程中,对方使用雷霆打出了685伤害,吸血205,按照雷霆吸血效果的描述将30%的伤害转化为吸血应该是685*0.3=205.5,这里楼主给出两个推测,一是对于数据进行向下取整;二是对面伤害并没有真正的685,而是在684~685之间,由于向上取整显示为685,这里我们可以得到最低684伤害的话*0.3=205.2,按照向上取整的假设应该吸血206,所以假设不成立,因此得到游戏数据的小数点是向下取整的
                Plus:当然这星星点点的伤害对于伤害计算而言误差算是非常小非常小了,这个结论只是来凑数的


                8楼2017-05-14 14:36
                收起回复
                  Discuss1:
                  因为不是最终结论所以希望借助广大吧友的智慧分析得到一些有用的结果。
                  这里先给出几个基础伤害计算的假设,这里的基础伤害指的是仅在伤害增益道具下或无道具下,伤害值的计算,不包括效果弹、暴击和被抵抗等。
                  玩家面板对于基础伤害有影响的几个属性有攻击Attack、护甲穿透Penetration、对方的护甲Opponent's Armor,由于这里大家应该都有一个直观印象就是护甲应该是百分比减伤,所以我们这里有一个护甲减伤转换率Armor_TransRate,这个值是一个常数。
                  对于一些武器而言还有武器效果,如砸缸的“生命值低于30%增加30%的攻击”,高空抛物Power的“随距离决定护甲穿透”,家电的"根据距离决定伤害增益“等等,这里由于楼主在实验过程中使用的武器一直是砸缸(40等级段武器),所以对于其他带特效的数据缺失,有同样兴趣的吧友们可以把自己采集的数据共享在楼下一同探讨,还有一点就是从Conclusion1得到的距离减伤比我们这里命名为Distance Damage Rate,这个减伤率实质包括两个部分,一个是飞行距离伤害减伤比,另一个是落点距离伤害减伤比,由于实验中这两个值无法实测,所以我们将两个数合为一个数,最终也就是我们的距离减伤率。
                  另外还有就是玩家在攻击时使用道具带来的增益效果,我们命名为Props Increase。
                  那么根据上面提到的因素,如果最终对面受到的伤害为Damage,可以得到一个初步的计算公式:
                  Damege = Attack * (Penetration - Opp's Armor) * Aromr_TransRate * PropsIncrease * DisDamageRate,
                  意思就是最终伤害等于你的攻击Attack乘上根据相对护甲决定的护甲减伤率(Penetration - Opp's Armor) * Aromr_TransRate,再乘上道具增益效果PropsIncrease,然后最后是乘上一个距离伤害转化率DisDamageRate。
                  这里由于我使用的是砸缸武器,拥有特效“造成50%护甲的额外伤害”,由于描述是“伤害“而不是“攻击”,这里有两个假设:
                  a.护甲的50%转换为伤害,这个伤害是指经过了护甲减伤以后再附加上的,也就是我们所说的真实伤害,这里公式更正为:
                  Damege = [ Attack * (Penetration - Opp's Armor) * Aromr_TransRate + 0.5 * Armor ] * PropsIncrease * DisDamageRate,
                  b.护甲的50%转化为攻击,也就是还要再经过减伤才能得到最终的伤害,这里公式更正为:
                  Damege = [Attack + 0.5 * Armor ] * (Penetration - Opp's Armor) * Aromr_TransRate * PropsIncrease * DisDamageRate,
                  由此我们可以得到一个简单的伤害计算公式,对于其他具有特效的武器相应的如上更改变量即可。
                  接下来我将谈到我对得到数据的处理和验证。


                  9楼2017-05-14 15:07
                  收起回复
                    …辛苦了 文科生表示看的很头痛


                    IP属地:江苏来自iPhone客户端10楼2017-05-14 15:08
                    回复
                      楼主的英文很6坐等更新


                      IP属地:江西来自Android客户端11楼2017-05-14 15:17
                      回复
                        Discuss1.1:
                        接上面的假设:
                        首先由于在实验过程中楼主并没有生命低于30%也就是2958 * 0.3 = 887.4的情况,因此砸缸的特效“生命值低于30%增加30%攻击”未触发,这对实验是有简化作用的(我当时怎么就想不开用了砸缸这么复杂的武器)。
                        那么接下来得到砸缸特效2的附加伤害:0.5 * 129 = 64.5,也就是每次攻击附加65点伤害。
                        数据分析部分如下:
                        1.根据己方和对方在相互攻击时的无特效和有增益50%伤害值,得到增益50%是增加在最终显示伤害数值上的,举个例子就是如果你第一下无道具打了500伤害,第二下用50%会增加250伤害也就是750的伤害;
                        2.对于+1道具有点迷,根据描述总伤害增加30%来考虑,那么也就是500点的无道具伤害经过加1以后可以打出650的总伤害,每下是325。这里为什么同样都是30体力的道具,伤害增益却不同呢?楼主的结论是每次伤害的计算是独立的,也就是说你第一下打的伤害和第二下打的伤害要经过两次计算(废话,要不为什么会出现一次打着一次打不着的情况),这里楼主是从一个带冰鸟的对手那里发现的,楼主使用Power + 1 + 50%,两次伤害值一次是1246,一次是1530,加一以后第二下伤害比第一下伤害多了近300点,这个300点是由冰鸟反伤,我生命值减少而附加的。也就是说+1相较于没有+1有更多的伤害可以打,这不仅包括了像司马类武器的生命转化伤害、高空抛物的距离伤害等还包括了增加了暴击率,显而易见。
                        Tips:在合适的情况下,通过+1或+2而改变地形,进而打出特技大师,前后对同样属性的两个人的伤害会有很大的差距(限特定武器)。


                        12楼2017-05-14 15:24
                        收起回复
                          前排


                          来自Android客户端13楼2017-05-14 15:24
                          回复
                            前排


                            IP属地:浙江来自Android客户端15楼2017-05-14 15:32
                            回复
                              Discuss1.2:
                              接上面:
                              这里楼主有个疑惑,就是Power带来的增益有哪些,显而易见的是三叉和单体的差别,另一点就是伤害的增益,这一点楼主不太清楚比例是多少,一会我会和基友测试一下。
                              3.三叉:没什么卵用的道具,这次测试我也没测试这个道具的伤害,只是在这里理论分析一波,三叉描述“分裂为3发,伤害提升30%”,每发相当于原来1.3/3 = 0.433的伤害,能全中的话是1.3,两发中是0.867,只有一发中的话是0.433,伤害衰减特别厉害。
                              这里我们讨论一个组合,就是+1三叉对于伤害的亏损计算,两个总伤害提升30%,按照一般游戏的尿性这个增益应该是在基础伤害上面计算的,是30%+30%而不是1.3 * 1.3 = 1.69,也就是说500点基础伤害,加一再三叉(全中)是800伤害,也就是1.6的增益,但是,这里根据Discuss1可以看出+1是分两次计算的,也就是说两次应该是分别有一个伤害衰减系数,这里+1总伤害增益1.3,单发就是0.65,然后单发再分散为三发,每发衰减系数0.43,这样算下来就是每一发子弹是0.28,(好少!!),单次命中三发是0.84的增益(还是少!!),两次全中是1.68(1.69)才稍稍能看。
                              这段其实是废话,实战中会有人带三叉吗,垃圾道具,只有在配合核弹还有些作用,因此对于三叉式大招武器算是一种小小的削弱吧。
                              Tips:三叉类大招并不是只有分散这样的缺点,当然在合适的角度(高角度,等级高以后拉线很短,角度高了很难观测落点,因而不推荐),三叉可以全中打出爆炸伤害(距离越远越难,越近越容易),因此打算用三叉大招打伤害的话最好先用纸飞机靠近对面。三叉还有个奇效就是可以破对面的力场护盾,不要再加其他Buff!!!当有+1+2斩杀的话另说,但是如果想靠第二下或者第三下三叉打伤害的话,伤害亏损很大。


                              16楼2017-05-14 15:44
                              收起回复