-
-
Post Thanks / Like - 3 Thanks
-
Established Member
Code:
inline uintptr_t ObjectManager = 0x2E31BA8;
// direct reference: [actual address in first opcode] E8 ? ? ? ? 33 F6 89 75 30
inline uintptr_t GetBaseFromToken = 0x1A374E0;
// direct reference: [actual address in first opcode] 74 0C 48 8B 0D ? ? ? ? E8 ? ? ? ? 8B 43 04
inline uintptr_t WorldFrame = 0x31073F8;
// direct reference: [actual address in first opcode] E8 ? ? ? ? F3 0F 10 57 ? 84 C0
inline uintptr_t WorldFrameIntersect = 0x1A58360;
// direct reference: [actual address in first opcode] E8 ? ? ? ? 80 7B 20 06
inline uintptr_t GetWorld = 0x0210030;
// direct reference: [actual address in first opcode] E8 ? ? ? ? 39 45 F7
inline uintptr_t GetMapId = 0x13AD390;
// direct reference: [actual address in first opcode] E8 ? ? ? ? E9 ? ? ? ? E8 ? ? ? ? E9 ? ? ? ? 8B 8B ? ? ? ?
inline uintptr_t SpriteLeftClick = 0x15E29D0;
// direct reference: [actual address in first opcode] E8 ? ? ? ? 85 C0 79 3E
inline uintptr_t FindSlotBySpellId = 0x1649DF0;
// 48 89 5C 24 ? 48 89 6C 24 ? 48 89 74 24 ? 41 56 48 83 EC ? 41 0F B6 F1
inline uintptr_t CastSpellBySlot = 0x1647AF0;
// direct reference: [actual address in first opcode] E8 ? ? ? ? EB 11 48 8B 47 08
inline uintptr_t SpellMinMaxRange = 0x1019A70;
// direct reference: [actual address in first opcode] E8 ? ? ? ? 84 C0 0F B6 E8
inline uintptr_t HasSpellPower = 0x1020B30;
// 48 89 5C 24 ? 48 89 6C 24 ? 48 89 74 24 ? 57 41 56 41 57 48 81 EC ? ? ? ? 8B D9
inline uintptr_t IsCurrentSpell = 0x1025DC0;
// 48 83 EC 48 48 8B 81 ? ? ? ? 48 83 B8 ? ? ? ? ?
inline uintptr_t MoveTo = 0x12174C0;
// 48 83 EC 58 48 8B 81 ? ? ? ? 48 83 B8 ? ? ? ? ?
inline uintptr_t FaceTo = 0x1217290;
// direct reference: [actual address in first opcode] E8 ? ? ? ? 48 8B 5C 24 ? 84 C0 74 40
inline uintptr_t GetBagAndSlot = 0x1806530;
// direct reference: [actual address in first opcode] E8 ? ? ? ? 48 85 C0 74 B1
inline uintptr_t GetItemPointer = 0x12F8C30;
CGObject VMT functions
Code:
const char* CGObjects::GetName(CGObject* object)
{
return (*reinterpret_cast<const char*(__fastcall**)(CGObject*)>(object->vmt + (sizeof(uintptr_t) * 15)))(object);
}
float_t CGObjects::GetHeight(CGObject* object)
{
return (*reinterpret_cast<float_t(__fastcall**)(CGObject*)>(object->vmt + (sizeof(uintptr_t) * 14)))(object);
}
float_t CGObjects::GetFacing(CGObject* object)
{
return (*reinterpret_cast<float_t(__fastcall**)(CGObject*)>(object->vmt + (sizeof(uintptr_t) * 58)))(object);
}
CGVector3 CGObjects::GetPosition(CGObject* object)
{
CGVector3 output = { -1, -1, -1 };
(*reinterpret_cast<CGVector3*(__fastcall**)(CGObject*, CGVector3*)>(object->vmt + (sizeof(uintptr_t) * 56)))(object, &output);
return output;
}
Some pet interaction stuff I found too
Code:
auto issuePetOrder = reinterpret_cast<void(__fastcall*)(int32_t* orderFlags, CGUnit * target, int32_t unk)>(BaseAddress() + 0x16F3000);
// Pet Follow
int flag = 0x7000001;
int64_t unused = 0;
issuePetOrder(&flag, (CGUnit*) &unused, 0);
// Pet Attack
int flag = 0x7000002;
issuePetOrder(&flag, Core::Target(), 0);
Last edited by _chase; 09-05-2021 at 08:57 AM.
-
Post Thanks / Like - 2 Thanks
-
Established Member
const uint64_t PetSetAction = 0x16F3000; // int64 (int32* orderFlags, WowGuid* targetGuid, int32 unk_0/*=0*/, int64 unk_1/*=0x2D94560*/)
this might be right
-
Post Thanks / Like - 1 Thanks
Razzue (1 members gave Thanks to oiramario for this useful post)