艾尔之光吧 关注:541,574贴子:41,988,927

【半成品+纯理论向】结算支援条推算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
    收起回复
      李东信:这正是我神之才能的一部分!
      说实在的上次LC修bug能把用LC秃的共鸣和ED有零有整的返还,就证明你游并不是所谓的新程序员已经拿旧的代码没办法了看不到底层数据,其实他们有能力搞到各种数据。但是硬能把支援结算这么简单的事情搞成这个鬼样子,感觉无论是编程能力还是数学能力都不如别的游戏的非官方同好协会是可以说的吗?


      IP属地:北京来自Android客户端3楼2024-06-30 01:24
      收起回复
        这就很明显,游戏内的支援条还是通过一些方式转换为相对公平的计算方法的
        【但是怎么转换的不知道,后面内容纯个人推断+猜测,不保真】
        【以及前排提醒,首先游戏内的【橙条也就是接受的支援量】的数字直接就对不上支援条,然后支援条并不能完美对的上推论,只能说勉勉强强】
        ————
        楼上我提到了【加算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
                  回复
                    字太多了,经验+3


                    IP属地:贵州来自Android客户端10楼2024-06-30 03:19
                    回复
                      意思是说把总支援按对输出贡献的比例平均分给每个辅助嘛


                      IP属地:浙江来自Android客户端11楼2024-06-30 06:41
                      收起回复


                        IP属地:四川来自Android客户端12楼2024-06-30 07:37
                        回复
                          渊鬼度


                          IP属地:广东来自Android客户端13楼2024-06-30 12:23
                          回复
                            渊鬼度


                            IP属地:上海来自Android客户端14楼2024-06-30 13:01
                            回复
                              还真是逆天啊ldx…


                              IP属地:河南来自Android客户端15楼2024-06-30 13:40
                              回复