0xC1, 0xF8, 0x02 }; static BYTE MCommand2ParameterInt__MCommand2ParameterIntSignature[] = { 0x8B, 0xC1, 0x33, 0xC9, 0x89, 0x48, 0x04, 0xC7, 0x00, 0xEE, 0xEE, 0xEE, 0xEE, 0x89, 0x48, 0x0C, 0xC3 }; static BYTE MCommand2ParameterUInt__MCommand2ParameterUIntSignature[] = { 0x8B, 0xC1, 0x8B, 0x4C, 0x24, 0x04, 0xC7, 0x40, 0x04, 0x01, 0x00, 0x00, 0x00, 0xC7, 0x00, 0xEE, 0xEE, 0xEE, 0xEE, 0x89, 0x48, 0x0C, 0xC2, 0x04, 0x00 }; static BYTE MCommand2ParameterString__MCommand2ParameterStringSignature[] = { 0x6A, 0xFF, 0x68, 0xEE, 0xEE, 0xEE, 0xEE, 0x64, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x50, 0x64, 0x89, 0x25, 0x00, 0x00, 0x00, 0x00, 0x51, 0x56, 0x8B, 0xF1, 0x57, 0x89, 0x74, 0x24, 0x08, 0xC7, 0x46, 0x04, 0x04, 0x00, 0x00, 0x00, 0x8B, 0x7C, 0x24, 0x1C }; static BYTE MCommand2ParameterFloat__MCommand2ParameterFloatSignature[] = { 0x8B, 0xC1, 0x8B, 0x4C, 0x24, 0x04, 0xC7, 0x40, 0x04, 0x02, 0x00, 0x00, 0x00, 0xC7, 0x00, 0xEE, 0xEE, 0xEE, 0xEE, 0x89, 0x48, 0x0C, 0xC2, 0x04, 0x00 }; static BYTE MCommand2ParameterMUID__MCommand2ParameterMUIDSignature[] = { 0x8B, 0xC1, 0x33, 0xC9, 0xC7, 0x40, 0x04, 0x09, 0x00, 0x00, 0x00, 0xC7, 0x00, 0xEE, 0xEE, 0xEE, 0xEE, 0x89, 0x48, 0x10, 0x89, 0x48, 0x0C, 0xC3 }; static BYTE MCommand2ParameterBlob__MCommand2ParameterBlobSignature[] = { 0x8B, 0xC1, 0x33, 0xC9, 0xC7, 0x40, 0x04, 0x0A, 0x00, 0x00, 0x00, 0xC7, 0x00, 0xEE, 0xEE, 0xEE, 0xEE, 0x89, 0x48, 0x08, 0x89, 0x48, 0x0C, 0xC3 }; //static DWORD MAddSharedCommandTableAddress = 0x0051D6D0; static DWORD ZNewCMDAddress = 0x004C3B60; static DWORD MCommand2__AddParameterAddress = 0x00507C00; static DWORD MCommand2__GetParameterAddress = 0x00507010; static DWORD MCommand2__GetParameter2Address = 0x00506FD0; static DWORD MCommand2Desc__MCommand2DescAddress = 0x005079B0; static DWORD MCommand2ParameterDesc__MCommand2ParameterDescAddress = 0x00506F20; static DWORD MCommand2Manager__AddCommandDescAddress = 0x00514FA0; static DWORD MCommand2Desc__AddParameterDescAddress = 0x005083A0; static DWORD MCommand2ParameterInt__MCommand2ParameterIntAddress = 0x00505B50; static DWORD MCommand2ParameterUInt__MCommand2ParameterUIntAddress = 0x00505C20; static DWORD MCommand2ParameterString__MCommand2ParameterStringAddress = 0x00505DD0; static DWORD MCommand2ParameterFloat__MCommand2ParameterFloatAddress = 0x00505CF0; static DWORD MCommand2ParameterMUID__MCommand2ParameterMUIDAddress = 0x00506970; static DWORD MCommand2ParameterBlob__MCommand2ParameterBlobAddress = 0x00506030; //static DWORD ZGameClient__OnCommandAddress = 0x004C7990; /* static DWORD MCommand2__AddParameterAddress = SigSearch(MCommand2__AddParameterSignature, sizeof(MCommand2__AddParameterSignature)); static DWORD MCommand2__GetParameterAddress = SigSearch(MCommand2__GetParameterSignature, sizeof(MCommand2__GetParameterSignature)); static DWORD MCommand2__GetParameter2Address = SigSearch(MCommand2__GetParameter2Signature, sizeof(MCommand2__GetParameter2Signature)); static DWORD MCommand2Desc__MCommand2DescAddress = SigSearch(MCommand2Desc__MCommand2DescSignature, sizeof(MCommand2Desc__MCommand2DescSignature)); static DWORD MCommand2ParameterDesc__MCommand2ParameterDescAddress = SigSearch(MCommand2ParameterDesc__MCommand2ParameterDescSignature, sizeof(MCommand2ParameterDesc__MCommand2ParameterDescSignature)); static DWORD MCommand2Desc__AddParameterDescAddress = SigSearch(MCommand2Desc__AddParameterDescSignature, sizeof(MCommand2Desc__AddParameterDescSignature)); static DWORD MCommand2Manager__AddCommandDescAddress = SigSearch(MCommand2Manager__AddCommandDescSignature, sizeof(MCommand2Manager__AddCommandDescSignature)); static DWORD MCommand2ParameterInt__MCommand2ParameterIntAddress = SigSearch(MCommand2ParameterInt__MCommand2ParameterIntSignature, sizeof(MCommand2ParameterInt__MCommand2ParameterIntSignature)); static DWORD MCommand2ParameterUInt__MCommand2ParameterUIntAddress = SigSearch(MCommand2ParameterUInt__MCommand2ParameterUIntSignature, sizeof(MCommand2ParameterUInt__MCommand2ParameterUIntSignature)); static DWORD MCommand2ParameterString__MCommand2ParameterStringAddress = SigSearch(MCommand2ParameterString__MCommand2ParameterStringSignature, sizeof(MCommand2ParameterString__MCommand2ParameterStringSignature)); static DWORD MCommand2ParameterFloat__MCommand2ParameterFloatAddress = SigSearch(MCommand2ParameterFloat__MCommand2ParameterFloatSignature, sizeof(MCommand2ParameterFloat__MCommand2ParameterFloatSignature)); static DWORD MCommand2ParameterMUID__MCommand2ParameterMUIDAddress = SigSearch(MCommand2ParameterMUID__MCommand2ParameterMUIDSignature, sizeof(MCommand2ParameterMUID__MCommand2ParameterMUIDSignature)); static DWORD MCommand2ParameterBlob__MCommand2ParameterBlobAddress = SigSearch(MCommand2ParameterBlob__MCommand2ParameterBlobSignature, sizeof(MCommand2ParameterBlob__MCommand2ParameterBlobSignature)); */ BYTE ZCharacter2__SetHPSignature[] = {0X8B,0X89,0X2C,0X03,0X00,0X00,0XE9,0XEE,0XEE,0XEE,0XEE,0XCC,0XCC,0XCC,0XCC,0XCC ,0X8B,0X89,0X2C,0X03,0X00,0X00,0XE9,0XEE,0XEE,0XEE,0XEE,0XCC,0XCC,0XCC,0XCC,0XCC ,0X8B,0X01,}; DWORD ZCharacter2__SetHPSigAddress = SigSearch(ZCharacter2__SetHPSignature, 34); struct MCommand2ParameterDesc; struct MCommand2ParameterInt; struct MCommand2ParameterUInt; struct MCommand2ParameterString; struct MCommand2ParameterFloat; struct MCommand2ParameterMUID; struct MCommand2ParameterBlob; typedef MCommand2ParameterDesc* (__thiscall* MCommand2ParameterDescTypedef)(MCommand2ParameterDesc*, uint32_t, const char*); typedef MCommand2ParameterInt* (__thiscall* MCommand2ParameterIntTypedef) (MCommand2ParameterInt*, int); typedef MCommand2ParameterUInt* (__thiscall* MCommand2ParameterUIntTypedef) (MCommand2ParameterUInt*, uint32_t); typedef MCommand2ParameterString* (__thiscall* MCommand2ParameterStringTypedef) (MCommand2ParameterString*, char*); typedef MCommand2ParameterFloat* (__thiscall* MCommand2ParameterFloatTypedef) (MCommand2ParameterFloat*, float); typedef MCommand2ParameterMUID* (__thiscall* MCommand2ParameterMUIDTypedef) (MCommand2ParameterMUID*, MUID*); typedef MCommand2ParameterBlob* (__thiscall* MCommand2ParameterBlobTypedef) (MCommand2ParameterBlob*, LPVOID, int); MCommand2ParameterDescTypedef MCommand2ParameterDescConstructor = reinterpret_cast(MCommand2ParameterDesc__MCommand2ParameterDescAddress); MCommand2ParameterIntTypedef MCommand2ParameterIntConstructor = reinterpret_cast(MCommand2ParameterInt__MCommand2ParameterIntAddress); MCommand2ParameterUIntTypedef MCommand2ParameterUIntConstructor = reinterpret_cast(MCommand2ParameterUInt__MCommand2ParameterUIntAddress); MCommand2ParameterStringTypedef MCommand2ParameterStringConstructor = reinterpret_cast(MCommand2ParameterString__MCommand2ParameterStringAddress); MCommand2ParameterFloatTypedef MCommand2ParameterFloatConstructor = reinterpret_cast(MCommand2ParameterFloat__MCommand2ParameterFloatAddress); MCommand2ParameterMUIDTypedef MCommand2ParameterMUIDConstructor = reinterpret_cast(MCommand2ParameterMUID__MCommand2ParameterMUIDAddress); MCommand2ParameterBlobTypedef MCommand2ParameterBlobConstructor = reinterpret_cast(MCommand2ParameterBlob__MCommand2ParameterBlobAddress); struct MCommand2ParameterDesc { LPVOID m_pPolymoprhism; uint32_t m_nParamType; char m_szDescription[64]; std::vector m_pParameterConditions; MCommand2ParameterDesc(uint32_t type, const char* desc) { //MCommand2ParameterDescConstructor(this, type, desc); ((void (__thiscall*)(LPVOID, uint32_t, const char*))MCommand2ParameterDesc__MCommand2ParameterDescAddress) (this, type, desc); } }; struct MCommand2Parameter { LPVOID m_pPolymoprhism; uint32_t m_nParamType; }; struct MCommand2ParameterInt : public MCommand2Parameter { int m_Value; MCommand2ParameterInt(int value) { //MCommand2ParameterIntConstructor (this, value); ((void (__thiscall*)(LPVOID, int))MCommand2ParameterInt__MCommand2ParameterIntAddress) (this, value); } };