Python [RETRO] Ankam4te, l'assistant au multicompte

Inscrit
22 Février 2020
Messages
26
Reactions
11
#1
Hello,
Il est temps pour moi de vous faire part de mon projet sur lequel j'ai travaillé ces derniers temps : un logiciel de gestion semi-automatique de vos sessions de jeu en multi-compte.
Après avoir réalisé un bot récolte "pixelsearch" de piètre qualité en python, j'ai ensuite étudié le protocole de Dofus 1.X afin d'en améliorer les performances. Sans vouloir rejoindre la philosophie des bots socket/mitm de flooder massivement les serveurs de bot, j'ai cherché à rendre la fenêtre autonome en arrière-plan via le protocole windows Win32 pour en faire un simple logiciel d'aide ponctuelle, permettant ainsi d'étudier ou de travailler pendant que son cher personnage récolte paisiblement et d'être à l'affût si un brigand de rageux t'envoie un "T un bot ?".
Malheureusement, la saturation des spot de ressources et la hargne sans relâche des joueurs m'ont poussé à changer de priorité dé développement. Après m'avoir fait découvrir le farming multicompte (j'ai toujours été un bro du mono les gars, sorry) et sa mécanique atroce à s'en arracher les poils, je me suis chauffé recycler mon code en un petit tool pour transformer ce "atroce" en "douce comme un nuage monocompte". Et franchement, ça claque !

Fonctionnalités
En gros, le principe est d'éviter au maximum les alt-echap et les clics répétitifs pour donner l'impression de jouer en monocompte.
- Logger des comptes
- Auto-Enter combat
- Auto-Ready
- Switch Auto-Focus/Auto-Pass
- Auto-Close drops window
- Auto-Focus avec un switch pour les échanges [En développement]

Pas de modifs Core ou autre
Pas d'envoi de paquets, que de la lecture et des actions clicks/keys avec des délais opti mais humains
Du coup, c'est indétectable, pas de risque de se faire ban :)

Interface graphique et fichier de configuration .txt
Capture d’écran (121).png Capture d’écran (122).png
En cliquant sur le bouton "Initialiser", Ankam4te va tenter d'ouvrir la fenêtre et de connecter le perso pour chaque compte. Si c'est réussi la couleur passe au vert, sinon pour un lag supérieur à 5s, il ferme la fenêtre, change la couleur au rouge et dégrise le bouton "Reconnecter" pour relancer une tentative de tous les persos qui n'ont pas pu être connectés. Bon d'accord l'interface est moche mais la fonctionnalité prime sur la beauté pour l'instant :p

Les persos marqués du tag "chief" ne sont pas affectés par l'auto-pass et doivent être entrés manuellement: Lancer un combat avec un des deux chefs fait apparaître après un délai de 2s la fenêtre de l'autre chef pour le rentrer soi-même. Une fois les deux chefs dans le combat, l'auto-enter des autres perso est activé suivi de l'auto-ready.


Diagramme de fonctionnement du code
Si on était dans la partie privée, la question ne se poserait même pas ! Malheureusement, dans cette section libre à tous, trop de gens malhonnêtes sont à l'affût pour s'approprier le travail des autres. Je sais qu'il est impossible de réellement protéger son code en python, donc probablement que la meilleur option sera de faire un joli site web bien référencé et de le partager en open source pour éviter que des couillons ne puissent le revendre... De toute façon, Ankam4te n'est pas encore assez sexy que pour être partagé ou commercialisé mais je vous avoue que l'idée de pouvoir substituer une partie de mon job étudiant en une activité de développement de tools pour la communauté de joueurs me ferait vraiment plaisir. Eh oui encore une histoire de pèze c'est pas cool mais c'est ça la vie d'étudiant, encore deux ans à tirer avant mon diplôme moi :'( Et entre programmer ou aller au carrefour, le choix est vite fait. Certains d'entre vous ont sûrement plus d'expérience sur cette question, je serais curieux de connaître votre avis.
J'ai essayé de programmer orienté objet de la manière la moins sale possible, dans les limites de mes compétences bien sûr... Ce diagramme me permet de vous partager les grandes lignes sans pour autant jeter mon code au premier malhonnête venu. Si quelqu'un cale dans la réalisation d'un projet similaire, je lui partagerai volontiers les lignes de code utiles et répondrai à ses questions ! Pour les vieux singes du forum en quête de divertissement, je suis ouvert à la critique pour m'améliorer :teeth:
diagramme_ankam4te.png
Voilà, il y a surement bien des façons de l'améliorer, notamment en supprimant cette dépendance des classes Player/Team au Logger qui fait un peu trop poupée russe à mon goût. J'avais codé ça de cette manière car le handle de chaque fenêtre est récupéré à la connexion et utilisé pour instancier chaque Player et son inputter de clicks/keys. Du coup en l'état actuel des chose, si tu fermes une fenêtre tu perds le handle et faut relancer ankam4te (bon ça craint mais c'est pas sensé arriver).

In Fine
Le but de ce post est de partager mes idées et échanger des opinions dessus donc n'hésitez pas à me faire part des vôtres. Je tiens à rappeler que je ne suis pas programmeur de profession, je fais ça juste par passion dans les limites de mes compétences. C'est un tout petit projet comparé à un bot socket complet, mais c'est fonctionnel et puis vous savez ce qu'on dit : les petites rivières font les grands fleuves !
 
Inscrit
10 Janvier 2017
Messages
1
Reactions
1
#2
Très beau projet !
Hâte de connaître ton avancement :)
 
Inscrit
22 Février 2020
Messages
26
Reactions
11
#3
Très beau projet !
Hâte de connaître ton avancement :)
Merci du soutient, ça fait plaisir de voir que je suis pas le seul à trouver ce genre de tool utile... tellement que depuis je me suis un peu égaré dans la redécouverte de ce vieux monde des douzes en octocompte au lieu de coder haha, oups !

Je pense dans un premier temps faire un petit tuto -par un noob et pour les noob bien sûr- sur un logger, comme ça les gens pourront coder le leur sans la crainte de télécharger un exécutable douteux et avoir la certitude d'être safe ! D'ailleurs à ce sujet, j'ai jamais compris pourquoi les gens argumentent avec ou se fient à un VirusTotal scan étant donné qu'un virus n'est jamais release sans être fud.
 
Haut Bas