Greenseed Posted January 26, 2008 Share Posted January 26, 2008 Hi everyone... long time i had not done a Autoit script I was just lazy today.. and looking one of my friend playing Guitar Hero III.... im so bad at that game mouhaha! So i started a Bot with PixelGetColor feature, but was not working, since each time i call that function, Autoit Take a complete screenShot from the GDI and search the pixel from there... There is 5 Button, so that mean 5 ScreenShot... not good at all... Then i managed to get 1 ScreenShot and after that reading pixel Color for my 5 region and then Send the right Key Press... The bot is not perfect into that version... since the goal here is to show off a script that can maybe be helpfull for other serious need i saw many ppl searching how to grab pixel color from memory expandcollapse popup#region opt and variable Opt("SendKeyDelay", 0) ;5 milliseconds Opt("SendKeyDownDelay", 15) ;1 millisecond Opt("SendAttachMode",1) Opt("TrayIconDebug", 0) ;0=no info, 1=debug line info Opt("TrayIconHide", 1) ;0=show, 1=hide tray icon Opt("WinDetectHiddenText", 0) ;0=don't detect, 1=do detect #include <GDIPlus.au3> #include <ScreenCapture.au3> #include <Color.au3> ProcessSetPriority ( @AutoItPID, 4) Global $MemoryContext $Stop = false HotKeySet("{END}", "end") Hotkeyset("{INSERT}", "start") while 1 sleep(7) wend Func stop() $Stop = true Hotkeyset("{INSERT}", "start") DllCall("gdi32.dll", "int", "DeleteDC", "hwnd", $MemoryContext) _GDIPlus_ShutDown () send("{z up}") send("{x up}") send("{c up}") send("{v up}") send("{b up}") EndFunc Func end() DllCall("gdi32.dll", "int", "DeleteDC", "hwnd", $MemoryContext) _GDIPlus_ShutDown () send("{z up}") send("{x up}") send("{c up}") send("{v up}") send("{b up}") Exit EndFunc ; Guitar Hero III: Legends of Rock Func start() Hotkeyset("{INSERT}", "stop") _GDIPlus_Startup () dim $down[5] local $detected $detected = false $MemoryContext = DllCall("gdi32.dll", "int", "CreateCompatibleDC", "int", 0) $MemoryContext = $MemoryContext[0] while not $Stop $HBITMAP = _ScreenCapture_Capture("", 200, 480, 600, 520,false) DllCall("gdi32.dll", "hwnd", "SelectObject", "int", $MemoryContext, "hwnd", $HBITMAP) ;Orange $Color = DLLCall("gdi32.dll","int","GetPixel","int",$MemoryContext,"int",65,"int",33) if BitAND($Color[0],0xFF0000) > 655360 then if not $down[0] then send("{b down}") $down[0] = true $detected = true EndIf ElseIf $down[0] Then send("{b up}") $down[0] = false EndIf ;Blue $Color = DLLCall("gdi32.dll","int","GetPixel","int",$MemoryContext,"int",132,"int",33) if BitAND($Color[0],0xFF0000) > 655360 then if not $down[1] then $detected = true $down[1] = true send("{v down}") EndIf ElseIf $down[1] Then send("{v up}") $down[1] = false EndIf ;Yellow $Color = DLLCall("gdi32.dll","int","GetPixel","int",$MemoryContext,"int",200,"int",34) if BitAND($Color[0],0xFF0000) > 655360 then if not $down[2] then $down[2] = true send("{c down}") $detected = true EndIf ElseIf $down[2] Then send("{c up}") $down[2] = false EndIf ;Red $Color = DLLCall("gdi32.dll","int","GetPixel","int",$MemoryContext,"int",269,"int",33) if BitAND($Color[0],0xFF0000) > 655360 then if not $down[3] then $down[3] = true send("{x down}") $detected = true EndIf ElseIf $down[3] Then send("{x up}") $down[3] = false EndIf ;Green $Color = DLLCall("gdi32.dll","int","GetPixel","int",$MemoryContext,"int",336,"int",33) if BitAND($Color[0],0xFF0000) > 655360 then if not $down[4] then $down[4] = true send("{z down}") $detected = true EndIf ElseIf $down[4] Then send("{z up}") $down[4] = false EndIf if $detected then send("n") $detected = false sleep(80) EndIf _WinAPI_DeleteObject($HBITMAP) sleep(7) wend $Stop = false endfunc GreenseedMCSE+I, CCNA, A+Canada, QuebecMake Love Around You. Link to comment Share on other sites More sharing options...
Froed Posted January 30, 2008 Share Posted January 30, 2008 Thank you, this was helpful. Link to comment Share on other sites More sharing options...
nomenator Posted January 31, 2008 Share Posted January 31, 2008 THis is so amazing, as I was just thinking about this like 5 seconds before I decided to register on the forum and ask about it. =) This thread is going into my favourite links list. =) Link to comment Share on other sites More sharing options...
jvanegmond Posted January 31, 2008 Share Posted January 31, 2008 (edited) Very nice!! This is very useful for OCR.I have transformed this into an UDF and made sure I thanked you plenty of times. Get Pixel from Memory-UDF Edited January 31, 2008 by Manadar github.com/jvanegmond Link to comment Share on other sites More sharing options...
BillLuvsU Posted January 31, 2008 Share Posted January 31, 2008 Cool stuff.I was just planning on makin a GH3 bot last night. xD I'm getting tired of attempting to beat Through The Fire and Flames. (Can't get past the red blue oarnge repeated sweep at the end, my pinkie's just not strong enough! :cry:) [center][/center]Working on the next big thing.Currently Playing: Halo 4, League of LegendsXBL GT: iRememberYhslaw Link to comment Share on other sites More sharing options...
LiLShinta Posted May 7, 2008 Share Posted May 7, 2008 what is this gdi.dll? Link to comment Share on other sites More sharing options...
Malkey Posted May 7, 2008 Share Posted May 7, 2008 what is this gdi.dll?gdi32.dll and gdiplus.dll are two of the many dll files found at C:\WINDOWS\system32 on MSWindow systems. They come with the Windows installation.Look at the thread :-http://www.autoitscript.com/forum/index.ph...st&p=364168 It is very informative. Link to comment Share on other sites More sharing options...
LiLShinta Posted May 7, 2008 Share Posted May 7, 2008 ahmm..how about the color... how did autoit know if the right color is met to send keys.. Link to comment Share on other sites More sharing options...
jvanegmond Posted May 7, 2008 Share Posted May 7, 2008 ahmm..how about the color... how did autoit know if the right color is met to send keys..This is probably a bit more descriptive: http://www.autoitscript.com/forum/index.php?showtopic=63318 github.com/jvanegmond Link to comment Share on other sites More sharing options...
LiLShinta Posted May 8, 2008 Share Posted May 8, 2008 but the link is error on your udf. Link to comment Share on other sites More sharing options...
BAM5 Posted May 14, 2008 Share Posted May 14, 2008 WOOT, Well I'm happy somebody finally got the pixel get color function in gdi to work, I've tried months ago for like a week then finally gave up, I guess I was calling the wrong function... :/ [center]JSON Encoding UDF[/center] Link to comment Share on other sites More sharing options...
uzi17 Posted November 2, 2008 Share Posted November 2, 2008 hmm i was googling for a gh3 PC bot and it took me here lol are there any gh3 pc bots out? if so care to share? Link to comment Share on other sites More sharing options...
RATIOFighter Posted June 10, 2010 Share Posted June 10, 2010 Thanks. Have been searching on how to do this. Link to comment Share on other sites More sharing options...
yahaosoft Posted December 18, 2012 Share Posted December 18, 2012 it give me a lot of help,say THANK YOU! Thanksgiving... Link to comment Share on other sites More sharing options...
Developers Jos Posted December 18, 2012 Developers Share Posted December 18, 2012 Could you please stop resurrecting old threads just because you are happy you could use them? Thanks Jos SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past. Link to comment Share on other sites More sharing options...
JScript Posted December 18, 2012 Share Posted December 18, 2012 (edited) Could you please stop resurrecting old threads just because you are happy you could use them?ThanksJosI think this policy of not resuscitating old post very strange, see:The date of this topic is: Posted 25 January 2008 - 11:27 PM@Manadar created this: in: Posted 31 January 2008 - 12:03 PMAnd nobody complained about resurrect it!I would be very happy if someone answered anything in my thread that was quite old, sure I would reply and update content!Edit: If we can not resurrect old threads, it makes no sense to store them in the database.Just an opinion,JS Edited December 18, 2012 by JScript http://forum.autoitbrasil.com/ (AutoIt v3 Brazil!!!) Somewhere Out ThereJames Ingram Download Dropbox - Simplify your life!Your virtual HD wherever you go, anywhere! Link to comment Share on other sites More sharing options...
Developers Jos Posted December 18, 2012 Developers Share Posted December 18, 2012 I have no issue when the post is relevant but there is no relevancy and not contribution to the thread here. Other than that we will not discuss nor negotiate anything around our forums rules. They have evolved over the past years into what they are now. Jos SciTE4AutoIt3 Full installer Download page - Beta files Read before posting How to post scriptsource Forum etiquette Forum Rules Live for the present, Dream of the future, Learn from the past. Link to comment Share on other sites More sharing options...
JohnOne Posted December 18, 2012 Share Posted December 18, 2012 Just hit the rate star or/and the up button of the Person you wish to thank (if that's all you want to do) AutoIt Absolute Beginners Require a serial Pause Script Video Tutorials by Morthawt ipify Monkey's are, like, natures humans. 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