亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > JS > 正文

Auto.js自動收取自己和好友螞蟻森林能量腳本

2024-05-06 16:45:04
字體:
來源:轉載
供稿:網友

用autoJS寫的能量收取腳本軟件.說一下達到的效果,把螞蟻森林按鈕要設置在常用應用中.先收取自己主頁的能量,然后進入排行榜收集好友的能量.中途可以按下音量下鍵提前結束腳本運行.改改測測基本上現在運行完美的了,充分衡量了網絡延遲和程序運行正常的平衡性.并且支持支持運動能量生成時間段執行,等待自己的運動能量生成收集.我是配合tasker設置的定時執行腳本,由Tasker喚醒設備教程鏈接,調用autojs插件執行任務.總之我覺得要想下載下來直接使用的話可能由于運行環境因素,你可能要調整一下.這個作為參考的價值還是稍微比較好的.

說明:

我的設備是6.0的,因為click及很多函數7.0以上才能用.根據搜索組件,利用UiObject組件的click點擊我測試在我這失效,改用了獲取到組件位置后,調用Tap(x,y).點擊、滑動的處理我用的是root的處理方式,沒root自行應該改為無障礙方式應該也可以話.目前只支持分辨率為1080,1920.如果分辨率不一樣,可能你還有做分辨率兼容性處理.或者等我后續處理.后邊會不定期更新新的功能

var myEnergeType=["線下支付","行走","共享單車","地鐵購票","網絡購票","網購火車票","生活繳費","ETC繳費","電子發票","綠色辦公","咸魚交易","預約掛號"];var morningTime="07:10";//自己運動能量生成時間function tLog(msg) {  toast(msg);  console.log(msg)}/** * 獲取權限和設置參數 */function prepareThings(){  setScreenMetrics(1080, 1920);  //請求截圖  if(!requestScreenCapture()){    tLog("請求截圖失敗");    exit();  }}/** * 設置按鍵監聽 當腳本執行時候按音量減 退出腳本 */function registEvent() {  //啟用按鍵監聽  events.observeKey();  //監聽音量上鍵按下  events.onKeyDown("volume_down", function(event){    tLog("腳本手動退出");    exit();  });}/** * 獲取截圖 */function getCaptureImg(){  var img0 = captureScreen();  if(img0==null || typeof(img0)=="undifined"){    tLog("截圖失敗,退出腳本");    exit();  }else{    return img0;  }}/** * 默認程序出錯提示操作 */function defaultException() {  tLog("程序當前所處狀態不合預期,腳本退出");  exit();}/** * 等待加載收集能量頁面,采用未找到指定組件阻塞的方式,等待頁面加載完成 */function waitPage(type){  // 等待進入自己的能量主頁  if(type==0){    desc("消息").findOne();  }  // 等待進入他人的能量主頁  else if(type==1){    desc("澆水").findOne();  }  //再次容錯處理  sleep(3000);}/** * 從支付寶主頁進入螞蟻森林我的主頁 */function enterMyMainPage(){  launchApp("支付寶");  tLog("等待支付寶啟動");  var i=0;  sleep(1000);  //五次嘗試螞蟻森林入口  while (!textEndsWith("螞蟻森林").exists() && i<=5){    sleep(2000);    i++;  }  clickByText("螞蟻森林",true,"請把螞蟻森林入口添加到主頁我的應用");  //等待進入自己的主頁  waitPage(0);}/** * 進入排行榜 */function enterRank(){  Swipe(520,1860,520,100);  sleep(2500);  clickByDesc("查看更多好友",0,true,"程序未找到排行榜入口,腳本退出");  var i=0;  //等待排行榜主頁出現  sleep(2000);  while (!textEndsWith("好友排行榜").exists() && i<=5){    sleep(2000);    i++;  }  if(i>=5){    defaultException();  }}/** * 從排行榜獲取可收集好有的點擊位置 * @returns {*} */function getHasEnergyfriend(type) {  var img = getCaptureImg();  var p=null;  if(type==1){    //411寬度 #a2cbb4 1032,1820 #30bf6c 1032,1787  -33   #52ca84 1032,1832  12   #ffffff 1032,1835  15    p = images.findMultiColors(img, "#a2cbb4",[[0, -33, "#30bf6c"], [0,12, "#52ca84"],[0,15, "#ffffff"]], {      region: [1032, 180, 1, 1700]    });  }else if(type==2){    // 480寬度  基準點1775,832  #30bf6  -2,23 #ffffff  -5,16 #ffffff  0,-12 #30bf6c  0,44  #30bf6c    p = images.findMultiColors(img, "#30bf6c",[[-2, 23, "#ffffff"], [-5,16, "#ffffff"],[0,-12, "#30bf6c"],[0,44, "#30bf6c"]], {      region: [1069, 180, 7, 1680]    });  }  if(p!=null){    return p;  }else {    return null;  }}/** * 判斷是否好有排行榜已經結束 * @returns {boolean} */function isRankEnd() {  if(descEndsWith("沒有更多了").exists()){    var b=descEndsWith("沒有更多了").findOne();    var bs=b.bounds();    if(bs.centerY()<1920){      return true;    }  }  return false;}/** * 在排行榜頁面,循環查找可收集好友 * @returns {boolean} */function enterOthers(){  tLog("開始檢查排行榜");  var i=1;  var ePoint=getHasEnergyfriend(1);  //確保當前操作是在排行榜界面  while(ePoint==null && textEndsWith("好友排行榜").exists()){    //滑動排行榜 root方式的的點擊調用.如無root權限,7.0及其以上可采用無障礙模式的相關函數    Swipe(520,1800,520,300,1000);    sleep(3000);    ePoint=getHasEnergyfriend(1);    i++;    //檢測是否排行榜結束了    if(isRankEnd()){      return false;    }    //如果連續32次都未檢測到可收集好友,無論如何停止查找(由于程序控制了在排行榜界面,且判斷了結束標記,基本已經不存在這種情況了)    else if(i>32){      tLog("程序可能出錯,連續"+i+"次未檢測到可收集好友");      exit();    }  }  if(ePoint!=null){    //點擊位置相對找圖后的修正    Tap(ePoint.x,ePoint.y+20);    waitPage(1);    clickByDesc("可收取",80);    //進去收集完后,遞歸調用enterOthers    back();    sleep(2000);    var j=0;    //等待返回好有排行榜    if(!textEndsWith("好友排行榜").exists() && j<=5){      sleep(2000);      j++;    }    if(j>=5){      defaultException();    }    enterOthers();  }else{    defaultException();  }}/** * 根據描述值 點擊 * @param energyType * @param noFindExit */function clickByDesc(energyType,paddingY,noFindExit,exceptionMsg){  if(descEndsWith(energyType).exists()){    descEndsWith(energyType).find().forEach(function(pos){      var posb=pos.bounds();      Tap(posb.centerX(),posb.centerY()-paddingY);      sleep(2000);    });  }else{    if(noFindExit!=null && noFindExit){      if(exceptionMsg !=null){        tLog(exceptionMsg);        exit();      }else{        defaultException();      }    }  }}/** * 根據text值 點擊 * @param energyType * @param noFindExit */function clickByText(energyType,noFindExit,exceptionMsg){  if(textEndsWith(energyType).exists()){    textEndsWith(energyType).find().forEach(function(pos){      var posb=pos.bounds();      Tap(posb.centerX(),posb.centerY()-60);    });  }else{    if(noFindExit!=null && noFindExit){      if(exceptionMsg !=null){        tLog(exceptionMsg);        exit();      }else{        defaultException();      }    }  }}/** * 遍歷能量類型,收集自己的能量 */function collectionMyEnergy(){  var energyRegex=generateCollectionType();  var checkInMorning=false;  //如果是早上7點10分左右的話.等待主頁能量出現 每隔一秒檢測一次  while(isMorningTime() && descEndsWith("行走").exists()){    if (!checkInMorning){      tLog("等待運動能量生成中...");      checkInMorning=true;    }    descEndsWith("行走").find().forEach(function(pos){      var posb=pos.bounds();      Tap(posb.centerX(),posb.centerY()-80);      sleep(1500);    });  }  if(checkInMorning){    tLog("運動能量收集完成");  }  if(descMatches(energyRegex).exists()){    if(!checkInMorning){      tLog("防止小樹的提示遮擋,等待中");      sleep(7000);    }    descMatches(energyRegex).find().forEach(function(pos){      var posb=pos.bounds();      Tap(posb.centerX(),posb.centerY()-80);      sleep(2000);    });  }}/** * 結束后返回主頁面 */function whenComplete() {  tLog("結束");  back();  sleep(1500);  back();  exit();}/** * 根據能量類型數組生成我的能量類型正則查找字符串 * @returns {string} */function generateCollectionType() {  var regex="/";  myEnergeType.forEach(function (t,num) {    if(num==0){      regex+="(//s*"+t+"$)";    }else{      regex+="|(//s*"+t+"$)";    }  });  regex+="/";  return regex;}function isMorningTime() {  var now =new Date();  var hour=now.getHours();  var minu=now.getMinutes();  var targetTime=morningTime.split(":");  if(Number(targetTime[0])==hour && Math.abs(Number(targetTime[1])-minu)<=2){    return true;  }else{    return false;  }}//程序主入口function mainEntrence(){  //前置操作  prepareThings();  //注冊音量下按下退出腳本監聽  registEvent();  //從主頁進入螞蟻森林主頁  enterMyMainPage();  //收集自己的能量  collectionMyEnergy();  //進入排行榜  enterRank();  //在排行榜檢測是否有好有的能量可以收集  enterOthers();  //結束后返回主頁面  whenComplete();}mainEntrence();

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情视频三区| 亚洲一区二区免费在线| 欧美午夜无遮挡| 亚洲免费视频观看| 日韩在线视频网站| 大荫蒂欧美视频另类xxxx| 亚洲国产另类 国产精品国产免费| 91日本视频在线| 日韩视频在线一区| 中文字幕日韩精品在线观看| 久久人人爽亚洲精品天堂| 国产中文日韩欧美| 国模吧一区二区三区| 国产视频久久久久| 久久99视频精品| 亚洲精品资源美女情侣酒店| 欧美日韩国产在线看| 日韩av理论片| 国产午夜精品美女视频明星a级| 亚洲欧美日韩中文视频| 日韩精品小视频| 欧美日韩在线一区| 国产在线拍偷自揄拍精品| 九九九热精品免费视频观看网站| 91人成网站www| 欧美贵妇videos办公室| 亚洲精品国精品久久99热一| 久久九九有精品国产23| 国产69精品久久久| 国产va免费精品高清在线观看| 91久久久亚洲精品| 性欧美亚洲xxxx乳在线观看| 国产精品吴梦梦| 欧美自拍视频在线| 亚洲国产婷婷香蕉久久久久久| 国内免费久久久久久久久久久| 欧亚精品中文字幕| 亚洲图片欧洲图片av| 日韩av毛片网| 欧美一区二粉嫩精品国产一线天| 久久久国产一区二区| 91精品视频大全| 国产欧美在线视频| 成人在线国产精品| 一区二区亚洲精品国产| 欧美亚洲一区在线| 好吊成人免视频| 欧美激情第一页xxx| 成人黄色在线观看| 亚洲欧洲日产国产网站| 欧美老妇交乱视频| 亚洲色图色老头| 国产欧美精品日韩精品| 黄色精品在线看| 欧美性视频在线| 国产精品久久久久9999| 国产精品h在线观看| 欧美大片免费观看| 国产精品白嫩美女在线观看| 国产伊人精品在线| 中文字幕欧美专区| 久久久91精品| 日韩中文字幕国产| 久久精品国产69国产精品亚洲| 日韩电影视频免费| 精品少妇一区二区30p| 久久免费视频在线观看| 日本久久久久久久久| 成人黄色av免费在线观看| 国产精品流白浆视频| 成人性生交大片免费看小说| 欧美日韩在线另类| 性欧美暴力猛交69hd| 亚洲成人黄色网| 国产综合福利在线| 色樱桃影院亚洲精品影院| 国产精品网红福利| 国产精品国产三级国产aⅴ浪潮| 欧美精品videossex88| 5252色成人免费视频| 18性欧美xxxⅹ性满足| 久久久在线视频| 国产欧美日韩中文字幕在线| 久久视频这里只有精品| 操人视频在线观看欧美| 中文字幕日韩av综合精品| 亚洲午夜国产成人av电影男同| 亚洲午夜色婷婷在线| 欧美精品videos另类日本| 日韩在线观看免费网站| 亚洲欧美另类中文字幕| 国产视频一区在线| 日韩av在线资源| 国产成人avxxxxx在线看| 久久亚洲成人精品| 欧美成人午夜激情在线| 欧美裸体男粗大视频在线观看| 77777少妇光屁股久久一区| 夜夜躁日日躁狠狠久久88av| 成人xxxxx| 亚洲国产成人精品久久久国产成人一区| 亚洲视频视频在线| 欧美日韩国产丝袜另类| 98精品国产自产在线观看| 国产精品极品在线| 亚洲最新视频在线| 国产一区二区三区四区福利| 高潮白浆女日韩av免费看| 欧美性猛交xxxx乱大交蜜桃| 国产精品久久久久久婷婷天堂| 国产国语videosex另类| 欧美成人激情视频| 国产不卡av在线| 亚洲精品国产综合久久| 精品日韩中文字幕| 欧美丝袜一区二区三区| 精品人伦一区二区三区蜜桃免费| 日韩精品在线播放| 久久久久久久亚洲精品| 中文字幕亚洲一区二区三区| 欧美老妇交乱视频| 日本一区二区在线播放| 欧美日韩一区二区精品| 亚洲高清免费观看高清完整版| 国产日产久久高清欧美一区| 伊人久久男人天堂| 影音先锋欧美精品| 日韩精品极品在线观看| 久久久久久噜噜噜久久久精品| 久久人人爽人人爽爽久久| 久久久久免费精品国产| 国产精品揄拍500视频| 久久影视电视剧免费网站| 海角国产乱辈乱精品视频| 亚洲精品电影网| 久久这里只有精品99| 欧美激情视频播放| 91精品免费久久久久久久久| 亚洲欧美日韩中文视频| 91久久嫩草影院一区二区| 日韩视频亚洲视频| 色综合天天狠天天透天天伊人| 日韩欧美国产免费播放| 在线视频中文亚洲| 亚洲男人天堂手机在线| 亚洲综合在线小说| 国产精品天天狠天天看| 日本韩国欧美精品大片卡二| 91亚洲精品久久久久久久久久久久| 久久99国产精品自在自在app| 欧美日韩黄色大片| 亚洲第一视频网站| 国产精品视频免费观看www| 欧美大片第1页| 亚洲激情电影中文字幕| 一本色道久久88综合日韩精品| 亚洲精品国精品久久99热一| 日韩在线观看免费全| 国产一区二区三区精品久久久| 久久在线精品视频| 91国产精品视频在线| 欧美日韩成人在线观看| 日韩美女av在线免费观看| 成人在线激情视频|