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...
#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








