mirror of
https://github.com/UberGames/RPG-X2-rpgxEF.git
synced 2025-03-25 10:10:59 +00:00
Sync with rpgxEF repo
This commit is contained in:
parent
78498591ac
commit
20499cb401
5 changed files with 33 additions and 265 deletions
|
@ -1172,18 +1172,6 @@ static void Cmd_Class_f( gentity_t *ent ) {
|
|||
clientInitialStatus[ent->s.number].initialized = qfalse;
|
||||
if ( SetClass( ent, s, NULL, qtrue ) )
|
||||
{
|
||||
//if still in warmup, don't debounce class changes
|
||||
if ( g_doWarmup.integer )
|
||||
{
|
||||
if ( level.warmupTime != 0 )
|
||||
{
|
||||
if ( level.warmupTime < 0 || level.time - level.startTime <= level.warmupTime )
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
//if warmuptime is over, don't change classes again for a bit
|
||||
ent->client->classChangeDebounceTime = level.time + (g_classChangeDebounceTime.integer*1000);
|
||||
|
||||
trap_SendServerCommand( ent-g_entities, va ( "pc %s", s ) );
|
||||
|
@ -2293,24 +2281,7 @@ void Cmd_ForceClass_f( gentity_t *ent ) {
|
|||
|
||||
//if this is a manual change, not an assimilation, uninitialize the clInitStatus data
|
||||
clientInitialStatus[target->s.number].initialized = qfalse;
|
||||
if ( SetClass( target, s, NULL, qfalse ) )
|
||||
{
|
||||
//if still in warmup, don't debounce class changes
|
||||
if ( g_doWarmup.integer )
|
||||
{
|
||||
if ( level.warmupTime != 0 )
|
||||
{
|
||||
if ( level.warmupTime < 0 || level.time - level.startTime <= level.warmupTime )
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
//if warmuptime is over, don't change classes again for a bit
|
||||
//RPG-X: RedTechie - Can change class anytime we wish
|
||||
//target->client->classChangeDebounceTime = level.time + (g_classChangeDebounceTime.integer*1000);
|
||||
}
|
||||
else {
|
||||
if ( !SetClass( target, s, NULL, qfalse ) ) {
|
||||
trap_SendServerCommand( ent-g_entities, "print \"ERROR: Was unable to change class\n\" " );
|
||||
return;
|
||||
}
|
||||
|
@ -7922,66 +7893,6 @@ static void Cmd_SqlUserMod_f(gentity_t *ent) {
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifdef OLDSQL
|
||||
/*
|
||||
=================
|
||||
Cmd_SqlSetup_f
|
||||
=================
|
||||
*/
|
||||
static void Cmd_SqlSetup_f(gentity_t *ent) {
|
||||
int res;
|
||||
int clientNum;
|
||||
|
||||
if(!sql_use.integer || !ent || !ent->client) return;
|
||||
|
||||
if(!IsAdmin(ent)) {
|
||||
return;
|
||||
}
|
||||
|
||||
clientNum = ent->client->ps.clientNum;
|
||||
|
||||
res = trap_SQL_CreateTables(sql_dbName.string);
|
||||
|
||||
switch(res) {
|
||||
case 1:
|
||||
trap_SendServerCommand(clientNum, "print \"Seems to have worked, check server log.\n\"");
|
||||
break;
|
||||
case 0:
|
||||
trap_SendServerCommand(clientNum, "print \"An SQL Error occured, see server log for more information.\n\"");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
=================
|
||||
Cmd_SqlUserDel_f
|
||||
=================
|
||||
*/
|
||||
static void Cmd_SqlUserDel_f(gentity_t *ent) {
|
||||
char uName[MAX_TOKEN_CHARS];
|
||||
int res;
|
||||
int clientNum;
|
||||
|
||||
if(!sql_use.integer || !ent || !ent->client) return;
|
||||
|
||||
if(!IsAdmin(ent)) return;
|
||||
|
||||
if(trap_Argc() < 1) return;
|
||||
|
||||
clientNum = ent->client->ps.clientNum;
|
||||
|
||||
trap_Argv(1, uName, sizeof(uName));
|
||||
|
||||
res = trap_SQL_UserDel(sql_dbName.string, uName);
|
||||
|
||||
if(res) {
|
||||
trap_SendServerCommand(clientNum, "print \"Seems to have worked.\n\"");
|
||||
} else {
|
||||
trap_SendServerCommand(clientNum, "print \"An SQL Error occured.\n\"");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
=================
|
||||
Cmd_findEntitiesInRadius
|
||||
|
|
|
@ -649,8 +649,6 @@ typedef struct {
|
|||
|
||||
int snd_fry; //!< sound index for standing in lava
|
||||
|
||||
int warmupModificationCount; //!< for detecting if g_warmup is changed
|
||||
|
||||
qboolean firstStrike;
|
||||
|
||||
// voting state
|
||||
|
@ -1321,10 +1319,6 @@ extern vmCvar_t g_restarted;
|
|||
extern vmCvar_t g_language;
|
||||
|
||||
extern vmCvar_t g_dmflags;
|
||||
extern vmCvar_t g_fraglimit;
|
||||
extern vmCvar_t g_timelimit;
|
||||
extern vmCvar_t g_timelimitWinningTeam;
|
||||
extern vmCvar_t g_capturelimit;
|
||||
extern vmCvar_t g_friendlyFire;
|
||||
extern vmCvar_t g_password;
|
||||
extern vmCvar_t g_needpass;
|
||||
|
@ -1341,8 +1335,6 @@ extern vmCvar_t g_weaponRespawn;
|
|||
extern vmCvar_t g_adaptRespawn;
|
||||
extern vmCvar_t g_synchronousClients;
|
||||
extern vmCvar_t g_motd;
|
||||
extern vmCvar_t g_warmup;
|
||||
extern vmCvar_t g_doWarmup;
|
||||
extern vmCvar_t g_allowVote;
|
||||
extern vmCvar_t g_teamAutoJoin;
|
||||
extern vmCvar_t g_teamForceBalance;
|
||||
|
@ -1353,7 +1345,6 @@ extern vmCvar_t g_debugForward;
|
|||
extern vmCvar_t g_debugRight;
|
||||
extern vmCvar_t g_debugUp;
|
||||
extern vmCvar_t g_holoIntro;
|
||||
//extern vmCvar_t g_ghostRespawn;
|
||||
extern vmCvar_t g_team_group_red;
|
||||
extern vmCvar_t g_team_group_blue;
|
||||
extern vmCvar_t g_random_skin_limit;
|
||||
|
@ -1372,6 +1363,9 @@ extern vmCvar_t rpg_rangetricorder;
|
|||
extern vmCvar_t rpg_rangehypo;
|
||||
extern vmCvar_t rpg_norpgclasses;
|
||||
extern vmCvar_t rpg_forceclasscolor;
|
||||
/*
|
||||
* TODO: move all those rpg_no... cvars into a single var with flags? Similar to how spawnflags work.
|
||||
*/
|
||||
extern vmCvar_t rpg_nosecurity;
|
||||
extern vmCvar_t rpg_nomarine;
|
||||
extern vmCvar_t rpg_nomedical;
|
||||
|
@ -1383,31 +1377,20 @@ extern vmCvar_t rpg_nomaker;
|
|||
extern vmCvar_t rpg_non00b;
|
||||
extern vmCvar_t rpg_nocloak;
|
||||
extern vmCvar_t rpg_noflight;
|
||||
/*
|
||||
* TODO: move damage switching into a singe var with flags just similar to how spawnflags work?
|
||||
* 1 = phaser, 2 = rifle, ...
|
||||
*/
|
||||
extern vmCvar_t rpg_phaserdmg;
|
||||
extern vmCvar_t rpg_rifledmg;
|
||||
extern vmCvar_t rpg_stasisdmg;
|
||||
extern vmCvar_t rpg_imoddmg;
|
||||
extern vmCvar_t rpg_noweapons;
|
||||
//extern vmCvar_t rpg_marinepass;
|
||||
//extern vmCvar_t rpg_securitypass;
|
||||
//extern vmCvar_t rpg_adminpass;
|
||||
//extern vmCvar_t rpg_medicalpass;
|
||||
//extern vmCvar_t rpg_sciencepass;
|
||||
//extern vmCvar_t rpg_commandpass;
|
||||
//extern vmCvar_t rpg_engineerpass;
|
||||
//extern vmCvar_t rpg_alienpass;
|
||||
//extern vmCvar_t rpg_n00bpass;
|
||||
//extern vmCvar_t rpg_alienflags;
|
||||
//extern vmCvar_t rpg_marineflags;
|
||||
//extern vmCvar_t rpg_securityflags;
|
||||
//extern vmCvar_t rpg_adminflags;
|
||||
//extern vmCvar_t rpg_medicalflags;
|
||||
//extern vmCvar_t rpg_scienceflags;
|
||||
//extern vmCvar_t rpg_commandflags;
|
||||
//extern vmCvar_t rpg_engineerflags;
|
||||
extern vmCvar_t rpg_welcomemessage;
|
||||
//extern vmCvar_t rpg_timedmessage;
|
||||
extern vmCvar_t rpg_timedmessagetime;
|
||||
/*
|
||||
* TODO: save cvars by storing timed messages in a list?
|
||||
*/
|
||||
extern vmCvar_t rpg_message1;
|
||||
extern vmCvar_t rpg_message2;
|
||||
extern vmCvar_t rpg_message3;
|
||||
|
@ -1421,14 +1404,12 @@ extern vmCvar_t rpg_message10;
|
|||
extern vmCvar_t rpg_forcekillradius;
|
||||
extern vmCvar_t rpg_forcekillradiuswaittime;
|
||||
|
||||
//extern vmCvar_t rpg_noclipspectating;
|
||||
extern vmCvar_t rpg_chatarearange;
|
||||
extern vmCvar_t rpg_forcefielddamage;
|
||||
extern vmCvar_t rpg_invisibletripmines;
|
||||
extern vmCvar_t rpg_medicsrevive;
|
||||
extern vmCvar_t rpg_effectsgun;
|
||||
extern vmCvar_t rpg_phaserdisintegrates;
|
||||
//extern vmCvar_t rpg_enabledranks;
|
||||
extern vmCvar_t rpg_servershakeallclients;
|
||||
extern vmCvar_t rpg_kickAfterXkills; //RPG-X | Phenix | 06/04/2005
|
||||
extern vmCvar_t rpg_rankSet;
|
||||
|
@ -1441,8 +1422,12 @@ extern vmCvar_t rpg_changeRanks;
|
|||
extern vmCvar_t rpg_classSet;
|
||||
|
||||
extern vmCvar_t rpg_scannablePanels;
|
||||
//extern vmCvar_t rpg_scannableForceField; //RPG-X | GSIO01 | 13/05/2009
|
||||
|
||||
/*
|
||||
* TODO put maxs and mins into a single cvar to save cvars?
|
||||
* e.g. rpg_heightLimits
|
||||
* value would be a range. for example: "0.9-1.15"
|
||||
*/
|
||||
extern vmCvar_t rpg_maxHeight;
|
||||
extern vmCvar_t rpg_minHeight;
|
||||
extern vmCvar_t rpg_maxWeight;
|
||||
|
@ -1455,7 +1440,6 @@ extern vmCvar_t rpg_mapGiveFlags;
|
|||
extern vmCvar_t rpg_allowWeaponDrop;
|
||||
extern vmCvar_t rpg_weaponsStay;
|
||||
extern vmCvar_t rpg_dropOnDeath;
|
||||
//extern vmCvar_t rpg_flushDroppedOnDisconnect; //RPG-X | GSIO01 | 08/05/2009
|
||||
|
||||
// Weapon speeds
|
||||
extern vmCvar_t rpg_rifleSpeed; //RPG-X | Marcin | 04/12/2008
|
||||
|
@ -1500,7 +1484,7 @@ extern vmCvar_t rpg_minToolkits; //RPG-X | Marcin | 30/12/2008
|
|||
extern vmCvar_t rpg_minHyperSpanners;//RPG-X | Marcin | 30/12/2008
|
||||
|
||||
// respawn delay
|
||||
extern vmCvar_t rpg_fraggerSpawnDelay; //RPG-X | Marcin | 03/01/2009
|
||||
extern vmCvar_t rpg_fraggerSpawnDelay; //RPG-X | Marcin | 03/01/2009
|
||||
|
||||
// borg adaption
|
||||
extern vmCvar_t rpg_borgAdapt; //RPG-X | GSIO01 | 08/05/2009
|
||||
|
@ -1536,6 +1520,10 @@ extern vmCvar_t rpg_adminVoteOverride;
|
|||
|
||||
// server change entity
|
||||
extern vmCvar_t rpg_serverchange;
|
||||
/*
|
||||
* TODO: move serverchange configuration to external
|
||||
* config nad store info in a list rather than cvars
|
||||
*/
|
||||
extern vmCvar_t rpg_server1;
|
||||
extern vmCvar_t rpg_server2;
|
||||
extern vmCvar_t rpg_server3;
|
||||
|
@ -1546,18 +1534,14 @@ extern vmCvar_t rpg_server6;
|
|||
// SP level change
|
||||
extern vmCvar_t rpg_allowSPLevelChange;
|
||||
|
||||
/* TODO some might be removed */
|
||||
extern vmCvar_t sql_dbName;
|
||||
// SQL Database
|
||||
extern vmCvar_t sql_use;
|
||||
extern vmCvar_t sql_server;
|
||||
extern vmCvar_t sql_user;
|
||||
extern vmCvar_t sql_password;
|
||||
extern vmCvar_t sql_port;
|
||||
extern vmCvar_t sql_hash;
|
||||
|
||||
// developer tools
|
||||
extern vmCvar_t dev_showTriggers;
|
||||
|
||||
extern vmCvar_t rpg_spEasterEggs;
|
||||
|
||||
|
||||
|
||||
//RPG-X - Stephen: Some global varibles for RPG-X
|
||||
|
|
|
@ -39,10 +39,6 @@ g_classData_t g_classData[MAX_CLASSES];
|
|||
|
||||
vmCvar_t g_gametype;
|
||||
vmCvar_t g_dmflags;
|
||||
vmCvar_t g_fraglimit;
|
||||
vmCvar_t g_timelimit;
|
||||
vmCvar_t g_timelimitWinningTeam;
|
||||
vmCvar_t g_capturelimit;
|
||||
vmCvar_t g_friendlyFire;
|
||||
vmCvar_t g_password;
|
||||
vmCvar_t g_needpass;
|
||||
|
@ -63,8 +59,6 @@ vmCvar_t g_weaponRespawn;
|
|||
vmCvar_t g_adaptRespawn;
|
||||
vmCvar_t g_motd;
|
||||
vmCvar_t g_synchronousClients;
|
||||
vmCvar_t g_warmup;
|
||||
vmCvar_t g_doWarmup;
|
||||
vmCvar_t g_restarted;
|
||||
vmCvar_t g_log;
|
||||
vmCvar_t g_logSync;
|
||||
|
@ -312,14 +306,8 @@ vmCvar_t rpg_server6;
|
|||
//! Allow target_levelchange to change the current level?
|
||||
vmCvar_t rpg_allowSPLevelChange;
|
||||
|
||||
/* TODO some might be removed */
|
||||
vmCvar_t sql_dbName; //!< Name of the SQL Database
|
||||
/* SQL Database */
|
||||
vmCvar_t sql_use; //!< Use SQL? 1 = mysql, 2 = sqlite
|
||||
vmCvar_t sql_server; //!< SQL server to connect to (only mysql)
|
||||
vmCvar_t sql_user; //!< SQL user for sql_server (only mysql)
|
||||
vmCvar_t sql_password; //!< SQL password for sql_server (only mysql)
|
||||
vmCvar_t sql_port; //!< SQL port to use to connect to sql_server (only mysql)
|
||||
vmCvar_t sql_hash; //!< Specifies whether passwords should be hashed and what hash to use (only mysql)
|
||||
|
||||
// developer tools
|
||||
vmCvar_t dev_showTriggers;
|
||||
|
@ -333,6 +321,8 @@ vmCvar_t lua_allowedModules;
|
|||
|
||||
vmCvar_t g_developer;
|
||||
|
||||
vmCvar_t rpg_spEasterEggs;
|
||||
|
||||
|
||||
static cvarTable_t gameCvarTable[] = {
|
||||
// don't override the cheat state set by the system
|
||||
|
@ -352,10 +342,6 @@ static cvarTable_t gameCvarTable[] = {
|
|||
|
||||
// change anytime vars
|
||||
{ &g_dmflags, "dmflags", "0", CVAR_SERVERINFO | CVAR_ARCHIVE, 0, qtrue },
|
||||
{ &g_fraglimit, "fraglimit", "20", CVAR_SERVERINFO | CVAR_ARCHIVE | CVAR_NORESTART, 0, qtrue },
|
||||
{ &g_timelimit, "timelimit", "0", CVAR_SERVERINFO | CVAR_ARCHIVE | CVAR_NORESTART, 0, qtrue },
|
||||
{ &g_timelimitWinningTeam, "timelimitWinningTeam", "", CVAR_NORESTART, 0, qtrue },
|
||||
{ &g_capturelimit, "capturelimit", "8", CVAR_SERVERINFO | CVAR_ARCHIVE | CVAR_NORESTART, 0, qtrue },
|
||||
|
||||
{ &g_synchronousClients, "g_synchronousClients", "0", CVAR_SYSTEMINFO, 0, qfalse },
|
||||
|
||||
|
@ -365,8 +351,6 @@ static cvarTable_t gameCvarTable[] = {
|
|||
{ &g_teamForceBalance, "g_teamForceBalance", "1", CVAR_ARCHIVE, 0, qfalse },
|
||||
|
||||
{ &g_intermissionTime, "g_intermissionTime", "20", CVAR_ARCHIVE, 0, qtrue },
|
||||
{ &g_warmup, "g_warmup", "20", CVAR_LATCH | CVAR_ARCHIVE, 0, qfalse },
|
||||
{ &g_doWarmup, "g_doWarmup", "0", CVAR_LATCH | CVAR_ARCHIVE, 0, qfalse },
|
||||
{ &g_log, "g_log", "", CVAR_ARCHIVE, 0, qfalse },
|
||||
{ &g_logSync, "g_logSync", "0", CVAR_ARCHIVE, 0, qfalse },
|
||||
|
||||
|
@ -552,21 +536,14 @@ static cvarTable_t gameCvarTable[] = {
|
|||
{ &rpg_server5, "rpg_server5", "0", CVAR_ARCHIVE, 0, qfalse },
|
||||
{ &rpg_server6, "rpg_server6", "0", CVAR_ARCHIVE, 0, qfalse },
|
||||
{ &rpg_allowSPLevelChange, "rpg_allowSPLevelChange", "1", CVAR_ARCHIVE | CVAR_LATCH, 0, qfalse },
|
||||
|
||||
{ &rpg_spEasterEggs, "rpg_spEasterEggs", "0", CVAR_ARCHIVE, 0, qfalse },
|
||||
|
||||
{ &dev_showTriggers, "dev_showTriggers", "0", CVAR_ARCHIVE, 0, qfalse }
|
||||
{ &dev_showTriggers, "dev_showTriggers", "0", CVAR_ARCHIVE, 0, qfalse },
|
||||
|
||||
/* TODO some might be removed */
|
||||
,
|
||||
{ &sql_dbName, "sql_dbName", "rpgx", CVAR_ARCHIVE, 0, qfalse },
|
||||
{ &sql_use, "sql_use", "0", CVAR_ARCHIVE, 0, qfalse },
|
||||
{ &sql_password, "sql_password", "", CVAR_ARCHIVE, 0, qfalse },
|
||||
{ &sql_port, "sql_port", "3306", CVAR_ARCHIVE, 0, qfalse },
|
||||
{ &sql_server, "sql_server", "", CVAR_ARCHIVE, 0, qfalse },
|
||||
{ &sql_user, "sql_user", "rpgx", CVAR_ARCHIVE, 0, qfalse },
|
||||
{ &sql_hash, "sql_hash", "0", CVAR_ARCHIVE, 0, qfalse }
|
||||
|
||||
#ifdef G_LUA
|
||||
,
|
||||
{ &g_debugLua, "g_debugLua", "0", 0, 0, qfalse },
|
||||
{ &lua_allowedModules, "lua_allowedModules", "", 0, 0, qfalse },
|
||||
{ &lua_modules, "lua_modules", "", 0, 0, qfalse },
|
||||
|
@ -1671,8 +1648,6 @@ void G_RegisterCvars( void ) {
|
|||
G_Printf( "g_gametype %i is out of range, defaulting to 0\n", g_gametype.integer );
|
||||
trap_Cvar_Set( "g_gametype", "0" );
|
||||
}
|
||||
|
||||
level.warmupModificationCount = g_warmup.modificationCount;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -2771,7 +2746,7 @@ void CheckTournement( void ) {
|
|||
if ( level.warmupTime == 0 || level.warmupTime != 0) {//RPG-X: RedTechie - No warmup Fail safe
|
||||
return;
|
||||
}
|
||||
} else if ( g_gametype.integer != GT_SINGLE_PLAYER /*&& g_doWarmup.integer*/ ) { //RPG-X: RedTechie - No warmup!
|
||||
} else if ( g_gametype.integer != GT_SINGLE_PLAYER ) {
|
||||
if ( level.warmupTime == 0) {
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -854,12 +854,6 @@ void SP_worldspawn( void ) {
|
|||
if ( g_restarted.integer ) {
|
||||
// trap_Cvar_Set( "g_restarted", "0" );
|
||||
level.warmupTime = 0;
|
||||
} else if ( g_doWarmup.integer && (g_gametype.integer != GT_SINGLE_PLAYER)) { // Turn it on
|
||||
//RPG-X: RedTechie - No warm up!
|
||||
level.warmupTime = 0;
|
||||
/*level.warmupTime = -1;
|
||||
trap_SetConfigstring( CS_WARMUP, va("%i", level.warmupTime) );
|
||||
G_LogPrintf( "Warmup:\n" );*/
|
||||
}
|
||||
}
|
||||
|
||||
|
|
100
game/g_team.c
100
game/g_team.c
|
@ -452,105 +452,9 @@ void Team_AddScore( int team, int points )
|
|||
level.teamScores[team] += points;
|
||||
}
|
||||
|
||||
/* TODO: unused! remove me? */
|
||||
int Team_TouchOurFlag( gentity_t *ent, gentity_t *other, int team ) {
|
||||
int i;
|
||||
gentity_t *player;
|
||||
gclient_t *cl = other->client;
|
||||
//int our_flag;
|
||||
//int enemy_flag;
|
||||
gentity_t *te;
|
||||
|
||||
/*if (cl->sess.sessionTeam == TEAM_RED) {
|
||||
our_flag = PW_REDFLAG;
|
||||
enemy_flag = PW_REDFLAG;
|
||||
} else {
|
||||
our_flag = PW_REDFLAG;
|
||||
enemy_flag = PW_REDFLAG;
|
||||
}*/
|
||||
|
||||
if ( ent->flags & FL_DROPPED_ITEM ) {
|
||||
// hey, its not home. return it by teleporting it back
|
||||
PrintMsg( NULL, "%s" S_COLOR_WHITE " returned the %s flag!\n",
|
||||
cl->pers.netname, TeamName(team));
|
||||
AddScore(other, CTF_RECOVERY_BONUS);
|
||||
other->client->pers.teamState.flagrecovery++;
|
||||
other->client->pers.teamState.lastreturnedflag = level.time;
|
||||
//ResetFlag will remove this entity! We must return zero
|
||||
Team_ReturnFlagSound(Team_ResetFlag(team), team);
|
||||
return 0;
|
||||
}
|
||||
|
||||
// the flag is at home base. if the player has the enemy
|
||||
// flag, he's just won!
|
||||
//if (!cl->ps.powerups[enemy_flag])
|
||||
// return 0; // We don't have the flag
|
||||
|
||||
PrintMsg( NULL, "%s" S_COLOR_WHITE " captured the %s flag!\n",
|
||||
cl->pers.netname, TeamName(OtherTeam(team)));
|
||||
|
||||
//cl->ps.powerups[enemy_flag] = 0;
|
||||
|
||||
Team_AddScore( team, 1 );
|
||||
|
||||
other->client->pers.teamState.captures++;
|
||||
|
||||
// other gets another 10 frag bonus
|
||||
AddScore(other, CTF_CAPTURE_BONUS);
|
||||
|
||||
// If this is the last capture of the match, don't play the capture sound.
|
||||
if (level.teamScores[other->client->sess.sessionTeam ] == g_capturelimit.integer)
|
||||
{
|
||||
te = G_TempEntity( ent->s.pos.trBase, EV_TEAM_SOUND );
|
||||
te->s.eventParm = SCORED_FLAG_NO_VOICE_SOUND;
|
||||
te->s.otherEntityNum = cl->sess.sessionTeam;
|
||||
te->r.svFlags |= SVF_BROADCAST;
|
||||
}
|
||||
else
|
||||
{
|
||||
te = G_TempEntity( ent->s.pos.trBase, EV_TEAM_SOUND );
|
||||
te->s.eventParm = SCORED_FLAG_SOUND;
|
||||
te->s.otherEntityNum = cl->sess.sessionTeam;
|
||||
te->r.svFlags |= SVF_BROADCAST;
|
||||
}
|
||||
|
||||
// Ok, let's do the player loop, hand out the bonuses
|
||||
for (i = 0; i < g_maxclients.integer; i++) {
|
||||
player = &g_entities[i];
|
||||
if (!player->inuse)
|
||||
continue;
|
||||
|
||||
if (player->client->sess.sessionTeam !=
|
||||
cl->sess.sessionTeam) {
|
||||
player->client->pers.teamState.lasthurtcarrier = -5;
|
||||
} else if (player->client->sess.sessionTeam ==
|
||||
cl->sess.sessionTeam) {
|
||||
if (player != other)
|
||||
AddScore(player, CTF_TEAM_BONUS);
|
||||
// award extra points for capture assists
|
||||
if (player->client->pers.teamState.lastreturnedflag +
|
||||
CTF_RETURN_FLAG_ASSIST_TIMEOUT > level.time) {
|
||||
PrintMsg( NULL,
|
||||
"%s" S_COLOR_WHITE " gets an assist for returning the %s flag!\n",
|
||||
player->client->pers.netname,
|
||||
TeamName(team));
|
||||
AddScore (player, CTF_RETURN_FLAG_ASSIST_BONUS);
|
||||
other->client->pers.teamState.assists++;
|
||||
}
|
||||
if (player->client->pers.teamState.lastfraggedcarrier +
|
||||
CTF_FRAG_CARRIER_ASSIST_TIMEOUT > level.time) {
|
||||
PrintMsg( NULL, "%s" S_COLOR_WHITE " gets an assist for eliminating the %s flag carrier!\n",
|
||||
player->client->pers.netname,
|
||||
TeamName(OtherTeam(team)));
|
||||
AddScore(player, CTF_FRAG_CARRIER_ASSIST_BONUS);
|
||||
other->client->pers.teamState.assists++;
|
||||
}
|
||||
}
|
||||
}
|
||||
Team_ResetFlags();
|
||||
|
||||
CalculateRanks( qfalse );
|
||||
|
||||
return 0; // Do not respawn this automatically
|
||||
return 0;
|
||||
}
|
||||
|
||||
int Team_TouchEnemyFlag( gentity_t *ent, gentity_t *other, int team ) {
|
||||
|
|
Loading…
Reference in a new issue