吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4630|回复: 14
收起左侧

[其他转载] Auto.js-淘宝欢乐造红包脚本

  [复制链接]
whisky7 发表于 2020-12-2 12:59
本帖最后由 whisky7 于 2020-12-3 23:39 编辑

Autojs小白不请自来,不习惯注释,请见谅!以下为淘宝欢乐造红包的脚本,需下载Autojs使用,源码借鉴了某大佬的随机睡眠函数和曲线滑动函数,其它均为原创,最好下载老版本的淘宝防止检测,新版本目前暂时也还未被检测到,代码如下:
更新:1.修正打卡失败问题;2.增加视频浏览睡眠时间,以避免网络或手机卡顿造成的浏览未完成问题。
[JavaScript] 纯文本查看 复制代码
auto.waitFor();
console.show();
var width=device.width;
var height=device.height;
var COIN=0;
var float=1.25;
setScreenMetrics(width,height);
function music(file_path){
    media.playMusic(file_path);
    sleep(media.getMusicDuration());
}
function random(min, max) {
    return Math.round(Math.random() * (max - min)) + min;
}

function ramdomByFloat(number) {
    return random(number, number * float);
}

function randomSleep(time) {
    sleep(ramdomByFloat(time));
}

function accomplishment(){
    var index=0;
    var a=text("去完成").findOnce(index);
    while(a){
        if(a.parent().findOne(textContains("好友")))break;
        if(a.parent().findOne(textContains("施肥")))index++;
        if(a.parent().findOne(textContains("心愿")))index++;
        else
        {
            var coinNum=a.parent().findOne(textMatches(/×\d+/));
            coinNum=/\d+/.exec(coinNum.text())[0]-0;
            a.click();
            toastLog(/\d+:\d+:\d+/.exec(Date())[0]+' 正在完成...');
            randomSleep(3000);
            var secCount=0;
            while(!textContains("完成").exists() && !descContains("完成").exists()){
                if(secCount>20)break;
                if(! textContains("主播").exists()){randomSwipe();randomSleep(500);}        
                else randomSleep(2500);
                secCount++;
            }
            COIN+=coinNum;
            toastLog(/\d+:\d+:\d+/.exec(Date())[0]+' 去完成任务成功!获得欢乐币:'+coinNum);
            back();
            textContains("累计任务奖励").waitFor();
            randomSleep(2000);
        }
        a=text("去完成").findOnce(index);
    }
}

/**
 * 随机滑动
 */
function randomSwipe() {
    smlMove(ramdomByFloat(width / 2), ramdomByFloat(height / 1.5), ramdomByFloat(width / 2), ramdomByFloat(height / 4), ramdomByFloat(800));
}

/**
 * 范围随机数生成
 * @param min 
 * @param max 
 */
function random(min, max) {
    return Math.round(Math.random() * (max - min)) + min;
}

/**
 * 根据float生成随机数
 * @param number 
 */
function ramdomByFloat(number) {
    return random(number, number * float);
}

/**
 * 仿真随机带曲线滑动 
 * @param qx 起点x轴坐标
 * @param qy 起点y轴坐标
 * @param zx 终点x轴坐标
 * @param zy 终点y轴坐标
 * @param time 滑动时间,毫秒
 */
function smlMove(qx, qy, zx, zy, time) {
    var xxy = [time];
    var point = [];
    var dx0 = {
        "x": qx,
        "y": qy
    };
    var dx1 = {
        "x": random(qx - 100, qx + 100),
        "y": random(qy, qy + 50)
    };
    var dx2 = {
        "x": random(zx - 100, zx + 100),
        "y": random(zy, zy + 50),
    };
    var dx3 = {
        "x": zx,
        "y": zy
    };
    for (var i = 0; i < 4; i++) {
        eval("point.push(dx" + i + ")");
    };
    for (let i = 0; i < 1; i += 0.08) {
        xxyy = [parseInt(bezierCurves(point, i).x), parseInt(bezierCurves(point, i).y)];
        xxy.push(xxyy);
    }
    gesture.apply(null, xxy);
};

function bezierCurves(cp, t) {
    cx = 3.0 * (cp[1].x - cp[0].x);
    bx = 3.0 * (cp[2].x - cp[1].x) - cx;
    ax = cp[3].x - cp[0].x - cx - bx;
    cy = 3.0 * (cp[1].y - cp[0].y);
    by = 3.0 * (cp[2].y - cp[1].y) - cy;
    ay = cp[3].y - cp[0].y - cy - by;

    tSquared = t * t;
    tCubed = tSquared * t;
    result = {
        "x": 0,
        "y": 0
    };
    result.x = (ax * tCubed) + (bx * tSquared) + (cx * t) + cp[0].x;
    result.y = (ay * tCubed) + (by * tSquared) + (cy * t) + cp[0].y;
    return result;
};

function doubleTwelve(){
    COIN=0;
    while(true){
    try{
    toastLog(/\d+:\d+:\d+/.exec(Date())[0]+' 请自行前往欢乐造红包任务中心并打开任务栏...');
    text("累计任务奖励").waitFor();
    toastLog(/\d+:\d+:\d+/.exec(Date())[0]+" 正在执行任务...");
    var signUp=text('去打卡').findOne(2000);
    if(signUp){
        signUp.click();
        toastLog(/\d+:\d+:\d+/.exec(Date())[0]+' 签到成功!');
    }
    accomplishment();
    var bonus=text("立即领取").findOne(2000);
    while(bonus){
        bonus.click();
        log(/\d+:\d+:\d+/.exec(Date())[0]+' 领取奖励成功!'); 
        randomSleep(1000);
        var bonus=text("立即领取").findOne(2000);
    }
    toastLog(/\d+:\d+:\d+/.exec(Date())[0]+' 欢乐造红包任务完成!获得总欢乐币:'+COIN); 
    break;
    //music('/storage/emulated/0/脚本/success.wav');
}
    catch(err){
        log(err.message);
        //music('/storage/emulated/0/脚本/failure.mp3')
    }
    }
    }
    
doubleTwelve();


希望有什么问题可以提出来,我才能一边改进一边学习。

任务完成截图

任务完成截图

任务完成日志

任务完成日志

免费评分

参与人数 7吾爱币 +7 热心值 +4 收起 理由
欧皇大帝 + 1 + 1 我很赞同!
kosaku + 1 + 1 谢谢@Thanks!
DorianSOS + 1 谢谢@Thanks!
87901434 + 1 TB的真没意思,累死累活那么点还封,还是JD划算。
阿傑 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
shiina0831 + 1 + 1 谢谢@Thanks!
梦古无疆 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| whisky7 发表于 2020-12-2 18:34
坏人。丶 发表于 2020-12-2 14:07
你可以编辑下代码,文本框有一个代码的插件,放入会更好看点。。

谢谢指正,第一次发布不太懂,现在改了,不过审核有点慢就是了
kosaku 发表于 2020-12-2 14:33
本帖最后由 kosaku 于 2020-12-2 14:57 编辑

节约时间就是节约生命,感恩楼主的分享~~!!
实在抱歉今天的份额已经打赏了另外一个大佬,明日一定再来支持~!
坏人。丶 发表于 2020-12-2 14:07
你可以编辑下代码,文本框有一个代码的插件,放入会更好看点。。
梦古无疆 发表于 2020-12-2 14:07
谢谢大佬分享   正需要这玩意
shiina0831 发表于 2020-12-2 14:23
感谢大佬 又可以节省一点步骤了
第一名dym 发表于 2020-12-2 14:34
谢谢大佬!终于可以轻松一点了
bamyoo 发表于 2020-12-2 14:37
正好需要这个,收藏下。
钢公鸡 发表于 2020-12-2 14:41
很强,又可以解放双手了
旺旺小小酥 发表于 2020-12-2 15:06
感谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 08:24

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表