Registrarse

[pokeemerald] Vincular clima ash/snow a granizo

Samu

Miembro insignia
Miembro insignia
No sabía exactamente como poner el título, pero bueno, que hoy os traigo esta cagadita. Básicamente voy a explicar como hacer para que cuando en el 'overworld'/mundo haya clima de 'ceniza'/nevar tengamos el correspondiente granizo en combate. Vais a ver que es una chorrada bastante fácil de hacer.

En primer lugar nos dirigimos a 'src/battle_utilc' y buscamos la función 'AbilityBattleEffects'



Dentro de esta función vamos al 'switch(GetCurrentWeather())', que se encarga de evaluar el clima para establecer los efectos pertinentes. (Como les gusta anidar switch a esta gente).


Dentro de este switch vamos a añadir un nuevo case que evaluará los casos del clima 'ceniza' y 'nieve' (da igual donde lo pongáis siempre que este dentro del switch)
Código:
                case WEATHER_ASH:
                case WEATHER_SNOW:
                    if (!(gBattleWeather & WEATHER_HAIL_ANY))
                    {
                        gBattleWeather = WEATHER_HAIL_ANY;
                        gBattleScripting.animArg1 = B_ANIM_HAIL_CONTINUES;
                        gBattleScripting.battler = battler;
                        effect++;
                    }
                    break;
Para terminar de rematar esto vamos a 'src/battle_message.c' y buscamos el array 'gWeatherContinuesStringIds' y sustituimos el 'STRINGID_ITISRAINING' de la 8ª posición (la que se ve en la imagen) por 'STRINGID_STARTEDHAIL'.



Con esto aparecerá el string correspondiente cuando comience a granizar por efecto del clima externo.
Y eso es todo, fácil y rápido, pero a mí es algo que me ponía muy nervioso.
 

Nachoius

Caminante del cielo
Respuesta: [pokeemerald] Vincular clima ash/snow a granizo

que genial lo encuentro muy notablep ara la jugabilidad :C porque no hay estas cosas para el rh
 

Samu

Miembro insignia
Miembro insignia
Respuesta: [pokeemerald] Vincular clima ash/snow a granizo

Иacho;443381 dijo:
que genial lo encuentro muy notablep ara la jugabilidad :C porque no hay estas cosas para el rh
Para emerald lo hice en ASM.
- Tiras un hook desde el switch que comento en el tutorial y te escribes el case del granizo en ASM para después volver a la función original.
- Buscas en HEX el array de stringids y cambias el id del 8º por el id del texto del granizo.

En fred supongo que también lo puedes hacer, el problema será probablemente encontrar la función y el array de textos.
 
Arriba