Bonjour,
Je suis toujours en train de coder mon bot et je viens de remarquer que la manière de se déplacer (avec GameMapMovementRequestMessage et GameMapMovementConfirmMessage) a changé...
En effet, les cellId qu'envoie le client officiel ne sont plus toujours les mêmes pour une même case. Cela varie en fonction de l'orientation que doit prendre le personnage pour se déplacer :
- Si le personnage doit s'orienter vers la droite pour bouger, alors l'ID de la case est normal (par exemple avec la case 0, l'ID reste 0)
- Si le personnage doit s'orienter vers le bas pour bouger, alors l'ID de la case vaut ID_de_base + 8192 (par exemple l'ID de la case 0 devient 8192, l'ID de la case 28 vaut 8220)
- Si le personnage doit s'orienter dans le sens droite-bas (en biais quoi), alors l'ID de la case vaut ID_de_base + 4096 (par exemple l'ID de la case 0 devient 4096, l'ID de la case 14 vaut 4110)
D'après mes observations qui, je pense, ne sont pas erronées.
Bien sûr il n'y a pas toutes les possibilités (il y a 8 orientations possibles).
Si on n'adapte pas les cellId, on reçoit un beau ConsoleMessage (ProtocolId = 75) :
(content = Chemin [499, 500] : Impossible de passer par la cellule 500 ; type = 2)
Bien sûr le message change en fonction d'où on veut se déplacer...
Avez-vous constaté la même chose ?
Quelle méthode vous semble la meilleure pour se déplacer (en gros comment détecter dans quel sens va devoir aller le personnage) ? J'ai bien pensé à essayer toutes les solutions possibles mais ça fait un peu bourrin (mais bon ça fonctionne quand même).