Bonjour,
Je construit un script depuis un tit bout de temps avec des compétences limitées en programmation.
Pouvez vous m'aider à organiser mon script?
Dans l'idéal, je souhaiterai:
J'me demande si le DO-Until est adapté à mon cas de figure, à force j'ai tellement la tête dedans que je n'arrive pas à prendre du recul, à zéro.Si telle grappe de pixels figure à tel endroit,
alors exécuter telle action,
Sleep (100)
Si tel autre grappe de pixels figure à tel autre endroit,
alors exécuter telle autre action,
Sleep (100)
Sinon, redémarrer la vérification1.
Au bout de 10 vérifications (2 secondes minimum), alors, exécuter telle autre action. (on passe par l'intégration d'un compteur)
Voici le script en question (la partie qui nous intéresse, sachant que mon script fait 300 lignes dont je dois enlever les infos confidentielles, j'espère que vous comprendrez que je peux pas tout envoyer... Je cherche juste le principe, j'adapterai après):
While 1
Do ; boite_bleue
Sleep(1000) ;a enlever lorsque les switch fonctionneront car ça laisse à l'image le temps d'apparaitre mais si boucle, alors on pourra revérifier.
$aCoord = _PixelColorAreaSearch(250, 220, 400, 400, @ScriptDir & "\reperes_visuels\boite_bleue2.png")
If IsArray($aCoord) = True Then
Sleep(500)
MouseClick("left", $aCoord[0], $aCoord[1], 2, 0)
Sleep(200)
ExitLoop
ElseIf IsArray($aCoord) = False Then
Sleep(100)
Do ; pièces (Gestion d'erreur car 2 icones possibles dans certains cas)
$aCoord = _PixelColorAreaSearch(250, 215, 580, 400, @ScriptDir & "\reperes_visuels\pieces.png")
If IsArray($aCoord) = True Then
Sleep(500)
$Line += 1 ; pour passer à la référence technique suivante
Relancerlescriptgeneral() ; ici on relance le script car on ne souhaite pas approfondir ce resultat de recherche.
ExitLoop
ElseIf IsArray($aCoord) = False Then
Sleep(100)
EndIf
Until IsArray($aCoord) = True
EndIf
Until IsArray($aCoord) = True
WEnd
Do ; boite_bleue
Sleep(1000) ;a enlever lorsque les switch fonctionneront car ça laisse à l'image le temps d'apparaitre mais si boucle, alors on pourra revérifier.
$aCoord = _PixelColorAreaSearch(250, 220, 400, 400, @ScriptDir & "\reperes_visuels\boite_bleue2.png")
If IsArray($aCoord) = True Then
Sleep(500)
MouseClick("left", $aCoord[0], $aCoord[1], 2, 0)
Sleep(200)
ExitLoop
ElseIf IsArray($aCoord) = False Then
Sleep(100)
Do ; pièces (Gestion d'erreur car 2 icones possibles dans certains cas)
$aCoord = _PixelColorAreaSearch(250, 215, 580, 400, @ScriptDir & "\reperes_visuels\pieces.png")
If IsArray($aCoord) = True Then
Sleep(500)
$Line += 1 ; pour passer à la référence technique suivante
Relancerlescriptgeneral() ; ici on relance le script car on ne souhaite pas approfondir ce resultat de recherche.
ExitLoop
ElseIf IsArray($aCoord) = False Then
Sleep(100)
EndIf
Until IsArray($aCoord) = True
EndIf
Until IsArray($aCoord) = True
WEnd