How do you make it so that a certain gamemode has maps under it? Like CS tab has only includes CS maps.
And where do you save it to?
How do you make it so that a certain gamemode has maps under it? Like CS tab has only includes CS maps.
And where do you save it to?
Inside a gamemode’s info.txt, you can put this:
( taken from melonracer )
"mappattern"
{
"1" "^mr_"
}
Which would grab all maps that contain mr_ in their name and put them in the category belonging to the gamemode name defined in the name field.
What about for base menus like Counter strike?
Defined in lua/menu/getmaps.lua:
[lua]
if ( g_MapList ) then return end
local MapPatterns = {}
MapPatterns[ “^de_” ] = “Counter-Strike”
MapPatterns[ “^cs_” ] = “Counter-Strike”
MapPatterns[ “^es_” ] = “Counter-Strike”
MapPatterns[ “^cp_” ] = “Team Fortress 2”
MapPatterns[ “^ctf_” ] = “Team Fortress 2”
MapPatterns[ “^tc_” ] = “Team Fortress 2”
MapPatterns[ “^pl_” ] = “Team Fortress 2”
MapPatterns[ “^dod_” ] = “Day Of Defeat”
MapPatterns[ “^d1_” ] = “Half-Life 2”
MapPatterns[ “^d2_” ] = “Half-Life 2”
MapPatterns[ “^d3_” ] = “Half-Life 2”
MapPatterns[ “credits” ] = “Half-Life 2”
MapPatterns[ “^ep1_” ] = “Half-Life 2: Episode 1”
MapPatterns[ “^ep2_” ] = “Half-Life 2: Episode 2”
MapPatterns[ “^ep3_” ] = “Half-Life 2: Episode 3”
MapPatterns[ “^escape_” ] = “Portal”
MapPatterns[ “^testchmb_” ] = “Portal”
MapPatterns[ “^gm_” ] = “Garry’s Mod”
MapPatterns[ “^c0a” ] = “Half-Life: Source”
MapPatterns[ “^c1a” ] = “Half-Life: Source”
MapPatterns[ “^c2a” ] = “Half-Life: Source”
MapPatterns[ “^c3a” ] = “Half-Life: Source”
MapPatterns[ “^c4a” ] = “Half-Life: Source”
MapPatterns[ “^c5a” ] = “Half-Life: Source”
MapPatterns[ “^t0a” ] = “Half-Life: Source”
MapPatterns[ “boot_camp” ] = “Half-Life: Source Deathmatch”
MapPatterns[ “bounce” ] = “Half-Life: Source Deathmatch”
MapPatterns[ “crossfire” ] = “Half-Life: Source Deathmatch”
MapPatterns[ “datacore” ] = “Half-Life: Source Deathmatch”
MapPatterns[ “frenzy” ] = “Half-Life: Source Deathmatch”
MapPatterns[ “rapidcore” ] = “Half-Life: Source Deathmatch”
MapPatterns[ “stalkyard” ] = “Half-Life: Source Deathmatch”
MapPatterns[ “snarkpit” ] = “Half-Life: Source Deathmatch”
MapPatterns[ “subtransit” ] = “Half-Life: Source Deathmatch”
MapPatterns[ “undertow” ] = “Half-Life: Source Deathmatch”
MapPatterns[ “lambda_bunker” ] = “Half-Life: Source Deathmatch”
MapPatterns[ “dm_” ] = “Half-Life 2 Deathmatch”
//
// Load patterns from the gamemodes
//
local GameModes = GetGamemodes()
for k, gm in pairs( GetGamemodes() ) do
local info = file.Read( "../gamemodes/"..gm.Name.."/info.txt" )
local info = KeyValuesToTable( info )
local Name = info.name or "Unnammed Gamemode"
local Patterns = info.mappattern or {}
for k, pattern in pairs( Patterns ) do
MapPatterns[ pattern ] = Name
end
end
local IgnoreMaps = { “background”, “^test_”, “^styleguide”, “^devtest” }
matNoIcon = Material( “maps/noicon” )
g_MapList = {}
g_MapListCategorised = {}
for k, v in pairs( file.Find( “…/maps/*.bsp” ) ) do
local Ignore = false
for _, ignore in pairs( IgnoreMaps ) do
if ( string.find( v, ignore ) ) then
Ignore = true
end
end
// Don't add useless maps
if ( !Ignore ) then
local Mat = nil
local Category = "Other"
local name = string.gsub( v, ".bsp", "" )
local lowername = string.lower( v )
Mat = "maps/"..name..".vmt"
for pattern, category in pairs( MapPatterns ) do
if ( string.find( lowername, pattern ) ) then
Category = category
end
end
g_MapList[ v ] = { Material = Mat, Name = name, Category = Category }
end
end
for k, v in pairs( g_MapList ) do
g_MapListCategorised[ v.Category ] = g_MapListCategorised[ v.Category ] or {}
g_MapListCategorised[ v.Category ][ v.Name ] = v
end
[/lua]
Garry hard-coded some of them.