bool CWeaponCSBaseGun::Reload()
{
	CCSPlayer *pPlayer = GetPlayerOwner();
	if ( !pPlayer )
		return false;

	if (pPlayer->GetAmmoCount( GetPrimaryAmmoType() ) <= 0)
		return false;

	int iResult = DefaultReload( GetMaxClip1(), GetMaxClip2(), ACT_VM_RELOAD );
	if ( !iResult )
		return false;

	pPlayer->SetAnimation( PLAYER_RELOAD );

#ifndef CLIENT_DLL
	if ((iResult) && (pPlayer->GetFOV() != pPlayer->GetDefaultFOV()))
	{
		pPlayer->SetFOV( pPlayer, pPlayer->GetDefaultFOV() );
	}
#endif

	m_flAccuracy = 0.2;
	pPlayer->m_iShotsFired = 0;
	m_bDelayFire = false;

	pPlayer->SetShieldDrawnState( false );
	return true;
}
Exemplo n.º 2
0
float CWeaponScout::GetMaxSpeed() const
{
    CCSPlayer *pPlayer = GetPlayerOwner();
    if (pPlayer == NULL)
    {
        Assert(pPlayer != NULL);
        return BaseClass::GetMaxSpeed();
    }

    if ( pPlayer->GetFOV() == pPlayer->GetDefaultFOV() )
        return BaseClass::GetMaxSpeed();
    else
        return 220;	// zoomed in.
}
bool CDEagle::Reload()
{
	CCSPlayer *pPlayer = GetPlayerOwner();

	if ( pPlayer->GetAmmoCount( GetPrimaryAmmoType() ) <= 0 )
		return false;

	if ( !DefaultReload( 7, DEAGLE_RELOAD, 2.2 ) )
		return false;

	//m_pPlayer->SetAnimation( PLAYER_RELOAD );
	m_flAccuracy = 0.9;
	return true;
}
Exemplo n.º 4
0
void CWeaponM4A1::M4A1Fire( float flSpread, float flCycleTime )
{
	if ( !CSBaseGunFire( flSpread, flCycleTime ) )
		return;

	CCSPlayer *pPlayer = GetPlayerOwner();
	if (pPlayer->GetAbsVelocity().Length2D() > 0)
		KickBack (1.0, 0.45, 0.28, 0.045, 3.75, 3, 7);
	else if ( !FBitSet( pPlayer->GetFlags(), FL_ONGROUND ) )
		KickBack (1.2, 0.5, 0.23, 0.15, 5.5, 3.5, 6);
	else if ( FBitSet( pPlayer->GetFlags(), FL_DUCKING ) )
		KickBack (0.6, 0.3, 0.2, 0.0125, 3.25, 2, 7);
	else
		KickBack (0.65, 0.35, 0.25, 0.015, 3.5, 2.25, 7);
}
	bool CWeaponCSBase::IsUseable()
	{
		CCSPlayer *pPlayer = GetPlayerOwner();

		if ( Clip1() <= 0 )
		{
			if ( pPlayer->GetAmmoCount( GetPrimaryAmmoType() ) <= 0 && GetMaxClip1() != -1 )			
			{
				// clip is empty (or nonexistant) and the player has no more ammo of this type. 
				return false;
			}
		}

		return true;
	}
Exemplo n.º 6
0
void CWeaponSG552::SG552Fire( float flSpread, float flCycleTime )
{
	if ( !CSBaseGunFire( flSpread, flCycleTime ) )
		return;

	CCSPlayer *pPlayer = GetPlayerOwner();
	if (pPlayer->GetAbsVelocity().Length2D() > 0)
		KickBack (1, 0.45, 0.28, 0.04, 4.25, 2.5, 7);
	else if ( !FBitSet( pPlayer->GetFlags(), FL_ONGROUND ) )
		KickBack (1.25, 0.45, 0.22, 0.18, 6, 4, 5);
	else if ( FBitSet( pPlayer->GetFlags(), FL_DUCKING ) )
		KickBack (0.6, 0.35, 0.2, 0.0125, 3.7, 2, 10);
	else
		KickBack (0.625, 0.375, 0.25, 0.0125, 4, 2.25, 9);
}
Exemplo n.º 7
0
bool CWeaponUSP::Reload()
{
	CCSPlayer *pPlayer = GetPlayerOwner();

	if (pPlayer->GetAmmoCount( GetPrimaryAmmoType() ) <= 0)
		return true;

	int iResult = DefaultReload( 12, 0, ACT_VM_RELOAD );
	if (!iResult)
		return true;

	pPlayer->SetAnimation( PLAYER_RELOAD );
	m_flAccuracy = 0.92;
	return true;
}
Exemplo n.º 8
0
float CCSPlayerAnimState::GetCurrentMaxGroundSpeed()
{
	Activity currentActivity = 	m_pOuter->GetSequenceActivity( m_pOuter->GetSequence() );
	if ( currentActivity == ACT_WALK || currentActivity == ACT_IDLE )
		return ANIM_TOPSPEED_WALK;
	else if ( currentActivity == ACT_RUN )
	{
		if ( m_pPlayer )
		{
			CBaseCombatWeapon *activeWeapon = m_pPlayer->GetActiveWeapon();
			if ( activeWeapon )
			{
				CWeaponCSBase *csWeapon = dynamic_cast< CWeaponCSBase * >( activeWeapon );
				if ( csWeapon )
				{
					return csWeapon->GetMaxSpeed();
				}
			}
		}
		return ANIM_TOPSPEED_RUN;
	}
	else if ( currentActivity == ACT_RUN_CROUCH )
		return ANIM_TOPSPEED_RUN_CROUCH;
	else
		return 0;
}
Exemplo n.º 9
0
void CWeaponG3SG1::PrimaryAttack()
{
	CCSPlayer *pPlayer = GetPlayerOwner();
	
	if ( !FBitSet( pPlayer->GetFlags(), FL_ONGROUND ) )
		G3SG1Fire( (0.45) * (1 - m_flAccuracy), 0.25, false );
	
	else if (pPlayer->GetAbsVelocity().Length2D() > 0)
		G3SG1Fire( 0.15, 0.25, false );
	
	else if ( FBitSet( pPlayer->GetFlags(), FL_DUCKING ) )
		G3SG1Fire( (0.035) * (1 - m_flAccuracy), 0.25, false );
	
	else
		G3SG1Fire( (0.055) * (1 - m_flAccuracy), 0.25, false );
}
Exemplo n.º 10
0
void CDEagle::PrimaryAttack()
{
	CCSPlayer *pPlayer = GetPlayerOwner();
	
	if ( !FBitSet( pPlayer->GetFlags(), FL_ONGROUND ) )
		DEAGLEFire( (1.5) * (1 - m_flAccuracy), 0.3, false );
	
	else if (pPlayer->GetAbsVelocity().Length2D() > 0)
		DEAGLEFire( (0.25) * (1 - m_flAccuracy), 0.3, false );
	
	else if ( FBitSet( pPlayer->GetFlags(), FL_DUCKING ) )
		DEAGLEFire( (0.115) * (1 - m_flAccuracy), 0.3, false );
	
	else
		DEAGLEFire( (0.13) * (1 - m_flAccuracy), 0.3, false );
}
Exemplo n.º 11
0
void CAK47::AK47Fire( float flSpread, float flCycleTime )
{
    if ( !CSBaseGunFire( flSpread, flCycleTime ) )
        return;

    CCSPlayer *pPlayer = GetPlayerOwner();

    if (pPlayer->GetAbsVelocity().Length2D() > 0 )
        KickBack ( 1.5, 0.45, 0.225, 0.05, 6.5, 2.5, 7 );
    else if ( !FBitSet( pPlayer->GetFlags(), FL_ONGROUND ) )
        KickBack ( 2, 1.0, 0.5, 0.35, 9, 6, 5 );
    else if ( FBitSet( pPlayer->GetFlags(), FL_DUCKING ) )
        KickBack ( 0.9, 0.35, 0.15, 0.025, 5.5, 1.5, 9 );
    else
        KickBack ( 1, 0.375, 0.175, 0.0375, 5.75, 1.75, 8 );
}
Exemplo n.º 12
0
void CC4::PlayArmingBeeps( void )
{
	float flStartTime = m_fArmedTime - WEAPON_C4_ARM_TIME;

	float flProgress = ( gpGlobals->curtime - flStartTime ) / ( WEAPON_C4_ARM_TIME - 0.75 );

	int currentFrame = (int)( (float)iNumArmingAnimFrames * flProgress );

	int i;
	for( i=0;i<NUM_BEEPS;i++ )
	{
		if( currentFrame <= m_iBeepFrames[i] )
		{
			break;
		}
		else if( !m_bPlayedArmingBeeps[i] )
		{
			m_bPlayedArmingBeeps[i] = true;

			CCSPlayer *owner = GetPlayerOwner();
			Vector soundPosition = owner->GetAbsOrigin() + Vector( 0, 0, 5 );
			CPASAttenuationFilter filter( soundPosition );

			filter.RemoveRecipient( owner );

			// remove anyone that is first person spec'ing the planter
			int i;
			CBasePlayer *pPlayer;
			for( i=1;i<=gpGlobals->maxClients;i++ )
			{
				pPlayer = UTIL_PlayerByIndex( i );

				if ( !pPlayer )
					continue;

				if( pPlayer->GetObserverMode() == OBS_MODE_IN_EYE && pPlayer->GetObserverTarget() == GetOwner() )
				{
					filter.RemoveRecipient( pPlayer );
				}
			}

			EmitSound(filter, entindex(), "c4.click");
			
			break;
		}
	}
}
	bool MyTouch( CBasePlayer *pBasePlayer )
	{
		CCSPlayer *pPlayer = dynamic_cast< CCSPlayer* >( pBasePlayer );
		if ( !pPlayer )
		{
			Assert( false );
			return false;
		}

		pPlayer->m_iKevlar = 2; // player now has kevlar AND helmet
		pPlayer->SetArmorValue( 100 );

		CPASAttenuationFilter filter( pBasePlayer );
		EmitSound( filter, entindex(), "BaseCombatCharacter.ItemPickup2" );

		return true;		
	}
Exemplo n.º 14
0
//-----------------------------------------------------------------------------
// Purpose:
// Input  :
// Output :
//-----------------------------------------------------------------------------
void CWeapon_SLAM::TripmineAttach( void )
{
	CCSPlayer *pOwner  = ToCSPlayer( GetOwner() );
	if (!pOwner)
	{
		return;
	}

	m_bAttachTripmine = false;

	Vector vecSrc, vecAiming;

	// Take the eye position and direction
	vecSrc = pOwner->EyePosition();
	
	QAngle angles = pOwner->GetLocalAngles();

	AngleVectors( angles, &vecAiming );

	trace_t tr;

	UTIL_TraceLine( vecSrc, vecSrc + (vecAiming * 128), MASK_SOLID, pOwner, COLLISION_GROUP_NONE, &tr );
	
	if (tr.fraction < 1.0)
	{
		CBaseEntity *pEntity = tr.m_pEnt;
		if (pEntity && !(pEntity->GetFlags() & FL_CONVEYOR))
		{

#ifndef CLIENT_DLL
			QAngle angles;
			VectorAngles(tr.plane.normal, angles);

			angles.x += 90;

			CBaseEntity *pEnt = CBaseEntity::Create( "npc_tripmine", tr.endpos + tr.plane.normal * 3, angles, NULL );

			CTripmineGrenade *pMine = (CTripmineGrenade *)pEnt;
			pMine->m_hOwner = GetOwner();

#endif

			pOwner->RemoveAmmo( 1, m_iSecondaryAmmoType );
		}
	}
}
Exemplo n.º 15
0
void CWeaponUSP::PrimaryAttack()
{
	CCSPlayer *pPlayer = GetPlayerOwner();

	if ( m_bSilencerOn )
	{
		if ( !FBitSet( pPlayer->GetFlags(), FL_ONGROUND ) )
			USPFire( (1.3) * (1 - m_flAccuracy), 0.225, false );
		else if (pPlayer->GetAbsVelocity().Length2D() > 0)
			USPFire( (0.25) * (1 - m_flAccuracy), 0.225, false );
		else if ( FBitSet( pPlayer->GetFlags(), FL_DUCKING ) )
			USPFire( (0.125) * (1 - m_flAccuracy), 0.225, false );
		else
			USPFire( (0.15) * (1 - m_flAccuracy), 0.225, false );
	}
	else
	{
		if ( !FBitSet( pPlayer->GetFlags(), FL_ONGROUND ) )
			USPFire( (1.2) * (1 - m_flAccuracy), 0.225, false );
		else if (pPlayer->GetAbsVelocity().Length2D() > 0)
			USPFire( (0.225) * (1 - m_flAccuracy), 0.225, false );
		else if ( FBitSet( pPlayer->GetFlags(), FL_DUCKING ) )
			USPFire( (0.08) * (1 - m_flAccuracy), 0.225, false );
		else
			USPFire( (0.1) * (1 - m_flAccuracy), 0.225, false );
	}

}
Exemplo n.º 16
0
void CWeaponUSP::PrimaryAttack()
{
	CCSPlayer *pPlayer = GetPlayerOwner();
	if ( !pPlayer )
		return;

	if ( m_bSilencerOn )
	{
		if ( !FBitSet( pPlayer->GetFlags(), FL_ONGROUND ) )
			USPFire( 1.3f * (1 - m_flAccuracy) );
		else if (pPlayer->GetAbsVelocity().Length2D() > 5)
			USPFire( 0.25f * (1 - m_flAccuracy) );
		else if ( FBitSet( pPlayer->GetFlags(), FL_DUCKING ) )
			USPFire( 0.125f * (1 - m_flAccuracy) );
		else
			USPFire( 0.15f * (1 - m_flAccuracy) );
	}
	else
	{
		if ( !FBitSet( pPlayer->GetFlags(), FL_ONGROUND ) )
			USPFire( 1.2f * (1 - m_flAccuracy ) );
		else if (pPlayer->GetAbsVelocity().Length2D() > 5)
			USPFire( 0.225f * (1 - m_flAccuracy) );
		else if ( FBitSet( pPlayer->GetFlags(), FL_DUCKING ) )
			USPFire( 0.08f * (1 - m_flAccuracy) );
		else
			USPFire( 0.1f * (1 - m_flAccuracy) );
	}

}
Exemplo n.º 17
0
void CC4::ItemPostFrame()
{
	CCSPlayer *pPlayer = GetPlayerOwner();

	// Disable all the firing code.. the C4 grenade is all custom.
	if ( pPlayer->m_nButtons & IN_ATTACK )
	{
		PrimaryAttack();
	}
	else
	{
		WeaponIdle();
		
		#ifndef CLIENT_DLL
			pPlayer->ResetMaxSpeed();
		#endif
	}
}
Exemplo n.º 18
0
void CWeaponElite::PrimaryAttack()
{
	CCSPlayer *pPlayer = GetPlayerOwner();
	if ( !pPlayer )
		return;

	if ( !FBitSet( pPlayer->GetFlags(), FL_ONGROUND ) )
		ELITEFire( 1.3f * (1 - m_flAccuracy) );
	
	else if (pPlayer->GetAbsVelocity().Length2D() > 5)
		ELITEFire( 0.175f * (1 - m_flAccuracy) );
	
	else if ( FBitSet( pPlayer->GetFlags(), FL_DUCKING ) )
		ELITEFire( 0.08f * (1 - m_flAccuracy) );
	
	else
		ELITEFire( 0.1f * (1 - m_flAccuracy));
}
Exemplo n.º 19
0
void CWeaponScout::PrimaryAttack( void )
{
    CCSPlayer *pPlayer = GetPlayerOwner();
    if (pPlayer == NULL)
    {
        Assert(pPlayer != NULL);
        return;
    }

    if ( !FBitSet( pPlayer->GetFlags(), FL_ONGROUND ) )
        SCOUTFire( 0.2 );
    else if (pPlayer->GetAbsVelocity().Length2D() > 170)
        SCOUTFire( 0.075 );
    else if ( FBitSet( pPlayer->GetFlags(), FL_DUCKING ) )
        SCOUTFire( 0.0 );
    else
        SCOUTFire( 0.007 );
}
Exemplo n.º 20
0
void CWeaponUSP::WeaponIdle()
{
	CCSPlayer *pPlayer = GetPlayerOwner();

	//ResetEmptySound( );

	pPlayer->GetAutoaimVector( AUTOAIM_10DEGREES );

	if (m_flTimeWeaponIdle > gpGlobals->curtime)
		return;

	// only idle if the slid isn't back
	if (m_iClip1 != 0)
	{
		m_flTimeWeaponIdle = gpGlobals->curtime + 60.0;

		SendWeaponAnim( ACT_VM_IDLE );
	}
}
Exemplo n.º 21
0
// GOOSEMAN : Kick the view..
void CWeaponCSBase::KickBack( float up_base, float lateral_base, float up_modifier, float lateral_modifier, float up_max, float lateral_max, int direction_change )
{
	CCSPlayer *pPlayer = GetPlayerOwner();

	float flKickUp;
	float flKickLateral;

	if (m_iShotsFired == 1) // This is the first round fired
	{
		flKickUp = up_base;
		flKickLateral = lateral_base;
	}
	else
	{
		flKickUp = up_base + m_iShotsFired*up_modifier;
		flKickLateral = lateral_base + m_iShotsFired*lateral_modifier;
	}


	QAngle angle = pPlayer->GetPunchAngle();

	angle.x -= flKickUp;
	if ( angle.x < -1 * up_max )
		angle.x = -1 * up_max;
	
	if ( m_iDirection == 1 )
	{
		angle.y += flKickLateral;
		if (angle.y > lateral_max)
			angle.y = lateral_max;
	}
	else
	{
		angle.y -= flKickLateral;
		if ( angle.y < -1 * lateral_max )
			angle.y = -1 * lateral_max;
	}

	if ( !SHARED_RANDOMINT( 0, direction_change ) )
		m_iDirection = 1 - m_iDirection;

	pPlayer->SetPunchAngle( angle );
}
Exemplo n.º 22
0
//-----------------------------------------------------------------------------
// Purpose:
// Input  :
// Output :
//-----------------------------------------------------------------------------
bool CWeapon_SLAM::CanAttachSLAM( void )
{
	CCSPlayer *pOwner = ToCSPlayer( GetOwner() );

	if (!pOwner)
	{
		return false;
	}

	Vector vecSrc, vecAiming;

	// Take the eye position and direction
	vecSrc = pOwner->EyePosition();
	
	QAngle angles = pOwner->GetLocalAngles();

	AngleVectors( angles, &vecAiming );

	trace_t tr;

	Vector	vecEnd = vecSrc + (vecAiming * 42);
	UTIL_TraceLine( vecSrc, vecEnd, MASK_SOLID, pOwner, COLLISION_GROUP_NONE, &tr );
	
	if (tr.fraction < 1.0)
	{
		// Don't attach to a living creature
		if (tr.m_pEnt)
		{
			CBaseEntity *pEntity = tr.m_pEnt;
			CBaseCombatCharacter *pBCC		= ToBaseCombatCharacter( pEntity );
			if (pBCC)
			{
				return false;
			}
		}
		return true;
	}
	else
	{
		return false;
	}
}
Exemplo n.º 23
0
	bool operator()( CBasePlayer *player )
	{
		if ( !player->IsAlive() || player->GetTeamNumber() != m_team )
			return true;

		CCSPlayer *csPlayer = ToCSPlayer( player );
		if ( !csPlayer )
			return true;

		if ( csPlayer->IsBlind() )
			return true;

		Vector eye, forward;
		player->EyePositionAndVectors( &eye, &forward, NULL, NULL );
		Vector path( m_target - eye );
		float distance = path.Length();
		path.NormalizeInPlace();
		float dot = DotProduct( forward, path );
		if( (dot > 0.995f ) 
			|| (dot > 0.98f && distance < 900) 
			|| (dot > 0.8f && distance < 250) 
			)
		{
			trace_t tr;
			CTraceFilterSkipTwoEntities filter( player, m_targetEntity, COLLISION_GROUP_DEBRIS );
			UTIL_TraceLine( eye, m_target,
				(CONTENTS_OPAQUE|CONTENTS_SOLID|CONTENTS_MOVEABLE|CONTENTS_DEBRIS), &filter, &tr );

			if( tr.fraction == 1.0f )
			{
				//if ( TheCSBots()->IsLineBlockedBySmoke( eye, m_target ) )
				//{
				//	return true;
				//}

				m_spotted = true;
				return false; // spotted already, so no reason to check for other players spotting the same thing.
			}
		}

		return true;
	}
Exemplo n.º 24
0
void CC4::WeaponIdle()
{
	if ( m_bStartedArming )
	{
		m_bStartedArming = false; //if the player releases the attack button cancel the arming sequence

		CCSPlayer *pPlayer = GetPlayerOwner();
		if ( !pPlayer )
			return;

		#if !defined( CLIENT_DLL )
			// release the player from being frozen
			pPlayer->ResetMaxSpeed();

			m_flNextPrimaryAttack = gpGlobals->curtime + 1.0;

			pPlayer->SetProgressBarTime( 0 );

			IGameEvent * event = gameeventmanager->CreateEvent( "bomb_abortplant" );
			if( event )
			{
				event->SetInt("userid", pPlayer->GetUserID() );
				event->SetInt("site", pPlayer->m_iBombSiteIndex );
				event->SetInt( "priority", 8 );
				gameeventmanager->FireEvent( event );
			}

		#endif 

		// TODO: make this use SendWeaponAnim and activities when the C4 has the activities hooked up.
		if ( pPlayer )
		{
			SendWeaponAnim( ACT_VM_IDLE );
			pPlayer->SetNextAttack( gpGlobals->curtime );
		}

		if(m_bBombPlacedAnimation == true) //this means the placement animation is canceled
			SendWeaponAnim( ACT_VM_DRAW );
		else
			SendWeaponAnim( ACT_VM_IDLE );
	}
}
Exemplo n.º 25
0
void CWeaponM4A1::PrimaryAttack()
{
	CCSPlayer *pPlayer = GetPlayerOwner();

	if ( !FBitSet( pPlayer->GetFlags(), FL_ONGROUND ) )
	{
		M4A1Fire( 0.035 + (0.4) * (m_flAccuracy), 0.0875 );
	}
	else if (pPlayer->GetAbsVelocity().Length2D() > 140)
	{
		M4A1Fire( 0.035 + (0.07) * (m_flAccuracy), 0.0875 );
	}
	else
	{
		if ( m_bSilencerOn )
			M4A1Fire( (0.025) * (m_flAccuracy), 0.0875 );
		else
			M4A1Fire( (0.02) * (m_flAccuracy), 0.0875 );
	}
}
Exemplo n.º 26
0
void CWeaponGalil::PrimaryAttack()
{
	CCSPlayer *pPlayer = GetPlayerOwner();
	if ( !pPlayer )
		return;

	// don't fire underwater
	if (pPlayer->GetWaterLevel() == 3)
	{
		PlayEmptySound( );
		m_flNextPrimaryAttack = gpGlobals->curtime + 0.15;
		return;
	}
	
	if ( !FBitSet( pPlayer->GetFlags(), FL_ONGROUND ) )
		GalilFire( 0.04f + 0.3f * m_flAccuracy );
	else if (pPlayer->GetAbsVelocity().Length2D() > 140)
		GalilFire( 0.04f + 0.07f * m_flAccuracy );
	else
		GalilFire( 0.0375f * m_flAccuracy );
}
Exemplo n.º 27
0
void CC4::UpdateShieldState( void )
{
	//ADRIANTODO
	CCSPlayer *pPlayer = GetPlayerOwner();
	if ( !pPlayer )
		return;
	
	if ( pPlayer->HasShield() )
	{
		pPlayer->SetShieldDrawnState( false );

		CBaseViewModel *pVM = pPlayer->GetViewModel( 1 );

		if ( pVM )
		{
			pVM->AddEffects( EF_NODRAW );
		}
			//pPlayer->SetHitBoxSet( 3 );
	}
	else
		BaseClass::UpdateShieldState();
}
Exemplo n.º 28
0
void CAK47::AK47Fire( float flSpread )
{
	if ( !CSBaseGunFire( flSpread, GetCSWpnData().m_flCycleTime, true ) )
		return;

	CCSPlayer *pPlayer = GetPlayerOwner();

	// CSBaseGunFire can kill us, forcing us to drop our weapon, if we shoot something that explodes
	if ( !pPlayer )
		return;

	if (pPlayer->GetAbsVelocity().Length2D() > 5 )
		pPlayer->KickBack ( 1.5, 0.45, 0.225, 0.05, 6.5, 2.5, 7 );
	else if ( !FBitSet( pPlayer->GetFlags(), FL_ONGROUND ) )
		pPlayer->KickBack ( 2, 1.0, 0.5, 0.35, 9, 6, 5 );
	else if ( FBitSet( pPlayer->GetFlags(), FL_DUCKING ) )
		pPlayer->KickBack ( 0.9, 0.35, 0.15, 0.025, 5.5, 1.5, 9 );
	else
		pPlayer->KickBack ( 1, 0.375, 0.175, 0.0375, 5.75, 1.75, 8 );
}
Exemplo n.º 29
0
void CWeaponGalil::GalilFire( float flSpread )
{
	if ( !CSBaseGunFire( flSpread, GetCSWpnData().m_flCycleTime, true ) )
		return;

	CCSPlayer *pPlayer = GetPlayerOwner();

	// CSBaseGunFire can kill us, forcing us to drop our weapon, if we shoot something that explodes
	if ( !pPlayer )
		return;

	if (pPlayer->GetAbsVelocity().Length2D() > 5)
		pPlayer->KickBack (1.0, 0.45, 0.28, 0.045, 3.75, 3, 7);
	else if ( !FBitSet( pPlayer->GetFlags(), FL_ONGROUND ) )
		pPlayer->KickBack (1.2, 0.5, 0.23, 0.15, 5.5, 3.5, 6);
	else if ( FBitSet( pPlayer->GetFlags(), FL_DUCKING ) )
		pPlayer->KickBack (0.6, 0.3, 0.2, 0.0125, 3.25, 2, 7);
	else
		pPlayer->KickBack (0.65, 0.35, 0.25, 0.015, 3.5, 2.25, 7);
}
Exemplo n.º 30
0
void CWeaponG3SG1::SecondaryAttack()
{
	#ifndef CLIENT_DLL
		CCSPlayer *pPlayer = GetPlayerOwner();

		if ( pPlayer->GetFOV() == 90 )
		{
			pPlayer->SetFOV( 40 );
		}
		else if (pPlayer->GetFOV() == 40)
		{
			pPlayer->SetFOV( 15 );
		}
		else if (pPlayer->GetFOV() == 15)
		{
			pPlayer->SetFOV( 90 );
		}

		pPlayer->ResetMaxSpeed();
		WeaponSound( SPECIAL3 ); // zoom sound
	#endif

	m_flNextSecondaryAttack = gpGlobals->curtime + 0.3;
}