ce过检测汉语版_Auto.js实用代码——快手极速版自动过滑块检测

稳定好用,实测一个小时

afb7afdef3b612d588eca125da6fc871.png

auto.waitFor();//设置屏幕宽度高度setScreenMetrics(1080, 1920);//常量设置var AppName = "快手极速版";var AppName_JB = "快手极速版脚本"; var 金币转圈 = id("redFloat");var 金币转圈x = 127.5;var 金币转圈y = 1218.5;var 点赞 = id("like_button");var 现金收益 = text("现金收益");var 去签到 = text("去签到");var 立即签到 = text("立即签到");var 今天已签 = textContains("今天已签");var 设置青少年模式 =  text("设置青少年模式");var 我知道了 =  text("我知道了");var 拖动滑块 = text("拖动滑块");var 拖动滑块x = 123;var 拖动滑块y = 976.5;var 立即邀请 = text("立即邀请"); if(!requestScreenCapture()){    toast("请求截图失败");    stop();}app.launchApp(AppName);//签到// SignIn();//没用,供大家参考// sleep(random(1000,2000));//滑动视频slidingVideo();关闭应用();sleep(1500);home();/** * 签到 */function SignIn(){    while(true){        sleep(random(1000,2000));        if(金币转圈.findOne(1000) != null){            console.log("金币转圈---已加载");            sleep(random(1000,2000));            click(金币转圈x,金币转圈y);            console.log("金币转圈---已点击");            while(true){                sleep(random(1000,2000));                if(现金收益.findOne(1000) != null){                    console.log("现金收益---已加载");                    while(true){                        sleep(random(1000,2000));                        if(立即签到.findOne(1000) != null){                            sleep(random(1000,2000));                            立即签到.findOne().click();                        }else if(今天已签.exists()){                            console.log("今天已签---已加载");                            sleep(random(1000,2000));                            back();                            console.log("金币转圈---已加载");                            break;                           }                    }                    break;                }            }            break;        }    }}/** * 滑动视频 */function slidingVideo(){    for (var i = 1; i < 500; i++) {        //点击文本不影响        toast("快手极速版滑动" + i +  "次"+"总计:"+ 500 + "次")        var fun = {            点击文本: function (没有) {                                var weight = text(没有).findOne().bounds();                            click(weight.centerX(),weight.centerY())            }            };        //检测青少年模式        if(设置青少年模式.findOne(1000) != null){            console.log("设置青少年模式");            sleep(1000);            我知道了.findOne().click();        }        //立即邀请        if(立即邀请.findOne(1000) != null){            console.log("立即邀请");            sleep(1000);            back();        }        //检测滑块        if(拖动滑块.findOne(1000) != null){            console.log("拖动滑块");            dragSlider();        }        //开始滑动视频        var x1 = random(255,870);        var y1 = random(1700,1800);        var x2 = random(255,870);        var y2 = random(222,300);        var time1 =random(3000,11000);        var time2 =random(500,1000);        sml_move(x1, y1, x2, y2,time2);        sleep(time1);        }} /** * 拖动滑块 *  */function dragSlider() {    for (var i = 0; i < 0; i++) { sleep(1000); log(i); }    while (true) {        img = images.captureScreen();        if (img) {            log("截图成功。进行识别滑块!");            break;        } else {            log('截图失败,重新截图');        }    }    var x = discernSlidingblock(img, device.width) + 65    console.info("识别结果滑块X坐标:" + x);     if (x > -1) {        randomSwipe(拖动滑块x, 拖动滑块y, x, 拖动滑块y)        return true;    } else {        return false;        console.log("识别有误,请确认是否在滑块界面");    }}/** * 计算滑块位置 * @param {图片} img  * @param {分辨率} ratio  */function discernSlidingblock(img, ratio) {    //创建识别变量    var temp, temp2, x, y, num, color, p, temp3, arr1;    //分析设备分辨率    if (ratio == 720) {        var tb = [348, 253, 691, 638, 81]        log("您的设备分辨率为:720p");    } else if (ratio == 1080) {        var tb = [463, 387, 912, 831, 125]        log("您的设备分辨率为:1080p");    } else {        log("当前设备分辨率不符合规范")        return -2    }    num = Math.ceil(tb[4] / 3.3 - 4);     //计算滑块位置    for (var k = 29; k <= 40; k++) {        temp2 = "";        color = "#" + k + "" + k + "" + k + "";        for (var i = 1; i <= num; i++) {            temp2 = temp2 + "0|" + i + "|" + color + ",";            temp2 = temp2 + i + "|0|" + color + ",";            temp2 = temp2 + "1|" + i + "|" + color + ",";            temp2 = temp2 + i + "|1|" + color + ",";            temp2 = temp2 + "2|" + i + "|" + color + ",";            temp2 = temp2 + i + "|2|" + color + ",";        }        x = 0;        while (x > -2) {            y = 0;            while (y > -2) {                temp = "";                for (var i = 1; i <= num; i += 2) {                    temp = temp + "0|" + (tb[4] + y - i - 1) + "|" + color + ",";                    temp = temp + (tb[4] + y) + "|" + i + "|" + color + ",";                    temp = temp + (tb[4] + x) + "|" + (tb[4] + y - i - 1) + "|" + color + ",";                    temp = temp + (tb[4] + x - i - 1) + "|0|" + color + ",";                    temp = temp + i + "|" + (tb[4] + y) + "|" + color + ",";                    temp = temp + (tb[4] + x - i - 1) + "|" + (tb[4] + y) + "|" + color + ",";                    temp = temp + "1|" + (tb[4] + y - i - 1) + "|" + color + ",";                    temp = temp + (tb[4] + x - 1) + "|" + i + "|" + color + ",";                    temp = temp + (tb[4] + x - 1) + "|" + (tb[4] + y - i - 1) + "|" + color + ",";                    temp = temp + (tb[4] + x - i - 1) + "|1|" + color + ",";                    temp = temp + i + "|" + (tb[4] + y - 1) + "|" + color + ",";                    temp = temp + (tb[4] + y- i - 1) + "|" + (tb[4] + y - 1) + "|" + color + ",";                }                temp = temp + temp2 + "0|0|" + color;                arr1 = temp.split(",");                var arr2 = new Array();                for (var i = 0; i < arr1.length - 1; i++) {                    arr2[i] = new Array();                    temp3 = arr1[i].split("|");                    arr2[i] = [Number(temp3[0]), Number(temp3[1]), temp3[2]];                }                try {                    p = images.findMultiColors(img, color, arr2, {                        region: [tb[0], tb[1], tb[2] - tb[0], tb[3] - tb[1]],                        threshold: (Math.floor(k / 10) * 16 + k % 10)                    });                    if (p) {                        img.recycle();                        return p.x                    }                } catch (error) {                    //出错                    console.log("识别失败,错误原因:" + error);                    return -1;                }                y = --y;            }            x = --x;        }    }    try {        img.recycle();    } catch (error) {        console.log("识别失败,错误原因:" + error);    }    return -1;}/** * 真人模拟滑动函数 (滑块滑动) * @param {起点x} sx  * @param {起点y} sy  * @param {终点x} ex  * @param {终点y} ey  */function randomSwipe(sx, sy, ex, ey) {    //设置随机滑动时长范围    var timeMin = 1000    var timeMax = 3000    //设置控制点极限距离    var leaveHeightLength = 500     //根据偏差距离,应用不同的随机方式    if (Math.abs(ex - sx) > Math.abs(ey - sy)) {        var my = (sy + ey) / 2        var y2 = my + random(0, leaveHeightLength)        var y3 = my - random(0, leaveHeightLength)         var lx = (sx - ex) / 3        if (lx < 0) { lx = -lx }        var x2 = sx + lx / 2 + random(0, lx)        var x3 = sx + lx + lx / 2 + random(0, lx)    } else {        var mx = (sx + ex) / 2        var y2 = mx + random(0, leaveHeightLength)        var y3 = mx - random(0, leaveHeightLength)         var ly = (sy - ey) / 3        if (ly < 0) { ly = -ly }        var y2 = sy + ly / 2 + random(0, ly)        var y3 = sy + ly + ly / 2 + random(0, y3)    }        //获取运行轨迹,及参数    var time = [0, random(timeMin, timeMax)]    var track = bezierCreate(sx, sy, x2, y2, x3, y3, ex, ey)         log("随机控制点A坐标:" + x2 + "," + y2)    log("随机控制点B坐标:" + x3 + "," + y3)    log("随机滑动时长:" + time[1])     //滑动    gestures(time.concat(track))}/** * 计算滑动轨迹 */function bezierCreate(x1, y1, x2, y2, x3, y3, x4, y4) {    //构建参数    var h = 100;    var cp = [{ x: x1, y: y1 + h }, { x: x2, y: y2 + h }, { x: x3, y: y3 + h }, { x: x4, y: y4 + h }];    var numberOfPoints = 100;    var curve = [];    var dt = 1.0 / (numberOfPoints - 1);     //计算轨迹    for (var i = 0; i < numberOfPoints; i++) {        var ax, bx, cx;        var ay, by, cy;        var tSquared, tCubed;        var result_x, result_y;         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;         var t = dt * i        tSquared = t * t;        tCubed = tSquared * t;        result_x = (ax * tCubed) + (bx * tSquared) + (cx * t) + cp[0].x;        result_y = (ay * tCubed) + (by * tSquared) + (cy * t) + cp[0].y;        curve[i] = {            x: result_x,            y: result_y        };    }     //轨迹转路数组    var array = [];    for (var i = 0; i < curve.length; i++) {        try {            var j = (i < 100) ? i : (199 - i);            xx = parseInt(curve[j].x)            yy = parseInt(Math.abs(100 - curve[j].y))        } catch (e) {            break        }        array.push([xx, yy])    }     return array}/** * 仿真随机带曲线滑动  (视频滑动) * @param {起点x} qx  * @param {起点y} qy  * @param {终点x} zx  * @param {终点y} zy  * @param {过程耗时单位毫秒} time  */function sml_move(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 + ")");     };    log(point[3].x)     for (let i = 0; i < 1; i += 0.08) {        xxyy = [parseInt(bezier_curves(point, i).x), parseInt(bezier_curves(point, i).y)]         xxy.push(xxyy);     }     log(xxy);    gesture.apply(null, xxy);};function bezier_curves(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; }; 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: docker-ce_18.06.3.ce-1_mips64el.deb是适用于mips64el架构的Docker Community Edition(CE)的安装包。Docker CE是一个开源的容器化平台,它可以让开发人员通过把应用程序和其所需的运行时环境打包到容器中来轻松地构建、发布和运行应用程序。 这个安装包是docker-ce的一个特定本,本号为18.06.3.ce-1。这意味着它是Docker CE的18.06.3本的一个修订,其中的“ce”表示这是一个社区(Community Edition)。 mips64el是一个处理器架构,特别适用于嵌入式系统和网络设备。因此,这个安装包是专门为mips64el架构的系统设计的,以便在此类设备上安装和运行Docker CE。 要安装这个deb安装包,可以使用dpkg命令。首先,将.deb文件下载到系统中,然后在终端中导航到该文件所在的目录,并运行以下命令: ```bash sudo dpkg -i docker-ce_18.06.3.ce-1_mips64el.deb ``` 此命令将安装docker-ce本18.06.3.ce-1,并在系统上启用Docker CE。 总之,docker-ce_18.06.3.ce-1_mips64el.deb是一个特定于mips64el架构的Docker CE安装包,可以用于在mips64el系统上安装和运行Docker容器。 ### 回答2: docker-ce_18.06.3.ce-1_mips64el.deb是一个Docker容器引擎的软件包。Docker是一个开源的容器化平台,通过将应用程序和其依赖项打包成一个独立的容器,可以实现快速、可靠和可移植的应用程序交付。 这个软件包中的CE代表Community Edition,即社区,是免费的本,通常适用于个人用户和小型企业。18.06.3.ce-1是软件的本号,表示这是Docker的第18.06.3.ce-1。mips64el是MIPS 64位架构的指令集,.deb则是Debian软件包的扩展名,适用于Debian及基于Debian的Linux发行。 安装这个软件包可以让用户在MIPS 64位架构的计算机上使用Docker容器引擎。在安装之后,用户可以使用Docker命令行工具创建、分享和运行容器。Docker的容器化技术可以提供更高效的资源利用率和更好的开发环境一致性,同时提供了快速部署和水平扩展的优势。 使用Docker可以加快软件开发和部署的速度,减少不同环境之间的兼容性问题,并提供了更好的应用程序隔离性和安全性。因此,对于需要部署和管理容器化应用程序的用户来说,安装docker-ce_18.06.3.ce-1_mips64el.deb软件包是非常有益的。 ### 回答3: docker-ce_18.06.3.ce-1_mips64el.deb是Docker社区本18.06.3的一个deb软件包,适用于MIPS64架构的Little Endian(mips64el)。Docker是一种开源的容器化平台,可以帮助用户快速构建、测试和部署应用程序。它通过将应用程序和其依赖项封装在一个独立的容器中,提供了一种轻量级、可移植和可扩展的解决方案。 这个软件包可以帮助用户在MIPS64架构的系统上安装和运行Docker环境。用户可以使用Docker命令在该系统上创建和管理容器。容器可以在不同的环境中移植,因为它们封装了应用程序的全部依赖项,包括操作系统和库文件。 使用Docker可以带来很多好处。首先,它使开发人员可以快速创建和销毁应用程序的实例,节省了开发和测试的时间。其次,容器化使得应用程序更加轻量级,能够更快地启动和停止。此外,容器还能够保持应用程序的环境整洁,避免了依赖冲突和本问题。 对于需要在MIPS64架构的系统上运行Docker的用户来说,docker-ce_18.06.3.ce-1_mips64el.deb是一个必备的软件包。通过安装该软件包,用户可以享受到Docker提供的高效、便捷和可移植的容器化解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值