1. 程式人生 > 實用技巧 >2020雙十一自動刷淘寶&支付寶喵幣Auto.js指令碼(安卓適用)

2020雙十一自動刷淘寶&支付寶喵幣Auto.js指令碼(安卓適用)

參考https://www.52pojie.cn/thread-1287906-1-1.html修改的程式,豐富了很多功能

開宗明義

  • 平臺:Android
  • 功能:雙十一自動刷淘寶和支付寶的喵幣
  • 特色:
    • 淘寶的喵幣刷完後自動刷支付寶的喵幣
    • 增加了狂扁支付寶活動介面的貓,獲得蚊子腿喵幣的功能
    • 增加了程式執行是按下音量下鍵退出的功能,提供給想要主動退出的情況(尤其是狂扁貓貓的階段)。(也可以在Auto.js中的管理欄目下找到正在執行的指令碼)
    • 程式碼最開始提供了自定義的內容,可以根據自己的螢幕大小進行修改適配
  • 依賴:Auto.js
  • 注意:指令碼開啟前需要保證淘寶和支付寶未開啟,或者處於淘寶和支付寶均處於首頁,否則之後都會錯誤操作

指令碼程式碼如下

  1 /*--------根據個人情況修改以下內容----------*/
  2 //長等待時間常量,用於應用啟動、廣告等較長時間等待,如果網路不好或手機卡請增加此數值,預設6秒
  3 var LONG_TIME = 6000;
  4 //短等待時間常量,用於例如返回等每步操作後的等待,如果手機卡請增加此數值
  5 var SHORT_TIME = 1500;
  6 //淘寶點選“瘋搶紅包”進入活動頁的點選座標位置
  7 var TAOBAO_X = 600;
  8 var TAOBAO_Y = 1235;
  9 //支付寶點選“馬上領取”進入活動頁的點選座標位置
 10 //由於按鈕水平居中,所以只需要修改縱座標位置
11 var ZHIFUBAO_Y = 750; 12 //進入活動頁後,點選貓旁邊錢袋子的點選座標位置 13 var PURSE_X = 900; 14 var PURSE_Y = 1320; 15 //進入淘寶活動頁後,點選右下角“賺喵幣”的點選座標位置 16 //支付寶的“賺喵幣”位置比淘寶的靠上100畫素左右,無需手動設定 17 var ZHUAN_X = 930; 18 var ZHUAN_Y = 2070; 19 //是否開啟點(扁)貓貓獲取蚊子腿喵幣功能 20 var TAP_FLAG = true; 21 //點選貓的間隔時間,預設是100毫秒 22 var TAP_INTERVAL = 100;
23 //點選貓的持續次數,預設是300次 24 var TAP_TIMES = 300; 25 /*--------根據個人情況修改以上內容----------*/ 26 auto.waitFor(); 27 var height = device.height; 28 var width = device.width; 29 toast("\n裝置寬" + width + "\n" + "裝置高" + height + "\n" + "手機型號" + device.model + "\n安卓版本" + device.release) 30 setScreenMetrics(width, height); 31 32 //啟用按鍵監聽,按下音量下鍵指令碼結束 33 killjs(); 34 35 //開始刷喵幣 36 lingQuZhifubao(); 37 38 //啟用按鍵監聽,按下音量下鍵指令碼結束 39 function killjs(){ 40 threads.start(function(){//在子程序中執行監聽事件 41 events.observeKey(); 42 events.on("key", function(code, event){ 43 var keyCodeStr = event.keyCodeToString(code); 44 console.log(code); 45 console.log(keyCodeStr); 46 if(keyCodeStr=="KEYCODE_VOLUME_DOWN"){ 47 toast("檢測到音量下鍵,程式已結束。"); 48 exit(); 49 } 50 }); 51 }); 52 } 53 54 function lingQuTaobao() { 55 var appRun = currentActivity(); 56 if(appRun != 'com.taobao.taobao') { 57 launch("com.taobao.taobao"); 58 toast("正在開啟淘寶..."); 59 waitForActivity("com.taobao.tao.TBMainActivity"); 60 } 61 sleep(LONG_TIME); 62 //點選“瘋搶紅包”進入活動頁 63 click(TAOBAO_X, TAOBAO_Y); 64 sleep(LONG_TIME); 65 //點選貓旁邊的錢袋子 66 click(PURSE_X, PURSE_Y); 67 toast("領金幣"); 68 sleep(SHORT_TIME*2); 69 if (text("去喂貓 賺更多喵幣").exists()) { 70 text("去喂貓 賺更多喵幣").findOne().click(); 71 } 72 sleep(SHORT_TIME); 73 //點選右下角“賺喵幣” 74 click(ZHUAN_X, ZHUAN_Y); 75 toast("賺喵幣"); 76 sleep(SHORT_TIME); 77 if (text("簽到").exists()) { 78 text("簽到").findOne().click(); 79 sleep(1600); 80 toast("簽到成功"); 81 } 82 sleep(SHORT_TIME); 83 while (text("去瀏覽").exists()) { 84 toast("存在去瀏覽"); 85 text("去瀏覽").findOne().click(); 86 sleep(1500); 87 swipe(width / 2, height - 500, width / 2, 0, 500); 88 sleep(2500); 89 swipe(width / 2, height - 500, width / 2, 0, 500); 90 sleep(10000); 91 swipe(width / 2, height - 500, width / 2, 0, 500); 92 sleep(8000); 93 back(); 94 sleep(1600); 95 } 96 if (textContains("邀請好友一起擼貓").exists()) { 97 //任務中有邀請任務,無法自動完成,跳過這個任務 98 toast("有邀請任務"); 99 while (text("去完成").exists()) { 100 //尋找並點選第二個“去完成” 101 var tmp = text("去完成").findOnce(1); 102 if (tmp == null){ 103 //找不到第二個任務了,結束迴圈 104 break; 105 } 106 toast("存在新任務"); 107 tmp.click(); 108 sleep(2500); 109 swipe(width / 2, height - 600, width / 2, 0, 500); 110 sleep(3500); 111 swipe(width / 2, height - 600, width / 2, 0, 500); 112 sleep(10000); 113 swipe(width / 2, height - 600, width / 2, 0, 500); 114 sleep(9000); 115 back(); 116 sleep(1600); 117 } 118 } else { 119 toast("無邀請任務"); 120 while (text("去完成").exists()) { 121 toast("存在新任務"); 122 text("去完成").findOne().click(); 123 sleep(2500); 124 swipe(width / 2, height - 600, width / 2, 0, 500); 125 sleep(3500); 126 swipe(width / 2, height - 600, width / 2, 0, 500); 127 sleep(10000); 128 swipe(width / 2, height - 600, width / 2, 0, 500); 129 sleep(9000); 130 back(); 131 sleep(1600); 132 } 133 } 134 while (text("去搜索").exists()) { 135 toast("存在去搜索"); 136 text("去搜索").findOne().click(); 137 sleep(1500); 138 swipe(width / 2, height - 500, width / 2, 0, 500); 139 sleep(2500); 140 swipe(width / 2, height - 500, width / 2, 0, 500); 141 sleep(10000); 142 swipe(width / 2, height - 500, width / 2, 0, 500); 143 sleep(8000); 144 back(); 145 sleep(1600); 146 } 147 toast("領取結束"); 148 if (TAP_FLAG) { 149 back(); 150 sleep(SHORT_TIME); 151 //點選“瘋搶紅包”進入活動頁 152 click(TAOBAO_X, TAOBAO_Y); 153 sleep(SHORT_TIME); 154 //開始扁貓功能 155 taptap(); 156 } 157 home(); 158 sleep(SHORT_TIME); 159 //刷支付寶喵幣 160 toast("指令碼結束^_^"); 161 } 162 163 function lingQuZhifubao() { 164 var appRun = currentActivity(); 165 if(appRun != 'com.eg.android.AlipayGphone') { 166 launch("com.eg.android.AlipayGphone"); 167 toast("正在開啟支付寶..."); 168 waitForActivity("com.eg.android.AlipayGphone.AlipayLogin"); 169 } 170 sleep(LONG_TIME); 171 //點選“馬上領取”進入活動頁 172 click(parseInt(width/2), ZHIFUBAO_Y); 173 sleep(LONG_TIME); 174 //點選貓旁邊的錢袋子 175 click(PURSE_X, PURSE_Y); 176 toast("領金幣"); 177 sleep(SHORT_TIME*2); 178 if (text("去喂貓 賺更多喵幣").exists()) { 179 text("去喂貓 賺更多喵幣").findOne().click(); 180 } 181 sleep(SHORT_TIME); 182 click(ZHUAN_X, ZHUAN_Y - 100); 183 toast("賺喵幣"); 184 sleep(SHORT_TIME); 185 if (text("簽到").exists()) { 186 text("簽到").findOne().click(); 187 sleep(1600); 188 toast("簽到成功"); 189 } 190 sleep(SHORT_TIME); 191 while (text("逛一逛").exists()) { 192 toast("存在逛一逛"); 193 text("逛一逛").findOne().click(); 194 sleep(5000); 195 back(); 196 sleep(1600); 197 while (text("好的,我知道了").exists()) { 198 text("好的,我知道了").findOne().click(); 199 } 200 sleep(SHORT_TIME); 201 } 202 //支付寶的“去完成”任務差異較大,需手動完成 203 //下滑看看還有沒有“逛一逛” 204 swipe(width / 2, height - 600, width / 2, 0, 500); 205 sleep(SHORT_TIME); 206 while (text("逛一逛").exists()) { 207 toast("存在逛一逛"); 208 text("逛一逛").findOne().click(); 209 sleep(5000); 210 back(); 211 sleep(1600); 212 while (text("好的,我知道了").exists()) { 213 text("好的,我知道了").findOne().click(); 214 } 215 sleep(SHORT_TIME); 216 } 217 toast("結束支付寶,等待開啟淘寶..."); 218 home(); 219 sleep(SHORT_TIME); 220 //淘寶領取 221 lingQuTaobao(); 222 } 223 224 function taptap() { 225 //扁貓貓可以獲得額外的蚊子腿喵幣 226 toast("開始狂扁貓貓功能"); 227 sleep(LONG_TIME); 228 for(var i = 0; i < TAP_TIMES; i++){ 229 //點選中心位置 230 click(parseInt(width/2), parseInt(height/2)); 231 sleep(TAP_INTERVAL); 232 } 233 }
Auto.js指令碼

Auto.js的使用方法

簡單說,Auto.js是一個手機的APP,不需要root許可權就能執行自己寫的JS指令碼。

  • 安裝AutoJS(可以在此下載https://wws.lanzous.com/b01npfw9g,驗證密碼1234)
  • 在手機上安裝並開啟Auto.js,會提示開啟輔助功能(各個手機叫法不同,比如三星叫服務,魅族叫無障礙服務)。

關於無障礙功能的開啟,各個手機可能不同,但大致是一樣的,以MIUI為例,入口在:設定 - 更多設定 - 無障礙 - 已下載的服務 - Auto.js - 開啟服務

  • 給Auto.js開啟 "後臺彈出介面" 許可權,否則無法啟動第二個app!!!(開啟方法:長按Auto.js,開啟應用資訊 - 許可權設定,確認“後臺彈出介面”許可權開啟,見下圖)

  • 開啟Auto.js,點選右下角"+"號,選擇“檔案”,隨便起個名字,點“確定”,然後把這個部落格上面的程式碼完整複製進去,點右上角儲存的圖示
  • 關閉鍵盤,點右上角的小三角執行程式
  • 等待程式執行,超過15s沒反應才是不正常的。(建議鎖屏時間設定為30s及以上)

附加題:Auto.js有自動定時執行指令碼的功能,你可以設定這個指令碼在每天早上你還沒醒的時候自動執行刷喵幣,可以參考如下:

點選指令碼右邊的選單按鈕->更多->定時任務即可定時執行指令碼,但是必須保持Auto.js後臺執行(自啟動白名單、電源管理白名單等)。同時,可以在指令碼的開頭使用device.wakeUp()來喚醒螢幕;但是,Auto.js沒有解鎖螢幕的功能,因此難以在有鎖屏密碼的裝置上達到效果。

安卓手機獲取點選螢幕座標的方法

  • 確認開啟開發者模式

如何開啟開發者模式請參考https://baijiahao.baidu.com/s?id=1595634582987842609

  • 進入開發者選項
    • 入口一般是:“設定”-“更多設定”-“開發者選項”
    • 往下滑,找到“指標位置”功能並開啟,之後的點選操作都會在螢幕上方顯示座標,螢幕上的細線不是螢幕壞了,是記錄了你的滑動軌跡
    • 通過這個功能,手動進行開啟淘寶進入活動介面刷喵幣等操作,根據螢幕上方顯示的座標修改程式碼最前面對應操作的座標,使得自動點選操作能夠適配你的手機螢幕

    

注意事項

  • 測試環境是安卓10版本,執行可能需要安卓7版本以上,適合1080p解析度的全面屏手機
  • 程式並沒有測試所有情況,可能會遇到一些偶然彈窗影響程序,一般手動處理後,關掉指令碼和淘寶支付寶,重新執行即可
  • 累計任務獎勵需要手動領取
  • 喂貓升級需要自己操作
  • 程式的的喚起如果失敗,需要注意是否禁止了被其他程式啟動
  • 由於只在我自己的小米8上進行了測試,螢幕尺寸1080*2248,針對不同裝置可能需要手動調整程式碼最開始的常量,如果你的某一步點選操作失敗,請自行調整程式碼最前面的常量以適配你的螢幕
  • 非商業性使用— 不得將此專案及其衍生的專案的原始碼和二進位制產品用於任何商業和盈利用途
  • 本專案使用CC-BY-NC-SA授權。

吐槽:主要的坑在於連續啟動兩個app,嘗試了各種方法,原來問題出在許可權不夠,感謝這位老哥