环境必须是安卓7.0以上版本。中文界面。

安装软件,执行Auto.js代码。完成。注意自启动,锁定后台,无障碍服务,悬浮窗等权限允许。

注意需要把脚本和图片放到执行文件夹的同一目录下。

首先所有资料链接如下:

https://pan.baidu.com/s/1XJTHl1IASTGmDZGkTCGJ0g

对网络上的代码下载,修改后,代码如下:

/**
* @Title: 蚂蚁森林
* @Description:蚂蚁森林自动收取能量和偷取能量
* @date: 2019-2-23
*/sleep(1000);
mainEntrence();//解锁
function unlock(){if(!device.isScreenOn()){//点亮屏幕
        device.wakeUp();sleep(1000);//滑动屏幕到输入密码界面swipe(520,1560,520,100,1000);sleep(1000);// click(200,1000);sleep(500);//swipe(520,1560,520,100,1000);// click(200,1000);sleep(500);// click(200,1000);sleep(500);swipe(520,1560,520,100,1000);// click(200,1000);sleep(500);}
}
/*** 日志输出*/
function tLog(msg) {toast(msg);console.log(msg)
}/*** 获取权限和设置参数*/
function prepareThings(){unlock();setScreenMetrics(1080, 1920);//请求截图if(!requestScreenCapture()){tLog("请求截图失败");exit();}}
/*** 设置按键监听 当脚本执行时候按音量减 退出脚本*/
function registEvent() {//启用按键监听
    events.observeKey();//监听音量上键按下events.onKeyDown("volume_down", function(event){tLog("脚本手动退出");exit();});
}/*** 默认程序出错提示操作*/
function defaultException() {tLog("程序当前所处状态不合预期,脚本退出");exit();
}
/*** 等待加载收集能量页面,采用未找到指定组件阻塞的方式,等待页面加载完成*/
function waitPage(type){// 等待进入自己的能量主页if(type==0){desc("种树").findOne();}// 等待进入他人的能量主页else if(type==1){desc("浇水").findOne();}//再次容错处理sleep(1000);
}
/*** 从支付宝主页进入蚂蚁森林我的主页*/
function enterMyMainPage(){launchApp("支付宝");tLog("等待支付宝启动");var i=0;sleep(1000);//五次尝试蚂蚁森林入口while (!textEndsWith("蚂蚁森林").exists() && i<=5){sleep(2000);i++;}clickByText("蚂蚁森林",true,"请把蚂蚁森林入口添加到主页我的应用");//等待进入自己的主页tLog("蚂蚁森林启动完成");waitPage(0);tLog("蚂蚁森林启动结束");
}
/*** 进入排行榜*/
function enterRank(){tLog("寻找排行榜");swipe(520,1860,520,100,2000);sleep(500);swipe(520,1860,520,100,2000);sleep(500);clickByDesc("查看更多好友",0,true,"程序未找到排行榜入口,脚本退出");var i=0;//等待排行榜主页出现tLog("等待排行榜");sleep(500);while (!textEndsWith("排行榜").exists() && i<=5){sleep(2000);i++;}tLog("等待结束");if(i>=5){tLog("等待结束!");defaultException();}
}
/*** 从排行榜获取可收集好友的点击位置* @returns {*}*/
function  getHasEnergyfriend(type) {//var img = getCaptureImg();var p=null;if(type==1){//img 是图片//"#1DA06D" 第一个颜色//[0, 33, "#1DA06D"] 第二颜色和它的相对坐标//[34,45, "#ffffff"] 第三个颜色和他的相对坐标//region: [1030, 100, 1, 1700] 第一个颜色的检测区域1030,100为起始坐标,1,1700为区域宽度!!!//p = images.findMultiColors(img, "#1DA06D",[[20, 0, "#1DA06D"], [21,11, "#ffffff"]]);//p = images.findMultiColors(img, "#1DA06D",[[20, 0, "#1DA06D"], [48,45, "#ffffff"]]);var picture = images.read("./hand.jpg");var cap=captureScreen();sleep(1000);var p = findImage(cap, picture,{ threshold: 0.5 });tLog("OK");}if(p!=null){return p;}else {return null;}
}
/*** 判断是否好有排行榜已经结束* @returns {boolean}*/
function isRankEnd() {if(descEndsWith("没有更多了").exists()){var b=descEndsWith("没有更多了").findOne();var bs=b.bounds();if(bs.centerY()<1920){return true;}}return false;
}
/*** 在排行榜页面,循环查找可收集好友* @returns {boolean}*/
function enterOthers(){tLog("开始检查排行榜");var i=1;var ePoint=getHasEnergyfriend(1);//确保当前操作是在排行榜界面while(ePoint==null && textEndsWith("好友排行榜").exists()){tLog("未找到可取,向下滑");//滑动排行榜 root方式的的点击调用.如无root权限,7.0及其以上可采用无障碍模式的相关函数sleep(1000);swipe(520,1800,520,520,500);sleep(1000);i++;ePoint=getHasEnergyfriend(1);//检测是否排行榜结束了if(isRankEnd()){return false;}//如果连续32次都未检测到可收集好友,无论如何停止查找(由于程序控制了在排行榜界面,且判断了结束标记,基本已经不存在这种情况了)else if(i>32){tLog("程序可能出错,连续"+i+"次未检测到可收集好友");exit();}}if(ePoint!=null){//点击位置相对找图后的修正tLog("找到可取");click(ePoint.x,ePoint.y+20);waitPage(1);while(1){var img = captureScreen();toastLog("开始找色");//0x1d75b3为编辑器默认主题蓝色字体(if, var等关键字)的颜色//找到颜色与0x1d75b3完全相等的颜色var point = findColorEquals(img, 0xCBFE5C);if(point){toastLog("x = " + point.x + ", y = " + point.y);click(point.x+30,point.y+30);}else{toastLog("没有找到");break;}            }//进去收集完后,递归调用enterOthers
        back();//swipe(520,1800,520,1300,1000);sleep(500);var j=0;//等待返回好有排行榜if(!textEndsWith("好友排行榜").exists() && j<=5){sleep(2000);j++;}if(j>=5){defaultException();}enterOthers();}else{defaultException();}}
/*** 根据描述值 点击* @param energyType* @param noFindExit*/
function clickByDesc(energyType,paddingY,noFindExit,exceptionMsg){if(descEndsWith(energyType).exists()){descEndsWith(energyType).find().forEach(function(pos){var posb=pos.bounds();click(posb.centerX(),posb.centerY()-paddingY);sleep(2000);});}else{if(noFindExit!=null && noFindExit){if(exceptionMsg !=null){tLog(exceptionMsg);exit();}else{defaultException();}}}
}/*** 根据text值 点击 * @param energyType * @param noFindExit*/
function clickByText(energyType,noFindExit,exceptionMsg){if(textEndsWith(energyType).exists()){textEndsWith(energyType).find().forEach(function(pos){var posb=pos.bounds();click(posb.centerX(),posb.centerY()-60);});}else{if(noFindExit!=null && noFindExit){if(exceptionMsg !=null){tLog(exceptionMsg);exit();}else{defaultException();}}}
}
/*** 遍历能量类型,收集自己的能量*/
function collectionMyEnergy(){while(1){var img = captureScreen();toastLog("开始找色");//0x1d75b3为编辑器默认主题蓝色字体(if, var等关键字)的颜色//找到颜色与0x1d75b3完全相等的颜色var point = findColorEquals(img, 0xCBFE5C);if(point){toastLog("x = " + point.x + ", y = " + point.y);click(point.x+30,point.y+30);}else{toastLog("没有找到");break;}        }tLog("自己能量收集完成");sleep(1000);
}
/*** 结束后返回主页面*/
function whenComplete() {tLog("结束");back();sleep(1500);back();sleep(1000);home();exit();
}
//程序主入口
function mainEntrence(){//前置操作
    prepareThings();//注册音量下按下退出脚本监听
    registEvent();//从主页进入蚂蚁森林主页
    enterMyMainPage();//收集自己的能量
    collectionMyEnergy();//进入排行榜
    enterRank();//在排行榜检测是否有好有的能量可以收集
    enterOthers();//结束后返回主页面
    whenComplete();
}

原理简单易懂。

通过方法唤醒屏幕,滑动或者解锁等,然后启动支付宝,

查询到蚂蚁森林字段后确认启动完成,然后点击那里。

打开后找到能量球的颜色,点击,直到该颜色消失。

向下滑动找到排行榜字段。点击排行榜。

打开寻找有没有手的图片在当前屏幕,有可以收集的好友就点击进去。找到能量球的颜色然后点击,没有就退出。

没有找到手的图片就往下滑动,继续检查可收集能量的好友。

通过查找“没有更多了”之类的字段,确定收集结束的标准。

最后返回,返回,主页。完成整个过程。

软件可以定时启动,所以有可能定时收取能量。但是要注意是否可以深度唤醒,后台是否运行了软件,是否无障碍服务正常开启等等。。。

文档详细容易操作。

完。

蚂蚁森林自动收能量的最新脚本相关推荐

  1. 苹果 python蚂蚁森林自动收能量_GitHub - dxp432/adb_python_alipay_AntForest: 蚂蚁森林自动收取能量、偷取能量、浇水(使用adb、python)...

    蚂蚁森林自动收取能量.偷取能量.浇水 蚂蚁森林自动收取能量.偷取能量.浇水(使用adb.python)adb_python_alipay_AntForest 涉及到的技术: 1.python 2.ad ...

  2. 苹果 python蚂蚁森林自动收能量_用Python实现定时自动化收取蚂蚁森林能量,再也不用担心忘记收取了...

    1. 概述 提到蚂蚁森林,大家应该都知道,你是否有因忘记收取能量而被好友收取的经历呢? 如果你不是蚂蚁森林重度用户,被别人收取了能量可能对你来说没什么. 但如果你是蚂蚁森林重度用户,遇到能量被偷 .. ...

  3. 30 行代码实现蚂蚁森林自动收能量(附送源码)

    点击上方 IT牧场 ,选择 置顶或者星标技术干货每日送达! blog.csdn.net/article/details/113734855 推荐:https://www.xttblog.com/?p= ...

  4. 30 行Python代码实现蚂蚁森林自动收能量(附送源码)

    公众号 "菜鸟学Python", 设为 "星标" 带你一起学Python 编辑:业余草 blog.csdn.net/article/details/113734 ...

  5. 苹果 python蚂蚁森林自动收能量_Python自动化收取蚂蚁森林能量,不错过暗恋的她...

    作者 | 锅g头 来源 | Crossin的编程教室最近在家远程工作,结果作息更混乱了 ,早上起不来,导致我蚂蚁森林能量天天被偷,严重影响我沙漠造树"大业" .于是我决定用pyth ...

  6. 好厉害!30 行代码实现蚂蚁森林自动收能量

    点击上方蓝色"终端研发部",选择"设为星标" 学最好的别人,做最好的我们 虽然我支付宝加了好多好友,平时有很多能量可以"偷",但由于太懒,至 ...

  7. 苹果 python蚂蚁森林自动收能量_通过测试工具自动收取蚂蚁森林能量

    本文仅为自动化工具appium的技术研究,请勿用于任何非正当用途 最近在家远程工作,结果作息更混乱了,早上起不来,导致我蚂蚁森林能量天天被偷,严重影响我沙漠造树"大业" ‍♂️.于 ...

  8. 苹果 python蚂蚁森林自动收能量_蚂蚁森林自动收取能量、偷取能量、浇水(使用adb、python)...

    涉及到的技术: 1.python 2.adb 具备的功能: 1.自动收取能量 2.自动偷取能量 3.自动给指定的朋友浇水 使用方法: 1.打开电脑,USB线一头接手机,一头接电脑. 2.电脑运行pyt ...

  9. Nexus 5X手机在支付宝的蚂蚁森林自动收能量的过程

    用其他手机,其他刷机包,都是可以的. 下载刷机包 https://downloads.aospextended.com/bullhead 个人觉得aospextended的rom比较省电,其他刷机包或 ...

最新文章

  1. excel 小知识汇总
  2. audio标签下方有空隙的原因与解决方法
  3. 人生影响最大的三位老师
  4. 普通人看Build 2019 值得留心的亮点有哪些?
  5. read和write函数的使用
  6. jQuery教程10-表单元素选择器
  7. DBSCAN聚类算法初探(五)
  8. matlab2c使用c++实现matlab函数系列教程-std函数
  9. SAI v2.0小巧强大的板绘工具
  10. ASCII 码对照表
  11. 迪普Web应用防火墙产品线
  12. 电阻温度系数、电阻精度对电阻分压采样电压的影响
  13. ML1.1 机器学习误差分析
  14. 工业设计公司常对设计有什么要求?
  15. leetcode零散题汇总
  16. 如何设置potplayer播放器把人声凸显出来并降噪?
  17. kaggle比赛——Jigsaw Rate Severity of Toxic Comments(NLP类型)——分析获奖模型笔记
  18. echarts水球图
  19. 影之诗闪卡动图_影之诗怎么制作闪卡_闪卡的制作方法_软吧
  20. 找出viewgood webplayer播放的电影地址!---在线播放 和 下载

热门文章

  1. 给人类的机器学习指南
  2. java mail eml_Javamail写带附件eml文件并调用Outlook
  3. 【风宇冲】Unity3D教程宝典之插件篇:Unity3D插件详细评测及教学下载
  4. GMQ Coin Ex 3.0系统重磅升级上线
  5. qcustomplot基础练习(曲线)
  6. Android OkHttp + Glide + RecyclerView + ButterKnife流行框架的综合实现
  7. 移动互联网SIP在线状态方案分析
  8. 微信小程序---代码构成讲解基础篇
  9. (转载) 有赞开源项目最佳实践
  10. 基于ocr的硬字幕提取