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

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

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

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

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

示例1: SendWeaponAnim

/* <2bae77> ../cstrike/dlls/wpn_shared/wpn_usp.cpp:147 */void CUSP::__MAKE_VHOOK(SecondaryAttack)(void){	if (ShieldSecondaryFire(USP_SHIELD_UP, USP_SHIELD_DOWN))	{		return;	}	if (m_iWeaponState & WPNSTATE_USP_SILENCED)	{		m_iWeaponState &= ~WPNSTATE_USP_SILENCED;		SendWeaponAnim(USP_DETACH_SILENCER, UseDecrement() != FALSE);		Q_strcpy(m_pPlayer->m_szAnimExtention, "onehanded");	}	else	{		m_iWeaponState |= WPNSTATE_USP_SILENCED;		SendWeaponAnim(USP_ATTACH_SILENCER, UseDecrement() != FALSE);		Q_strcpy(m_pPlayer->m_szAnimExtention, "onehanded");	}	m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 3.0;	m_flNextSecondaryAttack = UTIL_WeaponTimeBase() + 3.0;	m_flNextPrimaryAttack = GetNextAttackDelay(3.0);}
开发者ID:Adidasman1,项目名称:ReGameDLL_CS,代码行数:27,


示例2: SendWeaponAnim

bool CHEGrenade::ShieldSecondaryFire(int iUpAnim, int iDownAnim){	if (!m_pPlayer->HasShield() || m_flStartThrow > 0)	{		return false;	}	if (m_iWeaponState & WPNSTATE_SHIELD_DRAWN)	{		m_iWeaponState &= ~WPNSTATE_SHIELD_DRAWN;		SendWeaponAnim(iDownAnim, UseDecrement() != FALSE);		Q_strcpy(m_pPlayer->m_szAnimExtention, "shieldgren");		m_fMaxSpeed = HEGRENADE_MAX_SPEED;		m_pPlayer->m_bShieldDrawn = false;	}	else	{		m_iWeaponState |= WPNSTATE_SHIELD_DRAWN;		SendWeaponAnim(iUpAnim, UseDecrement() != FALSE);		Q_strcpy(m_pPlayer->m_szAnimExtention, "shielded");		m_fMaxSpeed = HEGRENADE_MAX_SPEED_SHIELD;		m_pPlayer->m_bShieldDrawn = true;	}	m_pPlayer->UpdateShieldCrosshair((m_iWeaponState & WPNSTATE_SHIELD_DRAWN) != WPNSTATE_SHIELD_DRAWN);	m_pPlayer->ResetMaxSpeed();	m_flNextSecondaryAttack = UTIL_WeaponTimeBase() + 0.4f;	m_flNextPrimaryAttack = GetNextAttackDelay(0.4);	m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 0.6f;	return true;}
开发者ID:Chuvi-w,项目名称:ReGameDLL_CS,代码行数:35,


示例3: PlayEmptySound

void CGauss::PrimaryAttack(){	// don't fire underwater	if ( m_pPlayer->pev->waterlevel == 3 )	{		PlayEmptySound( );		m_flNextSecondaryAttack = m_flNextPrimaryAttack = GetNextAttackDelay(0.15);		return;	}	if ( m_pPlayer->m_rgAmmo[ m_iPrimaryAmmoType ] < 2 )	{		PlayEmptySound( );		m_pPlayer->m_flNextAttack = UTIL_WeaponTimeBase() + 0.5;		return;	}	m_pPlayer->m_iWeaponVolume = GAUSS_PRIMARY_FIRE_VOLUME;	m_fPrimaryFire = TRUE;	m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] -= 2;	StartFire();	m_fInAttack = 0;	m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 1.0;	m_pPlayer->m_flNextAttack = UTIL_WeaponTimeBase() + 0.2;}
开发者ID:Solexid,项目名称:halflife,代码行数:27,


示例4: GetNextAttackDelay

/* <2464c1> ../cstrike/dlls/wpn_shared/wpn_c4.cpp:358 */void CC4::__MAKE_VHOOK(WeaponIdle)(void){	if (m_bStartedArming)	{		// if the player releases the attack button cancel the arming sequence		m_bStartedArming = false;		// release the player from being frozen		m_pPlayer->ResetMaxSpeed();		m_flNextPrimaryAttack = GetNextAttackDelay(1.0);		m_pPlayer->SetProgressBarTime(0);		// this means the placement animation is canceled		if (m_bBombPlacedAnimation)			SendWeaponAnim(C4_DRAW, UseDecrement() != FALSE);		else			SendWeaponAnim(C4_IDLE1, UseDecrement() != FALSE);	}	if (m_flTimeWeaponIdle <= UTIL_WeaponTimeBase())	{		if (m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] <= 0)		{			RetireWeapon();			return;		}		SendWeaponAnim(C4_DRAW, UseDecrement() != FALSE);		SendWeaponAnim(C4_IDLE1, UseDecrement() != FALSE);	}}
开发者ID:Adidasman1,项目名称:ReGameDLL_CS,代码行数:33,


示例5: GetNextAttackDelay

/* <2464c1> ../cstrike/dlls/wpn_shared/wpn_c4.cpp:358 */void CC4::__MAKE_VHOOK(WeaponIdle)(void){	if (m_bStartedArming)	{		m_bStartedArming = false;		m_pPlayer->ResetMaxSpeed();		m_flNextPrimaryAttack = GetNextAttackDelay(1.0);		m_pPlayer->SetProgressBarTime(0);		SendWeaponAnim(m_bBombPlacedAnimation ? C4_DRAW : C4_IDLE1, UseDecrement() != FALSE);	}	if (m_flTimeWeaponIdle <= UTIL_WeaponTimeBase())	{		if (m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] <= 0)		{			RetireWeapon();			return;		}		SendWeaponAnim(C4_DRAW, UseDecrement() != FALSE);		SendWeaponAnim(C4_IDLE1, UseDecrement() != FALSE);	}}
开发者ID:coolmans,项目名称:ReGameDLL_CS,代码行数:26,


示例6: UTIL_MakeVectors

void CSqueak::PrimaryAttack(){	if ( m_pPlayer->m_rgAmmo[ m_iPrimaryAmmoType ] )	{		Vector forward = m_pPlayer->GetAimForwardWithOffset();		Vector forwardDeg = m_pPlayer->GetAimForwardWithOffset( true );		UTIL_MakeVectors( forwardDeg );		TraceResult tr;		Vector trace_origin;		// HACK HACK:  Ugly hacks to handle change in origin based on new physics code for players		// Move origin up if crouched and start trace a bit outside of body ( 20 units instead of 16 )		trace_origin = m_pPlayer->pev->origin;		if ( m_pPlayer->pev->flags & FL_DUCKING )		{			trace_origin = trace_origin - ( VEC_HULL_MIN - VEC_DUCK_HULL_MIN );		}		// find place to toss monster		UTIL_TraceLine( trace_origin + forward * 20, trace_origin + forward * 64, dont_ignore_monsters, NULL, &tr );	int flags;#ifdef CLIENT_WEAPONS	flags = FEV_NOTHOST;#else	flags = 0;#endif	    PLAYBACK_EVENT_FULL( flags, m_pPlayer->edict(), m_usSnarkFire, 0.0, (float *)&g_vecZero, (float *)&g_vecZero, 0.0, 0.0, 0, 0, 0, 0 );		if ( tr.fAllSolid == 0 && tr.fStartSolid == 0 && tr.flFraction > 0.25 )		{			// player "shoot" animation			m_pPlayer->SetAnimation( PLAYER_ATTACK1 );#ifndef CLIENT_DLL			CBaseEntity *pSqueak = CBaseEntity::Create( "monster_snark", tr.vecEndPos, forwardDeg, m_pPlayer->edict() );			pSqueak->pev->velocity = forward * 200 + m_pPlayer->pev->velocity;#endif			// play hunt sound#ifndef CLIENT_DLL			EMIT_SOUND_DYN( ENT( pev ), CHAN_VOICE, gameplayMods::snarkPenguins.isActive() ? RANDOM_SOUND_ARRAY( pPinguHuntSounds ) : RANDOM_SOUND_ARRAY_PAYNED_DIE_MONSTER( pHuntSounds ), 1, ATTN_NORM, 0, 100 );#endif // !CLIENT_DLL			m_pPlayer->m_iWeaponVolume = QUIET_GUN_VOLUME;			if ( !gameplayMods::infiniteAmmo.isActive() ) {				m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType]--;			}			m_fJustThrown = 1;			m_flNextPrimaryAttack = GetNextAttackDelay(0.3);			m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 1.0;		}	}}
开发者ID:suXinjke,项目名称:HalfPayne,代码行数:59,


示例7: UTIL_MakeVectors

void CSqueak::PrimaryAttack(){	if ( m_pPlayer->m_rgAmmo[ m_iPrimaryAmmoType ] )	{		UTIL_MakeVectors( m_pPlayer->pev->v_angle );		TraceResult tr;		Vector trace_origin;		// HACK HACK:  Ugly hacks to handle change in origin based on new physics code for players		// Move origin up if crouched and start trace a bit outside of body ( 20 units instead of 16 )		trace_origin = m_pPlayer->pev->origin;		if ( m_pPlayer->pev->flags & FL_DUCKING )		{			trace_origin = trace_origin - ( VEC_HULL_MIN - VEC_DUCK_HULL_MIN );		}		// find place to toss monster		UTIL_TraceLine( trace_origin + gpGlobals->v_forward * 20, trace_origin + gpGlobals->v_forward * 64, dont_ignore_monsters, NULL, &tr );	int flags;#ifdef CLIENT_WEAPONS	flags = FEV_NOTHOST;#else	flags = 0;#endif	    PLAYBACK_EVENT_FULL( flags, m_pPlayer->edict(), m_usSnarkFire, 0.0, (float *)&g_vecZero, (float *)&g_vecZero, 0.0, 0.0, 0, 0, 0, 0 );		if ( tr.fAllSolid == 0 && tr.fStartSolid == 0 && tr.flFraction > 0.25 )		{			// player "shoot" animation			m_pPlayer->SetAnimation( PLAYER_ATTACK1 );#ifndef CLIENT_DLL			CBaseEntity *pSqueak = CBaseEntity::Create( "monster_snark", tr.vecEndPos, m_pPlayer->pev->v_angle, m_pPlayer->edict() );			pSqueak->pev->velocity = gpGlobals->v_forward * 200 + m_pPlayer->pev->velocity;#endif			// play hunt sound			float flRndSound = RANDOM_FLOAT ( 0 , 1 );			if ( flRndSound <= 0.5 )				EMIT_SOUND_DYN(ENT(pev), CHAN_VOICE, "squeek/sqk_hunt2.wav", 1, ATTN_NORM, 0, 105);			else 				EMIT_SOUND_DYN(ENT(pev), CHAN_VOICE, "squeek/sqk_hunt3.wav", 1, ATTN_NORM, 0, 105);			m_pPlayer->m_iWeaponVolume = QUIET_GUN_VOLUME;			m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType]--;			m_fJustThrown = 1;			m_flNextPrimaryAttack = GetNextAttackDelay(0.3);			m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 1.0;		}	}}
开发者ID:CryoKeen,项目名称:HLEnhanced,代码行数:57,


示例8: GetNextAttackDelay

BOOL CAWP::Deploy(void){	if (DefaultDeploy("models/v_awp.mdl", "models/p_awp.mdl", AWP_DRAW, "rifle", UseDecrement() != FALSE))	{		m_flNextPrimaryAttack   = m_pPlayer->m_flNextAttack = GetNextAttackDelay(1.45);		m_flNextSecondaryAttack = UTIL_WeaponTimeBase() + 1.0;		return TRUE;	}	return FALSE;}
开发者ID:Chuvi-w,项目名称:CSSDK,代码行数:12,


示例9: SendWeaponAnim

void CXM1014::Reload(){	if (m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] <= 0 || m_iClip == iMaxClip())		return;	// don't reload until recoil is done	if (m_flNextPrimaryAttack > UTIL_WeaponTimeBase())		return;	// check to see if we're ready to reload	if (m_fInSpecialReload == 0)	{		m_pPlayer->SetAnimation(PLAYER_RELOAD);		SendWeaponAnim(XM1014_START_RELOAD, UseDecrement() != FALSE);		m_fInSpecialReload = 1;		m_flNextSecondaryAttack = m_flTimeWeaponIdle = m_pPlayer->m_flNextAttack = UTIL_WeaponTimeBase() + 0.55f;		m_flNextPrimaryAttack = GetNextAttackDelay(0.55);	}	else if (m_fInSpecialReload == 1)	{		if (m_flTimeWeaponIdle > UTIL_WeaponTimeBase())			return;		// was waiting for gun to move to side		m_fInSpecialReload = 2;		if (RANDOM_LONG(0, 1))			EMIT_SOUND_DYN(m_pPlayer->edict(), CHAN_ITEM, "weapons/reload1.wav", VOL_NORM, ATTN_NORM, 0, 85 + RANDOM_LONG(0, 31));		else			EMIT_SOUND_DYN(m_pPlayer->edict(), CHAN_ITEM, "weapons/reload3.wav", VOL_NORM, ATTN_NORM, 0, 85 + RANDOM_LONG(0, 31));		SendWeaponAnim(XM1014_RELOAD, UseDecrement());		m_flTimeWeaponIdle = m_flNextReload = UTIL_WeaponTimeBase() + 0.3f;	}	else	{		m_iClip++;#ifdef REGAMEDLL_ADD		if (refill_bpammo_weapons.value < 3.0f)#endif		{			m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType]--;			m_pPlayer->ammo_buckshot--;		}		m_fInSpecialReload = 1;	}}
开发者ID:s1lentq,项目名称:ReGameDLL_CS,代码行数:51,


示例10: PlayEmptySound

void CMP5::SecondaryAttack( void ){	// don't fire underwater	if (m_pPlayer->pev->waterlevel == 3)	{		PlayEmptySound( );		m_flNextPrimaryAttack = 0.15;		return;	}	if (m_pPlayer->m_rgAmmo[m_iSecondaryAmmoType] == 0)	{		PlayEmptySound( );		return;	}	m_pPlayer->m_iWeaponVolume = NORMAL_GUN_VOLUME;	m_pPlayer->m_iWeaponFlash = BRIGHT_GUN_FLASH;	m_pPlayer->m_iExtraSoundTypes = bits_SOUND_DANGER;	m_pPlayer->m_flStopExtraSoundTime = UTIL_WeaponTimeBase() + 0.2;				m_pPlayer->m_rgAmmo[m_iSecondaryAmmoType]--;	// player "shoot" animation	m_pPlayer->SetAnimation( PLAYER_ATTACK1 ); 	UTIL_MakeVectors( m_pPlayer->pev->v_angle + m_pPlayer->pev->punchangle );	// we don't add in player velocity anymore.	CGrenade::ShootContact( m_pPlayer->pev, 							m_pPlayer->pev->origin + m_pPlayer->pev->view_ofs + gpGlobals->v_forward * 16, 							gpGlobals->v_forward * 800 );	int flags;#if defined( CLIENT_WEAPONS )	flags = FEV_NOTHOST;#else	flags = 0;#endif	PLAYBACK_EVENT( flags, m_pPlayer->edict(), m_usMP52 );		m_flNextPrimaryAttack = GetNextAttackDelay(1);	m_flNextSecondaryAttack = UTIL_WeaponTimeBase() + 1;	m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 5;// idle pretty soon after shooting.	if (!m_pPlayer->m_rgAmmo[m_iSecondaryAmmoType])		// HEV suit - indicate out of ammo condition		m_pPlayer->SetSuitUpdate("!HEV_AMO0", FALSE, 0);}
开发者ID:Skumek,项目名称:hlsdk,代码行数:51,


示例11: GetNextAttackDelay

void CRpg::Reload( void ){	int iResult = 0;	if ( m_iClip == 1 )	{		// don't bother with any of this if don't need to reload.		return;	}	if ( m_pPlayer->ammo_rockets <= 0 )		return;	// because the RPG waits to autoreload when no missiles are active while  the LTD is on, the	// weapons code is constantly calling into this function, but is often denied because 	// a) missiles are in flight, but the LTD is on	// or	// b) player is totally out of ammo and has nothing to switch to, and should be allowed to	//    shine the designator around	//	// Set the next attack time into the future so that WeaponIdle will get called more often	// than reload, allowing the RPG LTD to be updated		m_flNextPrimaryAttack = GetNextAttackDelay(0.5);	if ( m_cActiveRockets && m_fSpotActive )	{		// no reloading when there are active missiles tracking the designator.		// ward off future autoreload attempts by setting next attack time into the future for a bit. 		return;	}#ifndef CLIENT_DLL	if ( m_pSpot && m_fSpotActive )	{		m_pSpot->Suspend( 2.1 );		m_flNextSecondaryAttack = UTIL_WeaponTimeBase() + 2.1;	}#endif	if ( m_iClip == 0 )		iResult = DefaultReload( RPG_MAX_CLIP, RPG_RELOAD, 2 );		if ( iResult )		m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + UTIL_SharedRandomFloat( m_pPlayer->random_seed, 10, 15 );	}
开发者ID:Skumek,项目名称:hlsdk,代码行数:47,


示例12: Reload

void CHgun::PrimaryAttack(){	Reload( );	if (m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] <= 0)	{		return;	}#ifndef CLIENT_DLL	UTIL_MakeVectors( m_pPlayer->pev->v_angle );	CBaseEntity *pHornet = CBaseEntity::Create( "hornet", m_pPlayer->GetGunPosition( ) + gpGlobals->v_forward * 16 + gpGlobals->v_right * 8 + gpGlobals->v_up * -12, m_pPlayer->pev->v_angle, m_pPlayer->edict() );	pHornet->pev->velocity = gpGlobals->v_forward * 300;	m_flRechargeTime = gpGlobals->time + 0.5;#endif		m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType]--;		m_pPlayer->m_iWeaponVolume = QUIET_GUN_VOLUME;	m_pPlayer->m_iWeaponFlash = DIM_GUN_FLASH;	int flags;#if defined( CLIENT_WEAPONS )	flags = FEV_NOTHOST;#else	flags = 0;#endif	PLAYBACK_EVENT_FULL( flags, m_pPlayer->edict(), m_usHornetFire, 0.0, (float *)&g_vecZero, (float *)&g_vecZero, 0.0, 0.0, FIREMODE_TRACK, 0, 0, 0 );		// player "shoot" animation	m_pPlayer->SetAnimation( PLAYER_ATTACK1 );	m_flNextPrimaryAttack = GetNextAttackDelay(0.25);	if (m_flNextPrimaryAttack < UTIL_WeaponTimeBase() )	{		m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 0.25;	}	m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + UTIL_SharedRandomFloat( m_pPlayer->random_seed, 10, 15 );}
开发者ID:Arkshine,项目名称:HLEnhanced,代码行数:47,


示例13: SendWeaponAnim

void CShotgun::Reload( void ){	if (m_pPlayer->m_rgAmmo[ PrimaryAmmoIndex() ] <= 0 || m_iClip == iMaxClip())		return;	// don't reload until recoil is done	if (m_flNextPrimaryAttack > UTIL_WeaponTimeBase())		return;	// check to see if we're ready to reload	if (m_InSpecialReload == ReloadState::NOT_RELOADING )	{		SendWeaponAnim( SHOTGUN_START_RELOAD );		m_InSpecialReload = ReloadState::DO_RELOAD_EFFECTS;		m_pPlayer->m_flNextAttack = UTIL_WeaponTimeBase() + 0.6;		m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 0.6;		m_flNextPrimaryAttack = GetNextAttackDelay(1.0);		m_flNextSecondaryAttack = UTIL_WeaponTimeBase() + 1.0;		return;	}	else if ( m_InSpecialReload == ReloadState::DO_RELOAD_EFFECTS )	{		if (m_flTimeWeaponIdle > UTIL_WeaponTimeBase())			return;		// was waiting for gun to move to side		m_InSpecialReload = ReloadState::RELOAD_ONE;		if (RANDOM_LONG(0,1))			EMIT_SOUND_DYN( m_pPlayer, CHAN_ITEM, "weapons/reload1.wav", 1, ATTN_NORM, 0, 85 + RANDOM_LONG(0,0x1f));		else			EMIT_SOUND_DYN( m_pPlayer, CHAN_ITEM, "weapons/reload3.wav", 1, ATTN_NORM, 0, 85 + RANDOM_LONG(0,0x1f));		SendWeaponAnim( SHOTGUN_RELOAD );		m_flNextReload = UTIL_WeaponTimeBase() + 0.5;		m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 0.5;	}	else	{		// Add them to the clip		m_iClip += 1;		m_pPlayer->m_rgAmmo[ PrimaryAmmoIndex() ] -= 1;		m_InSpecialReload = ReloadState::DO_RELOAD_EFFECTS;	}}
开发者ID:swmpdg,项目名称:HLEnhanced,代码行数:45,


示例14: SendWeaponAnim

void CShotgun::Reload( void ){	if (m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] <= 0 || m_iClip == SHOTGUN_MAX_CLIP)		return;	// don't reload until recoil is done	if (m_flNextPrimaryAttack > UTIL_WeaponTimeBase())		return;	// check to see if we're ready to reload	if (m_fInSpecialReload == 0)	{		SendWeaponAnim( SHOTGUN_START_RELOAD );		m_fInSpecialReload = 1;		m_pPlayer->m_flNextAttack = UTIL_WeaponTimeBase() + 0.6;		m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 0.6;		m_flNextPrimaryAttack = GetNextAttackDelay(1.0);		m_flNextSecondaryAttack = UTIL_WeaponTimeBase() + 1.0;		return;	}	else if (m_fInSpecialReload == 1)	{		if (m_flTimeWeaponIdle > UTIL_WeaponTimeBase())			return;		// was waiting for gun to move to side		m_fInSpecialReload = 2;		if (RANDOM_LONG(0,1))			EMIT_SOUND_DYN(ENT(m_pPlayer->pev), CHAN_ITEM, "weapons/reload1.wav", 1, ATTN_NORM, 0, 85 + RANDOM_LONG(0,0x1f));		else			EMIT_SOUND_DYN(ENT(m_pPlayer->pev), CHAN_ITEM, "weapons/reload3.wav", 1, ATTN_NORM, 0, 85 + RANDOM_LONG(0,0x1f));		SendWeaponAnim( SHOTGUN_RELOAD );		m_flNextReload = UTIL_WeaponTimeBase() + 0.5;		m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 0.5;	}	else	{		// Add them to the clip		m_iClip += 1;		m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] -= 1;		m_fInSpecialReload = 1;	}}
开发者ID:Arkshine,项目名称:HLEnhanced,代码行数:45,


示例15: GetNextAttackDelay

// this function only gets called in multiplayervoid CCrossbow::FireSniperBolt(){	m_flNextPrimaryAttack = GetNextAttackDelay(0.75);	if (m_iClip == 0)	{		PlayEmptySound( );		return;	}	TraceResult tr;	m_pPlayer->m_iWeaponVolume = QUIET_GUN_VOLUME;	m_iClip--;	int flags;#if defined( CLIENT_WEAPONS )	flags = FEV_NOTHOST;#else	flags = 0;#endif	PLAYBACK_EVENT_FULL( flags, m_pPlayer->edict(), m_usCrossbow2, 0.0, (float *)&g_vecZero, (float *)&g_vecZero, 0, 0, m_iClip, m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType], 0, 0 );	// player "shoot" animation	m_pPlayer->SetAnimation( PLAYER_ATTACK1 );		Vector anglesAim = m_pPlayer->pev->v_angle + m_pPlayer->pev->punchangle;	UTIL_MakeVectors( anglesAim );	Vector vecSrc = m_pPlayer->GetGunPosition( ) - gpGlobals->v_up * 2;	Vector vecDir = gpGlobals->v_forward;	UTIL_TraceLine(vecSrc, vecSrc + vecDir * 8192, dont_ignore_monsters, m_pPlayer->edict(), &tr);#ifndef CLIENT_DLL	if ( tr.pHit->v.takedamage )	{		ClearMultiDamage( );		CBaseEntity::Instance(tr.pHit)->TraceAttack(m_pPlayer->pev, 120, vecDir, &tr, DMG_BULLET | DMG_NEVERGIB ); 		ApplyMultiDamage( pev, m_pPlayer->pev );	}#endif}
开发者ID:CRASHFORT,项目名称:HL-Cam-Mod,代码行数:44,


示例16: UTIL_MakeVectors

void CRpg::PrimaryAttack(){	if ( m_iClip )	{		m_pPlayer->m_iWeaponVolume = LOUD_GUN_VOLUME;		m_pPlayer->m_iWeaponFlash = BRIGHT_GUN_FLASH;#ifndef CLIENT_DLL		// player "shoot" animation		m_pPlayer->SetAnimation( PLAYER_ATTACK1 );		UTIL_MakeVectors( m_pPlayer->pev->v_angle );		Vector vecSrc = m_pPlayer->GetGunPosition( ) + gpGlobals->v_forward * 16 + gpGlobals->v_right * 8 + gpGlobals->v_up * -8;				CRpgRocket *pRocket = CRpgRocket::CreateRpgRocket( vecSrc, m_pPlayer->pev->v_angle, m_pPlayer, this );		UTIL_MakeVectors( m_pPlayer->pev->v_angle );// RpgRocket::Create stomps on globals, so remake.		pRocket->pev->velocity = pRocket->pev->velocity + gpGlobals->v_forward * DotProduct( m_pPlayer->pev->velocity, gpGlobals->v_forward );#endif		// firing RPG no longer turns on the designator. ALT fire is a toggle switch for the LTD.		// Ken signed up for this as a global change (sjb)		int flags;#if defined( CLIENT_WEAPONS )	flags = FEV_NOTHOST;#else	flags = 0;#endif		PLAYBACK_EVENT( flags, m_pPlayer->edict(), m_usRpg );		m_iClip--; 						m_flNextPrimaryAttack = GetNextAttackDelay(1.5);		m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 1.5;	}	else	{		PlayEmptySound( );	}	UpdateSpot( );}
开发者ID:Skumek,项目名称:hlsdk,代码行数:43,


示例17: PlayEmptySound

void CGalil::PrimaryAttack(){	if (m_pPlayer->pev->waterlevel == 3)	{		PlayEmptySound();		m_flNextPrimaryAttack = GetNextAttackDelay(0.15);		return;	}	if (!(m_pPlayer->pev->flags & FL_ONGROUND))	{		GalilFire(0.04 + (0.3 * m_flAccuracy), 0.0875, FALSE);	}	else if (m_pPlayer->pev->velocity.Length2D() > 140)	{		GalilFire(0.04 + (0.07 * m_flAccuracy), 0.0875, FALSE);	}	else	{		GalilFire(0.0375 * m_flAccuracy, 0.0875, FALSE);	}}
开发者ID:FWGS,项目名称:regamelite,代码行数:22,


示例18: ClearBits

bool CSmokeGrenade::ShieldSecondaryFire( int up_anim, int down_anim ){    if( m_pPlayer->HasShield() || m_flStartThrow > 0 )    {        return false;    }    if( FBitSet( m_iWeaponState, WPNSTATE_SHIELD_DRAWN ) )    {        ClearBits( m_iWeaponState, WPNSTATE_SHIELD_DRAWN );        SendWeaponAnim( down_anim, UseDecrement() != FALSE );        strcpy( m_pPlayer->m_szAnimExtention, "shieldgren" );        m_fMaxSpeed = SMOKEGRENADE_MAX_SPEED;        m_pPlayer->m_bShieldDrawn = false;    }    else    {        SetBits( m_iWeaponState, WPNSTATE_SHIELD_DRAWN );        SendWeaponAnim( up_anim, UseDecrement() != FALSE );        strcpy( m_pPlayer->m_szAnimExtention, "shielded" );        m_fMaxSpeed = SMOKEGRENADE_MAX_SPEED_SHIELD;        m_pPlayer->m_bShieldDrawn = true;    }    m_pPlayer->UpdateShieldCrosshair( FBitSet( m_iWeaponState, WPNSTATE_SHIELD_DRAWN ) ? true : false );    m_pPlayer->ResetMaxSpeed();    m_flTimeWeaponIdle      = UTIL_WeaponTimeBase() + 0.6;    m_flNextSecondaryAttack = UTIL_WeaponTimeBase() + 0.4;    m_flNextPrimaryAttack   = GetNextAttackDelay( 0.4 );    return true;}
开发者ID:Chuvi-w,项目名称:CSSDK,代码行数:39,


示例19: PlayEmptySound

void CFamas::__MAKE_VHOOK(PrimaryAttack)(){	if (m_pPlayer->pev->waterlevel == 3)	{		PlayEmptySound();		m_flNextPrimaryAttack = GetNextAttackDelay(0.15);		return;	}	bool bFireBurst = (m_iWeaponState & WPNSTATE_FAMAS_BURST_MODE) == WPNSTATE_FAMAS_BURST_MODE;	if (!(m_pPlayer->pev->flags & FL_ONGROUND))	{		FamasFire(0.030 + 0.3 * m_flAccuracy, 0.0825, FALSE, bFireBurst);	}	else if (m_pPlayer->pev->velocity.Length2D() > 140)	{		FamasFire(0.030 + 0.07 * m_flAccuracy, 0.0825, FALSE, bFireBurst);	}	else	{		FamasFire(0.02 * m_flAccuracy, 0.0825, FALSE, bFireBurst);	}}
开发者ID:Slinfy97,项目名称:ReGameDLL_CS,代码行数:24,


示例20: ClientPrint

/* <2464e8> ../cstrike/dlls/wpn_shared/wpn_c4.cpp:152 */void CC4::__MAKE_VHOOK(PrimaryAttack)(void){	BOOL PlaceBomb;	int inBombZone, onGround;	if (m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] <= 0)	{		return;	}	inBombZone = (m_pPlayer->m_signals.GetState() & SIGNAL_BOMB) == SIGNAL_BOMB;	onGround = (m_pPlayer->pev->flags & FL_ONGROUND) == FL_ONGROUND;	PlaceBomb = (onGround && inBombZone);	if (!m_bStartedArming)	{		if (!inBombZone)		{			ClientPrint(m_pPlayer->pev, HUD_PRINTCENTER, "#C4_Plant_At_Bomb_Spot");			m_flNextPrimaryAttack = GetNextAttackDelay(1.0);			return;		}		if (!onGround)		{			ClientPrint(m_pPlayer->pev, HUD_PRINTCENTER, "#C4_Plant_Must_Be_On_Ground");			m_flNextPrimaryAttack = GetNextAttackDelay(1);			return;		}		m_bStartedArming = true;		m_bBombPlacedAnimation = false;		m_fArmedTime = gpGlobals->time + C4_ARMING_ON_TIME;		SendWeaponAnim(C4_ARM, UseDecrement() != FALSE);		SET_CLIENT_MAXSPEED(m_pPlayer->edict(), 1.0);		m_pPlayer->SetAnimation(PLAYER_ATTACK1);		m_pPlayer->SetProgressBarTime(C4_ARMING_ON_TIME);	}	else	{		if (PlaceBomb)		{			CBaseEntity *pEntity = NULL;			CBasePlayer *pTempPlayer = NULL;			if (m_fArmedTime <= gpGlobals->time)			{				if (m_bStartedArming)				{					m_bStartedArming = false;					m_fArmedTime = 0;					Broadcast("BOMBPL");					m_pPlayer->m_bHasC4 = false;					if (pev->speed != 0 && g_pGameRules != NULL)					{						g_pGameRules->m_iC4Timer = (int)pev->speed;					}					CGrenade *pBomb = CGrenade::ShootSatchelCharge(m_pPlayer->pev, m_pPlayer->pev->origin, Vector(0, 0, 0));					MESSAGE_BEGIN(MSG_SPEC, SVC_DIRECTOR);						WRITE_BYTE(9);						WRITE_BYTE(DRC_CMD_EVENT);						WRITE_SHORT(m_pPlayer->entindex());						WRITE_SHORT(0);						WRITE_LONG(DRC_FLAG_FACEPLAYER | 11);					MESSAGE_END();					MESSAGE_BEGIN(MSG_ALL, gmsgBombDrop);						WRITE_COORD(pBomb->pev->origin.x);						WRITE_COORD(pBomb->pev->origin.y);						WRITE_COORD(pBomb->pev->origin.z);						WRITE_BYTE(1);					MESSAGE_END();					UTIL_ClientPrintAll(HUD_PRINTCENTER, "#Bomb_Planted");					TheBots->OnEvent(EVENT_BOMB_PLANTED, m_pPlayer, pBomb);					if (g_pGameRules->IsCareer() && !m_pPlayer->IsBot())					{						TheCareerTasks->HandleEvent(EVENT_BOMB_PLANTED, m_pPlayer);					}					UTIL_LogPrintf					(						"/"%s<%i><%s><TERRORIST>/" triggered /"Planted_The_Bomb/"/n",						STRING(m_pPlayer->pev->netname),						GETPLAYERUSERID(m_pPlayer->edict()),						GETPLAYERAUTHID(m_pPlayer->edict())					);					g_pGameRules->m_bBombDropped = FALSE;					EMIT_SOUND(edict(), CHAN_WEAPON, "weapons/c4_plant.wav", VOL_NORM, ATTN_NORM);//.........这里部分代码省略.........
开发者ID:coolmans,项目名称:ReGameDLL_CS,代码行数:101,


示例21: PlayEmptySound

void CShotgun::PrimaryAttack(){	// don't fire underwater	if (m_pPlayer->GetWaterLevel() == WATERLEVEL_HEAD )	{		PlayEmptySound( );		m_flNextPrimaryAttack = GetNextAttackDelay(0.15);		return;	}	if (m_iClip <= 0)	{		Reload( );		if (m_iClip == 0)			PlayEmptySound( );		return;	}	m_pPlayer->m_iWeaponVolume = LOUD_GUN_VOLUME;	m_pPlayer->m_iWeaponFlash = NORMAL_GUN_FLASH;	m_iClip--;	int flags;#if defined( CLIENT_WEAPONS )	flags = FEV_NOTHOST;#else	flags = 0;#endif	m_pPlayer->pev->effects = (int)(m_pPlayer->pev->effects) | EF_MUZZLEFLASH;	Vector vecSrc	 = m_pPlayer->GetGunPosition( );	Vector vecAiming = m_pPlayer->GetAutoaimVector( AUTOAIM_5DEGREES );	Vector vecDir;	if ( bIsMultiplayer() )	{		vecDir = m_pPlayer->FireBulletsPlayer( 4, vecSrc, vecAiming, VECTOR_CONE_DM_SHOTGUN, 2048, BULLET_PLAYER_BUCKSHOT, 0, 0, m_pPlayer, m_pPlayer->random_seed );	}	else	{		// regular old, untouched spread. 		vecDir = m_pPlayer->FireBulletsPlayer( 6, vecSrc, vecAiming, VECTOR_CONE_10DEGREES, 2048, BULLET_PLAYER_BUCKSHOT, 0, 0, m_pPlayer, m_pPlayer->random_seed );	}	PLAYBACK_EVENT_FULL( flags, m_pPlayer->edict(), m_usSingleFire, 0.0, g_vecZero, g_vecZero, vecDir.x, vecDir.y, 0, 0, 0, 0 );	if (!m_iClip && m_pPlayer->m_rgAmmo[ PrimaryAmmoIndex() ] <= 0)		// HEV suit - indicate out of ammo condition		m_pPlayer->SetSuitUpdate("!HEV_AMO0", SUIT_SENTENCE, 0);	//if (m_iClip != 0)		m_flPumpTime = gpGlobals->time + 0.5;	m_flNextPrimaryAttack = GetNextAttackDelay(0.75);	m_flNextSecondaryAttack = UTIL_WeaponTimeBase() + 0.75;	if (m_iClip != 0)		m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 5.0;	else		m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 0.75;	m_InSpecialReload = ReloadState::NOT_RELOADING;}
开发者ID:swmpdg,项目名称:HLEnhanced,代码行数:66,


示例22: PlayEmptySound

void CP90::P90Fire( float flSpread, float flCycleTime, BOOL fUseAutoAim ){    m_bDelayFire = true;    m_iShotsFired++;    m_flAccuracy = ( ( m_iShotsFired * m_iShotsFired * m_iShotsFired) / 175 ) + 0.45;    if( m_flAccuracy > 1 )        m_flAccuracy = 1;    if( m_iClip <= 0 )    {         if( m_fFireOnEmpty )        {            PlayEmptySound();            m_flNextPrimaryAttack = GetNextAttackDelay( 0.2 );        }        // TODO: Implement me.        // if( TheBots )        // {        //     TheBots->OnEvent( EVENT_WEAPON_FIRED_ON_EMPTY, m_pPlayer, NULL );        // }        return;    }    m_iClip--;    m_pPlayer->pev->effects |= EF_MUZZLEFLASH;    m_pPlayer->SetAnimation( PLAYER_ATTACK1 );    UTIL_MakeVectors( m_pPlayer->pev->v_angle + m_pPlayer->pev->punchangle );    m_pPlayer->m_iWeaponVolume = NORMAL_GUN_VOLUME;    m_pPlayer->m_iWeaponFlash  = DIM_GUN_FLASH;    Vector vecDir = m_pPlayer->FireBullets3( m_pPlayer->GetGunPosition(), gpGlobals->v_forward, flSpread,         P90_DISTANCE, P90_PENETRATION, BULLET_PLAYER_57MM, P90_DAMAGE, P90_RANGE_MODIFER, m_pPlayer->pev, FALSE, m_pPlayer->random_seed );    int flags;    #if defined( CLIENT_WEAPONS )        flags = FEV_NOTHOST;    #else        flags = 0;    #endif    PLAYBACK_EVENT_FULL( flags, m_pPlayer->edict(), m_usFireP90, 0, ( float* )&g_vecZero, ( float* )&g_vecZero, vecDir.x, vecDir.y,         ( int )( m_pPlayer->pev->punchangle.x * 100 ), ( int )( m_pPlayer->pev->punchangle.y * 100 ), 5, FALSE );    m_flNextPrimaryAttack = m_flNextSecondaryAttack = GetNextAttackDelay( flCycleTime );    if( !m_iClip && m_pPlayer->m_rgAmmo[ m_iPrimaryAmmoType ] <= 0 )    {        m_pPlayer->SetSuitUpdate( "!HEV_AMO0", FALSE, 0 );    }    m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 2.0;    if( !FBitSet( m_pPlayer->pev->flags, FL_ONGROUND ) )    {        KickBack( 0.9, 0.45, 0.35, 0.04, 5.25, 3.5, 4 );    }    else if( m_pPlayer->pev->velocity.Length2D() > 0 )    {        KickBack( 0.45, 0.3, 0.2, 0.0275, 4.0, 2.25, 7 );    }    else if( FBitSet(m_pPlayer->pev->flags, FL_DUCKING ) )    {        KickBack( 0.275, 0.2, 0.125, 0.02, 3.0, 1.0, 9 );    }    else    {        KickBack( 0.3, 0.225, 0.125, 0.02, 3.25, 1.25, 8 );    }}
开发者ID:Chuvi-w,项目名称:CSSDK,代码行数:77,


示例23: PlayEmptySound

void CAWP::AWPFire(float flSpread, float flCycleTime, BOOL fUseAutoAim){	if (m_pPlayer->pev->fov != 90)	{		m_pPlayer->m_bResumeZoom = true;		m_pPlayer->m_iLastZoom   = m_pPlayer->m_iFOV;		m_pPlayer->m_iFOV        = m_pPlayer->pev->fov = 90;	}	else	{		flCycleTime += 0.08;	}	if (m_iClip <= 0)	{		if (m_fFireOnEmpty)		{			PlayEmptySound();			m_flNextPrimaryAttack = GetNextAttackDelay(0.2);		}		// TODO: Implement me.		// if( TheBots )		// {		//     TheBots->OnEvent( EVENT_WEAPON_FIRED_ON_EMPTY, m_pPlayer, NULL );		// }		return;	}	m_iClip--;	m_pPlayer->pev->effects |= EF_MUZZLEFLASH;	m_pPlayer->SetAnimation(PLAYER_ATTACK1);	UTIL_MakeVectors(m_pPlayer->pev->v_angle + m_pPlayer->pev->punchangle);	m_pPlayer->m_flEjectBrass  = gpGlobals->time + 0.55;	m_pPlayer->m_iWeaponVolume = BIG_EXPLOSION_VOLUME;	m_pPlayer->m_iWeaponFlash  = NORMAL_GUN_FLASH;	Vector vecDir = FireBullets3(m_pPlayer->GetGunPosition(), gpGlobals->v_forward, flSpread,		AWP_DISTANCE, AWP_PENETRATION, BULLET_PLAYER_338MAG, AWP_DAMAGE, AWP_RANGE_MODIFER, m_pPlayer->pev, TRUE, m_pPlayer->random_seed);	int flags;#if defined( CLIENT_WEAPONS )	flags = FEV_NOTHOST;#else	flags = 0;#endif	PLAYBACK_EVENT_FULL(flags, m_pPlayer->edict(), m_usFireAWP, 0, (float*)&g_vecZero, (float *)&g_vecZero, vecDir.x, vecDir.y,		(int)(m_pPlayer->pev->punchangle.x * 100), (int)(m_pPlayer->pev->punchangle.x * 100), FALSE, FALSE);	m_flNextPrimaryAttack = m_flNextSecondaryAttack = GetNextAttackDelay(flCycleTime);	if (!m_iClip && m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] <= 0)	{		m_pPlayer->SetSuitUpdate("!HEV_AMO0", FALSE, 0);	}	m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 2.0;	m_pPlayer->pev->punchangle.x -= 2;}
开发者ID:Chuvi-w,项目名称:CSSDK,代码行数:65,


示例24: PlayEmptySound

void CP90::P90Fire(float flSpread, float flCycleTime, BOOL fUseAutoAim){	Vector vecAiming, vecSrc, vecDir;	int flag;	m_bDelayFire = true;	++m_iShotsFired;	m_flAccuracy = (m_iShotsFired * m_iShotsFired / 175) + 0.45f;	if (m_flAccuracy > 1)		m_flAccuracy = 1;	if (m_iClip <= 0)	{		if (m_fFireOnEmpty)		{			PlayEmptySound();			m_flNextPrimaryAttack = GetNextAttackDelay(0.2);		}		if (TheBots != NULL)		{			TheBots->OnEvent(EVENT_WEAPON_FIRED_ON_EMPTY, m_pPlayer);		}		return;	}	--m_iClip;	m_pPlayer->pev->effects |= EF_MUZZLEFLASH;	m_pPlayer->SetAnimation(PLAYER_ATTACK1);	UTIL_MakeVectors(m_pPlayer->pev->v_angle + m_pPlayer->pev->punchangle);	m_pPlayer->m_iWeaponVolume = NORMAL_GUN_VOLUME;	m_pPlayer->m_iWeaponFlash = DIM_GUN_FLASH;	vecSrc = m_pPlayer->GetGunPosition();	vecAiming = gpGlobals->v_forward;	vecDir = m_pPlayer->FireBullets3(vecSrc, vecAiming, flSpread, 8192, 1, BULLET_PLAYER_57MM, P90_DAMAGE, P90_RANGE_MODIFER, m_pPlayer->pev, false, m_pPlayer->random_seed);#ifdef CLIENT_WEAPONS	flag = FEV_NOTHOST;#else	flag = 0;#endif	PLAYBACK_EVENT_FULL(flag, m_pPlayer->edict(), m_usFireP90, 0, (float *)&g_vecZero, (float *)&g_vecZero, vecDir.x, vecDir.y,		int(m_pPlayer->pev->punchangle.x * 100), int(m_pPlayer->pev->punchangle.y * 100), 5, FALSE);	m_flNextPrimaryAttack = m_flNextSecondaryAttack = GetNextAttackDelay(flCycleTime);	if (!m_iClip && m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] <= 0)	{		m_pPlayer->SetSuitUpdate("!HEV_AMO0", FALSE, 0);	}	m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 2.0f;	if (!(m_pPlayer->pev->flags & FL_ONGROUND))	{		KickBack(0.9, 0.45, 0.35, 0.04, 5.25, 3.5, 4);	}	else if (m_pPlayer->pev->velocity.Length2D() > 0)	{		KickBack(0.45, 0.3, 0.2, 0.0275, 4.0, 2.25, 7);	}	else if (m_pPlayer->pev->flags & FL_DUCKING)	{		KickBack(0.275, 0.2, 0.125, 0.02, 3.0, 1.0, 9);	}	else	{		KickBack(0.3, 0.225, 0.125, 0.02, 3.25, 1.25, 8);	}}
开发者ID:Slinfy97,项目名称:ReGameDLL_CS,代码行数:78,


示例25: if

void CELITE::ELITEFire(float flSpread, float flCycleTime, BOOL fUseSemi){	float flTimeDiff;	int flag;	Vector vecAiming;	Vector vecSrc;	Vector vecDir;   	flCycleTime -= 0.078f;   	if (++m_iShotsFired > 1)	{		return;	}	flTimeDiff = gpGlobals->time - m_flLastFire;	if (m_flLastFire)	{		m_flAccuracy -= (0.325f - flTimeDiff) * 0.275f;		if (m_flAccuracy > 0.88f)		{			m_flAccuracy = 0.88f;		}		else if (m_flAccuracy < 0.55f)		{			m_flAccuracy = 0.55f;		}	}	m_flLastFire = gpGlobals->time;	if (m_iClip <= 0)	{		if (m_fFireOnEmpty)		{			PlayEmptySound();			m_flNextPrimaryAttack = GetNextAttackDelay(0.2);		}		if (TheBots != NULL)		{			TheBots->OnEvent(EVENT_WEAPON_FIRED_ON_EMPTY, m_pPlayer);		}		return;	}	m_flNextPrimaryAttack = m_flNextSecondaryAttack = GetNextAttackDelay(flCycleTime);	--m_iClip;	m_pPlayer->m_iWeaponVolume = BIG_EXPLOSION_VOLUME;	m_pPlayer->m_iWeaponFlash = DIM_GUN_FLASH;	UTIL_MakeVectors(m_pPlayer->pev->v_angle + m_pPlayer->pev->punchangle);	m_pPlayer->pev->effects |= EF_MUZZLEFLASH;	vecSrc = m_pPlayer->GetGunPosition();	vecAiming = gpGlobals->v_forward;#ifdef CLIENT_WEAPONS	flag = FEV_NOTHOST;#else	flag = 0;#endif // CLIENT_WEAPONS	if (m_iWeaponState & WPNSTATE_ELITE_LEFT)	{		m_pPlayer->SetAnimation(PLAYER_ATTACK1);		m_iWeaponState &= ~WPNSTATE_ELITE_LEFT;		vecDir = m_pPlayer->FireBullets3(vecSrc - gpGlobals->v_right * 5, vecAiming, flSpread,			8192, BULLET_PLAYER_9MM, 1, ELITE_DAMAGE, ELITE_RANGE_MODIFER, m_pPlayer->pev, true, m_pPlayer->random_seed);		PLAYBACK_EVENT_FULL(flag, m_pPlayer->edict(), m_usFireELITE_LEFT, 0, (float *)&g_vecZero, (float *)&g_vecZero, flTimeDiff, vecDir.x,			(int)(vecDir.y * 100), m_iClip, FALSE, FALSE);	}	else	{		m_pPlayer->SetAnimation(PLAYER_ATTACK2);		m_iWeaponState |= WPNSTATE_ELITE_LEFT;		vecDir = m_pPlayer->FireBullets3(vecSrc + gpGlobals->v_right * 5, vecAiming, flSpread,			8192, BULLET_PLAYER_9MM, 1, ELITE_DAMAGE, ELITE_RANGE_MODIFER, m_pPlayer->pev, true, m_pPlayer->random_seed);		PLAYBACK_EVENT_FULL(flag, m_pPlayer->edict(), m_usFireELITE_RIGHT, 0, (float *)&g_vecZero, (float *)&g_vecZero, flTimeDiff, vecDir.x,			(int)(vecDir.y * 100), m_iClip, FALSE, FALSE);	}	if (!m_iClip && m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] <= 0)	{		m_pPlayer->SetSuitUpdate("!HEV_AMO0", FALSE, 0);	}	m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 2.0f;	m_pPlayer->pev->punchangle.x -= 2.0f;}
开发者ID:FWGS,项目名称:regamelite,代码行数:99,


示例26: PlayEmptySound

void CCrossbow::FireBolt(){	TraceResult tr;	if (m_iClip == 0)	{		PlayEmptySound( );		return;	}	m_pPlayer->m_iWeaponVolume = QUIET_GUN_VOLUME;	m_iClip--;	int flags;#if defined( CLIENT_WEAPONS )	flags = FEV_NOTHOST;#else	flags = 0;#endif	PLAYBACK_EVENT_FULL( flags, m_pPlayer->edict(), m_usCrossbow, 0.0, (float *)&g_vecZero, (float *)&g_vecZero, 0, 0, m_iClip, m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType], 0, 0 );	// player "shoot" animation	m_pPlayer->SetAnimation( PLAYER_ATTACK1 );	Vector anglesAim = m_pPlayer->pev->v_angle + m_pPlayer->pev->punchangle;	UTIL_MakeVectors( anglesAim );		anglesAim.x		= -anglesAim.x;	Vector vecSrc	 = m_pPlayer->GetGunPosition( ) - gpGlobals->v_up * 2;	Vector vecDir	 = gpGlobals->v_forward;#ifndef CLIENT_DLL	CCrossbowBolt *pBolt = CCrossbowBolt::BoltCreate();	pBolt->pev->origin = vecSrc;	pBolt->pev->angles = anglesAim;	pBolt->pev->owner = m_pPlayer->edict();	if (m_pPlayer->pev->waterlevel == 3)	{		pBolt->pev->velocity = vecDir * BOLT_WATER_VELOCITY;		pBolt->pev->speed = BOLT_WATER_VELOCITY;	}	else	{		pBolt->pev->velocity = vecDir * BOLT_AIR_VELOCITY;		pBolt->pev->speed = BOLT_AIR_VELOCITY;	}	pBolt->pev->avelocity.z = 10;#endif	if (!m_iClip && m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] <= 0)		// HEV suit - indicate out of ammo condition		m_pPlayer->SetSuitUpdate("!HEV_AMO0", FALSE, 0);	m_flNextPrimaryAttack = GetNextAttackDelay(0.75);	m_flNextSecondaryAttack = UTIL_WeaponTimeBase() + 0.75;	if (m_iClip != 0)		m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 5.0;	else		m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 0.75;}
开发者ID:CRASHFORT,项目名称:HL-Cam-Mod,代码行数:65,


示例27: UTIL_MakeVectors

void CHEGrenade::__MAKE_VHOOK(WeaponIdle)(){	if (m_flReleaseThrow == 0 && m_flStartThrow != 0.0f)		m_flReleaseThrow = gpGlobals->time;	if (m_flTimeWeaponIdle > UTIL_WeaponTimeBase())		return;	if (m_flStartThrow)	{		m_pPlayer->Radio("%!MRAD_FIREINHOLE", "#Fire_in_the_hole");		Vector angThrow = m_pPlayer->pev->v_angle + m_pPlayer->pev->punchangle;		if (angThrow.x < 0)			angThrow.x = -10 + angThrow.x * ((90 - 10) / 90.0);		else			angThrow.x = -10 + angThrow.x * ((90 + 10) / 90.0);		float flVel = (90.0f - angThrow.x) * 6.0f;		if (flVel > 750.0f)			flVel = 750.0f;		UTIL_MakeVectors(angThrow);		Vector vecSrc = m_pPlayer->pev->origin + m_pPlayer->pev->view_ofs + gpGlobals->v_forward * 16;		Vector vecThrow = gpGlobals->v_forward * flVel + m_pPlayer->pev->velocity;		CGrenade::ShootTimed2(m_pPlayer->pev, vecSrc, vecThrow, 1.5, m_pPlayer->m_iTeam, m_usCreateExplosion);		SendWeaponAnim(HEGRENADE_THROW, UseDecrement() != FALSE);		SetPlayerShieldAnim();		// player "shoot" animation		m_pPlayer->SetAnimation(PLAYER_ATTACK1);		m_flStartThrow = 0;		m_flNextPrimaryAttack = GetNextAttackDelay(0.5);		m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 0.75f;		if (--m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] <= 0)		{			// just threw last grenade			// set attack times in the future, and weapon idle in the future so we can see the whole throw			// animation, weapon idle will automatically retire the weapon for us.			// ensure that the animation can finish playing			m_flTimeWeaponIdle = m_flNextSecondaryAttack = m_flNextPrimaryAttack = GetNextAttackDelay(0.5);		}		ResetPlayerShieldAnim();	}	else if (m_flReleaseThrow > 0)	{		// we've finished the throw, restart.		m_flStartThrow = 0;		if (m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType])		{			SendWeaponAnim(HEGRENADE_DRAW, UseDecrement() != FALSE);		}		else		{			RetireWeapon();			return;		}		m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + RANDOM_FLOAT(10, 15);		m_flReleaseThrow = -1.0f;	}	else if (m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType])	{		if (m_pPlayer->HasShield())		{			m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 20.0f;			if (m_iWeaponState & WPNSTATE_SHIELD_DRAWN)			{				SendWeaponAnim(SHIELDREN_IDLE, UseDecrement() != FALSE);			}		}		else		{			SendWeaponAnim(HEGRENADE_IDLE, UseDecrement() != FALSE);			// how long till we do this again.			m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + RANDOM_FLOAT(10, 15);		}	}}
开发者ID:Chuvi-w,项目名称:ReGameDLL_CS,代码行数:90,


示例28: EMIT_SOUND_DYN

void CGauss::SecondaryAttack(){	// don't fire underwater	if ( m_pPlayer->pev->waterlevel == 3 )	{		if ( m_fInAttack != 0 )		{			EMIT_SOUND_DYN(ENT(m_pPlayer->pev), CHAN_WEAPON, "weapons/electro4.wav", 1.0, ATTN_NORM, 0, 80 + RANDOM_LONG(0,0x3f));			SendWeaponAnim( GAUSS_IDLE );			m_fInAttack = 0;		}		else		{			PlayEmptySound( );		}		m_flNextSecondaryAttack = m_flNextPrimaryAttack = GetNextAttackDelay(0.5);		return;	}	if ( m_fInAttack == 0 )	{		if ( m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] <= 0 )		{			EMIT_SOUND(ENT(m_pPlayer->pev), CHAN_WEAPON, "weapons/357_cock1.wav", 0.8, ATTN_NORM);			m_pPlayer->m_flNextAttack = UTIL_WeaponTimeBase() + 0.5;			return;		}		m_fPrimaryFire = FALSE;		m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType]--;// take one ammo just to start the spin		m_pPlayer->m_flNextAmmoBurn = UTIL_WeaponTimeBase();		// spin up		m_pPlayer->m_iWeaponVolume = GAUSS_PRIMARY_CHARGE_VOLUME;				SendWeaponAnim( GAUSS_SPINUP );		m_fInAttack = 1;		m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 0.5;		m_pPlayer->m_flStartCharge = gpGlobals->time;		m_pPlayer->m_flAmmoStartCharge = UTIL_WeaponTimeBase() + GetFullChargeTime();		PLAYBACK_EVENT_FULL( FEV_NOTHOST, m_pPlayer->edict(), m_usGaussSpin, 0.0, (float *)&g_vecZero, (float *)&g_vecZero, 0.0, 0.0, 110, 0, 0, 0 );		m_iSoundState = SND_CHANGE_PITCH;	}	else if (m_fInAttack == 1)	{		if (m_flTimeWeaponIdle < UTIL_WeaponTimeBase())		{			SendWeaponAnim( GAUSS_SPIN );			m_fInAttack = 2;		}	}	else	{		// during the charging process, eat one bit of ammo every once in a while		if ( UTIL_WeaponTimeBase() >= m_pPlayer->m_flNextAmmoBurn && m_pPlayer->m_flNextAmmoBurn != 1000 )		{#ifdef CLIENT_DLL	if ( bIsMultiplayer() )#else	if ( g_pGameRules->IsMultiplayer() )#endif			{				m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType]--;				m_pPlayer->m_flNextAmmoBurn = UTIL_WeaponTimeBase() + 0.1;			}			else			{				m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType]--;				m_pPlayer->m_flNextAmmoBurn = UTIL_WeaponTimeBase() + 0.3;			}		}		if ( m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] <= 0 )		{			// out of ammo! force the gun to fire			StartFire();			m_fInAttack = 0;			m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + 1.0;			m_pPlayer->m_flNextAttack = UTIL_WeaponTimeBase() + 1;			return;		}				if ( UTIL_WeaponTimeBase() >= m_pPlayer->m_flAmmoStartCharge )		{			// don't eat any more ammo after gun is fully charged.			m_pPlayer->m_flNextAmmoBurn = 1000;		}		int pitch = ( gpGlobals->time - m_pPlayer->m_flStartCharge ) * ( 150 / GetFullChargeTime() ) + 100;		if ( pitch > 250 ) 			 pitch = 250;				// ALERT( at_console, "%d %d %d/n", m_fInAttack, m_iSoundState, pitch );		if ( m_iSoundState == 0 )			ALERT( at_console, "sound state %d/n", m_iSoundState );//.........这里部分代码省略.........
开发者ID:Solexid,项目名称:halflife,代码行数:101,



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


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