本文整理汇总了C++中IPlayerInfo::IsPlayer方法的典型用法代码示例。如果您正苦于以下问题:C++ IPlayerInfo::IsPlayer方法的具体用法?C++ IPlayerInfo::IsPlayer怎么用?C++ IPlayerInfo::IsPlayer使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IPlayerInfo
的用法示例。
在下文中一共展示了IPlayerInfo::IsPlayer方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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;
}