From 5c0a7cd55cb61abcbe111a5f8f3553a57b96f262 Mon Sep 17 00:00:00 2001 From: shavit Date: Sat, 2 Feb 2019 01:02:33 +0200 Subject: [PATCH] Fixed wrong flags and netprops for fake clients in checkpoints. --- addons/sourcemod/scripting/shavit-misc.sp | 19 +++++++++++++++---- addons/sourcemod/scripting/shavit-replay.sp | 2 +- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/addons/sourcemod/scripting/shavit-misc.sp b/addons/sourcemod/scripting/shavit-misc.sp index ae2fc3f8..7597bd7a 100644 --- a/addons/sourcemod/scripting/shavit-misc.sp +++ b/addons/sourcemod/scripting/shavit-misc.sp @@ -1739,13 +1739,9 @@ bool SaveCheckpoint(int client, int index, bool overflow = false) iClassname = gA_Classnames.PushString(sClassname); } - cpcache.iTargetname = iTargetname; - cpcache.iClassname = iClassname; cpcache.iMoveType = GetEntityMoveType(target); cpcache.fGravity = GetEntityGravity(target); cpcache.fSpeed = GetEntPropFloat(target, Prop_Send, "m_flLaggedMovementValue"); - cpcache.fStamina = (gEV_Type != Engine_TF2)? GetEntPropFloat(target, Prop_Send, "m_flStamina"):0.0; - cpcache.iGroundEntity = GetEntPropEnt(target, Prop_Data, "m_hGroundEntity"); int iFlags = GetEntityFlags(target); @@ -1753,6 +1749,21 @@ bool SaveCheckpoint(int client, int index, bool overflow = false) { iFlags |= FL_CLIENT; iFlags |= FL_AIMTARGET; + iFlags &= ~FL_ATCONTROLS; + iFlags &= ~FL_FAKECLIENT; + + cpcache.fStamina = 0.0; + cpcache.iGroundEntity = -1; + cpcache.iTargetname = -1; + cpcache.iClassname = -1; + } + + else + { + cpcache.fStamina = (gEV_Type != Engine_TF2)? GetEntPropFloat(target, Prop_Send, "m_flStamina"):0.0; + cpcache.iGroundEntity = GetEntPropEnt(target, Prop_Data, "m_hGroundEntity"); + cpcache.iTargetname = iTargetname; + cpcache.iClassname = iClassname; } cpcache.iFlags = iFlags; diff --git a/addons/sourcemod/scripting/shavit-replay.sp b/addons/sourcemod/scripting/shavit-replay.sp index a2e10ab0..e1a0a31f 100644 --- a/addons/sourcemod/scripting/shavit-replay.sp +++ b/addons/sourcemod/scripting/shavit-replay.sp @@ -1338,7 +1338,7 @@ void UpdateReplayInfo(int client, int style, float time, int track) if((iFlags & FL_ATCONTROLS) == 0) { - SetEntityFlags(client, (iFlags|FL_ATCONTROLS)); + SetEntityFlags(client, (iFlags | FL_ATCONTROLS)); } }