X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fserver%2Fteamplay.qc;h=262b5e98bae1a6ca4fae3df2d29a0b93f3663cf1;hp=b9064c783b852a515586ade5e0826b3323380bf9;hb=162a91bc68d7b8e58c92cb0af873871129e386a9;hpb=d822e9e15e991a67e09e68f50a61cff487502328 diff --git a/qcsrc/server/teamplay.qc b/qcsrc/server/teamplay.qc index b9064c783b..262b5e98ba 100644 --- a/qcsrc/server/teamplay.qc +++ b/qcsrc/server/teamplay.qc @@ -101,6 +101,8 @@ void WriteGameCvars() cvar_set("g_race", ftos(g_race)); cvar_set("g_nexball", ftos(g_nexball)); cvar_set("g_cts", ftos(g_cts)); + cvar_set("g_freezetag", ftos(g_freezetag)); + cvar_set("g_keepaway", ftos(g_keepaway)); } void ReadGameCvars() @@ -113,6 +115,7 @@ void ReadGameCvars() prev = cvar("gamecfg"); for(i = 0; i < 2; ++i) { +//#NO AUTOCVARS START found += (g_dm = (!found && (prev != GAME_DEATHMATCH) && cvar("g_dm"))); found += (g_tdm = (!found && (prev != GAME_TEAM_DEATHMATCH) && cvar("g_tdm"))); found += (g_domination = (!found && (prev != GAME_DOMINATION) && cvar("g_domination"))); @@ -127,6 +130,9 @@ void ReadGameCvars() found += (g_race = (!found && (prev != GAME_RACE) && cvar("g_race"))); found += (g_nexball = (!found && (prev != GAME_NEXBALL) && cvar("g_nexball"))); found += (g_cts = (!found && (prev != GAME_CTS) && cvar("g_cts"))); + found += (g_freezetag = (!found && (prev != GAME_FREEZETAG) && cvar("g_freezetag"))); + found += (g_keepaway = (!found && (prev != GAME_KEEPAWAY) && cvar("g_keepaway"))); +//#NO AUTOCVARS END if(found) break; @@ -317,6 +323,16 @@ void InitGameplayMode() MUTATOR_ADD(gamemode_keyhunt); } + if(g_freezetag) + { + game = GAME_FREEZETAG; + gamemode_name = "Freeze Tag"; + ActivateTeamplay(); + fraglimit_override = cvar("g_freezetag_point_limit"); + leadlimit_override = cvar("g_freezetag_point_leadlimit"); + MUTATOR_ADD(gamemode_freezetag); + } + if(g_assault) { game = GAME_ASSAULT; @@ -373,6 +389,13 @@ void InitGameplayMode() have_team_spawns = -1; // request team spawns } + if(g_keepaway) + { + game = GAME_KEEPAWAY; + gamemode_name = "Keepaway"; + MUTATOR_ADD(gamemode_keepaway); + } + if(teams_matter) entcs_init(); @@ -410,7 +433,7 @@ void InitGameplayMode() race_timelimit = cvar("timelimit"); cvar_set("fraglimit", "0"); cvar_set("leadlimit", "0"); - cvar_set("timelimit", cvar_string("g_race_qualifying_timelimit")); + cvar_set("timelimit", ftos(cvar("g_race_qualifying_timelimit"))); } else g_race_qualifying = 0; @@ -816,6 +839,8 @@ float FindSmallestTeam(entity pl, float ignore_pl) error("Too few teams available for ctf\n"); else if(g_keyhunt) error("Too few teams available for key hunt\n"); + else if(g_freezetag) + error("Too few teams available for freeze tag\n"); else error("Too few teams available for team deathmatch\n"); }