[..] Pixelsearch avec des conditions "si"

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
damiengil
Niveau 1
Niveau 1
Messages : 14
Enregistré le : sam. 05 sept. 2009 00:04
Status : Hors ligne

[..] Pixelsearch avec des conditions "si"

#1

Message 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
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

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

#2

Message 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
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
damiengil
Niveau 1
Niveau 1
Messages : 14
Enregistré le : sam. 05 sept. 2009 00:04
Status : Hors ligne

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

#3

Message 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
damiengil
Niveau 1
Niveau 1
Messages : 14
Enregistré le : sam. 05 sept. 2009 00:04
Status : Hors ligne

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

#4

Message 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
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

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

#5

Message 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
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
damiengil
Niveau 1
Niveau 1
Messages : 14
Enregistré le : sam. 05 sept. 2009 00:04
Status : Hors ligne

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

#6

Message par damiengil »

Merci c'est parfait tu es un chef.
Bonne journée
damiengil
Niveau 1
Niveau 1
Messages : 14
Enregistré le : sam. 05 sept. 2009 00:04
Status : Hors ligne

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

#7

Message 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
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

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

#8

Message par jbnh »

http://www.autoitscript.com/autoit3/doc ... eEndIf.htm

If
Elseif
Elseif
Elseif
....
Else
Endif
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
damiengil
Niveau 1
Niveau 1
Messages : 14
Enregistré le : sam. 05 sept. 2009 00:04
Status : Hors ligne

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

#9

Message 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
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

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

#10

Message 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
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
kay69
Niveau 2
Niveau 2
Messages : 27
Enregistré le : jeu. 03 sept. 2009 14:56
Status : Hors ligne

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

#11

Message 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].
damiengil
Niveau 1
Niveau 1
Messages : 14
Enregistré le : sam. 05 sept. 2009 00:04
Status : Hors ligne

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

#12

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