30行Python代碼刷王者榮耀金幣
原理
王者榮耀的冒險模式里有個挑戰模式,第一次過關可以獲得比較多的金幣,后面重新挑戰還是會獲得少量金幣,這不算是bug,你不嫌煩手動蠻力也可以刷金幣。
推薦關卡:隕落的廢都 - 魔女回憶
此關卡使用純輸出英雄20秒左右可以打BOSS,50秒左右可以通關,每次重復通關可以獲得獎勵19金幣。在開掛前建議你手動通關體驗一下。此為游戲原理。
簡單來說,需要執行以下步驟:
-
界面打開至挑戰關卡:隕落的廢都 - 魔女回憶 【點擊下一步】
-
進入陣容調整界面,提前安排好陣容。【點擊闖關】
-
進入挑戰界面。【點擊右上角-自動-等待挑戰結束】
-
進入挑戰完成界面。【點擊屏幕繼續】
-
進入關卡獎勵界面。【點擊再次挑戰】
-
進入陣容調整界面,循環至步驟1或步驟2【貌似取決于游戲區和版本】
只要你能模擬屏幕點擊就可以完成刷金幣的腳本,在安卓模擬界面點擊最簡單的方式就是使用ADB發送命令,不需要root手機,不需要安裝第三方軟件,方便快捷。ADB命令點擊屏幕坐標[x, y] 可以使用命令:
adb shell input tap x y
IOS 是否有類似工具和命令,我不清楚,如果有那么實現自動刷金幣也很簡單。
準備
- 本腳本適用于安卓游戲區,需要真實安卓手機。
- 手機需開啟USB調試模式,允許電腦調試。
- 電腦需安裝好安卓驅動,一般豌豆莢或者各種管家可以自動幫你裝好。
- 電腦需要有ADB工具集,很多方式可以獲取。
- ADB工具需要加入環境變量PATH中,方便隨時調用。
- 電腦上需要安裝Python,因為這是我選擇的腳本語言。
專業的開發測試人員,也可以參考我的另外兩篇博客:
如果只是為了刷金幣,只需要安裝好驅動和ADB工具即可。
步驟
如果萬事具備,那么步驟就非常簡單。
環境檢測
- 用USB連接手機,如果彈出警告,請允許電腦調試手機。
- 使用命令 adb devices 檢驗adb和手機狀態已經就緒。
- $ adb devices
- List of devices attached
- b******4 device
模擬點擊屏幕,比如你可以打開畫圖軟件,然后運行命令:
- adb shell input tap 500 500
如果如果一切OK,那么你將看到畫圖軟件在坐標(500,500)的位置有一個點。
代碼實現
通關需要點擊的屏幕位置是固定的,加上注釋我們只需要不到30行代碼就可以完成。
- def tap_screen(x, y):
- os.system('adb shell input tap {} {}'.format(x, y))
- def do_money_work():
- print('#0 start the game')
- tap_screen(1600, 970)
- sleep(3)
- print('#1 ready, go!!!')
- tap_screen(1450, 910)
- sleep(15)
- print('#2 auto power on!')
- tap_screen(1780, 40)
- for i in range(25):
- tap_screen(1000, 500)
- sleep(1)
- print('#3 do it again...\n')
- tap_screen(1430, 980)
- sleep(3)
然后我們寫一個主函數來循環刷錢。
- if __name__ == '__main__':
- for i in range(repeat_times):
- print('round #{}'.format(i + 1))
- do_money_work()
拿來主義
如果你喜歡拿來主義,請訪問本文項目地址:
然后:
- 下載項目中的 kog.py 到本地。
- 將游戲打開,進入挑戰模式,魔女回憶,陣容調整界面。
- 根據手機性能和分辨率,調整kog.py中的參數。(手機分辨率,刷金次數等等)
- 運行以下命令,手機上就可以查看實時運行效果。
- python kog.py
注意:
- 每周金幣上限4200,需要接近4個小時,不建議一次刷滿,手機和你都要休息。
- 銘文,手機性能,英雄選擇都會影響通關速度,自己微調等待時間。
- 如果你不想被USB數據線束縛,可以考慮使用無線連接Android真機。
聲明
本腳本純屬娛樂和探索的心得,如果你因為違反了游戲規則導致被封號,我概不負責。