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

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

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

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

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

示例1: switch

void CFuncTankGun::Fire( int bulletCount, const Vector &barrelEnd, const Vector &forward, CBaseEntity *pAttacker ){	int i;	for ( i = 0; i < bulletCount; i++ )	{		switch( m_bulletType )		{		case TANK_BULLET_SMALL:			FireBullets( 1, barrelEnd, forward, gTankSpread[m_spread], MAX_TRACE_LENGTH, m_iSmallAmmoType, 1,  -1, -1, m_iBulletDamage, pAttacker );			break;		case TANK_BULLET_MEDIUM:			FireBullets( 1, barrelEnd, forward, gTankSpread[m_spread], MAX_TRACE_LENGTH, m_iMediumAmmoType, 1, -1, -1, m_iBulletDamage, pAttacker );			break;		case TANK_BULLET_LARGE:			FireBullets( 1, barrelEnd, forward, gTankSpread[m_spread], MAX_TRACE_LENGTH, m_iLargeAmmoType, 1,  -1, -1, m_iBulletDamage, pAttacker );			break;		default:		case TANK_BULLET_NONE:			break;		}	}	CFuncTank::Fire( bulletCount, barrelEnd, forward, pAttacker );}
开发者ID:AgentAgrimar,项目名称:source-sdk-trilogy,代码行数:26,


示例2: UTIL_MakeAimVectors

void CFuncTankGun::Fire(const Vector &barrelEnd, const Vector &forward, entvars_t *pevAttacker){	if (m_fireLast != 0)	{		UTIL_MakeAimVectors(pev->angles);		int bulletCount = (int)((gpGlobals->time - m_fireLast) * m_fireRate);		if (bulletCount > 0)		{			for (int i = 0; i < bulletCount; i++)			{				switch (m_bulletType)				{					case TANK_BULLET_9MM: FireBullets(1, barrelEnd, forward, gTankSpread[m_spread], 4096, BULLET_MONSTER_9MM, 1, m_iBulletDamage, pevAttacker); break;					case TANK_BULLET_MP5: FireBullets(1, barrelEnd, forward, gTankSpread[m_spread], 4096, BULLET_MONSTER_MP5, 1, m_iBulletDamage, pevAttacker); break;					case TANK_BULLET_12MM: FireBullets(1, barrelEnd, forward, gTankSpread[m_spread], 4096, BULLET_MONSTER_12MM, 1, m_iBulletDamage, pevAttacker); break;					default:					case TANK_BULLET_NONE: break;				}			}			CFuncTank::Fire(barrelEnd, forward, pevAttacker);		}	}	else		CFuncTank::Fire(barrelEnd, forward, pevAttacker);}
开发者ID:AlexCSilva,项目名称:cs16-client,代码行数:29,


示例3: BarneyFirePistol

//=========================================================// BarneyFirePistol - shoots one round from the pistol at// the enemy barney is facing.//=========================================================void CFriend :: BarneyFirePistol ( void ){	Vector vecShootOrigin;	UTIL_MakeVectors(pev->angles);	vecShootOrigin = pev->origin + Vector( 0, 0, 55 );	Vector vecShootDir = ShootAtEnemy( vecShootOrigin );	Vector angDir = UTIL_VecToAngles( vecShootDir );	SetBlending( 0, angDir.x );	pev->effects = EF_MUZZLEFLASH;	if (pev->frags)	{		FireBullets(8, vecShootOrigin, vecShootDir, VECTOR_CONE_10DEGREES, 1024, BULLET_PLAYER_BUCKSHOT);//357		EMIT_SOUND( ENT(pev), CHAN_WEAPON, "weapons/shotgun/sbarrel1.wav", 1, ATTN_NORM );	}	else	{		FireBullets(1, vecShootOrigin, vecShootDir, VECTOR_CONE_2DEGREES, 1024, BULLET_MONSTER_9MM );		int pitchShift = RANDOM_LONG( 0, 20 );			// Only shift about half the time		if ( pitchShift > 10 )			pitchShift = 0;		else			pitchShift -= 5;		EMIT_SOUND( ENT(pev), CHAN_WEAPON, "weapons/m16/m16_fire-1.wav", 1, ATTN_NORM );	}	CSoundEnt::InsertSound ( bits_SOUND_COMBAT, pev->origin, 384, 0.3 );	// UNDONE: Reload?	m_cAmmoLoaded--;// take away a bullet!	// Teh_Freak: World Lighting!     MESSAGE_BEGIN( MSG_BROADCAST, SVC_TEMPENTITY );          WRITE_BYTE( TE_DLIGHT );          WRITE_COORD( vecShootOrigin.x ); // origin          WRITE_COORD( vecShootOrigin.y );          WRITE_COORD( vecShootOrigin.z );          WRITE_BYTE( 16 );     // radius          WRITE_BYTE( 255 );     // R          WRITE_BYTE( 255 );     // G          WRITE_BYTE( 128 );     // B          WRITE_BYTE( 0 );     // life * 10          WRITE_BYTE( 0 ); // decay     MESSAGE_END();	// Teh_Freak: World Lighting!	 	CBaseEntity *pPlayer = UTIL_PlayerByIndex( 1 );	if (pPlayer->m_fSlowMotionOn)	CBullet::Shoot( pev, vecShootOrigin, vecShootDir * 500 );}
开发者ID:JoelTroch,项目名称:am_src_rebirth,代码行数:62,


示例4: switch

//-----------------------------------------------------------------------------// Purpose: // Input  : pEvent - //-----------------------------------------------------------------------------void CNPC_Monk::HandleAnimEvent( animevent_t *pEvent ){	switch ( pEvent->event )	{		case AE_MONK_FIRE_GUN:		{			Vector vecShootOrigin;			QAngle vecAngles;			GetAttachment( "muzzle", vecShootOrigin, vecAngles );			Vector vecShootDir = GetShootEnemyDir( vecShootOrigin );			CPASAttenuationFilter filter2( this, "NPC_Monk.Fire" );			EmitSound( filter2, entindex(), "NPC_Monk.Fire" );			UTIL_Smoke( vecShootOrigin, random->RandomInt(20, 30), 10 );			FireBullets( 1, vecShootOrigin, vecShootDir, vec3_origin, MAX_TRACE_LENGTH, m_nAmmoType, 0 );			m_fEffects |= EF_MUZZLEFLASH;			break;		}		default:		{			BaseClass::HandleAnimEvent( pEvent );		}	}}
开发者ID:RaisingTheDerp,项目名称:raisingthebar,代码行数:31,


示例5: GetAttachment

//-----------------------------------------------------------------------------// Purpose: // Input  : hand - //-----------------------------------------------------------------------------void CNPC_Assassin::FirePistol( int hand ){	if ( m_flNextShotTime > gpGlobals->curtime )		return;	m_flNextShotTime = gpGlobals->curtime + random->RandomFloat( 0.05f, 0.15f );	Vector	muzzlePos;	QAngle	muzzleAngle;	const char *handName = ( hand ) ? "LeftMuzzle" : "RightMuzzle";	GetAttachment( handName, muzzlePos, muzzleAngle );	Vector	muzzleDir;		if ( GetEnemy() == NULL )	{		AngleVectors( muzzleAngle, &muzzleDir );	}	else	{		muzzleDir = GetEnemy()->BodyTarget( muzzlePos ) - muzzlePos;		VectorNormalize( muzzleDir );	}	int bulletType = GetAmmoDef()->Index( "Pistol" );	FireBullets( 1, muzzlePos, muzzleDir, VECTOR_CONE_5DEGREES, 1024, bulletType, 2 );	UTIL_MuzzleFlash( muzzlePos, muzzleAngle, 0.5f, 1 );	CPASAttenuationFilter filter( this );	EmitSound( filter, entindex(), "NPC_Assassin.ShootPistol" );}
开发者ID:0xFEEDC0DE64,项目名称:UltraGame,代码行数:39,


示例6: GetAttachment

//-----------------------------------------------------------------------------// Purpose: //-----------------------------------------------------------------------------void CPropAPC::FireMachineGun( void ){	if ( m_flMachineGunTime > gpGlobals->curtime )		return;	// If we're still firing the salvo, fire quickly	m_iMachineGunBurstLeft--;	if ( m_iMachineGunBurstLeft > 0 )	{		m_flMachineGunTime = gpGlobals->curtime + MACHINE_GUN_BURST_TIME;	}	else	{		// Reload the salvo		m_iMachineGunBurstLeft = MACHINE_GUN_BURST_SIZE;		m_flMachineGunTime = gpGlobals->curtime + MACHINE_GUN_BURST_PAUSE_TIME;	}	Vector vecMachineGunShootPos;	Vector vecMachineGunDir;	GetAttachment( m_nMachineGunMuzzleAttachment, vecMachineGunShootPos, &vecMachineGunDir );		// Fire the round	int	bulletType = GetAmmoDef()->Index("AR2");	FireBullets( 1, vecMachineGunShootPos, vecMachineGunDir, VECTOR_CONE_8DEGREES, MAX_TRACE_LENGTH, bulletType, 1 );	DoMuzzleFlash();	EmitSound( "Weapon_AR2.Single" );}
开发者ID:paralin,项目名称:hl2sdk,代码行数:32,


示例7: BarneyFirePistol

//=========================================================// BarneyFirePistol - shoots one round from the pistol at// the enemy barney is facing.//=========================================================void CBarney :: BarneyFirePistol ( void ){	Vector vecShootOrigin;	UTIL_MakeVectors(pev->angles);	vecShootOrigin = pev->origin + Vector( 0, 0, 55 );	Vector vecShootDir = ShootAtEnemy( vecShootOrigin );	Vector angDir = UTIL_VecToAngles( vecShootDir );	SetBlending( 0, angDir.x );	pev->effects = EF_MUZZLEFLASH;	FireBullets(1, vecShootOrigin, vecShootDir, VECTOR_CONE_2DEGREES, 1024, BULLET_MONSTER_9MM );		int pitchShift = RANDOM_LONG( 0, 20 );		// Only shift about half the time	if ( pitchShift > 10 )		pitchShift = 0;	else		pitchShift -= 5;	EMIT_SOUND_DYN( ENT(pev), CHAN_WEAPON, "barney/ba_attack2.wav", 1, ATTN_NORM, 0, 100 + pitchShift );	CSoundEnt::InsertSound ( bits_SOUND_COMBAT, pev->origin, 384, 0.3 );	// UNDONE: Reload?	m_cAmmoLoaded--;// take away a bullet!}
开发者ID:6779660,项目名称:halflife,代码行数:32,


示例8: UTIL_TraceLine

//-----------------------------------------------------------------------------// Purpose://-----------------------------------------------------------------------------void CPropAirboat::FireGun( void ){	// Trace from eyes and see what we hit.	Vector vecEyeDirection;	m_hPlayer->EyeVectors( &vecEyeDirection, NULL, NULL );	Vector vecEndPos = m_hPlayer->EyePosition() + ( vecEyeDirection * MAX_TRACE_LENGTH );	trace_t	trace;	UTIL_TraceLine( m_hPlayer->EyePosition(), vecEndPos, MASK_SHOT, this, COLLISION_GROUP_NONE, &trace );	if ( trace.m_pEnt )	{		// Get the gun position.		Vector	vecGunPosition;		QAngle	vecGunAngles;		GetAttachment( LookupAttachment( "gun_barrel" ), vecGunPosition, vecGunAngles );				// Get a ray from the gun to the target.		Vector vecRay = trace.endpos - vecGunPosition;		VectorNormalize( vecRay );				CAmmoDef *pAmmoDef = GetAmmoDef();		int ammoType = pAmmoDef->Index( "MediumRound" );		FireBullets( 1, vecGunPosition, vecRay, vec3_origin, 4096, ammoType );	}}
开发者ID:RaisingTheDerp,项目名称:raisingthebar,代码行数:28,


示例9: GetBulletOrigin

//---------------------------------------------------------// This starts the bullet state machine.  The actual effects// of the bullet will happen later.  This function schedules // those effects.//// fDirectShot indicates whether the bullet is a "direct shot"// that is - fired with the intent that it will strike the// enemy. Otherwise, the bullet is intended to strike a // decoy object or nothing at all in particular.//---------------------------------------------------------bool CNPC_Combine_Cannon::FireBullet( const Vector &vecTarget, bool bDirectShot ){	Vector vecBulletOrigin = GetBulletOrigin();	Vector vecDir = ( vecTarget - vecBulletOrigin );	VectorNormalize( vecDir );	FireBulletsInfo_t info;	info.m_iShots = 1;	info.m_iTracerFreq = 1;	info.m_vecDirShooting = vecDir;	info.m_vecSrc = vecBulletOrigin;	info.m_flDistance = MAX_TRACE_LENGTH;	info.m_pAttacker = this;	info.m_iAmmoType = m_iAmmoType;	info.m_iPlayerDamage = 20;	info.m_vecSpread = Vector( 0.015f, 0.015f, 0.015f );  // medium cone	FireBullets( info );	EmitSound( "NPC_Combine_Cannon.FireBullet" );	// Don't attack for a certain amount of time	SetNextAttack( gpGlobals->curtime + GetRefireTime() );	// Sniper had to be aiming here to fire here, so make it the cursor	m_vecPaintCursor = vecTarget;	LaserOff();	return true;}
开发者ID:SizzlingStats,项目名称:hl2sdk-ob-valve,代码行数:41,


示例10: FireBullets

void CCeilingTurret::Shoot(const Vector &vecSrc, const Vector &vecDirToEnemy){	//NDebugOverlay::Line( vecSrc, vecSrc + vecDirToEnemy * 512, 0, 255, 255, false, 0.1 );	FireBullets( 1, vecSrc, vecDirToEnemy, TURRET_SPREAD, TURRET_RANGE, m_iAmmoType, 1 );	EmitSound( "CeilingTurret.Shoot" );		DoMuzzleFlash();}
开发者ID:Muini,项目名称:Nag-asw,代码行数:8,


示例11: FireBullets

void CNPC_Sentry::Shoot(Vector &vecSrc, Vector &vecDirToEnemy){	FireBullets( 1, vecSrc, vecDirToEnemy, TURRET_SPREAD, TURRET_RANGE, m_iAmmoType, 1 );	CPASAttenuationFilter filter( this );	EmitSound( filter, entindex(), "Sentry.Shoot" );		DoMuzzleFlash();}
开发者ID:hitmen047,项目名称:TF2HLCoop,代码行数:9,


示例12: UpdateGameObjects

void World::Update(float dt){	if(mActive == true)	{		UpdateGameObjects(dt);		SpawnEnemies(dt);		FireBullets();		CheckCollision();	}}
开发者ID:NGAEVA,项目名称:2Dgame,代码行数:10,


示例13: EyePosition

//-----------------------------------------------------------------------------//-----------------------------------------------------------------------------void CNPC_GroundTurret::Shoot(){	FireBulletsInfo_t info;	Vector vecSrc = EyePosition();	Vector vecDir;	GetVectors( &vecDir, NULL, NULL );	for( int i = 0 ; i < 1 ; i++ )	{		info.m_vecSrc = vecSrc;				if( i > 0 || !GetEnemy()->IsPlayer() )		{			// Subsequent shots or shots at non-players random			GetVectors( &info.m_vecDirShooting, NULL, NULL );			info.m_vecSpread = m_vecSpread;		}		else		{			// First shot is at the enemy.			info.m_vecDirShooting = GetActualShootTrajectory( vecSrc );			info.m_vecSpread = VECTOR_CONE_PRECALCULATED;		}				info.m_iTracerFreq = 1;		info.m_iShots = 1;		info.m_pAttacker = this;		info.m_flDistance = MAX_COORD_RANGE;		info.m_iAmmoType = m_iAmmoType;		FireBullets( info );	}	// Do the AR2 muzzle flash	CEffectData data;	data.m_nEntIndex = entindex();	data.m_nAttachmentIndex = LookupAttachment( "eyes" );	data.m_flScale = 1.0f;	data.m_fFlags = MUZZLEFLASH_COMBINE;	DispatchEffect( "MuzzleFlash", data );	EmitSound( "NPC_FloorTurret.ShotSounds", m_ShotSounds );	if( IsX360() )	{		m_flTimeNextShoot = gpGlobals->curtime + 0.2;	}	else	{		m_flTimeNextShoot = gpGlobals->curtime + 0.09;	}}
开发者ID:Au-heppa,项目名称:source-sdk-2013,代码行数:56,


示例14: FireBullets

void CMiniTurret::Shoot(Vector &vecSrc, Vector &vecDirToEnemy){	FireBullets( 1, vecSrc, vecDirToEnemy, TURRET_SPREAD, TURRET_RANGE, BULLET_MONSTER_9MM, 1 );	switch(RANDOM_LONG(0,2))	{	case 0: EMIT_SOUND(ENT(pev), CHAN_WEAPON, "weapons/hks1.wav", 1, ATTN_NORM); break;	case 1: EMIT_SOUND(ENT(pev), CHAN_WEAPON, "weapons/hks2.wav", 1, ATTN_NORM); break;	case 2: EMIT_SOUND(ENT(pev), CHAN_WEAPON, "weapons/hks3.wav", 1, ATTN_NORM); break;	}	pev->effects = pev->effects | EF_MUZZLEFLASH;}
开发者ID:suXinjke,项目名称:HalfPayne,代码行数:12,


示例15: EmitSound

//-----------------------------------------------------------------------------// Purpose: Fire!//-----------------------------------------------------------------------------void CNPC_CeilingTurret::Shoot( const Vector &vecSrc, const Vector &vecDirToEnemy ){	if ( m_spawnflags & SF_CEILING_TURRET_OUT_OF_AMMO )	{		EmitSound( "NPC_FloorTurret.DryFire");		EmitSound( "NPC_CeilingTurret.Activate" );  		if ( RandomFloat( 0, 1 ) > 0.7 )		{			m_flShotTime = gpGlobals->curtime + random->RandomFloat( 0.5, 1.5 );		}		else		{			m_flShotTime = gpGlobals->curtime;		}		return;	}	FireBulletsInfo_t info;	if ( GetEnemy() != NULL )	{		Vector vecDir = GetActualShootTrajectory( vecSrc );		info.m_vecSrc = vecSrc;		info.m_vecDirShooting = vecDir;		info.m_iTracerFreq = 1;		info.m_iShots = 1;		info.m_pAttacker = this;		info.m_vecSpread = VECTOR_CONE_PRECALCULATED;		info.m_flDistance = MAX_COORD_RANGE;		info.m_iAmmoType = m_iAmmoType;	}	else	{		// Just shoot where you're facing!		Vector vecMuzzle, vecMuzzleDir;		QAngle vecMuzzleAng;				info.m_vecSrc = vecSrc;		info.m_vecDirShooting = vecDirToEnemy;		info.m_iTracerFreq = 1;		info.m_iShots = 1;		info.m_pAttacker = this;		info.m_vecSpread = GetAttackSpread( NULL, NULL );		info.m_flDistance = MAX_COORD_RANGE;		info.m_iAmmoType = m_iAmmoType;	}	FireBullets( info );	EmitSound( "NPC_CeilingTurret.ShotSounds" );	DoMuzzleFlash();}
开发者ID:AluminumKen,项目名称:hl2sb-src,代码行数:56,


示例16: GetAttachment

//-----------------------------------------------------------------------------// Purpose: //-----------------------------------------------------------------------------void CPropAPC2::FireMachineGun( void ){	if ( m_flMachineGunTime > gpGlobals->curtime )		return;	// If we're still firing the salvo, fire quickly	m_iMachineGunBurstLeft--;	if ( m_iMachineGunBurstLeft > 0 )	{		m_flMachineGunTime = gpGlobals->curtime + MACHINE_GUN_BURST_TIME;	}	else	{		// Reload the salvo		m_iMachineGunBurstLeft = MACHINE_GUN_BURST_SIZE;		m_flMachineGunTime = gpGlobals->curtime + MACHINE_GUN_BURST_PAUSE_TIME;	}	Vector vecMachineGunShootPos;	QAngle vecMachineGunAngles;	GetAttachment( m_nMachineGunMuzzleAttachment, vecMachineGunShootPos, vecMachineGunAngles );	Vector vecMachineGunDir;	AngleVectors( vecMachineGunAngles, &vecMachineGunDir );		// Fire the round	int	bulletType = GetAmmoDef()->Index("StriderMiniGun");	FireBulletsInfo_t info;		info.m_iShots = 1;		info.m_vecSrc = vecMachineGunShootPos;		info.m_vecDirShooting = vecMachineGunDir;		info.m_vecSpread = VECTOR_CONE_8DEGREES;		info.m_pAttacker =	(CBaseEntity *) m_hPlayer;		info.m_flDistance = MAX_TRACE_LENGTH;		info.m_iAmmoType =  bulletType;		info.m_flDamage = 30;		info.m_iPlayerDamage= 30;		info.m_iTracerFreq = 1;		FireBullets( info );		EntityMessageBegin( this, true );				WRITE_BYTE( APC_MSG_MACHINEGUN );				WRITE_VEC3COORD(vecMachineGunShootPos);				WRITE_VEC3COORD(vecMachineGunDir);				WRITE_VEC3COORD(VECTOR_CONE_8DEGREES);				WRITE_BYTE( bulletType );	MessageEnd();	DoMuzzleFlash();	m_iAmmoCount--; 	EmitSound( "Weapon_AR2.Single" );}
开发者ID:WorldGamers,项目名称:Mobile-Forces-Source,代码行数:53,


示例17: W_FireShotgun

/*================W_FireShotgun================*/void W_FireShotgun(){	vec3_t          dir;	sound( self, CHAN_WEAPON, "weapons/guncock.wav", 1, ATTN_NORM );	g_globalvars.msg_entity = EDICT_TO_PROG( self );	trap_WriteByte( MSG_ONE, SVC_SMALLKICK );	if ( deathmatch != 4 )		self->s.v.currentammo = --( self->s.v.ammo_shells );	//dir = aim (self, 100000);	aim( dir );	FireBullets( 6, dir, 0.04, 0.04, 0 );}
开发者ID:stayoutEE,项目名称:qwprogs-qvm,代码行数:22,


示例18: GetAttachment

//=========================================================// Shoot//=========================================================void CNPC_HAssassin::Shoot ( void ){	Vector vForward, vRight, vUp;	Vector vecShootOrigin;	QAngle vAngles;	if ( GetEnemy() == NULL)	{		return;	}	GetAttachment( "guntip", vecShootOrigin, vAngles );		Vector vecShootDir = GetShootEnemyDir( vecShootOrigin );	if (m_flLastShot + 2 < gpGlobals->curtime)	{		m_flDiviation = 0.10;	}	else	{		m_flDiviation -= 0.01;		if (m_flDiviation < 0.02)			m_flDiviation = 0.02;	}	m_flLastShot = gpGlobals->curtime;	AngleVectors( GetAbsAngles(), &vForward, &vRight, &vUp );	Vector	vecShellVelocity = vRight * random->RandomFloat(40,90) + vUp * random->RandomFloat(75,200) + vForward * random->RandomFloat(-40, 40);	EjectShell( GetAbsOrigin() + vUp * 32 + vForward * 12, vecShellVelocity, GetAbsAngles().y, 0 ); 	FireBullets( 1, vecShootOrigin, vecShootDir, Vector( m_flDiviation, m_flDiviation, m_flDiviation ), 2048, m_iAmmoType ); // shoot +-8 degrees	//NDebugOverlay::Line( vecShootOrigin, vecShootOrigin + vecShootDir * 2048, 255, 0, 0, true, 2.0 );	CPASAttenuationFilter filter( this );	EmitSound( filter, entindex(), "HAssassin.Shot" );	DoMuzzleFlash();	VectorAngles( vecShootDir, vAngles );	SetPoseParameter( "shoot", vecShootDir.x );	m_cAmmoLoaded--;}
开发者ID:AgentAgrimar,项目名称:source-sdk-trilogy,代码行数:48,


示例19: Shoot

//=========================================================// Shoot//=========================================================void CHAssassin :: Shoot ( void ){	if (m_hEnemy == NULL)	{		return;	}	Vector vecShootOrigin = GetGunPosition();	Vector vecShootDir = ShootAtEnemy( vecShootOrigin );	if (m_flLastShot + 2 < gpGlobals->time)	{		m_flDiviation = 0.10;	}	else	{		m_flDiviation -= 0.01;		if (m_flDiviation < 0.02)			m_flDiviation = 0.02;	}	m_flLastShot = gpGlobals->time;	UTIL_MakeVectors ( pev->angles );	Vector	vecShellVelocity = gpGlobals->v_right * RANDOM_FLOAT(40,90) + gpGlobals->v_up * RANDOM_FLOAT(75,200) + gpGlobals->v_forward * RANDOM_FLOAT(-40, 40);	EjectBrass ( pev->origin + gpGlobals->v_up * 32 + gpGlobals->v_forward * 12, vecShellVelocity, pev->angles.y, m_iShell, TE_BOUNCE_SHELL); 	FireBullets(1, vecShootOrigin, vecShootDir, Vector( m_flDiviation, m_flDiviation, m_flDiviation ), 2048, BULLET_MONSTER_9MM ); // shoot +-8 degrees	switch(RANDOM_LONG(0,1))	{	case 0:		EMIT_SOUND(ENT(pev), CHAN_WEAPON, "weapons/pl_gun1.wav", RANDOM_FLOAT(0.6, 0.8), ATTN_NORM);		break;	case 1:		EMIT_SOUND(ENT(pev), CHAN_WEAPON, "weapons/pl_gun2.wav", RANDOM_FLOAT(0.6, 0.8), ATTN_NORM);		break;	}	pev->effects |= EF_MUZZLEFLASH;	Vector angDir = UTIL_VecToAngles( vecShootDir );	SetBlending( 0, angDir.x );	m_cAmmoLoaded--;}
开发者ID:6779660,项目名称:halflife,代码行数:48,


示例20: W_FireSuperShotgun

/*================W_FireSuperShotgun================*/void W_FireSuperShotgun(){	vec3_t          dir;	if ( self->s.v.currentammo == 1 )	{		W_FireShotgun();		return;	}	sound( self, CHAN_WEAPON, "weapons/shotgn2.wav", 1, ATTN_NORM );	g_globalvars.msg_entity = EDICT_TO_PROG( self );	trap_WriteByte( MSG_ONE, SVC_BIGKICK );	if ( deathmatch != 4 )		self->s.v.currentammo = self->s.v.ammo_shells = self->s.v.ammo_shells - 2;	//dir = aim (self, 100000);	aim( dir );	FireBullets( 14, dir, 0.14, 0.08, 0 );}
开发者ID:stayoutEE,项目名称:qwprogs-qvm,代码行数:25,


示例21: GetAbsOrigin

//=========================================================// BarneyFirePistol - shoots one round from the pistol at// the enemy barney is facing.//=========================================================void CNPC_HL1Barney::BarneyFirePistol ( void ){	Vector vecShootOrigin;		vecShootOrigin = GetAbsOrigin() + Vector( 0, 0, 55 );	Vector vecShootDir = GetShootEnemyDir( vecShootOrigin );	QAngle angDir;		VectorAngles( vecShootDir, angDir );//	SetBlending( 0, angDir.x );	DoMuzzleFlash();	FireBullets(1, vecShootOrigin, vecShootDir, VECTOR_CONE_2DEGREES, 1024, m_iAmmoType );		int pitchShift = random->RandomInt( 0, 20 );		// Only shift about half the time	if ( pitchShift > 10 )		pitchShift = 0;	else		pitchShift -= 5;	CPASAttenuationFilter filter( this );	EmitSound_t params;	params.m_pSoundName = "Barney.FirePistol";	params.m_flVolume = 1;	params.m_nChannel= CHAN_WEAPON;	params.m_SoundLevel = SNDLVL_NORM;	params.m_nPitch = 100 + pitchShift;	EmitSound( filter, entindex(), params );	CSoundEnt::InsertSound ( SOUND_COMBAT, GetAbsOrigin(), 384, 0.3 );	// UNDONE: Reload?	m_cAmmoLoaded--;// take away a bullet!}
开发者ID:hitmen047,项目名称:TF2HLCoop,代码行数:42,


示例22: GetAttachment

void QUA_helicopter::Dispara(void){	if (m_flWaitAttack<=gpGlobals->curtime) {	Vector vecMachineGunShootPos;	QAngle vecMachineGunAngles;	GetAttachment( m_nMachineGunMuzzleAttachment, vecMachineGunShootPos, vecMachineGunAngles );	Vector vecMachineGunDir = DondeApuntaPlayer() - vecMachineGunShootPos;	VectorNormalize(vecMachineGunDir);	//AngleVectors( vecMachineGunAngles, &vecMachineGunDir );		// Fire the round	FireBulletsInfo_t info;		info.m_iShots = 1;		info.m_vecSrc = vecMachineGunShootPos;		info.m_vecDirShooting = vecMachineGunDir;		info.m_vecSpread = VECTOR_CONE_PRECALCULATED;		info.m_pAttacker =	(CBaseEntity *) m_hPlayer;		info.m_flDistance = MAX_TRACE_LENGTH;		info.m_iAmmoType =  m_iAmmoType;		info.m_flDamage = 60;		info.m_iPlayerDamage= 60;		info.m_iTracerFreq = 1;		FireBullets( info );	EntityMessageBegin( this, true );				WRITE_BYTE( HELICOPTER_MSG_MACHINEGUN );				WRITE_VEC3COORD(vecMachineGunShootPos);				WRITE_VEC3COORD(vecMachineGunDir);				WRITE_VEC3COORD(VECTOR_CONE_PRECALCULATED);				WRITE_BYTE( m_iAmmoType );	MessageEnd();	DoMuzzleFlash();	m_iAmmoCount--; // Descontamos ametralladora.	EmitSound( "Weapon_AR2.Single" );	}}
开发者ID:WorldGamers,项目名称:Mobile-Forces-Source,代码行数:36,


示例23: GetCannonAim

//-----------------------------------------------------------------------------// Purpose: //-----------------------------------------------------------------------------void CASW_PropJeep::FireCannon( void ){	//Don't fire again if it's been too soon	if ( m_flCannonTime > gpGlobals->curtime )		return;	if ( m_bUnableToFire )		return;	m_flCannonTime = gpGlobals->curtime + 0.2f;	m_bCannonCharging = false;	//Find the direction the gun is pointing in	Vector aimDir;	GetCannonAim( &aimDir );	FireBulletsInfo_t	info( 1, m_vecGunOrigin, aimDir, VECTOR_CONE_1DEGREES, MAX_TRACE_LENGTH, m_nAmmoType );	info.m_nFlags = FIRE_BULLETS_ALLOW_WATER_SURFACE_IMPACTS;	info.m_pAttacker = m_hPlayer;	FireBullets( info );	// Register a muzzleflash for the AI	if ( m_hPlayer )	{		m_hPlayer->SetMuzzleFlashTime( gpGlobals->curtime + 0.5 );	}	CPASAttenuationFilter sndFilter( this, "PropJeep.FireCannon" );	EmitSound( sndFilter, entindex(), "PropJeep.FireCannon" );		// make cylinders of gun spin a bit	m_nSpinPos += JEEP_GUN_SPIN_RATE;	//SetPoseParameter( JEEP_GUN_SPIN, m_nSpinPos );	//FIXME: Don't bother with this for E3, won't look right}
开发者ID:BenLubar,项目名称:SwarmDirector2,代码行数:39,


示例24: ToBasePlayer

//-----------------------------------------------------------------------------// Purpose: //////-----------------------------------------------------------------------------void CHLMachineGun::PrimaryAttack( void ){	// Only the player fires this way so we can cast	CBasePlayer *pPlayer = ToBasePlayer( GetOwner() );	if (!pPlayer)		return;		// Abort here to handle burst and auto fire modes	if ( (UsesClipsForAmmo1() && m_iClip1 == 0) || ( !UsesClipsForAmmo1() && !pPlayer->GetAmmoCount(m_iPrimaryAmmoType) ) )		return;	m_nShotsFired++;	pPlayer->DoMuzzleFlash();	// To make the firing framerate independent, we may have to fire more than one bullet here on low-framerate systems, 	// especially if the weapon we're firing has a really fast rate of fire.	int iBulletsToFire = 0;	float fireRate = GetFireRate();	// MUST call sound before removing a round from the clip of a CHLMachineGun	while ( m_flNextPrimaryAttack <= gpGlobals->curtime )	{		WeaponSound(SINGLE, m_flNextPrimaryAttack);		m_flNextPrimaryAttack = m_flNextPrimaryAttack + fireRate;		iBulletsToFire++;	}	// Make sure we don't fire more than the amount in the clip, if this weapon uses clips	if ( UsesClipsForAmmo1() )	{		if ( iBulletsToFire > m_iClip1 )			iBulletsToFire = m_iClip1;		m_iClip1 -= iBulletsToFire;	}	m_iPrimaryAttacks++;	gamestats->Event_WeaponFired( pPlayer, true, GetClassname() );	// Fire the bullets	FireBulletsInfo_t info;	info.m_iShots = iBulletsToFire;	info.m_vecSrc = pPlayer->Weapon_ShootPosition( );	info.m_vecDirShooting = pPlayer->GetAutoaimVector( AUTOAIM_SCALE_DEFAULT );	info.m_vecSpread = pPlayer->GetAttackSpread( this );	info.m_flDistance = MAX_TRACE_LENGTH;	info.m_iAmmoType = m_iPrimaryAmmoType;	info.m_iTracerFreq = 2;	FireBullets( info );	//Factor in the view kick	AddViewKick();	CSoundEnt::InsertSound( SOUND_COMBAT, GetAbsOrigin(), SOUNDENT_VOLUME_MACHINEGUN, 0.2, pPlayer );		if (!m_iClip1 && pPlayer->GetAmmoCount(m_iPrimaryAmmoType) <= 0)	{		// HEV suit - indicate out of ammo condition		pPlayer->SetSuitUpdate("!HEV_AMO0", FALSE, 0); 	}	SendWeaponAnim( GetPrimaryAttackActivity() );	pPlayer->SetAnimation( PLAYER_ATTACK1 );	// Register a muzzleflash for the AI	pPlayer->SetMuzzleFlashTime( gpGlobals->curtime + 0.5 );}
开发者ID:Adidasman1,项目名称:source-sdk-2013,代码行数:72,


示例25: GetAttachment

//.........这里部分代码省略.........		Vector vecSrc;		QAngle vecAng;		int iAttachment;		if ( m_iUpgradeLevel > 1 && (m_iAmmoShells & 1) )		{			// level 2 and 3 turrets alternate muzzles each time they fizzy fizzy fire.			iAttachment = m_iAttachments[SENTRYGUN_ATTACHMENT_MUZZLE_ALT];		}		else		{			iAttachment = m_iAttachments[SENTRYGUN_ATTACHMENT_MUZZLE];		}		GetAttachment( iAttachment, vecSrc, vecAng );		Vector vecMidEnemy = m_hEnemy->WorldSpaceCenter();		// If we cannot see their WorldSpaceCenter ( possible, as we do our target finding based		// on the eye position of the target ) then fire at the eye position		trace_t tr;		UTIL_TraceLine( vecSrc, vecMidEnemy, MASK_SOLID, this, COLLISION_GROUP_NONE, &tr);		if ( !tr.m_pEnt || tr.m_pEnt->IsWorld() )		{			// Hack it lower a little bit..			// The eye position is not always within the hitboxes for a standing TF Player			vecMidEnemy = m_hEnemy->EyePosition() + Vector(0,0,-5);		}		vecAimDir = vecMidEnemy - vecSrc;		float flDistToTarget = vecAimDir.Length();		vecAimDir.NormalizeInPlace();		//NDebugOverlay::Cross3D( vecSrc, 10, 255, 0, 0, false, 0.1 );		FireBulletsInfo_t info;		info.m_vecSrc = vecSrc;		info.m_vecDirShooting = vecAimDir;		info.m_iTracerFreq = 1;		info.m_iShots = 1;		info.m_pAttacker = GetBuilder();		info.m_vecSpread = vec3_origin;		info.m_flDistance = flDistToTarget + 100;		info.m_iAmmoType = m_iAmmoType;		info.m_flDamage = tf_sentrygun_damage.GetFloat();		FireBullets( info );		//NDebugOverlay::Line( vecSrc, vecSrc + vecAimDir * 1000, 255, 0, 0, false, 0.1 );		CEffectData data;		data.m_nEntIndex = entindex();		data.m_nAttachmentIndex = iAttachment;		data.m_fFlags = m_iUpgradeLevel;		data.m_vOrigin = vecSrc;		DispatchEffect( "TF_3rdPersonMuzzleFlash_SentryGun", data );		switch( m_iUpgradeLevel )		{		case 1:		default:			EmitSound( "Building_Sentrygun.Fire" );			break;		case 2:			EmitSound( "Building_Sentrygun.Fire2" );			break;		case 3:			EmitSound( "Building_Sentrygun.Fire3" );			break;		}		if ( !tf_sentrygun_ammocheat.GetBool() && !HasSpawnFlags( SF_SENTRY_INFINITE_AMMO ) )		{			m_iAmmoShells--;		}	}	else	{		if ( m_iUpgradeLevel > 1 )		{			if ( !IsPlayingGesture( ACT_RANGE_ATTACK1_LOW ) )			{				RemoveGesture( ACT_RANGE_ATTACK1 );				AddGesture( ACT_RANGE_ATTACK1_LOW );			}		}		// Out of ammo, play a click		EmitSound( "Building_Sentrygun.Empty" );		m_flNextAttack = gpGlobals->curtime + 0.2;	}	return true;}
开发者ID:MrBoomer568,项目名称:TF2Classic,代码行数:101,


示例26: EyePosition

void CNPC_Portal_GroundTurret::Shoot(){	FireBulletsInfo_t info;	Vector vecSrc = EyePosition();	Vector vecDir;	GetVectors( &vecDir, NULL, NULL );	for( int i = 0 ; i < 1 ; i++ )	{		info.m_vecSrc = vecSrc;		if( i > 0 || !GetEnemy()->IsPlayer() )		{			// Subsequent shots or shots at non-players random			GetVectors( &info.m_vecDirShooting, NULL, NULL );			info.m_vecSpread = m_vecSpread;		}		else		{			// First shot is at the enemy.			info.m_vecDirShooting = GetActualShootTrajectory( vecSrc );			info.m_vecSpread = VECTOR_CONE_PRECALCULATED;		}		info.m_iTracerFreq = 1;		info.m_iShots = 1;		info.m_pAttacker = this;		info.m_flDistance = MAX_COORD_RANGE;		info.m_iAmmoType = m_iAmmoType;		FireBullets( info );		trace_t tr;		CTraceFilterSkipTwoEntities traceFilter( this, info.m_pAdditionalIgnoreEnt, COLLISION_GROUP_NONE );		Vector vecEnd = info.m_vecSrc + vecDir * info.m_flDistance;		AI_TraceLine( info.m_vecSrc, vecEnd, MASK_SHOT, &traceFilter, &tr );		if ( tr.m_pEnt && !tr.m_pEnt->IsPlayer() && ( vecDir * info.m_flDistance * tr.fraction ).Length() < 16.0f )		{			CTakeDamageInfo damageInfo;			damageInfo.SetAttacker( this );			damageInfo.SetDamageType( DMG_BULLET );			damageInfo.SetDamage( 20.0f );			TakeDamage( damageInfo );			EmitSound( "NPC_FloorTurret.DryFire" );		}	}	// Do the AR2 muzzle flash	CEffectData data;	data.m_nEntIndex = entindex();	data.m_nAttachmentIndex = LookupAttachment( "eyes" );	data.m_flScale = 1.0f;	data.m_fFlags = MUZZLEFLASH_COMBINE;	DispatchEffect( "MuzzleFlash", data );	EmitSound( "NPC_FloorTurret.ShotSounds" );	m_flTimeNextShoot = gpGlobals->curtime + 0.09;}
开发者ID:Axitonium,项目名称:SourceEngine2007,代码行数:64,


示例27: FireGun

BOOL CApache :: FireGun( ){	UTIL_MakeAimVectors( pev->angles );			Vector posGun, angGun;	GetAttachment( 1, posGun, angGun );	Vector vecTarget = (m_posTarget - posGun).Normalize( );	Vector vecOut;	vecOut.x = DotProduct( gpGlobals->v_forward, vecTarget );	vecOut.y = -DotProduct( gpGlobals->v_right, vecTarget );	vecOut.z = DotProduct( gpGlobals->v_up, vecTarget );	Vector angles = UTIL_VecToAngles (vecOut);	angles.x = -angles.x;	if (angles.y > 180)		angles.y = angles.y - 360;	if (angles.y < -180)		angles.y = angles.y + 360;	if (angles.x > 180)		angles.x = angles.x - 360;	if (angles.x < -180)		angles.x = angles.x + 360;	if (angles.x > m_angGun.x)		m_angGun.x = min( angles.x, m_angGun.x + 12 );	if (angles.x < m_angGun.x)		m_angGun.x = max( angles.x, m_angGun.x - 12 );	if (angles.y > m_angGun.y)		m_angGun.y = min( angles.y, m_angGun.y + 12 );	if (angles.y < m_angGun.y)		m_angGun.y = max( angles.y, m_angGun.y - 12 );	m_angGun.y = SetBoneController( 0, m_angGun.y );	m_angGun.x = SetBoneController( 1, m_angGun.x );	Vector posBarrel, angBarrel;	GetAttachment( 0, posBarrel, angBarrel );	Vector vecGun = (posBarrel - posGun).Normalize( );	if (DotProduct( vecGun, vecTarget ) > 0.98)	{#if 1		FireBullets( 1, posGun, vecGun, VECTOR_CONE_4DEGREES, 8192, BULLET_MONSTER_12MM, 1 );		EMIT_SOUND(ENT(pev), CHAN_WEAPON, "turret/tu_fire1.wav", 1, 0.3);#else		static float flNext;		TraceResult tr;		UTIL_TraceLine( posGun, posGun + vecGun * 8192, dont_ignore_monsters, ENT( pev ), &tr );		if (!m_pBeam)		{			m_pBeam = CBeam::BeamCreate( "sprites/lgtning.spr", 80 );			m_pBeam->PointEntInit( pev->origin, entindex( ) );			m_pBeam->SetEndAttachment( 1 );			m_pBeam->SetColor( 255, 180, 96 );			m_pBeam->SetBrightness( 192 );		}		if (flNext < gpGlobals->time)		{			flNext = gpGlobals->time + 0.5;			m_pBeam->SetStartPos( tr.vecEndPos );		}#endif		return TRUE;	}	else	{		if (m_pBeam)		{			UTIL_Remove( m_pBeam );			m_pBeam = NULL;		}	}	return FALSE;}
开发者ID:Hammermaps-DEV,项目名称:Spirit-of-Half-Life-1.8--VC2010,代码行数:80,


示例28: ToBasePlayer

//-----------------------------------------------------------------------------// Purpose: //////-----------------------------------------------------------------------------void CHL2MPMachineGun::PrimaryAttack( void ){	// Only the player fires this way so we can cast	CBasePlayer *pPlayer = ToBasePlayer( GetOwner() );	if (!pPlayer)		return;		// Abort here to handle burst and auto fire modes	if ( (UsesClipsForAmmo1() && m_iClip1 == 0) || ( !UsesClipsForAmmo1() && !pPlayer->GetAmmoCount(m_iPrimaryAmmoType) ) )		return;	m_nShotsFired++;	// MUST call sound before removing a round from the clip of a CHLMachineGun	// FIXME: only called once, will miss multiple sound events per frame if needed	// FIXME: m_flNextPrimaryAttack is always in the past, it's not clear what'll happen with sounds	WeaponSound(SINGLE, m_flNextPrimaryAttack);	// Msg("%.3f/n", m_flNextPrimaryAttack.Get() );	pPlayer->DoMuzzleFlash();	// To make the firing framerate independent, we may have to fire more than one bullet here on low-framerate systems, 	// especially if the weapon we're firing has a really fast rate of fire.	int iBulletsToFire = 0;	float fireRate = GetFireRate();	while ( m_flNextPrimaryAttack <= gpGlobals->curtime )	{		m_flNextPrimaryAttack = m_flNextPrimaryAttack + fireRate;		iBulletsToFire++;	}	// Make sure we don't fire more than the amount in the clip, if this weapon uses clips	if ( UsesClipsForAmmo1() )	{		if ( iBulletsToFire > m_iClip1 )			iBulletsToFire = m_iClip1;		m_iClip1 -= iBulletsToFire;	}	CHL2MP_Player *pHL2MPPlayer = ToHL2MPPlayer( pPlayer );		// Fire the bullets	FireBulletsInfo_t info;	info.m_iShots = iBulletsToFire;	info.m_vecSrc = pHL2MPPlayer->Weapon_ShootPosition( );	info.m_vecDirShooting = pPlayer->GetAutoaimVector( AUTOAIM_5DEGREES );	info.m_vecSpread = pHL2MPPlayer->GetAttackSpread( this );	info.m_flDistance = MAX_TRACE_LENGTH;	info.m_iAmmoType = m_iPrimaryAmmoType;	info.m_iTracerFreq = 2;	FireBullets( info );	//Factor in the view kick	AddViewKick();		if (!m_iClip1 && pPlayer->GetAmmoCount(m_iPrimaryAmmoType) <= 0)	{		// HEV suit - indicate out of ammo condition		pPlayer->SetSuitUpdate("!HEV_AMO0", FALSE, 0); 	}	SendWeaponAnim( GetPrimaryAttackActivity() );	pPlayer->SetAnimation( PLAYER_ATTACK1 );}
开发者ID:Bubbasacs,项目名称:FinalProj,代码行数:70,


示例29: switch

void C_QUA_Strider::ReceiveMessage( int classID, bf_read &msg ){	if ( classID != GetClientClass()->m_ClassID )	{		// message is for subclass		BaseClass::ReceiveMessage( classID, msg );		return;	}	int messageType = msg.ReadByte();	switch( messageType )	{	case STRIDER_MSG_STREAKS:		{			Vector	pos;			msg.ReadBitVec3Coord( pos );			m_cannonFX.SetRenderOrigin( pos );			m_cannonFX.EffectInit( entindex(), LookupAttachment( "BigGun" ) );			m_cannonFX.LimitTime( STRIDERFX_BIG_SHOT_TIME );		}		break;	case STRIDER_MSG_BIG_SHOT:		{			Vector tmp;			msg.ReadBitVec3Coord( tmp );			m_cannonFX.SetTime( STRIDERFX_BIG_SHOT_TIME );			m_cannonFX.LimitTime( STRIDERFX_END_ALL_TIME );		}		break;	case STRIDER_MSG_DEAD:		{			m_cannonFX.EffectShutdown();		}		break;	case STRIDER_MSG_MACHINEGUN:		{			// Necesario en MP, porque si no no se ven las balas.			Vector muz,dir,spr;			msg.ReadBitVec3Coord( muz );			msg.ReadBitVec3Coord( dir );			msg.ReadBitVec3Coord( spr );			int ammo = msg.ReadByte();			//Warning("x: %f,x: %f,x: %f,ammo: %i",muz.x,dir.x,spr.x,ammo);			FireBulletsInfo_t info;			info.m_iShots = 1;			info.m_vecSrc = muz;			info.m_vecDirShooting = dir;			info.m_vecSpread = spr;			info.m_pAttacker =	(C_BaseEntity *) m_hPlayer;			info.m_flDistance = MAX_TRACE_LENGTH;			info.m_iAmmoType =  ammo;			info.m_flDamage = 75;			info.m_iPlayerDamage = 150;			info.m_iTracerFreq = 1;			FireBullets(info);			CEffectData data;			data.m_nAttachmentIndex = LookupAttachment( "MiniGun" );			data.m_hEntity = entindex();			DispatchEffect("QUA_StriderMuzzleFlash",data );		}	}}
开发者ID:WorldGamers,项目名称:Mobile-Forces-Source,代码行数:65,



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


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