按鍵精靈遊戲輔助掛機掉線重連?

高高興興寫腳本,開開心心掛遊戲~但是,網絡渣的時候遊戲掉線怎麼辦?(遊戲掉線還有可能是遊戲服務器超負荷,例如熱門遊戲剛開服的時候,那掉線掉得臉都綠了。)晚上掛機,早上起來看成果,映入眼簾的居然是遊戲掉線提示~天啊~這不僅僅是損失一點點掛機成果,最傷的還是我們的心情。掉線!掉線!多麼煩躁!掉了就給我自己乖乖重新連上!那麼,用腳本該如何實現掉線重連的功能呢?一起來了解看看。

工具/原料

按鍵精靈2014

方法/步驟

腳本思路

腳本啟動之後,循環判斷遊戲是否掉線,如果掉線則重登遊戲,沒有掉線則繼續循環判斷是否掉線。

按鍵精靈遊戲輔助掛機掉線重連

步驟

1 、監視遊戲窗口。循環找掉線提示。

監視遊戲窗口的方法:

1、 在主程序內調用子程序無限循環判斷 弊端:如果主程序中有一個地方卡住了,那麼作為監控用的子程序也會卡住,無法再進行監測。2、啟動單獨的線程來監視。

小編拿武尊遊戲做個掉線重連的例子,這裡我們選擇單獨線程的方式來監控。建立一個線程,名作 :監視。

線程相關命令:

命令名稱

BeginThread 同時運行過程

命令功能

新開一個線程運行當前腳本,從指定的過程開始運行

命令參數

過程名

返 回 值

整數型,線程ID

代碼示例:線程ID=BeginThread(監視) //方法1:啟動線程,並且將啟動的線程的id返回給變量線程id BeginThread 監視 //方法2:啟動線程,沒有返回值的寫法 編程好習慣,啟動了線程之後,不需要使用的時候要記得停止線程 。

命令名稱

StopThread 停止線程運行

命令功能

停止某個線程的運行

命令參數

整數型,線程ID編號

返 回 值

代碼示例: StopThread 線程ID 這裡的停止是指關閉了線程。如果希望只是暫時停止線程,一會兒還要重新繼續這個線程,可以使用暫停線程的命令

命令名稱

PauseThread 暫停線程運行

命令功能

暫停某個線程的運行

命令參數

整數型,線程ID

返 回 值

代碼示例:PauseThread 線程ID 暫停之後想要繼續運行線程,使用繼續線程運行命令。 假設之前的線程是負責往記事本里依次輸入1-100的數字,當輸入到59的時候我們停止了線程,那麼腳本就暫停對記事本輸入。當我們使用繼續線程命令恢復線程運行後,腳本會對記事本繼續輸入,繼續輸入60-100.

命令名稱

ContinueThread 繼續線程運行

命令功能

繼續某個線程的運行

命令參數

整數型,線程ID

返 回 值

代碼示例:ContinueThread 線程ID

啟動“監視”線程代碼:

線程ID = BeginThread(監視)

Sub 監視

//判斷遊戲是否掉線

End Sub

在線程中我們要循環查看遊戲窗口中有沒有出現掉線窗口,我們可以通過找字或者找圖的方法,找掉線窗口裡的標識圖文,例子中,小編使用找圖的方法。

武尊掉線提示:

按鍵精靈遊戲輔助掛機掉線重連

找圖技巧: 1、 首先將運行遊戲的瀏覽器大小調整到固定大小。本例子中瀏覽器的窗口大小為:1024,900 瀏覽器:360瀏覽器 並且隱藏了瀏覽器收藏欄 收藏欄隱藏快捷鍵 ctrl+B 2、 把瀏覽器窗口先移動到屏幕左上角座標(0,0)位置。 3、 使用抓抓工具將瀏覽器窗口整個抓取。 4、在抓抓圖像裡點擊掉線窗口的左上角和右下角獲取找圖的範圍。

左上角

按鍵精靈遊戲輔助掛機掉線重連

右下角

按鍵精靈遊戲輔助掛機掉線重連

5、 經過第四步獲取到的找圖的範圍座標是相對於屏幕的,如果瀏覽器窗口移動了,找圖範圍就是錯誤的。所以,需要將屏幕座標轉換為瀏覽器窗口座標。

2、點擊確定重登遊戲

武尊這款遊戲,有的代理平臺支持記錄賬號,有的平臺不支持。也就是說,有的平臺掉線之後不需要再次輸入賬號密碼,而有的則需要。小編今天登錄的是37武尊,這個平臺是有記錄賬號功能的。

37武尊掉線處理有如下兩種情況:1、掉線斷網的時間不長,那麼點擊掉線提示窗口裡的確定之後即會回到,角色選擇界面。這個時候再點擊進入遊戲即可。2、掉線斷網時間過長,點擊掉線提示窗口的確定之後會返回到武尊遊戲的首頁。這個時候需要點擊區服,進入到角色界面之後再點擊進入遊戲。實際上,這兩種情況,我們做三個判斷就可以實現重連。

步驟:1、找掉線窗口,找到則點擊確定。2、找武尊首頁的標識圖片,例子中小編找的是 武尊首頁 這幾個文字的截圖。 3、如果找到這張圖,說明是第二種情況,掉線太久了之後返回到武尊遊戲首頁。 點擊上次進入的區服。

按鍵精靈遊戲輔助掛機掉線重連

4、如果沒有找武尊首頁 的截圖,則開始找 角色界面裡的 進入遊戲 按鈕截圖。找到則點擊。

按鍵精靈遊戲輔助掛機掉線重連

代碼

DimEnv sRect //定義環境變量 -因為這個值是要傳遞到線程中的,如果是局部變量是不支持線程的。

PutAttachment "c:\","*.bmp" //釋放圖片

hwnd = Plugin.Window.MousePoint() //獲取鼠標指向窗口的窗口句柄

Call Plugin.Window.Size(hwnd, 1024, 900)//設置窗口大小為1024,900

sRect = Plugin.Window.GetClientRect(Hwnd) //獲取窗口客戶區大小

//////////////////////////////////////////////////////////

BeginThread 監視

Sub 監視

MyArray = Split(sRect, " ")

Do //循環找掉線窗口,找到的話才進入第二個循環

L = Clng(MyArray(0)): T = Clng(MyArray(1)) //獲取窗口左上角座標

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 //第二個循環,循環找是不是首頁,是的話點擊進入區服,不是的話則進入下一個循環。

FindPic L+9,T+144,L+100,T+195,"C:\武尊首頁.bmp",0.9,intX,intY //找遊戲首頁裡的 武尊首頁 字體圖片 判斷是不是在遊戲首頁

If intX > 0 And intY> 0 Then

MoveTo L + 72, T + 683

LeftClick 1

Delay 200

End If

Do//第三個循環,找角色界面的進入遊戲按鈕,找到的話則點擊,沒有找到則繼續查找

FindPic L+414,T+701,L+623,T+780,"C:\進入遊戲.bmp",0.9,intX,intY //找角色界面裡的 進入遊戲 字體圖片 判斷是不是在角色選擇界面

If intX > 0 And intY > 0 Then

MoveTo intX,intY

LeftClick 1

Delay 200

End If

loop

Loop

End If

Loop

End sub

相關問題答案