コード例 #1
0
//-----------------------------------------------------------------------------
// Purpose: Red Spark effects
//-----------------------------------------------------------------------------
void BuildSparksRedCallback( const CEffectData &data )
{
	Vector vecOrigin = data.m_vOrigin;
	QAngle vecAngles = data.m_vAngles;

	// Angle them up
	vecAngles[PITCH] = -90;
	Vector vecForward;
	AngleVectors( vecAngles, &vecForward );

	// Sparks
	FX_Sparks( vecOrigin, 2, 4, vecForward, 2.5, 48, 64, "effects/spark2" );
}
コード例 #2
0
void CASW_Weapon_Welder::ProcessMuzzleFlashEvent()
{
	// attach muzzle flash particle system effect
	int iAttachment = GetMuzzleAttachment();		
	if ( iAttachment > 0 )
	{		
		Vector sparkOrigin, sparkNormal;
		QAngle sparkAngles;

		if ( GetAttachment( iAttachment, sparkOrigin, sparkAngles ) )
		{
			AngleVectors(sparkAngles, &sparkNormal);
			FX_Sparks( sparkOrigin, 1, 1, sparkNormal, 3, 32, 128 );	// disabled for now
		}
	}
	C_BaseCombatWeapon::ProcessMuzzleFlashEvent();
	OnMuzzleFlashed();
}
コード例 #3
0
void CASW_Weapon_Chainsaw::UpdateEffect( const Vector &startPoint, const Vector &endPoint )
{
	//if ( !m_hBeam )
	//{
		//CreateEffect();
	//}

	//if ( m_hBeam )
	//{
		//m_hBeam->SetStartPos( endPoint );
	//}

	CASW_Marine* pOwner = GetMarine();
	
	if (!pOwner)
		return;

	// make sparks come out at end point
	Vector vecNormal = startPoint - endPoint;
	vecNormal.NormalizeInPlace();
#ifndef CLIENT_DLL
	CEffectData data;
	data.m_vOrigin = endPoint;	
	data.m_vNormal = vecNormal;
	CPASFilter filter( data.m_vOrigin );
	filter.SetIgnorePredictionCull(true);
	
	if (gpGlobals->maxClients > 1 && pOwner->IsInhabited() && pOwner->GetCommander())
	{
		// multiplayer game, where this marine is currently being controlled by a client, who will spawn his own effect
		// so just make the beam effect for all other clients		
		filter.RemoveRecipient(pOwner->GetCommander());
	}
	
	DispatchEffect( filter, 0.0, "ASWWelderSparks", data );
#else
	FX_Sparks( endPoint, 1, 2, vecNormal, 5, 32, 160 );
#endif

	if ( m_hNoise )
	{
		m_hNoise->SetStartPos( endPoint );
	}
}
コード例 #4
0
//-----------------------------------------------------------------------------
// Purpose: Large dust impact
//-----------------------------------------------------------------------------
void BuildImpactCallback( const CEffectData &data )
{
	Vector vecOrigin = data.m_vOrigin;
	QAngle vecAngles = data.m_vAngles;
	Vector vecNormal = data.m_vNormal;

	FX_BuildImpact( vecOrigin, vecAngles, vecNormal, 1 );

	// Randomly play sparks
	if ( RandomFloat() > 0.35 )
	{
		// Angle them up
		vecAngles[PITCH] = -90;
		Vector vecForward;
		AngleVectors( vecAngles, &vecForward );

		// Sparks
		FX_Sparks( vecOrigin, 2, 4, vecForward, 2.5, 48, 64 );
	}
}
コード例 #5
0
ファイル: weapon_stunstick.cpp プロジェクト: NEITMod/HL2BM2
//-----------------------------------------------------------------------------
// Purpose: Draw a cheap glow quad at our impact point (with sparks)
//-----------------------------------------------------------------------------
void StunstickImpactCallback( const CEffectData &data )
{
	float scale = random->RandomFloat( 16, 32 );

	FX_AddQuad( data.m_vOrigin, 
				data.m_vNormal, 
				scale,
				scale*2.0f,
				1.0f, 
				1.0f,
				0.0f,
				0.0f,
				random->RandomInt( 0, 360 ), 
				0,
				Vector( 1.0f, 1.0f, 1.0f ), 
				0.1f, 
				"sprites/light_glow02_add",
				0 );

	FX_Sparks( data.m_vOrigin, 1, 2, data.m_vNormal, 6, 64, 256 );
}