请注意,本文编写于 1604 天前,最后修改于 1418 天前,其中某些信息可能已经过时。
x> 本脚本已过期,仅作存档
前言
本脚本仅供学习交流之用,使用者如何使用与本文作者无关。
AutoJS下载 & 教程
脚本【控件定位版】
脚本
//遇到问题请在https://chrxw.com留言
//Ver:2.3 By Chr_([email protected])
//增强模式,支持自动加购任务,如果不需要请把true改成false
var adv_mode = true;
auto.waitFor();
toast('\n脚本开始运行\n请切换到任务页');
className("android.view.View").text("做任务领金币").waitFor();
if (!className("android.view.View").textContains("任务每日0点刷新").exists()) {
className("android.view.View").text("做任务领金币").findOne().parent().click();
}
toast("\n即将开始工作\n中途需退出请按【音量+】终止");
sleep(2000);
var i = 0;
for (;;) {
var btn = text("去完成").findOnce(i);
if (btn != null) {
var task = btn.parent().parent().parent();
var txt = task.child(0).child(1).text();
if (txt.search("8秒") != -1) {
btn.click();
view();
i = 0;
} else if (txt.search("88") != -1) {
btn.click();
view();
i = 0;
} else if (txt.search("浏览可得") != -1) {
btn.click();
view2();
i = 0;
} else if (adv_mode & txt.search("5个") != -1) {
btn.click();
advview();
i = 0;
} else {
i++;
}
} else {
toast("\n脚本运行完毕\n模拟浏览任务全部完成(大概)");
exit();
}
}
//随机延时
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(3);
if (className("android.view.View").textContains("做任务领金币").exists()) {
return;
}
}
toast("定位不到返回按钮,模拟返回键");
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 view() {
rsleep(3);
rslide(10);
className("android.view.View").textStartsWith("恭喜完成").findOne(5000);
rslideR(1);
rsleep(3);
advback();
}
//模拟浏览(浏览会场任务)
function view2() {
rsleep(1);
for (var i = 0; i < 4; i++) {
back();
rsleep(3);
if (className("android.view.View").textContains("做任务领金币").exists()) {
return;
}
}
}
//高级浏览(浏览商品、加购任务)
function advview() {
rsleep(3);
var add_cart = true;
var count = 4;
if (className("android.view.View").textContains("浏览以下5个商品").exists()) {
add_cart = false;
count = 3;
}
toast(add_cart);
for (var i = 0; i < 5; i++) {
var prices = className("android.view.View").textMatches("^¥[0-9]+\.[0-9][0-9]").find();
var good = prices[i].parent().parent();
if (good.childCount() > count) {
continue;
}
if (!add_cart) {
//good.click();
rect = prices[i].bounds();
click(rect.centerX(), rect.centerY());
rsleep(2);
rslide(2);
className("android.widget.ImageView").desc("返回").click();
} else {
good.child(3).click();
rslide(1);
}
rsleep(2);
}
advback();
rsleep(3);
}
说明
- 修复了浏览商品函数失效的问题。
- 支持了一个新的任务。
- 稳定性应该提升不少,测试了两个号除了遇到了一次网络问题卡住之外没有其他问题。
- 加了个返回的函数,应该不会出现跳到京东主页的情况了。
- 还有一个浏览任务有待支持(但是没有浏览时间要求,手动完成也不麻烦)
- 推荐使用方式是先打开活动页,然后运行脚本,切换回京东就能自动运行了。
- 需要中断运行请按
音量+
。 - 当前已支持加购物车和浏览商品任务。
脚本【旧版截图识色版】(仅存档)
点击展开
脚本
"auto";
toast('开始运行,请打开京东任务页')
images.requestScreenCapture()
ys = new Array(760, 1160, 1350, 1550, 1730)
x = 970
sleep(500)
on = -49108
off = -7570829
for (;;) {
y = ison()
if (y > 0) {
click(x, y)
sleep(500)
for (i = 15; i; i--) {
x1 = random(200, 800)
y1 = random(1200, 1900)
x2 = random(200, 800)
y2 = random(1000, 1200)
swipe(x1, y1, x2, y2, 300)
sleep(1100)
}
back()
}
sleep(3000)
}
function ison() {
j = ys.length
img = images.captureScreen()
for (i = 0; i < j; i++) {
if (Math.abs(img.pixel(x, ys[i]) - on) < 50) {
return (ys[i])
}
}
return (0)
}
说明
- 脚本的原理是每1秒截一次屏,判断(x,ys)的位置是不是红色,是的话会模拟浏览动作。
- 浏览商品和加购物车任务只能手动完成,使用脚本会有问题。
- 此脚本只适配了Mix2S,其他屏幕分辨率请自行修改坐标:
- 在
开发者模式
里打开指针位置
就能知道点击位置的坐标了。
- 如图,在每个按钮的右侧背景上取点(没必要很精确,注意避开按钮文字),坐标为(x,y1),(x,y2),(x,y3),……,记录x和y1,y2,y3,……的值,第一个分享按钮没必要记录。
- 脚本第5行
x=960
,把960改成你测得的x的值。 - 脚本第7行
ys=new Array(950,1155,1350,1540,1715)
,把里面的数字改成y1,y2,y3,……的值,
注意要用半角逗号分隔,不然会报错。例如你量出来有6个按钮,坐标为(980,950)(980,1150)(980,1350),(980,1530),(980,1710),(980,1890)
修改后的脚本:
第5行x=980
第7行ys=new Array(950,1150,1350,1530, 1710,1890)
- 在
在我的手机上正常运行不代表能在所有设备上正常运行,如果遇到问题欢迎在下方留言。
可以的话请带上出问题时候的截图发到我的邮箱([email protected])里,感谢理解与支持。
本文链接:https://blog.chrxw.com/archives/2020/05/21/1226.html
转载请保留本文链接,谢谢
182 条评论
滑动的时候有时候就把菜单调出来了。。
不行啊
PC版 京东618叠蛋糕活动 感觉更好用
今天多了一个战队拉人任务 脚本就不灵了
我自己测试没有这个问题……
大佬是不是又更新了 |´・ω・)ノ
前天更新的
现在脚本老是网络延迟,八秒刚好的话,会提前退出,就失效了任务,求改一下,新手不懂
92行最后,5000改大点,单位是毫秒
大佬,提示missing ) after the arguement list?是什么错误?原版没有报错
括号不匹配,只有(,没有)
大佬御兽有没有呀 ̄﹃ ̄
浏览任务一直提示定位不到返回按钮
加购的地方报错autojs flase
感谢博主的分享|´・ω・)ノ
120行 parent报错了,求助
我也是这个问题
用模拟器浏览商品到两个的时候就返回了∠( ᐛ 」∠)_
不能用啦
07:46:08.767/ E: TypeError: Cannot call method" parent" of undefined(#94) at script. advview(:94) at script(:25)
已更新
敬业的博主|´・ω・)ノ
大佬任务更新了 不能自动了~~
已更新
大大会出tb的列车脚本吗
已经出了
“去完成”找不到怎么解
还是会回到主页哦
牛逼就完事了
求个京东金融的脚本
你好,请问下面这句话无法获取到值,是为什么呢?
var txt = task.child(0).child(1).text();
你可以
toast(btn.text());
toast(task.text());
然后去日志看一下是到底是哪一级没有获取到
Unexpected end of file (#76) 是怎么回事呀
不懂,可能你没有复制全,输入法自带的剪贴板有的时候会截断的,手动粘贴试试?