From 3b41e3fe194c89a9c906763128ca674d865c752a Mon Sep 17 00:00:00 2001 From: Jackz Date: Wed, 11 May 2022 23:05:42 -0500 Subject: [PATCH] Tweaked punishment --- plugins/l4d2_TKStopper.smx | Bin 14770 -> 15012 bytes scripting/l4d2_TKStopper.sp | 33 ++++++++++++++++++++++----------- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/plugins/l4d2_TKStopper.smx b/plugins/l4d2_TKStopper.smx index 642e11ad79e98e5fcb64fcfe8a4dd05d4fccc852..38e089b08894ea378fa39c9bd2d439dcd730e473 100644 GIT binary patch literal 15012 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 SL3nf5gUdLtz%pNW)&B=h47sBK literal 14770 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 diff --git a/scripting/l4d2_TKStopper.sp b/scripting/l4d2_TKStopper.sp index 9ffdad7..cd15f86 100644 --- a/scripting/l4d2_TKStopper.sp +++ b/scripting/l4d2_TKStopper.sp @@ -33,8 +33,9 @@ enum struct PlayerData { int idleStartTime; int lastFFTime; int jumpAttempts; - int ffCount; + int ffCount; + int totalFFCount; float TKDamageBuffer; float totalDamageFF; float autoRFFScaleFactor; @@ -225,7 +226,7 @@ public void Event_PlayerDisconnect(Event event, const char[] name, bool dontBroa PrintToConsoleAll("\t\t%.2f TK-FF buffer (%.2f total ff, %d freq.) | %.3f (buf %f) rFF rate | lastff %.1f min ago | %d suicide jumps", pData[client].TKDamageBuffer, pData[client].totalDamageFF, - pData[client].ffCount, + pData[client].totalFFCount, activeRate, pData[client].autoRFFScaleFactor, minutesSinceiLastFFTime, @@ -237,6 +238,7 @@ public void Event_PlayerDisconnect(Event event, const char[] name, bool dontBroa pData[client].totalDamageFF = 0.0; pData[client].ffCount = 0; pData[client].immunityFlags = 0; + pData[client].totalFFCount = 0; } } @@ -298,6 +300,7 @@ public Action Event_OnTakeDamage(int victim, int& attacker, int& inflictor, flo } pData[attacker].TKDamageBuffer += damage; pData[attacker].totalDamageFF += damage; + pData[attacker].totalFFCount++; pData[attacker].ffCount++; // Auto reverse ff logic @@ -305,14 +308,20 @@ public Action Event_OnTakeDamage(int victim, int& attacker, int& inflictor, flo pData[attacker].lastFFTime = time; // If not immune to RFF, damage is direct, _or admin shit_ if(~pData[attacker].immunityFlags & Immune_RFF && isDamageDirect) { - // Decrement any forgiven ratio (computed on demand) float minutesSinceiLastFFTime = (time - pData[attacker].lastFFTime) / 60.0; pData[attacker].autoRFFScaleFactor -= minutesSinceiLastFFTime * hFFAutoScaleForgivenessAmount.FloatValue; + // Decrement any accumlated ff 'counts' + int ffCountMinutes = RoundFloat(minutesSinceiLastFFTime / 10.0); + pData[attacker].ffCount -= (ffCountMinutes * 2); + if(pData[attacker].ffCount < 0) { + pData[attacker].ffCount = 0; + } + // Decrement any forgiven ratio (computed on demand) if(pData[attacker].autoRFFScaleFactor < 0.0) { pData[attacker].autoRFFScaleFactor = 0.0; } // Then calculate a new reverse ff ratio - pData[attacker].autoRFFScaleFactor += hFFAutoScaleAmount.FloatValue * damage; + pData[attacker].autoRFFScaleFactor += hFFAutoScaleAmount.FloatValue * damage * (pData[attacker].ffCount*0.25); if(pData[attacker].isTroll) { pData[attacker].autoRFFScaleFactor *= 2; } @@ -348,7 +357,7 @@ public Action Event_OnTakeDamage(int victim, int& attacker, int& inflictor, flo } else if(hTKAction.IntValue == 2) { LogMessage("[TKStopper] Banning %N for excessive FF (%.2f HP) for %d minutes.", attacker, pData[attacker].TKDamageBuffer, hBanTime.IntValue); NotifyAllAdmins("[Notice] Banning %N for excessive FF (%.2f HP) for %d minutes.", attacker, pData[attacker].TKDamageBuffer, hBanTime.IntValue); - BanClient(attacker, hBanTime.IntValue, BANFLAG_AUTO | BANFLAG_AUTHID, "Excessive FF (Auto)", "Excessive Friendly Fire", "TKStopper"); + BanClient(attacker, hBanTime.IntValue, BANFLAG_AUTO | BANFLAG_AUTHID, "Excessive FF (Auto)", "Excessive Friendly Fire (Automatic)", "TKStopper"); } else if(hTKAction.IntValue == 3) { LogMessage("[TKStopper] %N will be banned for FF on disconnect (%.2f HP) for %d minutes. ", attacker, pData[attacker].TKDamageBuffer, hBanTime.IntValue); NotifyAllAdmins("[Notice] %N will be banned for FF on disconnect (%.2f HP) for %d minutes. Use \"/ignore tk\" to make them immune.", attacker, pData[attacker].TKDamageBuffer, hBanTime.IntValue); @@ -380,10 +389,10 @@ public Action Event_OnTakeDamage(int victim, int& attacker, int& inflictor, flo return Plugin_Changed; }else if(isDamageDirect && pData[attacker].autoRFFScaleFactor > 0.3) { // Ignore fire and propane damage, mistakes can happen // Apply their reverse ff damage, and have victim take a decreasing amount - SDKHooks_TakeDamage(attacker, attacker, attacker, pData[attacker].autoRFFScaleFactor * damage); if(pData[attacker].isTroll) return Plugin_Stop; else if(pData[attacker].immunityFlags & Immune_RFF) return Plugin_Continue; + SDKHooks_TakeDamage(attacker, attacker, attacker, pData[attacker].autoRFFScaleFactor * damage); if(pData[attacker].autoRFFScaleFactor > 1.0) damage /= pData[attacker].autoRFFScaleFactor; else @@ -435,12 +444,12 @@ public Action Command_TKInfo(int client, int args) { } float minutesSinceiLastFFTime = GetLastFFMinutes(target); float activeRate = GetActiveRate(target); - ReplyToCommand(client, "FF Frequency: %d", pData[target].ffCount); - ReplyToCommand(client, "Total FF Damage: %.1f (%.1f min ago last ff)", pData[target].totalDamageFF, minutesSinceiLastFFTime); + ReplyToCommand(client, "FF Frequency: %d (active %d, %d forgotten)", pData[target].totalFFCount, pData[target].ffCount, (pData[target].totalFFCount - pData[target].ffCount)); + ReplyToCommand(client, "Total FF Damage: %.1f HP (%.1f min ago last ff)", pData[target].totalDamageFF, minutesSinceiLastFFTime); if(~pData[target].immunityFlags & Immune_TK) ReplyToCommand(client, "Recent FF (TKDetectBuff): %.1f", pData[target].TKDamageBuffer); if(~pData[target].immunityFlags & Immune_RFF) - ReplyToCommand(client, "Auto Reverse-FF: %.1f return rate", activeRate); + ReplyToCommand(client, "Auto Reverse-FF: %.1fx return rate", activeRate); ReplyToCommand(client, "Attempted suicide jumps: %d", pData[target].jumpAttempts); } else { for(int i = 1; i <= MaxClients; i++) { @@ -450,10 +459,12 @@ public Action Command_TKInfo(int client, int args) { if(activeRate < 0.0) { activeRate = 0.0; } - ReplyToCommand(client, "%20N: %.2f TK-FF buf (%.2f total) | %.3f (buf %f) rFF rate | lastff %.1f min ago | %d suicide jumps", - i, + PrintToConsoleAll("%20N: %.1f TK-FF buf (%.2f total ff, %d freq., inter %d) | %.3f (buf %f) rFF rate | lastff %.1f min ago | %d suicide jumps", + i, pData[i].TKDamageBuffer, pData[i].totalDamageFF, + pData[i].totalFFCount, + pData[i].ffCount, activeRate, pData[i].autoRFFScaleFactor, minutesSinceiLastFFTime,