本文整理汇总了C++中IPlayerInfo::GetNetworkIDString方法的典型用法代码示例。如果您正苦于以下问题:C++ IPlayerInfo::GetNetworkIDString方法的具体用法?C++ IPlayerInfo::GetNetworkIDString怎么用?C++ IPlayerInfo::GetNetworkIDString使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IPlayerInfo
的用法示例。
在下文中一共展示了IPlayerInfo::GetNetworkIDString方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: AddAllPlayers
void MRecipientFilter::AddAllPlayers(int maxClients)
{
m_Recipients.RemoveAll();
int i;
for ( i = 1; i <= maxClients; i++ )
{
#if defined ( GAME_CSGO )
edict_t *pPlayer = PEntityOfEntIndex(i);
#else
edict_t *pPlayer = engine->PEntityOfEntIndex(i);
#endif
if ( !pPlayer || pPlayer->IsFree()) {
continue;
}
IPlayerInfo *playerinfo = playerinfomanager->GetPlayerInfo( pPlayer );
if (!playerinfo || !playerinfo->IsConnected())
{
continue;
}
if (playerinfo->IsHLTV())
{
continue;
}
if (strcmp(playerinfo->GetNetworkIDString(),"BOT") == 0)
{
continue;
}
m_Recipients.AddToTail(i);
}
}
示例2: SS_PlayerDisconnect
void SizzlingStats::SS_PlayerDisconnect( CSizzPluginContext *pPluginContext, edict_t *pEdict )
{
Msg( "SS_DeletePlayer\n" );
int ent_index = SCHelpers::EntIndexFromEdict(pEdict);
if (ent_index != -1)
{
if (m_PlayerDataManager.IsValidPlayer(ent_index))
{
playerAndExtra_t data = m_PlayerDataManager.GetPlayerData(ent_index);
data.m_pPlayerData->UpdateRoundStatsData(m_aPropOffsets);
data.m_pPlayerData->UpdateRoundExtraData(*data.m_pExtraData);
IPlayerInfo *pInfo = pPluginContext->GetPlayerInfo(ent_index);
if (m_bTournamentMatchRunning)
{
playerWebStats_t stats;
stats.m_scoreData = data.m_pPlayerData->GetRoundStatsData();
V_strncpy(stats.m_playerInfo.m_name, pInfo->GetName(), sizeof(stats.m_playerInfo.m_name));
V_strncpy(stats.m_playerInfo.m_steamid, pInfo->GetNetworkIDString(), sizeof(stats.m_playerInfo.m_steamid));
V_strncpy(stats.m_playerInfo.m_ip, pPluginContext->GetPlayerIPPortString(ent_index), sizeof(stats.m_playerInfo.m_ip));
stats.m_playerInfo.m_teamid = pInfo->GetTeamIndex();
CPlayerClassTracker *pTracker = data.m_pPlayerData->GetClassTracker();
stats.m_playerInfo.m_mostPlayedClass = pTracker->GetMostPlayedClass();
stats.m_playerInfo.m_playedClasses = pTracker->GetPlayedClasses();
m_pWebStatsHandler->EnqueuePlayerStats(stats);
}
}
m_vecMedics.FindAndRemove(ent_index);
m_PlayerDataManager.RemovePlayer(ent_index);
}
}
示例3: ChatEvent
void SizzlingStats::ChatEvent( CSizzPluginContext *pPluginContext, int entindex, const char *pText, bool bTeamChat )
{
IPlayerInfo *pInfo = pPluginContext->GetPlayerInfo(entindex);
if (!pInfo)
{
return;
}
const char *pSteamId = pInfo->GetNetworkIDString();
// during the match, m_flMatchDuration is the Plat_FloatTime() from when the game started
// so subtracting gets the time since the match started
m_pWebStatsHandler->PlayerChatEvent(Plat_FloatTime() - m_flMatchDuration, pSteamId, pText, bTeamChat);
}
示例4: clientActive
void CClient :: clientActive ()
{
// get steam id
IPlayerInfo *playerinfo = playerinfomanager->GetPlayerInfo( m_pPlayer );
m_szSteamID = NULL;
if ( playerinfo )
{
// store steam id
m_szSteamID = (char*)playerinfo->GetNetworkIDString();
// check my access levels
CAccessClients::checkClientAccess(this);
}
}
示例5: SS_TournamentMatchStarted
void SizzlingStats::SS_TournamentMatchStarted( CSizzPluginContext *pPluginContext )
{
Msg( "tournament match started\n" );
m_bTournamentMatchRunning = true;
m_flMatchDuration = Plat_FloatTime();
V_strncpy(m_pHostInfo->m_hostname, pPluginContext->GetHostName(), 64);
V_strncpy(m_pHostInfo->m_mapname, pPluginContext->GetMapName(), 64);
V_strncpy(m_pHostInfo->m_bluname, pPluginContext->GetBluTeamName(), 32);
V_strncpy(m_pHostInfo->m_redname, pPluginContext->GetRedTeamName(), 32);
m_pHostInfo->m_hostip = m_refHostIP.GetInt();
V_strncpy(m_pHostInfo->m_ip, m_refIP.GetString(), 32);
m_pHostInfo->m_hostport = m_refHostPort.GetInt();
m_pHostInfo->m_roundduration = m_flRoundDuration;
m_pWebStatsHandler->SetHostData(*m_pHostInfo);
// record demos if the cvar is non-zero
if (record_demos.GetBool())
{
m_STVRecorder.StartRecording(pPluginContext, m_pHostInfo->m_mapname);
}
CTFPlayerWrapper player;
for (int i = 1; i <= MAX_PLAYERS; ++i)
{
if (m_PlayerDataManager.IsValidPlayer(i))
{
player.SetPlayer(pPluginContext->BaseEntityFromEntIndex(i));
IPlayerInfo *pInfo = pPluginContext->GetPlayerInfo(i);
playerInfo_t info;
V_strncpy(info.m_name, pInfo->GetName(), sizeof(info.m_name));
V_strncpy(info.m_steamid, pInfo->GetNetworkIDString(), sizeof(info.m_steamid));
V_strncpy(info.m_ip, pPluginContext->GetPlayerIPPortString(i), sizeof(info.m_ip));
info.m_teamid = pInfo->GetTeamIndex();
info.m_mostPlayedClass = player.GetClass();
m_pWebStatsHandler->EnqueuePlayerInfo(info);
}
}
// set the api key
m_pWebStatsHandler->SetApiKey(apikey.GetString());
// send the initial match info to the web
m_pWebStatsHandler->SendGameStartEvent();
}
示例6: GetSteamIDString
void CSizzPluginContext::GetSteamIDString( int userid, char *dest, int buff_size )
{
if (dest && (buff_size > 0))
{
int ent_index = EntIndexFromUserID(userid);
if (ent_index != -1)
{
IPlayerInfo *pInfo = GetPlayerInfo(ent_index);
if (pInfo)
{
const char *src = pInfo->GetNetworkIDString();
if (src)
{
V_strncpy(dest, src, buff_size);
}
}
}
}
}
示例7: SS_EndOfRound
void SizzlingStats::SS_EndOfRound( CSizzPluginContext *pPluginContext )
{
for (int i = 1; i <= MAX_PLAYERS; ++i)
{
if (m_PlayerDataManager.IsValidPlayer(i))
{
playerAndExtra_t data = m_PlayerDataManager.GetPlayerData(i);
data.m_pPlayerData->UpdateRoundStatsData(m_aPropOffsets);
data.m_pPlayerData->UpdateRoundExtraData(*data.m_pExtraData);
IPlayerInfo *pInfo = pPluginContext->GetPlayerInfo(i);
if (m_bTournamentMatchRunning)
{
playerWebStats_t stats;
stats.m_scoreData = data.m_pPlayerData->GetRoundStatsData();
V_strncpy(stats.m_playerInfo.m_name, pInfo->GetName(), sizeof(stats.m_playerInfo.m_name));
V_strncpy(stats.m_playerInfo.m_steamid, pInfo->GetNetworkIDString(), sizeof(stats.m_playerInfo.m_steamid));
V_strncpy(stats.m_playerInfo.m_ip, pPluginContext->GetPlayerIPPortString(i), sizeof(stats.m_playerInfo.m_ip));
stats.m_playerInfo.m_teamid = pInfo->GetTeamIndex();
CPlayerClassTracker *pTracker = data.m_pPlayerData->GetClassTracker();
stats.m_playerInfo.m_mostPlayedClass = pTracker->GetMostPlayedClass();
stats.m_playerInfo.m_playedClasses = pTracker->GetPlayedClasses();
m_pWebStatsHandler->EnqueuePlayerStats(stats);
}
if (pInfo->GetTeamIndex() > 1)
{
SS_DisplayStats(pPluginContext, i);
}
}
}
if (m_bTournamentMatchRunning)
{
m_pHostInfo->m_roundduration = m_flRoundDuration;
m_pWebStatsHandler->SetHostData(*m_pHostInfo);
m_pWebStatsHandler->SendStatsToWeb();
}
}
示例8: writeJoueur
void XmlReport::writeJoueur(ticpp::Element * eJoueurs, ClanMember * player)
{
IPlayerInfo * pInfo = player->getPlayerInfo();
PlayerScore * stats = player->getCurrentScore();
if (isValidPlayerInfo(pInfo)) // excludes SourceTv
{
ticpp::Element * eJoueur = new ticpp::Element("joueur");
eJoueur->SetAttribute("steamid", pInfo->GetNetworkIDString());
ticpp::Element * ePseudo = new ticpp::Element("pseudo", pInfo->GetName());
eJoueur->LinkEndChild(ePseudo);
ticpp::Element * eKills = new ticpp::Element("kills", stats->kills);
eJoueur->LinkEndChild(eKills);
ticpp::Element * eDeaths = new ticpp::Element("deaths", stats->deaths);
eJoueur->LinkEndChild(eDeaths);
eJoueurs->LinkEndChild(eJoueur);
}
}
示例9: BuildPlayerKickList
//---------------------------------------------------------------------------------
// Purpose: Builds up a list of players that are 'kickable'
//---------------------------------------------------------------------------------
void ManiReservedSlot::BuildPlayerKickList( player_t *player_ptr, int *players_on_server )
{
player_t temp_player;
active_player_t active_player;
FreeList((void **) &active_player_list, &active_player_list_size);
for (int i = 1; i <= max_players; i ++)
{
#if defined ( GAME_CSGO )
edict_t *pEntity = PEntityOfEntIndex(i);
#else
edict_t *pEntity = engine->PEntityOfEntIndex(i);
#endif
if( pEntity && !pEntity->IsFree())
{
if ( player_ptr && ( pEntity == player_ptr->entity ) )
continue;
IPlayerInfo *playerinfo = playerinfomanager->GetPlayerInfo( pEntity );
if (playerinfo && playerinfo->IsConnected())
{
Q_strcpy(active_player.steam_id, playerinfo->GetNetworkIDString());
if (FStrEq("BOT", active_player.steam_id))
{
continue;
}
INetChannelInfo *nci = engine->GetPlayerNetInfo(i);
if (!nci)
{
continue;
}
active_player.entity = pEntity;
active_player.ping = nci->GetAvgLatency(0);
const char * szCmdRate = engine->GetClientConVarValue( i, "cl_cmdrate" );
int nCmdRate = (20 > Q_atoi( szCmdRate )) ? 20 : Q_atoi(szCmdRate);
active_player.ping -= (0.5f/nCmdRate) + TICKS_TO_TIME( 1.0f ); // correct latency
// in GoldSrc we had a different, not fixed tickrate. so we have to adjust
// Source pings by half a tick to match the old GoldSrc pings.
active_player.ping -= TICKS_TO_TIME( 0.5f );
active_player.ping = active_player.ping * 1000.0f; // as msecs
active_player.ping = ((5 > active_player.ping) ? 5:active_player.ping); // set bounds, dont show pings under 5 msecs
active_player.time_connected = nci->GetTimeConnected();
Q_strcpy(active_player.ip_address, nci->GetAddress());
if (gpManiGameType->IsSpectatorAllowed() &&
playerinfo->GetTeamIndex () == gpManiGameType->GetSpectatorIndex())
{
active_player.is_spectator = true;
}
else
{
active_player.is_spectator = false;
}
active_player.user_id = playerinfo->GetUserID();
Q_strcpy(active_player.name, playerinfo->GetName());
if ( players_on_server )
*players_on_server = *players_on_server + 1;
active_player.kills = playerinfo->GetFragCount();
active_player.deaths = playerinfo->GetDeathCount();
Q_strcpy(temp_player.steam_id, active_player.steam_id);
Q_strcpy(temp_player.ip_address, active_player.ip_address);
Q_strcpy(temp_player.name, active_player.name);
temp_player.is_bot = false;
if (IsPlayerInReserveList(&temp_player))
{
continue;
}
active_player.index = i;
if (mani_reserve_slots_include_admin.GetInt() == 1 &&
gpManiClient->HasAccess(active_player.index, ADMIN, ADMIN_BASIC_ADMIN))
{
continue;
}
if (gpManiClient->HasAccess(active_player.index, IMMUNITY, IMMUNITY_RESERVE))
{
continue;
}
AddToList((void **) &active_player_list, sizeof(active_player_t), &active_player_list_size);
active_player_list[active_player_list_size - 1] = active_player;
}
}
}
}
示例10: GameFrame
//---------------------------------------------------------------------------------
// Purpose: Process Game Frame
//---------------------------------------------------------------------------------
void ManiAutoMap::GameFrame(void)
{
if (war_mode ||
mani_automap.GetInt() == 0 ||
ignore_this_map ||
automap_list_size == 0) return;
if (g_RealTime < trigger_time) return;
trigger_time += 15;
int players = 0;
bool include_bots = mani_automap_include_bots.GetBool();
int threshold = mani_automap_player_threshold.GetInt();
// Count players
for (int i = 1; i <= max_players; i++)
{
// Faster than FindPlayerByIndex()
#if defined ( GAME_CSGO )
edict_t *pEntity = PEntityOfEntIndex(i);
#else
edict_t *pEntity = engine->PEntityOfEntIndex(i);
#endif
if(pEntity && !pEntity->IsFree() )
{
IPlayerInfo *playerinfo = playerinfomanager->GetPlayerInfo( pEntity );
if (playerinfo && playerinfo->IsConnected())
{
if (playerinfo->IsHLTV()) continue;
if (!include_bots && strcmp(playerinfo->GetNetworkIDString(), "BOT") == 0) continue;
players ++;
if (players > threshold)
{
// Broken threshold so just ignore, but reset the timeout
this->ResetTimeout(mani_automap_timer.GetInt());
return;
}
}
}
}
// Need to change map
if (mani_automap_set_nextmap.GetInt() != 0)
{
set_next_map = true;
}
else
{
set_next_map = false;
}
int map_choice = this->ChooseMap();
override_changelevel = 0;
override_setnextmap = false;
ignore_this_map = true;
LogCommand (NULL, "Autochange to map %s while server idle\n", automap_list[map_choice].map_name);
SetChangeLevelReason("Automap changed map");
char changelevel_command[128];
snprintf(changelevel_command, sizeof(changelevel_command), "changelevel %s\n", automap_list[map_choice].map_name);
engine->ServerCommand(changelevel_command);
}