Max_Multi
RH inexperto
¡Heeeeeeey!, ¿cómo están?. Bienvenidos sean a mi segundo tutorial, y vaya que sí que estoy nervioso.
Hoy solo les voy a enseñar una cosa que, aunque su forma de hacer funcionar es demasiado rápida, fácil y sencilla me costó un poco para investigar, hasta que mi cabeza iluminó el foco y de ahí para adelante fue solo compilar el proyecto, ¿Cómo obtengo EXP al capturar un POKéMON?, pues vamos, dentro tutorial.
¡Bien!, ¿qué vamos a necesitar?, pues, vamos a necesitar un proyecto de pokefirered y la habilidad de usar el ratón.
Empezamos dirigiéndonos a data/battle_script2.s
Al abrir este documento vamos a pulsar "Ctrl+F" y vamos a buscar: "BattleScript_SuccessBallThrow::" y debería salirnos así:
Bien, ahora vamos a escribir justo debajo esto:
Una vez hecho esto debería quedarnos así:
¡Perfecto!, ahora solo quedaría guardar y abrir nuestro compilador para probar el proyecto.
¡Y listo!, ya tendríamos exp por captura. Fue fácil, y súper rápido eh?
Empezamos dirigiéndonos a data/battle_script2.s
Al abrir este documento vamos a pulsar "Ctrl+F" y vamos a buscar: "BattleScript_SuccessBallThrow::" y debería salirnos así:
Bien, ahora vamos a escribir justo debajo esto:
Código:
pause 200
setbyte sGIVEEXP_STATE, 0
getexp BS_TARGET
¡Y listo!, ya tendríamos exp por captura. Fue fácil, y súper rápido eh?
Gracias al usuario @Lunos les puedo traer este tuto perfectamente funcional, todos los créditos hacia él por mostrarnos la forma correcta de insertar EXP por captura.
Nos dirigimos a la ruta data/battle_scripts_2.s, pulsamos Ctrl + f y buscamos "BattleScript_SuccessBallThrow::" y justo abajo de eso vamos a escribir: "setbyte sMON_CAUGHT, TRUE" y debería quedarnos así:
Ahora vamos a buscar "BattleScript_SafariNoIncGameStat::" y debajo de "printstring STRINGID_GOTCHAPKMNCAUGHT" vamos a escribir
Y quedaría así:
Una vez hecho esto nos dirigimos a include/battle.h, pulsamos ctrl+g y escribimos 506 para irnos a esa línea, una vez listo pulsamos enter para escribir en al línea 507 y ponemos "bool8 monCaught;" quedándose así:
Ahora nos dirigimos a include/constants/battle_script_command.h, pulsamos ctrl+g y ponemos 32, aquí vamos a escribir:
y quedaría así:
Ahora nos vamos a src/battle_main.c, inmediatamente vamos a pulsar ctrl+f y vamos a buscar "gBattleScripting.battleStyle = gSaveBlock2Ptr->optionsBattleStyle; ", al encontrarlo pulsamos enter y escribimos lo siguiente "gBattleScripting.monCaught = FALSE;". Nos debería quedar así:
Ahora nos vamos a src/battle_script_commands.c y vamos a buscar con ctrl+f "PlayBGM(MUS_VICTORY_WILD);" al encontrarlo vamos a añadirle "//" al principio para que se convierta en un comentario. Quedando así:
y ahora finalmente vamos a src/reshow_battle_screen.c, pulsamos ctrl+g y escribimos 232, pulsamos enter y escribimos:
Y ya por fin tendríamos listo todos los cambios!
Ya solo sería compilar y ya!, gracias por leerme.
Nos dirigimos a la ruta data/battle_scripts_2.s, pulsamos Ctrl + f y buscamos "BattleScript_SuccessBallThrow::" y justo abajo de eso vamos a escribir: "setbyte sMON_CAUGHT, TRUE" y debería quedarnos así:
setbyte sGIVEEXP_STATE, 0x0
getexp BS_TARGET
jumpifbyte CMP_NOT_EQUAL, sEXP_CATCH, TRUE, BattleScript_TryPrintCaughtMonInfo
BattleScript_TryPrintCaughtMonInfo::
getexp BS_TARGET
jumpifbyte CMP_NOT_EQUAL, sEXP_CATCH, TRUE, BattleScript_TryPrintCaughtMonInfo
BattleScript_TryPrintCaughtMonInfo::
#define sMON_CAUGHT gBattleScripting + 0x27
#define sEXP_CATCH gBattleScripting + 0x28
#define sEXP_CATCH gBattleScripting + 0x28
if (gBattleScripting.monCaught)
return;
return;
- Agradecimientos especiales a: @InmortalKaktus (Por el constante apoyo, gracias bro por esos animos!)
- También agradecimientos especiales a @Lunos por la información para el nuevo tutorial. ¡Gracias máquina!
- Agradecimientos a: @Lumbreon (Por su post de ganar exp por captura para pokéruby que fue de donde me basé para hacer esto)
- Agradecimientos también a: @victor94abcd (Gracias por darme ánimos y por querer ayudarme en esta mini investigación bro)
Adjuntos
-
102,1 KB Visitas: 198
Última edición: