mirror of
https://github.com/qwertyuiop3/Storm.git
synced 2024-12-22 14:47:24 +08:00
bc24cea3b5
for whatever reason m_flStamina inside of C_SpitAbility::UpdateAbility gets pinned at 3000.f (extreme latency concern? or just typo) which in result softlocks C_TerrorPlayer::IsImmobilized for moment ability is updated it does seems as logic remnant before buffering of 1000.f got implemented (C_TerrorPlayer::IsImmobilized tests for >2000.f) which is needed to keep m_flStamina predicted rather than networked... applying same logic but once solves problem hopefully i'm not breaking things by omitting m_zombieClass lol on side note i've thought about adding infinite spit but unfortunately projectiles are using timer-based acceleration revert: prevent buffer underrun on ack build-up (only for css)
22 lines
771 B
C++
22 lines
771 B
C++
void* Original_Process_Movement_Caller;
|
|
|
|
void __thiscall Redirected_Process_Movement(void* Unknown_Parameter, void* Player, void* Move_Data)
|
|
{
|
|
if (*(__int32*)((unsigned __int32)Player + 5324) < 0)
|
|
{
|
|
*(__int32*)((unsigned __int32)Move_Data + 36) &= ~1564;
|
|
|
|
*(__int32*)((unsigned __int32)Move_Data + 36) |= 4 * *(__int8*)((unsigned __int32)Player + 4636);
|
|
|
|
*(double*)((unsigned __int32)Move_Data + 44) = 0;
|
|
}
|
|
|
|
(decltype(&Redirected_Process_Movement)(Original_Process_Movement_Caller))(Unknown_Parameter, Player, Move_Data);
|
|
|
|
void* Ability = *(void**)((unsigned __int32)Client_Module + 7644532 + (((*(unsigned __int32*)((unsigned __int32)Player + 7892) & 4095) - 4097) << 4));
|
|
|
|
if (Ability != nullptr)
|
|
{
|
|
*(float*)((unsigned __int32)Ability + 1636) = 0.f;
|
|
}
|
|
} |