From 1739e3c5b65691c889761e15a0765fe1c1ed7358 Mon Sep 17 00:00:00 2001 From: Jackz Date: Thu, 25 Feb 2021 23:07:49 -0600 Subject: [PATCH] Add sm_popuation_list --- README.md | 2 ++ plugins/l4d2_population_control.smx | Bin 4269 -> 4675 bytes scripting/l4d2_population_control.sp | 30 +++++++++++++++++++-------- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index a68b146..ac8c193 100644 --- a/README.md +++ b/README.md @@ -215,3 +215,5 @@ Allows you to set the chances that a common spawns as a certain uncommon. The or * `l4d2_population_worker <0.0-1.0>` The chance that on a common spawn that the special will be a worker common. * `l4d2_population_riot <0.0-1.0>` The chance that on a common spawn that the special will be a riot common. * `l4d2_population_jimmy <0.0-1.0>` The chance that on a common spawn that the special will be a jimmy common +* **Commands:** + * `sm_populations` or `sm_population_list` - Lists all the cvar values \ No newline at end of file diff --git a/plugins/l4d2_population_control.smx b/plugins/l4d2_population_control.smx index f9bfa3487c283510061426fd160b7170d539b6c8..432f8170025a1847a5d3447501b0ec5ecd5c6f29 100644 GIT binary patch delta 4526 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 delta 4136 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 Precache %s", INFECTED_MODELS[i]); PrecacheModel(INFECTED_MODELS[i], true); } for(int i = 0; i < 3; i++) { - PrintToServer(">>> Precache %s", INFECTED_MODELS[i]); PrecacheModel(WORKER_MODELS[i], true); } IsDoneLoading = true; @@ -89,21 +90,32 @@ public void OnEntityCreated(int entity, const char[] classname) { char m_ModelName[PLATFORM_MAX_PATH]; GetEntPropString(entity, Prop_Data, "m_ModelName", m_ModelName, sizeof(m_ModelName)); if(GetRandomFloat() <= hPercentTotal.FloatValue) { - float spawnPercentage = GetRandomFloat(); - if(spawnPercentage <= hPercentClown.FloatValue) { + if(GetRandomFloat() <= hPercentClown.FloatValue) { SetEntityModel(entity, INFECTED_MODELS[Common_Clown]); - }else if(spawnPercentage <= hPercentMud.FloatValue) { + }else if(GetRandomFloat() <= hPercentMud.FloatValue) { SetEntityModel(entity, INFECTED_MODELS[Common_Mud]); - }else if(spawnPercentage <= hPercentCeda.FloatValue) { + }else if(GetRandomFloat() <= hPercentCeda.FloatValue) { SetEntityModel(entity, INFECTED_MODELS[Common_Ceda]); - }else if(spawnPercentage <= hPercentWorker.FloatValue) { + }else if(GetRandomFloat() <= hPercentWorker.FloatValue) { //worker has multiple models: SetEntityModel(entity, WORKER_MODELS[GetRandomInt(0,2)]); - }else if(spawnPercentage <= hPercentRiot.FloatValue) { + }else if(GetRandomFloat() <= hPercentRiot.FloatValue) { SetEntityModel(entity, INFECTED_MODELS[Common_Riot]); - }else if(spawnPercentage <= hPercentJimmy.FloatValue) { + }else if(GetRandomFloat() <= hPercentJimmy.FloatValue) { SetEntityModel(entity, INFECTED_MODELS[Common_Jimmy]); } } } +} + +public Action Cmd_List(int client, int args) { + ReplyToCommand(client, "L4D2 Population Chances"); + ReplyToCommand(client, "%.1f%% global chance", hPercentTotal.FloatValue * 100); + ReplyToCommand(client, "%.1f%% Clowns", hPercentClown.FloatValue * 100); + ReplyToCommand(client, "%.1f%% Mud Commons", hPercentMud.FloatValue * 100); + ReplyToCommand(client, "%.1f%% Ceda Commons", hPercentCeda.FloatValue * 100); + ReplyToCommand(client, "%.1f%% Worker Commons", hPercentWorker.FloatValue * 100); + ReplyToCommand(client, "%.1f%% Riot Commons", hPercentRiot.FloatValue * 100); + ReplyToCommand(client, "%.1f%% Jimmy Gibs", hPercentJimmy.FloatValue * 100); + return Plugin_Handled; } \ No newline at end of file