From 3d0b4635b5f3fccc1446833c5f2c3958b999c773 Mon Sep 17 00:00:00 2001 From: Jackz Date: Mon, 3 May 2021 09:54:28 -0500 Subject: [PATCH] l4d2_pc: Add common limit system --- plugins/feedthetrolls.smx | Bin 2753 -> 0 bytes plugins/l4d2_population_control.smx | Bin 4675 -> 5383 bytes scripting/l4d2_population_control.sp | 36 +++++++++++++++++++++++++++ 3 files changed, 36 insertions(+) delete mode 100644 plugins/feedthetrolls.smx diff --git a/plugins/feedthetrolls.smx b/plugins/feedthetrolls.smx deleted file mode 100644 index daa9f884848cdc095025d79b64535d3c4ee4b486..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2753 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 delta 4516 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 diff --git a/scripting/l4d2_population_control.sp b/scripting/l4d2_population_control.sp index eb833c7..062c1e0 100644 --- a/scripting/l4d2_population_control.sp +++ b/scripting/l4d2_population_control.sp @@ -26,9 +26,14 @@ static ConVar hPercentWorker; static ConVar hPercentRiot; static ConVar hPercentJimmy; static ConVar hPercentFallen; +static ConVar hTotalZombies; +static ConVar hZCommonLimit; static bool IsDoneLoading; +static int iCurrentCommons; +static int commonLimit; + #define COMMON_MODELS_COUNT 6 static char INFECTED_MODELS[COMMON_MODELS_COUNT][] = { "models/infected/common_male_clown.mdl", //clown @@ -66,6 +71,13 @@ public void OnPluginStart() { hPercentWorker = CreateConVar("l4d2_population_worker", "0.0", "The % chance that a common spawns as a worker zombie.\n0.0 = OFF, 1.0 = ALWAYS", FCVAR_NONE, true, 0.0, true, 1.0); hPercentRiot = CreateConVar("l4d2_population_riot", "0.0", "The % chance that a common spawns as a riot zombie.\n0.0 = OFF, 1.0 = ALWAYS", FCVAR_NONE, true, 0.0, true, 1.0); hPercentJimmy = CreateConVar("l4d2_population_jimmy", "0.0", "The % chance that a common spawns as a Jimmy Gibs Jr. zombie.\n0.0 = OFF, 1.0 = ALWAYS", FCVAR_NONE, true, 0.0, true, 1.0); + hTotalZombies = CreateConVar("l4d2_population_common", "0.0", "The maximum amount of commons, anymore will be deleted.\n0 = Turn Off\n> 0: Fixed limit\n< 0: z_common_limit + absolute value", FCVAR_NONE); + hZCommonLimit = FindConVar("z_common_limit"); + + hTotalZombies.AddChangeHook(CVAR_hTotalZombiesChanged); + CVAR_hTotalZombiesChanged(hTotalZombies, "0", "0"); + + HookEvent("infected_death", Event_InfectedDeath); RegConsoleCmd("sm_population_list", Cmd_List, "Lists the current population percentages", FCVAR_NONE); RegConsoleCmd("sm_populations", Cmd_List, "Lists the current population percentages", FCVAR_NONE); @@ -83,10 +95,30 @@ public void OnMapStart() { } public void OnMapEnd() { IsDoneLoading = false; + iCurrentCommons = 0; +} + +public void CVAR_hTotalZombiesChanged(ConVar convar, const char[] oldValue, const char[] newValue) { + if(hTotalZombies.IntValue > 0) { + commonLimit = hTotalZombies.IntValue; + }else if(hTotalZombies.IntValue < 0) { + commonLimit = hZCommonLimit.IntValue - hTotalZombies.IntValue; + }else { + commonLimit = 0; + } } public void OnEntityCreated(int entity, const char[] classname) { if (StrEqual(classname, "infected") && IsDoneLoading) { + //If limiter turned on: + if(commonLimit != 0) { + if(iCurrentCommons > commonLimit) { + AcceptEntityInput(entity, "kill"); + return; + } + } + ++iCurrentCommons; + char m_ModelName[PLATFORM_MAX_PATH]; GetEntPropString(entity, Prop_Data, "m_ModelName", m_ModelName, sizeof(m_ModelName)); if(GetRandomFloat() <= hPercentTotal.FloatValue) { @@ -108,6 +140,10 @@ public void OnEntityCreated(int entity, const char[] classname) { } } +public Action Event_InfectedDeath(Event event, const char[] name, bool dontBroadcast) { + --iCurrentCommons; +} + public Action Cmd_List(int client, int args) { ReplyToCommand(client, "L4D2 Population Chances"); ReplyToCommand(client, "%.1f%% global chance", hPercentTotal.FloatValue * 100);