本文整理汇总了C++中IPlayerInfo::IsObserver方法的典型用法代码示例。如果您正苦于以下问题:C++ IPlayerInfo::IsObserver方法的具体用法?C++ IPlayerInfo::IsObserver怎么用?C++ IPlayerInfo::IsObserver使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IPlayerInfo
的用法示例。
在下文中一共展示了IPlayerInfo::IsObserver方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: aimingAt
int NczPlayer::aimingAt()
{
trace_t trace;
Ray_t ray;
edict_t* edict = GetEdict();
if(!edict) return -1;
IPlayerInfo* playerinfo = GetPlayerInfo();
if(!playerinfo) return -1;
CBotCmd cmd = playerinfo->GetLastUserCommand();
Vector earPos;
CIFaceManager::GetInstance()->GetIclients()->ClientEarPosition(edict, &earPos);
Vector eyePos = earPos;
QAngle eyeAngles = cmd.viewangles;
Vector vEnd;
AngleVectors(eyeAngles, &vEnd);
vEnd = vEnd * 8192.0f + eyePos;
ray.Init(eyePos,vEnd);
CIFaceManager::GetInstance()->GetItrace()->TraceRay( ray, (CONTENTS_SOLID | CONTENTS_MOVEABLE | CONTENTS_MONSTER | CONTENTS_DEBRIS | CONTENTS_HITBOX), NULL, &trace );
edict_t* target = CIFaceManager::GetInstance()->GetIents()->BaseEntityToEdict(trace.m_pEnt);
if ( target && !Helpers::IndexOfEdict(target) == 0 && !trace.allsolid )
{
if(!Helpers::isValidEdict(target)) return -1;
#undef GetClassName
if(strcmp(target->GetClassName(), "player") == 0)
{
IPlayerInfo* targetinfo = CIFaceManager::GetInstance()->GetIplayers()->GetPlayerInfo(target);
if(targetinfo)
{
int ta = targetinfo->GetTeamIndex();
int tb = playerinfo->GetTeamIndex();
if( ta != tb )
{
if( targetinfo->IsPlayer() && !targetinfo->IsHLTV() && !targetinfo->IsObserver() )
{
return Helpers::IndexOfEdict(target);
}
}
}
}
}
return -1;
}
示例2: GetSurvivorScore
cell_t GetSurvivorScore(IPluginContext *pContext, const cell_t *params) {
CBaseEntity *pPlayer = gamehelpers->ReferenceToEntity(params[1]);
if (!pPlayer)
return pContext->ThrowNativeError("Invalid client index %d", params[1]);
cell_t client = gamehelpers->ReferenceToIndex(params[1]);
IGamePlayer *pGamePlayer = playerhelpers->GetGamePlayer(client);
if (!pGamePlayer || !pGamePlayer->IsInGame())
return pContext->ThrowNativeError("Client index %d not in game", params[1]);
IPlayerInfo* pInfo = pGamePlayer->GetPlayerInfo();
if(!pInfo || pInfo->IsObserver() || pInfo->GetTeamIndex() != 2)
return -1;
return Detours::g_scores[client];
}
示例3: IsClientObserver
static cell_t IsClientObserver(IPluginContext *pContext, const cell_t *params)
{
int client = params[1];
CPlayer *pPlayer = g_Players.GetPlayerByIndex(client);
if (!pPlayer)
{
return pContext->ThrowNativeError("Client index %d is invalid", client);
} else if (!pPlayer->IsInGame()) {
return pContext->ThrowNativeError("Client %d is not in game", client);
}
IPlayerInfo *pInfo = pPlayer->GetPlayerInfo();
if (!pInfo)
{
return pContext->ThrowNativeError("IPlayerInfo not supported by game");
}
return pInfo->IsObserver() ? 1 : 0;
}