原帖由金圭子于2005-02-09, 17:51:18发表
我相信如果不用这个bug,很少有人在只有几千金币的本钱的时候在1个月多(如果路程运气好的话可能还可以省)赚到320个(我才是80个舱位的小船啊,想想看如果是1000个舱位可就是4000个……)金块吧?
我大概说一下我自己猜测的这个bug存在的大概原理:
dos时代的游戏节约,把各种任务的数字都做到了一个内存地址位置(不过就算是现在叫我做也是这样做的),而且考虑到大小限制,很多地方都是取的1/N(这个就是5倍或者一半的由来)。
然后具体执行的时候,上次的送货(或者其他任务)执行完毕了,并没有把那块内存地址清空。然后接到催款任务的时候,当时只是标注了一下标志位,并没有设置人物和数量(我估计这个应该是你到威尼斯总行的时候才设置的,就和送货任务到你到了当地的市场才设置数量一样),也没有清零。
结果你进入酒吧请喝酒的时候,却检测了催款任务标志位,发现已经设定了,于是就按照上次任务的地点(在本次是人物,虽然代码一样,但是意义不同。这个也纯粹是我的猜测,因为标准的催款任务是不会出现在役的人的)和数量(乘以标准的倍数)来告诉你那个人(至于国别可能是一个定型模块的关系)。
然后你找到那个人的时候,也只检测了那个标志位,于是就要到了那么多钱…………
就是说主因应该是首先光荣标志位设计的过于简单以至于发生了混淆(但是酒吧女那儿是灰的说明起码还是有两个标志位的,那就是说明光荣在这儿是的的确确出现了bug?);其次光荣没有在使用完变量以后释放清零,又没有在申请变量时候清零。于是bug就这么出来了…………
最后说句老话:其实这个bug也就和修改本质上是一样的:不是作者设计的原意(比如催款赖皮可以说还是正确的设定,也就是作者的原意,比如这样会扣声望,只是给我们用偏了罢了)。而且这个毕竟用起来没有修改那么简单爽气。可能也只有对那种“bug”和“修改”的“名”比较在意的人(比如我)再会对这种bug比较津津乐道吧………………
呵呵~~爽吧~~其实这个BUG也是我在混大航海时代中文网时的一个朋友发现的~
我真是服了你了~居然来个分析BUG的原因~~晕~