DWORD dwBoneMatrixBase = *(DWORD*)(dwBaseEntity + 0x670);
void MatrixToVector(const matrix3x4_t& in, Vector &out) { // 3 is our magic number out.x = in[0][3]; out.y = in[1][3]; out.z = in[2][3]; }
google-site-verification: googlebaca44933768a824.html
DWORD dwBoneMatrixBase = *(DWORD*)(dwBaseEntity + 0x670);
void MatrixToVector(const matrix3x4_t& in, Vector &out) { // 3 is our magic number out.x = in[0][3]; out.y = in[1][3]; out.z = in[2][3]; }
engine.dll+25080 > 833D 344C3720 00 CMP DWORD PTR DS:[20374C34],0 engine.dll+25087 > 0F84 2C010000 JE engine.200251B9 engine.dll+2508D > 68 F4602E20 PUSH engine.202E60F4 ; ASCII "g_ClientDLL->Init" engine.dll+25092 > E8 09AD0400 CALL engine.2006FDA0 engine.dll+25097 > A1 04625320 MOV EAX,DWORD PTR DS:[20536204] engine.dll+2509C > 8B0D 344C3720 MOV ECX,DWORD PTR DS:[20374C34] ; store the pointer to the CHLClient VTable in ECX [20374C34 it the address of the pointer to the CHLClient VTable] engine.dll+250A2 > 8B11 MOV EDX,DWORD PTR DS:[ECX] ; store the address of the CHLClient VTable in EDX [ECX is the pointer to the VTable address] engine.dll+250A4 > 83C4 04 ADD ESP,4 engine.dll+250A7 > 68 606E3620 PUSH engine.20366E60 engine.dll+250AC > 50 PUSH EAX engine.dll+250AD > 50 PUSH EAX engine.dll+250AE > FF12 CALL DWORD PTR DS:[EDX] ; calls IBaseClientDLL::Init [EDX = VTable of CHLClient + 0x4 * 0]
24086B40 . 83EC 08 SUB ESP,8 ; IBaseClientDLL::Init 24086B43 . E8 A8520200 CALL client.240ABDF0 24086B48 . 6A 01 PUSH 1 24086B4A . 6A 01 PUSH 1 24086B4C . 6A 01 PUSH 1 24086B4E . 6A 01 PUSH 1 24086B50 . 6A 02 PUSH 2 24086B52 . 6A 00 PUSH 0 24086B54 . 68 CDCC0C40 PUSH 400CCCCD 24086B59 . 68 CDCC0C40 PUSH 400CCCCD 24086B5E . E8 4D9D1C00 CALL client.242508B0 24086B63 . 8B4424 34 MOV EAX,DWORD PTR SS:[ESP+34] 24086B67 . 8D4C24 2C LEA ECX,DWORD PTR SS:[ESP+2C] 24086B6B . 6A 01 PUSH 1 24086B6D . 51 PUSH ECX 24086B6E . A3 8C2C3924 MOV DWORD PTR DS:[24392C8C],EAX ; store the pointer to the CGlobalVarsBase VTable at the address 24392C8C 24086B73 . E8 C8021900 CALL client.24216E40 24086B78 . 8D5424 34 LEA EDX,DWORD PTR SS:[ESP+34] 24086B7C . 6A 01 PUSH 1 24086B7E . 52 PUSH EDX 24086B7F . E8 7CA71C00 CALL client.24251300 24086B84 . 6A 00 PUSH 0 24086B86 . 68 400C3124 PUSH client.24310C40 ; ASCII "VEngineClient012" 24086B8B . FF5424 44 CALL DWORD PTR SS:[ESP+44] 24086B8F . 83C4 38 ADD ESP,38 24086B92 . 85C0 TEST EAX,EAX 24086B94 . A3 64EA3B24 MOV DWORD PTR DS:[243BEA64],EAX ; store the pointer to the IVEngineClient VTable at the address 243BEA64
ReadProcessMemory( g_hProcess, ( PVOID )( m_dwBaseEntity + 0x788 ), &m_dwBoneMatrix, 4, NULL );
Vector CPlayer::GetBonePosition( int iBone ) { Vector vecBone; ReadProcessMemory( g_hProcess, ( PVOID )( m_dwBoneMatrix + 0x30 * iBone + 0x0C ), &vecBone.x, 4, NULL ); ReadProcessMemory( g_hProcess, ( PVOID )( m_dwBoneMatrix + 0x30 * iBone + 0x1C ), &vecBone.y, 4, NULL ); ReadProcessMemory( g_hProcess, ( PVOID )( m_dwBoneMatrix + 0x30 * iBone + 0x2C ), &vecBone.z, 4, NULL ); return vecBone; }
for (int i = 1 ; i <= 32; i++) { ReadProcessMemory(hGame, (LPCVOID)(dwClientDLL + 0x7073E4 + (-0x10 + (i * 0x10))), &baseplayers[i].EntBase, sizeof(baseplayers[i].EntBase), 0); ReadProcessMemory(hGame, (LPCVOID)(baseplayers[i].EntBase + 0x788), &baseplayers[i].BoneBase, 4, 0); ReadProcessMemory(hGame, (LPCVOID)(baseplayers[i].BoneBase + (0x30 * 14) + 0x0C), &baseplayers[i].HeadBone[0], sizeof(float), 0); ReadProcessMemory(hGame, (LPCVOID)(baseplayers[i].BoneBase + (0x30 * 14) + 0x1C), &baseplayers[i].HeadBone[1], sizeof(float), 0); ReadProcessMemory(hGame, (LPCVOID)(baseplayers[i].BoneBase + (0x30 * 14) + 0x2C), &baseplayers[i].HeadBone[2], sizeof(float), 0); }
struct baseplayer { DWORD EntBase; DWORD BoneBase; float HeadBone[3]; } baseplayers[64] = {0};
We process personal data about users of our site, through the use of cookies and other technologies, to deliver our services, personalize advertising, and to analyze site activity. We may share certain information about our users with our advertising and analytics partners. For additional details, refer to our Privacy Policy.
By clicking "I AGREE" below, you agree to our Privacy Policy and our personal data processing and cookie practices as described therein. You also acknowledge that this forum may be hosted outside your country and you consent to the collection, storage, and processing of your data in the country where this forum is hosted.
Comment