三国志战棋版吧 关注:36,767贴子:567,491

伤害算法篇

只看楼主收藏回复

盖出高耸的大厦的前提是有一个好标尺,依托正确的标尺才能盖出雄伟的建筑。写攻略也是如此,只有了解了游戏的底层机制后制作的攻略才不会出错。作为战旗游戏最重要的机制就是伤害的算法,只有搞清楚算法,才能正确判断各个技能理论效果并结合实际战斗分析其作用。本攻略就以实际战斗为参考,辅以大胆假设,小心论证的方式去寻得三棋的伤害算法
实际测试的过程中发现游戏内的伤害计算十分复杂,考虑到篇幅问题,本篇攻略先讲解攻击力(武力)与防御力(统率)对普攻的影响。通俗来说就是只要知道双方攻防,那根据我总结的算法就能算出实际伤害
先给个结论:实际造成的伤害与攻击力成线性关系,与防御力成乘幂关系。具体算法和数值就卖个官子后面慢慢介绍。
贴吧首发


IP属地:山东来自Android客户端1楼2023-05-13 19:46回复
    根据我的算法,436A打192T会造成7345伤害,实际伤害如图




    IP属地:山东来自Android客户端3楼2023-05-13 19:48
    回复
      为了方便控制变量,我喊来了吴大将军,控制等级,兵种完全一样,技能等级控制在11级,并记录不同攻击力和目标防御力下受伤情况进而去寻找规律



      IP属地:山东来自Android客户端4楼2023-05-13 19:49
      回复
        第一次测试,由于没有目的,测试的结果非常乱,简单整理一下数据。第一伦测试虽然没有得到想要的结果,但发现了一个有意思的结论:同等攻防差值的情况下,不同防御下的敌人受到的伤害居然不一样!这让我有了一个猜测:攻击对伤害的影响与防御对伤害的影响由不同函数控制


        IP属地:山东来自Android客户端5楼2023-05-13 19:49
        回复
          有了这个想法,就发现了第一轮测试时的问题:光控制攻防差了没注意单独控制攻击力或防御力。也就是没有做好控制变量。现在测试正式开始。新一轮测试在保证双方等级兵种携带技能等级不变的情况下,通过其它单位使用不同等级的“资军”与不同等级的“气势”来调整双方的攻防系数



          IP属地:山东来自Android客户端6楼2023-05-13 19:50
          回复
            通过第二轮测试,我得到了防御不变提升攻击力的伤害数组与攻击不变防御降低的伤害数组,并拟合他们的伤害曲线,得到了初版的伤害计算公式,当然这个公式仍不完善,所以我结合第二次测试的经验开启了第三轮测试


            IP属地:山东来自Android客户端7楼2023-05-13 19:50
            回复
              第二轮测试实际测试了一百多次,大部分数据都是因为方向错了是有问题的,所以只截了几张走向正确路线的测试结果图。经过第二次测试,我确定了攻击力与伤害成线性关系,防御力与伤害成乘幂关系,那么有了目标,就开始着手准备第三次测试,这次使用夏侯渊与NPC作为测试目标,更接近实际战斗的状态,通过给夏侯渊堆不同等级的资军与削减npc的防御力来继续测试


              IP属地:山东来自Android客户端8楼2023-05-13 19:51
              回复
                由于已经确定攻防与伤害的函数关系,此次实验就轻松拟合出我想要的公式,也就是初步公式,现在要做的就是检验公式是否合理,接下来我会用几个随堂小测来试试公式的准确度



                IP属地:山东来自Android客户端9楼2023-05-13 19:51
                回复
                  为了方便观看,先首先将公式整合:
                  最终伤害=
                  ((1,217,685.69* T^(-0.987)-13.818)/403*A
                  T:目标的统帅值, A:攻击者的攻击力
                  这个数据不包括各类增益(下次攻略再测增益)
                  什么意思?逻辑很简单,两个公式代表了在攻击力为403时伤害曲线,防御力为241时的伤害曲线,那么面对一个不一样的攻防单位时,就先假设目标的攻击力为403算出403攻击对此防御力的单位造成的伤害量将公式转为线性函数,然后求出此线性函数的斜率反代到公式里就能得实际防御力下面对实际攻击力所受到的伤害


                  IP属地:山东来自Android客户端10楼2023-05-13 19:52
                  收起回复
                    直接开始做题!
                    先用第一轮测试中吴大将军的数据出个小题,带入数据计算
                    S=((1,217,685.69* 161^(-0.987))-13.818)/403*171=3422.529
                    啥情况?怎么伤害多这么多?别忘了,吴大将军只带着11级技能!所以吴大将军根据公式的理论伤害
                    S=3422.529/2*(1+11/33)=2338.72
                    误差(2443-2338.72)/2443=4%
                    误差在可接受范围内,随堂小测90分!


                    IP属地:山东来自Android客户端11楼2023-05-13 19:52
                    回复
                      回到帖子最开始的题目,436A打192T造成多少伤害?
                      代入公式:
                      S=((1,217,685.69* 192^(-0.987))-13.818)/403*436=7331
                      实际伤害7357
                      随堂小测满分!
                      再出一题,满宠A253打子龙T357直接套公式S=((1,217,685.69*357^(-0.987)-13.818)/403*253 =2302.68
                      实际伤害1240*2=2480
                      (2480-2302.68)/2480=7.14%
                      考虑到这个图地板有承伤增加赵云有很多增益,所以有点误差,我宣布随堂小测95分!


                      IP属地:山东来自Android客户端12楼2023-05-13 19:53
                      收起回复
                        结论:经过测试,我们得到如下结论:1点武力对应固定数额的伤害x,400武力就是造成400x的伤害,x的值由目标的统率决定,统率越高,x越低,成乘幂关系


                        IP属地:山东来自Android客户端13楼2023-05-13 19:53
                        回复
                          那肉盾是堆统率合适还是减伤合适


                          IP属地:河北来自Android客户端14楼2023-05-13 20:33
                          收起回复


                            IP属地:广东来自iPhone客户端15楼2023-05-13 20:33
                            回复
                              朕的翻译何在


                              IP属地:广西来自Android客户端16楼2023-05-13 20:34
                              回复