close
上一節說到取遊戲位置,那麼取到的窗口坐標遊戲窗口最左上角開始計算的,為遊戲裡的小窗口是固定的,所以不管遊戲窗口怎麼改變位置,相對位置是不會變的。

繼續設計,思路:
取到坐標點後,利取屏幕顏色坐標來獲取指定的的顏色,我們就可以作為分析遊戲血藍的信息了。
每次遊戲重新啟動後,固定位置可能發生變化,那麼我們需要一個可以快速獲取坐標和顏色的方法,要直觀且方便
所以,我們採取的方法就是 ,利用截屏技術,獲取遊戲窗口上一部分的遊戲畫面,把動態的轉為靜態,再在靜態圖上獲取顏色點。

下面是實現代碼:
Private Sub SetPicPixel(mx As Long, my As Long)
    GameFormDC = GetDC(GameFormHwnd)
    Dim i As Long, j As Long, pdx As Long, pdy As Long
    pdx = Picture2.Width
    pdy = Picture2.Height
    BitBlt Picture2.hdc, 0, 0, pdx, pdy, GameFormDC, mx - pdx / 2, my - pdy / 2, SRCCOPY
    SetPixel Picture2.hdc, pdx \ 2, pdy \ 2, vbWhite
    Picture2.Refresh
    ReleaseDC GameFormHwnd, GameFormDC
    Picture3.PaintPicture Picture2.Image, 0, 0, Picture2.Width * (Picture3.Width / Picture2.Width), Picture2.Height * (Picture3.Width / Picture2.Width)
End Sub
在窗口上放置2個PictureBox 控件,名字為 Picture2 和 Picture3
這段代碼的功能就是,在已經獲取了遊戲窗口句柄後,通過API函數,將遊戲窗口的一部分畫面繪製到Picture2 上,在經過放大處理,繪製到Picture3 上

圖如下:
  
(好像在官網也看不到圖片)

經過放大以後,就可以利用間的點,上下左右移動,獲取我們需要的坐標了,當然,相對坐標必須弄清楚,不然取不到正確的坐標。

當取色和取坐標模塊完成的時候,我們就可以開始設計真正有用的部分了。
在武林還可以模擬按鍵的時候,我們用模擬按鍵最方便,不用去分析遊戲龐大的內存,就可以很簡單的控制遊戲打怪撿物等。

到這裡差不可以設計掛的各個功能了,至於怎麼設計,每人的算法可能不太一樣,下面我就把顏色版的完整源碼傳上來。裡面基本上沒有註釋,呵呵,因為我太懶勒。有什麼不明白的地方,回帖或發帖,我隔段時間就回來看看,和大一起交流交流。

下一節,我們正式進入 內掛的製作學習中

轉自TW-SHARE
 
 
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 UM程式研究日誌 的頭像
    UM程式研究日誌

    UM程式研究日誌

    UM程式研究日誌 發表在 痞客邦 留言(0) 人氣()