英雄聯盟自動輸入邀請碼程式
我認為被鎖的機率非常非常低,但是使用這類工具還是會有一定的風險,任何後果請自行承擔,若真的很擔心建議不要使用。
這次的英雄聯盟 8.8 週年慶活動,有輸入邀請碼可以獲得氣球兌換獎勵的活動,逛巴哈的時候看到有大神做自動輸入的程式,就也嘗試做了一個順便學習一下沒用過的套件。程式會比較大是因為用 Python 寫的,用 pyinstaller 打包。
補充
程式一開始設計時為了效率所以只從集中串的最後一頁開始爬邀請碼,執行完第一輪後其實都是在等新貼的邀請碼,一有人貼就會馬上搶,若這個資源有比較多人在搶就會導致效率變很差,如果有更好的資源來源,可以自行修改一下爬蟲的網址,由於是用正則表達式來取出邀請碼,所以只要直接抓網頁的原始碼即可,也可以不爬蟲,直接全選複製 Garena 的新聞,用一個變數儲存,取代掉第 65 行的 req.text
即可。
2021/08/02 更新:
由於一些朋友有自己貼上邀請碼的需求,所以更新了一下,新的檔案為 v3.1.zip,新增了選擇自己貼上邀請碼或爬蟲的選項,若要自己貼邀請碼只要在 “invitations.txt” 貼上任意包含邀請碼的文字即可。沒有號了所以沒有測試,若有問題可以留言告訴我。
程式說明
程式一開始會先從螢幕中搜尋圖片定位,定位時不可操作鍵盤及滑鼠,等待定位完成後就會在後台操作,可以切換到別的視窗做其他事情,但要注意不可以從工具列縮小 LOL,否則操作會卡住,直接點擊其他視窗覆蓋掉 LOL 即可。程式正常運行時工具列 LOL 的圖標會閃金色,若沒有閃表示剛才從工具列縮小 LOL 了,把 LOL 的視窗點開即可,若無法恢復則重新執行程式。
程式剛執行時會先去 這篇文章 的最後一頁抓取頁面所有的邀請碼,包括文章及留言的部分,接著一一輸入,做完第一輪後會繼續抓取最後一頁的邀請碼,若之前輸入過的則不會再輸入。
會這樣做主要是通常前面的邀請碼都被別人輸完了,最後一頁比較有機會可以拿到氣球,第一輪做完後只會等到有新的邀請碼才會繼續輸入,由於是別人剛發上來的,通常都可以拿到氣球。
使用方法
- 下載 v3.zip 並解壓縮,確保程式及兩張圖片在同一個資料夾中
- 右鍵點擊 v3.exe 並選 以管理員身分執行
- 開啟 LOL 並進入活動的畫面
- 等程式跳出文字後輸入延遲,可根據自己的電腦來斟酌,建議輸入 0.3 以上,若執行時有問題表示電腦無法負荷,將延遲調高即可
- 若跳出找不到圖片的錯誤則參考影片的做法截圖按鈕的圖片即可,這是由於解析度不同導致的
- 程式運行時不要從工具列縮小 LOL
程式流程
- 使用 pyautogui 搜圖定位按鈕的位置
- 抓取 LOL 的視窗並找出 LOL 的座標
- 從步驟 1 找到的座標及步驟 2 的座標算出按鈕的相對座標
- 抓取文章的最後一頁所有的邀請碼,並且將沒有輸入過的邀請碼儲存
- 傳送點擊及輸入的消息到 LOL 的視窗實現後台操作
程式原始碼
v1.py 為前台版,執行方式和上面差不多
v3.py 為後台版,也是本文章介紹的版本
v3.1.py 為更新後的版本,新增了可以選擇自己貼上邀請碼或是爬蟲的功能
沒有花時間整理程式碼,所以有一點亂。建議使用 anaconda 建一個新環境,直接執行看有缺甚麼再自己裝一下,若要修改的話用 jupyter notebook 還蠻方便的,安裝 anaconda 建好環境後會自動建立。
參考資料
PyAutoGUI : 使用Python控制電腦. 全自動化Python | by Yanwei Liu | Medium
Python win32gui.PostMessage方法代碼示例 - 純淨天空
Python使用Windows剪下板 - IT閱讀