第一步 :下載auto.js
手機瀏覽器搜索auto.js 下載 / 商店搜索下載(部分商店可能沒有,直接瀏覽器搜就行了)
第二步 : 拷貝 下方文件放進來就行 rt
代碼如下
var morningTime = "07:18";//自己運動能量生成時間
var startTime = "07:00";
var endTime = "08:50";
unlock();
sleep(2000);
mainEntrence();
//解鎖
function unlock () {
if (!device.isScreenOn()) {
//點亮屏幕
device.wakeUp();
//由於MIUI的解鎖有變速檢測,因此要點開時間以進入密碼界面
sleep(1000);
swipe(500, 0, 500, 1900, 2000);
click(100, 150);
//輸入屏幕解鎖密碼,其他密碼請自行修改
sleep(2000);
click(540, 1800);
sleep(500);
click(540, 1800);
sleep(500);
click(240, 1620);
sleep(500);
click(540, 1620);
sleep(500);
}
}
/**
* 獲取權限和設置參數
*/
function prepareThings () {
setScreenMetrics(device.width, device.height);//1080, 2340
//請求截圖
if (!requestScreenCapture()) {
toastLog("請求截圖失敗,腳本退出");
exit();
}
}
/**
* 設置按鍵監聽 當腳本執行時候按音量減 退出腳本
*/
function registEvent () {
//啓用按鍵監聽
events.observeKey();
//監聽音量上鍵按下
events.onKeyDown("KEYCODE_VOLUME_DOWN", function (event) {
toastLog("腳本手動退出");
exit();
});
}
/**
* 獲取截圖
*/
function getCaptureImg () {
//captureScreen("/storage/emulated/0/DCIM/Screenshots/1.png");
//sleep(500);
var img0 = captureScreen();
sleep(100);
if (img0 == null || typeof (img0) == "undifined") {
toastLog("截圖失敗,腳本退出");
exit();
} else {
return img0;
}
}
/**
* 從支付寶主頁進入螞蟻森林我的主頁
*/
function enterMyMainPage () {
//五次嘗試螞蟻森林入
var i = 0;
swipe(520, 1200, 520, 600, 500);
sleep(500);
swipe(520, 600, 520, 1200, 500);
while (!textEndsWith("螞蟻森林").exists() && !descEndsWith("螞蟻森林").exists() && i <= 5) {
sleep(1000);
i++;
}
clickByTextDesc("螞蟻森林", 0, true, "請把螞蟻森林入口添加到主頁,腳本退出");
//等待進入自己的主頁,10次嘗試
sleep(3000);
i = 0;
while (!textEndsWith("地圖").exists() && !descEndsWith("地圖").exists() && i <= 10) {
sleep(1000);
i++;
}
toastLog("第" + i + "次嘗試進入自己主頁");
if (i >= 10) {
toastLog("進入自己能量主頁失敗,腳本退出");
exit();
}
//收自己能量
//將能量球存在的區域都點一遍,間隔是能量球的半徑
for (var row = 640; row < 900; row += 100)
for (var col = 140; col < 800; col += 100) {
click(col, row);
sleep(50);
}
toastLog("自己能量收集完成");
sleep(100);
}
/**
* 進入排行榜
*/
function enterRank () {
toastLog("進入排行榜");
sleep(2000);
swipe(520, 1800, 520, 300, 500);
sleep(500);
swipe(520, 1800, 520, 300, 500);
toastLog("查看更多好友");
sleep(500);
clickByTextDesc("查看更多好友", 0, true, "程序未找到排行榜入口,腳本退出");
//等待排行榜主頁出現
var i = 0;
while (!textEndsWith("好友排行榜").exists() && !descEndsWith("好友排行榜").exists() && i <= 5) {
sleep(1000);
i++;
}
if (i >= 5) {
toastLog("進入好友排行榜失敗,腳本退出");
exit();
}
}
/**
* 從排行榜獲取可收集好友的點擊位置
*/
function getHasEnergyfriend (type) {
var img = getCaptureImg();
//getCaptureImg();
//var img = images.read("/storage/emulated/0/DCIM/Screenshots/1.png");
var p = null;
if (type == 1) {
// 區分倒計時和可收取能量的小手
p = images.findMultiColors(img, "#ffffff", [[0, -35, "#1da06d"], [0, 23, "#1da06d"]], {
region: [1074, 200, 1, 2000]
});
}
if (p != null) {
toastLog("找到好友");
return p;
} else {
toastLog("此頁沒有找到可收能量的好友");
return null;
}
}
/**
* 在排行榜頁面,循環查找可收集好友
* @returns {boolean}
*/
function enterOthers () {
var i = 1;
var ePoint = getHasEnergyfriend(1);
//確保當前操作是在排行榜界面
//不斷滑動,查找好友
while (ePoint == null) {
//如果到了收取自己能量的時間,先收取自己能量
if (myEnergyTime()) {
return false;
}
if (textEndsWith("好友排行榜").exists() || descEndsWith("好友排行榜").exists()) {
swipe(520, 1800, 520, 300, 500);
sleep(100);
ePoint = getHasEnergyfriend(1);
i++;
//如果檢測到結尾,同時也沒有可收能量的好友,那麼結束收取
if (textEndsWith("沒有更多了").exists() || descEndsWith("沒有更多了").exists()) {
if (ePoint == null) {
return false;
}
}
//如果連續32次都未檢測到可收集好友,無論如何停止查找(由於程序控制了在排行榜界面,且判斷了結束標記,基本已經不存在這種情況了)
if (i > 32) {
toastLog("程序可能出錯,連續" + i + "次未檢測到可收集好友");
exit();
}
}
}
//找到好友
//進入好友頁面,10次嘗試
click(ePoint.x, ePoint.y + 20);
sleep(3000);
var i = 0;
while (!textEndsWith("澆水").exists() && !descEndsWith("澆水").exists() && i <= 10) {
sleep(1000);
i++;
}
toastLog("第" + i + "次嘗試進入好友主頁");
if (i >= 10) {
toastLog("進入好友能量主頁失敗,腳本退出");
exit();
}
//收能量
for (var row = 560; row < 900; row += 100)
for (var col = 170; col < 900; col += 100) {
click(col, row);
sleep(50);
}
//等待返回好友排行榜
back();
var j = 0;
if (!textEndsWith("好友排行榜").exists() && !descEndsWith("好友排行榜").exists() && j <= 10) {
sleep(1000);
j++;
}
if (j >= 10) {
toastLog("返回排行榜失敗,腳本退出");
exit();
}
//返回排行榜成功,繼續
enterOthers();
}
function clickByTextDesc (energyType, paddingY, noFindExit, exceptionMsg) {
if (descEndsWith(energyType).exists()) {
descEndsWith(energyType).find().forEach(function (pos) {
var posb = pos.bounds();
click(posb.centerX(), posb.centerY() - paddingY);
//sleep(200);
});
} else if (textEndsWith(energyType).exists()) {
textEndsWith(energyType).find().forEach(function (pos) {
var posb = pos.bounds();
click(posb.centerX(), posb.centerY() - paddingY);
});
} else {
if (noFindExit != null && noFindExit) {
if (exceptionMsg != null) {
toastLog(exceptionMsg);
exit();
} else {
toastLog("程序當前所處狀態不合預期,腳本退出");
exit();
}
}
}
}
/**
* 結束後返回主頁面
*/
function whenComplete () {
toastLog("結束");
back();
sleep(1500);
back();
//exit();
}
function checkTime () {
var now = new Date();
var hour = now.getHours();
var minu = now.getMinutes();
var time_a = startTime.split(":");
var time_b = endTime.split(":");
var timea = 60 * Number(time_a[0]) + Number(time_a[1]);
var timeb = 60 * Number(time_b[0]) + Number(time_b[1]);
var time = 60 * hour + minu;
if (time >= timea && time <= timeb) {
//sleep(2000);
return true;
} else {
return false;
}
}
function myEnergyTime () {
var now = new Date();
var hour = now.getHours();
var minu = now.getMinutes();
var mytime = morningTime.split(":");
if (mytime[0] == hour && (mytime[1] == minu || mytime[1] == minu - 1)) {
return true;
} else {
return false;
}
}
function enterAntFarm () {
var i = 0;
swipe(520, 1200, 520, 600, 500);
sleep(500);
swipe(520, 600, 520, 1200, 500);
while (!textEndsWith("螞蟻莊園").exists() && !descEndsWith("螞蟻莊園").exists() && i <= 5) {
sleep(1000);
i++;
}
clickByTextDesc("螞蟻莊園", 0, true, "請把螞蟻莊園入口添加到主頁我的應用");
sleep(7000);
//captureScreen("/storage/emulated/0/DCIM/Screenshots/2_1.png");
//exit();
click(931, 2150);
sleep(2000);
click(340, 1420);
sleep(1000);
click(340, 1900); sleep(1000); click(230, 1600); sleep(1000);
click(930, 1900); sleep(1000); click(670, 1600); sleep(1000);
//captureScreen("/storage/emulated/0/DCIM/Screenshots/2_2.png");
back();
sleep(2000);
}
function openAlipay () {
//launchApp("Alipay");
launchApp("支付寶");
toastLog("等待支付寶啓動");
//sleep(3000);
var i = 0;
while (!textEndsWith("掃一掃").exists() && !descEndsWith("掃一掃").exists() && i <= 5) {
sleep(2000);
i++;
}
toastLog("第" + i + "次嘗試進入支付寶主頁");
if (i >= 5) {
toastLog("沒有找到支付寶首頁,程序退出");
exit();
}
}
//程序主入口
function mainEntrence () {
//前置操作
prepareThings();
//註冊音量下按下退出腳本監聽
registEvent();
do {
//打開支付寶
openAlipay();
//螞蟻莊園
// if (!checkTime()) {
// enterAntFarm();
// }
//進入螞蟻森林主頁,收集自己的能量
enterMyMainPage();
//進入排行榜
enterRank();
//進入好友主頁,收好友能量
enterOthers();
//結束後返回主頁面
whenComplete();
} while (checkTime());
exit();
}
需要注意的是我這個是 小米9的配置(1080, 2340) 不同的手機分辨率自行調整一下
第三步: 運行
這一步就不多講了,在更多裏面可以設置定時任務,大家自己摸索一下