Bueno mire esta version de mi mismo codigo, aclaro que es el mismo codigo, solo cambie las funciones de hook porque las que yo utilizaba no daban con el resto de codigo presente en las fuentes de la DLL de cliente de MU EMU, es decir, emersonx13 a diferencia de: GX_KYO, para aquella epoca ya usaba MU EMU como codigo fuente base para su proyecto, en fin. estan correctas correctas en cuanto a la funcion: BattleGloveAssoc en el tema de ir incrementado el numero de los BattleGloves: +1 por cada Guante nuevo agregado.
Estube mirando el codigo principal. y vi que muchos no entendieron algo que es fundamental. tienen que modificar en esta funcion: void __declspec ( naked ) cRFItem::BattleGloveAssoc() el: BattleGlove Number que arranca en: 5 para el primer guante agregado a esta funcion... pero que debe ser incrementado en: +1 cada vez que agregas 1 caso nuevo de: BattleGlove.
la linea vista en asm seria asi: MOV DWORD PTR SS:[EBP-0x4], 5 // -> Battle Glove Number ese ultimo numero 5 lo tienen que ir subiendo cada vez que agregan al codigo 1 nuevo battle glove, vendria a ser como una especie de enumerador para identificar los: L y R por cada modelo central.
tengan esto siempre en cuenta.
Bueno ya que muchos parecen estar utilizando este codigo, habiendo 1 version del mismo como: casi-codigo de C, quiero darles 1 agregado mas que podria ser de utilidad.. ya que como muchos de ustedes saben... las funciones re-escritas del main en Ensamblador en Linea, tienden a volver mas lenta la carga del ejecutable, aunque el codigo este correctamente escrito en cuanto a los registros del informacion: EAX,ECX,EDX,etc.. es muy comun que tu main trabaje de manera distinta, al utilizar una gran cantidad de funciones re-escritas en: ASM, la mejor solucion ademas de los Buffer tipo: DWORD que yo encontre para esto en mis investigaciones a lo largo de todos estos años es utilizar un truco del compilador del IDE de Visual Studio.. es mas o menos asi:
#pragma optimize("t",on)
void __declspec(naked) TUFUNCIONASMENLINEA()
{
...
}
#pragma optimize("t",off)
PD: Lean en internet por favor y pruebenlo, el resultado es bastante bueno con solo hacerlo en 1 funcion, dependiendo de como tengas configurado tu proyecto o solucion, esto puede resultar benefico.
PD 2: Fuente Microsoft
LEEAN:
https://docs.microsoft.com/en-us/cpp/preprocessor/optimize?view=vs-2019