sm-plugins/IncreasedKnockback/scripting/IncreasedKnockback.sp
2018-12-11 01:00:20 +01:00

66 lines
1.5 KiB
SourcePawn

#pragma semicolon 1
#include <sourcemod>
#include <sdktools>
#include <zombiereloaded>
#include <cstrike>
#include <ccc>
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 knockback 1.0");
}