Tampon texte

Vous avez une idée pour améliorer ou modifier PureBasic ? N'hésitez pas à la proposer.
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

Voila une version plus détaillée pour ceux qui comme moi ont galéré pour comprendre le code ^^

Code : Tout sélectionner

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
Dri
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Message par SPH »

1218.2 metres !

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Message par SPH »

1318.7 m

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Message par SPH »

1511.8 metres

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)

Code : Tout sélectionner

 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
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Message par SPH »

Maintenant, je travaille sur 20 jeux en meme temps (20 cyclistes).
J'ai automatisé le clic des bons onglets dans crazy browser et ca shoot a la chaine
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Message par SPH »

AUTRE PROBLEME

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 ???????????
Répondre