Bonjour,
dans le cadre d'un projet de récupération des données des hdv, je cherche à récupérer les informations contenu dans un paquet reçu lorsque que l'on appuie sur une ressource en HDV pour dérouler les prix.
Le paquet reçu lors du clique sur la ressource est le id : 5752 (je crois) et cela semble coller avec la fonction de deserialisation trouvé dans les sources de Dofus.
Dans ce code sans compter les sous fonctions, il y a plusieurs lectures sur la data de différents types.
Première question : ceci est-il correcte ?
UnsignedShort = 2 octets
VarUhInt (dans une sous fonction) = 4 octets
VarUhLong = 8 octets
J'ai essayé de suivre rigoureusement les sources de Dofus pour deserialiser le paquet reçu, cependant je n'y parviens pas.
J'ai donc adopter une stratégie brute:
1.Générer un paquet par le biais du client et noter les informations affichées.
2.Convertir les informations affichées en héxadécimal.
3.Rechercher les valeurs en héxadécimal directement dans le paquet reçu.
Par exemple pour la ressource du screen plus haut, nous avons comme valeur affichées:
154 -> 9a ou a9 (on sait jamais peut-être c'est inversé ??)
194 -> c2 ou 2c
897 -> 381 ou 183
40994 -> a022 ou 220a
Le paquet reçu est le suivant :
59e118000000380001b5b003b00200000038000000038a8c02b90e02c0
Comme on peut le voir on ne retrouve pas les datas dans le paquet.
Pour deserialiser je me suis appuyer sur le tutoriel de Labo : https://cadernis.fr/index.php?threads/de-lanalyse-des-paquets.1056/. Un grand merci pour son excellent tutoriel.
Deuxième question:
Validez-vous l'id du paquet que j'ai trouvé ?
Troisième question:
Ma méthode est-elle bonne pour vérifier si la data est bien présente dans le paquet ?
Quatrième question:
Si oui, quels pourrait-être mes erreurs lors de la deserialisation (basé sur vos expériences et connaissances personnelles)
Un grand merci par avance à ce qui prendrons le temps de s'attarder sur mon problème !
dans le cadre d'un projet de récupération des données des hdv, je cherche à récupérer les informations contenu dans un paquet reçu lorsque que l'on appuie sur une ressource en HDV pour dérouler les prix.
Le paquet reçu lors du clique sur la ressource est le id : 5752 (je crois) et cela semble coller avec la fonction de deserialisation trouvé dans les sources de Dofus.
Code:
public function deserializeAs_BidExchangerObjectInfo(input:ICustomDataInput) : void
{
var _id2:uint = 0;
var _item2:ObjectEffect = null;
var _val3:Number = NaN;
this._objectUIDFunc(input);
var _effectsLen:uint = input.readUnsignedShort();
for(var _i2:uint = 0; _i2 < _effectsLen; _i2++)
{
_id2 = input.readUnsignedShort();
_item2 = ProtocolTypeManager.getInstance(ObjectEffect,_id2);
_item2.deserialize(input);
this.effects.push(_item2);
}
var _pricesLen:uint = input.readUnsignedShort();
for(var _i3:uint = 0; _i3 < _pricesLen; _i3++)
{
_val3 = input.readVarUhLong();
if(_val3 < 0 || _val3 > 9007199254740990)
{
throw new Error("Forbidden value (" + _val3 + ") on elements of prices.");
}
this.prices.push(_val3);
}
}
Première question : ceci est-il correcte ?
UnsignedShort = 2 octets
VarUhInt (dans une sous fonction) = 4 octets
VarUhLong = 8 octets
J'ai essayé de suivre rigoureusement les sources de Dofus pour deserialiser le paquet reçu, cependant je n'y parviens pas.
J'ai donc adopter une stratégie brute:
1.Générer un paquet par le biais du client et noter les informations affichées.
2.Convertir les informations affichées en héxadécimal.
3.Rechercher les valeurs en héxadécimal directement dans le paquet reçu.
Par exemple pour la ressource du screen plus haut, nous avons comme valeur affichées:
154 -> 9a ou a9 (on sait jamais peut-être c'est inversé ??)
194 -> c2 ou 2c
897 -> 381 ou 183
40994 -> a022 ou 220a
Le paquet reçu est le suivant :
59e118000000380001b5b003b00200000038000000038a8c02b90e02c0
Comme on peut le voir on ne retrouve pas les datas dans le paquet.
Pour deserialiser je me suis appuyer sur le tutoriel de Labo : https://cadernis.fr/index.php?threads/de-lanalyse-des-paquets.1056/. Un grand merci pour son excellent tutoriel.
Deuxième question:
Validez-vous l'id du paquet que j'ai trouvé ?
Troisième question:
Ma méthode est-elle bonne pour vérifier si la data est bien présente dans le paquet ?
Quatrième question:
Si oui, quels pourrait-être mes erreurs lors de la deserialisation (basé sur vos expériences et connaissances personnelles)
Un grand merci par avance à ce qui prendrons le temps de s'attarder sur mon problème !