Oct 23 2024, 08:14 AM
Hello, i was trying to make engine prediction work for cs but when i try to use ProcessMovement function i am getting access violations, most probably from a wrong index, i was trying to search for the index of the function and found a very similar void but it was taking 3 arguments instead of 2, can somebody explain where should i be looking for the valid one.I was looking in the CGameMovement but found only this:
Also here is how im getting ProcessMovement in my cheat:
Code:
// #STR: "end %f %f %f", "start %f %f %f"
void *__thiscall MaybeProcessMovement(_DWORD *this, float *a2, int a3)
{
void *result; // eax
float v5; // [esp+20h] [ebp-4h]
v5 = *((float *)off_1049A278 + 4);
*((float *)off_1049A278 + 4) = a2[1167] * v5;
sub_10116650();
this[2] = a3;
this[802] = 0;
this[1] = a2;
*(float *)(this[2] + 56) = ((double (__thiscall *)(float *))*(_DWORD *)(*(_DWORD *)a2 + 900))(a2);
(*(void (**)(_DWORD *, const char *, ...))(*this + 16))(
this,
"start %f %f %f",
*(float *)(this[2] + 152),
*(float *)(this[2] + 156),
*(float *)(this[2] + 160));
(*(void (__thiscall **)(_DWORD *))(*this + 52))(this);
*(_DWORD *)(this[2] + 40) = *(_DWORD *)(this[2] + 36);
(*(void (**)(_DWORD *, const char *, ...))(*this + 16))(
this,
"end %f %f %f",
*(float *)(this[2] + 152),
*(float *)(this[2] + 156),
*(float *)(this[2] + 160));
result = off_1049A278;
*((float *)off_1049A278 + 4) = v5;
return result;
}
Code:
void ProcessMovement(player_t* pPlayer, CMoveData* pMove) {
using ProcessMovementFn = void(__thiscall*)(void*, player_t*, CMoveData*);
(*(ProcessMovementFn**)this)[1](this, pPlayer, pMove);
}