废都物语吧 关注:28,177贴子:186,936
  • 13回复贴,共1

在试图整理随机迷宫相关数据时发现一个潜在的bug

只看楼主收藏回复

1楼随便挂张图


IP属地:北京1楼2024-01-08 14:04回复
    先上结论:这个bug对原版游戏的潜在影响尚且不明,某个我还没搞明白干啥用的变量会被意外归零。
    对于加装了作弊补丁的游戏,除对原版游戏的潜在影响外,额外还有:每次进入随机迷宫新的一层时都会 清空 作弊补丁中记录的“本周目已获得的SP量”


    IP属地:北京2楼2024-01-08 14:07
    回复
      2026-02-19 05:38:00
      广告
      不感兴趣
      开通SVIP免广告
      接下来说一下bug的成因:
      事情的起因是我在整理随机迷宫的逻辑,然后我顺藤摸瓜找到了这个事件:

      (使用的版本为吧内置顶大礼包中的开关变量名汉化版,额外加装作弊补丁)
      这个“乱数マップ新階層入る”事件会在每次进入随机迷宫新的一层的时候被调用,大概就是用于确定新的一层的地图以及地图上每个点对应的事件。


      IP属地:北京3楼2024-01-08 14:11
      回复
        上页图中,从标记20开始的这一段代码翻译成人话大约是这样:
        把变量491~500置为0
        把开关1081~1100置为off
        变量95置为481
        循环开始:
          变量93置为1~100的随机数
          根据变量93的值,把“变量95的值对应编号的变量”置为一个随机数(一串if嵌套逻辑)
          变量95自增1
          如果变量95 > 490,则中断循环
        回到循环开始
        后续的操作……
        也许有人已经看出来了,这是一个for循环,变量95作为循环变量遍历了481~490的数值,然后每次循环都会把变量95的值作为一个变量编号,将其指向的那个变量的值进行修改。
        换句话说循环的意义是修改变量481~490的值,上述代码进一步精简可以写成如下操作步骤:
        1、把变量491~500置为0
        2、把开关1081~1100置为off
        3、把变量481~490置为随机数值
        发现问题了吗?循环开始时把变量491~500置零是为了干什么?
        我们看一下变量库:

        嗯?变量491~500好像和随机迷宫根本没关系啊。


        IP属地:北京4楼2024-01-08 14:24
        回复
          根据随机迷宫地图上的事件内容,可以基本上确定变量481~490这些“运行XX种类”指的是随机迷宫每一层里每一个事件点的随机遭遇。那么上述代码就是在进入新层的时候确定地图上每个点对应的事件用的。
          所以说变量491~500应该是被意外置零了,当时的开发者或许是想清零变量481~490,因为执行这一段代码之前这10个变量应该保存了当前层的遭遇事件,它们应该被清理掉,换成下一层的遭遇事件。(当然实际上由于接下来的操作还是赋值,这里的清零其实是多余的)
          那变量491~500干啥用的呢?494~498很显然是作弊补丁添加的。我查看了作弊补丁的事件逻辑,除变量497以外的变量都可以认为是临时变量存储中间运算结果,意外清零它们不会有什么大问题。但是变量497存储了本周目通过作弊获得的SP总量(作弊补丁限制了每周目作弊获得的SP总数),而这个数据会在进入随机迷宫时被清空。
          至于变量491,首先它是一个原版就存在的变量,如下图:

          变量名称叫做“任务1”,我并不理解这个变量的目的,因此也不知道这个变量被意外归零时会发生什么。


          IP属地:北京5楼2024-01-08 14:32
          回复
            我目前只能确定这个bug影响了作弊补丁,解决方法就是把491~500改成481~490应该就没事了。如果有哪位dalao知道变量491的用途,欢迎补充!


            IP属地:北京6楼2024-01-08 14:34
            回复
              顺便吐槽一下作弊补丁的一键还原:

              嘿,作弊补丁的作者,你的还原功能好像出了点什么问题啊,熟练之证的数量减少值是不是写错变量了啊(喝茶)


              IP属地:北京7楼2024-01-08 14:36
              回复
                我怀疑这些置0变量可能以前规划要用在随机迷宫,但最终没有使用。
                所以原版没有出现问题,但有人改着玩那就可能出现异常了。


                IP属地:重庆8楼2024-01-08 16:20
                收起回复
                  2026-02-19 05:32:00
                  广告
                  不感兴趣
                  开通SVIP免广告
                  这就是大佬的世界吗


                  IP属地:浙江通过百度相册上传9楼2024-01-08 20:53
                  回复
                    虽然是bug,但一般原版玩家来看好像并没有影响什么?


                    IP属地:黑龙江来自Android客户端10楼2024-01-08 21:00
                    收起回复
                      ( ゚∀。)


                      IP属地:山东来自Android客户端11楼2024-01-08 23:26
                      回复