Problème de lecture du GameRolePlayArenaUpdatePlayerInfosAllQueuesMessage

Labo

Membre Actif
Inscrit
16 Aout 2013
Messages
799
J'aime
61
#1
Bonjour,

Je reçois ce message (en hexa) :

Code:
6921140000000000000000000000000100000000000005
J'en déduis qu'il s'agit d'un GameRolePlayArenaUpdatePlayerInfosAllQueuesMessage dont le contenu est :
Code:
0000000000000000000000000100000000000005
sauf que quand j'essaye de le lire, mes bytes sont vides au moment de lire ladderPosition.

Petite précision, j'ai pas changé mon reader depuis longtemps : https://github.com/louisabraham/LaBot/blob/master/labot/data/binrw.py
mais il n'y a aucun type exotique dans ce message.

Quelqu'un pourrait-il m'aider svp ?

P.S. : le pb date en fait, il remonte à https://github.com/louisabraham/LaBot/issues/13
Je vais sûrement regarder les sources plus en détail à la main mais si qqun qui a déjà un reader qui fonctionne pouvait le décoder pour moi ce serait très sympa :)
 
Dernière édition:

Labo

Membre Actif
Inscrit
16 Aout 2013
Messages
799
J'aime
61
#2
En fait c'était assez simple, ArenaRankInfos est la seule classe à contenir des champs "optionnels":

Code:
public function deserializeAs_ArenaRankInfos(input:ICustomDataInput) : void
{
   if(input.readByte() == 0)
   {
      this.ranking = null;
   }
   else
   {
      this.ranking = new ArenaRanking();
      this.ranking.deserialize(input);
   }
   if(input.readByte() == 0)
   {
      this.leagueRanking = null;
   }
   else
   {
      this.leagueRanking = new ArenaLeagueRanking();
      this.leagueRanking.deserialize(input);
   }
   this._victoryCountFunc(input);
   this._fightcountFunc(input);
   this._numFightNeededForLadderFunc(input);
}
Comme on peut le voir, ranking et leagueRanking peuvent ne pas être lus :)
 
Haut Bas