Page 1 sur 1

[..] Pixelsearch avec des conditions "si"

Posté : mer. 16 sept. 2009 18:38
par damiengil
Voici mon début de script :

Code : Tout sélectionner

$0 = 0xB0B097

While 1

_clickcolor($0)
send ("{ENTER}")

WEnd

Func _clickcolor($color)
    $pixel=PixelSearch(0, 0, @DesktopWidth, @DesktopHeight, $color)
    If not @error Then
        MouseClick("left", $pixel[0], $pixel[1])
        MouseClick("left", $pixel[0]+20, $pixel[1]+40)
    EndIf
    
EndFunc
En gros ma souris cherche un pixel et va clické dessus mais je vous savoir comment faire pour inclure une condition :

Si la couleur souhaiter est absente, la souris ira clické sur ce pixel (0xE...), si cette dernière est également absente, la souris ira clické sur cet autre pixel (0xZ...). Voila merci beaucoup

Re: [..] Pixelsearch avec des conditions "si"

Posté : mer. 16 sept. 2009 21:30
par jbnh
Encore des problèmes avec ton script ??..

Est ce toi qui l'a fait ???

Code : Tout sélectionner

   $pixel=PixelSearch(0, 0, @DesktopWidth, @DesktopHeight, $color)
    If not @error Then
        MouseClick("left", $pixel[0], $pixel[1])
        MouseClick("left", $pixel[0]+20, $pixel[1]+40)
    EndIf
If not @error Then = si il y a pas d'erreur

donc if @error = erreur.

Adapte ta condition en fonction

Re: [..] Pixelsearch avec des conditions "si"

Posté : jeu. 17 sept. 2009 08:14
par damiengil
En fait quand je rencontre un problème je poste sur le forum...
Grace a vous et tou le monde, je trouve des solution mais j'éssais de pousser mon sript le plus loin possible donc il évolue légèrement a chaque fois que je veut y rajouter des fonction.

Je vous tient au courant. Merci

Re: [..] Pixelsearch avec des conditions "si"

Posté : jeu. 17 sept. 2009 09:30
par damiengil
Me revoila j'ai donc ésseyé plusieurs facon mais aucun ne marche.
Pour comprendre le principe j'aimerai faire un truk comme sa :

Code : Tout sélectionner

MsgBox(64, "Test", "ok pour commencer")

$0 = 0xFFF58F
$1 = 0xF0F4F9

While 1

_clickcolor($0)
Sleep(5000)

WEnd

Func _clickcolor($0)
    $pixel=PixelSearch(0, 0, @DesktopWidth, @DesktopHeight, $0)
    If not @error Then
        MouseClick("left", $pixel[0], $pixel[1])
    EndIf
EndFunc

    If @error Then

Func _clickcolor($1)
    $pixel=PixelSearch(0, 0, @DesktopWidth, @DesktopHeight, $1)
    If not @error Then
        MouseClick("left", $pixel[0], $pixel[1])
    EndIf
EndFunc
Aprés je peut en rajouter a l'infini mais je n'arrive pas a enchainer la recherche d'un autre pixel si le premier n'est pas trouver.
Voila mon petit soucis. Merci d'avance

Re: [..] Pixelsearch avec des conditions "si"

Posté : jeu. 17 sept. 2009 13:19
par jbnh

Code : Tout sélectionner

MsgBox(64, "Test", "ok pour commencer")

$0 = 0xFFF58F
$1 = 0xF0F4F9

While 1

_clickcolor($0)
Sleep(5000)

WEnd

Func _clickcolor($0)
    $pixel=PixelSearch(0, 0, @DesktopWidth, @DesktopHeight, $0)
    If not @error Then
        MouseClick("left", $pixel[0], $pixel[1])
    Else
        $pixel1=PixelSearch(0, 0, @DesktopWidth, @DesktopHeight, $1)
        MouseClick("left", $pixel1[0], $pixel1[1])  
    EndIf
EndFunc

Re: [M] Pixelsearch avec des conditions "si"

Posté : jeu. 17 sept. 2009 13:59
par damiengil
Merci c'est parfait tu es un chef.
Bonne journée

Re: [..] Pixelsearch avec des conditions "si"

Posté : jeu. 17 sept. 2009 15:20
par damiengil
Oups, je me suis un peu avencer... je pensais que avec une condition je pouvais la répéter mais je vois que non :

Je voudrais répéter une condition en suivant mais apparament sa ne marche pas comme sa :

Code : Tout sélectionner

 MsgBox(64, "Test", "ok pour commencer")

$0 = 0xFFF58F
$1 = 0xF0F4F9
$2 = 0xA5EBFF

While 1

_clickcolor($0)
Sleep(5000)

WEnd

Func _clickcolor($0)
    $pixel=PixelSearch(0, 0, @DesktopWidth, @DesktopHeight, $0)
    If not @error Then
        MouseClick("left", $pixel[0], $pixel[1])
    
     Else
        $pixel1=PixelSearch(0, 0, @DesktopWidth, @DesktopHeight, $1)
        MouseClick("left", $pixel1[0], $pixel1[1])
    
    Else
        $pixel1=PixelSearch(0, 0, @DesktopWidth, @DesktopHeight, $2)
        MouseClick("left", $pixel2[0], $pixel2[1])
    
    EndIf

EndFunc
Dois-je remetre une condition "if" au milieu du script car je trouve pas le bon emplacement.

Avec mes remeciement

Re: [..] Pixelsearch avec des conditions "si"

Posté : jeu. 17 sept. 2009 16:58
par jbnh
http://www.autoitscript.com/autoit3/doc ... eEndIf.htm

If
Elseif
Elseif
Elseif
....
Else
Endif

Re: [..] Pixelsearch avec des conditions "si"

Posté : jeu. 17 sept. 2009 18:34
par damiengil
Désolé mais j'ai ésséyé sa mais cela ne marche toujours pas, je vois pas pourquoi :

Code : Tout sélectionner

MsgBox(64, "Test", "ok pour commencer")

$0 = 0x0023D6
$1 = 0xF7DE76
$2 = 0xFFFFFF

While 1

_clickcolor($0)
Sleep(5000)

WEnd

Func _clickcolor($0)
       $pixel=PixelSearch(0, 0, @DesktopWidth, @DesktopHeight, $0)
    If not @error Then
        MouseClick("left", $pixel[0], $pixel[1])
    
     ElseIf
        $pixel1=PixelSearch(0, 0, @DesktopWidth, @DesktopHeight, $1)
        MouseClick("left", $pixel1[0], $pixel1[1])
    
    Else
        $pixel2=PixelSearch(0, 0, @DesktopWidth, @DesktopHeight, $2)
        MouseClick("left", $pixel2[0], $pixel2[1])
    
    EndIf

EndFunc
Sa beug a partir du "ElseIf

Re: [..] Pixelsearch avec des conditions "si"

Posté : jeu. 17 sept. 2009 21:50
par jbnh
J'avais lu un peu vite, essaye ceci

Code : Tout sélectionner

MsgBox(64, "Test", "ok pour commencer")

$0 = 0x0023D6
$1 = 0xF7DE76
$2 = 0xFFFFFF

While 1

_clickcolor($0)
Sleep(5000)

WEnd

Func _clickcolor($0)
    $pixel=PixelSearch(0, 0, @DesktopWidth, @DesktopHeight, $0)
    If not @error Then
        MouseClick("left", $pixel[0], $pixel[1])
    Else
    $pixel1=PixelSearch(0, 0, @DesktopWidth, @DesktopHeight, $1)
        If not @error Then
        MouseClick("left", $pixel1[0], $pixel1[1])
        Else
        $pixel2=PixelSearch(0, 0, @DesktopWidth, @DesktopHeight, $2)
            If not @error Then
            MouseClick("left", $pixel2[0], $pixel2[1])
            Else
            msgbox(0,"","Rien de trouvé")
            exit
            Endif
        Endif
    EndIf

EndFunc

Re: [..] Pixelsearch avec des conditions "si"

Posté : ven. 18 sept. 2009 11:08
par kay69
Je pense que ce sera plus simple avec sa

Code : Tout sélectionner

$i=0

MsgBox(64, "Test", "ok pour commencer")

Dim $pixel[99]
    $pixel[0] = 0x0023D6
    $pixel[1] = 0xF7DE76
    $pixel[2] = 0xFFFFFF

While 1

_clickcolor($pixel[0])
Sleep(5000)

WEnd

Func _clickcolor($0)
    $pos=PixelSearch(0, 0, @DesktopWidth, @DesktopHeight, $0)
    If not @error Then
        MouseClick("left", $pos[0], $pos[1])
    Else
        $i=$i+1
        If $pixel[$i]<>"" Then
            Sleep(5000)
            _clickcolor($pixel[$i])
        Else
            $i=0
        EndIf
    EndIf
EndFunc
Si il ne trouve pas le $pixel[0] il cherche le $pixel[1], si il ne trouve pas le $pixel[1] il cherche le $pixel[2], ect... jusqu'à que le pixel qu'il veux rechercher n'est pas noter dans ce cas, il recherche $pixel[0].

Re: [R] Pixelsearch avec des conditions "si"

Posté : ven. 18 sept. 2009 11:39
par damiengil
C'est exactement sa qu'il me faller, après je pourais broder autour.
Il me faudra un peu de temp pour me familiariser avec cette autre facon d'écrire un script mais sa à l'ai moin lourd du moins.

Merci beaucoup