您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ DispatchParticleEffect函数代码示例

51自学网 2021-06-01 20:28:16
  C++
这篇教程C++ DispatchParticleEffect函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中DispatchParticleEffect函数的典型用法代码示例。如果您正苦于以下问题:C++ DispatchParticleEffect函数的具体用法?C++ DispatchParticleEffect怎么用?C++ DispatchParticleEffect使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

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

示例1: VectorNormalize

//-----------------------------------------------------------------------------//-----------------------------------------------------------------------------void CWeaponStriderBuster::OnFlechetteAttach( Vector &vecFlechetteVelocity ){	if ( m_bLaunched )	{		Vector vecForce = vecFlechetteVelocity;		VectorNormalize( vecForce );		vecForce *= 1000;		vecForce.z = -5000;		VPhysicsGetObject()->ApplyForceCenter( vecForce );	}	if ( !GetParent() || !GetParent()->ClassMatches( g_iszVehicle ) )	{		if ( !m_bNoseDiving )		{			//m_hGlowTrail->StopParticleSystem();			StopParticleEffects( this );			if( m_iBusterFlags & STRIDERBUSTER_FLAG_KNOCKED_OFF_STRIDER )			{				DispatchParticleEffect( "striderbuster_shotdown_trail", PATTACH_ABSORIGIN_FOLLOW, this );			}			else			{				DispatchParticleEffect( "striderbuster_flechette_attached", PATTACH_ABSORIGIN_FOLLOW, this );			}		}		m_bNoseDiving = true;	}	m_nAttachedFlechettes++;}
开发者ID:FooGames,项目名称:SecobMod,代码行数:36,


示例2: SpawnSquashedGrub

//-----------------------------------------------------------------------------// Purpose: //-----------------------------------------------------------------------------void CAntlionGrub::Squash( CBaseEntity *pOther, bool bDealDamage, bool bSpawnBlood ){	// If we're already squashed, then don't bother doing it again!	if ( GetEffects() & EF_NODRAW )		return;	SpawnSquashedGrub();	AddEffects( EF_NODRAW );	AddSolidFlags( FSOLID_NOT_SOLID );		// Stop being attached to us	if ( m_hGlowSprite )	{		FadeGlow();		m_hGlowSprite->SetParent( NULL );	}	EmitSound( "NPC_Antlion_Grub.Die" );	EmitSound( "NPC_Antlion_Grub.Squish" );	// if vort stepped on me, maybe he wants to say something	if ( pOther && FClassnameIs( pOther, "npc_vortigaunt" ) )	{		Assert(dynamic_cast<CNPC_Vortigaunt *>(pOther));		static_cast<CNPC_Vortigaunt *>(pOther)->OnSquishedGrub(this);	}	SetTouch( NULL );	//if ( bSpawnBlood )	{		// Temp squash effect		Vector vecForward, vecUp;		AngleVectors( GetAbsAngles(), &vecForward, NULL, &vecUp );		// Start effects at either end of the grub		Vector vecSplortPos = GetAbsOrigin() + vecForward * 14.0f;		DispatchParticleEffect( "GrubSquashBlood", vecSplortPos, GetAbsAngles() );		vecSplortPos = GetAbsOrigin() - vecForward * 16.0f;		Vector vecDir = -vecForward;		QAngle vecAngles;		VectorAngles( vecDir, vecAngles );		DispatchParticleEffect( "GrubSquashBlood", vecSplortPos, vecAngles );				MakeSquashDecals( GetAbsOrigin() + vecForward * 32.0f );		MakeSquashDecals( GetAbsOrigin() - vecForward * 32.0f );	}	// Deal deadly damage to ourself	if ( bDealDamage )	{		CTakeDamageInfo info( pOther, pOther, Vector( 0, 0, -1 ), GetAbsOrigin(), GetHealth()+1, DMG_CRUSH );		TakeDamage( info );	}}
开发者ID:xxauroraxx,项目名称:Source.Python,代码行数:60,


示例3: ASW_GiveAmmo

int ASW_GiveAmmo( CASW_Marine *pMarine, float flCount, const char *pszAmmoName, CBaseEntity *pAmmoEntity, bool bSuppressSound = false ){	int iAmmoType = GetAmmoDef()->Index(pszAmmoName);	if ( iAmmoType == -1 )	{		Msg("ERROR: Attempting to give unknown ammo type (%s)/n",pszAmmoName);		return 0;	}	int amount = pMarine->GiveAmmo( flCount, iAmmoType, bSuppressSound );	if ( amount == 0 )		amount = pMarine->GiveAmmoToAmmoBag( flCount, iAmmoType, bSuppressSound );	if ( amount > 0 )	{		pMarine->TookAmmoPickup( pAmmoEntity );		// Check the ammo type... for some doing a spilling bullet effect isn't fictionally appropriate		if ( iAmmoType != GetAmmoDef()->Index( "ASW_F" ) && iAmmoType != GetAmmoDef()->Index( "ASW_ML" ) && iAmmoType != GetAmmoDef()->Index( "ASW_TG" ) && iAmmoType != GetAmmoDef()->Index( "ASW_GL" ) )		{			// Do effects			int iAmmoCost = CASW_Ammo_Drop_Shared::GetAmmoUnitCost( iAmmoType );			if ( iAmmoCost < 20 )			{				pAmmoEntity->EmitSound( "ASW_Ammobag.Pickup_sml" );				DispatchParticleEffect( "ammo_satchel_take_sml", pAmmoEntity->GetAbsOrigin() + Vector( 0, 0, 4 ), vec3_angle );			}			else if ( iAmmoCost < 75 )			{				pAmmoEntity->EmitSound( "ASW_Ammobag.Pickup_med" );				DispatchParticleEffect( "ammo_satchel_take_med", pAmmoEntity->GetAbsOrigin() + Vector( 0, 0, 4 ), vec3_angle );			}			else			{				pAmmoEntity->EmitSound( "ASW_Ammobag.Pickup_lrg" );				DispatchParticleEffect( "ammo_satchel_take_lrg", pAmmoEntity->GetAbsOrigin() + Vector( 0, 0, 4 ), vec3_angle );			}		}		IGameEvent * event = gameeventmanager->CreateEvent( "ammo_pickup" );		if ( event )		{			CASW_Player *pPlayer = pMarine->GetCommander();			event->SetInt( "userid", ( pPlayer ? pPlayer->GetUserID() : 0 ) );			event->SetInt( "entindex", pMarine->entindex() );			gameeventmanager->FireEvent( event );		}	}	return amount;}
开发者ID:BenLubar,项目名称:riflemod,代码行数:53,


示例4: StartAttackOffSound

void CASW_Weapon_Chainsaw::EndAttack( void ){			if ( m_fireState != FIRE_OFF )	{		StartAttackOffSound();#ifdef CLIENT_DLL		DispatchParticleEffect( "mining_laser_exhaust", PATTACH_POINT_FOLLOW, this, "eject1" );#endif	}	StopChainsawSound();		SetWeaponIdleTime( gpGlobals->curtime + 2.0 );	m_flNextPrimaryAttack = gpGlobals->curtime + GetWeaponInfo()->m_flFireRate;	m_flNextSecondaryAttack = gpGlobals->curtime + GetWeaponInfo()->m_flFireRate;	SetFiringState(FIRE_OFF);	ClearIsFiring();	DestroyEffect();}
开发者ID:BenLubar,项目名称:SwarmDirector2,代码行数:25,


示例5: BloodImpactCallback

//-----------------------------------------------------------------------------//-----------------------------------------------------------------------------void BloodImpactCallback( const CEffectData & data ){	bool bFoundBlood = false;	// Find which sort of blood we are	for ( int i = 0; i < ARRAYSIZE( bloodCallbacks ); i++ )	{		if ( bloodCallbacks[i].nColor == data.m_nColor )		{			QAngle	vecAngles;			VectorAngles( -data.m_vNormal, vecAngles );			DispatchParticleEffect( bloodCallbacks[i].lpszParticleSystemName, data.m_vOrigin, vecAngles );			bFoundBlood = true;			break;		}	}	if ( bFoundBlood == false )	{		Vector vecPosition;		vecPosition = data.m_vOrigin;				// Fetch the blood color.		colorentry_t color;		GetBloodColor( data.m_nColor, color );		FX_BloodBulletImpact( vecPosition, data.m_vNormal, data.m_flScale, color.r, color.g, color.b );	}}
开发者ID:detoxhby,项目名称:lambdawars,代码行数:31,


示例6: GetOwnerEntity

//-----------------------------------------------------------------------------// Purpose: //-----------------------------------------------------------------------------void CWeaponStriderBuster::Detonate( void ){	CBaseEntity *pVictim = GetOwnerEntity();	if ( !m_bDud && pVictim )	{		// Kill the strider (with magic effect)		CBasePlayer *pPlayer = AI_GetSinglePlayer();		CTakeDamageInfo info( pPlayer, this, RandomVector( -100.0f, 100.0f ), GetAbsOrigin(), pVictim->GetHealth(), DMG_GENERIC );		pVictim->TakeDamage( info );		gamestats->Event_WeaponHit( ToBasePlayer( pPlayer ), true, GetClassname(), info );		// Tracker 62293:  There's a bug where the inflictor/attacker are reversed when calling TakeDamage above so the player never gets		//  credit for the strider buster kills.  The code has a bunch of assumptions lower level, so it's safer to just fix it here by 		//  crediting a kill to the player directly.		gamestats->Event_PlayerKilledOther( pPlayer, pVictim, info );	}	m_OnDetonate.FireOutput( this, this );	// Explode	if ( !m_bDud )	{		CreateDestroyedEffect();		EmitSound( "Weapon_StriderBuster.Detonate" );	}	else	{		DispatchParticleEffect( "striderbuster_explode_dummy_core", GetAbsOrigin(), GetAbsAngles() );		EmitSound( "Weapon_StriderBuster.Dud_Detonate" );	}	// Go to bits!	Shatter( pVictim );}
开发者ID:FooGames,项目名称:SecobMod,代码行数:38,


示例7: PerformCustomEffects

void PerformCustomEffects( const Vector &vecOrigin, trace_t &tr, const Vector &shotDir, int iMaterial, int iScale, int nFlags ){	// Throw out the effect if any of these are true	if ( tr.surface.flags & (SURF_SKY|SURF_NODRAW|SURF_HINT|SURF_SKIP) )		return;	if ( cl_new_impact_effects.GetInt() )	{		PerformNewCustomEffects( vecOrigin, tr, shotDir, iMaterial, iScale, nFlags );		return;	}	bool bNoFlecks = !r_drawflecks.GetBool();	if ( !bNoFlecks )	{		bNoFlecks = ( ( nFlags & FLAGS_CUSTIOM_EFFECTS_NOFLECKS ) != 0  );	}	// Cement and wood have dust and flecks	if ( ( iMaterial == CHAR_TEX_CONCRETE ) || ( iMaterial == CHAR_TEX_TILE ) )	{		FX_DebrisFlecks( vecOrigin, &tr, iMaterial, iScale, bNoFlecks );	}	else if ( iMaterial == CHAR_TEX_WOOD )	{		FX_DebrisFlecks( vecOrigin, &tr, iMaterial, iScale, bNoFlecks );	}	else if ( ( iMaterial == CHAR_TEX_DIRT ) || ( iMaterial == CHAR_TEX_SAND ) )	{		FX_DustImpact( vecOrigin, &tr, iScale );	}	else if ( iMaterial == CHAR_TEX_ANTLION )	{		FX_AntlionImpact( vecOrigin, &tr );	}	else if ( ( iMaterial == CHAR_TEX_METAL ) || ( iMaterial == CHAR_TEX_VENT ) )	{		Vector	reflect;		float	dot = shotDir.Dot( tr.plane.normal );		reflect = shotDir + ( tr.plane.normal * ( dot*-2.0f ) );		reflect[0] += random->RandomFloat( -0.2f, 0.2f );		reflect[1] += random->RandomFloat( -0.2f, 0.2f );		reflect[2] += random->RandomFloat( -0.2f, 0.2f );		FX_MetalSpark( vecOrigin, reflect, tr.plane.normal, iScale );	}	else if ( iMaterial == CHAR_TEX_COMPUTER )	{		Vector	offset = vecOrigin + ( tr.plane.normal * 1.0f );		g_pEffects->Sparks( offset );	}	else if ( iMaterial == CHAR_TEX_WARPSHIELD )	{		QAngle vecAngles;		VectorAngles( -shotDir, vecAngles );		DispatchParticleEffect( "warp_shield_impact", vecOrigin, vecAngles );	}}
开发者ID:Davideogame,项目名称:TheHunted,代码行数:60,


示例8: Particle_Test_Start

	void Particle_Test_Start( CBasePlayer* pPlayer, const char *name, bool bStart )	{		if ( !pPlayer )			return;		int iAttachType = GetAttachTypeFromString( particle_test_attach_mode.GetString() );		if ( iAttachType < 0 )		{			Warning( "Invalid attach type specified for particle_test in cvar 'particle_test_attach_mode./n" );			return;		}		int iAttachmentIndex = particle_test_attach_attachment.GetInt();		const char *pszParticleFile = particle_test_file.GetString();		CBaseEntity *pEntity = NULL;		while ( (pEntity = GetNextCommandEntity( pPlayer, name, pEntity )) != NULL )		{			/* 			Fire the test particle system on this entity			*/			DispatchParticleEffect( 				pszParticleFile,				(ParticleAttachment_t)iAttachType,				pEntity,				iAttachmentIndex,				true );				// stops existing particle systems		}	}
开发者ID:staticfox,项目名称:TF2Classic,代码行数:32,


示例9: UTIL_TraceLine

void CASW_Boomer_Blob::DoExplosion( ){	// scorch the ground	trace_t		tr;	UTIL_TraceLine ( GetAbsOrigin(), GetAbsOrigin() + Vector( 0, 0, -80 ), MASK_SHOT, this, COLLISION_GROUP_NONE, &tr);	if ( m_bMaster )	{		if ( ( tr.m_pEnt != GetWorldEntity() ) || ( tr.hitbox != 0 ) )		{			// non-world needs smaller decals			if( tr.m_pEnt && !tr.m_pEnt->IsNPC() )			{				UTIL_DecalTrace( &tr, "SmallScorch" );			}		}		else		{			UTIL_DecalTrace( &tr, "Scorch" );		}		UTIL_ASW_ScreenShake( GetAbsOrigin(), 7.0f, 45.0f, 0.5f, 150, SHAKE_START );	}	// explosion effects	DispatchParticleEffect( "boomer_drop_explosion", GetAbsOrigin(), Vector( m_DmgRadius, 0.0f, 0.0f ), QAngle( 0.0f, 0.0f, 0.0f ) );	EmitSound( "ASW_Boomer_Grenade.Explode" );	// damage to nearby things	ASWGameRules()->RadiusDamage( CTakeDamageInfo( this, m_hFirer.Get(), m_flDamage, DMG_BLAST ), GetAbsOrigin(), m_DmgRadius, CLASS_NONE, NULL );}
开发者ID:BenLubar,项目名称:SwarmDirector2,代码行数:31,


示例10: GetAbsOrigin

void CASW_Grenade_PRifle::CreateEffects( void ){	CEffectData	data;	data.m_vOrigin = GetAbsOrigin();	CPASFilter filter( data.m_vOrigin );	filter.SetIgnorePredictionCull(true);	DispatchParticleEffect( "prifle_grenade_fx", PATTACH_ABSORIGIN_FOLLOW, this, "fuse", false, -1, &filter );	/*	int	nAttachment = LookupAttachment( "fuse" );	m_pGlowTrail	= CSpriteTrail::SpriteTrailCreate( "sprites/bluelaser1.vmt", GetLocalOrigin(), false );	if ( m_pGlowTrail != NULL )	{		m_pGlowTrail->FollowEntity( this );		m_pGlowTrail->SetAttachment( this, nAttachment );		m_pGlowTrail->SetTransparency( kRenderTransAdd, 255, 255, 255, asw_grentrail_brightness.GetInt(), kRenderFxNone );		m_pGlowTrail->SetStartWidth( asw_grentrail_width.GetFloat() );		m_pGlowTrail->SetEndWidth( asw_grentrail_widthend.GetFloat() );		m_pGlowTrail->SetLifeTime( asw_grentrail_lifetime.GetFloat() );		m_pGlowTrail->SetMinFadeLength(asw_grentrail_fade.GetFloat());	}	*/}
开发者ID:BenLubar,项目名称:SwarmDirector2,代码行数:25,


示例11: DispatchParticleEffect

void CWeaponDrainGrenade::Explode( CBaseCombatCharacter* pAttacker,						   CBaseEntity* pInflictor,						   CBaseEntity* pIgnore,						   Vector vecPosition,						   float flDamage,						   float flRadius,						   float flDrainFocus ){#if !defined( CLIENT_DLL )	//CSoundEnt::InsertSound ( SOUND_COMBAT, vecPosition, 1024, 3.0 );		CTakeDamageInfo info;	info.CFSet( pInflictor, pAttacker, vec3_origin, vecPosition, flDamage, DMG_BLAST, WEAPON_NONE, &vecPosition, false );	info.SetDrainFocus( flDrainFocus );	DispatchParticleEffect("grenade_explosion", vecPosition, vec3_angle, pIgnore);	//TODO: Figure out sound.	CPASAttenuationFilter filter( this );	filter.UsePredictionRules();	EmitSound( filter, entindex(), "Numen.FireAoE" );	//CSoundEnt::InsertSound ( SOUND_COMBAT, GetAbsOrigin(), BASEGRENADE_EXPLOSION_VOLUME, 3.0 );		RadiusDamage( info, vecPosition, flRadius );#endif //!defined( CLIENT_DLL )}
开发者ID:BSVino,项目名称:Arcon,代码行数:28,


示例12: CC_DispatchParticle

	void CC_DispatchParticle( const CCommand& args )	{		C_BasePlayer *pLocalPlayer = C_BasePlayer::GetLocalPlayer();		if ( !pLocalPlayer )			return;		if ( args.ArgC() < 2 )		{			DevMsg( "Use: dispatch_particle {particle_name} {surface_offset_distance}/n" );			return;		}		float flSurfaceOffsetDistance = 0.f;		if ( args.ArgC() == 3 )		{			flSurfaceOffsetDistance = atof( args[2] );		}		Vector vForward;		pLocalPlayer->GetVectors( &vForward, NULL, NULL );		trace_t tr;		UTIL_TraceLine( pLocalPlayer->EyePosition(), pLocalPlayer->EyePosition() + vForward * 3000, MASK_SOLID_BRUSHONLY, NULL, &tr );			Vector vTargetDeathPos = tr.endpos;		DispatchParticleEffect( args[1], vTargetDeathPos + flSurfaceOffsetDistance * tr.plane.normal, vec3_angle );	}
开发者ID:TenmaPL,项目名称:TF2Classic,代码行数:26,


示例13: AddEffects

//-----------------------------------------------------------------------------// Purpose: // Input  : &info - //-----------------------------------------------------------------------------void CGrubNugget::Event_Killed( const CTakeDamageInfo &info ){	AddEffects( EF_NODRAW );	DispatchParticleEffect( "antlion_spit_player", GetAbsOrigin(), QAngle( -90, 0, 0 ) );	EmitSound( "NPC_Antlion_Grub.Explode" );	BaseClass::Event_Killed( info );}
开发者ID:xxauroraxx,项目名称:Source.Python,代码行数:12,


示例14: VectorAngles

//-----------------------------------------------------------------------------// Purpose: // Input  : &info - //			&vecDir - //			*ptr - //-----------------------------------------------------------------------------void CAntlionGrub::TraceAttack( const CTakeDamageInfo &info, const Vector &vecDir, trace_t *ptr ){	QAngle vecAngles;	VectorAngles( -vecDir, vecAngles );	DispatchParticleEffect( "GrubBlood", ptr->endpos, vecAngles );	BaseClass::TraceAttack( info, vecDir, ptr );}
开发者ID:xxauroraxx,项目名称:Source.Python,代码行数:14,


示例15: ResetSequence

void CASW_Boomer_Blob::CheckNearbyTargets( ){		// see if an alien is nearby	if ( gpGlobals->curtime >= m_fEarliestAOEDetonationTime )	{		if ( !m_bModelOpening && gpGlobals->curtime >= (m_fDetonateTime - ASW_BOOMER_WARN_DELAY) )		{			// we are one second from detonating, commit to detonating and start the opening sequence			// regardless of anyone nearby			m_bModelOpening = true;			ResetSequence( LookupSequence( "MortarBugProjectile_Opening" ) );			CEffectData	data;			data.m_vOrigin = GetAbsOrigin();			CPASFilter filter( data.m_vOrigin );			filter.SetIgnorePredictionCull(true);			DispatchParticleEffect( "boomer_grenade_open", PATTACH_ABSORIGIN_FOLLOW, this, -1, false, -1, &filter );		}		// if we exceeded the detonation time, just detonate		if ( gpGlobals->curtime >= m_fDetonateTime )		{			Detonate();			return;		}		// if the model is opening, do the animation advance		if ( m_bModelOpening )		{			StudioFrameAdvance();			SetNextThink( gpGlobals->curtime );			return;		}		float flRadius = asw_boomer_blob_radius_check_scale.GetFloat() * m_DmgRadius;		Vector vecSrc = GetAbsOrigin();		CBaseEntity *pEntity = NULL;		for ( CEntitySphereQuery sphere( vecSrc, flRadius ); ( pEntity = sphere.GetCurrentEntity() ) != NULL; sphere.NextEntity() )		{			if ( !pEntity || !pEntity->IsPlayer() )				continue;			// give them a 2 second warning before detonation			m_fDetonateTime = MIN( m_fDetonateTime, m_fDetonateTime + ASW_BOOMER_WARN_DELAY );		}	}		if ( m_fDetonateTime <= gpGlobals->curtime + asw_boomer_blob_radius_check_interval.GetFloat() )	{		SetThink( &CASW_Boomer_Blob::Detonate );		SetNextThink( m_fDetonateTime );	}	else	{		SetThink( &CASW_Boomer_Blob::CheckNearbyTargets );		SetNextThink( gpGlobals->curtime + asw_boomer_blob_radius_check_interval.GetFloat() );	}}
开发者ID:BenLubar,项目名称:SwarmDirector2,代码行数:58,


示例16: GetAbsOrigin

void CASW_Boomer_Blob::CreateEffects(){	CEffectData	data;	data.m_vOrigin = GetAbsOrigin();	CPASFilter filter( data.m_vOrigin );	filter.SetIgnorePredictionCull(true);	DispatchParticleEffect( "boomer_projectile_main_trail", PATTACH_ABSORIGIN_FOLLOW, this, -1, false, -1, &filter );	EmitSound( "ASW_Boomer_Projectile.Spawned" );}
开发者ID:BenLubar,项目名称:SwarmDirector2,代码行数:9,


示例17: DispatchParticleEffect

//-----------------------------------------------------------------------------// Purpose: //-----------------------------------------------------------------------------void CGERocket::CreateSmokeTrail( void ){	const CBaseEntity *host = te->GetSuppressHost();	te->SetSuppressHost( NULL );	DispatchParticleEffect( "ge_rocket_trail", PATTACH_POINT_FOLLOW, this, "smoke" );	te->SetSuppressHost( (CBaseEntity*)host );}
开发者ID:Entropy-Soldier,项目名称:ges-legacy-code,代码行数:12,


示例18: PhysFrictionEffect

void PhysFrictionEffect( Vector &vecPos, Vector vecVel, float energy, int surfaceProps, int surfacePropsHit ){	QAngle angDirection;	VectorAngles( vecVel, angDirection );	surfacedata_t *psurf = physprops->GetSurfaceData( surfaceProps );	surfacedata_t *phit = physprops->GetSurfaceData( surfacePropsHit );	switch ( phit->game.material )	{	case CHAR_TEX_DIRT:				if ( energy < MASS10_SPEED2ENERGY(15) )			break;				DispatchParticleEffect( "impact_physics_dust", vecPos, angDirection );		break;	case CHAR_TEX_CONCRETE:				if ( energy < MASS10_SPEED2ENERGY(28) )			break;		DispatchParticleEffect( "impact_physics_dust", vecPos, angDirection );		break;	}		//Metal sparks	if ( energy > MASS10_SPEED2ENERGY(50) )	{		// make sparks for metal/concrete scrapes with enough energy		if ( psurf->game.material == CHAR_TEX_METAL || psurf->game.material == CHAR_TEX_GRATE )		{				switch ( phit->game.material )			{			case CHAR_TEX_CONCRETE:			case CHAR_TEX_METAL:				DispatchParticleEffect( "impact_physics_sparks", vecPos, angDirection );				break;												}		}	}}
开发者ID:detoxhby,项目名称:lambdawars,代码行数:43,


示例19: GetMarine

void CASW_Weapon_Electrified_Armor::PrimaryAttack( void ){	if ( !ASWGameRules() )		return;		CASW_Marine *pMarine = GetMarine();	if ( !pMarine || pMarine->IsElectrifiedArmorActive() )		return;#ifndef CLIENT_DLL	bool bThisActive = (pMarine->GetActiveASWWeapon() == this);#endif	// sets the animation on the marine holding this weapon	//pMarine->SetAnimation( PLAYER_ATTACK1 );#ifndef CLIENT_DLL	float flDuration = asw_electrified_armor_duration.GetFloat();	pMarine->AddElectrifiedArmor( flDuration );	// stun aliens within the radius	ASWGameRules()->ShockNearbyAliens( pMarine, this );	// 	CTakeDamageInfo info( this, GetOwnerEntity(), 5, DMG_SHOCK );// 	info.SetDamageCustom( DAMAGE_FLAG_NO_FALLOFF );// 	RadiusDamage( info, GetAbsOrigin(), flRadius, CLASS_ASW_MARINE, NULL );	DispatchParticleEffect( "electrified_armor_burst", pMarine->GetAbsOrigin(), QAngle( 0, 0, 0 ) );		// count as a shot fired	if ( pMarine->GetMarineResource() )	{		pMarine->GetMarineResource()->UsedWeapon( this , 1 );		pMarine->OnWeaponFired( this, 1 );	}#endif	// decrement ammo	m_iClip1 -= 1;	m_flNextPrimaryAttack = gpGlobals->curtime + 4.0f;	if (!m_iClip1 && pMarine->GetAmmoCount(m_iPrimaryAmmoType) <= 0)	{		// weapon is lost when all stims are gone#ifndef CLIENT_DLL		if (pMarine)		{			pMarine->Weapon_Detach(this);			if (bThisActive)				pMarine->SwitchToNextBestWeapon(NULL);		}		Kill();#endif	}}
开发者ID:jtanx,项目名称:ch1ckenscoop,代码行数:55,


示例20: Particle_Test_Stop

	void Particle_Test_Stop( CBasePlayer* pPlayer, const char *name, bool bStart )	{		if ( !pPlayer )			return;		CBaseEntity *pEntity = NULL;		while ( (pEntity = GetNextCommandEntity( pPlayer, name, pEntity )) != NULL )		{			//Stop all particle systems on the selected entity			DispatchParticleEffect( "", PATTACH_ABSORIGIN, pEntity, 0, true );		}	}
开发者ID:staticfox,项目名称:TF2Classic,代码行数:12,


示例21: WeaponManager_RemoveManaged

//-----------------------------------------------------------------------------// Fling the buster with the physcannon either via punt or launch.//-----------------------------------------------------------------------------void CWeaponStriderBuster::Launch( CBasePlayer *pPhysGunUser ){	if ( !HasSpawnFlags( SF_DONT_WEAPON_MANAGE ) )	{		WeaponManager_RemoveManaged( this );	}	m_bLaunched = true;	// Notify all nearby hunters that we were launched.	Hunter_StriderBusterLaunched( this );	// Start up the eye glow	m_hMainGlow = CSprite::SpriteCreate( "sprites/blueglow1.vmt", GetLocalOrigin(), false );	if ( m_hMainGlow != NULL )	{		m_hMainGlow->FollowEntity( this );		m_hMainGlow->SetTransparency( kRenderGlow, 255, 255, 255, 140, kRenderFxNoDissipation );		m_hMainGlow->SetScale( 2.0f );		m_hMainGlow->SetGlowProxySize( 8.0f );	}	if ( !m_bNoseDiving )	{		DispatchParticleEffect( "striderbuster_trail", PATTACH_ABSORIGIN_FOLLOW, this );	}	else	{		DispatchParticleEffect( "striderbuster_shotdown_trail", PATTACH_ABSORIGIN_FOLLOW, this );	}	// We get our touch function from the physics system	SetTouch ( &CWeaponStriderBuster::BusterTouch );	SetThink( &CWeaponStriderBuster::BusterFlyThink );	SetNextThink( gpGlobals->curtime );	gamestats->Event_WeaponFired( pPhysGunUser, true, GetClassname() );}
开发者ID:FooGames,项目名称:SecobMod,代码行数:43,


示例22: GetAbsOrigin

void CASW_Rocket::DoExplosion( bool bHitWall ){	Vector vecExplosionPos = GetAbsOrigin();	CPASFilter filter( vecExplosionPos );	EmitSound( m_szDetonationSound );	DispatchParticleEffect( "explosion_air_small", GetAbsOrigin(), vec3_angle );	CTakeDamageInfo info( this, GetOwnerEntity(), GetDamage(), DMG_BLAST );	info.SetWeapon( m_hCreatorWeapon );	ASWGameRules()->RadiusDamage( info, GetAbsOrigin(), 50, CLASS_NONE, NULL );}
开发者ID:docfinorlias,项目名称:asb2,代码行数:13,


示例23: GetFireRate

void CWeaponUzi::PrimaryAttack( void ){	BaseClass::PrimaryAttack();	m_flNextPrimaryAttack = gpGlobals->curtime + GetFireRate();	//BP muzzlefash de la mort	/*Vector vecShootOrigin;	QAngle angShootDir;	GetAttachment(LookupAttachment("muzzle"), vecShootOrigin, angShootDir);	DispatchParticleEffect("muzzleflash_final_uzi", vecShootOrigin, angShootDir);*/	/*if(!GetOwner()->IsAlive())		ToBasePlayer( GetOwner() )->DoMuzzleFlash();*/	#define	EASY_DAMPEN			0.5f	#define	MAX_VERTICAL_KICK	1.0f	//Degrees	#define	SLIDE_LIMIT			2.0f	//Seconds		//Get the view kick	CBasePlayer *pPlayer = ToBasePlayer( GetOwner() );	if ( pPlayer == NULL )		return;	//pPlayer->DoMuzzleFlash();	Vector	vForward, vRight, vUp;	pPlayer->EyeVectors( &vForward, &vRight, &vUp );	Vector vecShootOrigin;	QAngle angShootDir;	GetAttachment(LookupAttachment("muzzle"), vecShootOrigin, angShootDir);#ifdef CLIENT_DLL	Vector	muzzlePoint = pPlayer->Weapon_ShootPosition() + vForward * 18.0f + vRight * 6.0f + vUp * -3.0f;#else	Vector	muzzlePoint = vecShootOrigin;#endif	DispatchParticleEffect("muzzleflash_final_uzi", muzzlePoint, angShootDir);#ifdef CLIENT_DLL	dlight_t *el = effects->CL_AllocDlight( LIGHT_INDEX_MUZZLEFLASH + index );	el->origin = muzzlePoint;	el->radius = random->RandomInt( 32, 64 ); 	el->decay = el->radius / 0.05f;	el->die = gpGlobals->curtime + 0.2f;	el->color.r = 255;	el->color.g = 192;	el->color.b = 64;	el->color.exponent = 5;#endif	DoMachineGunKick( pPlayer, EASY_DAMPEN, MAX_VERTICAL_KICK, m_fFireDuration, SLIDE_LIMIT );}
开发者ID:Orygin,项目名称:BisounoursParty,代码行数:51,


示例24: switch

float CNPC_PoisonZombie::GetHitgroupDamageMultiplier(int iHitGroup, const CTakeDamageInfo &info){	switch (iHitGroup)	{	case HITGROUP_HEAD:	{		int HeadshotRandom = random->RandomInt(0, 6);		if (!(g_Language.GetInt() == LANGUAGE_GERMAN || UTIL_IsLowViolence()))		{			if (!m_fIsHeadless && HeadshotRandom == 0 && !(info.GetDamageType() & DMG_NEVERGIB) || !m_fIsHeadless && info.GetDamageType() & DMG_SNIPER && !(info.GetDamageType() & DMG_NEVERGIB))			{				DispatchParticleEffect("headshotspray_zombie", PATTACH_POINT_FOLLOW, this, "headcrab1", true);				CGib::SpawnSpecificGibs(this, 3, 750, 1500, "models/gibs/agib_p3.mdl", 6);				CGib::SpawnSpecificGibs(this, 3, 750, 1500, "models/gibs/agib_p4.mdl", 6);				EmitSound("Gore.Headshot");				RemoveHead();			}			else			{				return 2.0f;			}		}		else		{			if (info.GetDamageType() & DMG_BUCKSHOT)			{				float flDist = FLT_MAX;				if (info.GetAttacker())				{					flDist = (GetAbsOrigin() - info.GetAttacker()->GetAbsOrigin()).Length();				}				if (flDist <= POISONZOMBIE_BUCKSHOT_TRIPLE_DAMAGE_DIST)				{					return 3.0f;				}			}			else			{				return 2.0f;			}		}	}	}	return BaseClass::GetHitgroupDamageMultiplier(iHitGroup, info);}
开发者ID:RaraFolf,项目名称:FIREFIGHT-RELOADED-src-sdk-2013,代码行数:48,


示例25: DispatchParticleEffect

//-----------------------------------------------------------------------------// Purpose: //-----------------------------------------------------------------------------void DispatchParticleEffect( const char *pszParticleName, ParticleAttachment_t iAttachType, CBaseEntity *pEntity, const char *pszAttachmentName, bool bResetAllParticlesOnEntity ){	int iAttachment = -1;	if ( pEntity && pEntity->GetBaseAnimating() )	{		// Find the attachment point index		iAttachment = pEntity->GetBaseAnimating()->LookupAttachment( pszAttachmentName );		if ( iAttachment <= 0 )		{			Warning("Model '%s' doesn't have attachment '%s' to attach particle system '%s' to./n", STRING(pEntity->GetBaseAnimating()->GetModelName()), pszAttachmentName, pszParticleName );			return;		}	}	DispatchParticleEffect( pszParticleName, iAttachType, pEntity, iAttachment, bResetAllParticlesOnEntity );}
开发者ID:staticfox,项目名称:TF2Classic,代码行数:19,


示例26: switch

//-----------------------------------------------------------------------------//-----------------------------------------------------------------------------float CNPC_CombineS::GetHitgroupDamageMultiplier( int iHitGroup, const CTakeDamageInfo &info ){	bool isNohead = false;	switch( iHitGroup )	{	case HITGROUP_HEAD:		int HeadshotRandom = random->RandomInt(0, 4);		if (!(g_Language.GetInt() == LANGUAGE_GERMAN || UTIL_IsLowViolence()) && g_fr_headshotgore.GetBool())		{			if (isNohead == false && HeadshotRandom == 0 && !(info.GetDamageType() & DMG_NEVERGIB) || isNohead == false && (info.GetDamageType() & (DMG_SNIPER | DMG_BUCKSHOT)) && !(info.GetDamageType() & DMG_NEVERGIB))			{				SetModel("models/gibs/combine_soldier_beheaded.mdl");				DispatchParticleEffect("headshotspray", PATTACH_POINT_FOLLOW, this, "bloodspurt", true);				SpawnBlood(GetAbsOrigin(), g_vecAttackDir, BloodColor(), info.GetDamage());				CGib::SpawnSpecificGibs(this, 6, 750, 1500, "models/gibs/pgib_p3.mdl", 6);				CGib::SpawnSpecificGibs(this, 6, 750, 1500, "models/gibs/pgib_p4.mdl", 6);				EmitSound("Gore.Headshot");				m_iHealth = 0;				g_pGameRules->iHeadshotCount += 1;				isNohead = true;				CBasePlayer *pPlayer = UTIL_PlayerByIndex(1);				if (g_fr_economy.GetBool())				{					pPlayer->AddMoney(5);				}				if (!g_fr_classic.GetBool())				{					pPlayer->AddXP(7);				}			}			else			{				// Soldiers take double headshot damage				return 2.0f;			}		}		else		{			// Soldiers take double headshot damage			return 2.0f;		}	}	return BaseClass::GetHitgroupDamageMultiplier( iHitGroup, info );}
开发者ID:RaraFolf,项目名称:FIREFIGHT-RELOADED-src-sdk-2013,代码行数:47,


示例27: GetAttachment

//-----------------------------------------------------------------------------// Purpose: //-----------------------------------------------------------------------------void CWeaponSMG1::FireNPCPrimaryAttack( CBaseCombatCharacter *pOperator, Vector &vecShootOrigin, Vector &vecShootDir ){	Vector vecShootOrigin2; //The origin of the shot 	QAngle	angShootDir2;    //The angle of the shot	//We need to figure out where to place the particle effect, so lookup where the muzzle is	GetAttachment( LookupAttachment( "muzzle" ), vecShootOrigin2, angShootDir2 );	// FIXME: use the returned number of bullets to account for >10hz firerate	WeaponSoundRealtime( SINGLE_NPC );	CSoundEnt::InsertSound( SOUND_COMBAT|SOUND_CONTEXT_GUNFIRE, pOperator->GetAbsOrigin(), SOUNDENT_VOLUME_MACHINEGUN, 0.2, pOperator, SOUNDENT_CHANNEL_WEAPON, pOperator->GetEnemy() );	pOperator->FireBullets( 1, vecShootOrigin, vecShootDir, VECTOR_CONE_PRECALCULATED,		MAX_TRACE_LENGTH, m_iPrimaryAmmoType, 2, entindex(), 0 );	//pOperator->DoMuzzleFlash();	DispatchParticleEffect( "muzzle_smg1", vecShootOrigin2, angShootDir2);	m_iClip1 = m_iClip1 - 1;}
开发者ID:KyleGospo,项目名称:City-17-Episode-One-Source,代码行数:22,


示例28: SetModelName

	void CBaseGrenadeProjectile::Explode( trace_t *pTrace, int bitsDamageType )	{		SetModelName( NULL_STRING );//invisible		AddSolidFlags( FSOLID_NOT_SOLID );		m_takedamage = DAMAGE_NO;		// Pull out of the wall a bit		if ( pTrace->fraction != 1.0 )		{			SetAbsOrigin( pTrace->endpos + (pTrace->plane.normal * 0.6) );		}		Vector vecAbsOrigin = GetAbsOrigin();		// Since this code only runs on the server, make sure it shows the tempents it creates.		// This solves a problem with remote detonating the pipebombs (client wasn't seeing the explosion effect)		CDisablePredictionFiltering disabler;		DispatchParticleEffect("grenade_exp1", vecAbsOrigin, QAngle(0, 0, 0));		CSoundEnt::InsertSound ( SOUND_COMBAT, vecAbsOrigin, BASEGRENADE_EXPLOSION_VOLUME, 3.0 );		// Use the thrower's position as the reported position		Vector vecReported = GetThrower() ? GetThrower()->GetAbsOrigin() : vec3_origin;			CTakeDamageInfo info( this, GetThrower(), GetBlastForce(), vecAbsOrigin, m_flDamage, bitsDamageType, 0, &vecReported );		RadiusDamage( info, vecAbsOrigin, m_DmgRadius, CLASS_NONE, NULL );		UTIL_DecalTrace( pTrace, "Scorch" );		EmitSound( "BaseGrenade.Explode" );		SetThink( &CBaseGrenade::SUB_Remove );		SetTouch( NULL );		SetSolid( SOLID_NONE );			AddEffects( EF_NODRAW );		SetAbsVelocity( vec3_origin );		SetNextThink( gpGlobals->curtime );	}
开发者ID:theplaymate,项目名称:DoubleAction,代码行数:43,


示例29: ToBasePlayer

void CWeaponSMG1::PrimaryAttack( void ){	if ( ( gpGlobals->curtime - .5f ) >  m_flLastAttackTime )	{	    m_nShotsFired = 1;	}		if ( m_nShotsFired == 15 )	{		m_nShotsFired = 1;		CBasePlayer *pOwner = ToBasePlayer( GetOwner() );		if( pOwner )		{			DispatchParticleEffect("weapon_muzzle_smoke_long", PATTACH_POINT_FOLLOW, pOwner->GetViewModel(), "muzzle", true);		}	}	BaseClass::PrimaryAttack();}
开发者ID:Mixpicles,项目名称:halflife-vr,代码行数:20,


示例30: SetNextThink

//-----------------------------------------------------------------------------//-----------------------------------------------------------------------------void CWeaponStriderBuster::BusterDetachThink(){	SetNextThink( gpGlobals->curtime + 0.1f );	trace_t tr;	UTIL_TraceLine( GetAbsOrigin(), GetAbsOrigin() - Vector( 0, 0, 1200), MASK_SOLID_BRUSHONLY, this, COLLISION_GROUP_NONE, &tr );	if( fabs(tr.startpos.z - tr.endpos.z) < 240.0f )	{		SetThink(NULL);		EmitSound( "Weapon_StriderBuster.Dud_Detonate" );		DispatchParticleEffect( "striderbuster_break_flechette", GetAbsOrigin(), GetAbsAngles() );		SetHealth( 0 );		CTakeDamageInfo info;		info.SetDamage( 1.0f );		info.SetAttacker( this );		info.SetInflictor( this );		Shatter(this);	}}
开发者ID:FooGames,项目名称:SecobMod,代码行数:22,



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


C++ DispatchSpawn函数代码示例
C++ DispatchMessageA函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。