Registrarse

[RH - Scripting] ¿Se puede terminar el combate al perder a un Pokémon?

ZhonJax

Leyenda de WaH
Hola, quiero aumentar la dificultad de Pokémon rubí y una de las características que quisiera añadir es que si un solo Pokémon del equipo se debilita, el combate se de por perdido, así queden más Pokémon en el equipo... ¿Es posible?
 

Lunos

Enfrentando a La Organización
Miembro insignia
Hola, quiero aumentar la dificultad de Pokémon rubí y una de las características que quisiera añadir es que si un solo Pokémon del equipo se debilita, el combate se de por perdido, así queden más Pokémon en el equipo... ¿Es posible?
¿Es posible? Sí.
¿Es posible en binario? ... Tecnicamente sí, pero te tocará escribir rutinas ASM o inyecciones en C seguramente. Todo lo que involucra al codigo que compone el sistema de batalla de estos juegos es un puñetero dolor de cabeza modificarlo en binario si no se tiene ningun conocimiento sobre dichos lenguajes de programación.

En terminos rapidos y sencillos, lo que vos querés hacer es modificar este trozo de codigo.

Por ejemplo, podrias cambiarlo de la siguiente manera:
Diff:
        for (i = 0; i < PARTY_SIZE; i++)
        {
-           if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG))
-               HP_count += GetMonData(&gPlayerParty[i], MON_DATA_HP);
+           if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) && !GetMonData(&gPlayerParty[i], MON_DATA_HP))
+               HP_count += 1;
        }

-       if (HP_count == 0)
+       if (HP_count >= 1)
            gBattleOutcome |= B_OUTCOME_LOST;
Lo que hace esta función "atk24" es decirle al resto del codigo (ademas de otras cosas) que el Jugador perdió la batalla cuando la cantidad total de Puntos de Salud de su equipo es 0. Modificandolo un poco, puedes hacer que para dar una batalla por perdida, la función le diga al resto del codigo que el Jugador perdió si es que hay 1 o más Pokémon con 0 Puntos de Salud en el equipo.

Ahora, ¿como replicar esto en binario? Ni pajolera idea. Eso se lo dejaré a alguien más.

EDITO: Añadí una ligera aclaración a mi explicación sobre la función atk24, pues no solo decide la condición de derrota. Hace más.
 
Última edición:
Arriba