本文整理汇总了C++中CClientPlayer::GetVoice方法的典型用法代码示例。如果您正苦于以下问题:C++ CClientPlayer::GetVoice方法的具体用法?C++ CClientPlayer::GetVoice怎么用?C++ CClientPlayer::GetVoice使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CClientPlayer
的用法示例。
在下文中一共展示了CClientPlayer::GetVoice方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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: GetSoundEffects
int CLuaFunctionDefs::GetSoundEffects ( lua_State* luaVM )
{
CClientPlayer* pPlayer = NULL;
CClientSound* pSound = NULL;
CScriptArgReader argStream ( luaVM );
if ( argStream.NextIsUserDataOfType < CClientSound > ( ) )
{
argStream.ReadUserData ( pSound );
}
else if ( argStream.NextIsUserDataOfType < CClientPlayer > ( ) )
{
argStream.ReadUserData ( pPlayer );
}
else
{
m_pScriptDebugging->LogBadPointer ( luaVM, "sound/player", 1 );
lua_pushboolean ( luaVM, false );
return false;
}
if ( !argStream.HasErrors() )
{
if ( pSound )
{
std::map < std::string, int > iFxEffects = m_pManager->GetSoundManager()->GetFxEffects();
lua_newtable ( luaVM );
for ( std::map < std::string, int >::const_iterator iter = iFxEffects.begin(); iter != iFxEffects.end(); ++iter )
{
lua_pushboolean ( luaVM, pSound->IsFxEffectEnabled ( (*iter).second ) );
lua_setfield ( luaVM, -2, (*iter).first.c_str () );
}
return 1;
}
else if ( pPlayer )
{
CClientPlayerVoice * pPlayerVoice = pPlayer->GetVoice ( );
std::map < std::string, int > iFxEffects = m_pManager->GetSoundManager()->GetFxEffects();
lua_newtable ( luaVM );
for ( std::map < std::string, int >::const_iterator iter = iFxEffects.begin(); iter != iFxEffects.end(); ++iter )
{
lua_pushboolean ( luaVM, pPlayerVoice->IsFxEffectEnabled ( (*iter).second ) );
lua_setfield ( luaVM, -2, (*iter).first.c_str () );
}
return 1;
}
}
else
m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage() );
lua_pushboolean ( luaVM, false );
return 1;
}
示例3: ClassInit
CClientPlayer::CClientPlayer ( CClientManager* pManager, ElementID ID, bool bIsLocalPlayer ) : ClassInit ( this ), CClientPed ( pManager, 0, ID, bIsLocalPlayer )
{
// Initialize
m_pManager = pManager;
m_bIsLocalPlayer = bIsLocalPlayer;
SetTypeName ( "player" );
m_bNametagColorOverridden = false;
m_uiPing = 0;
m_usLatency = 0;
m_uiPlayerSyncCount = 0;
m_uiKeySyncCount = 0;
m_uiVehicleSyncCount = 0;
m_ulLastPuresyncTime = 0;
m_bHasConnectionTrouble = false;
m_bForce = false;
m_bDoExtrapolatingAim = false;
m_bNetworkDead = false;
m_voice = NULL;
// If it's the local player, add the model
if ( m_bIsLocalPlayer )
{
// Set us as the local player in the player manager
if ( !pManager->GetPlayerManager ()->GetLocalPlayer () )
{
pManager->GetPlayerManager ()->SetLocalPlayer ( this );
}
CClientPlayer * pLocalPlayer = this;
// Enable voice playback for local player
if ( pLocalPlayer->GetVoice() == NULL )
{
//If voice is enabled
CClientPlayerVoice * pVoice = new CClientPlayerVoice ( this, g_pClientGame->GetVoiceRecorder() );
pLocalPlayer->SetPlayerVoice ( pVoice );
}
}
else
{
// Enable weapon processing for players
m_remoteDataStorage->SetProcessPlayerWeapon ( true );
// Enable voice playback for remote players
if ( g_pClientGame->GetVoiceRecorder()->IsEnabled() ) //If voice is enabled
m_voice = new CClientPlayerVoice ( this, g_pClientGame->GetVoiceRecorder() );
}
// Set all our default stats
m_pTeam = NULL;
m_bNametagShowing = true;
m_ucNametagColorR = 255;
m_ucNametagColorG = 255;
m_ucNametagColorB = 255;
m_ulLastNametagShow = 0;
SetNametagText ( m_strNick );
// Add us to the player list
m_pManager->GetPlayerManager ()->AddToList ( this );
#ifdef MTA_DEBUG
m_bShowingWepdata = false;
#endif
m_LastPuresyncType = PURESYNC_TYPE_NONE;
}