Counter Strike : Global Offensive Source Code
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

44 lines
1.3 KiB

//=========== (C) Copyright Valve, L.L.C. All rights reserved. ===========
#include "cbase.h"
#include "ui_nugget.h"
class CUiNuggetPlayerManager : public CUiNuggetBase
{
DECLARE_NUGGET_FN_MAP( CUiNuggetPlayerManager, CUiNuggetBase );
NUGGET_FN( GetLocalPlayer )
{
// Request for local player info
int iController = args->GetInt( "index" );
IPlayerLocal *pLocalPlayer = g_pMatchFramework->GetMatchSystem()->GetPlayerManager()->GetLocalPlayer( iController );
if ( !pLocalPlayer )
return NULL;
return PlayerAsKeyValues( pLocalPlayer, CFmtStr( "localplayer%d", iController ) );
}
NUGGET_FN( JoinFriend )
{
// Request to join a friend
XUID xuid = args->GetUint64( "xuid" );
IPlayerFriend *pFriend = g_pMatchFramework->GetMatchSystem()->GetPlayerManager()->GetFriendByXUID( xuid );
if ( !pFriend )
return NULL;
pFriend->Join();
return NULL;
}
KeyValues * PlayerAsKeyValues( IPlayer *pPlayer, char const *szResultTitle = "" )
{
KeyValues *kv = new KeyValues( szResultTitle );
kv->SetString( "name", pPlayer->GetName() );
kv->SetString( "xuid", CFmtStr( "%llu", pPlayer->GetXUID() ) );
kv->SetInt( "index", pPlayer->GetPlayerIndex() );
kv->SetInt( "state", pPlayer->GetOnlineState() );
return kv;
}
};
UI_NUGGET_FACTORY_SINGLETON( CUiNuggetPlayerManager, "playermanager" );