Comencemos. Esto es, por supuesto, lo más basico.
- Abre el Advance Map y ve a Options > Choose Script Editor. Luego ve a la carpeta donde tengas el XSE y haz doble click. Te aparecerá un mensajito, clickea en "Yes" (o "Sí").
- Sencillo, ¿no? Hasta el más novato de los novatos sabría hacerlo. Incluso Hitler. Ahora viene la parte que me gusta, la parte de nuestro querido XSE, un programa imprescindible para el rom hacking.
Si no sabes usarlo olvidate del rom hacking. Vamos a abrir nuestro ROM con el XSE. Archivo > Abrir > Selecciona tu ROM (Forma más rápida: Ctrl + O > Selecciona tu ROM)
- Bien, ahora ya tenemos asignado el XSE al Advance Map y abierto nuestro ROM con XSE. En el capítulo 1 enseñaré como crear un script, cómo compilarlo, y algunos comandos básicos. Con lo que vamos ahora será con...
La creación de un script
Bien, comencemos.
#dynamic 0x80000
Y tú te preguntaras: ¿Qué es #dynamic 0x80000? Muy sencillo. Eso es lo que debes poner al principio de TOOOOOOOOO
OOOOODOS los scripts que hagas.
¿Qué ocurre si me olvido de poner el comando #dynamic?
No ocurre nada grave, no se te trabará el hack ni nada parecido. el XSE te avisará al compilarlo de que te has olvidado de ponerlo.
¿Y qué es compilar?
Eso está explicado más abajo, tú sigue leyendo tranquilamente.
Bien. Sigamos creando el script.
#dynamic 0x80000
#org @inicio
Vaya, ahora hemos añadido una cosa desconocida para mí, se llama #org @inicio. ¿Qué significa?
Eso es una cosa que deberás colocar también en TODOS LOS SCRIPTS. Sin el #dynamic y el #org @inicio no funcionará tu script, pero repito que el XSE te avisará.
¿Y por qué es @inicio?
Bueno, yo lo he puesto así porque es la costumbre, pero sin embargo puedes poner lo que tu quieras, siempre y cuando sea UNA SOLA PALABRA
Iniciado por Ejemplos
#org @inicio
#org @1
#org @lacacadetucasa
#org @la caca de tu casa
¿Ha quedado claro? Una sola palabra, repito, una sola palabra. ¿Me estoy repitiendo mucho? Lo siento, pero este suele ser un fallo muy común.
Bien, ahora explicaré dos comandos esenciales. lock y faceplayer
Estos dos comandos son opcionales, y no tienes por qué ponerlos, pero dependiendo del script sí deben ponerse (para que quede bien). En ningún caso es obligatorio para que funcione el script, pero sí para que no dé algunos errores...
#dynamic 0x80000
#org @inicio
lock
faceplayer
Bien, procedamos con la explicación.
lock: se usa para bloquear un mini (si en el Advance Map tenías puesto que estuviese mirando alrededor, sin este comando seguirá mirando al mismo tiempo que habla contigo)
faceplayer: se usa para que, al hablar con un mini, éste te mire a la cara (si le tenías puesto que estuviese mirando hacia arriba y le hablas por abajo, se girará para mirarte)
Bien, ahora que creo que eso ya ha quedado aclarado (no os quedéis con la duda, preguntadme si hay algo que no entendéis, no me molestáis, al contrario, me gusta la participación), procederemos con la explicación del conocido msgbox.
#dynamic 0x80000
#org @inicio
lock
faceplayer
msgbox @frase 0x6
Muy bien, el msgbox es bien fácil de utilizar... sin embargo, ahí hay algo que falta, pero ¡no te preocupes! ¡Cada cosa a su tiempo! Para empezar, procederé a explicar ese "0x6".
El 0x6 es uno de los parámetros del msgbox. Ahora procederé a explicar todos y cada uno de ellos.
0x0: Mensaje de cuando te dan un objeto (se usa para el giveitem, ya lo explicaré)
0x1: Este es parecido al 0x0, pero es cuando te encuentras una de esas Pokéball tiradas por el suelo que contienen algo.
0x2: Este es igual al 0x6, la única diferencia es que este tiene el faceplayer "incluído". Es decir, el 0x6 es un mensaje normal y corriente, pero si usas el 0x2 no necesitarás poner el faceplayer, ya que el mini te mirará automáticamente.
0x3: Este se usa para un script de un cartel (por ejemplo, en el cartel donde pone "Casa de <<jugador>>", se usaría un msgbox 0x3)
0x4: Éste creo que abre una msgbox normal, pero que no se cierra hasta que pulses A
0x5: Este es fácil de hacer, abre un YES/NO box (ya lo explicaremos más adelante, no será difícil de aprender)
0x6: Este es uno de los más usados, es como el 0x2 pero sin el faceplayer incluído. Es una caja de texto normal.
0xA: Este se usa sólo en Pokémon Esmeralda, y es para ejecutar una llamada del Pokénavegador.
Bien, ahora vamos a explicar qué es "eso que falta".
A ver, revisemos el script de nuevo.
#dynamic 0x80000
#org @inicio
lock
faceplayer
msgbox @frase 0x6
¿Qué es lo que falta? ¿No lo notas? Bueno, hemos puesto @frase, pero... ¿dónde está la frase que queremos mostrar? Muy simple.
#dynamic 0x80000
#org @inicio
lock
faceplayer
msgbox @frase 0x6
#org @frase
Aquí iría nuestro texto. ¿Cómo lo introducimos? Muuuuy fácil, pulsa Ctrl + T y se te abrirá un cuadro donde podrás escribir.
Sí, sólo nos faltaba eso. Definir la frase que queríamos poner. Recuerda pulsar Ctrl + T para escribir tu texto, del otro modo también es posible, pero muy difícil.
Bueno, hasta ahora ha sido muy sencillo nuestro primer script, ¿no? Y supongo que me habré explicado bien. Ahora vamos a finallizar nuestro script.
release
end
Como puedes ver, son comandos sencillos. Aquí la explicación.
release: permite a los minis volver a moverse (debes ponerlo SÓLO si pusiste el comando lock, sino gastarás bytes inútilmente)
end: su nombre lo indica todo. "Final". Cierra el script, se acaba todo. Se pone SIEMPRE.
Aquí tenéis una muestra de lo que sería un script básico (al lado de cada comando (los comandos son msgbox, release, end, etc.) he puesto un ' y un comentario, después de ' lo que se ponga no se incluye en el script, es para comentar)
#dynamic 0x800000 ' Dynamic busca una dirección a partir de 800000.
#org @inicio ' El puntero inicial
lock 'Bloquea el mini
faceplayer ' Mira al protagonista
msgbox @frase 0x6 ' Abre una caja de mensaje y muestra lo que hayamos puesto en @frase
release ' Sólo si se puso lock, para permitir que el mini se siga moviendo
end ' Finaliza el script
#org @frase ' Aquí está el puntero de la frase
= Ciro: ¡Guau, aquí hay mucha fruta,\nincluso hay 5 manzanas!\lCreo que me comeré una.\pMamá: Claro hijo, cómete las que\nquieras. ' Y ésta es la tan ansiada frase
Compilando el Script y asignándolo a un mini
Bien. ¿Veis en el XSE un icono de dos tuercas unidas? Sí, sí, ese icono:
Pues vale, hacemos click en él, y se nos abrirá una ventanita nueva.
Muy bien, pues lo que está remarcado en azul es el offset principal, el offset que contiene los datos de todo el script. Luego haces click en "Copiar" (SIEMPRE con el primer puntero marcado de azulito), y luego a "Cerrar" (habremos terminado con el XSE)
A continuación, vais al Advance Map, y en "Ver eventos" hacéis click encima del mini. En la barra de la derecha, buscad donde dice "Script offset" y lo sustituís por lo que hayáis copiado antes (manteniendo siempre el $).
Bueno, he modificado este capítulo porque antes no se entendía demasiado bien (eran 3 míseras líneas), supongo que ahora estará mejor.