Autoit Bot PvM D2

Inscrit
15 Avril 2011
Messages
457
Reactions
1
#1
Bot PvM D2 by NicoMasterChief (MAJ : 22/05/2012)


Utilisation du bot dans la plaine de Porkass et à Tainéla, avec un enu lvl 120 (pelle massacrante x2).


Fonctionnalités intégrées dans chaque fichier du projet :

- Bot_Principal : Fichier qui fait la liaison entre tous les fichiers et permettant de lancer le bot. Il fait aussi la détection des mobs sur la map.
- Bot_Fonctions : Fichier contenant des fonctions indépendantes, appelées dans les autres fichiers.
- Bot_GUI : Fichier qui permet la création d'une GUI proposant le choix entre le mode "bouftous" et le mode "porkass".
- Bot_Combat : Fichier qui gère la partie combat du bot. Ce dernier invoque un coffre animé au début du combat, il passe quand il n'atteint personne (détection de la possibilité d'attaque), il tape deux fois quand il atteint, il change de cible si la précédente n'est pas accessible (rectangle d'exclusion grâce à FastFind), il change de cible s'il vient de tuer la première et qu'il lui reste une attaque. Il détecte la fin du combat et ferme la fenêtre de fin de combat. Si le perso a moins que la moitié de sa vie, alors il s'assoit pour la récupérer.
- Bot_Banque : Fichier qui permet de détecter si le perso a son inventaire plein. Lorsqu'il est plein, il va se vider dans le coffre de ma maison.
- Bot_Déplacement : Fichier qui permet de changer de map lorsqu'il n'a pas détecter de mobs sur la map. 2 parcours intégrés, celui des porkass et celui des boufs.
- Bot_Initialisation : Fichier qui initialise le bot en supprimant les canaux de chat inutiles (tous sauf le vert) et en mettant la jauge personnalisée en mode "pods".
- FastFind : Fichier UDF de FastFrench contenant des fonctions puissantes qui permettent de remplacer PixelSearch (accompagné des DLL 32 et 64 bits).
- Historique.txt : Fichier d'historique du bot, permettant de savoir d'où vient l'erreur si le bot plante.


Fonctionnalités à apporter :

- Gérer le déplacement en combat du bot.
- Gérer les déconnexions du bot, en cas de lag dû à la fuite de mémoire.
- Ajouter des sorts autres que "Pelle Massacrante" et "Coffre Animé".
- Optionnel : Refuser les invitations des autres joueurs (je ne sais pas comment m'y prendre car il faudrait que la vérification des invitations se fasse en même temps que le bot).
 
A

Anonymous

Invité
#2
Bonjour,
J'ai regarder vite fait votre code, et je voit déja certaine amélioration ^^

Certes qui dit pixel, dit click de souris, mais vous savez que D.ofus à mit en place des touche raccourci TRES utile ? ^^
De plus, vous pouvez aisément modifié c'est raccourci ... que demander de plus? :p

ca serai vraiment dommage de pas les utilisé ;)

quelque touche de raccourci de "base":
- le "²" qui correspond au CAC
- le "é" qui correspond au 1er sort
- le "ctrl+w" qui fait passer son tour
- ...

touche de raccourci HORS chat:
- le "i" qui ouvre l'inventaire
- le "c" qui ouvre les caracteristiques
- le "s" qui ouvre les sorts
- ...

touche de raccourci via le chat:
- %xp% ; donne l'xp
- %hp% ; donne la vie ACTUELLE
- %stats% ; donne les stats actuel
- ...
les emoticone :
- ecrire dans le chat /sit ; permet de s'assoir, et recuperer de la vie
- ...

Autre astuce, lorsque vous avez une fenêtre qui surgit, à la place de chercher la "croix" pour la fermer, autant faire un "ESCAPE", ca à le même effet ^.^

Autre chose, lorsque vous continuerai à coder, vous allez voir que très vite ca va prendre du volume, il serai judicieux de déja aborder une vision modulaire de la chose et le séparer en plusieur fichier (include).
Du genre,
- vous faite un fichier "combat.au3" qui va s'occuper pleinement de toute les fonctions combats.
- vous faites un fichier "surgit.au3" qui s'occupe de toute les fenêtres dérangante, du genre l'xp fin de combat, ajout de groupe, demande de défis, ...
- ...

Ainsi il vous restera plus qu'a faire une classe Main (principale, à savoir le bot même) qui fera ce que vous voulez grâce au fonction codée dans les différents fichier .au3 (à savoir les includes) ! C'est plus clair, plus propre et plus facile de réperer/fixer les bugs!
 
Inscrit
15 Avril 2011
Messages
457
Reactions
1
#3
Salut Pandi_Panda, tout d'abord merci pour ton message :) Je vais citer chacune de tes phrases et t'expliquer mon point de vue ;)


Pandi_Panda a dit:
quelque touche de raccourci de "base":
- le "²" qui correspond au CAC
- le "é" qui correspond au 1er sort
- le "ctrl+w" qui fait passer son tour
- ...
Je ne me sert pas du Cac mais le raccourci du 1er sort et de passer son tour, ça peut être intéressant ;) Ça peut faire gagner des lignes de code ^^

Pandi_Panda a dit:
touche de raccourci HORS chat:
- le "i" qui ouvre l'inventaire
- le "c" qui ouvre les caracteristiques
- le "s" qui ouvre les sorts
- ...
Ça peut être pas mal, mais si le bot a le chat activé, ça risque d'écrire dans le chat, et donc planter :S


Pandi_Panda a dit:
touche de raccourci via le chat:
- %xp% ; donne l'xp
- %hp% ; donne la vie ACTUELLE
- %stats% ; donne les stats actuel
- ...
les emoticone :
- ecrire dans le chat /sit ; permet de s'assoir, et recuperer de la vie
- ...
Là, ça m'intéresse, surtout %hp% et %pos%, mais le problème, c'est que je ne sais pas comment les récupérer pour les utiliser dans le script :S
Je récupère comment une valeur du chat de D. ?

Pandi_Panda a dit:
Autre astuce, lorsque vous avez une fenêtre qui surgit, à la place de chercher la "croix" pour la fermer, autant faire un "ESCAPE", ca à le même effet ^.^
Je ne sais plus si ça marche comme ça depuis l'apparition des mini fenêtres sur le côté...



Pandi_Panda a dit:
Autre chose, lorsque vous continuerai à coder, vous allez voir que très vite ca va prendre du volume, il serai judicieux de déja aborder une vision modulaire de la chose et le séparer en plusieur fichier (include).
Du genre,
- vous faite un fichier "combat.au3" qui va s'occuper pleinement de toute les fonctions combats.
- vous faites un fichier "surgit.au3" qui s'occupe de toute les fenêtres dérangante, du genre l'xp fin de combat, ajout de groupe, demande de défis, ...
- ...

Ainsi il vous restera plus qu'a faire une classe Main (principale, à savoir le bot même) qui fera ce que vous voulez grâce au fonction codée dans les différents fichier .au3 (à savoir les includes) ! C'est plus clair, plus propre et plus facile de réperer/fixer les bugs!
Eh bien, tu as parfaitement raison ! Car, j'ai commencé à avoir un code de presque 200 lignes, mais j'avais tellement de bugs, que je me perdais dans tout ça et j'ai effectivement déjà commencé à séparer en plusieurs fichiers ^^. Mais j'aimerais savoir si c'est possible de lancer 2 fichiers en même temps, pour qu'il y ait 2 processus en même temps dans le script ?



PS : Attention aux fautes d'orthographe :p
 
A

Anonymous

Invité
#4
Je vais faire de même ^^
Je ne me sert pas du Cac mais le raccourci du 1er sort et de passer son tour, ça peut être intéressant Ça peut faire gagner des lignes de code ^^
Certes mais il est tellement plus interessant de faire un chouilla de "IA", du genre si vous avez un feca, utilisé bouclié + ataque, c'est deja pas mal ;)
pour la sadi, ronce + sacrifié, ...
bref ca permet de faire des choses plutot jolies !

Ça peut être pas mal, mais si le bot a le chat activé, ça risque d'écrire dans le chat, et donc planter :S
Bien sur ! mais vous pouvez la rendre "inactive" en clikant juste au dessus du chat ;)
ou mieux, envoyé un "escape" qui la désactivera si elle est active, sinon une fenetre surgira, dont il suffit de re appuyer sur "escape".

Là, ça m'intéresse, surtout %hp% et %pos%, mais le problème, c'est que je ne sais pas comment les récupérer pour les utiliser dans le script :S
Je récupère comment une valeur du chat de D. ?

Le plus facile étant de faire un "selectioner tout - copier". Un petit click au dessus de ou vous parler, donc ou vous pouvez lire les messages, un envoi de "ctrl+a" et ensuite un "ctrl+c" ! Il vous suffit de parser les données qui sont dans le clipboard (à savoir ClipGet()). Quand vous aurez fait, ca vous rencontrerai divers problème, mais on en parlera quand vous aurez fait ca :lol:

Je ne sais plus si ça marche comme ça depuis l'apparition des mini fenêtres sur le côté...
tout a fait, pour certaine fenêtre qui surgissent en plein milieu, c'est fonctionnel, pour les autres pas du tout, je vien de voir ^^

Eh bien, tu as parfaitement raison ! Car, j'ai commencé à avoir un code de presque 200 lignes, mais j'avais tellement de bugs, que je me perdais dans tout ça et j'ai effectivement déjà commencé à séparer en plusieurs fichiers ^^. Mais j'aimerais savoir si c'est possible de lancer 2 fichiers en même temps, pour qu'il y ait 2 processus en même temps dans le script ?

Oui il est possible d'executer divers script. faut simplement savoir ce que vous voulez faire avec, sans oubliez que chaque script monopilise un composant (clavier,souris). Il faut donc que chaque periphérique puisse être disponible au moment ou chaque script en as besoin ^^ (sinon ca risque de créer pas mal de bug ;))
 
Inscrit
15 Avril 2011
Messages
457
Reactions
1
#5
Ok ok merci, je vais essayer de faire tout ça ^^ Je mettrais à jour ce topic ce soir, je pense, si j'ai pas trop de bugs ^^

Mais bon, je reste quand même bloqué sur l'utilisation de FastFind, et sans ça je peux pas avancer : viewtopic.php?f=14&t=910
Je veux utiliser cette fonction pour exclure un monstre d'une recherche (ex : si un monstre ne peut pas être attaqué, alors on exclut ce dernier grâce à un rectangle d'exclusion, puis ça relance la recherche,...etc).
 
Inscrit
15 Avril 2011
Messages
457
Reactions
1
#6
MAJ du 26/01/2012 :

J'ai complètement modifié le code, je n'utilise plus un sadi lvl 10 mais un enu lvl 120, je l'ai placé aux porkass. J'ai coupé mon code en 2 fichiers : un fichier principal et un fichier de fonctions qui sont appelées dans le code principal. Mon code principal se divise en 2 parties : une partie hors combat et une partie combat. La partie combat est elle-même composé d'une partie principal (ppl) et de 5 parties complémentaires (cpl). J'ai voulu réorganiser mon code mais ça reste quand même le bordel dans la partie combat (entre les tirets), si y en a qui ont une idée pour organiser encore plus mon code, car je vous avoue que je m'y perds^^.
 
Inscrit
15 Avril 2011
Messages
457
Reactions
1
#7
MAJ du 11/02/2012 :

Le bot est maintenant fonctionnel, correction de pas mal de bugs mais il en reste que je n'arrive pas à identifier. Séparation en 5 fichiers : principal, combat, déplacement, retour en banque et fonctions complémentaires.
Je cherche maintenant à identifier les derniers bugs mais je ne sais pas comment m'y prendre, car je ne suis pas devant l'ordi quand ils se produisent.
 
Inscrit
15 Avril 2011
Messages
457
Reactions
1
#8
MAJ du 22/05/2012 :

J'avais un peu arrêté de m'occuper du bot, mais maintenant que j'ai réussi à installer Windows 7 en machine virtuelle, et que je peux faire autre chose sur le PC pendant que le bot tourne, j'ai de nouveau envie de l'améliorer. Il est bien plus "puissant" que la dernière fois ; il combat très bien, il intègre maintenant les porkass et les bouftous, avec un aller-retour en banque presque parfait (il me reste à gérer les combats contre les abras en revenant aux porkass depuis le zaap des craqueleurs, des fois il clique sur un abra ><'). Il ne bouge toujours pas en combat, mais les mobs viennent à lui donc ça va assez vite. J'ai créé une petite GUI très simple, pour choisir entre ce que le bot va combattre : les porkass ou les bouftous (et peut-être les craqueleurs bientôt). J'ai aussi ajouter une petite fonction qui retrace l'historique du bot dans un fichier texte pour éventuellement déterminer l'origine des erreurs. Le changement de map se fait parfaitement (grâce à la récupération du contenu de la commande /mapid).
 
Inscrit
24 Février 2012
Messages
55
Reactions
0
#9
Pas mal, tu as juste oublié de dire merci Snakeddp pour l'info "Vmware Player pour win7 mieux que virtualbox" :p
Tu as crée une fonctionne qui gère parfaitement le changement grâce au Mapid ? Celle ou je t'ai expliqué comment moi j'avais fais (avec d4rk) et que tu as repris, pour non pas les cordonnées mais pour les mapids.
Oublie pas de remercier ce qui on pu t'aider vu que ses la moins des choses. En tout cas, tu peux compter sur moi si tu as besoin d'aide niveau(x) idée(s).
Car je sais que tu seras là pour moi si j'ai besoin d'aide tout comme pour d4rkv4n.
Nos chemins se croisent et tu te remet à coder ton bot, une coïncidence, en tout cas on a une chose en commun, on code en AutoIt :D
 
Inscrit
15 Avril 2011
Messages
457
Reactions
1
#10
Snakeddp a dit:
Pas mal, tu as juste oublié de dire merci Snakeddp pour l'info "Vmware Player pour win7 mieux que virtualbox" :p
Tu as crée une fonctionne qui gère parfaitement le changement grâce au Mapid ? Celle ou je t'ai expliqué comment moi j'avais fais (avec d4rk) et que tu as repris, pour non pas les cordonnées mais pour les mapids.
Oublie pas de remercier ce qui on pu t'aider vu que ses la moins des choses. En tout cas, tu peux compter sur moi si tu as besoin d'aide niveau(x) idée(s).
Car je sais que tu seras là pour moi si j'ai besoin d'aide tout comme pour d4rkv4n.
Nos chemins se croisent et tu te remet à coder ton bot, une coïncidence, en tout cas on a une chose en commun, on code en AutoIt :D
Merci pour VMWare player ;)
Pour ce qui est des remerciements, j'ai tout fait tout seul, je n'ai pris aucun code externe. La seule personne que je peux vraiment remercier c'est FastFrench, car il a pondu un putain d'UDF dont je me sers énormément :)
Et pour la méthode des changements de map, c'est bel et bien la mienne, elle date de plusieurs mois.
 
Inscrit
24 Février 2012
Messages
55
Reactions
0
#11
Autant pour moi alors. Je pensais que tu avais utilisé mon idée pour crée ton changements de maps xD
 
Haut Bas