Problème pour avoir le prix de l'HDV

Inscrit
14 Février 2021
Messages
5
Reactions
0
#1
Bonsoir.
J'ai récemment commencé un projet qui consiste a récuperer les prix des hdv
J'obtient donc grâce a Scapy de python :
"36f9190000006d0001e4ea4cd0a2010000006d00000003b905ca3a0032"
Donc un id de 3518 qui correspond pour moi a ExchangeTypesItemsExchangerDescriptionForUserMessage ce qu'il semble correct
Cependant lorsque je cherche la valeur de l'objet par exemple 7498kamas -> 1D4A : Aucune trace dans la valeur que j'obtiens
Que fais-je de mal ?
Merci
 
Inscrit
19 Mai 2020
Messages
24
Reactions
5
#2
Salut, essaye de traduire en python la fonction deserialize présent dans le fichier ExchangeTypesItemsExchangerDescriptionForUserMessage .as :
Code:
public function deserializeAs_ExchangeTypesItemsExchangerDescriptionForUserMessage(input:ICustomDataInput) : void
      {
         var _item2:BidExchangerObjectInfo = null;
         this._objectTypeFunc(input);
         var _itemTypeDescriptionsLen:uint = input.readUnsignedShort();
         for(var _i2:uint = 0; _i2 < _itemTypeDescriptionsLen; _i2++)
         {
            _item2 = new BidExchangerObjectInfo();
            _item2.deserialize(input);
            this.itemTypeDescriptions.push(_item2);
         }
      }
 
Inscrit
14 Février 2021
Messages
5
Reactions
0
#3
Oui grace au Discord j'ai réussi a arriver jusque là mais j'obtiens a chaque fois un
_itemTypeDescriptionsLen = 0 :HideThePain:
 
Inscrit
19 Mai 2020
Messages
24
Reactions
5
#4
Quand je le fais a la main j'ai
header (tu l'as bon)
len packet
objectType = 109
itemTypeDescriptionsLen = 1

36f9190000006d0001e4ea4cd0a2010000006d00000003b905ca3a0032
vérifie ton code
 
Inscrit
14 Février 2021
Messages
5
Reactions
0
#5
Merci beaucoup, il suffisait "juste" de deserializer ce Packet là pour avoir les prix en clair
Mais maintenant que j'ai réussi j'ai bien envie de faire de même avec les métiers (quitte à créer un autre topic)
Mais les potentiels packets que je capte (ObjectQuantityMessage et InteractiveUseMessage) ne donnent rien dutout. Aurait tu donc une idée ?
 
Inscrit
19 Mai 2020
Messages
24
Reactions
5
#6
Perso quand je souhaite faire automatiser certain paquet voici ce que je fais :
- Je simule l'action et sniffe les paquets
- Je tri les paquets manuellement pour voir lequel contient les bonnes infos ou celle que je souhaite traiter
- Je traduis tous les fichiers concernant ce paquet. Exemple : pour ton paquet j'ai traduis BidExchangerObjectInfo et toutes ses ascendances quand j'ai fait mon bot hdv.

Ce n'est peut être pas la meilleure des méthodes mais c'est la mienne.
Chose importante certaines données sont assemblées. Je pense par exemple au cellid il y a la cellid + l'orientation si je ne me trompe pas. Donc tu dois aussi chercher des adapters dans tes fichiers si cela est nécessaire (par exemple quand la donnée te semble pas bonne alors que tu traduis bien).

Si tu as juste l'entête du paquet c'est a dire son id + len et que tu n'as pas de data alors que le fichier devrait contenir des datas (comme ObjectQuantityMessage) cela veut dire que tu découpes mal tes paquets ou alors que ton passage d'information à un problème.

J'espère que j'ai pu répondre à ta question.
 
Inscrit
14 Février 2021
Messages
5
Reactions
0
#7
Oui Merci beaucoup, je pense que je fais a peu pres la bonne méthode mais le problème est que :
Je suis sur a 99% que j'ai le bon packet avec le bon id, mais le problème est que le deserialize ne donne rien, ce n'est ici pas un problème technique mais de logique
PS:
Code:
229: b'\x03\x95\x07\x95\xf4\x84\x1d\xae\x01\x00\x8b\xe9\x05\xfe\x03\x00\x
Etant le début de ObjectQuantity (qui je pense est le bon packet mais contrairement aux autres, la longueur du packet donnée par les 7 bytes apres 0x07 sont tres tres grand devant la réelle taille, ce qui veut dire que la structure est différente des message des joueurs ou meme des packets de l'hdv ? (dans la structure)
 
Dernière édition:
Inscrit
19 Mai 2020
Messages
24
Reactions
5
#8
Je suis sur a 99% que j'ai le bon packet avec le bon id
Tu as la bonne entête mais si tu dois avoir une taille de 7 octets et que ton paquet a plus de 7 octets de data il y a un problème non ?

Dans deserialize tu as
Code:
this.quantity = input.readVarUhInt();
Regarde comment lire en "VarUhInt" c'est pas juste un int.
 
Inscrit
14 Février 2021
Messages
5
Reactions
0
#9
1613648932494.png
Je pense que cela est correct non ? Pourtant les infos que j'extraies ne sont pas utilisables
 
Inscrit
19 Mai 2020
Messages
24
Reactions
5
#10
Envoie tes résultats ainsi qu'une liste détailler des actions que tu fais en jeux pour bien situer la problématique. Peut-être est-ce un item en particulier qui plante ? Envoie aussi le code de la méthode readVarUhInt de ta classe Data.
 
Dernière édition:
Haut Bas