IPlayerInfo
IPlayerInfo
is a server interface that provides data about connected users, accessed through IPlayerInfoManager
. Since both interfaces are defined in the server library, game-specific versions are possible.
Note:A player's info is only available when they are active (usually meaning spawned in the world). Before this time access attempts will fail, which can be problematic if your plugin is loading or unpausing mid-game as there may be clients halfway through connecting. To overcome this, use
IVEngineServer
's GetPlayerNetworkIDString()
or GetPlayerUserId()
on entity indices 1 to maxplayers.Example
#include "game/server/iplayerinfo.h"
IPlayerInfoManager* playerinfomanager; // give globals global scope
bool CMyServerPlugin::Load(CreateInterfaceFn interfaceFactory, CreateInterfaceFn gameServerFactory)
{
playerinfomanager = (IPlayerInfoManager*)gameServerFactory(INTERFACEVERSION_PLAYERINFOMANAGER,NULL);
if (!playerinfomanager)
{
Warning("Could not access IPlayerInfoManager!\n");
return false;
}
IPlayerInfo* info = playerinfomanager->GetPlayerInfo(engine->PEntityOfEntIndex(1)); // first player
if (info)
Msg("Player 1 is %s, with %i health\n",info->GetName(),info->GetHealth());
else
Msg("Player 1 has not spawned\n");
return true;
}