From 0809a5bad02e312a5675e8f6f5f74ecb74a69354 Mon Sep 17 00:00:00 2001 From: Altair Sossai Date: Sat, 22 Aug 2026 10:23:43 -0300 Subject: [PATCH 1/2] Add circular tank assignment feature and related configuration options --- .../plugins/optional/l4d_tank_control_eq.smx | Bin 17711 -> 18040 bytes .../scripting/l4d_tank_control_eq.sp | 57 ++++++++++++------ cfg/cfgogl/acemodrv/shared_cvars.cfg | 1 + cfg/cfgogl/apex/shared_cvars.cfg | 1 + cfg/cfgogl/eq/shared_cvars.cfg | 1 + cfg/cfgogl/neomod/shared_cvars.cfg | 1 + cfg/cfgogl/nextmod/shared_cvars.cfg | 1 + cfg/cfgogl/pmelite/confogl.cfg | 1 + cfg/cfgogl/zonehunters/shared_cvars.cfg | 1 + cfg/cfgogl/zonemod/shared_cvars.cfg | 1 + cfg/cfgogl/zoneretro/shared_cvars.cfg | 1 + 11 files changed, 49 insertions(+), 17 deletions(-) diff --git a/addons/sourcemod/plugins/optional/l4d_tank_control_eq.smx b/addons/sourcemod/plugins/optional/l4d_tank_control_eq.smx index aa5eaf04c02a29ea83872030d2d0f841a021eb8f..7ef1b7de85ba21473ba85192ad7bcc16c4b98a0f 100644 GIT binary patch literal 18040 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

|EJJzn)=evJdSd%v<@iIMA*J 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 literal 17711 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 #include -#define TEAM_SPECTATOR 1 -#define TEAM_INFECTED 3 -#define ZOMBIECLASS_TANK 8 -#define IS_SPECTATOR(%1) (GetClientTeam(%1) == TEAM_SPECTATOR) -#define IS_INFECTED(%1) (GetClientTeam(%1) == TEAM_INFECTED) +#define IS_SPECTATOR(%1) (GetClientTeam(%1) == L4D_TEAM_SPECTATOR) +#define IS_INFECTED(%1) (GetClientTeam(%1) == L4D_TEAM_INFECTED) #define IS_VALID_INFECTED(%1) (IsClientInGame(%1) && IS_INFECTED(%1)) #define IS_VALID_SPECTATOR(%1) (IsClientInGame(%1) && IS_SPECTATOR(%1)) ArrayList h_whosHadTank; ArrayList h_tankQueue; -ConVar +ConVar hTankPrint, - hTankWindow, - hTankDebug; + hTankWindow, + hTankDebug, + hCircularTankAssignment; GlobalForward hForwardOnTryOfferingTankBot, hForwardOnTankSelection; -char +char queuedTankSteamId[64], tankInitiallyChosen[64]; @@ -54,7 +52,7 @@ public Plugin myinfo = name = "L4D2 Tank Control", author = "arti, (Contributions by: Sheo, Sir, Altair-Sossai)", description = "Distributes the role of the tank evenly throughout the team, allows for overrides. (Includes forwards)", - version = "0.0.29", + version = "0.0.30", url = "https://github.com/SirPlease/L4D2-Competitive-Rework" } @@ -87,6 +85,7 @@ public void OnPluginStart() hTankPrint = CreateConVar("tankcontrol_print_all", "0", "Who gets to see who will become the tank? (0 = Infected, 1 = Everyone)"); hTankWindow = CreateConVar("tankcontrol_force_window", "0.0", "Give player that was initially going to be Tank (or was Tank and dced) back the Tank this long after Tank was given to somebody else (0 = Off)"); hTankDebug = CreateConVar("tankcontrol_debug", "0", "Whether or not to debug to console"); + hCircularTankAssignment = CreateConVar("tankcontrol_circular_tank_assignment", "0", "Assign the Tank in a circular rotation so players keep the same order across cycles and never become Tank twice in a row (0 = Off, 1 = On)"); } @@ -275,7 +274,7 @@ void PlayerTeam_Event(Event hEvent, const char[] name, bool dontBroadcast) if (client < 1 || client > MaxClients) return; - if (oldTeam == TEAM_INFECTED) + if (oldTeam == L4D_TEAM_INFECTED) { /* * Triggers for disconnects as well as forced-swaps and whatnot. @@ -284,7 +283,7 @@ void PlayerTeam_Event(Event hEvent, const char[] name, bool dontBroadcast) if (!IsFakeClient(client)) { int zombieClass = GetEntProp(client, Prop_Send, "m_zombieClass"); - if (zombieClass == ZOMBIECLASS_TANK) + if (zombieClass == view_as(L4D2ZombieClass_Tank)) { dcedTankFrustration = GetTankFrustration(client); fTankGrace = CTimer_GetRemainingTime(GetFrustrationTimer(client)); @@ -308,7 +307,7 @@ void PlayerTeam_Event(Event hEvent, const char[] name, bool dontBroadcast) } } - if (team == TEAM_INFECTED && !IsFakeClient(client) && !StrEqual(tankInitiallyChosen, "")) + if (team == L4D_TEAM_INFECTED && !IsFakeClient(client) && !StrEqual(tankInitiallyChosen, "")) { GetClientAuthId(client, AuthId_Steam2, tmpSteamId, sizeof(tmpSteamId)); if (StrEqual(tankInitiallyChosen, tmpSteamId)) @@ -391,7 +390,7 @@ void PlayerDeath_Event(Event hEvent, const char[] eName, bool dontBroadcast) if (victim && IS_VALID_INFECTED(victim) && gotTankAt > 0.0) { int zombieClass = GetEntProp(victim, Prop_Send, "m_zombieClass"); - if (zombieClass == ZOMBIECLASS_TANK) + if (zombieClass == view_as(L4D2ZombieClass_Tank)) { if (hTankDebug.BoolValue) PrintToConsoleAll("[TC] Tank died (player_death), choosing a new tank"); @@ -521,6 +520,12 @@ void chooseTank(any data) nextTankIndex = PeekNextTankIndexInTheQueue(); } + if (nextTankIndex == -1 && hCircularTankAssignment.BoolValue) + { + RequeuePlayersWhoHadTank(); + nextTankIndex = PeekNextTankIndexInTheQueue(); + } + if (nextTankIndex == -1) { RemoveAllInfectedFrom(h_tankQueue); @@ -593,7 +598,7 @@ int getTankPlayer() int zombieClass = GetEntProp(i, Prop_Send, "m_zombieClass"); - if (zombieClass == ZOMBIECLASS_TANK) + if (zombieClass == view_as(L4D2ZombieClass_Tank)) return i; } @@ -667,6 +672,24 @@ int PeekNextTankIndexInTheQueue() return -1; } +void RequeuePlayersWhoHadTank() +{ + char steamId[64]; + + for (int i = 0; i < h_whosHadTank.Length; i++) + { + h_whosHadTank.GetString(i, steamId, sizeof(steamId)); + + int client = getInfectedPlayerBySteamId(steamId); + if (client == -1 || h_tankQueue.FindString(steamId) != -1) + continue; + + h_tankQueue.PushString(steamId); + h_whosHadTank.Erase(i); + i--; + } +} + void EnqueueNewInfectedPlayers() { char steamId[64]; @@ -676,7 +699,7 @@ void EnqueueNewInfectedPlayers() for (int client = 1; client <= MaxClients; client++) { - if (!IsClientInGame(client) || IsFakeClient(client) || GetClientTeam(client) != TEAM_INFECTED) + if (!IsClientInGame(client) || IsFakeClient(client) || GetClientTeam(client) != L4D_TEAM_INFECTED) continue; GetClientAuthId(client, AuthId_Steam2, steamId, sizeof(steamId)); @@ -699,7 +722,7 @@ void RemoveAllInfectedFrom(ArrayList arrayList) for (int client = 1; client <= MaxClients; client++) { - if (!IsClientInGame(client) || IsFakeClient(client) || GetClientTeam(client) != TEAM_INFECTED) + if (!IsClientInGame(client) || IsFakeClient(client) || GetClientTeam(client) != L4D_TEAM_INFECTED) continue; GetClientAuthId(client, AuthId_Steam2, steamId, sizeof(steamId)); diff --git a/cfg/cfgogl/acemodrv/shared_cvars.cfg b/cfg/cfgogl/acemodrv/shared_cvars.cfg index f70d468d45..1a87fdabed 100644 --- a/cfg/cfgogl/acemodrv/shared_cvars.cfg +++ b/cfg/cfgogl/acemodrv/shared_cvars.cfg @@ -135,6 +135,7 @@ confogl_addcvar z_witch_personal_space 500 confogl_addcvar z_frustration_spawn_delay 25 confogl_addcvar z_frustration_los_delay 2 confogl_addcvar tankcontrol_print_all 1 +confogl_addcvar tankcontrol_circular_tank_assignment 0 confogl_addcvar tank_ground_pound_duration 0.1 // Stripper Path diff --git a/cfg/cfgogl/apex/shared_cvars.cfg b/cfg/cfgogl/apex/shared_cvars.cfg index a0dd809eed..d67f2af661 100644 --- a/cfg/cfgogl/apex/shared_cvars.cfg +++ b/cfg/cfgogl/apex/shared_cvars.cfg @@ -132,6 +132,7 @@ confogl_addcvar tank_visibility_tolerance_suicide 999999999 confogl_addcvar director_tank_lottery_selection_time 3 confogl_addcvar z_frustration_spawn_delay 25 confogl_addcvar tankcontrol_print_all 0 +confogl_addcvar tankcontrol_circular_tank_assignment 0 confogl_addcvar tank_ground_pound_duration 0.1 // Stripper Path diff --git a/cfg/cfgogl/eq/shared_cvars.cfg b/cfg/cfgogl/eq/shared_cvars.cfg index 347a7f2c5f..c17b636d74 100644 --- a/cfg/cfgogl/eq/shared_cvars.cfg +++ b/cfg/cfgogl/eq/shared_cvars.cfg @@ -137,6 +137,7 @@ confogl_addcvar z_witch_damage_per_kill_hit 100 confogl_addcvar z_witch_personal_space 500 confogl_addcvar z_frustration_spawn_delay 25 confogl_addcvar tankcontrol_print_all 0 +confogl_addcvar tankcontrol_circular_tank_assignment 0 confogl_addcvar tank_ground_pound_duration 0.1 // Stripper Path diff --git a/cfg/cfgogl/neomod/shared_cvars.cfg b/cfg/cfgogl/neomod/shared_cvars.cfg index c9b4dff27c..ff533c71b3 100644 --- a/cfg/cfgogl/neomod/shared_cvars.cfg +++ b/cfg/cfgogl/neomod/shared_cvars.cfg @@ -132,6 +132,7 @@ confogl_addcvar director_tank_lottery_selection_time 3 confogl_addcvar z_frustration_spawn_delay 25 confogl_addcvar z_frustration_los_delay 1.2 confogl_addcvar tankcontrol_print_all 1 +confogl_addcvar tankcontrol_circular_tank_assignment 0 confogl_addcvar tank_ground_pound_duration 0.1 // Stripper Path diff --git a/cfg/cfgogl/nextmod/shared_cvars.cfg b/cfg/cfgogl/nextmod/shared_cvars.cfg index 0fd7398411..d5ccb1f577 100644 --- a/cfg/cfgogl/nextmod/shared_cvars.cfg +++ b/cfg/cfgogl/nextmod/shared_cvars.cfg @@ -137,6 +137,7 @@ confogl_addcvar director_tank_lottery_selection_time 3 confogl_addcvar z_frustration_spawn_delay 25 confogl_addcvar z_frustration_los_delay 1.2 confogl_addcvar tankcontrol_print_all 1 +confogl_addcvar tankcontrol_circular_tank_assignment 0 confogl_addcvar tank_ground_pound_duration 0.1 // Stripper Path diff --git a/cfg/cfgogl/pmelite/confogl.cfg b/cfg/cfgogl/pmelite/confogl.cfg index 43c7e901b5..b93413abd8 100644 --- a/cfg/cfgogl/pmelite/confogl.cfg +++ b/cfg/cfgogl/pmelite/confogl.cfg @@ -169,6 +169,7 @@ confogl_addcvar z_frustration_spawn_delay 20 confogl_addcvar z_frustration_lifetime 18 confogl_addcvar z_frustration_los_delay 1 confogl_addcvar tankcontrol_print_all 0 +confogl_addcvar tankcontrol_circular_tank_assignment 0 confogl_addcvar tank_ground_pound_duration 0.1 confogl_addcvar crc_global 1 diff --git a/cfg/cfgogl/zonehunters/shared_cvars.cfg b/cfg/cfgogl/zonehunters/shared_cvars.cfg index c99c15ff67..e158eac039 100644 --- a/cfg/cfgogl/zonehunters/shared_cvars.cfg +++ b/cfg/cfgogl/zonehunters/shared_cvars.cfg @@ -113,6 +113,7 @@ confogl_addcvar director_tank_lottery_selection_time 3 confogl_addcvar z_frustration_spawn_delay 20 confogl_addcvar z_frustration_los_delay 1.2 confogl_addcvar tankcontrol_print_all 1 +confogl_addcvar tankcontrol_circular_tank_assignment 0 confogl_addcvar tank_ground_pound_duration 0.1 // Stripper Path diff --git a/cfg/cfgogl/zonemod/shared_cvars.cfg b/cfg/cfgogl/zonemod/shared_cvars.cfg index b85e1655fe..cb58e856aa 100644 --- a/cfg/cfgogl/zonemod/shared_cvars.cfg +++ b/cfg/cfgogl/zonemod/shared_cvars.cfg @@ -133,6 +133,7 @@ confogl_addcvar director_tank_lottery_selection_time 3 confogl_addcvar z_frustration_spawn_delay 20 confogl_addcvar z_frustration_los_delay 1.2 confogl_addcvar tankcontrol_print_all 1 +confogl_addcvar tankcontrol_circular_tank_assignment 0 confogl_addcvar tank_ground_pound_duration 0.1 // Stripper Path diff --git a/cfg/cfgogl/zoneretro/shared_cvars.cfg b/cfg/cfgogl/zoneretro/shared_cvars.cfg index 15eed964d3..526dfabe08 100644 --- a/cfg/cfgogl/zoneretro/shared_cvars.cfg +++ b/cfg/cfgogl/zoneretro/shared_cvars.cfg @@ -124,6 +124,7 @@ confogl_addcvar director_tank_lottery_selection_time 3 confogl_addcvar z_frustration_spawn_delay 20 confogl_addcvar z_frustration_los_delay 1.2 confogl_addcvar tankcontrol_print_all 1 +confogl_addcvar tankcontrol_circular_tank_assignment 0 confogl_addcvar tank_ground_pound_duration 0.1 // Stripper Path From 02281000e6fc252168ed9f2e5c613346e4180845 Mon Sep 17 00:00:00 2001 From: SirPlease <2643403+SirPlease@users.noreply.github.com> Date: Thu, 12 Nov 2026 11:49:05 +0100 Subject: [PATCH 2/2] Drop small refactor and matchmode cvars, bump to 0.0.31 --- .../plugins/optional/l4d_tank_control_eq.smx | Bin 17714 -> 18070 bytes .../scripting/l4d_tank_control_eq.sp | 29 ++++++++++-------- cfg/cfgogl/acemodrv/shared_cvars.cfg | 1 - cfg/cfgogl/apex/shared_cvars.cfg | 1 - cfg/cfgogl/eq/shared_cvars.cfg | 1 - cfg/cfgogl/neomod/shared_cvars.cfg | 1 - cfg/cfgogl/nextmod/shared_cvars.cfg | 1 - cfg/cfgogl/pmelite/confogl.cfg | 1 - cfg/cfgogl/zonehunters/shared_cvars.cfg | 1 - cfg/cfgogl/zonemod/shared_cvars.cfg | 1 - cfg/cfgogl/zoneretro/shared_cvars.cfg | 1 - 11 files changed, 16 insertions(+), 22 deletions(-) diff --git a/addons/sourcemod/plugins/optional/l4d_tank_control_eq.smx b/addons/sourcemod/plugins/optional/l4d_tank_control_eq.smx index 3977c235b6d70213f7260b8f7f6ca6171e87e59e..93aceb877748ffd3f096995769299c2d8ca20ef0 100644 GIT binary patch literal 18070 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 literal 17714 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 #include -#define IS_SPECTATOR(%1) (GetClientTeam(%1) == L4D_TEAM_SPECTATOR) -#define IS_INFECTED(%1) (GetClientTeam(%1) == L4D_TEAM_INFECTED) +#define TEAM_SPECTATOR 1 +#define TEAM_INFECTED 3 +#define ZOMBIECLASS_TANK 8 +#define IS_SPECTATOR(%1) (GetClientTeam(%1) == TEAM_SPECTATOR) +#define IS_INFECTED(%1) (GetClientTeam(%1) == TEAM_INFECTED) #define IS_VALID_INFECTED(%1) (IsClientInGame(%1) && IS_INFECTED(%1)) #define IS_VALID_SPECTATOR(%1) (IsClientInGame(%1) && IS_SPECTATOR(%1)) ArrayList h_whosHadTank; ArrayList h_tankQueue; -ConVar +ConVar hTankPrint, - hTankWindow, + hTankWindow, hTankDebug, hCircularTankAssignment; @@ -24,7 +27,7 @@ GlobalForward hForwardOnTryOfferingTankBot, hForwardOnTankSelection; -char +char queuedTankSteamId[64], tankInitiallyChosen[64]; @@ -52,7 +55,7 @@ public Plugin myinfo = name = "L4D2 Tank Control", author = "arti, (Contributions by: Sheo, Sir, Altair-Sossai)", description = "Distributes the role of the tank evenly throughout the team, allows for overrides. (Includes forwards)", - version = "0.0.30", + version = "0.0.31", url = "https://github.com/SirPlease/L4D2-Competitive-Rework" } @@ -274,7 +277,7 @@ void PlayerTeam_Event(Event hEvent, const char[] name, bool dontBroadcast) if (client < 1 || client > MaxClients) return; - if (oldTeam == L4D_TEAM_INFECTED) + if (oldTeam == TEAM_INFECTED) { /* * Triggers for disconnects as well as forced-swaps and whatnot. @@ -283,7 +286,7 @@ void PlayerTeam_Event(Event hEvent, const char[] name, bool dontBroadcast) if (!IsFakeClient(client)) { int zombieClass = GetEntProp(client, Prop_Send, "m_zombieClass"); - if (zombieClass == view_as(L4D2ZombieClass_Tank)) + if (zombieClass == ZOMBIECLASS_TANK) { dcedTankFrustration = GetTankFrustration(client); fTankGrace = CTimer_GetRemainingTime(GetFrustrationTimer(client)); @@ -307,7 +310,7 @@ void PlayerTeam_Event(Event hEvent, const char[] name, bool dontBroadcast) } } - if (team == L4D_TEAM_INFECTED && !IsFakeClient(client) && !StrEqual(tankInitiallyChosen, "")) + if (team == TEAM_INFECTED && !IsFakeClient(client) && !StrEqual(tankInitiallyChosen, "")) { GetClientAuthId(client, AuthId_Steam2, tmpSteamId, sizeof(tmpSteamId)); if (StrEqual(tankInitiallyChosen, tmpSteamId)) @@ -395,7 +398,7 @@ void PlayerDeath_Event(Event hEvent, const char[] eName, bool dontBroadcast) if (victim && IS_VALID_INFECTED(victim) && gotTankAt > 0.0) { int zombieClass = GetEntProp(victim, Prop_Send, "m_zombieClass"); - if (zombieClass == view_as(L4D2ZombieClass_Tank)) + if (zombieClass == ZOMBIECLASS_TANK) { if (hTankDebug.BoolValue) PrintToConsoleAll("[TC] Tank died (player_death), choosing a new tank"); @@ -603,7 +606,7 @@ int getTankPlayer() int zombieClass = GetEntProp(i, Prop_Send, "m_zombieClass"); - if (zombieClass == view_as(L4D2ZombieClass_Tank)) + if (zombieClass == ZOMBIECLASS_TANK) return i; } @@ -704,7 +707,7 @@ void EnqueueNewInfectedPlayers() for (int client = 1; client <= MaxClients; client++) { - if (!IsClientInGame(client) || IsFakeClient(client) || GetClientTeam(client) != L4D_TEAM_INFECTED) + if (!IsClientInGame(client) || IsFakeClient(client) || GetClientTeam(client) != TEAM_INFECTED) continue; GetClientAuthId(client, AuthId_Steam2, steamId, sizeof(steamId)); @@ -727,7 +730,7 @@ void RemoveAllInfectedFrom(ArrayList arrayList) for (int client = 1; client <= MaxClients; client++) { - if (!IsClientInGame(client) || IsFakeClient(client) || GetClientTeam(client) != L4D_TEAM_INFECTED) + if (!IsClientInGame(client) || IsFakeClient(client) || GetClientTeam(client) != TEAM_INFECTED) continue; GetClientAuthId(client, AuthId_Steam2, steamId, sizeof(steamId)); diff --git a/cfg/cfgogl/acemodrv/shared_cvars.cfg b/cfg/cfgogl/acemodrv/shared_cvars.cfg index 1a87fdabed..f70d468d45 100644 --- a/cfg/cfgogl/acemodrv/shared_cvars.cfg +++ b/cfg/cfgogl/acemodrv/shared_cvars.cfg @@ -135,7 +135,6 @@ confogl_addcvar z_witch_personal_space 500 confogl_addcvar z_frustration_spawn_delay 25 confogl_addcvar z_frustration_los_delay 2 confogl_addcvar tankcontrol_print_all 1 -confogl_addcvar tankcontrol_circular_tank_assignment 0 confogl_addcvar tank_ground_pound_duration 0.1 // Stripper Path diff --git a/cfg/cfgogl/apex/shared_cvars.cfg b/cfg/cfgogl/apex/shared_cvars.cfg index d67f2af661..a0dd809eed 100644 --- a/cfg/cfgogl/apex/shared_cvars.cfg +++ b/cfg/cfgogl/apex/shared_cvars.cfg @@ -132,7 +132,6 @@ confogl_addcvar tank_visibility_tolerance_suicide 999999999 confogl_addcvar director_tank_lottery_selection_time 3 confogl_addcvar z_frustration_spawn_delay 25 confogl_addcvar tankcontrol_print_all 0 -confogl_addcvar tankcontrol_circular_tank_assignment 0 confogl_addcvar tank_ground_pound_duration 0.1 // Stripper Path diff --git a/cfg/cfgogl/eq/shared_cvars.cfg b/cfg/cfgogl/eq/shared_cvars.cfg index c17b636d74..347a7f2c5f 100644 --- a/cfg/cfgogl/eq/shared_cvars.cfg +++ b/cfg/cfgogl/eq/shared_cvars.cfg @@ -137,7 +137,6 @@ confogl_addcvar z_witch_damage_per_kill_hit 100 confogl_addcvar z_witch_personal_space 500 confogl_addcvar z_frustration_spawn_delay 25 confogl_addcvar tankcontrol_print_all 0 -confogl_addcvar tankcontrol_circular_tank_assignment 0 confogl_addcvar tank_ground_pound_duration 0.1 // Stripper Path diff --git a/cfg/cfgogl/neomod/shared_cvars.cfg b/cfg/cfgogl/neomod/shared_cvars.cfg index ff533c71b3..c9b4dff27c 100644 --- a/cfg/cfgogl/neomod/shared_cvars.cfg +++ b/cfg/cfgogl/neomod/shared_cvars.cfg @@ -132,7 +132,6 @@ confogl_addcvar director_tank_lottery_selection_time 3 confogl_addcvar z_frustration_spawn_delay 25 confogl_addcvar z_frustration_los_delay 1.2 confogl_addcvar tankcontrol_print_all 1 -confogl_addcvar tankcontrol_circular_tank_assignment 0 confogl_addcvar tank_ground_pound_duration 0.1 // Stripper Path diff --git a/cfg/cfgogl/nextmod/shared_cvars.cfg b/cfg/cfgogl/nextmod/shared_cvars.cfg index d5ccb1f577..0fd7398411 100644 --- a/cfg/cfgogl/nextmod/shared_cvars.cfg +++ b/cfg/cfgogl/nextmod/shared_cvars.cfg @@ -137,7 +137,6 @@ confogl_addcvar director_tank_lottery_selection_time 3 confogl_addcvar z_frustration_spawn_delay 25 confogl_addcvar z_frustration_los_delay 1.2 confogl_addcvar tankcontrol_print_all 1 -confogl_addcvar tankcontrol_circular_tank_assignment 0 confogl_addcvar tank_ground_pound_duration 0.1 // Stripper Path diff --git a/cfg/cfgogl/pmelite/confogl.cfg b/cfg/cfgogl/pmelite/confogl.cfg index b93413abd8..43c7e901b5 100644 --- a/cfg/cfgogl/pmelite/confogl.cfg +++ b/cfg/cfgogl/pmelite/confogl.cfg @@ -169,7 +169,6 @@ confogl_addcvar z_frustration_spawn_delay 20 confogl_addcvar z_frustration_lifetime 18 confogl_addcvar z_frustration_los_delay 1 confogl_addcvar tankcontrol_print_all 0 -confogl_addcvar tankcontrol_circular_tank_assignment 0 confogl_addcvar tank_ground_pound_duration 0.1 confogl_addcvar crc_global 1 diff --git a/cfg/cfgogl/zonehunters/shared_cvars.cfg b/cfg/cfgogl/zonehunters/shared_cvars.cfg index e158eac039..c99c15ff67 100644 --- a/cfg/cfgogl/zonehunters/shared_cvars.cfg +++ b/cfg/cfgogl/zonehunters/shared_cvars.cfg @@ -113,7 +113,6 @@ confogl_addcvar director_tank_lottery_selection_time 3 confogl_addcvar z_frustration_spawn_delay 20 confogl_addcvar z_frustration_los_delay 1.2 confogl_addcvar tankcontrol_print_all 1 -confogl_addcvar tankcontrol_circular_tank_assignment 0 confogl_addcvar tank_ground_pound_duration 0.1 // Stripper Path diff --git a/cfg/cfgogl/zonemod/shared_cvars.cfg b/cfg/cfgogl/zonemod/shared_cvars.cfg index 04fdd50caa..d179d06a17 100644 --- a/cfg/cfgogl/zonemod/shared_cvars.cfg +++ b/cfg/cfgogl/zonemod/shared_cvars.cfg @@ -136,7 +136,6 @@ confogl_addcvar director_tank_lottery_selection_time 3 confogl_addcvar z_frustration_spawn_delay 20 confogl_addcvar z_frustration_los_delay 1.2 confogl_addcvar tankcontrol_print_all 1 -confogl_addcvar tankcontrol_circular_tank_assignment 0 confogl_addcvar tank_ground_pound_duration 0.1 confogl_addcvar z_finale_spawn_tank_safety_range 1200 diff --git a/cfg/cfgogl/zoneretro/shared_cvars.cfg b/cfg/cfgogl/zoneretro/shared_cvars.cfg index 526dfabe08..15eed964d3 100644 --- a/cfg/cfgogl/zoneretro/shared_cvars.cfg +++ b/cfg/cfgogl/zoneretro/shared_cvars.cfg @@ -124,7 +124,6 @@ confogl_addcvar director_tank_lottery_selection_time 3 confogl_addcvar z_frustration_spawn_delay 20 confogl_addcvar z_frustration_los_delay 1.2 confogl_addcvar tankcontrol_print_all 1 -confogl_addcvar tankcontrol_circular_tank_assignment 0 confogl_addcvar tank_ground_pound_duration 0.1 // Stripper Path