微信跳一跳游戏最近比较火,Github上面也出了不少外挂程序,各种版本的都有,有python,php,java等,最牛逼的还是物理外挂,软硬结合,使用arduino控制舵机点击屏幕。这需要硬件知识,我等还做不来,且花费还不小,还是老老实实用研究下软件版的外挂吧。
我比较钟情python,在github上搜索“跳一跳”,排名第一的wangshub/wechat_jump_game,应该说是最成熟的,可惜他是用Python2.7实现的。我用的一直都是Python3.5+。没办法把别人的东东download,研究研究。看看能不能刷一刷微信排行榜。我的项目源码地址https://github.com/azheng2010/WeChat_Jump
微信发布了 6.6.1 版本,加入了「小游戏」功能,并提供了官方 DEMO「跳一跳」。这是一个 2.5D 插画风格的益智游戏,玩家可以通过按压屏幕时间的长短来控制这个「小人」跳跃的距离。
辅助程序的基本原理:
利用图像识别精确测量出起始和目标点之间测距离,然后计算按压屏幕的时间来实现精确跳跃。
1、用 ADB 工具获取当前手机截图,并用 ADB 将截图 pull 上来;
2、用 Matplotlib 显示截图,用鼠标先点击起始点位置,然后点击目标位置,计算像素距离;
3、把像素距离转换成按压时间,用 ADB 工具控制点击手机屏幕,实现精准跳跃。
具体实现步骤:
1、下载并安装adb工具。我的是安卓手机,下载最新版的adb工具。我用的是 一键安装ADB工具USB调试驱动adb_dirver_1.3.rar。具体在哪下载的,我也忘了。后面我会把程序包上传到百度网盘,提供链接。
2、测试adb工具是否可用。安装完后把安卓手机用USB线连接电脑(windows),且安卓手机已打开 USB 调试模式,电脑cmd下输入 adb devices,显示如下表明设备已连接。
安卓手机打开 USB 调试,设置 > 开发者选项 > USB 调试。关于usb调试模式,我用的是华为手机,它隐藏了开发人员选项。需要自己开启,设置>关于手机>版本号。快速连续点击“版本号”5-7次,直到屏幕提示已进入开发者模式。
3、下载跳一跳辅助程序;https://github.com/wangshub/wechat_jump_game
4、界面转至微信跳一跳游戏,点击开始游戏;
5、cmd进入项目目录,运行 python wechat_jump_auto.py ,如果手机弹出界面显示 USB 授权,请点击确认。
6、在电脑上用鼠标点击起始点和目标点,即可手动实现跳一跳。注意,手机不同分辨率的需要调整屏幕像素距离转换成按压时间的参数。我的华为手机是1280X720,参数调整为2.05比较合适。参数需要自己慢慢调试。
改进:
1、每跳跃一次,需点两次鼠标,且两次点击位置稍有偏差,可能无法跳到中心。这里我添加了代码,使用opencv3中图像匹配函数cv2.matchTemplate()在图像中查找棋子的位置,并标记处棋子底部的中心位置,这样起始点就不用点击了,只需点击目标点,大大提高了精确性。这里注意cv2的坑,图片路径不能用中文,否则无法匹配到图片且没有提示。
2、腾讯加入了反外挂机制,点击屏幕位置固定,分数太高,或每次跳到中心等都会被认为使用外挂,分数不予上传。这里我对点击屏幕区域使用随机函数,小范围的偏移。至于分数和跳到中心则需使用人自己控制,不要每次都跳到中心,分数则需徐徐渐进,慢慢提上去。
3、跳到中心后,会在下一个物体上出现小圆点,点击小圆点位置就能跳到中心位置(加2分),但不要每次都跳到圆点。连续跳几次后要放水一次。个别物体会加分,比如音乐盒,微信支付,超市等,跳到这些物体上要等一等就会加分。
跳一跳每周刷新一次排行榜,看看你能不能霸榜!
需要源码的,可以邮件联系我。
或者登陆我的项目https://github.com/azheng2010/WeChat_Jump下载源码