qna_rh
Thread Id: 15502
Thread Name: Cambiar Mo Surf por objeto/script
#0
AcsPowerade 24582
¡Hola a todos! :)
Tenía una pregunta sobremla MO surf en pokémon ruby AXVE.

¿Se puede quitar la Mo Surf y crear una especie de objeto/script que al activarse, al hablar con el agua, sin tener mo surf aprendida, te deje nadar?
Gracias.
#1
cosarara97 12296
Respuesta corta y típica: No se puede hacer/Nadie lo ha hecho/No está investigado.
Respuesta larga:
Tendrás que aprender algo de asm, ingeniería inversa y debugging, pero básicamente yo haría lo siguiente (aunque quizá no lo consiguiera):
Encontrar el script/rutina que se activa al hablar con el agua (esto no debería ser muy difícil con vba-sdl-h). En caso de sea todo ASM, modifica la rutina para que llame a un script usando esto: http://wahackforo.com/t-thumb-mode-mini-tutorial-como-ejecutar-scripts-traves-de-asm. Si va a un script, solo necesitas un goto/call hacia el nuevo script. Una vez en el script, comprueba si se tiene el item, y llama a la rutina del surf (EDIT: Que por lo que se ve es un doanimation).
#2
Sonicarvalho 17082
Bueno, mientras investigando eso en RUBY (u), he descubierto que el SURF es un híbrido de ASM con SCRIPT.

El asm es lo que verifica si tienes la flag 0x80B (la 5 insignia, del surf), verifica si tienes algún pokemon en el equipo con SURF (mismo que el script haga eso) y verifica si estas antes de un bloco de surf con el movimento 4.

Para quitar esas limitaciones (excepto la ultima, si no, podrías hacer SURF en cualquier sitio pulsando A) debes llenar de ZEROS (00) desde el offset 0x0686FA al offset 0x068713.

AHORA el script:

Localizado en 0x1A0117:

#include stdattacks.rbh

'---------------
#org 0x1A0117
checkattack ATK_SURF
compare LASTRESULT 0x6
if 0x1 goto 0x81A014D
bufferpartypokemon 0x0 LASTRESULT
setanimation 0x0 LASTRESULT
lockall
msgbox 0x81A1344 MSG_YESNO '"The water is dyed a deep blue...\n..."
compare LASTRESULT 0x0
if 0x1 goto 0x81A014C
msgbox 0x81A137D MSG_KEEPOPEN '" used SURF!"
doanimation 0x9
releaseall
end

'---------------
#org 0x1A014D
end

'---------------
#org 0x1A014C
releaseall
end


'---------
' Strings
'---------
#org 0x1A1344
= The water is dyed a deep blue...\nWould you like to SURF?

#org 0x1A137D
= used SURF!


Bueno, cambia a tus gustos! Remueve el checkattack y no te pedira el surf!

Saludos! :D
#3
Aarón~ 24267
Magnifico! Deberías colgar esto en zona de investigación!