heroes5吧 关注:36,766贴子:876,628

大地图野怪随机性彻底探究

只看楼主收藏回复

感谢天天的辛苦测试。


IP属地:北京1楼2021-07-22 23:55回复
    2015年1月中,6年半前,我发过一个“大地图野怪随机性初步统计”的帖子(链接: https://tieba.baidu.com/p/3535640769),研究随机怪点到底会出多少只野怪。
    当年得到了一个公式,大体上没有问题,因此也很荣幸获得了一个精品贴。
    然而当年遗留了一些问题没有解决,近期通过天天的测试,得到了改善后的公式。
    所以引用天天的研究成果,重新发帖,修订上一个贴子中某些错误的结论。


    IP属地:北京本楼含有高级字体2楼2021-07-22 23:56
    回复
      一、类别
      大地图野怪分两大类:固定野怪随机野怪
      固定野怪:种类在创建地图时不会改变。比如无论开多少次战役第一关,该是农民的地方还是农民。
      随机野怪:会在一定范围内对种类进行随机。细分起来又分全随机按等级随机,前者比较少见。经常讨论的是后者,诸如1级怪点、2级野都属于后者。
      关于按等级随机的野怪,结论如下:
      1.同等级不同种类生物出现概率相等,不分升级和未升级的区别,即农民和暴徒出现概率相等。
      2.2至7级随机野怪,有5%的概率倒退一级,即2级怪变1级怪,7级变6级……俗称“降级野(怪)”。
      降级种类的概率仍然是同级内各类生物相等。
      3.中立生物除了死骑之外,都不在随机范围内。
      4.好战者同时位于2级和3级的随机范围内,这是bug。意味着可能看到2级怪点随机出好战,3级怪点随机出数量很多的“降级”好战——碰上了自认倒霉吧。
      注意,真打起来,未升级的野怪是可能有部分分队“升级”的,比如精灵猎手混编秘箭手,概率大概是50%。


      IP属地:北京本楼含有高级字体3楼2021-07-22 23:57
      收起回复
        二、数量
        野怪的数量有三种类型:完全随机固定数目在范围内波动。如下图,它们在地图编辑器分别对应random、custom、range三个选项。

        固定数目:数量完全固定。
        范围波动:数量在给定范围内随机。
        上述两个选项,野怪的基础数量(即普通难度数量)都是由制图师手动输入的。(比如神龙关路口的大数量7级怪点)
        但一张地图有数十个野怪,制图师往往没有精力一一指定数目。所以对于大多数野怪,尤其是发展图几乎所有的野怪,都采用了默认的完全随机选项,根据内置公式自动计算数量。
        完全随机选项下的基础数量(即普通难度数量)公式:
        关键参数:生物等级、生物周产。

        降级野怪:按上述公式计算数量后,再翻倍。
        注1:公式中的方括号[ ]是向下取整运算,不过nival的取整算法很特别,大概是先减去0.0000001,再舍弃小数部分,保留整数部分。这意味着如果原结果是整数,取整后不是不变,反而会减1
        注2:上一个贴子中认为数量与是否升级无关是错误的,升级体的数量会少一些,只是这个幅度在高级兵那里不太明显,但低级兵还是能看出来的。上一个贴子中其实也提到了公式在低级兵时不准的问题,但没有找到原因。


        IP属地:北京本楼含有高级字体4楼2021-07-23 00:03
        回复
          无论上面哪个数量选项,甚至哪怕用脚本命令CreateMonster创造野怪,最终数量等于[基础数量×难度系数]
          根据设置文件DefaultStats.xdb:
          如果是战役(应该不包括单关战役)模式,从简单到史诗,难度系数依次是0.5、1、1.3、1.5倍。
          如果是非战役模式,从简单到史诗,难度系数依次是0.5、1、1.12、1.4倍。
          注:简单与普通难度,取整就是常规的舍弃小数取整;困难或史诗难度,取整还是那个古怪的nival取整模式。


          IP属地:北京本楼含有高级字体5楼2021-07-23 00:05
          回复
            如果没有选择停止增长(上面图中的选项:Quantity does not grow),那么每周一开始时,野怪数量会按比例增长。
            无论是否为战役,不同难度的周增长率都是5%、9%、10%、11%。
            增长后,真打的时候固然数量是取整后的整数,但其实内部储存数量带小数,不会取整。比如史诗难度第一周6个野怪,第二周是6.66,第三周是7.39……要是每周都取整,6个就永远变不成7个了。


            IP属地:北京本楼含有高级字体6楼2021-07-23 00:07
            回复
              应用上述结论的两个例子。
              例1:神龙关路口的7级,地图编辑器里是固定数量40,不会随时间增长。所以史诗难度下,什么时候去打都是55个,降级成6级怪也是55个。
              55怎么来的?
              史诗难度1.4倍,40×1.4=56;nival取整,56-0.0000001=55.9999999,舍弃小数取整为55。
              降级为什么也是55?
              降级数量翻倍仅限于按公式随机数量的野怪,固定数量野怪不适用。
              例2:史诗难度7级怪点第一周大概会有多少个7级?
              7级都是周产为1。
              所以未升级的基础数量下限[2×√7×1]=5,上限[3×√7×1]=7;
              史诗难度1.4倍,则下限[5×1.4]=6(注意7被nival取整是6,不是7),上限[7×1.4]=9。
              升级的基础数量下限[(2×√7-0.3)×1]=4,上限[(3×√7-0.3)×1]=7;
              史诗难度1.4倍,则下限[4×1.4]=5,上限[7×1.4]=9。
              什么,你说你从没见过史诗难度第一周只有5头升级体龙的?确实很罕见。
              要史诗5头龙,基础数量得是4,基础数量取整前是在4.9915~7.6373之间浮动,能取整成4的只有4.9915~5这可怜的一小段,概率大概只有千分之三,见不到才正常。
              不过天天确实随机出了史诗难度第一周5头龙,验证了公式的正确性。


              IP属地:北京本楼含有高级字体7楼2021-07-23 00:10
              回复
                这个公式太麻烦了怎么用?
                天天制作了一个野怪数量计算器,直接填好各个项目就能算出答案(仅限按公式随机数量,不适用于固定数量)。地址见楼中楼。


                IP属地:北京本楼含有高级字体8楼2021-07-23 00:10
                收起回复
                  附录:data.pak/GameMechanics/RPGStats/DefaultStats.xdb中记录的有关参数
                  <Respawn>
                  <MonstersMin>2</MonstersMin>(随机数量下限公式中的2)
                  <MonstersMax>3</MonstersMax>(随机数量上限公式中的3)
                  <MonstersRandomUpgradeSub>0.3</MonstersRandomUpgradeSub>(升级体随机数量公式中的0.3)
                  <MonsterDowngradeProb>0.05</MonsterDowngradeProb>(降级概率5%)
                  <MonsterDowngradeMult>2</MonsterDowngradeMult>(随机数量的野怪,降级后数量乘2)
                  <MonsterProbabilityPerCell>0.002</MonsterProbabilityPerCell>(遇到野怪周,大地图空格有0.2%的概率生成野怪)
                  </Respawn>
                  <NeutralsInCampaign>(战役野怪)
                  <CountCoefs>(数量倍数,下面4个依次是简单到史诗)
                  <Item>0.5</Item>
                  <Item>1</Item>
                  <Item>1.3</Item>
                  <Item>1.5</Item>
                  </CountCoefs>
                  <ExpCoefs>(经验倍数,下面4个依次是简单到史诗)
                  <Item>2</Item>
                  <Item>1</Item>
                  <Item>0.77</Item>
                  <Item>0.67</Item>
                  </ExpCoefs>(可以看到无论哪个难度的战役,数量与经验两个倍数乘积均为1,于是保证打野获得的经验是一样的,数量少的经验多,经验少的数量多)
                  <WeeklyGrowCoefs>(周增长率)
                  <Item>1.05</Item>
                  <Item>1.09</Item>
                  <Item>1.1</Item>
                  <Item>1.11</Item>
                  </WeeklyGrowCoefs>
                  </NeutralsInCampaign>
                  <NeutralsNotInCampaign>(非战役野怪)
                  <CountCoefs>(数量倍数,下面4个依次是简单到史诗)
                  <Item>0.5</Item>
                  <Item>1</Item>
                  <Item>1.12</Item>
                  <Item>1.4</Item>
                  </CountCoefs>
                  <ExpCoefs>(经验倍数,下面4个依次是简单到史诗)
                  <Item>2</Item>
                  <Item>1</Item>
                  <Item>1</Item>
                  <Item>1</Item>
                  </ExpCoefs>(可以看到与普通相比,简单野怪数量减半经验翻倍,总经验是一样的,但困难与史诗里,数量变多经验不变,于是获得的经验变多了)
                  <WeeklyGrowCoefs>(周增长率)
                  <Item>1.05</Item>
                  <Item>1.09</Item>
                  <Item>1.1</Item>
                  <Item>1.11</Item>
                  </WeeklyGrowCoefs>


                  IP属地:北京9楼2021-07-23 00:11
                  回复
                    被吞了十余天,申诉六天后,终于重见天日了


                    IP属地:北京10楼2021-08-04 18:45
                    收起回复
                      感谢圈圈~


                      IP属地:江西11楼2021-08-04 18:59
                      回复
                        支持,虽然感觉好专业的,但是降级怪这些还是懂了


                        IP属地:上海12楼2021-08-04 21:46
                        回复
                          本来看这标题还以为是那老贴话说之前看一个视频流亡之地m1宝物商店守怪100多领主是什么情况?会不会跟他用的3. 0有关


                          IP属地:陕西13楼2021-08-05 16:02
                          回复


                            IP属地:黑龙江14楼2021-08-05 19:05
                            回复
                              大佬厉害,我终于知道怎么全局改野怪数量了


                              IP属地:广西16楼2023-11-06 00:52
                              回复