Registrarse

[RH - Otros] Movimientos externos

mbcskm

Pequeño saltamontes
pido perdón por adelantado si esto ya ha sido preguntado pero no lo he encontrado, en Esmeralda, hay alguna forma de cambiar a que movimiento externo esta enlazada cada medalla o separarlos del todo como está en BW? o incluso hacerlos que existan por separado, en plan no estén en combate pero pueda usarlo fuera de batalla
 
Última edición:

Fran Agustín

Si el sol besa tus ojos, ni cuenta te das.
Miembro insignia
¡Hey, hola! La verdad es que al ganar una medalla se activa una flag (básicamente un interruptor).
Luego el juego revisa esa flag para decidir si puedes o no usar la MO fuera de combate. ¿El problema? Se usa la misma flag para decidir si mostrar o no la medalla correspondiente en la trainer card.
Entonces, como tú bien dices, medalla y MO están "enlazados".

¿Se puede cambiar este comportamiento? Como siempre digo: "el hardware es el límite". En este caso, si algo está programado para verificar una condición, puedes cambiarlo para verificar otra o no verificar ninguna.

Aquí tienes las flags usadas para las medallas: https://github.com/pret/pokeemerald/blob/master/include/constants/flags.h#L1353
En decomp es muy sencillo cambiar este comportamiento, solo tienes que buscar todas las ocurrencias de FLAG_BADGE01_GET (por ejemplo) y reemplazar las que estén siendo usadas para comprobar si puedes usar la MO.

Ahora, para el ROM Hacking binario... Realmente desconozco si alguien ya se ha tomado el trabajo puesto que será bastante más difícil (posible pero más complicado).
Me suena alguna investigación que buscaba reemplazar las MO por objetos pero no he podido encontrar el tema 😓
Aquí tienes uno que desactiva el chequeo de las flags para todos los MO (pero en FireRed): https://whackahack.com/foro/threads/fr-remover-el-checkflag-de-las-hms.49662/
(Como verás no cambia el chequeo sino que lo desactiva por completo, puedes usar cualquier MO en cualquier momento).

Y hasta aquí llego porque no puedo ayudarte más a fondo ni quiero ponerme a pelear debuggeando la ROM ni nada por el estilo en estos momentos. Pero te deseo suerte en tu búsqueda, ¡un abrazo!
 

Ryurs

Usuario de oro
A ver depende de lo que quieras hacer con ello, pero poder, se puede.

Digamos que cada MO en particular (y la MT Daño Secreto en esmeralda) tienen un script de funcionamiento asignado para las situaciones en las que puedas usarlo en el overworld, ya sea estar enfrente de un arbolito (MO Corte), estar enfrente del agua (MO Surf), etc.

Sabido esto y localizados donde están estos offsets, puedo decirte que no es más que coger el script, y jugar con el según tus necesidades. Hay 2 comprobaciones en esos scripts (a parte del resto por lo que está formado), que son la comprobación de la medalla en cuestión, y la comprobación de que al menos uno de los integrantes de tu equipo conozca dicho movimiento. Luego sería repuntear el puntero del script original a tu nuevo script configurado según tus necesidades y lo que quieras realizar.

Puedes ver hilos de pokecommunity que te dicen un poco la ubicación de donde están estos scripts.

Pero te aconsejo tener un conocimiento medio-alto de scripts para saber lo que te puedes cargar y saber reescribirlo para lo nuevo (quitar la morralla del script y reconfigurarlo) y que no dejes "agujeros" para así luego no tener problemas según las situaciones.

Un saludo
 

mbcskm

Pequeño saltamontes
encontré una manera para quitarlo del todo en Rojo Fuego con un codigo en hex edit, y eso me vale porque puedo simplemente poner la mo donde quiera que se pueda usar a partir de, quisiera hacer esto en esmeralda, o reordenarlo como poner vuelo el primero, que pienso que es muy comodo, imagino que la medalla esta vinculada con el flag al movimiento, no a la mo, porque si no seria facilmente cambiarla con un editor de objetos
 

mbcskm

Pequeño saltamontes
¡Hey, hola! La verdad es que al ganar una medalla se activa una flag (básicamente un interruptor).
Luego el juego revisa esa flag para decidir si puedes o no usar la MO fuera de combate. ¿El problema? Se usa la misma flag para decidir si mostrar o no la medalla correspondiente en la trainer card.
Entonces, como tú bien dices, medalla y MO están "enlazados".

¿Se puede cambiar este comportamiento? Como siempre digo: "el hardware es el límite". En este caso, si algo está programado para verificar una condición, puedes cambiarlo para verificar otra o no verificar ninguna.

Aquí tienes las flags usadas para las medallas: https://github.com/pret/pokeemerald/blob/master/include/constants/flags.h#L1353
En decomp es muy sencillo cambiar este comportamiento, solo tienes que buscar todas las ocurrencias de FLAG_BADGE01_GET (por ejemplo) y reemplazar las que estén siendo usadas para comprobar si puedes usar la MO.

Ahora, para el ROM Hacking binario... Realmente desconozco si alguien ya se ha tomado el trabajo puesto que será bastante más difícil (posible pero más complicado).
Me suena alguna investigación que buscaba reemplazar las MO por objetos pero no he podido encontrar el tema 😓
Aquí tienes uno que desactiva el chequeo de las flags para todos los MO (pero en FireRed): https://whackahack.com/foro/threads/fr-remover-el-checkflag-de-las-hms.49662/
(Como verás no cambia el chequeo sino que lo desactiva por completo, puedes usar cualquier MO en cualquier momento).

Y hasta aquí llego porque no puedo ayudarte más a fondo ni quiero ponerme a pelear debuggeando la ROM ni nada por el estilo en estos momentos. Pero te deseo suerte en tu búsqueda, ¡un abrazo!
lo de rojo fuego lo encontré antes de leer la respuesta, quisiera lo mismo para esmeralda, con eso puedo poner el objeto simplemente donde quiera que se use a partir de ese sitio, o incluso que las entreguen los lideres como desbloqueo para avanzar
 
Arriba