網路遊戲找怪思路詳解
資料來源:兄弟論壇
作者:晨風
使用按鍵有段時間了,對一些找怪的思路小有體會。簡單來說找怪就是找怪與背景不同的獨有的特徵,可以通過找怪的顏色/圖片、怪名字顏色/圖片、怪血條顏色/圖片、漸開線掃瞄、小地圖找怪等等的方法來實現。具體看遊戲而定,下面就介紹幾種找怪的方法:
1。區域找色 應該說是最簡單的找怪方法了,在區域裡查找怪的特有顏色、名字顏色、血條顏色、怪的陰影等等。如果找到移動鼠標到怪身上進行攻擊 (推薦用區域模糊找色或從區域中間向外找色)。
例子(區域模糊找色):
VBSCall FindColorEx(0,0,1024,768,"FFFFFF",1,0.8,x,y)
//區域模糊找色,0,0,1024,768為區域範圍,"FFFFFF"為顏色,1為查找方式(中間向外),0.8為模糊值,x,y為找色後儲存坐標的變量
If x>=0 and y>=0
//如果找到顏色(通過判斷坐標變量是否在區域內就可以知道有沒有找到目標)
MoveTo x y
//把鼠標移動到該色的坐標(如果找的是怪名字或血條,可能移動不到怪身上,這時就要用鼠標偏移如:MoveTo x+10 y+10)
Delay 50
//延時
LeftClick 1
//左鍵單擊進行攻擊
EndIf
//條件結束
註:
①。區域範圍的定位:
區域範圍指的是被搜索區域的範圍,這4個參數分別指的是區域的左,上,右,下。簡單的說就是取區域的左上角x,y坐標和右下角的x,y坐標,把這4個數值依次組合起來就是一個區域範圍了。
②。很多朋友對最後兩個坐標變量x,y不太瞭解,在這裡通俗的解釋一下:
顧名思義,這兩個變量是用來貯存找色或找圖後的坐標。當找到目標後,把目標所在的坐標位置貯存到這兩個變量裡,然後可以通過判斷這兩個坐標變量是否在區域範圍內來確定是否找到了目標。如果找到目標,貯存的是目標所在的坐標位置。如果沒有找到,那貯存的則是-1,所以我們也可以通過 if x=-1 and y=-1 來判斷沒有找到目標。
2。區域找圖 在區域裡查找怪的圖形、怪的名字圖片、血條圖片等等。語法與區域找色相似,需要注意的是圖片的處理。
圖片做好後可以放在按鍵文件夾裡的script文件夾中,就可以不用在腳本裡寫圖片路徑,只需圖片名就行了,寫腳本的時候比較方便。
例子(區域找圖):
VBSCall FindPic(0,0,1024,768,"1.bmp",0.9,x,y)
//區域找圖,0,0,1024,768為區域範圍,"1.bmp"為圖片名(路徑),0.9為找圖的相似度,x,y為找圖後儲存坐標的變量
If x>=0 and y>=0
//如果坐標在區域內(找到圖片)
MoveTo x y
//移動到圖片位置(圖片左上角)
Delay 50
//延時
LeftClick 1
//左鍵單擊
EndIf
//條件結束
3。圓形漸開線掃瞄找怪法 效率較低。
4。圓形漸開線掃瞄找變色怪 效率較低,下面是我以前收集的一個找變色怪的例子。
VBS dim x0,n,y0,x,color0,color
//聲明變量
Rem start
//標記漸開線找怪開始
VBS x0=400:n=1:y0=300:x=400
//變量初始化
While x<800
//限定橫坐標範圍不超過800
VBS x=x0+4*(cos(n)+n*sin(n))
//根據漸開線公式計算下一個點的橫坐標並賦值給x
VBS y=y0+3*(sin(n)-n*cos(n))
//根據漸開線公式計算下一個點的縱坐標並賦值給y
VBSCall color0=GetPixelColor(x,y)
//在鼠標移動之前,獲取目標點色值並賦值給color0
VBSCall Call SetCursorPos(x,y)
//馬上移動鼠標到目標點
VBSCall color=GetPixelColor(x,y)
//獲取鼠標移動後該點色值並賦值給color
If color<>color0
//同一點取得的兩次色值比較,不同,則執行以下的打怪腳本
LeftClick 1
//左鍵單擊
Delay 3000
//打怪延時
EndIf
//該點判斷結束
Delay 10
//循環延時
VBS n=n+0.2
//漸開線參數增量,其中0.2代表點間距,數值越小,漸開線散開點間距越小
EndFor
//一次漸開線取點判斷結束
Goto start
//跳轉到開始,重複漸開線搜索
5。小地圖找怪 公式: 大地圖怪坐標 = (小地圖怪坐標 - 小地圖人物坐標) * 比例 + 大地圖人物坐標
比例是(大地圖怪坐標和大地圖人物坐標之間的距離)與(小地圖怪坐標和小地圖人物坐標之間的距離)這兩者的比例。如下圖 A線與B線的比例。用小地圖找怪所需的計算數據必須比較準確。
然後用區域找色查找小地圖上怪的小點(最好用從區域中心向外找色),找到怪的小點後再計算坐標,計算得出大地圖坐標後,移動鼠標到怪身上打怪。
例子(小地圖找怪):
VBSCall FindCenterColor(858,66,996,192,"0000FF",x,y)
//區域從中間向外找色,858,66,996,192是小地圖的區域範圍
If x>=0 and y>=0
//如果找到顏色
x0=(x-926)*10+512
y0=(y-129)*10+389
//計算大地圖怪的坐標
MoveTo x0 y0
//移動到大地圖怪的坐標
Delay 50
//延時
LeftClick 1
//左鍵單擊進行攻擊
EndIf
//條件結束
註: 移動到怪位置後用「鼠標特徵碼比對」可有效提高找怪的準確性。(可用於所有找怪方式內)
暫時就寫這幾個了,當然找怪的方法不止這幾種而已,歡迎大家一起來討論與分享~! :)
資料來源:兄弟論壇
作者:晨風
使用按鍵有段時間了,對一些找怪的思路小有體會。簡單來說找怪就是找怪與背景不同的獨有的特徵,可以通過找怪的顏色/圖片、怪名字顏色/圖片、怪血條顏色/圖片、漸開線掃瞄、小地圖找怪等等的方法來實現。具體看遊戲而定,下面就介紹幾種找怪的方法:
1。區域找色 應該說是最簡單的找怪方法了,在區域裡查找怪的特有顏色、名字顏色、血條顏色、怪的陰影等等。如果找到移動鼠標到怪身上進行攻擊 (推薦用區域模糊找色或從區域中間向外找色)。
例子(區域模糊找色):
VBSCall FindColorEx(0,0,1024,768,"FFFFFF",1,0.8,x,y)
//區域模糊找色,0,0,1024,768為區域範圍,"FFFFFF"為顏色,1為查找方式(中間向外),0.8為模糊值,x,y為找色後儲存坐標的變量
If x>=0 and y>=0
//如果找到顏色(通過判斷坐標變量是否在區域內就可以知道有沒有找到目標)
MoveTo x y
//把鼠標移動到該色的坐標(如果找的是怪名字或血條,可能移動不到怪身上,這時就要用鼠標偏移如:MoveTo x+10 y+10)
Delay 50
//延時
LeftClick 1
//左鍵單擊進行攻擊
EndIf
//條件結束
註:
①。區域範圍的定位:
區域範圍指的是被搜索區域的範圍,這4個參數分別指的是區域的左,上,右,下。簡單的說就是取區域的左上角x,y坐標和右下角的x,y坐標,把這4個數值依次組合起來就是一個區域範圍了。
②。很多朋友對最後兩個坐標變量x,y不太瞭解,在這裡通俗的解釋一下:
顧名思義,這兩個變量是用來貯存找色或找圖後的坐標。當找到目標後,把目標所在的坐標位置貯存到這兩個變量裡,然後可以通過判斷這兩個坐標變量是否在區域範圍內來確定是否找到了目標。如果找到目標,貯存的是目標所在的坐標位置。如果沒有找到,那貯存的則是-1,所以我們也可以通過 if x=-1 and y=-1 來判斷沒有找到目標。
2。區域找圖 在區域裡查找怪的圖形、怪的名字圖片、血條圖片等等。語法與區域找色相似,需要注意的是圖片的處理。
圖片做好後可以放在按鍵文件夾裡的script文件夾中,就可以不用在腳本裡寫圖片路徑,只需圖片名就行了,寫腳本的時候比較方便。
例子(區域找圖):
VBSCall FindPic(0,0,1024,768,"1.bmp",0.9,x,y)
//區域找圖,0,0,1024,768為區域範圍,"1.bmp"為圖片名(路徑),0.9為找圖的相似度,x,y為找圖後儲存坐標的變量
If x>=0 and y>=0
//如果坐標在區域內(找到圖片)
MoveTo x y
//移動到圖片位置(圖片左上角)
Delay 50
//延時
LeftClick 1
//左鍵單擊
EndIf
//條件結束
3。圓形漸開線掃瞄找怪法 效率較低。
4。圓形漸開線掃瞄找變色怪 效率較低,下面是我以前收集的一個找變色怪的例子。
VBS dim x0,n,y0,x,color0,color
//聲明變量
Rem start
//標記漸開線找怪開始
VBS x0=400:n=1:y0=300:x=400
//變量初始化
While x<800
//限定橫坐標範圍不超過800
VBS x=x0+4*(cos(n)+n*sin(n))
//根據漸開線公式計算下一個點的橫坐標並賦值給x
VBS y=y0+3*(sin(n)-n*cos(n))
//根據漸開線公式計算下一個點的縱坐標並賦值給y
VBSCall color0=GetPixelColor(x,y)
//在鼠標移動之前,獲取目標點色值並賦值給color0
VBSCall Call SetCursorPos(x,y)
//馬上移動鼠標到目標點
VBSCall color=GetPixelColor(x,y)
//獲取鼠標移動後該點色值並賦值給color
If color<>color0
//同一點取得的兩次色值比較,不同,則執行以下的打怪腳本
LeftClick 1
//左鍵單擊
Delay 3000
//打怪延時
EndIf
//該點判斷結束
Delay 10
//循環延時
VBS n=n+0.2
//漸開線參數增量,其中0.2代表點間距,數值越小,漸開線散開點間距越小
EndFor
//一次漸開線取點判斷結束
Goto start
//跳轉到開始,重複漸開線搜索
5。小地圖找怪 公式: 大地圖怪坐標 = (小地圖怪坐標 - 小地圖人物坐標) * 比例 + 大地圖人物坐標
比例是(大地圖怪坐標和大地圖人物坐標之間的距離)與(小地圖怪坐標和小地圖人物坐標之間的距離)這兩者的比例。如下圖 A線與B線的比例。用小地圖找怪所需的計算數據必須比較準確。
然後用區域找色查找小地圖上怪的小點(最好用從區域中心向外找色),找到怪的小點後再計算坐標,計算得出大地圖坐標後,移動鼠標到怪身上打怪。
例子(小地圖找怪):
VBSCall FindCenterColor(858,66,996,192,"0000FF",x,y)
//區域從中間向外找色,858,66,996,192是小地圖的區域範圍
If x>=0 and y>=0
//如果找到顏色
x0=(x-926)*10+512
y0=(y-129)*10+389
//計算大地圖怪的坐標
MoveTo x0 y0
//移動到大地圖怪的坐標
Delay 50
//延時
LeftClick 1
//左鍵單擊進行攻擊
EndIf
//條件結束
註: 移動到怪位置後用「鼠標特徵碼比對」可有效提高找怪的準確性。(可用於所有找怪方式內)
暫時就寫這幾個了,當然找怪的方法不止這幾種而已,歡迎大家一起來討論與分享~! :)
文章標籤
全站熱搜

區域找圖...好像會因圖形大小而找不到圖形...可是模糊值太大又會點到其他NPC
請問大哥哥有辦法幫我解決此問題嗎?
[版主回覆08/19/2009 00:30:39]打怪通常使用區域找色,不太使用區域找圖。你好,想請教您一些問題,是有關找圖的設定,但是我對按鍵精靈還是不夠了解,方便用msn或是e-mail跟您連絡嗎?謝謝
[版主回覆08/26/2009 10:08:28]還是在無名或部落格討論,現在即時通,都已經不想開了,因為太多人要問啦你好~請問若NPC是滑鼠掃過才會出現血條與名字 有辦法利用這個特性找到地圖上的特定NPC嗎?(假設NPC一般狀況下看不到 要滑鼠掃過才會出現血條與名字)
例如"A"NPC掃過後會出現┌─────────┐ 滑鼠掃過後若出現此圖 則滑鼠移動到剛剛那個位置 點擊左鍵
│ A │
├─────────┤
│===========│←血條
└─────────┘
請問這樣有辦法嗎?感激不盡>"<
[版主回覆08/26/2009 12:35:44]建議使用劃圈式的「滑鼠特徵值」來找NPC。參考這篇知識加吧
http://tw.knowledge.yahoo.com/question/question?qid=1609081500839
請問如果我要找兩個圖的話
是要設兩個腳本嗎?? 還是有辦法在一個裡面直接設定找兩個圖??
感謝囉!
[版主回覆11/20/2009 11:40:56]找怪,建議不要用找圖的方法,要以找色方式會比較找的到怪物。2個圖或2個顏色,使用2次判斷式就可以了
看是要包在某1個判斷式裡面,或並行
想請問一下喔 我試玩網頁遊戲的
我使用上面教學的"區域找圖"來控制我的滑鼠
我ㄧ共有五個步驟,所以我就將上面的巨集用成五個=聚集1+聚集2+聚集3+聚集4+聚集5
直接往後疊加(就是直接複製加在下面)
唯一不同的就是在每個巨集中加加入"延遲時間"(等待網頁轉換...)
可是現在有個問題就是 如果網頁稍微出了問題
如果在巨集1的時候他就抓不到圖片,後面他就卡住了
我想請問的是,他有沒有辦法重複去抓圖,直到抓到了圖才進行下一個步驟
或是說沒抓到圖,就跳過直接進入聚集2 去找聚集2所需要的圖 之類的呢
PS:在巨集之間加上EndIf
指令請問有什麼特別的意思嗎?像我這種情況需要加嗎 麻煩了 謝謝
[版主回覆01/12/2010 12:40:15]腳本貼出來,幫你看看怎麼修改。VBSCall FindPic(0,0,1024,768,"01.bmp",0.9,x,y)
//區域找圖,0,0,1024,768為區域範圍,"01.bmp"為圖片名(路徑),0.9為找圖的相似度,x,y為找圖後儲存坐標的變量
If x>=0 and y>=0
//如果坐標在區域內(找到圖片)
MoveTo x y
//移動到圖片位置(圖片左上角)
Delay 50
//延時
LeftClick 1
//左鍵單擊
EndIf
//條件結束
Delay 5000
VBSCall FindPic(0,0,1024,768,"02.bmp",0.9,x,y)
//區域找圖,0,0,1024,768為區域範圍,"02.bmp"為圖片名(路徑),0.9為找圖的相似度,x,y為找圖後儲存坐標的變量
If x>=0 and y>=0
//如果坐標在區域內(找到圖片)
MoveTo x y
//移動到圖片位置(圖片左上角)
Delay 50
//延時
LeftClick 1
//左鍵單擊
EndIf
//條件結束
Delay 1000
VBSCall FindPic(0,0,1024,768,"03.bmp",0.9,x,y)
//區域找圖,0,0,1024,768為區域範圍,"03.bmp"為圖片名(路徑),0.9為找圖的相似度,x,y為找圖後儲存坐標的變量
If x>=0 and y>=0
//如果坐標在區域內(找到圖片)
MoveTo x y
//移動到圖片位置(圖片左上角)
Delay 50
//延時
LeftClick 1
//左鍵單擊
EndIf
//條件結束
Delay 13000
VBSCall FindPic(0,0,1024,768,"04.bmp",0.9,x,y)
//區域找圖,0,0,1024,768為區域範圍,"04.bmp"為圖片名(路徑),0.9為找圖的相似度,x,y為找圖後儲存坐標的變量
If x>=0 and y>=0
//如果坐標在區域內(找到圖片)
MoveTo x y
//移動到圖片位置(圖片左上角)
Delay 50
//延時
LeftClick 1
//左鍵單擊
EndIf
//條件結束
Delay 1000
VBSCall FindPic(0,0,1024,768,"05.bmp",0.9,x,y)
//區域找圖,0,0,1024,768為區域範圍,"05.bmp"為圖片名(路徑),0.9為找圖的相似度,x,y為找圖後儲存坐標的變量
If x>=0 and y>=0
//如果坐標在區域內(找到圖片)
MoveTo x y
//移動到圖片位置(圖片左上角)
Delay 50
//延時
LeftClick 1
//左鍵單擊
EndIf
//條件結束
Delay 13000
麻煩了3Q
你好,我試試把區域找色的腳本放進按鍵精靈
顏色用 ''抓點抓色'' 的功能抓到為紅色
保存運行時,鼠標自動跳到 左上角 ( 0,0)
請問哪裡出錯了?
[版主回覆05/30/2010 22:45:18]抓色出現問題,所以就會跳過左上角您好~如果要再同一張圖內 找到很多一樣圖形的圖案 用滑鼠各點1下 要怎麼寫呢?
你好 我要找怪物...我有試過找圖....不過都是找不到= =
目前看起來應該是找色比較容易,我目前是找名字旁邊的顏色,這部分有固定!!
但是要點到怪的偏移量很難抓,因為每隻怪的大小不一樣....除了一支一支設定以外有沒有更好的方法?
謝謝你
大大不好意思我有個問題^^ 目前語法是這樣的... FindColor 220,119,1244,739,"70759C",intX,intY If intX> 0 And intY> 0 Then MoveTo intX And intY KeyPress "F2", 1 Delay 500 LeftClick 1 End If 但如果找不到顏色70759C 想把鼠標指到731,447 該如何修改呢? 我是初學者請大大多多包含QQ [版主回覆04/18/2012 19:04:45]上Facebook,搜尋「按鍵精靈~腳本研究及分享討論專區~」,會有其它高手幫你解決