黃易群俠傳M脫機外掛應用程式黃易神行
14272
5

[分享] 找色找圖(易語言初級教程)

kuo1021 發表於 2009-4-1 20:20:33 | 只看該作者 回帖獎勵 |正序瀏覽 |
本節要講的是如何查找顏色值或圖像所在的座標位置。
遊戲中可以根據某些座標處的顏色值進行判斷再決定如何去做。
比如常見的是在血值顏色條與魔值顏色條上。


用戶可以自已使用 類_DC物件。
取座標顏色() 來獲取顏色值進行判斷,建議為了相容一些電腦解析度設置為 中(1位) 與 最高(32位) 兩種模擬,
在取座標顏色時取16位色值進行判斷。

為了方便顏色值的判斷,在 類_DC物件 奡ㄗ悀F 直線找色() 矩形找色() 的功能.。

副程式名:直線找色
根據提供的RGB顏色值在指定的線上查找,返回找到對應顏色點所在的座標。
返回值類型:邏輯型
參數<1>的名稱為“窗口控制碼”,類型為“整數型”。
注明:0=螢幕控制碼。

參數<2>的名稱為“查RGB值”,類型為“整數型”。
注明:24位,32位RGB顏色值。

參數<3>的名稱為“起始座標”,類型為“座標”。

注明:要查找RGB值的起始定點座標位置。

參數<4>的名稱為“線段長度”,類型為“整數型”。

注明:以定點座標向某一方位進行查找的距離。

參數<5>的名稱為“查找方向”,類型為“整數型”。

注明:1=從上到下,2=從下到上,3=從左到右,4=從右到左.默認從上到下。

參數<6>的名稱為“顏色座標”,類型為“座標”,接收參數資料時採用參考傳遞方式。
注明:返回查找到該RGB值最初出現的座標位置。

參數<7>的名稱為“GDI視窗”,類型為“邏輯型”,允許接收空參數資料。
注明:假=DirectX遊戲視窗,不支援後臺視窗,真=普通的GDI程式視窗。
若GDI視窗在XP、2003、vista系統支援後臺視窗,但不支援最小化視窗。

在 類_DC物件中的 直線找色() 功能可以進行 從左到右 從右到左 的橫向顏色值查找。
也可以進行 從上到下 從下到上 的縱向顏色值查找。
該功能的用法很簡單,提供一個起始的座標。
在查找顏色時會最先從這個座標點開始,向某個方向直線查找一段距離。
找到批配的顏色值時,會返回真,並設置顏色座標為相對於視窗控制碼距離的座標...

若找不到批配的顏色值時會返回假。






類_DC對象.直線找色()


除了直線找色外,在 類_DC 媮晹 矩形找色() ,指定左邊,頂邊,寬度,高度的矩形區域。
在這個區域堿d找批配的顏色值所在的座標位置。

副程式名:矩形找色
根據提供的RGB顏色值在指定的矩形區域中查找,返回找到對應顏色點所在的座標。

返回值類型:邏輯型
參數<1>的名稱為“窗口控制碼”,類型為“整數型”。

注明:0=螢幕控制碼。

參數<2>的名稱為“查RGB值”,類型為“整數型”。
注明:24位,32位RGB顏色值。

參數<3>的名稱為“矩形範圍”,類型為“矩形”,允許接收空參數資料。
注明:指定要查找RGB值的矩形範圍.若空將使用目標視窗控制碼客戶區矩形範圍或全螢幕範圍。

參數<4>的名稱為“查找步長”,類型為“整數型”。
注明:跨點距離。

參數<5>的名稱為“查找跨度”,類型為“整數型”。
注明:跨行距離。

參數<6>的名稱為“查找方向”,類型為“整數型”。
注明:1=從上到下,2=從下到上,3=從左到右,4=從右到左,5=從外到內,6=從內到外。

參數<7>的名稱為“顏色座標”,類型為“座標”,接收參數資料時採用參考傳遞方式。
注明:返回查找到該RGB值最初出現的相對於螢幕的座標位置。

參數<8>的名稱為“GDI視窗”,類型為“邏輯型”,允許接收空參數資料。
注明:假=DirectX遊戲視窗,不支援後臺操作,真=普通的GDI程式視窗。
若GDI視窗在XP、2003、vista系統支援後臺視窗,但不支援最小化視窗。

矩形找色() 多了 查找步長,查找跨度 兩個參數..因為考慮到有時候矩形面積很大時,
查找處理速度會慢點,若要查找的顏色值是一個非單圖元大點的塊狀情況下,
可以適量的設置 查找步長,查找跨度 能加快整個查找的速度。




類_DC對象.矩形找色()


使用找色的功能來應付血魔量還是比較好用的。
可以把一個血條的長度分為百分比,然後根據顏色值計算當前血魔量處於這個條中的百分之幾比例,
再決定按某些吃藥水的鍵碼或打坐等回血功能。
可以實現些簡單的動作模擬外掛。

除了找色之外,在 類_DC物件中還有提供了找圖功能,通過該功能可以用來查找出人物附近的地面物品,
背包,按鈕,怪物等的座標.再去進行動作模擬操作。
在找圖之前先說一下截圖..在遊戲,可以使用 HprSnap 這個軟體進行截圖。
然後在截到的圖堙A把物品給剪切出來.把周圍無關的顏色抹掉.然後保存為 BMP 點陣圖檔,供找圖用…



注意,必需得保存為不失真的 BMP 點陣圖檔,不能存成 GIF JPG 等會造成圖像失真的格式…

也可以使用 類_DC物件.截圖() 來保存遊戲畫面為BMP檔,再剪切物品等圖像再處理…

副程式名:截圖

返回值類型:邏輯型
參數<1>的名稱為“窗口控制碼”,類型為“整數型”。

注明:0=螢幕控制碼。

參數<2>的名稱為“矩形範圍”,類型為“矩形”,允許接收空參數資料。
注明:要截取圖像的矩形範圍.若空將截取目標視窗控制碼客戶區矩形範圍或全螢幕範圍。

參數<3>的名稱為“保存檔”,類型為“文本型”,允許接收空參數資料。
注明:把截圖到的圖像以 bmp 格式保存到磁片上。

參數<4>的名稱為“圖像資料”,類型為“位元組集”,接收參數資料時採用參考傳遞方式,允許接收空參數資料。
注明:返回截圖出來的這幅點陣圖位元組集資料。

參數<5>的名稱為“GDI視窗”,類型為“邏輯型”,允許接收空參數資料。
注明:假=DirectX遊戲視窗,不支援後臺操作,真=普通的GDI程式視窗.若GDI視窗在XP、2003、vista系統支援後臺視窗,但不支援最小化視窗。




模組堛犖I圖功能,截取的圖像只為客戶區域,所以不含標題欄等。


下面,我們假設要去查找一個QQ表情堛
這個色色的圖像,如果先處理該圖像中要被怱略不進行批配的顏色。
先用 HprSnap 這個軟體來打開這個圖像檔,並且放大到最大狀態。




打開圖像檔,放大到最大狀態,取消背景色的使其透明功能。






然後把不想進行判斷的易受干擾的顏色值抹成某一單種顏色。
例如上面我把這個外輪廓全抹成了紅色.這個色臉的內部部份顏色有需要的話也可以抹一下的...
抹掉了易干擾的顏色後,保存為BMP檔,注意,必需為16位或32位BMP檔,不能進行壓縮...

製作好了用來找圖的圖像檔後,就可以編寫找圖的代碼了,使用 類_DC物件.矩形找圖() 功能即可。

副程式名:找圖預處理
填充一個找圖專用的資料結構,供 矩形找圖() 使用

返回值類型:邏輯型
參數<1>的名稱為“BMP檔”,類型為“文本型”,允許接收空參數資料。

注明:BMP檔 與 BMP資料 兩個參數只需填入其中一個即可。

參數<2>的名稱為“BMP資料”,類型為“位元組集”,允許接收空參數資料。
注明:若不想用BMP檔來載入,可把BMP檔存在易的圖片資源堳幓ㄗ捄馴趕捊い洏峞C

參數<3>的名稱為“透明RGB”,類型為“整數型”。

注明:在找圖過程要要怱略掉不行進批對的RGB顏色,默認=0=黑色。

參數<4>的名稱為“找圖結構”,類型為“找圖結構”,接收參數資料時採用參考傳遞方式。


副程式名:矩形找圖

返回值類型:邏輯型
參數<1>的名稱為“窗口控制碼”,類型為“整數型”。

注明:0=螢幕控制碼。

參數<2>的名稱為“找圖結構”,類型為“找圖結構”。
注明:使用找圖預處理() 填充的一個資料結構。

參數<3>的名稱為“矩形範圍”,類型為“矩形”,允許接收空參數資料。
注明:指定要查找圖像的矩形範圍.若空將使用目標視窗控制碼客戶區矩形範圍或全螢幕範圍。

參數<4>的名稱為“查找方向”,類型為“整數型”。
注明:1=從上到下,2=從下到上,3=從左到右,4=從右到左,5=從外到內,6=從內到外。

參數<5>的名稱為“圖像座標”,類型為“座標”,接收參數資料時採用參考傳遞方式。
注明:返回查找到該圖像最初出現的相對座標位置。

參數<6>的名稱為“GDI視窗”,類型為“邏輯型”,允許接收空參數資料。
注明:假=DirectX遊戲視窗,不支援後臺操作,真=普通的GDI程式視窗。
若GDI視窗在XP、2003、vista系統支援後臺視窗,但不支援最小化視窗。






先使用 找圖預處理() 填充好要查找的圖像資料結構,供後期的找圖功能使用。






類_DC對象.矩形找圖() 成功找到圖像後會返回真,並設置圖像座標為查找的圖像中心位置 。

用戶可以自已製作處理遊戲中的物品,怪物,按鈕等的圖像試試找圖功能…

找到相應的圖像後再進行動作類比操作等。未來模組中會再增加模糊找圖,查找形狀,圖像取詞等功能。
收藏收藏 分享分享 讚 幹 分享分享 FB分享
回覆

使用道具 舉報


seraphimer 當前離線
UID
1372141
熱心
11 值
嘉獎
0 次
違規
0 次
在線時間
0 小時
經驗
15 點
積分
15
精華
0
最後登錄
2009-12-17
閱讀權限
10
註冊時間
2009-12-17
論壇幣
22 幣
聯合幣
0 枚
幸運鑽
0 顆
招待卷
0 點
查看詳細資料
Rank: 1
6
seraphimer 2009-12-18 09:45:04
解說的相當詳細...感謝大大的分享
play myself
回覆

使用道具 舉報

aatimeaa 當前離線
UID
370293
熱心
52 值
嘉獎
0 次
違規
0 次
在線時間
34 小時
經驗
35 點
積分
146
精華
0
最後登錄
2018-8-2
閱讀權限
20
註冊時間
2007-5-10
論壇幣
10 幣
聯合幣
9 枚
幸運鑽
0 顆
招待卷
0 點
查看詳細資料
Rank: 2Rank: 2
5
aatimeaa 2009-10-27 10:37:32
有點難
但還是會努力學習
謝大大分 享
回覆

使用道具 舉報

sumiko 當前離線
UID
1076295
熱心
247 值
嘉獎
0 次
違規
0 次
在線時間
100 小時
經驗
200 點
積分
634
精華
0
最後登錄
2010-8-30
閱讀權限
30
註冊時間
2008-11-22
論壇幣
84 幣
聯合幣
0 枚
幸運鑽
0 顆
招待卷
255 點
查看詳細資料
Rank: 4Rank: 4
sumiko 2009-6-28 04:45:30
謝謝大大無私的分享喔^^
回覆

使用道具 舉報

sumiko 當前離線
UID
1076295
熱心
247 值
嘉獎
0 次
違規
0 次
在線時間
100 小時
經驗
200 點
積分
634
精華
0
最後登錄
2010-8-30
閱讀權限
30
註冊時間
2008-11-22
論壇幣
84 幣
聯合幣
0 枚
幸運鑽
0 顆
招待卷
255 點
查看詳細資料
Rank: 4Rank: 4
sumiko 2009-6-28 04:43:56
謝謝大大無私的分享喔^^
回覆

使用道具 舉報

redmmcrab 當前離線
UID
631024
熱心
24 值
嘉獎
0 次
違規
0 次
在線時間
5 小時
經驗
20 點
積分
160
精華
0
最後登錄
2018-8-6
閱讀權限
20
註冊時間
2007-11-6
論壇幣
105 幣
聯合幣
6 枚
幸運鑽
0 顆
招待卷
0 點
查看詳細資料
Rank: 2Rank: 2
redmmcrab 2009-6-9 02:05:44
解說的相當詳細...感謝大大的分享YCT65B
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊


手機版 | Archiver | 外掛聯合國

GMT+8, 2024-11-25 07:36 , Processed in 0.052307 second(s), 17 queries , Memcache On.

版權說明:
  本站不會製作、經銷、代理外掛程式。僅免費提供外掛程式下載前之掃毒及掃木馬等安全檢測驗證,協助會員遠離盜號危險程式。本站所有資料均來自網際網路收集整理,說明文字暨下載連結轉載自原程 式開發站。站上出現之公司名稱、遊戲名稱、程式等,商標及著作權,均歸各公司及程式原創所有,本站程式所有權歸外掛聯合國所有。本程式所有權歸外掛聯合國所有.......

回頂部
第二步?
第三步?