From 74ce2cc2b1d27a3da39f43daf4585cdbf1001894 Mon Sep 17 00:00:00 2001 From: dogan Date: Tue, 21 Jul 2020 00:29:03 +0200 Subject: [PATCH] AN: major update FK: minor fixes --- AntiNoob/scripting/AntiNoob.sp | 149 +++++++++++++++++++++++---- FakeClients/scripting/FakeClients.sp | 4 +- 2 files changed, 132 insertions(+), 21 deletions(-) diff --git a/AntiNoob/scripting/AntiNoob.sp b/AntiNoob/scripting/AntiNoob.sp index e5ff0724..231ebb19 100644 --- a/AntiNoob/scripting/AntiNoob.sp +++ b/AntiNoob/scripting/AntiNoob.sp @@ -5,6 +5,7 @@ #include #include #include +#include int g_iHighRatio; int g_iMediumRatio; @@ -37,6 +38,11 @@ float g_fKnockbackMidRoundBoost; float g_fNapalmMidRoundReduction; float g_fMidRoundRatio; +bool g_bNoSteam; +float g_fKnockbackNoSteamBoost; +float g_fNapalmNoSteamReduction; +float g_fNoSteamRatio; + bool g_bAntiNoob; float g_fCurrentKnockbackBoost; float g_fCurrentNapalmDamage; @@ -46,7 +52,7 @@ public Plugin myinfo = name = "AntiNoob", author = "Dogan", description = "Provide help when the server is doing bad on a map", - version = "4.0.0", + version = "5.0.0", url = "" } @@ -91,12 +97,18 @@ public void OnPluginStart() g_fNapalmMediumReduction = cvar.FloatValue; HookConVarChange((cvar = CreateConVar("sm_an_napalm_highhelp", "6.0", "napalm damage reduction needed when high help is perfomed for full burn from nades (stacking)")), g_cvNapalmHighReduction); g_fNapalmHighReduction = cvar.FloatValue; - HookConVarChange((cvar = CreateConVar("sm_an_napalm_midround", "2.0", "napalm damage reduction needed when mid round help is performed for full burn from nades (stacking)")), g_cvNapalmMidRoundReduction); + HookConVarChange((cvar = CreateConVar("sm_an_napalm_midround", "1.0", "napalm damage reduction needed when mid round help is performed for full burn from nades (stacking)")), g_cvNapalmMidRoundReduction); g_fNapalmMidRoundReduction = cvar.FloatValue; - HookConVarChange((cvar = CreateConVar("sm_an_kb_midround", "5.0", "knockback boost in procent when mid round help is performed (stacking)")), g_cvKnockbackMidRoundBoost); + HookConVarChange((cvar = CreateConVar("sm_an_kb_midround", "2.5", "knockback boost in procent when mid round help is performed (stacking)")), g_cvKnockbackMidRoundBoost); g_fKnockbackMidRoundBoost = cvar.FloatValue / 100.0; - HookConVarChange((cvar = CreateConVar("sm_an_midroundratio", "1.011", "human:zombie amount ratio to perform mid round help, x = zombie")), g_cvMidRoundRatio); + HookConVarChange((cvar = CreateConVar("sm_an_midroundratio", "1.20", "zombie ratio in relation to humans to perform mid round help")), g_cvMidRoundRatio); g_fMidRoundRatio = cvar.FloatValue; + HookConVarChange((cvar = CreateConVar("sm_an_napalm_nosteam", "1.0", "napalm damage reduction needed when nosteam help is performed for full burn from nades (stacking)")), g_cvNapalmNoSteamReduction); + g_fNapalmNoSteamReduction = cvar.FloatValue; + HookConVarChange((cvar = CreateConVar("sm_an_kb_nosteam", "2.5", "knockback boost in procent when nosteam help is performed (stacking)")), g_cvKnockbackNoSteamBoost); + g_fKnockbackNoSteamBoost = cvar.FloatValue / 100.0; + HookConVarChange((cvar = CreateConVar("sm_an_nosteamratio", "0.25", "nosteam ratio in relation to server population to perform nosteam help")), g_cvNoSteamRatio); + g_fNoSteamRatio = cvar.FloatValue; delete cvar; RegAdminCmd("sm_antinoob", Command_AntiNoob, ADMFLAG_GENERIC, "returns the current helps or boosts for this round"); @@ -205,6 +217,21 @@ public void g_cvMidRoundRatio(ConVar convar, const char[] oldValue, const char[] g_fMidRoundRatio = convar.FloatValue; } +public void g_cvNapalmNoSteamReduction(ConVar convar, const char[] oldValue, const char[] newValue) +{ + g_fNapalmNoSteamReduction = convar.FloatValue; +} + +public void g_cvKnockbackNoSteamBoost(ConVar convar, const char[] oldValue, const char[] newValue) +{ + g_fKnockbackNoSteamBoost = convar.FloatValue / 100.0; +} + +public void g_cvNoSteamRatio(ConVar convar, const char[] oldValue, const char[] newValue) +{ + g_fNoSteamRatio = convar.FloatValue; +} + public void OnMapStart() { g_iHumanScore = 1; @@ -225,6 +252,12 @@ public Action Command_AntiNoob(int client, int args) Format(cAdminNotification, sizeof(cAdminNotification), "{cyan}[AntiNoob]{white} Currently boosting knockback by {red}%.2f%%{white}.", ((g_fCurrentKnockbackBoost - 1.0) * 100.0)); + if(g_bLowPopulation) + CPrintToChat(client, "{cyan}[AntiNoob]{white} Low Population detected."); + + if(g_bNoSteam) + CPrintToChat(client, "{cyan}[AntiNoob]{white} Large Amount of No-Steam Players detected."); + CPrintToChat(client, "%s", cAdminNotification); return Plugin_Handled; @@ -276,13 +309,10 @@ public void CheckHumanZombieCount() ServerCommand("zr_class_set_multiplier zombies knockback %f", g_fCurrentKnockbackBoost); ServerCommand("zr_napalm_time_scale %f", g_fCurrentNapalmDamage); - char cAdminNotification[256]; - Format(cAdminNotification, sizeof(cAdminNotification), "{cyan}[AntiNoob]{white} Adding an additional {red}%.2f%%{white} mid round knockback boost because the Human:Zombie Ratio exceeded {red}1:%.2f{white}.", g_fKnockbackMidRoundBoost * 100.0, g_fMidRoundRatio); - for(int i = 1; i <= MaxClients; i++) { if(IsAdmin(i)) - CPrintToChat(i,"%s", cAdminNotification); + CPrintToChat(i, "{cyan}[AntiNoob]{white} Large Amount of Zombies detected."); } } } @@ -295,9 +325,7 @@ public void OnRoundStart(Event hEvent, const char[] sEvent, bool bDontBroadcast) g_bMidRound = false; if(g_iHumanScore == 0) - { g_iHumanScore = 1; - } if(g_iZombieScore != g_iOldZombieScore) { @@ -310,13 +338,25 @@ public void OnRoundStart(Event hEvent, const char[] sEvent, bool bDontBroadcast) } int iActivePlayers; + int iActiveSteamPlayers; + int iActiveNoSteamPlayers; for(int i = 1; i <= MaxClients; i++) { - if(IsClientInGame(i) && !IsFakeClient(i) && GetClientTeam(i) >= CS_TEAM_T) - iActivePlayers++; + if(!IsClientInGame(i) || IsFakeClient(i) || GetClientTeam(i) <= CS_TEAM_T) + continue; + + iActivePlayers++; + + if(PM_IsPlayerSteam(i)) + iActiveSteamPlayers++; + else + iActiveNoSteamPlayers++; } + if(iActiveSteamPlayers == 0) + iActiveSteamPlayers = 1; + char cAdminNotification[128] = "{cyan}[AntiNoob]{white} Currently disabled."; if(!g_bAntiNoob) @@ -337,6 +377,11 @@ public void OnRoundStart(Event hEvent, const char[] sEvent, bool bDontBroadcast) else g_bLowPopulation = false; + if((float(iActiveNoSteamPlayers) / float(iActiveSteamPlayers)) >= g_fNoSteamRatio) + g_bNoSteam = true; + else + g_bNoSteam = false; + if(g_iZombieScore / g_iHumanScore >= g_iHighRatio || g_iZombieStreak >= g_iHighStreak) PerformHighHelp(); else if(g_iZombieScore / g_iHumanScore >= g_iMediumRatio || g_iZombieStreak >= g_iMediumStreak) @@ -350,20 +395,45 @@ public void OnRoundStart(Event hEvent, const char[] sEvent, bool bDontBroadcast) for(int i = 1; i <= MaxClients; i++) { - if(IsAdmin(i)) - CPrintToChat(i,"%s", cAdminNotification); + if(!IsAdmin(i)) + continue; + + if(g_bLowPopulation) + CPrintToChat(i, "{cyan}[AntiNoob]{white} Low Population detected."); + + if(g_bNoSteam) + CPrintToChat(i, "{cyan}[AntiNoob]{white} Large Amount of No-Steam Players detected."); + + if(g_bMidRound) + CPrintToChat(i, "{cyan}[AntiNoob]{white} Large Amount of Zombies detected."); + + CPrintToChat(i,"%s", cAdminNotification); } } public void PerformHighHelp() { - if(g_bLowPopulation) + if(g_bNoSteam && g_bLowPopulation) + { + ServerCommand("zr_class_set_multiplier zombies knockback %f", 1.0 + g_fKnockbackHighBoost + g_fKnockbackPopulationBoost + g_fKnockbackNoSteamBoost); + ServerCommand("zr_napalm_time_scale %f", 50.0 - g_fNapalmHighReduction - g_fNapalmPopulationReduction - g_fNapalmNoSteamReduction); + g_fCurrentKnockbackBoost = 1.0 + g_fKnockbackHighBoost + g_fKnockbackPopulationBoost + g_fKnockbackNoSteamBoost; + g_fCurrentNapalmDamage = 50.0 - g_fNapalmHighReduction - g_fNapalmPopulationReduction - g_fNapalmNoSteamReduction; + } + else if(g_bLowPopulation) { ServerCommand("zr_class_set_multiplier zombies knockback %f", 1.0 + g_fKnockbackHighBoost + g_fKnockbackPopulationBoost); ServerCommand("zr_napalm_time_scale %f", 50.0 - g_fNapalmHighReduction - g_fNapalmPopulationReduction); g_fCurrentKnockbackBoost = 1.0 + g_fKnockbackHighBoost + g_fKnockbackPopulationBoost; g_fCurrentNapalmDamage = 50.0 - g_fNapalmHighReduction - g_fNapalmPopulationReduction; } + else if(g_bNoSteam) + { + ServerCommand("zr_class_set_multiplier zombies knockback %f", 1.0 + g_fKnockbackHighBoost + g_fKnockbackNoSteamBoost); + ServerCommand("zr_napalm_time_scale %f", 50.0 - g_fNapalmHighReduction - g_fNapalmNoSteamReduction); + g_fCurrentKnockbackBoost = 1.0 + g_fKnockbackHighBoost + g_fKnockbackNoSteamBoost; + g_fCurrentNapalmDamage = 50.0 - g_fNapalmHighReduction - g_fNapalmNoSteamReduction; + } else { ServerCommand("zr_class_set_multiplier zombies knockback %f", 1.0 + g_fKnockbackHighBoost); @@ -375,13 +445,27 @@ public void PerformHighHelp() public void PerformMediumHelp() { - if(g_bLowPopulation) + if(g_bNoSteam && g_bLowPopulation) + { + ServerCommand("zr_class_set_multiplier zombies knockback %f", 1.0 + g_fKnockbackMediumBoost + g_fKnockbackPopulationBoost + g_fKnockbackNoSteamBoost); + ServerCommand("zr_napalm_time_scale %f", 50.0 - g_fNapalmMediumReduction - g_fNapalmPopulationReduction - g_fNapalmNoSteamReduction); + g_fCurrentKnockbackBoost = 1.0 + g_fKnockbackMediumBoost + g_fKnockbackPopulationBoost + g_fKnockbackNoSteamBoost; + g_fCurrentNapalmDamage = 50.0 - g_fNapalmMediumReduction - g_fNapalmPopulationReduction - g_fNapalmNoSteamReduction; + } + else if(g_bLowPopulation) { ServerCommand("zr_class_set_multiplier zombies knockback %f", 1.0 + g_fKnockbackMediumBoost + g_fKnockbackPopulationBoost); ServerCommand("zr_napalm_time_scale %f", 50.0 - g_fNapalmMediumReduction - g_fNapalmPopulationReduction); g_fCurrentKnockbackBoost = 1.0 + g_fKnockbackMediumBoost + g_fKnockbackPopulationBoost; g_fCurrentNapalmDamage = 50.0 - g_fNapalmMediumReduction - g_fNapalmPopulationReduction; } + else if(g_bNoSteam) + { + ServerCommand("zr_class_set_multiplier zombies knockback %f", 1.0 + g_fKnockbackMediumBoost + g_fKnockbackNoSteamBoost); + ServerCommand("zr_napalm_time_scale %f", 50.0 - g_fNapalmMediumReduction - g_fNapalmNoSteamReduction); + g_fCurrentKnockbackBoost = 1.0 + g_fKnockbackMediumBoost + g_fKnockbackNoSteamBoost; + g_fCurrentNapalmDamage = 50.0 - g_fNapalmMediumReduction - g_fNapalmNoSteamReduction; + } else { ServerCommand("zr_class_set_multiplier zombies knockback %f", 1.0 + g_fKnockbackMediumBoost); @@ -393,13 +477,27 @@ public void PerformMediumHelp() public void PerformLowHelp() { - if(g_bLowPopulation) + if(g_bNoSteam && g_bLowPopulation) + { + ServerCommand("zr_class_set_multiplier zombies knockback %f", 1.0 + g_fKnockbackLowBoost + g_fKnockbackPopulationBoost + g_fKnockbackNoSteamBoost); + ServerCommand("zr_napalm_time_scale %f", 50.0 - g_fNapalmLowReduction - g_fNapalmPopulationReduction - g_fNapalmNoSteamReduction); + g_fCurrentKnockbackBoost = 1.0 + g_fKnockbackLowBoost + g_fKnockbackPopulationBoost + g_fKnockbackNoSteamBoost; + g_fCurrentNapalmDamage = 50.0 - g_fNapalmLowReduction - g_fNapalmPopulationReduction - g_fNapalmNoSteamReduction; + } + else if(g_bLowPopulation) { ServerCommand("zr_class_set_multiplier zombies knockback %f", 1.0 + g_fKnockbackLowBoost + g_fKnockbackPopulationBoost); ServerCommand("zr_napalm_time_scale %f", 50.0 - g_fNapalmLowReduction - g_fNapalmPopulationReduction); g_fCurrentKnockbackBoost = 1.0 + g_fKnockbackLowBoost + g_fKnockbackPopulationBoost; g_fCurrentNapalmDamage = 50.0 - g_fNapalmLowReduction - g_fNapalmPopulationReduction; } + else if(g_bNoSteam) + { + ServerCommand("zr_class_set_multiplier zombies knockback %f", 1.0 + g_fKnockbackLowBoost + g_fKnockbackNoSteamBoost); + ServerCommand("zr_napalm_time_scale %f", 50.0 - g_fNapalmLowReduction - g_fNapalmNoSteamReduction); + g_fCurrentKnockbackBoost = 1.0 + g_fKnockbackLowBoost + g_fKnockbackNoSteamBoost; + g_fCurrentNapalmDamage = 50.0 - g_fNapalmLowReduction - g_fNapalmNoSteamReduction; + } else { ServerCommand("zr_class_set_multiplier zombies knockback %f", 1.0 + g_fKnockbackLowBoost); @@ -408,16 +506,29 @@ public void PerformLowHelp() g_fCurrentNapalmDamage = 50.0 - g_fNapalmLowReduction; } } - public void PerformReset() { - if(g_bLowPopulation && g_bAntiNoob) + if(g_bLowPopulation && g_bNoSteam && g_bAntiNoob) + { + ServerCommand("zr_class_set_multiplier zombies knockback %f", 1.0 + g_fKnockbackPopulationBoost + g_fKnockbackNoSteamBoost); + ServerCommand("zr_napalm_time_scale %f", 50.0 - g_fNapalmPopulationReduction - g_fNapalmNoSteamReduction); + g_fCurrentKnockbackBoost = 1.0 + g_fKnockbackPopulationBoost + g_fKnockbackNoSteamBoost; + g_fCurrentNapalmDamage = 50.0 - g_fNapalmPopulationReduction - g_fNapalmNoSteamReduction; + } + else if(g_bLowPopulation && g_bAntiNoob) { ServerCommand("zr_class_set_multiplier zombies knockback %f", 1.0 + g_fKnockbackPopulationBoost); ServerCommand("zr_napalm_time_scale %f", 50.0 - g_fNapalmPopulationReduction); g_fCurrentKnockbackBoost = 1.0 + g_fKnockbackPopulationBoost; g_fCurrentNapalmDamage = 50.0 - g_fNapalmPopulationReduction; } + else if(g_bNoSteam && g_bAntiNoob) + { + ServerCommand("zr_class_set_multiplier zombies knockback %f", 1.0 + g_fKnockbackNoSteamBoost); + ServerCommand("zr_napalm_time_scale %f", 50.0 - g_fNapalmNoSteamReduction); + g_fCurrentKnockbackBoost = 1.0 + g_fKnockbackNoSteamBoost; + g_fCurrentNapalmDamage = 50.0 - g_fNapalmNoSteamReduction; + } else { ServerCommand("zr_class_set_multiplier zombies knockback 1.0"); diff --git a/FakeClients/scripting/FakeClients.sp b/FakeClients/scripting/FakeClients.sp index c3d383f2..38e00494 100644 --- a/FakeClients/scripting/FakeClients.sp +++ b/FakeClients/scripting/FakeClients.sp @@ -229,7 +229,7 @@ public Action Command_DebugFakes(int client, int argc) //---------------------------------------------------------------------------------------------------- public Action Command_SetFakes(int client, int argc) { - if(g_iBlockInstantFakeConnects <= 5) + if(g_iBlockInstantFakeConnects <= 6) { ReplyToCommand(client, "[SM] Not available right now, because the Plugin is still loading. Try again in couple seconds."); return Plugin_Handled; @@ -434,7 +434,7 @@ public void CheckPopulation() //CS_SetClientClanTag(iIndex, "UNLOZE"); iFakes++; - if(g_iBlockInstantFakeConnects <= 6) + if(g_iBlockInstantFakeConnects <= 6 && g_iAdminFakes == -1) g_bBlockInstantFakeConnects = true; }