基于最新版 Autojs 的蚂蚁森林自动收能量脚本
autojs吧
全部回复
仅看楼主
level 7
liu_123668 楼主
最新版本的脚本不需要自己提供图片或者颜色来查找可收取图标,具体功能包括:
- 自动匹配不同系统下自动化的方式,安卓7及以上通过无障碍服务模拟操作,以下版本通过 root 权限模拟操作;
- 自动识别屏幕锁定方式并根据配置的密码解锁,支持图形解锁,PIN解锁,混合密码解锁;
- 识别自己能量球的倒计时,和好友列表中的倒计时做对比,取最小值作为下次收取的等待时间;
- 识别好友能量罩,下一次收取时跳过开启能量罩的好友;
- 根据设置选择是否帮助好友收取能量;
- 收取完毕后悬浮框显示收取的能量数量。
开发是在 HUAWEI P10Plus 上进行的,因此也许会有各种各样的BUG,希望大家帮忙一起完善脚本。脚本和使用方法在:https://github.com/Nick-Hopps/Ant-Forest-autoscript
2019年02月01日 12点02分 1
level 1
这些功能不错啊,我现在都是定时收,没有判断时间功能
2019年02月01日 14点02分 2
为啥不能复制?
2019年05月25日 06点05分
level 7
不错的,谢谢。
2019年02月01日 20点02分 3
level 2
小米8se 并不能收取别人能量
2019年02月02日 00点02分 5
小米手机解锁的时候跟常见的手机不一样。。。我用的华为,身边没有小米测试
2019年02月02日 07点02分
我也小米8se, 每次到收能量那一步,提示这错误
2019年03月22日 08点03分
level 7
liu_123668 楼主
我设置每天早上 7:20 开始运行,基本不用管了,毕竟 8 点才起床=。=
2019年02月02日 07点02分 6
如果要修改时间要怎么改呢
2019年02月02日 12点02分
@bbvcshine 在 Autojs 里面添加定时任务
2019年02月02日 16点02分
老哥,我怎么下载不了那个压缩包,你有吗?能给我发一份吗?谢啦
2019年02月12日 07点02分
@liu_123668 怎么下载啊,我下不了
2019年02月15日 02点02分
level 1
在锁屏界面上划呼出密码输入界面失败,只能看到上划后锁屏弹了一下,但是密码输入界面没有出来,MIUI10.2默认锁屏
2019年02月02日 10点02分 7
收能量什么的都是OK的,就是没法解锁锁屏,这就导致定时运行的功能废了
2019年02月02日 10点02分
@liu_123668 问题出在swipe操作上了,可以猜想小米为了解决口袋唤醒误解锁手机的问题,对于滑动解锁的判定重点加强了,它判定的是一个从a点滑动到b点必须是一个加速度,如果匀速滑动便无法打开锁屏界面。
2019年02月09日 05点02分
@伤心的五分钟 图形解锁不行可以试试 PIN 解锁,因为没有小米手机没有研究过。。。尴尬
2019年02月11日 08点02分
@伤心的五分钟 @伤心的五分钟,MIUI10解锁搞定了吗?可以分享一下吗?
2019年04月07日 04点04分
level 1
要root才可以玩吗
2019年02月04日 03点02分 10
不需要,只要安卓7.0以上不用root也可以用
2019年02月06日 00点02分
安卓7.0搞不了啊
2019年02月14日 11点02分
@一笑ლ兮颜 什么搞不了?有没有错误信息?
2019年02月15日 10点02分
level 2
auto.waitFor();//函数来确保无障碍服务已经启用
unlockUsePsw("2200");
exit();
//无密码解锁
function unlockNoPsw() {
device.wakeUpIfNeeded();
sleep(500);
swipe(563, 1600, 500, 1300, 100);
}
//使用混合密码和数字密码解锁
function unlockUsePsw(password) {
unlockNoPsw();
sleep(500);
inputPsw(password);
tc("确认", 1000);// 确认
}
//输入密码
function inputPsw(password) {
for (var i = 0; i < password.length; i++) {
var ch = password.charAt(i);
if (new RegExp("[A-Z]").test(ch)) {
if (text("ABC").find()) {
tc("ABC");// 如果是数字状态需要切换到字母状态
}
if (text(ch).find().empty()) {
var caps = className("TextView").idEndsWith("btn_caps_lock").findOnce();
print(caps);
caps.click();// 若是小写键盘则切换caps
}
tc(ch, 1000);
} else if (new RegExp("[a-z]").test(ch)) {
if (text("ABC").find()) {
tc("ABC");// 如果是数字状态需要切换到字母状态
}
if (text(ch).find().empty()) {
className("TextView").idEndsWith("btn_caps_lock").findOnce().click();// 切换caps
}
tc(ch);
} else {
if (text("123").find()) {// 切换到数字符号
tc("123");
}
tc(ch);
}
}
}
// 延迟0.5秒点击包含字符串string的控件
function tc(string, time) {
if (time) {
sleep(time);
} else {
sleep(500);
}
click(string);
// text(string).find().click();
}
这个可以解锁MIUI 然后怎么合在一起呢
2019年02月05日 01点02分 12
你看看 Unlock.js,学里面 device 扩展 Unlocker,然后自己改一下主函数
2019年02月06日 01点02分
可以解锁MIUI10.2?
2019年02月09日 05点02分
我可以复制你这个东西吗?浇水的时候老是出现红色英文代码,是怎么回事呀?
2019年04月17日 13点04分
@伤心的五分钟 不能解锁
2019年02月10日 00点02分
level 3
@楼主,前几天好好的,今天气温下降,背景换成雪景,然后卡在收自己能量界面不动给,无任何报错,点一下还在倒计时状态的能量球,弹出白色提示框,然后顺利进入下一步。
2019年02月07日 06点02分 13
之前我也发现有这个问题,过了几天就好了就没管了,因为需要判断提示框中的倒计时,如果没有弹窗就会阻塞,跟背景没关的。
2019年02月09日 04点02分
@liu_123668 不知道是不是巧合,每次卡住时,自己都有两个能量球在倒计时中,第一个靠左边的能量球会弹出倒计时提示,然后就卡在这个界面,如果这时手动点一下右边的能量球,弹出框出来后,程序顺利进到下一步(即排查好友列表)。
2019年02月09日 07点02分
@liu_123668 猜测1:会不会因为两个或两个以上能量球同时倒计时导致bug? 猜测2:这两天气温低,森林背景换成雪景模式,这个问题才经常出现,其他背景下(比如夜晚)暂未发现卡住,。
2019年02月09日 07点02分
@liu_123668 1.谢谢楼主,您的这段代码是我试过的最棒的,帮我节省了很多时间。 2.我的手机是荣耀9(STF-AL10),且没有root,我发现开启省电模式后autojs定时任务不能正常工作,现在晚上睡觉前都是关掉省电模式。
2019年02月09日 07点02分
level 1
有没有批量浇水的脚本
2019年02月07日 12点02分 14
木有。。。因为没有这个需求=。=
2019年02月09日 04点02分
有。
2019年05月18日 09点05分
我有,有需要可以私聊,
2019年05月18日 09点05分
有没有批量加群好友的
2020年04月13日 21点04分
level 1
支付宝都敢用这东西
2019年02月07日 12点02分 15
开源的东西,有什么不敢用?
2019年02月09日 04点02分
脚本的所有操作都明明白白写在代码里,你还怕什么
2019年02月09日 05点02分
不懂代码的人啊……无语
2019年07月30日 03点07分
level 3
楼主,我的手机用您的代码不能解锁,我借用的这一段
//解锁
function unlockkop(){
if(!device.isScreenOn()){
//点亮屏幕
device.wakeUp();
sleep(1000);
swipe(540,1000,540,400,500);
sleep(400);
//数字1坐标为(200,1000)
click(540,1720);
sleep(200);
click(880,1000);
sleep(200);
click(540,1000);
sleep(200);
click(540,1270);
sleep(200);
home();
}
}
2019年02月09日 07点02分 16
纯模拟手势点击解锁。
2019年02月09日 07点02分
@KOPzhou 是因为安卓版本太低了?
2019年02月09日 08点02分
@KOPzhou 荣耀9应该已经是安卓7.0以上了吧,那应该没问题,手势解锁和图案解锁测试了没问题,但是华为的混合密码解锁就不行,需要root权限
2019年02月09日 08点02分
@liu_123668 安卓8.0.0系统
2019年02月09日 08点02分
level 1
运行不成功[鄙视]
2019年02月10日 05点02分 17
可以在软件里面看到日志,就是右上角哪里,把错误信息发在这里我看看
2019年02月11日 08点02分
level 4
有分辨率设置吗,我的2k 安卓9 不能解锁 不能唤醒屏幕,收好友能量时,总是点到没能量的好友。
2019年02月11日 04点02分 18
脚本是基于控件识别的,跟分辨率无关,不能解锁和唤醒屏幕你可以看一下是不是因为手机的电量管理把软件清理了导致无障碍功能失效,而总是点到没能量的好友可能是因为你的分辨率太高,脚本里面有个地方判断失效,你找一下在判断可收取代码 “o_h = obj.bounds().height() - 10”,把 10 改成 20 或更大
2019年02月11日 08点02分
别太大就好
2019年02月11日 09点02分
@liu_123668 改到20 能收啦 👍👍 解锁 我找代码拼凑了一个,可以解锁了并完成密码输入,差最后一步提交。弄了一个下午没搞好。我用的qq输入法 输入密码后,只能按虚拟键盘的"完成"键 提交。试过你的确认代码不行,请帮忙看看。
2019年02月11日 11点02分
level 4
auto();
if (!device.isScreenOn()) {
//点亮屏幕
device.wakeUp();
sleep(1000);
}
//滑动层
gestures([500, [400, 1500],
[0, 0]
]);
sleep(1000);
//setText("填入锁屏密码");
input("填入锁屏密码");
sleep(1000)
差确认提交密码 qq输入法输入完只能按 完成 键提交。
2019年02月11日 11点02分 19
回复 liu_123668 找到方法点完成了,className("android.widget.Button").text("完成").findOne().click(); 很好用了。
2019年02月13日 13点02分
这个实在没办法,因为没有 ROOT 的话没法模拟按键,没有 ROOT 的话目前只能换别的锁屏方式了,,ԾㅂԾ,,
2019年02月11日 14点02分
@hj5418 这样可以,不过有的手机比如华为是内置输入法,没法找
2019年02月15日 10点02分
1 2 3 4 5 6 尾页