From bd1acaca13afd826251e7696aa1300ca1851cd06 Mon Sep 17 00:00:00 2001 From: Jackz Date: Thu, 18 Feb 2021 23:24:45 -0600 Subject: [PATCH] Add l4d2_population_control --- plugins/l4d2_population_control.smx | Bin 0 -> 3891 bytes scripting/l4d2_population_control.sp | 53 +++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 plugins/l4d2_population_control.smx create mode 100644 scripting/l4d2_population_control.sp diff --git a/plugins/l4d2_population_control.smx b/plugins/l4d2_population_control.smx new file mode 100644 index 0000000000000000000000000000000000000000..8d9b7fe4ee31a725dda3a20201209e1562f22915 GIT binary patch literal 3891 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 R>rUEH$ca5seQNE-{{Z-ZIqv`f literal 0 HcmV?d00001 diff --git a/scripting/l4d2_population_control.sp b/scripting/l4d2_population_control.sp new file mode 100644 index 0000000..e9be57b --- /dev/null +++ b/scripting/l4d2_population_control.sp @@ -0,0 +1,53 @@ +#pragma semicolon 1 +#pragma newdecls required + +//#define DEBUG + +#define PLUGIN_VERSION "1.0" + +#include +#include +//#include + +public Plugin myinfo = +{ + name = "L4D2 Population Control", + author = "jackzmc", + description = "", + version = PLUGIN_VERSION, + url = "" +}; + +static ConVar hPercentTotal; +static ConVar hPercentClown; +static ConVar hPercentMud; + +public void OnPluginStart() { + EngineVersion g_Game = GetEngineVersion(); + if(g_Game != Engine_Left4Dead2) { + SetFailState("This plugin is for L4D2 only."); + } + PrecacheModel("models/infected/common_male_clown.mdl"); + PrecacheModel("models/infected/common_male_mud.mdl"); + + + hPercentTotal = CreateConVar("l4d2_population_global_chance", "1.0", "The % chance that any the below chances occur.\n0.0 = NEVER, 1.0: ALWAYS"); + hPercentClown = CreateConVar("l4d2_population_clowns", "0.0", "The % chance that a common spawns as a clown.\n0.0 = OFF, 1.0 = ALWAYS", FCVAR_NONE, true, 0.0, true, 1.0); + hPercentMud = CreateConVar("l4d2_population_mud", "0.0", "The % chance that a common spawns as a mud zombie.\n0.0 = OFF, 1.0 = ALWAYS", FCVAR_NONE, true, 0.0, true, 1.0); +} + +public void OnEntityCreated(int entity, const char[] classname) { + if (StrEqual(classname, "infected")) { + char m_ModelName[PLATFORM_MAX_PATH]; + GetEntPropString(entity, Prop_Data, "m_ModelName", m_ModelName, sizeof(m_ModelName)); + PrintToConsoleAll("Infected -> %s", m_ModelName); + if(GetRandomFloat() <= hPercentTotal.FloatValue) { + float spawnPercentage = GetRandomFloat(); + if(spawnPercentage <= hPercentClown.FloatValue) { + SetEntityModel(entity, "models/infected/common_male_clown.mdl"); + }else if(spawnPercentage <= hPercentMud.FloatValue) { + SetEntityModel(entity, "models/infected/common_male_mud.mdl"); + } + } + } +} \ No newline at end of file