mirror of
https://github.com/ENSL/NS.git
synced 2024-11-10 15:21:54 +00:00
o Enabled TRACE_TEST code.
o Throttle player joined team message to prevent overflow. ( no more than one message every 0.2s) o Gorges heal themselves at half the normal rate ( gorges heal each other normally ) git-svn-id: https://unknownworlds.svn.cloudforge.com/ns1@378 67975925-1194-0748-b3d5-c16f83f1a3a1
This commit is contained in:
parent
723b23baf6
commit
4a2f07f8b5
6 changed files with 49 additions and 17 deletions
|
@ -297,7 +297,7 @@ void MoveModel( void )
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
*/
|
||||||
//#define TRACE_TEST
|
//#define TRACE_TEST
|
||||||
#if defined( TRACE_TEST )
|
#if defined( TRACE_TEST )
|
||||||
|
|
||||||
|
@ -328,7 +328,7 @@ void TraceModel( void )
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
void ParticleCallback( struct particle_s *particle, float frametime )
|
void ParticleCallback( struct particle_s *particle, float frametime )
|
||||||
|
@ -545,11 +545,11 @@ void CL_DLLEXPORT HUD_CreateEntities( void )
|
||||||
#if defined( TEST_IT )
|
#if defined( TEST_IT )
|
||||||
MoveModel();
|
MoveModel();
|
||||||
#endif
|
#endif
|
||||||
|
*/
|
||||||
#if defined( TRACE_TEST )
|
#if defined( TRACE_TEST )
|
||||||
TraceModel();
|
TraceModel();
|
||||||
#endif
|
#endif
|
||||||
*/
|
|
||||||
/*
|
/*
|
||||||
Particles();
|
Particles();
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -427,7 +427,7 @@ void IN_MouseMove ( float frametime, float ioRotationDeltas[3], float ioTranslat
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
//#define TRACE_TEST
|
//#define TRACE_TEST
|
||||||
#if defined( TRACE_TEST )
|
#if defined( TRACE_TEST )
|
||||||
{
|
{
|
||||||
|
@ -437,7 +437,7 @@ void IN_MouseMove ( float frametime, float ioRotationDeltas[3], float ioTranslat
|
||||||
V_Move( mx, my );
|
V_Move( mx, my );
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
|
|
||||||
// view/refresh setup functions
|
// view/refresh setup functions
|
||||||
|
|
||||||
|
|
||||||
#include "hud.h"
|
#include "hud.h"
|
||||||
#include "cl_util.h"
|
#include "cl_util.h"
|
||||||
#include "common/cvardef.h"
|
#include "common/cvardef.h"
|
||||||
|
@ -20,6 +21,7 @@
|
||||||
#include "pm_shared/pm_movevars.h"
|
#include "pm_shared/pm_movevars.h"
|
||||||
#include "pm_shared/pm_shared.h"
|
#include "pm_shared/pm_shared.h"
|
||||||
#include "pm_shared/pm_defs.h"
|
#include "pm_shared/pm_defs.h"
|
||||||
|
#include "pm_shared/pm_debug.h"
|
||||||
#include "common/event_api.h"
|
#include "common/event_api.h"
|
||||||
#include "common/pmtrace.h"
|
#include "common/pmtrace.h"
|
||||||
#include "common/screenfade.h"
|
#include "common/screenfade.h"
|
||||||
|
@ -41,8 +43,8 @@ extern float gTopDownViewAngles[3];
|
||||||
#ifndef M_PI
|
#ifndef M_PI
|
||||||
#define M_PI 3.14159265358979323846 // matches value in gcc v2 math.h
|
#define M_PI 3.14159265358979323846 // matches value in gcc v2 math.h
|
||||||
#endif
|
#endif
|
||||||
|
//#include "pm_shared/pm_debug.h"
|
||||||
void PM_ParticleLine( float *start, float *end, int pcolor, float life, float vert);
|
//void PM_ParticleLine(vec3_t start, vec3_t end, int pcolor, float life, float vert);
|
||||||
int PM_GetVisEntInfo( int ent );
|
int PM_GetVisEntInfo( int ent );
|
||||||
int PM_GetPhysEntInfo( int ent );
|
int PM_GetPhysEntInfo( int ent );
|
||||||
void InterpolateAngles( float *start, float *end, float *output, float frac );
|
void InterpolateAngles( float *start, float *end, float *output, float frac );
|
||||||
|
@ -2385,7 +2387,32 @@ float CalcFov (float fov_x, float width, float height)
|
||||||
}
|
}
|
||||||
|
|
||||||
int hitent = -1;
|
int hitent = -1;
|
||||||
|
extern playermove_t *pmove;
|
||||||
|
void PM_ParticleLine(vec3_t start, vec3_t end, int pcolor, float life, float vert)
|
||||||
|
{
|
||||||
|
float linestep = 2.0f;
|
||||||
|
float curdist;
|
||||||
|
float len;
|
||||||
|
vec3_t curpos;
|
||||||
|
vec3_t diff;
|
||||||
|
int i;
|
||||||
|
// Determine distance;
|
||||||
|
|
||||||
|
VectorSubtract(end, start, diff);
|
||||||
|
|
||||||
|
len = VectorNormalize(diff);
|
||||||
|
|
||||||
|
curdist = 0;
|
||||||
|
while (curdist <= len)
|
||||||
|
{
|
||||||
|
for (i = 0; i < 3; i++)
|
||||||
|
curpos[i] = start[i] + curdist * diff[i];
|
||||||
|
|
||||||
|
pmove->PM_Particle( curpos, pcolor, life, 0, vert);
|
||||||
|
curdist += linestep;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
void V_Move( int mx, int my )
|
void V_Move( int mx, int my )
|
||||||
{
|
{
|
||||||
float fov;
|
float fov;
|
||||||
|
@ -2399,10 +2426,10 @@ void V_Move( int mx, int my )
|
||||||
vec3_t farpoint;
|
vec3_t farpoint;
|
||||||
pmtrace_t tr;
|
pmtrace_t tr;
|
||||||
|
|
||||||
fov = CalcFov( in_fov, (float)ScreenWidth, (float)ScreenHeight );
|
fov = CalcFov( in_fov, (float)ScreenWidth(), (float)ScreenHeight() );
|
||||||
|
|
||||||
c_x = (float)ScreenWidth / 2.0;
|
c_x = (float)ScreenWidth() / 2.0;
|
||||||
c_y = (float)ScreenHeight / 2.0;
|
c_y = (float)ScreenHeight() / 2.0;
|
||||||
|
|
||||||
dx = (float)mx - c_x;
|
dx = (float)mx - c_x;
|
||||||
dy = (float)my - c_y;
|
dy = (float)my - c_y;
|
||||||
|
@ -2430,7 +2457,7 @@ void V_Move( int mx, int my )
|
||||||
if ( tr.fraction != 1.0 && tr.ent != 0 )
|
if ( tr.fraction != 1.0 && tr.ent != 0 )
|
||||||
{
|
{
|
||||||
hitent = PM_GetPhysEntInfo( tr.ent );
|
hitent = PM_GetPhysEntInfo( tr.ent );
|
||||||
PM_ParticleLine( (float *)&v_origin, (float *)&tr.endpos, 5, 1.0, 0.0 );
|
PM_ParticleLine( (vec3_t)v_origin, (vec3_t)tr.endpos, 5, 1.0, 0.0 );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -305,6 +305,7 @@ void SetGameRules(AvHGamerules* inGameRules)
|
||||||
static float gSvCheatsLastUpdateTime;
|
static float gSvCheatsLastUpdateTime;
|
||||||
AvHGamerules::AvHGamerules() : mTeamA(TEAM_ONE), mTeamB(TEAM_TWO)
|
AvHGamerules::AvHGamerules() : mTeamA(TEAM_ONE), mTeamB(TEAM_TWO)
|
||||||
{
|
{
|
||||||
|
this->mLastJoinMessage = 0.0f;
|
||||||
this->mGameStarted = false;
|
this->mGameStarted = false;
|
||||||
this->mPreserveTeams = false;
|
this->mPreserveTeams = false;
|
||||||
|
|
||||||
|
@ -442,15 +443,15 @@ bool AvHGamerules::AttemptToJoinTeam(AvHPlayer* inPlayer, AvHTeamNumber inTeamTo
|
||||||
{
|
{
|
||||||
// joev: Bug 0000767
|
// joev: Bug 0000767
|
||||||
// Tell the other players that this player is joining a team.
|
// Tell the other players that this player is joining a team.
|
||||||
if (!this->GetCheatsEnabled()) {
|
if (!this->GetCheatsEnabled() && this->mGameStarted == true && ( gpGlobals->time > this->mLastJoinMessage + 0.2f ) ) {
|
||||||
|
|
||||||
AvHTeam* theTeam = GetTeam(inTeamToJoin);
|
AvHTeam* theTeam = GetTeam(inTeamToJoin);
|
||||||
// ensure that the sound only plays if the game already has started
|
// ensure that the sound only plays if the game already has started
|
||||||
if (this->mGameStarted == true) {
|
theTeam->PlayHUDSoundForAlivePlayers(HUD_SOUND_PLAYERJOIN);
|
||||||
theTeam->PlayHUDSoundForAlivePlayers(HUD_SOUND_PLAYERJOIN);
|
|
||||||
}
|
|
||||||
char* theMessage = UTIL_VarArgs("%s has joined the %s\n",STRING(inPlayer->pev->netname),theTeam->GetTeamPrettyName());
|
char* theMessage = UTIL_VarArgs("%s has joined the %s\n",STRING(inPlayer->pev->netname),theTeam->GetTeamPrettyName());
|
||||||
UTIL_ClientPrintAll(HUD_PRINTTALK, theMessage);
|
UTIL_ClientPrintAll(HUD_PRINTTALK, theMessage);
|
||||||
UTIL_LogPrintf( "%s joined team \"%s\"\n", GetLogStringForPlayer( inPlayer->edict() ).c_str(), AvHSUGetTeamName(inPlayer->pev->team) );
|
UTIL_LogPrintf( "%s joined team \"%s\"\n", GetLogStringForPlayer( inPlayer->edict() ).c_str(), AvHSUGetTeamName(inPlayer->pev->team) );
|
||||||
|
this->mLastJoinMessage=gpGlobals->time;
|
||||||
}
|
}
|
||||||
// :joev
|
// :joev
|
||||||
}
|
}
|
||||||
|
@ -2685,6 +2686,7 @@ void AvHGamerules::InternalResetGameRules()
|
||||||
AvHNexus::cancelGame();
|
AvHNexus::cancelGame();
|
||||||
}
|
}
|
||||||
this->mGameStarted = false;
|
this->mGameStarted = false;
|
||||||
|
this->mLastJoinMessage = 0.0f;
|
||||||
this->mTimeCountDownStarted = 0;
|
this->mTimeCountDownStarted = 0;
|
||||||
this->mTimeGameStarted = -1;
|
this->mTimeGameStarted = -1;
|
||||||
this->mTimeOfLastGameTimeUpdate = -1;
|
this->mTimeOfLastGameTimeUpdate = -1;
|
||||||
|
|
|
@ -341,6 +341,7 @@ private:
|
||||||
bool mFirstUpdate;
|
bool mFirstUpdate;
|
||||||
bool mPreserveTeams;
|
bool mPreserveTeams;
|
||||||
bool mGameStarted;
|
bool mGameStarted;
|
||||||
|
float mLastJoinMessage;
|
||||||
AvHTeamNumber mVictoryTeam;
|
AvHTeamNumber mVictoryTeam;
|
||||||
float mTimeCountDownStarted;
|
float mTimeCountDownStarted;
|
||||||
float mTimeGameStarted;
|
float mTimeGameStarted;
|
||||||
|
|
|
@ -165,11 +165,12 @@ void AvHHealingSpray::FireProjectiles(void)
|
||||||
|
|
||||||
while((theCurrentEntity = UTIL_FindEntityInSphere(theCurrentEntity, theOriginatingPosition, kHealingSprayRange)) != NULL)
|
while((theCurrentEntity = UTIL_FindEntityInSphere(theCurrentEntity, theOriginatingPosition, kHealingSprayRange)) != NULL)
|
||||||
{
|
{
|
||||||
|
bool isSelf=(theCurrentEntity == this->m_pPlayer);
|
||||||
// Can't affect self
|
// Can't affect self
|
||||||
// if(theCurrentEntity != this->m_pPlayer)
|
// if(theCurrentEntity != this->m_pPlayer)
|
||||||
// {
|
// {
|
||||||
// If entity is in view cone, and within range
|
// If entity is in view cone, and within range
|
||||||
if(theCurrentEntity == this->m_pPlayer || this->m_pPlayer->FInViewCone(&theCurrentEntity->pev->origin) )
|
if(isSelf || this->m_pPlayer->FInViewCone(&theCurrentEntity->pev->origin) )
|
||||||
{
|
{
|
||||||
// UTIL_FindEntityInSphere doesn't seem to take height into account. Make sure the entity is within range.
|
// UTIL_FindEntityInSphere doesn't seem to take height into account. Make sure the entity is within range.
|
||||||
float theMaxEntitySize = max(Length(theCurrentEntity->pev->mins), Length(theCurrentEntity->pev->maxs));
|
float theMaxEntitySize = max(Length(theCurrentEntity->pev->mins), Length(theCurrentEntity->pev->maxs));
|
||||||
|
@ -208,6 +209,7 @@ void AvHHealingSpray::FireProjectiles(void)
|
||||||
// Players heal by base amount, plus percentage of health
|
// Players heal by base amount, plus percentage of health
|
||||||
float thePercentage = BALANCE_VAR(kHealingSprayPlayerPercent)/100.0f;
|
float thePercentage = BALANCE_VAR(kHealingSprayPlayerPercent)/100.0f;
|
||||||
theDamage += thePercentage*theCurrentEntity->pev->max_health;
|
theDamage += thePercentage*theCurrentEntity->pev->max_health;
|
||||||
|
if ( isSelf ) theDamage *= 0.5f;
|
||||||
thePlayer->Heal(theDamage, true);
|
thePlayer->Heal(theDamage, true);
|
||||||
}
|
}
|
||||||
else if(theBuildable)
|
else if(theBuildable)
|
||||||
|
|
Loading…
Reference in a new issue