//========================================================= // PrescheduleThink //========================================================= void CAGrunt :: PrescheduleThink ( void ) { if ( ShouldSpeak() ) { if ( m_flNextWordTime < gpGlobals->time ) { int num = -1; do { num = RANDOM_LONG(0,ARRAYSIZE(pIdleSounds)-1); } while( num == m_iLastWord ); m_iLastWord = num; // play a new sound EMIT_SOUND ( ENT(pev), CHAN_VOICE, pIdleSounds[ num ], 1.0, ATTN_NORM ); // is this word our last? if ( RANDOM_LONG( 1, 10 ) <= 1 ) { // stop talking. StopTalking(); } else { m_flNextWordTime = gpGlobals->time + RANDOM_FLOAT( 0.5, 1 ); } } } }
//========================================================= // PrescheduleThink //========================================================= void CNPC_AlienGrunt::PrescheduleThink ( void ) { BaseClass::PrescheduleThink(); if ( ShouldSpeak() ) { if ( m_flNextWordTime < gpGlobals->curtime ) { // play a new sound CPASAttenuationFilter filter( this ); EmitSound( filter, entindex(), "AlienGrunt.Idle" ); // is this word our last? if ( random->RandomInt( 1, 10 ) <= 1 ) { // stop talking. StopTalking(); } else { m_flNextWordTime = gpGlobals->curtime + random->RandomFloat( 0.5, 1 ); } } } }