艾尔之光吧 关注:541,724贴子:42,009,887

【半成品+纯理论向】结算支援条推算buff相关(没做完或者说做不完

取消只看楼主收藏回复

看到有相关话题了,几个月前摸过但是实在完成不了就终结了,倒是写了有一点半成品结论也放出来看看。说实话最直接的方法是扒代码看他怎么写的,但是不懂所以只能从理论方面来推断了。
————————
一楼放理论上问题产生原因
假如现在3个人打本,1号纯c,2号50%增伤辅,3号100%增伤辅,增伤乘算
————
问题一:1号单人情况下造成1000伤害,组队情况造成伤害是多少?
答案:显然是3000。
【对于1000而言提升50%,原本有1000基础伤害,提升量为50%,即1000基础+500提升=1500,此时总伤害是1500,是基础1000的1.5倍,也就是50%增伤将伤害提升至1.5倍】
【而再提升100%,就是上一时刻的1500的基础伤害上,提升量为100%,即1500基础+1500提升=3000,同理3000是上一时刻基础1500的2倍,100%增伤将伤害提升至上一时刻的2倍】
————
问题二:那么2号和3号的支援条,在理论上来讲应该是多少呢?
因为支援条在结算中是一个确切的数字,倒回上面的解析,2号50%增伤辅的提升的数值是500点伤害,3号100%增伤辅的提升是1500点伤害
【那么50%增伤的辅助支援500,100%增伤的辅助支援1500点,这真的对吗???这一眼就不对吧】


IP属地:广东1楼2024-06-30 00:54回复
    针对问题二,不如换一个更明显的例子,假如纯c是1000伤害,2号辅助能力是100%,3号辅助能力也是100%,相互独立没有冲突,不难看出最后的伤害是4000
    但是如果依旧按照顺序拆解的话,2号将1000提升到2000,支援量疑似1000,3号将2000提升到4000,支援量疑似2000
    wtf,辅助能力同样的支援会差一倍?又没有冲突独立存在,这很明显在理论上是【不合逻辑的】
    甚至把2号和3号顺序倒过来会支援条也会倒过来,这合理吗?这根本不合理!
    ————
    产生这个问题的点在于,在乘算计算的过程中
    第一个生效的百分比作用于【基础值】
    第二个生效的百分比作用于【基础值与第一个百分比合成后,当前时刻的新值】,并非直接作用在基础值上
    第三个作用域【基础值乘第一个乘第二个之后的新值】,第四个……
    ————
    反过来讲,看看【加算buff】,比如还是c职打1000伤害,两个辅助互相独立的100%辅助能力
    那此时作用过程是【1000基础+1000*(100%+100%)提升量】
    简单的加法交换律很明显可以拆分成1000基础+1000*100%二号提升+1000*100%三号提升=3000
    不难看出,这时候的【加算100%增伤,各自作用于【基础伤害】上面,再加到一起】,相互独立互不影响
    ————
    很遗憾的是,艾尔之光的各项buff绝大多数都是【乘算buff】或者可以通过计算转换为【乘算buff】
    也就是说,支援条实际上是一个大坑,打的时候各种乘算buff相互混合
    【但是游戏内似乎并没有出现因为技能顺序问题,尽管是不同的buff但却有严重的支援条与能力不符(同词条互顶不属于这类哈)】
    比如按例子中的方法测试1个输出+3个不同种类10%增伤提升的时候,辅助支援条基本是一模一样的,并不会出现阶梯式的断层


    IP属地:广东2楼2024-06-30 01:18
    收起回复
      这就很明显,游戏内的支援条还是通过一些方式转换为相对公平的计算方法的
      【但是怎么转换的不知道,后面内容纯个人推断+猜测,不保真】
      【以及前排提醒,首先游戏内的【橙条也就是接受的支援量】的数字直接就对不上支援条,然后支援条并不能完美对的上推论,只能说勉勉强强】
      ————
      楼上我提到了【加算buff】是独立计算互不影响的,因此我这里的脑洞,简单的一句话讲,其实就是把现在的【乘算buff】通过数学方式转换为这个相互独立的【加算buff】
      当然,这种转换并不是在单个职业自身的多种buff之间进行转换,而是将【队内每一个人的理论乘算支援】转换为【相互独立的加算支援】,而这个加算支援,【或许】是我们看到的结算中的支援条


      IP属地:广东4楼2024-06-30 01:26
      回复
        开始之前先放一个例子
        假如现在桌子上有2杯水,我们有,两个人分别接到了接水任务
        1号是让当前总水量【增加100%】也就是翻倍
        2号是让当前总水量【增加50%】也就是1.5倍
        在保证总水量取到最大值的情况下,二者要求【公平(等比)分配】接水量
        首先取到最大值,那肯定是需要在接一次的基础上接另一次(乘法)
        这时候,如果我们单纯的依次序,就回到了前面的先后问题
        先1号让总水量翻倍就是接2杯水,此时的总水量是由2杯→4杯
        2号则是从4杯*1.5→6杯,不难看出尽管达到了最大值,但1号与2号均接了2杯水,此时接水量是1:1,跟任务比较而言并不公平
        反之亦然,2号先接则是2→3杯,1号再接是3→6杯,这时候杯数比是3:1,也不符按倍数公平分配
        那么此时不难发现,并不能依次序接水,而是需要二者【各自按任务比例,接自己需要的水量】,再合成到一起
        因为可以很简单的得到最终是6杯水,也就是一共需要接4杯水,按100%:50%也就是2:1的比例瓜分,1号在任务中占比是2/3,2号是1/3,带回就是1号接4杯的2/3即2.67杯,2号接4杯的1/3即1.33杯
        这时候既能达到最大值,又能保证2.67:1.33≈任务中的2:1


        IP属地:广东5楼2024-06-30 01:32
        收起回复
          这个过程就是我对支援条产生方式的猜想
          既然不能被顺序影响,那就将相互影响的乘算转化为互不影响的加算
          即把【乘算buf】f转化为【“类似加算”的算法】,而每个人吃到的“提升量”就是根据【类加算buff对应的“加算支援”

          回到例子,已知最终结果是6杯水,初始2杯水,增量是4杯,也就是增量对于初始值而言是200%
          其实也就是100%提升和50%提升的乘算增量是200%(提升200%,或描述为提升至3倍)
          而【加算支援】就是,通过比例瓜分【乘算增量】,100%提升的占比是100%/(100%+50%),因此得到式子

          1号的加算提升是133.33%,2号的加算提升是66.67%
          也就是说通过运作的方式将原本【乘算buff100%与乘算buff50%乘算】转变为【加算buff133.33%直接与加算buff66.67%相加】


          IP属地:广东6楼2024-06-30 02:19
          收起回复
            再将6楼的式子稍微变形一下,可以得到一个更方便计算的结论

            结合前文描述,200%是【乘算增量】,150%是【乘算buff直接加值和】,100%与50%分别为【乘算buff量】
            也就可以得到公式

            这就是初步的结论了


            IP属地:广东7楼2024-06-30 02:33
            回复

              此时支援比为5937.5/3562.5=1.6667
              而原始的buff数值比为50%:30%也是1.6667
              只是将乘算buff等比例扩大到一个能对的上总伤害提升的加算情况
              【乘算增量/乘算加值和】可以单独提出作为一个【转换系数】
              在任意情况的辅助下均可作为系数适用
              用【转换系数】乘上原始的【乘算buff量】,就可以得到一个可以【直接作用于【黄条】的【理论支援百分比】】


              IP属地:广东8楼2024-06-30 02:37
              回复
                这时候就可以回答1楼的问题二了
                假如现在3个人打本,1号纯c,2号50%增伤辅,3号100%增伤辅,增伤乘算
                问题二:1号造成1000伤害,那么2号和3号的支援条,在理论上来讲应该是多少呢?
                根据上述的转换,可以得知50%增伤辅的【拟加算buff量也就是理论支援百分比】是66.67%,100%是133.3%
                此时【在此套理论情况下总伤害是3000,2号支援条是667,3号是1333】
                问题结束
                ————
                但是,这一切都建立在吃buff的机体是0支援,且支援机体的输出是0这个大前提下
                不难看出,只要有新加入的【带有支援效果的人】就会影响【整个转换系数】,转换系数发生变动,就会影响所有乘算转加算的过程
                那么问题三:假如情况如下
                1号黄条输出200,原始支援20%
                2号黄条输出120,原始支援40%
                3号黄条输出50,原始支援60%
                4号黄条输出10,原始支援80%
                那么这个结算会是什么情况呢摸了后面再更


                IP属地:广东9楼2024-06-30 02:48
                回复
                  【再写一遍,这个贴内容纯个人推测,只能说某种程度上能对得上游戏内的现象(还有相当部分压根对不上或者说没法对),并不代表游戏内就一定按这一套说发来,或者说代码就一定是这样写的,纯纯的推测】
                  问题三来了,假如情况如下
                  1号黄条输出200,原始支援20%
                  2号黄条输出120,原始支援40%
                  3号黄条输出50,原始支援60%
                  4号黄条输出10,原始支援80%
                  由于一个大前提,团辅效果对于本人来说,进的是黄条而非橙条,这就导致了一个很离奇的结果
                  先不管什么条,就看这个模型里面1号对其他人的支援究竟有多少
                  根据乘算的原理,以及自己的支援并不算在支援里面,那么这时候1号对2号的支援,是1 3 4三个人乘算合成之后的结果,而非1 2 3 4四合一
                  再往后看1号对3号的支援,是1 2 4三个人乘算合成后的,1号对4号是1 2 3三个人乘算合成后的
                  有没有发现一个问题,实际上对于1号来讲,他的理论团辅效果20%,支援到每一个人头上的数值实际上,首先都不是20%,其次每个人都不一样。。。


                  IP属地:广东16楼2024-06-30 14:07
                  回复
                    在得到多c混合情况下,实际上每一个人,对其他人的支援量都不一样这个结论之后,再结合前面的【转换为拟加算buff】这个过程,就可以很容易的得到一个【理论支援数字】了
                    1号对2号的支援是1 3 4三个人的支援乘算合成,将这个乘算过程,转换为1号对2号的一个【独立加算支援百分比】,这时候其实就是1号针对2号的黄条,产生的一个【理论支援数字】
                    同理1号对3号,1号对4号均可得到一个理论支援数字,三者加起来就是此处1号的【理论支援条】


                    IP属地:广东17楼2024-06-30 14:17
                    回复

                      此时1号对其他人的【加算支援】如图,再对于每个人的黄条输出直接乘,就可以得到1号的分块支援以及理论支援条


                      IP属地:广东18楼2024-06-30 14:22
                      回复
                        由1号对其他人的支援可以得到1号的支援条
                        反过来讲,如果现在设定接受支援的是1号,来看2 3 4号对1号的伤害到底支援了多少
                        这时候的情况其实就是问题一与问题二的,一个0支援c,与多个0输出辅的简单情况了,只需要将2 3 4号的支援量乘算合成(或者转化为加算支援分别乘)即可得到1号的【理论橙条】
                        总图如下


                        IP属地:广东19楼2024-06-30 14:26
                        回复
                          问题三的最终结论如下

                          可惜的一点是找不到自我证明的方法,直接用黄条乘其他人的buff跟用加算支援逆推本质上是同一个式子最后会得到A=A
                          理论上的推导到此结束,接下来就进入坑爹的实战相关环节了,只能说理想很丰满现实很骨感


                          IP属地:广东20楼2024-06-30 14:31
                          回复
                            为什么说实战环节坑爹呢,把坑爹的地方列出来
                            ①首先,橙条经常根本就对不上黄条,但是原因未知,即使是双开俩号都会有奇怪的对不上环节
                            (同一张结算)
                            或许并不是楼上那样的推断,即使自己的辅助buff进自己的黄条,团辅效果也会跟他进行了合成导致橙条跟支援条对不上?还是会有追伤这些属性有奇怪的影响?
                            但是双开的时候实际上支援条是能对的上的,比如10%的环确实是hit数/10=支援条,为什么跟橙条对不上实在不懂
                            而且这在低数值情况下偏差的并不是很多,万一高数值偏差差出去一大截呢,不知道是什么情况
                            ②注意场地魔法。比如14-8,那个背景的光柱会给你增伤buff导致【凭空产生橙条】,但是不是每一个场地魔法都会凭空产橙条那就不清楚了(比如84-3暴走最后的希望,822吃球等等)
                            ③【破防】,先不说破防跟乘算伤害有一样的顺序问题,再想想每个人的无视面板,每个人的技能上面会不会有的有无视然后一大部分没有,你给同一个人不同一个技能的支援甚至都不一样,支援条顶破天是一个平均下来的支援量,很难往回代值
                            ④从结算反推一个支援百分比的时候,有相当大的问题


                            IP属地:广东21楼2024-06-30 15:39
                            回复

                              先插播一个用上面那套把81的实战数据【强行凑到表格】里,黄条和buff量都是瞎填的肯定是不准的,结果只能说勉强差不多,计算的输出稍微多了点
                              不过相比于最后一项,直接【用某人支援,除以总伤害扣掉这人支援条】这种计算方式得出来只有十几二十的支援,起码还是相对更贴合实际情况一点
                              ————
                              算一下94rs的理论支援,三个20破+风球假如常驻74.4破防,94rs是48和30共计63.6破防,防御按84%算,即使严格按照顺序,其他所有人生效之后rs才生效也是面对57.34%防御,rs带来的破防保底提升57.4%伤害,rs的v本身增伤约24%,也就是rs即使破防最后生效在这个队伍中81关卡理论乘算buff可以达到95.18%。
                              但前面已经推测过,顺序生效会导致结算会变得特别奇怪,图中rs取的107%代表破防提升大概67%左右勉强算合理


                              IP属地:广东22楼2024-06-30 16:01
                              回复