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