CRecipientFilter
Jump to navigation
Jump to search
The CRecipientFilter
class enables the server to pick and choose which clients it passes an item of data to. Most server-to-client communication supports it.
Alongside adding/removing clients individually or all at once, it can filter by:
Examples
CRecipientFilter MyFilter; MyFilter.AddRecipientsByPVS( GetAbsOrigin() ); // Origin of the host entity; clients within its PVS will be added. MyFilter.MakeReliable(); // All this does is make m_bReliable true! Best to use it anyway.
CRecipientFilter MyInverseFilter; MyInverseFilter.AddAllPlayers(); MyInverseFilter.RemoveRecipientsByPVS( GetAbsOrigin() ); // Only players outside the PVS MyInverseFilter.MakeReliable();
Derived classes
Several derived classes exist to automate the creation of common filters, with constructors set up to directly return an appropriately-configured filter.
CBroadcastRecipientFilter()
- All players.
CLocalPlayerFilter()
- The local player. Client-side only, needless to say! Todo: Useful how?
CPASFilter(origin)
- All players in the origin's PAS.
CPVSFilter(origin)
- All players in the origin's PVS.
CSingleUserRecipientFilter(CBasePlayer)
- A specific player.
Example
To make an entity produce a sound from another location:
EmitSound( CPASFilter(pPuppet->GetAbsOrigin()),pPuppet->entindex(),"Ventriloquist.Hello" );
See also
