add source-sdk-2013

This commit is contained in:
nillerusr
2022-03-01 23:00:42 +03:00
parent 88b8830e8b
commit edc8d6c584
3288 changed files with 3731 additions and 1062455 deletions
+30 -64
View File
@@ -23,8 +23,6 @@ IMPLEMENT_SERVERCLASS_ST_NOBASE(CPlayerResource, DT_PlayerResource)
SendPropArray3( SENDINFO_ARRAY3(m_iTeam), SendPropInt( SENDINFO_ARRAY(m_iTeam), 4 ) ),
SendPropArray3( SENDINFO_ARRAY3(m_bAlive), SendPropInt( SENDINFO_ARRAY(m_bAlive), 1, SPROP_UNSIGNED ) ),
SendPropArray3( SENDINFO_ARRAY3(m_iHealth), SendPropInt( SENDINFO_ARRAY(m_iHealth), -1, SPROP_VARINT | SPROP_UNSIGNED ) ),
SendPropArray3( SENDINFO_ARRAY3(m_iAccountID), SendPropInt( SENDINFO_ARRAY(m_iAccountID), 32, SPROP_UNSIGNED ) ),
SendPropArray3( SENDINFO_ARRAY3(m_bValid), SendPropInt( SENDINFO_ARRAY(m_bValid), 1, SPROP_UNSIGNED ) ),
END_SEND_TABLE()
BEGIN_DATADESC( CPlayerResource )
@@ -56,7 +54,12 @@ void CPlayerResource::Spawn( void )
{
for ( int i=0; i < MAX_PLAYERS+1; i++ )
{
Init( i );
m_iPing.Set( i, 0 );
m_iScore.Set( i, 0 );
m_iDeaths.Set( i, 0 );
m_bConnected.Set( i, 0 );
m_iTeam.Set( i, 0 );
m_bAlive.Set( i, 0 );
}
SetThink( &CPlayerResource::ResourceThink );
@@ -64,19 +67,6 @@ void CPlayerResource::Spawn( void )
m_nUpdateCounter = 0;
}
void CPlayerResource::Init( int iIndex )
{
m_iPing.Set( iIndex, 0 );
m_iScore.Set( iIndex, 0 );
m_iDeaths.Set( iIndex, 0 );
m_bConnected.Set( iIndex, 0 );
m_iTeam.Set( iIndex, 0 );
m_bAlive.Set( iIndex, 0 );
m_iHealth.Set( iIndex, 0 );
m_iAccountID.Set( iIndex, 0 );
m_bValid.Set( iIndex, 0 );
}
//-----------------------------------------------------------------------------
// Purpose: The Player resource is always transmitted to clients
//-----------------------------------------------------------------------------
@@ -103,62 +93,38 @@ void CPlayerResource::ResourceThink( void )
//-----------------------------------------------------------------------------
void CPlayerResource::UpdatePlayerData( void )
{
for ( int i = 1; i <= MAX_PLAYERS; i++ )
for ( int i = 1; i <= gpGlobals->maxClients; i++ )
{
CBasePlayer *pPlayer = (CBasePlayer*)UTIL_PlayerByIndex( i );
if ( pPlayer && pPlayer->IsConnected() )
{
UpdateConnectedPlayer( i, pPlayer );
m_iScore.Set( i, pPlayer->FragCount() );
m_iDeaths.Set( i, pPlayer->DeathCount() );
m_bConnected.Set( i, 1 );
m_iTeam.Set( i, pPlayer->GetTeamNumber() );
m_bAlive.Set( i, pPlayer->IsAlive()?1:0 );
m_iHealth.Set(i, MAX( 0, pPlayer->GetHealth() ) );
// Don't update ping / packetloss everytime
if ( !(m_nUpdateCounter%20) )
{
// update ping all 20 think ticks = (20*0.1=2seconds)
int ping, packetloss;
UTIL_GetPlayerConnectionInfo( i, ping, packetloss );
// calc avg for scoreboard so it's not so jittery
ping = 0.8f * m_iPing.Get(i) + 0.2f * ping;
m_iPing.Set( i, ping );
// m_iPacketloss.Set( i, packetloss );
}
}
else
{
UpdateDisconnectedPlayer( i );
m_bConnected.Set( i, 0 );
}
}
}
//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
void CPlayerResource::UpdateConnectedPlayer( int iIndex, CBasePlayer *pPlayer )
{
m_iScore.Set( iIndex, pPlayer->FragCount() );
m_iDeaths.Set( iIndex, pPlayer->DeathCount() );
m_bConnected.Set( iIndex, 1 );
m_iTeam.Set( iIndex, pPlayer->GetTeamNumber() );
m_bAlive.Set( iIndex, pPlayer->IsAlive()?1:0 );
m_iHealth.Set( iIndex, MAX( 0, pPlayer->GetHealth() ) );
m_bValid.Set( iIndex, 1 );
// Don't update ping / packetloss every time
if ( !(m_nUpdateCounter%20) )
{
// update ping all 20 think ticks = (20*0.1=2seconds)
int ping, packetloss;
UTIL_GetPlayerConnectionInfo( iIndex, ping, packetloss );
// calc avg for scoreboard so it's not so jittery
ping = 0.8f * m_iPing.Get( iIndex ) + 0.2f * ping;
m_iPing.Set( iIndex, ping );
// m_iPacketloss.Set( iSlot, packetloss );
}
CSteamID steamID;
pPlayer->GetSteamID( &steamID );
m_iAccountID.Set( iIndex, steamID.GetAccountID() );
}
//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
void CPlayerResource::UpdateDisconnectedPlayer( int iIndex )
{
m_bConnected.Set( iIndex, 0 );
m_iAccountID.Set( iIndex, 0 );
m_bValid.Set( iIndex, 0 );
}