監(jiān)視游戲窗口,實(shí)現(xiàn)掉線重連
高高興興寫腳本,開開心心掛游戲~但是,網(wǎng)絡(luò)渣的時(shí)候游戲掉線怎么辦?(游戲掉線還有可能是游戲服務(wù)器超負(fù)荷,例如熱門游戲剛開服的時(shí)候,那掉線掉得臉都綠了。)晚上掛機(jī),早上起來看成果,映入眼簾的居然是游戲掉
高高興興寫腳本,開開心心掛游戲~但是,網(wǎng)絡(luò)渣的時(shí)候游戲掉線怎么辦?(游戲掉線還有可能是游戲服務(wù)器超負(fù)荷,例如熱門游戲剛開服的時(shí)候,那掉線掉得臉都綠了。)晚上掛機(jī),早上起來看成果,映入眼簾的居然是游戲掉線提示~天啊~這不僅僅是損失一點(diǎn)點(diǎn)掛機(jī)成果,最傷的還是我們的心情。掉線!掉線!多么煩躁!掉了就給我自己乖乖重新連上!那么,用腳本該如何實(shí)現(xiàn)掉線重連的功能呢?一起來了解看看。
腳本思路
腳本啟動(dòng)之后,循環(huán)判斷游戲是否掉線,如果掉線則重登游戲,沒有掉線則繼續(xù)循環(huán)判斷是否掉線。
步驟
1. 監(jiān)視游戲窗口。循環(huán)找掉線提示。監(jiān)視游戲窗口的方法:
1. 在主程序內(nèi)調(diào)用子程序無(wú)限循環(huán)判斷
2. 啟動(dòng)單獨(dú)的線程來監(jiān)視。小編拿武尊游戲做個(gè)掉線重連的例子,這里我們選擇單獨(dú)線程的方式來監(jiān)控。
2. 線程相關(guān)命令:
- BeginThread 啟動(dòng)新線程
- StopThread 停止線程運(yùn)行
- PauseThread 暫停線程運(yùn)行
- ContinueThread 繼續(xù)線程運(yùn)行
3. 啟動(dòng)"監(jiān)視"線程代碼:
```
線程ID BeginThread(監(jiān)視)
Sub 監(jiān)視
//判斷游戲是否掉線
End Sub
```
在線程中我們要循環(huán)查看游戲窗口中有沒有出現(xiàn)掉線窗口,我們可以通過找字或者找圖的方法,找掉線窗口里的標(biāo)識(shí)圖文。
找圖技巧
1. 首先將運(yùn)行游戲的瀏覽器大小調(diào)整到固定大小。本例子中瀏覽器的窗口大小為:1024,900,并且隱藏了瀏覽器收藏欄。
2. 把瀏覽器窗口先移動(dòng)到屏幕左上角坐標(biāo)(0,0)位置。
3. 使用抓抓工具將瀏覽器窗口整個(gè)抓取。
4. 在抓抓圖像里點(diǎn)擊掉線窗口的左上角和右下角獲取找圖的范圍。
5. 經(jīng)過第四步獲取到的找圖的范圍坐標(biāo)是相對(duì)于屏幕的,如果瀏覽器窗口移動(dòng)了,找圖范圍就是錯(cuò)誤的。所以,需要將屏幕坐標(biāo)轉(zhuǎn)換為瀏覽器窗口坐標(biāo)。
掉線處理邏輯
1. 找掉線窗口,找到則點(diǎn)擊確定。
2. 找武尊首頁(yè)的標(biāo)識(shí)圖片,例子中小編找的是"武尊首頁(yè)"這幾個(gè)文字的截圖。
3. 如果找到這張圖,說明是第二種情況,掉線太久了之后返回到武尊游戲首頁(yè)。點(diǎn)擊上次進(jìn)入的區(qū)服。
4. 如果沒有找武尊首頁(yè)的截圖,則開始找角色界面里的"進(jìn)入游戲"按鈕截圖。找到則點(diǎn)擊。
通過以上步驟,我們就可以實(shí)現(xiàn)武尊游戲掉線重連的功能了。
掉線重連腳本
```
Dim Env sRect //定義環(huán)境變量 -因?yàn)檫@個(gè)值是要傳遞到線程中的,如果是局部變量是不支持線程的。
PutAttachment "c:a*.bmp" //釋放圖片
hwnd () //獲取鼠標(biāo)指向窗口的窗口句柄
Call (hwnd, 1024, 900)//設(shè)置窗口大小為1024,900
sRect (Hwnd) //獲取窗口客戶區(qū)大小
//////////////////////////////////////////////////////////
BeginThread 監(jiān)視
Sub 監(jiān)視
MyArray Split(sRect, "|")
Do //循環(huán)找掉線窗口,找到的話才進(jìn)入第二個(gè)循環(huán)
L Clng(MyArray(0)): T Clng(MyArray(1)) //獲取窗口左上角坐標(biāo)
FindPic L 300,T 413,L 721,T 611,"C:掉線.bmp", 0.9,intX,intY //找掉線重連圖片
If intX > 0 And intY > 0 Then
MoveTo L 568, T 566
LeftClick 1
Do //第二個(gè)循環(huán),循環(huán)找是不是首頁(yè),是的話點(diǎn)擊進(jìn)入?yún)^(qū)服,不是的話則進(jìn)入下一個(gè)循環(huán)。
FindPic L 9,T 144,L 100,T 195,"C:武尊首頁(yè).bmp", 0.9,intX,intY //找游戲首頁(yè)里的"武尊首頁(yè)"字體圖片 判斷是不是在游戲首頁(yè)
If intX > 0 And intY> 0 Then
MoveTo L 72, T 683
LeftClick 1
Delay 200
End If
Do//第三個(gè)循環(huán),找角色界面的進(jìn)入游戲按鈕,找到的話則點(diǎn)擊,沒有找到則繼續(xù)查找
FindPic L 414,T 701,L 623,T 780,"C:進(jìn)入游戲.bmp", 0.9,intX,intY //找角色界面里的"進(jìn)入游戲"字體圖片 判斷是不是在角色選擇界面
If intX > 0 And intY > 0 Then
MoveTo intX,intY
LeftClick 1
Delay 200
End If
loop
Loop
End If
Loop
End Sub
```
通過以上代碼,我們可以實(shí)現(xiàn)武尊游戲掉線后自動(dòng)重新登錄的功能。