Bonjour à tous!
Je viens vous présenter une petite fonctionnalité que j'ai développé sur la dernière version de dofus (2.57.12). Avec JPEXS, on peut directement modifier le code de DofusInvoker.swf. Grace à ça, j'ai pu débloquer la fonctionnalité d'autopilotage, qui est normalement réservé aux dragodindes autopilotées (payantes). Voici des screenshots qui montrent la fonctionnalité en action :

Pour lancer l'autopilote, il faut utiliser dans le chat la commande : !travel <posX> <posY>
![img]()
Boite de dialogue qui indique que la modification marche bien. Il suffit de cliquer sur OK pour démarrer le voyage.
Pour faire ça j'ai directement modifié le bytecode. Je n'ai pas ajouté du code AS3 car JPEXS a tendance à introduire des modifications en plus lors de la compilation qui empêchent le jeu de se lancer.
Les insctructions pour reproduire ça sont ici : https://pastebin.com/qqhKgW6h (version 2.57.12)
Pour faire les modifications, j'utilise JPEXS, je modifie le bytecode dans le panel de droite et et j'enregistre les modifications directement sur DofusInvoker.swf (je ne reexporte pas le fichier). Si vous voulez reproduire les modifications, n'oubliez pas de faire un backup
/!\ Attention /!\ : Pour lancer le jeu, il ne faut plus passer par le launcher, il essayera de réparer les fichiers car ils ne correspondent plus à ceux présents sur leurs serveurs. Il faut directement lancer Dofus.exe (ou utiliser la commande ./zaap-start.sh sur linux) dans les fichiers du jeu.
Pour activer l'autopilote, il faut taper dans le chat la commande : !travel <posX> <posY>.
Pour stopper l'autopilote pendant le trajet, il faur taper dans le chat la commande : !stop
Le fonctionnement normal de l'autopilote se suit. J'ai bien fait gaffe de n'envoyer à aucun moment que le joueur utilise un autopilote, car ce n'est pas censé être le cas.
Il me semble pas avoir vu d'autres projets de modification de code sur ce forum, si ce n'est pour modifier l'adresse à laquelle le client se connecte pour les bots mitm. Je suis curieux sur ce sujet et je compte approfondir. Gardez à l'esprit que je débute dans la modification de code en AS3 et encore plus dans la modification du bytecode. Si vous avez des informations ou des conseils, n'hésitez pas à m'en faire part.
Je suis concient que ce genre de modifications sera obsolète dès la prochaine MAJ du jeu, c'est pourquoi j'ai plusieurs questions :
- Y a t-il un utilitaire qui permette de patcher automatiquement un fichier swf?
Si j'ai envie de faire d'autres modifications au niveau du client, j'aimera avoir un moyen de faire ces modifications de manière automatique, afin de ne pas tout refaire à chaque MAJ du jeu. Si je ne trouve rien je risque de commencer un projet pour patcher les fichiers swf de manière automatique.
- Sauriez-vous si il on peut facilement ajouter un fichier .as dans un projet swf depuis JPEXS?
J'ai quelques idées de projet qui nécessiteraient l'ajout d'un ou plusieurs fichiers de script. Toute informations à ce sujet seraient utiles.
- Auriez-vous des liens qui me permettent de comprendre comment l'ActionScript 3 est compilé puis interprété?
Je compte bien évidemment faire des recherches de mon côté, mais toute aide serait la bienvenue. Toute informations sur le bytecode AS3 en lui-même me serait aussi utile.
- Y a t-il d'autres utilitaires que JPEXS qui seraient plus spécialisés dans la modification de bytecode en AS3?
Idem, je compte faire mes propres recherches, mais toute aide serait la bienvenue.
Voila, si vous avez des questions sur comment mettre en place les modifications ou si vous avez des conseils, hesitez pas à répondre à cette discussion ou à m'envoyer un MP. Je ne suis pas tout le temps présent sur le forum mais je tacherais d'y répondre comme je peux.
Edit :
Instructions pour le client en version 2.58.1.1 : https://pastebin.com/ecRLw8bk