From e14e550368a12895f2d34252c14449b22ff9594c Mon Sep 17 00:00:00 2001 From: lechuga Date: Wed, 18 Mar 2026 17:33:44 -0300 Subject: [PATCH] Validate clients Add client validation to the ratemonitor. --- .../plugins/optional/ratemonitor.smx | Bin 14930 -> 14971 bytes addons/sourcemod/scripting/ratemonitor.sp | 8 ++++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/addons/sourcemod/plugins/optional/ratemonitor.smx b/addons/sourcemod/plugins/optional/ratemonitor.smx index 139dee24be57c1c81ce808ff44d0290805e6018b..8ce15b3c73720273f1787eb1c0c6fd9260e6f36f 100644 GIT binary patch literal 14971 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 aQm@Y5Vasuro@Qh$c}w@dVDYvrU;jU_V{HTg literal 14930 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 diff --git a/addons/sourcemod/scripting/ratemonitor.sp b/addons/sourcemod/scripting/ratemonitor.sp index e87f2ed4e..e9fdd5682 100644 --- a/addons/sourcemod/scripting/ratemonitor.sp +++ b/addons/sourcemod/scripting/ratemonitor.sp @@ -143,7 +143,7 @@ void OnTeamChange(Event hEvent, const char[] name, bool dontBroadcast) Action OnTeamChangeDelay(Handle hTimer, any userid) { int client = GetClientOfUserId(userid); - if (client > 0) { + if (client > 0 && IsClientInGame(client) && !IsFakeClient(client)) { RegisterSettings(client); } @@ -152,7 +152,7 @@ Action OnTeamChangeDelay(Handle hTimer, any userid) public void OnClientSettingsChanged(int client) { - if (IsValidEntity(client) && !IsFakeClient(client)) { + if (client > 0 && client <= MaxClients && IsClientInGame(client) && !IsFakeClient(client)) { RegisterSettings(client); } } @@ -178,6 +178,10 @@ Action ListRates(int client, int args) void RegisterSettings(int client) { + if (client <= 0 || client > MaxClients || !IsClientInGame(client) || IsFakeClient(client)) { + return; + } + if (GetClientTeam(client) < L4D2Team_Survivor) { return; }