Comportamiento de Tiles

Alguna vez te diste cuenta que al "hablar" con una pared de afuera del centro pokémon aparecía un mensaje, pero si revisabas en el mapa no tenía ningún script? Bueno, pues eso se debe a que el script no esta asignado directamente en el mapa, sino que está asignado al tile mismo! y es por eso que en cada centro Pokémon aparece el mismo mensaje una y otra vez.

De eso se trata este tutorial. Vamos a ver como reemplazar estos comportamientos, los que he encontrado son solo algunos, pero además faltan bastantes... y algunos ni se usan!

Herramientas

  • eXtreme Script Editor
  • Advance Map

Aclaraciones:

Este tutorial es válido para cualquier versión de Pokémon. Sin embargo los datos recopilados son solo para Fire Red. Si conoces mas de estos datos y fueras tan amable de compartirlos con el mundo sería grandioso, por favor contacta con el administrador.

Compilación del comportamiento (script)

Para empezar hay que saber que el comportamiento que podemos asignar no es nada mas que un Script como cualquier otro. Vamos a necesitar uno, puede ser cualquier cosa como un mensaje simple, un mensaje de pregunta, un multichoice, o algo mas complejo como un script que compruebe que alguno de tus pokemon tenga un ataque específico para poder obtener ciertas cosas, que tengas cierta medalla para "traspasar" un muro, o cualquier cosa que te puedas imaginar. Si por este momento no tienes ni idea de por donde empezar, pues te dejo un ejemplo bien sencillo con un mensaje para que no te vayas a quedar estancado y que podamos continuar con este tutorial.

#dynamic 0x

'---------------
#org @start
lock
msgbox @msg 0x6
release
end

'---------------
#org @msg
= ˇFunciona!

Ahora debemos de compilar el Script en la Rom con la ayuda del XSE. Si no sabes hacerlo trataré de explicarlo de forma rápida...

Ahora lo unico que tenemos que memorizarnos (o preferiblemente anotar en el Bloc de notas) es el Offset, en este caso el Offset 0x750000.

Redireccionar el viejo comportamiento

En esta parte viene lo mas interesante, es una lista de comportamientos que pude encontrar en una Rom de Pokémon Fire Red. Analízala un poco y decide cual comportamiento es el que vas a sustituir...

Byte	Offset		Descripcion
81	0x1A7606	Libreros
82	0x1A760F	Mostradores Tienda
83	0x1A6955	PC
85	0x1A6C32	Mapa
86	0x168C78	Programa de TV
87	0x1A76E7	Centro Pokémon
88	0x1A76DE	Tienda Pokémon
89	0x1A7657	Platos perfectamente alineados
8A	0x1A7660	Huele delicioso
8B	0x1A7669	Mueble resistente
8C	0x1A7672	Un montón de comida
8F	0x1A7702	Cuestionario Regalo Misterioso
90	0x1A7618	Un Refrigerador
91	0x1A76F0	Estatua 1 Esto es la calle victoria
92	0x1A76F9	Estatua 2 Esto es la calle victoria
94	0x1A767B	Un retrato muy mono
95	0x1A7684	Máquina Extrańa
96	0x1A768D	Teléfono
97	0x1A762A	Una PC con códigos raros
98	0x1A7696	Poster de productos
99	0x1A769F	Platillos del Restaurante y del SS ANNE
9A	0x1A76A8	Botes de Basura
9B	0x1A76B1	Taza de Café
9C	0x1A76BA	Ventana
9D	0x1A76C3	Otra Ventana
9E	0x1A76CC	Lucecitas de colores...
9F	0x1A76D5	Mostradores Tienda de Bicis

Ahora que ya seleccionaste uno de la lista (yo escogí el 91 que es el de una estatua en la calle victoria) hay que descompilar el contenido del Script. Trataré de explicarlo de manera rapida...

Lo que vemos en la pantalla es el script original, es decir el comportamiento original que tenía asignado un Tile, lo que vamos a hacer es simplemente reemplazar todo lo que haya (Excepto la primer linea #org) por el comando "goto 0x" seguido del Mismo offset donde compilamos antes el Script y luego presionamos el botoón "Compilar".

Esto hará que cuando el juego quiera leer lo que había en el Script original se encuentre con nuestro comando goto que le dirá el nuevo Offset donde esta el Script.

Nota como yo he puesto un 8 antes del offset, es completamente opcional, pero parece que algunas versiones viejas de XSE no lo permiten, asi que de preferencia deja solo el Offset.

Asignación del comportamiento a un tile

Lo que sigue es decidir qué tile es el que reaccionará con este comportamiento. Ten en cuenta que pueden ser varios tiles, no solamente uno.

Yo voy a escoger el tile de árbol. Para asignar el comportamiento vamos a cargar nuestro ROM en Advance Map y cargar el mapa que contenga el tilemap (es decir, el mapa donde aparezca el tile que buscamos) y hacer clic en el botón de "Editor de Bloques" (tiene un icono con una pieza de rompecabezas morada). Esto nos abrirá una nueva herramienta donde aparecen todos los tiles que utiliza el mapa. Vamos a buscar el que nosotros deseemos y lo seleccionamos, entonces en la parte derecha nos van a aparecer varias opciones. Debemos de cambiar el valor del cuadro "Byte de comportamiento 1" por el Byte de la lista anterior que corresponda al comportamiento que hayamos elegido y presionamos el botón "Guardar".

Ahora cerramos el editor de bloques y presionamos Ctrl+S para guardar todos los cambios, y entonces sí, en el emulador vamos a comprobar como todos las copias del tile en el mapa tienen ese comportamiento!

Nota: El script que yo compilé no es el de este tutorial. Muestra de que se pueden hacer cosas mas complejas. ˇAdelante, a echar volar la imaginación!

Zonecircus! © Gut_Bro 2009 - 2021 | Diseño por Gut_Bro | Contacto