noita吧 关注:22,747贴子:83,639

修正机制解析,以及“法术回绕”:两倍地利用你找到的每个链锯

只看楼主收藏回复

游戏中给法术的分类是 投射物,静态投射物,法术修正,多重施法,被动,实用,其他 等等这几类,还给了它们框框不同的颜色。很多新人一牵扯到多重施法和修正和投射物的时候就不清楚具体是怎么运作的了。
大部分人应该是有类似“只有投射物法术是占施法数,修正只是依附到投射物法术上”的这类模糊概念。
这篇帖子先是讲一讲你按下射击键之后,修正和投射物法术究竟是怎么运作的。
然后讲一下所谓的“法术回绕”,这个游戏刚发售就已经被发现的“火把/多重施法/修正放在法术结尾”的“bug”,它的触发的条件和利用方式。(也许是bug,不过更像是官方默许存在的机制)

经典法术回绕配置的图镇楼


IP属地:美国1楼2021-01-25 00:51回复
    下面要讲的东西比较基层,可能比较啰嗦,对修正和法术的结算比较熟悉的可以略过这层楼不看
    首先要明确一点就是,开头提到的“只有投射物法术是占施法数,修正只是依附到投射物法术上”的这种概念,其实是不正确的。
    法杖中的每个法术(代码中称为action),其实并没有所谓的投射物类型,修正类型之类的差别,所有的法术都是一样的,每个法术都占一个施法数,修正其实是在占了一个施法数的同时,又加了1施法数而已(某种程度上说是一重施法)
    而实际上法杖里的投射物其实也不是从头到尾走到哪个施放哪个
    在你射击的时候,会从法杖的法术队列(代码中写作“deck")中从头到尾按顺序读取法术(draw action),“记录”下所有要发射的投射物,和各种属性的修正。
    为了方便和施法数区分,我们把需要进行的读取数量称为“抽取数”,用来指代结束本次射击还需要在法术队列中向后读取几个格子。每向后读取一个格子的法术,就有一个抽取数被消耗掉,当所有的抽取数消耗完时,才真正的开始结算本次射击。
    法杖的施法数就是刚开始射击时,初始抽取数。有些法术的效果是让你继续向后多读取法术,比如3重施法是让本次施法额外向后读取3个格子也就是抽取数+1。
    抽取数被消耗完,结算射击,然后需要等待射击延迟的时间才能进行下一次射击。如果法杖里还有剩余的法术(即法术队列未完成),就会记录下来进行到的位置,下次射击时,就会从这个位置开始读取,而不是法杖开头。
    当法术队列被抽空时,就会开始进行法杖的充能时间和延迟时间(不过延迟一般比充能时间短,会被充能时间覆盖),同时生成下次射击的法术队列(如果是乱序,会进行一次洗牌,而非乱序就是法杖里的原顺序)
    ※这就是你射击时会发生的事,游戏从头开始一个一个读法术,读到抽取数用完,结算射击。
    读取到投射物之类的法术时,其实并不是立刻发射它,而是将这个法术将要发射的投射物”记录“下来(你可以当成有个“预发射队列”之类的东西记录它),然后这次抽取数就被用掉了
    实际上,无论是投射物,修正,还是什么别的类型的法术,每个格子都是占一个读取位,所有的法术并没有实质上的差别,修正看上去不占读取位的原因是,修正在改变修正数值的同时,+1抽取数,某种意义上来说属于一重施法(
    结算射击时,将属性改变应用到预发射队列中的每个投射物上,然后一起发射。


    IP属地:美国2楼2021-01-25 00:52
    收起回复
      比如下方这个施法数1的法杖,起始抽取数1,

      读取第一个法术,是二重施法,抽取数+2。剩余抽取数:1-1+2=2
      读取第二个法术,添加火花弹投射物,同时本次射击延迟+0.05s,-1散射,+5%暴击率。剩余抽取数2-1=1
      读取第三个法术,同上。剩余抽取数1-1=0,结算射击
      射击:两个火花弹,被加上了+0.1s射击延迟,-2度散射,+10%暴击率的修正,然后发射出去了。
      还有这个例子:

      施法数3,起始抽取数3
      第一个法术,添加粘液球投射,同时本次射击投射物加速1.10,散射+4度,射击延迟+0.17秒,抽取数-1
      第二个法术,给本次的射击+10伤害,+0.08射击延迟,抽取数+1
      第三个和第四个法术,同第一个法术
      最后射击,是3个粘液球,被加上+10伤害(每个投射物均起效),加0.59s的射击延迟,12度散射,1.10^3=1.33倍的投射物加速
      其实大部分投射物都包括或多或少的修正效果,修正只不过是多了一个抽取数+1的效果而已。


      IP属地:美国3楼2021-01-25 00:54
      收起回复
        现在来说一下“法术回绕”
        修正放结尾会引发什么?会在法杖的法术全部读完时,抽取数(未被使用的施法数)仍有冗余,这就是法术回绕的触发条件之一。
        这个时候,多出来的施法数会重新从头读取法术,拽进来前几个法术(取决于冗余几个抽取数)填充上本次的射击所剩余的抽取数。所以会给我们一种“修正放结尾,会让法杖里的法术施放两次”的感觉
        但是,这个读取有个限制——本次射击中已经读取的法术不会被再次读取,也就是不会读取到自身,来防止无限循环。
        法术回绕发生的两个条件就是
        1,法杖中最后一次施法会有施法冗余。
        2,法术里至少有一发区别于触发回绕的射击,也就是说这根魔杖至少需要有两发分别发射的射击。
        所以无脑堆第一发的施法数,让整个法杖只有一发,虽然可能可以少吃几次射击延迟,但是同时也让你没法触发法术回绕了
        下面就是镇楼图的经典的法术回绕:
        法杖里第一发是个独立射击,第二发是个二重施法。二重施法从头开始往后拽法术过来填充自己的2个抽取数,但是只抽到第一个火花弹,往后没有别的法术了(除了被忽略的自己)

        可以看到第二次射击,是一个二重施法和从头部被拽回来的火花弹

        第二个例子:

        当它是图里的这种配置时,法杖的一次充能将有两次射击,第一次是触发弹加三个链锯,第二次是二重施法把第一发触发链锯拽回来再施放了一次


        ↑第一发和第二发。
        你可能会问,这有啥用啊,我回绕不回绕,射速这不是差不多嘛,在游戏里有什么实战意义么?


        IP属地:美国4楼2021-01-25 00:59
        收起回复
          确实,大部分效果都只在本次射击中生效,让一次充能中射击两次似乎和只射击一次并无区别
          但是,有一些属性是跨射击生效的。比如,对充能时间的改变
          比如如图的经典链锯机枪杖,充能时间为0.67。

          当第一发法术的多重施法不冗余时(也就是上图配置),最后一个多重施法便会触发法术回绕,使你的杖成为机枪杖(gif似乎是隔帧录制的,后面的法术墙只录了无回绕的帧,只有个别帧可以看到法术回绕的帧)

          每次充能一共结算了4个链锯,0.17*4=0.68,削减掉所有充能时间
          但是,当你调换二重施法和三重施法的顺序,使得杖里只有一次射击,回绕不触发的时候,就会变成个下面这个情况:

          因为这种情况下,你就只结算了2个链锯,0.17*2=0.34,还有0.33的充能时间,射一发憋半年
          这种操作对任意的减少充能时间的组合都起效,(光剑或者减充能时间修正或者挖掘魔弹等等),只要你的第一发法术里有这些法术,触发一下法术回绕,就能让你两倍地利用这些法术的减充能时间的效果。


          IP属地:美国5楼2021-01-25 01:09
          收起回复


            来自Android客户端6楼2021-01-25 01:17
            回复
              再提一句,大部分的被动类型投射物的法术都会加1抽取数(比如火把,很适合用来触发回绕),让它在游戏里看上去没有占用抽取位,但是其实有些法术没有加…………
              这里点名批评能量护盾,半护盾,小幽灵,类型写的被动,其实和投射物一样会占用一次抽取,用的时候记得把它包括在别的多重施法下面。


              IP属地:美国7楼2021-01-25 01:23
              收起回复
                好!理解了!


                IP属地:河南来自Android客户端8楼2021-01-25 01:27
                回复
                  这就去试试


                  IP属地:江苏来自Android客户端9楼2021-01-25 01:58
                  回复


                    IP属地:中国香港来自Android客户端10楼2021-01-25 07:41
                    回复


                      IP属地:山东来自Android客户端11楼2021-01-25 08:02
                      回复
                        太强了


                        IP属地:广东来自Android客户端12楼2021-01-25 08:31
                        回复
                          有个问题,那么增加延迟的法术是不是触发了回绕后也会生效两次?


                          IP属地:北京来自Android客户端13楼2021-01-25 10:08
                          收起回复
                            学到了


                            IP属地:安徽来自Android客户端14楼2021-01-25 10:21
                            回复
                              虽然看不懂,但还是收藏了,以后再看看


                              IP属地:吉林来自Android客户端15楼2021-01-25 10:28
                              回复