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__":