Salut à tous, Over-Gamers !
Dans ce tutoriel assez long, nous allons voir la partie théorique de la création d'un bot. En effet, il ne suffit pas de savoir programmer pour faire un bot digne de ce nom, il faut aussi bien réfléchir et avoir un bon sens de la logique.
C'est parti !
Sommaire
0 : Prérequis
1 : Récolter une ressource
2 : Combat : La base
3 : Combat : Déplacements
4 : Retour à la banque
Prérequis
Avant toutes choses, pour s'assurer de la compatibilité de votre bot sur toutes les machines, votre bot devrait redimensionner et déplacer automatiquement la fenêtre de Dofus. Ainsi, tout le monde aurait le même écran, et les bugs seront par conséquents moins présents.
Voici les valeurs que je conseille pour votre redimensionnement/déplacement de fenêtre :
Largeur de la fenêtre : 680 pixels
Hauteur de la fenêtre : 570 pixels
Position X du déplacement : 0 pixel
Position Y du déplacement : 0 pixel
De cette façon, la fenêtre Dofus fera 680x570px, et sera placée en haut à gauche de l'écran.
Enfin, toujours dans un souci de compatibilité avec les autres machines, vous devez indiquer certains réglages à faire dans Dofus aux utilisateurs du bot. Pour une pleine compatibilité avec le tutoriel, et ce que je conseille aussi :
-Thème beige utilisé (pour que les couleurs de l'interface soient les mêmes que vous)
-Qualité flash basse (afin d'avoir moins de couleurs pixels à analyser, donc optimisation du bot)
-Transparence désactivée (pour le combat, la transparence poserait un problème car les couleurs sont atténuées)
Nous en avons fini avec les prérequis
Récolter une ressource
Nous allons commencer par ce qui est le plus utilisé dans le domaine du bot pixel pour Dofus : la récolte d'une ressource.
C'est assez simple. Vous devez tout d'abord préparer une liste de couleurs (minimum 3 conseillé), qui correspond aux ressources que vous souhaitez prendre (Céréales, Arbres...).
Une fois cela fait, il faut faire une recherche d'un pixel de la couleurs de la ressource que nous voulons grâce à notre liste créée précédemment. Si nous trouvons ce pixel, nous savons qu'il y a la ressource aux coordonnées trouvées. Si nous ne la trouvons, on essaye avec la deuxième couleurs, puis avec la 3ème couleurs, etc jusqu'à ce que l'on trouve la ressource.
Nous pouvons alors cliquer sur la ressource. Maintenant, il faut cliquer sur le bouton Faucher. Comment faire sachant que la position de ce bouton dépend de la position de la ressource. Un schéma vaut mieux qu'un long discours :
Le point 1 correspond au pixel que nous avons trouvé (la ressource donc). Nous voulons cliquer sur le bouton Faucher, point 2. Il suffit de prendre la marge entre le point 1 et le point 2 pour avoir les coordonnées du point 2.
Exemple : Point 1 = 500, 480; Marge entre le point 1 et le point 2 : + 50, + 80;
Donc, Point 2 = 500 + 50, 480 + 80 = 550, 560 !
Nous pouvons alors cliquer sur le bouton Faucher. Nous avons alors récolté notre ressource
. Pour un bot, il suffit de répéter cette action avec une boucle infinie, et notre bot va faucher sans s'arrêter.
Récapitulatif :
-On créé une variable tableau qui contient les couleurs de la ressource que nous voulons
-On recherche la position de la ressource voulue
-On clique sur la ressource voulue
-On clique sur le bouton Faucher, où la position est connue grâce à la formule donnée plus haut.
Combat : La base
Nous allons nous attaquer à la base d'un système de combat.
Beaucoup de gens affirment que celui-ci est difficile à réaliser. Je vous rassure, ce n'est pas le cas
Commençons par la détection d'un combat.
Voici une capture d'écran prise au moment d'un lancement de combat. Comme nous pouvons le constater, il y a deux couleurs vives qui ne sont présentes qu'en cas de lancement de combat : le bleu (
#0022dd), et le rouge (
#dd2200). Il vous suffit donc, avant chaque fauche, de tester si une de ces couleurs est présente pour savoir si un combat est lancé ou non.
Si un combat est lancé, le bot devra cliquer sur 3 boutons pour un bon anonymat : 'Interdire / autoriser les joueurs à rejoindre le combat', 'Quitter / Passer en mode invisible', puis sur le bouton 'Prêt'.
Ainsi, le combat est lancé, et la bot saura qu'un combat est lancé pour les étapes suivantes.
Maintenant, nous allons déterminer si c'est à notre tour de jouer ou non. Pour cela, il suffit de faire un boucle qui vérifie si la couleur du pixel indiqué par une flèche sur l'image ci-dessous est orange (
#ff4d00). Si c'est le cas, c'est à notre tour de jouer.
Maintenant que nous savons si c'est à notre tour de jouer, nous allons voir comment attaquer le monstre le plus proche.
Tutoriel en cours de construction !
Il n'est donc pas encore fini.