本文整理汇总了C++中CClientPed::LockHealth方法的典型用法代码示例。如果您正苦于以下问题:C++ CClientPed::LockHealth方法的具体用法?C++ CClientPed::LockHealth怎么用?C++ CClientPed::LockHealth使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CClientPed
的用法示例。
在下文中一共展示了CClientPed::LockHealth方法的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: Packet_PedStopSync
void CPedSync::Packet_PedStopSync ( NetBitStreamInterface& BitStream )
{
// Read out the ped id
ElementID ID;
if ( BitStream.Read ( ID ) )
{
// Grab the ped
CClientPed* pPed = static_cast < CClientPed* > ( m_pPedManager->Get ( ID ) );
if ( pPed )
{
// Lock health and armour
pPed->LockHealth ( pPed->GetHealth() );
pPed->LockArmor ( pPed->GetArmor() );
// Stop syncing it
RemovePed ( pPed );
}
}
}
示例3: SetElementHealth
void CElementRPCs::SetElementHealth ( CClientEntity* pSource, NetBitStreamInterface& bitStream )
{
float fHealth;
unsigned char ucTimeContext;
if ( bitStream.Read ( fHealth ) &&
bitStream.Read ( ucTimeContext ) )
{
pSource->SetSyncTimeContext ( ucTimeContext );
switch ( pSource->GetType () )
{
case CCLIENTPED:
case CCLIENTPLAYER:
{
CClientPed* pPed = static_cast < CClientPed * > ( pSource );
if ( pPed->IsHealthLocked() )
pPed->LockHealth ( fHealth );
else
pPed->SetHealth ( fHealth );
break;
}
case CCLIENTVEHICLE:
{
CClientVehicle* pVehicle = static_cast < CClientVehicle * > ( pSource );
pVehicle->SetHealth ( fHealth );
break;
}
case CCLIENTOBJECT:
case CCLIENTWEAPON:
{
CClientObject* pObject = static_cast < CClientObject * > ( pSource );
pObject->SetHealth ( fHealth );
break;
}
}
}
}