diff --git a/addons/advanced_ballistics/XEH_postInit.sqf b/addons/advanced_ballistics/XEH_postInit.sqf index f1de68f4a2..1e0e6860da 100644 --- a/addons/advanced_ballistics/XEH_postInit.sqf +++ b/addons/advanced_ballistics/XEH_postInit.sqf @@ -41,4 +41,4 @@ if (!hasInterface) exitWith {}; #ifdef DEBUG_MODE_FULL call FUNC(diagnoseWeapons); -#endif \ No newline at end of file +#endif diff --git a/addons/advanced_ballistics/functions/fnc_diagnoseWeapons.sqf b/addons/advanced_ballistics/functions/fnc_diagnoseWeapons.sqf index 733a189906..26ebc2410f 100644 --- a/addons/advanced_ballistics/functions/fnc_diagnoseWeapons.sqf +++ b/addons/advanced_ballistics/functions/fnc_diagnoseWeapons.sqf @@ -19,6 +19,13 @@ #include "script_component.hpp" private _diagnoseStartTime = diag_tickTime; +#ifdef DEBUG_INIT_SPEEDS + private _data = []; + private _weapons = []; + private _magazines = []; + private _weaponInitSpeeds = []; + private _magazineInitSpeeds = []; +#endif private _cfgWeapons = configFile >> "CfgWeapons"; for "_i" from 0 to (count _cfgWeapons)-1 do { @@ -26,8 +33,8 @@ for "_i" from 0 to (count _cfgWeapons)-1 do { if (isClass _weaponConfig) then { private _weapon = configName _weaponConfig; private _weaponType = getNumber (_weaponConfig >> "Type"); - if (_weaponType == 1) then { - // The weapon is a primary weapon + if (_weaponType in [1, 2]) then { + // The weapon is a primary weapon or a handgun weapon private _weaponInitSpeed = getNumber (_weaponConfig >> "initSpeed"); private _magazines = getArray (_weaponConfig >> "magazines"); @@ -64,9 +71,10 @@ for "_i" from 0 to (count _cfgWeapons)-1 do { private _abInitialSpeed = _vanillaInitialSpeed + _barrelVelocityShift; // -------------------------------------------------- - private _result = [_airFriction, _caliber, _bulletLength, _bulletMass, _transonicStabilityCoef, _dragModel, _ballisticCoefficients, _velocityBoundaries, _atmosphereModel, _ammoTempMuzzleVelocityShifts, _muzzleVelocityTable, _barrelLengthTable]; - if (_weapon find "_base" == -1 && _weapon find "_Base" == -1) then { +#ifdef DEBUG_INIT_SPEEDS + _data pushBack [-_forEachIndex, _abInitialSpeed, _magazine, _weapon]; +#endif if (_barrelLength > 0 && abs(_vanillaInitialSpeed - _abInitialSpeed) > abs(_abInitialSpeed) * 0.0025) then { diag_log text format ["AB_Diagnose_initSpeed,%1,%2,%3,%4,%5,%6,%7,%8",_weapon,_magazine,_ammo,_magazineInitSpeed,_weaponInitSpeed,_vanillaInitialSpeed,_abInitialSpeed,_abInitialSpeed/_vanillaInitialSpeed]; }; @@ -82,4 +90,44 @@ for "_i" from 0 to (count _cfgWeapons)-1 do { }; }; +#ifdef DEBUG_INIT_SPEEDS + _data sort false; + { + _x params ["_magazineIndex", "_abInitialSpeed", "_magazine", "_weapon"]; + if (_magazines find _magazine == -1) then { + private _magSpeed = _abInitialSpeed; + private _ammoRef = getText (configFile >> "CfgMagazines" >> _magazine >> "ammo"); + if (_ammoRef != "") then { + { + private _ammo = getText (configFile >> "CfgMagazines" >> _x >> "ammo"); + if (_ammo == _ammoRef) exitWith { + _magSpeed = _magazineInitSpeeds select _forEachIndex; + }; + } forEach _magazines; + }; + _magazines pushBack _magazine; + _magazineInitSpeeds pushBack round(_magSpeed); + }; + if (_weapons find _weapon == -1) then { + _weapons pushBack _weapon; + _magIndex = _magazines find _magazine; + _magSpeed = _magazineInitSpeeds select _magIndex; + _weaponInitSpeeds pushBack (_abInitialSpeed / _magSpeed); + }; + } forEach _data; + { + _x params ["_magazineIndex", "_abInitialSpeed", "_magazine", "_weapon"]; + _magIndex = _magazines find _magazine; + _magSpeed = _magazineInitSpeeds select _magIndex; + _wepIndex = _weapons find _weapon; + _wepSpeed = _weaponInitSpeeds select _wepIndex; + } forEach _data; + { + diag_log text format ["AB_WeaponInitSpeed,%1,%2", _x, _weaponInitSpeeds select _forEachIndex]; + } forEach _weapons; + { + diag_log text format ["AB_MagazineInitSpeed,%1,%2", _x, _magazineInitSpeeds select _forEachIndex]; + } forEach _magazines; +#endif + diag_log format["AdvancedBallistics: Finished 'diagnoseWeapons' in %1 seconds", (diag_tickTime - _diagnoseStartTime) toFixed 2]; diff --git a/addons/advanced_ballistics/script_component.hpp b/addons/advanced_ballistics/script_component.hpp index dafb4150e1..adbdcfe302 100644 --- a/addons/advanced_ballistics/script_component.hpp +++ b/addons/advanced_ballistics/script_component.hpp @@ -6,6 +6,8 @@ // #define DISABLE_COMPILE_CACHE // #define ENABLE_PERFORMANCE_COUNTERS +#define DEBUG_INIT_SPEEDS + #ifdef DEBUG_ENABLED_ADVANCEDBALLISTICS #define DEBUG_MODE_FULL #endif diff --git a/addons/ballistics/CfgMagazines.hpp b/addons/ballistics/CfgMagazines.hpp index a90e46429e..a89cf7022d 100644 --- a/addons/ballistics/CfgMagazines.hpp +++ b/addons/ballistics/CfgMagazines.hpp @@ -2,24 +2,24 @@ class CfgMagazines { class CA_Magazine; + class VehicleMagazine; + class 30Rnd_580x42_Mag_F: CA_Magazine { - initSpeed = 930; - }; - class 100Rnd_580x42_Mag_F: 30Rnd_580x42_Mag_F { - initSpeed = 930; + initSpeed = 950; }; class 20Rnd_650x39_Cased_Mag_F: CA_Magazine { - initSpeed = 760; + initSpeed = 806; }; class 30Rnd_65x39_caseless_mag: CA_Magazine { - initSpeed = 760; + initSpeed = 774; + }; + class 30Rnd_65x39_caseless_green: 30Rnd_65x39_caseless_mag { + initSpeed = 788; }; class 100Rnd_65x39_caseless_mag: CA_Magazine { - initSpeed = 760; - }; - class 100Rnd_65x39_caseless_mag_Tracer: 100Rnd_65x39_caseless_mag { - initSpeed = 760; + initSpeed = 774; }; + class 100Rnd_65x39_caseless_mag_Tracer; class ACE_100Rnd_65x39_caseless_mag_Tracer_Dim: 100Rnd_65x39_caseless_mag_Tracer { author = ECSTRING(common,ACETeam); ammo = "ACE_65x39_Caseless_Tracer_Dim"; @@ -29,7 +29,7 @@ class CfgMagazines { picture = "\A3\weapons_f\data\ui\m_100rnd_65x39_yellow_ca.paa"; }; class 200Rnd_65x39_cased_Box: 100Rnd_65x39_caseless_mag { - initSpeed = 760; + initSpeed = 743; }; class ACE_200Rnd_65x39_cased_Box_Tracer_Dim: 200Rnd_65x39_cased_Box { author = ECSTRING(common,ACETeam); @@ -38,6 +38,7 @@ class CfgMagazines { displayNameShort = CSTRING(200Rnd_65x39_cased_Box_Tracer_DimNameShort); descriptionShort = CSTRING(200Rnd_65x39_cased_Box_Tracer_DimDescription); picture = "\A3\weapons_f\data\ui\m_200rnd_65x39_yellow_ca.paa"; + initSpeed = 774; }; class 30Rnd_65x39_caseless_mag_Tracer; class ACE_30Rnd_65x39_caseless_mag_Tracer_Dim: 30Rnd_65x39_caseless_mag_Tracer { @@ -61,6 +62,22 @@ class CfgMagazines { }; class 30Rnd_556x45_Stanag: CA_Magazine { + initSpeed = 909; + }; + class 30Rnd_556x45_Stanag_green: 30Rnd_556x45_Stanag { + initSpeed = 869; + }; + class 30Rnd_556x45_Stanag_red: 30Rnd_556x45_Stanag { + initSpeed = 869; + }; + class 30Rnd_556x45_Stanag_Tracer_Red: 30Rnd_556x45_Stanag { + initSpeed = 869; + }; + class 30Rnd_556x45_Stanag_Tracer_Green: 30Rnd_556x45_Stanag { + initSpeed = 869; + }; + class 30Rnd_556x45_Stanag_Tracer_Yellow: 30Rnd_556x45_Stanag { + initSpeed = 889; }; class ACE_30Rnd_556x45_Stanag_M995_AP_mag: 30Rnd_556x45_Stanag { author = ECSTRING(common,ACETeam); @@ -68,7 +85,7 @@ class CfgMagazines { displayName = CSTRING(30Rnd_556x45_Stanag_M995_AP_mag_Name); displayNameShort = CSTRING(30Rnd_556x45_Stanag_M995_AP_mag_NameShort); descriptionShort = CSTRING(30Rnd_556x45_Stanag_M995_AP_mag_Description); - initSpeed = 865; + initSpeed = 875; }; class ACE_30Rnd_556x45_Stanag_Mk262_mag: 30Rnd_556x45_Stanag { author = ECSTRING(common,ACETeam); @@ -84,9 +101,7 @@ class CfgMagazines { displayName = CSTRING(30Rnd_556x45_Stanag_Mk318_mag_Name); displayNameShort = CSTRING(30Rnd_556x45_Stanag_Mk318_mag_NameShort); descriptionShort = CSTRING(30Rnd_556x45_Stanag_Mk318_mag_Description); - initSpeed = 922; - }; - class 30Rnd_556x45_Stanag_Tracer_Red: 30Rnd_556x45_Stanag { + initSpeed = 923; }; class ACE_30Rnd_556x45_Stanag_Tracer_Dim: 30Rnd_556x45_Stanag_Tracer_Red { author = ECSTRING(common,ACETeam); @@ -98,15 +113,18 @@ class CfgMagazines { }; class 200Rnd_556x45_Box_F: CA_Magazine { - initSpeed = 872; + initSpeed = 889; + }; + class 200Rnd_556x45_Box_Red_F: 200Rnd_556x45_Box_F { + initSpeed = 869; }; class 30Rnd_762x39_Mag_F: CA_Magazine { - initSpeed = 715; + initSpeed = 716; }; class 20Rnd_762x51_Mag: CA_Magazine { - initSpeed = 833; + initSpeed = 827; }; class 10Rnd_762x51_Mag: 20Rnd_762x51_Mag { initSpeed = 833; @@ -140,7 +158,7 @@ class CfgMagazines { displayName = CSTRING(20Rnd_762x51_mag_SDName); displayNameShort = CSTRING(20Rnd_762x51_mag_SDNameShort); descriptionShort = CSTRING(20Rnd_762x51_mag_SDDescription); - initSpeed = 325; + initSpeed = 330; }; class ACE_10Rnd_762x51_M118LR_Mag: 10Rnd_762x51_Mag { @@ -185,7 +203,7 @@ class CfgMagazines { displayName = CSTRING(20Rnd_762x51_M118LR_Mag_Name); displayNameShort = CSTRING(20Rnd_762x51_M118LR_Mag_NameShort); descriptionShort = CSTRING(20Rnd_762x51_M118LR_Mag_Description); - initSpeed = 780; + initSpeed = 785; }; class ACE_20Rnd_762x51_Mk316_Mod_0_Mag: 20Rnd_762x51_Mag { author = ECSTRING(common,ACETeam); @@ -194,7 +212,7 @@ class CfgMagazines { displayName = CSTRING(20Rnd_762x51_Mk316_Mod_0_Mag_Name); displayNameShort = CSTRING(20Rnd_762x51_Mk316_Mod_0_Mag_NameShort); descriptionShort = CSTRING(20Rnd_762x51_Mk316_Mod_0_Mag_Description); - initSpeed = 790; + initSpeed = 798; }; class ACE_20Rnd_762x51_Mk319_Mod_0_Mag: 20Rnd_762x51_Mag { author = ECSTRING(common,ACETeam); @@ -202,7 +220,7 @@ class CfgMagazines { displayName = CSTRING(20Rnd_762x51_Mk319_Mod_0_Mag_Name); displayNameShort = CSTRING(20Rnd_762x51_Mk319_Mod_0_Mag_NameShort); descriptionShort = CSTRING(20Rnd_762x51_Mk319_Mod_0_Mag_Description); - initSpeed = 900; + initSpeed = 910; }; class ACE_20Rnd_762x51_M993_AP_Mag: 20Rnd_762x51_Mag { author = ECSTRING(common,ACETeam); @@ -211,7 +229,7 @@ class CfgMagazines { displayName = CSTRING(20Rnd_762x51_M993_AP_Mag_Name); displayNameShort = CSTRING(20Rnd_762x51_M993_AP_Mag_NameShort); descriptionShort = CSTRING(20Rnd_762x51_M993_AP_Mag_Description); - initSpeed = 920; + initSpeed = 930; }; class ACE_20Rnd_762x67_Mk248_Mod_0_Mag: 20Rnd_762x51_Mag { author = ECSTRING(common,ACETeam); @@ -219,7 +237,7 @@ class CfgMagazines { displayName = CSTRING(20Rnd_762x67_Mk248_Mod_0_Mag_Name); displayNameShort = CSTRING(20Rnd_762x67_Mk248_Mod_0_Mag_NameShort); descriptionShort = CSTRING(20Rnd_762x67_Mk248_Mod_0_Mag_Description); - initSpeed = 900; + initSpeed = 865; }; class ACE_20Rnd_762x67_Mk248_Mod_1_Mag: 20Rnd_762x51_Mag { author = ECSTRING(common,ACETeam); @@ -227,7 +245,7 @@ class CfgMagazines { displayName = CSTRING(20Rnd_762x67_Mk248_Mod_1_Mag_Name); displayNameShort = CSTRING(20Rnd_762x67_Mk248_Mod_1_Mag_NameShort); descriptionShort = CSTRING(20Rnd_762x67_Mk248_Mod_1_Mag_Description); - initSpeed = 880; + initSpeed = 847; }; class ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag: 20Rnd_762x51_Mag { author = ECSTRING(common,ACETeam); @@ -235,12 +253,12 @@ class CfgMagazines { displayName = CSTRING(20Rnd_762x67_Berger_Hybrid_OTM_Mag_Name); displayNameShort = CSTRING(20Rnd_762x67_Berger_Hybrid_OTM_Mag_NameShort); descriptionShort = CSTRING(20Rnd_762x67_Berger_Hybrid_OTM_Mag_Description); - initSpeed = 832; + initSpeed = 800; }; class ACE_30Rnd_65x47_Scenar_mag: 30Rnd_65x39_caseless_mag { author = ECSTRING(common,ACETeam); ammo = "ACE_65x47_Ball_Scenar"; - initSpeed = 761; + initSpeed = 826; displayName = CSTRING(30Rnd_65x47_Scenar_mag_Name); displayNameShort = CSTRING(30Rnd_65x47_Scenar_mag_NameShort); descriptionShort = CSTRING(30Rnd_65x47_Scenar_mag_Description); @@ -248,7 +266,7 @@ class CfgMagazines { class ACE_20Rnd_65x47_Scenar_mag: 20Rnd_650x39_Cased_Mag_F { author = ECSTRING(common,ACETeam); ammo = "ACE_65x47_Ball_Scenar"; - initSpeed = 779; + initSpeed = 826; displayName = CSTRING(20Rnd_65x47_Scenar_mag_Name); displayNameShort = CSTRING(20Rnd_65x47_Scenar_mag_NameShort); descriptionShort = CSTRING(20Rnd_65x47_Scenar_mag_Description); @@ -256,7 +274,7 @@ class CfgMagazines { class ACE_30Rnd_65_Creedmor_mag: 30Rnd_65x39_caseless_mag { author = ECSTRING(common,ACETeam); ammo = "ACE_65_Creedmor_Ball"; - initSpeed = 815; + initSpeed = 857; displayName = CSTRING(30Rnd_65_Creedmor_mag_Name); displayNameShort = CSTRING(30Rnd_65_Creedmor_mag_NameShort); descriptionShort = CSTRING(30Rnd_65_Creedmor_mag_Description); @@ -264,12 +282,14 @@ class CfgMagazines { class ACE_20Rnd_65_Creedmor_mag: 20Rnd_650x39_Cased_Mag_F { author = ECSTRING(common,ACETeam); ammo = "ACE_65_Creedmor_Ball"; - initSpeed = 808; + initSpeed = 857; displayName = CSTRING(20Rnd_65_Creedmor_mag_Name); displayNameShort = CSTRING(20Rnd_65_Creedmor_mag_NameShort); descriptionShort = CSTRING(20Rnd_65_Creedmor_mag_Description); }; - class 10Rnd_338_Mag; + class 10Rnd_338_Mag: CA_Magazine { + initSpeed = 880; + }; class ACE_10Rnd_338_300gr_HPBT_Mag: 10Rnd_338_Mag { author = ECSTRING(common,ACETeam); ammo = "ACE_338_Ball"; @@ -330,46 +350,47 @@ class CfgMagazines { class 30Rnd_9x21_Mag: CA_Magazine { - initSpeed = 390; + initSpeed = 430; }; - class ACE_30Rnd_9x19_mag: 30Rnd_9x21_Mag { - author = ECSTRING(common,ACETeam); - ammo = "ACE_9x19_Ball"; - displayName = CSTRING(30Rnd_9x19_mag_Name); - displayNameShort = CSTRING(30Rnd_9x19_mag_NameShort); - descriptionShort = CSTRING(30Rnd_9x19_mag_Description); - initSpeed = 370; + class 30Rnd_9x21_Green_Mag: 30Rnd_9x21_Mag { + initSpeed = 402; + }; + class 30Rnd_9x21_Mag_SMG_02: 30Rnd_9x21_Mag { + initSpeed = 430; + }; + class 30Rnd_9x21_Mag_SMG_02_Tracer_Green: 30Rnd_9x21_Mag_SMG_02 { + initSpeed = 402; }; class 10Rnd_50BW_Mag_F: CA_Magazine { initSpeed = 552; }; - + class 11Rnd_45ACP_Mag: CA_Magazine { - initSpeed = 250; + initSpeed = 254; }; class 6Rnd_45ACP_Cylinder : 11Rnd_45ACP_Mag { - initSpeed = 250; + initSpeed = 254; }; class 30Rnd_45ACP_Mag_SMG_01: 30Rnd_9x21_Mag { - initSpeed = 250; + initSpeed = 254; }; class 9Rnd_45ACP_Mag: 30Rnd_45ACP_Mag_SMG_01 { - initSpeed = 250; + initSpeed = 254; }; class 30Rnd_45ACP_Mag_SMG_01_Tracer_Green: 30Rnd_45ACP_Mag_SMG_01 { - initSpeed = 250; + initSpeed = 254; }; class 16Rnd_9x21_Mag: 30Rnd_9x21_Mag { - initSpeed = 390; + initSpeed = 430; }; class 10Rnd_9x21_Mag: 16Rnd_9x21_Mag { - initSpeed = 390; + initSpeed = 430; }; class ACE_16Rnd_9x19_mag: 16Rnd_9x21_Mag { author = ECSTRING(common,ACETeam); @@ -389,19 +410,38 @@ class CfgMagazines { displayName = CSTRING(10Rnd_762x54_Tracer_mag_Name); displayNameShort = CSTRING(10Rnd_762x54_Tracer_mag_NameShort); descriptionShort = CSTRING(10Rnd_762x54_Tracer_mag_Description); - initSpeed = 809; + initSpeed = 810; tracersEvery = 1; }; class 150Rnd_762x54_Box: 150Rnd_762x51_Box { - initSpeed = 836; - }; - - class 150Rnd_93x64_Mag: CA_Magazine { - initSpeed = 860; + initSpeed = 778; }; class 10Rnd_127x54_Mag: CA_Magazine { initSpeed = 300; }; + + class 150Rnd_556x45_Drum_Mag_F: CA_Magazine { + initSpeed = 869; + }; + + class 130Rnd_338_Mag: CA_Magazine { + initSpeed = 807; + }; + + class 200Rnd_65x39_Belt: VehicleMagazine { + initSpeed = 806; + }; + + class 20Rnd_556x45_UW_mag: 30Rnd_556x45_Stanag { + initSpeed = 267; + }; + + class 150Rnd_93x64_Mag: CA_Magazine { + initSpeed = 870; + }; + class 10Rnd_93x64_DMR_05_Mag: 150Rnd_93x64_Mag { + initSpeed = 870; + }; }; diff --git a/addons/ballistics/CfgWeapons.hpp b/addons/ballistics/CfgWeapons.hpp index a8bbf61a7f..e3ed161897 100644 --- a/addons/ballistics/CfgWeapons.hpp +++ b/addons/ballistics/CfgWeapons.hpp @@ -28,7 +28,7 @@ class CfgWeapons { // QBU-88 class DMR_07_base_F: Rifle_Long_Base_F { - initSpeed = -1.06051; + initSpeed = -0.99998; ACE_barrelTwist = 228.6; ACE_barrelLength = 640.0; magazines[] = { @@ -119,7 +119,7 @@ class CfgWeapons { "ACE_100Rnd_65x39_caseless_mag_Tracer_Dim", "ACE_30Rnd_65x39_caseless_mag_Tracer_Dim" }; - initSpeed = -1.0; + initSpeed = -0.981912; ACE_barrelTwist = 228.6; ACE_barrelLength = 406.4; }; @@ -133,7 +133,7 @@ class CfgWeapons { "ACE_30Rnd_65x47_Scenar_mag", "ACE_30Rnd_65_Creedmor_mag" }; - initSpeed = -1.01842; + initSpeed = -1.0; ACE_barrelTwist = 228.6; ACE_barrelLength = 457.2; class Single: Single { @@ -159,14 +159,14 @@ class CfgWeapons { "ACE_30Rnd_556x45_Stanag_Mk318_mag", "ACE_30Rnd_556x45_Stanag_Tracer_Dim" }; - initSpeed = -0.859238; + initSpeed = -0.869636; ACE_barrelTwist = 177.8; ACE_barrelLength = 264.0; }; // HK416A5 14.5" class arifle_SPAR_02_base_F: Rifle_Base_F { - initSpeed = -0.934282; + initSpeed = -0.999864; ACE_barrelTwist = 177.8; ACE_barrelLength = 368.0; }; @@ -183,7 +183,7 @@ class CfgWeapons { "ACE_20Rnd_762x51_M993_AP_Mag", "ACE_20Rnd_762x51_Mag_SD" }; - initSpeed = -0.984394; + initSpeed = -0.991536; ACE_barrelTwist = 279.4; ACE_barrelLength = 508.0; }; @@ -195,28 +195,27 @@ class CfgWeapons { "200Rnd_65x39_cased_Box_Tracer", "ACE_200Rnd_65x39_cased_Box_Tracer_Dim" }; - initSpeed = -0.976974; + initSpeed = -0.999327; ACE_barrelTwist = 177.8; ACE_barrelLength = 317.5; }; // Negev NG7 class LMG_Zafir_F: Rifle_Long_Base_F { - initSpeed = -0.931071; + initSpeed = -1.00048; ACE_barrelTwist = 304.8; ACE_barrelLength = 459.74; }; // M249 SPW class LMG_03_base_F: Rifle_Long_Base_F { - initSpeed = -1.02002; + initSpeed = -1.00051; ACE_barrelTwist = 177.8; ACE_barrelLength = 414.02; }; // RFB SDAR class SDAR_base_F: Rifle_Base_F { - initSpeed = -1.211; class Single: Mode_SemiAuto { dispersion = MOA_TO_RAD(3.0); }; @@ -235,49 +234,51 @@ class CfgWeapons { // P99 class hgun_P07_F: Pistol_Base_F { - initSpeed = -1.0; + initSpeed = -0.906977; ACE_barrelTwist = 254.0; ACE_barrelLength = 101.6; }; // MP-443 Grach class hgun_Rook40_F: Pistol_Base_F { - initSpeed = -1.03077; + initSpeed = -0.934884; ACE_barrelTwist = 254.0; ACE_barrelLength = 111.76; }; // Custom Covert II class hgun_ACPC2_F: Pistol_Base_F { - initSpeed = -1.0; + initSpeed = -0.984252; ACE_barrelTwist = 406.4; ACE_barrelLength = 127.0; }; // FNX-45 Tactical class hgun_Pistol_heavy_01_F: Pistol_Base_F { - initSpeed = -0.96; + initSpeed = -0.944882; ACE_barrelTwist = 406.4; ACE_barrelLength = 114.3; }; // Chiappa Rhino 60DS class hgun_Pistol_heavy_02_F: Pistol_Base_F { - initSpeed = -0.92; + initSpeed = -0.905512; ACE_barrelTwist = 406.4; ACE_barrelLength = 76.2; }; // Makarov PM class hgun_Pistol_01_F: Pistol_Base_F { - initSpeed = -0.974359; + initSpeed = -0.883721; ACE_barrelTwist = 254.0; ACE_barrelLength = 93.5; }; + class pdw2000_base_F: Rifle_Short_Base_F {}; + // CPW - class pdw2000_base_F: Rifle_Short_Base_F { - initSpeed = -1.09615; + class hgun_PDW2000_F: pdw2000_base_F { + initSpeed = -0.994186; ACE_barrelTwist = 228.6; ACE_barrelLength = 177.8; }; @@ -291,35 +292,35 @@ class CfgWeapons { // AKM class arifle_AKM_base_F: Rifle_Base_F { - initSpeed = -1.0014; + initSpeed = -1.0; ACE_barrelTwist = 199.898; ACE_barrelLength = 414.02; }; // AK12 class arifle_AK12_base_F: Rifle_Base_F { - initSpeed = -1.0014; + initSpeed = -1.0; ACE_barrelTwist = 199.898; ACE_barrelLength = 414.02; }; // QBZ-95-1 class arifle_CTAR_base_F: Rifle_Base_F { - initSpeed = -1.0; + initSpeed = -0.978947; ACE_barrelTwist = 244.0; ACE_barrelLength = 463.0; }; // QBZ-95-1 LSW class arifle_CTARS_base_F: Rifle_Base_F { - initSpeed = -1.04301; + initSpeed = -1.0; ACE_barrelTwist = 244.0; ACE_barrelLength = 600.0; }; // Type 115 class arifle_ARX_base_F: Rifle_Base_F { - initSpeed = -1.02052; + initSpeed = -0.984262; ACE_barrelTwist = 228.6; ACE_barrelLength = 463.0; }; @@ -333,7 +334,7 @@ class CfgWeapons { "30Rnd_65x39_caseless_green_mag_Tracer", "ACE_30Rnd_65x39_caseless_green_mag_Tracer_Dim" }; - initSpeed = -1.08355; + initSpeed = -1.0; ACE_barrelTwist = 203.2; ACE_barrelLength = 508.0; }; @@ -345,7 +346,7 @@ class CfgWeapons { "30Rnd_65x39_caseless_green_mag_Tracer", "ACE_30Rnd_65x39_caseless_green_mag_Tracer_Dim" }; - initSpeed = -1.07105; + initSpeed = -0.961294; ACE_barrelTwist = 203.2; ACE_barrelLength = 393.7; }; @@ -357,7 +358,7 @@ class CfgWeapons { "30Rnd_65x39_caseless_green_mag_Tracer", "ACE_30Rnd_65x39_caseless_green_mag_Tracer_Dim" }; - initSpeed = -1.08355; + initSpeed = -1.0; ACE_barrelTwist = 203.2; ACE_barrelLength = 508.0; }; @@ -369,7 +370,7 @@ class CfgWeapons { "30Rnd_65x39_caseless_mag_Tracer", "ACE_30Rnd_65x39_caseless_mag_Tracer_Dim" }; - initSpeed = -0.990132; + initSpeed = -0.972222; ACE_barrelTwist = 228.6; ACE_barrelLength = 368.3; }; @@ -381,7 +382,7 @@ class CfgWeapons { "30Rnd_65x39_caseless_mag_Tracer", "ACE_30Rnd_65x39_caseless_mag_Tracer_Dim" }; - initSpeed = -0.99; + initSpeed = -0.972222; ACE_barrelTwist = 228.6; ACE_barrelLength = 368.3; }; @@ -393,7 +394,7 @@ class CfgWeapons { "30Rnd_65x39_caseless_mag_Tracer", "ACE_30Rnd_65x39_caseless_mag_Tracer_Dim" }; - initSpeed = -0.963816; + initSpeed = -0.946382; ACE_barrelTwist = 203.2; ACE_barrelLength = 266.7; }; @@ -413,21 +414,23 @@ class CfgWeapons { "ACE_30Rnd_556x45_Stanag_Mk318_mag", "ACE_30Rnd_556x45_Stanag_Tracer_Dim" }; - initSpeed = -0.989; + initSpeed = -0.998321; ACE_barrelTwist = 285.75; ACE_barrelLength = 457.2; }; + class SMG_02_base_F: Rifle_Short_Base_F {}; + // Scorpion Evo 3 A1 - class SMG_02_base_F: Rifle_Short_Base_F { - initSpeed = -1.10288; + class SMG_02_F: SMG_02_base_F { + initSpeed = -1.00029; ACE_barrelTwist = 254.0; ACE_barrelLength = 195.58; }; // MP5K class SMG_05_base_F: Rifle_Short_Base_F { - initSpeed = -1.04058; + initSpeed = -0.943783; ACE_barrelTwist = 254.0; ACE_barrelLength = 115.0; }; @@ -448,7 +451,7 @@ class CfgWeapons { "ACE_30Rnd_556x45_Stanag_Mk318_mag", "ACE_30Rnd_556x45_Stanag_Tracer_Dim" }; - initSpeed = -0.95; + initSpeed = -0.961496; ACE_barrelTwist = 177.8; ACE_barrelLength = 381.0; }; @@ -467,7 +470,7 @@ class CfgWeapons { "ACE_30Rnd_556x45_Stanag_Mk318_mag", "ACE_30Rnd_556x45_Stanag_Tracer_Dim" }; - initSpeed = -0.988043; + initSpeed = -1.0; ACE_barrelTwist = 177.8; ACE_barrelLength = 459.74; }; @@ -486,7 +489,7 @@ class CfgWeapons { "ACE_30Rnd_556x45_Stanag_Mk318_mag", "ACE_30Rnd_556x45_Stanag_Tracer_Dim" }; - initSpeed = -0.988043; + initSpeed = -1.0; ACE_barrelTwist = 177.8; ACE_barrelLength = 459.74; }; @@ -507,7 +510,7 @@ class CfgWeapons { "ACE_30Rnd_556x45_Stanag_Mk318_mag", "ACE_30Rnd_556x45_Stanag_Tracer_Dim" }; - initSpeed = -0.980978; + initSpeed = -0.992849; ACE_barrelTwist = 177.8; ACE_barrelLength = 441.96; }; @@ -526,7 +529,7 @@ class CfgWeapons { "ACE_30Rnd_556x45_Stanag_Mk318_mag", "ACE_30Rnd_556x45_Stanag_Tracer_Dim" }; - initSpeed = -0.962648; + initSpeed = -0.974297; ACE_barrelTwist = 177.8; ACE_barrelLength = 406.4; }; @@ -545,14 +548,16 @@ class CfgWeapons { "ACE_30Rnd_556x45_Stanag_Mk318_mag", "ACE_30Rnd_556x45_Stanag_Tracer_Dim" }; - initSpeed = -0.962648; + initSpeed = -0.974297; ACE_barrelTwist = 177.8; ACE_barrelLength = 406.4; }; + class SMG_01_Base: Rifle_Short_Base_F {}; + // Vector SMG - class SMG_01_Base: Rifle_Short_Base_F { - initSpeed = -1.0175; + class SMG_01_F: SMG_01_Base { + initSpeed = -1.00148; ACE_barrelTwist = 406.4; ACE_barrelLength = 139.7; }; @@ -580,7 +585,7 @@ class CfgWeapons { "ACE_20Rnd_762x51_M993_AP_Mag", "ACE_20Rnd_762x51_Mag_SD" }; - initSpeed = -0.972389; + initSpeed = -0.979444; ACE_barrelTwist = 304.8; ACE_barrelLength = 457.2; }; @@ -620,7 +625,7 @@ class CfgWeapons { "ACE_20Rnd_762x67_Mk248_Mod_1_Mag", "ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag" }; - initSpeed = -0.961749; + initSpeed = -1.0; ACE_barrelTwist = 254.0; ACE_barrelLength = 508.0; }; @@ -637,7 +642,7 @@ class CfgWeapons { "ACE_20Rnd_762x51_M993_AP_Mag", "ACE_20Rnd_762x51_Mag_SD" }; - initSpeed = -0.984394; + initSpeed = -0.991536; ACE_barrelTwist = 254.0; ACE_barrelLength = 508.0; }; @@ -668,14 +673,14 @@ class CfgWeapons { "ACE_20Rnd_762x51_M993_AP_Mag", "ACE_20Rnd_762x51_Mag_SD" }; - initSpeed = -0.992197; + initSpeed = -0.999395; ACE_barrelTwist = 304.8; ACE_barrelLength = 558.8; }; // HK121 class MMG_01_hex_F: MMG_01_base_F { - initSpeed = -0.997073; + initSpeed = -0.985613; ACE_barrelTwist = 359.918; ACE_barrelLength = 549.91; };