了不起的修仙模拟器吧 关注:142,805贴子:1,522,471
  • 19回复贴,共1

萌新告诉萌新(2) 聚灵阵和背后的代码及计算

只看楼主收藏回复

这一篇主要介绍我理解的聚灵阵及其计算。聚灵阵就是用一些聚灵物摆出来的组合。开局就有的聚灵物有巨银杏、灵土(以上这两种不可移动)、灵木、石髓。可以移动、效果好又方便获取的就是灵木了。获取灵木的方法是用外门小人砍伐地图里面底部发蓝光的树(简称灵树),砍一颗灵树能获得2--6块灵木。然后小人通过先“装备”再“丢弃”的方法,把29块灵木按照下图摆好。聚灵阵就算基本摆好了。

顺便说一下,我强烈推荐安装"更多格子信息"这个辅助mod来学习聚灵阵。上面的截图的右下角就是这个mod的显示,我自己用的稍微做了一点显示修改。


IP属地:浙江1楼2022-05-28 16:11回复
    摆好之后,聚灵阵里面的灵木就开始聚灵。为了获得更多的灵气,我们需要爆灵。这里我介绍我读完代码,经过一两天的苦思冥想之后的结果:跷跷板爆灵法。为了这种爆灵,我们需要在最左边再摆一个灵木;如下图。

    上图中我们用仓库标记了最中间的格子,将来小人就在那里修炼,结丹。最左边和最右边我用养殖区分别标记好了,将来我们需要在这两边依次做跷跷板式的爆灵方法。


    IP属地:浙江2楼2022-05-28 16:30
    回复
      期待。
      很有意思的就是。虽然很多大佬都读代码,但是给出来的爆灵阵做法却不一样。


      IP属地:上海来自iPhone客户端3楼2022-05-28 16:46
      回复
        介绍一下跷跷板式的爆灵方法,就是在左右两边的养殖区位置上依次建造一个井字棋再取消,每两次建造之间间隔一个灵气刷新。
        先补充一些基本知识,灵气是这个游戏中非常基础,非常重要的数值,你可以把小人的灵气理解为他的法力。不仅小人有灵气,物品也有灵气,每一个格子地块也有灵气。不考虑巨银杏、灵土的话,初始地图的格子地块的灵气是由灵脉和灵气刷新机制决定的。如果安装了"更多格子信息"这个辅助mod的话,你可以仔细查看每一个格子地块的灵气。在初始地图上你能找到1个或者多个矿脉地块,它的灵气是初始地图的灵气最大值197。这种地块我们称之为灵脉。接着讲比较硬核的部分,灵气刷新,游戏运行一段时间后,会按照某种规则重新计算各个地块的灵气值,我们称之为灵气刷新。如果没有额外的聚灵物,地图上的格子灵气基本上是常数,我们比较难察觉灵气刷新。有了聚灵物之后,在爆灵的过程中,只要注意观察,在辅助mod的帮助下,我们可以比较明显地观察到灵气刷新。


        IP属地:浙江4楼2022-05-28 16:59
        回复
          赶上直播?


          IP属地:内蒙古来自Android客户端5楼2022-05-28 17:19
          回复
            插个眼


            IP属地:重庆来自Android客户端6楼2022-05-28 17:20
            回复
              灵气刷新的机制比较复杂,贴吧里面也有大佬贴过代码。我稍微总结一下,1. 灵气刷新是按照一个一个格子逐步计算的,计算的次序是从左到右,然后从下到上。2. 在每个基础格子上,程序先算格子灵气的衰减,小于等于2500时衰减1%,大于2500时剧烈衰减,但是大于2475;3. 算完衰减之后,程序计算基础格子地块对它周围8个邻居格子的灵气激励值(具体计算后面展开), 如果对某个邻居格子是正激励值,则该邻居格子按照一个分段函数获得灵气激励值的一部分,最多获得1.3分之一。但是,基础格子地块的灵气不会相应地减少。通俗地说,基础格子可以提高(激励)邻居格子的灵气值,但自身保持不变。
              怎么算灵气激励值呢?为了方便理解,我引入"地面灵气"这个概念。一个地块格子,不受聚灵物影响时的灵气就是地面灵气;有了聚灵物之后,这个地块还有聚灵灵气,我们可以理解为这些灵气在地面下;地块的总灵气=地面灵气+聚灵灵气。游戏在内存中只存储了总灵气和聚灵灵气,地面灵气是我为了方便理解引入的概念。
              敲黑板,公式来了。灵气激励值 = 基础格子的地面灵气 - 邻居格子的地面灵气。所以爆灵就是重置聚灵物(比如说在相应位置建井字棋),使得一些格子的聚灵灵气为0,但是游戏默认爆灵时格子总灵气不变,这样我们可以形象的理解为,重置聚灵物后,相应范围内的这些格子上,地面下的聚灵灵气都跑到地面上,变成地面灵气了。这样的话,爆灵就抬高了一部分格子的地面灵气,对另外一部分格子容易形成一个正的灵气激励,然后在灵气刷新的时候,那些地面灵气较低的格子就可以被地面灵气较高的格子激励,实现提高自己地面灵气的目标


              IP属地:浙江7楼2022-05-28 17:28
              收起回复
                具体举例来说,我们用(100,50)表示一个格子的地面灵气是100,聚灵灵气是50;并且假设最开始聚灵阵的每一个格子的灵气都是(100, 50)。然后我们在左边的养殖区上爆一下灵,这时仓库位置的左边格子(不包括仓库本身所在的这一列)的灵气都是(150, 0),其他附近的格子还是(100, 50)。仓库的左边3个格子对仓库的灵气激励值都是50,等到了灵气刷新之后,仓库左边的灵气变成了(148, 0)(灵气衰减会有损耗),仓库的格子就变成了(147, 50) (3次激励,会有少许损耗)。然后我们再SL一下(敲黑板,这是重要步骤),仓库左边的灵气变成了(98, 50) ,仓库的格子灵气还是(147, 50),然后我们再在右边的养殖区上爆一下灵,接着重复刚才的步骤,就实现了跷跷板式的爆灵方法了。这样重复下去,到地面灵气到2500左右之后,由于衰减机制的剧烈影响,再往上就几乎不可能了,至少我想了很久,目前还是没有想出好办法。
                最后总结一下,仓库格子在我这种跷跷板式的爆灵方式下,差不多6个小时左右就能达到理论上的最大值:2500+格子当前的最大可能聚灵值;在第4天时,这个值差不多是2500+300 = 2800。


                IP属地:浙江8楼2022-05-28 19:04
                收起回复