資料來源:兄弟論壇
作者:瘋狂S鴻
大家來玩按鍵精靈,我想大部分都是衝著遊戲的,那麼IfColor和FindPic命令是最常用的,也是最基礎的。
IfColor命令:
定點找色
IfColor 100 100 FFFFFF 0 //如果坐標(100,100)的顏色等於#FFFFFF(白色) 則
MessageBox 該點顏色匹配! //彈出窗口 該點顏色匹配!
Else //否則
MessageBox 該點顏色不一致! //彈出窗口 該點顏色不一致!
EndIf //判斷結束
螢幕座標理解:
可能有的人對座標還不是很理解,其實很簡單,將你電腦的左上角做為原點(0,0),橫為橫軸X,縱為縱軸Y,
如果你的顯示器的解析度是1024*768,那麼你螢幕的左上角坐標(0,0),左下角坐標(0,767),
右上角坐標(1023,0),右下角坐標(1023,767)。
坐標介紹完了,我們回到IfColor命令:
IfColor 100 100 FFFFFF 0
IfColor 你要找的點的坐標 你要找的點的顏色 0表示等於(1表示不等於,2表示約等於)
舉個簡單加血例子來加深印象(見附圖1):
先用按鍵精靈自帶抓點抓色工具(腳本編譯器最上面),獲得需要點的坐標和顏色。
假設坐標為(100,50),顏色代碼為#123456(空血條顏色),
開始編寫腳本:
Rem 補血 //標記 補血
IfColor 100 50 123456
KeyPress 112,1 //按F1鍵 1次 (當然F1鍵位放血瓶囉)
EndIf
Goto 補血 //跳轉到標記 補血
保存,運行即可。
注:Goto是跳轉語句,以此產生循環,其他循環語句還有For...EndFor,While...EndWhile等等。
================================================================================
FindPic命令:
在螢幕的某個區域查找指定相似度的圖片,並把找到的坐標保存在變數中。
VBSCall FindPic(0,0,1024,768,"1.bmp",0.9,x,y)
//VBSCall是按鍵腳本中調用VBS函數的命令
//0,0,1024,768分別表示區域的左,上,右,下界限。
//1.bmp就是你所要找的圖片,需要雙引號。
//0.9為相似度,取0.5到1之間的小數。數值越大,對圖片的相似度要求越嚴格,速度也越快。
//如果找到圖片,則x和y的值被賦圖片坐標值,否則x和y的值都被置為-1。
If x>=0 and y>=0 //如果x和y的值大於0,即找到圖片,則
MoveTo x y //鼠標移動到(x,y)
LeftClick 1 //左鍵單擊 1次
EndIf //判斷結束
基本格式已經瞭解了,現在講幾個注意點,
1.截圖時,按下Print Screen鍵,然後打開Windows自帶的畫圖工具(小畫家),貼上即可。鍵找不到?一般在F12鍵右邊,方向鍵上面。
2.圖片要bmp格式,最好是24位。在保存圖片的時候,保存類型下拉框中可以選擇。
3.圖片一般保存在按鍵精靈/script文件夾下就可以了。
4.「重點!"
如果找到圖片,(x,y)坐標是圖片左上角坐標,將鼠標移動到(x,y)還是不能移到我們想要點擊的目標上(見附圖2情況①),這時我們就需要偏移,在x坐標和y坐標後各加上適當的數值(假設各+30),MoveTo x y語句改為MoveTo x+30 y+30,使鼠標移到目標上(見圖2情況②),bingo,成功了,接著就可以進行修改,插入我們想要的操作了。
作者:瘋狂S鴻
大家來玩按鍵精靈,我想大部分都是衝著遊戲的,那麼IfColor和FindPic命令是最常用的,也是最基礎的。
IfColor命令:
定點找色
IfColor 100 100 FFFFFF 0 //如果坐標(100,100)的顏色等於#FFFFFF(白色) 則
MessageBox 該點顏色匹配! //彈出窗口 該點顏色匹配!
Else //否則
MessageBox 該點顏色不一致! //彈出窗口 該點顏色不一致!
EndIf //判斷結束
螢幕座標理解:
可能有的人對座標還不是很理解,其實很簡單,將你電腦的左上角做為原點(0,0),橫為橫軸X,縱為縱軸Y,
如果你的顯示器的解析度是1024*768,那麼你螢幕的左上角坐標(0,0),左下角坐標(0,767),
右上角坐標(1023,0),右下角坐標(1023,767)。
坐標介紹完了,我們回到IfColor命令:
IfColor 100 100 FFFFFF 0
IfColor 你要找的點的坐標 你要找的點的顏色 0表示等於(1表示不等於,2表示約等於)
舉個簡單加血例子來加深印象(見附圖1):
先用按鍵精靈自帶抓點抓色工具(腳本編譯器最上面),獲得需要點的坐標和顏色。
假設坐標為(100,50),顏色代碼為#123456(空血條顏色),
開始編寫腳本:
Rem 補血 //標記 補血
IfColor 100 50 123456
KeyPress 112,1 //按F1鍵 1次 (當然F1鍵位放血瓶囉)
EndIf
Goto 補血 //跳轉到標記 補血
保存,運行即可。
注:Goto是跳轉語句,以此產生循環,其他循環語句還有For...EndFor,While...EndWhile等等。
================================================================================
FindPic命令:
在螢幕的某個區域查找指定相似度的圖片,並把找到的坐標保存在變數中。
VBSCall FindPic(0,0,1024,768,"1.bmp",0.9,x,y)
//VBSCall是按鍵腳本中調用VBS函數的命令
//0,0,1024,768分別表示區域的左,上,右,下界限。
//1.bmp就是你所要找的圖片,需要雙引號。
//0.9為相似度,取0.5到1之間的小數。數值越大,對圖片的相似度要求越嚴格,速度也越快。
//如果找到圖片,則x和y的值被賦圖片坐標值,否則x和y的值都被置為-1。
If x>=0 and y>=0 //如果x和y的值大於0,即找到圖片,則
MoveTo x y //鼠標移動到(x,y)
LeftClick 1 //左鍵單擊 1次
EndIf //判斷結束
基本格式已經瞭解了,現在講幾個注意點,
1.截圖時,按下Print Screen鍵,然後打開Windows自帶的畫圖工具(小畫家),貼上即可。鍵找不到?一般在F12鍵右邊,方向鍵上面。
2.圖片要bmp格式,最好是24位。在保存圖片的時候,保存類型下拉框中可以選擇。
3.圖片一般保存在按鍵精靈/script文件夾下就可以了。
4.「重點!"
如果找到圖片,(x,y)坐標是圖片左上角坐標,將鼠標移動到(x,y)還是不能移到我們想要點擊的目標上(見附圖2情況①),這時我們就需要偏移,在x坐標和y坐標後各加上適當的數值(假設各+30),MoveTo x y語句改為MoveTo x+30 y+30,使鼠標移到目標上(見圖2情況②),bingo,成功了,接著就可以進行修改,插入我們想要的操作了。
文章標籤
全站熱搜

Thank you, I used to play 熱血江湖 also =)
請問我還是不懂怎麼看螢幕座標....
[版主回覆08/28/2009 18:16:34]【按鍵精靈-入門篇】[7.X版]抓點/抓顏色/抓圖/抓區域座標 - 使用方法(轉貼)
http://www.wretch.cc/blog/renju/14544242若確定找到圖片後執行按鍵5使用回捲,飛回村
可是我不管如何設定,
他連沒有找到圖 都會飛回村 讓我很困擾
(就是如果武器壊掉後,在座標內會顯示一張壞掉的圖片,
若找到這張圖立即執行飛回村然後停止繳本)
------------------------------
VBSCall FindPic(3,121,42,158,"1.bmp",0.9,x,y)
//區域找圖,3,121,42,158,為區域範圍,"1.bmp"為圖片名(路徑),0.9為找圖的相似度,x,y為找圖後儲存坐標的變量
If x>=0 and y>=0
//如果坐標在區域內(找到圖片)
Delay 50
//延時
KeyPress 53
Delay 15000
KeyPress 123,1
EndIf
//條件結束
-------------------------------
請問我哪裡設定錯了?!
不管怎樣它都會一直飛回村 很困擾
繳本達人救救我= =
目前寫得腳本都是這樣用的^^
感謝分享給其他人知道XD
VBSCall FindPic(0,0,1024,768,"753.bmp",1,0.9,x,y)
If x>=0 and y>=0
MoveTo x y
LeftDoubleClick 1
EndIf
奇怪我照你寫的步驟一樣啊...
我的圖片檔明設為753(這裡是在儲存圖片是只打753後面沒有.bmp因為檔名下面有格式可以選所以沒有打.bmp)
一樣保存在按鍵精靈/script文件夾裡面
可是為什麼一執行他都給我跳到原點?
可以告訴我錯在哪裡嗎?
最近剛在摸索缺很多正確的腳本給我對照錯在哪邊
[版主回覆03/30/2010 16:45:23]VBSCall FindPic(0,0,1024,768,"753.bmp",1,0.9,x,y) 這行多了1個"1"改成這樣就可以了
VBSCall FindPic(0,0,1024,768,"753.bmp",0.9,x,y)
謝謝你喔^^~
會跑了~
可是為什麼僅限於桌面啊
我把它用在遊戲(全螢幕)他就完全不會動?
-------------------------------------------------<=====分隔線
7.0按鍵精靈:網路遊戲分類:
演示例子:中間漸開找怪(區域找色)
他不是說可以先開小畫家測試 看他跑的路徑嗎?
可是怎麼一動也不動
[版主回覆03/30/2010 23:52:53]很多遊戲都會擋按鍵精靈,除非你是使用註冊版,開啟神盾功能來躲偵測。中間漸開找怪(區域找色),我沒有使用過,運作方式,我就不太清楚哦!
擋 按鍵精靈的部分應該是不會
因為我有試過找色的他會跑
可是圖檔的他就罷工給我看了= ="
一樣是原先那個程式只是原先那個程式的圖片是桌面上的圖片後面我把它改成遊戲怪物的圖片他就偵測不到了
-----------------------------------------------------<===分隔線
請教你會不會 就是遊戲時怪物不是都有名稱嗎?
可是滑鼠沒有指到怪物 怪物的名稱並不會顯示出來
可是我看過有人用一種程式 程式他自己會鎖定怪物
也就是說當成是鎖定怪物的時候滑鼠連點就可以打怪了
等怪物死掉之後他又自動鎖定別隻怪物
這個很複雜嗎?可以分享一下嗎?
--------------------------------------------------------------------
或者是輸入怪物名稱程式會自動把滑鼠移過去的?
[版主回覆03/31/2010 01:59:02]使用圖形找怪是效率最差的方式,最好的方式是找色的方式。我常使用的是抓怪物的名稱,但你說平常它是不會秀出名稱,
這樣的話,可以參考這篇文章
【按鍵精靈-高級篇】運用統計學在3d動態遊戲中 找色 提高 準確度 wow釣魚 (轉載)
另外的找怪物方式是利用「滑鼠的特徵值」找怪。
通常是使用劃圈式腳本。
你好幻大
之前幻大所貼ㄉ的
使用按鍵精靈查詢遊戲註冊時的身份證資料
這篇文章
雖然可跑 但是問題是...
這程式好像沒有辨別圖形辨識碼
能再補充一點能辨識圖形辨識碼的程式碼嘛?
感激不盡~~~ 3q [版主回覆04/04/2010 15:51:41]你太晚來了,那驗證碼是很難破解的,放棄吧
那如果使用後台找圖
VBSCall FindPic(0,0,1024,768,"1.bmp",0.9,x,y)
這段語法又該加入什麼呢?!
[版主回覆04/18/2010 01:51:29]沒有後台找圖,要玩後台,還是使用虛擬機VMware,可以不用修改腳本,完全是後台的效果,可以縮小...等等.........
Rem 寵物補血 IfColor 211,95,949eef,0 Else KeyPress 90,1 Delay 1000 KeyPress 69,1 VBSCall FindPic(0,0,1024,768,"未命名.bmp",1,x,y) If x>=0 and y>=0 MoveTo x+30 y+30 LeftDoubleClick 1 KeyPress 69,1 Delay 500 KeyPress 90,1 Goto 寵物補血 EndIf 請問這ㄍ有哪裡錯了嗎!? 他沒找圖片 救開始執行下面ㄌ- - [版主回覆06/07/2010 00:56:12]你少了一個EndIf ,這就要看你是放在那裡囉?
= = 我少複製 EndIf 我放在 最下面! 沒有用耶... 是不是我圖有問題 [版主回覆06/07/2010 13:25:57]補血很少人會使用找圖的方式,一般都是使用抓色點的方式來判斷。
厲害的人是找記憶體的資料來判斷
請教一下
可以同一個範圍搜尋多張圖嗎
例如這個區域會出現 藍色 黃色 紅色
我想要藍色跟黃色的時候按鍵
紅色則無動作
這樣該怎麼設定呢
我試過
VBSCall FindPic(0,0,1024,768,"1.bmp","2.bmp",0.9,x,y)
VBSCall FindPic(0,0,1024,768,"1.bmp,2.bmp",0.9,x,y)
都沒有辦法
麻煩你了 謝謝
想請問一下~~按精有沒有辦法去比對螢幕中某一個區塊的文字(例如:遊戲的聊天框)~~
如果可以那需要用到的指令會是FindPic這一個指令嗎??麻煩版主寫解惑一下~~萬分感謝
[版主回覆06/29/2011 10:39:17]沒錯,就是使用FindPic,當然還有其它的比對方式。只是FindPic比較簡單請問6.71的按鍵精靈要去哪下載
FindPic 0,0,1024,768,"Attachment:\123.bmp",0.9,intX,intY If intX > 0 And intY > 0 Then Delay 1000 MoveTo 102, 448 Delay 1000 Else Msgbox "找不到" End If 1.我有用軟體判圖先確認他有找到位置 2.但是程式執行卻一直找不到 請問我是否哪裡寫錯了呢? 還是哪些細節沒注意到?