Registrarse

[RH - Otros] Ayuda con una mecanica

Estado
Cerrado para nuevas respuestas.
Hola! Me presentaré brevemente.
Soy completamente nuevo en el romhacking, llevo poco tiempo investigando y aprendiendo.
Mi duda es con la mecánica de transformaciones de Castform, investigué mucho, sin embargo no encuentro de que manera funciona, por ahora solo quisiera saber como crear o ejecutar una mecánica así, en la que pueda cambiar la forma, tipo o stats del pokémon dependiendo de algún objeto, clima u otro factor.
Muchas gracias de antemano.

PD: El rom base que uso es Fire Red versión inglesa, no utilizo ningún engine, ya que quisiera aprender creando todo lo necesario yo mismo, por lo cual tampoco he aplicado ningún parche.
PD2: Desconozco en que prefijo debería publicar este mensaje, por favor discúlpenme.
 

MetalKaktus

A la luz del quinto día, mira al este
Miembro insignia
Joder hacia tiempo que no veía a ningun novato con esas ganas de aprender. Te digo desde ya que si no sabes C lo vas a tener bastante complicado. Pero bueno, mirando pokefirered un poco por encima, he encontrado esto:
Código:
static void atkE6_docastformchangeanimation(void)
{
    gActiveBattler = gBattleScripting.battler;
    if (gBattleMons[gActiveBattler].status2 & STATUS2_SUBSTITUTE)
        *(&gBattleStruct->formToChangeInto) |= 0x80;
    BtlController_EmitBattleAnimation(0, B_ANIM_CASTFORM_CHANGE, gBattleStruct->formToChangeInto);
    MarkBattlerForControllerExec(gActiveBattler);
    ++gBattlescriptCurrInstr;
}

static void atkE7_trycastformdatachange(void)
{
    u8 form;

    ++gBattlescriptCurrInstr;
    form = CastformDataTypeChange(gBattleScripting.battler);
    if (form)
    {
        BattleScriptPushCursorAndCallback(BattleScript_CastformChange);
        *(&gBattleStruct->formToChangeInto) = form - 1;
    }
Son las funciones que cambian el sprite de Castform y sus stats. Podemos encontrar funciones muy chulas como BtlController_EmitBattleAnimation qye a priori sirve para animaciones de batalla. Tampoco he investigado mucho pero aunque se pueda hacer, sinceramente te recomiendo empezar por algo más fácil.
 
Respuesta: Re: Ayuda con una mecanica

Joder hacia tiempo que no veía a ningun novato con esas ganas de aprender. Te digo desde ya que si no sabes C lo vas a tener bastante complicado. Pero bueno, mirando pokefirered un poco por encima, he encontrado esto:
Código:
static void atkE6_docastformchangeanimation(void)
{
    gActiveBattler = gBattleScripting.battler;
    if (gBattleMons[gActiveBattler].status2 & STATUS2_SUBSTITUTE)
        *(&gBattleStruct->formToChangeInto) |= 0x80;
    BtlController_EmitBattleAnimation(0, B_ANIM_CASTFORM_CHANGE, gBattleStruct->formToChangeInto);
    MarkBattlerForControllerExec(gActiveBattler);
    ++gBattlescriptCurrInstr;
}

static void atkE7_trycastformdatachange(void)
{
    u8 form;

    ++gBattlescriptCurrInstr;
    form = CastformDataTypeChange(gBattleScripting.battler);
    if (form)
    {
        BattleScriptPushCursorAndCallback(BattleScript_CastformChange);
        *(&gBattleStruct->formToChangeInto) = form - 1;
    }
Son las funciones que cambian el sprite de Castform y sus stats. Podemos encontrar funciones muy chulas como BtlController_EmitBattleAnimation qye a priori sirve para animaciones de batalla. Tampoco he investigado mucho pero aunque se pueda hacer, sinceramente te recomiendo empezar por algo más fácil.
Uff joder amigo muchas gracias de verdad, gracias al cielo tengo conocimientos de programación aunque básicos, si logro entender el código, has sido de gran ayuda, gracias.
 
Estado
Cerrado para nuevas respuestas.
Arriba