diff --git a/addons/ballistics/CfgAmmo.hpp b/addons/ballistics/CfgAmmo.hpp
index 620484950d..cea249cb4f 100644
--- a/addons/ballistics/CfgAmmo.hpp
+++ b/addons/ballistics/CfgAmmo.hpp
@@ -90,7 +90,8 @@ class CfgAmmo {
ACE_muzzleVelocities[]={780, 880, 920};
ACE_barrelLengths[]={10, 16.3, 20};
};
- class ACE_545x39_Ball_7T3M : B_556x45_Ball_Tracer_Red {
+ class B_556x45_Ball_Tracer_Yellow;
+ class ACE_545x39_Ball_7T3M : B_556x45_Ball_Tracer_Yellow {
airFriction=-0.001162;
caliber=0.5;
deflecting=18;
@@ -122,9 +123,24 @@ class CfgAmmo {
ACE_barrelLengths[]={10, 16, 20, 24, 26, 30};
};
class B_65x39_Case_yellow;
- class ACE_B_65x39_Caseless_Tracer_Dim : B_65x39_Case_yellow {
+ class ACE_65x39_Caseless_Tracer_Dim : B_65x39_Case_yellow {
nvgOnly = 1;
};
+ class ACE_65x47_Ball_Scenar: B_65x39_Caseless
+ {
+ airFriction=-0.00078;
+ typicalSpeed=820 ;
+ ACE_caliber=0.264;
+ ACE_bulletLength=1.364;
+ ACE_bulletMass=139;
+ ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
+ ACE_ballisticCoefficients[]={0.290};
+ ACE_velocityBoundaries[]={};
+ ACE_standardAtmosphere="ICAO";
+ ACE_dragModel=7;
+ ACE_muzzleVelocities[]={760, 790, 820, 830};
+ ACE_barrelLengths[]={16, 20, 24, 26};
+ };
class B_762x51_Ball : BulletBase {
airFriction=-0.001035;
typicalSpeed=833;
@@ -140,8 +156,8 @@ class CfgAmmo {
ACE_muzzleVelocities[]={700, 800, 820, 833, 845};
ACE_barrelLengths[]={10, 16, 20, 24, 26};
};
- class B_762x51_Tracer_Red;
- class ACE_B_762x51_Tracer_Dim: B_762x51_Tracer_Red {
+ class B_762x51_Tracer_Yellow;
+ class ACE_B_762x51_Tracer_Dim: B_762x51_Tracer_Yellow {
nvgOnly = 1;
};
class ACE_762x51_Ball_M118LR : B_762x51_Ball {
@@ -160,6 +176,57 @@ class CfgAmmo {
ACE_muzzleVelocities[]={750, 780, 790, 794};
ACE_barrelLengths[]={16, 20, 24, 26};
};
+ class ACE_762x67_Ball_Mk248_Mod_0 : B_762x51_Ball
+ {
+ airFriction=-0.000830;
+ caliber=1.08;
+ hit=17;
+ typicalSpeed=900;
+ ACE_caliber=0.308;
+ ACE_bulletLength=1.353;
+ ACE_bulletMass=190;
+ ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
+ ACE_ballisticCoefficients[]={0.268};
+ ACE_velocityBoundaries[]={};
+ ACE_standardAtmosphere="ICAO";
+ ACE_dragModel=7;
+ ACE_muzzleVelocities[]={865, 900, 924};
+ ACE_barrelLengths[]={20, 24, 26};
+ };
+ class ACE_762x67_Ball_Mk248_Mod_1 : B_762x51_Ball
+ {
+ airFriction=-0.000815;
+ caliber=1.12;
+ hit=18;
+ typicalSpeed=867;
+ ACE_caliber=0.308;
+ ACE_bulletLength=1.489;
+ ACE_bulletMass=220;
+ ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
+ ACE_ballisticCoefficients[]={0.310};
+ ACE_velocityBoundaries[]={};
+ ACE_standardAtmosphere="ICAO";
+ ACE_dragModel=7;
+ ACE_muzzleVelocities[]={847, 867, 877};
+ ACE_barrelLengths[]={20, 24, 26};
+ };
+ class ACE_762x67_Ball_Berger_Hybrid_OTM : B_762x51_Ball
+ {
+ airFriction=-0.00076;
+ caliber=1.15;
+ hit=19;
+ typicalSpeed=853;
+ ACE_caliber=0.308;
+ ACE_bulletLength=1.602;
+ ACE_bulletMass=230;
+ ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
+ ACE_ballisticCoefficients[]={0.368};
+ ACE_velocityBoundaries[]={};
+ ACE_standardAtmosphere="ICAO";
+ ACE_dragModel=7;
+ ACE_muzzleVelocities[]={800, 853, 884};
+ ACE_barrelLengths[]={20, 24, 26};
+ };
class ACE_762x51_Ball_Subsonic : B_762x51_Ball {
airFriction=-0.000535;
caliber=0.5;
@@ -204,7 +271,8 @@ class CfgAmmo {
ACE_muzzleVelocities[]={700, 800, 820, 833};
ACE_barrelLengths[]={16, 20, 24, 26};
};
- class ACE_762x54_Ball_7T2 : B_762x51_Tracer_Red {
+ class B_762x54_Tracer_Green;
+ class ACE_762x54_Ball_7T2 : B_762x54_Tracer_Green {
airFriction=-0.001023;
caliber=0.9;
hit=15;
@@ -251,7 +319,7 @@ class CfgAmmo {
ACE_muzzleVelocities[]={650, 716, 750};
ACE_barrelLengths[]={10, 16.3, 20};
};
- class ACE_762x39_Ball_57N231P : B_762x51_Tracer_Red {
+ class ACE_762x39_Ball_57N231P : B_762x51_Tracer_Yellow {
airFriction=-0.0015168;
hit=12;
typicalSpeed=716;
diff --git a/addons/ballistics/CfgMagazines.hpp b/addons/ballistics/CfgMagazines.hpp
index 6e6f5a11e8..f9e936dc04 100644
--- a/addons/ballistics/CfgMagazines.hpp
+++ b/addons/ballistics/CfgMagazines.hpp
@@ -11,22 +11,54 @@ class CfgMagazines {
class 100Rnd_65x39_caseless_mag_Tracer: 100Rnd_65x39_caseless_mag {
initSpeed = 760;
};
+ class ACE_100Rnd_65x39_caseless_mag_Tracer_Dim: 100Rnd_65x39_caseless_mag_Tracer {
+ author = "$STR_ACE_Common_ACETeam";
+ ammo = "ACE_65x39_Caseless_Tracer_Dim";
+ displayName = "$STR_ACE_100Rnd_65x39_caseless_mag_Tracer_DimName";
+ displayNameShort = "$STR_ACE_100Rnd_65x39_caseless_mag_Tracer_DimNameShort";
+ descriptionShort = "$STR_ACE_100Rnd_65x39_caseless_mag_Tracer_DimDescription";
+ picture = "\A3\weapons_f\data\ui\m_100rnd_65x39_yellow_ca.paa";
+ };
class 200Rnd_65x39_cased_Box: 100Rnd_65x39_caseless_mag {
initSpeed = 760;
};
+ class ACE_200Rnd_65x39_cased_Box_Tracer_Dim: 200Rnd_65x39_cased_Box {
+ author = "$STR_ACE_Common_ACETeam";
+ ammo = "ACE_65x39_Caseless_Tracer_Dim";
+ displayName = "$STR_ACE_200Rnd_65x39_cased_Box_Tracer_DimName";
+ displayNameShort = "$STR_ACE_200Rnd_65x39_cased_Box_Tracer_DimNameShort";
+ descriptionShort = "$STR_ACE_200Rnd_65x39_cased_Box_Tracer_DimDescription";
+ picture = "\A3\weapons_f\data\ui\m_200rnd_65x39_yellow_ca.paa";
+ };
class 30Rnd_65x39_caseless_mag_Tracer: 30Rnd_65x39_caseless_mag {
};
class ACE_30Rnd_65x39_caseless_mag_Tracer_Dim: 30Rnd_65x39_caseless_mag_Tracer {
author = "$STR_ACE_Common_ACETeam";
- ammo = "ACE_B_65x39_Caseless_Tracer_Dim";
+ ammo = "ACE_65x39_Caseless_Tracer_Dim";
displayName = "$STR_ACE_30Rnd_65x39_caseless_mag_Tracer_DimName";
displayNameShort = "$STR_ACE_30Rnd_65x39_caseless_mag_Tracer_DimNameShort";
descriptionShort = "$STR_ACE_30Rnd_65x39_caseless_mag_Tracer_DimDescription";
- picture = "\A3\weapons_f\data\ui\m_30stanag_caseless_yellow_CA.paa";
+ picture = "\A3\weapons_f\data\ui\m_30stanag_caseless_yellow_ca.paa";
};
class 30Rnd_556x45_Stanag: CA_Magazine {
};
+ class ACE_30Rnd_556x45_Stanag_Mk262_mag: 30Rnd_556x45_Stanag {
+ author = "$STR_ACE_Common_ACETeam";
+ ammo = "ACE_556x45_Ball_Mk262";
+ displayName = "$STR_ACE_30Rnd_556x45_Stanag_Mk262_mag_Name";
+ displayNameShort = "$STR_ACE_30Rnd_556x45_Stanag_Mk262_mag_NameShort";
+ descriptionShort = "$STR_ACE_30Rnd_556x45_Stanag_Mk262_mag_Description";
+ initSpeed = 832;
+ };
+ class ACE_30Rnd_556x45_Stanag_Mk318_mag: 30Rnd_556x45_Stanag {
+ author = "$STR_ACE_Common_ACETeam";
+ ammo = "ACE_556x45_Ball_Mk318";
+ displayName = "$STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_Name";
+ displayNameShort = "$STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_NameShort";
+ descriptionShort = "$STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_Description";
+ initSpeed = 922;
+ };
class 30Rnd_556x45_Stanag_Tracer_Red: 30Rnd_556x45_Stanag {
};
class ACE_30Rnd_556x45_Stanag_Tracer_Dim: 30Rnd_556x45_Stanag_Tracer_Red {
@@ -35,7 +67,7 @@ class CfgMagazines {
displayName = "$STR_ACE_30Rnd_556x45_mag_Tracer_DimName";
displayNameShort = "$STR_ACE_30Rnd_556x45_mag_Tracer_DimNameShort";
descriptionShort = "$STR_ACE_30Rnd_556x45_mag_Tracer_DimDescription";
- picture = "\A3\weapons_f\data\ui\m_30stanag_yellow_ca.paa";
+ picture = "\A3\weapons_f\data\ui\m_20stanag_red_ca.paa";
};
class 20Rnd_762x51_Mag: CA_Magazine {
@@ -50,7 +82,7 @@ class CfgMagazines {
class 150Rnd_762x51_Box_Tracer: 150Rnd_762x51_Box {
initSpeed = 833;
};
- class ACE_20Rnd_762x51_Mag_Tracer: 20Rnd_762x51_Mag { //@todo Green tracers for opfor and yellow tracers for independent
+ class ACE_20Rnd_762x51_Mag_Tracer: 20Rnd_762x51_Mag {
author = "$STR_ACE_Common_ACETeam";
ammo = "B_762x51_Tracer_Red";
displayName = "$STR_ACE_20Rnd_762x51_mag_TracerName";
@@ -76,6 +108,61 @@ class CfgMagazines {
initSpeed = 325;
};
+ class ACE_10Rnd_762x51_M118LR_Mag: 10Rnd_762x51_Mag
+ {
+ author = "$STR_ACE_Common_ACETeam";
+ ammo = "ACE_762x51_Ball_M118LR";
+ count=10;
+ displayName = "$STR_ACE_10Rnd_762x51_M118LR_Mag_Name";
+ displayNameShort = "$STR_ACE_10Rnd_762x51_M118LR_Mag_NameShort";
+ descriptionShort = "$STR_ACE_10Rnd_762x51_M118LR_Mag_Description";
+ initSpeed = 780;
+ };
+ class ACE_20Rnd_762x51_M118LR_Mag: 20Rnd_762x51_Mag
+ {
+ author = "$STR_ACE_Common_ACETeam";
+ ammo = "ACE_762x51_Ball_M118LR";
+ displayName = "$STR_ACE_20Rnd_762x51_M118LR_Mag_Name";
+ displayNameShort = "$STR_ACE_20Rnd_762x51_M118LR_Mag_NameShort";
+ descriptionShort = "$STR_ACE_20Rnd_762x51_M118LR_Mag_Description";
+ initSpeed = 780;
+ };
+ class ACE_20Rnd_762x67_Mk248_Mod_0_Mag: 20Rnd_762x51_Mag
+ {
+ author = "$STR_ACE_Common_ACETeam";
+ ammo = "ACE_762x67_Ball_Mk248_Mod_0";
+ displayName = "$STR_ACE_20Rnd_762x67_Mk248_Mod_0_Mag_Name";
+ displayNameShort = "$STR_ACE_20Rnd_762x67_Mk248_Mod_0_Mag_NameShort";
+ descriptionShort = "$STR_ACE_20Rnd_762x67_Mk248_Mod_0_Mag_Description";
+ initSpeed = 865;
+ };
+ class ACE_20Rnd_762x67_Mk248_Mod_1_Mag: 20Rnd_762x51_Mag
+ {
+ author = "$STR_ACE_Common_ACETeam";
+ ammo = "ACE_762x67_Ball_Mk248_Mod_1";
+ displayName = "$STR_ACE_20Rnd_762x67_Mk248_Mod_1_Mag_Name";
+ displayNameShort = "$STR_ACE_20Rnd_762x67_Mk248_Mod_1_Mag_NameShort";
+ descriptionShort = "$STR_ACE_20Rnd_762x67_Mk248_Mod_1_Mag_Description";
+ initSpeed = 847;
+ };
+ class ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag: 20Rnd_762x51_Mag
+ {
+ author = "$STR_ACE_Common_ACETeam";
+ ammo = "ACE_762x67_Ball_Berger_Hybrid_OTM";
+ displayName = "$STR_ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag_Name";
+ displayNameShort = "$STR_ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag_NameShort";
+ descriptionShort = "$STR_ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag_Description";
+ initSpeed = 800;
+ };
+ class ACE_30Rnd_65x47_Scenar_mag: 30Rnd_65x39_caseless_mag
+ {
+ author = "$STR_ACE_Common_ACETeam";
+ ammo = "ACE_65x47_Ball_Scenar";
+ count=30;
+ displayName = "30rnd 6.5mm Mag (HPBT Scenar)";
+ descriptionshort = "Caliber: 65x47 mm (HPBT Scenar)
Rounds: 30
Used in: MXM";
+ };
+
class 30Rnd_9x21_Mag: CA_Magazine {
initSpeed = 450;
};
@@ -123,6 +210,14 @@ class CfgMagazines {
class 10Rnd_762x54_Mag: 10Rnd_762x51_Mag {
initSpeed = 800;
};
+ class ACE_10Rnd_762x54_Tracer_mag: 16Rnd_9x21_Mag {
+ author = "$STR_ACE_Common_ACETeam";
+ ammo = "ACE_762x54_Ball_7T2";
+ displayName = "$STR_ACE_10Rnd_762x54_Tracer_mag_Name";
+ displayNameShort = "$STR_ACE_10Rnd_762x54_Tracer_mag_NameShort";
+ descriptionShort = "$STR_ACE_10Rnd_762x54_Tracer_mag_Description";
+ initSpeed = 800;
+ };
class 150Rnd_762x54_Box: 150Rnd_762x51_Box {
initSpeed = 750;
diff --git a/addons/ballistics/CfgVehicles.hpp b/addons/ballistics/CfgVehicles.hpp
index efd2132d95..e114bef671 100644
--- a/addons/ballistics/CfgVehicles.hpp
+++ b/addons/ballistics/CfgVehicles.hpp
@@ -9,4 +9,154 @@ class CfgVehicles {
//hitPart = "systemChat str _this";
};
};
+
+ class NATO_Box_Base;
+ class Box_NATO_Wps_F: NATO_Box_Base {
+ class TransportMagazines {
+ MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4);
+ };
+ };
+
+ class Box_NATO_WpsSpecial_F: NATO_Box_Base {
+ class TransportMagazines {
+ MACRO_ADDMAGAZINE(ACE_30Rnd_65x39_caseless_mag_Tracer_Dim,4);
+ MACRO_ADDMAGAZINE(ACE_100Rnd_65x39_caseless_mag_Tracer_Dim,4);
+ MACRO_ADDMAGAZINE(ACE_200Rnd_65x39_cased_Box_Tracer_Dim,4);
+ MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Tracer_Dim,1);
+ };
+ };
+
+ class Box_NATO_Ammo_F: NATO_Box_Base {
+ class TransportMagazines {
+ MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4);
+ MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_M118LR_Mag,4);
+ MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_M118LR_Mag,4);
+ MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4);
+ };
+ };
+
+ class Box_NATO_Support_F: NATO_Box_Base {
+ class TransportMagazines {
+ MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_M118LR_Mag,4);
+ MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_M118LR_Mag,6);
+ MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4);
+ MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_SD,3);
+ };
+ };
+
+ class ReammoBox_F;
+ class B_supplyCrate_F: ReammoBox_F {
+ class TransportMagazines {
+ MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4);
+ MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_M118LR_Mag,4);
+ MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_M118LR_Mag,4);
+ MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4);
+ };
+ };
+
+ class EAST_Box_Base;
+ class Box_East_Wps_F: EAST_Box_Base {
+ class TransportMagazines {
+ MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4);
+ MACRO_ADDMAGAZINE(ACE_10Rnd_762x54_Tracer_mag,4);
+ };
+ };
+
+ class Box_East_WpsSpecial_F: EAST_Box_Base {
+ class TransportMagazines {
+ MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Tracer_Dim,1);
+ MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4);
+ MACRO_ADDMAGAZINE(ACE_10Rnd_762x54_Tracer_mag,4);
+ };
+ };
+
+ class Box_East_Ammo_F: EAST_Box_Base {
+ class TransportMagazines {
+ MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4);
+ MACRO_ADDMAGAZINE(ACE_10Rnd_762x54_Tracer_mag,4);
+ };
+ };
+
+ class Box_East_Support_F: EAST_Box_Base {
+ class TransportMagazines {
+ MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,6);
+ MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_SD,3);
+ MACRO_ADDMAGAZINE(ACE_10Rnd_762x54_Tracer_mag,4);
+ };
+ };
+
+ class IND_Box_Base;
+ class Box_IND_Wps_F: IND_Box_Base {
+ class TransportMagazines {
+ MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk262_mag,4);
+ MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk318_mag,4);
+ };
+ };
+
+ class Box_IND_WpsSpecial_F: IND_Box_Base {
+ class TransportMagazines {
+ MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Tracer_Dim,4);
+ };
+ };
+
+ class Box_IND_Ammo_F: IND_Box_Base {
+ class TransportMagazines {
+ MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk262_mag,4);
+ MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk318_mag,4);
+ };
+ };
+
+ class FIA_Box_Base_F;
+ class Box_FIA_Wps_F: FIA_Box_Base_F {
+ class TransportMagazines {
+ MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk262_mag,4);
+ MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk318_mag,4);
+ };
+ };
+
+ class Box_FIA_Ammo_F: FIA_Box_Base_F {
+ class TransportMagazines {
+ MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk262_mag,4);
+ MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk318_mag,4);
+ };
+ };
+
+ class I_supplyCrate_F: B_supplyCrate_F {
+ class TransportMagazines {
+ MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk262_mag,4);
+ MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk318_mag,4);
+ };
+ };
+
+ class IG_supplyCrate_F: ReammoBox_F {
+ class TransportMagazines {
+ MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk262_mag,4);
+ MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk318_mag,4);
+ };
+ };
+
+ class C_supplyCrate_F: ReammoBox_F {
+ class TransportMagazines {
+ MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4);
+ };
+ };
+
+ class ACE_Box_Misc: Box_NATO_Support_F {
+ class TransportMagazines {
+ MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_SD,4);
+ MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_M118LR_Mag,4);
+ MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4);
+ MACRO_ADDMAGAZINE(ACE_20Rnd_762x67_Mk248_Mod_0_Mag,4);
+ MACRO_ADDMAGAZINE(ACE_20Rnd_762x67_Mk248_Mod_1_Mag,4);
+ MACRO_ADDMAGAZINE(ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag,4);
+ MACRO_ADDMAGAZINE(ACE_10Rnd_762x54_Tracer_mag,4);
+ MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk262_mag,4);
+ MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk318_mag,4);
+ MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Tracer_Dim,4);
+ MACRO_ADDMAGAZINE(ACE_30Rnd_65x39_caseless_mag_Tracer_Dim,4);
+ MACRO_ADDMAGAZINE(ACE_100Rnd_65x39_caseless_mag_Tracer_Dim,4);
+ MACRO_ADDMAGAZINE(ACE_200Rnd_65x39_cased_Box_Tracer_Dim,4);
+ MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4);
+ };
+ };
};
diff --git a/addons/ballistics/CfgWeapons.hpp b/addons/ballistics/CfgWeapons.hpp
index 513829130f..7944215c29 100644
--- a/addons/ballistics/CfgWeapons.hpp
+++ b/addons/ballistics/CfgWeapons.hpp
@@ -56,6 +56,14 @@ class CfgWeapons {
};
};
class arifle_MX_SW_F: arifle_MX_Base_F {
+ magazines[] = {
+ "100Rnd_65x39_caseless_mag_Tracer",
+ "100Rnd_65x39_caseless_mag",
+ "30Rnd_65x39_caseless_mag",
+ "30Rnd_65x39_caseless_mag_Tracer",
+ "ACE_100Rnd_65x39_caseless_mag_Tracer_Dim",
+ "ACE_30Rnd_65x39_caseless_mag_Tracer_Dim"
+ };
initSpeed = -1.0;
ACE_barrelTwist=9;
ACE_barrelLength=16.0;
@@ -76,6 +84,12 @@ class CfgWeapons {
};
};
class arifle_MXM_F: arifle_MX_Base_F {
+ magazines[] = {
+ "30Rnd_65x39_caseless_mag",
+ "30Rnd_65x39_caseless_mag_Tracer",
+ "ACE_30Rnd_65x39_caseless_mag_Tracer_Dim",
+ "ACE_30Rnd_65x47_Scenar_mag"
+ };
initSpeed = -1.018;
ACE_barrelTwist=9;
ACE_barrelLength=18;
@@ -111,6 +125,11 @@ class CfgWeapons {
/* Other */
class LMG_Mk200_F: Rifle_Long_Base_F {
+ magazines[] = {
+ "200Rnd_65x39_cased_Box",
+ "200Rnd_65x39_cased_Box_Tracer",
+ "ACE_200Rnd_65x39_cased_Box_Tracer_Dim"
+ };
initSpeed = -0.9763;
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
@@ -180,7 +199,7 @@ class CfgWeapons {
/* SMGs */
class SDAR_base_F: Rifle_Base_F {
- initSpeed = -0.9723;
+ initSpeed = -0.989;
class Single: Mode_SemiAuto {
dispersion = 0.0008727; // radians. Equal to 3 MOA, about the limit of mass-produced M855 plus
// some extra because Kel-Tec.
@@ -284,26 +303,51 @@ class CfgWeapons {
ACE_barrelLength=7;
};
class arifle_Katiba_F: arifle_katiba_Base_F {
- initSpeed = -1.09;
+ magazines[] = {
+ "30Rnd_65x39_caseless_mag",
+ "30Rnd_65x39_caseless_mag_Tracer",
+ "ACE_30Rnd_65x39_caseless_mag_Tracer_Dim"
+ };
+ initSpeed = -1.08;
ACE_barrelTwist=8;
ACE_barrelLength=28.7;
};
class arifle_Katiba_C_F: arifle_katiba_Base_F {
+ magazines[] = {
+ "30Rnd_65x39_caseless_mag",
+ "30Rnd_65x39_caseless_mag_Tracer",
+ "ACE_30Rnd_65x39_caseless_mag_Tracer_Dim"
+ };
initSpeed = -1.07;
ACE_barrelTwist=8;
ACE_barrelLength=26.8;
};
class arifle_Katiba_GL_F: arifle_katiba_Base_F {
- initSpeed = -1.09;
+ magazines[] = {
+ "30Rnd_65x39_caseless_mag",
+ "30Rnd_65x39_caseless_mag_Tracer",
+ "ACE_30Rnd_65x39_caseless_mag_Tracer_Dim"
+ };
+ initSpeed = -1.08;
ACE_barrelTwist=8;
ACE_barrelLength=28.7;
};
class arifle_MX_F: arifle_MX_Base_F {
+ magazines[] = {
+ "30Rnd_65x39_caseless_mag",
+ "30Rnd_65x39_caseless_mag_Tracer",
+ "ACE_30Rnd_65x39_caseless_mag_Tracer_Dim"
+ };
initSpeed = -0.99;
ACE_barrelTwist=9;
ACE_barrelLength=14.5;
};
class arifle_MX_GL_F: arifle_MX_Base_F {
+ magazines[] = {
+ "30Rnd_65x39_caseless_mag",
+ "30Rnd_65x39_caseless_mag_Tracer",
+ "ACE_30Rnd_65x39_caseless_mag_Tracer_Dim"
+ };
initSpeed = -0.99;
ACE_barrelTwist=9;
ACE_barrelLength=14.5;
@@ -315,6 +359,11 @@ class CfgWeapons {
};
*/
class arifle_MXC_F: arifle_MX_Base_F {
+ magazines[] = {
+ "30Rnd_65x39_caseless_mag",
+ "30Rnd_65x39_caseless_mag_Tracer",
+ "ACE_30Rnd_65x39_caseless_mag_Tracer_Dim"
+ };
initSpeed = -0.965;
ACE_barrelTwist=8;
ACE_barrelLength=10.5;
@@ -326,7 +375,17 @@ class CfgWeapons {
};
*/
class arifle_SDAR_F: SDAR_base_F {
- initSpeed = -0.9723;
+ magazines[] = {
+ "20Rnd_556x45_UW_mag",
+ "30Rnd_556x45_Stanag",
+ "30Rnd_556x45_Stanag_Tracer_Red",
+ "30Rnd_556x45_Stanag_Tracer_Green",
+ "30Rnd_556x45_Stanag_Tracer_Yellow",
+ "ACE_30Rnd_556x45_Stanag_Mk262_mag",
+ "ACE_30Rnd_556x45_Stanag_Mk318_mag",
+ "ACE_30Rnd_556x45_Stanag_Tracer_Dim"
+ };
+ initSpeed = -0.989;
ACE_barrelTwist=11.25;
ACE_barrelLength=18;
};
@@ -336,16 +395,43 @@ class CfgWeapons {
ACE_barrelLength=7.7;
};
class arifle_TRG20_F: Tavor_base_F {
+ magazines[] = {
+ "30Rnd_556x45_Stanag",
+ "30Rnd_556x45_Stanag_Tracer_Red",
+ "30Rnd_556x45_Stanag_Tracer_Green",
+ "30Rnd_556x45_Stanag_Tracer_Yellow",
+ "ACE_30Rnd_556x45_Stanag_Mk262_mag",
+ "ACE_30Rnd_556x45_Stanag_Mk318_mag",
+ "ACE_30Rnd_556x45_Stanag_Tracer_Dim"
+ };
initSpeed = -0.95;
ACE_barrelTwist=7;
ACE_barrelLength=15;
};
class arifle_TRG21_F: Tavor_base_F {
+ magazines[] = {
+ "30Rnd_556x45_Stanag",
+ "30Rnd_556x45_Stanag_Tracer_Red",
+ "30Rnd_556x45_Stanag_Tracer_Green",
+ "30Rnd_556x45_Stanag_Tracer_Yellow",
+ "ACE_30Rnd_556x45_Stanag_Mk262_mag",
+ "ACE_30Rnd_556x45_Stanag_Mk318_mag",
+ "ACE_30Rnd_556x45_Stanag_Tracer_Dim"
+ };
initSpeed = -0.989;
ACE_barrelTwist=7;
ACE_barrelLength=18.1;
};
class arifle_TRG21_GL_F: Tavor_base_F {
+ magazines[] = {
+ "30Rnd_556x45_Stanag",
+ "30Rnd_556x45_Stanag_Tracer_Red",
+ "30Rnd_556x45_Stanag_Tracer_Green",
+ "30Rnd_556x45_Stanag_Tracer_Yellow",
+ "ACE_30Rnd_556x45_Stanag_Mk262_mag",
+ "ACE_30Rnd_556x45_Stanag_Mk318_mag",
+ "ACE_30Rnd_556x45_Stanag_Tracer_Dim"
+ };
initSpeed = -0.989;
ACE_barrelTwist=7;
ACE_barrelLength=18.1;
@@ -357,16 +443,43 @@ class CfgWeapons {
};
*/
class arifle_Mk20_F: mk20_base_F {
+ magazines[] = {
+ "30Rnd_556x45_Stanag",
+ "30Rnd_556x45_Stanag_Tracer_Red",
+ "30Rnd_556x45_Stanag_Tracer_Green",
+ "30Rnd_556x45_Stanag_Tracer_Yellow",
+ "ACE_30Rnd_556x45_Stanag_Mk262_mag",
+ "ACE_30Rnd_556x45_Stanag_Mk318_mag",
+ "ACE_30Rnd_556x45_Stanag_Tracer_Dim"
+ };
initSpeed = -0.98;
ACE_barrelTwist=7;
ACE_barrelLength=17.4;
};
class arifle_Mk20C_F: mk20_base_F {
+ magazines[] = {
+ "30Rnd_556x45_Stanag",
+ "30Rnd_556x45_Stanag_Tracer_Red",
+ "30Rnd_556x45_Stanag_Tracer_Green",
+ "30Rnd_556x45_Stanag_Tracer_Yellow",
+ "ACE_30Rnd_556x45_Stanag_Mk262_mag",
+ "ACE_30Rnd_556x45_Stanag_Mk318_mag",
+ "ACE_30Rnd_556x45_Stanag_Tracer_Dim"
+ };
initSpeed = -0.956;
ACE_barrelTwist=7;
ACE_barrelLength=16;
};
class arifle_Mk20_GL_F: mk20_base_F {
+ magazines[] = {
+ "30Rnd_556x45_Stanag",
+ "30Rnd_556x45_Stanag_Tracer_Red",
+ "30Rnd_556x45_Stanag_Tracer_Green",
+ "30Rnd_556x45_Stanag_Tracer_Yellow",
+ "ACE_30Rnd_556x45_Stanag_Mk262_mag",
+ "ACE_30Rnd_556x45_Stanag_Mk318_mag",
+ "ACE_30Rnd_556x45_Stanag_Tracer_Dim"
+ };
initSpeed = -0.956;
ACE_barrelTwist=7;
ACE_barrelLength=16;
@@ -377,11 +490,21 @@ class CfgWeapons {
ACE_barrelLength=5.5;
};
class srifle_DMR_01_F: DMR_01_base_F {
+ magazines[] = {
+ "10Rnd_762x54_Mag",
+ "ACE_10Rnd_762x54_Tracer_mag"
+ };
initSpeed = -1.025;
ACE_barrelTwist=9.5;
ACE_barrelLength=24;
};
class srifle_EBR_F: EBR_base_F {
+ magazines[] = {
+ "20Rnd_762x51_Mag",
+ "ACE_20Rnd_762x51_Mag_Tracer_Dim",
+ "ACE_20Rnd_762x51_M118LR_Mag",
+ "ACE_20Rnd_762x51_Mag_SD"
+ };
initSpeed = -0.9724;
ACE_barrelTwist=12;
ACE_barrelLength=18;
@@ -409,6 +532,12 @@ class CfgWeapons {
ACE_barrelLength=26;
};
class srifle_DMR_03_F: DMR_03_base_F {
+ magazines[] = {
+ "20Rnd_762x51_Mag",
+ "ACE_20Rnd_762x51_Mag_Tracer_Dim",
+ "ACE_20Rnd_762x51_M118LR_Mag",
+ "ACE_20Rnd_762x51_Mag_SD"
+ };
initSpeed = -0.9843;
ACE_barrelTwist=10;
ACE_barrelLength=20;
@@ -424,6 +553,12 @@ class CfgWeapons {
ACE_barrelLength=24.41;
};
class srifle_DMR_06_camo_F: DMR_06_base_F {
+ magazines[] = {
+ "20Rnd_762x51_Mag",
+ "ACE_20Rnd_762x51_Mag_Tracer_Dim",
+ "ACE_20Rnd_762x51_M118LR_Mag",
+ "ACE_20Rnd_762x51_Mag_SD"
+ };
initSpeed = -0.9916;
ACE_barrelTwist=12;
ACE_barrelLength=22;
diff --git a/addons/ballistics/stringtable.xml b/addons/ballistics/stringtable.xml
index 261a6a8ea1..721e561f83 100644
--- a/addons/ballistics/stringtable.xml
+++ b/addons/ballistics/stringtable.xml
@@ -257,42 +257,6 @@
Calibro: 5.56x45 mm Traccianti IR-DIM<br />Munizioni: 30<br />In uso su: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR
Калибр: 5.56x45 мм трассирующие под ПНВ<br />Патронов: 30<br />Применимы в: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR
-
- 5.56mm 30Rnd SD Mag
- 5,56 mm Hangtompítós 30-as Tár
- 5,56 mm 30-Schuss-Magazin SD
- Cargador de 30 balas SD de 5,56 mm
- Ch. 5,56mm 30Cps SD
- Magazynek 5,56mm 30rd SD
- 5.56mm 30ks SD Zásobník
- Carregador de 30 projéteis SD de 5,56mm
- Caricatore 5.56mm 30Rnd Sil.
- Магазин из 30-ти 5.56 мм дозвуковых
-
-
- 5.56mm SD
- 5,56 mm Hangtompítós
- 5,56mm SD
- 5,56 mm SD
- 5,56mm SD
- 5,56mm SD
- 5.56mm SD
- 5,56mm SD
- 5.56 Sil.
- 5.56 мм дозвуковые
-
-
- Caliber: 5.56x45 mm SD<br />Rounds: 30<br />Used in: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR
- Kaliber: 5,56x45 mm Hangtompítós<br />Lőszerek: 30<br />Használható: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR
- Kaliber: 5,56x45 mm SD<br />Patronen: 30<br />Eingesetzt von: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR
- Calibre: 5,56x45 mm SD<br />Balas: 30<br />Se usa en: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR
- Calibre: 5.56x45 mm SD<br />Cartouches: 30<br />Utilisé dans: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR
- Kaliber: 5,56 x 45 mm SD<br />Pociski: 30<br />Używane w: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR
- Ráže: 5.56x45 mm SD<br />Munice: 30<br />Použití: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR
- Calibre: 5,56x45 mm SD<br />Projéteis: 30<br />Usado em: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR
- Calibro: 5.56x45 mm Sil.<br />Munizioni: 30<br />In uso su: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR
- Калибр: 5.56x45 мм дозвуковые<br />Патронов: 30<br />Применимы в: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR
-
5.56mm 30Rnd AP Mag
5,56 mm Páncéltörő 30-as Tár
@@ -474,52 +438,7 @@
Calibro: 7.62x51 mm AP<br />Munizioni: 20<br />In uso su: Mk18 ABR
Калибр: 7.62x51 мм дозвуковые<br />Патронов: 20<br />Применимы в: Mk18 ABR
-
- Caliber: 7.62x51mm M118LR<br />Rounds: 20<br />Type: M14
- Kaliber: 7,62x51 mm M118LR<br />Lőszerek: 20<br />Típus: M14
- Kaliber: 7,62x51mm M118LR<br />Schuss: 20<br />Typ: M14
- Calibre: 7,62x51mm M118LR<br />Balas: 20<br />Tipo: M14
- Kaliber: 7,62 x 51 mm M118LR<br />Pociski: 20<br />Typ: M14
- Kalibr: 7.62x51mm M118LR<br />Náboje: 20<br />Typ: M14
- Calibre : 7,62x51mm M118LR<br />Cartouches: 20<br />Type: M14
- Calibre: 7,62x51mm M118LR<br />Projéteis: 20<br />Tipo: M14
- Калибр: 7.62x51mm M118LR<br />Патронов: 20<br />Тип: M14
- Calibro: 7.62x51mm M118LR<br />Munizioni:20<br />In uso su: M14
-
-
- .338 LM 10Rnd Tracer Mag
- .338 LM 10-Schuss-Magazin Leuchtspur
- Magazynek .338 LM 10rd Smugacz
- .338 LM 10Rnd Svítící Zásobník
-
-
- .338 LM Tracer
- .338 LM Leuchtspur
- .338 LM Smugacz
- .338 LM Svítící
-
-
- Caliber: .338 Lapua Magnum Tracer<br />Rounds: 10<br />Used in: MAR-10
- Kaliber: .338 Lapua Magnum Leuchtspur<br />Schuss: 10<br />Verwendet für: MAR-10
- Kaliber: .338 Lapua Magnum Smugacz<br />Pociski: 10<br />Używane w: MAR-10
-
-
- .338 LM 10Rnd IR-DIM Mag
- .338 LM 10-Schuss-Magazin Leuchtspur IR-DIM
- Magazynek .338 LM 10rd IR-DIM
-
-
- .338 LM IR-DIM
- .338 LM IR-DIM
- .338 LM IR-DIM
- .338 LM IR-DIM
-
-
- Caliber: .338 Lapua Magnum Tracer IR-DIM<br />Rounds: 10<br />Used in: MAR-10
- Kaliber: .338 Lapua Magnum Leuchtspur IR-DIM<br />Schuss: 10<br />Verwendet für: MAR-10
- Kaliber: .338 Lapua Magnum Smugacz IR-DIM<br />Pociski: 10<br />Używane w: MAR-10
-
.338 LM 10Rnd AP Mag
.338 LM 10-Schuss-Magazin Hartkern
@@ -536,22 +455,6 @@
Kaliber: .338 Lapua Magnum Hartkern<br />Schuss: 10<br />Verwendet für: MAR-10
Kaliber: .338 Lapua Magnum AP<br />Pociski: 10<br />Używany w: MAR-10
-
- .338 LM 10Rnd SD Mag
- .338 LM 10-Schuss-Magazin Unterschall
- Magazynek .338 LM 10rd SD
-
-
- .338 LM SD
- .338 LM SD
- .338 LM SD
- .338 LM SD
-
-
- Caliber: .338 Lapua Magnum SD<br />Rounds: 10<br />Used in: MAR-10
- Kaliber: .338 Lapua Magnum Unterschall<br />Schuss: 10<br />Verwendet für: MAR-10
- Kaliber: .338 Lapua Magnum SD<br />Pociski: 10<br />Używany w: MAR-10
-
.338 NM 130Rnd Tracer Belt
@@ -650,22 +553,6 @@
Kaliber: 9,3x64mm Hartkern<br />Schuss: 10<br />Verwendet für: Cyrus
Kaliber: 9,3 x 64 mm AP<br />Pociski: 10<br />Używany w: Cyrus
-
- 9.3mm 10Rnd SD Mag
- 9,3mm 10-Schuss-Magazin Unterschall
- Magazynek 9,3mm 10rd SD
-
-
- 9.3mm SD
- 9,3mm SD
- 9,3mm SD
- 9.3mm SD
-
-
- Caliber: 9.3x64mm SD<br />Rounds: 10<br />Used in: Cyrus
- Kaliber: 9,3x64mm Unterschall<br />Schuss: 10<br />Verwendet für: Cyrus
- Kaliber: 9,3 x 64 mm SD<br />Pociski: 10<br />Używany w: Cyrus
-
9.3mm 150Rnd Tracer Belt
@@ -716,16 +603,112 @@
Kaliber: 9,3 x 64 mm AP<br />Pociski: 150<br />Używane w: Navid
+ 9x19mm 16Rnd Mag
+ 9x19mm
+ 9x19mm 16Rnd Mag
+ 9x19mm 30Rnd Mag
+ 9x19mm
+ 9x19mm 30Rnd Mag
+
+
+ 7.62x54mm 10Rnd Tracer IR-DIM Mag
+
+
+ 7.62mm IR-DIM
+
+
+ 7.62x54mm 10Rnd Tracer IR-DIM Mag
+
+
+ 6.5mm 100Rnd Tracer IR-DIM Mag
+
+
+ 6.5mm IR-DIM
+
+
+ 6.5mm 100Rnd Tracer IR-DIM Mag
+
+
+ 6.5mm 200Rnd Tracer IR-DIM Belt
+
+
+ 6.5mm IR-DIM
+
+
+ 6.5mm 200Rnd Tracer IR-DIM Belt
+
+
+ 5.56mm 30Rnd Mag (Mk262)
+
+
+ 5.56mm (Mk262)
+
+
+ Caliber: 5.56x45 mm NATO (Mk262)<br />Rounds: 30
+
+
+ 5.56mm 30Rnd Mag (Mk318)
+
+
+ 5.56mm (Mk318)
+
+
+ Caliber: 5.56x45 mm NATO (Mk318)<br />Rounds: 30
+
+
+ 7.62mm 10Rnd Mag (M118LR)
+
+
+ 7.62mm (M118LR)
+
+
+ Caliber: 7.62x51 mm NATO (M118LR)<br />Rounds: 10
+
+
+ 7.62mm 20Rnd Mag (M118LR)
+
+
+ 7.62mm (M118LR)
+
+
+ Caliber: 7.62x51 mm NATO (M118LR)<br />Rounds: 20
+
+
+ 7.62mm 20Rnd Mag (Mk248 Mod 0)
+
+
+ 7.62mm (Mk248 Mod 0)
+
+
+ Caliber: 7.62x67 mm NATO (Mk248 Mod 0)<br />Rounds: 20
+
+
+ 7.62mm 20Rnd Mag (Mk248 Mod 1)
+
+
+ 7.62mm (Mk248 Mod 1)
+
+
+ Caliber: 7.62x67 mm NATO (Mk248 Mod 1)<br />Rounds: 20
+
+
+ 7.62mm 20Rnd Mag (Berger Hybrid OTM)
+
+
+ 7.62mm (OTM)
+
+
+ Caliber: 7.62x67 mm NATO (Berger Hybrid OTM)<br />Rounds: 20
\ No newline at end of file
diff --git a/addons/common/config.cpp b/addons/common/config.cpp
index 90309af612..769ba37de1 100644
--- a/addons/common/config.cpp
+++ b/addons/common/config.cpp
@@ -69,9 +69,9 @@ class ACE_Settings {
* force = 0;
*
* Does it appear on the options menu?
- * isClientSetable = 1;
+ * isClientSettable = 1;
*
- * The following settings only apply when isClientSetable == 1
+ * The following settings only apply when isClientSettable == 1
* Stringtable entry with the setting name
* displayName = "$STR_ACE_Common_SettingName";
*
@@ -90,14 +90,14 @@ class ACE_Settings {
/*class GVAR(enableNumberHotkeys) {
value = 1;
typeName = "BOOL";
- isClientSetable = 1;
+ isClientSettable = 1;
displayName = "$STR_ACE_Common_EnableNumberHotkeys";
};*/
class GVAR(settingFeedbackIcons) {
value = 1;
typeName = "SCALAR";
force = 0;
- isClientSetable = 1;
+ isClientSettable = 1;
displayName = "$STR_ACE_Common_SettingFeedbackIconsName";
description = "$STR_ACE_Common_SettingFeedbackIconsDesc";
values[] = {"Hide", "Top right, downwards", "Top right, to the left", "Top left, downwards", "Top left, to the right"};
@@ -106,7 +106,7 @@ class ACE_Settings {
value = 0;
typeName = "SCALAR";
force = 0;
- isClientSetable = 1;
+ isClientSettable = 1;
displayName = "$STR_ACE_Common_SettingProgressbarLocationName";
description = "$STR_ACE_Common_SettingProgressbarLocationDesc";
values[] = {"Top", "Bottom"};
@@ -114,14 +114,14 @@ class ACE_Settings {
class GVAR(displayTextColor) {
value[] = {0,0,0,0.1};
typeName = "COLOR";
- isClientSetable = 1;
+ isClientSettable = 1;
displayName = "$STR_ACE_Common_SettingDisplayTextColorName";
description = "$STR_ACE_Common_SettingDisplayTextColorDesc";
};
class GVAR(displayTextFontColor) {
value[] = {1,1,1,1};
typeName = "COLOR";
- isClientSetable = 1;
+ isClientSettable = 1;
displayName = "$STR_ACE_Common_SettingDisplayTextFontColorName";
description = "$STR_ACE_Common_SettingDisplayTextFontColorDesc";
};
diff --git a/addons/common/functions/fnc_setSettingFromConfig.sqf b/addons/common/functions/fnc_setSettingFromConfig.sqf
index 9d93b9e62d..4d81ef3535 100644
--- a/addons/common/functions/fnc_setSettingFromConfig.sqf
+++ b/addons/common/functions/fnc_setSettingFromConfig.sqf
@@ -58,7 +58,7 @@ if (isNil _name) then {
/*_settingData = [
_name,
_typeName,
- _isClientSetable,
+ _isClientSettable,
_localizedName,
_localizedDescription,
_possibleValues,
@@ -68,7 +68,7 @@ if (isNil _name) then {
_settingData = [
_name,
_typeName,
- (getNumber (_optionEntry >> "isClientSetable")) > 0,
+ (getNumber (_optionEntry >> "isClientSettable")) > 0,
getText (_optionEntry >> "displayName"),
getText (_optionEntry >> "description"),
getArray (_optionEntry >> "values"),
diff --git a/addons/goggles/config.cpp b/addons/goggles/config.cpp
index efda9b5436..7e8afe4d3d 100644
--- a/addons/goggles/config.cpp
+++ b/addons/goggles/config.cpp
@@ -247,7 +247,7 @@ class ACE_Settings {
class GVAR(showInThirdPerson) {
value = 0;
typeName = "BOOL";
- isClientSetable = 1;
+ isClientSettable = 1;
displayName = "$STR_ACE_Goggles_ShowInThirdPerson";
};
};
diff --git a/addons/hearing/config.cpp b/addons/hearing/config.cpp
index 6aab92b9bf..0813d0648e 100644
--- a/addons/hearing/config.cpp
+++ b/addons/hearing/config.cpp
@@ -38,7 +38,7 @@ class ACE_Settings {
class GVAR(DisableEarRinging) {
value = 0;
typeName = "BOOL";
- isClientSetable = 1;
+ isClientSettable = 1;
displayName = "$STR_ACE_Hearing_DisableEarRinging";
};
};
diff --git a/addons/interact_menu/config.cpp b/addons/interact_menu/config.cpp
index 17900c2f6b..aaeb6db3e0 100644
--- a/addons/interact_menu/config.cpp
+++ b/addons/interact_menu/config.cpp
@@ -20,7 +20,7 @@ class ACE_Settings {
class GVAR(AlwaysUseCursorSelfInteraction) {
value = 0;
typeName = "BOOL";
- isClientSetable = 1;
+ isClientSettable = 1;
displayName = "$STR_ACE_Interact_Menu_AlwaysUseCursorSelfInteraction";
};
};
diff --git a/addons/inventory/config.cpp b/addons/inventory/config.cpp
index c7b6649be6..1268f8b886 100644
--- a/addons/inventory/config.cpp
+++ b/addons/inventory/config.cpp
@@ -18,7 +18,7 @@ class ACE_Settings {
class GVAR(inventoryDisplaySize) {
value = 0;
typeName = "SCALAR";
- isClientSetable = 1;
+ isClientSettable = 1;
displayName = "$STR_ACE_Inventory_SettingName";
description = "$STR_ACE_Inventory_SettingDescription";
values[] = {"Normal (Default Size)", "Medium", "Bigger"};
diff --git a/addons/laserpointer/CfgVehicles.hpp b/addons/laserpointer/CfgVehicles.hpp
index 8c81837fe2..5a0ece1b1f 100644
--- a/addons/laserpointer/CfgVehicles.hpp
+++ b/addons/laserpointer/CfgVehicles.hpp
@@ -2,7 +2,7 @@ class CfgVehicles {
class NATO_Box_Base;
class Box_NATO_Support_F: NATO_Box_Base {
class TransportItems {
- MACRO_ADDITEM(ACE_acc_pointer_red,4);
+ MACRO_ADDITEM(ACE_acc_pointer_green,4);
};
};
@@ -23,13 +23,12 @@ class CfgVehicles {
class FIA_Box_Base_F;
class Box_FIA_Support_F: FIA_Box_Base_F {
class TransportItems {
- MACRO_ADDITEM(ACE_acc_pointer_red,4);
+ MACRO_ADDITEM(ACE_acc_pointer_green,4);
};
};
class ACE_Box_Misc: Box_NATO_Support_F {
class TransportItems {
- MACRO_ADDITEM(ACE_acc_pointer_red,4);
MACRO_ADDITEM(ACE_acc_pointer_green,4);
};
};
diff --git a/addons/laserpointer/CfgWeapons.hpp b/addons/laserpointer/CfgWeapons.hpp
index 364f4b2168..4f6a61c83a 100644
--- a/addons/laserpointer/CfgWeapons.hpp
+++ b/addons/laserpointer/CfgWeapons.hpp
@@ -1,17 +1,28 @@
class SlotInfo;
class PointerSlot: SlotInfo {
- compatibleItems[] += {"ACE_acc_pointer_red","ACE_acc_pointer_green"};
+ compatibleItems[] += {"ACE_acc_pointer_red","ACE_acc_pointer_green_IR","ACE_acc_pointer_green"};
};
class CfgWeapons {
class ItemCore;
class InventoryFlashLightItem_Base_F;
+ class acc_pointer_IR: ItemCore {
+ ACE_nextModeClass = "ACE_acc_pointer_red";
+ ACE_modeDescription = "$STR_ACE_Laserpointer_IRLaser";
+
+ displayName = "$STR_ACE_Laserpointer_red";
+ descriptionUse = "$STR_ACE_Laserpointer_useLaser";
+ };
+
class ACE_acc_pointer_red: ItemCore {
+ ACE_nextModeClass = "acc_pointer_IR";
+ ACE_modeDescription = "$STR_ACE_Laserpointer_Laser";
+
author = "$STR_ACE_Common_ACETeam";
_generalMacro = "ACE_acc_pointer_red";
- scope = 2;
+ scope = 1;
displayName = "$STR_ACE_Laserpointer_red";
descriptionUse = "$STR_ACE_Laserpointer_useLaser";
picture = "\A3\weapons_F\Data\UI\gear_accv_pointer_CA.paa";
@@ -54,9 +65,23 @@ class CfgWeapons {
inertia = 0.1;
};
- class ACE_acc_pointer_green: ACE_acc_pointer_red {
+ class ACE_acc_pointer_green_IR: acc_pointer_IR {
+ ACE_nextModeClass = "ACE_acc_pointer_green";
+ ACE_modeDescription = "$STR_ACE_Laserpointer_IRLaser";
+
author = "$STR_ACE_Common_ACETeam";
_generalMacro = "ACE_acc_pointer_green";
+ scope = 1;
+ displayName = "$STR_ACE_Laserpointer_green";
+ };
+
+ class ACE_acc_pointer_green: ACE_acc_pointer_red {
+ ACE_nextModeClass = "ACE_acc_pointer_green_IR";
+ ACE_modeDescription = "$STR_ACE_Laserpointer_Laser";
+
+ author = "$STR_ACE_Common_ACETeam";
+ _generalMacro = "ACE_acc_pointer_green";
+ scope = 2;
displayName = "$STR_ACE_Laserpointer_green";
};
};
diff --git a/addons/laserpointer/XEH_postInit.sqf b/addons/laserpointer/XEH_postInit.sqf
index 14e4c384d8..38fc35f262 100644
--- a/addons/laserpointer/XEH_postInit.sqf
+++ b/addons/laserpointer/XEH_postInit.sqf
@@ -11,11 +11,16 @@ GVAR(nearUnits) = [];
// @todo. Maybe move to common?
[{
private "_nearUnits";
- _nearUnits = nearestObjects [positionCameraToWorld [0,0,0], ["CAManBase"], 50];
+ _nearUnits = [];
- if (count _nearUnits > 10) then {
- _nearUnits resize 10;
- };
+ {
+ _nearUnits append crew _x;
+
+ if (count _nearUnits > 10) exitWith {
+ _nearUnits resize 10;
+ };
+
+ } forEach nearestObjects [positionCameraToWorld [0,0,0], ["AllVehicles"], 50]; // when moving this, search also for units inside vehicles. currently breaks the laser in FFV
GVAR(nearUnits) = _nearUnits;
@@ -24,3 +29,5 @@ GVAR(nearUnits) = [];
addMissionEventHandler ["Draw3D", {
call FUNC(onDraw);
}];
+
+#include "initKeybinds.sqf"
diff --git a/addons/laserpointer/XEH_preInit.sqf b/addons/laserpointer/XEH_preInit.sqf
index e7c74d3445..1460abda36 100644
--- a/addons/laserpointer/XEH_preInit.sqf
+++ b/addons/laserpointer/XEH_preInit.sqf
@@ -4,5 +4,6 @@ ADDON = false;
PREP(drawLaserpoint);
PREP(onDraw);
+PREP(switchLaserLightMode);
ADDON = true;
diff --git a/addons/laserpointer/config.cpp b/addons/laserpointer/config.cpp
index b97587dac6..5ca5ce3470 100644
--- a/addons/laserpointer/config.cpp
+++ b/addons/laserpointer/config.cpp
@@ -3,7 +3,7 @@
class CfgPatches {
class ADDON {
units[] = {};
- weapons[] = {"ACE_acc_pointer_red","ACE_acc_pointer_green"};
+ weapons[] = {"ACE_acc_pointer_red","ACE_acc_pointer_green","ACE_acc_pointer_green_IR"};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_common"};
author[] = {"commy2"};
diff --git a/addons/laserpointer/functions/fnc_drawLaserpoint.sqf b/addons/laserpointer/functions/fnc_drawLaserpoint.sqf
index 31be95099a..93a421a094 100644
--- a/addons/laserpointer/functions/fnc_drawLaserpoint.sqf
+++ b/addons/laserpointer/functions/fnc_drawLaserpoint.sqf
@@ -1,6 +1,19 @@
// by commy2 and esteldunedain
#include "script_component.hpp"
+// init object
+/*if (isNil QGVAR(laserdot)) then {
+ _light = "#lightpoint" createVehicleLocal [0,0,0];
+ _light setLightBrightness 10;
+ _light setLightColor [1,0,0];
+ _light setLightAmbient [1,0,0];
+ _light setLightDayLight true;
+ //_light lightAttachObject [GVAR(laserdot), [0,0,0]];
+ _light setLightAttenuation [0.04,4,4,0,0.04,0.08];
+
+ GVAR(laserdot) = _light;
+};*/
+
EXPLODE_3_PVT(_this,_unit,_range,_isGreen);
_p0Pos = _unit modelToWorldVisual (_unit selectionPosition "righthand");
@@ -97,13 +110,15 @@ if (!surfaceIsWater _pL) then {
_pL = ASLtoATL _pL;
};
+/*
drawLine3D [
_p0Pos,
_pL,
[[1,0,0,1], [0,1,0,1]] select _isGreen
];
+*/
-_size = 2 * (_range - (positionCameraToWorld [0,0,0] distance _pL)) / _range;
+_size = 2 * (_range - (positionCameraToWorld [0,0,0] vectorDistance _pL)) / _range;
_camPos = positionCameraToWorld [0,0,0.2];
if (count ([_unit, "FIRE"] intersect [_camPos, _pL]) > 0) exitWith {};
@@ -114,6 +129,8 @@ if (!surfaceIsWater _camPos) then { _camPos = ATLtoASL _camPos; };
if ( terrainIntersectASL [_camPos, _pL2]) exitWith {};
if ( lineIntersects [_camPos, _pL2]) exitWith {};
+//GVAR(laserdot) setPos _pL;
+
drawIcon3D [
format ["\a3\weapons_f\acc\data\collimdot_%1_ca.paa", ["red", "green"] select _isGreen],
[[1,0.25,0.25,0.5*_brightness], [0.25,1,0.25,0.5*_brightness]] select _isGreen,
diff --git a/addons/laserpointer/functions/fnc_onDraw.sqf b/addons/laserpointer/functions/fnc_onDraw.sqf
index 6fa7275531..0e4ddf981a 100644
--- a/addons/laserpointer/functions/fnc_onDraw.sqf
+++ b/addons/laserpointer/functions/fnc_onDraw.sqf
@@ -28,7 +28,7 @@ _isIR = _isIR == 1;
_laserID = ["ACE_acc_pointer_red", "ACE_acc_pointer_green"] find _laser;
if (_laserID > -1 && {_x isFlashlightOn _weapon}) then {
- [_x, 30, _laserID == 1 || _isIR] call FUNC(drawLaserpoint);
+ [_x, 50, _laserID == 1 || _isIR] call FUNC(drawLaserpoint);
};
} forEach GVAR(nearUnits);
diff --git a/addons/laserpointer/functions/fnc_switchLaserLightMode.sqf b/addons/laserpointer/functions/fnc_switchLaserLightMode.sqf
new file mode 100644
index 0000000000..f996d6b270
--- /dev/null
+++ b/addons/laserpointer/functions/fnc_switchLaserLightMode.sqf
@@ -0,0 +1,58 @@
+// by commy2
+#include "script_component.hpp"
+
+private ["_unit", "_weapon"];
+
+_unit = _this select 0;
+_weapon = _this select 1;
+
+// 1 = primary, 2 = secondary, 3 = handgun
+private "_currentWeaponType";
+_currentWeaponType = 0;
+
+private "_pointer";
+_pointer = switch (_weapon) do {
+ case (primaryWeapon _unit): {
+ _currentWeaponType = 1;
+ primaryWeaponItems _unit select 1
+ };
+ case (secondaryWeapon _unit): {
+ _currentWeaponType = 2;
+ secondaryWeaponItems _unit select 1
+ };
+ case (handgunWeapon _unit): {
+ _currentWeaponType = 3;
+ handgunItems _unit select 1
+ };
+ default {""};
+};
+
+if (_pointer == "") exitWith {};
+
+private "_nextPointer";
+_nextPointer = getText (configFile >> "CfgWeapons" >> _pointer >> "ACE_nextModeClass");
+
+if (_nextPointer == "") exitWith {};
+
+private ["_description", "_picture"];
+
+_description = getText (configFile >> "CfgWeapons" >> _nextPointer >> "ACE_modeDescription");
+_picture = getText (configFile >> "CfgWeapons" >> _nextPointer >> "picture");
+
+switch (_currentWeaponType) do {
+ case 1: {
+ _unit removePrimaryWeaponItem _pointer;
+ _unit addPrimaryWeaponItem _nextPointer;
+ };
+ case 2: {
+ _unit removeSecondaryWeaponItem _pointer;
+ _unit addSecondaryWeaponItem _nextPointer;
+ };
+ case 3: {
+ _unit removeHandgunItem _pointer;
+ _unit addHandgunItem _nextPointer;
+ };
+};
+
+[_description, _picture] call EFUNC(common,displayTextPicture);
+playSound "ACE_Sound_Click";
diff --git a/addons/laserpointer/initKeybinds.sqf b/addons/laserpointer/initKeybinds.sqf
new file mode 100644
index 0000000000..04516f0757
--- /dev/null
+++ b/addons/laserpointer/initKeybinds.sqf
@@ -0,0 +1,13 @@
+// by commy2
+
+["ACE3", QGVAR(switchLaserLightMode), localize "STR_ACE_Laserpointer_switchLaserLight",
+{
+ // Conditions: canInteract
+ if !([ACE_player, objNull, ["isNotInside"]] call EFUNC(common,canInteractWith)) exitWith {false};
+ // Conditions: specific
+ if !([ACE_player] call EFUNC(common,canUseWeapon)) exitWith {false};
+
+ [ACE_player, currentWeapon ACE_player] call FUNC(switchLaserLightMode);
+ true
+},
+{false}, [38, [false, true, false]], false] call CBA_fnc_addKeybind;
diff --git a/addons/laserpointer/stringtable.xml b/addons/laserpointer/stringtable.xml
index 4e2a743f85..b9d046a03a 100644
--- a/addons/laserpointer/stringtable.xml
+++ b/addons/laserpointer/stringtable.xml
@@ -36,5 +36,17 @@
<t color='#9cf953'>Использовать: </t>вкл/выкл лазер
<t color='#9cf953'>Usar: </t>encender/apagar láser
+
+ Laser
+ Laser
+
+
+ IR Laser
+ IR-Laser
+
+
+ Switch Laser / IR Laser
+ Umschalten Laser / IR-Laser
+
diff --git a/addons/microdagr/config.cpp b/addons/microdagr/config.cpp
index e337aa96d5..4e459c126c 100644
--- a/addons/microdagr/config.cpp
+++ b/addons/microdagr/config.cpp
@@ -21,6 +21,6 @@ class ACE_Settings {
class GVAR(MapDataAvailable) {
value = 2;
typeName = "SCALAR";
- isClientSetable = 0;
+ isClientSettable = 0;
};
};
diff --git a/addons/movement/config.cpp b/addons/movement/config.cpp
index 51ab97b80a..6cf2c9470c 100644
--- a/addons/movement/config.cpp
+++ b/addons/movement/config.cpp
@@ -21,7 +21,7 @@ class ACE_Settings {
class GVAR(useImperial) {
value = 0;
typeName = "BOOL";
- isClientSetable = 1;
+ isClientSettable = 1;
displayName = "$STR_ACE_Movement_UseImperial";
};
};
diff --git a/addons/nametags/config.cpp b/addons/nametags/config.cpp
index e67703e147..dce054a9ec 100644
--- a/addons/nametags/config.cpp
+++ b/addons/nametags/config.cpp
@@ -19,55 +19,55 @@ class ACE_Settings {
class GVAR(defaultNametagColor) {
value[] = {0.77, 0.51, 0.08, 1};
typeName = "COLOR";
- isClientSetable = 1;
+ isClientSettable = 1;
displayName = "$STR_ACE_NameTags_DefaultNametagColor";
};
class GVAR(showPlayerNames) {
value = 1;
typeName = "SCALAR";
- isClientSetable = 1;
+ isClientSettable = 1;
displayName = "$STR_ACE_NameTags_ShowPlayerNames";
values[] = {"Disabled", "Enabled", "Only Cursor", "Only On Keypress", "Only Cursor and KeyPress"};
};
class GVAR(showPlayerRanks) {
value = 1;
typeName = "BOOL";
- isClientSetable = 1;
+ isClientSettable = 1;
displayName = "$STR_ACE_NameTags_ShowPlayerRanks";
};
class GVAR(showVehicleCrewInfo) {
value = 1;
typeName = "BOOL";
- isClientSetable = 1;
+ isClientSettable = 1;
displayName = "$STR_ACE_NameTags_ShowVehicleCrewInfo";
};
class GVAR(showNamesForAI) {
value = 0;
typeName = "BOOL";
- isClientSetable = 1;
+ isClientSettable = 1;
displayName = "$STR_ACE_NameTags_ShowNamesForAI";
};
class GVAR(showCursorTagForVehicles) {
value = 0;
typeName = "BOOL";
- isClientSetable = 0;
+ isClientSettable = 0;
};
class GVAR(showSoundWaves) {
value = 1;
typeName = "SCALAR";
- isClientSetable = 1;
+ isClientSettable = 1;
displayName = "$STR_ACE_NameTags_ShowSoundWaves";
values[] = {"Disabled", "Use Nametag settings", "Always Show All"};
};
class GVAR(PlayerNamesViewDistance) {
value = 5;
typeName = "SCALAR";
- isClientSetable = 0;
+ isClientSettable = 0;
};
class GVAR(PlayerNamesMaxAlpha) {
value = 0.8;
typeName = "SCALAR";
- isClientSetable = 0;
+ isClientSettable = 0;
};
};
diff --git a/addons/overheating/config.cpp b/addons/overheating/config.cpp
index 3ccc8ee603..bd6cdbbdd3 100644
--- a/addons/overheating/config.cpp
+++ b/addons/overheating/config.cpp
@@ -23,7 +23,7 @@ class CfgPatches {
class ACE_Settings {
class GVAR(DisplayTextOnJam) {
typeName = "BOOL";
- isClientSetable = 1;
+ isClientSettable = 1;
value = 1;
displayName = "$STR_ACE_overheating_SettingDisplayTextName";
description = "$STR_ACE_overheating_SettingDisplayTextDesc";
diff --git a/addons/reload/config.cpp b/addons/reload/config.cpp
index 372292de89..02f5014379 100644
--- a/addons/reload/config.cpp
+++ b/addons/reload/config.cpp
@@ -25,7 +25,7 @@ class CfgPatches {
class ACE_Settings {
class GVAR(DisplayText) {
typeName = "BOOL";
- isClientSetable = 1;
+ isClientSettable = 1;
value = 1;
displayName = "$STR_ACE_reload_SettingDisplayTextName";
description = "$STR_ACE_reload_SettingDisplayTextDesc";
diff --git a/addons/scopes/stringtable.xml b/addons/scopes/stringtable.xml
index c04a4e79dc..9e070efa73 100644
--- a/addons/scopes/stringtable.xml
+++ b/addons/scopes/stringtable.xml
@@ -1,21 +1,20 @@
-
- "Minor adjustment up
+ Minor adjustment up
Zerowanie powoli w górę
- "Minor adjustment down
+ Minor adjustment down
Zerowanie powoli w dół
- "Minor adjustment right
+ Minor adjustment right
Zerowanie powoli w prawo
- "Minor adjustment left
+ Minor adjustment left
Zerowanie powoli w lewo
@@ -39,4 +38,4 @@
Zresetuj wyzerowanie
-
\ No newline at end of file
+
diff --git a/addons/vehicles/XEH_postInit.sqf b/addons/vehicles/XEH_postInit.sqf
index 8f714105b6..c7665cf2aa 100644
--- a/addons/vehicles/XEH_postInit.sqf
+++ b/addons/vehicles/XEH_postInit.sqf
@@ -7,7 +7,7 @@ if !(hasInterface) exitWith {};
["ACE3", QGVAR(speedLimiter), localize "STR_ACE_SpeedLimiter",
{
// Conditions: canInteract
- if !([ACE_player, objNull, []] call EFUNC(common,canInteractWith)) exitWith {false};
+ if !([ACE_player, objNull, ["isnotinside"]] call EFUNC(common,canInteractWith)) exitWith {false};
// Conditions: specific
if !(ACE_player == driver vehicle ACE_player &&
{vehicle ACE_player isKindOf 'Car' ||
diff --git a/addons/weaponselect/config.cpp b/addons/weaponselect/config.cpp
index 80be936e98..68d0fe842d 100644
--- a/addons/weaponselect/config.cpp
+++ b/addons/weaponselect/config.cpp
@@ -17,7 +17,7 @@ class CfgPatches {
class ACE_Settings {
class GVAR(DisplayText) {
typeName = "BOOL";
- isClientSetable = 1;
+ isClientSettable = 1;
value = 1;
displayName = "$STR_ACE_Weaponselect_SettingDisplayTextName";
description = "$STR_ACE_Weaponselect_SettingDisplayTextDesc";
diff --git a/tools/build.py b/tools/build.py
index 2b792f77dc..c6a425975e 100644
--- a/tools/build.py
+++ b/tools/build.py
@@ -19,6 +19,11 @@ def check_for_changes(addonspath, module):
return True
return mod_time(os.path.join(addonspath, module)) > mod_time(os.path.join(addonspath, "ace_{}.pbo".format(module)))
+def check_for_obsolete_pbos(addonspath, file):
+ module = file[4:-4]
+ if not os.path.exists(os.path.join(addonspath, module)):
+ return True
+ return False
def main():
print("""
@@ -36,6 +41,16 @@ def main():
made = 0
failed = 0
skipped = 0
+ removed = 0
+
+ for file in os.listdir(addonspath):
+ if os.path.isfile(file):
+ if check_for_obsolete_pbos(addonspath, file):
+ removed += 1
+ print(" Removing obsolete file => " + file)
+ os.remove(file)
+ print("")
+
for p in os.listdir(addonspath):
path = os.path.join(addonspath, p)
if not os.path.isdir(path):
@@ -65,7 +80,7 @@ def main():
print(" Successfully made {}.".format(p))
print("\n# Done.")
- print(" Made {}, skipped {}, failed to make {}.".format(made, skipped, failed))
+ print(" Made {}, skipped {}, removed {}, failed to make {}.".format(made, skipped, removed, failed))
if __name__ == "__main__":