[Débutant][Dofus] Rechercher un pixel.

    Publicités

Users Who Are Viewing This Thread (Total: 0, Members: 0, Guests: 0)

BLACKGAMER

Membre actif
Apr 1, 2011
367
0
441
ѕσмєωнєяє
Bonjour,

Ayant reçu certaines demandes sur la programmation sous autoit pour la création d'un bot pixel paysan ou combat (1compte) j'ai décidé de faire un petit tuto sur comment rechercher un pixel.

Prérequis :
-Autoit version complète
-Windows (OS)
-Clavier :fou:

I.Trouver un pixel :

On va étudier dans cette première partie comment trouver un pixel.
Une fonction autoit existe pour ca :
Code:
Pixelsearch (x,y,X,Y,0xFFFFFF)
Le x et y corresponde au point de départ de la zone.
Le X et Y le point d'arrivé de la zone, on a ainsi définie la zone de recherche.
Le 0xFFFFFF correspond à la couleur rechercher dans la zone, ici le bleu.

Comment avoir ces informations ?

Souvenez vous, j'ai dis autoit version complète ! On a donc fournis avec Autoit Windows Info, on va dans la rubrique Mouse et on a tout ce qu'il nous faut pour utiliser cette fonction.
A oui la couleur est donné sans le " 0x" à vous de le rajouter.

C'est bien mais eu ... Comment j'utilise les données ?

On va utiliser les variables !
Code:
$bleu = Pixelsearch (x,y,X,Y,0xFFFFFF)
On a donc notre variable $bleu qui contient la position du pixel bleu.

Mais une position, c'est comme en Maths ca à 2 données ! ??

En effet, c'est pour cela, qu'il faut savoir l'utiliser, j'explique tout ca.
Code:
$bleu[0]
$bleu[1]
$bleu[0] correspondra à la position x sur l'écran du pixel
$bleu[1] à la position y.

Mais, si il y a plein de pixels bleu sur l'écran je fais comment ?

On a vu que la zone était réglable, on peut donc tout simplement réduire la zone de recherche.
Sinon, il y a beaucoup de dégradé de couleurs donc moins de chances qu'il y est les même couleurs partout.

Les petit plus :

-Sur dofus pensez que en transparent la couleur prend en partie la couleur de derrière des personnages (pour la partie combat utile ;)) .

Une autre méthode :
Il y a une autre solution :
Code:
Pixelgetcolor (x,y)
Elle permet de récupérer la couleur d'un pixel à un point précis.
Il faut stocker le résultat dans une variable donc :
Code:
$couleur_pixel = Pixelgetcolor (x,y)
If couleur_pixel = 0xFFFFFF Then
;;;Ce que vous voulez;;;
Endif
La variable a donc récupérer la couleur du pixel et non plus la position d'une couleur (oui je sais la phrase est tordu ).
C'est une autre façon de travailler, à vous de remplacer ce qu'il se passe.

II.Trouver le pixel le plus proche de soit :

Très pratique pour faucher le blé le plus proche :
Code:
$ble = Pixelsearch (0,0,1600,1600,0xbleble)
Mouseclick ("left",$ble[0],$ble[1],1,10)
Mouseclick ("left",$ble[0]+32,$ble[1]+54,1,10)
Sleep (13000)
$ble = Pixelsearch ($ble[0]-50,$ble[1] -50,$ble[0]+50,$ble[1]+50,0xbleble)
.....
J'ai mis 0xbleble à vous de choisir une couleur, c'est juste pour le principe.
Le mouseclick fonctionne simplement ,droite ou gauche, position x et y , nombre de clicks,vitesse de 1 à 100 (avec 0 la plus rapide).
On clique ici sur le ble , puis sur "fauche" d'où le +32pixel et le +54.
On fait une pause de 13 secondes (1000 millisecondes = 1 seconde) pour un paysan lvl 1.
On recherche mais cette fois ci dans un carré de 50 pixel autour du premier trouver ... puis on agrandie (100,150,...)



Voilà , j'ai finis et j'espère vous avoir aider (Si oui un petit merci ;)).
 

cheval

Membre
May 1, 2010
44
0
907
Bonjour =D J'aurais 2-3 Question a vous Poser Si sa ne vous dérange pas :
1°: Comment Recupere T'ont la Source d'un couleur?
2°:Ceux Code est A Rentrer dans le Codeur Auto-it?
3°:C'est Un Bot ou on Va choisir Notre Couleur Est Va Cliquer Dessus Avec le cool_down Qu'on a Besoin?
Merci Beaucoup si vous pouvez Repondre Car je souhaite l'utiliser. Et Un Merci a toi ;)
Cordialement OwNeD =D
 
Mar 30, 2011
1,014
1
944
In Your Ass
Bonjour =D J'aurais 2-3 Question a vous Poser Si sa ne vous dérange pas :
1°: Comment Recupere T'ont la Source d'un couleur?
2°:Ceux Code est A Rentrer dans le Codeur Auto-it?
3°:C'est Un Bot ou on Va choisir Notre Couleur Est Va Cliquer Dessus Avec le cool_down Qu'on a Besoin?
Merci Beaucoup si vous pouvez Repondre Car je souhaite l'utiliser. Et Un Merci a toi ;)
Cordialement OwNeD =D

1 la couleur tu peu la recup avec Au3Infos (tools ->AU3infos)
2 oui ce code est a inserer dans l editeur scite
3 j ai pas compris la question ^^
 

cheval

Membre
May 1, 2010
44
0
907
Bonjour,
$ble = Pixelsearch (1,400,1600,1600,0xb5d5d93)
Mouseclick ("left",$ble[1],$ble[400],1,10)
et sa me fait Mouseclick ("left",$ble^ ERROR
Pourrait tu me faire le Code Final Avec Cette Couleur Sil Teu Plait <3

---------- Message ajouté à 21h24 ---------- Le message précédent était à 20h40 ----------

Bonjour,
$ble = Pixelsearch (1,400,1600,1600,0xb5d5d93)
Mouseclick ("left",$ble[1],$ble[400],1,10)
et sa me fait Mouseclick ("left",$ble^ ERROR
Pourrait tu me faire le Code Final Avec Cette Couleur Sil Teu Plait <3

Punaise!
 

cheval

Membre
May 1, 2010
44
0
907
j'y arrive peut tu me faire le code en entier stp sa fait 2 3 jours je suis dessus trop nul la xd
 

cheval

Membre
May 1, 2010
44
0
907
Sa Remonte je m'y etait m'y il y as 3 ans ^^ mais suite a mon Départ en Internat suis redevenu Un NOOB xD
Euh je doit etres Vraiment Abusey La xD
While 1
$pos = Pixelsearch(0,0,1280,800,0xb5d5d93)
Sleep(500)
Mouseclick("left",$pos[0]+10,$pos[1]+30)
WEnd
Mouseclick("left",$pos[0]+10,$pos[1]+30)
Mouseclick("left",$pos^ ERROR

---------- Message ajouté à 17h23 ---------- Le message précédent était à 17h15 ----------

J'ai aussi Esseyer Comme sa toujours pareil
$pos = Pixelsearch(0,0,1280,800,0x65628D)
Sleep(500)
Mouseclick("left",$pos[0]+10,$pos[1]+30)
 

tobitte

Membre
Feb 18, 2011
11
0
421
Bonsoir, je viens d'essayer, tout marche sauf le clique gauche...
$chataigner = Pixelsearch (0,0,1600,1600,0x554325)
If $chataigner = 0xFFFFFF Then
Mouseclick ("left",$chataigner[1],$chataigner[1],1,10)
Sleep (5700)
$chataigner = PixelSearch(0,0,1600,1600,0x554325)
MouseClick ("left" [, $chataigner [, $chataigner [, 1 [, 10]]] )
Sleep (5700)
EndIf

Voilà le début de mon script, je voudrais svaoir pourquoi il ne clique pas...
 

Cyrion

._.
V
Ancien staff
Jul 8, 2010
2,524
2
944
www.bufferoverflow.fr
Code:
$chataigner = Pixelsearch (0,0,1600,1600,0x554325)
[U][COLOR="Red"]If $chataigner = 0xFFFFFF Then[/COLOR][/U]
Mouseclick ("left",$chataigner[U][COLOR="Red"][1][/COLOR][/U],$chataigner[1],1,10)
Sleep (5700)
[U][COLOR="Red"]$chataigner = PixelSearch(0,0,1600,1600,0x554325)[/COLOR][/U]
MouseClick ("left" [U][COLOR="Red"][[/COLOR][/U], $chataigner [U][COLOR="Red"][[/COLOR][/U], $chataigner [U][COLOR="Red"][[/COLOR][/U], 1 [U][COLOR="Red"][[/COLOR][/U], 10[U][COLOR="Red"]]]][/COLOR][/U] )
Sleep (5700)
EndIf

De un , Pixelsearch retourne un position x,y et non une couleur.
Ici, X = $chataignier[0] et Y = $chataigner[1]

De deux , tu cherche 2 fois la même couleur ce qui ne sert strictement à rien. (0x554325)

De 3 , les "[" veulent dire que cette argument est facultatif , alors le l'écris pas dans ton code.
 

tobitte

Membre
Feb 18, 2011
11
0
421
Code:
Pixelsearch (x,y,X,Y,0xFFFFFF)Le x et y corresponde au point de départ de la zone.
Le X et Y le point d'arrivé de la zone, on a ainsi définie la zone de recherche.
Le 0xFFFFFF correspond à la couleur rechercher dans la zone, ici le bleu.

J'ai juste suivi les instructions, le pixel avec la couleur d'où le 0xFFFFFF
Et j'ai du oublier quelque chose avant de chercher la couleur, ou alors il faut juste que je repete le scripte le nombre de fois voulu?
Et je ne savais pas que le [ voulait dire que c'était facultatif, c'est juste qu'il était écrit dans les propositions donc je les ai ajouté.