Procedure MouseEvent(Flags.l)
GetCursorPos_(Pos.Point)
Flags | #MOUSEEVENTF_ABSOLUTE
Pos\x * ($FFFF / GetSystemMetrics_(#SM_CXSCREEN))
Pos\y * ($FFFF / GetSystemMetrics_(#SM_CYSCREEN))
mouse_event_(Flags, Pos\x, Pos\y, 0, GetMessageExtraInfo_())
EndProcedure
SetCursorPos_(330, 1010) ; pointe IE dans la barre de lancement windows
MouseEvent(#MOUSEEVENTF_LEFTDOWN); clic de souris pour
MouseEvent(#MOUSEEVENTF_LEFTUP) ; mettre au premier plan le jeu
SetCursorPos_(640, 512) ; pointe le jeu
Repeat
Delay(100)
; clic le jeu
MouseEvent(#MOUSEEVENTF_LEFTDOWN)
MouseEvent(#MOUSEEVENTF_LEFTUP)
Delay(100)
; demarre le velo
MouseEvent(#MOUSEEVENTF_LEFTDOWN)
MouseEvent(#MOUSEEVENTF_LEFTUP)
; attente raisonnable
Delay(2430+Random(50))
; shoot du velo
MouseEvent(#MOUSEEVENTF_LEFTDOWN)
MouseEvent(#MOUSEEVENTF_LEFTUP)
ForEver
Une technique plus poussé : on observe le chapeau du cycliste a une certaine coordonnée et on shoot !!
(code ne marchant que si ma coordonnée est exactement la vôtre)
Procedure MouseEvent(Ereignis.l)
Mem.l=GlobalAlloc_(0,8)
GetCursorPos_(Mem)
mouse_event_(Ereignis | $8000,PeekL(Mem)*($FFFF/GetSystemMetrics_(0)),PeekL(Mem+4)*($FFFF/GetSystemMetrics_(1)),0,GetMessageExtraInfo_())
GlobalFree_(Mem)
EndProcedure
OpenConsole()
PrintN("Shoot automatique grace a l'analyse de pixel")
SetCursorPos_(400,1010)
MouseEvent($2) : MouseEvent($4) ; clic de souris pour mettre au premier plan le jeu
Repeat
SetCursorPos_(30,88) ; pointe le jeu
MouseEvent($2) : MouseEvent($4) ; clic de souris pour mettre au premier plan le jeu
SetCursorPos_(400,630) ; pointe le jeu
Delay(30)
MouseEvent($2) : MouseEvent($4) ; clic sur le jeu
MouseEvent($2) : MouseEvent($4) ; demmarage velo
Delay(2400) ; attente raisonnable avant d'observer le chapeau du cycliste
;;;;;;;;;;;;;;;;;;;;;; observation de la coordonnée où le chapeau rouge doit passer
Repeat
lpPoint.POINT
GetCursorPos_(lpPoint)
sysviewDC = GetDC_( hwndSysview )
r=Red(GetPixel_( sysviewDC , 609 , 579)) ; ici les coordonnées du chapeau du cycliste
Until r>230 ; si le chapeau rouge est au coordonnées, on se prepare a shooter
;;;;;;;;;;;;;;;;;;;;;;
Delay(100) ; ouai, j'ai eu la fleme de trouver les bonnes coordonnées du chapeau
MouseEvent($2) : MouseEvent($4) ; shoot du velo
Delay(300)
;;;;;;;;;;;;;;;;;;;;;; on attend qu'il y ait un quelconque message a l'ecran
Repeat
Delay(1000)
lpPoint.POINT
GetCursorPos_(lpPoint)
sysviewDC = GetDC_( hwndSysview )
rvb=GetPixel_( sysviewDC , 551 , 557)
rvb*GetPixel_( sysviewDC , 571 , 540)
Until rvb=0
;;;;;;;;;;;;;;;;;;;;;;
Beep_(900,100)
ForEver
je cherche a "piloter" un jeu depuis un code PB. Pour cela, je deplace la souris grace aux astuces ci dessus mais seul la souris windows est affectée. Je me demande en fait si je ne devrais pas changer les coordonnées de la souris + en amont !
Quelqu'un a t'il une idée sur cette impossibilité apparente de piloter la souris dans un jeu ???????????