本文整理汇总了C++中CClientPed::SetMoveSpeed方法的典型用法代码示例。如果您正苦于以下问题:C++ CClientPed::SetMoveSpeed方法的具体用法?C++ CClientPed::SetMoveSpeed怎么用?C++ CClientPed::SetMoveSpeed使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CClientPed
的用法示例。
在下文中一共展示了CClientPed::SetMoveSpeed方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Packet_PedSync
void CPedSync::Packet_PedSync ( NetBitStreamInterface& BitStream )
{
// While we're not out of peds
while ( BitStream.GetNumberOfUnreadBits () > 32 )
{
// Read out the ped id
ElementID ID;
if ( BitStream.Read ( ID ) )
{
// Read out the sync time context. See CClientEntity for documentation on that.
unsigned char ucSyncTimeContext = 0;
BitStream.Read ( ucSyncTimeContext );
unsigned char ucFlags = 0;
BitStream.Read ( ucFlags );
CVector vecPosition, vecMoveSpeed;
float fRotation, fHealth, fArmor;
// Read out the position
if ( ucFlags & 0x01 )
{
BitStream.Read ( vecPosition.fX );
BitStream.Read ( vecPosition.fY );
BitStream.Read ( vecPosition.fZ );
}
// And rotation
if ( ucFlags & 0x02 ) BitStream.Read ( fRotation );
// And the move speed
if ( ucFlags & 0x04 )
{
BitStream.Read ( vecMoveSpeed.fX );
BitStream.Read ( vecMoveSpeed.fY );
BitStream.Read ( vecMoveSpeed.fZ );
}
// And health with armour
if ( ucFlags & 0x08 ) BitStream.Read ( fHealth );
if ( ucFlags & 0x10 ) BitStream.Read ( fArmor );
// Grab the ped. Only update the sync if this packet is from the same context.
CClientPed* pPed = m_pPedManager->Get ( ID );
if ( pPed && pPed->CanUpdateSync ( ucSyncTimeContext ) )
{
if ( ucFlags & 0x01 ) pPed->SetPosition ( vecPosition );
if ( ucFlags & 0x02 ) pPed->SetCurrentRotation ( fRotation );
if ( ucFlags & 0x04 ) pPed->SetMoveSpeed ( vecMoveSpeed );
if ( ucFlags & 0x08 ) pPed->LockHealth ( fHealth );
if ( ucFlags & 0x10 ) pPed->LockArmor ( fArmor );
}
}
}
}
示例2: SetElementVelocity
void CElementRPCs::SetElementVelocity ( NetBitStreamInterface& bitStream )
{
// Read out the entity id and the speed
ElementID ID;
CVector vecVelocity;
if ( bitStream.Read ( ID ) &&
bitStream.Read ( vecVelocity.fX ) &&
bitStream.Read ( vecVelocity.fY ) &&
bitStream.Read ( vecVelocity.fZ ) )
{
// Grab the entity
CClientEntity* pEntity = CElementIDs::GetElement ( ID );
if ( pEntity )
{
switch ( pEntity->GetType () )
{
case CCLIENTPED:
case CCLIENTPLAYER:
{
CClientPed* pPed = static_cast < CClientPed* > ( pEntity );
pPed->SetMoveSpeed ( vecVelocity );
pPed->ResetInterpolation ();
// If local player, reset return position (so we can't warp back if connection fails)
if ( pPed->IsLocalPlayer () )
{
m_pClientGame->GetNetAPI ()->ResetReturnPosition ();
}
break;
}
case CCLIENTVEHICLE:
{
CClientVehicle* pVehicle = static_cast < CClientVehicle* > ( pEntity );
pVehicle->SetMoveSpeed ( vecVelocity );
break;
}
case CCLIENTOBJECT:
{
CClientObject * pObject = static_cast < CClientObject * > ( pEntity );
pObject->SetMoveSpeed ( vecVelocity );
break;
}
}
}
}
}
示例3: Packet_PedStartSync
void CPedSync::Packet_PedStartSync ( NetBitStreamInterface& BitStream )
{
// Read out the element id
ElementID ID;
if ( BitStream.Read ( ID ) )
{
// Grab the ped
CClientPed* pPed = static_cast < CClientPed* > ( m_pPedManager->Get ( ID ) );
if ( pPed )
{
// Read out the position
CVector vecPosition;
BitStream.Read ( vecPosition.fX );
BitStream.Read ( vecPosition.fY );
BitStream.Read ( vecPosition.fZ );
// And rotation
float fRotation;
BitStream.Read ( fRotation );
// And the velocity
CVector vecVelocity;
BitStream.Read ( vecVelocity.fX );
BitStream.Read ( vecVelocity.fY );
BitStream.Read ( vecVelocity.fZ );
// And health/armor
float fHealth, fArmor;
BitStream.Read ( fHealth );
BitStream.Read ( fArmor );
// Set data
pPed->SetPosition ( vecPosition );
pPed->SetCurrentRotation ( fRotation );
pPed->SetMoveSpeed ( vecVelocity );
// Set the new health
pPed->SetHealth ( fHealth );
pPed->SetArmor ( fArmor );
// Unlock health and armour for the syncer
pPed->UnlockHealth ();
pPed->UnlockArmor ();
AddPed ( pPed );
}
}
}