Kal Posted December 16, 2007 Posted December 16, 2007 (edited) Hi, I'm writing a bot for a game called Tales of Pirates. I want the bot to search the screen for a a pixel with a specific color and then click that pixel. The problem I am having is that I can't get the pixel search to only search the game window. This is my test code: WinWaitActive("Tales of Pirates - Union War") While 1 $window_info = WinGetPos("Tales of Pirates - Union War") $enemy_coords = PixelSearch($window_info[0], $window_info[1], $window_info[2], $window_info[3], 0xC8600C) If @error == 0 Then MouseMove($enemy_coords[0], $enemy_coords[1], 0) MouseClick("left") EndIf Sleep(100) WEnd This is the line that is not working correctly: $enemy_coords = PixelSearch($window_info[0], $window_info[1], $window_info[2], $window_info[3], 0xC8600C) I'm trying to get the script to only search the game window by getting the x and y coords and the window width and heigth and then use those variables to sepcify the area that PixelSearch() searches through. Shouldn't this work? I mean the PixelSearch() function takes 4 parameters: left, top, right and bottom. If I use WinGetPos() I get the window's x position, y position, width and heigth. So if I only want to search the game window the "left" paramater should equal the window's x position, the "top" parameter should equal the window's y position, the "right" parameter should equal the window's width and finally the "bottom" paramater should equal the windows heigth, right? Am I missing something here because nothing happens when I run that code. However, it works when type this: $enemy_coords = PixelSearch(0, 0, 1440, 900, 0xC8600C) (1400 x 900 is my desktop resolution) but then it searches through the whole screen and I only want it to search through the game window. Any help is appreciated! And by the way I got another question concerning pixel search. Is it possible to use a pixel search that only matches when more than one pixel has the right color? For example say that I want pixel search only to match when a red pixel is to the left of a green pixel and to the right of a blue pixel. Can you do that somehow? Edited December 16, 2007 by Kal
Jex Posted December 16, 2007 Posted December 16, 2007 (edited) I think that will work true : $enemy_coords = PixelSearch($window_info[0], $window_info[1], $window_info[0] + $window_info[2], $window_info[1] + $window_info[3], 0xC8600C) Is it possible to use a pixel search that only matches when more than one pixel has the right color? Look here for MultiPixelSearch : http://www.autoitscript.com/forum/index.php?showtopic=55769 Edited December 16, 2007 by Jex My scripts : Immediate Window , My Web Browser , Travian , Text Effect , Characters & Words per minute or second , Image Editor (ImageMagick) , Matrix style background effect ( Screensaver ) , Mail Sender , Protectlinks decoder and Rapidshare links checker , Fonts Fetcher , Region determine , Compare pictures , Gradient color box , Mouse Coordinates, Colors, Pixel Search things , Encrypt/Decrypt and embeding file in jpeg thing , Hard disk space monitor , Reflex game , Multiplayer Tic Tac Toe , WLM ( MSN ) personal message changer
Kal Posted December 16, 2007 Author Posted December 16, 2007 Yes that worked! Thanks a lot! Would you mind explaining how it works too? Why should the "width" parameter be the window width plus the x pos, shouldn't that result in a pixel search area that is bigger than the window? And the same thing for "heigth".
Jex Posted December 16, 2007 Posted December 16, 2007 My scripts : Immediate Window , My Web Browser , Travian , Text Effect , Characters & Words per minute or second , Image Editor (ImageMagick) , Matrix style background effect ( Screensaver ) , Mail Sender , Protectlinks decoder and Rapidshare links checker , Fonts Fetcher , Region determine , Compare pictures , Gradient color box , Mouse Coordinates, Colors, Pixel Search things , Encrypt/Decrypt and embeding file in jpeg thing , Hard disk space monitor , Reflex game , Multiplayer Tic Tac Toe , WLM ( MSN ) personal message changer
Kal Posted December 16, 2007 Author Posted December 16, 2007 Ahaa! Ok now I understand. I thought that Width == the whole window's width. Thanks again.
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