了不起的修仙模拟器吧 关注:145,418贴子:1,540,622
  • 4回复贴,共1

[分享][求助]关于dll修改地图尺寸的几个限制及原因探讨

只看楼主收藏回复

通过修改ACS.dll可以调整地图尺寸这件事过了这么多年应该已经不是啥太稀罕的东西了。像我这种强迫症患者主殿正门不居中不在中轴线上就各种别扭的不把地图尺寸改成奇数就浑身难受。但是一直以来大家都只知道地图尺寸修改有上限,而对于上限是怎么来的一直都只有一个会内存爆炸的说法。最近自己在开新档的时候对各种限制地图尺寸的因素进行了一些探索,目前一共发现了如下几个方面:
1.灵源数量限制导致地图过大后初始灵气枯竭
2.地图尺寸模数过大导致地形生成bug
3.地图尺寸超过300格后建筑灯光效果无法加载
前面两点都在ACS中找到了对应变量,加以处理即可正常开始游戏,但是最后一个问题本菜鶸没能找到成因,欢迎高手补充。
灯光加载分界镇楼(拍屏主义者-100)


IP属地:荷兰来自Android客户端1楼2025-06-20 05:30回复
    楼下对这三个限制因素分别讨论


    IP属地:荷兰来自Android客户端2楼2025-06-20 05:31
    回复
      2025-08-26 00:20:01
      广告
      不感兴趣
      开通SVIP免广告
      1.灵源数量限制导致灵气枯竭
      很久以前就有大手子研究过游戏里灵气产生的原理,此处不再赘述。单说地图初始灵气的来源:地图上不可见的灵源,可以通过刚开局灵气197的地图格来确定位置。上面加盖任何建筑会让它被覆盖掉。后期没有任何用处,但是(正常玩的)前期很关键。
      ACS中地图的灵源数量受地图模数影响,但是对于大地图(讨论最大尺寸的地方不会有人选择改中小尺寸地图吧?不会吧不会吧?)ACS中的灵源数量是一个简单粗暴的常数:9,也就是地图上一共有9个灵源。
      正常的192格地图上9个灵源足够让每一格都能分到灵气了,但是对于更大的地图,只有9个灵源会明显感到灵气不够用,地图上会出现大量灵气为0的地方,而一个地图格上灵气为0那么除非重新载入刷新否则这一格灵气会永远为0(除非法座强制锁灵或者其它类似方式改变灵气产生原理)
      这个问题的回避方式很简单,只要把这个常数9改大就好了。函数在xiaworld/mapmaker/makelingstone,修改1=9即可,但是注意最大改到99,因为接下来就会有一个条件为num<100的循环对它进行再次限制。两个数可以一起改,不过99个灵源基本足够在下面一层限制下的最大尺寸地图上铺满初始灵气了。想要维持原版灵气量的话根据自己改的地图面积给上对应密度的灵源就好。


      IP属地:荷兰来自Android客户端3楼2025-06-20 05:47
      回复
        2.地图模数过大导致地形生成bug
        过大的地图会带来巨大尺寸的水面,直到地图无法生成在开局加载界面卡死,这是从发现怎么修改地图尺寸之后就一直被大家提到的问题。但是其具体原因和不修改下最大的可用地图尺寸是多少似乎一直没人研究过。最近翻mapmaker的时候无意发现了其中的关键变量SizeScale,这里姑且叫做地图模数,算法是取1和地图宽度1/64的最大值,并向下取整。
        在mapmaker/_make函数中,地图模数被用于生成与地图尺寸匹配数量的各种地形。相关算法这里就不深究了,但是可以肯定的是当地图模数超过6时这些生成算法会冲突并导致开局卡死。那么在不做修改的情况下可用的最大地图尺寸也就显而易见了:64x6-1=383格,这是正常游戏能够生成的最大地图(是奇数,狂喜.jpg)。里面会有多少水域面积个人没做测试(常年用着一些地形修改mod),但是开始游戏是没问题的。
        如果不想改任何东西还不想要那么多水,建议地图模数不要超过4,也就是最大319格(继续狂喜.jpg)。
        如果想要更大的地图,个人做法是在原本地图模数计算的基础上加套一个与5取最小值,这个数改成3或者4也可以,但是会影响各种地形和矿物的生成量。


        IP属地:荷兰来自Android客户端4楼2025-06-20 06:06
        回复
          3.过大地图建筑光影无法加载
          这个问题其实只存在于效果显示,鼠标移动到地图上还是有光照数值的,小人过去也不会显示漆黑。甚至建筑本身贴图也会显示灯是亮的。但是光影效果缺失对于游戏体感十分不友好,所以在此一并列出。
          这个问题会发生在地图从顶端数的第301行以后,从这一行开始向下地图上的建筑灯光照明效果无法显示。具体原因目前还不明,可能与显示设置相关程序有关,ACS中个人无法找到相关变量。
          使用319格或更小尺寸地图的话该影响可以忽略不计。(但是新开了个449格地图的存档晚上一开灯就很难受


          IP属地:荷兰来自Android客户端5楼2025-06-20 06:15
          回复