September 25, 2009

【按鍵精靈-中級篇】網路遊戲找怪思路詳解(轉貼)

網路遊戲找怪思路詳解

資料來源:兄弟論壇
作者:晨風

使用按鍵有段時間了,對一些找怪的思路小有體會。簡單來說找怪就是找怪與背景不同的獨有的特徵,可以通過找怪的顏色/圖片、怪名字顏色/圖片、怪血條顏色/圖片、漸開線掃瞄、小地圖找怪等等的方法來實現。具體看遊戲而定,下面就介紹幾種找怪的方法:

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
//條件結束

註: 移動到怪位置後用「鼠標特徵碼比對」可有效提高找怪的準確性。(可用於所有找怪方式內)

暫時就寫這幾個了,當然找怪的方法不止這幾種而已,歡迎大家一起來討論與分享~! :)

0推薦此文章
Today's Visitors: 0 Total Visitors: 22039
[Trackback URL]

Reply
  • 1樓

    1樓搶頭香

    請問爆爆王也能用這方法嗎??

  • at October 25, 2009 03:40 AM comment
  • 任何按鍵精靈相關,歡迎至按鍵精靈官網「兄弟論壇」
    繁體討論區,發問。謝謝!
    http://bbs.vrbrothers.com/forumdisplay.php?fid=34
    繁體、綜合討論區版主-【魔幻小鱉】

  • Blog Owner at November 5, 2009 11:55 PM Reply
  • 2樓

    2樓頸推

    osdihgilsgjlsdgs

  • sam at November 28, 2010 11:08 PM comment | email
  • 3樓

    3樓坐沙發

    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
    //條件結束

    註: 移動到怪位置後用「鼠標特徵碼比對」可有效提高找怪的準確
    性。(可用於所有找怪方式內)

    暫時就寫這幾個了,當然找怪的方法不止這幾種而已,歡迎大家一起來討
    論與分享~! :)

  • sam at November 28, 2010 11:15 PM comment | email Homepage
  • 4樓

    福樓

    我喜欢情意

  • sam at November 28, 2010 11:16 PM comment | email Homepage
  • 5樓

    專業的5樓

    大大可以加即時通嗎?
    大大除了精通按鍵精靈還會其他的外掛製作程式嗎(如CE.....
    小地想要插入後台控制掛機的指令
    Dim Hwnd

    Hwnd = Plugin.Window.Find(0, "程式名稱") //視
    窗的名字(自己打)不要留著喔


    While true

    For 1
    Call Plugin.Bkgnd.KeyPress(Hwnd, 9)
    Call Plugin.Bkgnd.KeyPress(Hwnd, 113)
    Delay 15000

    Next

    Wend

    這是後台控制遊戲,案Tab找怪,案F2攻擊經過15秒再循環一次
    有沒有可以鎖定怪物直到怪物死亡才繼續下個找怪循環的指令呢?
    請問我要如何插入小地圖找怪的指令碼呢?
    希望可以與大大做朋友
    互相討溣腳本的相關製作
    謝謝

  • jack800417 at November 28, 2010 11:56 PM comment | email
  • 6樓

    6樓

    挂机用的

  • sam at November 29, 2010 05:26 PM comment | email Homepage
  • 7樓

    7樓

    ♪ヾ(。・ω・。)ノ゙

  • 弓俊明 at May 27, 2012 11:22 AM comment | email Homepage
  • 8樓

    8樓

    我想知道 當我設定->IfColor xxx,xxx,xxxxxx,0 之後想跳回可能是第
    3個步驟 應該怎設定

  • aRwai at August 9, 2012 03:14 AM comment | email
  • 9樓

    9樓

    こんぱんだ♪ヾ(●ω●)ノ”フリフリ

  • 籍志偉 at November 7, 2012 02:07 PM comment | email Homepage
  • 10樓

    10樓

    自己也寫了哥跟大大差不多的找圖 可是當他執行完畢 會卡住在 剛剛剛的找圖點 不會進行下一個點的動作

  • sd387895 at February 25, 2013 07:48 PM comment | prosecute
  • 11樓

    11樓

    ウワァァ-----。゚(゚´Д`゚)゚。-----ン!!!!

  • 林慧玲 at September 3, 2013 02:28 PM comment | email Homepage
Post A Comment









Yes No



Please input the magic number:

( Prevent the annoy garbage messages )
( What if you cannot see the numbers? )
Please input the magic number

誰來收藏
Loading ...
unlog_NVPO 0