From 728afd452a2cde02c27090f0dfe76ed13be0bc84 Mon Sep 17 00:00:00 2001 From: Jackz Date: Tue, 23 Mar 2021 22:53:34 -0500 Subject: [PATCH] L4D2FFKickProtection: Add admin immunity level checks for vote kicks --- plugins/L4D2FFKickProtection.smx | Bin 6442 -> 5279 bytes scripting/L4D2FFKickProtection.sp | 35 ++++++++++++++++-------------- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/plugins/L4D2FFKickProtection.smx b/plugins/L4D2FFKickProtection.smx index a18a6719ddb782d38572b1a92c8bf64e28829fc6..2c21fed7148cf0b3331d798002384e5431818a4b 100644 GIT binary patch literal 5279 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�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 TMkQV>#?wmU+^EE~l=1uzaE(Z+ diff --git a/scripting/L4D2FFKickProtection.sp b/scripting/L4D2FFKickProtection.sp index 57fb1e0..03507d8 100644 --- a/scripting/L4D2FFKickProtection.sp +++ b/scripting/L4D2FFKickProtection.sp @@ -12,8 +12,7 @@ #include #include -static int disableFFClient; //client to disable FF for -static float ffDamageDone; //amount of damage offending user has attempted +static int disableFFClient, ffDamageCount; //client to disable FF for static ConVar forceKickFFThreshold; public Plugin myinfo = { @@ -34,7 +33,7 @@ public void OnPluginStart() { HookUserMessage(GetUserMessageId("VotePass"), VotePassFail); HookUserMessage(GetUserMessageId("VoteFail"), VotePassFail); - forceKickFFThreshold = CreateConVar("sm_votekick_force_threshold","0","The threshold of damage where the offending player is just immediately kicked. 0 -> Any attempted damage, -1 -> No auto kick.", FCVAR_NONE, true, -1.0); + forceKickFFThreshold = CreateConVar("sm_votekick_force_threshold","20.0","The threshold of amount of FF to then automatically kick.\n0: Any attempted damage\n -1: No auto kick.\n>0: When FF count > this", FCVAR_NONE, true, -1.0); //HookEvent("vote_started",Event_VoteStarted); } @@ -68,41 +67,45 @@ public Action VoteStart(int client, const char[] command, int argc) { GetCmdArg(1, issue, sizeof(issue)); Format(caller, sizeof(caller), "%N", client); - if(StrEqual(issue, "Kick", true)) { + if(StrEqual(issue, "Kick", false)) { char option[32]; GetCmdArg(2, option, sizeof(option)); if(strlen(option) < 1) { //empty userid/console can't call votes int target = GetClientOfUserId(StringToInt(option)); - int team = GetClientTeam(target); - if(team == 2) { - disableFFClient = target; - ffDamageDone = -1.0; + AdminId callerAdmin = GetUserAdmin(client); + AdminId targetAdmin = GetUserAdmin(target); + if (GetAdminImmunityLevel(targetAdmin) >= GetAdminImmunityLevel(callerAdmin)) { + PrintToChat(target, "%N attempted to vote kick you!", client); + return Plugin_Handled; } - return Plugin_Handled; + if(GetClientTeam(target)== 2) { + disableFFClient = target; + ffDamageCount = 0; + } + return Plugin_Continue; } //Kick vote started PrintToServer("KICK VOTE STARTED | Issue=%s Option=%s Caller=%N", issue, option, client); } } - return Plugin_Handled; //if it wasn't handled up there I would start panicking + return Plugin_Continue; //if it wasn't handled up there I would start panicking } public Action VotePassFail(UserMsg msg_id, BfRead msg, const int[] players, int playersNum, bool reliable, bool init) { disableFFClient = -1; - ffDamageDone = -1.0; + ffDamageCount = 0; } public Action OnTakeDamage(int victim, int& attacker, int& inflictor, float& damage, int& damagetype, int& weapon, float damageForce[3], float damagePosition[3]) { if(disableFFClient == attacker) { - if(ffDamageDone == -1) { - PrintToServer("Player in vote to be kicked has done ff damage"); + if(damage > 0.0) { + ffDamageCount++; } - ffDamageDone = damage; - if(forceKickFFThreshold.FloatValue > -1.0) { + if(forceKickFFThreshold.IntValue > -1 && ffDamageCount > 0.0) { //auto kick if(forceKickFFThreshold.FloatValue == 0.0) { KickClient(disableFFClient, "Kicked for excessive friendly fire"); - }else if(FloatCompare(ffDamageDone, forceKickFFThreshold.FloatValue) == 1) { + }else if(ffDamageCount > forceKickFFThreshold.FloatValue) { KickClient(disableFFClient, "Kicked for excessive friendly fire"); } }