跳一跳的不归路

·


跳一跳的不归路_第1张图片
理想效果

当然这样做是不对的...

这是不好的

对不起腾讯对不起微信对不起千千万万的游戏玩家,只不过我追求的不是游戏,而是开挂本身。

所以,我先说一段题外话...

从前,有个带我吃鸡的学长,额不,是带我学习的学长,我们经常玩某个诸神之战的跳伞游戏。

我总觉得透视和染色不能算是外挂吧,那只是修改了我们的内存,又没有改游戏数据

可我学长说:“破坏了游戏的公平性,就是开挂!”

跳一跳的不归路_第2张图片
某跳伞模拟诛仙之战的游戏

想起他坚毅的表情,时常让我感到羞愧,然后他继续每天邀我开挂吃鸡...

简而言之,我想说的是,兴趣才是最好的老师,就像如果对C语言的链表一点也不感兴趣,当然一个星期也学不到什么,但是如果想玩出来跳一跳的外挂,可能难度更大的adb调试,一晚上就能摸索出来。

好的,聊回正题,下面我们说到跳一跳怎么开挂,这样是不好的,既然你执意要走上开挂这条不归路,这可能是你将会遇到的:

跳一跳的不归路_第3张图片
image

原理

按压时间总是与跳的距离成正比吧,基于这个原理,我们就能轻易的算出来这个函数关系吧,于是就有很多物理外挂应运而生


跳一跳的不归路_第4张图片
物理外挂的原理

通过adb(Android Debug Bridge)对手机截屏,并把截图发回电脑处理。

计算出来起点坐标和终点坐标,有了距离也就方便时间,模拟按压,自动跳。

如果你对原理和代码很感兴趣的话,这里有知乎前辈的文章,详述了如何找坐标以及相关参数什么的。

人人都能看懂的“跳一跳”平民算法

步骤

首先,你总要有个Python吧,至于Python如何安装调试,你可以看我上一篇:

Python与sublime -

听说还要有pip,

pip类似CentOS里面的yum

虽然我也不知道这三个词都是什么意思...

但是听说最新版的Python里,可以直接使用pip,在cmd里输入pip

看到这个就可以了

跳一跳的不归路_第5张图片
pip

adb的安装

Universal ADB Drivers

因为adb驱动里没有自动配置环境变量,所以要把它放在一个好记的位置,比如说我就放在了D:\adb

这个时候试一下cmd输入adb,要是没什么反应,就要改下环境变量了,【环境变量】

在path里编辑,把刚刚那个路径添加进去

配置成功后,进入下一步:

拷贝源码

github地址:GitHub - wangshub/wechat_jump_game: python 微信《跳一跳》辅助

下载并解压,这里就不多说了

因为之后的步骤,需要反复借助CD命令,所以说,你不觉得这个文件夹的名字太长了吗,我总是忘记自动补全,所以干脆把名字改的简洁点。

安装安装包

在cmd里,找到刚刚解压完的文件夹,如果你还没有改它的名字,那么它还叫“wechat_jump_game-master”,输入:pip install -r requirements.txt

这是原作者设置好的安装过程,需要等待一会儿,兴许你能看到华丽的cmd下载:

跳一跳的不归路_第6张图片
华丽的cmd下载

开发者模式

手机里打开开发者模式后,cmd里输入:

adb devices
正确的话,你会看到一串形如序列号的代码:

跳一跳的不归路_第7张图片
存在设备

那么恭喜,你可以直接开始了,运行wechat_jump_auto.py就可以了,cmd里也行,文件夹双击也行。

要是在这里成功就皆大欢喜,直接微信里打开跳一跳,然后就看着玩吧。

也不知道是电脑还是手机的问题,我这里就是找不到设备。

List of devices attached

不成功的调试

以下是我的调试过程,可能只是个例:

我的电脑-->右键,管理-->设备管理器 -->adb interface,

这里有个红色的感叹号

右键,更新adb驱动程序-->浏览计算机以查找驱动程序,然后,选择住下载adb的驱动文件夹,确定,下一步,始终安装此驱动程序软件。

关于这个adb驱动教程,木子学院里有篇文章介绍。

正确安装ADB驱动教程-木子学院

虽然情况和我这里的完全不一样吧...

是的,一般调试到这里就可以了。可是,我的这里,就没有找到驱动...

既然电脑的问题解决了(似乎解决了),再看手机的,我手机是魅族的。

在官网上查的,打开CD驱动器后,有个自动的安装更新什么的,可是到我这里又失败了,红色的感叹号说更新失败,就在网上不断搜索解决方案,无果。

四下打开摸索一下,忽然看见在手机“内置光盘”连接里,居然有一篇adb参考说明书!以下是我粘贴的win7调试:

  1. 建立或修改C:\用户<你的用户名>.android\adb_usb.ini文件,在该文件中添加一行文本,内容是0x2a45。

  2. 检查ADB设备是否找到(命令行程序中)

    adb kill-server

    adb devices

参考文档: http://developer.android.com/tools/device.html

反作弊

辗转周折,最后还是成功了,只不过...


跳一跳的不归路_第8张图片
image

绝望...

当然,有时候也会成功显示到排行榜上去的,至于系统是如何反作弊的,有如下猜想:

1.分数太高直接清掉

2.反复跳到最中间可疑

3.短时间内达到高分

4.一下子进步太大,怕骄傲

5.某次,可能系统修改了时间与距离对应参数,发现跳到了修改前该是中心的预定位置

以上的推测,除了1,5,几乎都能找到反例,据其他小伙伴测试的结果是1000以下都是安全的,可是有的时候,跳到200、300,我故意跳错,也会被清除,我也试过阶梯进步的办法,恩,没用。

控制变量法,我都试过来了,还是找不到原因,完全相同的操作,有时可以有时不行..

所以,这个问题,留下来请教前辈吧...

你可能感兴趣的:(跳一跳的不归路)