Salut,
Je me suis inspiré du wiki d'OpenDofus ainsi que les codes en C# de BiM pour faire un programme qui lit les paquets du jeu et dans un premier temps afficher leur ID. J'utilise jpcap pour la capture des paquets.
Je n'arrive cependant pas à lire ne serait-ce que l'ID des paquets, même avec le code fourni par BiM que j'ai retranscrit en Java (provient de LittleEndianReader) :
public short readShort()
{
int position = this.position;
this.position += 2;
byte pbyte = buffer[position];
return (short)((pbyte) | (buffer[position+1] << 8)) ;
}
public int readInt()
{
int position = this.position;
this.position += 4;
byte pbyte = buffer[position];
return ( pbyte ) | ( buffer[position+1] << 8 ) | ( buffer[position+2] << 16 ) | ( buffer[position+3] << 24 );
}
Je lis l'ID du paquet comme suit (data est un byte[] comportant les données du paquet récupéré par jpcap) :
LittleEndianReader reader = new LittleEndianReader(data);
int header = reader.readInt();
int packetId = header >> 2;
Sauf que pour tous les packets du jeu j'obtiens un ID de... -1708. Donc ce n'est pas ça.
Qu'est-ce que je fais mal ? Pourriez vous m'aider ?
Merci !