Vamos a hacer un script sencillo para iniciarse en los scripts de NDS. Yo no se scriptear en GBA pero se que los scripts en NDS se parecen mucho a los de GBA. Asique, por ejemplo, los flags se usan de la misma forma que en GBA. Primero abrimos el SDSME y le damos a Abrir ROM (arriba a la derecha). Elegimos una Rom D/P y esperamos unos segundos. Aparecera una ventana diciendo los headers encontrados. Le damos a aceptar. Ahora nos vamos a "Matrices" donde veremos el mapa de la region. (Aclaro que desde aqui se hacen las conexiones entre mapas). Nuestro script lo haremos en el mapa de Pueblo Hojaverde, que viendo el mapa sabremos que es este:
Le damos doble click y nos llevara a la pestaña headers al numero 411. Aqui tenemos los datos de Pueblo Hojaverde. Ahora siguendo la linea veremos que pone 389 antes del nombre del pueblo. Este numero corresponde a los eventos:
Le daremos doble click al numero y se abrira una ventana donde podemos controlar los eventos de este mapa. Iremos a "overworlds" y veremos una lista de 8 overworlds donde el 3º corresponde a el rival. Nosotros usaremos el segundo que corresponde a uno de los minis del pueblo que se encuentra cerca de la casa del player. Ahora vamos a "Triggers" y seleccionamos el Trigger 2. Este corresponde al script del rival. En los apartados X e Y ponemos 116 y 887, respectivamente. Estas coordenadas corresponden a dos puntos justos delante de la puerta de la casa del player. Ya que no podemos hacer que se inicie automaticamente porque no se pueden editar todavia los scripts de nivel. Le damos a Guardar Actual. Ahora que hemos modificado el trigger volvemos a overworlds. Vamos al segundo overworld y nos fijamos en el ID, es el numero 1. Acordaros de este numero a la hora de hacer el script. Finalmente cerramos la ventana y nos fijamos en el numero 978 en la fila del pueblo. Este corresponde al archivo de scripts. Le damos doble click y no llevara a la pestaña "Scripts" Aqui tenemos la lista de scripts que contiene este mapa. El Script numero 2 es el script del rival. Este es el que vamos a modificar. Lo borramos todo excepto el nombre(Script #2) y el End. Dejando un espacio entre ellos. Ahora finalmente vamos a empezar con el Script.
Empezamos asi:
Script #2
LockAll
End
De esta manera bloqueamos el juego.Ahora vamos a ponerle movimiento a el overworld de antes poniendo el comando seguido de 0xID del overworld
Script #2
LockAll
ApplyMovement 0x1 Movement_#1
End
Ahora para editar el movimiento nos vamos a la pestaña movimientos.
Borramos el primero dejando el nombre y el End separados un espacio y escribimos el movimiento. Para escribirlo os recomiendo que tengais la ROM abierta en un emulador y conteis los pasos que tiene que dar el overworld.
Primero pondremos una exclamacion. En este caso lo ponemos asi:
Movement #1
Exclamation 0x1
WalkRightFast 0x8(Esto es el numero de pasos)
WalkUpFast 0x1
End
Ahora volvemos a Scripts. Ahora ponemos un WaitMovement detras del ApplyMovement. Añadiremos un mensaje asi:
Script #2
LockAll
ApplyMovement 0x1 Movement_#1
WaitMovement
Message 0x0(Esto corresponde al numero del mensaje)
WaitButton
CloseMessageOnKeyPress
End
Ahora le dais a Guardar Actual Abajo a la Izquierda. Para editar el texto volvemos a Headers y le nos fijamos en el numero 498 en la fila del pueblo. Corresponde al archivo de textos. Le damos doble click y nos habra llevado a la pestaña "Textos" Ahora vereis todos los textos del mapa. Vamos a editar el numero 0 que es el que pusimos en el script. Podeis escribir lo que querais. El comando \r sirve para cambiar de linea mientras que el comando \n sirve para empezar nuevo parrafo (Si no me entendeis probadlo en el juego). Le dais a Guardar Actual y volvemos a la pestaña Scripts y seguimos con nuestro script. Ahora haremos que el overworld vuelva a su sitio pero que nos lleve con el. Para ello lo pondremos asi:
Script #2
LockAll
ApplyMovement 0x1 Movement_#1
WaitMovement
Message 0x0
WaitButton
CloseMessageOnKeyPress
ApplyMovement 0x1 Movement_#2
ApplyMovement 0xFF Movement_#3
WaitMovement
End
El Segundo ApplyMovement lleva el 0xFF que corresponde al player.
Ahora le dais a Guardar Actual y nos vamos a movimientos, borramos los movimientos 2 y 3 dejando los nombres y los End
Ahora ponemos estos movimientos:
Movement #2
WalkDownFast 0x1
WalkLeftFast 0x9
SeeUp 0x1
End
Movement #3
WalkDownFast 0x2
WalkLeftFast 0x8
SeeUp 0x1
Aclaro que el comando See(Up, Down, Right o Left) es para que el overworld mire hacia un lado. Ahora que los movimientos ya estan le damos a Guardar Actual. Volvemos a Scripts. Ahora podriamos seguir añadiendo mas pero prefiero que lo practiqueis vosotros. Para acabar el script le añadimos un ReleaseAll:
Script #2
LockAll
ApplyMovement 0x1 Movement_#1
WaitMovement
Message 0x0
WaitButton
CloseMessageOnKeyPress
ApplyMovement 0x1 Movement_#2
ApplyMovement 0xFF Movement_#3
WaitMovement
ReleaseAll
End
Pues ya esta :) Podeis subir si quereis videos a este tema de como os ha quedado el script y podeis añadirle algun mensaje mas o algun movimiento mas. Espero que os haya gustado;). Cualquier duda preguntad :)