Code:#define GET_CLASS_MEMBER(func, type, offset) type ##func () { \ return (type)((unsigned char*)this + offset); \ } #define GET_CLASS_MEMBER_NOPTR(func, type, offset) type & ##func () { \ return *(type*)((unsigned char*)this + offset); \ } struct ZGameClient { GET_CLASS_MEMBER(GetPlayerUID, MUID*, 0x198); GET_CLASS_MEMBER(GetStageUID, MUID*, 0x23C); GET_CLASS_MEMBER(GetChannelUID, MUID*, 0x1D0); }; struct ZGame { GET_CLASS_MEMBER(GetCharacterManager, ZCharacterManager*, 0x68); GET_CLASS_MEMBER_NOPTR(GetCharacterManagerNoPtr, ZCharacterManager, 0x68); GET_CLASS_MEMBER(GetMyCharacter, ZCharacter*, 0x58); }; struct ZCharacterManager { #define CALL_FUNC_1(func, type, arg, offset) type ##func (arg a) { \ return ((type (__thiscall*)(ZCharacterManager*, arg))offset) (this, a); \ } CALL_FUNC_1(Find, ZCharacter*, MUID*, 0); };


Reply With Quote


