Registrarse

Buceo en Fire Red

Sonicarvalho

Tutorial Maker
Hola gente! Saludos de Portugal e de Dark Rayquaza de la antiga myustu. :D
Como no he tenido clases de español, yo no sé hablar-lo bien, entonces me perdonen cualquier error de gramática o sintaxis.
-----------------------------------------------
En primer lugar, yo también lo sé que es mucho mas fácil escribir un script que haga lo Warp para nuestro mapa. Pero este método es "legal" pues la información de DIVE esta presente en FireRed e con este método las coordenadas del player permanecen las mismas quando el player es "warpeado".

Es verdad. La información de DIVE está presente en Rojo Fuego, e además son meros scripts. E en esos scripts no está nadie relacionado con el Warp, pero yo les voy explicar eso mas adelante.

Entonces, como lo hacemos?
Bien, primer hay un certo numero de requisitos para que el dive funcione.
El mapa que está bajo el agua tiene que ter como Type (En advance-map, en el cabezazo del mapa) Underwater [05]. El mapa que es el exterior deve ter como Type ??? [06].
El mapa underwater debe tener una conexion como, por ejemplo, esta:



El mapa Overworld debe tener una conexión como, por ejemplo, esta:



Ahora estamos listos para los scripts. En realidad los scripts están presentes en la rom.
El script que deve ser llamado cuando se está fuera de agua (OverWorld) está localizado en el offset 1BE38B
El script:
Código:
'---------------
#org 0x1BE38B
lockall
checkattack ATK_DIVE
compare LASTRESULT 0x6
if 0x1 goto 0x81BE3CA
bufferpartypokemon 0x0 LASTRESULT
setanimation 0x0 LASTRESULT
setanimation 0x1 0x1
msgbox 0x81BE469 MSG_YESNO '"The sea is deep here.\nWould you l..."
compare LASTRESULT 0x0
if 0x1 goto 0x81BE3D2
msgbox 0x81BE49B MSG_KEEPOPEN '"[buffer1] used DIVE."
doanimation 0x2C
goto 0x81BE3D2

'---------------
#org 0x1BE3CA
msgbox 0x81BE42B MSG_KEEPOPEN '"The sea is deep here. A POKéMON\nm..."
releaseall
end

'---------------
#org 0x1BE3D2
releaseall
end


'---------
' Strings
'---------
#org 0x1BE469
= The sea is deep here.\nWould you like to use DIVE?

#org 0x1BE49B
= [buffer1] used DIVE.

#org 0x1BE42B
= The sea is deep here. A POKéMON\nmay be able to go underwater.

Para el script que deve ser llamado quando estamos bajo el agua (Underwater), el offset es: 1BE3D4 y el script es:
Código:
'---------------
#org 0x1BE3D4
lockall
checkattack ATK_DIVE
compare LASTRESULT 0x6
if 0x1 goto 0x81BE412
bufferpartypokemon 0x0 LASTRESULT
setanimation 0x0 LASTRESULT
setanimation 0x1 0x1
msgbox 0x81BE4EF MSG_YESNO '"Light is filtering down from above..."
compare LASTRESULT 0x0
if 0x1 goto 0x81BE429
msgbox 0x81BE49B MSG_KEEPOPEN '"[buffer1] used DIVE."
doanimation 0x2C
goto 0x81BE429

'---------------
#org 0x1BE412
lockall
msgbox 0x81BE4A9 MSG_KEEPOPEN '"Light is filtering down from above..."
goto 0x81BE429

'---------------
#org 0x1BE429
releaseall
end


'---------
' Strings
'---------
#org 0x1BE4EF
= Light is filtering down from above.\nWould you like to use DIVE?

#org 0x1BE49B
= [buffer1] used DIVE.

#org 0x1BE4A9
= Light is filtering down from above.\nA POKéMON may be able to surface.

Ahora vamos a analizar los scripts. A primera vista, parece que no hay warps. La verdad es, no hay mismo. Lo comando que trata de todo es el "doanimation 0x2C". Si todos los requerimientos para que dive funcione están presentes en los dos mapas conectados por dive/emerger , y se ejecutan un script solo con ese comando, veréis que eso vos teleporta para lo otro mapa usando dive.

Tcharan! Ahora tienen un DIVE funcional en RojoFuego!!:D

Se alguno de vosotros no funciona, entonces tienten la solución presente en este spoiler:
Pero se nos depara otro problema. Si uséis el script de Underwater, ele funciona correctamente pero si useis el script de dive, ele apenas muestra la animación de lo pokemon haciendo dive y en seguida trava el Juego. Porque esto acontece?¿:.
Simples: Los comandos son rutinas ASM, y todas tienen sus funciones e diferencias. Pero el comando Doanimation utiliza su propio lenguaje de scripts, y ese comando tiene "checks" (verificaciones de ciertas cosas necesarias para el normal funcionamiento dese comando. ) y como esto es Rojo Fuego e no Ruby, hay ciertas cosas que no trabajan bien.
Pero como estamos entrando en la área de ASM, y vosotros (una buena parte) no comprenden ahora, me voy limitar a pedir-vos que en offset 06DF82, donde esta 15D1 pongan 0000.

Noten que necesitan poner los scripts como signposts en la agua escura o entonces assignar los scripts a behaviour bytes
Creditos a Knizz pela pesquisa.

Aquí esta un vídeo de Dive

Eso es todo. Espero ter ayudado publicando esta información aqui en Wah!
 

Mustaine

Experto
RE: Dive en RojoFuego

Muy buen tutorial amigo, le servirá a muchos. La verdad es que primero tengo que aprender bien a hacer scripts y después lo pruebo. Se entiende perfectamente, dominas bastante el español jajaja
Saludos y un abrazo!
 

cosarara97

Dejad de cambiar de nick
Miembro de honor
RE: Dive en RojoFuego

Bueno,y si pones 2 mapas de underwater, en cual de ellos apareces?
La posición del mapa en la que apareces supongo que es la misma que en el mapa de overworld, pero no entiendo como decides en que mapa apareces :(
Así que... no lo voy a dar por entendido.

Bueno, gracias por el tutorial :)

Dew!
 

Mariofan

Usuario mítico
RE: Dive en RojoFuego

cosarara97 dijo:
Bueno,y si pones 2 mapas de underwater, en cual de ellos apareces?
La posición del mapa en la que apareces supongo que es la misma que en el mapa de overworld, pero no entiendo como decides en que mapa apareces :(
Así que... no lo voy a dar por entendido.

Bueno, gracias por el tutorial :)

Dew!
Bueno, el mapa en el que se aparece se especifica en el AM en el editor de direcciones tal y como en el ruby, y eso lo dice nuestro amigo al poner su tutorial :D
 

Sonicarvalho

Tutorial Maker
RE: Dive en RojoFuego

Mariofan dijo:
cosarara97 dijo:
Bueno,y si pones 2 mapas de underwater, en cual de ellos apareces?
La posición del mapa en la que apareces supongo que es la misma que en el mapa de overworld, pero no entiendo como decides en que mapa apareces :(
Así que... no lo voy a dar por entendido.

Bueno, gracias por el tutorial :)

Dew!
Bueno, el mapa en el que se aparece se especifica en el AM en el editor de direcciones tal y como en el ruby, y eso lo dice nuestro amigo al poner su tutorial :D
Muy Correcto, MarioFan! :D
La animación 0x2C limita-se a mostrar el pokemon que usa el move e después se teleporta el player para el mapa que tiver en la direcciones como DIVE o Emerger. El facto es, no puedes ter 2 o mas conexiones DIVE/EMERGE en el mismo mapa. Y, para que dive funcione correctamente, tienta hacer el mapa underwater con el mismo tamaño que el overworld, para que las coordenadas de warp coincidan.

~Sonicarvalho
 

fm~

Llámame FM.
RE: Dive en RojoFuego

Fala português, não?

Que grande tutorial, é com certeza um grande avanço para os Hacker de FR/LG.

Como se diz em espanhol: iSaludos!

Que gran tutoriale, és ciertamente un grán avanço para los hacks de RojoFuego.

iSaludos!
 

~Javs

Admon. retirado.
Miembro de honor
RE: Dive en RojoFuego

Wow, nunca me había puesto a intentar hacerlo, ahora supongo
que ya tengo una guía rápida y sencilla para hacerlo.

Gracias por aportar tutoriales a WAH.
¡Saludos!

PD: Te corregí las imágenes para que se vean sin darles click.. ;D
 
M

Miembro eliminado 28262

Invitado
Respuesta: GBA | Otros | Dive en RojoFuego

Uooo
Como nunca había visto esto?
Me mola muchísimo, Me será de gran utilidad! :D
 

PyerreIA12

Aprendiz de leyenda
RE: Dive en RojoFuego

Fala português, não?

Que grande tutorial, é com certeza um grande avanço para os Hacker de FR/LG.

Como se diz em espanhol: iSaludos!

Que gran tutoriale, és ciertamente un grán avanço para los hacks de RojoFuego.

iSaludos!
topissimo
 
Arriba