本文整理汇总了C++中CClientPlayer::ResetInterpolation方法的典型用法代码示例。如果您正苦于以下问题:C++ CClientPlayer::ResetInterpolation方法的具体用法?C++ CClientPlayer::ResetInterpolation怎么用?C++ CClientPlayer::ResetInterpolation使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CClientPlayer
的用法示例。
在下文中一共展示了CClientPlayer::ResetInterpolation方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: DoPulse
void CClientPlayerManager::DoPulse ( void )
{
unsigned long ulCurrentTime = CClientTime::GetTime ();
CClientPlayer * pPlayer = NULL;
vector < CClientPlayer* > ::const_iterator iter = m_Players.begin ();
for ( ; iter != m_Players.end (); ++iter )
{
pPlayer = *iter;
if ( !pPlayer->IsLocalPlayer () )
{
// Pulse voice data if voice is enabled
if ( g_pClientGame->GetVoiceRecorder()->IsEnabled() && pPlayer->GetVoice() )
pPlayer->GetVoice()->DoPulse();
// Flag him with connection error if its been too long since last puresync and force his position
unsigned long ulLastPuresyncTime = pPlayer->GetLastPuresyncTime ();
bool bHasConnectionTrouble = ( ulLastPuresyncTime != 0 && ulCurrentTime >= ulLastPuresyncTime + REMOTE_PLAYER_CONNECTION_TROUBLE_TIME );
if ( bHasConnectionTrouble && !g_pClientGame->IsDownloadingBigPacket () && !pPlayer->IsDeadOnNetwork () )
{
pPlayer->SetHasConnectionTrouble ( true );
// Reset his controller so he doesn't get stuck shooting or something
CControllerState State;
memset ( &State, 0, sizeof ( CControllerState ) );
pPlayer->SetControllerState ( State );
// Grab his vehicle if any and force the position to where he was last sync
CClientVehicle* pVehicle = pPlayer->GetOccupiedVehicle ();
if ( pVehicle )
{
// Is he driving the vehicle?
if ( pPlayer->GetOccupiedVehicleSeat () == 0 )
{
// Force his position to where he was last sync
pVehicle->SetPosition ( pPlayer->GetLastPuresyncPosition () );
pVehicle->SetMoveSpeed ( CVector ( 0, 0, 0 ) );
pVehicle->SetTurnSpeed ( CVector ( 0, 0, 0 ) );
pPlayer->ResetInterpolation ();
}
}
else
{
// Force his position to where he was last sync
pPlayer->SetPosition ( pPlayer->GetLastPuresyncPosition () );
pPlayer->ResetInterpolation ();
pPlayer->SetMoveSpeed ( CVector ( 0, 0, 0 ) );
pPlayer->ResetInterpolation ();
}
}
else
{
pPlayer->SetHasConnectionTrouble ( false );
}
}
}
}
示例2: Test
void CFoo::Test ( const char* szString )
{
CClientManager* pManager = g_pClientGame->GetManager ();
CClientPlayer* pLocal = pManager->GetPlayerManager ()->GetLocalPlayer ();
CClientVehicleManager* pVehicleManager = pManager->GetVehicleManager ();
CVector vecLocal;
pLocal->GetPosition ( vecLocal );
CClientCamera* pCamera = pManager->GetCamera ();
// ChrML: Trying to reproduce mantis issue #2760
if ( stricmp ( szString, "2760" ) == 0 )
{
vecLocal = CVector ( 0.0f, 0.0f, 5.0f );
for ( int i = 0; i < 20; i++ )
{
vecLocal.fX += 5.0f;
CClientPlayer* pPlayer = new CClientPlayer ( pManager, i + 50 );
pPlayer->SetDeadOnNetwork ( false );
pPlayer->SetModel ( 168 + i );
pPlayer->AttachTo ( NULL );
pPlayer->SetFrozen ( false );
pPlayer->RemoveAllWeapons ();
pPlayer->Teleport ( vecLocal );
pPlayer->SetCameraRotation ( 0 );
pPlayer->ResetInterpolation ();
pPlayer->SetMoveSpeed ( CVector () );
pPlayer->SetHealth ( 100.0f );
pPlayer->SetArmor ( 0 );
pPlayer->SetCurrentRotation ( 0 );
pPlayer->SetInterior ( 0 );
pPlayer->SetDimension ( 0 );
}
pLocal->SetDeadOnNetwork ( false );
pLocal->SetModel ( 145 );
pLocal->AttachTo ( NULL );
pLocal->SetFrozen ( false );
pLocal->RemoveAllWeapons ();
pLocal->Teleport ( vecLocal );
pLocal->SetCameraRotation ( 0 );
pLocal->ResetInterpolation ();
pLocal->SetMoveSpeed ( CVector () );
pLocal->SetHealth ( 100.0f );
pLocal->SetArmor ( 0 );
pLocal->SetCurrentRotation ( 0 );
pLocal->SetInterior ( 0 );
pLocal->SetDimension ( 0 );
g_pClientGame->SetAllDimensions ( 0 );
// Reset return position so we can't warp back to where we were if local player
g_pClientGame->GetNetAPI ()->ResetReturnPosition ();
// Make sure the camera is normal
pCamera->SetFocusToLocalPlayer ();
pCamera->FadeIn ( 0.0f );
}
// Player load crash
else if ( stricmp ( szString, "2741" ) == 0 )
{
bFoo_PlayerLimitCrash = true;
}
//
else if ( strnicmp ( szString, "interp", 6 ) == 0 )
{
if ( pVehicleManager->Count () > 0 )
{
CClientVehicle* pVehicle = *pVehicleManager->IterBegin ();
float fdelta = atof ( szString + 7 );
CVector vecT;
pVehicle->GetPosition ( vecT );
vecT.fZ = fdelta;
pVehicle->SetTargetPosition ( vecT, TICK_RATE );
g_pCore->ChatPrintf ( "Done %f", false, fdelta );
static_cast < CDeathmatchVehicle* > ( pVehicle )->SetIsSyncing ( false );
}
}
//
else if ( strnicmp ( szString, "interr", 6 ) == 0 )
{
if ( pVehicleManager->Count () > 0 )
{
CClientVehicle* pVehicle = *pVehicleManager->IterBegin ();
CVector vecT;
//.........这里部分代码省略.........