stellaris吧 关注:276,980贴子:6,739,009

群星战力计算全解析

只看楼主收藏回复

500h萌新第一次发这种帖多多见谅哈
先给你们看看魔怔数值当封面(一般般啦),战力数值约等于原版
前几天想找,网上转了一圈,也发帖问了,没有,我也没有源码,只能自己推导,希望不要白费功夫
断断续续推了几天,可以差不多宣告完工了
公式两三个小时就推出来了,但细节太多,各种偏差搞了几天
先说结论:
战力=( ( 有效生命 * 总有效伤害 / ( 1 + 多余能量加成) ) ^ 指数 ) * 缩放倍率
其中:
有效生命 = 船体权重 * ( 船体 + 装甲权重*装甲 + 护盾权重*护盾 ) / ( 1 -闪避 )
有效伤害 = 伤害权重 * 每日伤害 * (1 + 穿甲权重*装甲穿透 + 穿盾权重*护盾穿透 + 甲伤权重*装甲增伤 + 盾伤权重*护盾增伤 + 射程/射程除数RANGE_DIV) * ( 1 + 追踪权重 * ( 1 - 追踪 ) )
(太长不看)
2L目录
有空就更新
3.4版本做的测试,有变化再改


IP属地:山东1楼2022-09-19 22:16回复
    一、战力计算公式及详细计算方法
    二、计算中的细节及注意事项
    三、有关数值溢出
    四、尚待解决的问题和疑惑
    顺便介绍一下我的战力溢出修复MOD
    ID2864561711
    工坊搜:xT的舰船战力溢出修复


    IP属地:山东2楼2022-09-19 22:21
    收起回复
      围观
      ----我想我不需要短暂的冷淡和过期不候的温暖。


      IP属地:江苏来自Android客户端3楼2022-09-19 22:27
      回复
        一、战力计算公式及详细计算方法
        战力=( ( 有效生命 * 总有效伤害 / ( 1 + 多余能量加成) ) ^ 指数 ) * 缩放倍率
        有效生命 = 船体权重 * ( 船体 + 装甲权重*装甲 + 护盾权重*护盾 ) / ( 1 - 闪避 )
        有效伤害 = 伤害权重 * 每日伤害 * (1 + 穿甲权重*装甲穿透 + 穿盾权重*护盾穿透 + 甲伤权重*装甲增伤 + 盾伤权重*护盾增伤 + 射程/射程除数RANGE_DIV ) * ( 1 + 追踪权重 * ( 1 - 追踪 ) )
        总有效伤害 = Sigma( 每个武器有效伤害 )
        每日伤害 = 武器平均伤害 * ( 1 + ( 1+多余能量加成 ) * ( 1+舰船伤害增加(包括本土) ) * ( 1+舰船射速增加(包括本土) ) - 1 + ( 1+武器伤害增加(所有相符类型总和) ) * ( 1+武器射速增加(所有相符类型总和) ) - 1 )
        如: 0.007多余能量25%舰船伤害71%舰船射速25%能量伤害80%能量伤害80%能量射速的电弧
        伤害为 105 * ( 1 + 1.007*1.25*1.71 - 1 + 2.05*1.8 - 1 ) = 508.459
        (多种武器类型(如动能、能量)计算在一起)
        武器平均伤害 = (最小伤害+最大伤害)/2 / 冷却时间 * 命中率
        接下来是一个简单的例子

        导弹乘数乘在导弹的有效伤害后面,点防同
        战力计算的射程追踪命中什么的不享受BUFF加成,以武器本体为准。基本只有伤害加成算进战力里
        如: +20%射程+10追踪的战列,其X槽电弧在计算战力时仍算为150射程0追踪
        糟糕,命中BUFF我没测过,待会再说


        IP属地:山东4楼2022-09-19 22:31
        收起回复
          cy


          IP属地:湖北来自Android客户端5楼2022-09-19 22:36
          回复
            以该T-34为例,0额外能量加成
            使用原版参数(首楼图里default数值)

            有效生命6325.8 = 0.5 * (11260+1*0+1*0) / (1-0.11)
            有效伤害124.03 = 0.5 * 141.75 * (1 + 0.5*1 +0.5*1 + 150/100 + 0.33*0 + 0.33*0) * (1 + -0.5 * ( 1-0 ))
            战力 1696.1 = (6325.8*124.03)^0.65*0.25


            IP属地:山东7楼2022-09-19 22:40
            收起回复
              楼主太强了,居然推出了这么多东西,本菜鸡只会改MILITARY_POWER_EXPONENT和MILITARY_POWER_SCALE,建议编辑wiki,贴吧帖子吃枣会被淹没


              IP属地:罗马尼亚8楼2022-09-19 22:42
              收起回复
                有趣,回头研究一下有什么可以整的花活


                IP属地:福建来自Android客户端9楼2022-09-19 22:54
                回复
                  二、计算中的细节及注意事项
                  好像上面讲完了,没什么好讲的了
                  啊不对,我是要讲改参数的问题的,目录将就着看看吧
                  蠢驴的上面这些数字应该都是以1/32767约=0.000030519为最小单位的(我只测了两个主要WEIGHT船体和伤害和SCALE)
                  会四舍五入(划掉)零舍一入(所以我之前以为最小单位1/65535)
                  如果该太小了没注意改成1/32767的倍数的话很容易出现计算结果和游戏数值差很多的情况
                  (比如最开始猜是浮点数问题的我,不过也大差不差猜对了)
                  并且只要一个主要WEIGHT小于1/65534也就是被约到0,有效生命*有效伤害会强制归一导致所有船战力均为Scale
                  因此只改变两个主要WEGHT以及Scale的话战力上限为215G
                  其实并不完全够,原因在下节讲


                  IP属地:山东10楼2022-09-19 22:54
                  收起回复
                    如果写mod的话其实只要改四个(其实三个更好)足矣:
                    MILITARY_POWER_HEALTH_WEIGHT船体权重、MILITARY_POWER_DAMAGE_WEIGHT伤害权重、MILITARY_POWER_SCALE缩放倍率、MILITARY_POWER_EXPONENT指数
                    如果要原版数值,只需保证均约为1/32767倍数且指数不变,S/0.25 = (0.5/HW*0.5DW)^0.65 即可
                    当然,直接改然后目测差不多也可以
                    只是我在Excel里把公式写好了就可以直接算很方便
                    剩下的明天更吧
                    一定不咕咕咕


                    IP属地:山东11楼2022-09-19 23:07
                    回复
                      666,cy


                      IP属地:甘肃来自Android客户端12楼2022-09-20 01:23
                      回复
                        体伤盾伤权重应该是相加除以总权重吧
                        指体权/(体权+盾权+甲权),我同时改动这三个数据没发生啥变化


                        IP属地:湖北来自Android客户端13楼2022-09-20 01:56
                        收起回复
                          回复一下上楼,应该没除总权重




                          按我上面的公式算出来没问题


                          IP属地:山东14楼2022-09-20 08:46
                          收起回复
                            三、有关数值溢出
                            I、战力为1的(部分)条件
                            1、最常见的情况,有效生命*有效伤害>2^33约=85.9G
                            因此大多mod解决战力变1都是缩小船体权重和伤害权重,增大缩放倍率
                            保持原版数值的为单舰战力上限0.25*(2^33)^0.65*(0.5*(2^15 - 1))^1.3=2.156562787*10^11,215G
                            2、伤害为负(即有效生命*有效伤害<0),伤害过高(>约922M,<约1.84G,以此类推)导致负数
                            有些疑惑,最后会写
                            II、出现负数的(部分)条件
                            1、船体、伤害(别的没测)均超过约922M溢出
                            所以古代帝国9亿事件炮基本就是必死
                            2、船体恢复(别的没测)超过约9.2M溢出,所以18.4M之前血会越回越少直到变1
                            3、战力(不论单舰或舰队)超过约2^31显示为负数,不过鼠标移到单舰或舰队上显示正常,比如本贴封面


                            IP属地:山东15楼2022-09-20 09:46
                            收起回复

                              因此这是极限状态下最高战力215G的船,再高就变1了
                              但是它的装甲护盾射程追踪什么的都明显不足,通常不会这么低(???)
                              所以两个WEIGHT均改1/32768并不能完全解决战力变1的问题
                              起码要1/131072吧,很可惜,改不了
                              或者像小伞mod一样直接压数据,但也没有从根本上解决问题,我也没办法


                              IP属地:山东16楼2022-09-20 10:25
                              回复