I. Método general para introducir tus creaciones al juego.
Lo primero que necesitas saber, es como introducir tus creaciones al juego, ya sean armas, conjuros, o incluso mods enteros. Para hacer esto, todo lo que tienes que hacer, es introducir todos los archivos necesarios en la carpeta override, que se encuentra en el directorio principal del juego (D:BG2Override en mi caso). ¿Por qué? Porque cuando juegas, el engine del juego está continuamente buscando los recursos necesarios para el juego (archivos de diálogo, criaturas, objetos, mapas, etc). El primer lugar donde busca es en el directorio override, y, si allí no se encuentra el recurso requerido, lo busca en los archivos *.bif del juego. Así, cuando nuestra creación sea requerida en el juego, el engine la buscará en el override, por eso es que debes poner las cosas allí. Téngase en cuenta, igualmente, que una vez que el engine encuentra un archivo en el directorio override, NO buscará luego en los *.bif del juego (los cuales contienen los archivos originales del BG2:SoA). De modo que si colocan en el override un archivo con el mismo nombre que uno original del juego, a la hora de jugar aparecerá el nuevo archivo en lugar del viejo.
Luego de colocar el archivo *.itm en el directorio override, el juego no la llamará por si sola, puesto que no se encuentra en ninguna tienda, contenedor, ni la tiene ninguna criatura, ni nada. Para usarla, debes activar la consola y escribir: CLUAConsole:CreateItem("miarma"), siendo "miarma" el nombre del archivo *.itm que quieren tener (NOTA: Los nombres de los archivos no pueden tener más de 8 caracteres).
II. Quiero distribuir mi arma. ¿Por qué no pueden los demás colocar simplemente el archivo *.itm en la carpeta override? Yo lo hago y me funciona bien.
Por un problema de textos. Esto no es solo para armas y hechizos, sino para todos los archivos del juego. En el juego, ningún archivo tiene textos propios, salvo el dialog.tlk, el cual contiene TODOS los textos del juego. Cuando creamos un arma, con la herramienta que sea, el programa escribe las nuevas líneas de texto (descripción, nombre, etc) en el dialog.tlk del creador, bajo un cierto número de referencia. Pongamos como ejemplo que creamos un arma con el nombre "Arma de Prueba". Entonces, el programa guardará el texto "arma de prueba" bajo la referencia número (por ejemplo) 77456 del dialog.tlk, y al archivo *.itm, en vez del nombre, le dirá que tiene que buscar el texto del número de referencia 77456 del dialog.tlk. Entonces, cuando el propio creador prueba el arma, es lógico que funcione, pero cuando se la quiera dar a otro, en el lugar donde debería aparecer el texto "Arma de Prueba", aparecerá el texto que se encuentre en el número de referencia 77456 en SU dialog.tlk, lo cual puede ser cualquier cosa (líneas de diálogo, etc) o nada, si la entrada del dialog.tlk está vacía. Por eso se necesitan métodos especiales para que, cuando distribuyes tu arma, el texto de la misma sea guardado en el dialog.tlk del destinatario. Para eso tenemos los formatos *.tbg, *.iap, o WeiDU.
III. ¿Qué tienen de malo los formatos *.tbg e *.iap? ¿Por qué no es conveniente distribuir así mi arma?
Pues, la verdad es que nunca trabajé con estos formatos, yo empecé desde cero con WeiDU, de modo que todo lo que tengo de los formatos *.iap y *.tbg son solo suposiciones. De todos modos, el principal problema de estos formatos (o al menos del *.iap) es la incopatibilidad con otras creaciones, ta sean otros ojetos o directamente mods. Además se necesitan de otros programas para meterlos al juego, y eso resulta molesto y algo confuso (o al menos a mi me lo resultaba).
IV. ¿Por qué WeiDU?
Bueno, WeiDU tiene numerosas ventajas sobre los otros formatos. El primero de ellos es la comodidad para quien instala el mod/objeto/lo que sea, puesto que no necesitas ningún programa en especial, sino simplemente ejecutar un *.exe. Además, WeiDU es muy versátil y tiene innumerables opciones para asegurar la compatibilidad con otras creaciones. En el caso de los objetos, lo único que necesitamos es que se muestren los textos. Para lograr esto, WeiDU escribe el texto al final del dialog.tlk, y luego modifica el objeto para que los números de referencia sean los adecuados.
V. Estructura básica de toda creación en WeiDU
Un installer de WeiDU debe, necesariamente, tener tres cosas:
1 - Un directorio en el cual se guardarán los archivos del mod (en el caso de que sea un arma, en este directorio iría solo el archivo *.itm). Dentro de este directorio, debe haber una carpeta llamada "Backup", donde WeiDU guardará backups de todos los archivos sobreescritos en el proceso de instalación, para que, al desinstalar, la configuración del BG2 vuelva a ser la misma de antes.
2 - Un archivo *.exe, el cual debe llamarse "Setup-nombre", siendo "nombre" el nombre que quieras darle al mod o al arma para la instalación. Este archivo *.exe no es otro que WeiDU.exe (el ejecutable de WeiDU) renombrado.
3 - Un archivo *.tp2, el cual debe llamarse "Setup-nombre", siendo "nombre" el mismo utilizado en el archivo *.exe. El archivo *.tp2 es el que da las instrucciones de la instalación. Por ejemplo "copiar tal archivo a tal lugar" y etc. Un archivo *.tp2 no es más que un *.txt renombrado.
VI. Como hacer en installer para tu arma. Paso a paso.
Bueno, ahora que ya he explicado todo lo necesario, vamos a el installer de WeiDU para el arma en si. Debemos tener el archivo *.itm y todos los archivos *.bam, *.spl, o cualquier tipo (o ninguno) que use, la cantidad no importa. El arma que usaré en este ejemplo será un garrote llamado "antiliches", y usa los siguientes archivos:
- antilich.itm (El arma en si, recordemos que no puede tener más de 8 caracteres de longitud).
- antilich.bam (Un archivo de gráfico).
Paso 1: Creo una carpeta llamada "Ejemplo". No sirve para nada, solo es el directorio dentro del cual estará todo el installer.
Paso 2: Dentro de la carpeta "Ejemplo", creo otra carpeta llamada "Antiliches". Dentro de ella, otra llamada "Backup".
Paso 3: Copio el ejecutable de WeiDU (WeiDU.exe), lo renombro "Setup-Antiliches.exe" y lo coloco dentro de la carpeta "Ejemplo".
Paso 4: Dentro de la carpeta "Ejemplo", creo un archivo *.txt y lo renombro "Setup-Antiliches.tp2".
El "árbol" debería quedar así:
- Ejemplo
- Antiliches
- Backup
- Setup-Antiliches.exe
- Setup-Antiliches.tp2
Paso 5: Ahora que todo está listo, hora de escribir el installer. Con el block de notas o lo que sea, abrimos el archivo *.tp2 y allí damos las órdemes correspondientes. En el caso de este ejemplo, sería:
// Installer para un arma de ejemplo
BACKUP ~AntilichesBackup~
AUTHOR ~Bhasbuto@adinet.com.uy~
BEGIN ~Antiliches~
COPY ~Antilichesantilich.bam~ ~overrideantilich.bam~
COPY ~Antilichesantilich.itm~ ~overrideantilich.itm~
SAY NAME1 ~Garrote~
SAY NAME2 ~Antiliches~
SAY UNIDENTIFIED_DESC ~Un garrote común.~
SAY DESC ~Este es un garrote antiliches. Hace 1d6 de daño, + 3 contra liches.~
Aquí podemos ver varias cosas:
1 - Cualquier cosa luego de // o entre /* */ es un COMENTARIO. Los comentarios son ignorados y no afectan para nada la instalación. Son usados para facilitar la lectura del archivo.
2 - BACKUP: Este comando dice a WeiDU el directorio en que debe guardar el backup de los archivos sobreescritos (si hay alguno). Es INDISPENSABLE. Ningún installer de WeiDU funcionará sin él.
3 - AUTHOR: En este comando se introduce una dirección de e-mail. Si la instalación falla, WeiDU dirá al usuario que reporte el error a esa dirección. Al igual que el comando anterior, este es indispensable y ambos deben ir al principio de todo installer de WeiDU
4 - BEGIN: Este es el nombre del componente. Un mod puede tener varios componentes, cada uno declarado por un BEGIN, y WeiDU preguntará si se quiere instalar cada uno de ellos. El contenido de un componente dado es todo lo que hay entre su BEGIN y el BEGIN siguiente. Si tenemos un componente llamado "Comp1" y otro "Comp2", durante la instalación WeiDU preguntará primero si quieres instalar "Comp1". Luego de que la instalación se efectúe (o no, dependiendo de tu respuesta), te preguntará si quieres instalar "Comp2".
5 - COPY ~ruta~ ~ruta~: El comando COPY copia un archivo o varios desde un lugar a otro. Normalmente es usado para copiar los componentes desde el directorio del mod a la carpeta override. Si estudias el ejemplo, verás que en realidad es muy fácil de entender.
6 - SAY <offset> ~Texto~: Este comando escribe al "texto" al final del dialog.tlk, y asigna el número de referencia al "offset" determinado. En nuestro ejemplo, tenemos cuatro:
a) NAME1: Es el nombre que tiene el objeto antes de ser identificado.

c) UNIDENTIFIED_DESC: Es la descripción del objeto antes de ser identificado.
d) DESC: Es la descripción del objeto una vez identificado.
VII. Para instalar el arma en el juego
Quien quiera instalar el arma en su BG2, solo tiene que colocar la carpeta "Antiliches" y los archivos *.exe y *.tp2 en el directorio principal del BG2. Luego ejecutas el *.exe y la instalación comenzará.
Si es simplemente un arma, luego habrá que llamarla al juego utilizando el CLUAConsole, como cualquier objeto que se haya colocado en el override.
___________________________________________________________________________
___________________________________________________________________________
Bueno, no creo haber olvidado nada, y espero que este tutorial sirva para aclarar algunas dudas y animar a los armeros a hacer installers de WeiDU para sus armas.
