Skip to content Skip to footer

使用auto.js定时收取蚂蚁森林能量和积分

auto.js下载地址:https://soft.shouji.com.cn/down/175909.html

先在手机安装auto.js,加入脚本,密码输入是通过位置点击,如果不想设置只需要替换解锁的function unlock代码将代码输入注释

代码语言:javascript复制//解锁

function unlock(){

if(!device.isScreenOn()){

//点亮屏幕

device.wakeUp();

//由于MIUI的解锁有变速检测,因此要点开时间以进入密码界面

sleep(1000);

//swipe(500, 0, 500, 1900, 2000);

//click(100,150);

//输入屏幕解锁密码,其他密码请自行修改

//sleep(2000);

//click(540,1800);

//sleep(500);

//click(540,1800);

//sleep(500);

//click(240,1620);

//sleep(500);

//click(540,1620);

//sleep(500);

}

}源代码(根据手机分辨率调整screen_width、screen_height):

代码语言:javascript复制var morningTime = "07:18";//自己运动能量生成时间

var startTime = "07:00";

var endTime = "8:40";

var screen_width = 1080; //设置屏幕的宽度,像素值

var screen_height = 2340; //设置屏幕的高度,像素值

unlock();

sleep(2000);

threads.start(function(){

//在子线程中调用observeKey()从而使按键事件处理在子线程执行

events.observeKey();

events.on("key_down", function(keyCode, events){

//音量键关闭脚本

if(keyCode == keys.volume_down){

toast("您选择退出脚本!")

sleep(2000);

exit();

}

});

});

mainEntrence();

//程序主入口

function mainEntrence(){

//前置操作

prepareThings();

do{

//打开支付宝

openAlipay();

//蚂蚁庄园

if(!checkTime()){

//enterAntFarm();

}

//进入蚂蚁森林主页,收集自己的能量

enterMyMainPage();

//进入排行榜

if(enterRank()){

//进入好友主页,收好友能量

enterOthers();

}

//结束后返回主页面

whenComplete();

}while(checkTime());

get_alipay_points();

exit();

}

//蚂蚁会员积分

function get_alipay_points(){

clickByTextDesc("我的",0);

sleep(2000);

clickByTextDesc("支付宝会员",0);

sleep(8000);

clickByTextDesc("领积分",0);

sleep(2000);

var i=0;

for(i=0; i<10;i++){

clickByTextDesc("点击领取",0);

sleep(100);

}

back();

sleep(1000);

back();

sleep(1000);

clickByTextDesc("首页",0);

}

//解锁

function unlock(){

if(!device.isScreenOn()){

//点亮屏幕

device.wakeUp();

//由于MIUI的解锁有变速检测,因此要点开时间以进入密码界面

sleep(1000);

swipe(500, 0, 500, 1900, 2000);

click(100,150);

//输入屏幕解锁密码,其他密码请自行修改

sleep(2000);

click(540,1800);

sleep(500);

click(540,1800);

sleep(500);

click(240,1620);

sleep(500);

click(540,1620);

sleep(500);

}

}

//获取权限和设置参数

function prepareThings(){

setScreenMetrics(screen_width, screen_height);

//toastLog("test1");

//请求截图

if(!requestScreenCapture()){

toastLog("请求截图失败,脚本退出");

exit();

}

sleep(3000);

//toastLog("test2");

}

//获取截图

function getCaptureImg(){

//captureScreen("/storage/emulated/0/DCIM/Screenshots/1.png");

//sleep(500);

var img0 = captureScreen();

sleep(100);

if(img0==null || typeof(img0)=="undifined"){

toastLog("截图失败,脚本退出");

exit();

}else{

return img0;

}

}

//从支付宝主页进入蚂蚁森林我的主页

function enterMyMainPage(){

//五次尝试蚂蚁森林入

var i=0;

swipe(screen_width*0.5,screen_height*0.5,screen_width*0.5,screen_height*0.25,500);

sleep(500);

swipe(screen_width*0.5,screen_height*0.25,screen_width*0.5,screen_height*0.5,500);

while (!textEndsWith("蚂蚁森林").exists() && !descEndsWith("蚂蚁森林").exists() && i<=5){

sleep(1000);

i++;

}

clickByTextDesc("蚂蚁森林",0);

//等待进入自己的主页,10次尝试

sleep(3000);

i=0;

while (!textEndsWith("背包").exists() && !descEndsWith("地图").exists() && i<=10){

sleep(1000);

i++;

}

toastLog("第"+i+"次尝试进入自己主页");

if(i>=10){

toastLog("进入自己能量主页失败");

return false;

}

//收自己能量

clickByTextDesc("克",0);

toastLog("自己能量收集完成");

sleep(100);

return true;

}

//进入排行榜

function enterRank(){

toastLog("进入排行榜");

sleep(2000);

swipe(screen_width*0.5,screen_height*0.8,screen_width*0.5,screen_height*0.1,500);

sleep(500);

swipe(screen_width*0.5,screen_height*0.8,screen_width*0.5,screen_height*0.1,500);

toastLog("查看更多好友");

sleep(500);

clickByTextDesc("查看更多好友",0);

//等待排行榜主页出现

sleep(3000);

return true;

}

//从排行榜获取可收集好友的点击位置

function getHasEnergyfriend(type) {

var img = getCaptureImg();

//getCaptureImg();

//var img = images.read("/storage/emulated/0/DCIM/Screenshots/2.png");

var p=null;

if(type==1){

// 区分倒计时和可收取能量的小手

p = images.findMultiColors(img, "#ffffff",[[0, -35, "#1da06d"],[0, 23, "#1da06d"]], {

region: [1073,200 , 1, 2000]

});

}

if(p!=null){

toastLog("找到好友");

return p;

}else {

//toastLog("此页没有找到可收能量的好友");

return null;

}

}

//在排行榜页面,循环查找可收集好友

function enterOthers(){

var i=1;

var ePoint=getHasEnergyfriend(1);

//不断滑动,查找好友

while(ePoint==null){

//如果到了收取自己能量的时间,先收取自己能量

if(myEnergyTime()){

return false;

}

swipe(screen_width*0.5,screen_height*0.7,screen_width*0.5,screen_height*0.1,500);

sleep(500);

ePoint=getHasEnergyfriend(1);

i++;

//如果连续15次都未检测到可收集好友,无论如何停止查找

if(i>15){

toastLog("连续"+i+"次未检测到可收集好友,返回");

return false;

}

}

//找到好友

//进入好友页面,10次尝试

click(ePoint.x,ePoint.y+20);

sleep(3000);

i=0;

while (!textEndsWith("浇水").exists() && !descEndsWith("浇水").exists() && i<=10){

sleep(1000);

i++;

}

toastLog("第"+i+"次尝试进入好友主页");

if(i>=10){

toastLog("进入好友能量主页失败");

return false;

}

//收能量

clickByTextDesc("克",0);

//等待返回好友排行榜

back();

//返回排行榜成功,继续

enterOthers();

}

function clickByTextDesc(energyType,paddingY){

var clicked = false;

if(descEndsWith(energyType).exists()){

descEndsWith(energyType).find().forEach(function(pos){

var posb=pos.bounds();

if(posb.centerX()<0 || posb.centerY()-paddingY<0){

return false;

}

//toastLog(pos.id());

var str = pos.id();

if(str != null){

if(str.search("search") == -1){

click(posb.centerX(),posb.centerY()-paddingY);

//toastLog("get it 1");

clicked = true;

}

}else{

click(posb.centerX(),posb.centerY()-paddingY);

//toastLog("get it 2");

clicked = true;

}

sleep(100);

});

}

if(textEndsWith(energyType).exists() && clicked == false){

textEndsWith(energyType).find().forEach(function(pos){

var posb=pos.bounds();

if(posb.centerX()<0 || posb.centerY()-paddingY<0){

return false;

}

//toastLog(pos.id());

var str = pos.id();

if(str != null){

if(str.search("search") == -1){

click(posb.centerX(),posb.centerY()-paddingY);

//toastLog("get it 3");

clicked = true;

}

}else{

click(posb.centerX(),posb.centerY()-paddingY);

//toastLog("get it 4");

clicked = true;

}

sleep(100);

});

}

return clicked;

}

//结束后返回主页面

function whenComplete() {

toastLog("结束");

back();

sleep(1500);

back();

}

function checkTime(){

var now =new Date();

var hour=now.getHours();

var minu=now.getMinutes();

var time_a=startTime.split(":");

var time_b=endTime.split(":");

var timea = 60*Number(time_a[0])+Number(time_a[1]);

var timeb = 60*Number(time_b[0])+Number(time_b[1]);

var time = 60*hour + minu;

if(time>=timea && time<=timeb){

//sleep(2000);

return true;

}else{

return false;

}

}

function myEnergyTime(){

var now =new Date();

var hour=now.getHours();

var minu=now.getMinutes();

var mytime=morningTime.split(":");

if(mytime[0]==hour && (mytime[1]==minu || mytime[1]==minu-1) ){

return true;

}else{

return false;

}

}

function enterAntFarm(){

var i=0;

sleep(2000);

while (!textEndsWith("蚂蚁庄园").exists() &&!descEndsWith("蚂蚁庄园").exists() && i<=5){

sleep(1000);

i++;

}

if(i>=5){

return false;

}

clickByTextDesc("蚂蚁庄园",0);

sleep(7000);

//captureScreen("/storage/emulated/0/DCIM/Screenshots/2_1.png");

//exit();

click(931,2150);

sleep(2000);

click(340,1420);

sleep(1000);

click(340,1900);sleep(1000);click(230,1600);sleep(1000);

click(930,1900);sleep(1000);click(670,1600);sleep(1000);

//captureScreen("/storage/emulated/0/DCIM/Screenshots/2_2.png");

back();

sleep(2000);

return true;

}

function openAlipay(){

//launchApp("Alipay");

launchApp("支付宝");

toastLog("等待支付宝启动");

//sleep(3000);

var i=0;

while (!textEndsWith("扫一扫").exists() && !descEndsWith("扫一扫").exists() && i<=5){

sleep(2000);

i++;

}

toastLog("第"+i+"次尝试进入支付宝主页");

if(i>=5){

toastLog("没有找到支付宝首页");

sleep(1000);

clickByTextDesc("首页",0);

return false;

}

return true;

}GitHub地址:https://github.com/congwulong/alipay_autojs

第二份代码:

代码语言:javascript复制var myEnergeType=["绿色能量","线下支付","行走","共享单车","地铁购票","网络购票","网购火车票","生活缴费","ETC缴费","电子发票","绿色办公","咸鱼交易","预约挂号"];

var morningTime="12:19";//自己运动能量生成时间

unlock();

sleep(1000);

mainEntrence();

//解锁

function unlock(){

if(!device.isScreenOn()){

//点亮屏幕

device.wakeUp();

sleep(1000);

//swipe(500, 10, 500, 1800, 500);

//click(100,150);

//滑动屏幕到输入密码界面

//swipe(563, 1600, 500, 1300, 100);

//gesture()

//sleep(1000);

//输入四次 1 (密码为1111)其他密码请自行修改 数字键1的像素坐标为(200,1000)

//click(200,1000);

//sleep(200);

//click(200,1000);

//sleep(200);

//click(200,1000);

//sleep(200);

//click(200,1000);

//sleep(200);

}

}

/**

* 日志输出

*/

function tLog(msg) {

toast(msg);

console.log(msg)

}

/**

* 获取权限和设置参数

*/

function prepareThings(){

setScreenMetrics(1080, 2340);

//请求截图

if(!requestScreenCapture()){

tLog("请求截图失败");

exit();

}

}

/**

* 设置按键监听 当脚本执行时候按音量减 退出脚本

*/

function registEvent() {

//启用按键监听

events.observeKey();

//监听音量上键按下

events.onKeyDown("KEYCODE_VOLUME_DOWN", function(event){

tLog("脚本手动退出");

exit();

});

}

/**

* 获取截图

*/

function getCaptureImg(){

var img0 = captureScreen();

if(img0==null || typeof(img0)=="undifined"){

tLog("截图失败,退出脚本");

exit();

}else{

return img0;

}

}

/**

* 默认程序出错提示操作

*/

function defaultException() {

tLog("程序当前所处状态不合预期,脚本退出");

exit();

}

/**

* 等待加载收集能量页面,采用未找到指定组件阻塞的方式,等待页面加载完成

*/

function waitPage(type){

// 等待进入自己的能量主页

if(type==0){

desc("种树").findOne();

}

// 等待进入他人的能量主页

else if(type==1){

desc("蚂蚁森林").findOne();

}

//再次容错处理

sleep(3000);

}

/**

* 从支付宝主页进入蚂蚁森林我的主页

*/

function enterMyMainPage(){

launchApp("支付宝");

tLog("等待支付宝启动");

var i=0;

sleep(3000);

//toastLog("click");

//sleep(3000);

//五次尝试蚂蚁森林入

swipe(520,1200,520,600,500);

sleep(500);

swipe(520,600,520,1300,500);

while (!textEndsWith("蚂蚁森林").exists() && i<=5){

//click(100,640);

sleep(1000);

i++;

}

//click(100,700);

clickByText("蚂蚁森林",true,"请把蚂蚁森林入口添加到主页我的应用");

//等待进入自己的主页

//waitPage(0);

sleep(5000)

}

/**

* 进入排行榜

*/

function enterRank(){tLog("进入排行榜");

sleep(1000);

//Swipe(500,1000,520,300,1000);

swipe(520,1800,520,300,500);

sleep(500);

swipe(520,1800,520,300,500);

sleep(500);

swipe(520,1800,520,800,500);

//Swipe(520,1000,520,300,1000);

//sleep(500);

toastLog("查看更多好友");

click(520,980);

//clickByDesc("查看更多好友",0,true,"程序未找到排行榜入口,脚本退出");

var i=0;

//等待排行榜主页出现

sleep(3000);

while (!textEndsWith("好友排行榜").exists() && i<=5){

sleep(2000);

i++;

}

if(i>=5){

defaultException();

}

}

/**

* 从排行榜获取可收集好友的点击位置

* @returns {*}

*/

function getHasEnergyfriend(type) {

var img = getCaptureImg();

var p=null;

if(type==1){

//img 是图片

//"#30bf6c" 第一个颜色

//[0, 33, "#30bf6c"] 第二颜色和它的相对坐标

//[34,45, "#ffffff"] 第三个颜色和他的相对坐标

//region: [1030, 100, 1, 1700] 第一个颜色的检测区域1030,100为起始坐标,1,1700为区域宽度!!!

//toastLog("开始定位坐标");

p = images.findMultiColors(img, "#1da06d",[[59, 0, "#1da06d"], [18,30, "#ffffff"]], {

region: [1017,100 , 1, 1700]

});

}

if(p!=null){

return p;

}else {

return null;

}

}

/**

* 判断是否好有排行榜已经结束

* @returns {boolean}

*/

function isRankEnd() {

var img = getCaptureImg();

var p=null;

{

//img 是图片

//"#30bf6c" 第一个颜色

//[0, 33, "#30bf6c"] 第二颜色和它的相对坐标

//[34,45, "#ffffff"] 第三个颜色和他的相对坐标

//region: [1030, 100, 1, 1700] 第一个颜色的检测区域1030,100为起始坐标,1,1700为区域宽度!!!

//toastLog("开始定位坐标");

p = images.findMultiColors(img, "#30bf6c",[[0, 60, "#30bf6c"], [150,0, "#30bf6c"]], {

region: [852,100 , 1, 1700]

});

}

if(p!=null){

return true;

}else {

return false;

}

}

/**

* 在排行榜页面,循环查找可收集好友

* @returns {boolean}

*/

function enterOthers(){

//tLog("开始检查排行榜");

var i=1;

var ePoint=getHasEnergyfriend(1);

//确保当前操作是在排行榜界面

while(ePoint==null && textEndsWith("好友排行榜").exists()){

//滑动排行榜 root方式的的点击调用.如无root权限,7.0及其以上可采用无障碍模式的相关函数

swipe(520,1800,520,600,500);

sleep(100);

ePoint=getHasEnergyfriend(1);

i++;

//检测是否排行榜结束了

if(isRankEnd()){

sleep(1000);

return false;

}

//如果连续32次都未检测到可收集好友,无论如何停止查找(由于程序控制了在排行榜界面,且判断了结束标记,基本已经不存在这种情况了)

else if(i>32){

tLog("程序可能出错,连续"+i+"次未检测到可收集好友");

return false;

//exit();

}

}

if(ePoint!=null){

//点击位置相对找图后的修正

tLog(ePoint.x,ePoint.y);

click(ePoint.x,ePoint.y+20);

//waitPage(1);

sleep(2000);

for(var row = 640;row < 900;row+=80)

for(var col = 170;col < 900;col+=80){

click(col,row);

//sleep(50);

}

//clickByDesc("可收取",80);

//进去收集完后,递归调用enterOthers

back();

sleep(2000);

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(200);

});

}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(){

//var energyRegex=generateCollectionType();

//var checkInMorning=false;

//如果是早上7点03分左右的话.等待主页能量出现 每隔一秒检测一次

sleep(1000);

for(var row = 640;row < 900;row+=70)

for(var col = 140;col < 800;col+=70){

click(col,row);

//sleep(50);

}

tLog("自己能量收集完成");

sleep(100);

}

/**

* 结束后返回主页面

*/

function whenComplete() {

tLog("结束");

back();

sleep(1500);

back();

//exit();

}

/**

* 根据能量类型数组生成我的能量类型正则查找字符串

* @returns {string}

*/

function generateCollectionType() {

var regex="/";

myEnergeType.forEach(function (t,num) {

if(num==0){

regex+="(\\s*"+t+"$)";

}else{

regex+="|(\\s*"+t+"$)";

}

});

regex+="/";

return regex;

}

function isMorningTime() {

var now =new Date();

var hour=now.getHours();

var minu=now.getMinutes();

var targetTime=morningTime.split(":");

if(Number(targetTime[0])==hour && Math.abs(Number(targetTime[1])-minu)<=2){

return true;

}else{

return false;

}

}

function repeat(){

var i = 0;

while(i< 1){

i++;

sleep(5000);

enterMyMainPage();

//收集自己的能量

//if(isMorningTime())

collectionMyEnergy();

//进入排行榜

enterRank();

//在排行榜检测是否有好有的能量可以收集

enterOthers();

//结束后返回主页面

whenComplete();

}

}

//程序主入口

function mainEntrence(){

//前置操作

prepareThings();

//注册音量下按下退出脚本监听

registEvent();

//从主页进入蚂蚁森林主页

enterMyMainPage();

//收集自己的能量

collectionMyEnergy();

//进入排行榜

enterRank();

//在排行榜检测是否有好有的能量可以收集

enterOthers();

//结束后返回主页面

whenComplete();

repeat();

exit();

}