Page 1 sur 1

[R] Probleme d'enchainement de pixelsearch

Posté : sam. 12 sept. 2009 14:51
par Oxygene31
Bonjour à tous !!

Voila j'ai un petit soucis avec un script.
Pour vous expliquer mon problème clairement je vais vous l'expliquer à travers cet exemple.

Imaginons un jeu dans lequel, il faudrait cliquer sur un pixel de couleur qui apparait au hasard dans un tableau suite à l'apparition d'un pixel de couleur bleu a des coordonnées connues.
Voici le jeu en images :

Image

A l'apparition du pixel bleu une des couleurs (jaune, vert ou rouge) apparait au hasard dans une des cases du tableau.

Voici mon script pour cet exemple (qui reprend la même structure que mon vrai script) :

Code : Tout sélectionner

Func rouge()
$rouge=PixelSearch( tableau, couleur rouge )
If @error=1 Then Exit 1
MouseMove($rouge[0],$rouge[1],20)
MouseDown("right")
MouseUp("right")
EndFunc

Func vert()
$vert=PixelSearch( tableau, couleur verte )
If @error=1 Then Exit 1
MouseMove($vert[0],$vert[1],20)
MouseDown("right")
MouseUp("right")
EndFunc

Func jaune()
$vert=PixelSearch( tableau, couleur jaune )
If @error=1 Then Exit 1
MouseMove($jaune[0],$jaune[1],20)
MouseDown("right")
MouseUp("right")
EndFunc

Func action()
rouge()
vert()
jaune()
EndFunc

$bleu= couleur bleu

While 1
$color = PixelGetColor($cordx,$cordy) 

    If $color = $bleu Then
        action()
    EndIf

Wend
 
Si la couleur rouge apparait le script marche nickel mais si la couleur verte apparait alors le script s'arrête après la détection de la couleur bleu.
En fait pour que le script marche il faut que la couleur qui apparait dans le tableau corresponde a la couleur de la 1ere sous fonction de la fonction "action()".

Avec vous une solution ??

Merci de vos réponses

Re: [..] Probleme d'enchainement de pixelsearch

Posté : sam. 12 sept. 2009 21:10
par orax
Eh ! d'après ce que je vois, s'il ne trouve pas la couleur rouge : le script quitte ; donc autant mettre un "return" pour le faire passer à la couleur suivante."

Code : Tout sélectionner

If @error=1 Then [b]Return[/b] 1
Et aussi, vous pouvez utiliser directement MouseClick au lieu de MouseMove, MouseDown, MouseUp.
Vous pourriez mettre aussi un Sleep(10), par exemple, dans la boucle "While" pour que ça utilise moins le processeur.

Re: [..] Probleme d'enchainement de pixelsearch

Posté : lun. 14 sept. 2009 16:55
par Oxygene31
Super merci !!
Je marque résolu :D