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

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

0.更新内容

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

  • v1.0 10.22更新:
    • 功能:自动完成淘宝双十一的喵糖任务中的浏览15s任务,并自动投骰子。

  • vx.x 占位符:
    • 占位符:占位符

 1.开宗明义

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

  • 平台:Android
  • 功能:自动完成淘宝双十一的喵糖任务中的浏览15s任务,并自动投骰子
  • 特色:
    • 增加了程序运行时按下[音量下键][长按悬浮窗内文字]退出的功能,提供给想要主动退出的情况。(也可以在Auto.js中的管理栏目下找到正在运行的脚本)
  • 依赖:Auto.js
  • 注意:脚本开启前需要保证淘宝开启,且处于喵糖活动的任务界面(可见“做任务赚喵糖”和一系列任务的界面),否则之后都会错误操作

脚本代码如下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脚本。

  • 安装AutoJS(可以在此下载https://wwe.lanzoui.com/izzrahmeilc,验证密码1234)
  • 在手机上安装并打开Auto.js,会提示打开辅助功能(各个手机叫法不同,比如三星叫服务,魅族叫无障碍服务)。
关于无障碍功能的开启,各个手机可能不同,但大致是一样的,以MIUI为例,入口在:设置 - 更多设置 - 无障碍 - 已下载的服务 - Auto.js - 开启服务
  • 给Auto.js开启 "显示悬浮窗" 权限,否则无法启动悬浮窗提示!!!(开启方法:长按Auto.js,打开应用信息 - 权限管理,确认“显示悬浮窗”权限开启)
  • 打开Auto.js,点击右下角"+"号,(在这里选择“导入”可以导入前面下载的压缩文件解压后的js脚本)选择“文件”可以创建新的脚本,随便起个名字,点“确定”,然后把这个博客上面的代码完整复制进去,点右上角保存的图标
  • 关闭键盘,点右上角的小三角▶运行程序
  • 等待程序运行,超过15s没反应才是不正常的。(建议锁屏时间设置为30s及以上)

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

  • Q:我觉得脚本运行的每步操作等的太久了,有点憨憨

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

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

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


 5.注意事项

  • 测试环境是安卓11版本,运行可能需要安卓7版本以上,适合1080p分辨率的全面屏手机
  • 程序并没有测试所有情况,可能会遇到一些偶然弹窗影响进程,一般手动处理后,关掉脚本和淘宝,重新运行即可
  • 每天可以通过任务界面最下面的淘宝和支付宝互相打开的按钮领取1个喵糖,一次性的,请手动完成
  • 每天除了浏览任务,还有种类比较多的“去完成”任务,目前还在搜集数据中,以后可能会更新这些任务
  • 累计任务奖励需要手动领取
  • 程序的的唤起如果失败,需要注意是否禁止了被其他程序启动
  • 这是一个脚本的想法和验证,仅供学习交流,下载体验后,请24小时内删除!!!
  • 非商业性使用 — 不得将此项目及其衍生的项目的源代码和二进制产品用于任何商业和盈利用途
  • License:本项目使用CC-BY-NC-SA授权,但禁止使用此脚本发布任何教学视频!!!
上一篇:Python数据科学技术详解与商业实践视频教程


下一篇:linux 下面压缩、解压.rar文件