mirror of
https://github.com/ReactionQuake3/reaction.git
synced 2024-11-22 20:31:11 +00:00
Fixed the use ESC and join menu to join teams when dead players are
spectating in TP mode. Tuned the autorespawn system a bit. Now dead ppl. are dead for a very small time before they are made into spectators.
This commit is contained in:
parent
4846491ea6
commit
93b03c0ea6
7 changed files with 76 additions and 23 deletions
|
@ -5,6 +5,12 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// $Log$
|
||||
// Revision 1.21 2002/02/25 19:41:53 jbravo
|
||||
// Fixed the use ESC and join menu to join teams when dead players are
|
||||
// spectating in TP mode.
|
||||
// Tuned the autorespawn system a bit. Now dead ppl. are dead for a very
|
||||
// small time before they are made into spectators.
|
||||
//
|
||||
// Revision 1.20 2002/02/23 18:07:46 slicer
|
||||
// Changed Sniper code and Cam code
|
||||
//
|
||||
|
@ -2752,7 +2758,8 @@ static void CG_Draw2D( void ) {
|
|||
*/
|
||||
//Slicer: Adding HUD for follow spectating
|
||||
if ( cg.snap->ps.persistant[PERS_TEAM] == TEAM_SPECTATOR && !(cg.snap->ps.pm_flags & PMF_FOLLOW) ) {
|
||||
CG_DrawSpectator();
|
||||
if (cg.snap->ps.persistant[PERS_SAVEDTEAM] != TEAM_RED && cg.snap->ps.persistant[PERS_SAVEDTEAM] != TEAM_BLUE)
|
||||
CG_DrawSpectator();
|
||||
CG_DrawCrosshair();
|
||||
CG_DrawCrosshairNames();
|
||||
} else {
|
||||
|
|
|
@ -5,6 +5,12 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// $Log$
|
||||
// Revision 1.47 2002/02/25 19:41:53 jbravo
|
||||
// Fixed the use ESC and join menu to join teams when dead players are
|
||||
// spectating in TP mode.
|
||||
// Tuned the autorespawn system a bit. Now dead ppl. are dead for a very
|
||||
// small time before they are made into spectators.
|
||||
//
|
||||
// Revision 1.46 2002/02/11 00:30:23 niceass
|
||||
// LCA fix
|
||||
//
|
||||
|
@ -569,6 +575,7 @@ typedef enum {
|
|||
PERS_GAUNTLET_FRAG_COUNT, // kills with the guantlet
|
||||
PERS_CAPTURES // captures
|
||||
*/
|
||||
PERS_SAVEDTEAM, // JBravo: for TP
|
||||
PERS_WEAPONMODES // Blaze: Holds the different weapond modes for the different guns see below for the defines to use
|
||||
} persEnum_t;
|
||||
//RQ3 Weapon modes - If the bit is set, then the weapon is in the more restrictive mode, as in if it's set to 1 it's semi, 3rnd burst, etc
|
||||
|
|
|
@ -5,6 +5,12 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// $Log$
|
||||
// Revision 1.55 2002/02/25 19:41:53 jbravo
|
||||
// Fixed the use ESC and join menu to join teams when dead players are
|
||||
// spectating in TP mode.
|
||||
// Tuned the autorespawn system a bit. Now dead ppl. are dead for a very
|
||||
// small time before they are made into spectators.
|
||||
//
|
||||
// Revision 1.54 2002/02/23 16:55:09 jbravo
|
||||
// Added debugging to help find what was going with can't find item for weapon
|
||||
// error that crash the server.
|
||||
|
@ -1473,13 +1479,13 @@ void ClientThink_real( gentity_t *ent ) {
|
|||
if (level.time > client->respawnTime) {
|
||||
// forcerespawn is to prevent users from waiting out powerups
|
||||
if (g_forcerespawn.integer > 0 &&
|
||||
(level.time - client->respawnTime ) > g_forcerespawn.integer * 1000) {
|
||||
if (g_gametype.integer == GT_TEAMPLAY) {
|
||||
MakeSpectator(ent);
|
||||
} else {
|
||||
(level.time - client->respawnTime ) > g_forcerespawn.integer * 1000 &&
|
||||
g_gametype.integer != GT_TEAMPLAY) {
|
||||
respawn( ent );
|
||||
}
|
||||
return;
|
||||
return;
|
||||
}
|
||||
if (g_gametype.integer == GT_TEAMPLAY && level.time > client->respawnTime) {
|
||||
MakeSpectator(ent);
|
||||
}
|
||||
|
||||
// pressing attack or use is the normal respawn method
|
||||
|
|
|
@ -5,6 +5,12 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// $Log$
|
||||
// Revision 1.55 2002/02/25 19:41:53 jbravo
|
||||
// Fixed the use ESC and join menu to join teams when dead players are
|
||||
// spectating in TP mode.
|
||||
// Tuned the autorespawn system a bit. Now dead ppl. are dead for a very
|
||||
// small time before they are made into spectators.
|
||||
//
|
||||
// Revision 1.54 2002/02/25 17:54:57 jbravo
|
||||
// Added [DEAD] tags infront of players names where appropriate and made
|
||||
// the server log conversation like AQ does.
|
||||
|
@ -728,6 +734,7 @@ void SetTeam( gentity_t *ent, char *s )
|
|||
client->sess.sessionTeam = team;
|
||||
} else if ( !client->sess.teamSpawn ) {
|
||||
client->sess.savedTeam = team;
|
||||
client->ps.persistant[PERS_SAVEDTEAM] = team;
|
||||
} else {
|
||||
client->sess.sessionTeam = team;
|
||||
}
|
||||
|
|
|
@ -5,6 +5,12 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// $Log$
|
||||
// Revision 1.45 2002/02/25 19:41:53 jbravo
|
||||
// Fixed the use ESC and join menu to join teams when dead players are
|
||||
// spectating in TP mode.
|
||||
// Tuned the autorespawn system a bit. Now dead ppl. are dead for a very
|
||||
// small time before they are made into spectators.
|
||||
//
|
||||
// Revision 1.44 2002/02/24 18:49:21 jbravo
|
||||
// Make it OK to frag teammates after rounds are over (no -1)
|
||||
//
|
||||
|
@ -910,21 +916,24 @@ void player_die( gentity_t *self, gentity_t *inflictor, gentity_t *attacker, int
|
|||
}
|
||||
#endif
|
||||
|
||||
Cmd_Score_f(self); // show scores
|
||||
// send updated scores to any clients that are following this one,
|
||||
// or they would get stale scoreboards
|
||||
for (i = 0 ; i < level.maxclients ; i++) {
|
||||
gclient_t *client;
|
||||
|
||||
client = &level.clients[i];
|
||||
if (client->pers.connected != CON_CONNECTED) {
|
||||
continue;
|
||||
}
|
||||
if (client->sess.sessionTeam != TEAM_SPECTATOR) {
|
||||
continue;
|
||||
}
|
||||
if (client->sess.spectatorClient == self->s.number) {
|
||||
Cmd_Score_f(g_entities + i);
|
||||
// JBravo: no need for automatic scoreboard on deaths.
|
||||
if (g_gametype.integer != GT_TEAMPLAY) {
|
||||
Cmd_Score_f(self); // show scores
|
||||
// send updated scores to any clients that are following this one,
|
||||
// or they would get stale scoreboards
|
||||
for (i = 0 ; i < level.maxclients ; i++) {
|
||||
gclient_t *client;
|
||||
|
||||
client = &level.clients[i];
|
||||
if (client->pers.connected != CON_CONNECTED) {
|
||||
continue;
|
||||
}
|
||||
if (client->sess.sessionTeam != TEAM_SPECTATOR) {
|
||||
continue;
|
||||
}
|
||||
if (client->sess.spectatorClient == self->s.number) {
|
||||
Cmd_Score_f(g_entities + i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -951,7 +960,7 @@ void player_die( gentity_t *self, gentity_t *inflictor, gentity_t *attacker, int
|
|||
// g_forcerespawn may force spawning at some later time
|
||||
// JBravo: we dont want automatic respawning of players in teamplay
|
||||
if (g_gametype.integer == GT_TEAMPLAY) {
|
||||
self->client->respawnTime = level.time + 400;
|
||||
self->client->respawnTime = level.time + 1000;
|
||||
} else {
|
||||
self->client->respawnTime = level.time + 1700;
|
||||
}
|
||||
|
|
|
@ -5,6 +5,12 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// $Log$
|
||||
// Revision 1.9 2002/02/25 19:41:53 jbravo
|
||||
// Fixed the use ESC and join menu to join teams when dead players are
|
||||
// spectating in TP mode.
|
||||
// Tuned the autorespawn system a bit. Now dead ppl. are dead for a very
|
||||
// small time before they are made into spectators.
|
||||
//
|
||||
// Revision 1.8 2002/02/09 00:10:12 jbravo
|
||||
// Fixed spectator follow and free and updated zcam to 1.04 and added the
|
||||
// missing zcam files.
|
||||
|
@ -126,6 +132,9 @@ void G_InitSessionData( gclient_t *client, char *userinfo ) {
|
|||
|
||||
sess->savedTeam = TEAM_SPECTATOR;
|
||||
|
||||
// JBravo: adding PERS_SAVEDTEAM
|
||||
client->ps.persistant[PERS_SAVEDTEAM] = TEAM_SPECTATOR;
|
||||
|
||||
// initial team determination
|
||||
if ( g_gametype.integer >= GT_TEAM ) {
|
||||
if ( g_teamAutoJoin.integer ) {
|
||||
|
|
|
@ -5,6 +5,12 @@
|
|||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// $Log$
|
||||
// Revision 1.20 2002/02/25 19:41:53 jbravo
|
||||
// Fixed the use ESC and join menu to join teams when dead players are
|
||||
// spectating in TP mode.
|
||||
// Tuned the autorespawn system a bit. Now dead ppl. are dead for a very
|
||||
// small time before they are made into spectators.
|
||||
//
|
||||
// Revision 1.19 2002/02/24 18:12:19 jbravo
|
||||
// Added a cvar to control sniper behavior g_RQ3_sniperup. Def 0. if set yo 1
|
||||
// it makes players spawn with the sniper up.
|
||||
|
@ -250,6 +256,7 @@ void MakeAllLivePlayersObservers()
|
|||
if (!player->inuse || player->client->ps.pm_type != PM_NORMAL)
|
||||
continue;
|
||||
level.clients[i].sess.savedTeam = level.clients[i].sess.sessionTeam;
|
||||
level.clients[i].ps.persistant[PERS_SAVEDTEAM] = level.clients[i].sess.sessionTeam;
|
||||
level.clients[i].sess.sessionTeam = TEAM_SPECTATOR;
|
||||
level.clients[i].sess.spectatorState = SPECTATOR_FREE;
|
||||
}
|
||||
|
@ -700,6 +707,7 @@ void MakeSpectator( gentity_t *ent )
|
|||
client->weaponCount[ent->client->ps.weapon] = 0;
|
||||
client->ps.stats[STAT_WEAPONS] = 0;
|
||||
client->sess.savedTeam = client->sess.sessionTeam;
|
||||
client->ps.persistant[PERS_SAVEDTEAM] = client->sess.sessionTeam;
|
||||
client->sess.sessionTeam = TEAM_SPECTATOR;
|
||||
client->ps.persistant[PERS_TEAM] = TEAM_SPECTATOR;
|
||||
ClientSpawn(ent);
|
||||
|
|
Loading…
Reference in a new issue