Hola como están.
Estoy intentando agregar desde un source el "Item Title Color", lo cual seria cambiar de color el nombre o titulo de algún set en especifico.
Hasta acá todo bien, funcionan correctamente.
El problema es cuando le pongo el mouse arriba de un item que no este agregado al source, el main crashea y me saca del server.Eh pensado en agregar todos los items del server al código, pero no es una buena opción.
Si alguno tiene una idea de porque pasa, le agradecería. No tengo problema en pagar un precio razonable por esto.
Mi main es 1.04JDejo parte de mi codigo.
ItemProp.cpp
#include "stdafx.h"
#include "ItemProp.h"
#include "TMemory.h"
#include "TDebugLog.h"
//--------------------------------------------------------------------------
WORD wItemTitleColor_Pointer;
DWORD dwItemTitleColor_Set;
//---------------------------------------------------------------------------
// Item Title Color
//---------------------------------------------------------------------------
Naked (cItemTitleColor)
{
dwItemTitleColor_Set = ItemColor::White;
// ----
_asm
{
mov wItemTitleColor_Pointer, ax
}
// ----
if ( wItemTitleColor_Pointer == ITEM(12, 15) )
{
dwItemTitleColor_Set = ItemColor::Gold;
}
else if ( wItemTitleColor_Pointer == ITEM(0, 1) || wItemTitleColor_Pointer == ITEM(0, 7)
|| wItemTitleColor_Pointer == ITEM(0, 2) || wItemTitleColor_Pointer == ITEM(0, 8 )
|| wItemTitleColor_Pointer == ITEM(0, 3) || wItemTitleColor_Pointer == ITEM(0, 9)
|| wItemTitleColor_Pointer == ITEM(0, 4) || wItemTitleColor_Pointer == ITEM(0, 10)
|| wItemTitleColor_Pointer == ITEM(0, 5) || wItemTitleColor_Pointer == ITEM(0, 11)
|| wItemTitleColor_Pointer == ITEM(0, 6) || wItemTitleColor_Pointer == ITEM(0, 12)
|| wItemTitleColor_Pointer == ITEM(0, 13))
{
dwItemTitleColor_Set = ItemColor::Gold;
}
// ----
_asm
{
je ColorSet
mov edx, iItemTitleColor_Next
jmp edx
// ----
ColorSet:
mov ecx, dwItemTitleColor_Set
mov dword ptr ss:[esp+0x1c], ecx
mov edx, iItemTitleColor_Stack
jmp edx
}
}
void cItemPropertiesLoad()
{
SetRange2((LPVOID)iItemTitleColor, 10, ASM::NOP);
SetJmp2((LPVOID)iItemTitleColor, cItemTitleColor);
}
ItemProp.h
#pragma once
#define Naked(Function) void __declspec(naked) Function()
#define ItemStartIndex 649
#define ITEM(x, y) ((x * 512) + y)
#define ITEM2(x, y) ((x * 512) + y + ItemStartIndex)
//---------------------------------------------------------------------------
#define iItemTitleColor 0x005B2169 ///1.04j 005B2169 verifica ok
#define iItemTitleColor_Next 0x005B216D ///1.04j 005B216D verifica ok
#define iItemTitleColor_Stack 0x005B2278 ///1.04j 005B2278 ok
namespace ItemColor
{
enum T
{
White = 0x00,
Blue = 0x01,
Red = 0x02,
Gold = 0x03,
Green = 0x04,
WhiteRed = 0x05,
Violet = 0x06,
WhiteBlue = 0x07,
WhiteBeige = 0x08,
GreenBlue = 0x09,
Gray = 0x0A,
DarkViolet = 0x0B,
};
};
void cItemPropertiesLoad();
//---------------------------------------------------------------------------