发明工坊吧 关注:4,598贴子:36,493
  • 15回复贴,共1

新建店铺算法以及BUG修复补丁(3号补丁)、、、

只看楼主收藏回复

一楼喂熊、、、


IP属地:山东1楼2021-12-22 19:58回复
    〇、引子
    曾经有个问题始终困扰着我,就是不用修改器的话为什么从来见不到披萨店?
    攻略中提到,7月1日-8月15日白天,如果有披萨店(任何街区),那么在西通可以触发剧情,获得来梦来人披萨,研究来梦来人披萨可以得到超辣海鲜披萨的处方签。
    但是无论我怎样努力,根本就刷不出来披萨店。
    而用修改器直接建造一个披萨店的话,又确实是可以触发这个剧情的。
    这始终让我耿耿于怀,它意味着不用修改器收集全图鉴是不可能的。
    事实上,不只是披萨店,还有其他一些店铺都是建造不出来的,例如花店、书店等,你们曾经在不用修改器的情况下见到过这些店铺吗?
    于是,我仔细研读了代码,解析出新建店铺的算法,也找出了其中的BUG,而且还做出了修复补丁。


    IP属地:山东2楼2021-12-22 19:58
    回复
      一、算法
      每5天建造一轮,每个已开放的街区在每轮可以至多建造一个新建筑。
      所有建筑分为14类:
      0.发明工坊
      1.住宿
      2.饮食
      3.食品类
      4.衣料类
      5.杂货类
      6.工业类
      7.工艺类
      8.住宅
      9.观光类公共设施
      10.工业类公共设施
      11.其他公共设施
      12.空屋
      13.网络购物
      其中可以建造的就是其中的1~8这8类。
      另外,每种建筑都要先解锁才能建造,有些是开局直接解锁的,有些是要达成某些条件才能解锁的。
      每种建筑所属的分类和解锁条件我们后面具体再说,本节先只说总体的算法。
      第一步:每个街区随机选择一个分类
      就是从1~8这8类里选择,其中有2/9的概率选中第2类(饮食),各1/9的概率选中其他类。
      也就是说这个选择并不是等概率的,第2类是其他类的两倍。——这个可以理解,毕竟第2类下属的建筑种类是最多的。
      第二步:根据街区的发展情况决定是否建造
      如果是住宅(第8类),如果满足条件:总人口数≥(本街区住宅数+1)×5000,则建造;否则不建造。
      如果是其他类(第1~7类),如果满足条件:①本街区尚没有该类建筑,或②本街区该类建筑平均人气≥15,则建造;否则不建造。
      注:这里有个问题,住宅为什么判断的是总人口数,而不是本街区人口数?我认为这很不合理,应该算一个BUG,所以我在补丁里把这里改掉了。但是这个问题见仁见智了,可能会有人认为不该改。
      第三步:选择具体建造哪一种建筑
      统计在选出的这个分类下,有哪些建筑是已经解锁的,然后从中随机选择一种。
      如果这个分类下的建筑全都没有解锁,那么也将无法建造。
      第四步:选择建造位置
      统计出本街区所有能建造该建筑的空地,如果是占地两格的建筑,只能找两个相邻的空地。然后从中随机选择一个位置。
      如果没有能够建造的空地,那么建造失败。
      注意,第二至四步,任何一个条件无法满足,就直接结束,本轮本街区将无法建造,并不会返回去重新选择分类。
      第五步:开始建造


      IP属地:山东3楼2021-12-22 19:58
      收起回复
        二、建筑分类及解锁条件
        如下表所示:

        关于解锁条件,之前已经有攻略写过了,但是经过我的测试,发现其中有几处与攻略有些出入,已经用颜色标了出来。
        1.吃茶店和蛋糕店,攻略中说的解锁条件是餐厅2级,实际是快餐店2级。
        2.花店,攻略中说的是贩卖过海洋玫瑰,实际是贩卖过混种玫瑰。
        3.石工,攻略中说的是初始直接解锁,实际需要贩卖过钻石切割机。
        开局的时候职人通就有两家石工,所以大家可能都不太留意。实际我们经常会见到新建的木工或者锻冶屋,但是很少见到新建的石工,毕竟钻石切割机制造起来特别坑,我也很懒得做。
        4.服饰店,攻略中说是贩卖过万能编织机,实际是在任何条件下都无法解锁。


        IP属地:山东4楼2021-12-22 19:59
        回复
          三、BUG及修复
          第一个BUG:在上一节的表格中,可以看到有一半建筑的分类一栏是空的,导致了第1(住宿)、3(食品类)、4(衣料类)、5(杂货类)类下根本没有建筑。
          结果当然是这些店铺永远没有办法被建造出来(除非是开局在地图上直接就有的)。披萨店建造不出来的谜团终于解开了,看来这真的不是我脸黑。
          于是我把这些店铺按顺序分配到了各个分类下。
          第二个BUG:上一节提到过的,服饰店无法解锁。
          不知道那个“贩卖过万能编织机”是不是出自官方攻略(我相信能写出这些数据的应该是官方),但我还是决定不采纳这个条件。我把它的条件设置成了“缝纫店2级”,这样缝纫店-服饰店-精品店-高级博蒂格与杂货店-古董店-珠宝首饰店-高级珠宝首饰店这两个序列比较一致,看起来整齐些。
          第三个BUG:第一节中提到过,判断是否建造住宅的条件是总人口数≥(本街区住宅数+1)×5000
          我把总人口数改成了本街区人口数。
          修改后的建筑分类和解锁条件如下表所示:

          这个修改和之前的乱码、音乐修改不同之处在于,它对游戏节奏产生影响了。复兴度增长速度明显加快——当然如果你想要挑战99%复兴度仍然是很难的。


          IP属地:山东5楼2021-12-22 20:01
          回复
            四、补丁
            这是我的第3号补丁,除了本帖介绍的修改内容外,里面也已经包含了前两版补丁:
            2号BGM补丁
            1号乱码补丁
            0号炸弹补丁(炸弹补丁不是我写的,但我是在有补丁的版本基础上继续修改的,所有我的补丁中自然也就包含了炸弹补丁的功能)
            除此之外,我还修改了一个地方,就是城市收入的显示。
            我曾经在《城市发展理论》帖子里介绍过城市收入算法,因为程序猿的错误,显示的是一个虚高的数字,我把算法改正过来了,现在城市收入显示的数字一下子比原来变小了。但这不会对城市发展有任何影响,这只是个显示问题。


            IP属地:山东6楼2021-12-22 20:01
            收起回复
              最近吞楼情况比较惨,还是先观望一阵子,看看能不能吐出来、、、


              IP属地:山东7楼2021-12-23 06:58
              回复
                通关两次,根本不知道还有这bug!感谢大神!


                8楼2021-12-27 04:31
                回复
                  确实 没见过药店,书店,古董店,花店等等,好尴尬(︶︿︶) 谢谢楼主


                  IP属地:北京来自Android客户端9楼2021-12-27 12:37
                  回复
                    不得了 没想到2021还有人研究发明1的算法,更没想到还有人写新的补丁。
                    过年放假了打算重玩,来碰碰运气,没想到有惊喜。
                    非常感谢楼主么么哒


                    IP属地:广东10楼2022-02-01 15:22
                    回复
                      楼主你配享太庙


                      IP属地:天津12楼2024-07-01 17:54
                      回复
                        谢谢楼主


                        IP属地:四川13楼2024-09-25 16:16
                        回复