- Inscrit
- 14 Avril 2020
- Messages
- 2
- Reactions
- 0
Bonjour à tous,
Cela fait quelques jours que je parcours Cadernis en long, en large et en travers pour m'aider à comprendre comment fonctionne Dofus - Merci à tous pour ces ressources, ça m'aurait pris des mois sans
Je rencontre un problème de compréhension des fichiers DLM, correspondant aux différentes maps : J'essaie de déterminer, sur une map, quelles sont les cellules "walkable", quelles sont les cellules au contraire bloquées, et quelles cellules permettent de changer de map.
J'utilise pour cela PyDofus (peut-être codé par quelqu'un d'ici d'ailleurs ?) pour :
Prenons l'exemple de la map en -8;-25 dans le Massif de Cania (mapId = 165154826, mapVersion = 11)
Ici il est possible d'aller en haut, en bas, à droite, mais pas à gauche. D'ailleurs, la moitié gauche de la map est inaccessible.
Je m'attends à retrouver ces informations dans le fichier JSON de la map, mais pas du tout.
Le Pastebin contenant le JSON est disponible ici.
Cependant les résultats que j'obtiens en analysant la valeur de toutes les "cells" est incohérent.
Par exemple ci-dessous la liste des cells, pour lesquelles j'ai mis un X quand "mov" est true, et un point quand "mov" est false :
Et ci-dessous la liste des "mapChangeData" :
Rien ne reflète ici que la map de gauche est inaccessible, ni que la partie gauche de la map n'est pas accessible non plus.
J'ai plusieurs hypothèses :
Cela fait quelques jours que je parcours Cadernis en long, en large et en travers pour m'aider à comprendre comment fonctionne Dofus - Merci à tous pour ces ressources, ça m'aurait pris des mois sans
Je rencontre un problème de compréhension des fichiers DLM, correspondant aux différentes maps : J'essaie de déterminer, sur une map, quelles sont les cellules "walkable", quelles sont les cellules au contraire bloquées, et quelles cellules permettent de changer de map.
J'utilise pour cela PyDofus (peut-être codé par quelqu'un d'ici d'ailleurs ?) pour :
- Convertir les .d2p en .dlm
- Convertir les .dlm en .json
Prenons l'exemple de la map en -8;-25 dans le Massif de Cania (mapId = 165154826, mapVersion = 11)
Ici il est possible d'aller en haut, en bas, à droite, mais pas à gauche. D'ailleurs, la moitié gauche de la map est inaccessible.
Je m'attends à retrouver ces informations dans le fichier JSON de la map, mais pas du tout.
Le Pastebin contenant le JSON est disponible ici.
- Le JSON comprend une valeur pour la clé "leftNeighbourId" alors qu'il est impossible d'aller à gauche
- La clé "cells" est bien un tableau de 560 entrées, qui devraient donc correspondre aux 560 cellules de la carte.
Cependant les résultats que j'obtiens en analysant la valeur de toutes les "cells" est incohérent.
Par exemple ci-dessous la liste des cells, pour lesquelles j'ai mis un X quand "mov" est true, et un point quand "mov" est false :
X X X . . X X X . X X X X .
. X X X . X X . X . X X X X
. X X X X . . X X X . X X X
X . X X X X . X X . X . X X
X X . X X X X . X X X X . X
X X X . X X X X . X X . X .
X X X X . X X X X . . X X X
. X X . X . X X X X . X X X
X . X X X X . X X . X . . X
X X . X X . X . X X X X . X
X . X . . X X . . X X X X .
X X X . X X X . X X X . X X
X X X X X . . X X . . X . .
. X X X X X X X X X X X X .
. X . . X X X . X X . . . X
X . . X X X X X X X X X X X
X . X X X X X X X . X . X X
X X X X X X X X X X X X X X
X . X X X . X X X . X X X X
X X X . X X X . . X X X X X
X X X X X X X X X X X X X X
X X X X X X X X X X X X X X
X X X . . X X X X X X . X .
. X X X X X X . X . X X X .
X X X X X X X . X X . . . X
X . . X X X X X X X X X X X
X X X X X X X X X X X X X .
X X . . . X X . . X . . X X
X . X X X X X X X X X X X X
X . X X X X X X X . X . . X
X X X X X . X . X X X . . X
. . . X X . X X . . X X X .
X X . . X X X . . X . . X X
X . . X X X X X X X X X X X
X X X X X X X X X X X X X X
X X X . X X X X X X X X X .
. X X X X X X . X . X X X .
. X . . . X X . . X . . X X
X . X X . . . X X . . X . .
. X X X X X X X X X X X X X
. X X X . X X . X . X X X X
. X X X X . . X X X . X X X
X . X X X X . X X . X . X X
X X . X X X X . X X X X . X
X X X . X X X X . X X . X .
X X X X . X X X X . . X X X
. X X . X . X X X X . X X X
X . X X X X . X X . X . . X
X X . X X . X . X X X X . X
X . X . . X X . . X X X X .
X X X . X X X . X X X . X X
X X X X X . . X X . . X . .
. X X X X X X X X X X X X .
. X . . X X X . X X . . . X
X . . X X X X X X X X X X X
X . X X X X X X X . X . X X
X X X X X X X X X X X X X X
X . X X X . X X X . X X X X
X X X . X X X . . X X X X X
X X X X X X X X X X X X X X
X X X X X X X X X X X X X X
X X X . . X X X X X X . X .
. X X X X X X . X . X X X .
X X X X X X X . X X . . . X
X . . X X X X X X X X X X X
X X X X X X X X X X X X X .
X X . . . X X . . X . . X X
X . X X X X X X X X X X X X
X . X X X X X X X . X . . X
X X X X X . X . X X X . . X
. . . X X . X X . . X X X .
X X . . X X X . . X . . X X
X . . X X X X X X X X X X X
X X X X X X X X X X X X X X
X X X . X X X X X X X X X .
. X X X X X X . X . X X X .
. X . . . X X . . X . . X X
X . X X . . . X X . . X . .
. X X X X X X X X X X X X X
Et ci-dessous la liste des "mapChangeData" :
0 -1 0 0 2 0 -21 5 0 0 0 -1 0 0
2 0 -75 5 0 0 14 -1 0 -4 3 0 -21 7
0 0 14 -1 0 0 4 0 -31 7 0 0 0 -1
0 0 5 0 -31 8 0 0 0 -1 0 -4 5 0
-31 8 0 0 14 -1 0 0 0 0 -31 -2 0 0
0 -1 0 0 1 0 -19 0 0 0 0 -1 0 0
1 0 -31 4 0 0 0 -1 0 0 2 0 -21 6
0 0 14 -1 0 -4 3 0 -21 7 0 0 0 -1
0 0 4 0 -31 8 0 0 0 -1 0 0 5 0
-21 8 0 0 0 -1 0 0 5 0 -31 8 0 0
14 -1 0 -4 6 0 -31 7 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 2 0
0 0 -31 5 0 8 -21 5 0 0 0 0 0 0
0 0 1 -4 0 0 1 -4 0 0 1 -4 0 0
2 -4 0 0 -31 7 0 13 -31 7 0 0 0 0
0 0 0 0 -31 8 0 0 0 0 0 -4 1 0
-21 7 0 14 -31 -1 0 15 -31 -1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 2 0 0 0 -31 5 0 21
-31 6 0 22 -21 7 0 23 -21 7 0 24 -21 7
0 25 -21 8 0 26 -31 8 0 27 -31 8 0 0
0 0 0 0 0 0 -21 7 0 0 0 0 0 0
1 0 -21 7 0 0 7 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0 0
2 0 0 0 -31 1 0 33 -31 3 0 34 -31 5
0 35 -31 5 0 36 -21 6 0 0 0 0 0 0
0 0 1 -4 0 0 1 -4 0 0 1 -4 0 0
2 -4 0 0 -31 8 0 41 -31 7 0 0 0 0
0 0 0 0 -31 8 0 0 14 0 0 0 1 0
-31 7 0 0 14 0 0 -4 1 0 1 0 0 0
1 0 0 0 1 0 0 0 1 0 0 0 1 0
0 0 1 0 0 0 1 0 0 0 1 0 0 0
2 -4 0 0 -31 7 0 51 -21 7 0 52 -21 7
0 53 -21 8 0 54 -21 8 0 0 0 0 0 0
0 0 0 0 0 0 -31 8 0 0 0 0 0 -4
1 0 -31 7 0 0 10 0 0 -4 1 0 1 0
0 0 1 0 0 0 1 0 0 0 1 0 0 0
1 0 0 0 1 0 0 0 1 0 0 0 2 0
0 0 -31 5 0 64 -31 6 0 65 -21 7 0 0
2 0 -75 5 0 0 14 -1 0 -4 3 0 -21 7
0 0 14 -1 0 0 4 0 -31 7 0 0 0 -1
0 0 5 0 -31 8 0 0 0 -1 0 -4 5 0
-31 8 0 0 14 -1 0 0 0 0 -31 -2 0 0
0 -1 0 0 1 0 -19 0 0 0 0 -1 0 0
1 0 -31 4 0 0 0 -1 0 0 2 0 -21 6
0 0 14 -1 0 -4 3 0 -21 7 0 0 0 -1
0 0 4 0 -31 8 0 0 0 -1 0 0 5 0
-21 8 0 0 0 -1 0 0 5 0 -31 8 0 0
14 -1 0 -4 6 0 -31 7 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 2 0
0 0 -31 5 0 8 -21 5 0 0 0 0 0 0
0 0 1 -4 0 0 1 -4 0 0 1 -4 0 0
2 -4 0 0 -31 7 0 13 -31 7 0 0 0 0
0 0 0 0 -31 8 0 0 0 0 0 -4 1 0
-21 7 0 14 -31 -1 0 15 -31 -1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 2 0 0 0 -31 5 0 21
-31 6 0 22 -21 7 0 23 -21 7 0 24 -21 7
0 25 -21 8 0 26 -31 8 0 27 -31 8 0 0
0 0 0 0 0 0 -21 7 0 0 0 0 0 0
1 0 -21 7 0 0 7 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 0 0 0
2 0 0 0 -31 1 0 33 -31 3 0 34 -31 5
0 35 -31 5 0 36 -21 6 0 0 0 0 0 0
0 0 1 -4 0 0 1 -4 0 0 1 -4 0 0
2 -4 0 0 -31 8 0 41 -31 7 0 0 0 0
0 0 0 0 -31 8 0 0 14 0 0 0 1 0
-31 7 0 0 14 0 0 -4 1 0 1 0 0 0
1 0 0 0 1 0 0 0 1 0 0 0 1 0
0 0 1 0 0 0 1 0 0 0 1 0 0 0
2 -4 0 0 -31 7 0 51 -21 7 0 52 -21 7
0 53 -21 8 0 54 -21 8 0 0 0 0 0 0
0 0 0 0 0 0 -31 8 0 0 0 0 0 -4
1 0 -31 7 0 0 10 0 0 -4 1 0 1 0
0 0 1 0 0 0 1 0 0 0 1 0 0 0
1 0 0 0 1 0 0 0 1 0 0 0 2 0
0 0 -31 5 0 64 -31 6 0 65 -21 7 0 0
Rien ne reflète ici que la map de gauche est inaccessible, ni que la partie gauche de la map n'est pas accessible non plus.
J'ai plusieurs hypothèses :
- Le parsing du fichier DLM est incorrect : ça m'étonne, car j'ai comparé avec le parsing fait dans le "Raidbot" (trouvé sur ce forum aussi), et il m'a l'air similaire
- Les "cells" ne sont pas triées correctement (ce qui voudrait dire que la première cellule de ce tableau n'est pas la cellId = 1, en haut à gauche)
- Le parser ne fonctionne pas avec des map dont la mapVersion est égal à 11
- Je me trompe complètement sur l'interprétation des DLM, ou bien l'info que je cherche n'est pas à cet endroit, et dans ce cas-là je suis perdu