Autojs实现蚂蚁森林自动收取能量球

警告:

本文较为基础,大佬绕行,不喜勿喷

 

下面正式开始步骤

一:安装Autojs

开源下载链接:https://github.com/Ericwyn/Auto.js/releases

在Github上,国内下载较慢

想快一点的同学请移步下面的蓝奏云下载链接:

https://zimuv.lanzous.com/iMw1Lj8g9he

当然如果有其他渠道的大佬可以在评论区贴出来

安装后按提示开启无障碍

二:代码

由于各种手机有差异,屏幕大小不一,以及各种乱七八糟的因素,下面贴两段代码,以便大多数同学都能操作成功

1,屏幕解锁代码:

出处:https://blog.csdn.net/nomil9/article/details/85392672?utm_source=app

    auto(); // 自动打开无障碍服务
     
    /*判断屏幕锁定,解锁屏幕(数字密码)*/
     
    if (!device.isScreenOn()) {//息屏状态将屏幕唤醒
     
        device.wakeUp();//唤醒设备
     
        sleep(1000); // 等待屏幕亮起
     
        //miui锁屏滑动不能唤出密码输入 通过下拉通知栏点击时间进入密码解锁
     
        swipe(500, 30, 500, 1000, 300);
     
        sleep(400);
     
        //点击时间
     
        click(100, 120);
     
        //解锁 密码0401
     
        desc(0).findOne().click();
     
        desc(4).findOne().click();
     
        desc(0).findOne().click();
     
        desc(1).findOne().click();
     
        //等待解锁完成,返回并退出
     
        back();
     
        exit();   
     
    }

2,能量球收取脚本代码

出处:https://blog.csdn.net/congwulong/article/details/90524420?utm_source=app

var morningTime = "07:18";//自己运动能量生成时间
var startTime = "07:00";
var endTime = "7:35";
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++;   
    }  
    if(i>=5){
        toastLog("没有找到蚂蚁森林入口,尝试中");
        clickByTextDesc("首页",0);
        sleep(2000);
        swipe(screen_width*0.5,screen_height*0.3,screen_width*0.5,screen_height*0.7,1000);
        sleep(2000);
        swipe(screen_width*0.5,screen_height*0.3,screen_width*0.5,screen_height*0.7,1000);
        sleep(2000);
    }
    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);
    for(var row=screen_height*0.256;row15){
            toastLog("程序可能出错,连续"+i+"次未检测到可收集好友");
            return false;
        }
    }

    //找到好友
    //进入好友页面,10次尝试
    click(ePoint.x,ePoint.y+20);
    sleep(3000);
    i=0;
    while (!textEndsWith("你收取TA").exists() && !descEndsWith("你收取TA").exists() && i<=10){
        sleep(1000);
        i++;
    }
    toastLog("第"+i+"次尝试进入好友主页");
    if(i>=10){
        toastLog("进入好友能量主页失败");
        return false;
    }

    //收能量
    //clickByTextDesc("克",0);
    for(var row=screen_height*0.256;row=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;
}

三,将上述代码

上述代码按照下面操作分别导入Autojs软件

Autojs实现蚂蚁森林自动收取能量球_第1张图片Autojs实现蚂蚁森林自动收取能量球_第2张图片

命名自己随意

四:测试

测试屏幕解锁脚本:定时执行,然后锁屏,等待到时间解锁,一般都会成功,如果出现失败,请重复步骤二

测试自动收取能量脚本,点击执行按钮,等待模拟操作

 

 

你可能感兴趣的:(脚本分享)