安卓模擬器lua外接指令碼_教你寫手遊指令碼:啟動遊戲並打造一個理想的點選函式...
技術標籤:安卓模擬器lua外接指令碼
前言
今天來和大家分享一下我的一些寫指令碼的經驗,尤其適合小白,當然有經驗的人也可以參考借鑑,大佬們噴的時候輕點~
目標:
找到有效的方法啟動遊戲,打造一個非常實用的點選函式!
準備工作:
平臺選擇:
首先我們需要選擇一個平臺來幫我們更快的進行指令碼的編寫,我們沒必要從頭開始造輪子,這裡我們選擇一個比較成熟且相對比較簡單一個平臺——按鍵精靈
安裝按鍵精靈安卓:
網上搜索關鍵字按鍵精靈-進入官網選擇手機版-下載按鍵精靈手機助手。
按鍵精靈助手
安卓模擬器選擇:
推薦雷電模擬器,老平臺值得信賴。下載安裝完成後,在雷電遊戲中心裝上自己想玩的遊戲,並且下載"包名檢視器"。
雷電模擬器
包名檢視器
最後準備工作:
啟動按鍵精靈助手-新建指令碼-按鍵精靈助手選擇"原始檔"模式-連線上模擬器
初級內容:啟動遊戲
涉及到的內容:啟動遊戲的方式的理解,螢幕點選函式。
啟動方式一:根據包名啟動遊戲
程式碼樣例:
//假如包名是"phone.test.com"RunApp("phone.test.com")
優點:
1. 不需要擔心遊戲圖示在什麼地方,哪怕不在當前頁面也是可以的;
2. 只要包名沒有輸錯,準確率100%;
缺點:
1.需要知道遊戲的包名;(執行包名檢視器-找到你想啟動的遊戲-複製包名)
2.需要了解一個啟動app的函式——RunApp
啟動方式二:根據遊戲圖示所在螢幕的位置座標點選啟動
程式碼樣例:
//假如遊戲圖示在(500,200)位置Tap(500, 200)
優點:
1. 簡單隻要知道座標就可以;
缺點:
1. 如果圖示不在當前頁面,或者圖示被移動,那麼就需要再找圖示的位置,無法一勞永逸;
2. 需要了解一個函式——Tap
根據上述兩種方式,我個人更建議使用使用第一種方式,方式一更加準確。
進階內容:Tap函式的變形
涉及到的內容:Tap函式,隨機函式,如何模擬人工。
如何模擬人工:
既然說到Tap函式那麼就需要考慮一些更具有實際意義的內容了,假如我每次都點選同一個位置,那麼肯定多次點選下來都是同一個位置,結合我之前文章所說的,每次這樣的點選事件其實是被儲存在一個專門存放訊號量的檔案裡的,那麼一旦檢查就能直接判定為你的行為是不正常的。
那麼如何讓這個行為變得正常呢,就是在這個座標周圍的區域內挑一個來進行點選。這個範圍也是需要可控的,範圍太大了找不到,範圍太小了也容易被過濾為一個位置,再結合人手指點選到螢幕上一般所能覆蓋的範圍,我建議這個區域保持在(5-20)之間是一個非常不錯的選擇。
程式碼實現:
/*打造一個理想的點選函式screenX : 螢幕中一個點的x座標ScreenY : 螢幕中一個點的y座標rand : 隨機數的偏移範圍*/Dim screenX, ScreenY, rand //定義3個函式引數Function click(screenX, ScreenY, rand)Randomize //建立一個隨機數種子Dim getRand = 0 //定義一個獲取輸入偏移範圍的變數If rand > 20 Then//rand超過我們所想的最大值20,直接變為20Dim r = 20 //定義一個臨時變數//獲得一個指定範圍內的隨機數getRand = Int(((r - (-r) + 1) * Rnd()) + 1)Else//獲得一個指定範圍內的隨機數getRand = Int(((rand - (-rand) + 1) * Rnd()) + 1)End If//在指定範圍內點選Tap(screenX + getRand, ScreenY + getRand)End Function//執行,點選螢幕(270,256)座標,在x和y正負不超過10區域內的一個點call click(270, 256, 10)
結語:
編寫指令碼需要的是解決問題的思路,而不是刻板的步驟123。有思路並且選擇合適自己的解決方案永遠強於埋頭蠻幹!做任何事也是可以借鑑的,重要的是用什麼方式比較合理有效的解決問題,而不是迴避問題.