欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

来一起学习脚本语言吧,简单,高效,解放双手,感受*!

程序员文章站 2022-03-11 08:24:40
下载好后是一个压缩包,我把js脚本文件和图片文件夹压缩在一起了,下载好后解压到你的根目录下面的名字为**脚本**的文件夹下面,如果你安装了auto.js默认会在你的sdcard下面创建这样一个文件夹,如果没有新建一个名字为**脚本**的文件夹就好了。...

在家无聊翻博客,突然就发现脚本语言的“奇妙之处”,哈哈哈~兴趣一来,就立马动身前往拥有丰富资源的B站上开始了新的学习之旅…
还是“菜鸡”一枚,写个微信运动自动点赞还一直出bug(我平时也不怎么看微信运动的),就前两天我一直测试,给朋友点赞,朋友个个都“夸”我勤快…哈哈哈~(汗颜)
这不是花了三天时间写了一个“破脚本”,说出来不怕笑话,([小声的说道]就是那种‘芭芭农场’可以淘宝自动做任务施肥的)/丢人啦~
什么???你问博主为什么这么无聊?/微笑
原因就是:

  1. 在家放假呆了大半年,我也真是的···(看我ID应该可以看出来)【坚强的微笑】···
  2. 在家里我“亲爱的姐姐”每天提醒我给树施肥,说是快要成熟了,到时候可以领水果。。。【我也挺无奈的,害~】
  3. 最后一点,我确实是个菜鸡,哈哈哈~~也只能做个这种自娱自乐了,还不错,省下了我的时间,可以让脚本每天自动帮我给树施施肥。。。到时候就可以吃到“脚本为我种出来的树 ~额不 ~水果了。”

我写这篇博客呢,就是为了记录一下我的“战果”,毕竟再小的成果也都会有收获,也希望能在网络上留下一点自己的东西,最重要的是分享、分享、分享。。。

切入正题:
脚本名称:淘宝芭芭农场自动施肥
功能:顾名思义,那不就是芭芭农场自动做任务施肥吗~(这博主竟说废话)
运行环境:auto.js软件(Version 4.1.1 Alpha2)、我的脚本、淘宝。。。
这里我说明一下我的设备:
1. 笔记本电脑一台(用来调试代码)
2. 手机两个

  • 红米note8P(MIUI 11.0.3.0稳定版、Android10)
  • 魅蓝note5(Flyme8.0.0.0A、Android7.0)

其中,auto.js不知道是什么的小伙伴可以去百度了解一下哦~
该交代的也差不多了,后面我会把用到的资源传上去,感兴趣的小伙伴可以试着玩一玩,如果出现Bug也希望可以告知小弟一声,共同学习进步~~~
直接上代码

if (!requestScreenCapture()) {  // 截图权限
    toastLog("Error:没有截图权限,程序退出");
    exit();
}

function findImg(l_img_path) {
    var l_img = images.read(l_img_path);
    if (!l_img) {
        toastLog("Error:要找的图片不存在,请检查...");
        exit();
    }
    var i = findImage(images.captureScreen(), l_img);
    l_img.recycle();
    if (i) {
        return i;
    } else {
        return false;
    }
}

function startApp(Appname) {    // 检测App是否运行成功
    var ap = app.launchApp(Appname);
    if (ap) {
        toastLog(Appname + "启动成功");
    } else {
        toastLog("Error:" + Appname + "启动失败");
        exit();
    }
}

function waterTheTrees() {  // 淘宝给树施肥
    // 获取集肥料控件
    var feiliao = className("android.widget.Image").indexInParent(6).findOnce();
    if (feiliao) {
        feiliao.click();
        log("点击集肥料开始任务");
        sleep(1000);

        while (true) { // 循环做任务
            var quqiandao = className("android.widget.Button").text("去签到").findOnce();
            var quguangguang = className("android.widget.Button").text("去逛逛").findOnce();
            var quliulan = className("android.widget.Button").text("去浏览").findOnce();
            var qulingqu = className("android.widget.Button").text("去领取").findOnce();
            var quhuanzhuang = className("android.widget.Button").text("去换装").findOnce();
    
            if (!quqiandao && !quguangguang && !qulingqu && !quliulan && !quhuanzhuang) {
                toastLog("任务全部完成");
                sleep(1000);
                break;
            }
    
            while (true) { // 循环判断去签到任务
                var quqiandao = className("android.widget.Button").text("去签到").findOnce();
                if (quqiandao) {
                    quqiandao.click();
                    toastLog("签到成功");
                    sleep(1000);
                } else {
                    log("签到完成");
                    sleep(1000);
                    break;
                }
            }
    
            while (true) {  // 循环判断页面有没有去逛逛的任务
                // 判断页面是否存在去浏览字样
                var quguangguang = className("android.widget.Button").text("去逛逛").findOnce();
                if (quguangguang) {
                    quguangguang.click();
                    toastLog("去逛逛...");
                    sleep(1000);
                    sleep(20000);
                    toastLog("去逛逛完成");
                    back();
                    sleep(1000);
                } else {
                    log("去逛逛任务已完成");
                    sleep(1000);
                    break;
                }
            }
    
            while (true) {  // 循环判断页面有没有去浏览的任务
                // 判断页面是否存在去浏览字样
                var quliulan = className("android.widget.Button").text("去浏览").findOnce();
                if (quliulan) {
                    quliulan.click();
                    toastLog("去浏览...");
                    sleep(1000);
                    var paishe = className("android.widget.FrameLayout").id("scan_icon").findOne(1000);
                    if (paishe) { // 进入到拍立淘界面 执行的动作
                        toastLog("进入拍立淘界面");
                        swipe(device.width / 2, device.height / 2 + 500, device.width / 2, device.height / 2 - 100, 2000);
                        toastLog("正在浏览...(25秒后返回)");
                        sleep(25000);
                        toastLog("浏览成功");
                        back();
                    } else {
                        sleep(25000);
                        toastLog("浏览成功");
                        back();
                        sleep(2000);
                    }
                    sleep(1000);
                } else {
                    log("去浏览任务已完成");
                    break;
                }
            }
    
            while (true) {  // 循环判断页面有没有去领取的任务
                // 判断页面是否存在去领取字样
                var qulingqu = className("android.widget.Button").text("去领取").findOnce();
                if (qulingqu) {
                    qulingqu.click();
                    toastLog("领取成功");
                    sleep(1000);
                } else {
                    log("去领取任务已完成");
                    sleep(1000);
                    break;
                }
            }
    
            while (true) {  // 循环判断页面有没有去换装的任务
                // 判断页面是否存在去换装字样
                var quhuanzhuang = className("android.widget.Button").text("去换装").findOnce();
                if (quhuanzhuang) {
                    quhuanzhuang.click();
                    toastLog("去换装...");
                    sleep(1000);
    
                    var quhuoqu = "/sdcard/脚本/img/换装_去获取.png";
                    while (true) {
                        var quhuoqu_exist = findImg(quhuoqu);
                        if (quhuoqu_exist) {
                            toastLog("进入去换装界面");
                            break;
                        } else {
                            toastLog("正在进入去换装界面...");
                            sleep(2000);
                        }
                    }
                    toastLog("5秒后返回...");
                    sleep(5000);
                    toastLog("去换装成功");
                    back();
                    sleep(1000);
                } else {
                    log("去换装任务已完成");
                    break;
                }
            }
        }
    } else {
        toastLog("Error:找不到集肥料...");
        exit();
    }

    // 任务完成,点击右上角关闭按钮
    var shutDown = className("android.widget.Button").clickable(true).text("关闭").findOnce();
    if (shutDown) {
        shutDown.click();
        sleep(1000);
    }

    // 领取肥料
    var getManuer = "/sdcard/脚本/img/领取肥料.png";
    var get_location = findImg(getManuer);
    if (get_location) {
        press(get_location.x + 60, get_location.y + 100, 250);
        sleep(1000);

        var getManuer_stop = className("android.view.View").text("去施肥,赚更多肥料").findOnce();
        if (getManuer_stop) {
            getManuer_stop.click();
            log("肥料已领取");
            sleep(1000);
        } else {
            toastLog("领取肥料");
        }
    } else {
        toastLog("Error:未找到领取肥料");
        exit();
    }

    // 施肥
    var feed = "/sdcard/脚本/img/施肥.png";
    var feed_location = findImg(feed);
    while (true) {
        if (feed_location) {
            press(feed_location.x, feed_location.y, 250);
            sleep(1000);

            var feed_stop = className("android.view.View").text("去集肥料").findOnce();
            if (feed_stop) {
                log("施肥已完成");
                break;
            }
        } else {
            toastLog("Error:施肥失败");
            break;
        }
    }
}

function gather_sun () { // 阳光农场收集阳光
    var sun_img = "/sdcard/脚本/img/阳光.png";
    while (true) { // 循环收集阳光
        var sun_location = findImg(sun_img);
        if (sun_location) {
            press(sun_location.x, sun_location.y, 250);
            sleep(1000);
        } else {
            var farmUpgrade = "/sdcard/脚本/img/农场升级了.png";
            var farmUpgrade_exist = findImg(farmUpgrade);
            if (farmUpgrade_exist) {
                toastLog("农场升级...");
                sleep(2000);
                var take = "/sdcard/脚本/img/立即收取阳光.png";
                var take_location = findImg(take);
                if (take_location) {
                    press(take_location.x, take_location.y, 300);
                    sleep(2000);
                }
            } else {
                toastLog("阳光收取完成");
                sleep(2000);
                return true;
            }
        }
    }
}

startApp("手机淘宝");
var mytb = className("android.widget.FrameLayout").desc("我的淘宝").findOne(3000);
if (mytb) {
    mytb.click();
    log("进入我的淘宝页面");

    var BBFarm = className("android.widget.FrameLayout").desc("芭芭农场").findOne(3000);
    if (BBFarm) {
        BBFarm.click();
        sleep(1000);

        var tree = "/sdcard/脚本/img/苹果树.png";
        
        while (true) {
            var shou = className("android.view.View").text("立即去收").findOnce();
            if (shou) { // 第一次进入可能会弹出立即去收界面处理
                shou.click();
                log("点击立即去收");
                sleep(1000);
            }

            var hezhong = className("android.view.View").text("合种").findOnce();
            var tree_location = findImg(tree);

            if (hezhong || tree_location) { // 判断进入的是阳光农场还是施肥界面
                if (tree_location) {
                    toastLog("进入阳光农场");
    
                    gather_sun(); // 收阳光
                    press(tree_location.x, tree_location.y, 250);
                }
                
                if (hezhong) {
                    toastLog("进入施肥页面");
                    sleep(1000);

                    waterTheTrees(); // 做任务和施肥
                    break;
                }
            } else {
                toastLog("正在加载...");
                sleep(2000);
            } 
        }
        toastLog("脚本结束,欢迎下次使用");
    } else {
        toastLog("Error:未找到芭芭农场入口")
    }
} else {
    toastLog("Error:当前未在淘宝首页");
}

手机下载auto.js安装好,添加脚本 -> 复制这一坨代码进去就可以了
对了,还有一件事。。。
里面还有一些需要图片来判断在不在当前位置,稍后我会把资源上传上去,不要慌(年轻人要蛋定)不大,就几十k的样子。

链接在此
》》》》》》》》》公共链接: https://ws28.cn/f/2xq77r07s14 密码: 1731《《《《《《《《《《《
使用教程
下载好后是一个压缩包,我把js脚本文件和图片文件夹压缩在一起了,下载好后解压到你的根目录下面的名字为脚本的文件
夹下面,如果你安装了auto.js默认会在你的sdcard下面创建这样一个文件夹,如果没有新建一个名字为脚本的文件夹放到下面就好了。(特别提醒:记住千万不要放错位置了

最后贴上博主喜欢的一句话:知足且坚定,温柔而上进

本文地址:https://blog.csdn.net/qq_23104703/article/details/107141623