Registrarse

[pokeruby] Actualizando la habilidad Pickup/Recogida

Lunos

Enfrentando a La Organización
Miembro insignia
Holi. Hoy actualizaremos la habilidad Pickup para que funcione como en Pokémon Emerald y los juegos que vinieron despues.
Antes de comenzar, hay que decir que los creditos van para DoesntKnowHowToPlay quien diseñó este cambio que es de publico acceso.

Requisitos:
-Leer mi tema de introducción a Pokeruby.
-Editor de texto (yo usaré Notepad++)

Instrucciones:
1) Abriremos el archivo pokeruby\ld_scripts.txt con nuestro editor de texto.
Allí buscaremos "src/battle/battle_4.o(.text);" usando Ctrl+F, y justo debajo añadiremos una nueva linea que diga:
Código:
src/battle/battle_4.o(.data);
Guardamos y pasamos al siguiente archivo.

2) Ahora nos iremos a pokeruby\src\battle\battle_4.c, aquí terminaremos con el tutorial.
Buscamos mediante Ctrl+F "static const u16 sPickupItems[] =", lo que nos llevará a la Linea 1164 donde veremos esto:
Código:
static const u16 sPickupItems[] =
{
    ITEM_SUPER_POTION, 30,
    ITEM_FULL_HEAL, 40,
    ITEM_ULTRA_BALL, 50,
    ITEM_RARE_CANDY, 60,
    ITEM_FULL_RESTORE, 70,
    ITEM_REVIVE, 80,
    ITEM_NUGGET, 90,
    ITEM_PROTEIN, 95,
    ITEM_PP_UP, 99,
    ITEM_KINGS_ROCK, 1
};
Pues a eso lo reemplazaremos con esta lista de objetos.

Luego de eso nos iremos a la Linea 15577 (previamente Linea 15390), donde veremos esto:
Código:
u16 held_item = GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM);
Pues lo reemplazaremos por esto:
Código:
        u16 held_item = GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM);
            u8 level = (GetMonData(&gPlayerParty[i], MON_DATA_LEVEL) - 1) / 10;
Unas 13 o 14 lineas mas abajo, podemos ver:
Código:
if (sPickupItems[j + 1] > chance)
Pues lo reemplazaremos con:
Código:
if (sPickupTables[level][j + 1] > chance)
Y para terminar, 2 lineas mas abajo veremos:
Código:
SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, (const void*) &sPickupItems[j]);
Y lo vamos a reemplazar con:
Código:
SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, (const void*) &((sPickupTables[level])[j]));
Aquí una muestra del resultado:


Si por algun motivo no entendieron este tutorial, pueden echarle un vistazo al commit donde se modificaron estos archivos que está enlazado al inicio del post.

Y eso fue todo.​
 
Arriba