void CMessage::Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value ) { CBaseEntity *pPlayer = NULL; if ( pev->spawnflags & SF_MESSAGE_ALL ) UTIL_ShowMessageAll( STRING(pev->message) ); else { if ( pActivator && pActivator->IsPlayer() ) pPlayer = pActivator; else { pPlayer = CBaseEntity::Instance( g_engfuncs.pfnPEntityOfEntIndex( 1 ) ); } if ( pPlayer ) UTIL_ShowMessage( STRING(pev->message), pPlayer ); } if ( pev->noise ) { EMIT_SOUND( edict(), CHAN_BODY, STRING(pev->noise), pev->scale, pev->speed ); } if ( pev->spawnflags & SF_MESSAGE_ONCE ) UTIL_Remove( this ); SUB_UseTargets( this, USE_TOGGLE, 0 ); }
void UTIL_ShowMessageAll( const char *pString ) { int i; // loop through all players for ( i = 1; i <= gpGlobals->maxClients; i++ ) { CBaseEntity *pPlayer = UTIL_PlayerByIndex( i ); if ( pPlayer ) UTIL_ShowMessage( pString, pPlayer ); } }
//----------------------------------------------------------------------------- // Purpose: Input handler for showing the message and/or playing the sound. //----------------------------------------------------------------------------- void CMessage::InputShowMessage( inputdata_t &inputdata ) { CBaseEntity *pPlayer = NULL; if ( m_spawnflags & SF_MESSAGE_ALL ) { UTIL_ShowMessageAll( STRING( m_iszMessage ) ); } else { if ( inputdata.pActivator && inputdata.pActivator->IsPlayer() ) { pPlayer = inputdata.pActivator; } else { pPlayer = (gpGlobals->maxClients > 1) ? NULL : UTIL_GetLocalPlayer(); } if ( pPlayer && pPlayer->IsPlayer() ) { UTIL_ShowMessage( STRING( m_iszMessage ), ToBasePlayer( pPlayer ) ); } } if ( m_sNoise != NULL_STRING ) { CPASAttenuationFilter filter( this ); EmitSound_t ep; ep.m_nChannel = CHAN_BODY; ep.m_pSoundName = (char*)STRING(m_sNoise); ep.m_flVolume = m_MessageVolume; ep.m_SoundLevel = ATTN_TO_SNDLVL( m_Radius ); EmitSound( filter, entindex(), ep ); } if ( m_spawnflags & SF_MESSAGE_ONCE ) { UTIL_Remove( this ); } m_OnShowMessage.FireOutput( inputdata.pActivator, this ); }
void CCaptureObject::Captured(CBaseEntity *pPlayer) { g_pGameRules->AddScoreToTeam(pev->team, 10); UTIL_EmitAmbientSound ( ENT(0), g_vecZero, "game/ctf_captured.wav", VOL_NORM, ATTN_NONE, 0, PITCH_NORM); UTIL_ShowMessage("#FLAG_CAPTURED", pPlayer); Reset(pPlayer); pev->impulse = CO_STAY; pev->origin = pev->startpos; UTIL_SetOrigin(pev, pev->origin); pev->angles = pev->v_angle; if (pPlayer == NULL) return; if (!pPlayer->IsPlayer()) return; CBasePlayer *plr = (CBasePlayer *)pPlayer; plr->AddMoney (GIVE_CTF_WIN); }
void CCaptureObject::Taken(CBaseEntity *pPlayer) { if (!pPlayer) return; if (pPlayer->IsPlayer()) { CBasePlayer *pClient = (CBasePlayer *)pPlayer; if (pClient) { pClient->m_pCarryingObject = this; } } EMIT_SOUND(ENT(pev), CHAN_VOICE, "game/ctf_alarm.wav", 0.5, ATTN_NORM); UTIL_ShowMessage("#FLAG_TAKEN", pPlayer); pev->impulse = CO_CARRIED; pev->solid = SOLID_NOT; pev->aiment = pPlayer->edict(); pev->movetype = MOVETYPE_FOLLOW; pev->sequence = 2; }