eliminate m_flStamina induced errors as spitter

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)
This commit is contained in:
explorer 2024-10-28 10:33:10 +03:00
parent 5a7e62dd6f
commit bc24cea3b5
2 changed files with 16 additions and 12 deletions

View File

@ -68,8 +68,6 @@ struct Prediction_Descriptor_Structure
void* Original_Post_Network_Data_Received_Caller; void* Original_Post_Network_Data_Received_Caller;
void __thiscall Redirected_Post_Network_Data_Received(void* Unknown_Parameter, __int32 Commands_Acknowledged) void __thiscall Redirected_Post_Network_Data_Received(void* Unknown_Parameter, __int32 Commands_Acknowledged)
{
if (Commands_Acknowledged >= 0)
{ {
void* Local_Player = *(void**)((unsigned __int32)Client_Module + 7498712); void* Local_Player = *(void**)((unsigned __int32)Client_Module + 7498712);
@ -85,7 +83,6 @@ void __thiscall Redirected_Post_Network_Data_Received(void* Unknown_Parameter, _
*(__int32*)((unsigned __int32)Local_Player + 5324) += Commands_Acknowledged - Commands_Acknowledged % 150; *(__int32*)((unsigned __int32)Local_Player + 5324) += Commands_Acknowledged - Commands_Acknowledged % 150;
} }
}
(decltype(&Redirected_Post_Network_Data_Received)(Original_Post_Network_Data_Received_Caller))(Unknown_Parameter, Commands_Acknowledged); (decltype(&Redirected_Post_Network_Data_Received)(Original_Post_Network_Data_Received_Caller))(Unknown_Parameter, Commands_Acknowledged);
} }

View File

@ -12,4 +12,11 @@ void __thiscall Redirected_Process_Movement(void* Unknown_Parameter, void* Playe
} }
(decltype(&Redirected_Process_Movement)(Original_Process_Movement_Caller))(Unknown_Parameter, Player, Move_Data); (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;
}
} }