Added !outlaw v4
Added cleanup patch
This commit is contained in:
1 parent
756cb142f2
commit
9433200a74
8 files changed
+109
-36
No files matched your search
@@ -1327,6 +1327,9 @@ void BG_ClientListRemove( clientList_t *list, int clientNum );
|
||||
char *BG_ClientListString( clientList_t *list );
|
||||
void BG_ClientListParse( clientList_t *list, const char *s );
|
||||
|
||||
void BG_UpdateWeaponData(int proximityMine, int price);
|
||||
void BG_UpdateUpgradeData(int proximityMine, int price);
|
||||
|
||||
// Friendly Fire Flags
|
||||
#define FFF_HUMANS 1
|
||||
#define FFF_ALIENS 2
|
||||
|
||||
+57
-23
@@ -521,6 +521,60 @@ qboolean ClientInactivityTimer( gclient_t *client )
|
||||
return qtrue;
|
||||
}
|
||||
|
||||
static void ClientSpreeDecay( gentity_t *ent, int msec )
|
||||
{
|
||||
gclient_t *client;
|
||||
|
||||
client = ent->client;
|
||||
client->pers.spreeTime1000 += msec;
|
||||
|
||||
while( client->pers.spreeTime1000 >= 1000 )
|
||||
{
|
||||
client->pers.spreeTime1000 -= 1000;
|
||||
|
||||
// spree decay
|
||||
if( ent->client->pers.statscounters.spreefeeds > 1 )
|
||||
ent->client->pers.statscounters.spreefeeds -= 2;
|
||||
if( ent->client->pers.statscounters.spreekills > 1 )
|
||||
ent->client->pers.statscounters.spreekills -= 2;
|
||||
if( ent->client->pers.statscounters.spreebleeds )
|
||||
{
|
||||
if( ent->client->pers.bleeder )
|
||||
ent->client->pers.statscounters.spreebleeds -= 10;
|
||||
else
|
||||
ent->client->pers.statscounters.spreebleeds -= 4;
|
||||
if( ent->client->pers.statscounters.spreebleeds < 0 )
|
||||
ent->client->pers.statscounters.spreebleeds = 0;
|
||||
if( ent->client->pers.bleeder )
|
||||
{
|
||||
if( !ent->client->pers.statscounters.spreebleeds )
|
||||
{
|
||||
ent->client->pers.bleeder = qfalse;
|
||||
trap_SendServerCommand( ent-g_entities,
|
||||
va( "print \"%s^7 has been ^2forgiven ^7by their base\n\"", ent->client->pers.netname ) );
|
||||
if( client->sess.sessionTeam != TEAM_SPECTATOR ||
|
||||
client->sess.spectatorState != SPECTATOR_SCOREBOARD )
|
||||
trap_SendServerCommand( ent-g_entities, "cp \"^2Your base has forgiven you\"" );
|
||||
if( level.bleeders )
|
||||
level.bleeders--;
|
||||
}
|
||||
else if( client->sess.sessionTeam != TEAM_SPECTATOR &&
|
||||
ent->client->ps.stats[ STAT_HEALTH ] <= 0 )
|
||||
{
|
||||
int spreeLength;
|
||||
|
||||
spreeLength = ent->client->pers.statscounters.spreebleeds / 10;
|
||||
trap_SendServerCommand( ent-g_entities,
|
||||
va( "cp \"^3Bleeding made you an enemy of your own base!\n\n^7for %d:%02d\n\n^1Respawn delayed %d seconds\"",
|
||||
spreeLength / 60, spreeLength % 60,
|
||||
( ent->client->respawnTime - level.time) / 1000 ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
==================
|
||||
ClientTimerActions
|
||||
@@ -939,29 +993,6 @@ void ClientTimerActions( gentity_t *ent, int msec )
|
||||
}
|
||||
}
|
||||
|
||||
// spree decay
|
||||
if( ent->client->pers.statscounters.spreefeeds > 1 )
|
||||
ent->client->pers.statscounters.spreefeeds -= 2;
|
||||
if( ent->client->pers.statscounters.spreekills > 1 )
|
||||
ent->client->pers.statscounters.spreekills -= 2;
|
||||
if( ent->client->pers.statscounters.spreebleeds )
|
||||
{
|
||||
if( ent->client->pers.bleeder )
|
||||
ent->client->pers.statscounters.spreebleeds -= 8;
|
||||
else
|
||||
ent->client->pers.statscounters.spreebleeds -= 4;
|
||||
if( ent->client->pers.statscounters.spreebleeds < 0 )
|
||||
ent->client->pers.statscounters.spreebleeds = 0;
|
||||
if( ent->client->pers.bleeder &&
|
||||
!ent->client->pers.statscounters.spreebleeds )
|
||||
{
|
||||
ent->client->pers.bleeder = qfalse;
|
||||
trap_SendServerCommand( ent-g_entities, "cp \"^2Your base has forgiven you^7\"" );
|
||||
if( level.bleeders )
|
||||
level.bleeders--;
|
||||
}
|
||||
}
|
||||
|
||||
// turn off life support when a team admits defeat
|
||||
if( client->ps.stats[ STAT_PTEAM ] == PTE_ALIENS &&
|
||||
level.surrenderTeam == PTE_ALIENS )
|
||||
@@ -1500,6 +1531,9 @@ void ClientThink_real( gentity_t *ent )
|
||||
return;
|
||||
}
|
||||
|
||||
//spree decay
|
||||
ClientSpreeDecay( ent, msec );
|
||||
|
||||
// spectators don't do much
|
||||
if( client->sess.sessionTeam == TEAM_SPECTATOR )
|
||||
{
|
||||
|
||||
+15
-4
@@ -6501,7 +6501,7 @@ void G_admin_tklog_log( gentity_t *attacker, gentity_t *victim, int meansOfDeath
|
||||
int previous;
|
||||
int count = 1;
|
||||
|
||||
if( !attacker || !victim )
|
||||
if( !attacker )
|
||||
return;
|
||||
|
||||
previous = admin_tklog_index - 1;
|
||||
@@ -6520,9 +6520,20 @@ void G_admin_tklog_log( gentity_t *attacker, gentity_t *victim, int meansOfDeath
|
||||
tklog->id = count;
|
||||
tklog->time = level.time - level.startTime;
|
||||
Q_strncpyz( tklog->name, attacker->client->pers.netname, sizeof( tklog->name ) );
|
||||
Q_strncpyz( tklog->victim, victim->client->pers.netname, sizeof( tklog->victim ) );
|
||||
tklog->damage = victim->client->tkcredits[ attacker->s.number ];
|
||||
tklog->value = victim->client->ps.stats[ STAT_MAX_HEALTH ];
|
||||
|
||||
if( victim )
|
||||
{
|
||||
Q_strncpyz( tklog->victim, victim->client->pers.netname, sizeof( tklog->victim ) );
|
||||
tklog->damage = victim->client->tkcredits[ attacker->s.number ];
|
||||
tklog->value = victim->client->ps.stats[ STAT_MAX_HEALTH ];
|
||||
}
|
||||
else
|
||||
{
|
||||
Q_strncpyz( tklog->victim, "^3BLEEDING", sizeof( tklog->victim ) );
|
||||
tklog->damage = attacker->client->pers.statscounters.spreebleeds;
|
||||
tklog->value = g_bleedingSpree.integer * 100;
|
||||
}
|
||||
|
||||
tklog->team = attacker->client->ps.stats[ STAT_PTEAM ];
|
||||
if( meansOfDeath == MOD_GRENADE )
|
||||
tklog->weapon = WP_GRENADE;
|
||||
|
||||
@@ -1881,7 +1881,6 @@ void HMedistat_Think( gentity_t *self )
|
||||
int i, num;
|
||||
gentity_t *player;
|
||||
qboolean occupied = qfalse;
|
||||
gentity_t *vic;
|
||||
|
||||
self->nextthink = level.time + BG_FindNextThinkForBuildable( self->s.modelindex );
|
||||
|
||||
|
||||
+1
-5
@@ -1496,10 +1496,6 @@ void ClientBegin( int clientNum )
|
||||
gentity_t *ent;
|
||||
gclient_t *client;
|
||||
int flags;
|
||||
char flag[6];
|
||||
char userinfo[ MAX_INFO_STRING ];
|
||||
trap_Cvar_VariableStringBuffer( "g_chatAdminPrefix", flag, sizeof( flag ) );
|
||||
|
||||
|
||||
ent = g_entities + clientNum;
|
||||
|
||||
@@ -1530,7 +1526,7 @@ void ClientBegin( int clientNum )
|
||||
// locate ent at a spawn point
|
||||
|
||||
ClientSpawn( ent, NULL, NULL, NULL );
|
||||
|
||||
|
||||
trap_SendServerCommand( -1, va( "print \"%s" S_COLOR_WHITE " entered the game\n\"", client->pers.netname ) );
|
||||
|
||||
// name can change between ClientConnect() and ClientBegin()
|
||||
|
||||
@@ -4288,7 +4288,6 @@ void Cmd_PTRCRestore_f( gentity_t *ent )
|
||||
char s[ MAX_TOKEN_CHARS ] = { 0 };
|
||||
int code;
|
||||
connectionRecord_t *connection;
|
||||
gentity_t *ents;
|
||||
int i;
|
||||
gentity_t *players;
|
||||
|
||||
|
||||
+31
-2
@@ -696,6 +696,23 @@ finish_dying:
|
||||
}
|
||||
}
|
||||
|
||||
if( self->client->pers.bleeder )
|
||||
{
|
||||
int spreeLength;
|
||||
|
||||
spreeLength = self->client->pers.statscounters.spreebleeds / 10;
|
||||
self->client->respawnTime += 9 * 1000;
|
||||
|
||||
trap_SendServerCommand( self->client->ps.clientNum,
|
||||
va( "print \"^3Bleeding has made you an enemy of your own base for ^7%d:%02d\n^1Respawn delayed ^7%d^1 seconds\n",
|
||||
spreeLength / 60, spreeLength % 60,
|
||||
( self->client->respawnTime - level.time) / 1000 ) );
|
||||
trap_SendServerCommand( self->client->ps.clientNum,
|
||||
va( "cp \"^3Bleeding made you an enemy of your own base!\n\n^7for %d:%02d\n\n^1Respawn delayed %d seconds\"",
|
||||
spreeLength / 60, spreeLength % 60,
|
||||
( self->client->respawnTime - level.time) / 1000 ) );
|
||||
}
|
||||
|
||||
// remove powerups
|
||||
memset( self->client->ps.powerups, 0, sizeof( self->client->ps.powerups ) );
|
||||
|
||||
@@ -1498,10 +1515,22 @@ void G_Damage( gentity_t *targ, gentity_t *inflictor, gentity_t *attacker,
|
||||
attacker->client->pers.bleeder = qtrue;
|
||||
level.bleeders++;
|
||||
trap_SendServerCommand( -1,
|
||||
va( "print \"%s^3 has become an enemy of their own base.\n\"",
|
||||
va( "print \"%s^3 has become an enemy of their own base\n\"",
|
||||
attacker->client->pers.netname ) );
|
||||
trap_SendServerCommand( attacker - g_entities,
|
||||
"cp \"^1Your team bleeding has irritated your base^7\"" );
|
||||
"cp \"^1Your team bleeding has irritated your base!\"" );
|
||||
|
||||
G_admin_tklog_log( attacker, NULL, mod );
|
||||
}
|
||||
else if( attacker->client->pers.statscounters.spreebleeds > g_bleedingSpree.integer * 66 &&
|
||||
!attacker->client->pers.bleeder &&
|
||||
attacker->client->pers.bleederLastWarn + 20 * 1000 < level.time )
|
||||
{
|
||||
attacker->client->pers.bleederLastWarn = level.time;
|
||||
trap_SendServerCommand( attacker - g_entities,
|
||||
"print \"^3Your bleeding is close to aggravating your base!\"" );
|
||||
trap_SendServerCommand( attacker - g_entities,
|
||||
"cp \"^1Your bleeding is close to aggravating your base!\n\"" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -390,7 +390,9 @@ typedef struct
|
||||
qboolean denyBuild;
|
||||
int denyHumanWeapons;
|
||||
int denyAlienClasses;
|
||||
int spreeTime1000;
|
||||
qboolean bleeder;
|
||||
int bleederLastWarn;
|
||||
qboolean paused;
|
||||
int adminLevel;
|
||||
qboolean specd;
|
||||
|
||||
Reference in new issue
Block a user