Aller au contenu
The Falcon

[Tool] Fast D2I Reader 2.X

Messages recommandés

Bonjour,

 

Travaillant actuellement sur un Bot Dofus et sur un logiciel de gestion d'items et dialogues.

J'ai décidé de recréer de zero une classe pour chargé et lire les .d2i rapidement en en ne comsommant pas beaucoup de mémoire.

Je me suis dis que peut être des nouveaux venu avait la flemme de comprendre et d'écrir le reader.

Je ferais aussi une version pour les d2o après.

 

Description

 

C'est une Class Library (.dll) en VB.NET

Il y a la possibilité d'utiliser l'option FastLoad qui permet d'economiser plus de ram.

 

FastLoad:

 

Le FastLoad lit à chaque fois les indexes du fichier. Ceci permet d'alléger la mémoire utilisé au runtime. Cette option est pratique pour les gens qui ont pas beaucoup de d2i à récupérer. En revanche une query sera plus lente si elle est vers la fin des indexes.

Mémoire: environ 6,4Mo

Query: 0ms à 97ms

 

Le But serait d'impléménter un système de cache par la suite.

 

 

 

SlowLoad:

 

Le SlowLoad de son côté charge toutes les informations d'un coup en mémoire. Ceci signifie une utilisation importante mais permet d'avoir un temps de query très petit.

Mémoire: environ  64,5Mo

Query:  0ms à 2ms

Temps de chargement: environ 1300ms

 

 

il y a aussi la possibilité de choisir d'afficher le texte du d2i avec son mode diacritique ou non. Ainsi que d'afficher les textes des messages ui (ui.chat.check0).

 

Version

 

1.1.0.0 (actuelle) :

 

- Ajout de la fonction GetUi

- Revue complète du SlowLoad et FastLoad

 

1.2.0.0 (prochaine) :

 

- Ajout d'un système de cache pour le FastLoad

- Ajouter le SlowLoad et FastLoad aux UI

- Ajouter les diacritique au GetUi

 

Fonctionnement

 

Class FastReader:

 

Chemin: le chemin du d2i

FastLoad: Activer ou désactiver le FastLoad

 

Fonction GetText:

 

ID: l'ID du texte associé

Diacritique: Afficher la version diacritique du texte.

 

Fonction GetUi:

 

MySearch: le message ui dont il faut trouver le texte.

 

Exemple

 

VB.NET

 

Dim myReader As New FastReader(pather & "\i18n_fr.d2i", True)
Console.WriteLine(myReader.GetText(1, False))
Console.WriteLine(myReader.GetUi("ui.chat.check6"))

 

 

C#

 

FastReader myReader = new FastReader(pather + "\\i18n_fr.d2i", true);
Console.WriteLine(myReader.GetText(1, false));
Console.WriteLine(myReader.GetUi("ui.chat.check6"));

 

 

Screens

 

Slow Load:

1498568061-goodslowperf.png

 

Fast Load:

1498565803-goodfastperf.png

 

Téléchargements

 

Virus Total:

Contenu Masqué

    Répondez au message pour visualiser le contenu

Download:

Contenu Masqué

    Répondez au message pour visualiser le contenu

 

Cordialement,

The Falcon

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut, bon initiative, mais pourquoi ne pas directement activer le FastLoad et le laisser, si c'est bien plus rapide et économe ?

Personnellement je ne mettrai pas la possibilité de l'activer ou non.

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut, bon initiative, mais pourquoi ne pas directement activer le FastLoad et le laisser, si c'est bien plus rapide et économe ?

Personnellement je ne mettrai pas la possibilité de l'activer ou non.

 

De base c'est sur True donc pas besoin de le préciser.

 

Je laisse la possibilité car le fast load cherche le fichier à chaque requète et avec le multithread il peut y avoir des problèmes de file access.

 

De plus j'ai créé aussi cette dll pour être utiliser par des créateurs d'item ou pour read il sera mieux de copier toutes les données d'un coup pour récrire le fichier au format correcte.

Partager ce message


Lien à poster
Partager sur d’autres sites

Mise à Jour:

 

1.1.0.0 (actuelle) :

 

- Ajout de la fonction GetUi

- Revue complète du SlowLoad et FastLoad

 

Explication FastLoad et SlowLoad:

 

FastLoad:

 

Le FastLoad lit à chaque fois les indexes du fichier. Ceci permet d'alléger la mémoire utilisé au runtime. Cette option est pratique pour les gens qui ont pas beaucoup de d2i à récupérer. En revanche une query sera plus lente si elle est vers la fin des indexes.

Mémoire: environ 6,4Mo

Query: 0ms à 97ms

 

Le But serait d'impléménter un système de cache par la suite.

 

SlowLoad:

 

Le SlowLoad de son côté charge toutes les informations d'un coup en mémoire. Ceci signifie une utilisation importante mais permet d'avoir un temps de query très petit.

Mémoire: environ 64,5Mo

Query: 0ms à 2ms

Temps de chargement: environ 1300ms

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

Désolé du up de sujet mais j'aurais une question quant à ce programme.

 

Est-il possible d'y ajouter un moyen d'exporter le contenu lu ? Dans un format type JSON ou XML par exemple (clé => valeur) ? Je pense que ce serait plutôt pas mal !

 

Merci d'avance de votre réponse !

Modifié par JohnD

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 2/5/2018 à 00:28, JohnD a dit :

Bonjour,

 

Désolé du up de sujet mais j'aurais une question quant à ce programme.

 

Est-il possible d'y ajouter un moyen d'exporter le contenu lu ? Dans un format type JSON ou XML par exemple (clé => valeur) ? Je pense que ce serait plutôt pas mal !

 

Merci d'avance de votre réponse !

 

Bonjour actuellement je travaille sur un bot open source et je n'avance plus les readers vu qu'il sont fonctionnel. Mais pourquoi veux-tu exporter en json?

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 12/02/2018 à 03:49, The Falcon a dit :

 

Bonjour actuellement je travaille sur un bot open source et je n'avance plus les readers vu qu'il sont fonctionnel. Mais pourquoi veux-tu exporter en json?

 

Je suis en train d'effectuer des essais pour une application web permettant de (re)jouer des affrontements du jeu, et pouvoir utiliser le fichier i18n et ce qu'il contient m'aiderait grandement au niveau affichage et utilisation de textes. Ainsi que la réalisation d'autres petites applications (comme un bestiaire complet par exemple).

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

×

Information importante

By using this site, you agree to our Conditions d’utilisation.