首頁:‎ > ‎使用教學‎ > ‎腳本教學‎ > ‎

色點判斷,想自動補血打怪嗎?不能不學!


色點判斷是練功快手一個很重要的邏輯指令。為什麼重要?遊戲中的任何變化都是透過畫面的不同轉換來呈現。例如玩家的HP、SP等。HP血條通常是紅色,所以就可以利用色點判斷指令來判斷血條中的某一點是不是紅色,不是紅色那就要快喝水或是放技能。SP也是如此。而有些回合制的遊戲,進入戰鬥畫面跟平時畫面會有點不同,我們也可以利用這差異,來進行不一樣的指令。這樣有點概念了吧!

但是,現在的遊戲公司都變聰明了。色點都變成半透明。所以,增加了色點判斷的困難度。

OK,進入正題。講一下血條色點判斷怎麼用。

1. 打開你的遊戲,新增一個腳本。設定好遊戲視窗名稱。
2. 新增一個色點判斷的動作。


3. 按「抓取色點」


4. 這時會先切到遊戲畫面,停個幾秒再切回來。然後出現如下畫面。

假設我們想在HP剩一半時,按某個快速鍵喝HP恢復劑那該怎麼做?以這個遊戲為例,HP一半的座標大概是(128, 28)。所以把滑鼠移到血條一半的位置,按鍵盤"C"鍵。就會紀錄座標跟顏色。再按「確定」。回到編輯畫面。有時滑鼠不好定位,可以利用鍵盤的方向鍵來微調滑鼠座標。

5. 新增一個鍵盤動作。假設恢復劑的快速鍵是F1。這個動作集的意思就是,當血條座標(128, 28)不是紅色時,按F1。這樣懂了吧。


6. 但是動作集的執行速度非常快,這樣的色點判斷可能拖累你的遊戲。所以要加上延時。每秒執行10次就好。點一下「動作集」,新增延時動作。腳本結構如下圖。

這樣你就完成你第一個自動補血的動作集。

7. 你也可以改變判斷式用等於某個顏色來做判斷。例如血條有滿跟不滿兩種顏色。你也用當血條座標顏色 = 不滿時顏色作為判斷式。


8. 至於顏色相似性是什麼東西?如同我一開始講的。現在遊戲血條的顏色可能是半透明。我們就可以加大相似性的範圍來提高判斷的準度。
每個色點都是用藍綠紅三元素組成。元素的範圍是(0 - 255)。相似性範圍就是判斷色點色元素的值是否落在 + -相似值之間。
假設色點顏色是 0x0000FF 表示純紅色 0xFF(255)
經過半透明有可能是 0x0000C0  0xC0(192)
那你就把紅色相似性設成 63。 255 - 192 = 63

至於色點判斷只能用在血條嗎?當然不止。這就讓你自己去想像囉。

假如以程式語言來說,色點判斷的程式碼就是
Color  clrPt = getColor(x, y);
if((clrPt = = clrCheck)  = = command)
{
 do something...


9. 忽略滑鼠座標。預設是不勾選。當我們判斷色點時,可能會抓到滑鼠游標的顏色,造成誤判。所以當滑鼠游標在色點附近時,程式會忽略不做任何判斷。但是有時我們卻是要抓滑鼠游標的顏色,這時就要勾選了