Bonjour,
Contexte :
Je suis en train de construire un Overlay pour Dofus afin de rendre plus sympa l'interface en combat.
J'affiche donc des information par dessus la fenêtre de Dofus (en C# avec WPF). Le but est de pouvoir jouer efficacement sans devoir activer cet horreur de mode tactique moche !
J'ai donc décidé de me baser uniquement sur les packets reçu par le client (c'est eux qui font foie). Pour ça j'utilise Pcap (le portage C#) et filtre sur le protocole et le port de dofus.
Je n'envoie jamais au serveur de packets fait "à la main".
Ce que je fais :
Grosso modo, je récupère la map active dès que reçu, lis les données de la map depuis les fichiers du jeu (.d2p), en retire les informations, affiche en conséquence des infos dans mon Overlay (merci à vous ce forum m'a beaucoup aidé !).
Là où ça coince :
Cependant j'aimerais aller un peu plus loin en affichant des informations en dessous ou au dessus de chaque personnage en combat. Les informations en question, je les récupère bien, là où ça bloque c'est la position des entités en combat (la cellule où ils sont).
J'ai pas mal fouiné pour essayer de trouver où pouvait apparaître cet information (toujours que dans les packets reçus), et la seule possibilité semble être le message SequenceStartMessage quand il a le type SEQUENCE_MOVE (5). Il contient un payload assez conséquent parfois (50-60 bytes suivant le déplacement), c'est donc possible qu'il contienne bien quelque chose !
Jusqu'ici, je décompilais moi même les sources du client, et recodais les classes qui allait bien en C#, le kwak c'est que SequenceStartMessage ne semble pas contenir grand chose d'après les sources (le type de sequence et l'AuthorId).
Ma/Mes questions :
C'est là où j'aurais un peu besoin d'aide, est-ce bien dans le SequenceStartMessage qu'il faut chercher ?
Si oui, où est décrit dans les sources sa déserialization ? Ou comment le déserializer ?
Si non, qu'est ce qu'il me manque ? Je loupe un message ?
Si c'est pas tout à fait claire dites moi, j'ai tout codé à la mimine à partir de libs libre/open et du code source de Dofus, je devrais pouvoir éclairer. Merci !