From 88294578f92c83c6fa19c013f9c26c001c15b3d6 Mon Sep 17 00:00:00 2001 From: DoganGFL Date: Tue, 11 Dec 2018 00:50:51 +0100 Subject: [PATCH] new plugin: IncreasedKnockback --- .../scripting/IncreasedKnockback.sp | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 IncreasedKnockback/scripting/IncreasedKnockback.sp diff --git a/IncreasedKnockback/scripting/IncreasedKnockback.sp b/IncreasedKnockback/scripting/IncreasedKnockback.sp new file mode 100644 index 00000000..2118c98f --- /dev/null +++ b/IncreasedKnockback/scripting/IncreasedKnockback.sp @@ -0,0 +1,66 @@ +#pragma semicolon 1 + +#include +#include +#include +#include +#include + +ConVar g_iIncreasedKnockback; +ConVar g_iDefineMaxPopulation; +Handle CheckTimer; + +public Plugin myinfo = +{ + name = "IncreasedKnockback", + author = "Dogan", + description = "Increase the knockback during low population", + version = "1.0.0", + url = "" +} + +public void OnPluginStart() +{ + g_iIncreasedKnockback = CreateConVar("sm_knockback_boost", "1.05", "knockback boost during low population"); + g_iDefineMaxPopulation = CreateConVar("sm_knockback_maxpopulation", "32", "max amount of players until the knockback should be increased"); + + AutoExecConfig(true, "plugin.IncreasedKnockback"); + GetConVars(); +} + +public void GetConVars() +{ + if (CheckTimer != INVALID_HANDLE && CloseHandle(CheckTimer)) + CheckTimer = INVALID_HANDLE; + + CheckTimer = CreateTimer(30.0, CheckServerPopulation, _, TIMER_REPEAT); +} + +public void ConVarChange(ConVar convar, char[] oldValue, char[] newValue) +{ + GetConVars(); +} + +public Action CheckServerPopulation(Handle timer) +{ + int Population = GetClientCount(true); + + if(Population <= g_iDefineMaxPopulation.IntValue) + { + PerformKnockbackIncrease(); + } + else + { + PerformKnockbackDecrease(); + } +} + +public void PerformKnockbackIncrease() +{ + ServerCommand("zr_class_set_multiplier zombies knockback %f", g_iIncreasedKnockback.FloatValue); +} + +public void PerformKnockbackDecrease() +{ + ServerCommand("zr_class_set_multiplier zombies 1.0"); +} \ No newline at end of file