Registrarse

[Otros] FR | Hacer que los Pokémon se queden a un PS con el veneno

Sergiofr_18

En el sendero de la vida
Hola. (?)

Como dice el título, hoy os traigo un tutorial bien sencillo sobre cómo hacer que tu Pokémon no se debilite con el veneno fuera del combate, si no que se quede a 1 PS, estilo D/P/Pt. Si lo que quieres es que el Pokémon no sufra daño en la Pokéball, ve abajo del todo, donde pone extra.

Antes de nada, agradecer a @Sage0ne por ayudarme a entender esto y a DaniiLS por su investigación en PokéCommunity.

Editor Hexadecimal, en mi caso (y como casi todo el mundo) HxD.
XSE
Una ROM.
VBA

Empecemos pues.

1) Abrimos HxD con nuestra ROM (siempre tened una copia de seguridad a mano) y nos dirigimos al offset 0A0524 mediante Ctrl+G (allí escribes el offset, le das a OK y ya está). Tras esto, escribes (o pegas escribiendo con Ctrl+B si eres vago) "01" en lugar de lo que estaba allí. Repites este paso con los offset 0A064E y 0A0656.


2) Ahora nos dirigimos al offset 0A04CE y escribimos "02 E0" sobreescribiendo lo que estaba puesto.

3) Vamos al offset 1A8E04 y escribimos "6B 02" en lugar de lo que estaba allí si no lo entiendes ya considera aprender un poco de HxD antes xD

4) ¿A qué offset vamos ahora? A ninguno xD. Abrimos XSE y escribimos lo siguiente:
Código:
#dynamic 0x800000

#org @inicio
msgbox @frase 0x4

#org @frase
= [buffer1] sobrevivió al\nenvenenamiento. ¡El veneno ha\ldesaparecido!
Una vez hecho esto, compilamos. Aparecerán dos offset. Prestad atención a esto, es importante. Elegiremos el offset de abajo, el que pone @frase, NO EL QUE PONE @inicio , ¡¡¡EL QUE PONE @frase !!! Y lo copiamos.




5) Hacemos del offset del paso anterior un pointer. Por ejemplo, mi offset era 800009, lo separamos así: 80-00-09. Lo leemos de derecha a izquierda y queda así: 090080.
Con el offset invertido, le añades 08 y listo. Tienes el pointer (09008008)

6) Abrimos el HxD de nuevo y vamos al offset 0A05E4. Allí pegamos nuestro pointer, et voilá, hemos terminado.
7) Probamos el resultado. Si funciona, le das +Gracias al post o algo (?)

Si tenéis dudas, preguntad, siempre estaré dispuesto a ayudar :D

¡Un saludo!

Bueno, si no quieres usarlo por la razón que sea, aquí tienes una alternativa para el paso 4.
*Nota: Necesitaremos FSF.
Abrimos el FSF y buscamos un espacio libre (yo busco 1000 bytes para estar seguro, pero con muchos menos llega) y con HxD vamos al offset que nos marca. Allí pegamos escribiendo (Ctrl+B) el siguiente código (créditos a @Adke)
Código:
FD0200E7E3D6E6D9EADDEADD2300D5E000D9E2EAD9E2D9E2D5E1DDD9E2D8E3ADFE52BFE000EAD9E2D9E2E300DCD500D8D9E7D5E4D5E6D7DDD8E3ABFB
Tras pegarlo, transformamos el offset donde empieza este código en un pointer, siguiendo ya el paso 5.

EXTRA:
Si alguien tiene ganas de que el Pokémon simplemente no sufra daño por efecto del envenenamiento al estar dentro de la Pokéball, puede omitirse todos los pasos del anterior tutorial y seguir este simple y sencillo paso:

Ir a 0x06D7C3 y cambiar 01 por E0
 
Última edición:

Bugrhak

A long time ago I used to call myself "Subzero".
Uffff, que aporte amigo, que APORTE, yo lo he visto una o 2 veces en pokeco, pero como los idiomas no se me dan bien (en especial ingles y español aunque parezca mentira) pase muchas veces de intentar usar eso en algo.

Pero esto lo cambia todo, está muy bien explicado, y al fin y al cabo veo que era fácil :V

Solo me quedó una duda: ¿Por que este tema tiene tan pocos comentarios?
 

Adke

weeeh
En vez de hacer el paso 4 del xse que queda un poco chapuzas y estás malgastando unos pocos bytes es más fácil insertar directamente el mensaje en hex.

Código:
FD0200E7E3D6E6D9EADDEADD2300D5E000D9E2EAD9E2D9E2D5E1DDD9E2D8E3ADFE52BFE000EAD9E2D9E2E300DCD500D8D9E7D5E4D5E6D7DDD8E3ABFB
Eso sería: "[buffer1] sobrevivió al envenenamiento. ¡El veneno ha desaparecido!" que si no recuerdo mal es lo que salía en los juegos oficiales.

Lo insertas en un hueco libre y ya haces lo de permutar y repuntear ^^

PD: Además se debería solucionar el "bug" de que pasa demasiado rápido.

EDIT: Corregido el error ortográfico.
 
Última edición:
Buen aporte, nunca me tomé la molestia de revisar si esto era posible, tampoco llevo mucho tiempo en el foro así que da igual; lo usaré en su momento, no me gusta que mis pokemon mueran por veneno y pues dicen que "no le hagas a los demás lo que no te gusta que te hagan.

Solo me quedó una duda: ¿Por que este tema tiene tan pocos comentarios?
Pos porque apenas lleva aproximadamente media hora el tema xD
 
M

Miembro eliminado 28262

Invitado
Buen tutorial niggi!
me gusta que se sigan aportando cosas a wah
da igual que sea, es un aporte, y este le será de mucha ayuda
a muchas personas, cuenta con eso ;)

Un saludo y buenas vibras
Buenos dias

#El reseteado seich
 

Axel

Leyenda de WaH
Este aporte es una maravilla. Llevo pensándolo meses, y por fin alguien lo ha subido. Muchas gracias colega, me viene de perlas.
 

Sergiofr_18

En el sendero de la vida
Chicos, he conseguido solucionar el "bug" de que se lea muy rápido lo del veneno. Atended al script que está ahora en el tutorial. @Adke, lo he puesto en forma de script para que sea más fácil de entender para los demás, pero si alguien quiere usar tu código, funciona perfectamente, excepto por un pequeño error ortográfico, pues pone "(Pokémon) sobsvivió al envenenamiento. ¡El veneno ha desaparecido!" No lo considero de mucha importancia, pero lo notifico :p

Saludos y gracias por el apoyo
 

Jo7a

Kiero mi nick amarillo D:
Es un buen aporte, es simple de hacer y además es práctico.

Solo una cosa, bueno dos:

1: Si has hecho un script para insertar el msgbox, bueno, me parece bien ya que así lo entienden mejor y además ese script ocupa unos bytes insignificantes por lo que apenas se pierde nada, pero, ¿el release para que?

2: ¿Por qué msgbox 0x4? no sería mejor 0x6? el 0x4 es el que hace que al ejecutarse el msgbox, el t box no se cierre.
 

Sergiofr_18

En el sendero de la vida
Es un buen aporte, es simple de hacer y además es práctico.

Solo una cosa, bueno dos:

1: Si has hecho un script para insertar el msgbox, bueno, me parece bien ya que así lo entienden mejor y además ese script ocupa unos bytes insignificantes por lo que apenas se pierde nada, pero, ¿el release para que?

2: ¿Por qué msgbox 0x4? no sería mejor 0x6? el 0x4 es el que hace que al ejecutarse el msgbox, el t box no se cierre.
Gracias Jo7a por la opinión :3

1.-No soy muy experto en scripts, supuse que sin el release y sin el end funcionaría, pero los puse por si acaso.

2.-Si lo haces con el 0x6, la caja del texto desaparece rapidísimo, no da tiempo a leerla. Por eso el 0x4

Espero haber aclarado (sobre todo la 2) tus dudas.
Saludos
 

Lunos

Enfrentando a La Organización
Miembro insignia
Vaya, no pensé que esto fuese asi de facil xDD ..
Es una de las cosas que llegué a amar de HG/SS, asi que muchisimas gracias por el post.
Si a alguien le sirve, hice un resumen rapido personal, lo dejaré aqui tirado por si las dudas:
1) Abrir un editor hexadecimal, la ROM, e ir a:
-0A0524 y teclear "01".
-0A064E y teclear "01".
-0A0656 y teclear "01".
-0A04CE y teclear "02 E0".
-1A8E04 y teclear "6B 02".

2) Insertar este script en la ROM:
#dynamic 0x800000

#org @inicio
msgbox @frase 0x4
release
end

#org @frase
= [buffer1] sobrevivió al\nenvenenamiento. ¡El veneno ha\ldesaparecido!

3) Copiar el Offset @frase a la hora de compilar.

4) Convertir el Offset copiado en el Paso 3 a Pointer.

5) Ir a 0A05E4 y escribir nuestro Pointer.

6) Guardar y Probar.
 

Sergiofr_18

En el sendero de la vida
He actualizado el tutorial con imágenes y ejemplos, además de explicar el paso 4 sin XSE. Ahora sí, el tutorial está al 100%
 
Última edición:

KevinXDE

Usuario mítico
Esto seguro que lo añado a mi hack xD, así que gracias!

Solo una cosa... ¿Veo que en la última imagen se debe de pulsar A para que se vea la palabra "desaparecido"? Si es así, ya lo quitaré para que ponga que solo ha sobrevivido al veneno, que no me gusta como queda xD
 

Sergiofr_18

En el sendero de la vida
Esto seguro que lo añado a mi hack xD, así que gracias!

Solo una cosa... ¿Veo que en la última imagen se debe de pulsar A para que se vea la palabra "desaparecido"? Si es así, ya lo quitaré para que ponga que solo ha sobrevivido al veneno, que no me gusta como queda xD
Del script del paso 4 puedes poner el texto que quieras, yo puse el que ponen los juegos originales ;)

Saludos
 
M

Miembro eliminado 28262

Invitado
ATENCIÓN: MINI TUTORIAL
Si alguien tiene ganas de que el pokémon simplemente no sufra daño por efecto del envenenamiento al estar dentro de la pokéball, puede omitirse todos los pasos del anterior tutorial y seguir este simple y sencillo paso:

Ir a 0x06D7C3 y cambiar 01 por E0

Sólo para FireRed
créditos a daniilS
 

Jo7a

Kiero mi nick amarillo D:
ATENCIÓN: MINI TUTORIAL
Si alguien tiene ganas de que el pokémon simplemente no sufra daño por efecto del envenenamiento al estar dentro de la pokéball, puede omitirse todos los pasos del anterior tutorial y seguir este simple y sencillo paso:

Ir a 0x06D7C3 y cambiar 01 por E0

Sólo para FireRed
créditos a daniilS
Se supone que haciendo eso el pokémon envenenado solo perderá vida durante los combates, no? (mientras luche)
 
Arriba