基于 Autojs 的蚂蚁森林自动收能量脚本,采用 AutoJS Modify 版本开发。解锁模块参考自:https://github.com/e1399579/autojs
脚本执行依赖于:AutoJs 4.1.1 alpha2(非完全兼容) 或者 AutoJS Modify 建议下载该版本,4.1.1原作者完全不会再维护了,存在较多内存泄露等问题,且不支持Android12 脚本中部分特性也不支持,如本地OCR 多分辨率找图 等等
本项目原始版本 https://github.com/Nick-Hopps/Ant-Forest-autoscript ,原作者已不再维护。虽然目前版本和原始版本代码已经完全不一样,但是还是非常感谢 Nick-Hoops
设备系统要求
觉得本项目好用的话请给个star吧~
main.js
即可。后台弹出界面
、显示悬浮窗
、自启动
、电量无限制
,并将软件保持后台运行main.js
的菜单,选择 更多
定时任务
即可配置定时启动可视化配置.js
然后进到 高级设置
中勾选 单脚本运行
,该功能是用于多个脚本同时运行时的任务队列 相当于一个调度程序,避免多个脚本抢占前台导致出错运行 可视化配置.js
后可以看到如下配置:
常用配置按不同类别进行分组,按实际内容进入对应菜单项目即可
所有列表项都可以左滑触发删除或修改,部分输入框也能左滑触发高级输入操作如区域配置和颜色值配置等,多多摸索
运行配置后右上角菜单可以重置所有配置信息为默认值
配置导出导入功能,点击右上角菜单即可导出当前配置到local_config.cfg中,默认已加密加密密码为device.getAndriodId() 如果需要在免费版和付费版AutoJS之间同步 需要自行输入该密码
运行时数据导出导入功能同上所述
重要 基于图像分析模式必须按如下配置,否则脚本无法正常执行
好友首页的能量球无法通过控件识别,请进行如下配置:
排行榜可收取信息如果自动识别失败,请手动开启 基于像素点个数判断小手
并配置像素点阈值
图像识别区域信息可以在运行可视化配置.js之后进入 图像识别相关配置
直接点击 实时查看可视化配置信息
按钮来刷新配置并显示当前的框选区域。也可以在配置完之后可以运行test/全局悬浮窗显示-配置信息.js
查看配置生效状况,可在 resources
目录下截图保存 region_check.jpg
,然后可以悬浮窗显示半透明信息,方便在运行 可视化配置.js
时拖动进度条快速调整具体区域
区域信息输入框可以左滑,以显示可拖动控件
请确保框选区域符合如下样例
排行榜区域框选如下所示 排行榜识别区域现在可以运行时自动设置,该配置为自定义优化保留 框选区域可以运行 unit/灰度取色.js
进行获取
底部区域框选住 当前可以在运行时自动设置,该配置为自定义优化保留
了
的上半部分;或者选择其他区域,并配置相应的颜色值,比如 邀请
按钮
更多其他配置信息请运行 可视化配置.js
后自行摸索
自动匹配不同系统下自动化的方式,安卓 7 及以上可以通过无障碍服务模拟操作,7以下版本需要通过 root 权限模拟操作;
自动识别屏幕锁定方式并根据配置的密码解锁,支持图形解锁,PIN 解锁,混合密码解锁;特殊设备需要自行扩展,具体见#添加解锁设备小节
同时支持支付宝手势解锁
识别自己能量球的倒计时,和好友列表中的倒计时做对比,取最小值作为下次收取的等待时间;
识别好友能量罩,下一次收取时跳过开启能量罩的好友;
默认使用倒计时收取,可通过配置打开循环收取;
可选择永不停止模式,无倒计时或超过激活时间(激活时间可以设置为随机范围)则在激活时间之后继续执行,否则按倒计时时间等待,实现全天不间断收集;
根据白名单实现不收取特定好友能量;
可以设定收取达到一定阈值后自动浇水回馈 默认阈值当日收集超过40克即浇水一次,同时可配置不浇水回馈的黑名单
浇水回馈数量可配置,可选:10
18
33
66
脚本运行时可以显示悬浮窗展示当前状态
开始收集的时候按 音量减
可以延迟五分钟再执行,适合需要使用手机的时候使用,按 音量加
则关闭脚本终止执行
收取完毕后悬浮框显示收取的能量数量
支持切换小号进行能量收集和能量雨,运行 可视化配置
进入 多账号管理
增加支付宝账号并设置昵称用于能量雨自动赠送,并勾选一个主账号。需要确保增加的账号在当前设备可以免密切换。
支持刷步数,运行 可视化配置
进入 刷步数
增加账号和密码信息,具体请见配置界面说明
设置完毕后可以手动执行或者设置每天的定时任务
unit/循环切换小号并收集能量.js
支持小号给大号浇水unit/循环切换小号并执行能量雨收集.js
unit/循环切换小号用于同步数据.js
如使用 刷步数
可以放弃次脚本unit/小米运动刷步数.js
支持pushplus推送随机步数结果可以自动打开无障碍,需要配合adb赋权,不同的软件请自行替换包名: Pro版为 org.autojs.autojspro
可以通过 context.getPackageName()
获取
adb shell pm grant org.autojs.autojs android.permission.WRITE_SECURE_SETTINGS
ROOT设备可以实现自动锁屏,非ROOT设备理论上安卓9以上都可以通过无障碍进行锁屏,如果无障碍锁屏失败需要扩展锁屏方法,具体见#添加自定义锁屏代码,默认实现的是下拉状态栏中指定位置放了个锁屏按键
脚本更新 可以执行update/检测更新.js
,也可以运行可视化配置后点击右上角菜单调出弹窗进行更新。
可以将配置数据以及运行时数据进行导入和导出,内容通过AES加密,默认密码是 device.getAndroidId()
,因此仅本机可用。如果需要跨设备或者免费版和Pro版之间备份,自行获取 device.getAndroidId()
然后根据提示输入即可
通话状态监听,当通话中或者来电时自动延迟五分钟执行,需要授予AutoJS软件获取通话状态的权限[该功能暂不可靠,且Pro版无法使用]
可以配置在锁屏状态下判断设备姿势,防止在裤兜内误触(基于重力加速度传感器)
提供模拟的OCR识别服务,用于识别倒计时数字,如果觉得准确率欠佳可以选择申请百度OCR接口权限
基于图像分析收取时,排行榜倒计时无法直接获取,默认使用模拟OCR,如果识别不准请申请百度识图API。或者通过永不停止模式来定时轮询。另外注意永不停止模式不要全天运行,1-6点执行无意义且可能封号。
基于百度文字识别的API接口 来识别倒计时数据
unit
下提供了多个自定义模式的切换脚本,执行后会自动打断当前运行中的脚本然后按新的设置启动。
自定义1永不停止.js
25-35分钟的随机范围轮询一次,有倒计时按倒计时时间执行,适合9-23点。可以对它设置每天9点的定时任务自定义2计时停止.js
按倒计时时间执行,最长等待时间60分钟,适合早上执行和晚上23点执行,避免0点后继续无意义的永不停止。可以对它设置7点、23点以及0点的定时任务自定义3循环千次只收自己.js
循环收集自己的,适合自己能量快要生成的时候执行,因为每天步行能量生成时间是固定的,因此在生成前一分钟设置定时任务即可,然后再设置2分钟后的定时任务自定义2计时停止.js
支持能量收集统计 查看每天能量值增量和收集好友能量数据 参考如下:
unit/能量雨收集.js
也可以在可视化配置中打开。然后打开能量雨界面,并手动开始,点击开始脚本会自动识别并点击多账号管理
和 unit/循环切换小号并执行能量雨收集.js
可以实现每天自动收集小号的能量雨unit/功能测试-重置默认配置.js
依旧有问题,尝试重启AutoJS,并检查AutoJS的版本是否为 4.1.1 Alpah2
或者 AutoJS Modify 或 AutoJS Pro7
,AutoJS Pro8/9
由于限制了支付宝控件,暂不能完全支持。Function importClass must be called with a class;...
直接强制关闭AutoJS软件,然后再打开即可。一般只在跨版本更新后才会出现这个问题,最新版脚本已解决这个问题,建议安装 AutoJS Modify
颜色相似度
调低 当前默认值已改为20,或者检查一下是否开启了护眼模式或者暗色模式。模拟滑动距离底部的高度
,支付宝偶尔会去除排行榜中的控件,必须使用模拟滑动才能正常使用。滑动速度请不要过低,一般200以上即可,否则无法滑动基于图像判断列表底部
,修改 排行榜下拉次数
次数为总好友数除以8左右,具体自行调试校验排行榜分析范围
获取截图失败多次
请修改 获取截图等待时间
默认为500毫秒,自行调试选择适合自己的,或者直接取消勾选 是否异步等待截图
logs/log-verboses.log
是否直接基于图像分析收取和帮助好友
运行不正常,请先取消勾选,然后勾选 区域点击来收取能量
, 同时自己扩展区域点击的方法,见下方的 #添加自定义区域点击代码
logs/log-verboses.log
默认保存100k之后会将旧日志保存到 logs/logback
;反馈问题时需要提供出问题时段的日志文件。/unit/获取锁屏界面控件信息.js
根据提示进行操作,然后得到相应的布局信息进行开发,或者在执行完之后发起ISSUE并提供 logs/info.log
文件让开发者帮忙。extends/ExternalUnlockDevice-demo.js
module.exports = function (obj) {
this.__proto__ = obj
this.unlock = function(password) {
// 此处为自行编写的解锁代码
// 在结尾返回此语句用于判断是否解锁成功
return this.check_unlock()
}
}
test/TestLockScreen.js
来调试是否生效 let { config: _config } = require('../config.js')(runtime, global)
module.exports = function () {
// MIUI 12 偏右上角下拉新控制中心
swipe(800, 10, 800, 1000, 500)
// 等待动画执行完毕
sleep(500)
// 点击锁屏按钮
click(parseInt(_config.lock_x), parseInt(_config.lock_y))
}
ExternalUnlockDevice-手机型号.js
并提交到 extends
目录下,方便其他用户下载使用欢迎使用支付宝或微信请我喝杯咖啡
支付宝扫码领红包,你拿红包我也有份。
Sign in to post a comment
Repository Comments ( 0 )