Fixed the class changes

Disabled radioactive turrets
Fixed feeding spree
Added no building for people who are affected by g_newbieNamePrefix, cvar controlled by g_newbieNoBuild
Fixed typo in !l0 replies.
This commit is contained in:
Paradox460 committed 2008-06-01 20:01:40 +00:00
1 parent ccae4df7e2
commit 464808f7e8
7 files changed
+88 -20

No files matched your search

+10 -3
View File
@@ -533,11 +533,18 @@ static void ClientSpreeDecay( gentity_t *ent, int msec )
client->pers.spreeTime1000 -= 1000;
// spree decay
if( ent->client->pers.statscounters.spreefeeds > 1 )
ent->client->pers.statscounters.spreefeeds -= 2;
if( ent->client->pers.statscounters.spreefeeds )
{
ent->client->pers.statscounters.spreefeeds -= SPREE_FEED_FADE;
if( ent->client->pers.statscounters.spreefeeds < 0 )
ent->client->pers.statscounters.spreefeeds = 0;
}
if( ent->client->pers.statscounters.spreekills > 1 )
{
ent->client->pers.statscounters.spreekills -= 2;
if( ent->client->pers.statscounters.spreebleeds )
}
if( ent->client->pers.statscounters.spreebleeds ||
ent->client->pers.bleeder )
{
if( ent->client->pers.bleeder )
ent->client->pers.statscounters.spreebleeds -= 10;
+1 -1
View File
@@ -6049,7 +6049,7 @@ qboolean G_admin_L0(gentity_t *ent, int skiparg ){
vic = &g_entities[ id ];
if( !vic || !(vic->client) || vic->client->pers.connected != CON_CONNECTED )
{
ADMP( "^3!L0:^7 no one connectd by that slot number\n" );
ADMP( "^3!L0:^7 no one connected by that slot number\n" );
return qfalse;
}
+33
View File
@@ -2875,6 +2875,17 @@ void Cmd_Destroy_f( gentity_t *ent )
return;
}
if( g_newbieNoBuild.integer
&& g_newbieNamePrefix.string[ 0 ]
&& Q_stricmpn ( ent->client->pers.netname, g_newbieNamePrefix.string, strlen(g_newbieNamePrefix.string ) ) == 0 )
{
trap_SendServerCommand( ent-g_entities,
va( "print \"You cannot build until you set a name\n%s%s\"",
( g_newbieNoBuildMessage.string[ 0 ] ) ? g_newbieNoBuildMessage.string : "",
( g_newbieNoBuildMessage.string[ 0 ] ) ? "\n" : "" ) );
return;
}
trap_Argv( 0, cmd, sizeof( cmd ) );
if( Q_stricmp( cmd, "destroy" ) == 0 )
deconstruct = qfalse;
@@ -3083,6 +3094,17 @@ void Cmd_Mark_f( gentity_t *ent )
return;
}
if( g_newbieNoBuild.integer
&& g_newbieNamePrefix.string[ 0 ]
&& Q_stricmpn ( ent->client->pers.netname, g_newbieNamePrefix.string, strlen(g_newbieNamePrefix.string ) ) == 0 )
{
trap_SendServerCommand( ent-g_entities,
va( "print \"You cannot build until you set a name\n%s%s\"",
( g_newbieNoBuildMessage.string[ 0 ] ) ? g_newbieNoBuildMessage.string : "",
( g_newbieNoBuildMessage.string[ 0 ] ) ? "\n" : "" ) );
return;
}
// can't mark when in hovel
if( ent->client->ps.stats[ STAT_STATE ] & SS_HOVELING )
return;
@@ -3693,6 +3715,17 @@ void Cmd_Build_f( gentity_t *ent )
return;
}
if( g_newbieNoBuild.integer
&& g_newbieNamePrefix.string[ 0 ]
&& Q_stricmpn ( ent->client->pers.netname, g_newbieNamePrefix.string, strlen(g_newbieNamePrefix.string ) ) == 0 )
{
trap_SendServerCommand( ent-g_entities,
va( "print \"You cannot build until you set a name\n%s%s\"",
( g_newbieNoBuildMessage.string[ 0 ] ) ? g_newbieNoBuildMessage.string : "",
( g_newbieNoBuildMessage.string[ 0 ] ) ? "\n" : "" ) );
return;
}
trap_Argv( 1, s, sizeof( s ) );
buildable = BG_FindBuildNumForName( s );
+23 -7
View File
@@ -485,9 +485,10 @@ void player_die( gentity_t *self, gentity_t *inflictor, gentity_t *attacker, int
if( g_feedingSpree.integer &&
level.reactorPresent &&
!G_BuildableRange( self->client->ps.origin, 600, BA_H_REACTOR ) )
!G_BuildableRange( self->client->ps.origin, 600, BA_H_REACTOR ) &&
!G_BuildableRange( self->client->ps.origin, 200, BA_H_SPAWN ) )
{
self->client->pers.statscounters.spreefeeds += 60;
self->client->pers.statscounters.spreefeeds += SPREE_FEED_VALUE;
}
}
}
@@ -501,9 +502,10 @@ void player_die( gentity_t *self, gentity_t *inflictor, gentity_t *attacker, int
if( g_feedingSpree.integer &&
level.overmindPresent &&
!G_BuildableRange( self->client->ps.origin, 600, BA_A_OVERMIND ) )
!G_BuildableRange( self->client->ps.origin, 600, BA_A_OVERMIND ) &&
!G_BuildableRange( self->client->ps.origin, 200, BA_A_SPAWN ) )
{
self->client->pers.statscounters.spreefeeds += 60;
self->client->pers.statscounters.spreefeeds += SPREE_FEED_VALUE;
}
}
}
@@ -682,14 +684,14 @@ finish_dying:
// g_forcerespawn may force spawning at some later time
self->client->respawnTime = level.time + 1700;
if( g_feedingSpree.integer > 2 )
if( g_feedingSpree.integer )
{
int maxfeed;
maxfeed = (g_feedingSpree.integer - 1) * 60;
maxfeed = g_feedingSpree.integer * SPREE_FEED_VALUE;
if( self->client->pers.statscounters.spreefeeds > maxfeed )
{
self->client->respawnTime += 100 * (self->client->pers.statscounters.spreefeeds - maxfeed );
self->client->respawnTime += SPREE_FEED_DELAY * (self->client->pers.statscounters.spreefeeds - maxfeed );
trap_SendServerCommand( self->client->ps.clientNum,
va( "print \"You are on a feeding spree! respawn delayed %d seconds\n\"",
(self->client->respawnTime - level.time) / 1000 ) );
@@ -1559,6 +1561,13 @@ void G_Damage( gentity_t *targ, gentity_t *inflictor, gentity_t *attacker,
level.humanStatsCounters.structskilled++;
}
}
if( attacker->client->pers.statscounters.spreefeeds )
{
attacker->client->pers.statscounters.spreefeeds -= take;
if( attacker->client->pers.statscounters.spreefeeds < 0 )
attacker->client->pers.statscounters.spreefeeds = 0;
}
}
else if( targ->client )
{
@@ -1572,6 +1581,13 @@ void G_Damage( gentity_t *targ, gentity_t *inflictor, gentity_t *attacker,
{
level.humanStatsCounters.dmgdone+=take;
}
if( attacker->client->pers.statscounters.spreefeeds )
{
attacker->client->pers.statscounters.spreefeeds -= take;
if( attacker->client->pers.statscounters.spreefeeds < 0 )
attacker->client->pers.statscounters.spreefeeds = 0;
}
}
}
+7
View File
@@ -1231,6 +1231,11 @@ extern gentity_t g_entities[ MAX_GENTITIES ];
#define FOFS(x) ((int)&(((gentity_t *)0)->x))
//spree values
#define SPREE_FEED_VALUE 120
#define SPREE_FEED_FADE 3
#define SPREE_FEED_DELAY 50
extern vmCvar_t g_dedicated;
extern vmCvar_t g_cheats;
extern vmCvar_t g_maxclients; // allow this many total, including spectators
@@ -1242,6 +1247,8 @@ extern vmCvar_t g_minNameChangePeriod;
extern vmCvar_t g_maxNameChanges;
extern vmCvar_t g_newbieNumbering;
extern vmCvar_t g_newbieNamePrefix;
extern vmCvar_t g_newbieNoBuild;
extern vmCvar_t g_newbieNoBuildMessage;
extern vmCvar_t g_timelimit;
extern vmCvar_t g_suddenDeathTime;
+9 -4
View File
@@ -112,6 +112,8 @@ vmCvar_t g_minNameChangePeriod;
vmCvar_t g_maxNameChanges;
vmCvar_t g_newbieNumbering;
vmCvar_t g_newbieNamePrefix;
vmCvar_t g_newbieNoBuild;
vmCvar_t g_newbieNoBuildMessage;
vmCvar_t g_humanBuildPoints;
vmCvar_t g_alienBuildPoints;
@@ -350,6 +352,9 @@ static cvarTable_t gameCvarTable[ ] =
{ &g_maxNameChanges, "g_maxNameChanges", "5", 0, 0, qfalse},
{ &g_newbieNumbering, "g_newbieNumbering", "0", CVAR_ARCHIVE, 0, qfalse},
{ &g_newbieNamePrefix, "g_newbieNamePrefix", "Newbie#", CVAR_ARCHIVE, 0, qfalse},
{ &g_newbieNoBuild, "g_newbieNoBuild", "0", CVAR_ARCHIVE, 0, qfalse},
{ &g_newbieNoBuildMessage, "g_newbieNoBuildMessage",
"Set a name by pressing Escape and choosing Options", CVAR_ARCHIVE, 0, qfalse},
{ &g_smoothClients, "g_smoothClients", "1", 0, 0, qfalse},
{ &g_clientUpgradeNotice, "g_clientUpgradeNotice", "1", 0, 0, qfalse},
@@ -410,10 +415,10 @@ static cvarTable_t gameCvarTable[ ] =
{ &g_privateMessages, "g_privateMessages", "1", CVAR_ARCHIVE, 0, qfalse },
{ &g_chat, "g_chat", "chat.dat", CVAR_ARCHIVE, 0, qfalse },
{ &g_radiationDamage, "g_radiationDamage", "1", CVAR_ARCHIVE, 0, qfalse },
{ &g_radiationTime, "g_radiationTime", "60", CVAR_ARCHIVE, 0, qfalse },
{ &g_radiationCredits, "g_radiationCredits", "1000", CVAR_ARCHIVE, 0, qfalse },
{ &g_radiationCreditsCount, "g_radiationCreditsCount", "2", CVAR_ARCHIVE, 0, qfalse },
{ &g_radiationDamage, "g_radiationDamage", "0", CVAR_ARCHIVE, 0, qfalse },
{ &g_radiationTime, "g_radiationTime", "0", CVAR_ARCHIVE, 0, qfalse },
{ &g_radiationCredits, "g_radiationCredits", "0", CVAR_ARCHIVE, 0, qfalse },
{ &g_radiationCreditsCount, "g_radiationCreditsCount", "0", CVAR_ARCHIVE, 0, qfalse },
{ &g_deconTime, "g_deconTime", "0", CVAR_ARCHIVE, 0, qfalse },
+5 -5
View File
@@ -43,7 +43,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#define ABUILDER_CLAW_K_SCALE 1.0f
#define ABUILDER_BASE_DELAY 17000
#define ABUILDER_ADV_DELAY 12000
#define ABUILDER_BLOB_DMG ADM(9)
#define ABUILDER_BLOB_DMG ADM(4)
#define ABUILDER_BLOB_REPEAT 1000
#define ABUILDER_BLOB_SPEED 800.0f
#define ABUILDER_BLOB_SPEED_MOD 0.5f
@@ -55,7 +55,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#define LEVEL0_BITE_REPEAT 500
#define LEVEL0_BITE_K_SCALE 1.0f
#define LEVEL1_CLAW_DMG ADM(35)
#define LEVEL1_CLAW_DMG ADM(32)
#define LEVEL1_CLAW_RANGE 96.0f
#define LEVEL1_CLAW_WIDTH 10.0f
#define LEVEL1_CLAW_REPEAT 600
@@ -66,9 +66,9 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#define LEVEL1_GRAB_TIME 300
#define LEVEL1_GRAB_U_TIME 450
#define LEVEL1_PCLOUD_DMG ADM(4)
#define LEVEL1_PCLOUD_RANGE 250.0f
#define LEVEL1_PCLOUD_REPEAT 2750
#define LEVEL1_PCLOUD_TIME 15000
#define LEVEL1_PCLOUD_RANGE 200.0f
#define LEVEL1_PCLOUD_REPEAT 2000
#define LEVEL1_PCLOUD_TIME 10000
#define LEVEL2_CLAW_DMG ADM(40)
#define LEVEL2_CLAW_RANGE 96.0f