Bonjour,
J'ai encore une question sur la manière dont Ankama code son jeu...
Vous l'aurez remarqué, il y a maintenant certaines fonctions dont le type est préfixé de "Var" (exemple : writeVarInt() et readVarInt()) : ces fonctions vont écrire/lire seulement le nombre d'octets réellement nécessaires à la donnée.
Par exemple : si l'on stocke dans un int (4 octets) le nombre 25 et qu'on l'envoie bêtement avec writeInt(), on enverra 3 octets "inutiles" puisque 25 peut être codé sur seulement 1 octet (5 bits précisément). Avec writeVarInt(), le code va détecter que 25 peut être codé sur 1 seul octet et n'en enverra effectivement qu'un seul.
Bien... ça semble être une bonne idée ! Mais alors pourquoi des writeInt()/readInt() (et autres) sont-ils toujours utilisés ? Parfois on trouve même les deux versions dans une seule et même méthode !
Aujourd'hui lors de la MàJ, le type HouseInformations a été modifié : le champ houseId est passé du writeInt() avant la MàJ au writeVarInt() après la MàJ. En revanche, 11 lignes en dessous (vraiment), les ID des portes de la maison sont eux toujours en writeInt() !
Pourquoi ? Est-ce uniquement dans le but de perturber les bots ? Pas très efficace, ça m'a pris moins d'une minute pour corriger...
Auriez-vous une explication ?