From 0ed53a1b8cf602a7ce2ecd3aeab1d68db60e9f29 Mon Sep 17 00:00:00 2001 From: Resxt <55228336+Resxt@users.noreply.github.com> Date: Fri, 21 Oct 2022 22:53:44 +0200 Subject: [PATCH] mapvote 1.0.3 Changed modes mode name and cfg name separator from semi-colon (;) to comma (,) since the semi-colon seems to not be parsed properly when set through a cfg file Added more debugging prints: - Most voted map votes and index - Most voted map votes and index - Final map name, mode name and mode cfg just before rotation, all separated in multiple prints to detect any empty/wrong string Removed old comments --- mapvote/README.md | 42 +++++++++++++++--------------- mapvote/mapvote.gsc | Bin 15817 -> 16161 bytes mapvote/source/mapvote-source.gsc | 25 +++++++++++++----- 3 files changed, 40 insertions(+), 27 deletions(-) diff --git a/mapvote/README.md b/mapvote/README.md index 4717c9a..0eefd3d 100644 --- a/mapvote/README.md +++ b/mapvote/README.md @@ -50,7 +50,7 @@ Here are the dvars you can configure: | mapvote_enable | Toggle whether the mapvote is activated or not. 0 is off and 1 is on | 0 | 0 or 1 | | mapvote_debug | Toggle whether the mapvote runs in debug mode or not. This will display the mapvote menu a few seconds after starting the game. 0 is off and 1 is on | 0 | 0 or 1 | | mapvote_maps | A list of the maps that are available for rotation. Each map name needs to start with a capitalized letter and each map is separated with : | Every BO2 maps including DLC maps | Any map name, starting with a capitalized letter and separated with a colon (:) | -| mapvote_modes | A list of the modes that are available for rotation. The first parameter is how the mode will be displayed, it can be set to anything you like, the second parameter is the name of the cfg file to load found in the gamesettings folder | "Team Deathmatch;tdm:Domination;dom:Hardpoint;koth" | Any name you want followed by a semi-colon (;) with the cfg name and separated with a colon (:) | +| mapvote_modes | A list of the modes that are available for rotation. The first parameter is how the mode will be displayed, it can be set to anything you like, the second parameter is the name of the cfg file to load found in the gamesettings folder | "Team Deathmatch,tdm:Domination,dom:Hardpoint,koth" | Any name you want followed by a comma (,) with the cfg name and separated with a colon (:) | | mapvote_colors_selected | The color of the text when hovered or selected. This is also the color of the votes count | "blue" | red, green, yellow, blue, cyan, purple, white, grey, gray, black | | mapvote_colors_unselected | The color of the text when not hovered and not selected | "white" | red, green, yellow, blue, cyan, purple, white, grey, gray, black | | mapvote_colors_timer | The color of the timer as long as it has more than 5 seconds remaining | "blue" | red, green, yellow, blue, cyan, purple, white, grey, gray, black | @@ -69,20 +69,20 @@ Below is an example CFG showing how each dvars can be configured. The values you see are the default values that will be used if you don't set a dvar. ```c -set "mapvote_enable" 1 -set "mapvote_maps" "Aftermath:Cargo:Carrier:Drone:Express:Hijacked:Meltdown:Overflow:Plaza:Raid:Slums:Standoff:Turbine:Yemen:Nuketown:Downhill:Mirage:Hydro:Grind:Encore:Magma:Vertigo:Studio:Uplink:Detour:Cove:Rush:Dig:Frost:Pod:Takeoff" -set "mapvote_modes" "Team Deathmatch;tdm:Domination;dom:Hardpoint;koth" -set "mapvote_colors_selected" "blue" -set "mapvote_colors_unselected" "white" -set "mapvote_colors_timer" "blue" -set "mapvote_colors_timer_low" "red" -set "mapvote_colors_help_text" "white" -set "mapvote_colors_help_accent" "blue" -set "mapvote_colors_help_accent_mode" "standard" -set "mapvote_vote_time" 30 -set "mapvote_blur_level" 2.5 -set "mapvote_blur_fade_in_time" 2 -set "mapvote_horizontal_spacing" 75 +set mapvote_enable 1 +set mapvote_maps "Aftermath:Cargo:Carrier:Drone:Express:Hijacked:Meltdown:Overflow:Plaza:Raid:Slums:Standoff:Turbine:Yemen:Nuketown:Downhill:Mirage:Hydro:Grind:Encore:Magma:Vertigo:Studio:Uplink:Detour:Cove:Rush:Dig:Frost:Pod:Takeoff" +set mapvote_modes "Team Deathmatch,tdm:Domination,dom:Hardpoint,koth" +set mapvote_colors_selected "blue" +set mapvote_colors_unselected "white" +set mapvote_colors_timer "blue" +set mapvote_colors_timer_low "red" +set mapvote_colors_help_text "white" +set mapvote_colors_help_accent "blue" +set mapvote_colors_help_accent_mode "standard" +set mapvote_vote_time 30 +set mapvote_blur_level 2.5 +set mapvote_blur_fade_in_time 2 +set mapvote_horizontal_spacing 75 ``` Here are some pre-set values if you want to quickly copy/paste something @@ -91,12 +91,12 @@ Here are some pre-set values if you want to quickly copy/paste something |---|---| | All base game maps | "Aftermath:Cargo:Carrier:Drone:Express:Hijacked:Meltdown:Overflow:Plaza:Raid:Slums:Standoff:Turbine:Yemen" | | All DLC maps | "Nuketown:Downhill:Mirage:Hydro:Grind:Encore:Magma:Vertigo:Studio:Uplink:Detour:Cove:Rush:Dig:Frost:Pod:Takeoff" | -| Classic modes | "Team Deathmatch;tdm:Domination;dom:Hardpoint;koth" | -| Objective modes | "Demolition;dem:Headquaters;hq:Capture the Flag;ctf" | -| Alternative modes | "Kill Confirmed;conf:One Flag CTF;oneflag" | -| Party modes | "Gun Game;gun:One in the Chamber;oic:Sharpshooter;shrp:Sticks & Stones;sas" | -| FFA 24/7 | "Free for All;dm" | -| SND 24/7 | "Search & Destroy;sd" | +| Classic modes | "Team Deathmatch,tdm:Domination,dom:Hardpoint,koth" | +| Objective modes | "Demolition,dem:Headquaters,hq:Capture the Flag,ctf" | +| Alternative modes | "Kill Confirmed,conf:One Flag CTF,oneflag" | +| Party modes | "Gun Game,gun:One in the Chamber,oic:Sharpshooter,shrp:Sticks & Stones,sas" | +| FFA 24/7 | "Free for All,dm" | +| SND 24/7 | "Search & Destroy,sd" | ### Notes diff --git a/mapvote/mapvote.gsc b/mapvote/mapvote.gsc index a2c95a60cc8a4cff0ab5bc70a86cd34789e520b7..a3d3b23340c97d4b03836a05b859d67deda422f2 100644 GIT binary patch delta 5890 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 diff --git a/mapvote/source/mapvote-source.gsc b/mapvote/source/mapvote-source.gsc index 5ca5339..d661ebf 100644 --- a/mapvote/source/mapvote-source.gsc +++ b/mapvote/source/mapvote-source.gsc @@ -10,7 +10,6 @@ */ #include maps\mp\gametypes\_hud_util; -#include maps\mp\gametypes_zm\_hud_util; #include common_scripts\utility; #include maps\mp\_utility; @@ -54,7 +53,7 @@ InitDvars() SetDvarIfNotInitialized("mapvote_debug", false); SetDvarIfNotInitialized("mapvote_maps", "Aftermath:Cargo:Carrier:Drone:Express:Hijacked:Meltdown:Overflow:Plaza:Raid:Slums:Standoff:Turbine:Yemen:Nuketown:Downhill:Mirage:Hydro:Grind:Encore:Magma:Vertigo:Studio:Uplink:Detour:Cove:Rush:Dig:Frost:Pod:Takeoff"); - SetDvarIfNotInitialized("mapvote_modes", "Team Deathmatch;tdm:Domination;dom:Hardpoint;koth"); + SetDvarIfNotInitialized("mapvote_modes", "Team Deathmatch,tdm:Domination,dom:Hardpoint,koth"); SetDvarIfNotInitialized("mapvote_colors_selected", "blue"); SetDvarIfNotInitialized("mapvote_colors_unselected", "white"); SetDvarIfNotInitialized("mapvote_colors_timer", "blue"); @@ -209,11 +208,8 @@ ListenForVoteInputs() CreateVoteMenu() { - //level endon("game_ended"); - spacing = 20; hudLastPosY = -(((level.mapvote["maps"]["by_index"].size + level.mapvote["modes"]["by_index"].size + 1) * spacing) / 2); - //hudLastPosY = -100; for (mapIndex = 0; mapIndex < level.mapvote["maps"]["by_index"].size; mapIndex++) { @@ -373,6 +369,13 @@ ListenForEndVote() Print("[MAPVOTE] No vote for map. Chosen random map index: " + mostVotedMapIndex); } } + else + { + if (GetDvarInt("mapvote_debug")) + { + Print("[MAPVOTE] Most voted map has " + mostVotedMapVotes + " votes. Most voted map index: " + mostVotedMapIndex); + } + } if (mostVotedModeVotes == 0) { @@ -383,6 +386,13 @@ ListenForEndVote() Print("[MAPVOTE] No vote for mode. Chosen random mode index: " + mostVotedModeIndex); } } + else + { + if (GetDvarInt("mapvote_debug")) + { + Print("[MAPVOTE] Most voted mode has " + mostVotedModeVotes + " votes. Most voted mode index: " + mostVotedModeIndex); + } + } modeName = level.mapvote["modes"]["by_index"][mostVotedModeIndex]; modeCfg = level.mapvote["modes"]["by_name"][level.mapvote["modes"]["by_index"][mostVotedModeIndex]]; @@ -390,6 +400,9 @@ ListenForEndVote() if (GetDvarInt("mapvote_debug")) { + Print("[MAPVOTE] mapName: " + mapName); + Print("[MAPVOTE] modeName: " + modeName); + Print("[MAPVOTE] modeCfg: " + modeCfg); Print("[MAPVOTE] Rotating to " + mapName + " | " + modeName + " (" + modeCfg + ".cfg)"); } @@ -431,7 +444,7 @@ SetMapvoteData(type) foreach (mode in GetRandomUniqueElementsInArray(availableElements, limit)) { - splittedMode = StrTok(mode, ";"); + splittedMode = StrTok(mode, ","); finalElements = AddElementToArray(finalElements, splittedMode[0]); level.mapvote["modes"]["by_name"][splittedMode[0]] = splittedMode[1];