mirror of
https://github.com/Q3Rally-Team/q3rally.git
synced 2024-11-23 20:32:09 +00:00
NEW GAME MODE: LAST CAR STANDING
New map for this game mode: COMING SOON zturtleman, check it out, please.
This commit is contained in:
parent
d7c857b193
commit
227e401356
31 changed files with 400 additions and 149 deletions
|
@ -7,16 +7,17 @@
|
|||
seta r_smp "1"
|
||||
|
||||
// Gametype
|
||||
// 1 = "Racing"
|
||||
// 2 = "Racing Deatmatch"
|
||||
// 1 = "Racing Deatmatch"
|
||||
// 2 = "Racing"
|
||||
// 3 = "Demolition Derby"
|
||||
// 4 = "Deathmatch"
|
||||
// 5 = "Team Deathmatch"
|
||||
// 6 = "Team Racing"
|
||||
// 7 = "Team Racing Deathmatch"
|
||||
// 8 = "Capture the Flag"
|
||||
// 9 = "Domination"
|
||||
g_gametype 8
|
||||
// 4 = "Last Car Standing"
|
||||
// 5 = "Deathmatch"
|
||||
// 6 = "Team Deathmatch"
|
||||
// 7 = "Team Racing"
|
||||
// 8 = "Team Racing Deathmatch"
|
||||
// 9 = "Capture the Flag"
|
||||
// 10 = "Domination"
|
||||
g_gametype 9
|
||||
|
||||
// bot_enable - are Bots allowed ?
|
||||
// 0 = off, 1 = on (Default: 0)
|
||||
|
|
|
@ -7,15 +7,16 @@
|
|||
seta r_smp "1"
|
||||
|
||||
// Gametype
|
||||
// 1 = "Racing"
|
||||
// 2 = "Racing Deatmatch"
|
||||
// 1 = "Racing Deatmatch"
|
||||
// 2 = "Racing"
|
||||
// 3 = "Demolition Derby"
|
||||
// 4 = "Deathmatch"
|
||||
// 5 = "Team Deathmatch"
|
||||
// 6 = "Team Racing"
|
||||
// 7 = "Team Racing Deathmatch"
|
||||
// 8 = "Capture the Flag"
|
||||
// 9 = "Domination"
|
||||
// 4 = "Last Car Standing"
|
||||
// 5 = "Deathmatch"
|
||||
// 6 = "Team Deathmatch"
|
||||
// 7 = "Team Racing"
|
||||
// 8 = "Team Racing Deathmatch"
|
||||
// 9 = "Capture the Flag"
|
||||
// 10 = "Domination"
|
||||
g_gametype 3
|
||||
|
||||
// bot_enable - are Bots allowed ?
|
||||
|
|
|
@ -7,16 +7,17 @@
|
|||
seta r_smp "1"
|
||||
|
||||
// Gametype
|
||||
// 1 = "Racing"
|
||||
// 2 = "Racing Deatmatch"
|
||||
// 1 = "Racing Deatmatch"
|
||||
// 2 = "Racing"
|
||||
// 3 = "Demolition Derby"
|
||||
// 4 = "Deathmatch"
|
||||
// 5 = "Team Deathmatch"
|
||||
// 6 = "Team Racing"
|
||||
// 7 = "Team Racing Deathmatch"
|
||||
// 8 = "Capture the Flag"
|
||||
// 9 = "Domination"
|
||||
g_gametype 4
|
||||
// 4 = "Last Car Standing"
|
||||
// 5 = "Deathmatch"
|
||||
// 6 = "Team Deathmatch"
|
||||
// 7 = "Team Racing"
|
||||
// 8 = "Team Racing Deathmatch"
|
||||
// 9 = "Capture the Flag"
|
||||
// 10 = "Domination"
|
||||
g_gametype 5
|
||||
|
||||
// bot_enable - are Bots allowed ?
|
||||
// 0 = off, 1 = on (Default: 0)
|
||||
|
|
|
@ -7,16 +7,17 @@
|
|||
seta r_smp "1"
|
||||
|
||||
// Gametype
|
||||
// 1 = "Racing"
|
||||
// 2 = "Racing Deatmatch"
|
||||
// 1 = "Racing Deatmatch"
|
||||
// 2 = "Racing"
|
||||
// 3 = "Demolition Derby"
|
||||
// 4 = "Deathmatch"
|
||||
// 5 = "Team Deathmatch"
|
||||
// 6 = "Team Racing"
|
||||
// 7 = "Team Racing Deathmatch"
|
||||
// 8 = "Capture the Flag"
|
||||
// 9 = "Domination"
|
||||
g_gametype 9
|
||||
// 4 = "Last Car Standing"
|
||||
// 5 = "Deathmatch"
|
||||
// 6 = "Team Deathmatch"
|
||||
// 7 = "Team Racing"
|
||||
// 8 = "Team Racing Deathmatch"
|
||||
// 9 = "Capture the Flag"
|
||||
// 10 = "Domination"
|
||||
g_gametype 10
|
||||
|
||||
// bot_enable - are Bots allowed ?
|
||||
// 0 = off, 1 = on (Default: 1)
|
||||
|
|
113
baseq3r/q3r_lcs.cfg
Normal file
113
baseq3r/q3r_lcs.cfg
Normal file
|
@ -0,0 +1,113 @@
|
|||
// ************************************
|
||||
// Q3Rally Server Config
|
||||
// ************************************
|
||||
|
||||
// Multi CPU ?
|
||||
// 0 = no, 1 = yes (Default: 0)
|
||||
seta r_smp "1"
|
||||
|
||||
// Gametype
|
||||
// 1 = "Racing Deatmatch"
|
||||
// 2 = "Racing"
|
||||
// 3 = "Demolition Derby"
|
||||
// 4 = "Last Car Standing"
|
||||
// 5 = "Deathmatch"
|
||||
// 6 = "Team Deathmatch"
|
||||
// 7 = "Team Racing"
|
||||
// 8 = "Team Racing Deathmatch"
|
||||
// 9 = "Capture the Flag"
|
||||
// 10 = "Domination"
|
||||
g_gametype 4
|
||||
|
||||
// bot_enable - are Bots allowed ?
|
||||
// 0 = off, 1 = on (Default: 0)
|
||||
bot_enable "1"
|
||||
|
||||
// Minimum Number of Players - Missing Players will be filled up with Bots
|
||||
bot_minplayers "4"
|
||||
|
||||
// Capture Limit for Capture the Flag (0 = no Limit)
|
||||
capturelimit 10
|
||||
|
||||
// Fraglimit (0 = no Limit)
|
||||
fraglimit 30
|
||||
|
||||
// Timelimit [in minutes] (0 = no Limit)
|
||||
timelimit 12
|
||||
|
||||
// Maximum Number of Clients (Observer are also counts as Clients)
|
||||
sv_maxClients 16
|
||||
|
||||
// Servername
|
||||
sv_hostname "Q3R Last Car Standing Server"
|
||||
|
||||
// "Message of the Day"
|
||||
g_motd "Happy Smashing!"
|
||||
|
||||
// sv_allowdownload - Allows download from server of missing assets
|
||||
// 0 = off, 1 = on (Default: 0)
|
||||
sv_allowdownload "0"
|
||||
sv_dlURL ""
|
||||
|
||||
// sv_floodProtect - Flood Protection
|
||||
sv_floodProtect "1"
|
||||
|
||||
// Password protected Server
|
||||
// 1 = password required, 0 = no password required (Default: 0)
|
||||
sv_privateClients 0
|
||||
|
||||
// Password for password protected server
|
||||
sv_privatePassword ""
|
||||
|
||||
// RCon Password for admin the server from console
|
||||
rconPassword ""
|
||||
|
||||
// Pure Server for Cheat protection
|
||||
// 1 = on, 0 = off (Default: 1)
|
||||
sv_pure 0
|
||||
|
||||
// Maximum bandwith for Client
|
||||
// possible values: 0...25000, 0 = no Limit (Default: 0)
|
||||
sv_maxRate 25000
|
||||
|
||||
// Increase DL Rate of Addons
|
||||
// possible values: 0...1000, (Default: 100)
|
||||
sv_dlRate 1000
|
||||
|
||||
// Master-Server for registering the server
|
||||
sv_master2 ""
|
||||
sv_master3 ""
|
||||
sv_master4 ""
|
||||
sv_master5 ""
|
||||
|
||||
// Map Cycle
|
||||
set d1 "map q3r_david5 ; set nextmap vstr d2"
|
||||
set d2 "map q3r_demobowl ; set nextmap vstr d3"
|
||||
set d3 "map q3r_dm02 ; set nextmap vstr d1"
|
||||
vstr d1
|
||||
|
||||
// Weapon Respawn Time [in seconds] (Default: 5)
|
||||
g_weaponrespawn 5
|
||||
|
||||
// allow Voting?
|
||||
// Vote for:
|
||||
// - map
|
||||
// - map restart
|
||||
// - kick
|
||||
// - g_gametype
|
||||
// 1 = on, 0 = off (Default: 1)
|
||||
g_allowvote 1
|
||||
|
||||
// Quad Factor for Quad Damage (Default: 3)
|
||||
g_quadfactor 3
|
||||
|
||||
// allow recording of demo files
|
||||
// 1 = on, 0 = off (Default: 0)
|
||||
g_syncronousClients 1
|
||||
|
||||
// Additional Infos
|
||||
sets "Administrator" ""
|
||||
sets "Email" ""
|
||||
sets "URL" ""
|
||||
sets "Location" ""
|
||||
sets "CPU" ""
|
|
@ -7,16 +7,17 @@
|
|||
seta r_smp "1"
|
||||
|
||||
// Gametype
|
||||
// 1 = "Racing"
|
||||
// 2 = "Racing Deatmatch"
|
||||
// 1 = "Racing Deatmatch"
|
||||
// 2 = "Racing"
|
||||
// 3 = "Demolition Derby"
|
||||
// 4 = "Deathmatch"
|
||||
// 5 = "Team Deathmatch"
|
||||
// 6 = "Team Racing"
|
||||
// 7 = "Team Racing Deathmatch"
|
||||
// 8 = "Capture the Flag"
|
||||
// 9 = "Domination"
|
||||
g_gametype 0
|
||||
// 4 = "Last Car Standing"
|
||||
// 5 = "Deathmatch"
|
||||
// 6 = "Team Deathmatch"
|
||||
// 7 = "Team Racing"
|
||||
// 8 = "Team Racing Deathmatch"
|
||||
// 9 = "Capture the Flag"
|
||||
// 10 = "Domination"
|
||||
g_gametype 2
|
||||
|
||||
// bot_enable - are Bots allowed ?
|
||||
// 0 = off, 1 = on (Default: 0)
|
||||
|
|
|
@ -7,15 +7,16 @@
|
|||
seta r_smp "1"
|
||||
|
||||
// Gametype
|
||||
// 1 = "Racing"
|
||||
// 2 = "Racing Deatmatch"
|
||||
// 1 = "Racing Deatmatch"
|
||||
// 2 = "Racing"
|
||||
// 3 = "Demolition Derby"
|
||||
// 4 = "Deathmatch"
|
||||
// 5 = "Team Deathmatch"
|
||||
// 6 = "Team Racing"
|
||||
// 7 = "Team Racing Deathmatch"
|
||||
// 8 = "Capture the Flag"
|
||||
// 9 = "Domination"
|
||||
// 4 = "Last Car Standing"
|
||||
// 5 = "Deathmatch"
|
||||
// 6 = "Team Deathmatch"
|
||||
// 7 = "Team Racing"
|
||||
// 8 = "Team Racing Deathmatch"
|
||||
// 9 = "Capture the Flag"
|
||||
// 10 = "Domination"
|
||||
g_gametype 1
|
||||
|
||||
// bot_enable - are Bots allowed ?
|
||||
|
|
|
@ -7,16 +7,17 @@
|
|||
seta r_smp "1"
|
||||
|
||||
// Gametype
|
||||
// 1 = "Racing"
|
||||
// 2 = "Racing Deatmatch"
|
||||
// 1 = "Racing Deatmatch"
|
||||
// 2 = "Racing"
|
||||
// 3 = "Demolition Derby"
|
||||
// 4 = "Deathmatch"
|
||||
// 5 = "Team Deathmatch"
|
||||
// 6 = "Team Racing"
|
||||
// 7 = "Team Racing Deathmatch"
|
||||
// 8 = "Capture the Flag"
|
||||
// 9 = "Domination"
|
||||
g_gametype 5
|
||||
// 4 = "Last Car Standing"
|
||||
// 5 = "Deathmatch"
|
||||
// 6 = "Team Deathmatch"
|
||||
// 7 = "Team Racing"
|
||||
// 8 = "Team Racing Deathmatch"
|
||||
// 9 = "Capture the Flag"
|
||||
// 10 = "Domination"
|
||||
g_gametype 6
|
||||
|
||||
// bot_enable - are Bots allowed ?
|
||||
// 0 = off, 1 = on (Default: 0)
|
||||
|
|
|
@ -7,16 +7,17 @@
|
|||
seta r_smp "1"
|
||||
|
||||
// Gametype
|
||||
// 1 = "Racing"
|
||||
// 2 = "Racing Deatmatch"
|
||||
// 1 = "Racing Deatmatch"
|
||||
// 2 = "Racing"
|
||||
// 3 = "Demolition Derby"
|
||||
// 4 = "Deathmatch"
|
||||
// 5 = "Team Deathmatch"
|
||||
// 6 = "Team Racing"
|
||||
// 7 = "Team Racing Deathmatch"
|
||||
// 8 = "Capture the Flag"
|
||||
// 9 = "Domination"
|
||||
g_gametype 6
|
||||
// 4 = "Last Car Standing"
|
||||
// 5 = "Deathmatch"
|
||||
// 6 = "Team Deathmatch"
|
||||
// 7 = "Team Racing"
|
||||
// 8 = "Team Racing Deathmatch"
|
||||
// 9 = "Capture the Flag"
|
||||
// 10 = "Domination"
|
||||
g_gametype 7
|
||||
|
||||
// bot_enable - are Bots allowed ?
|
||||
// 0 = off, 1 = on (Default: 0)
|
||||
|
|
|
@ -7,16 +7,17 @@
|
|||
seta r_smp "1"
|
||||
|
||||
// Gametype
|
||||
// 1 = "Racing"
|
||||
// 2 = "Racing Deatmatch"
|
||||
// 1 = "Racing Deatmatch"
|
||||
// 2 = "Racing"
|
||||
// 3 = "Demolition Derby"
|
||||
// 4 = "Deathmatch"
|
||||
// 5 = "Team Deathmatch"
|
||||
// 6 = "Team Racing"
|
||||
// 7 = "Team Racing Deathmatch"
|
||||
// 8 = "Capture the Flag"
|
||||
// 9 = "Domination"
|
||||
g_gametype 7
|
||||
// 4 = "Last Car Standing"
|
||||
// 5 = "Deathmatch"
|
||||
// 6 = "Team Deathmatch"
|
||||
// 7 = "Team Racing"
|
||||
// 8 = "Team Racing Deathmatch"
|
||||
// 9 = "Capture the Flag"
|
||||
// 10 = "Domination"
|
||||
g_gametype 8
|
||||
|
||||
// bot_enable - are Bots allowed ?
|
||||
// 0 = off, 1 = on (Default: 0)
|
||||
|
|
|
@ -290,6 +290,9 @@ void CG_DrawInformation( void ) {
|
|||
case GT_DERBY:
|
||||
s = "Demolition Derby";
|
||||
break;
|
||||
case GT_LCS:
|
||||
s = "Last Car Standing";
|
||||
break;
|
||||
case GT_TEAM_RACING:
|
||||
s = "Team Racing";
|
||||
break;
|
||||
|
|
|
@ -982,7 +982,7 @@ void CG_PredictPlayerState( void ) {
|
|||
|
||||
|
||||
// Q3Rally Code Start
|
||||
if ((isRallyRace() || cgs.gametype == GT_DERBY) && !cg_entities[cg.snap->ps.clientNum].startRaceTime){
|
||||
if ((isRallyRace() || cgs.gametype == GT_DERBY || cgs.gametype == GT_LCS) && !cg_entities[cg.snap->ps.clientNum].startRaceTime){
|
||||
cg_pmove.cmd.buttons = BUTTON_HANDBRAKE;
|
||||
|
||||
cg_pmove.cmd.forwardmove = 0;
|
||||
|
|
|
@ -417,7 +417,7 @@ static float CG_DrawTimes( float y ) {
|
|||
// Best Time
|
||||
//
|
||||
|
||||
if ( cgs.gametype != GT_DERBY ){
|
||||
if ( cgs.gametype != GT_DERBY || cgs.gametype != GT_LCS ){
|
||||
time = getStringForTime( cent->bestLapTime );
|
||||
|
||||
Com_sprintf(s, sizeof(s), "B: %s", time);
|
||||
|
@ -436,7 +436,7 @@ static float CG_DrawTimes( float y ) {
|
|||
|
||||
|
||||
|
||||
if (cgs.gametype != GT_DERBY){
|
||||
if (cgs.gametype != GT_DERBY || cgs.gametype != GT_LCS ){
|
||||
time = getStringForTime(lapTime);
|
||||
|
||||
Com_sprintf(s, sizeof(s), "L: %s", time);
|
||||
|
@ -900,14 +900,14 @@ float CG_DrawUpperRightHUD( float y ) {
|
|||
y = CG_DrawCurrentPosition( y );
|
||||
y = CG_DrawCarAheadAndBehind( y );
|
||||
}
|
||||
else if (cgs.gametype == GT_DERBY)
|
||||
else if (cgs.gametype == GT_DERBY || cgs.gametype == GT_LCS )
|
||||
y = CG_DrawTimes( y );
|
||||
// 0.5
|
||||
// CG_DrawHUD_DerbyList(44, 130);
|
||||
|
||||
}
|
||||
|
||||
if (!isRallyNonDMRace() && cgs.gametype != GT_DERBY){
|
||||
if (!isRallyNonDMRace() && cgs.gametype != GT_DERBY && cgs.gametype != GT_LCS){
|
||||
y = CG_DrawScores( 636, y );
|
||||
}
|
||||
|
||||
|
|
|
@ -467,6 +467,7 @@ qboolean CG_DrawHUD( void ) {
|
|||
break;
|
||||
|
||||
case GT_DERBY:
|
||||
case GT_LCS:
|
||||
// CG_DrawHUD_DerbyList(44, 130);
|
||||
|
||||
break;
|
||||
|
|
|
@ -140,6 +140,7 @@ typedef enum {
|
|||
GT_RACING_DM, // racing with weapons
|
||||
GT_SINGLE_PLAYER, // single player tournament
|
||||
GT_DERBY, // demolition derby
|
||||
GT_LCS, // last car standing
|
||||
GT_DEATHMATCH, // random destruction
|
||||
|
||||
//-- team games go after this --
|
||||
|
|
|
@ -658,7 +658,7 @@ void ClientTimerActions( gentity_t *ent, int msec ) {
|
|||
// count down health when over max
|
||||
// STONELANCE
|
||||
// if ( ent->health > client->ps.stats[STAT_MAX_HEALTH] ) {
|
||||
if (((!isRallyRace() && g_gametype.integer != GT_DERBY)
|
||||
if (((!isRallyRace() && g_gametype.integer != GT_DERBY && g_gametype.integer != GT_LCS)
|
||||
|| level.startRaceTime) && ent->health > client->ps.stats[STAT_MAX_HEALTH]){
|
||||
// END
|
||||
ent->health--;
|
||||
|
@ -668,7 +668,7 @@ void ClientTimerActions( gentity_t *ent, int msec ) {
|
|||
// count down armor when over max
|
||||
// STONELANCE
|
||||
// if ( client->ps.stats[STAT_ARMOR] > client->ps.stats[STAT_MAX_HEALTH] ) {
|
||||
if (((!isRallyRace() && g_gametype.integer != GT_DERBY) || level.startRaceTime)
|
||||
if (((!isRallyRace() && g_gametype.integer != GT_DERBY && g_gametype.integer != GT_LCS) || level.startRaceTime)
|
||||
&& client->ps.stats[STAT_ARMOR] > client->ps.stats[STAT_MAX_HEALTH]){
|
||||
// END
|
||||
client->ps.stats[STAT_ARMOR]--;
|
||||
|
@ -1105,7 +1105,7 @@ void ClientThink_real( gentity_t *ent ) {
|
|||
// check for car reset
|
||||
G_ResetCar( ent );
|
||||
|
||||
if (!level.startRaceTime && (isRallyRace() || g_gametype.integer == GT_DERBY)){
|
||||
if (!level.startRaceTime && (isRallyRace() || g_gametype.integer == GT_DERBY || g_gametype.integer == GT_LCS)){
|
||||
if ( ucmd->buttons & ( BUTTON_ATTACK | BUTTON_USE_HOLDABLE ) && !ent->ready ) {
|
||||
trap_SendServerCommand( ent->s.clientNum, "cp \"Waiting for other players...\n\"");
|
||||
ent->ready = qtrue;
|
||||
|
@ -1572,7 +1572,7 @@ void ClientThink_real( gentity_t *ent ) {
|
|||
if ( g_forcerespawn.integer > 0 &&
|
||||
( level.time - client->respawnTime ) > g_forcerespawn.integer * 1000 ) {
|
||||
// STONELANCE
|
||||
if (g_gametype.integer != GT_DERBY || !ent->client->finishRaceTime)
|
||||
if (g_gametype.integer != GT_DERBY || g_gametype.integer != GT_LCS || !ent->client->finishRaceTime)
|
||||
// END
|
||||
ClientRespawn( ent );
|
||||
return;
|
||||
|
@ -1581,7 +1581,7 @@ void ClientThink_real( gentity_t *ent ) {
|
|||
// pressing attack or use is the normal respawn method
|
||||
if ( ucmd->buttons & ( BUTTON_ATTACK | BUTTON_USE_HOLDABLE ) ) {
|
||||
// STONELANCE
|
||||
if (g_gametype.integer != GT_DERBY || !ent->client->finishRaceTime)
|
||||
if (g_gametype.integer != GT_DERBY || g_gametype.integer != GT_LCS || !ent->client->finishRaceTime)
|
||||
// END
|
||||
ClientRespawn( ent );
|
||||
}
|
||||
|
|
|
@ -1237,7 +1237,7 @@ void ClientBegin( int clientNum ) {
|
|||
// STONELANCE
|
||||
// Make sure that clients that were not fully connected when the
|
||||
// race was started will spawn as spectators
|
||||
if ((isRallyRace() || g_gametype.integer == GT_DERBY) && level.startRaceTime &&
|
||||
if ((isRallyRace() || g_gametype.integer == GT_DERBY || g_gametype.integer == GT_LCS) && level.startRaceTime &&
|
||||
client->sess.sessionTeam != TEAM_SPECTATOR && !isRaceObserver( clientNum ) &&
|
||||
!client->finishRaceTime ){
|
||||
|
||||
|
|
|
@ -69,7 +69,7 @@ void DeathmatchScoreboardMessage( gentity_t *ent ) {
|
|||
else
|
||||
time = level.startRaceTime;
|
||||
*/
|
||||
if ( isRallyRace() || g_gametype.integer == GT_DERBY )
|
||||
if ( isRallyRace() || g_gametype.integer == GT_DERBY || g_gametype.integer == GT_LCS )
|
||||
time = level.startRaceTime;
|
||||
else
|
||||
time = cl->switchTeamTime;
|
||||
|
@ -648,7 +648,7 @@ void SetTeam( gentity_t *ent, const char *s ) {
|
|||
specState = SPECTATOR_FREE;
|
||||
specWilling = qfalse;
|
||||
}
|
||||
else if ((isRallyRace() || g_gametype.integer == GT_DERBY) && level.startRaceTime){
|
||||
else if ((isRallyRace() || g_gametype.integer == GT_DERBY || g_gametype.integer == GT_LCS) && level.startRaceTime){
|
||||
trap_SendServerCommand( clientNum, "cp \"Cannot change teams\nduring a race.\n\"");
|
||||
return; // dont allow any change except to spectator during a race.
|
||||
}
|
||||
|
|
|
@ -530,7 +530,7 @@ void player_die( gentity_t *self, gentity_t *inflictor, gentity_t *attacker, int
|
|||
self->client->ps.pm_type = PM_DEAD;
|
||||
|
||||
// STONELANCE
|
||||
if (g_gametype.integer == GT_DERBY && level.startRaceTime){
|
||||
if (g_gametype.integer == GT_DERBY || g_gametype.integer == GT_LCS || level.startRaceTime){
|
||||
self->client->finishRaceTime = level.time;
|
||||
trap_SendServerCommand( -1, va("raceFinishTime %i %i", self->s.number, self->client->finishRaceTime) );
|
||||
}
|
||||
|
|
|
@ -926,7 +926,7 @@ int QDECL SortRanks( const void *a, const void *b ) {
|
|||
}
|
||||
}
|
||||
// sort by finish time if derby
|
||||
else if (g_gametype.integer == GT_DERBY){
|
||||
else if (g_gametype.integer == GT_DERBY && g_gametype.integer == GT_LCS ){
|
||||
if ( ca->finishRaceTime && cb->finishRaceTime ) {
|
||||
if (ca->finishRaceTime < cb->finishRaceTime)
|
||||
return 1;
|
||||
|
@ -1581,7 +1581,7 @@ qboolean ScoreIsTied( void ) {
|
|||
|
||||
// STONELANCE
|
||||
// races or rallys can never be tied, otherwise then the level will not end
|
||||
if ( g_gametype.integer == GT_DERBY || isRallyRace() )
|
||||
if ( g_gametype.integer == GT_DERBY || g_gametype.integer == GT_LCS || isRallyRace() )
|
||||
{
|
||||
/*
|
||||
a = level.clients[level.sortedClients[0]].finishRaceTime;
|
||||
|
@ -1705,6 +1705,56 @@ void CheckExitRules( void ) {
|
|||
|
||||
return;
|
||||
}
|
||||
|
||||
if (g_gametype.integer == GT_LCS && level.startRaceTime && !level.finishRaceTime) {
|
||||
gclient_t *winner = NULL;
|
||||
|
||||
for ( i=0, count = 0 ; i< g_maxclients.integer ; i++ ) {
|
||||
cl = level.clients + i;
|
||||
if ( cl->pers.connected != CON_CONNECTED ) continue;
|
||||
if ( cl->sess.sessionTeam == TEAM_SPECTATOR ) continue;
|
||||
if ( isRaceObserver( cl->ps.clientNum ) ) continue;
|
||||
if ( cl->ps.stats[STAT_HEALTH] <= 0 ) continue;
|
||||
|
||||
count++;
|
||||
winner = cl;
|
||||
}
|
||||
|
||||
if (winner && count == 1) {
|
||||
level.winnerNumber = winner->ps.clientNum;
|
||||
level.finishRaceTime = level.time;
|
||||
|
||||
trap_SendServerCommand( -1, va("print \"%s won the last car standing!\n\"", winner->pers.netname ));
|
||||
trap_SendServerCommand( level.winnerNumber, "cp \"You won the last car standing!\n\"");
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (g_gametype.integer == GT_LCS && level.startRaceTime && !level.finishRaceTime) {
|
||||
gclient_t *winner = NULL;
|
||||
|
||||
for ( i=0, count = 0 ; i< g_maxclients.integer ; i++ ) {
|
||||
cl = level.clients + i;
|
||||
if ( cl->pers.connected != CON_CONNECTED ) continue;
|
||||
if ( cl->sess.sessionTeam == TEAM_SPECTATOR ) continue;
|
||||
if ( isRaceObserver( cl->ps.clientNum ) ) continue;
|
||||
if ( cl->ps.stats[STAT_HEALTH] <= 0 ) continue;
|
||||
|
||||
count++;
|
||||
winner = cl;
|
||||
}
|
||||
|
||||
if (winner && count == 1) {
|
||||
level.winnerNumber = winner->ps.clientNum;
|
||||
level.finishRaceTime = level.time;
|
||||
|
||||
trap_SendServerCommand( -1, va("print \"%s won the last car standing!\n\"", winner->pers.netname ));
|
||||
trap_SendServerCommand( level.winnerNumber, "cp \"You won the last car standing!\n\"");
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
for ( i = 0, count = 0 ; i< g_maxclients.integer ; i++ ) {
|
||||
|
@ -1741,11 +1791,19 @@ void CheckExitRules( void ) {
|
|||
LogExit( "Derby finished." );
|
||||
return;
|
||||
}
|
||||
|
||||
if ( level.finishRaceTime && g_gametype.integer == GT_LCS
|
||||
&& level.finishRaceTime + 10000 < level.time ){
|
||||
g_entities[ level.winnerNumber ].client->finishRaceTime = level.time;
|
||||
trap_SendServerCommand( -1, va("raceFinishTime %i %i", level.winnerNumber, level.time) );
|
||||
LogExit( "Last car standing finished." );
|
||||
return;
|
||||
}
|
||||
// END
|
||||
|
||||
// STONELANCE
|
||||
// dont check frags or captures during a race or derby
|
||||
if ( isRallyRace() || g_gametype.integer == GT_DERBY ){
|
||||
if ( isRallyRace() || g_gametype.integer == GT_DERBY || g_gametype.integer == GT_LCS ){
|
||||
return;
|
||||
}
|
||||
// END
|
||||
|
|
|
@ -436,7 +436,7 @@ void RallyStarter_Think( gentity_t *ent ){
|
|||
|
||||
Rally_Sound( ent, EV_GLOBAL_SOUND, CHAN_ANNOUNCER, G_SoundIndex("sound/rally/race/go.wav") );
|
||||
|
||||
if (g_gametype.integer != GT_DERBY)
|
||||
if (g_gametype.integer != GT_DERBY || g_gametype.integer != GT_LCS)
|
||||
ent->think = RallyRace_Think;
|
||||
}
|
||||
else if ( level.time > ent->pain_debounce_time + 4000 ){
|
||||
|
|
|
@ -342,6 +342,8 @@ starts "10"
|
|||
Com_sprintf( string, sizeof(string), "{\nmap \"%s\"\nlongname \"%s\"\nfraglimit %i\ntype \"q3r_racing q3r_team_racing q3r_racing_dm q3r_team_racing_dm\"\nstarts \"%i\"\nlaps \"%i\"\nlength \"%.3f miles\"\ncheckpoints \"%i\"\nobserverspots \"%i\"\nweapons \"%i\"\npowerups \"%i\"\n}\n", Info_ValueForKey( serverinfo, "mapname" ), longname, level.numberOfLaps, numSpawnPoints, numLaps, trackLength, numCheckpoints, numObserverSpots, numWeapons, numPowerups);
|
||||
else if ( g_gametype.integer == GT_DERBY )
|
||||
Com_sprintf( string, sizeof(string), "{\nmap \"%s\"\nlongname \"%s\"\nfraglimit %i\ntype \"q3r_derby\"\nstarts \"%i\"\nobserverspots \"%i\"\nweapons \"%i\"\npowerups \"%i\"\n}\n", Info_ValueForKey( serverinfo, "mapname" ), longname, g_fraglimit.integer, numSpawnPoints, numObserverSpots, numWeapons, numPowerups);
|
||||
else if ( g_gametype.integer == GT_LCS )
|
||||
Com_sprintf( string, sizeof(string), "{\nmap \"%s\"\nlongname \"%s\"\nfraglimit %i\ntype \"q3r_lcs\"\nstarts \"%i\"\nobserverspots \"%i\"\nweapons \"%i\"\npowerups \"%i\"\n}\n", Info_ValueForKey( serverinfo, "mapname" ), longname, g_fraglimit.integer, numSpawnPoints, numObserverSpots, numWeapons, numPowerups);
|
||||
else if ( g_gametype.integer == GT_CTF )
|
||||
Com_sprintf( string, sizeof(string), "{\nmap \"%s\"\nlongname \"%s\"\nfraglimit %i\ntype \"q3r_ctf\"\nstarts \"%i\"\nobserverspots \"%i\"\nweapons \"%i\"\npowerups \"%i\"\n}\n", Info_ValueForKey( serverinfo, "mapname" ), longname, g_fraglimit.integer, numSpawnPoints, numObserverSpots, numWeapons, numPowerups);
|
||||
else if ( g_gametype.integer == GT_DEATHMATCH || g_gametype.integer == GT_TEAM )
|
||||
|
|
|
@ -155,6 +155,18 @@ void G_InitSessionData( gclient_t *client, char *userinfo ) {
|
|||
sess->sessionTeam = TEAM_FREE;
|
||||
}
|
||||
break;
|
||||
|
||||
case GT_LCS:
|
||||
if ( g_maxGameClients.integer > 0 &&
|
||||
level.numNonSpectatorClients >= g_maxGameClients.integer ) {
|
||||
sess->sessionTeam = TEAM_SPECTATOR;
|
||||
}
|
||||
else if (level.startRaceTime){
|
||||
sess->sessionTeam = TEAM_SPECTATOR;
|
||||
} else {
|
||||
sess->sessionTeam = TEAM_FREE;
|
||||
}
|
||||
break;
|
||||
|
||||
case GT_DEATHMATCH:
|
||||
// END
|
||||
|
|
|
@ -480,7 +480,7 @@ void G_SpawnGEntityFromSpawnVars( void ) {
|
|||
// UPDATE : change these
|
||||
// STONELANCE
|
||||
// static char *gametypeNames[] = {"ffa", "tournament", "single", "team", "ctf", "oneflag", "obelisk", "harvester"};
|
||||
static char *gametypeNames[] = {"racing", "racing_dm", "single", "derby", "dm", "team", "team_racing", "team_racing_dm", "ctf"};
|
||||
static char *gametypeNames[] = {"racing", "racing_dm", "single", "derby", "lcs", "dm", "team", "team_racing", "team_racing_dm", "ctf"};
|
||||
// END
|
||||
|
||||
// get the next free entity
|
||||
|
@ -771,7 +771,7 @@ void SP_worldspawn( void ) {
|
|||
}
|
||||
|
||||
// STONELANCE
|
||||
if (isRallyRace() || g_gametype.integer == GT_DERBY){
|
||||
if (isRallyRace() || g_gametype.integer == GT_DERBY || g_gametype.integer == GT_LCS){
|
||||
CreateRallyStarter();
|
||||
}
|
||||
|
||||
|
|
|
@ -66,6 +66,8 @@ extern vmCvar_t ui_team_racing_friendly;
|
|||
|
||||
extern vmCvar_t ui_derby_timelimit;
|
||||
|
||||
extern vmCvar_t ui_lcs_timelimit;
|
||||
|
||||
extern vmCvar_t ui_dm_fraglimit;
|
||||
extern vmCvar_t ui_dm_timelimit;
|
||||
|
||||
|
|
|
@ -121,6 +121,8 @@ vmCvar_t ui_team_racing_friendly;
|
|||
|
||||
vmCvar_t ui_derby_timelimit;
|
||||
|
||||
vmCvar_t ui_lcs_timelimit;
|
||||
|
||||
vmCvar_t ui_dm_fraglimit;
|
||||
vmCvar_t ui_dm_timelimit;
|
||||
|
||||
|
|
|
@ -126,13 +126,14 @@ MULTIPLAYER MENU (SERVER BROWSER)
|
|||
#define GAMES_RACING 1
|
||||
#define GAMES_RACING_DM 2
|
||||
#define GAMES_DERBY 3
|
||||
#define GAMES_DEATHMATCH 4
|
||||
#define GAMES_TEAM_RACING 5
|
||||
#define GAMES_TEAM_RACING_DM 6
|
||||
#define GAMES_TEAMPLAY 7
|
||||
#define GAMES_CTF 8
|
||||
#define GAMES_DOMINATION 9
|
||||
#define GAMES_NUM_GAMES 10
|
||||
#define GAMES_LCS 4
|
||||
#define GAMES_DEATHMATCH 5
|
||||
#define GAMES_TEAM_RACING 6
|
||||
#define GAMES_TEAM_RACING_DM 7
|
||||
#define GAMES_TEAMPLAY 8
|
||||
#define GAMES_CTF 9
|
||||
#define GAMES_DOMINATION 10
|
||||
#define GAMES_NUM_GAMES 11
|
||||
// END
|
||||
|
||||
static const char *master_items[] = {
|
||||
|
@ -159,6 +160,7 @@ static const char *servertype_items[] = {
|
|||
"Racing",
|
||||
"Racing Deathmatch",
|
||||
"Demolition Derby",
|
||||
"Last Car Standing",
|
||||
"Deathmatch",
|
||||
"Team Racing",
|
||||
"Team Racing Deathmatch",
|
||||
|
@ -198,6 +200,7 @@ static char* gamenames[] = {
|
|||
"Race DM",
|
||||
"SP ",
|
||||
"Derby",
|
||||
"LCS ",
|
||||
"DM ",
|
||||
"TRace",
|
||||
"TRace DM",
|
||||
|
@ -498,6 +501,10 @@ int ArenaServers_GametypeForGames(int games) {
|
|||
gametype = GT_DERBY;
|
||||
break;
|
||||
|
||||
case GAMES_LCS:
|
||||
gametype = GT_LCS;
|
||||
break;
|
||||
|
||||
case GAMES_TEAM_RACING:
|
||||
gametype = GT_TEAM_RACING;
|
||||
break;
|
||||
|
|
|
@ -135,6 +135,7 @@ static const char *gametype_items[] = {
|
|||
"Racing",
|
||||
"Racing Deathmatch",
|
||||
"Demolition Derby",
|
||||
"Last Car Standing",
|
||||
"Deathmatch",
|
||||
"Team Deathmatch",
|
||||
"Team Racing",
|
||||
|
@ -146,8 +147,8 @@ static const char *gametype_items[] = {
|
|||
|
||||
// STONELANCE
|
||||
// gametype_items[gametype_remap2[s_serveroptions.gametype]]
|
||||
static int gametype_remap[] = {GT_RACING, GT_RACING_DM, GT_DERBY, GT_DEATHMATCH, GT_TEAM, GT_TEAM_RACING, GT_TEAM_RACING_DM, GT_CTF, GT_DOMINATION};
|
||||
static int gametype_remap2[] = {0, 1, 0, 2, 3, 4, 5, 6, 7, 8};
|
||||
static int gametype_remap[] = {GT_RACING, GT_RACING_DM, GT_DERBY, GT_LCS, GT_DEATHMATCH, GT_TEAM, GT_TEAM_RACING, GT_TEAM_RACING_DM, GT_CTF, GT_DOMINATION};
|
||||
static int gametype_remap2[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
|
||||
|
||||
int allowLength[3];
|
||||
int reversable;
|
||||
|
@ -406,6 +407,11 @@ static int GametypeBits( char *string ) {
|
|||
bits |= 1 << GT_DERBY;
|
||||
continue;
|
||||
}
|
||||
|
||||
if( Q_stricmp( token, "q3r_lcs" ) == 0 ) {
|
||||
bits |= 1 << GT_LCS;
|
||||
continue;
|
||||
}
|
||||
|
||||
if( Q_stricmp( token, "q3r_dm" ) == 0 ) {
|
||||
bits |= 1 << GT_DEATHMATCH;
|
||||
|
@ -1292,6 +1298,10 @@ static void ServerOptions_Start( void ) {
|
|||
case GT_DERBY:
|
||||
trap_Cvar_SetValue( "ui_derby_timelimit", timelimit );
|
||||
break;
|
||||
|
||||
case GT_LCS:
|
||||
trap_Cvar_SetValue( "ui_lcs_timelimit", timelimit );
|
||||
break;
|
||||
|
||||
case GT_DEATHMATCH:
|
||||
trap_Cvar_SetValue( "ui_dm_fraglimit", fraglimit );
|
||||
|
@ -1750,6 +1760,10 @@ static void ServerOptions_SetMenuItems( void ) {
|
|||
case GT_DERBY:
|
||||
Com_sprintf( s_serveroptions.timelimit.field.buffer, 4, "%i", (int)Com_Clamp( 0, 999, trap_Cvar_VariableValue( "ui_derby_timelimit" ) ) );
|
||||
break;
|
||||
|
||||
case GT_LCS:
|
||||
Com_sprintf( s_serveroptions.timelimit.field.buffer, 4, "%i", (int)Com_Clamp( 0, 999, trap_Cvar_VariableValue( "ui_lcs_timelimit" ) ) );
|
||||
break;
|
||||
|
||||
case GT_DEATHMATCH:
|
||||
Com_sprintf( s_serveroptions.fraglimit.field.buffer, 4, "%i", (int)Com_Clamp( 0, 999, trap_Cvar_VariableValue( "ui_dm_fraglimit" ) ) );
|
||||
|
@ -2175,48 +2189,55 @@ if (s_serveroptions.gametype == GT_DOMINATION) {
|
|||
}
|
||||
|
||||
// STONELANCE
|
||||
if( s_serveroptions.gametype != GT_DERBY ) {
|
||||
if( s_serveroptions.gametype == GT_DERBY || s_serveroptions.gametype == GT_LCS ) {
|
||||
// Your code here
|
||||
}
|
||||
// END
|
||||
if( s_serveroptions.gametype != GT_CTF && s_serveroptions.gametype != GT_DOMINATION ) {
|
||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.fraglimit );
|
||||
}
|
||||
else {
|
||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.flaglimit );
|
||||
}
|
||||
|
||||
if( s_serveroptions.gametype != GT_CTF && s_serveroptions.gametype != GT_DOMINATION
|
||||
&& s_serveroptions.gametype != GT_DERBY && s_serveroptions.gametype != GT_LCS ) {
|
||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.fraglimit );
|
||||
}
|
||||
else if( s_serveroptions.gametype == GT_CTF || s_serveroptions.gametype == GT_DOMINATION ) {
|
||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.flaglimit );
|
||||
}
|
||||
|
||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.timelimit );
|
||||
|
||||
if( s_serveroptions.gametype >= GT_TEAM ) {
|
||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.friendlyfire );
|
||||
}
|
||||
|
||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.pure );
|
||||
|
||||
// STONELANCE
|
||||
}
|
||||
if( s_serveroptions.gametype == GT_RACING || s_serveroptions.gametype == GT_RACING_DM
|
||||
|| s_serveroptions.gametype == GT_TEAM_RACING || s_serveroptions.gametype == GT_TEAM_RACING_DM) {
|
||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.trackLength );
|
||||
|
||||
|
||||
if ( reversable )
|
||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.reversed );
|
||||
}
|
||||
// END
|
||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.timelimit );
|
||||
if( s_serveroptions.gametype >= GT_TEAM ) {
|
||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.friendlyfire );
|
||||
}
|
||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.pure );
|
||||
// STONELANCE
|
||||
if( s_serveroptions.gametype == GT_RACING || s_serveroptions.gametype == GT_RACING_DM
|
||||
|| s_serveroptions.gametype == GT_TEAM_RACING || s_serveroptions.gametype == GT_TEAM_RACING_DM) {
|
||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.trackLength );
|
||||
|
||||
|
||||
if ( reversable )
|
||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.reversed );
|
||||
}
|
||||
// END
|
||||
if( s_serveroptions.multiplayer ) {
|
||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.dedicated );
|
||||
}
|
||||
if( s_serveroptions.multiplayer ) {
|
||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.hostname );
|
||||
}
|
||||
|
||||
if( s_serveroptions.multiplayer ) {
|
||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.dedicated );
|
||||
}
|
||||
|
||||
if( s_serveroptions.multiplayer ) {
|
||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.hostname );
|
||||
}
|
||||
|
||||
if (s_serveroptions.gametype == GT_DOMINATION) {
|
||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.dominationSpawnStyle );
|
||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.sigillocator );
|
||||
}
|
||||
}
|
||||
|
||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.back );
|
||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.go );
|
||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.back );
|
||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.go );
|
||||
|
||||
ServerOptions_SetMenuItems();
|
||||
ServerOptions_SetMenuItems();
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -111,12 +111,13 @@ MULTIPLAYER MENU (SERVER BROWSER)
|
|||
#define GAMES_RACING 1
|
||||
#define GAMES_RACING_DM 2
|
||||
#define GAMES_DERBY 3
|
||||
#define GAMES_DEATHMATCH 4
|
||||
#define GAMES_TEAM_RACING 5
|
||||
#define GAMES_TEAM_RACING_DM 6
|
||||
#define GAMES_TEAMPLAY 7
|
||||
#define GAMES_CTF 8
|
||||
#define GAMES_DOMINATION 9
|
||||
#define GAMES_LCS 4
|
||||
#define GAMES_DEATHMATCH 5
|
||||
#define GAMES_TEAM_RACING 6
|
||||
#define GAMES_TEAM_RACING_DM 7
|
||||
#define GAMES_TEAMPLAY 8
|
||||
#define GAMES_CTF 9
|
||||
#define GAMES_DOMINATION 10
|
||||
// END
|
||||
|
||||
static const char *master_items[] = {
|
||||
|
@ -139,6 +140,7 @@ static const char *servertype_items[] = {
|
|||
"Racing",
|
||||
"Racing Deathmatch",
|
||||
"Demolition Derby",
|
||||
"Last Car Standing",
|
||||
"Deathmatch",
|
||||
"Team Racing",
|
||||
"Team Racing Deathmatch",
|
||||
|
@ -177,6 +179,7 @@ static char* gamenames[] = {
|
|||
"Race",
|
||||
"Race DM",
|
||||
"Derby",
|
||||
"LCS",
|
||||
"DM ",
|
||||
"TRace",
|
||||
"TRace DM",
|
||||
|
@ -579,6 +582,12 @@ static void ArenaServers_UpdateMenu( void ) {
|
|||
continue;
|
||||
}
|
||||
break;
|
||||
|
||||
case GAMES_LCS:
|
||||
if( servernodeptr->gametype != GT_LCS ) {
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
|
||||
case GAMES_TEAM_RACING:
|
||||
if( servernodeptr->gametype != GT_TEAM_RACING ) {
|
||||
|
@ -1174,6 +1183,10 @@ static void ArenaServers_StartRefresh( void )
|
|||
case GAMES_DERBY:
|
||||
strcpy( myargs, " derby" );
|
||||
break;
|
||||
|
||||
case GAMES_LCS:
|
||||
strcpy( myargs, " lcs" );
|
||||
break;
|
||||
|
||||
case GAMES_TEAM_RACING:
|
||||
strcpy( myargs, " team_racing" );
|
||||
|
|
|
@ -97,14 +97,15 @@ static startserver_t s_startserver;
|
|||
static const char *gametype_items[] = {
|
||||
"Free For All",
|
||||
"Team Deathmatch",
|
||||
"Tournament",
|
||||
"Demolition Derby",
|
||||
"Last Car Standing",
|
||||
"Capture the Flag",
|
||||
0
|
||||
};
|
||||
|
||||
// STONELANCE - removed gametype
|
||||
// static int gametype_remap[] = {GT_FFA, GT_TEAM, GT_TOURNAMENT, GT_CTF};
|
||||
static int gametype_remap[] = {GT_RACING, GT_TEAM, GT_DERBY, GT_CTF};
|
||||
static int gametype_remap[] = {GT_RACING, GT_TEAM, GT_DERBY, GT_LCS, GT_CTF};
|
||||
// END
|
||||
static int gametype_remap2[] = {0, 2, 0, 1, 3};
|
||||
|
||||
|
|
|
@ -215,6 +215,12 @@ void TeamMain_MenuInit( void ) {
|
|||
s_teammain.joingreen.generic.flags |= QMF_GRAYED;
|
||||
s_teammain.joinyellow.generic.flags |= QMF_GRAYED;
|
||||
break;
|
||||
case GT_LCS:
|
||||
s_teammain.joinred.generic.flags |= QMF_GRAYED;
|
||||
s_teammain.joinblue.generic.flags |= QMF_GRAYED;
|
||||
s_teammain.joingreen.generic.flags |= QMF_GRAYED;
|
||||
s_teammain.joinyellow.generic.flags |= QMF_GRAYED;
|
||||
break;
|
||||
// END
|
||||
default:
|
||||
case GT_TEAM:
|
||||
|
|
Loading…
Reference in a new issue