本文整理汇总了C++中CClientPed::GetModel方法的典型用法代码示例。如果您正苦于以下问题:C++ CClientPed::GetModel方法的具体用法?C++ CClientPed::GetModel怎么用?C++ CClientPed::GetModel使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CClientPed
的用法示例。
在下文中一共展示了CClientPed::GetModel方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: RestreamPeds
void CClientPedManager::RestreamPeds ( unsigned short usModel )
{
// Store the affected vehicles
CClientPed* pPed;
std::vector < CClientPed* > ::const_iterator iter = IterBegin ();
for ( ; iter != IterEnd (); iter++ )
{
pPed = *iter;
// Streamed in and same vehicle ID?
if ( pPed->IsStreamedIn () && pPed->GetModel () == usModel )
{
// Stream it out for a while until streamed decides to stream it
// back in eventually
pPed->StreamOutForABit ();
// Hack fix for Players not unloading.
if ( IS_PLAYER ( pPed ) )
{
// Awesome hack skills + 1, change him to another model while we unload for the lulz
// Translation: My hack level has increased to ninety eight and we need to wait a frame before reloading the model ID in question so that the custom model unloads properly.
// To do this we set him to CJ (Impossible to mod to my knowledge) and then set him back in CPed::StreamedInPulse
pPed->SetModel ( 0, true );
}
}
}
}
示例2: ProcessPedList
///////////////////////////////////////////////////////////////
//
// CClientModelCacheManagerImpl::ProcessPedList
//
///////////////////////////////////////////////////////////////
void CClientModelCacheManagerImpl::ProcessPedList(std::map<ushort, float>& outNeedCacheList, const std::vector<CClientPed*>& pedList,
float fMaxStreamDistanceSq)
{
const ulong ulTimeNow = CClientTime::GetTime();
for (std::vector<CClientPed*>::const_iterator iter = pedList.begin(); iter != pedList.end(); ++iter)
{
CClientPed* pPed = *iter;
const ushort usModelId = (ushort)pPed->GetModel();
if (usModelId < 7 || usModelId > 312)
continue;
// Check if currently within distance
{
// Check distance
CVector vecPosition;
pPed->GetPosition(vecPosition);
float fDistSq = (m_vecCameraPos - vecPosition).LengthSquared();
if (fDistSq < fMaxStreamDistanceSq)
{
// Add model to needed list
InsertIntoNeedCacheList(outNeedCacheList, usModelId, fDistSq);
AddProcessStat("p", true, PURESYNC_TYPE_NONE, usModelId, vecPosition, vecPosition);
continue;
}
}
// Check if will be within distance soon
{
// Extrapolate position for 2 seconds time
ulong ulSyncAge = 0;
if (ulSyncAge < 8000)
{
// Get velocity
CVector vecVelocity;
pPed->GetMoveSpeed(vecVelocity);
vecVelocity *= m_fGameFps;
// Extrapolate position for 2 seconds time
float fSecondsToAdd = std::min(6000UL, ulSyncAge + 2000) * 0.001f;
CVector vecPosition;
pPed->GetPosition(vecPosition);
CVector vecNewPosition = vecPosition + vecVelocity * fSecondsToAdd;
// Check distance
float fDistSq = (m_vecCameraPos - vecNewPosition).LengthSquared();
if (fDistSq < fMaxStreamDistanceSq)
{
// Add model to needed list
InsertIntoNeedCacheList(outNeedCacheList, usModelId, fDistSq);
AddProcessStat("l", true, PURESYNC_TYPE_NONE, usModelId, vecPosition, vecNewPosition);
continue;
}
AddProcessStat("n", false, PURESYNC_TYPE_NONE, usModelId, vecPosition, vecNewPosition);
continue;
}
}
}
}