迄今为止PVZ最有想象力的漏洞:Potato Skip Skip
Description
跳过利用撑杆制造无敌土豆地雷的Skip,所以是Potato Skip Skip 实际上这个不止能对土豆用,对别的植物使用是不同效果,这个Skip的潜力远不止这些 寒冰在视频里是有用的 感谢@六三enjoy 在探讨防崩溃上提供的帮助
跳过利用撑杆制造无敌土豆地雷的Skip,所以是Potato Skip Skip 实际上这个不止能对土豆用,对别的植物使用是不同效果,这个Skip的潜力远不止这些 寒冰在视频里是有用的 感谢@六三enjoy 在探讨防崩溃上提供的帮助
Comments
(我估计这个视频要火,所以我把up在贴吧的内容复制一下方便大家理解并适当加了一两句话,括号内内容是自己添加的。) 首先需要先种一个玉米加农炮, 然后存读档,种植模仿者,点击加农炮。 保证模仿者模仿完毕前加农炮死亡,并且保证模仿者产生的植物ID与加农炮完全相同。(这一点不懂的可以去了解一下栈位定理) 完成以上操作后,点击鼠标,可以让模仿者产生的植物错误地运行加农炮开火函数,从而实现很多未定义的事件。 要注意的是,由于加农炮开火会设置发射倒计时,这个操作会让正常无法开火的植物开火。(这个特殊的植物子弹还能打到地底下的矿工) 然而很神奇的是,决定子弹类型的地方,有关变量是没有初始化的,所以子弹类型是个ub,【更具体的内容暂未分析】,大多时候是一个很大的数。 这样会导致之后子弹绘制,子弹击中僵尸取伤害等地产生极大的ub行为,而且很容易导致崩溃。 一个稳定避免的方法:让这个植物的栈位之前紧接着来一个寒冰射手。 这是因为此时需要获得子弹类型。而好死不死这个子弹类型定义后是根据植物类型赋值的,也就是没有默认值所以C++的视角上这是一个ub,值不可知。 汇编的视角上寒冰射手运行的部分代码刚好可以让这片栈是个0,所以栈位比他小1的寒冰射手可以拯救崩溃。 对土豆地雷使用并避免崩溃后,土豆地雷的更新函数中,先后判断土豆地雷是不是准备,升起,准备完毕。所以此时一个加农炮发射状态的土豆地雷是不会进行索敌的。 同时,土豆地雷受伤判断时,只是判断是不是准备阶段,所以土豆地雷不会受啃食伤害。 综上,使用这个可以跳过一堆撑杆造无敌土豆的过程,之前那个是Potato,暂且叫Potato Skip,所以这个就命名为Potato Skip Skip了,简称pss (同理,这个方法也能让其他无子弹的特殊植物,如墓碑吞窝瓜阳光菇,水草等有开发价值。具体请参考置顶。)
♥ 2491 ↩ 35
十五年了还能发现这么颠覆性的新bug,简直神了
♥ 1807 ↩ 11
用手机版试了一下(ios,Free版) 比电脑原版轻松多了,因为手机版可以一只手把准心拖出来,另一只手铲了炮然后种要pss的植物,不需要引僵尸吃炮,也不需要模仿者变身 最奇怪的是甚至连低一栈寒冰射手都不需要?!不会闪退
♥ 930 ↩ 11
真的没想到这个游戏这么有生命力,当年我还在pvz吧当小吧主,后来一直关注到24炮横空出世,我以为这个游戏的顶点到了,慢慢也就淡出了,如今都年过三十了,还能看到游戏有新的内容,太了不起了
♥ 755 ↩ 5
初步开发利用了一下
♥ 761 ↩ 16
无敌树根?我真是起猛了,再睡一会
♥ 626 ↩ 11
土豆雷的这个探头,导致寒冰莫名其妙的射了一颗绿豆,实在是诡异……
♥ 641 ↩ 7
刚才去测试了汉化一版,发现不能卡出这个bug,可能是发炮的机制不同。 在查了汇编码后,发现在点炮时,一个和鼠标有关的指针会记录炮的植物编号;而在发炮后,当记录的编号和跟原先炮的指针相同的植物编号相同时,新的植物状态才会发生改变,表现为视频中的土豆雷无敌。 但是新植物的栈位可以和炮相同,但是植物的编号是根据场上最后一个植物的编号+1进行的计算,数据只增不减。植物编号就不会相同,卡不出bug。 在强行修改植物编号后卡出来了,然后就闪退了(
♥ 594 ↩ 10
无尽纯挂机阵的最后一块拼图[打call]
♥ 636 ↩ 9
这skip要是能普遍被接受在原版无尽中使用的话,感觉对许多命题会有颠覆性的效果啊,可能会引发第一次由skip驱动的工业革命。不过目前看来用这种方法来攻克某个命题被接受的可能不太大[笑哭]
♥ 497 ↩ 8
这游戏都多少年了还能有革命性发现...真的泪目[笑哭]
♥ 376 ↩ 4
手机版交作业
♥ 281
在pvz的视角看来,经过一系列意义不明的操作最后得到一个无敌的土豆雷,是魔法!
♥ 207 ↩ 1
我超 这可能是堪比冰消珊瑚和空炸小鬼的发现
♥ 176 ↩ 4
pvz进入新量子时代了[笑哭]
♥ 137 ↩ 1
我們PvZ1也要有自己的逃脱樹根
♥ 135
这个skip比海豚容易太多了,一次性植物好像只影响了倭瓜,而且倭瓜甚至可以用来拖巨人,是不是可以说可以当新时代拖波次的方式
♥ 132 ↩ 5
对于无解命题是颠覆性的skip
♥ 131
看懂了,利用栈位bug把加农炮偷换成土豆雷,并点击发射使其处于发射状态,但又无法发射。在这个状态下土豆雷不会长出来,所以不会被僵尸啃伤,但是会挡路阻止僵尸前进。
♥ 127 ↩ 24