本文整理汇总了C++中CBasePlayer::AddPlayerItem方法的典型用法代码示例。如果您正苦于以下问题:C++ CBasePlayer::AddPlayerItem方法的具体用法?C++ CBasePlayer::AddPlayerItem怎么用?C++ CBasePlayer::AddPlayerItem使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CBasePlayer
的用法示例。
在下文中一共展示了CBasePlayer::AddPlayerItem方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Think
//
// Think:
// Used for selection of weapon menu item.
//
void CHudAmmo::Think()
{
if( m_bNeedsLocalUpdate )
{
m_bNeedsLocalUpdate = false;
if( m_pWeapon )
UpdateWeaponHUD( m_pWeapon, m_bOnTarget );
}
if ( gHUD.m_bPlayerDead )
return;
CBasePlayer* pPlayer = g_Prediction.GetLocalPlayer();
if ( gHUD.m_iWeaponBits != pPlayer->pev->weapons )
{
pPlayer->pev->weapons = gHUD.m_iWeaponBits;
for (int i = MAX_WEAPONS-1; i > 0; i-- )
{
CBasePlayerWeapon *p = g_Prediction.GetWeapon(i);
if ( p && p->GetWeaponInfo() )
{
if ( gHUD.m_iWeaponBits & ( 1 << p->GetWeaponInfo()->GetID() ) )
pPlayer->AddPlayerItem( p );
else
pPlayer->RemovePlayerItem( p );
}
}
}
if( !m_pActiveSel )
return;
// has the player selected one?
if (gHUD.m_iKeyBits & IN_ATTACK)
{
if ( m_pActiveSel != (CBasePlayerWeapon *)1)
{
ServerCmd( m_pActiveSel->GetWeaponInfo()->GetWeaponName());
g_weaponselect = m_pActiveSel->GetWeaponInfo()->GetID();
}
m_pLastSel = m_pActiveSel;
m_pActiveSel = nullptr;
gHUD.m_iKeyBits &= ~IN_ATTACK;
PlaySound("common/wpn_select.wav", 1);
}
}
示例2: Touch
void CWeaponBox::Touch( CBaseEntity *pOther )
{
if ( !(pev->flags & FL_ONGROUND ) ) return;
if ( !pOther->IsPlayer() ) return;
if ( !pOther->IsAlive() ) return;
CBasePlayer *pPlayer = (CBasePlayer *)pOther;
int i;
// dole out ammo
for ( i = 0 ; i < MAX_AMMO_SLOTS ; i++ )
{
if ( !FStringNull( m_rgiszAmmo[ i ] ) )
{
// there's some ammo of this type.
pPlayer->GiveAmmo( m_rgAmmo[ i ], (char *)STRING( m_rgiszAmmo[ i ] ), MaxAmmoCarry( m_rgiszAmmo[ i ] ) );
// now empty the ammo from the weaponbox since we just gave it to the player
m_rgiszAmmo[ i ] = iStringNull;
m_rgAmmo[ i ] = 0;
}
}
// go through my weapons and try to give the usable ones to the player.
// it's important the the player be given ammo first, so the weapons code doesn't refuse
// to deploy a better weapon that the player may pick up because he has no ammo for it.
for ( i = 0 ; i < MAX_ITEM_TYPES ; i++ )
{
if ( m_rgpPlayerItems[ i ] )
{
CBasePlayerWeapon *pItem;
// have at least one weapon in this slot
while ( m_rgpPlayerItems[i] )
{
pItem = m_rgpPlayerItems[i];
m_rgpPlayerItems[i] = m_rgpPlayerItems[i]->m_pNext; // unlink this weapon from the box
if( pPlayer->AddPlayerItem( pItem ))
pItem->AttachToPlayer( pPlayer );
}
}
}
EMIT_SOUND( pOther->edict(), CHAN_BODY, "items/gunpickup2.wav", 1, ATTN_NORM );
SetTouch( NULL );
UTIL_Remove( this );
}