Beispiel #1
0
void CNetSends::SpawnForPlayer( unsigned char uc, unsigned char ucPlayer )
{
	CPlayerPool* pPlayerToSend = CPlayerPoolManager::Find( uc );
	if ( pPlayerToSend )
	{
		if ( !pPlayerToSend->GetSyncBlocked() )
		{
			CPlayerPool* pPlayer = CPlayerPoolManager::Find( ucPlayer );
			if ( pPlayer )
			{
				RakNet::BitStream bsSend;
				CSpawnPool* pSpawn = CSpawnPoolManager::Find( pPlayer->GetClassID() );
				if ( pSpawn )
				{
					bsSend.Write( ucPlayer );
					bsSend.Write( pSpawn->GetTeam() );
					bsSend.Write( pSpawn->GetSkin() );
					bsSend.Write( pSpawn->GetX() );
					bsSend.Write( pSpawn->GetY() );
					bsSend.Write( pSpawn->GetZ() );
					bsSend.Write( pSpawn->GetAngle() );
					bsSend.Write( pSpawn->GetWeapon( 0 ) );
					bsSend.Write( pSpawn->GetWeaponAmmo( 0 ) );
					bsSend.Write( pSpawn->GetWeapon( 1 ) );
					bsSend.Write( pSpawn->GetWeaponAmmo( 1 ) );
					bsSend.Write( pSpawn->GetWeapon( 2 ) );
					bsSend.Write( pSpawn->GetWeaponAmmo( 2 ) );

					NetInterface->RPC( "Spawn", &bsSend, HIGH_PRIORITY, RELIABLE_ORDERED, 0, pPlayerToSend->GetPlayerID(), FALSE, FALSE );
				}
			}
		}
	}
}