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:
'---------------
#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 '" 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
= 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:
'---------------
#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 '" 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
= 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:
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
YouTube Video
Eso es todo. Espero ter ayudado publicando esta información aqui en Wah!
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!
Iniciado por cosarara97
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
Iniciado por Mariofan
[QUOTE]Iniciado por cosarara97
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[/quote]
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
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!
[/spoiler]