Résolu Fonction deserializeAs_... vide

Inscrit
22 Aout 2019
Messages
14
Reactions
0
#1
Bonsoir,

J'ai lu tous les tutoriels pour lire les packets reçus mais je ne comprend pas pourquoi sur certains messages, les fonctions deserializeAs_... sont vides, par exemple :

public function deserializeAs_ExchangeObjectAddedMessage(input:ICustomDataInput) : void
{
super.deserialize(input);
this.object = new ObjectItem();
this.object.deserialize(input);
}

Alors oui en effet elle n'est pas vide, mais je ne comprend pas comment trouver les informations pour lire le packet lié à ce message ?

Merci par avance de votre aide ! Je continue de creuser de mon côté !
 
Inscrit
26 Janvier 2016
Messages
99
Reactions
34
#2
Elle renvoi "rien" le type de retour est "void".
Certains message ne contiennent pas d information !

Cela dit elle initialise un un "objectitem" donc elle fait quelque chose , regarde dans les imports (les lignes tout en haut d où vient le "objectitem")
 
Inscrit
22 Aout 2019
Messages
14
Reactions
0
#3
Merci pour la réponse ! :)

J'ai ça comme import, cependant je ne vois pas trop à quoi ça peut bien me servir :/

import com.ankamagames.dofus.network.types.game.data.items.ObjectItem
 
Inscrit
26 Janvier 2016
Messages
99
Reactions
34
#4
Merci pour la réponse ! :)

J'ai ça comme import, cependant je ne vois pas trop à quoi ça peut bien me servir :/

import com.ankamagames.dofus.network.types.game.data.items.ObjectItem
C est le "chemin" de la "classe" objectitem donc hophophop on retourne dans le dofus invoker chercher ce qu il y a dedans !
 
Inscrit
22 Aout 2019
Messages
14
Reactions
0
#5
Ah !! Ok je vois merci beaucoup ! :D
 
Inscrit
22 Aout 2019
Messages
14
Reactions
0
#6
Alors, j'ai avancé un peu plus, seulement je suis confronté a un petit problème :

J'ai codé une fonction en python pour séparer les différents messages dans une trame wireshark, ça marche bien et j'obtiens plusieurs messages que je décode un par un pour obtenir les informations dont j'ai besoin. Seulement, quand je décode le message 5519, je vais dans la classe ExchangeObjectModifiedMessage, qui me redirige vers ExchangeObjectMessage et ObjectItem, avec cela j'obitens la composition du message :

this.remote = input.readBoolean();
this.position = input.readShort();
this.objectGID = input.readVarUhShort();
this.objectUID = input.readVarUhInt();
this.quantity = input.readVarUhInt();

J'ai réussi, en utilisant les autres messages de la trame à identifier chacun des paramètres, seulement je me demande bien à quoi ils peuvent servir, notamment le remote et la différence entre GID et UID ?


Edit : J'ai cherché également la fonction readVarUhShort(), qui me ramène sur cette fonction:

public function readVarInt() : int
{
var b:int = 0;
var value:int = 0;
var offset:int = 0;
for(var hasNext:* = false; offset < INT_SIZE; )
{
b = this._data.readByte();
hasNext = (b & MASK_10000000) == MASK_10000000;
if(offset > 0)
{
value = value + ((b & MASK_01111111) << offset);
}
else
{
value = value + (b & MASK_01111111);
}
offset = offset + CHUNCK_BIT_SIZE;
if(!hasNext)
{
return value;
}
}
throw new Error("Too much data");
}

Ici je ne vois pas bien ce que fait le "var hasNext:* = false" dans la boucle "for" ?

Merci de votre aide !
 
Inscrit
22 Juillet 2018
Messages
81
Reactions
12
#7
Hello,

Pour GID/UID c'est assez simple : GenericID et UniqueID
Typiquement, tous les objets du même type (ex: "Blé", "Solomonk") auront le même GID mais un UID différent
l'UID est différent et unique pour chaque objet du jeu.

Pour le VarUShort, c'est une implémentation du VarInt: https://carlmastrangelo.com/blog/lets-make-a-varint
C'est en gros, une variable numérique qui est dynamique au contraire des variables numériques "fixes" (tel que int32, int64, byte, bool...)
 
Inscrit
22 Aout 2019
Messages
14
Reactions
0
#8
Salut ! Ouais ça correspond à ce que j'avais compris !

Et pour le UID, si on FM l'item en question, il change bien d'IUD ?

Merci !!
 
Inscrit
22 Juillet 2018
Messages
81
Reactions
12
#9
Je pense que non : seul ses effets changent vu que ça reste le même item, mais je suis pas sûr...

@GenesisMoreder He is asking if you FM an item, does it changes its UID?
 
Inscrit
22 Aout 2019
Messages
14
Reactions
0
#10
Bonjour, j'ai pas mal avancé et d'après mes tests l'IUD ne change effectivement pas !
 
Haut Bas