Bonjour à tous !
Je suis actuellement en train de dev un serveur D2 (pour le fun) et je rencontre un problème assez frustrant.
J'utilise la méthode du RawDataMessage j'ai donc dû patcher l'invoker à plusieurs endroit, et n'étant pas du tout un expert en 'patchage' j'ai peur d'avoir pété un truc.
Voici l'écran que j'obtient après l'envoi du CharacterListMessage (c'est censé être l'écran de création de perso) :
![[Image Introuvable]](https://image.ibb.co/erWR0f/ecranfaiedl.png)
J'ai pensé au début que j'avais mal envoyé le message ou qu'il fallait en envoyer d'autres mais après analyse par rapport à l'officiel je n'ai pas l'impression que ce soit ça.
Le plus troublant c'est qu'aucune erreur n’apparaît dans les logs du client.
Voici la liste des échange entre le client et le serveur de jeu:
Cliquez pour révéler
Cliquez pour masquer
- Server 1: ProtocolRequired
protected override void serializeData(ICustomDataWriter writer)
{
writer.WriteUInt(RequiredVersion);
writer.WriteUInt(CurrentVersion);
}
- Server 101: HelloGame
protected override void serializeData(ICustomDataWriter writer)
{
}
- Client 110: AuthenticationTicket
protected override bool deserializeData(ICustomDataReader reader)
{
Lang = reader.ReadUTF();
Ticket = reader.ReadUTF();
// Pour une raison obscure, je reçois le ticket comme ça: "53,54,75,107..." -> parsing obligatoire
Ticket = string.Join("", Ticket.Split(',').Select(n => (char)byte.Parse(n)));
return true;
}
- Server 111: AuthenticationTicketAccepted
protected override void serializeData(ICustomDataWriter writer)
{
}
- Client 150: CharactersListRequest
protected override bool deserializeData(ICustomDataReader reader)
{
return true;
}
- Server 151: CharacterList
protected override void serializeData(ICustomDataWriter writer)
{
writer.WriteShort(0); // Character count
writer.WriteBool(false); // Has startup actions (?)
}
Et les modifications apportées au client (2.48.14):
Cliquez pour révéler
Cliquez pour masquer
com.ankamagames.dofus.logic.connection.frames.AuthentificationFrame
Cliquez pour révéler
Cliquez pour masquer
[spoiler=com.ankamagames.dofus.logic.connection.frames.ServerSelectionFrame]
![[Image Introuvable]](https://image.ibb.co/ciTLt0/serverselectionframe.png)
com.ankamagames.dofus.logic.common.frames.ServerControlFrame
Cliquez pour révéler
Cliquez pour masquer
[/spoiler]
Je vais continuer à investiguer de mon côté, si quelqu'un a une idée je suis preneur.
Merci !