Bonsoir,
Comme plusieurs me l'avaient demandé, je partage ce soir mon manager pour parser les fichiers .d2o
Les avantages :
- Comme MapManager, D2oManager est également publique
- D2oManager initialise tout les fichiers D2o, ce qui réduit beaucoup le nombre de ligne de code pour le faire marcher.
- Il comprend et inclus dans sa récupération d'information le fichier I18n de votre chois afin d'obtenir directement le texte associé (expliqué plus tard)
L'utilisation :
On commence par le c# :
using D2oManager;
Déclaration du Manager :
private D2oManager _manager = new D2oManager([1],[2]);
Obtention de donné : (exemple avec un item : id = 384)
IDataCenter item = manager.ReadIndex([3], 384)
Puis en Vb :
Import D2oManager
Déclaration du Manager :
Private _manager As D2oManager = New D2oManager([1], [2])
Obtention de donné : (même exemple)
Dim item As IDataCenter = manager.ReadIndex([3], 384)
Compléments :
- - [1] correspond au chemin du dossier contenant les fichiers .d2o
Exemple : "C:\Program Files\Dofus 2\app\data\common"
- [2] correspond au chemin complet du fichier I18n de votre choix
Exemple : "C:\Program Files\Dofus 2\app\data\i18n\i18n_fr.d2i"
- [3] : Comme je vous l'ai dit dans la présentation le manager va charger tout les fichiers d2o ,donc pour obtenir des données, il faut renseigner le fichier dans lequel lire cette index, pour cela vous disposez d'un enum dans D2o.D2oFileEnum
Exemple :
D2o.D2oFileEnum.Items
(pour reprendre l'exemple ci-dessus)
- Comme vous l'avez compris, IDataCenter est une interface qui regroupe toute les class contenues dans les d2o, mais vous pouvez également faire un cast de celui-ci
Exemple (le même exemple):
using D2oManager.DataCenter
Import D2oManager.DataCenter
Item item = (Item)(manager.ReadIndex(D2oManager.D2o.D2oFileEnum.Items, 384));
Dim item As Item = manager.ReadIndex(D2oManager.D2o.D2oFileEnum.Items, 384)
- Pour terminer, si vous avez essayé mon exemple, vous devriez voir que dans "item.Name" est affiché le nom de la ressource "Laine de Bouftout", et cette information a été récupérée non pas dans le d2o mais dans le I18n.
C'est pour cela que je disais plus haut que le Manager associait le I18n directement dans les d2o
Utilisation réservée aux membres de Cadernis
Nouvelle version disponible, voir mon dernier post
Merci de me faire parvenir vos bugs et souci au niveau de l'implantation ;)