Después de realizar ingeniería inversa en los archivos .d2i de Dofus por diversión, decidí crear un lector sencillo para ellos.
Esto se basa en la versión 2.10 .
Ahora hay una versión TypeScript disponible: https://github.com/crimson-med/d2i-reader
Dim MyReader As New FastReader( "MyFile.d2i" , True )
MyReader.GetText( 41903 )
MyReader.Dispose()
Carga normal:
Carga rápida:
El formato D2I es un formato utilizado por Ankama para almacenar cadenas de caracteres como nombres de elementos o cuadros de diálogo, etc. Este archivo varía según el idioma pero la estructura sigue siendo la misma.
El expediente se compone de 4 partes principales:
Cada una de estas partes se compone de un índice ( 4 bytes ) que indica el tamaño de los datos siguientes, excepto los datos adicionales.
Los datos se componen de 3 partes:
Los índices desde la actualización 2.4X son más complejos con la introducción de signos diacríticos (la cadena de caracteres sin acentos ni letras mayúsculas).
Los mensajes UI son mensajes que se dan en ciertos paquetes pero que no permiten tener un ID (número entero que apunta al texto)
Ejemplo: ui.message.check0
Al no haber tenido realmente tiempo para investigarlo, no conozco su contenido ni su utilidad en este momento.