Page 1 sur 1

[R]Subscript used with non-Array variable

Posté : mer. 04 nov. 2009 10:04
par oxley
Bonjour,

J'ai un problème avec cette partie de code.

Code : Tout sélectionner

$pixelnoir=PixelSearch($x,$y,$x+10,$y+100,0x000000)

            If Not @error Then
            $couleurpixelnoir= PixelGetColor($pixelnoir[0],$pixelnoir[1])
            $couleurHexapixelnoir=Hex($couleurpixelnoir,6)
            EndIf


            If  $couleurHexapixelnoir="000000"  Then

            MouseClick ("left",$pixelnoir[0],$pixelnoir[1])
            Else
            ;action
            $cpt=1
            MouseClick ("left",$action_x,$action_y)

            EndIf
Subscript used with non-Array variable.:
MouseClick ("left",$pixelnoir[0],$pixelnoir[1])
MouseClick ("left",$pixelnoir^ ERROR



J'ai déclaré le tableau de cette façon

dim $pixelnoir[1], mais toujours la même erreur, des qu'il trouve pas le pixel il bug :(

comment faire?

Ce qui me trouble le plus c'est que j'ai un bout de code du même genre dans le script qui ne bug pas, de plus le tableau est même pas déclaré alors je pige pas :(

J'avais un script parfait mais j'ai modifié sans garder une copie et donc... j'ai toujours l'exe, c'est possible de retrouver la source peut être?

Re: [..]Subscript used with non-Array variable

Posté : mer. 04 nov. 2009 13:48
par JIF
Oui tu peut retrouvé la source d'un exe Autoit :mrgreen:.
par contre je ne sais pas si je suis autorisé a te donné le nom du programme ou le programme sur le forum. Demande au admin ou au modo.

Pour ton problème de pixels je te propose plutôt de passé par une boucle For. Sa passera a la suite de ton scripte en cas de bug. sa te permettra par la suite de mettre si tu veux un antit-buge.

Code : Tout sélectionner

For $dectectionpixel = 1 To 99999 Step 1
$coord = PixelSearch(x1, y1, x2, y2, 0x000000)
If Not @error Then
; Code a exécute si il détecte la couleur
ExitLoop1    ; On sort de la boucle
EndIf
$coord = PixelSearch(x1, y1, x2, y2, 0x000000, 30) ; le 30 représente la tolérance. (a 30 sa fonctionne sur Internet explorer et Mozzila Forefox)
If Not @error Then
; Code a exécute si il détecte la couleur
ExitLoop 1 ; On sort de la boucle
EndIf
Next
; Suite du code
Les x1, y1, x2, y2 : représente les coordonné de ta zone de recherche en partant de la gauche et du haut vers le bas et la droite.
Dans l'exemple si dessus lorsque la boucle fort sera a 0 elle passera a la suite du code en sautant le code a exécute si ton scripte détecte le pixels. Ici le temps de détection est de "99999", tu peut le baissé ou l'élevé selon ta convenance.

Ps : Un conseille enlevé la partit écrite en rouge de ton sujet et mes la dans une balise de code même si on a compris que c'est l'erreur que te retourne ton scripte.
Je te dit sa car je me suis déjà fait allumé a cause de sa.
Cordialement JIF,

Re: [..]Subscript used with non-Array variable

Posté : mer. 04 nov. 2009 15:29
par periaz
JIF, il existe un moyen de décompiler un exe en au3 en passant par un logiciel externe a AutoIt ?

Re: [..]Subscript used with non-Array variable

Posté : mer. 04 nov. 2009 18:32
par JIF
Oui, c'est possible ! Mais a mon avis on à pas le droit de donner le nom du programme ou le programme luis même sur le forum. Demander au Admins ou au Modo.

http://www.autoitscript.fr/forum/viewto ... f=3&t=1192
Cordialemant JIF,

Re: [..]Subscript used with non-Array variable

Posté : mer. 04 nov. 2009 19:06
par Tlem
Votre code est faux. Il devrait être comme ceci afin de prendre en compte l'erreur jusqu'au bout :
► Afficher le texte