66 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			SourcePawn
		
	
	
	
	
	
			
		
		
	
	
			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");
 | 
						|
} |