基于 Autojs 的蚂蚁森林自动收能量脚本,采用 4.1.1 Alpha 版本开发。解锁模块参考自:https://github.com/e1399579/autojs
交流群:524611323
下载安装 Autojs 之后把整个脚本项目放进 "/sdcard/脚本/" 文件夹下面。运行项目或者 main 即可。
- 自动匹配不同系统下自动化的方式,安卓7及以上通过无障碍服务模拟操作,以下版本通过 root 权限模拟操作;
- 自动识别屏幕锁定方式并根据配置的密码解锁,支持图形解锁,PIN解锁,混合密码解锁;
- 识别自己能量球的倒计时,和好友列表中的倒计时做对比,取最小值作为下次收取的等待时间;
- 识别好友能量罩,下一次收取时跳过开启能量罩的好友;
- 默认使用倒计时收取,可通过配置打开循环收取;
- 根据设置选择是否帮助好友收取能量;
- 根据白名单实现不收取特定好友能量;
- 收取完毕后悬浮框显示收取的能量数量;
- 可以直接更新最新脚本。
运行 config.js 后可以看到如下图所示的配置:
- 执行模式:
- 计时:由程序自动计算下次收取所需要的时间,通过设置最大等待时间来限制执行。
- 循环:循环执行,选择循环模式时可以设置循环次数。
- 帮好友收取:是否帮好友收取已经成熟的能量。
- 颜色偏移量:如果识别失败可以尝试增加该值,默认为50,即80%的相似度。
- 解锁密码:手机解锁密码,如果是图形解锁则为图形经过的点对应的数字。
- 解锁操作时延:解锁模块的延时,解锁操作过快导致出错时可修改,默认为1000ms。
- 控件搜索超时:控件搜索时最大搜索时间,找不到控件时可修改,默认为1000ms。
- 白名单:将好友的昵称添加到白名单实现不收取特定好友的能量。
- 清除本地储存:清除储存在本地的配置,相当于初始化。
在 Unlock.js 中,按照以下格式扩展:
var Devices = {
device_1: function(obj) {
this.__proto__ = obj;
this.unlock = function(password) {
if (typeof password !== "string") throw new Error("密码应为字符串!");
// 此处为解锁的代码
return this.check_unlock();
}
},
device_2: function(obj) {
...
},
device_3: function(obj) {
...
}
}
上述所示为最简单的解锁模板,也可以参考 Unlocl.js 默认多解锁方式的代码进行修改。
然后在下方的 MyDevice 中设置解锁设备:
var MyDevice = Devices.device_1;
解锁仅支持:
- 具有ROOT权限的安卓5.0及以上版本
- 没有ROOT权限的安卓7.0及以上版本
- Autojs 在锁屏状态下由于软件优先度被降低导致 sleep() 函数时间不准确
- 当好友列表数量超过大约 100 后,列表下拉会很慢
-
2019/1/31
发现识别能量罩时采用的函数不合适(使用了同步获取 toast 的方法,会卡住,已修正)帮助好友收取时,默认所有能量球都各点击一遍,效率太低(已修正)- 重构代码,添加注释
-
2019/2/1
Toast 监听器超过10过导致报错(已修正)帮助好友收取时有时候会失败(因为控件下方文字闪烁导致,已修正)- 不限制监听器数量并且每次运行完成后清空监听器
-
2019/2/2
自己的倒计时减为0时会结束收取而不是立马收取下一次(已修正)
-
2019/2/5
实际运行中安卓7.0以下会报错(已修正)
-
2019/2/24
- 多语言问题,繁体或者英文环境下判断字符不同(取消)
当收取次数设置为 0 次时,收取行为出错(已修正)初次进入蚂蚁森林弹窗提醒添加至首页和合种信息(已修正)
-
2019/3/5
- 重构了一下 Unlock 的内容,方便添加设备
- 由于基本所有设备解锁都有滑动层,因此去掉了判断是否有滑动层的代码
- 目前看来新版本效果不错,因此去掉了 old 版本的脚本
- 增加循环收取的功能
-
2019/3/7
- 增加白名单功能
- 计算颜色相似度,修改默认颜色偏移量为50
-
2019/3/12
- 增加设置UI界面
- 解决春种活动导致的BUG
-
2019/3/13
- 增加脚本更新功能
-
2019/3/14
- 修复好友列表因网络加载慢出现“正在加载”时报错的问题
- 修复循环执行时的各种问题
-
2019/3/16
- 实现真正的脚本更新功能
-
2019/3/20
- 重复运行脚本会报错,因此增加脚本重复运行检查功能