Added !outlaw v4

Added cleanup patch
This commit is contained in:
Paradox460 committed 2008-05-18 21:35:17 +00:00
1 parent 756cb142f2
commit 9433200a74
8 files changed
+109 -36

No files matched your search

+3
View File
@@ -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
View File
@@ -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
View File
@@ -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;
-1
View File
@@ -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
View File
@@ -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()
-1
View File
@@ -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
View File
@@ -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\"" );
}
}
}
+2
View File
@@ -390,7 +390,9 @@ typedef struct
qboolean denyBuild;
int denyHumanWeapons;
int denyAlienClasses;
int spreeTime1000;
qboolean bleeder;
int bleederLastWarn;
qboolean paused;
int adminLevel;
qboolean specd;