undertale吧 关注:143,318贴子:1,898,053

【underfile(2)】随机遭遇战机制详解

取消只看楼主收藏回复

随机遭遇战作为undertale的战斗机制,是undertale的重要组成内容。在本篇文章中,我会从随机遭遇战的触发和仁慈机制详细解释遭遇战机制。
镇楼图设计灵感:underle:游戏原图,fi:storyshift wiki logo


IP属地:上海1楼2020-08-30 14:10回复
    一、随机遭遇战的触发
    1)总述
    进入可以触发遭遇战的房间后,游戏会生成一个触发随机遭遇战的所需步数。这个公式过于复杂,在这里不直接给出,它受一个地区已经杀死怪物的总数影响——杀死得越多,触发下一次所需的步数越多——但有个最大限度。
    另外,通常而言,进入一个房间触发遭遇战的所需步数小于之后在这个房间刷怪的所需步数。
    然后,游戏通过监测角色的移动来“计步”。其原理是不断循环执行一段代码,若正在移动,则步数加一。经过清空地区的怪后的计时测试,保持移动/屠杀之舞中计20步大约需1.6s。
    当移动步数超过触发遭遇战所需步数,游戏会首先计算下一次遭遇战的所需步数,然后随机选取本次遭遇战要面对的敌人。
    某些情况下遭遇战不是随机的,有关部分见后文。
    下面详细说明各个地区/房间遭遇战的所需步数。
    注:这些步数不能简单地乘0.08计算时间,大概是因为忽略了执行其他代码所需时间,还有测试时计时不准确,导致了当步数翻很多倍后误差也放大了。这些数据就当定性分析了。


    IP属地:上海2楼2020-08-30 14:11
    回复
      2)遗迹中随机遭遇战的触发
      遗迹可以说是Toby最用心的部分了,虽然剧情流程短,但遭遇战部分被分成6种情况。
      1°在房间ruins7、ruins8、ruins9(树叶堆存档点房间、破碎的地板房间、有一个石头的房间)中触发第一种情况。
      进入这些房间时:
      若未杀过怪,需要80步~120步,平均100步;
      随着杀怪数升高,达到最大限度640步~960步,平均800步;
      若已达到或超过遗迹的杀怪数20,则固定20步。
      在这些房间继续刷怪时:
      若未杀过怪:需要普通模式190步~270步,平均230步,或困难模式100步~160步,平均130步;
      随着杀怪数升高,达到最大限度普通模式1520步~2160步,平均1840步;或困难模式800步~1280步,平均1040步;
      若在已经看到bnc后再刷到一次,则固定普通模式1150步,或困难模式650步。
      普通模式中,
      有50%的概率出现froggit,
      50%的概率出现whimsun;
      困难模式中,
      有33%的概率出现final froggit和astigmatism组合,
      33%的概率出现final froggit和whimsalot组合,
      33%的概率出现final froggit;
      当然如果已达到或超过遗迹的杀怪数20,则固定出现bnc。


      IP属地:上海4楼2020-08-30 14:14
      收起回复
        2°在房间ruins10(不要踩树叶迷宫)中触发第二种情况。
        进入房间时:
        若未杀过怪,需要260步~400步,平均330步;
        随着杀怪数升高,达到最大限度2080步~3200步,平均2640步;
        若已达到或超过遗迹的杀怪数20,则固定20步。
        在房间继续刷怪时:
        若未杀过怪,需要250步~480步,平均365步;
        随着杀怪数升高,达到最大限度2000步~3840步,平均2920步;
        若在已经看到bnc后再刷到一次,则固定1825步.
        普通模式中:
        有25%的概率出现froggit,
        25%的概率出现whimsun,
        25%的概率出现moldsmal,
        15%的概率出现froggit和whimsun组合,
        10%的概率出现两只froggit;
        困难模式中:
        有25%的几率出现final froggit和whimsalot组合,
        25%的概率出现final froggit,
        25%的概率出现2只moldessa,
        15%的概率出现parsnik,
        10%的概率出3只moldessa;
        当然如果已达到或超过遗迹的杀怪数20,则固定出现bnc。


        IP属地:上海5楼2020-08-30 14:15
        回复
          3°在房间ruins11(有3个石头的房间)中触发第三种情况。
          进入房间时:
          若未杀过怪,需要60~120步,平均90步;
          随着杀怪数升高,达到最大限度480步~960步,平均720步;
          若已达到或超过遗迹的杀怪数20,则固定20步。
          在房间继续刷怪时:
          若未杀过怪,需要普通模式290步~390步,平均340步,或困难模式120步~180步,平均150步;
          随着杀怪数升高,达到最大限度2320步~3120步,平均2720步,或困难模式960步~1440步,平均1200步。
          若在已经看到bnc后再刷到一次,则固定普通模式1700步,或困难模式750步.
          普通模式中:
          有25%的概率出现froggit和whimsun组合,
          25%的概率出现moldsmal,
          25%的概率出现3只moldsmal,
          15%的概率出现2只froggit,
          10%的概率出现2只moldsmal;
          困难模式中:
          有25%的几率出现final froggit和whimsalot组合,
          25%的概率出现final froggit,
          25%的概率出现2只moldessa,
          15%的概率出现parsnik,
          10%的概率出3只moldessa;
          当然如果已达到或超过遗迹的杀怪数20,则固定出现bnc。


          IP属地:上海6楼2020-08-30 14:17
          回复
            4°在房间ruins15BCD(视角旋转房间的后3个)中触发第四种情况。
            进入房间时:
            若未杀过怪,需要90步~190步,平均140步;
            随着杀怪数的升高,达到最大限度720步~1520步,平均1120步;
            若已达到或超过遗迹的杀怪数20,则固定20步。
            在房间继续刷怪时:
            若未杀过怪,需要普通模式120步~220步,平均170步,或困难模式120步~180步,平均150步;
            随着杀怪数升高,达到最大限度960步~1760步,平均1360步,或困难模式960步~1440步,平均1200步。
            若在已经看到bnc后再刷到一次,则固定普通模式850步,或困难模式750步.
            普通模式中:
            有20%的概率出现migosp和moldsmal的组合,
            20%的概率出现migosp和vegetoid的组合,
            20%的概率出现loox,
            20%的概率出现2只vegetoid,
            15%的概率出现2只loox,
            5%的概率出现loox、vegetoid和migosp的组合;
            困难模式中:
            有20%的概率出现moldessa和migospel的组合,
            20%的概率出现parsnik和migospel的组合,
            20%的概率出现2只parsnik,
            20%的概率出现final froggit和migospel的组合,
            15%的概率出现3只moldessa,
            5%的概率出现2只astigmatism;
            当然如果已达到或超过遗迹的杀怪数20,则固定出现bnc。


            IP属地:上海7楼2020-08-30 14:18
            收起回复
              5°在房间ruins13和ruins15A(“4”只青蛙的房间和旋转视角房间的第一个)中触发第五种情况。
              进入房间时:
              若未杀过怪,需要120步~260步,平均190步;
              随着杀怪数的升高,达到最大限度960步~2080步,平均1520步;
              若已达到或超过遗迹的杀怪数20,则固定20步。
              在房间继续刷怪时:
              若未杀过怪,需要普通模式130步~290步,平均210步,或困难模式120步~180步,平均150步;
              随着杀怪数升高,达到最大限度1040步~2320步,平均1680步,或困难模式960步~1440步,平均1200步。
              若在已经看到bnc后再刷到一次,则固定普通模式1050步,或困难模式750步.
              普通模式中:
              有13%的概率出现vegetoid,
              有47%的概率出现moldsmal和migosp的组合,
              有40%的概率出现loox;
              困难模式中:
              有20%的概率出现moldessa和migospel的组合,
              20%的概率出现parsnik和migospel的组合,
              20%的概率出现2只parsnik,
              20%的概率出现final froggit和migospel的组合,
              15%的概率出现3只moldessa,
              5%的概率出现2只astigmatism;
              当然如果已达到或超过遗迹的杀怪数20,则固定出现bnc。


              IP属地:上海8楼2020-08-30 14:20
              回复
                6°在房间ruins14(六洞房间)中触发第六种情况。(本来就有的两个vegetoid不包括)
                进入房间时:
                若未杀过怪,需要140步~260步,平均200步;
                随着杀怪数的升高,达到最大限度1120步~2080步,平均1600步;
                若已达到或超过遗迹的杀怪数20,则固定20步。
                在房间继续刷怪时:
                若未杀过怪,需要普通模式140步~350步,平均245步,或困难模式120步~240步,平均180步;
                随着杀怪数升高,达到最大限度1120步~2800步,平均1960步,或困难模式960步~1920步,平均1440步。
                若在已经看到bnc后再刷到一次,则固定普通模式1225步,或困难模式900步.
                普通模式中:
                有13%的概率出现vegetoid,
                有47%的概率出现moldsmal和migosp的组合,
                有40%的概率出现loox;
                困难模式中:
                有20%的概率出现moldessa和migospel的组合,
                20%的概率出现parsnik和migospel的组合,
                20%的概率出现2只parsnik,
                20%的概率出现final froggit和migospel的组合,
                15%的概率出现3只moldessa,
                5%的概率出现2只astigmatism;
                当然如果已达到或超过遗迹的杀怪数20,则固定出现bnc。


                IP属地:上海9楼2020-08-30 14:21
                回复
                  3)雪町中随机遭遇战的触发
                  雪町中随机遭遇战分为4种情况
                  1°在房间tundra3、tundra4、tundra6中(箱子之路存档点,papyrus的哨站,sans提醒蓝色攻击的房间)中触发第一种情况。
                  进入这些房间时:
                  若未杀过怪,需要120步~150步,平均135步;
                  随着杀怪数升高,达到最大限度960步~1200步,平均1080步;
                  若已达到或超过雪町的杀怪数16,则固定20步。
                  在这些房间继续刷怪时:
                  若未杀过怪,需要140步~420步,平均280步;
                  随着杀怪数升高,达到最大限度1120步~3360步,平均2240步;
                  若在已经看到bnc后再刷到一次,则固定1400步.
                  这些房间的遇怪机制较遗迹有不同。
                  如果已经达到或超过雪町的杀怪数16,则固定出现bnc,若否,则:
                  第一次触发雪町的遭遇战,必是snowdrake;
                  第二次触发,必是icecap;
                  之后,若还没有触发doggo的剧情,则有50%的概率遇到snowdrake,50%的概率遇到icecap。
                  若已触发doggo的剧情,则之后的第一次遭遇战必是lesser dog;
                  若在屠杀路线中,则在遇到icecap后的第三次遭遇战就会遇到lesser dog,避免有些人(比如我)喜欢在箱子之路刷完怪,造成无法遇到lesser dog的情况导致无法进行屠杀线;
                  以上的所有snowdrake都会在杀死他之后变成chilldrake。


                  IP属地:上海10楼2020-08-30 14:22
                  回复
                    2°在房间tundra snowpuzz和房间tundra danger bridge(有个藏宝图,找开关的房间,和很长的桥的房间),触发第二种情况。有趣的是,这部分代码被命名为encounterer Jerry,你品,你细品。
                    进入房间tundra snowpuzz,且未按下隐藏开关:
                    在未杀过怪时,需要120步~150步,平均135步;
                    随着杀怪数升高,达到最大限度960步~100步,平均1080步;
                    若按下了隐藏开关:
                    在未杀过怪时,需要220步~250步,平均235步;
                    随着杀怪数升高,达到最大限度1760步~2000步,平均1880步;
                    进入房间tundra danger bridge,在papyrus未解释谜题前不会刷怪。
                    之后在未杀过怪时,需要120步~150步,平均135步;
                    随着杀怪数升高,达到最大限度960步~1200步,平均1080步;
                    如果已达到或超过雪町的杀怪数16,则固定20步。
                    在这些房间继续刷怪时:
                    若未杀过怪,需要840步~1520步,平均1180步;
                    随着杀怪数升高,达到最大限度6720步~12160步,平均9440步;
                    若在已经看到bnc后再刷到一次,则固定5900步.
                    若仍未遇到lesser dog,则第一次遭遇战必是lesser dog;
                    若已遇到,则:
                    有57%的概率遇到ice cap与jerry组合,
                    有43%的概率遇到icecap、snowdrake、jerry的组合。
                    当然如果已达到或超过雪町的杀怪数16,则固定出现bnc。
                    同样地,所有snowdrake都会在杀死他后变成chilldrake。


                    IP属地:上海11楼2020-08-30 14:25
                    回复
                      3°在房间tundra iceexit new(“两个”sans的房间)中,触发第三种情况。代码中叫做encoutnerer gyftrot。你没看错,他就叫encoutnerer,toby为了防止我们用全局搜索真是下了不少功夫
                      如果是从右边的路进入这个房间:
                      在未杀过怪时,需要160步~190步,平均175步;
                      随着杀怪数上升,达到最大限度1280步~1520步,平均1400步。
                      如果是从左边的路进入这个房间或从上面摔下来:
                      在未杀过怪时,需要300步~330步,平均315步;
                      随着杀怪数上升,达到最大限度2400步~2640步,平均2520步。
                      若已达到或超过雪町的杀怪数16,则固定20步。
                      在这个房间继续刷怪时:
                      若未杀过怪,需要840步~1520步,平均1180步;
                      随着杀怪数升高,达到最大限度6720步~12160步,平均9440步;
                      若在已经看到bnc后再刷到一次,则固定5900步.
                      若仍未遇到lesser dog,则第一次遭遇战必是lesser dog(又是你);
                      若已遇到,则必是gyftrot。
                      当然如果已达到或超过雪町的杀怪数16,则固定出现bnc。


                      IP属地:上海12楼2020-08-30 14:26
                      回复
                        4°在房间icecave 1(作者房间的前一个)中,触发第四种情况。代码中叫做encounterer glyde。
                        若在与papyrus约会后再进入他的厨房,就会停止刷glyde。若否,则:
                        进入房间时:
                        若未杀过怪,需要3600步~3750步,平均3675步;
                        随着杀怪数上升,达到最大限度28800步~30000步,平均29400步;
                        如果已达到或超过雪町的杀怪数16,则固定20步。
                        在这个房间继续刷怪:
                        若未杀过怪,需要840步~1520步,平均1180步;
                        随着杀怪数升高,达到最大限度6720步~12160步,平均9440步;
                        若在已经看到bnc后再刷到一次,则固定5900步.
                        只会遇到glyde,
                        当然如果已达到或超过雪町的杀怪数16,则固定出现bnc。


                        IP属地:上海13楼2020-08-30 14:29
                        回复
                          4)瀑布中随机遭遇战的触发
                          瀑布中随机遭遇战分为两种情况。
                          1°在房间water5、water6、water12(第二个桥花谜题、许愿室、onionsan房间的前一个)中,触发第一种情况。
                          进入房间water5时:
                          如果是第一次进入,需要20步~50步,平均35步;
                          如果是之后进入或从蛋派房间或许愿室进入:
                          若未杀过怪,需要340步~370步,平均355步;
                          随着杀怪数升高,达到最大限度2720步~2960步,平均2840步。
                          进入房间water6时:
                          若未杀过怪,需要110步~140步,平均125步;
                          随着杀怪数升高,达到最大限度880步~1120步,平均1000步。
                          进入房间water12时:
                          若未杀过怪,需要360步~390步,平均375步;
                          随着杀怪数升高,达到最大限度2880步~3120步,平均3000步。
                          若已达到或超过瀑布的杀怪数18,则固定20步。
                          在房间water5或water12中继续刷怪时:
                          若未杀过怪,需要340步~720步,平均530步;
                          随着杀怪数升高,达到最大限度2720步~5760步,平均4240步;
                          若在已经看到bnc后再刷到一次,则固定2650步。
                          在房间water6中继续刷怪时:
                          若未杀过怪,需要1040步~1420步,平均1230步;
                          随着杀怪数升高,达到最大限度8320步~11360步,平均9840步;
                          若在已经看到bnc后再刷到一次,则固定6150步。
                          如果已达到或超过瀑布的杀怪数18,则固定出现bnc。不同的是,如果是第一次进入房间water5,并在那里刷完18只,就不会继续在那里刷出bnc(我也不知道为什么要有这个奇怪的设定)若否,则:
                          第一次触发瀑布的遭遇战,必是aaron;
                          第二次触发,必是woshua;
                          第三次触发,必是2只moldsmal;
                          之后,有27%的概率遇到woshua,
                          有27%的概率遇到2只moldsmal,
                          有20%的概率遇到aaron,
                          有27%的概率遇到aaron与woshua的组合。


                          IP属地:上海14楼2020-08-30 14:31
                          回复
                            2°在房间water15、water16、water17中(gerson商店后的房间、点亮蘑菇房间、昏暗水晶房间),触发第二种情况。
                            进入这些房间时:
                            若未杀过怪,需要360步~390步,平均375步;
                            随着杀怪数升高,达到最大限度2880步~3120步,平均3000步。
                            在屠杀线路中:
                            若未杀过怪,需要60步~80步,平均70步;
                            随着杀怪数升高,达到最大限度480步~640步,平均560步。
                            若已达到或超过瀑布的杀怪数18,则固定20步。
                            在这些房间中继续刷怪时:
                            若未杀过怪,需要640步~1020步,平均830步。
                            随着杀怪数升高,达到最大限度5120步~8160步,平均6640步。
                            若在已经看到bnc后再刷到一次,则固定4150步。
                            在屠杀路线中:
                            若未杀过怪,需要120步~170步,平均145步;
                            随着杀怪数升高,达到最大限度960步~1360步,平均1160步;
                            若在已经看到bnc后再刷到一次,则固定725步。
                            如果已达到或超过瀑布的杀怪数18,则固定出现bnc。若否,则:
                            第一次在这些房间触发遭遇战,必是temmie;
                            第二次触发,必是moldsmal和moldbygg(伪装)组合;
                            第三次触发,必是woshua和aaron组合;
                            第四次触发,必是woshua和moldbygg组合。
                            之后,有33%的概率遇到woshua与aaron组合,
                            有40%的概率遇到woshua与moldbygg组合,
                            有27%的概率遇到temmie。


                            IP属地:上海15楼2020-08-30 14:33
                            收起回复
                              1)热地中随机遭遇战的触发
                              热地中随机遭遇战分为两种情况
                              1°在房间fire5、fire6、fire walkandbranch、fire preshootguy4(第一个有扶梯的房间、岩浆库存档点、很长走道的房间(还连接着艺术俱乐部的那个)、第二个射击谜题北半个前的房间)中,触发第一种情况。
                              这个触发方式与之前都不同,方便起见我就把敌人种类和触发步数一起说。
                              如果已达到或超过热地的杀怪数40,则固定出现bnc。若否,则:
                              第一次在热地触发随机遭遇战,必是vulkin;
                              第二次触发,必是tsunder plane;
                              第三次触发,必是pyrope;
                              第四次触发,必是vulkin与tsunder plane组合;
                              第五次触发,必是两只pyrope。
                              之后有33%的概率遇到tsunder plane,
                              有27%的概率遇到两只pyrope,
                              有40%的概率遇到vulkin与tsunder plane组合。
                              进入房间fire5时:
                              如果之前没有遇见过vulkin,则需要80步~110步,平均95步;
                              如果有遇见过,则在没有杀过怪时需要220步~250步,平均235步;
                              随着杀怪数升高,达到最大限度1760步~2000步,平均1880步。
                              进入房间fire6时:
                              如果之前没有遇见过tsunder plane,则在未杀过怪时,需要120步~150步,平均135步;
                              若杀了vulkin,则需要约123步~154步。平均约139步。
                              若遇到过,则在未杀过怪时,需要220步~250步,平均235步;
                              随着杀怪数升高,达到最大限度1760步~2000步,平均1880步。
                              进入房间fire walkandbranch时:
                              如果之前没有见过pyrope,则在未杀过怪时,需要80步~110步,平均95步;
                              若杀了vulkin和tsunder plane,则需要约84步~116步,平均100步。
                              若遇到过,则在未杀过怪时,需要220步~250步,平均235步;
                              随着杀怪数升高,达到最大限度1760步~2000步,平均1880步。
                              进入房间fire preshootguy4时:
                              如果之前没有见过tsunder plane和vulkin组合,则在未杀过怪时,需要20步~50步,平均35步,
                              若杀了vulkin、tsunder plane、pyrope,则需约22步~54步,平均38步。
                              若遇到过,则在未杀过怪时,需要220步~250步,平均235步;
                              随着杀怪数升高,达到最大限度1760步~2000步,平均1880步。
                              另外,如果这个射击谜题解开了,这个房间就不能再刷怪。
                              如果已达到或超过热地的杀怪数40,则固定20步。
                              可以看到杀二三只怪对所需步数影响很小,就忽略了吧~
                              在房间fire5中继续刷怪:
                              若未杀过怪,需要1040步~1720步,平均1380步;
                              随着杀怪数升高,达到最大限度8320步~13760步,平均11040步。
                              若在已经看到bnc后再刷到一次,则固定6900步。
                              在其他的房间继续刷怪:
                              若未杀过怪,需要340步~720步,平均530步;
                              随着杀怪数升高,达到最大限度2720步~5760步,平均4240步;
                              若在已经看到bnc后再刷到一次,则固定2650步。


                              IP属地:上海16楼2020-08-30 14:36
                              收起回复