void CHL1MP_Player::ChangeTeam( int iTeamNum )
{
	bool bKill = false;

	if ( g_pGameRules->IsTeamplay() == true )
	{
		if ( iTeamNum != GetTeamNumber() && GetTeamNumber() != TEAM_UNASSIGNED )
		{
			bKill = true;
		}
	}

	BaseClass::ChangeTeam( iTeamNum );

	m_flNextTeamChangeTime = gpGlobals->curtime + 5;

	if ( g_pGameRules->IsTeamplay() == true )
	{
		SetPlayerTeamModel();
	}
	else
	{
		SetPlayerModel();
	}

	if ( bKill == true )
	{
		CommitSuicide();
	}
}
void CHL2MP_Player::ChangeTeam( int iTeam )
{
    /*	if ( GetNextTeamChangeTime() >= gpGlobals->curtime )
    	{
    		char szReturnString[128];
    		Q_snprintf( szReturnString, sizeof( szReturnString ), "Please wait %d more seconds before trying to switch teams again.\n", (int)(GetNextTeamChangeTime() - gpGlobals->curtime) );

    		ClientPrint( this, HUD_PRINTTALK, szReturnString );
    		return;
    	}*/
#ifndef GE_DLL
    bool bKill = false;

    if ( HL2MPRules()->IsTeamplay() != true && iTeam != TEAM_SPECTATOR )
    {
        //don't let them try to join combine or rebels during deathmatch.
        iTeam = TEAM_UNASSIGNED;
    }

    if ( HL2MPRules()->IsTeamplay() == true )
    {
        if ( iTeam != GetTeamNumber() && GetTeamNumber() != TEAM_UNASSIGNED )
        {
            bKill = true;
        }
    }

    BaseClass::ChangeTeam( iTeam );

    m_flNextTeamChangeTime = gpGlobals->curtime + TEAM_CHANGE_INTERVAL;

    if ( HL2MPRules()->IsTeamplay() == true )
    {
        SetPlayerTeamModel();
    }
    else
    {
        SetPlayerModel();
    }

    if ( iTeam == TEAM_SPECTATOR )
    {
        RemoveAllItems( true );

        State_Transition( STATE_OBSERVER_MODE );
    }

    if ( bKill == true )
    {
        CommitSuicide();
    }
#else
    BaseClass::ChangeTeam( iTeam );
#endif
}