老人(漏洞)

  Bag 防尘护目镜 SV Sprite.png非正式术语  
来自神奇宝贝百科

老人漏洞(英文︰Old man glitch)是一个存在于第一世代《紅/綠/藍》中的漏洞,可以用来遇到野生宝可梦或训练家,其中也包括了一些错误宝可梦,比如MissingNo.'M (00)等等。这个漏洞在日文版的《紅/綠/藍》中不存在,在西班牙语和意大利语《紅/藍》中通过让岸边的格和水上一样被修复,但仍然存在于德语和法语的《紅/藍》中;但在法语版,会在遇到MissingNo.或者'M (00)时死机。在后续的《皮卡丘》中通过在重写之前擦除野生宝可梦的数据和重新编程岸边的格使其不再能遇到宝可梦而修复。

触发方法

首先玩家需要与常青市北边那位教主角如何捕捉野生宝可梦的老人对话,然后让他向主角演示,演示结束后,玩家需要立刻利用飞翔去往红莲镇,然后在距离东岸边1格的一排海域使用冲浪,便可能遇到非正常的野生宝可梦(也可能是训练家、MissingNo.之类)。

基础原理

这个漏洞在最初的形式是在其他地方遇到狩猎地带内的宝可梦的错误,玩家需要先进入狩猎地带随后立即出来,然后在中间没有经过任何有野生宝可梦的地区的情况下去往20号水路,然后在红莲镇东边海岸或者双子岛西边距离岸边1格位置使用冲浪,遇到的即是先前狩猎地带里才能遇到的各种宝可梦。

最简便的方法即是从狩猎地带出来后直接使用飞翔去往红莲镇,然后做上述所示的内容即可。

之所以会出现这种错误,是因为程序员的某些疏忽,在红莲镇东岸边1格和双子岛西岸边1格的一排海域中,虽然被编程为可以遇到野生宝可梦,然而具体会遇到哪些,则是没有数据的,所以游戏便会读取主角所处的最后一个有野生宝可梦数据的地区的数据,上文中的方法,最后所处的地区为狩猎地带,所以在这里冲浪便会遇到狩猎地带中的宝可梦。

而“老人漏洞”则是此原理的一种特殊形式,由于在捕捉教学时,游戏需要将主角的名字替换为OLD MAN,教学完毕后再将原来的名字替换回来,所以游戏需要开辟一个内存区域(英文版中为从$d887开始的几个字节)用于保存原来的主角名字。

而这些在捕捉教学时用于保存主角名字的地址除了最开始的$d887之外(虽然它也有别的功能即控制遇野生宝可梦的机率,但不在这个漏洞的影响范围内),都不只有一个功能,它们的另一个功能是记录当前地图内可以遇到的野生宝可梦的数据(种类以及等级),每到一个新的有野生宝可梦的地点,它们就会被重置一次,但是,常青市中没有野生宝可梦,所以教学完毕后,它们只是被用来恢复主角原来的名字,本身并无变化。

由于红莲镇没有野生宝可梦,而红莲镇西岸的1格海域中,同样无野生宝可梦数据,但却被设定为可以遇到野生宝可梦,所以看完捕捉教学后立刻去往红莲镇再在西岸冲浪这一过程中,这些保存主角名字却又是野生宝可梦数据的内存地址还是没有变化,这个漏洞就被触发了,而且遇到的宝可梦等级以及种类,很大程度上取决于主角的名字。

上述遇原野区内宝可梦的错误,则也是这些值没有变化所导致的。

触发效果

主角名字对漏洞的影响为:名字中第三、五、七个字符决定了宝可梦的种类,第二个字符决定了第三个字符起作用时遇到的宝可梦的等级;第四个字符决定第五个字符起作用时遇到的宝可梦的等级;而第六个字符则决定第七个字符起作用时遇到的宝可梦的等级。具体第三、五、七个字符中哪个会起作用则是随机的。

同时游戏也会读取第九个和第十一个字符作为宝可梦种类同时以第八个和第十个字符作为等级,但实际上游戏中的主角名称最多只能有7个字,因此当使用自定义名字时,这些实际上并不存在的字符在内存中均被保存为0(即空白),导致有时也会遇到等级0的'M (00)

但是如果使用了游戏内置的主角名字,后面的数据就会被填充,所以当使用内置名字时,内部编号0的'M是不会出现的。

下面这个表格,列举了所有字符用来决定宝可梦种类或等级时的情况,事实上这里的等级就是宝可梦或训练家的内部编号。(适用于英文版)

字符 宝可梦或训练家的种类 等级
   'M (00) 0
   MissingNo. 80
   MissingNo. 127
A 哥达鸭 128
B 引梦貘人 129
C 大嘴蝠 130
D 超梦 131
E 卡比兽 132
F 鲤鱼王 133
G MissingNo. 134
H MissingNo. 135
I 臭臭泥 136
J MissingNo. 137
K 巨钳蟹 138
L 刺甲贝 139
M MissingNo. 140
N 顽皮雷弹 141
O 皮可西 142
P 双弹瓦斯 143
Q 猫老大 144
R 嘎啦嘎啦 145
S MissingNo. 146
T 鬼斯通 147
U 凯西 148
V 胡地 149
W 比比鸟 150
X 大比鸟 151
Y 宝石海星 152
Z 妙蛙种子 153
( 妙蛙花 154
) 毒刺水母 155
: MissingNo. 156
; 角金鱼 157
[ 金鱼王 158
] MissingNo. 159
a MissingNo. 160
b MissingNo. 161
c MissingNo. 162
d 小火马 163
e 烈焰马 164
f 小拉达 165
g 拉达 166
h 尼多力诺 167
i 尼多娜 168
j 小拳石 169
k 多边兽 170
l 化石翼龙 171
m MissingNo. 172
n 小磁怪 173
o MissingNo. 174
p MissingNo. 175
q 小火龙 176
r 杰尼龟 177
s 火恐龙 178
t 卡咪龟 179
u 喷火龙 180
v MissingNo. 181
w MissingNo.
镰刀盔化石形态
182
x MissingNo.
化石翼龙化石形态
183
y MissingNo.
宝可梦塔幽灵形态
184
z 走路草 185
PK 青绿
作为劲敌
225
MN 大木博士 226
西尔佛经理 227
? 火箭队手下 230
! 精英训练家(男) 231
夏伯 239
× 绅士 241
. 青绿
作为劲敌
242
/ 青绿
作为冠军
243
, 科拿 244
祈祷师 245

细节

  • 使用此漏洞遇到的训练家,他们的大部分宝可梦都是错误宝可梦,包括但不限于MissingNo.'M (00)等等,少数正常形态的宝可梦,也会有部分等级异常,即超过100级。
  • 捕捉教学中使用那样的内存地址存储主角名字,在一般情况下是不会产生问题的(即这一点不能算作漏洞),根本原因在于某些地点理论上(游戏认为的)可以遇到宝可梦但实际却什么都没有。
  • 某些情况下,主角名字并不完全决定宝可梦数据,还有一部分会来自于主角来到常青市前的所在地区。所谓“某些情况”即是主角来到常青市前的所在地区有野生宝可梦,而且种类很多,导致主角名字不能完全覆盖掉这些野生宝可梦数据。
遊戲漏洞
第一世代0 ERRORMissingNo.ZZAZZ错误道具复制道具下溢错误地图254对战大木博士
故障市合并宝可梦错误记录冲浪错误居合斩漏洞老人漏洞梦幻漏洞《皮卡丘》的图像错误
任意门剩余HP错误双属性克制信息显示错误脱离连接俱乐部选择按钮错误资料损坏错误
第二世代捕虫大赛数据复制城都宝可梦错误错误维度代币盒错误
时拉比的蛋写生错误训练家之屋错误重要物品合并
第三世代榴石果漏洞时钟电路漏洞整个盒子的坏蛋对战塔盒子复制
第四世代变身招式保留错误冲浪漏洞榴石果漏洞追打所造成的异常天气
第五世代GTS变形错误自由落体重力漏洞
第六世代列表
第七世代列表
第八世代列表
第九世代列表
多个世代克隆漏洞任意代码注入溢出随机数异常更改时间系统
多回合攻击类招式漏洞讲究道具锁定漏洞蓄力的招式覆盖错误
跨世代服务Pokémon HOME漏洞
旁支系列宝可梦+信长的野望漏洞宝可梦大集结漏洞
相关列表错误招式错误属性错误地点错误音乐错误道具错误训练家错误宝可梦坏蛋
神奇宝贝百科游戏工程.png 这个页面属于神奇宝贝百科游戏工程,欢迎加入游戏工程 Wikilogo.png