Vayamos directo al punto, esto es lo que encontré hasta el momento:
1) pokeruby\include\constants\items.h -Define tu nueva TM despues de ITEM_TM50_OVERHEAT y ajusta las IDs correspondientemente.
-Cambia el 50 en #define NUM_TECHNICAL_MACHINES 50 por un 51
2) pokeruby\src\data\items_en.h
-Añade una nueva entrada para tu nueva TM y ajustala correspondientemente.
3) pokeruby\src\data\item_descriptions_en.h
-Añade una descripción para tu TM despues de la descripción de la TM50.
4) pokeruby\src\party_menu.c
-Ctrl+F "MOVE_OVERHEAT," y añade el movimiento de tu nueva TM justo despues.
Y estos son los resultados de algunas pruebas que hice con la estructura "IsHMMove" dentro de party_menu.c
Si alguien tiene información util que aportar, bienvenido sea.
EDIT2 (05/04/2019):
Editado el titulo del tema. Esto no es una expansión de MTs y MOs como tal, es añadir nuevas MT a secas.
Para una verdadera expansión de MTs/MOs, revisen el post de Blurose justo debajo de este.
hola, me gustaría postear lo que yo cumplí hace poco minutos
usando este método, es posible tener un total de 128 mts/mos
el método que ilumina lunos en el primer mensaje solo permite que 64 existan a la vez
primer, haz más slots para todos las mts que quieres en
include/constants/items.h
y
src/data/items_en.h
es importante que las indices que se usa en items.h correspondan con el orden que se usa en items_en.h. no debe importar si se lo pone la primera en slot 27 o en slot 2432. solo importa que todas las mts ocupen slots directamente al lado de los otros: tm01 puede ser slot 539 o 9, con tal de que las mts sigiuentes tienen los próximos slots
sugiero que también se añada esta parte al archivo después de las mts (en items.h) para que nadie tenga que renombrar todas las instancias de los nombres usados:
ahora se almacenan las mts en otra manera. cada una de las primeras 64 mts tiene su propio parámetro, mientras la segunda 64 mts tiene otro. así veamos un learnset como ejemplo que hice:
ahora todos los bulbasaur pueden aprender las mts indicadas.
ten en mente que todas las mts después de 64 (65 y más) tienen que tener "TMHM2" y tiene que estar después del coma en la lista! mos también se coloca después del coma y con TMHM2.
si alguien tiene preguntas, ¡pregúntelas!
ahora para los cambios en el código:
src/pokemon_3.c:
y src/pokemon_menu.c, en sub_808AE8C (alrededor de línea 934):
al principio, añade
Código:
#include "constants/items.h"
ahora, el código:
Código:
static void sub_808AE8C(void)
{
u8 i;
u8 arg = gSpecialVar_ItemId - 33;
for (i = 0; i < 6; i++)
{
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES))
{
sub_806D668(i);
if (
#if DEBUG
gUnknown_020297ED == 0 &&
#endif
(GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) || !CanMonLearnTMHM(&gPlayerParty[i], arg)))
DrawMonDescriptorStatus(i, 0x9A);
else if (pokemon_has_move(&gPlayerParty[i], ItemIdToBattleMoveId(gSpecialVar_ItemId)))
DrawMonDescriptorStatus(i, 0xA8);
else
DrawMonDescriptorStatus(i, 0x8C);
}
}
}
en esto, hay
Código:
u8 arg = gSpecialVar_ItemId - 33;
cambia otra vez 33 a
Código:
(ITEM_TM01 % 256)
para terminar con
Código:
u8 arg = gSpecialVar_ItemId - (ITEM_TM01 % 256);
también edita la lista de movimientos como te gusta en src/party_menu.c en línea 113. cada movimiento corresponde con otra mt
finalmente, aquí está mi archivo tmhmlearnsets.h porque el cambio es gigantesco y me pasó demasiado tiempo arreglando todos los learnsets para el nuevo sistema
edítalo como deseas, pero recuerda como tienes que hacerlo. ése asimismo asume que cambiaste como yo dije encima (en items.h)
hasta la próxima~