Quote:
Originally Posted by hornet
Another method is with CBasePlayer::Observer_CheckTarget(). You can use the checkteam param.
|
What are you talking about?
PHP Code:
void CBasePlayer::Observer_CheckTarget()
{
if( pev->iuser1 == OBS_ROAMING )
return;
// try to find a traget if we have no current one
if ( m_hObserverTarget == NULL)
{
Observer_FindNextPlayer( false, NULL );
if (m_hObserverTarget == NULL)
{
// no target found at all
int lastMode = pev->iuser1;
Observer_SetMode( OBS_ROAMING );
m_iObserverLastMode = lastMode; // don't overwrite users lastmode
return; // we still have np target return
}
}
CBasePlayer* target = (CBasePlayer*)(UTIL_PlayerByIndex( ENTINDEX(m_hObserverTarget->edict())));
if ( !target )
{
Observer_FindNextPlayer( false, NULL );
return;
}
// check taget
if (target->pev->deadflag == DEAD_DEAD)
{
if ( (target->m_fDeadTime + 2.0f ) < gpGlobals->time )
{
// 3 secs after death change target
Observer_FindNextPlayer( false, NULL );
return;
}
}
}