请注意,本文编写于 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 条评论
模拟器能用布
需要安卓7.0以上,很多反馈说6.0都没法用
你可以试试52破解发的那个:https://www.52pojie.cn/thread-1169111-1-1.html
好的谢谢(☆ω☆)
定位不到返回按钮。。。
44行改成 if (!desc("返回").exists()) {
49行改成 desc("返回").click();
试试?我真的没有这个问题。
蛋糕旁边有个金色小精灵,点几下就可以涨10金币左右 ,然后精灵消失等5秒又出现 又可以点 无限次数(我试了几百个)????
for (;;) {
if (className("android.view.View").idContains("goldElfin").exists()) {
var gold = className("android.view.View").idContains("goldElfin").findOne();
for (var i = 0; i < 7; i++) {
gold.click();
sleep(random(700, 1200));
}
}
sleep(2000);
}
专门点那个精灵的脚本,我感觉一直这么点会被风控,就没加这个功能。
好像是哈 有可能特意预留出来检测的OωO
定位不到左上角模拟返回之后就提示模拟浏览任务全部完成(大概)了可不可以优化一下模拟返回之后跳转到刚开始运行
荣耀v8,按音量+脚本也不停……
Autojs->设置->音量上键停止所有脚本 打开就行。
还被提示浏览太快了,返回主页了
我是emui8.0
为什么提示检测出病毒风险,riskware/Android.qqshare.f
不清楚,手动允许就行了
浏览任务结束没有返回任务界面,就自动停在那里了。(随机划屏结束后动作就停在那里没动了)
我的也是这样
我真的没法复现,我3台设备6个账号都可以一遍过
定位不到左上角,模拟返回了
定位不到左上角,模拟返回了
停在那里模拟点击左上角的返回键这一步出不来(浏览21个商品这里)
可不可以加一个点击小精灵的呀,那个也是加金币的
for (;;) {
if (className("android.view.View").idContains("goldElfin").exists()) {
var gold = className("android.view.View").idContains("goldElfin").findOne();
for (var i = 0; i < 7; i++) {
gold.click();
sleep(random(700, 1200));
}
}
sleep(2000);
}
用不了吗?
这个只是自动点那个得金币的精灵
我知道啊!我单独复制代码 然后没效果啊。需要加上上面的吗?
魅族16p返回出错
18:22:47.885/E: TypeError: Cannot call method "parent" of undefined (#100)
at script.advview(:100)
at script(:25)
大佬,请问,为什么代码运行到浏览商品的任务就提示这样
看出错是没有获取到价格标签,是因为加载缓慢吗?
还是提示安卓7.0以下版本不能使用
有安卓7.0以下能用的不
应该是可以用的,新版脚本没有使用坐标操作的函数。
有时候网卡,它点进去就计时了,但页面没有计时,就导致不能正常浏览了
脚本会重试的,如果一直有任务因为网络问题需要等久一点,可以把84行className("android.view.View").textStartsWith("恭喜完成").findOne(5000); 最后的5000改大一点,单位是毫秒,改成10000估计就行了
返回不了
要不把rslideR(1); 里面的1改成2试试?
手机型号是什么?系统?
荣耀 EMUI
稍微修改了下advback(),要不再试试?
是不是没有购物车那个功能
支持,如果要关掉的话把 var adv_mode = true; 改成 var adv_mode = false;
好的谢谢
大佬活动链接呢,弄不到活动页面链接
返回的时候会报错呀~ 大佬解决一下OωO
能提供一下日志吗?日志在脚本编辑器,右上角,日志 里面
好了OωO
博主,className("android.widget.ImageView").desc("返回").click(); 店铺,用autojs查到”浏览8s店铺页面“返回按钮的desc为空了
我是模拟了一个向上划的动作,然后那个返回按钮就显示了,就可以返回了
我知道, 我的意思是 desc("返回") 现在店铺页面的这个值为空了 就返回不了,要改一下了
你好大佬 这个您这个脚本我咋下载呀,一复制就复制出去了,不是您发那个js那个,然后在福利吧下的您那个脚本一签到完成,只进入一个任务就卡主了
已更新,碎觉
更新马上发布,正在测试,应该没有大问题了
Auto,js:错误: ReferenceError: "view"
is not defined. ( #20)
跳转页面后就弹出,脚本就停止了
感谢反馈,等任务刷新了我再调试一下
夜神模拟器运行不支持。 都是刚官网下的最新版本
试试雷电模拟器?52破解的那个挺好用的:https://www.52pojie.cn/thread-1169111-1-1.html