前言

双十一活动已经过期,本文仅作存档

本脚本仅供学习交流之用,使用者如何使用与本文作者无关。

AutoJS下载 & 教程

全民营业脚本

如果遇到问题请在下方评论

脚本

//遇到问题请在 https://chrxw.com 留言
//Ver 0.6 2020.10.31
//By Chr_([email protected])
//=========================
//功能配置
//自动加入会员(设为false禁用)
var auto_join_vip = true;
//自动完成加购任务(设为false禁用)
var auto_add_cart = true;
//=========================
auto.waitFor();
// console.show();
toast('\n脚本开始运行\n请切换到任务页');
for (var i = 0; i < 10; i++) {
    //等待切换到任务页
    if (className("android.view.View").text("收取金币").exists() ||
        className("android.view.View").text("立即解锁").exists()) {
        log('break');
        break;
    }
    rsleep(1);
}
if (!className("android.view.View").textStartsWith("邀请好友助力").exists()) {
    advclick(className("android.view.View").text("领金币").findOnce());
}
toast("\n即将开始工作\n中途需退出请按【音量+】终止");
sleep(2000);
for (; ;) {
    var flag = false;
    var objs = text("去完成").find();
    for (var i = 0; i < 10; i++) {
        if (objs[i] != null) {
            obj = objs[i].parent();
            if (obj.children() >= 8) {
                break;
            }
        }
    }
    var tasks = obj.children();
    for (var i = 2; i < tasks.length; i += 4) {
        var txt = tasks[i].text();
        log(txt, i);
        if (txt.search("8秒") != -1) {
            var btn = tasks[i + 1];
            if (btn.text() == "去完成") {
                advclick(btn);
                view();
                flag = true;
            }
        } else if (txt.search("浏览可得") != -1) {
            var btn = tasks[i + 1];
            if (btn.text() == "去完成") {
                advclick(btn);
                view2();
                flag = true;
            }
        } else if (auto_join_vip && txt.search("成功入会可得") != -1) {
            var btn = tasks[i + 1];
            if (btn.text() == "去完成") {
                advclick(btn);
                view3();
                flag = true;
            }
        } else if (auto_add_cart && txt.search("5个") != -1) {
            var btn = tasks[i + 1];
            if (btn.text() == "去完成") {
                advclick(btn);
                view4();
                flag = true;
            }
        }
        if (flag) {
            break;
        }
    }
    if (!flag) {
        toast("\n脚本运行完毕\n模拟浏览任务全部完成(大概)");
        break;
    }
}
//模拟浏览(浏览会场任务)
function view() {
    rsleep(3);
    rslide(10);
    // className("android.widget.Image").text("vk image").findOne(5000);
    rslideR(1);
    rsleep(3);
    advback();
}
//模拟浏览(直接返回)
function view2() {
    rsleep(2);
    back();
    rsleep(2);
}
//模拟浏览(开卡)
function view3() {
    rsleep(2);
    var btn = className("android.view.View").text("确认授权并加入店铺会员").findOne(5000);
    log(btn);
    if (btn) {
        advclick(btn);
        className("android.view.View").text("恭喜您已集齐所有会员卡").findOne(2000);
        rsleep(2);
        advback();
    }
}
//模拟浏览(浏览商品、加购任务)
function view4() {
    rsleep(3);
    var add_cart = true;
    var count = 4;
    if (className("android.view.View").text("任意浏览以下5个商品").exists()) {
        var add_cart = false;
        var count = 4;
    } else {
        var add_cart = true;
        var count = 5;
    }
    log(add_cart ? "加购模式" : "浏览模式");

    for (var i = 0; i < 5; i++) {
        var prices = className("android.view.View").textMatches("^¥[0-9]+\.[0-9][0-9]").untilFind();
        log(i, prices[i].text());
        var good = prices[i].parent().parent();
        if (good.childCount() > count) {
            log('已完成,跳过');
            continue;
        }
        if (!add_cart) {
            advclick(good);
            rsleep(2);
            rslide(1);
            className("android.widget.ImageView").desc("返回").click();
        } else {
            good.child(4).click();
        } rslide(1);
        rsleep(2);
    }
    advback();
    rsleep(3);
}
//随机延时
function rsleep(s) {
    while (s--) {
        sleep(random(900, 1200));
    }
}
//模拟返回
function advback() {
    for (var i = 0; i < 3; i++) {
        if (!className("android.widget.ImageView").desc("返回").exists()) {
            rslideR(1);
            rsleep(2);
            continue;
        }
        className("android.widget.ImageView").desc("返回").click();
        rsleep(5);
        if (className("android.view.View").text("领金币").exists()) {
            return;
        }
    }
    log("定位不到返回按钮,模拟返回键");
    back();
}
//随机划屏
function rslide(i) {
    while (i--) {
        var x1 = random(200, 900);
        var y1 = random(1200, 1900);
        var x2 = random(200, 900);
        var y2 = random(1000, 1200);
        swipe(x1, y1, x2, y2, 300);
        rsleep(1);
    }
}
//随机划屏,反向
function rslideR(i) {
    while (i--) {
        var x1 = random(200, 900);
        var y1 = random(900, 1300);
        var x2 = random(200, 900);
        var y2 = random(1500, 1900);
        swipe(x1, y1, x2, y2, 300);
        rsleep(1);
    }
}
function advclick(uiobject) {
    var rect = uiobject.bounds();
    // var x = random(rect.left, rect.right);
    // var y = random(rect.top, rect.bottom);
    click(rect.centerX(), rect.centerY());
}

说明

  • 加了几个功能开关,可以禁用部分功能。
  • 修正了几个影响使用的bug。
  • 支持浏览,开卡,加购等任务。
  • 修复无法退出的bug。
  • 修复了无法运行的bug。

每日逛店脚本

活动页最下面每日逛店也有少量金币,不过受益比较感人,就不整合了,需要的自取

//遇到问题请在 https://chrxw.com 留言
//Ver 0.1 2020.10.27
//By Chr_([email protected])
auto.waitFor();
toast('\n脚本开始运行\n请切换到任务页');
className("android.view.View").textStartsWith("宝箱随机藏在以下店铺内").waitFor();
for (var k = 0; k < 10; k++) {
    count = className("android.view.View").text("寻宝箱 领金币").findOne().parent().child(2).childCount();
    if (count > 0) {
        toast("\n即将开始工作\n中途需退出请按【音量+】终止");
        for (var i = 0; i < 20; i++) {
            var shops = className("android.view.View").text("寻宝箱 领金币").findOne().parent().child(2).children();
            shops[i].click();
            rsleep(4);
            if (className("android.view.View").text("每日签到 (0/1)").findOne(100) &&
                className("android.view.View").text("去完成").findOne(100)) {
                toast('达到每日上限,任务结束');
                back();
                break; 
            }
            back();
        }
        toast('工作完成,总计', i, '个店铺');
        break;
    } else {
        toast('获取不到店铺列表,请手动划到活动页最下面');
    }
}
//随机延时
function rsleep(s) {
    while (s--) {
        sleep(random(900, 1200));
    }
}

热爱时光机脚本

脚本

//遇到问题请在 https://chrxw.com 留言
//Ver 0.1 2020.11.1
//By Chr_([email protected])
//=========================
//功能配置
//=========================
auto.waitFor();
//console.show();
// toast('\n脚本开始运行\n请切换到品牌狂欢城任务页');
className("android.view.View").text("热爱时光机").waitFor();

// toast("\n即将开始工作\n中途需退出请按【音量+】终止");
// sleep(2000);

for (; ;) {
    if (!className("android.view.View").textStartsWith("邀请好友一起玩").exists()) {
        get_task_btn().click();
        rsleep(2);
    }
    var flag = false;
    var objs = text("去完成").find();
    for (var i = 0; i < objs.size(); i++) {
        if (objs[i] != null) {
            obj = objs[i].parent();
            if (obj.children().size() == 2) {
                break;
            }
        }
    }
    var tasks = obj.parent().parent().children();
    for (var i = 0; i < tasks.length; i++) {
        var txt = tasks[i].child(1).text();
        var btn = tasks[i].child(3).child(0);

        if (txt.search("超级") != -1) {
            if (btn.text() == "去完成") {
                log(1, txt);
                btn.click();
                rsleep(2);
                view2();
                flag = true;
            }
        } else if (txt.search("大牌") != -1) {
            if (btn.text() == "去完成") {
                log(2, txt);
                btn.click();
                rsleep(2);
                view3();
                flag = true;
            }
        } else if (txt.search("精选") != -1) {
            if (btn.text() == "去完成") {
                log(3, txt);
                btn.click();
                view();
                flag = true;
            }
        // 有bug,暂时不能使用
        // } else if (txt.search("同城") != -1) {
        //     if (btn.text() == "去完成") {
        //         log(3, txt);
        //         btn.click();
        //         view();
        //         flag = true;
        //     }
        }
        if (flag) {
            break;
        }
    }
    if (!flag) {
        toast("\n脚本运行完毕\n模拟浏览任务全部完成(大概)");
        break;
    }
}
//模拟浏览(直接返回)
function view() {
    rsleep(2);
    advback();
    rsleep(2);
}
//模拟浏览(主页浏览任务1)
function view2() {
    var task = className("android.view.View").textStartsWith("逛超级品牌立得100").findOnce(1);
    if (task) {
        var str = task.text();
        var nums = str.match(/\d+/g);
        var curr = nums[1];
        var max = nums[2];
        while (curr < max) {
            toastLog('逛超级品牌任务', curr);
            className("android.view.View").textStartsWith("逛超级品牌立得100").findOnce(1).parent().child(2).child(0).child(1).click();
            view();
            curr++;
        }
    }
}
//模拟浏览(主页浏览任务2)
function view3() {
    var task = className("android.view.View").textStartsWith("逛大牌品牌立得50").findOnce(1);
    if (task) {
        var str = task.text();
        var nums = str.match(/\d+/g);
        var curr = nums[1];
        var max = nums[2];
        toastLog(nums)
        while (curr < max) {
            toastLog('逛大牌品牌任务' + curr);
            className("android.view.View").textStartsWith("逛大牌品牌立得50").findOnce(1).parent().child(1).child(1).click();
            view();
            curr++;
        }
    }
}
//随机延时
function rsleep(s) {
    while (s--) {
        sleep(random(900, 1200));
    }
}
//模拟返回
function advback() {
    for (var i = 0; i < 3; i++) {
        if (!className("android.widget.ImageView").desc("返回").exists()) {
            rslideR(1);
            rsleep(2);
            continue;
        }
        className("android.widget.ImageView").desc("返回").click();
        rsleep(5);
        if (className("android.view.View").text("热爱时光机").exists()) {
            return;
        }
    }
    log("定位不到返回按钮,模拟返回键");
    back();
}
//随机划屏
function rslide(i) {
    while (i--) {
        var x1 = random(200, 900);
        var y1 = random(1200, 1900);
        var x2 = random(200, 900);
        var y2 = random(1000, 1200);
        swipe(x1, y1, x2, y2, 300);
        rsleep(1);
    }
}
//随机划屏,反向
function rslideR(i) {
    while (i--) {
        var x1 = random(200, 900);
        var y1 = random(900, 1300);
        var x2 = random(200, 900);
        var y2 = random(1500, 1900);
        swipe(x1, y1, x2, y2, 300);
        rsleep(1);
    }
}
//高级点击
function advclick(uiobject) {
    var rect = uiobject.bounds();
    // var x = random(rect.left, rect.right);
    // var y = random(rect.top, rect.bottom);
    click(rect.centerX(), rect.centerY());
}
//获取任务按钮
function get_task_btn() {
    var tips = className("android.view.View").textMatches("剩余\\d+能量").findOnce();
    var btn = tips.parent().parent().child(4);
    return (btn);
}

说明

  • 此为第一版,可能存在bug,如有遇到请在此反馈。
最后修改:2020 年 11 月 14 日 07 : 56 PM