2024-10-06 22:45:39 +03:00
|
|
|
void* Original_Process_Movement_Caller;
|
|
|
|
|
|
|
|
void __thiscall Redirected_Process_Movement(void* Unknown_Parameter, void* Player, void* Move_Data)
|
|
|
|
{
|
2024-10-21 06:13:28 +03:00
|
|
|
if (*(__int32*)((unsigned __int32)Player + 5324) < 0)
|
2024-10-06 22:45:39 +03:00
|
|
|
{
|
|
|
|
*(__int32*)((unsigned __int32)Move_Data + 36) &= ~1564;
|
|
|
|
|
2024-10-21 06:13:28 +03:00
|
|
|
*(__int32*)((unsigned __int32)Move_Data + 36) |= 4 * *(__int8*)((unsigned __int32)Player + 4636);
|
2024-10-06 22:45:39 +03:00
|
|
|
|
2024-11-01 16:43:34 +03:00
|
|
|
*(double*)((unsigned __int32)Move_Data + 44) = 0.;
|
2024-10-06 22:45:39 +03:00
|
|
|
}
|
2024-10-21 06:13:28 +03:00
|
|
|
|
|
|
|
(decltype(&Redirected_Process_Movement)(Original_Process_Movement_Caller))(Unknown_Parameter, Player, Move_Data);
|
2024-10-28 10:33:10 +03:00
|
|
|
|
2024-12-22 14:35:23 +03:00
|
|
|
if (Get_Identifier(Player, 0, 0) == 272)
|
2024-10-28 10:33:10 +03:00
|
|
|
{
|
2025-03-10 13:08:51 +03:00
|
|
|
using Get_Ability_Type = void*(__thiscall*)(void* Entity);
|
|
|
|
|
|
|
|
void* Ability = Get_Ability_Type((unsigned __int32)Client_Module + 2438560)(Player);
|
2024-12-22 14:35:23 +03:00
|
|
|
|
|
|
|
if (Ability != nullptr)
|
|
|
|
{
|
|
|
|
*(float*)((unsigned __int32)Ability + 1636) = 0.f;
|
|
|
|
}
|
2024-10-28 10:33:10 +03:00
|
|
|
}
|
2024-10-06 22:45:39 +03:00
|
|
|
}
|