Bonjour, tout d'abord merci pour votre travail ! Un serveur sur la première version de Dofus 2.0 est ce qui m'intéresse le plus.
J'ai essayé de faire fonctionner votre émulateur avec mon modeste bagage en informatique et malheureusement je n'y suis pas parvenu.
Je suis plus un bidouilleur qu'un programmeur, j'arrive à comprendre plus ou un moins un programme selon sa taille (je n'ai pas de connaissances précises en programmation, je ne connais pas un langage en particulier mais les grands principes de la programmation). Le langage sur lequel je me suis penché dernièrement est le python. Quel rapport me direz-vous ? Aucun, je me présente juste vite fais.
Enfin bref, rentrons dans le vif du sujet. Pour information j'ai déjà étudier plusieurs code sources d'émulateur et de bots différents sur différentes versions (sharkemu, BiM...) et je comprends plus ou moins les protocoles du jeu Dofus (sur les deux versions, à savoir 1.29.1 et 2.X). Ce que j'ai compris :
- Dofus 2 : les packets sont en endianness, il faut de quoi les comprendre donc grâce aux IO contenu dans la plupart des sources (reader et writer)
Je dois encore me documenter sur le protocole TCP/IP afin de comprendre les sockets (qui sont utilisés pour faire transiter les packets).
Tout d'abord j'ai essayé d'ouvrir le projet, ce qui s'est soldé d'un minable échec (hahaha), donc après avoir rechercher sur internet la solution à mon problème (framework manquant, dll manquante, probleme avec le microsoft.visualstudio.editor.implementation.editorpackage etc...).
Ensuite, j'ai survolé l'ensemble du code, ce que j'en ai compris :
Past.Protocol : le "coeur" du programme, contiens la "base de donnée" du jeu, là où les autres émulateurs ont une base de donnée en .sql pour stocker les informations relatives aux monstres/items/personnages/compte... Past les stock directement dans le programme grâce au type enuméré. Contiens de plus les différents packet qui transite entre le client et le serveur (id du packet + contenu du packet si je ne me trompe pas ?)
Past : le programme en lui même, contiens l'IO (input/output ?) c'est-à-dire le reader et le writer en endianness (qu'est-ce que c'est les IDATA ? Car il y a aussi un reader/writer pour cela), le "network" (réseau ?), et la console qui affiche les erreurs et les différentes actions.
Past.Tool : buffer ?
Voilà, donc après avoir compris cela j'ai essayer de générer la solution, ce qui s'est soldé d'un minable échec (encore hahah). Voici les erreurs que j'ai :
Loading Image
J'ai de plus relevé un autre problème :
Loading Image
Et pour finir, j'ai remarqué que dans Past.Protocol/Messages/Debug il y avait 3 fichiers manquants. A savoir :
- DebugClearHighlightCellsMessage.cs
- DebugHighlightCellsMessage.cs
- DebugInClientMessage.cs
J'ai pu régler le problème ci-dessus en piochant dans d'autres sources (BlueSheep lui même basé sur BiM si je ne dis pas de bêtises). Vous pouvez consulter le code en cliquant sur le nom du fichier souhaité. Je ne sais pas si cela a régler le problème mais en tout cas je n'ai plus d'erreur concernant ce problème !
Pour la première erreur, même après des recherches j'ai toujours pas compris comment la régler. Peut-être que c'est lié à la seconde erreur ?
Pour la seconde erreur, elle me paraît très étrange puisque la classe NetworkMessage est défini dans Past.Protocol, ce qui nous mène à la deuxième image : la référence est manquante alors qu'elle est dans l'arborescence de la solution. Ce que je trouve étrange c'est le fait que la référence soit manquante alors qu'elle est (comme dit) dans la solution ce qui créer une erreur.
Merci de m'avoir lu, si vous avez une ou des solutions à mes problèmes merci de m'en faire part.
Merci à skeezr pour son projet très intéressant.