夢幻(漏洞)
梦幻漏洞(日文︰fifth法,英文︰Mew glitch),也被称作百变怪漏洞、逃离训练家漏洞,是一个存在于所有第一世代游戏的游戏漏洞,最早在2003年被报告,並且成為都市傳說。这个漏洞让玩家可以捕捉任意正常的宝可梦,例如在正常流程中无法获得的梦幻。也是最简单的遇到错误宝可梦和错误训练家的方法。
触发方法
方法一可以用于所有第一世代游戏,方法二用于《皮卡丘》时,需要先到25号道路的华蓝之岬找正辉获得船票,此时就可以绕过华蓝道馆去解决民宅的火箭队事件,到5号道路去抓一只凯西。
方法一
最早被大众所知的方法,是利用8号道路上面对地下通道(7-8号道路)入口的赌徒和25号道路上拥有呆呆兽的短裤小子来实现,玩家必须没有打败过这两位训练家,另外还需要有一只具有飞翔招式的宝可梦。
玩家需要站在地下通道入口,确认自己的位置位于赌徒的正上方,然后往正下方走,走到赌徒会注意到主角的位置时,迅速按下Start键打开菜单,此时尽管赌徒会出现在画面中,但不会向主角要求对战。
菜单出现后,玩家需要使用飞翔移动到华蓝市,此时赌徒的头上会出现感叹号,但主角将会在他走过来并挑战之前飞走。
到达华蓝市后,Start、A、B键将会失效,这是因为游戏判定玩家正处于战斗状态。在这里,玩家需要走到25号道路与上述短裤小子战斗,注意需要让其主动走向主角,即至少走到他面前2格距离的位置,走到面前1格的位置或主动挑战会引起死机。
战胜短裤小子后,上面失效的按钮将会重新起效,此时玩家需要回到8号道路,进入8号道路后,将会自动弹出菜单,关闭菜单后,战斗将立刻开始,战斗对象为等级7的野生梦幻。
方法二
上述方法一中8号道路上的赌徒可以替换为24号道路上金球桥西边的童子军,战斗对象则可以替换为华蓝道馆内的泳裤小伙子。由于游戏进行到这里时招式飞翔并没有获得,所以要捕捉一只凯西,利用瞬间移动来代替,这也是在游戏早期就获得梦幻的一种途径[视频 1]。
- 如果使用泳裤小伙子触发该漏洞,玩家只能在还没有打败华蓝道馆之前触发,因为该训练家属于道馆里的训练家。
漏洞原理
8号道路上的赌徒与24号道路上的童子军可以被用于这个漏洞的原因是他们的视线范围很大,只要主角在他们面前,并且能看到他们,无论多远他们都会走过来主动向主角挑战。然而当游戏绘制NPC的图像时,会先将它放到某个默认位置,然后再放到正确位置,这就给了玩家去打开菜单的时间。在玩家打开菜单并飞走后,游戏会错误地判定主角正处于战斗状态,导致某些其他的数据被读取而引起了这个漏洞。
只要某个训练家符合这个特点,就可以被使用,而符合这个特点的训练家并不只有这两个。
从一开始的训练家处逃走所用的招式,并不一定是飞翔或瞬间移动,只要是能在地图上瞬移的招式或物品均可,如挖洞或离洞绳等等。
之所以上面的方法中遇到了梦幻,是因为这个漏洞最终所遇到的宝可梦,取决于玩家触发漏洞后对战的最后一只宝可梦的特殊数值。
具体而言[1],起始于地址0xCD23
(《皮卡丘》是0xCD22
)的一串12字节分段会记录最后一次对战的宝可梦信息。以短裤小子为例:
8E 11 00 3C 00 1E 00 1D 00 1C 00 15
- 第二个字节
0x11
记录对手等级17
。 - 其后的十个字节记录对手的状态 (HP/攻击力/防御力/速度/特殊)。每个状态占用2字节。
- 分段的两侧各有八字节的分段,每字节值均为07。与其余状态(如后文提到的攻击等级)相关。
- 末尾字节
0x15
即地址0xCD2E
、0xCD2D
Y记录了对手的特殊值。上述方法1、2中,短裤小子的最后一只宝可梦为等级17的呆呆兽,泳裤小伙子的则是等级16的大舌贝,它们的特殊数值均为十进制的21(0x15
)。
回到8号道路(或24号道路)时,游戏会尝试重新载入先前中断的对战。由于不明原因,程序会使用 CD2E (CD2D) 的值作为内部编号读取对手,值较小时读取的是野生战斗,而199 (十进制) 以上的值甚至会读取到训练家战斗。数值为0x15
(21D)决定读取的是内部编号21的梦幻。而后一位字节07决定了对手的等级。
- 内部编号并非图鉴编号,它与图鉴编号并无任何联系,具体可查阅宝可梦列表(按第一世代内部编号)。
可能遇到的对手
宝可梦
特殊值为1-199时遇到的是正常宝可梦和错误宝可梦,参见宝可梦列表(按第一世代内部编号)。
训练家
训练家类型 | 特殊值 |
---|---|
Jacred | 200 |
短裤小子 | 201 |
捕虫少年 | 202 |
迷你裙 | 203 |
水手 | 204 |
童子军 | 205 |
女童子军 | 206 |
怪兽狂 | 207 |
理科男 | 208 |
登山男 | 209 |
飙车族 | 210 |
趁火打劫者 | 211 |
电工大叔 | 212 |
杂耍艺人 | 213 |
垂钓者 | 214 |
泳裤小伙子 | 215 |
光头男 | 216 |
赌徒 | 217 |
大姐姐 | 218 |
超能力者 | 219 |
电气摇滚团 | 220 |
杂耍艺人 | 221 |
驯兽师 | 222 |
养鸟人 | 223 |
空手道王 | 224 |
青绿 作为劲敌 |
225 |
大木博士 | 226 |
西尔佛经理 | 227 |
研究员 | 228 |
坂木 | 229 |
火箭队手下 | 230 |
精英训练家 男 |
231 |
精英训练家 女 |
232 |
希巴 | 233 |
小刚 | 234 |
小霞 | 235 |
马志士 | 236 |
莉佳 | 237 |
阿桔 | 238 |
夏伯 | 239 |
娜姿 | 240 |
绅士 | 241 |
青绿 作为劲敌 |
242 |
青绿 作为冠军 |
243 |
科拿 | 244 |
祈祷师 | 245 |
菊子 | 246 |
阿渡 | 247 |
其他方法
上述方法中,均依靠了视线范围很大的训练家来触发漏洞,但在某些特定情况下,玩家不需要依靠他们却依然可以达到同样效果。
此方法来源于一个设定,游戏对遇野生宝可梦的处理优先度,是高于NPC训练家发现主角的,所以,如果某个训练家的视线范围内有可以遇野生宝可梦的地方,而且玩家恰好在这个位置遇到了野生宝可梦,便获得了触发漏洞的机会。
此时只需在与野生宝可梦的战斗中,让主角所持的所有宝可梦变为濒死状态,游戏在一般情况下会立刻将主角传送回最后一个使用过的宝可梦中心的门口,但如果是在某个NPC训练家视线范围内发生的战斗,在传送之前游戏会先判定该训练家发现了主角,并设定为战斗状态,然后再进行传送(体现为黑屏中出现了训练家发现主角的感叹号标志)。于是便同样达到了在NPC训练家发现主角后立刻逃走的效果,漏洞就被触发了。
能满足这个条件的训练家并不多,最明显的例子是常青森林中最后一位捕虫少年。
此方法不易在实机实现,因为运气成分要求过高。
漏洞延伸
利用百变怪使该漏洞取得任意结果
由于这个漏洞最终结果取决于触发漏洞后对战的最后一只宝可梦的特殊数值,所以对战不同的训练家或野生宝可梦,最终将会遇到不同的宝可梦,比如月见山中的某个少女拥有一只11级的喇叭芽,它的特殊数值为22。触发漏洞后与她对战,最终遇到的就会是等级为7的暴鲤龙(暴鲤龙的内部编号为22)。
由于这个特性的存在,便可以利用野生的百变怪来获得任意需要的宝可梦,而不用去考虑任何关于敌方宝可梦特殊数值是多少的问题,这个方法的原理是当百变怪使用变身后,由于某些原因它的各项数值并不是本身所固有的数值,而是继承了变身对象的数值。触发漏洞后遇野生百变怪,并在它使用变身后打倒它或直接逃走,后面遇到的宝可梦,即是由玩家自身携带的那只宝可梦的特殊数值所决定。
在第一世代中,正常的宝可梦只有151只,所以在使用这个方法时,会遇到很多非正常的东西,例如错误宝可梦,甚至可以和大木博士对战。
如果携带的宝可梦特殊数值超过了255,那么游戏将会从0重新开始计算,即256和0等同,257和1等同,以此类推。这也是唯一通过这个漏洞获得内部编号为5以下的宝可梦的方法。(因为正常情况下无任何宝可梦的特殊数值可能低于5)
某些数值(如248-255)将会使玩家遇到病毒性的训练家(ZZAZZ错误即是特殊数值为248、251、252、254、255时触发),导致资料文件损坏,所以在非必要情况下,不要尝试这些操作。
移除挡路的卡比兽
第一世代的正常游戏流程中,12号道路和16号道路(玉虹市西边)上各有一只挡路的卡比兽,在一般情况下,需要完成宝可梦塔相关剧情,并取得宝可梦之笛后,才能让它们在路上消失,流程才能继续进行。
然而,利用梦幻漏洞,可以直接在不取得宝可梦之笛的情况下,移除掉挡路的卡比兽。
在《皮卡丘》中,12号道路的卡比兽必须先完成岩山隧道剧情才能触发(因为游戏进行到这里时玩家并没有获得飞翔,也没有野生的凯西供玩家捕捉)。
导致这个错误的原因
在游戏中,有一些宝可梦只能对战一次,而且在地图上有图像,各种传说的宝可梦均属于这种类型,由于只能对战一次,当对战完毕后,将会把这只宝可梦的图像在地图上移除,而挡路的卡比兽则也属于这种类型。
恰巧,梦幻漏洞所触发的战斗,便就是这种类型的战斗,当玩家走到卡比兽的所在地后,游戏将会把卡比兽的相关数据载入内存,这时候再去触发战斗,当战斗完毕后,由于战斗类型一致,游戏将认为玩家已和卡比兽战斗过,于是便从地图上移除了卡比兽的图像。
另外利用这个漏洞也可以移除24号道路上的火箭队手下。[视频 4]
改变遇到宝可梦的级别或训练家的队伍
在通常情况下,这个漏洞最终所遇到的宝可梦等级为7级,但触发漏洞后,由于某些原因,玩家所对战的最后一只宝可梦的攻击等级决定了后面遇宝可梦的等级,攻击等级在通常情况下可以被提升6级或降低6级,表示为-6或+6,比如对方攻击等级被降低了两级(-2),后面遇到的宝可梦就为5级(7-2=5),所以玩家只要对对战的最后一只宝可梦使用6次叫声,降低对方攻击等级6级,就可以使最后遇到的宝可梦变为1级(7-6=1),1级的宝可梦在第一世代中是不能通过正常途径取得的,因为程序员可能是为了防止“等级提升错误”的发生,所以在游戏中没有任何1级的野生宝可梦可以遇到,而在这里获得的1级宝可梦,只要它符合“等级提升速度中等偏慢”,便可以利用这个错误使它获得54点以下的经验,而直接升到100级。
另外,前面提到的决定野生宝可梦等级的内存地址,在遇到训练家时会用来决定队伍编号(体现为降低或提升对方攻击等级后,最终会遇到同一训练家的不同队伍),因为同一类型的训练家往往不止一个,在游戏中它们并不单独存储,而只是对同一种训练家存储了若干个队伍信息,同时保存了该类型训练家在各个位置对应哪个队伍编号。例如:当控制对方特殊值为243时,最终结果将会遇到冠军青绿,正常情况下(不降低攻击等级)他的队伍是在正常游戏里不存在的,但是,如果降低对方4、5、6级攻击(即控制表示对方攻击等级的内存地址为1、2或3)即可遇到正常队伍的冠军青绿,而1、2、3号队伍即分别是含三种最初的伙伴最终进化形的队伍,于是可以推断出,游戏在冠军战时就是根据玩家的初始宝可梦来控制该地址以达到对方具有不同队伍的(前期的劲敌青绿同理)。但是,某些种类的训练家的某些队伍是无法通过这种方式遇到的,因为正常情况下攻击等级只可以在1到13之间变动,而有些种类的训练家在游戏里超过了13个。
参考视频
注释
遊戲漏洞 | |
---|---|
第一世代 | 0 ERROR • MissingNo. • ZZAZZ错误 • 道具复制 • 道具下溢错误 • 地图254 • 对战大木博士 故障市 • 合并宝可梦错误 • 记录冲浪错误 • 居合斩漏洞 • 老人漏洞 • 梦幻漏洞 • 《皮卡丘》的图像错误 任意门 • 剩余HP错误 • 双属性克制信息显示错误 • 脱离连接俱乐部 • 选择按钮错误 • 资料损坏错误 |
第二世代 | 捕虫大赛数据复制 • 城都宝可梦错误 • 错误维度 • 代币盒错误 时拉比的蛋 • 写生错误 • 训练家之屋错误 • 重要物品合并 |
第三世代 | 榴石果漏洞 • 时钟电路漏洞 • 整个盒子的坏蛋 • 对战塔盒子复制 |
第四世代 | 变身招式保留错误 • 冲浪漏洞 • 榴石果漏洞 • 追打所造成的异常天气 |
第五世代 | GTS变形错误 • 自由落体重力漏洞 |
第六世代 | 列表 |
第七世代 | 列表 |
第八世代 | 列表 |
第九世代 | 列表 |
多个世代 | 克隆漏洞 • 任意代码注入 • 溢出 • 随机数异常 • 更改时间系统 多回合攻击类招式漏洞 • 讲究道具锁定漏洞 • 蓄力的招式覆盖错误 • 剧毒跳过命中判定漏洞 |
跨世代服务 | Pokémon HOME漏洞 |
旁支系列 | 宝可梦+信长的野望漏洞 • 宝可梦大集结漏洞 |
相关列表 | 错误招式 • 错误属性 • 错误地点 • 错误音乐 • 错误道具 • 错误训练家 • 错误宝可梦 • 坏蛋 |
这个页面属于神奇宝贝百科游戏工程,欢迎加入游戏工程。 |