当前位置: 首页>>代码示例>>C++>>正文


C++ CBaseCombatCharacter::IsAllowedToPickupWeapons方法代码示例

本文整理汇总了C++中CBaseCombatCharacter::IsAllowedToPickupWeapons方法的典型用法代码示例。如果您正苦于以下问题:C++ CBaseCombatCharacter::IsAllowedToPickupWeapons方法的具体用法?C++ CBaseCombatCharacter::IsAllowedToPickupWeapons怎么用?C++ CBaseCombatCharacter::IsAllowedToPickupWeapons使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CBaseCombatCharacter的用法示例。


在下文中一共展示了CBaseCombatCharacter::IsAllowedToPickupWeapons方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: PickupTouch

void CGETKnife::PickupTouch( CBaseEntity *pOther )
{
	// Vehicles can touch items + pick them up
	if ( pOther->GetServerVehicle() )
	{
		pOther = pOther->GetServerVehicle()->GetPassenger();
		if ( !pOther )
			return;
	}

	CBaseCombatCharacter *pPicker = pOther->MyCombatCharacterPointer();
	if ( !pPicker )
		return;

	// Must be a valid pickup scenario (no blocking). Though this is a more expensive
	// check than some that follow, this has to be first because it's the only one
	// that inhibits firing the output OnCacheInteraction.
	if ( UTIL_ItemCanBeTouchedByPlayer( this, ToGEPlayer(pPicker) ) == false )
		return;

	// Can I even pick stuff up?
	if ( !pPicker->IsAllowedToPickupWeapons() )
		return;

	if ( MyTouch( pPicker ) )
	{
		SetTouch( NULL );
		SetThink( NULL );

		UTIL_Remove( this );
	}
}
开发者ID:Entropy-Soldier,项目名称:ges-legacy-code,代码行数:32,代码来源:npc_tknife.cpp

示例2: SlamTouch

//-----------------------------------------------------------------------------
// Purpose: Override so give correct ammo
// Input  : pOther - the entity that touched me
// Output :
//-----------------------------------------------------------------------------
void CWeapon_SLAM::SlamTouch( CBaseEntity *pOther )
{
	CBaseCombatCharacter* pBCC = ToBaseCombatCharacter( pOther );

	// Can I even pick stuff up?
	if ( pBCC && !pBCC->IsAllowedToPickupWeapons() )
		return;

	// ---------------------------------------------------
	//  First give weapon to touching entity if allowed
	// ---------------------------------------------------
	BaseClass::DefaultTouch(pOther);

	// ----------------------------------------------------
	//  Give slam ammo if touching client
	// ----------------------------------------------------
	if (pOther->GetFlags() & FL_CLIENT)
	{
		// ------------------------------------------------
		//  If already owned weapon of this type remove me
		// ------------------------------------------------
		CWeapon_SLAM* oldWeapon = (CWeapon_SLAM*)pBCC->Weapon_OwnsThisType( GetClassname() );
		if (oldWeapon != this)
		{
			UTIL_Remove( this );
		}
		else
		{
			pBCC->GiveAmmo( 1, m_iSecondaryAmmoType );
			SetThink(NULL);
		}
	}
}
开发者ID:DreikVal,项目名称:nicksproject,代码行数:38,代码来源:weapon_slam.cpp

示例3: MineTouch

void CWeaponMine::MineTouch( CBaseEntity *pOther )
{
#ifdef GAME_DLL
	CBaseCombatCharacter* pBCC = ToBaseCombatCharacter( pOther );
	if ( pBCC && !pBCC->IsAllowedToPickupWeapons() )
		return;
#endif

	BaseClass::DefaultTouch(pOther);
}
开发者ID:Orygin,项目名称:BisounoursParty,代码行数:10,代码来源:weapon_mine.cpp

示例4: SlamTouch

//-----------------------------------------------------------------------------
// Purpose: Override so give correct ammo
// Input  : pOther - the entity that touched me
// Output :
//-----------------------------------------------------------------------------
void CWeapon_SLAM::SlamTouch( CBaseEntity *pOther )
{
#ifdef GAME_DLL
	CBaseCombatCharacter* pBCC = ToBaseCombatCharacter( pOther );

	// Can I even pick stuff up?
	if ( pBCC && !pBCC->IsAllowedToPickupWeapons() )
		return;
#endif

	// ---------------------------------------------------
	//  First give weapon to touching entity if allowed
	// ---------------------------------------------------
	BaseClass::DefaultTouch(pOther);
}
开发者ID:0xFEEDC0DE64,项目名称:UltraGame,代码行数:20,代码来源:weapon_slam.cpp

示例5: StartTouch

//-----------------------------------------------------------------------------
// Drops all weapons, marks the character as not being able to pick up weapons
//-----------------------------------------------------------------------------
void CTriggerWeaponStrip::StartTouch(CBaseEntity *pOther)
{
	BaseClass::StartTouch( pOther );

	if ( PassesTriggerFilters(pOther) == false )
		return;

	CBaseCombatCharacter *pCharacter = pOther->MyCombatCharacterPointer();
	
	if ( m_bKillWeapons )
	{
		for ( int i = 0 ; i < pCharacter->WeaponCount(); ++i )
		{
			CBaseCombatWeapon *pWeapon = pCharacter->GetWeapon( i );
			if ( !pWeapon )
				continue;

			pCharacter->Weapon_Drop( pWeapon );
			UTIL_Remove( pWeapon );
		}
		return;
	}

	// Strip the player of his weapons
	if ( pCharacter && pCharacter->IsAllowedToPickupWeapons() )
	{
		CBaseCombatWeapon *pBugbait = pCharacter->Weapon_OwnsThisType( "weapon_bugbait" );
		if ( pBugbait )
		{
			pCharacter->Weapon_Drop( pBugbait );
			UTIL_Remove( pBugbait );
		}

		pCharacter->Weapon_DropAll( true );
		pCharacter->SetPreventWeaponPickup( true );
	}
}
开发者ID:xxauroraxx,项目名称:Source.Python,代码行数:40,代码来源:hl2_triggers.cpp


注:本文中的CBaseCombatCharacter::IsAllowedToPickupWeapons方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。