任意門(漏洞)
任意門漏洞(日文︰どこかしらドアバグ,英文︰Dokokashira door glitch)是日文《紅/綠/藍》中出現的遊戲漏洞,最初由日本搜集遊戲漏洞的網站Pokemonbug發現。透過這個漏洞不用挑戰聯盟就能登入名人堂,也可以到其它地方。
這個漏洞雖然可以在國際版中的《紅/綠/藍》中觸發,但效果異於在日文版中的效果,且不能傳送至其它地方。
具體步驟
在得到常青市友好商店店員拜託主角交給大木博士的包裹後,打開包包,把託付物品排到第二位。再把光標移動到託付物品上,先按下選擇鍵,再選擇取消,重複兩次後,光標會變成白色。在這之後,與野生寶可夢戰鬥時打開菜單,選擇第一隻寶可夢,它便會變成アネ゙デパミ゙。使用這隻錯誤寶可夢擊倒對手或者逃跑來結束戰鬥,這個漏洞就被成功觸發了。 逃跑之前一定要打開戰鬥菜單一次,否則進入真新鎮後會因位置原因,玩家會重新回到家門口,使得漏洞觸發失敗。
略過聯盟挑戰直接登入名人堂
完成以上步驟之後,走83步,在最後一步時進入位於真新鎮的青綠的家,這樣一來,玩家會被傳送到7號道路。向西步行至玉虹市,進入寶可夢中心後馬上出來,否則會死機。然後透過玉虹百貨公司的右門進入玉虹百貨公司,這樣玩家會直接進入阿渡的房間。此時不要與阿渡對話,向上走進入冠軍的房間後,也不要與青綠對話。繼續向上走,大木博士會進入冠軍的房間,也不用與他對話,直接手動登入名人堂即可通關。
如果前面進入的是玉虹大廈,進行同樣的操作後將直接被傳送到殿堂,雖然殿堂圖像會變得混亂,但仍舊能正常通關。
作用原理
在遊戲中,「選擇」按鈕的其中一個作用便是切換包包中物品的順序,正常操作是在一個物品處按下「選擇」,然後在想與它交換位置的另一個物品處再次按下,然而,在早期版本中,由於程序員的疏忽,當在一個物品處按下「選擇」然後不做任何其他動作而直接關閉包包時,遊戲卻依然記錄了被選擇的那個物品的位置。
在遊戲早期,玩家只持有一隻寶可夢,而由於「選擇」按鈕的錯誤,當玩家拿到第二個物品並用「選擇」按鈕選擇它時,遊戲便記錄下了位置「2」,此時打開同行寶可夢列表點擊第一隻寶可夢,遊戲便錯誤的認為玩家要切換第二隻寶可夢與第一隻的位置,然而第二隻寶可夢根本不存在。
遊戲內存中,最後一隻寶可夢的種類資料後面有一段特殊資料,標記了同行寶可夢在何處終止,具體內存地址為$d123+持有寶可夢數量*2,比如玩家持有兩隻寶可夢,這個地址就是$d123+2*2=$d127,它的值為FF(255),以便遊戲能夠認為這段資料以前是同行寶可夢資訊,然而卻有一個例外,當玩家只有一隻寶可夢時,正常情況下第二隻寶可夢的種類資料所應該在的位置,便是這段標記終止的資料,即一個地址在不同情況下能起到兩個不同作用,這個問題在玩家擁有兩隻或兩隻以上寶可夢後將不復存在(儘管還是可以切換存在的和不存在的寶可夢,但不會觸發任意門,因為無論什麼情況下$d127、$d129、$d131、$d133、$d135的作用都只能是終止資料,而不會是種類,所以無論怎麼切換寶可夢的順序都不會使它們有任何變化)。如圖所示,玩家持有一隻妙蛙種子,它的內部編號為153,$d124即是它的種類相關資料,所以為153,而$d125即是同行寶可夢終止資料,為255。所以上述那個切換的動作,即是將終止資料$d125,切換到了前面表示第一隻寶可夢種類的$d124,這也就是為何切換完成後第一隻寶可夢會變為アネ゙デパミ゙的原因,因為這隻錯誤寶可夢的內部編號就是FF(255)。(關於內部編號,參見寶可夢列表(按第一世代內部編號))
由於沒有了正常的同行寶可夢終止資料,所以遊戲只能尋找下一個值為FF的地址來代替,然而正常情況下,下一個值為FF的地址離$d124非常遠,遊戲會認為從$d125開始直到下一個FF值之間的所有資料均為玩家持有的寶可夢資料,於是大量內存地址都受到了影響,受影響的地址正常情況下將有超過600個,遊戲將認為玩家擁有一個成員數量非常龐大的寶可夢同行寶可夢,並將這數百個內存地址都強行拖入到寶可夢資料的相關判定裡。寶可夢資料中也包括了寶可夢的狀態(即中毒、麻痺等等),而這些狀態都是用不同數值表示的。
發生這種錯誤後,地址$d335對應第199隻寶可夢的HP,而這隻寶可夢又恰巧被判定為中毒狀態,中毒在戰鬥外的效果就是每走4步HP減少1點,所以$d335這個值在觸發漏洞之後,每走4步,就會減少1,而$d335的作用正是每個地圖中某個地方的傳送點相關,在每個地圖中作用不同,在真新鎮中,它是青綠家進入以後所到的地方,默認為39,而每到一個新的地方,它的值都會被重置一次(重置該值不是漏洞,而是遊戲固有機制,因為不同地圖中的傳送點所能到的位置肯定是不一樣的)。另外,由於它被判定為中毒,所以在真新鎮中走39x4=156步後會出現提示xx倒下,繼續走將會出現更多類似的提示,因為並非只有這一隻中毒的寶可夢,上面圖中多個每走4步就減少1的值,均為某隻寶可夢被判定為中毒的結果,由此在內存中產生了相當多的垃圾資料,這便是地圖出現各種顯示錯誤的原因,因為這些地址對應了遊戲中各種機能,並非只是傳送點。
上述直接登入名人堂的方法中,走84步後$d335的值將為39-84/4=18,編號18的地點是7號道路,臨近玉虹市,走到玉虹市後之所以要進入寶可夢中心,是為了重置掉$d335,否則將使該值小於想要的數而無法達成目的,而進入寶可夢中心並走出重置該值為122然後直接走到玉虹百貨公司的右側入口時,這個值將為113,所以進入玉虹百貨公司就會直接移動到阿渡的房間,繼續往前走就會直接通關。而如果進入的是玉虹大廈,直接走到玉虹百貨公司的右側入口時$d335將正好為殿堂對應的118,所以將直接通關。
具體地點編號可以查閱地點編號(第一世代)。
關於地圖上傳送點的進一步延伸,可以參考資料損壞錯誤。
地圖常量
下面的表格是每個地圖中$d335所對應的傳送點以及移動到這些地圖時$d335的初始值。(進入某個地圖會重置該值,進入該地圖除下表以外的房子並出來也會重置該值)
$d335的值 | 地點 | 傳送點 |
---|---|---|
39 | 真新鎮 | 勁敵的家 |
42 | 常青市 | 友好商店 |
52 | 深灰市 | 深灰科學博物館 |
63 | 華藍市 | 寶可夢中心附近的房子 |
90 | 枯葉市 | 寶可夢發燒友俱樂部 |
122 | 玉虹市 | 玉虹百貨公司的右側入口 |
142 | 紫苑鎮 | 寶可夢塔 |
153 | 淺紅市 | 有在討論正輝的人的房子 |
166 | 紅蓮鎮 | 紅蓮道館 |
177 | 金黃市 | 格鬥道場 |
非日語版中的類「任意門」
在非日語版中,雖然不可以在遊戲早期就觸發這個漏洞,但通過某些手段(如ZZAZZ漏洞)可以在遊戲內存中起到類似的效果,但是,這種方式觸發的類「任意門」並不具有任意傳送的效果。
任意門的根本原理是刪除掉同行寶可夢終止資料,由於觸發ZZAZZ漏洞後會導致內存中大量覆蓋153的值,所以這個漏洞在特定情況下也能將同行寶可夢終止資料的255替換成153,即同行寶可夢中有1、3、4、6隻寶可夢時,具體原因可以參考ZZAZZ漏洞的條目。(對應影響的內存地址分別為$d165、$d167、$d168、$d16a)
但是由於觸發之後,並沒有哪隻寶可夢的HP對應傳送點的地址,所以不能達到真正的任意門效果。
雖然不能任意傳送,但也會有某些效果每4步就會發生變化,最明顯的體現就是某些地圖內,每走4步,音樂就會發生改變。同時,也保留了每走一些步數就會顯示某隻寶可夢倒下的效果。包包裡的某些物品數量,也會每走4步就減少1個。地圖顯示錯誤也依舊會發生。
下面示範視頻中,演示了每走4步,寶可夢中心的音樂就改變一次的效果。
示範視頻
遊戲漏洞 | |
---|---|
第一世代 | 0 ERROR • MissingNo. • ZZAZZ錯誤 • 道具複製 • 道具下溢錯誤 • 地圖254 • 對戰大木博士 故障市 • 合併寶可夢錯誤 • 記錄衝浪錯誤 • 居合斬漏洞 • 老人漏洞 • 夢幻漏洞 • 《皮卡丘》的圖像錯誤 任意門 • 剩餘HP錯誤 • 雙屬性克制資訊顯示錯誤 • 脫離連接俱樂部 • 選擇按鈕錯誤 • 資料損壞錯誤 |
第二世代 | 捕蟲大賽資料複製 • 城都寶可夢錯誤 • 錯誤維度 • 代幣盒錯誤 時拉比的蛋 • 寫生錯誤 • 訓練家之屋錯誤 • 重要物品合併 |
第三世代 | 榴石果漏洞 • 時鐘電路漏洞 • 整個盒子的壞蛋 • 對戰塔盒子複製 |
第四世代 | 變身招式保留錯誤 • 衝浪漏洞 • 榴石果漏洞 • 追打所造成的異常天氣 |
第五世代 | GTS變形錯誤 • 自由落體重力漏洞 |
第六世代 | 列表 |
第七世代 | 列表 |
第八世代 | 列表 |
第九世代 | 列表 |
多個世代 | 克隆漏洞 • 任意代碼注入 • 溢出 • 隨機數異常 • 更改時間系統 多回合攻擊類招式漏洞 • 講究道具鎖定漏洞 • 蓄力的招式覆蓋錯誤 |
跨世代服務 | Pokémon HOME漏洞 |
旁支系列 | 寶可夢+信長的野望漏洞 • 寶可夢大集結漏洞 |
相關列表 | 錯誤招式 • 錯誤屬性 • 錯誤地點 • 錯誤音樂 • 錯誤道具 • 錯誤訓練家 • 錯誤寶可夢 • 壞蛋 |
這個頁面屬於神奇寶貝百科遊戲工程,歡迎加入遊戲工程。 |