From 781d3a214f6fe2a0f17327288440193ad5655641 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Tue, 21 Jul 2026 23:18:14 +0200 Subject: [PATCH] automatically switch gamemode on ready up when appropriate --- plugin/autoexec.smx | Bin 7907 -> 8606 bytes plugin/autoexec.sp | 83 +++++++++++++++++++++++++++++++++++++------- 2 files changed, 70 insertions(+), 13 deletions(-) diff --git a/plugin/autoexec.smx b/plugin/autoexec.smx index be2c161174c54d4c0aabd5afa01ae7b2fa4dc4c5..df92512ce143f816e5cbb90bc482a45bd1b133cd 100644 GIT binary patch delta 8457 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 diff --git a/plugin/autoexec.sp b/plugin/autoexec.sp index a75a578..693ced8 100644 --- a/plugin/autoexec.sp +++ b/plugin/autoexec.sp @@ -122,6 +122,11 @@ public Action:HandleExecAction(args) { SetConVarString(CvarMode, "4v4"); } + if (StrContains(cfg, "ultiduo") > 0) { + PrintToChatAll("Setting game mode to 2v2"); + SetConVarString(CvarMode, "2v2"); + } + return Plugin_Continue; } @@ -233,8 +238,8 @@ public Action clearInAutoExec(Handle timer) { } public void OnReadyUp(Event event, const String:name[], bool:dontBroadcast) { - bool redReady = GameRules_GetProp("m_bTeamReady", 1, .element=2) != 0; - bool blueReady = GameRules_GetProp("m_bTeamReady", 1, .element=3) != 0; + bool redReady = GameRules_GetProp("m_bTeamReady", 1, .element = 2) != 0; + bool blueReady = GameRules_GetProp("m_bTeamReady", 1, .element = 3) != 0; CheckWhitelist(); @@ -248,19 +253,35 @@ public void OnReadyUp(Event event, const String:name[], bool:dontBroadcast) { public void CheckPlayerCount(int team) { int playerCount = GetTeamClientCount(team); + int otherPlayerCount = GetTeamClientCount(OtherTeam(team)); + decl String:gameMode[8]; + GetConVarString(CvarMode, gameMode, sizeof(gameMode)); - decl String:gamemode[8]; - GetConVarString(CvarMode, gamemode, sizeof(gamemode)); + int expected = ExpectedPlayerCount(gameMode); + + if (playerCount != expected) { + decl String:expectedMode[8]; + decl String:expectedModeOther[8]; + + ExpectedGameMode(playerCount, expectedMode); + ExpectedGameMode(otherPlayerCount, expectedModeOther); + + bool gotExpectedMode = !(strncmp("unknown", expectedMode, sizeof(expectedMode)) == 0); + + if (gotExpectedMode && strncmp(expectedMode, expectedModeOther, strlen(expectedMode)) == 0) { + PrintToChatAll("Switching config to %s", expectedMode); + SetConVarString(CvarMode, expectedMode); + ExecMapCfg(); + return; + } + } + + if (expected != 0 && !warned[team]) { + if (playerCount != expected) { - if (!warned[team]) { - if (strcmp(gamemode, "9v9") == 0 && playerCount != 9) { warned[team] = true; - PrintToChatAll("Warning, config is set to 9v9 but you readied up with %d players", playerCount); + PrintToChatAll("Warning, config is set to %s but you readied up with %d players", gameMode, playerCount); GameRules_SetProp("m_bTeamReady", 0, _ , team, true); - } else if (strcmp(gamemode, "6v6") == 0 && playerCount != 6) { - warned[team] = true; - GameRules_SetProp("m_bTeamReady", 0, _ , team, true); - PrintToChatAll("Warning, config is set to 6v6 but you readied up with %d players", playerCount); } else { warned[team] = true; } @@ -287,14 +308,50 @@ public GetExpectedWhitelist(String:whitelist[128]) { if (strncmp("ugc", league, strlen(league)) == 0) { if (strncmp("9v9", gamemode, strlen(gamemode)) == 0) { whitelist = "cfg/item_whitelist_ugc_HL.txt"; - } else if (strncmp("6v6", gamemode, strlen(gamemode)) == 0) { { + } else if (strncmp("6v6", gamemode, strlen(gamemode)) == 0) { whitelist = "cfg/item_whitelist_ugc_6v6.txt"; } } else if (strncmp("etf2l", league, strlen(league)) == 0) { if (strncmp("9v9", gamemode, strlen(gamemode)) == 0) { whitelist = "cfg/etf2l_whitelist_9v9.txt"; - } else if (strncmp("6v6", gamemode, strlen(gamemode)) == 0) { { + } else if (strncmp("6v6", gamemode, strlen(gamemode)) == 0) { whitelist = "cfg/etf2l_whitelist_6v6.txt"; } } } + +public int OtherTeam(int team) { + if (team == 2) { + return 3; + } else { + return 2; + } +} + +public int ExpectedPlayerCount(String:gamemode[8]) { + if (strcmp(gamemode, "9v9") == 0) { + return 9; + } else if (strcmp(gamemode, "6v6") == 0) { + return 6; + } else if (strcmp(gamemode, "4v4") == 0) { + return 4; + } else if (strcmp(gamemode, "2v2") == 0) { + return 2; + } else { + return 0; + } +} + +public void ExpectedGameMode(int count, String:mode[8]) { + if (count == 9 || count == 8) { + mode = "9v9"; + } else if (count == 5 || count == 6) { + mode = "6v6"; + } else if (count == 3 || count == 4) { + mode = "4v4"; + } else if (count == 2) { + mode = "2v2"; + } else { + mode = "unknown"; + } +}