來篇按鍵精靈Q語言,簡單的天堂M喝水高治輔助程式

現在的手遊,幾乎都有內掛程式,但某些時後又有點不足
以天堂M來說,可以自動補紅水,但卻無法自動高級治癒術
最簡單的方式是以錄製的方式,最大的缺點當然是無法測知血量

建議使用電腦的android模擬器,MuMu或夜神都可(其他小編沒有用過)
一個很簡單的概念,當血量小於50%的時後,希望點第四個按鍵

首先很重要的,先把遊戲畫面整個截圖,

坐標,由左上開始為「0,0」

小編是把高治放在第四個快捷鍵
坐標是 791,639 (在快捷鍵的範圍內即可)
而血量的x坐標,是從79~273
血量的y坐標,是從21~34

一開始,可以使用 「GetPixelColor(x坐標,y坐標,0)」這個函式找到該點的顏色,
目的是希望可以取得血條紅色的色碼
可以這麼寫,先找坐標80,28的顏色

Dim color = GetPixelColor(80,28,0)
showMessage color

運行後,就會show出該點的色碼,目前查的是「0007AF」
要注意的是這個色碼和一般的色碼表示是相反的,正常應是「AF0700」

這時後,先寫幾個變數


Dim btn_y = 639  //快捷鍵的y坐標
Dim btn4_x = 791  //第四個快捷鍵的x坐標
Dim blood_start=79  //血量開始的x坐標
Dim blood_end =273  //血量結束的x坐標
Dim run_rate = 0.65  //希望按下快捷鍵的血量比例65%
Dim blood_color = "0007AF"  //剛剛查出來的血條顏色
Dim run_real_x = blood_start+(blood_end-blood_start)*run_rate // 65%的血條確切的x坐標
Dim like_rate = 0.9 

這部分 like_rate是為了另一個函式 CmpColor(x坐標,y坐標,色碼,相似度)
這個函式就不多做說明,總之回傳-1代表完全不同

Dim ret1 = CmpColor(run_real_x, 21, blood_color,like_rate) 
Dim ret2 = CmpColor(run_real_x,22,blood_color,like_rate) 
Dim ret3 = CmpColor(run_real_x,23,blood_color,like_rate) 
Dim ret4 = CmpColor(run_real_x,24,blood_color,like_rate) 
Dim ret5 = CmpColor(run_real_x,25,blood_color,like_rate) 
Dim ret6 = CmpColor(run_real_x,26,blood_color,like_rate) 
Dim ret7 = CmpColor(run_real_x,27,blood_color,like_rate) 
Dim ret8 = CmpColor(run_real_x,28,blood_color,like_rate) 
Dim ret9 = CmpColor(run_real_x,29,blood_color,like_rate) 
Dim ret10 = CmpColor(run_real_x,30,blood_color,like_rate) 
Dim ret11 = CmpColor(run_real_x,31,blood_color,like_rate) 
Dim ret12= CmpColor(run_real_x,32,blood_color,like_rate) 
Dim ret13= CmpColor(run_real_x,33,blood_color,like_rate) 
Dim ret14 = CmpColor(run_real_x,34,blood_color,like_rate)

這部分需要檢查y坐標21~34的原因是因為,天堂M的血量上有數字,會影響血量的判斷
所以要把y坐標全部做檢查,只要這所有的結果都回傳-1,即代表血量沒有到那個點,
然後執行想要的指令

If ret1>-1 Or ret2>-1 Or ret3>-1 Or ret4>-1 Or ret5>-1 Or ret6>-1 Or ret7>-1 Or ret8>-1 Or ret9>-1 Or ret10>-1 Or ret11>-1 Or ret12>-1 Or ret13>-1 Or ret14>-1 Then
//若有任一點相似「0007AF」想要做的事(代表有到達那個血量)
Else
//代表血量不夠
Tap 791,637 // 點擊791,637這個點 
End If


以下是完整的code

Dim color = GetPixelColor(80,28,0)
showMessage color

Dim btn_y = 639  //快捷鍵的y坐標
Dim btn4_x = 791  //第四個快捷鍵的x坐標
Dim blood_start=79  //血量開始的x坐標
Dim blood_end =273  //血量結束的x坐標
Dim run_rate = 0.65  //希望按下快捷鍵的血量比例65%
Dim blood_color = "0007AF"  //剛剛查出來的血條顏色
Dim run_real_x = blood_start+(blood_end-blood_start)*run_rate // 65%的血條確切的x坐標
Dim like_rate = 0.9 

Dim ret1 = CmpColor(run_real_x, 21, blood_color,like_rate) 
Dim ret2 = CmpColor(run_real_x,22,blood_color,like_rate) 
Dim ret3 = CmpColor(run_real_x,23,blood_color,like_rate) 
Dim ret4 = CmpColor(run_real_x,24,blood_color,like_rate) 
Dim ret5 = CmpColor(run_real_x,25,blood_color,like_rate) 
Dim ret6 = CmpColor(run_real_x,26,blood_color,like_rate) 
Dim ret7 = CmpColor(run_real_x,27,blood_color,like_rate) 
Dim ret8 = CmpColor(run_real_x,28,blood_color,like_rate) 
Dim ret9 = CmpColor(run_real_x,29,blood_color,like_rate) 
Dim ret10 = CmpColor(run_real_x,30,blood_color,like_rate) 
Dim ret11 = CmpColor(run_real_x,31,blood_color,like_rate) 
Dim ret12= CmpColor(run_real_x,32,blood_color,like_rate) 
Dim ret13= CmpColor(run_real_x,33,blood_color,like_rate) 
Dim ret14 = CmpColor(run_real_x,34,blood_color,like_rate)

If ret1>-1 Or ret2>-1 Or ret3>-1 Or ret4>-1 Or ret5>-1 Or ret6>-1 Or ret7>-1 Or ret8>-1 Or ret9>-1 Or ret10>-1 Or ret11>-1 Or ret12>-1 Or ret13>-1 Or ret14>-1 Then
     //若有任一點相似「0007AF」想要做的事(代表有到達那個血量)
Else
     //代表血量不夠
      Tap 791,637 // 點擊791,637這個點 
End If

「Tap x坐標,y坐標」,代表按下 x坐標,y坐標 這個點。

4 則留言:

Unknown 提到...

你好!!我在學習按鍵精靈可請教你的語法要如何包裝在SUB

good.luck.shiaukai 提到...

Hi 就把語法 前後加上
Sub func_name() 和 End Sub
就可以了

Unknown 提到...

感謝你,我會了 很棒的教學!!讚

Dollar 提到...

您好,我的按鍵精靈9,似乎沒有cmpcolor的function,請問您是用哪一版呢?

不再限制您的多媒體創作:使用NDI快速傳輸、處理和編輯高品質的視訊和音訊。

NDI(Network Device Interface)是一種基於IP網絡的視訊和音訊傳輸協議,它可以讓您在同一網絡上的不同設備之間傳輸高品質的視訊和音訊。使用NDI,您可以將視訊和音訊直接傳輸到其他設備上,而不需要使用任何額外的硬體。 以下是使用NDI的步驟: 下載並安裝ND...