我們都知道,遊戲漏洞這種東西一般都會產生惡性的效果,除非一些漏洞已經知名到可以別拿來作為宣傳的工具《比如經典的惡魔城類遊戲的出城bug》,不然的話一般在出現漏洞的情況下官方都會選擇在下一個版本或者是下一批發售的時候將這些漏洞給消除掉,於是就產生了一些在特定的版本裡才會有的遊戲漏洞,比如本篇我們要介紹的選擇錯誤按鈕就是僅存在於日文『紅/綠』的最初版本《1.0》中的遊戲漏洞,那麼,就讓我們來看看這是怎樣的一個bug吧。

PS:本文可能並不具有太大的嚴謹性,如有錯誤,敬請指正。

基本效果:

這個漏洞是由『選擇』按鈕切換物品順序的功能相關的某些疏忽所導致的,它的存在甚至引發了其它錯誤的發生,當玩家在物品欄中使用『選擇』按鈕選擇了一個物品時,這個物品前面的光標將變為空心圖案,但是如果這時玩家什麼都不做,直接用B鍵關閉包包,並在不打開菜單的情況下打開招式列表或寶可夢列表時《如果此時不在戰鬥中,關閉包包後去遇一隻野生寶可夢即可》,會發現光標依然是空心的,而且空心光標所在的位置,就是先前選擇的那個物品在包包中的位置。

舉例來說,假如我們選擇了包包裡的第三個物品,然後關閉包包,打開招式列表不做其他事而直接按下A,就會發現第一個招式和第三個招式的順序被切換了。

原理:

在遊戲中,內存地址$cc35保存當前選擇的東西《可能是寶可夢、招式、物品等等》位於哪個位置,多種類型的切換均由這一個地址決定,它的值在沒有選擇東西的時候是0,但當玩家選擇了某個東西,它的值就會改變,比如我們用『選擇』按鈕選了第三個物品,它的值便是3,選擇第三隻寶可夢並點擊了『切換』選項時,它的值也會是3,然而由於程序員疏忽,在戰鬥中使用『選擇』按鈕時,$cc35雖然和平時一樣會改變,但當玩家選擇了一個物品但不做任何動作就關閉了包包,它的值並不會變成0,而依然保留了包包裡選擇的那個物品的序號。

於是通過這個漏洞,就做到了切換現有東西與不存在的東西,諸如切換第1隻寶可夢與第7隻,第1個招式與第5個招式等等,這便導致了一系列其他漏洞的發生。

另外在戰鬥外的時候,雖然選擇了一個物品也不會使這個地址回到0,但如果關閉菜單再次打開,它就會重置為0。

所以也可以在戰鬥外選擇物品,再遇野生寶可夢去觸發漏洞。

而其他版本修復這個漏洞的方式便是無論在何處,只要關閉了包包就會重置這個地址的值,哪怕是在戰鬥外沒有關閉菜單的時候。

因為這個漏洞的緣故,所以可以引發諸如之前提到過的任意門漏洞以及物品欄擴充的漏洞,以達到快速通關的目的。

Categories: 寶可夢