Poker Posted February 20, 2006 Share Posted February 20, 2006 Hey! Could some1 help me make a script for colour detection? I want the script to search for a colour within a certain range, and area. When it finds the colour, execute a simple command like sending a "1" or "2". The code is a script, Ive tried to modify for the use above, but I cant get it to work. WinWaitActive("World of Warcraft") HotKeySet("{F2}", "Start") HotKeySet("!{F2}","Quit") TogglePause() func Start() HotKeySet("{F2}") HotKeySet("{F2}", "TogglePause") ToolTip('Swap off-weapon started.',0,20) While 1 PixelSearch( 930, 200, 940, 210, 0x950B0B ) If Not @error Then Sleep(1000) EndIf If Then Send ("{2}") EndIf WEnd Endfunc Func TogglePause() ToolTip('Swap off-weapon Stopped.',0,20) HotKeySet("{F2}") HotKeySet("{F2}", "Start") While 1 sleep(100) WEnd EndFunc func Quit() Exit EndFunc Link to comment Share on other sites More sharing options...
Nuffilein805 Posted February 20, 2006 Share Posted February 20, 2006 check this topic#150784i'm sure you can change it to your needsif not - feel free to ask my little chatmy little encryption toolmy little hidermy unsafe clickbot Link to comment Share on other sites More sharing options...
Poker Posted February 20, 2006 Author Share Posted February 20, 2006 Soz, cant really seem to get it working. Anyways the script shouldnt be more complex than:- 1. Search for red colour in an area of the screen. 2. If the colour is found, then send one key stroke. 3. If the colour isnt there, then wait for no more than 1 sec. then start over with the searching. Hope you could help me:) Link to comment Share on other sites More sharing options...
Valuater Posted February 21, 2006 Share Posted February 21, 2006 (edited) maybe... Func Start() HotKeySet("{F2}") HotKeySet("{F2}", "TogglePause") ToolTip('Swap off-weapon started.', 0, 20) While 1 PixelSearch(930, 200, 940, 210, 0x950B0B) If Not @error Then Send("{2}") EndIf Sleep(1000) WEnd EndFunc ;==>Start EDIT... i noticed you searching a large screen.. no color variation, and not skipping pixels to speed up the search you need to read-up on pixelsearch in help 8) Edited February 21, 2006 by Valuater Link to comment Share on other sites More sharing options...
DeFuser Posted February 21, 2006 Share Posted February 21, 2006 expandcollapse popup#NoTrayIcon #Include <Misc.au3> Opt("MustDeclareVars", 1) Dim $dll = DllOpen("user32.dll") Dim $pos[2] Dim $kicks While 1; main loop HotKeySet("{F9}", "Terminate") Do Sleep(100) Until _ispressed ("77", $dll) = 1; do nothing until F8 is pressed For $kicks = 0 To 3; 4 balls - 4 cycles $pos = GetCoordinate() Sleep(2000) TapThatBar($pos) Sleep(2000) Next WEnd DllClose($dll) Exit Func GetCoordinate(); sets the position of the pixel to check Dim $pos While _ispressed (01, $dll) = 0; detect left mouse click $pos = MouseGetPos() Sleep(50) WEnd Return $pos EndFunc Func TapThatBar($pos); sends a {space} when the target pixel is white Local $pix_color Do $pix_color = PixelGetColor($pos[0], $pos[1]) Until $pix_color = 16777215 Send("{SPACE}") EndFunc Func Terminate() Exit 0 EndFunc I wrote the above to detect when a given pixel (set by mouse click) was white. Once said rascal turned white, the code "TapsThatBar" (space bar). I am sure that you can get it to check a given area with a little tweaking. Good luck BTW - I'm new to this, so if anyone can offer pointers on my code (better practices, bad habits, etc.) feel free to comment. Cheers, Def Link to comment Share on other sites More sharing options...
Poker Posted February 21, 2006 Author Share Posted February 21, 2006 maybe... Func Start() HotKeySet("{F2}") HotKeySet("{F2}", "TogglePause") ToolTip('Swap off-weapon started.', 0, 20) While 1 PixelSearch(930, 200, 940, 210, 0x950B0B) If Not @error Then Send("{2}") EndIf Sleep(1000) WEnd EndFunc;==>Start EDIT... i noticed you searching a large screen.. no color variation, and not skipping pixels to speed up the search you need to read-up on pixelsearch in help 8) I shouldnt be searching a larger area of the screen, only 10x10 pixel. And the colour variation have to be so small, cause it should only send "2" when a specific red is found within that area. BTW I havent tested your script to the max yet, but the initial testing is looking good Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now