karrazyne
Personnellement, je viens de créer vite fais un projet et j'ai pas de soucis pour arriver jusqu'au choix du serveur avec la 2.40 et le dofusinvoker de Nightwolf93. Le client me répond bien
Connection
Cliquez pour révéler
Cliquez pour masquer
Je ne suis pas allez plus loin c'était juste pour tester.
Essaye de voir avec tes IO comme BlueDream l'a dit et regarde si les paquets utilisés pour la connexion sont bien traduits.
Je crois que c'est à cause de mon IdentificationMessage qui semblerait pas bon.
Après l'avoir corrigé, je suis confronté à ce problème:
Loading Image
A la ligne 96
sessionOptionalSalt = reader.ReadVarLong();
Voici l'IdentificationMessage
// Generated on 02/23/2017 16:53:16
using System;
using System.Collections.Generic;
using System.Linq;
using DarkSoul.Network.Protocol.Types;
using DarkSoul.Network.Protocol.Message;
using DarkSoul.Core.Interfaces;
using DarkSoul.Core.IO;
namespace DarkSoul.Network.Protocol.Messages
{
public class IdentificationMessage : NetworkMessage
{
public override ushort Id => 4;
public bool autoconnect;
public bool useCertificate;
public bool useLoginToken;
public VersionExtended version;
public string lang;
public IEnumerable<sbyte> credentials;
public short serverId;
public double sessionOptionalSalt;
public IEnumerable<ushort> failedAttempts;
public IdentificationMessage()
{
}
public IdentificationMessage(bool autoconnect, bool useCertificate, bool useLoginToken, VersionExtended version, string lang, IEnumerable<sbyte> credentials, short serverId, double sessionOptionalSalt, IEnumerable<ushort> failedAttempts)
{
this.autoconnect = autoconnect;
this.useCertificate = useCertificate;
this.useLoginToken = useLoginToken;
this.version = version;
this.lang = lang;
this.credentials = credentials;
this.serverId = serverId;
this.sessionOptionalSalt = sessionOptionalSalt;
this.failedAttempts = failedAttempts;
}
public IdentificationMessage(bool autoconnect, bool useCertificate, bool useLoginToken, VersionExtended version, string lang, short serverId, double sessionOptionalSalt, IEnumerable<ushort> failedAttempts)
{
this.autoconnect = autoconnect;
this.useCertificate = useCertificate;
this.useLoginToken = useLoginToken;
this.version = version;
this.lang = lang;
this.serverId = serverId;
this.sessionOptionalSalt = sessionOptionalSalt;
this.failedAttempts = failedAttempts;
}
public override void Serialize(IWriter writer)
{
byte flag1 = 0;
flag1 = BooleanByteWrapper.SetFlag(flag1, 0, autoconnect);
flag1 = BooleanByteWrapper.SetFlag(flag1, 1, useCertificate);
flag1 = BooleanByteWrapper.SetFlag(flag1, 2, useLoginToken);
writer.WriteByte(flag1);
version.Serialize(writer);
writer.WriteUTF(lang);
writer.WriteVarInt((int)credentials.Count());
foreach (var entry in credentials)
{
writer.WriteSByte(entry);
}
writer.WriteShort(serverId);
writer.WriteVarLong(sessionOptionalSalt);
writer.WriteShort((short)failedAttempts.Count());
foreach (var entry in failedAttempts)
{
writer.WriteVarShort((int)entry);
}
}
public override void Deserialize(IReader reader)
{
byte flag1 = reader.ReadByte();
autoconnect = BooleanByteWrapper.GetFlag(flag1, 0);
useCertificate = BooleanByteWrapper.GetFlag(flag1, 1);
useLoginToken = BooleanByteWrapper.GetFlag(flag1, 2);
version = new VersionExtended();
version.Deserialize(reader);
lang = reader.ReadUTF();
var limit = reader.ReadVarInt();
credentials = new sbyte[limit];
for (int i = 0; i < limit; i++)
{
(credentials as sbyte[]) = reader.ReadSByte();
}
serverId = reader.ReadShort();
sessionOptionalSalt = reader.ReadVarLong();
limit = reader.ReadUShort();
failedAttempts = new ushort[limit];
for (int i = 0; i < limit; i++)
{
(failedAttempts as ushort[]) = reader.ReadVarUhShort();
}
}
}
}