From a7c7ad690f9fb42440f0e086ac8af7e78f0eb859 Mon Sep 17 00:00:00 2001 From: Jackz Date: Wed, 13 Jul 2022 17:52:02 -0500 Subject: [PATCH] Instant pass vote kick if by admin --- plugins/L4D2FFKickProtection.smx | Bin 5626 -> 5960 bytes scripting/L4D2FFKickProtection.sp | 18 +++++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/plugins/L4D2FFKickProtection.smx b/plugins/L4D2FFKickProtection.smx index f56521063eca957037a84ca12cd801d0bd221e6e..1a7b2b19a37d0b044af95a5ef927c5fc2d1b3a1b 100644 GIT binary patch delta 5790 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 delta 5453 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: When FF count > this", FCVAR_NONE, true, -1.0); } +public void OnMapStart() { + voteController = FindEntityByClassname(-1, "vote_controller"); +} + int iJoinTime[MAXPLAYERS+1]; public void OnClientPutInServer(int client) { int team = GetClientTeam(client); @@ -69,7 +75,8 @@ public Action VoteStart(int client, const char[] command, int argc) { if(strlen(option) > 1) { //empty userid/console can't call votes int target = GetClientOfUserId(StringToInt(option)); - if(target == 0 || target >= MaxClients || !IsClientConnected(target)) return Plugin_Continue; //invalid, pass it through + if(target <= 0 || target >= MaxClients || !IsClientConnected(target)) return Plugin_Continue; //invalid, pass it through + if(client <= 0 || client >= MaxClients || !IsClientConnected(client)) return Plugin_Continue; //invalid, pass it through AdminId callerAdmin = GetUserAdmin(client); AdminId targetAdmin = GetUserAdmin(target); if(targetAdmin != INVALID_ADMIN_ID) { //Only run if vote is against an admin @@ -85,6 +92,14 @@ public Action VoteStart(int client, const char[] command, int argc) { PrintToChat(target, "%N has attempted to vote kick you.", client); } return Plugin_Handled; + } else if(callerAdmin != INVALID_ADMIN_ID && targetAdmin == INVALID_ADMIN_ID && IsValidEntity(voteController)) { + PrintToServer("Vote kick by admin, instantly passing"); + SetEntProp(voteController, Prop_Send, "m_votesYes", 32); + for(int i = 1; i <= MaxClients; i++) { + if(IsClientConnected(i) && !IsFakeClient(i) && GetClientTeam(i) == GetClientTeam(target)) { + ClientCommand(i, "vote Yes"); + } + } } if(GetClientTeam(target) == 2) { disableFFClient = target; @@ -101,6 +116,7 @@ public Action VoteStart(int client, const char[] command, int argc) { public Action VotePassFail(UserMsg msg_id, BfRead msg, const int[] players, int playersNum, bool reliable, bool init) { disableFFClient = -1; ffDamageCount = 0; + return Plugin_Continue; } public Action OnTakeDamage(int victim, int& attacker, int& inflictor, float& damage, int& damagetype, int& weapon, float damageForce[3], float damagePosition[3]) {