Introducción
¿Cansado de ver tutoriales del año de La Pepa?¿Mal estructurados y rotos?
¿Quieres aprender a scriptear pero no te explican nada? Pues... ¡Bienvenido a este post!
En este tema te ensañaré todo lo básico del scripting de DS. Y cuando es TODO, es TODO.
¿Cómo funciona el thread dices?, empezaremos explicando como hacer tu primer "Hola mundo" dicho por un NPC sin vida hasta convertirnos en el mismísimo Mikelan trabajando con 400 triggers por segundo. Bueno, bueno... no nos pasemos, que he dicho que son nociones básicas. Pero creo que lo habéis pillado.
Este tema se irá actualizando a medida que vaya enseñando distintos scripts, enseñando como funcionan esos hermosos comandos y esos textos con curvas tan pronunciadas y ricas.
Todo lo que aprenderemos te servirá en la cuarta generación. Para la quinta generación haré un post aparte, pero tranquilos que no es tan diferente, solo algo especial.
NOTA: Hay una lista de comandos (desactualizada), pero que podéis echar una ojeada. https://whackahack.com/foro/t-23452/guia-comandos-sdsme
Requisitos
En mi caso yo estaré usando Pokémon Diamante y HeartGold en español.
Tutoriales
¿Cansado de ver tutoriales del año de La Pepa?¿Mal estructurados y rotos?
¿Quieres aprender a scriptear pero no te explican nada? Pues... ¡Bienvenido a este post!
En este tema te ensañaré todo lo básico del scripting de DS. Y cuando es TODO, es TODO.
¿Cómo funciona el thread dices?, empezaremos explicando como hacer tu primer "Hola mundo" dicho por un NPC sin vida hasta convertirnos en el mismísimo Mikelan trabajando con 400 triggers por segundo. Bueno, bueno... no nos pasemos, que he dicho que son nociones básicas. Pero creo que lo habéis pillado.
Este tema se irá actualizando a medida que vaya enseñando distintos scripts, enseñando como funcionan esos hermosos comandos y esos textos con curvas tan pronunciadas y ricas.
Todo lo que aprenderemos te servirá en la cuarta generación. Para la quinta generación haré un post aparte, pero tranquilos que no es tan diferente, solo algo especial.
NOTA: Hay una lista de comandos (desactualizada), pero que podéis echar una ojeada. https://whackahack.com/foro/t-23452/guia-comandos-sdsme
Requisitos
- No tener vida social
- Tu rom a modificar
- La hermosa herramienta PPRE (está en la web de Whack a Hack!)
En mi caso yo estaré usando Pokémon Diamante y HeartGold en español.
Tutoriales
Colocamos nuestra rom, exactamente, en la misma carpeta donde esté el PPRE.exe, que ¿qué es eso?, pues el programa que te dije antes que te descargaras, si es qué...
Abrimos el programita y le damos a Choose ROM y nos saldrá la rom a eligir (si no te aparece es porque la rom no está en la misma carpeta que el .exe). Seleccionamos nuestra rom y le damos a OK.
Si aparece el nombre en el cuadrito es que vas de lujo y eres el crack de cracks.
Ahora le damos a Set ROM. En la carpeta se nos creará otra carpeta, pero nosotros ni caso. Vamos al programa y le damos a Maps, se nos abrirá el Map Editor (si te aparece el siguiente error es porque no me haces caso y no le has dado a Set ROM,
Un editor con una interfaz súper decorada, ¿a que sí?.
Elegid el mapa que queráis donde pone EVERYWHERE. Yo elegiré el cuarto del protagonista, es decir, Pueblo Hojaverde R2-02.
Ahora iremos a Scripts. Es una pestaña donde están las únicas pestañas. ¿Quieres foto?
Como veis nos muestra los scripts del mapa, sus funciones, movimientos... Como el SDSME.
Le damos a la pestaña Scripts de abajo y a Add Script. ¿Quieres foto?
En la lista de scripts, como observamos, se añadió el nuestro (la lista de las pestañas, ¿otra foto?).
Vamos a empezar con el script.
Por último, con todo listo, le damos a Save Changes en el Map Editor y le damos un nuevo nombre a la ROM y a Write ROM.
Se nos creará una rom en la misma carpeta que el PPRE, pero sin la extensión de NDS. Así que le editamos el nombre y le añadimos el .nds.
Tremendo, ¿verdad?
Abrimos el programita y le damos a Choose ROM y nos saldrá la rom a eligir (si no te aparece es porque la rom no está en la misma carpeta que el .exe). Seleccionamos nuestra rom y le damos a OK.
Si aparece el nombre en el cuadrito es que vas de lujo y eres el crack de cracks.
Ahora le damos a Set ROM. En la carpeta se nos creará otra carpeta, pero nosotros ni caso. Vamos al programa y le damos a Maps, se nos abrirá el Map Editor (si te aparece el siguiente error es porque no me haces caso y no le has dado a Set ROM,
Un editor con una interfaz súper decorada, ¿a que sí?.
Elegid el mapa que queráis donde pone EVERYWHERE. Yo elegiré el cuarto del protagonista, es decir, Pueblo Hojaverde R2-02.
Ahora iremos a Scripts. Es una pestaña donde están las únicas pestañas. ¿Quieres foto?
Como veis nos muestra los scripts del mapa, sus funciones, movimientos... Como el SDSME.
Le damos a la pestaña Scripts de abajo y a Add Script. ¿Quieres foto?
En la lista de scripts, como observamos, se añadió el nuestro (la lista de las pestañas, ¿otra foto?).
Vamos a empezar con el script.
Ponemos Fanfare 1500 al principio del todo. Ésto la de un sonidito cool al hablar.
Luego le sigue el comando LockAll. Si vienes del romhacking de GBA sabrás para que sirve, sino pues te explico. Sirve para congelar el juego y todos los NPCs y cosas del universo. Estupendo ¿no?, poderes de paralizar el tiempo como siempre. Así no te mueves y escuchas al NPC con atención, campeón.
FacePlayer. Éste comando es para que el NPC feo y sin vida te mire a la cara. No tienes porque ponerlo si quieres un NPC que no te mire al hablar.
Message X. Éste comando muestra el mensaje. Donde X es el número del mensaje.
WaitButton. Con éste comando ordenamos al juego a mantener el mensaje, esencial para la gente que no lee a la velocidad de la luz.
Luego le sigue, evidentemente, CloseMsgOnKeyPress . Increíble, ¿no?. Si sabes inglés sabrás que con este comando haremos que el mensaje se cierre al pulsar el botón. Así que ten en mente que éstos dos van cogiditos de la mano.
ReleaseAll. Hace lo contrario que LockAll. Estás libre y el tiempo vuelve a su curso. ¡LIBERTAD!.
Para cerrar el script: End
Luego le sigue el comando LockAll. Si vienes del romhacking de GBA sabrás para que sirve, sino pues te explico. Sirve para congelar el juego y todos los NPCs y cosas del universo. Estupendo ¿no?, poderes de paralizar el tiempo como siempre. Así no te mueves y escuchas al NPC con atención, campeón.
FacePlayer. Éste comando es para que el NPC feo y sin vida te mire a la cara. No tienes porque ponerlo si quieres un NPC que no te mire al hablar.
Message X. Éste comando muestra el mensaje. Donde X es el número del mensaje.
WaitButton. Con éste comando ordenamos al juego a mantener el mensaje, esencial para la gente que no lee a la velocidad de la luz.
Luego le sigue, evidentemente, CloseMsgOnKeyPress . Increíble, ¿no?. Si sabes inglés sabrás que con este comando haremos que el mensaje se cierre al pulsar el botón. Así que ten en mente que éstos dos van cogiditos de la mano.
ReleaseAll. Hace lo contrario que LockAll. Estás libre y el tiempo vuelve a su curso. ¡LIBERTAD!.
Para cerrar el script: End
Arriba del todo, en las pestañas, al lado de Scripts está la pestaña Text. Pa' dentro.
Fácil ¿no?. text_X=, donde X es un número que tu quieras darle al texto, esa X que pondremos en el comando Message
En mi caso sería text_7=. Mi mensaje será: "¡Hueles fatal!\n¡Vamos a ver si usas más el gel!"
Fácil ¿no?. text_X=, donde X es un número que tu quieras darle al texto, esa X que pondremos en el comando Message
En mi caso sería text_7=. Mi mensaje será: "¡Hueles fatal!\n¡Vamos a ver si usas más el gel!"
- Acuérdate de ponerlo entre comillas
- \n es para pasar a la siguiente línea. Porque un texto seguido que llegue al infinito queda feo
En nuestras pestañas de siempre (Scripts y Text) hay una llamada Events. Let's GO!
Le damos a la pestaña Overworlds. En mi caso no tengo ninguno, así que lo añado sumando 1 aquí.
ID es el número que le corresponde al NPC. En mi caso 0 porque es el primero.
Sprite es el gráfico que le corresponde, yo le pondré el 16.
Movement su posición en movimiento. Como lo queremos parao', pues 14.
Script, el número de nuestro script, el mío es el 7.
Coordenadas, X es el eje Y en el plano, Y el eje X en el plano, Z la altura. ¿CÓMO?, X es arriba o abajo, Y derecha o izquierda, Z subir o bajar.
En este caso Z es 0 porque lo queremos en el suelo.
Le damos a la pestaña Overworlds. En mi caso no tengo ninguno, así que lo añado sumando 1 aquí.
ID es el número que le corresponde al NPC. En mi caso 0 porque es el primero.
Sprite es el gráfico que le corresponde, yo le pondré el 16.
Movement su posición en movimiento. Como lo queremos parao', pues 14.
Script, el número de nuestro script, el mío es el 7.
Coordenadas, X es el eje Y en el plano, Y el eje X en el plano, Z la altura. ¿CÓMO?, X es arriba o abajo, Y derecha o izquierda, Z subir o bajar.
En este caso Z es 0 porque lo queremos en el suelo.
Por último, con todo listo, le damos a Save Changes en el Map Editor y le damos un nuevo nombre a la ROM y a Write ROM.
Se nos creará una rom en la misma carpeta que el PPRE, pero sin la extensión de NDS. Así que le editamos el nombre y le añadimos el .nds.
Tremendo, ¿verdad?
Última edición: