Auto.js-淘宝欢乐造红包脚本
本帖最后由 whisky7 于 2020-12-3 23:39 编辑Autojs小白不请自来,不习惯注释,请见谅!以下为淘宝欢乐造红包的脚本,需下载Autojs使用,源码借鉴了某大佬的随机睡眠函数和曲线滑动函数,其它均为原创,最好下载老版本的淘宝防止检测,新版本目前暂时也还未被检测到,代码如下:
更新:1.修正打卡失败问题;2.增加视频浏览睡眠时间,以避免网络或手机卡顿造成的浏览未完成问题。
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;
a.click();
toastLog(/\d+:\d+:\d+/.exec(Date())+' 正在完成...');
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())+' 去完成任务成功!获得欢乐币:'+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 = ;
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 = ;
xxy.push(xxyy);
}
gesture.apply(null, xxy);
};
function bezierCurves(cp, t) {
cx = 3.0 * (cp.x - cp.x);
bx = 3.0 * (cp.x - cp.x) - cx;
ax = cp.x - cp.x - cx - bx;
cy = 3.0 * (cp.y - cp.y);
by = 3.0 * (cp.y - cp.y) - cy;
ay = cp.y - cp.y - cy - by;
tSquared = t * t;
tCubed = tSquared * t;
result = {
"x": 0,
"y": 0
};
result.x = (ax * tCubed) + (bx * tSquared) + (cx * t) + cp.x;
result.y = (ay * tCubed) + (by * tSquared) + (cy * t) + cp.y;
return result;
};
function doubleTwelve(){
COIN=0;
while(true){
try{
toastLog(/\d+:\d+:\d+/.exec(Date())+' 请自行前往欢乐造红包任务中心并打开任务栏...');
text("累计任务奖励").waitFor();
toastLog(/\d+:\d+:\d+/.exec(Date())+" 正在执行任务...");
var signUp=text('去打卡').findOne(2000);
if(signUp){
signUp.click();
toastLog(/\d+:\d+:\d+/.exec(Date())+' 签到成功!');
}
accomplishment();
var bonus=text("立即领取").findOne(2000);
while(bonus){
bonus.click();
log(/\d+:\d+:\d+/.exec(Date())+' 领取奖励成功!');
randomSleep(1000);
var bonus=text("立即领取").findOne(2000);
}
toastLog(/\d+:\d+:\d+/.exec(Date())+' 欢乐造红包任务完成!获得总欢乐币:'+COIN);
break;
//music('/storage/emulated/0/脚本/success.wav');
}
catch(err){
log(err.message);
//music('/storage/emulated/0/脚本/failure.mp3')
}
}
}
doubleTwelve();
希望有什么问题可以提出来,我才能一边改进一边学习。 坏人。丶 发表于 2020-12-2 14:07
你可以编辑下代码,文本框有一个代码的插件,放入会更好看点。。
谢谢指正,第一次发布不太懂,现在改了,不过审核有点慢就是了 本帖最后由 kosaku 于 2020-12-2 14:57 编辑
节约时间就是节约生命,感恩楼主的分享~~!!
实在抱歉今天的份额已经打赏了另外一个大佬,明日一定再来支持~! 你可以编辑下代码,文本框有一个代码的插件,放入会更好看点。。 谢谢大佬分享 正需要这玩意
感谢大佬 又可以节省一点步骤了 谢谢大佬!终于可以轻松一点了 正好需要这个,收藏下。 很强,又可以解放双手了
感谢分享
页:
[1]
2