大航海时代吧 关注:75,579贴子:987,076
  • 12回复贴,共1

你肯定没见过如此慷慨的夏洛克行长

只看楼主收藏回复

后面详细介绍原理


IP属地:吉林1楼2020-11-21 20:20回复
    玩大2的相信都知道65536魔咒吧?很多数据因为程序逻辑的原因,超过65536会出错。金块上限也是一样。
    比如现在我赚钱超过了65536金块,就只会显示超出的部分

    虽然怪吓人的,但是不显示的那65536金块是还在的,不会被扣。在教堂选全捐就会显示正常的持有金。

    话说这里真黑啊,你点回车他真敢要。
    夏洛克要价的原理是:
    1.你身上的金块数+500金块
    2.当上述条件超过10000时只算10000
    然而这看似普通的条件存在漏洞,理由就是65536魔咒了。
    当持有金为65036金块时,条件1会给这个数+500,也就是65536。然而由于魔咒的存在,达到65536会减去65536重新计算,因而不会触发条件2。
    这时我们调整持有金

    捐出503金块,再算上去威尼斯买粮食的钱,到威尼斯时持有金就刚好65036金块。

    现在开始跟行长谈判


    我说阿兰你脸皮能更厚点吗?


    IP属地:吉林2楼2020-11-21 20:31
    收起回复
      果然NB啊


      IP属地:浙江本楼含有高级字体3楼2020-11-21 22:07
      回复
        楼主试下做生意,会把溢出的金块降回去。因此到最后只能靠打海盗无限刷资金,一旦交易就降回去了。


        IP属地:上海5楼2020-11-22 00:45
        回复
          游戏本身设计有 60000 金块的上限(即金币上限为 600000000)。
          但由于各种这样那样的 bug,很多地方都会破坏这个上限导致溢出。
          金币数存放在一个双字里,所以理论上的上限大概是 42 万金块。


          IP属地:德国6楼2020-11-22 03:43
          回复
            我猜是不是这样,程序是先在内存里建立一个空集,赋值0,然后调用玩家的金块数并+500,最后将这个数显示作为孤儿院报价,也就是0+(金块+500)=报价
            而因为65536的溢出BUG,导致程序无法读取调用玩家的金块数,连带的加500也就同时失效了,变成0+(0)//也许程序为了预防卡死BUG,在游戏可能读取的子集里万一出现没有集合的情况时默认赋值0
            最后就演变成孤儿院白送而且阿兰似乎希望夏洛克倒贴


            IP属地:上海7楼2020-11-22 14:30
            收起回复
              有意思似乎一下找到了后期里马线倒卖黄金的目标,后期10条大轮船用6个月左右就差不多能弄到65036金块了


              IP属地:广东9楼2024-12-02 22:12
              收起回复
                早期游戏的极限都很低,都是2的多少次方


                IP属地:福建10楼2024-12-03 16:56
                回复