Skip to content

Commit 59eaf22

Browse files
committed
Add cvar to stop -1 scores from world and suicide deaths
g_suicideScorePenalty 1 or 0 Also includes preliminary extra stats
1 parent aa4228e commit 59eaf22

4 files changed

Lines changed: 15 additions & 3 deletions

File tree

code/game/g_combat.c

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -322,7 +322,11 @@ void player_die( gentity_t *self, gentity_t *inflictor, gentity_t *attacker, int
322322

323323
if ( attacker == self || G_Q3F_IsAllied( attacker, self ) )
324324
{
325-
AddScore( attacker, self->r.currentOrigin, -1 );
325+
if ( attacker != self || (attacker == self && g_suicideScorePenalty.integer > 0) )
326+
AddScore( attacker, self->r.currentOrigin, -1 );
327+
if (attacker == self) {
328+
self->client->pers.stats.suicides++;
329+
}
326330

327331
// Golliwog: Cheak for teamkills and ban accordingly.
328332
if( attacker != self &&
@@ -337,6 +341,8 @@ void player_die( gentity_t *self, gentity_t *inflictor, gentity_t *attacker, int
337341
// Golliwog.
338342
}
339343
else {
344+
self->client->pers.stats.player_deaths++;
345+
attacker->client->pers.stats.enemykills++;
340346
G_DeathStats( self->client, attacker->client, meansOfDeath );
341347
attacker->client->sess.enemyKill++;
342348
AddScore( attacker, self->r.currentOrigin, 1 );
@@ -371,7 +377,9 @@ void player_die( gentity_t *self, gentity_t *inflictor, gentity_t *attacker, int
371377

372378
}
373379
} else {
374-
AddScore( self, self->r.currentOrigin, -1 );
380+
if ( g_suicideScorePenalty.integer > 0 )
381+
AddScore( self, self->r.currentOrigin, -1 );
382+
self->client->pers.stats.suicides++;
375383
}
376384

377385
// Add team bonuses

code/game/g_cvar.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,8 @@ G_CVAR( g_maxNailBombs, "g_maxNailBombs", "1", CVAR_SERVERINFO | CVAR_ARCHIVE, q
264264

265265
G_CVAR( g_maxGasGrens, "g_maxGasGrens", "2", CVAR_SERVERINFO | CVAR_ARCHIVE, qfalse )
266266

267+
G_CVAR( g_suicideScorePenalty, "g_suicideScorePenalty", "1", CVAR_ARCHIVE, qfalse )
268+
267269
#undef G_NULLCVAR
268270
#undef G_NULLEXTCVAR
269271
#undef G_EXTCVAR

code/game/g_local.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,8 @@ typedef struct {
336336
} data [STATS_NUM];
337337
gclient_t * lastdamage;
338338
int caps, assists, defends;
339-
int teamkills;
339+
int teamkills, suicides, enemykills, killassists;
340+
int player_deaths; // only deaths when you were killed by an enemy player not suicide or world kills
340341
} clientStats_t;
341342

342343
#define MAX_IP_LENGTH 48

code/game/g_q3f_mapents.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1864,6 +1864,7 @@ void G_Q3F_MapGive( gentity_t *ent, gentity_t *other )
18641864
level.teamScores[ent->client->sess.sessionTeam] += data->value.d.intdata;
18651865
}
18661866
if (ent && data->value.d.intdata > 0) {
1867+
ent->client->pers.stats.caps++;
18671868
G_EventLog_Goal(ent);
18681869
}
18691870
CalculateRanks(); // Update the score

0 commit comments

Comments
 (0)