Hello !
Je n'ai rien trouvé à ce sujet sur le forum, mais je n'arrive pas à bien comprendre à quoi correspond le type VarUhInt,
J'ai essayé de traduire le reader en Python mais ça ne marche qu'une fois sur deux.
Je travaille sur le TreasureHuntMessage (checkPointCurrent & checkPoint total)
Je ne suis pas parti avec ctype, je travaille avec bitstring (c'est assez sale, je m'en rend compte maintenant).
je crois que je vais décale sur un autre langage c'est galère de travailler sur les types en python.
def read_var_int(self):
value = 0
offset = 0
while offset < PacketWrapper.INT_SIZE:
b = self.read_byte() # Lit 8 bits, raccourci l'input de 8 bits, retourne la valeur sour forme d'uint
has_next = (b & PacketWrapper.MASK_10000000) == PacketWrapper.MASK_10000000 # La valeur des masques est idem que dansle codeSource, 128 pour 1000.., et 127 pour 01111..
if offset > 0:
value = value + ((b & PacketWrapper.MASK_01111111) << offset) # C'est ici que je ne vois pas trop
else:
value = value + (b & PacketWrapper.MASK_01111111)
offset = offset + PacketWrapper.CHUNCK_BIT_SIZE # = 7
if not has_next:
return value
raise Exception("Too much data")
def read_var_uh_int(self):
value = self.read_var_int()
if value < 0:
return value + 2**32
return value