The CPlayerFuncs
class contains global player related functionality.
A single global Instance exists with the following declaration: const CPlayerFuncs g_PlayerFuncs;
This class only contains methods.
Since there can be multiple players at a time connected to the server, you will need to iterate through all server slots to perform player operations:
for( int iPlayer = 1; iPlayer <= g_Engine.maxClients; iPlayer++ )
{
CBasePlayer@ pPlayer = g_PlayerFuncs.FindPlayerByIndex( iPlayer );
if( pPlayer is null ) // No valid player in this slot.
continue;
// Do something with "pPlayer"
}
You can also use player hooks to hook functions into various player events. The function will be called for every player in the server per event.
1 Methods
These are the main player methods that are most commonly used
Methods
|
Description
|
CBasePlayer@ FindPlayerByIndex(int index)
|
Finds a player by index. Parameters: Index Integer
|
CBasePlayer@ FindPlayerByName(const string& in szName, bool bCaseSensitive = true)
|
Finds a player by name
|
int GetNumPlayers() const
|
Gets the number of players that are currently connected to the server.
|
void ApplyMapCfgToPlayer(CBasePlayer@ pPlayer, bool fReEquip = false)
|
Applies the map configuration on the given player. Will stack if called multiple times, unless fReEquip is true, in which case the player is stripped of all weapons and ammo first.
|
int GetAmmoIndex(const string& in szAmmoName)
|
Gets the index of the given ammo, or -1 if it is invalid. szAmmoName corresponds to a weapon's pszAmmo1 /pszAmmo2 value.
|
bool GetNextBestWeapon(CBasePlayer@ pPlayer, CBasePlayerItem@ pCurrentWeapon)
|
Makes the given player select the next best weapon available, based on the current weapon.
|
bool CheatsAllowed(CBasePlayer@ pPlayer, const string& in szCheatName, bool fMustBeAlive = true) const
|
Returns whether cheats are enabled for the given player.
|
int SharedRandomLong(uint iRandomSeed, int iLow, int iHigh)
|
Gets a random long whose value is the same on both the client and server.
|
float SharedRandomFloat(uint iRandomSeed, float iLow, float iHigh)
|
Gets a random float whose value is the same on both the client and server.
|
1.1 Respawn
Methods
|
Description
|
void RespawnAllPlayers(bool fMoveLivingPlayers = true, bool fRespawnDeadPlayers = false)
|
Relocates all players to active spawn points. If a player is dead and fRespawnDeadPlayers is true, the player is respawned.
|
void RespawnPlayer(CBasePlayer@ pPlayer, bool fMoveLivingPlayers = true, bool fRespawnDeadPlayers = false)
|
Relocates the given player to an active spawn point. If the player is dead and fRespawnDeadPlayers is true, the player is respawned.
|
1.2 SpawnPoint
Methods
|
Description
|
bool IsSpawnPointOccupied(CBaseEntity@ pSpawnEnt)
|
Returns whether the given spawn point entity is occupied.
|
bool IsSpawnPointValid(CBaseEntity@ pSpawnEnt, CBaseEntity@ pPlayer)
|
Returns whether the given spawn point is valid for the given player.
|
bool SpawnPointFilterPasses(CBaseEntity@ pSpawnEnt, CBaseEntity@ pPlayer)
|
Returns whether the given player passes the given spawn pointÔÇÖs filter.
|
1.3 Bots
Methods
|
Description
|
CBasePlayer@ CreateBot(const string& in szName)
|
Creates a bot with the given name. Parameters: Name String.
|
void BotDisconnect(CBasePlayer@ pBot)
|
Disconnects the bot. This will call ClientDisconnect and removes the entity. Do not use the entity after this call. Parameters: Bot Player Handle.
|
1.4 Admin Level
Methods
|
Description
|
AdminLevel_t AdminLevel(CBasePlayer@ pPlayer) const
|
Returns the admin level for a given player. Parameters: Player Handle.
|
AdminLevel_t StringToAdminLevel(const string& in szString) const
|
Converts a string containing one of AdminLevelToStringÔÇÖs return values to an admin level. Returns ADMIN_NO if the string cannot be converted to a suitable constant. Parameters: String.
|
string AdminLevelToString(const AdminLevel_t adminLevel) const
|
Converts the admin level to a string. If the level is an invalid value, an empty string is returned. Parameters: Admin Level (See Admin Level enum).
|
1.5 SayText
Methods
|
Description
|
void SayText(CBasePlayer@ pTargetPlayer, const string& in szText)
|
Says text to a specific player. Parameters: Player Handle, Text String.
|
void SayTextAll(CBasePlayer@ pOriginatingPlayer, const string& in szText)
|
Says text to all players. Parameters: Originating Player Handle, Text String.
|
1.6 ClientPrint
Note: The szLine
parameters below are not required and can be ignored when doing a message using this functionality.
Methods
|
Description
|
void CenterPrintAll(const string& in szMessage, const string& in szLine2 = "", const string& in szLine3 = "", const string& in szLine4 = "", const string& in szLine5 = "")
|
Prints one or more messages centered on the HUD of all players. Parameters: Main Message String, Message String (2nd Line), Message String (3rd Line), Message String (4th Line), Message String (5th Line).
|
void ClientPrint(CBasePlayer@ pTargetPlayer, HUD iMsgDest, const string& in szMessage, const string& in szLine2 = "", const string& in szLine3 = "", const string& in szLine4 = "", const string& in szLine5 = "")
|
Prints one or more messages on the HUD of the given player. Parameters: Target Player Handle, Message Destination (See HUD enum), Main Message String, Message String (2nd Line), Message String (3rd Line), Message String (4th Line), Message String (5th Line).
|
void ClientPrintAll(HUD iMsgDest, const string& in szMessage, const string& in szLine2 = "", const string& in szLine3 = "", const string& in szLine4 = "", const string& in szLine5 = "")
|
Prints one or more messages on the HUD of all players. Parameters: Message Destination (See HUD enum), Main Message String, Message String (2nd Line), Message String (3rd Line), Message String (4th Line), Message String (5th Line).
|
Obs: To make full use of the szLine parameters, use %s
on the szMessage
line to use the rest of the lines parameters (one %s
for each line).
Example:
g_PlayerFuncs.ClientPrintAll( HUD_PRINTCENTER, "this %s %s %s %s", "is", "a", "test", "message" );
Which becomes in game: this is a test message
.
1.7 ShowMessage
Methods
|
Description
|
void ShowMessage(CBasePlayer@ pTargetPlayer, const string& in szString)
|
Shows a message to the given player.
|
void ShowMessageAll(const string& in szString)
|
Shows a message to all players.
|
1.8 HudElements
Methods
|
Description
|
void HudCustomSprite(CBasePlayer@ pTargetPlayer, const HUDSpriteParams& in params)
|
Shows a custom HUD sprite to a given player or to all players if pTargetPlayer is not specified. Parameters: Target Player Handle, HUD Sprite Params (See HUDSpriteParams class).
|
void HudMessage(CBasePlayer@ pTargetPlayer, const HUDTextParams& in textParams, const string& in szMessage)
|
Shows a HUD message to a given player. Parameters: Target Player Handle, HUD Text Params (See HUDTextParams class), Message String.
|
void HudMessageAll(const HUDTextParams& in textParams, const string& in szMessage)
|
Shows a HUD message to all players. Parameters: HUD Text Params (See HUDTextParams class), Message String.
|
void HudNumDisplay(CBasePlayer@ pTargetPlayer, const HUDNumDisplayParams& in params)
|
Shows a custom numeric display to a given player or to all players if pTargetPlayer is not specified. Parameters: Target Player Handle, HUD Numerical Display Params (See HUDNumDisplayParams class)
|
void HudTimeDisplay(CBasePlayer@ pTargetPlayer, const HUDNumDisplayParams& in params)
|
Shows a custom time display to a given player or to all players if pTargetPlayer is not specified. Parameters: Target Player Handle, HUD Numerical Display Params (See HUDNumDisplayParams class)
|
void HudToggleElement(CBasePlayer@ pTargetPlayer, uint8 iChannel, bool fVisible)
|
Shows or hides HUD element occupying a given channel. Parameters: Target Player Handle, Channel Integer, Visible Bool.
|
void HudUpdateNum(CBasePlayer@ pTargetPlayer, uint8 iChannel, float flValue)
|
Updates value of a custom numeric display. Parameters: Target Player Handle, Channel Integer, Value Float.
|
void HudUpdateTime(CBasePlayer@ pTargetPlayer, uint8 iChannel, float flTime)
|
Updates value of a custom time display. Parameters: Target Player Handle, Channel Integer, Time Float.
|
1.9 Player Screen Effects
Methods
|
Description
|
void ConcussionEffect(CBaseEntity@ pEntity, float amplitude, float frequency, float fadeTime)
|
Applies concussion effect to a given player. Parameters: Player Entity Handle, Amplitude Float, Frequency Float, Fade Out Time Float.
|
void ScreenFade(CBaseEntity@ pEntity, const Vector& in color, float fadeTime, float fadeHold, int alpha, int flags)
|
Fades the screen of a given player to a given color. Parameters: Player Entity Handle, Color Vector, Fade Out Time Float, Fade Hold Time, Color Brightness Alpha Integer, Flags Integer (See FFade enum).
|
void ScreenFadeAll(const Vector& in color, float fadeTime, float fadeHold, int alpha, int flags)
|
Fades the screen of all players to a given color. Parameters: Color Vector, Fade Out Time Float, Fade Hold Time, Color Brightness Alpha Integer, Flags Integer (See FFade enum).
|
void ScreenShake(const Vector& in center, float amplitude, float frequency, float duration, float radius)
|
Shakes the screen for players near a certain location. Parameters: Center Vector, Amplitude Float, Frequency Float, Duration Float, Radius Float.
|
void ScreenShakeAll(const Vector& in center, float amplitude, float frequency, float duration)
|
Shakes the screen for all players. Parameters: Center Vector, Amplitude Float, Frequency Float, Duration Float, Radius Float.
|
1.10 PrintKeyBindingString
Methods
|
Description
|
void PrintKeyBindingString(CBasePlayer@ pPlayer, const string& in szString)
|
Prints a string containing key bindings to the screen of the given player.
|
void PrintKeyBindingStringAll(const string& in szString)
|
Prints a string containing key bindings to the screen of all players.
|