本文整理汇总了C++中CClientEntity::SetSyncTimeContext方法的典型用法代码示例。如果您正苦于以下问题:C++ CClientEntity::SetSyncTimeContext方法的具体用法?C++ CClientEntity::SetSyncTimeContext怎么用?C++ CClientEntity::SetSyncTimeContext使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CClientEntity
的用法示例。
在下文中一共展示了CClientEntity::SetSyncTimeContext方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SetElementHealth
void CElementRPCs::SetElementHealth ( NetBitStreamInterface& bitStream )
{
ElementID ID;
float fHealth;
unsigned char ucTimeContext;
if ( bitStream.Read ( ID ) &&
bitStream.Read ( fHealth ) &&
bitStream.Read ( ucTimeContext ) )
{
CClientEntity * pEntity = CElementIDs::GetElement ( ID );
if ( pEntity )
{
pEntity->SetSyncTimeContext ( ucTimeContext );
switch ( pEntity->GetType () )
{
case CCLIENTPED:
case CCLIENTPLAYER:
{
CClientPed* pPed = static_cast < CClientPed * > ( pEntity );
pPed->SetHealth ( fHealth );
break;
}
case CCLIENTVEHICLE:
{
CClientVehicle* pVehicle = static_cast < CClientVehicle * > ( pEntity );
pVehicle->SetHealth ( fHealth );
break;
}
}
}
}
}
示例2: SetElementPosition
void CElementRPCs::SetElementPosition ( NetBitStreamInterface& bitStream )
{
// Read out the entity id and the position
ElementID ID;
CVector vecPosition;
unsigned char ucTimeContext;
if ( bitStream.Read ( ID ) &&
bitStream.Read ( vecPosition.fX ) &&
bitStream.Read ( vecPosition.fY ) &&
bitStream.Read ( vecPosition.fZ ) &&
bitStream.Read ( ucTimeContext ) )
{
// Grab the entity
CClientEntity* pEntity = CElementIDs::GetElement ( ID );
if ( pEntity )
{
// Update the sync context to the new one
pEntity->SetSyncTimeContext ( ucTimeContext );
// If it's a player, use Teleport
if ( pEntity->GetType () == CCLIENTPLAYER )
{
unsigned char ucWarp = 1;
bitStream.Read ( ucWarp );
CClientPlayer* pPlayer = static_cast < CClientPlayer* > ( pEntity );
if ( ucWarp )
{
pPlayer->Teleport ( vecPosition );
pPlayer->ResetInterpolation ();
}
else
{
pPlayer->SetPosition ( vecPosition );
}
// If local player, reset return position (so we can't warp back if connection fails)
if ( pPlayer->IsLocalPlayer () )
{
m_pClientGame->GetNetAPI ()->ResetReturnPosition ();
}
}
else if ( pEntity->GetType () == CCLIENTVEHICLE )
{
CClientVehicle* pVehicle = static_cast < CClientVehicle* > ( pEntity );
pVehicle->RemoveTargetPosition ();
pVehicle->SetPosition ( vecPosition );
}
else
{
// Set its position
pEntity->SetPosition ( vecPosition );
}
}
}
}
示例3: DetachElements
void CElementRPCs::DetachElements ( NetBitStreamInterface& bitStream )
{
ElementID ID;
unsigned char ucTimeContext;
if ( bitStream.Read ( ID ) &&
bitStream.Read ( ucTimeContext ) )
{
CClientEntity* pEntity = CElementIDs::GetElement ( ID );
if ( pEntity )
{
pEntity->SetSyncTimeContext ( ucTimeContext );
pEntity->AttachTo ( NULL );
CVector vecPosition;
if ( bitStream.Read ( vecPosition.fX ) &&
bitStream.Read ( vecPosition.fY ) &&
bitStream.Read ( vecPosition.fZ ) )
{
pEntity->SetPosition ( vecPosition );
}
}
}
}