其他分享
首页 > 其他分享> > 2021双十一自动刷淘宝喵糖并投骰子Auto.js脚本(安卓适用)

2021双十一自动刷淘宝喵糖并投骰子Auto.js脚本(安卓适用)

作者:互联网

前作https://www.cnblogs.com/smileglaze/p/13854538.html,今年大头主要在浏览任务和自动投骰子上,较为省心。

0.更新内容

@_@常回来看看,可能会有bug修复和添加新功能


 1.开宗明义

(小白请直接看第三部分内容)

脚本代码如下https://wws.lanzous.com/b01npfw9g,下载后解压然后使用Auto.js的导入功能)

/*---原载于https://www.cnblogs.com/smileglaze/p/15440620.html 仅供学习交流,下载后请于24小时内删除*/

/*--------版本v1.0根据个人情况修改以下内容----------*/

//长等待时间常量,用于应用启动、广告等较长时间等待,如果网络不好或手机卡请增加此数值,默认8秒
var LONG_TIME = 8000;

//短等待时间常量,用于例如返回等每步操作后的等待,如果手机卡请增加此数值
var SHORT_TIME = 3000;

/*--------根据个人情况修改以上内容----------*/

auto.waitFor();
var height = device.height;
var width = device.width;
setScreenMetrics(width, height);

//停掉除了本脚本以外的正在运行的脚本
killOthersAlive();

//启用悬浮窗,用于提示,为没有音量下键的手机提供了关闭悬浮窗可以直接停止脚本的方式
var w = floaty.window(
    <frame gravity="left">
        <text id="text" textColor="black" bg='#ffffff'>★★★Tips:按下[音量-]键或者长按[悬浮窗内文字]可随时结束脚本</text>
    </frame>
);
//设置悬浮窗变量
floatW();

//启用按键监听,按下音量下键脚本结束
keyDetector();

//保持屏幕常亮,最多三十分钟
device.keepScreenDim(30 * 60 * 1000);
//开始刷喵糖
lingQuTaobao();

//启用按键监听,按下音量下键脚本结束
function keyDetector() {
    threads.start(function() { //在子进程中运行监听事件
        events.observeKey();
        events.on("key", function(code, event) {
            var keyCodeStr = event.keyCodeToString(code);
            console.log(code);
            console.log(keyCodeStr);
            if (keyCodeStr == "KEYCODE_VOLUME_DOWN") {
                toast("检测到音量下键,程序已结束。");
                //取消屏幕常亮
                device.cancelKeepingAwake();
                exit();
            }
        });
    });
}

function lingQuTaobao() {
    launchApp("淘宝");
    ui.run(function() {
        w.text.setText("★★★Tips:请手动打开淘宝喵糖活动[做任务赚喵糖]界面");
    });
    t = text("赚糖领红包").findOne(SHORT_TIME);
    if (t != null) {
        t.click();
        sleep(SHORT_TIME);
    }
    text("做任务赢奖励").waitFor();
    sleep(1000);
    ui.run(function() {
        w.text.setText("★★★Tips:按下[音量-]键或者长按[悬浮窗内文字]可随时结束脚本");
    });
    toast("赚喵糖");
    sleep(SHORT_TIME);
    while (text("去浏览").exists()) {
        toast("存在去浏览");
        text("去浏览").findOne().click();
        sleep(SHORT_TIME);
        sleep(20000);
        back();
        sleep(SHORT_TIME + 1000);
        if (!text("做任务赢奖励").exists()) {
            back();
            sleep(SHORT_TIME);
        }
    }
    while (text("浏览15s立得").exists()) {
        toast("存在浏览任务");
        text("浏览15s立得").findOne().parent().parent().parent().child(1).click();
        sleep(SHORT_TIME);
        sleep(20000);
        back();
        sleep(SHORT_TIME + 1000);
        if (!text("做任务赢奖励").exists()) {
            back();
            sleep(SHORT_TIME);
        }
    }
    toast("领取完成...");
    text("关闭").findOne().click();
    sleep(SHORT_TIME);
    while (textContains("点击赢红包").exists()) {
        toast("自动投骰子");
        textContains("点击赢红包").findOne().click();
        sleep(5000);
    }
    home();
    //刷支付宝喵糖
    toast("脚本结束^_^");
    //取消屏幕常亮
    device.cancelKeepingAwake();
    sleep(SHORT_TIME);
    exit();
}

function floatW() {
    //悬浮窗不会自动关闭
    setInterval(() => {}, 1000);
    w.setPosition(0, height - 800);
    w.setSize(400, 300);
    //悬浮窗可调整大小
    w.setAdjustEnabled(true);
    //退出悬浮窗即结束脚本
    //w.exitOnClose();
    //长按悬浮窗内文字结束脚本
    w.text.longClick(() => {
        //取消屏幕常亮
        device.cancelKeepingAwake();
        toast("检测到长按悬浮窗文字,脚本终止");
        //try...catch把exit()函数的异常捕捉,则脚本不会立即停止,仍会运行几行后再停止
        try {
            exit();
        } catch (err) {}
        //直接exit()的话坚持不到return的时候
        return true;
    });
}

function killOthersAlive() {
    //获取全部正在运行的脚本引擎
    var allEngines = engines.all();
    //log(allEngines);
    for (var i = 0; i < allEngines.length; i++) {
        //停掉除了本脚本以外的正在运行的脚本
        if (allEngines[i] != engines.myEngine()) {
            allEngines[i].forceStop();
        }
    }
}

 


 2.Auto.js的使用方法

简单说,Auto.js是一个手机的APP,不需要root权限就能运行自己写的JS脚本。

关于无障碍功能的开启,各个手机可能不同,但大致是一样的,以MIUI为例,入口在:设置 - 更多设置 - 无障碍 - 已下载的服务 - Auto.js - 开启服务

3.写给小白

  1. 把链接https://wws.lanzous.com/b01npfw9g的两个文件都下载了(记得自己的下载位置)
  2. 把apk文件安装
  3. 把zip文件解压了,得到js文件(记得解压位置)
  4. 看上面第点“Auto.js的使用方法”中,按照上面写的方法给设置 无障碍显示悬浮窗 权限(如果没有权限也会提示你开启)
  5. 打开Auto.js,点击右下角的+号,选第一个导入脚本,脚本就是第3步你解压的js文件
  6. 脚本开启前需要保证淘宝开启,且处于喵糖活动的任务界面(可见“做任务赚喵糖”和一系列任务的界面),在Auto.js点击三角号▶运行脚本(首次运行脚本可能会提示是否允许Auto.js打开淘宝,手动点击确认,按[音量-键]结束,并重新运行脚本即可)
  7. 如果遇到瞎点的情况,请立即按下手机的[音量-]键[长按悬浮窗内文字]停止程序,你也可以在Auto.js的主页-管理中找到正在运行的脚本,点击×关掉它
  8. 如果出错请告诉我具体执行到哪个阶段。

 4.Q&A

A:稳定性比效率更重要,这是为了照顾老年机和山区的同志,你可以自行修改代码第6、9行的时间常量,设置小一些。

如果等待时间过短,会出现未加载成功就进行判定和点击操作,从而导致错误的逻辑。

相对的如果你的手机太卡,或者网络不佳,可以增大这两个时间常量(需要设置手机锁屏时间不要过短,否则会锁屏)。


 5.注意事项

标签:脚本,悬浮,Auto,安卓,js,sleep,TIME
来源: https://www.cnblogs.com/smileglaze/p/15440620.html