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 );
	}

}
示例#2
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) );
	}

}
示例#3
0
void CAK47::PrimaryAttack()
{
    CCSPlayer *pPlayer = GetPlayerOwner();
    if ( !pPlayer )
        Error( "CAK47::PrimaryAttack - !pPlayer" );

    if ( !FBitSet( pPlayer->GetFlags(), FL_ONGROUND ) )
        AK47Fire( 0.04 + (0.4) * m_flAccuracy, 0.0955 );
    else if (pPlayer->GetAbsVelocity().Length2D() > 140)
        AK47Fire( 0.04 + (0.07) * m_flAccuracy, 0.0955 );
    else
        AK47Fire( (0.0275) * m_flAccuracy, 0.0955 );
}
void CAK47::PrimaryAttack()
{
	CCSPlayer *pPlayer = GetPlayerOwner();
	if ( !pPlayer )
		return;
	
	if ( !FBitSet( pPlayer->GetFlags(), FL_ONGROUND ) )
		AK47Fire( 0.04f + 0.4f * m_flAccuracy );
	else if (pPlayer->GetAbsVelocity().Length2D() > 140)
		AK47Fire( 0.04f + 0.07f * m_flAccuracy );
	else
		AK47Fire( 0.0275f * m_flAccuracy );
}
void CWeaponSG552::PrimaryAttack()
{
	CCSPlayer *pPlayer = GetPlayerOwner();

	if ( !FBitSet( pPlayer->GetFlags(), FL_ONGROUND ) )
		SG552Fire( 0.035 + (0.45) * (m_flAccuracy), 0.0825 );
	else if (pPlayer->GetAbsVelocity().Length2D() > 140)
		SG552Fire( 0.035 + (0.075) * (m_flAccuracy), 0.0825 );
	else if (pPlayer->GetFOV() == 90)
		SG552Fire( (0.02) * (m_flAccuracy), 0.0825 );
	else
		SG552Fire( (0.02) * (m_flAccuracy), 0.135 );
}
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);
}
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);
}
示例#8
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 );
}
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 );
}
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 );
}
示例#11
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));
}
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 );
}
示例#13
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 );
}
示例#14
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);
}
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 );
	}
}
示例#16
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 );
}