void CNPC_Zombine::PrescheduleThink( void ) { GatherGrenadeConditions(); if( gpGlobals->curtime > m_flNextMoanSound ) { if( CanPlayMoanSound() ) { // Classic guy idles instead of moans. IdleSound(); m_flNextMoanSound = gpGlobals->curtime + random->RandomFloat( 10.0, 15.0 ); } else { m_flNextMoanSound = gpGlobals->curtime + random->RandomFloat( 2.5, 5.0 ); } } if ( HasGrenade () ) { CSoundEnt::InsertSound ( SOUND_DANGER, GetAbsOrigin() + GetSmoothedVelocity() * 0.5f , 256, 0.1, this, SOUNDENT_CHANNEL_ZOMBINE_GRENADE ); if( IsSprinting() && GetEnemy() && GetEnemy()->Classify() == CLASS_PLAYER_ALLY_VITAL && HasCondition( COND_SEE_ENEMY ) ) { if( GetAbsOrigin().DistToSqr(GetEnemy()->GetAbsOrigin()) < Square( 144 ) ) { StopSprint(); } } } BaseClass::PrescheduleThink(); }
void CZombie::PrescheduleThink( void ) { if( gpGlobals->curtime > m_flNextMoanSound ) { if( CanPlayMoanSound() ) { // Classic guy idles instead of moans. IdleSound(); m_flNextMoanSound = gpGlobals->curtime + random->RandomFloat( 2.0, 5.0 ); } else m_flNextMoanSound = gpGlobals->curtime + random->RandomFloat( 1.0, 2.0 ); } BaseClass::PrescheduleThink(); }