Registrarse

[Scripting] Aprende TODAS las nociones BÁSICAS del scripting

Drive

Cazador de subnormales
Colaborador
Redactor/a
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

  • 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.

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


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!"

  • 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.


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:

Lenny~

Señor de las Tostadoras
Respuesta: NDS | Aprende TODAS las nociones BÁSICAS del scripting

Excelente tutorial para aquellos que se quieran meter en el scripting de NDS. Ya aprendí hace un tiempo lo básico, pero aconsejo que si quieren hacer cosas más complejas miren la estructura de eventos existentes para aprender ^^
Un pequeño punto, la versión 0.14 puede "romper" algunos eventos de applymovement. Para solucionarlo, simplemente hay que cargar la rom en la versión 0.12 y guardarla.
 

Mimilena

Mimilena Strike Back
Bien hecho conductor, es una de las tantas cosas que necesito!
Es una guia basica si, pero te ayuda a intuir otras funciones del scripting de DS, ademas de que no hay mucho al respecto de forma general o almenos no tanto como otras plataformas, buen aporte
 

Retx

Pequeño saltamontes
A mi me aparece el error a pesar de que ya escogí la rom, le di a la opción Set Rom, me apareció la carpeta donde esta el .exe
Hasta cambie de computadora y pasa lo mismo
Que hago?
 
Arriba