Registrarse

[pokeruby] TMs/MTs Reusables

Lunos

Enfrentando a La Organización
Miembro insignia
Holi. Como lo dice el titulo, hoy aprenderemos a hacer que las TMs/MTs sean reusables, tal y como en los juegos de la quinta generación.

Antes de empezar, toca decir que los creditos se los lleva Doesnt pues él diseñó esto.
Sin mas que decir, empecemos.

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

Instrucciones:
1) Abrimos el archivo pokeruby\src\item_menu.c con nuestro editor de texto.

-Ctrl+F "AlignInt1InMenuWindow(a, d, 0x78, 1);", y dejando una linea de por medio tras el corchete, añadimos esto:
Código:
static void writeTMString(u8 *a, u16 b, const u8 *c, u16 d, u8 e)
{
    a[0] = EXT_CTRL_CODE_BEGIN;
    a[1] = 0x13;
    a[2] = 8;
    a += 3;
    a = ConvertIntToDecimalStringN(a, b, STR_CONV_MODE_LEADING_ZEROS, 2);
    a[0] = EXT_CTRL_CODE_BEGIN;
    a[1] = 0x13;
    a[2] = 0x18;
    a += 3;
    a = AlignStringInMenuWindow(a, c, 0x78 - (e + 1) * 6, 0);
    //*a++ = CHAR_MULT_SIGN;
    //AlignInt1InMenuWindow(a, d, 0x78, 1);
}
Imagen de ejemplo, en caso de que no hayan entendido.

-Ctrl+G y en la Linea 1246 eliminamos ese:
Código:
#ifdef NONMATCHING
-Ctrl+F "sub_80A41E0(text, gCurrentBagPocketItemSlots[r4].itemId - 288, r2, gCurrentBagPocketItemSlots", eliminamos toda esa linea y la reemplazamos con:
Código:
writeTMString(text, gCurrentBagPocketItemSlots[r4].itemId - 288, r2, gCurrentBagPocketItemSlots[r4].quantity, 2);
-Ctrl+F "text = ConvertIntToDecimalString(text, gCurrentBagPocketItemSlots[r4].itemId);", eliminamos esa linea y la reemplazamos con:
Código:
text = ConvertIntToDecimalString(text, gCurrentBagPocketItemSlots[r4].itemId - 0x153);
-Vamos a la Linea 1294 y borramos desde ahi, hasta la Linea 1507.

2) Ahora abriremos pokeruby\src\party_menu.c con nuestro editor de texto.
Acá no vamos a hacer mucho, Ctrl+F "if (ewram1B000.unk282 == 0 && ewram1C000.secondarySelectedIndex".
La busqueda nos llevará a la Linea 3969. Lo unico que tenemos que hacer es convertir en comentarios esta linea, y la siguiente (la 3970).
Para eso, simplemente añadimos 2 barras diagonales al inicio de ambas lineas.

Imagen de ejemplo.

3) Y por ultimo nos vamos a pokeruby\src\player_pc.c
Aquí eliminaremos el contenido de las Lineas 856, 857, 858 y 859.
En su lugar, escribimos:
Código:
ItemStorage_DrawItemVoidQuantity(var); // HMs do not have a quantity.
Imagen animada de ejemplo.

Eso es todo.

Aquí una muestra del resultado:


Si por algun motivo no entendieron este tutorial, pueden echarle un vistazo a estos archivos justo aqui.

Y ya está.​
 
Última edición:
Arriba