From 42a395e6868b98459f3f12fc2c1723c4a2326673 Mon Sep 17 00:00:00 2001 From: Daniel Simoes Date: Sun, 23 Jun 2002 15:22:53 +0000 Subject: [PATCH] Future 2.1 Matchmode Features - PART II --- reaction/game/g_cmds.c | 34 ++++++++-- reaction/game/g_local.h | 4 ++ reaction/game/g_main.c | 7 +- reaction/game/g_matchmode.c | 127 +++++++++++++++++++++--------------- 4 files changed, 112 insertions(+), 60 deletions(-) diff --git a/reaction/game/g_cmds.c b/reaction/game/g_cmds.c index 592e3fa6..d7ba67e9 100644 --- a/reaction/game/g_cmds.c +++ b/reaction/game/g_cmds.c @@ -5,6 +5,9 @@ //----------------------------------------------------------------------------- // // $Log$ +// Revision 1.141 2002/06/23 15:22:53 slicer +// Future 2.1 Matchmode Features - PART II +// // Revision 1.140 2002/06/23 03:04:09 assimon // Added suport for callvote map and ref map . // @@ -911,7 +914,7 @@ void SetTeam(gentity_t * ent, char *s) int team, oldTeam, clientNum; gclient_t *client; spectatorState_t specState = 0; - int specClient = 0, teamLeader, teamsave, x; + int specClient = 0, teamLeader, teamsave; // // see what change is requested @@ -1079,8 +1082,13 @@ void SetTeam(gentity_t * ent, char *s) // JBravo: save sessionTeam and then set it correctly for the call to ClientUserinfoChanged // so the scoreboard will be correct. Also check for uneven teams. if (g_gametype.integer == GT_TEAMPLAY) { - x = RQ3TeamCount(-1, client->sess.savedTeam); - x = RQ3TeamCount(-1, oldTeam); + if(g_RQ3_matchmode.integer && g_RQ3_maxplayers.integer > 0) { + if(RQ3TeamCount(-1, client->sess.savedTeam) > g_RQ3_maxplayers.integer) // If it overflows max players + //Make him a sub immeadiatly. + ent->client->sess.sub = client->sess.savedTeam; + } + //Slicer: this was called to update the teamXcount cvars, no longer needed + //x = RQ3TeamCount(-1, oldTeam); CheckForUnevenTeams(ent); teamsave = client->sess.sessionTeam; client->sess.sessionTeam = client->sess.savedTeam; @@ -1364,6 +1372,7 @@ void G_Say(gentity_t * ent, gentity_t * target, int mode, const char *chatText) char location[64]; int validation; + // Elder: validate the client validation = RQ3_ValidateSay(ent); @@ -1493,6 +1502,8 @@ Cmd_Say_f static void Cmd_Say_f(gentity_t * ent, int mode, qboolean arg0) { char *p; + qboolean normaluser; + if (trap_Argc() < 2 && !arg0) { return; @@ -1505,8 +1516,21 @@ static void Cmd_Say_f(gentity_t * ent, int mode, qboolean arg0) } //Slicer Matchmode - if(g_RQ3_matchmode.integer && g_RQ3_forceteamtalk.integer == 2 && (ent->client->sess.captain == TEAM_FREE && ent - g_entities != g_RQ3_RefID.integer)) - mode = SAY_TEAM; // Force say_team for non captains / refs + if(g_RQ3_matchmode.integer) { + normaluser = (ent->client->sess.captain == TEAM_FREE && ent - g_entities != g_RQ3_RefID.integer); + switch (g_RQ3_forceteamtalk.integer) { + case 1: //Only allow say_team when the game hasn't started + if(level.inGame && normaluser) + mode = SAY_TEAM; + break; + case 2: + if(normaluser) + mode = SAY_TEAM; + break; + default: + break; + } + } G_Say(ent, NULL, mode, p); } diff --git a/reaction/game/g_local.h b/reaction/game/g_local.h index 18af2f32..469a0dac 100644 --- a/reaction/game/g_local.h +++ b/reaction/game/g_local.h @@ -5,6 +5,9 @@ //----------------------------------------------------------------------------- // // $Log$ +// Revision 1.102 2002/06/23 15:22:53 slicer +// Future 2.1 Matchmode Features - PART II +// // Revision 1.101 2002/06/23 03:04:09 assimon // Added suport for callvote map and ref map . // @@ -1224,6 +1227,7 @@ extern vmCvar_t g_proxMineTimeout; //Slicer: Matchmode extern vmCvar_t g_RQ3_matchmode; extern vmCvar_t g_RQ3_forceteamtalk; +extern vmCvar_t g_RQ3_maxplayers; //Blaze: Reaction cvars extern vmCvar_t g_rxn_knifelimit; diff --git a/reaction/game/g_main.c b/reaction/game/g_main.c index 03e819ea..3062820f 100644 --- a/reaction/game/g_main.c +++ b/reaction/game/g_main.c @@ -5,6 +5,9 @@ //----------------------------------------------------------------------------- // // $Log$ +// Revision 1.96 2002/06/23 15:22:53 slicer +// Future 2.1 Matchmode Features - PART II +// // Revision 1.95 2002/06/23 03:04:09 assimon // Added suport for callvote map and ref map . // @@ -322,6 +325,7 @@ vmCvar_t g_listEntity; //Slicer: Matchmode vmCvar_t g_RQ3_matchmode; vmCvar_t g_RQ3_forceteamtalk; +vmCvar_t g_RQ3_maxplayers; //Blaze: Reaction cvars vmCvar_t g_rxn_knifelimit; @@ -464,7 +468,8 @@ static cvarTable_t gameCvarTable[] = { {&g_rankings, "g_rankings", "0", 0, 0, qfalse}, //Slicer: Matchmode {&g_RQ3_matchmode, "g_RQ3_matchmode", "0", CVAR_SERVERINFO | CVAR_LATCH | CVAR_SYSTEMINFO, 0, qfalse}, - {&g_RQ3_forceteamtalk, "g_RQ3_forceteamtalk", "0", CVAR_ARCHIVE, 0, qtrue}, + {&g_RQ3_forceteamtalk, "g_RQ3_forceteamtalk", "0", 0, 0, qtrue}, + {&g_RQ3_maxplayers, "g_RQ3_maxplayers", "0", 0, 0, qtrue}, //Slicer: radio protect {&g_RQ3_radioFlood, "g_RQ3_radioFlood", "3", 0, 0, qfalse}, {&g_RQ3_radioFloodTime, "g_RQ3_radioFloodTime", "2", 0, 0, qfalse}, diff --git a/reaction/game/g_matchmode.c b/reaction/game/g_matchmode.c index f1d157de..f378e4ef 100644 --- a/reaction/game/g_matchmode.c +++ b/reaction/game/g_matchmode.c @@ -5,7 +5,20 @@ int ClientNumberFromString(gentity_t * to, char *s); int refVotes[2]; // refVotes[0] is the clientnumber red team voted // refVotes[1] is the clientnumber blue team voted - +/* +#define S_COLOR_BLACK "^0" +#define S_COLOR_RED "^1" +#define S_COLOR_GREEN "^2" +#define S_COLOR_YELLOW "^3" +#define S_COLOR_BLUE "^4" +#define S_COLOR_CYAN "^5" +#define S_COLOR_MAGENTA "^6" +#define S_COLOR_WHITE "^7" +*/ +#define MM_OK_COLOR S_COLOR_GREEN +#define MM_DENY_COLOR S_COLOR_RED +#define MM_NAMES_COLOR S_COLOR_BLUE +#define MM_OK_COLOR S_COLOR_GREEN void SendEndMessage() { @@ -70,7 +83,7 @@ void MM_Sub_f(gentity_t * ent) if (!g_RQ3_matchmode.integer) return; if (ent->client->sess.savedTeam == TEAM_SPECTATOR || ent->client->sess.savedTeam == TEAM_FREE) { - trap_SendServerCommand(ent - g_entities, "print \"You need to be on a team for that\n\""); + trap_SendServerCommand(ent - g_entities, va("print \"" MM_DENY_COLOR "You need to be on a team for that\n\"")); return; } if (ent->client->sess.sub == TEAM_FREE) { @@ -81,16 +94,22 @@ void MM_Sub_f(gentity_t * ent) player_die(ent, ent, ent, 100000, MOD_SUICIDE); } ent->client->sess.sub = ent->client->sess.savedTeam; - trap_SendServerCommand(-1, va("print \"%s^7 is now a Substitute for %s.\n\"", + trap_SendServerCommand(-1, va("print \"%s" MM_OK_COLOR " is now a Substitute for %s.\n\"", ent->client->pers.netname, ent->client->sess.savedTeam == TEAM_BLUE ? g_RQ3_team2name.string : g_RQ3_team1name.string)); } else { + if(g_RQ3_maxplayers.integer > 0 && (RQ3TeamCount(-1, ent->client->sess.savedTeam) >= g_RQ3_maxplayers.integer)) { + trap_SendServerCommand(ent - g_entities, va("print \"" MM_DENY_COLOR "Your team is full.\n\"")); + return; + } + else { ent->client->sess.sub = TEAM_FREE; - trap_SendServerCommand(-1, va("print \"%s^7 is no longer a Substitute for %s.\n\"", + trap_SendServerCommand(-1, va("print \"%s" MM_OK_COLOR " is no longer a Substitute for %s.\n\"", ent->client->pers.netname, ent->client->sess.savedTeam == TEAM_BLUE ? g_RQ3_team2name.string : g_RQ3_team1name.string)); + } } } @@ -99,28 +118,28 @@ void MM_Captain_f(gentity_t * ent) if (!g_RQ3_matchmode.integer) return; if (ent->client->sess.savedTeam == TEAM_SPECTATOR || ent->client->sess.savedTeam == TEAM_FREE) { - trap_SendServerCommand(ent - g_entities, "print \"You need to be on a team for that\n\""); + trap_SendServerCommand(ent - g_entities, va("print \"" MM_DENY_COLOR "You need to be on a team for that\n\"")); return; } if (ent->client->sess.captain == TEAM_RED) { level.team1ready = qfalse; - trap_SendServerCommand(-1, va("print \"%s^7 is no longer %s's Captain.\n\"", + trap_SendServerCommand(-1, va("print \"%s" MM_OK_COLOR " is no longer %s's Captain.\n\"", ent->client->pers.netname, g_RQ3_team1name.string)); ent->client->sess.captain = TEAM_FREE; } else if (ent->client->sess.captain == TEAM_BLUE) { level.team2ready = qfalse; - trap_SendServerCommand(-1, va("print \"%s^7 is no longer %s's Captain.\n\"", + trap_SendServerCommand(-1, va("print \"%s" MM_OK_COLOR " is no longer %s's Captain.\n\"", ent->client->pers.netname, g_RQ3_team2name.string)); ent->client->sess.captain = TEAM_FREE; } else { if (!checkCaptain(ent->client->sess.savedTeam)) { ent->client->sess.captain = ent->client->sess.savedTeam; - trap_SendServerCommand(-1, va("print \"%s^7 is now %s's Captain.\n\"", + trap_SendServerCommand(-1, va("print \"%s" MM_OK_COLOR " is now %s's Captain.\n\"", ent->client->pers.netname, ent->client->sess.savedTeam == TEAM_BLUE ? g_RQ3_team2name.string : g_RQ3_team1name.string)); } else - trap_SendServerCommand(ent - g_entities, "print \"Your team already has a Captain\n\""); + trap_SendServerCommand(ent - g_entities, va("print \"" MM_DENY_COLOR "Your team already has a Captain\n\"")); } } @@ -131,7 +150,7 @@ void MM_Ready_f(gentity_t * ent) if (ent->client->sess.captain != TEAM_FREE) { if (ent->client->sess.savedTeam == TEAM_RED) { - trap_SendServerCommand(-1, va("cp \"%s is%s Ready.\n\"", + trap_SendServerCommand(-1, va("cp \"%s are%s Ready.\n\"", g_RQ3_team1name.string, level.team1ready ? " no longer" : "")); if (level.team1ready) @@ -139,7 +158,7 @@ void MM_Ready_f(gentity_t * ent) else level.team1ready = qtrue; } else { - trap_SendServerCommand(-1, va("cp \"%s is%s Ready.\n\"", + trap_SendServerCommand(-1, va("cp \"%s are%s Ready.\n\"", g_RQ3_team2name.string, level.team2ready ? " no longer" : "")); if (level.team2ready) @@ -148,7 +167,7 @@ void MM_Ready_f(gentity_t * ent) level.team2ready = qtrue; } } else - trap_SendServerCommand(ent - g_entities, "print \"You need to be a captain for that\n\""); + trap_SendServerCommand(ent - g_entities, va("print \""MM_DENY_COLOR "You need to be a captain for that\n\"")); } void MM_TeamModel_f(gentity_t * ent) @@ -167,20 +186,20 @@ void MM_TeamModel_f(gentity_t * ent) args = trap_Argc(); if (args < 2) { - trap_SendServerCommand(ent - g_entities, va("print \"Your current team model is: %s\n\"", + trap_SendServerCommand(ent - g_entities, va("print \"Your current team model is:"MM_OK_COLOR" %s\n\"", ent->client->sess.savedTeam == TEAM_RED ? g_RQ3_team1model.string : g_RQ3_team2model. string)); return; } else { if (ent->client->sess.captain == TEAM_FREE) { - trap_SendServerCommand(ent - g_entities, "print \"You need to be a captain for that\n\""); + trap_SendServerCommand(ent - g_entities, va("print \""MM_DENY_COLOR"You need to be a captain for that\n\"")); return; } if (level.team_game_going || level.team_round_going) { trap_SendServerCommand(ent - g_entities, - "print \"You cannot change your team's model while playing or ready.\n\""); + va("print \""MM_DENY_COLOR"You cannot change your team's model while playing or ready.\n\"")); } trap_Argv(1, buff, sizeof(buff)); @@ -188,19 +207,19 @@ void MM_TeamModel_f(gentity_t * ent) if (team == TEAM_RED) { if (level.team1ready) { trap_SendServerCommand(ent - g_entities, - "print \"You need to un-ready your team for that..\n\""); + va("print \"You need to un-ready your team for that..\n\"")); return; } trap_Cvar_Set("g_RQ3_team1model", buff); - trap_SendServerCommand(-1, va("print \"New Team 1 Model: %s\n\"", buff)); + trap_SendServerCommand(-1, va("print \"New Team 1 Model: "MM_OK_COLOR"%s\n\"", buff)); } else { if (level.team2ready) { trap_SendServerCommand(ent - g_entities, - "print \"You need to un-ready your team for that..\n\""); + va("print \""MM_DENY_COLOR"You need to un-ready your team for that..\n\"")); return; } trap_Cvar_Set("g_RQ3_team2model", buff); - trap_SendServerCommand(-1, va("print \"New Team 2 Model: %s\n\"", buff)); + trap_SendServerCommand(-1, va("print \"New Team 2 Model: "MM_OK_COLOR"%s\n\"", buff)); } } } @@ -221,20 +240,20 @@ void MM_TeamName_f(gentity_t * ent) args = trap_Argc(); if (args < 2) { - trap_SendServerCommand(ent - g_entities, va("print \"Your Team Name: %s\n\"", + trap_SendServerCommand(ent - g_entities, va("print \"Your Team Name: " MM_OK_COLOR "%s\n\"", ent->client->sess.savedTeam == TEAM_RED ? g_RQ3_team1name.string : g_RQ3_team2name. string)); return; } else { if (ent->client->sess.captain == TEAM_FREE) { - trap_SendServerCommand(ent - g_entities, "print \"You need to be a captain for that\n\""); + trap_SendServerCommand(ent - g_entities, va("print \""MM_DENY_COLOR"You need to be a captain for that\n\"")); return; } if (level.team_game_going || level.team_round_going) { trap_SendServerCommand(ent - g_entities, - "print \"You cannot change your team's name while playing or ready.\n\""); + va("print \""MM_DENY_COLOR"You cannot change your team's name while playing or ready.\n\"")); } buff = ConcatArgs(1); @@ -245,19 +264,19 @@ void MM_TeamName_f(gentity_t * ent) if (team == TEAM_RED) { if (level.team1ready) { trap_SendServerCommand(ent - g_entities, - "print \"You need to un-ready your team for that..\n\""); + va("print \""MM_DENY_COLOR"You need to un-ready your team for that..\n\"")); return; } trap_Cvar_Set("g_RQ3_team1name", buff); - trap_SendServerCommand(-1, va("print \"New Team 1 Name: %s\n\"", buff)); + trap_SendServerCommand(-1, va("print \"New Team 1 Name: "MM_NAMES_COLOR"%s\n\"", buff)); } else { if (level.team2ready) { trap_SendServerCommand(ent - g_entities, - "print \"You need to un-ready your team for that..\n\""); + va("print \""MM_DENY_COLOR"You need to un-ready your team for that..\n\"")); return; } trap_Cvar_Set("g_RQ3_team2name", buff); - trap_SendServerCommand(-1, va("print \"New Team 2 Name: %s\n\"", buff)); + trap_SendServerCommand(-1, va("print \"New Team 2 Name: "MM_NAMES_COLOR"%s\n\"", buff)); } } } @@ -276,7 +295,7 @@ void checkRefVotes() ent = g_entities + refVotes[0]; Com_sprintf(nr, sizeof(nr), "%i", refVotes[0]); trap_Cvar_Set("g_RQ3_RefID", nr); - trap_SendServerCommand(-1, va("cp \"%s^7 is the new Referee.\n\"", ent->client->pers.netname)); + trap_SendServerCommand(-1, va("cp \"%s is the new Referee.\n\"", ent->client->pers.netname)); refVotes[0] = refVotes[1] = -1; } } @@ -295,17 +314,17 @@ void MM_Referee_f(gentity_t * ent) captain = ent->client->sess.captain; if (!g_RQ3_AllowRef.integer) { - trap_SendServerCommand(ent - g_entities, "print \"No Referee Allowed on this server\n\""); + trap_SendServerCommand(ent - g_entities, va("print \""MM_DENY_COLOR"No Referee Allowed on this server\n\"")); return; } if (trap_Argc() < 2) { if (Ref_Exists()) { ref = g_entities + g_RQ3_RefID.integer; trap_SendServerCommand(ent - g_entities, - va("print \"Current Referee: %s\n\"", ref->client->pers.netname)); + va("print \"Current Referee: "MM_NAMES_COLOR"%s\n\"", ref->client->pers.netname)); } else trap_SendServerCommand(ent - g_entities, - "print \"No Referee currently assigned, use referee to assign\n\""); + va("print \""MM_DENY_COLOR"No Referee currently assigned, use "MM_NAMES_COLOR"referee "MM_DENY_COLOR" to assign\n\"")); return; } @@ -314,15 +333,15 @@ void MM_Referee_f(gentity_t * ent) if ((ref = getEntByName(buff)) != NULL) { refVotes[captain - 1] = ref - g_entities; trap_SendServerCommand(-1, - va("print \"%s^7 has voted %s^7 for referee\n\"", + va("print \""MM_OK_COLOR"%s has voted "MM_NAMES_COLOR"%s"MM_OK_COLOR" for referee\n\"", ent->client->pers.netname, ref->client->pers.netname)); checkRefVotes(); } else { - trap_SendServerCommand(ent - g_entities, "print \"Invalid Player Name\n\""); + trap_SendServerCommand(ent - g_entities, va("print \""MM_DENY_COLOR"Invalid Player Name\n\"")); return; } } else - trap_SendServerCommand(ent - g_entities, "print \"You need to be a captain to assign a referee\n\""); + trap_SendServerCommand(ent - g_entities, va("print \""MM_DENY_COLOR"You need to be a captain to assign a referee\n\"")); } void MM_ClearScores(void) @@ -367,12 +386,12 @@ qboolean Ref_Auth(gentity_t * ent) if (!g_RQ3_AllowRef.integer) { // No ref allowed on the server - HELLO!!!!! FIREMAN CARS???? - trap_SendServerCommand(ent - g_entities, "print \"No Referee Allowed on this server\n\""); + trap_SendServerCommand(ent - g_entities, va("print \""MM_DENY_COLOR"No Referee Allowed on this server\n\"")); return qfalse; } if (Q_stricmp(g_RQ3_RefPass.string, "") == 0) { - trap_SendServerCommand(ent - g_entities, "print \"No Referee Password Set on this server\n\""); + trap_SendServerCommand(ent - g_entities, va("print \""MM_DENY_COLOR"No Referee Password Set on this server\n\"")); return qfalse; } @@ -381,11 +400,11 @@ qboolean Ref_Auth(gentity_t * ent) cn = ent - g_entities; if (cn == g_RQ3_RefID.integer) { - trap_SendServerCommand(ent - g_entities, "print \"You are already the referee\n\""); + trap_SendServerCommand(ent - g_entities, va("print \""MM_DENY_COLOR"You are already the referee\n\"")); return qfalse; } - trap_SendServerCommand(ent - g_entities, "print \"Referee already set on this server\n\""); + trap_SendServerCommand(ent - g_entities, va("print \""MM_DENY_COLOR"Referee already set on this server\n\"")); return qfalse; } @@ -398,12 +417,12 @@ qboolean Ref_Auth(gentity_t * ent) Com_sprintf(teste, 3, "%i", cn); trap_Cvar_Set("g_RQ3_RefID", teste); trap_SendServerCommand(-1, - va("print \"%s" S_COLOR_WHITE " is the new Referee\n\"", + va("print \""MM_NAMES_COLOR"%s "MM_OK_COLOR"is the new Referee\n\"", ent->client->pers.netname)); return qtrue; } - trap_SendServerCommand(ent - g_entities, "print \"Invalid Referee Password\n\""); + trap_SendServerCommand(ent - g_entities, va("print \""MM_DENY_COLOR"Invalid Referee Password\n\"")); return qfalse; } @@ -419,7 +438,7 @@ void Ref_Command(gentity_t * ent) cn = ent - g_entities; if (cn != g_RQ3_RefID.integer) { - trap_SendServerCommand(ent - g_entities, "print \"You are not a referee\n\""); + trap_SendServerCommand(ent - g_entities, va("print \""MM_DENY_COLOR"You are not a referee\n\"")); return; } @@ -446,14 +465,14 @@ void Ref_Command(gentity_t * ent) trap_Argv(2, com, sizeof(com)); if (Q_stricmp(com, "") == 0) { trap_SendServerCommand(ent - g_entities, - "print \"You must name a player. Use: ref kick \n\""); + va("print \""MM_DENY_COLOR"You must name a player. Use: "MM_NAMES_COLOR"ref kick \n\"")); return; } cn = ClientNumberFromString(ent, com); if (cn == -1) { trap_SendServerCommand(ent - g_entities, - va("print \"%s" S_COLOR_WHITE " is not on the server\n\"", com)); + va("print \""MM_NAMES_COLOR"%s "MM_DENY_COLOR"is not on the server\n\"", com)); return; } trap_DropClient(cn, "was kicked by the referee"); @@ -476,12 +495,12 @@ void Ref_Command(gentity_t * ent) if (level.team_game_going) { if (level.inGame) trap_SendServerCommand(ent - g_entities, - "print \"Game will be paused at the end of the round"); + va("print \""MM_OK_COLOR"Game will be paused at the end of the round")); else trap_SendServerCommand(-1, va("cp \"Game is now paused by the Referee\"")); level.paused = qtrue; } else - trap_SendServerCommand(ent - g_entities, "print \"No game is going.."); + trap_SendServerCommand(ent - g_entities, va("print \""MM_DENY_COLOR"No game is going..")); } } else if (Q_stricmp(com, "cyclemap") == 0){ BeginIntermission(); @@ -490,31 +509,31 @@ void Ref_Command(gentity_t * ent) trap_Argv(2, param, sizeof(param)); if ( !G_FileExists(va("maps/%s.bsp", param)) ) { - trap_SendServerCommand(ent - g_entities, va("print \"The map %s does not exist.\n\"", param)); + trap_SendServerCommand(ent - g_entities, va("print \""MM_DENY_COLOR"The map %s does not exist.\n\"", param)); return; } else{ trap_Cvar_Set("g_RQ3_ValidIniFile", "3"); g_RQ3_ValidIniFile.integer = 3; - trap_SendServerCommand(-1, va("print \"Referee changed next map to: %s\n\"", param)); + trap_SendServerCommand(-1, va("print \""MM_OK_COLOR"Referee changed next map to: "MM_NAMES_COLOR"%s\n\"", param)); Com_sprintf(level.voteMap, sizeof(level.voteMap), "map %s",param); BeginIntermission(); } } else trap_SendServerCommand(ent - g_entities, - "print \"Invalid Referee comand. Type ref help to see a list of available commands\n\""); + va("print \""MM_DENY_COLOR"Invalid Referee comand. Type ref help to see a list of available commands\n\"")); } void Ref_Resign(gentity_t * ent) { if (ent - g_entities != g_RQ3_RefID.integer) { - trap_SendServerCommand(ent - g_entities, "print \"You are not a referee\n\""); + trap_SendServerCommand(ent - g_entities, va("print \""MM_DENY_COLOR"You are not a referee\n\"")); return; } trap_Cvar_Set("g_RQ3_RefID", "-1"); - trap_SendServerCommand(ent - g_entities, "print \"You resign from your referee status\n\""); + trap_SendServerCommand(ent - g_entities, va("print \""MM_OK_COLOR"You resign from your referee status\n\"")); } /* @@ -522,7 +541,7 @@ Timelimit RoundLimit RoundTimeLimit Fraglimit -Max Players <- TO BE IMPLEMENTED +Max Players Friendly Fire Chase Cam Team Grenades @@ -545,17 +564,17 @@ void MM_Settings_f(gentity_t * ent) { if(trap_Argc()!= NR_SETTVARS) return; if(ent->client->sess.captain == TEAM_FREE && ent - g_entities != g_RQ3_RefID.integer) { - trap_SendServerCommand(ent - g_entities, "print \"Only Captains and Referees can change match Settings\n\""); + trap_SendServerCommand(ent - g_entities, va("print \""MM_DENY_COLOR"Only Captains and Referees can change match Settings\n\"")); return; } //Game has begun if(level.inGame) { - trap_SendServerCommand(ent - g_entities, "print \"Settings can only be changed before a game starts\n\""); + trap_SendServerCommand(ent - g_entities, va("print \""MM_DENY_COLOR"Settings can only be changed before a game starts\n\"")); return; } //Referee locked settings if(level.settingsLocked) { - trap_SendServerCommand(ent - g_entities, "print \"Settings are currently locked, only Referee can unlock them\n\""); + trap_SendServerCommand(ent - g_entities, va("print \""MM_DENY_COLOR"Settings are currently locked, only Referee can unlock them\n\"")); return; } @@ -564,6 +583,6 @@ void MM_Settings_f(gentity_t * ent) { trap_Cvar_Set(settings[i],str); } - trap_SendServerCommand(-1,va("print \"Match Settings have been changed by %s\n\"",ent->client->pers.netname)); + trap_SendServerCommand(-1,va("print \""MM_OK_COLOR"Match Settings have been changed by "MM_NAMES_COLOR"%s\n\"",ent->client->pers.netname)); }