《宝可梦》游戏漏洞:最初版本才有的bug,“选择”引发的错误_电竞网

《宝可梦》游戏漏洞:最初版本才有的bug,“选择”引发的错误

来源:电竞网 2021-01-08 17:42:20 电竞资讯

我们都知道,游戏漏洞这种东西一般都会产生恶性的效果。除非一些漏洞已经知名到可以别拿来作为宣传的工具(比如经典的恶魔城类游戏的出城bug),不然的话一般在出现漏洞的情况下官方都会选择在下一个版本或者是下一批发售的时候将这些漏洞给消除掉,于是就产生了一些在特定的版本里才会有的游戏漏洞,比如本篇我们要介绍的选择错误按钮就是仅存在于日文《红/绿》的最初版本(1.0)中的游戏漏洞,那么,就让我们来看看这是怎样的一个bug吧。

PS:本文可能并不具有太大的严谨性,如有错误,敬请指正。

基本效果:

这个漏洞是由“选择”按钮切换物品顺序的功能相关的某些疏忽所导致的,它的存在甚至引发了其它错误的发生。当玩家在物品栏中使用“选择”按钮选择了一个物品时,这个物品前面的光标将变为空心图案,但是如果这时玩家什么都不做,直接用B键关闭包包,并在不打开菜单的情况下打开招式列表或宝可梦列表时(如果此时不在战斗中,关闭包包后去遇一只野生宝可梦即可),会发现光标依然是空心的,而且空心光标所在的位置,就是先前选择的那个物品在包包中的位置。举例来说,假如我们选择了包包里的第三个物品,然后关闭包包,打开招式列表不做其他事而直接按下A,就会发现第一个招式和第三个招式的顺序被切换了。

原理:

在游戏中,内存地址$cc35保存当前选择的东西(可能是宝可梦、招式、物品等等)位于哪个位置。多种类型的切换均由这一个地址决定,它的值在没有选择东西的时候是0,但当玩家选择了某个东西,它的值就会改变,比如我们用“选择”按钮选了第三个物品,它的值便是3,选择第三只宝可梦并点击了“切换”选项时,它的值也会是3,然而由于程序员疏忽,在战斗中使用“选择”按钮时,$cc35虽然和平时一样会改变,但当玩家选择了一个物品但不做任何动作就关闭了包包,它的值并不会变成0,而依然保留了包包里选择的那个物品的序号。

于是通过这个漏洞,就做到了切换现有东西与不存在的东西,诸如切换第1只宝可梦与第7只,第1个招式与第5个招式等等,这便导致了一系列其他漏洞的发生。另外在战斗外的时候,虽然选择了一个物品也不会使这个地址回到0,但如果关闭菜单再次打开,它就会重置为0。所以也可以在战斗外选择物品,再遇野生宝可梦去触发漏洞。而其他版本修复这个漏洞的方式便是无论在何处,只要关闭了包包就会重置这个地址的值,哪怕是在战斗外没有关闭菜单的时候。

因为这个漏洞的缘故,所以可以引发诸如之前提到过的任意门漏洞以及物品栏扩充的漏洞,以达到快速通关的目的。