diff --git a/.gitignore b/.gitignore
index f05646fb8a..f312ddb55e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,3 +5,4 @@ texHeaders.bin
*.swp
*.swo
*.biprivatekey
+Thumbs.db
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000000..388b1f114f
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,14 @@
+branches:
+ only:
+ - master
+language: python
+python:
+ - "3.4"
+before_script:
+ - pip install pygithub
+ - pip install pygithub3
+script:
+ - python3 tools/deploy.py
+env:
+ global:
+ - secure: "KcJQbknBOdC5lA4nFGKPXVRVIGLDXDRzC8XkHuXJCE9pIR/wbxbkvx8fHKcC6SC9eHgzneC3+o4m4+CjIbVvIwDgslRbJ8Y59i90ncONmdoRx1HUYHwuYWVZm9HJFjCsIbrEqhSyyKS+PB3WZVOLbErtNHsgS8f43PTh5Ujg7Vg="
diff --git a/AUTHORS.txt b/AUTHORS.txt
index 366664efbd..737bfb590b 100644
--- a/AUTHORS.txt
+++ b/AUTHORS.txt
@@ -18,26 +18,37 @@ Kieran
NouberNou
PabstMirror
Ruthberg
+SilentSpike
tpM
ViperMaul
VKing
Walter Pearce
# CONTRIBUTORS
-11RDP-LoupVert
[BIG]Bull
+11RDP-LoupVert
ACCtomeek
+adam3adam
Adanteh
aeroson
Aggr094
+alef
+Aleksey EpMAK Yermakov
Alganthe
Anthariel
+Asgar Serran
+Bla1337
+BlackPixxel
BlackQwar
Brakoviejo
Brisse
+BullHorn
Clon1998
Codingboy
+Coren
Crusty
+Dharma Bellamkonda
+Dimaslg
eRazeri
evromalarkey
Falke75
@@ -47,49 +58,46 @@ Filip Basara
FreeZbe
geraldbolso1899
Ghost
+Gianmarco Varriale (TeamNuke)
GieNkoV
gpgpgpgp
Grzegorz
-Gianmarco Varriale (TeamNuke)
Hamburger SV
Harakhti
havena
Hawkins
-jokoho48
+jokoho482 `
Jonpas
+Kavinsky
Kllrt
+legman
Legolasindar "Viper"
licht-im-Norden87
+Macusercom
MarcBook
meat
Michail Nikolaev
nic547
+nikolauska
nomisum
+OnkelDisMaster
oscarmolinadev
pokertour
+Professor
rakowozz
+ramius86
Raspu86
Riccardo Petricca
Robert Boklahánics
-ramius86
+ruPaladin
simon84
Sniperwolf572
+SzwedzikPL
Tachi
Toaster
Tonic
Tourorist
Valentin Torikian
-zGuba
-Aleksey EpMAK Yermakov
-ruPaladin
-BlackPixxel
-Asgar Serran
-Kavinsky
-Coren
-OnkelDisMaster
-Dimaslg
VyMajoris(W-Cephei)
-Bla1337
-nikolauska
-adam3adam
-Professor
+Winter
+zGuba
diff --git a/README.md b/README.md
index 4ed84011bf..72b1336b57 100644
--- a/README.md
+++ b/README.md
@@ -4,23 +4,23 @@
-
-
-
+
-
-
-
+
-
diff --git a/ace_advanced_ballistics.dll b/ace_advanced_ballistics.dll
index 5aa9a66c0c..dd19f1d0d4 100644
Binary files a/ace_advanced_ballistics.dll and b/ace_advanced_ballistics.dll differ
diff --git a/ace_break_line.dll b/ace_break_line.dll
index 0379fd6f34..482486ddd3 100644
Binary files a/ace_break_line.dll and b/ace_break_line.dll differ
diff --git a/ace_clipboard.dll b/ace_clipboard.dll
index 4f77d63f1f..5b4ac1c537 100644
Binary files a/ace_clipboard.dll and b/ace_clipboard.dll differ
diff --git a/ace_fcs.dll b/ace_fcs.dll
index 4d8790b150..919a4d0e5b 100644
Binary files a/ace_fcs.dll and b/ace_fcs.dll differ
diff --git a/ace_medical.dll b/ace_medical.dll
new file mode 100644
index 0000000000..1f4f71d5ca
Binary files /dev/null and b/ace_medical.dll differ
diff --git a/ace_parse_imagepath.dll b/ace_parse_imagepath.dll
new file mode 100644
index 0000000000..33264959a8
Binary files /dev/null and b/ace_parse_imagepath.dll differ
diff --git a/addons/advanced_ballistics/$PBOPREFIX$ b/addons/advanced_ballistics/$PBOPREFIX$
new file mode 100644
index 0000000000..1ab65b7c32
--- /dev/null
+++ b/addons/advanced_ballistics/$PBOPREFIX$
@@ -0,0 +1 @@
+z\ace\addons\advanced_ballistics
\ No newline at end of file
diff --git a/addons/advanced_ballistics/ACE_Settings.hpp b/addons/advanced_ballistics/ACE_Settings.hpp
index 67bc51511e..757385deb3 100644
--- a/addons/advanced_ballistics/ACE_Settings.hpp
+++ b/addons/advanced_ballistics/ACE_Settings.hpp
@@ -5,23 +5,29 @@ class ACE_Settings {
typeName = "BOOL";
value = 0;
};
- class GVAR(alwaysSimulateForSnipers) {
- displayName = "Always Enabled For Snipers";
- description = "Always enables advanced ballistics when high power optics are used";
+ class GVAR(simulateForSnipers) {
+ displayName = "Enabled For Snipers";
+ description = "Enables advanced ballistics for non local snipers (when using high power optics)";
typeName = "BOOL";
value = 1;
};
- class GVAR(disabledInFullAutoMode) {
- displayName = "Disabled In FullAuto Mode";
- description = "Disables the advanced ballistics during full auto fire";
+ class GVAR(simulateForGroupMembers) {
+ displayName = "Enabled For Group Members";
+ description = "Enables advanced ballistics for non local group members";
typeName = "BOOL";
value = 0;
};
- class GVAR(onlyActiveForLocalPlayers) {
- displayName = "Disabled For Non Local Players";
- description = "Disables the advanced ballistics for bullets coming from other players (enable this if you encounter frame drops during heavy firefights in multiplayer)";
+ class GVAR(simulateForEveryone) {
+ displayName = "Enabled For Everyone";
+ description = "Enables advanced ballistics for all non local players (enabling this may degrade performance during heavy firefights in multiplayer)";
typeName = "BOOL";
- value = 1;
+ value = 0;
+ };
+ class GVAR(disabledInFullAutoMode) {
+ displayName = "Disabled In FullAuto Mode";
+ description = "Disables advanced ballistics during full auto fire";
+ typeName = "BOOL";
+ value = 0;
};
/* // TODO: We currently do not have firedEHs on vehicles
class GVAR(vehicleGunnerEnabled) {
diff --git a/addons/advanced_ballistics/CfgVehicles.hpp b/addons/advanced_ballistics/CfgVehicles.hpp
index fda4b9a8ff..27ccb2377b 100644
--- a/addons/advanced_ballistics/CfgVehicles.hpp
+++ b/addons/advanced_ballistics/CfgVehicles.hpp
@@ -2,7 +2,7 @@ class CfgVehicles {
class ACE_Module;
class GVAR(ModuleSettings): ACE_Module {
scope = 2;
- displayName = "Advanced Ballistics";
+ displayName = CSTRING(DisplayName);
icon = QUOTE(PATHTOF(UI\Icon_Module_Wind_ca.paa));
category = "ACE";
function = QUOTE(DFUNC(initModuleSettings));
@@ -12,29 +12,35 @@ class CfgVehicles {
author = "Ruthberg";
class Arguments {
class enabled {
- displayName = "Advanced Ballistics";
- description = "Enables advanced ballistics";
+ displayName = CSTRING(enabled_DisplayName);
+ description = CSTRING(enabled_Description);
typeName = "BOOL";
defaultValue = 0;
};
- class alwaysSimulateForSnipers {
- displayName = "Always Enabled For Snipers";
- description = "Always enables advanced ballistics when high power optics are used";
+ class simulateForSnipers {
+ displayName = CSTRING(simulateForSnipers_DisplayName);
+ description = CSTRING(simulateForSnipers_Description);
typeName = "BOOL";
defaultValue = 1;
};
+ class simulateForGroupMembers {
+ displayName = CSTRING(simulateForGroupMembers_DisplayName);
+ description = CSTRING(simulateForGroupMembers_Description);
+ typeName = "BOOL";
+ defaultValue = 0;
+ };
+ class simulateForEveryone {
+ displayName = CSTRING(simulateForEveryone_DisplayName);
+ description = CSTRING(simulateForEveryone_Description);
+ typeName = "BOOL";
+ defaultValue = 0;
+ };
class disabledInFullAutoMode {
- displayName = "Disabled In FullAuto Mode";
- description = "Disables the advanced ballistics during full auto fire";
+ displayName = CSTRING(disabledInFullAutoMod_DisplayName);
+ description = CSTRING(disabledInFullAutoMod_Description);
typeName = "BOOL";
defaultValue = 0;
};
- class onlyActiveForLocalPlayers {
- displayName = "Disabled For Non Local Players";
- description = "Disables the advanced ballistics for bullets coming from other players (enable this if you encounter frame drops during heavy firefights in multiplayer)";
- typeName = "BOOL";
- defaultValue = 1;
- };
/* // TODO: We currently do not have firedEHs on vehicles
class vehicleGunnerEnabled {
displayName = "Enabled For Vehicle Gunners";
@@ -44,35 +50,38 @@ class CfgVehicles {
};
*/
class ammoTemperatureEnabled {
- displayName = "Enable Ammo Temperature Simulation";
- description = "Muzzle velocity varies with ammo temperature";
+ displayName = CSTRING(ammoTemperatureEnabled_DisplayName);
+ description = CSTRING(ammoTemperatureEnabled_Description);
typeName = "BOOL";
defaultValue = 1;
};
class barrelLengthInfluenceEnabled {
- displayName = "Enable Barrel Length Simulation";
- description = "Muzzle velocity varies with barrel length";
+ displayName = CSTRING(barrelLengthInfluenceEnabled_DisplayName);
+ description = CSTRING(barrelLengthInfluenceEnabled_Description);
typeName = "BOOL";
defaultValue = 1;
};
class bulletTraceEnabled {
- displayName = "Enable Bullet Trace Effect";
- description = "Enables a bullet trace effect to high caliber bullets (only visible when looking through high power optics)";
+ displayName = CSTRING(bulletTraceEnabled_DisplayName);
+ description = CSTRING(bulletTraceEnabled_Description);
typeName = "BOOL";
defaultValue = 1;
};
class simulationInterval {
- displayName = "Simulation Interval";
- description = "Defines the interval between every calculation step";
+ displayName = CSTRING(simulationInterval_DisplayName);
+ description = CSTRING(simulationInterval_Description);
typeName = "NUMBER";
defaultValue = 0.0;
};
class simulationRadius {
- displayName = "Simulation Radius";
- description = "Defines the radius around the player (in meters) at which advanced ballistics are applied to projectiles";
+ displayName = CSTRING(simulationRadius_DisplayName);
+ description = CSTRING(simulationRadius_Description);
typeName = "NUMBER";
defaultValue = 3000;
};
};
+ class ModuleDescription {
+ description = CSTRING(Description);
+ };
};
-};
+};
\ No newline at end of file
diff --git a/addons/advanced_ballistics/RscTitles.hpp b/addons/advanced_ballistics/RscTitles.hpp
index b62af875d2..6deaf0a058 100644
--- a/addons/advanced_ballistics/RscTitles.hpp
+++ b/addons/advanced_ballistics/RscTitles.hpp
@@ -1,17 +1,13 @@
-class RscTitles
-{
- class RscTurretDial
- {
+class RscTitles {
+ class RscTurretDial {
idd=-1;
onLoad="with uiNameSpace do { RscTurretDial = _this select 0 };";
movingEnable=0;
duration=5;
fadeIn="false";
fadeOut="false";
- class controls
- {
- class RscTurretDial
- {
+ class controls {
+ class RscTurretDial {
idc=132949;
type=0;
style=128;
@@ -28,18 +24,15 @@ class RscTitles
};
};
- class RscProtractor
- {
+ class RscProtractor {
idd=-1;
onLoad="with uiNameSpace do { RscProtractor = _this select 0 };";
movingEnable=0;
duration=60;
fadeIn="false";
fadeOut="false";
- class controls
- {
- class RscProtractorBase
- {
+ class controls {
+ class RscProtractorBase {
idc=132950;
type=0;
style=48;
@@ -54,8 +47,7 @@ class RscTitles
sizeEx=0.027;
text="";
};
- class RscProtractorMarker : RscProtractorBase
- {
+ class RscProtractorMarker : RscProtractorBase {
idc=132951;
};
};
diff --git a/addons/advanced_ballistics/XEH_postInit.sqf b/addons/advanced_ballistics/XEH_postInit.sqf
index 8efdd6799b..b199acb9e5 100644
--- a/addons/advanced_ballistics/XEH_postInit.sqf
+++ b/addons/advanced_ballistics/XEH_postInit.sqf
@@ -4,24 +4,11 @@
GVAR(currentbulletID) = -1;
-GVAR(bulletDatabase) = [];
-GVAR(bulletDatabaseStartTime) = [];
-GVAR(bulletDatabaseSpeed) = [];
-GVAR(bulletDatabaseFrames) = [];
-GVAR(bulletDatabaseLastFrame) = [];
-GVAR(bulletDatabaseHDeflect) = [];
-GVAR(bulletDatabaseSpinDrift) = [];
-GVAR(bulletDatabaseOccupiedIndices) = [];
-GVAR(bulletDatabaseFreeIndices) = [];
-
-GVAR(WindInfo) = false;
-GVAR(WindInfoStart) = time;
-
GVAR(Protractor) = false;
-GVAR(ProtractorStart) = time;
+GVAR(ProtractorStart) = ACE_time;
GVAR(currentGrid) = 0;
-GVAR(INIT_MESSAGE_ENABLED) = false;
+GVAR(initMessageEnabled) = false;
GVAR(extensionAvailable) = true;
/* @TODO: Remove this until versioning is in sync with cmake/build versioning
diff --git a/addons/advanced_ballistics/XEH_preInit.sqf b/addons/advanced_ballistics/XEH_preInit.sqf
index 1d19a9c492..12018ad412 100644
--- a/addons/advanced_ballistics/XEH_preInit.sqf
+++ b/addons/advanced_ballistics/XEH_preInit.sqf
@@ -6,12 +6,12 @@ PREP(calculateAmmoTemperatureVelocityShift);
PREP(calculateAtmosphericCorrection);
PREP(calculateBarrelLengthVelocityShift);
PREP(calculateRetardation);
-PREP(calculateRoughnessLength);
PREP(calculateStabilityFactor);
-PREP(calculateWindSpeed);
PREP(displayProtractor);
PREP(handleFired);
PREP(initializeTerrainExtension);
PREP(initModuleSettings);
+PREP(readAmmoDataFromConfig);
+PREP(readWeaponDataFromConfig);
ADDON = true;
diff --git a/addons/advanced_ballistics/config.cpp b/addons/advanced_ballistics/config.cpp
index 1a2187783b..3f974b18df 100644
--- a/addons/advanced_ballistics/config.cpp
+++ b/addons/advanced_ballistics/config.cpp
@@ -5,7 +5,7 @@ class CfgPatches {
units[] = {};
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
- requiredAddons[] = {"ace_ballistics", "ace_weather", "ace_modules"};
+ requiredAddons[] = {"ace_ballistics", "ace_weather"};
author[] = {"Ruthberg"};
authorUrl = "https://github.com/ulteq";
VERSION_CONFIG;
diff --git a/addons/advanced_ballistics/functions/fnc_calculateAmmoTemperatureVelocityShift.sqf b/addons/advanced_ballistics/functions/fnc_calculateAmmoTemperatureVelocityShift.sqf
index c92e679a66..28df9d1d97 100644
--- a/addons/advanced_ballistics/functions/fnc_calculateAmmoTemperatureVelocityShift.sqf
+++ b/addons/advanced_ballistics/functions/fnc_calculateAmmoTemperatureVelocityShift.sqf
@@ -4,7 +4,7 @@
* Calculates the ammo temperature induced muzzle velocity shift
*
* Arguments:
- * 0: ammo - classname
+ * 0: muzzle velocity shift lookup table - m/s
* 1: temperature - degrees celcius
*
* Return Value:
@@ -15,17 +15,11 @@
*/
#include "script_component.hpp"
-private ["_ammo", "_temperature", "_muzzleVelocityTable", "_muzzleVelocityShift", "_temperatureIndexA", "_temperatureIndexB", "_temperatureRatio"];
-_ammo = _this select 0;
-_temperature = _this select 1;
+private ["_muzzleVelocityShiftTable", "_temperature", "_muzzleVelocityShift", "_temperatureIndexA", "_temperatureIndexB", "_temperatureRatio"];
+_muzzleVelocityShiftTable = _this select 0;
+_temperature = _this select 1;
-_muzzleVelocityTable = [];
-
-if (isArray(configFile >> "cfgAmmo" >> _ammo >> "ACE_ammoTempMuzzleVelocityShifts")) then {
- _muzzleVelocityTable = getArray(configFile >> "cfgAmmo" >> _ammo >> "ACE_ammoTempMuzzleVelocityShifts");
-};
-
-if (count _muzzleVelocityTable != 11) exitWith { 0 };
+if (count _muzzleVelocityShiftTable != 11) exitWith { 0 };
_temperatureIndexA = floor((_temperature + 15) / 5);
_temperatureIndexA = 0 max _temperatureIndexA;
@@ -37,6 +31,6 @@ _temperatureIndexB = _temperatureIndexB min 10;
_temperatureRatio = ((_temperature + 15) / 5) - floor((_temperature + 15) / 5);
-_muzzleVelocityShift = (_muzzleVelocityTable select _temperatureIndexA) * (1 - _temperatureRatio) + (_muzzleVelocityTable select _temperatureIndexB) * _temperatureRatio;
+_muzzleVelocityShift = (_muzzleVelocityShiftTable select _temperatureIndexA) * (1 - _temperatureRatio) + (_muzzleVelocityShiftTable select _temperatureIndexB) * _temperatureRatio;
_muzzleVelocityShift
diff --git a/addons/advanced_ballistics/functions/fnc_calculateBarrelLengthVelocityShift.sqf b/addons/advanced_ballistics/functions/fnc_calculateBarrelLengthVelocityShift.sqf
index b4cbd5bdc0..de037f49bc 100644
--- a/addons/advanced_ballistics/functions/fnc_calculateBarrelLengthVelocityShift.sqf
+++ b/addons/advanced_ballistics/functions/fnc_calculateBarrelLengthVelocityShift.sqf
@@ -4,9 +4,10 @@
* Calculates the muzzle velocity shift caused by different barrel lengths
*
* Arguments:
- * 0: ammo - classname
- * 0: weapon - classname
- * 1: muzzle velocity - m/s
+ * 0: barrel length - mm
+ * 1: muzzle velocity lookup table - m/s
+ * 2: barrel length lookup table - mm
+ * 3: muzzle velocity - m/s
*
* Return Value:
* 0: muzzle velocity shift - m/s
@@ -16,25 +17,13 @@
*/
#include "script_component.hpp"
-private ["_ammo", "_weapon", "_barrelLength", "_muzzleVelocityTable", "_barrelLengthTable", "_muzzleVelocity", "_lowerIndex", "_upperIndex", "_barrelLengthRatio", "_muzzleVelocityNew"];
-_ammo = _this select 0;
-_weapon = _this select 1;
-_muzzleVelocity = _this select 2;
-
-_barrelLength = getNumber(configFile >> "cfgWeapons" >> _weapon >> "ACE_barrelLength");
+private ["_barrelLength", "_muzzleVelocityTable", "_barrelLengthTable", "_muzzleVelocity", "_lowerIndex", "_upperIndex", "_barrelLengthRatio", "_muzzleVelocityNew"];
+_barrelLength = _this select 0;
+_muzzleVelocityTable = _this select 1;
+_barrelLengthTable = _this select 2;
+_muzzleVelocity = _this select 3;
if (_barrelLength == 0) exitWith { 0 };
-
-_muzzleVelocityTable = [];
-_barrelLengthTable = [];
-
-if (isArray(configFile >> "cfgAmmo" >> _ammo >> "ACE_muzzleVelocities")) then {
- _muzzleVelocityTable = getArray(configFile >> "cfgAmmo" >> _ammo >> "ACE_muzzleVelocities");
-};
-if (isArray(configFile >> "cfgAmmo" >> _ammo >> "ACE_barrelLengths")) then {
- _barrelLengthTable = getArray(configFile >> "cfgAmmo" >> _ammo >> "ACE_barrelLengths");
-};
-
if (count _muzzleVelocityTable != count _barrelLengthTable) exitWith { 0 };
if (count _muzzleVelocityTable == 0 || count _barrelLengthTable == 0) exitWith { 0 };
if (count _muzzleVelocityTable == 1) exitWith { (_muzzleVelocityTable select 0) - _muzzleVelocity };
diff --git a/addons/advanced_ballistics/functions/fnc_calculateStabilityFactor.sqf b/addons/advanced_ballistics/functions/fnc_calculateStabilityFactor.sqf
index 81b71aeb3b..9b205c3ec2 100644
--- a/addons/advanced_ballistics/functions/fnc_calculateStabilityFactor.sqf
+++ b/addons/advanced_ballistics/functions/fnc_calculateStabilityFactor.sqf
@@ -4,10 +4,10 @@
* Calculates the stability factor of a bullet
*
* Arguments:
- * 0: caliber - inches
- * 1: bullet length - inches
- * 2: bullet mass - grains
- * 3: barrel twist - inches
+ * 0: caliber - mm
+ * 1: bullet length - mm
+ * 2: bullet mass - grams
+ * 3: barrel twist - mm
* 4: muzzle velocity shift - m/s
* 5: temperature - degrees celcius
* 6: barometric Pressure - hPA
@@ -17,7 +17,8 @@
*
* Public: No
*/
-
+#include "script_component.hpp"
+
private ["_caliber", "_bulletLength", "_bulletMass", "_barrelTwist", "_muzzleVelocity", "_temperature", "_barometricPressure", "_l", "_t", "_stabilityFactor"];
_caliber = _this select 0;
_bulletLength = _this select 1;
@@ -31,15 +32,14 @@ _barometricPressure = _this select 6;
_t = _barrelTwist / _caliber;
_l = _bulletLength / _caliber;
-_stabilityFactor = 30 * _bulletMass / (_t^2 * _caliber^3 * _l * (1 + _l^2));
+_stabilityFactor = 7587000 * _bulletMass / (_t^2 * _caliber^3 * _l * (1 + _l^2));
-_muzzleVelocity = _muzzleVelocity * 3.2808399;
-if (_muzzleVelocity > 1120) then {
- _stabilityFactor = _stabilityFactor * (_muzzleVelocity / 2800) ^ (1/3);
+if (_muzzleVelocity > 341.376) then {
+ _stabilityFactor = _stabilityFactor * (_muzzleVelocity / 853.44) ^ (1/3);
} else {
- _stabilityFactor = _stabilityFactor * (_muzzleVelocity / 1120) ^ (1/3);
+ _stabilityFactor = _stabilityFactor * (_muzzleVelocity / 341.376) ^ (1/3);
};
-_stabilityFactor = _stabilityFactor * (_temperature + 273) / (15 + 273) * 1013.25 / _barometricPressure;
+_stabilityFactor = _stabilityFactor * KELVIN(_temperature) / KELVIN(15) * 1013.25 / _barometricPressure;
_stabilityFactor
diff --git a/addons/advanced_ballistics/functions/fnc_calculateWindSpeed.sqf b/addons/advanced_ballistics/functions/fnc_calculateWindSpeed.sqf
deleted file mode 100644
index e7b0a322e8..0000000000
--- a/addons/advanced_ballistics/functions/fnc_calculateWindSpeed.sqf
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Author: Ruthberg
- *
- * Calculates the true wind speed at a given world position
- *
- * Arguments:
- * 0: _this - world position
- *
- * Return Value:
- * 0: wind speed - m/s
- *
- * Public: No
- */
-#include "script_component.hpp"
-
-private ["_windSpeed", "_windDir", "_height", "_newWindSpeed", "_windSource", "_roughnessLength"];
-
-fnc_polar2vect = {
- private ["_mag2D"];
- _mag2D = (_this select 0) * cos((_this select 2));
- [_mag2D * sin((_this select 1)), _mag2D * cos((_this select 1)), (_this select 0) * sin((_this select 2))];
-};
-
-_windSpeed = vectorMagnitude ACE_wind;
-_windDir = (ACE_wind select 0) atan2 (ACE_wind select 1);
-
-// Wind gradient
-if (_windSpeed > 0.05) then {
- _height = (ASLToATL _this) select 2;
- _height = 0 max _height min 20;
- if (_height < 20) then {
- _roughnessLength = _this call FUNC(calculateRoughnessLength);
- _windSpeed = _windSpeed * ln(_height / _roughnessLength) / ln(20 / _roughnessLength);
- };
-};
-
-// Terrain effect on wind
-if (_windSpeed > 0.05) then {
- _newWindSpeed = 0;
- {
- _windSource = [100, _windDir + 180, _x] call fnc_polar2vect;
- if (!(terrainIntersectASL [_this, _this vectorAdd _windSource])) exitWith {
- _newWindSpeed = cos(_x * 9) * _windSpeed;
- };
- _windSource = [100, _windDir + 180 + _x, 0] call fnc_polar2vect;
- if (!(terrainIntersectASL [_this, _this vectorAdd _windSource])) exitWith {
- _newWindSpeed = cos(_x * 9) * _windSpeed;
- };
- _windSource = [100, _windDir + 180 - _x, 0] call fnc_polar2vect;
- if (!(terrainIntersectASL [_this, _this vectorAdd _windSource])) exitWith {
- _newWindSpeed = cos(_x * 9) * _windSpeed;
- };
- } forEach [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
- _windSpeed = _newWindSpeed;
-};
-
-// Obstacle effect on wind
-if (_windSpeed > 0.05) then {
- _newWindSpeed = 0;
- {
- _windSource = [20, _windDir + 180, _x] call fnc_polar2vect;
- if (!(lineIntersects [_this, _this vectorAdd _windSource])) exitWith {
- _newWindSpeed = cos(_x * 2) * _windSpeed;
- };
- _windSource = [20, _windDir + 180 + _x, 0] call fnc_polar2vect;
- if (!(lineIntersects [_this, _this vectorAdd _windSource])) exitWith {
- _newWindSpeed = cos(_x * 2) * _windSpeed;
- };
- _windSource = [20, _windDir + 180 - _x, 0] call fnc_polar2vect;
- if (!(lineIntersects [_this, _this vectorAdd _windSource])) exitWith {
- _newWindSpeed = cos(_x * 2) * _windSpeed;
- };
- } forEach [0, 5, 10, 15, 20, 25, 30, 35, 40, 45];
- _windSpeed = _newWindSpeed;
-};
-_windSpeed = 0 max _windSpeed;
-
-_windSpeed
diff --git a/addons/advanced_ballistics/functions/fnc_displayProtractor.sqf b/addons/advanced_ballistics/functions/fnc_displayProtractor.sqf
index 5fbdf2f12a..1a4c344b2e 100644
--- a/addons/advanced_ballistics/functions/fnc_displayProtractor.sqf
+++ b/addons/advanced_ballistics/functions/fnc_displayProtractor.sqf
@@ -45,12 +45,12 @@ GVAR(Protractor) = true;
1 cutRsc ["RscProtractor", "PLAIN", 1, false];
- __ctrl1 ctrlSetScale 0.75;
+ __ctrl1 ctrlSetScale 1;
__ctrl1 ctrlCommit 0;
__ctrl1 ctrlSetText QUOTE(PATHTOF(UI\protractor.paa));
__ctrl1 ctrlSetTextColor [1, 1, 1, 1];
- __ctrl2 ctrlSetScale 0.75;
+ __ctrl2 ctrlSetScale 1;
__ctrl2 ctrlSetPosition [(_refPosition select 0), (_refPosition select 1) - 0.0012 * _inclinationAngle, (_refPosition select 2), (_refPosition select 3)];
__ctrl2 ctrlCommit 0;
__ctrl2 ctrlSetText QUOTE(PATHTOF(UI\protractor_marker.paa));
diff --git a/addons/advanced_ballistics/functions/fnc_handleFired.sqf b/addons/advanced_ballistics/functions/fnc_handleFired.sqf
index e63b1d7dfc..2c3488f92d 100644
--- a/addons/advanced_ballistics/functions/fnc_handleFired.sqf
+++ b/addons/advanced_ballistics/functions/fnc_handleFired.sqf
@@ -19,7 +19,7 @@
*/
#include "script_component.hpp"
-private ["_unit", "_weapon", "_mode", "_ammo", "_magazine", "_caliber", "_bullet", "_abort", "_index", "_opticsName", "_opticType", "_bulletTraceVisible", "_temperature", "_barometricPressure", "_atmosphereModel", "_bulletMass", "_bulletLength", "_airFriction", "_dragModel", "_muzzleVelocity", "_muzzleVelocityShift", "_bulletVelocity", "_bulletSpeed", "_bulletLength", "_barrelTwist", "_twistDirection", "_stabilityFactor", "_transonicStabilityCoef", "_ballisticCoefficients", "_velocityBoundaries"];
+private ["_unit", "_weapon", "_mode", "_ammo", "_magazine", "_caliber", "_bullet", "_abort", "_AmmoCacheEntry", "_WeaponCacheEntry", "_opticsName", "_opticType", "_bulletTraceVisible", "_temperature", "_barometricPressure", "_bulletMass", "_bulletLength", "_muzzleVelocity", "_muzzleVelocityShift", "_bulletVelocity", "_bulletSpeed", "_bulletLength", "_barrelTwist", "_stabilityFactor"];
_unit = _this select 0;
_weapon = _this select 1;
_mode = _this select 3;
@@ -35,32 +35,41 @@ if (!([_unit] call EFUNC(common,isPlayer))) exitWith {};
if (underwater _unit) exitWith {};
if (!(_ammo isKindOf "BulletBase")) exitWith {};
if (_unit distance ACE_player > GVAR(simulationRadius)) exitWith {};
-if (GVAR(onlyActiveForLocalPlayers) && !(local _unit)) then {
- if (GVAR(alwaysSimulateForSnipers)) then {
- // The shooter is non local
+if (!GVAR(simulateForEveryone) && !(local _unit)) then {
+ // The shooter is non local
+ _abort = true;
+ if (GVAR(simulateForSnipers)) then {
if (currentWeapon _unit == primaryWeapon _unit && count primaryWeaponItems _unit > 2) then {
_opticsName = (primaryWeaponItems _unit) select 2;
- _opticType = getNumber(configFile >> "cfgWeapons" >> _opticsName >> "ItemInfo" >> "opticType");
+ _opticType = getNumber(configFile >> "CfgWeapons" >> _opticsName >> "ItemInfo" >> "opticType");
_abort = _opticType != 2; // We only abort if the non local shooter is not a sniper
};
- } else {
- _abort = true;
+ };
+ if (GVAR(simulateForGroupMembers) && _abort) then {
+ _abort = (group ACE_player) != (group _unit);
};
};
//if (!GVAR(vehicleGunnerEnabled) && !(_unit isKindOf "Man")) then { _abort = true; }; // We currently do not have firedEHs on vehicles
-if (GVAR(disabledInFullAutoMode) && getNumber(configFile >> "cfgWeapons" >> _weapon >> _mode >> "autoFire") == 1) then { _abort = true; };
+if (GVAR(disabledInFullAutoMode) && getNumber(configFile >> "CfgWeapons" >> _weapon >> _mode >> "autoFire") == 1) then { _abort = true; };
if (_abort || !(GVAR(extensionAvailable))) exitWith {
- [_bullet, getNumber(configFile >> "cfgAmmo" >> _ammo >> "airFriction")] call EFUNC(winddeflection,updateTrajectoryPFH);
+ [_bullet, getNumber(configFile >> "CfgAmmo" >> _ammo >> "airFriction")] call EFUNC(winddeflection,updateTrajectoryPFH);
};
-_airFriction = getNumber(configFile >> "cfgAmmo" >> _ammo >> "airFriction");
+_AmmoCacheEntry = uiNamespace getVariable format[QGVAR(%1), _ammo];
+if (isNil {_AmmoCacheEntry}) then {
+ _AmmoCacheEntry = _ammo call FUNC(readAmmoDataFromConfig);
+};
+_WeaponCacheEntry = uiNamespace getVariable format[QGVAR(%1), _weapon];
+if (isNil {_WeaponCacheEntry}) then {
+ _WeaponCacheEntry = _weapon call FUNC(readWeaponDataFromConfig);
+};
_bulletVelocity = velocity _bullet;
_muzzleVelocity = vectorMagnitude _bulletVelocity;
if (GVAR(barrelLengthInfluenceEnabled)) then {
- _muzzleVelocityShift = [_ammo, _weapon, _muzzleVelocity] call FUNC(calculateBarrelLengthVelocityShift);
+ _muzzleVelocityShift = [_WeaponCacheEntry select 2, _AmmoCacheEntry select 10, _AmmoCacheEntry select 11, _muzzleVelocity] call FUNC(calculateBarrelLengthVelocityShift);
if (_muzzleVelocityShift != 0) then {
_bulletVelocity = _bulletVelocity vectorAdd ((vectorNormalized _bulletVelocity) vectorMultiply (_muzzleVelocityShift));
_bullet setVelocity _bulletVelocity;
@@ -69,8 +78,8 @@ if (GVAR(barrelLengthInfluenceEnabled)) then {
};
if (GVAR(ammoTemperatureEnabled)) then {
- _temperature = GET_TEMPERATURE_AT_HEIGHT((getPosASL _unit) select 2);
- _muzzleVelocityShift = [_ammo, _temperature] call FUNC(calculateAmmoTemperatureVelocityShift);
+ _temperature = ((getPosASL _unit) select 2) call EFUNC(weather,calculateTemperatureAtHeight);
+ _muzzleVelocityShift = [_AmmoCacheEntry select 9, _temperature] call FUNC(calculateAmmoTemperatureVelocityShift);
if (_muzzleVelocityShift != 0) then {
_bulletVelocity = _bulletVelocity vectorAdd ((vectorNormalized _bulletVelocity) vectorMultiply (_muzzleVelocityShift));
_bullet setVelocity _bulletVelocity;
@@ -85,60 +94,27 @@ if (GVAR(bulletTraceEnabled) && cameraView == "GUNNER") then {
} else {
if (currentWeapon ACE_player == primaryWeapon ACE_player && count primaryWeaponItems ACE_player > 2) then {
_opticsName = (primaryWeaponItems ACE_player) select 2;
- _opticType = getNumber(configFile >> "cfgWeapons" >> _opticsName >> "ItemInfo" >> "opticType");
+ _opticType = getNumber(configFile >> "CfgWeapons" >> _opticsName >> "ItemInfo" >> "opticType");
_bulletTraceVisible = _opticType == 2;
};
};
};
-_caliber = getNumber(configFile >> "cfgAmmo" >> _ammo >> "ACE_caliber");
-_bulletLength = getNumber(configFile >> "cfgAmmo" >> _ammo >> "ACE_bulletLength");
-_bulletMass = getNumber(configFile >> "cfgAmmo" >> _ammo >> "ACE_bulletMass");
-_barrelTwist = getNumber(configFile >> "cfgWeapons" >> _weapon >> "ACE_barrelTwist");
+_caliber = _AmmoCacheEntry select 1;
+_bulletLength = _AmmoCacheEntry select 2;
+_bulletMass = _AmmoCacheEntry select 3;
+_barrelTwist = _WeaponCacheEntry select 0;
_stabilityFactor = 1.5;
if (_caliber > 0 && _bulletLength > 0 && _bulletMass > 0 && _barrelTwist > 0) then {
- _temperature = GET_TEMPERATURE_AT_HEIGHT((getPosASL _unit) select 2);
+ _temperature = ((getPosASL _unit) select 2) call EFUNC(weather,calculateTemperatureAtHeight);
_barometricPressure = ((getPosASL _bullet) select 2) call EFUNC(weather,calculateBarometricPressure);
_stabilityFactor = [_caliber, _bulletLength, _bulletMass, _barrelTwist, _muzzleVelocity, _temperature, _barometricPressure] call FUNC(calculateStabilityFactor);
};
-_twistDirection = 1;
-if (isNumber(configFile >> "cfgWeapons" >> _weapon >> "ACE_twistDirection")) then {
- _twistDirection = getNumber(configFile >> "cfgWeapons" >> _weapon >> "ACE_twistDirection");
- if (_twistDirection != -1 && _twistDirection != 0 && _twistDirection != 1) then {
- _twistDirection = 1;
- };
-};
-
-_transonicStabilityCoef = 0.5;
-if (isNumber(configFile >> "cfgAmmo" >> _ammo >> "ACE_transonicStabilityCoef")) then {
- _transonicStabilityCoef = getNumber(configFile >> "cfgAmmo" >> _ammo >> "ACE_transonicStabilityCoef");
-};
-
-_dragModel = 1;
-_ballisticCoefficients = [];
-_velocityBoundaries = [];
-_atmosphereModel = "ICAO";
-if (isNumber(configFile >> "cfgAmmo" >> _ammo >> "ACE_dragModel")) then {
- _dragModel = getNumber(configFile >> "cfgAmmo" >> _ammo >> "ACE_dragModel");
- if (!(_dragModel in [1, 2, 5, 6, 7, 8])) then {
- _dragModel = 1;
- };
-};
-if (isArray(configFile >> "cfgAmmo" >> _ammo >> "ACE_ballisticCoefficients")) then {
- _ballisticCoefficients = getArray(configFile >> "cfgAmmo" >> _ammo >> "ACE_ballisticCoefficients");
-};
-if (isArray(configFile >> "cfgAmmo" >> _ammo >> "ACE_velocityBoundaries")) then {
- _velocityBoundaries = getArray(configFile >> "cfgAmmo" >> _ammo >> "ACE_velocityBoundaries");
-};
-if (isText(configFile >> "cfgAmmo" >> _ammo >> "ACE_standardAtmosphere")) then {
- _atmosphereModel = getText(configFile >> "cfgAmmo" >> _ammo >> "ACE_standardAtmosphere");
-};
-
GVAR(currentbulletID) = (GVAR(currentbulletID) + 1) % 10000;
-"ace_advanced_ballistics" callExtension format["new:%1:%2:%3:%4:%5:%6:%7:%8:%9:%10:%11:%12:%13:%14:%15:%16:%17:%18", GVAR(currentbulletID), _airFriction, _ballisticCoefficients, _velocityBoundaries, _atmosphereModel, _dragModel, _stabilityFactor, _twistDirection, _muzzleVelocity, _transonicStabilityCoef, getPosASL _bullet, EGVAR(weather,Latitude), EGVAR(weather,currentTemperature), EGVAR(weather,Altitude), EGVAR(weather,currentHumidity), overcast, floor(time), time - floor(time)];
+"ace_advanced_ballistics" callExtension format["new:%1:%2:%3:%4:%5:%6:%7:%8:%9:%10:%11:%12:%13:%14:%15:%16:%17:%18", GVAR(currentbulletID), _AmmoCacheEntry select 0, _AmmoCacheEntry select 6, _AmmoCacheEntry select 7, _AmmoCacheEntry select 8, _AmmoCacheEntry select 5, _stabilityFactor, _WeaponCacheEntry select 1, _muzzleVelocity, _AmmoCacheEntry select 4, getPosASL _bullet, EGVAR(weather,Latitude), EGVAR(weather,currentTemperature), EGVAR(weather,Altitude), EGVAR(weather,currentHumidity), overcast, floor(ACE_time), ACE_time - floor(ACE_time)];
[{
private ["_args", "_index", "_bullet", "_caliber", "_bulletTraceVisible", "_bulletVelocity", "_bulletPosition"];
@@ -157,10 +133,10 @@ GVAR(currentbulletID) = (GVAR(currentbulletID) + 1) % 10000;
[_this select 1] call cba_fnc_removePerFrameHandler;
};
- if (_bulletTraceVisible && _bulletSpeed > 600) then {
- drop ["\A3\data_f\ParticleEffects\Universal\Refract","","Billboard",1,0.1,getPos _bullet,[0,0,0],0,1.275,1,0,[0.4*_caliber,0.2*_caliber],[[0,0,0,0.6],[0,0,0,0.4]],[1,0],0,0,"","",""];
+ if (_bulletTraceVisible && _bulletSpeed > 500) then {
+ drop ["\A3\data_f\ParticleEffects\Universal\Refract","","Billboard",1,0.1,getPos _bullet,[0,0,0],0,1.275,1,0,[0.02*_caliber,0.01*_caliber],[[0,0,0,0.65],[0,0,0,0.2]],[1,0],0,0,"","",""];
};
- call compile ("ace_advanced_ballistics" callExtension format["simulate:%1:%2:%3:%4:%5:%6:%7", _index, _bulletVelocity, _bulletPosition, ACE_wind, ASLToATL(_bulletPosition) select 2, floor(time), time - floor(time)]);
+ call compile ("ace_advanced_ballistics" callExtension format["simulate:%1:%2:%3:%4:%5:%6:%7", _index, _bulletVelocity, _bulletPosition, ACE_wind, ASLToATL(_bulletPosition) select 2, floor(ACE_time), ACE_time - floor(ACE_time)]);
}, GVAR(simulationInterval), [_bullet, _caliber, _bulletTraceVisible, GVAR(currentbulletID)]] call CBA_fnc_addPerFrameHandler;
diff --git a/addons/advanced_ballistics/functions/fnc_initModuleSettings.sqf b/addons/advanced_ballistics/functions/fnc_initModuleSettings.sqf
index ba7ea31a8f..186c0d0649 100644
--- a/addons/advanced_ballistics/functions/fnc_initModuleSettings.sqf
+++ b/addons/advanced_ballistics/functions/fnc_initModuleSettings.sqf
@@ -26,9 +26,10 @@ if !(_activated) exitWith {};
[_logic, QGVAR(ammoTemperatureEnabled), "ammoTemperatureEnabled"] call EFUNC(common,readSettingFromModule);
[_logic, QGVAR(barrelLengthInfluenceEnabled), "barrelLengthInfluenceEnabled"] call EFUNC(common,readSettingFromModule);
[_logic, QGVAR(bulletTraceEnabled), "bulletTraceEnabled"] call EFUNC(common,readSettingFromModule);
-[_logic, QGVAR(onlyActiveForLocalPlayers), "onlyActiveForLocalPlayers"] call EFUNC(common,readSettingFromModule);
+[_logic, QGVAR(simulateForEveryone), "simulateForEveryone"] call EFUNC(common,readSettingFromModule);
[_logic, QGVAR(disabledInFullAutoMode), "disabledInFullAutoMode"] call EFUNC(common,readSettingFromModule);
-[_logic, QGVAR(alwaysSimulateForSnipers), "alwaysSimulateForSnipers"] call EFUNC(common,readSettingFromModule);
+[_logic, QGVAR(simulateForSnipers), "simulateForSnipers"] call EFUNC(common,readSettingFromModule);
+[_logic, QGVAR(simulateForGroupMembers), "simulateForGroupMembers"] call EFUNC(common,readSettingFromModule);
[_logic, QGVAR(simulationInterval), "simulationInterval"] call EFUNC(common,readSettingFromModule);
[_logic, QGVAR(simulationRadius), "simulationRadius"] call EFUNC(common,readSettingFromModule);
diff --git a/addons/advanced_ballistics/functions/fnc_initializeTerrainExtension.sqf b/addons/advanced_ballistics/functions/fnc_initializeTerrainExtension.sqf
index 3930526433..b2fc7ba084 100644
--- a/addons/advanced_ballistics/functions/fnc_initializeTerrainExtension.sqf
+++ b/addons/advanced_ballistics/functions/fnc_initializeTerrainExtension.sqf
@@ -18,11 +18,11 @@ if (!GVAR(extensionAvailable)) exitWith {};
private ["_initStartTime", "_mapSize", "_mapGrids", "_gridCells", "_x", "_y", "_gridCenter", "_gridHeight", "_gridNumObjects", "_gridSurfaceIsWater"];
-_initStartTime = time;
+_initStartTime = ACE_time;
_mapSize = getNumber (configFile >> "CfgWorlds" >> worldName >> "MapSize");
if (("ace_advanced_ballistics" callExtension format["init:%1:%2", worldName, _mapSize]) == "Terrain already initialized") exitWith {
- if (GVAR(INIT_MESSAGE_ENABLED)) then {
+ if (GVAR(initMessageEnabled)) then {
systemChat "AdvancedBallistics: Terrain already initialized";
};
};
@@ -40,8 +40,8 @@ GVAR(currentGrid) = 0;
_initStartTime = _args select 2;
if (GVAR(currentGrid) >= _gridCells) exitWith {
- if (GVAR(INIT_MESSAGE_ENABLED)) then {
- systemChat format["AdvancedBallistics: Finished terrain initialization in %1 seconds", ceil(time - _initStartTime)];
+ if (GVAR(initMessageEnabled)) then {
+ systemChat format["AdvancedBallistics: Finished terrain initialization in %1 seconds", ceil(ACE_time - _initStartTime)];
};
[_this select 1] call cba_fnc_removePerFrameHandler;
};
diff --git a/addons/advanced_ballistics/functions/fnc_readAmmoDataFromConfig.sqf b/addons/advanced_ballistics/functions/fnc_readAmmoDataFromConfig.sqf
new file mode 100644
index 0000000000..10e7e60df2
--- /dev/null
+++ b/addons/advanced_ballistics/functions/fnc_readAmmoDataFromConfig.sqf
@@ -0,0 +1,64 @@
+/*
+ * Author: Ruthberg
+ *
+ * Reads the ammo class config and updates the config cache
+ *
+ * Arguments:
+ * 0: ammo - classname
+ *
+ * Return Value:
+ * 0: [_airFriction, _caliber, _bulletLength, _bulletMass, _transonicStabilityCoef, _dragModel, _ballisticCoefficients, _velocityBoundaries, _atmosphereModel, _ammoTempMuzzleVelocityShifts, _muzzleVelocityTable, _barrelLengthTable]
+ *
+ * Return value:
+ * None
+ */
+#include "script_component.hpp"
+
+private ["_ammo", "_airFriction", "_caliber", "_bulletLength", "_bulletMass", "_transonicStabilityCoef", "_dragModel", "_ballisticCoefficients", "_velocityBoundaries", "_atmosphereModel", "_ammoTempMuzzleVelocityShifts", "_muzzleVelocityTable", "_barrelLengthTable", "_result"];
+_ammo = _this;
+
+_airFriction = getNumber(configFile >> "CfgAmmo" >> _ammo >> "airFriction");
+_caliber = getNumber(configFile >> "CfgAmmo" >> _ammo >> "ACE_caliber");
+_bulletLength = getNumber(configFile >> "CfgAmmo" >> _ammo >> "ACE_bulletLength");
+_bulletMass = getNumber(configFile >> "CfgAmmo" >> _ammo >> "ACE_bulletMass");
+_transonicStabilityCoef = 0.5;
+if (isNumber(configFile >> "CfgAmmo" >> _ammo >> "ACE_transonicStabilityCoef")) then {
+ _transonicStabilityCoef = getNumber(configFile >> "CfgAmmo" >> _ammo >> "ACE_transonicStabilityCoef");
+};
+_dragModel = 1;
+_ballisticCoefficients = [];
+_velocityBoundaries = [];
+_atmosphereModel = "ICAO";
+if (isNumber(configFile >> "CfgAmmo" >> _ammo >> "ACE_dragModel")) then {
+ _dragModel = getNumber(configFile >> "CfgAmmo" >> _ammo >> "ACE_dragModel");
+ if (!(_dragModel in [1, 2, 5, 6, 7, 8])) then {
+ _dragModel = 1;
+ };
+};
+if (isArray(configFile >> "CfgAmmo" >> _ammo >> "ACE_ballisticCoefficients")) then {
+ _ballisticCoefficients = getArray(configFile >> "CfgAmmo" >> _ammo >> "ACE_ballisticCoefficients");
+};
+if (isArray(configFile >> "CfgAmmo" >> _ammo >> "ACE_velocityBoundaries")) then {
+ _velocityBoundaries = getArray(configFile >> "CfgAmmo" >> _ammo >> "ACE_velocityBoundaries");
+};
+if (isText(configFile >> "CfgAmmo" >> _ammo >> "ACE_standardAtmosphere")) then {
+ _atmosphereModel = getText(configFile >> "CfgAmmo" >> _ammo >> "ACE_standardAtmosphere");
+};
+_ammoTempMuzzleVelocityShifts = [];
+if (isArray(configFile >> "CfgAmmo" >> _ammo >> "ACE_ammoTempMuzzleVelocityShifts")) then {
+ _ammoTempMuzzleVelocityShifts = getArray(configFile >> "CfgAmmo" >> _ammo >> "ACE_ammoTempMuzzleVelocityShifts");
+};
+_muzzleVelocityTable = [];
+_barrelLengthTable = [];
+if (isArray(configFile >> "CfgAmmo" >> _ammo >> "ACE_muzzleVelocities")) then {
+ _muzzleVelocityTable = getArray(configFile >> "CfgAmmo" >> _ammo >> "ACE_muzzleVelocities");
+};
+if (isArray(configFile >> "CfgAmmo" >> _ammo >> "ACE_barrelLengths")) then {
+ _barrelLengthTable = getArray(configFile >> "CfgAmmo" >> _ammo >> "ACE_barrelLengths");
+};
+
+_result = [_airFriction, _caliber, _bulletLength, _bulletMass, _transonicStabilityCoef, _dragModel, _ballisticCoefficients, _velocityBoundaries, _atmosphereModel, _ammoTempMuzzleVelocityShifts, _muzzleVelocityTable, _barrelLengthTable];
+
+uiNamespace setVariable [format[QGVAR(%1), _ammo], _result];
+
+_result
diff --git a/addons/advanced_ballistics/functions/fnc_readWeaponDataFromConfig.sqf b/addons/advanced_ballistics/functions/fnc_readWeaponDataFromConfig.sqf
new file mode 100644
index 0000000000..8a1a29f7b0
--- /dev/null
+++ b/addons/advanced_ballistics/functions/fnc_readWeaponDataFromConfig.sqf
@@ -0,0 +1,34 @@
+/*
+ * Author: Ruthberg
+ *
+ * Reads the weapon class config and updates the config cache
+ *
+ * Arguments:
+ * 0: weapon - classname
+ *
+ * Return Value:
+ * 0: [_barrelTwist, _twistDirection, _barrelLength]
+ *
+ * Return value:
+ * None
+ */
+#include "script_component.hpp"
+
+private ["_weapon", "_barrelTwist", "_twistDirection", "_barrelLength", "_result"];
+_weapon = _this;
+
+_barrelTwist = getNumber(configFile >> "CfgWeapons" >> _weapon >> "ACE_barrelTwist");
+_twistDirection = 1;
+if (isNumber(configFile >> "CfgWeapons" >> _weapon >> "ACE_twistDirection")) then {
+ _twistDirection = getNumber(configFile >> "CfgWeapons" >> _weapon >> "ACE_twistDirection");
+ if (_twistDirection != -1 && _twistDirection != 0 && _twistDirection != 1) then {
+ _twistDirection = 1;
+ };
+};
+_barrelLength = getNumber(configFile >> "CfgWeapons" >> _weapon >> "ACE_barrelLength");
+
+_result = [_barrelTwist, _twistDirection, _barrelLength];
+
+uiNamespace setVariable [format[QGVAR(%1), _weapon], _result];
+
+_result
diff --git a/addons/advanced_ballistics/initKeybinds.sqf b/addons/advanced_ballistics/initKeybinds.sqf
index cddf47877a..102107dadc 100644
--- a/addons/advanced_ballistics/initKeybinds.sqf
+++ b/addons/advanced_ballistics/initKeybinds.sqf
@@ -1,4 +1,4 @@
-["ACE3 Equipment", QGVAR(ProtractorKey), localize "STR_ACE_AdvancedBallistics_ProtractorKey",
+["ACE3 Equipment", QGVAR(ProtractorKey), localize LSTRING(ProtractorKey),
{
// Conditions: canInteract
if !([ACE_player, objNull, []] call EFUNC(common,canInteractWith)) exitWith {false};
diff --git a/addons/advanced_ballistics/script_component.hpp b/addons/advanced_ballistics/script_component.hpp
index 3334bb3207..757330a5d0 100644
--- a/addons/advanced_ballistics/script_component.hpp
+++ b/addons/advanced_ballistics/script_component.hpp
@@ -21,6 +21,5 @@
#define SPECIFIC_GAS_CONSTANT_DRY_AIR 287.058
#define STD_AIR_DENSITY_ICAO 1.22498
#define STD_AIR_DENSITY_ASM 1.20885
-#define GET_TEMPERATURE_AT_HEIGHT(h) (EGVAR(weather,currentTemperature) - 0.0065 * (h))
#define EXTENSION_REQUIRED_VERSION "1.0"
diff --git a/addons/advanced_ballistics/stringtable.xml b/addons/advanced_ballistics/stringtable.xml
index 0de8071754..5c6dd58d6e 100644
--- a/addons/advanced_ballistics/stringtable.xml
+++ b/addons/advanced_ballistics/stringtable.xml
@@ -1,7 +1,7 @@
-
-
+
+
Show Wind Info
Pokaż inf. o wietrze
Mostra indicazioni del vento
@@ -13,7 +13,7 @@
Zobrazit informace o větru
Mostrar Informação do Vento
-
+
Show Protractor
Pokaż kątomierz
Mostra il rapportatore
@@ -25,5 +25,194 @@
Zobrazit úhloměr
Mostrar Transferidor
+
+ Advanced Ballistics
+ Zaawansowana balistyka
+ Balística avanzada
+ Erweiterte Ballistik
+ Pokročilá balistika
+ Balística avançada
+
+
+ Advanced Ballistics
+ Zaawansowana balistyka
+ Balística avanzada
+ Erweiterte Ballistik
+ Pokročilá balistika
+ Balística avançada
+
+
+ Enables advanced ballistics
+ Aktywuje zaawansowaną balistykę
+ Activa la balística avanzada
+ Aktiviert die erweiterte Ballistik
+ Aktivuje pokročilou balistiku
+ Ativa balística avançada
+
+
+ Enabled For Snipers
+ Activada para francotiradores
+ Akt. dla snajperów
+ Für Scharfschützen aktiviert
+ Povoleno pro odstřelovače
+ Ativar para caçadores
+
+
+ Enables advanced ballistics for non local snipers (when using high power optics)
+ Activa la balística avanzada para francotiradores no locales (cuando se usa una mira telescópica)
+ Aktywuje zaawansowaną balistykę dla nielokalnych snajperów (kiedy używają optyki)
+ Aktiviert die erweiterte Ballistik für nicht lokale Scharfschützen (bei Benutzung von Optiken mit starker Vergrößerung)
+ Aktivuje pokročilou balistiku pro nelokální odstřelovače (když používá výkonnou optiku)
+ Ativa balística avançada para caçadores não locais (quando usando miras telescópicas)
+
+
+ Enabled For Group Members
+ Activada para miembros de grupo
+ Akt. dla czł. grupy
+ Für Gruppenmitglieder aktiviert
+ Povoleno pro členy skupiny
+ Ativada para membros do grupo
+
+
+ Enables advanced ballistics for non local group members
+ Activada la balística avanzada para miembros de grupo no locales
+ Aktywuje zaawansowaną balistykę dla nielokalnych członków grupy
+ Aktiviert die erweiterte Ballistik für nicht lokale Gruppenmitglieder
+ Aktivuje pokročilou balistiku pro nelokální členy skupiny
+ Ativa balística avançada para membros de grupo não locais
+
+
+ Enabled For Everyone
+ Activada para todos
+ Akt. dla wszystkich
+ Für jeden aktiviert
+ Povoleno pro všechny
+ Ativada para todos
+
+
+ Enables advanced ballistics for all non local players (enabling this may degrade performance during heavy firefights in multiplayer)
+ Activada la balística avanzada para todos los jugadores no locales (activarlo puede degradar el rendimiento durante grandes tiroteos en multijugador).
+ Aktywuje zaawansowaną balistykę dla wszystkich nielokalnych graczy (aktywacja tej opcji może spodowować spory spadek wydajności podczas ciężkiej wymiany ognia)
+ Aktiviert die erweiterte Ballistik für alle nicht lokalen Spieler (das Aktivieren dieser Funktion kann zur Beeinträchtigung des Spielerlebnisses im Multiplayer führen)
+ Aktivovat pokročilou balistiku pro všechny nelokální hráče (aktivace této možnosti způsobuje pokles snímu za sekundu během těžké přestřelky v multiplayeru)
+ Ativa balística avançada para todos os jogadores não locais (ativando isso pode degradar a performance durante troca de tiros intensas no multiplayer)
+
+
+ Always Enabled For Group Members
+ Zawsze akt. dla czł. grupy
+ Siempre activada para miembros de grupo
+ Für Gruppenmitglieder immer aktiviert
+ Vždy povoleno pro členy skupiny
+ Sempre ativada para membros do grupo
+
+
+ Always enables advanced ballistics when a group member fires
+ Aktywuje zaawansowaną balistykę dla wszystkich członków grupy
+ Activada la balística avanzada siempre cuando miembros de grupo disparan
+ Aktiviert die erweiterte Ballistik immer, wenn ein Gruppenmitglied schießt
+ Aktivuje pokročilou balistiku pro členy skupiny
+ Sempre ative balística avançada quando um membro do grupo disparar
+
+
+ Disabled In FullAuto Mode
+ Wył. podczas ognia auto.
+ Desactivada en modo automático
+ Beim vollautomatischen Feuern deaktiviert
+ Zakázáno v automatickém režimu střelby
+ Desabilitar no modo automático
+
+
+ Disables the advanced ballistics during full auto fire
+ Dezaktywuje zaawansowaną balistykę podczas ognia automatycznego
+ Desactivada la balística avanzada durante el fuego automático
+ Deaktiviert die erweiterte Ballistik beim vollautomatischen Feuern
+ Zákáže pokročilou balistiku během střelby v režimu automat
+ Desabilitar a balística avançada durante fogo automático
+
+
+ Enable Ammo Temperature Simulation
+ Symulacja temp. amunicji
+ Activar simulación de temperatura de munición
+ Simulation der Munitionstemperatur aktivieren
+ Povolit simulaci teploty munice
+ Ativar simulação de temperatura de munição
+
+
+ Muzzle velocity varies with ammo temperature
+ Prędkość wylotowa pocisku jest zależna od temperatury amunicji
+ La velocidad de salida varía con la temperatura de la munición
+ Munitionstemperatur hat Einfluss auf die Mündungsgeschwindigkeit
+ Úsťová rychlost je závislá na teplotě munice
+ A velocidade de saída varia com a temperatura da munição
+
+
+ Enable Barrel Length Simulation
+ Symulacja długości lufy
+ Habilitar la simulación de longitud del cañón
+ Simulation der Lauflänge aktivieren
+ Povolit simulaci délky hlavně
+ Ativar a simulação de comprimento do cano
+
+
+ Muzzle velocity varies with barrel length
+ Prędkość wylotowa pocisku jest zależna od długości lufy
+ La velocidad de salidal varía con la longitud del cañón
+ Lauflänge beeinflusst Mündungsgeschwindigkeit
+ Úsťová rychlost je závislá na délce hlavně
+ A velocidade de saída caria com o comprimento do cano
+
+
+ Enable Bullet Trace Effect
+ Efekt smugi pocisku
+ Activar el efecto trazador de la bala
+ Geschossspureffekt aktivieren
+ Povolit efekt trasírek
+ Ativa efeito traçante de projétil
+
+
+ Enables a bullet trace effect to high caliber bullets (only visible when looking through high power optics)
+ Aktywuje efekt smugi pocisku dla pocisków wysokokalibrowych (widoczne tylko podczas patrzenia przez optykę)
+ Activa el efecto trazador de la balas de gran calibre (solo visible cuando se mira a través de una mira telescópica)
+ Aktiviere Geschossspureffekt für hohe Kaliber (bei Benutzung von Optiken mit starker Vergrößerung)
+ Aktivuje efekt trasírek z vysokokaliberních zbraní (viditelné pouze skrze výkonnou optiku)
+ Ativa o efeito traçante de projétil para projéteis de alto calibre (somente visível quando observado por miras telescópicas)
+
+
+ Simulation Interval
+ Interwał symulacji
+ Intervalo de simulación
+ Simulationsintervall
+ Interval simulace
+ Intervalo da simulação
+
+
+ Defines the interval between every calculation step
+ Określa interwał pomiędzy każdym krokiem kalkulacji
+ Define el intervalo entre cada cálculo
+ Legt das Intervall zwischen den Berechnungsschritten fest
+ Určuje interval mezi každým výpočtem
+ Define o intervalo entre cada cálculo
+
+
+ Simulation Radius
+ Zasięg symulacji
+ Radio de simulación
+ Simulationsradius
+ Rozsah simulace
+ Raio de simulação
+
+
+ Defines the radius around the player (in meters) at which advanced ballistics are applied to projectiles
+ Określa obszar naokoło gracza (w metrach), na którym zaawansowana balistyka jest aplikowana dla pocisków
+ Define el radio alrededor del jugador (en metros) en el cual se aplica la balística avanzada a los proyectiles
+ Gibt den Radius (in Metern) um den Spieler an, bei dem die erweiterte Ballistik auf Geschosse angewendet wird
+ Určuje oblast kolem hráče (v metrech), kde je pokročilá balistika použita na projektil
+ Define o raio ao redor do jogador (em metros) onde a balística avançada será aplicada aos projéteis
+
+
+ Moduł ten pozwala aktywować zaawansowaną balistykę biorącą przy obliczeniach trajektorii lotu pocisku pod uwagę takie rzeczy jak temperatura powietrza, ciśnienie atmosferyczne, wilgotność powietrza, siły Coriolisa i Eotvosa, grawitację a także broń z jakiej wykonywany jest strzał oraz rodzaj amunicji. Wszystko to sprowadza się na bardzo dokładne odwzorowanie balistyki.
+ Tento modul umožňuje aktivovat pokročilou balistiku, která vypočítává trajektorii kulky a bere do úvahy věci jako je teplota vzduchu, atmosférický tlak, vlhkost vzduchu, gravitaci, typ munice a zbraň, ze které je náboj vystřelen. To vše přispívá k velmi přesné balistice.
+ Este módulo permite que você ative cálculos de balística avançada, fazendo a trajetória do projétil levar em consideração coisas como temperatura do ar, pressão atmosférica, umidade, força de Coriolis, a gravidade, o modelo da arma no qual o disparo é realizado e o tipo de munição. Tudo isso acrescenta-se a um balística muito precisa.
+
\ No newline at end of file
diff --git a/addons/ai/CfgAISkill.hpp b/addons/ai/CfgAISkill.hpp
index dfa0299509..c01b5eb96e 100644
--- a/addons/ai/CfgAISkill.hpp
+++ b/addons/ai/CfgAISkill.hpp
@@ -21,7 +21,8 @@ class CfgAISkill {
courage[] = {0,0, 1,0.7}; // {0,0,1,1};
endurance[] = {0,0, 1,0.7}; // {0,0,1,1};
general[] = {0,0, 1,0.9}; // {0,0,1,1};
- reloadSpeed[] = {0,0, 1,0.8}; // {0,0,1,1};
+ // apparently breaks rapid firing in single fire mode for players
+ //reloadSpeed[] = {0,0, 1,0.8}; // {0,0,1,1};
spotDistance[] = {0,0, 1,0.9}; // {0,0.2,1,0.4};
spotTime[] = {0,0, 1,0.7}; // {0,0,1,0.7};
};
diff --git a/addons/ai/script_component.hpp b/addons/ai/script_component.hpp
index 6097849c6b..7add51c06c 100644
--- a/addons/ai/script_component.hpp
+++ b/addons/ai/script_component.hpp
@@ -1,5 +1,5 @@
#define COMPONENT ai
-#include "\z\ace\Addons\main\script_mod.hpp"
+#include "\z\ace\addons\main\script_mod.hpp"
#ifdef DEBUG_ENABLED_AI
#define DEBUG_MODE_FULL
@@ -9,4 +9,4 @@
#define DEBUG_SETTINGS DEBUG_SETTINGS_AI
#endif
-#include "\z\ace\Addons\main\script_macros.hpp"
\ No newline at end of file
+#include "\z\ace\addons\main\script_macros.hpp"
\ No newline at end of file
diff --git a/addons/aircraft/CfgVehicles.hpp b/addons/aircraft/CfgVehicles.hpp
index 559b8dc2e1..9839149b3d 100644
--- a/addons/aircraft/CfgVehicles.hpp
+++ b/addons/aircraft/CfgVehicles.hpp
@@ -176,8 +176,8 @@ class CfgVehicles {
};
class CargoRamp_Open: DoorL1_Open {
userActionID = 52;
- displayName = "$STR_ACE_Aircraft_OpenCargoRamp";
- textToolTip = "$STR_ACE_Aircraft_OpenCargoRamp";
+ displayName = CSTRING(OpenCargoRamp);
+ textToolTip = CSTRING(OpenCargoRamp);
position = "action_cargoramp";
radius = 3.0;
condition = "this animationPhase ""cargoramp_open"" < 0.5 AND Alive(this)";
@@ -185,8 +185,8 @@ class CfgVehicles {
};
class CargoRamp_Close: DoorL1_Close {
userActionID = 55;
- displayName = "$STR_ACE_Aircraft_CloseCargoRamp";
- textToolTip = "$STR_ACE_Aircraft_CloseCargoRamp";
+ displayName = CSTRING(CloseCargoRamp);
+ textToolTip = CSTRING(CloseCargoRamp);
position = "action_cargoramp";
radius = 3.0;
condition = "this animationPhase ""cargoramp_open"" > 0.5 AND Alive(this)";
diff --git a/addons/aircraft/CfgWeapons.hpp b/addons/aircraft/CfgWeapons.hpp
index dc84c9f04a..ac8a759bd3 100644
--- a/addons/aircraft/CfgWeapons.hpp
+++ b/addons/aircraft/CfgWeapons.hpp
@@ -29,7 +29,7 @@ class CfgWeapons {
reloadTime = 0.1;
};
class Burst: Mode_Burst {
- displayName = "$STR_ACE_Aircraft_CMFlareLauncher_Burst_Name";
+ displayName = CSTRING(CMFlareLauncher_Burst_Name);
};
};
@@ -50,12 +50,12 @@ class CfgWeapons {
};
class ACE_gatling_20mm_Comanche: gatling_20mm {
- displayName = "$STR_ACE_Aircraft_gatling_20mm_Name";
+ displayName = CSTRING(gatling_20mm_Name);
class manual: manual {
reloadTime = 0.04;
dispersion = 0.006;
- displayName = "$STR_ACE_Aircraft_gatling_20mm_Name";
+ displayName = CSTRING(gatling_20mm_Name);
};
class close: close {
reloadTime = 0.04;
diff --git a/addons/aircraft/Heli_Attack_01_base_F.hpp b/addons/aircraft/Heli_Attack_01_base_F.hpp
index 14ca7ef7cd..26a4605910 100644
--- a/addons/aircraft/Heli_Attack_01_base_F.hpp
+++ b/addons/aircraft/Heli_Attack_01_base_F.hpp
@@ -891,9 +891,12 @@ class Heli_Attack_01_base_F: Helicopter_Base_F {
class OpticsIn
{
- class WideUnstabalized
- {
- opticsDisplayName = "WU";
+ delete Narrow;
+ delete Medium;
+ delete Wide;
+
+ class ACE_WideUnstabilized {
+ opticsDisplayName = "W NS";
initAngleX = 0;
minAngleX = -35;
maxAngleX = 10;
@@ -910,8 +913,7 @@ class Heli_Attack_01_base_F: Helicopter_Base_F {
horizontallyStabilized = 1;
gunnerOpticsModel = "\A3\Weapons_F_Beta\Reticle\Heli_Attack_01_Optics_Gunner_wide_F";
};
- class Wide
- {
+ class ACE_Wide: ACE_WideUnstabilized {
opticsDisplayName = "W";
initAngleX = 0;
minAngleX = -35;
@@ -929,8 +931,7 @@ class Heli_Attack_01_base_F: Helicopter_Base_F {
horizontallyStabilized = 1;
gunnerOpticsModel = "\A3\Weapons_F_Beta\Reticle\Heli_Attack_01_Optics_Gunner_wide_F";
};
- class Medium: Wide
- {
+ class ACE_Medium: ACE_Wide {
opticsDisplayName = "M";
initFov = 0.093;
minFov = 0.093;
@@ -940,8 +941,7 @@ class Heli_Attack_01_base_F: Helicopter_Base_F {
horizontallyStabilized = 1;
gunnerOpticsModel = "\A3\Weapons_F_Beta\Reticle\Heli_Attack_01_Optics_Gunner_medium_F";
};
- class Narrow: Wide
- {
+ class ACE_Narrow: ACE_Wide {
opticsDisplayName = "N";
initFov = 0.029;
minFov = 0.029;
@@ -952,8 +952,7 @@ class Heli_Attack_01_base_F: Helicopter_Base_F {
gunnerOpticsModel = "\A3\Weapons_F_Beta\Reticle\Heli_Attack_01_Optics_Gunner_narrow_F";
};
- class Narrower: Wide
- {
+ class ACE_Narrower: ACE_Wide {
opticsDisplayName = "Z";
initFov = 0.01;
minFov = 0.01;
diff --git a/addons/aircraft/stringtable.xml b/addons/aircraft/stringtable.xml
index 1dd01e08ab..e917ca7e9d 100644
--- a/addons/aircraft/stringtable.xml
+++ b/addons/aircraft/stringtable.xml
@@ -1,4 +1,4 @@
-
+
@@ -34,7 +34,7 @@
Otevřít nákladní prostor
Rakodórámpa nyitása
Открыть грузовой отсек
- Apri la porta del cargo
+ Apri la rampa di carico
Abrir porta de carga
@@ -46,7 +46,7 @@
Zavřít nákladní prostor
Rakodórámpa zárása
Закрыть грузовой отсек
- Chiudi la porta del cargo
+ Chiudi la rampa di carico
Fechar porta de carga
diff --git a/addons/apl/LWTS_optic.p3d b/addons/apl/LWTS_optic.p3d
new file mode 100644
index 0000000000..874bd9051f
Binary files /dev/null and b/addons/apl/LWTS_optic.p3d differ
diff --git a/addons/apl/data/Jezek_kov.rvmat b/addons/apl/data/Jezek_kov.rvmat
new file mode 100644
index 0000000000..d2133e6b5a
--- /dev/null
+++ b/addons/apl/data/Jezek_kov.rvmat
@@ -0,0 +1,79 @@
+ambient[]={1.000000,1.000000,1.000000,1.000000};
+diffuse[]={1.000000,1.000000,1.000000,1.000000};
+forcedDiffuse[]={0.000000,0.000000,0.000000,0.000000};
+emmisive[]={0.000000,0.000000,0.000000,1.000000};
+specular[]={1.000000,1.000000,1.000000,1.000000};
+specularPower=83.900002;
+PixelShaderID="Super";
+VertexShaderID="Super";
+class Stage1 {
+ texture="z\ace\addons\apl\data\jezek_texture_NOHQ.tga";
+ uvSource="tex";
+ class uvTransform {
+ aside[]={1.000000,0.000000,0.000000};
+ up[]={0.000000,1.000000,0.000000};
+ dir[]={0.000000,0.000000,0.000000};
+ pos[]={0.000000,0.000000,0.000000};
+ };
+};
+class Stage2 {
+ texture="#(argb,8,8,3)color(0.5,0.5,0.5,1,DT)";
+ uvSource="tex";
+ class uvTransform {
+ aside[]={1.000000,0.000000,0.000000};
+ up[]={0.000000,1.000000,0.000000};
+ dir[]={0.000000,0.000000,0.000000};
+ pos[]={0.000000,0.000000,0.000000};
+ };
+};
+class Stage3 {
+ texture="#(argb,8,8,3)color(0,0,0,0,MC)";
+ uvSource="tex";
+ class uvTransform {
+ aside[]={1.000000,0.000000,0.000000};
+ up[]={0.000000,1.000000,0.000000};
+ dir[]={0.000000,0.000000,0.000000};
+ pos[]={0.000000,0.000000,0.000000};
+ };
+};
+class Stage4 {
+ texture="#(argb,8,8,3)color(1,1,1,1,AS)";
+ uvSource="tex";
+ class uvTransform
+ {
+ aside[]={1.000000,0.000000,0.000000};
+ up[]={0.000000,1.000000,0.000000};
+ dir[]={0.000000,0.000000,0.000000};
+ pos[]={0.000000,0.000000,0.000000};
+ };
+};
+class Stage5 {
+ texture="z\ace\addons\apl\data\jezek_texture_SMDI.tga";
+ uvSource="tex";
+ class uvTransform {
+ aside[]={1.000000,0.000000,0.000000};
+ up[]={0.000000,1.000000,0.000000};
+ dir[]={0.000000,0.000000,0.000000};
+ pos[]={0.000000,0.000000,0.000000};
+ };
+};
+class Stage6 {
+ texture="#(ai,32,128,1)fresnel(1.85,0.64)";
+ uvSource="tex";
+ class uvTransform {
+ aside[]={1.000000,0.000000,0.000000};
+ up[]={0.000000,1.000000,0.000000};
+ dir[]={0.000000,0.000000,0.000000};
+ pos[]={0.000000,0.000000,0.000000};
+ };
+};
+class Stage7 {
+ texture="a3\data_f\env_land_co.paa";
+ uvSource="tex";
+ class uvTransform {
+ aside[]={1.000000,0.000000,0.000000};
+ up[]={0.000000,1.000000,0.000000};
+ dir[]={0.000000,0.000000,0.000000};
+ pos[]={0.000000,0.000000,0.000000};
+ };
+};
diff --git a/addons/apl/data/barbwire_a_co.paa b/addons/apl/data/barbwire_a_co.paa
new file mode 100644
index 0000000000..1809c2c08e
Binary files /dev/null and b/addons/apl/data/barbwire_a_co.paa differ
diff --git a/addons/apl/data/barbwire_a_nohq.paa b/addons/apl/data/barbwire_a_nohq.paa
new file mode 100644
index 0000000000..5612dc460a
Binary files /dev/null and b/addons/apl/data/barbwire_a_nohq.paa differ
diff --git a/addons/apl/data/barbwire_a_ns.rvmat b/addons/apl/data/barbwire_a_ns.rvmat
new file mode 100644
index 0000000000..0a6ad7c316
--- /dev/null
+++ b/addons/apl/data/barbwire_a_ns.rvmat
@@ -0,0 +1,78 @@
+ambient[]={1.000000,1.000000,1.000000,1.000000};
+diffuse[]={1.000000,1.000000,1.000000,1.000000};
+forcedDiffuse[]={0.000000,0.000000,0.000000,0.000000};
+emmisive[]={0.000000,0.000000,0.000000,1.000000};
+specular[]={1.000000,1.000000,1.000000,0.000000};
+specularPower=16.000000;
+PixelShaderID="Super";
+VertexShaderID="Super";
+class Stage1 {
+ texture="z\ace\addons\apl\data\BarbWire_A_NOHQ.tga";
+ uvSource="tex";
+ class uvTransform {
+ aside[]={1.000000,0.000000,0.000000};
+ up[]={0.000000,1.000000,0.000000};
+ dir[]={0.000000,0.000000,0.000000};
+ pos[]={0.000000,0.000000,0.000000};
+ };
+};
+class Stage2 {
+ texture="#(argb,8,8,3)color(0.5,0.5,0.5,1,DT)";
+ uvSource="tex";
+ class uvTransform {
+ aside[]={1.000000,0.000000,0.000000};
+ up[]={0.000000,1.000000,0.000000};
+ dir[]={0.000000,0.000000,0.000000};
+ pos[]={0.000000,0.000000,0.000000};
+ };
+};
+class Stage3 {
+ texture="#(argb,8,8,3)color(0,0,0,0,MC)";
+ uvSource="tex";
+ class uvTransform {
+ aside[]={1.000000,0.000000,0.000000};
+ up[]={0.000000,1.000000,0.000000};
+ dir[]={0.000000,0.000000,0.000000};
+ pos[]={0.000000,0.000000,0.000000};
+ };
+};
+class Stage4 {
+ texture="#(argb,8,8,3)color(1,1,1,1,AS)";
+ uvSource="tex";
+ class uvTransform {
+ aside[]={1.000000,0.000000,0.000000};
+ up[]={0.000000,1.000000,0.000000};
+ dir[]={0.000000,0.000000,0.000000};
+ pos[]={0.000000,0.000000,0.000000};
+ };
+};
+class Stage5 {
+ texture="#(argb,8,8,3)color(0,0,1,1,SMDI)";
+ uvSource="tex";
+ class uvTransform {
+ aside[]={1.000000,0.000000,0.000000};
+ up[]={0.000000,1.000000,0.000000};
+ dir[]={0.000000,0.000000,0.000000};
+ pos[]={0.000000,0.000000,0.000000};
+ };
+};
+class Stage6 {
+ texture="#(ai,32,128,1)fresnel(0.01,0.01)";
+ uvSource="tex";
+ class uvTransform {
+ aside[]={1.000000,0.000000,0.000000};
+ up[]={0.000000,1.000000,0.000000};
+ dir[]={0.000000,0.000000,0.000000};
+ pos[]={0.000000,0.000000,0.000000};
+ };
+};
+class Stage7 {
+ texture="#(argb,8,8,3)color(0,0,0,1,CO)";
+ uvSource="tex";
+ class uvTransform {
+ aside[]={1.000000,0.000000,0.000000};
+ up[]={0.000000,1.000000,0.000000};
+ dir[]={0.000000,0.000000,0.000000};
+ pos[]={0.000000,0.000000,0.000000};
+ };
+};
diff --git a/addons/apl/data/default.rvmat b/addons/apl/data/default.rvmat
new file mode 100644
index 0000000000..f70da1fcf0
--- /dev/null
+++ b/addons/apl/data/default.rvmat
@@ -0,0 +1,8 @@
+ambient[]={1,1,1,1};
+diffuse[]={1,1,1,1};
+forcedDiffuse[]={0,0,0,0};
+emmisive[]={0,0,0,1};
+specular[]={0,0,0,0};
+specularPower=0;
+PixelShaderID="Normal";
+VertexShaderID="Basic";
diff --git a/addons/apl/data/default_vehicle_ti_ca.paa b/addons/apl/data/default_vehicle_ti_ca.paa
new file mode 100644
index 0000000000..53ca8a62b7
Binary files /dev/null and b/addons/apl/data/default_vehicle_ti_ca.paa differ
diff --git a/addons/apl/data/glass_House.bisurf b/addons/apl/data/glass_House.bisurf
new file mode 100644
index 0000000000..b8b91bb2a6
--- /dev/null
+++ b/addons/apl/data/glass_House.bisurf
@@ -0,0 +1,10 @@
+Density=2400;
+rough=0;
+dust=0;
+bulletPenetrability=50;
+soundEnviron=Empty;
+isWater=false;
+friction=0.1;
+restitution=0.1;
+impact = Hit_Glass;
+soundHit = glass;
\ No newline at end of file
diff --git a/addons/apl/data/glass_house.rvmat b/addons/apl/data/glass_house.rvmat
new file mode 100644
index 0000000000..004fd8c6e5
--- /dev/null
+++ b/addons/apl/data/glass_house.rvmat
@@ -0,0 +1 @@
+surfaceInfo="z\ace\addons\apl\data\glass_House.bisurf";
\ No newline at end of file
diff --git a/addons/apl/data/jezek_texture_co.paa b/addons/apl/data/jezek_texture_co.paa
new file mode 100644
index 0000000000..7b2e16d0e7
Binary files /dev/null and b/addons/apl/data/jezek_texture_co.paa differ
diff --git a/addons/apl/data/jezek_texture_nohq.paa b/addons/apl/data/jezek_texture_nohq.paa
new file mode 100644
index 0000000000..6a34328e5f
Binary files /dev/null and b/addons/apl/data/jezek_texture_nohq.paa differ
diff --git a/addons/apl/data/jezek_texture_smdi.paa b/addons/apl/data/jezek_texture_smdi.paa
new file mode 100644
index 0000000000..415d98a09f
Binary files /dev/null and b/addons/apl/data/jezek_texture_smdi.paa differ
diff --git a/addons/apl/data/metal4_weapons_vehicles_int_512_dt.paa b/addons/apl/data/metal4_weapons_vehicles_int_512_dt.paa
new file mode 100644
index 0000000000..a023628a55
Binary files /dev/null and b/addons/apl/data/metal4_weapons_vehicles_int_512_dt.paa differ
diff --git a/addons/apl/data/optics_bg_blurred_round_ca.paa b/addons/apl/data/optics_bg_blurred_round_ca.paa
new file mode 100644
index 0000000000..b449e342c1
Binary files /dev/null and b/addons/apl/data/optics_bg_blurred_round_ca.paa differ
diff --git a/addons/apl/data/optics_bg_square_ca.paa b/addons/apl/data/optics_bg_square_ca.paa
new file mode 100644
index 0000000000..43c9d97b3c
Binary files /dev/null and b/addons/apl/data/optics_bg_square_ca.paa differ
diff --git a/addons/apl/data/plastic.bisurf b/addons/apl/data/plastic.bisurf
new file mode 100644
index 0000000000..84984886ec
--- /dev/null
+++ b/addons/apl/data/plastic.bisurf
@@ -0,0 +1,10 @@
+Density=1380;
+rough=0.1;
+dust=0;
+bulletPenetrability=150;
+soundEnviron=Empty;
+isWater=false;
+friction=0.7;
+restitution=0.3;
+impact = default_Mat;
+soundHit = plastic;
\ No newline at end of file
diff --git a/addons/apl/data/plastic.rvmat b/addons/apl/data/plastic.rvmat
new file mode 100644
index 0000000000..6cf20f3d7f
--- /dev/null
+++ b/addons/apl/data/plastic.rvmat
@@ -0,0 +1,4 @@
+surfaceInfo="z\ace\addons\apl\data\plastic.bisurf";
+
+diffuse[]={0.5,0.5,1.0,1.000000};
+ambient[]={0.5,0.5,1.0,1.000000};
\ No newline at end of file
diff --git a/addons/apl/data/plastic_512_dt.paa b/addons/apl/data/plastic_512_dt.paa
new file mode 100644
index 0000000000..62c48c90a4
Binary files /dev/null and b/addons/apl/data/plastic_512_dt.paa differ
diff --git a/addons/apl/data/plech.paa b/addons/apl/data/plech.paa
new file mode 100644
index 0000000000..240e1ce03f
Binary files /dev/null and b/addons/apl/data/plech.paa differ
diff --git a/addons/apl/data/twis_m16_ca.paa b/addons/apl/data/twis_m16_ca.paa
new file mode 100644
index 0000000000..784c3b791e
Binary files /dev/null and b/addons/apl/data/twis_m16_ca.paa differ
diff --git a/addons/apl/data/vehicle_destr1024_1024_mc.paa b/addons/apl/data/vehicle_destr1024_1024_mc.paa
new file mode 100644
index 0000000000..68dfc1b977
Binary files /dev/null and b/addons/apl/data/vehicle_destr1024_1024_mc.paa differ
diff --git a/addons/apl/data/vehicle_destr1024_1024_smdi.paa b/addons/apl/data/vehicle_destr1024_1024_smdi.paa
new file mode 100644
index 0000000000..2a2cfc0357
Binary files /dev/null and b/addons/apl/data/vehicle_destr1024_1024_smdi.paa differ
diff --git a/addons/apl/sounds/padak_let.wss b/addons/apl/sounds/padak_let.wss
new file mode 100644
index 0000000000..19476becd8
Binary files /dev/null and b/addons/apl/sounds/padak_let.wss differ
diff --git a/addons/atragmx/$PBOPREFIX$ b/addons/atragmx/$PBOPREFIX$
new file mode 100644
index 0000000000..c42e89e22d
--- /dev/null
+++ b/addons/atragmx/$PBOPREFIX$
@@ -0,0 +1 @@
+z\ace\addons\atragmx
\ No newline at end of file
diff --git a/addons/atragmx/CfgVehicles.hpp b/addons/atragmx/CfgVehicles.hpp
index f015f0e0b9..65ef589d0f 100644
--- a/addons/atragmx/CfgVehicles.hpp
+++ b/addons/atragmx/CfgVehicles.hpp
@@ -4,13 +4,13 @@ class CfgVehicles {
class ACE_SelfActions {
class ACE_Equipment {
class GVAR(open) {
- displayName = "$STR_ACE_ATragMX_OpenATragMXDialog";
+ displayName = CSTRING(OpenATragMXDialog);
condition = QUOTE(call FUNC(can_show));
statement = QUOTE(call FUNC(create_dialog));
showDisabled = 0;
priority = 2;
icon = PATHTOF(UI\ATRAG_Icon.paa);
- exceptions[] = {"notOnMap", "isNotInside"};
+ exceptions[] = {"notOnMap", "isNotInside", "isNotSitting"};
};
};
};
diff --git a/addons/atragmx/CfgWeapons.hpp b/addons/atragmx/CfgWeapons.hpp
index 07d2fa4aee..42d1e56ae2 100644
--- a/addons/atragmx/CfgWeapons.hpp
+++ b/addons/atragmx/CfgWeapons.hpp
@@ -6,8 +6,8 @@ class CfgWeapons {
class ACE_ATragMX: ACE_ItemCore {
author = "Ruthberg";
scope = 2;
- displayName = "$STR_ACE_ATragMX_Name";
- descriptionShort = "$STR_ACE_ATragMX_Description";
+ displayName = CSTRING(Name);
+ descriptionShort = CSTRING(Description);
model = PATHTOF(data\tdsrecon.p3d);
picture = PATHTOF(UI\ATRAG_Icon.paa);
icon = "iconObject_circle";
diff --git a/addons/atragmx/RscTitles.hpp b/addons/atragmx/RscTitles.hpp
index 4ae08c20aa..97dad6e7b6 100644
--- a/addons/atragmx/RscTitles.hpp
+++ b/addons/atragmx/RscTitles.hpp
@@ -142,6 +142,7 @@ class ATragMX_Display {
name="ATragMX_Display";
idd=-1;
onLoad="uiNamespace setVariable ['ATragMX_Display', (_this select 0)]";
+ onUnload=QUOTE(_this call FUNC(on_close_dialog));
movingEnable=1;
controlsBackground[]={};
objects[]={};
@@ -151,7 +152,7 @@ class ATragMX_Display {
type=0;
font="TahomaB";
SizeEX=0.025;
- idc=-1;
+ idc=720000;
style=48;
x=0.55*safezoneW+safezoneX-0.256;
y=0.265*safezoneH+safezoneY-0.1;
@@ -159,7 +160,7 @@ class ATragMX_Display {
h=1.024*4/3;
colorBackground[]={1,1,1,1};
colorText[]={1,1,1,1};
- text=PATHTOF(UI\atrag.paa);
+ text=PATHTOF(UI\atrag_d.paa);
};
class POWER: ATragMX_RscButton {
idc=-1;
diff --git a/addons/atragmx/UI/ATRAG.paa b/addons/atragmx/UI/ATRAG_D.paa
similarity index 100%
rename from addons/atragmx/UI/ATRAG.paa
rename to addons/atragmx/UI/ATRAG_D.paa
diff --git a/addons/atragmx/UI/ATRAG_N.paa b/addons/atragmx/UI/ATRAG_N.paa
new file mode 100644
index 0000000000..a588fdbc8b
Binary files /dev/null and b/addons/atragmx/UI/ATRAG_N.paa differ
diff --git a/addons/atragmx/XEH_postInit.sqf b/addons/atragmx/XEH_postInit.sqf
index 7b0a2c9962..4b61a28551 100644
--- a/addons/atragmx/XEH_postInit.sqf
+++ b/addons/atragmx/XEH_postInit.sqf
@@ -6,39 +6,41 @@ if ((profileNamespace getVariable ["ACE_ATragMX_profileNamespaceVersion", 0]) ==
GVAR(gunList) = profileNamespace getVariable "ACE_ATragMX_gunList";
} else {
// Profile Name, Muzzle Velocity, Zero Range, Scope Base Angle, AirFriction, Bore Height, Scope Unit, Scope Click Unit, Scope Click Number, Maximum Elevation, Dialed Elevation, Dialed Windage, Mass, Bullet Diameter, Rifle Twist, BC, Drag Model, Atmosphere Model
- GVAR(gunList) = [["12.7x108mm" , 820, 100, 0.0657, -0.0006400, 3.81, 0, 2, 10, 120, 0, 0, 48.28, 12.7, 38.10, 0.630, 1, "ASM" ],
+ GVAR(gunList) = [["12.7x108mm" , 820, 100, 0.0657485, -0.00063800, 3.81, 0, 2, 10, 120, 0, 0, 48.28, 12.7, 38.10, 0.630, 1, "ASM" ],
- ["12.7x99mm AMAX" , 860, 100, 0.0612, -0.0003740, 3.81, 0, 2, 10, 120, 0, 0, 48.60, 12.7, 38.10, 1.050, 1, "ASM" ],
- ["12.7x99mm" , 900, 100, 0.0623, -0.0006000, 3.81, 0, 2, 10, 120, 0, 0, 41.92, 12.7, 38.10, 0.670, 1, "ASM" ],
+ ["12.7x99mm AMAX" , 860, 100, 0.0611565, -0.00036645, 3.81, 0, 2, 10, 120, 0, 0, 48.60, 12.7, 38.10, 1.050, 1, "ASM" ],
+ ["12.7x99mm" , 900, 100, 0.0582418, -0.00057503, 3.81, 0, 2, 10, 120, 0, 0, 41.92, 12.7, 38.10, 0.670, 1, "ASM" ],
- ["12.7x54mm" , 300, 100, 0.3395, -0.0001400, 3.81, 0, 2, 10, 120, 0, 0, 48.60, 12.7, 24.13, 1.050, 1, "ASM" ],
+ ["12.7x54mm" , 300, 100, 0.3394630, -0.00019268, 3.81, 0, 2, 10, 120, 0, 0, 48.60, 12.7, 24.13, 1.050, 1, "ASM" ],
- [".408 Chey Tac" , 910, 100, 0.0571, -0.0003950, 3.81, 0, 2, 10, 120, 0, 0, 27.15, 10.4, 33.02, 0.970, 1, "ASM" ],
+ [".408 Chey Tac" , 910, 100, 0.0569400, -0.00038944, 3.81, 0, 2, 10, 120, 0, 0, 27.15, 10.4, 33.02, 0.970, 1, "ASM" ],
- ["9.3×64mm" , 870, 100, 0.0619, -0.0010600, 3.81, 0, 2, 10, 120, 0, 0, 14.90, 9.30, 35.56, 0.368, 1, "ASM" ],
+ ["9.3×64mm" , 870, 100, 0.0619295, -0.00108571, 3.81, 0, 2, 10, 120, 0, 0, 14.90, 9.30, 35.56, 0.368, 1, "ASM" ],
- [".338LM 250gr" , 880, 100, 0.0598, -0.0006060, 3.81, 0, 2, 10, 120, 0, 0, 16.20, 8.58, 25.40, 0.322, 7, "ICAO"],
- [".338LM 300gr" , 800, 100, 0.0677, -0.0005350, 3.81, 0, 2, 10, 120, 0, 0, 19.44, 8.58, 25.40, 0.381, 7, "ICAO"],
- [".338LM API526" , 880, 100, 0.0601, -0.0006730, 3.81, 0, 2, 10, 120, 0, 0, 16.39, 8.58, 25.40, 0.290, 7, "ICAO"],
+ [".338LM 250gr" , 880, 100, 0.0598469, -0.00059133, 3.81, 0, 2, 10, 120, 0, 0, 16.20, 8.58, 25.40, 0.322, 7, "ICAO"],
+ [".338LM 300gr" , 800, 100, 0.0677343, -0.00052190, 3.81, 0, 2, 10, 120, 0, 0, 19.44, 8.58, 25.40, 0.381, 7, "ICAO"],
+ [".338LM API526" , 895, 100, 0.0588865, -0.00069611, 3.81, 0, 2, 10, 120, 0, 0, 16.39, 8.58, 25.40, 0.560, 1, "ASM" ],
- [".300WM Mk248 Mod 0", 900, 100, 0.0584, -0.0008300, 3.81, 0, 2, 10, 120, 0, 0, 13.31, 7.80, 25.40, 0.268, 7, "ICAO"],
- [".300WM Mk248 Mod 1", 867, 100, 0.0611, -0.0008150, 3.81, 0, 2, 10, 120, 0, 0, 14.26, 7.80, 25.40, 0.310, 7, "ICAO"],
- [".300WM Berger OTM" , 853, 100, 0.0622, -0.0007600, 3.81, 0, 2, 10, 120, 0, 0, 14.90, 7.80, 25.40, 0.368, 7, "ICAO"],
+ [".300WM Mk248 Mod 0", 900, 100, 0.0584442, -0.00070530, 3.81, 0, 2, 10, 120, 0, 0, 13.31, 7.80, 25.40, 0.268, 7, "ICAO"],
+ [".300WM Mk248 Mod 1", 867, 100, 0.0610738, -0.00061188, 3.81, 0, 2, 10, 120, 0, 0, 14.26, 7.80, 25.40, 0.310, 7, "ICAO"],
+ [".300WM Berger OTM" , 853, 100, 0.0622179, -0.00053733, 3.81, 0, 2, 10, 120, 0, 0, 14.90, 7.80, 25.40, 0.368, 7, "ICAO"],
- ["7.62x54mmR" , 800, 100, 0.0692, -0.0010230, 3.81, 0, 2, 10, 120, 0, 0, 9.849, 7.92, 24.13, 0.400, 1, "ICAO"],
+ ["7.62x54mmR" , 800, 100, 0.0691878, -0.00100023, 3.81, 0, 2, 10, 120, 0, 0, 9.849, 7.92, 24.13, 0.400, 1, "ICAO"],
- ["7.62x51mm M80" , 810, 100, 0.0679, -0.0010350, 3.81, 0, 2, 10, 120, 0, 0, 9.525, 7.82, 25.40, 0.200, 7, "ICAO"],
- ["7.62x51mm M118LR" , 780, 100, 0.0710, -0.0008525, 3.81, 0, 2, 10, 120, 0, 0, 11.34, 7.82, 25.40, 0.243, 7, "ICAO"],
- ["7.62x51mm Mk319" , 910, 100, 0.0585, -0.0010300, 3.81, 0, 2, 10, 120, 0, 0, 8.424, 7.82, 25.40, 0.377, 1, "ICAO"],
- ["7.62x51mm Subsonic", 320, 100, 0.3060, -0.0004910, 3.81, 0, 2, 10, 120, 0, 0, 12.96, 7.82, 25.40, 0.235, 7, "ICAO"],
+ ["7.62x51mm M80" , 810, 100, 0.0679374, -0.00100957, 3.81, 0, 2, 10, 120, 0, 0, 9.525, 7.82, 25.40, 0.200, 7, "ICAO"],
+ ["7.62x51mm M118LR" , 780, 100, 0.0710319, -0.00082828, 3.81, 0, 2, 10, 120, 0, 0, 11.34, 7.82, 25.40, 0.243, 7, "ICAO"],
+ ["7.62x51mm Mk319" , 910, 100, 0.0584524, -0.00102338, 3.81, 0, 2, 10, 120, 0, 0, 8.424, 7.82, 25.40, 0.377, 1, "ICAO"],
+ ["7.62x51mm M993" , 930, 100, 0.0570316, -0.00107148, 3.81, 0, 2, 10, 120, 0, 0, 8.230, 7.82, 25.40, 0.359, 1, "ICAO"],
+ ["7.62x51mm Subsonic", 320, 100, 0.3059680, -0.00049899, 3.81, 0, 2, 10, 120, 0, 0, 12.96, 7.82, 25.40, 0.235, 7, "ICAO"],
- ["6.5x39mm" , 800, 100, 0.0683, -0.0007850, 3.81, 0, 2, 10, 120, 0, 0, 7.970, 6.71, 22.86, 0.263, 7, "ICAO"],
- ["6.5x47mm Lapua" , 800, 100, 0.0682, -0.0007710, 3.81, 0, 2, 10, 120, 0, 0, 9.007, 6.71, 22.86, 0.290, 7, "ICAO"],
- ["6.5mm Creedmor" , 840, 100, 0.0637, -0.0006510, 3.81, 0, 2, 10, 120, 0, 0, 9.072, 6.71, 22.86, 0.317, 7, "ICAO"],
+ ["6.5x39mm" , 800, 100, 0.0683482, -0.00075308, 3.81, 0, 2, 10, 120, 0, 0, 7.970, 6.71, 22.86, 0.263, 7, "ICAO"],
+ ["6.5x47mm Lapua" , 800, 100, 0.0682221, -0.00067037, 3.81, 0, 2, 10, 120, 0, 0, 9.007, 6.71, 22.86, 0.290, 7, "ICAO"],
+ ["6.5mm Creedmor" , 840, 100, 0.0636501, -0.00060887, 3.81, 0, 2, 10, 120, 0, 0, 9.072, 6.71, 22.86, 0.317, 7, "ICAO"],
- ["5.56x45mm M855" , 870, 100, 0.0626, -0.0012650, 3.81, 0, 2, 10, 120, 0, 0, 4.018, 5.70, 17.78, 0.151, 7, "ASM" ],
- ["5.56x45mm Mk262" , 820, 100, 0.0671, -0.0011250, 3.81, 0, 2, 10, 120, 0, 0, 4.990, 5.70, 17.78, 0.361, 1, "ASM" ],
- ["5.56x45mm Mk318" , 880, 100, 0.0616, -0.0011200, 3.81, 0, 2, 10, 120, 0, 0, 4.018, 5.70, 17.78, 0.307, 1, "ASM" ]];
+ ["5.56x45mm M855" , 870, 100, 0.0626386, -0.00126466, 3.81, 0, 2, 10, 120, 0, 0, 4.018, 5.70, 17.78, 0.151, 7, "ASM" ],
+ ["5.56x45mm Mk262" , 820, 100, 0.0671481, -0.00109563, 3.81, 0, 2, 10, 120, 0, 0, 4.990, 5.70, 17.78, 0.361, 1, "ASM" ],
+ ["5.56x45mm Mk318" , 880, 100, 0.0615937, -0.00123318, 3.81, 0, 2, 10, 120, 0, 0, 4.018, 5.70, 17.78, 0.307, 1, "ASM" ],
+ ["5.56x45mm M995" , 869, 100, 0.0626713, -0.00123272, 3.81, 0, 2, 10, 120, 0, 0, 4.536, 5.70, 17.78, 0.310, 1, "ASM" ]];
[] call FUNC(clear_user_data);
profileNamespace setVariable ["ACE_ATragMX_gunList", GVAR(gunList)];
diff --git a/addons/atragmx/XEH_preInit.sqf b/addons/atragmx/XEH_preInit.sqf
index 6ec288b9c7..0277de1c14 100644
--- a/addons/atragmx/XEH_preInit.sqf
+++ b/addons/atragmx/XEH_preInit.sqf
@@ -4,7 +4,6 @@ ADDON = false;
PREP(add_new_gun);
PREP(calculate_range_card);
-PREP(calculate_scope_base_angle);
PREP(calculate_solution);
PREP(calculate_target_range_assist);
PREP(calculate_target_solution);
@@ -68,5 +67,6 @@ PREP(update_target_data);
PREP(update_target_selection);
PREP(update_unit_selection);
PREP(update_zero_range);
+PREP(on_close_dialog);
ADDON = true;
diff --git a/addons/atragmx/functions/fnc_calculate_range_card.sqf b/addons/atragmx/functions/fnc_calculate_range_card.sqf
index cfaf7441f8..516138fcee 100644
--- a/addons/atragmx/functions/fnc_calculate_range_card.sqf
+++ b/addons/atragmx/functions/fnc_calculate_range_card.sqf
@@ -47,16 +47,16 @@ _temperature = GVAR(temperature);
_barometricPressure = GVAR(barometricPressure);
_relativeHumidity = GVAR(relativeHumidity);
if (!GVAR(atmosphereModeTBH)) then {
- _barometricPressure = 1013.25 * exp(-(_altitude) / 7990);
+ _barometricPressure = 1013.25 * (1 - (0.0065 * _altitude) / (273.15 + _temperature + 0.0065 * _altitude)) ^ 5.255754495;
_relativeHumidity = 50;
};
private ["_bulletLength", "_stabilityFactor"];
-_bulletLength = 1.8;
+_bulletLength = 45.72;
_stabilityFactor = 1.5;
if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then {
if (_bulletDiameter > 0 && _bulletLength > 0 && _bulletMass > 0 && _barrelTwist > 0) then {
- _stabilityFactor = [_bulletDiameter / 10 / 2.54, _bulletLength, _bulletMass * 15.4323584, _barrelTwist / 2.54, _muzzleVelocity, _temperature, _barometricPressure] call EFUNC(advanced_ballistics,calculateStabilityFactor);
+ _stabilityFactor = [_bulletDiameter, _bulletLength, _bulletMass, _barrelTwist * 10, _muzzleVelocity, _temperature, _barometricPressure] call EFUNC(advanced_ballistics,calculateStabilityFactor);
};
};
diff --git a/addons/atragmx/functions/fnc_calculate_scope_base_angle.sqf b/addons/atragmx/functions/fnc_calculate_scope_base_angle.sqf
deleted file mode 100644
index fbd191bb79..0000000000
--- a/addons/atragmx/functions/fnc_calculate_scope_base_angle.sqf
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Author: Ruthberg
- * Calculates a new scope base angle
- *
- * Arguments:
- * 0: Bullet mass
- * 1: Bore height
- * 2: air friction
- * 3: muzzle velocity
- * 4: zero range
- *
- * Return Value:
- * scope base angle
- *
- * Example:
- * call ace_atragmx_calculate_scope_base_angle
- *
- * Public: No
- */
-#include "script_component.hpp"
-
-private ["_bulletMass", "_boreHeight", "_airFriction", "_muzzleVelocity", "_zeroRange"];
-_bulletMass = _this select 0;
-_boreHeight = _this select 1;
-_airFriction = _this select 2;
-_muzzleVelocity = _this select 3;
-_zeroRange = _this select 4;
-
-private ["_scopeBaseAngle"];
-_scopeBaseAngle = 0;
-
-private ["_temperature", "_barometricPressure", "_relativeHumidity"];
-_temperature = 15;
-_barometricPressure = 1013.25;
-_relativeHumidity = 0;
-
-private ["_result"];
-_result = [_scopeBaseAngle, _bulletMass, _boreHeight, _airFriction, _muzzleVelocity, _temperature, _barometricPressure, _relativeHumidity, 1000, [0, 0], 0, 0, 0, _zeroRange, _airFriction, 1, "ICAO", false, 1.5, 0, 0, 0] call FUNC(calculate_solution);
-
-_scopeBaseAngle + (_result select 0) / 60
diff --git a/addons/atragmx/functions/fnc_calculate_solution.sqf b/addons/atragmx/functions/fnc_calculate_solution.sqf
index 2049398a9c..869ce8d098 100644
--- a/addons/atragmx/functions/fnc_calculate_solution.sqf
+++ b/addons/atragmx/functions/fnc_calculate_solution.sqf
@@ -37,7 +37,7 @@
* 8: Spin drift (MOA)
*
* Example:
- * call ace_atragmx_calculate_target_range_assist
+ * call ace_atragmx_calculate_solution
*
* Public: No
*/
diff --git a/addons/atragmx/functions/fnc_calculate_target_solution.sqf b/addons/atragmx/functions/fnc_calculate_target_solution.sqf
index 677c4bb793..b014da6a61 100644
--- a/addons/atragmx/functions/fnc_calculate_target_solution.sqf
+++ b/addons/atragmx/functions/fnc_calculate_target_solution.sqf
@@ -47,16 +47,16 @@ _temperature = GVAR(temperature);
_barometricPressure = GVAR(barometricPressure);
_relativeHumidity = GVAR(relativeHumidity);
if (!GVAR(atmosphereModeTBH)) then {
- _barometricPressure = 1013.25 * exp(-(_altitude) / 7990);
+ _barometricPressure = 1013.25 * (1 - (0.0065 * _altitude) / (273.15 + _temperature + 0.0065 * _altitude)) ^ 5.255754495;
_relativeHumidity = 50;
};
private ["_bulletLength", "_stabilityFactor"];
-_bulletLength = 1.8;
+_bulletLength = 45.72;
_stabilityFactor = 1.5;
if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then {
if (_bulletDiameter > 0 && _bulletLength > 0 && _bulletMass > 0 && _barrelTwist > 0) then {
- _stabilityFactor = [_bulletDiameter / 10 / 2.54, _bulletLength, _bulletMass * 15.4323584, _barrelTwist / 2.54, _muzzleVelocity, _temperature, _barometricPressure] call EFUNC(advanced_ballistics,calculateStabilityFactor);
+ _stabilityFactor = [_bulletDiameter, _bulletLength, _bulletMass, _barrelTwist * 10, _muzzleVelocity, _temperature, _barometricPressure] call EFUNC(advanced_ballistics,calculateStabilityFactor);
};
};
diff --git a/addons/atragmx/functions/fnc_create_dialog.sqf b/addons/atragmx/functions/fnc_create_dialog.sqf
index 09e413d535..df71f9beb9 100644
--- a/addons/atragmx/functions/fnc_create_dialog.sqf
+++ b/addons/atragmx/functions/fnc_create_dialog.sqf
@@ -15,7 +15,10 @@
*/
#include "script_component.hpp"
-//if (dialog) exitWith { false };
+#define __dsp (uiNamespace getVariable "ATragMX_Display")
+#define __ctrlBackground (__dsp displayCtrl 720000)
+
+if (GVAR(active)) exitWith { false };
if (underwater ACE_player) exitWith { false };
if (!("ACE_ATragMX" in (uniformItems ACE_player)) && !("ACE_ATragMX" in (vestItems ACE_player))) exitWith { false };
@@ -47,4 +50,13 @@ GVAR(showTargetSpeedAssistTimer) call FUNC(show_target_speed_assist_timer);
lbAdd [6000, _x select 0];
} forEach GVAR(gunList);
+GVAR(active) = true;
+
+GVAR(DialogPFH) = [{
+ if (!GVAR(active)) exitWith {
+ [_this select 1] call cba_fnc_removePerFrameHandler;
+ };
+ __ctrlBackground ctrlSetText format [QUOTE(PATHTOF(UI\ATRAG_%1.paa)), ["N", "D"] select (call EFUNC(common,ambientBrightness))];
+}, 60, []] call cba_fnc_addPerFrameHandler;
+
true
diff --git a/addons/atragmx/functions/fnc_init.sqf b/addons/atragmx/functions/fnc_init.sqf
index e4fe1b67a4..30b17ebf90 100644
--- a/addons/atragmx/functions/fnc_init.sqf
+++ b/addons/atragmx/functions/fnc_init.sqf
@@ -15,6 +15,8 @@
*/
#include "script_component.hpp"
+GVAR(active) = false;
+
GVAR(workingMemory) = +(GVAR(gunList) select 0);
GVAR(scopeUnits) = ["MILs", "TMOA", "SMOA", "Clicks"];
diff --git a/addons/atragmx/functions/fnc_on_close_dialog.sqf b/addons/atragmx/functions/fnc_on_close_dialog.sqf
new file mode 100644
index 0000000000..46cbbfc146
--- /dev/null
+++ b/addons/atragmx/functions/fnc_on_close_dialog.sqf
@@ -0,0 +1,5 @@
+#include "script_component.hpp"
+
+uiNamespace setVariable ['ATragMX_Display', nil];
+GVAR(active) = false;
+[GVAR(DialogPFH)] call cba_fnc_removePerFrameHandler;
\ No newline at end of file
diff --git a/addons/atragmx/functions/fnc_parse_input.sqf b/addons/atragmx/functions/fnc_parse_input.sqf
index 2534c2a319..ce566416f4 100644
--- a/addons/atragmx/functions/fnc_parse_input.sqf
+++ b/addons/atragmx/functions/fnc_parse_input.sqf
@@ -59,7 +59,7 @@ if (GVAR(currentUnit) == 1) then {
private ["_boreHeight", "_bulletMass", "_bulletDiameter", "_airFriction", "_rifleTwist", "_muzzleVelocity", "_zeroRange"];
_boreHeight = parseNumber(ctrlText 120000);
_bulletMass = parseNumber(ctrlText 120010);
-_bulletDiameter = parseNumber(ctrlText 120020);
+_bulletDiameter = parseNumber(ctrlText 120020) * 10;
if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then {
_airFriction = 0.1 max parseNumber(ctrlText 120030) min 2;
} else {
@@ -71,7 +71,7 @@ _zeroRange = parseNumber (ctrlText 120060);
if (GVAR(currentUnit) != 2) then {
_boreHeight = _boreHeight * 2.54;
_bulletMass = _bulletMass * 0.06479891;
- _bulletDiameter = _bulletDiameter * 10 * 2.54;
+ _bulletDiameter = _bulletDiameter * 2.54;
_rifleTwist = _rifleTwist * 2.54;
_muzzleVelocity = _muzzleVelocity / 3.2808399;
};
@@ -95,36 +95,6 @@ if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) t
GVAR(workingMemory) set [1, _muzzleVelocity];
GVAR(workingMemory) set [2, _zeroRange];
-private ["_elevationCur", "_windageCur", "_clickSize", "_clickNumber", "_clickInterval"];
-_elevationCur = GVAR(workingMemory) select 10;
-_windageCur = GVAR(workingMemory) select 11;
-
-switch (GVAR(currentScopeUnit)) do {
- case 0: {
- _elevationCur = _elevationCur * 3.38;
- _windageCur = _windageCur * 3.38;
- };
- case 2: {
- _elevationCur = _elevationCur / 1.047;
- _windageCur = _windageCur / 1.047;
- };
- case 3: {
- switch (GVAR(workingMemory) select 7) do {
- case 0: { _clickSize = 1; };
- case 1: { _clickSize = 1 / 1.047; };
- case 2: { _clickSize = 3.38; };
- };
- _clickNumber = GVAR(workingMemory) select 8;
- _clickInterval = _clickSize / _clickNumber;
-
- _elevationCur = Round(_elevationCur / _clickInterval);
- _windageCur = Round(_windageCur / _clickInterval);
- };
-};
-
-GVAR(workingMemory) set [10, _elevationCur];
-GVAR(workingMemory) set [11, _windageCur];
-
[] call FUNC(update_gun);
[] call FUNC(update_gun_ammo_data);
[] call FUNC(update_atmosphere);
diff --git a/addons/atragmx/functions/fnc_target_speed_assist_timer.sqf b/addons/atragmx/functions/fnc_target_speed_assist_timer.sqf
index 6e47461cf3..9bc5b7e34f 100644
--- a/addons/atragmx/functions/fnc_target_speed_assist_timer.sqf
+++ b/addons/atragmx/functions/fnc_target_speed_assist_timer.sqf
@@ -30,7 +30,7 @@ if !(ctrlVisible 9000) then {
if (!(GVAR(speedAssistTimer))) exitWith {
GVAR(speedAssistTimer) = true;
- ctrlSetText [8006, Str(Round((time - _startTime) * 10) / 10)];
+ ctrlSetText [8006, Str(Round((ACE_time - _startTime) * 10) / 10)];
[] call FUNC(calculate_target_speed_assist);
@@ -40,7 +40,7 @@ if !(ctrlVisible 9000) then {
[_this select 1] call cba_fnc_removePerFrameHandler;
};
- ctrlSetText [9001, Str(Round((time - _startTime) * 10) / 10)];
+ ctrlSetText [9001, Str(Round((ACE_time - _startTime) * 10) / 10)];
- }, 0.1, [time]] call CBA_fnc_addPerFrameHandler;
+ }, 0.1, [ACE_time]] call CBA_fnc_addPerFrameHandler;
};
diff --git a/addons/atragmx/functions/fnc_update_gun_ammo_data.sqf b/addons/atragmx/functions/fnc_update_gun_ammo_data.sqf
index b11b214500..6332506006 100644
--- a/addons/atragmx/functions/fnc_update_gun_ammo_data.sqf
+++ b/addons/atragmx/functions/fnc_update_gun_ammo_data.sqf
@@ -30,7 +30,7 @@ if (GVAR(currentUnit) != 2) then {
if (GVAR(currentUnit) != 2) then {
ctrlSetText [120020, Str(Round((GVAR(workingMemory) select 13) / 10 / 2.54 * 1000) / 1000)];
} else {
- ctrlSetText [120020, Str(Round((GVAR(workingMemory) select 13) * 1000) / 1000)];
+ ctrlSetText [120020, Str(Round((GVAR(workingMemory) select 13) / 10 * 1000) / 1000)];
};
if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then {
ctrlSetText [120030, Str(Round((GVAR(workingMemory) select 15) * 1000) / 1000)];
diff --git a/addons/atragmx/functions/fnc_update_range_card.sqf b/addons/atragmx/functions/fnc_update_range_card.sqf
index 7e19abc36e..d084754959 100644
--- a/addons/atragmx/functions/fnc_update_range_card.sqf
+++ b/addons/atragmx/functions/fnc_update_range_card.sqf
@@ -15,7 +15,7 @@
*/
#include "script_component.hpp"
-private ["_range", "_elevation", "_windage1", "_windage2", "_clickSize", "_clickNumber", "_clickInterval", "_lead", "_TOF", "_velocity", "_kineticEnergy", "_rangeOutput", "_elevationOutput", "_windageOutput", "_lastColumnOutput"];
+private ["_range", "_elevation", "_windage1", "_windage2", "_clickSize", "_clickNumber", "_clickInterval", "_lead", "_TOF", "_velocity", "_kineticEnergy", "_rangeOutput", "_elevationOutput", "_windageOutput", "_lastColumnOutput", "_speedOfSound"];
_lastColumnOutput = "";
if (GVAR(showWind2) && GVAR(rangeCardCurrentColumn) == 0) then {
@@ -32,6 +32,8 @@ if (GVAR(currentUnit) == 1) then {
lnbClear 5007;
+_speedOfSound = GVAR(temperature) call EFUNC(weather,calculateSpeedOfSound);
+
{
_range = _x select 0;
_elevation = _x select 1;
@@ -72,7 +74,7 @@ lnbClear 5007;
_windageOutput = Str(Round(_windage1 * 100) / 100);
_rangeOutput = Str(_range);
- if (_velocity < 340.29) then {
+ if (_velocity < _speedOfSound) then {
_rangeOutput = _rangeOutput + "*";
};
diff --git a/addons/atragmx/initKeybinds.sqf b/addons/atragmx/initKeybinds.sqf
index 796d7f9d97..51d2338292 100644
--- a/addons/atragmx/initKeybinds.sqf
+++ b/addons/atragmx/initKeybinds.sqf
@@ -1,11 +1,36 @@
-["ACE3 Equipment", QGVAR(ATragMXDialogKey), localize "STR_ACE_ATragMX_ATragMXDialogKey",
+["ACE3 Equipment", QGVAR(ATragMXDialogKey), localize LSTRING(ATragMXDialogKey),
{
// Conditions: canInteract
- if !([ACE_player, objNull, []] call EFUNC(common,canInteractWith)) exitWith {false};
-
+ if !([ACE_player, objNull, ["notOnMap", "isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith)) exitWith {false};
+ if (GVAR(active)) exitWith {
+ closeDialog 0;
+ false
+ };
// Statement
[] call FUNC(create_dialog);
false
},
{false},
-[0, [false, false, false]], false, 0] call CBA_fnc_addKeybind; // (empty default key)
\ No newline at end of file
+[0, [false, false, false]], false, 0] call CBA_fnc_addKeybind; // (empty default key)
+
+
+//Add deviceKey entry:
+private ["_conditonCode", "_toggleCode", "_closeCode"];
+_conditonCode = {
+ [] call FUNC(can_show);
+};
+_toggleCode = {
+ // Conditions: canInteract
+ if !([ACE_player, objNull, ["notOnMap", "isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith)) exitWith {};
+ if (GVAR(active)) exitWith {
+ closeDialog 0;
+ };
+ // Statement
+ [] call FUNC(create_dialog);
+};
+_closeCode = {
+ if (GVAR(active)) exitWith {
+ closeDialog 0;
+ };
+};
+[(localize LSTRING(Name)), QUOTE(PATHTOF(UI\ATRAG_Icon.paa)), _conditonCode, _toggleCode, _closeCode] call EFUNC(common,deviceKeyRegisterNew);
diff --git a/addons/atragmx/script_component.hpp b/addons/atragmx/script_component.hpp
index 090e82246d..8154ffa04b 100644
--- a/addons/atragmx/script_component.hpp
+++ b/addons/atragmx/script_component.hpp
@@ -11,4 +11,4 @@
#include "\z\ace\addons\main\script_macros.hpp"
-#define ATRAGMX_PROFILE_NAMESPACE_VERSION 1.4
+#define ATRAGMX_PROFILE_NAMESPACE_VERSION 1.7
diff --git a/addons/attach/$PBOPREFIX$ b/addons/attach/$PBOPREFIX$
index 71a2f40af8..a647dc3672 100644
--- a/addons/attach/$PBOPREFIX$
+++ b/addons/attach/$PBOPREFIX$
@@ -1 +1 @@
-z\ace\Addons\attach
\ No newline at end of file
+z\ace\addons\attach
\ No newline at end of file
diff --git a/addons/attach/CfgVehicles.hpp b/addons/attach/CfgVehicles.hpp
index ce9b1a7413..daf91a43df 100644
--- a/addons/attach/CfgVehicles.hpp
+++ b/addons/attach/CfgVehicles.hpp
@@ -3,7 +3,7 @@
class ACE_Actions { \
class ACE_MainActions { \
class GVAR(AttachVehicle) { \
- displayName = "$STR_ACE_Attach_AttachDetach"; \
+ displayName = CSTRING(AttachDetach); \
condition = QUOTE(_this call FUNC(canAttach)); \
insertChildren = QUOTE(_this call FUNC(getChildrenAttachActions)); \
exceptions[] = {}; \
@@ -13,7 +13,7 @@
distance = 4.5; \
}; \
class GVAR(DetachVehicle) { \
- displayName = "$STR_ACE_Attach_Detach"; \
+ displayName = CSTRING(Detach); \
condition = QUOTE(_this call FUNC(canDetach)); \
statement = QUOTE(_this call FUNC(detach) ); \
exceptions[] = {}; \
@@ -54,7 +54,7 @@ class CfgVehicles {
class ACE_SelfActions {
class ACE_Equipment {
class GVAR(Attach) {
- displayName = "$STR_ACE_Attach_AttachDetach";
+ displayName = CSTRING(AttachDetach);
condition = QUOTE(_this call FUNC(canAttach));
insertChildren = QUOTE(_this call FUNC(getChildrenAttachActions));
exceptions[] = {"isNotDragging"};
@@ -64,7 +64,7 @@ class CfgVehicles {
// hotkey = "T";
};
class GVAR(Detach) {
- displayName = "$STR_ACE_Attach_Detach";
+ displayName = CSTRING(Detach);
condition = QUOTE(_this call FUNC(canDetach));
statement = QUOTE(_this call FUNC(detach));
exceptions[] = {"isNotDragging"};
@@ -87,9 +87,9 @@ class CfgVehicles {
class NVGMarker {
diffuse[] = {0.006, 0.006, 0.006, 1};
ambient[] = {0.005, 0.005, 0.005, 1};
- brightness = 0.2;
+ brightness = 0.1;
name = "pozicni blik";
- drawLightSize = 0.2;
+ drawLightSize = 0.1;
drawLightCenterSize = 0.003;
activeLight = 0;
blinking=1;
@@ -112,7 +112,7 @@ class CfgVehicles {
magazines[] = {};
nvTarget = 1;
destrType = "DestructNo";
- brightness = 20;
+ brightness = 10;
};
class NATO_Box_Base;
diff --git a/addons/attach/CfgWeapons.hpp b/addons/attach/CfgWeapons.hpp
index 9734ceb273..3ad2591f63 100644
--- a/addons/attach/CfgWeapons.hpp
+++ b/addons/attach/CfgWeapons.hpp
@@ -5,10 +5,10 @@ class CfgWeapons {
class ACE_IR_Strobe_Item: ACE_ItemCore {
ACE_attachable = "ACE_IR_Strobe_Effect";
- author = "$STR_ACE_Common_ACETeam";
+ author = ECSTRING(common,ACETeam);
scope = 2;
- displayName = "$STR_ACE_IrStrobe_Name";
- descriptionShort = "$STR_ACE_IrStrobe_Description";
+ displayName = CSTRING(IrStrobe_Name);
+ descriptionShort = CSTRING(IrStrobe_Description);
model = "\A3\weapons_F\ammo\mag_univ.p3d";
picture = PATHTOF(UI\irstrobe_item.paa);
diff --git a/addons/attach/functions/fnc_attach.sqf b/addons/attach/functions/fnc_attach.sqf
index 45b1c0a336..984c231366 100644
--- a/addons/attach/functions/fnc_attach.sqf
+++ b/addons/attach/functions/fnc_attach.sqf
@@ -37,7 +37,7 @@ if (_itemVehClass == "") then {
if (_itemVehClass == "") exitWith {ERROR("no ACE_Attachable for Item");};
-_onAtachText = format [localize "STR_ACE_Attach_Item_Attached", _onAtachText];
+_onAtachText = format [localize LSTRING(Item_Attached), _onAtachText];
if (_unit == _attachToVehicle) then { //Self Attachment
_unit removeItem _itemClassname; // Remove item
@@ -55,11 +55,11 @@ if (_unit == _attachToVehicle) then { //Self Attachment
[_unit, QGVAR(vehAttach), true] call EFUNC(common,setForceWalkStatus);
//MenuBack isn't working for now (localize "STR_ACE_Attach_CancelAction")
- [{[localize "STR_ACE_Attach_PlaceAction", ""] call EFUNC(interaction,showMouseHint)}, [], 0, 0] call EFUNC(common,waitAndExecute);
+ [{[localize LSTRING(PlaceAction), ""] call EFUNC(interaction,showMouseHint)}, []] call EFUNC(common,execNextFrame);
_unit setVariable [QGVAR(placeActionEH), [_unit, "DefaultAction", {true}, {GVAR(placeAction) = 1;}] call EFUNC(common,AddActionEventHandler)];
// _unit setVariable [QGVAR(cancelActionEH), [_unit, "MenuBack", {true}, {GVAR(placeAction) = 0;}] call EFUNC(common,AddActionEventHandler)];
- _actionID = _unit addAction [format ["%1", localize "STR_ACE_Attach_CancelAction"], {GVAR(placeAction) = 0}];
+ _actionID = _unit addAction [format ["%1", localize LSTRING(CancelAction)], {GVAR(placeAction) = 0}];
[{
private "_startingPosition";
diff --git a/addons/attach/functions/fnc_detach.sqf b/addons/attach/functions/fnc_detach.sqf
index a56936301d..92df83b5c1 100644
--- a/addons/attach/functions/fnc_detach.sqf
+++ b/addons/attach/functions/fnc_detach.sqf
@@ -49,7 +49,7 @@ if (isNull _attachedObject || {_itemName == ""}) exitWith {ERROR("Could not find
// Exit if can't add the item
if !(_unit canAdd _itemName) exitWith {
- [localize "STR_ACE_Attach_Inventory_Full"] call EFUNC(common,displayTextStructured);
+ [localize LSTRING(Inventory_Full)] call EFUNC(common,displayTextStructured);
};
// Add item to inventory
@@ -60,7 +60,7 @@ if (toLower _itemName in ["b_ir_grenade", "o_ir_grenade", "i_ir_grenade"]) then
detach _attachedObject;
_attachedObject setPos ((getPos _unit) vectorAdd [0, 0, -1000]);
// Delete attached item after 0.5 seconds
- [{deleteVehicle (_this select 0)}, [_attachedObject], 0.5, 0] call EFUNC(common,waitAndExecute);
+ [{deleteVehicle (_this select 0)}, [_attachedObject], 2] call EFUNC(common,waitAndExecute);
} else {
// Delete attached item
deleteVehicle _attachedObject;
@@ -78,4 +78,4 @@ if (_itemDisplayName == "") then {
_itemDisplayName = getText (configFile >> "CfgMagazines" >> _itemName >> "displayName");
};
-[format [localize "STR_ACE_Attach_Item_Detached", _itemDisplayName]] call EFUNC(common,displayTextStructured);
+[format [localize LSTRING(Item_Detached), _itemDisplayName]] call EFUNC(common,displayTextStructured);
diff --git a/addons/attach/functions/fnc_placeApprove.sqf b/addons/attach/functions/fnc_placeApprove.sqf
index 60c5e3a9bf..d85a65df2b 100644
--- a/addons/attach/functions/fnc_placeApprove.sqf
+++ b/addons/attach/functions/fnc_placeApprove.sqf
@@ -74,7 +74,7 @@ _closeInDistance = (_closeInMax + _closeInMin) / 2;
//Checks (too close to center or can't attach)
if (((_startDistanceFromCenter - _closeInDistance) < 0.1) || {!([_attachToVehicle, _unit, _itemClassname] call FUNC(canAttach))}) exitWith {
TRACE_2("no valid spot found",_closeInDistance,_startDistanceFromCenter);
- [localize "STR_ACE_Attach_Failed"] call EFUNC(common,displayTextStructured);
+ [localize LSTRING(Failed)] call EFUNC(common,displayTextStructured);
};
//Move it out slightly, for visability sake (better to look a little funny than be embedded//sunk in the hull and be useless)
diff --git a/addons/attach/script_component.hpp b/addons/attach/script_component.hpp
index 6d468d89c1..409f74ab94 100644
--- a/addons/attach/script_component.hpp
+++ b/addons/attach/script_component.hpp
@@ -1,5 +1,5 @@
#define COMPONENT attach
-#include "\z\ace\Addons\main\script_mod.hpp"
+#include "\z\ace\addons\main\script_mod.hpp"
#ifdef DEBUG_ENABLED_ATTACH
#define DEBUG_MODE_FULL
@@ -9,4 +9,4 @@
#define DEBUG_SETTINGS DEBUG_SETTINGS_ATTACH
#endif
-#include "\z\ace\Addons\main\script_macros.hpp"
\ No newline at end of file
+#include "\z\ace\addons\main\script_macros.hpp"
\ No newline at end of file
diff --git a/addons/attach/stringtable.xml b/addons/attach/stringtable.xml
index 70b464a6cd..299a1575ac 100644
--- a/addons/attach/stringtable.xml
+++ b/addons/attach/stringtable.xml
@@ -121,7 +121,7 @@
Nincs több hely
В инвентаре нет места
-
+
IR Strobe
IR-Stroboskop
Marcador IR
@@ -133,7 +133,7 @@
Infravörös jeladó
ИК-маяк
-
+
IR Strobe allows you to signal your position through a pulsating beacon only visible with NVGs.
Das IR-Stroboskop erlaubt es dir deine Position mit einem blinkenden Leuchtfeuer zu signalisieren, welches nur mit Nachtsichtgerät zu erkennen ist.
Stroboskop światła podczerwieni umożliwia oznaczenie swojej pozycji pulsacyjnym światłem widocznym tylko przez optykę noktowizyjną i gogle noktowizyjne.
@@ -179,7 +179,7 @@
Erro ao fixar
Przyczepianie nie powiodło się
Hozzácsatolás sikertelen
- Impossibile Attaccare
+ Non si attacca
%1<br/>Attached
@@ -206,4 +206,4 @@
%1<br/>отсоединен(-а)
-
\ No newline at end of file
+
diff --git a/addons/ballistics/CfgAmmo.hpp b/addons/ballistics/CfgAmmo.hpp
index 02df51e891..5ffe94ac45 100644
--- a/addons/ballistics/CfgAmmo.hpp
+++ b/addons/ballistics/CfgAmmo.hpp
@@ -20,127 +20,127 @@ class CfgAmmo {
};
class B_556x45_Ball : BulletBase {
- airFriction=-0.001265;
+ airFriction=-0.00126466;
hit=8;
typicalSpeed=750;
- tracerStartTime = 0.073; //M856 tracer burns out to 800m
- tracerEndTime = 1.579; //Time in seconds calculated with ballistics calculator
- ACE_caliber=0.224;
- ACE_bulletLength=0.906;
- ACE_bulletMass=62;
+ tracerStartTime=0.073; // M856 tracer burns out to 800m
+ tracerEndTime=1.57123; // Time in seconds calculated with ballistics calculator
+ ACE_caliber=5.69;
+ ACE_bulletLength=23.012;
+ ACE_bulletMass=4.0176;
ACE_ammoTempMuzzleVelocityShifts[]={-27.20, -26.44, -23.76, -21.00, -17.54, -13.10, -7.95, -1.62, 6.24, 15.48, 27.75};
ACE_ballisticCoefficients[]={0.151};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ASM";
ACE_dragModel=7;
ACE_muzzleVelocities[]={723, 764, 796, 825, 843, 866, 878, 892, 906, 915, 922, 900};
- ACE_barrelLengths[]={8.3, 9.4, 10.6, 11.8, 13.0, 14.2, 15.4, 16.5, 17.7, 18.9, 20.0, 24.0};
+ ACE_barrelLengths[]={210.82, 238.76, 269.24, 299.72, 330.2, 360.68, 391.16, 419.1, 449.58, 480.06, 508.0, 609.6};
};
class ACE_556x45_Ball_Mk262 : B_556x45_Ball {
- airFriction=-0.001125;
+ airFriction=-0.00109563;
caliber=0.8;
deflecting=18;
hit=11;
typicalSpeed=836;
- ACE_caliber=0.224;
- ACE_bulletLength=0.906;
- ACE_bulletMass=77;
+ ACE_caliber=5.69;
+ ACE_bulletLength=23.012;
+ ACE_bulletMass=4.9896;
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.361};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ASM";
ACE_dragModel=1;
ACE_muzzleVelocities[]={624, 816, 832, 838};
- ACE_barrelLengths[]={7.5, 14.5, 18, 20};
+ ACE_barrelLengths[]={190.5, 368.3, 457.2, 508.0};
};
class ACE_556x45_Ball_Mk318 : B_556x45_Ball {
- airFriction=-0.001120;
+ airFriction=-0.00123318;
caliber=0.8;
deflecting=18;
hit=9;
typicalSpeed=886;
- ACE_caliber=0.224;
- ACE_bulletLength=0.906;
- ACE_bulletMass=62;
+ ACE_caliber=5.69;
+ ACE_bulletLength=23.012;
+ ACE_bulletMass=4.0176;
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.307};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ASM";
ACE_dragModel=1;
ACE_muzzleVelocities[]={780, 886, 950};
- ACE_barrelLengths[]={10, 15.5, 20};
+ ACE_barrelLengths[]={254.0, 393.7, 508.0};
};
class ACE_556x45_Ball_M995_AP : B_556x45_Ball {
- airFriction=-0.001120;
+ airFriction=-0.00123272;
caliber=1.6;
deflecting=18;
hit=6;
- typicalSpeed=886;
- ACE_caliber=0.224;
- ACE_bulletLength=0.906;
- ACE_bulletMass=46;
+ typicalSpeed=869;
+ ACE_caliber=5.69;
+ ACE_bulletLength=23.012;
+ ACE_bulletMass=4.5359237;
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.151};
+ ACE_ballisticCoefficients[]={0.310};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ASM";
- ACE_dragModel=7;
- ACE_muzzleVelocities[]={950, 1030, 1040};
- ACE_barrelLengths[]={10, 15.5, 20};
+ ACE_dragModel=1;
+ ACE_muzzleVelocities[]={820, 865, 880};
+ ACE_barrelLengths[]={254.0, 368.3, 508.0};
};
class B_556x45_Ball_Tracer_Red;
class ACE_B_556x45_Ball_Tracer_Dim: B_556x45_Ball_Tracer_Red {
nvgOnly = 1;
};
class ACE_545x39_Ball_7N6M : B_556x45_Ball {
- airFriction=-0.001162;
+ airFriction=-0.00114744;
caliber=0.6;
deflecting=18;
hit=7;
typicalSpeed=880;
- ACE_caliber=0.220;
- ACE_bulletLength=0.85;
- ACE_bulletMass=52.9;
+ ACE_caliber=5.588;
+ ACE_bulletLength=21.59;
+ ACE_bulletMass=3.42792;
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.168};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=7;
ACE_muzzleVelocities[]={780, 880, 920};
- ACE_barrelLengths[]={10, 16.3, 20};
+ ACE_barrelLengths[]={254.0, 414.02, 508.0};
};
class B_556x45_Ball_Tracer_Green;
class ACE_545x39_Ball_7T3M : B_556x45_Ball_Tracer_Green {
- airFriction=-0.001162;
+ airFriction=-0.00114744;
caliber=0.6;
deflecting=18;
hit=7;
typicalSpeed=883;
- tracerStartTime = 0.073; //7T3M tracer burns out to 850m
- tracerEndTime = 1.736; //Time in seconds calculated with ballistics calculator
- ACE_caliber=0.220;
- ACE_bulletLength=0.85;
- ACE_bulletMass=49.8;
+ tracerStartTime=0.073; // 7T3M tracer burns out to 850m
+ tracerEndTime=1.70236; // Time in seconds calculated with ballistics calculator
+ ACE_caliber=5.588;
+ ACE_bulletLength=21.59;
+ ACE_bulletMass=3.22704;
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.168};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=7;
ACE_muzzleVelocities[]={785, 883, 925};
- ACE_barrelLengths[]={10, 16.3, 20};
+ ACE_barrelLengths[]={254.0, 414.02, 508.0};
};
class B_65x39_Caseless : BulletBase {
- airFriction=-0.000785;
+ airFriction=-0.00075308;
typicalSpeed=800;
- ACE_caliber=0.264;
- ACE_bulletLength=1.295;
- ACE_bulletMass=123;
+ ACE_caliber=6.706;
+ ACE_bulletLength=32.893;
+ ACE_bulletMass=7.9704;
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.263};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=7;
ACE_muzzleVelocities[]={730, 760, 788, 800, 810, 830};
- ACE_barrelLengths[]={10, 16, 20, 24, 26, 30};
+ ACE_barrelLengths[]={254.0, 406.4, 508.0, 609.6, 660.4, 762.0};
};
class B_65x39_Case_yellow;
class ACE_65x39_Caseless_Tracer_Dim : B_65x39_Case_yellow {
@@ -151,442 +151,442 @@ class CfgAmmo {
nvgOnly = 1;
};
class ACE_65x47_Ball_Scenar: B_65x39_Caseless {
- airFriction=-0.00078;
+ airFriction=-0.00067037;
typicalSpeed=820 ;
caliber=0.9;
- ACE_caliber=0.264;
- ACE_bulletLength=1.364;
- ACE_bulletMass=139;
+ ACE_caliber=6.706;
+ ACE_bulletLength=34.646;
+ ACE_bulletMass=9.0072;
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[]={730, 760, 790, 820, 830};
- ACE_barrelLengths[]={10, 16, 20, 24, 26};
+ ACE_barrelLengths[]={254.0, 406.4, 508.0, 609.6, 660.4};
};
class ACE_65_Creedmor_Ball: B_65x39_Caseless {
- airFriction=-0.000651;
+ airFriction=-0.00060887;
typicalSpeed=860 ;
caliber=1.1;
- ACE_caliber=0.264;
- ACE_bulletLength=1.426;
- ACE_bulletMass=140;
+ ACE_caliber=6.706;
+ ACE_bulletLength=36.22;
+ ACE_bulletMass=9.072;
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.317};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=7;
ACE_muzzleVelocities[]={750, 820, 840, 852, 860};
- ACE_barrelLengths[]={10, 16, 20, 24, 26};
+ ACE_barrelLengths[]={254.0, 406.4, 508.0, 609.6, 660.4};
};
class B_762x51_Ball : BulletBase {
- airFriction=-0.001035;
+ airFriction=-0.00100957;
typicalSpeed=833;
hit=9;
- tracerStartTime = 0.073; //Based on the British L5A1 which burns out to 1000m
- tracerEndTime = 2.058; //Time in seconds calculated with ballistics calculator
- ACE_caliber=0.308;
- ACE_bulletLength=1.14;
- ACE_bulletMass=146;
+ tracerStartTime=0.073; // Based on the British L5A1 which burns out to 1000m
+ tracerEndTime=2.15957; // Time in seconds calculated with ballistics calculator
+ ACE_caliber=7.823;
+ ACE_bulletLength=28.956;
+ ACE_bulletMass=9.4608;
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.2};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=7;
ACE_muzzleVelocities[]={700, 800, 820, 833, 845};
- ACE_barrelLengths[]={10, 16, 20, 24, 26};
+ ACE_barrelLengths[]={254.0, 406.4, 508.0, 609.6, 660.4};
};
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 {
- airFriction=-0.0008525;
+ airFriction=-0.00082828;
caliber=1.8;
hit=16;
typicalSpeed=790;
- ACE_caliber=0.308;
- ACE_bulletLength=1.24;
- ACE_bulletMass=175;
+ ACE_caliber=7.823;
+ ACE_bulletLength=31.496;
+ ACE_bulletMass=11.34;
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.243};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=7;
ACE_muzzleVelocities[]={750, 780, 790, 794};
- ACE_barrelLengths[]={16, 20, 24, 26};
+ ACE_barrelLengths[]={406.4, 508.0, 609.6, 660.4};
};
class ACE_762x51_Ball_Mk316_Mod_0 : B_762x51_Ball {
- airFriction=-0.0008525;
+ airFriction=-0.00082029;
caliber=1.8;
hit=16;
typicalSpeed=790;
- ACE_caliber=0.308;
- ACE_bulletLength=1.24;
- ACE_bulletMass=175;
+ ACE_caliber=7.823;
+ ACE_bulletLength=31.496;
+ ACE_bulletMass=11.34;
ACE_ammoTempMuzzleVelocityShifts[]={-5.3, -5.1, -4.6, -4.2, -3.4, -2.6, -1.4, -0.3, 1.4, 3.0, 5.2};
ACE_ballisticCoefficients[]={0.243};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=7;
ACE_muzzleVelocities[]={775, 790, 805, 810};
- ACE_barrelLengths[]={16, 20, 24, 26};
+ ACE_barrelLengths[]={406.4, 508.0, 609.6, 660.4};
};
class ACE_762x51_Ball_Mk319_Mod_0 : B_762x51_Ball {
- airFriction=-0.00103;
+ airFriction=-0.00102338;
caliber=1.5;
hit=14;
typicalSpeed=900;
- ACE_caliber=0.308;
- ACE_bulletLength=1.24;
- ACE_bulletMass=130;
+ ACE_caliber=7.823;
+ ACE_bulletLength=31.496;
+ ACE_bulletMass=8.424;
ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619};
ACE_ballisticCoefficients[]={0.377};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=1;
ACE_muzzleVelocities[]={838, 892, 910};
- ACE_barrelLengths[]={13, 16, 20};
+ ACE_barrelLengths[]={330.2, 406.4, 508.0};
};
class ACE_762x51_Ball_M993_AP : B_762x51_Ball {
- airFriction=-0.00103;
+ airFriction=-0.00107148;
caliber=2.2;
hit=11;
- typicalSpeed=930;
- ACE_caliber=0.308;
- ACE_bulletLength=1.24;
- ACE_bulletMass=127;
+ typicalSpeed=910;
+ ACE_caliber=7.823;
+ ACE_bulletLength=31.496;
+ ACE_bulletMass=8.22946157;
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.377};
+ ACE_ballisticCoefficients[]={0.359};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=1;
ACE_muzzleVelocities[]={875, 910, 930};
- ACE_barrelLengths[]={13, 16, 20};
+ ACE_barrelLengths[]={330.2, 406.4, 508.0};
};
class ACE_762x51_Ball_Subsonic : B_762x51_Ball {
- airFriction=-0.000535;
+ airFriction=-0.00049899;
caliber=1;
hit=6;
typicalSpeed=320;
- ACE_caliber=0.308;
- ACE_bulletLength=1.340;
- ACE_bulletMass=200;
+ ACE_caliber=7.823;
+ ACE_bulletLength=34.036;
+ ACE_bulletMass=12.96;
ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619};
ACE_ballisticCoefficients[]={0.235};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=7;
ACE_muzzleVelocities[]={305, 325, 335, 340};
- ACE_barrelLengths[]={16, 20, 24, 26};
+ ACE_barrelLengths[]={406.4, 508.0, 609.6, 660.4};
};
class ACE_30_06_M1_Ball : B_762x51_Ball {
- airFriction=-0.0009;
+ airFriction=-0.00080900;
typicalSpeed=800;
caliber=2.0;
hit=10;
- ACE_caliber=0.308;
- ACE_bulletLength=1.21;
- ACE_bulletMass=174;
+ ACE_caliber=7.823;
+ ACE_bulletLength=30.734;
+ ACE_bulletMass=11.2752;
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.494};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ASM";
ACE_dragModel=1;
ACE_muzzleVelocities[]={700, 785, 800, 830, 840};
- ACE_barrelLengths[]={10, 16, 20, 24, 26};
+ ACE_barrelLengths[]={254.0, 406.4, 508.0, 609.6, 660.4};
};
class ACE_7_Remington_Magnum_Ball : B_762x51_Ball {
- airFriction=-0.0008;
+ airFriction=-0.00056738;
typicalSpeed=820;
caliber=2.1;
hit=8;
- ACE_caliber=0.284;
- ACE_bulletLength=1.529;
- ACE_bulletMass=180;
+ ACE_caliber=7.214;
+ ACE_bulletLength=38.837;
+ ACE_bulletMass=11.664;
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.345};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=7;
ACE_muzzleVelocities[]={720, 780, 812, 822, 830};
- ACE_barrelLengths[]={10, 16, 20, 24, 26};
+ ACE_barrelLengths[]={254.0, 406.4, 508.0, 609.6, 660.4};
};
class ACE_243_Winchester_Ball : B_762x51_Ball {
- airFriction=-0.00095;
+ airFriction=-0.00067875;
typicalSpeed=915;
caliber=2.3;
hit=6;
- ACE_caliber=0.243;
- ACE_bulletLength=1.282;
- ACE_bulletMass=180;
+ ACE_caliber=6.172;
+ ACE_bulletLength=32.563;
+ ACE_bulletMass=11.664;
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.278};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=7;
ACE_muzzleVelocities[]={830, 875, 900, 915, 920};
- ACE_barrelLengths[]={10, 16, 20, 24, 26};
+ ACE_barrelLengths[]={254.0, 406.4, 508.0, 609.6, 660.4};
};
class ACE_762x67_Ball_Mk248_Mod_0 : B_762x51_Ball {
- airFriction=-0.000830;
+ airFriction=-0.00070530;
caliber=1.8;
hit=17;
typicalSpeed=900;
- ACE_caliber=0.308;
- ACE_bulletLength=1.353;
- ACE_bulletMass=190;
+ ACE_caliber=7.823;
+ ACE_bulletLength=34.366;
+ ACE_bulletMass=12.312;
ACE_ammoTempMuzzleVelocityShifts[]={-5.3, -5.1, -4.6, -4.2, -3.4, -2.6, -1.4, -0.3, 1.4, 3.0, 5.2};
ACE_ballisticCoefficients[]={0.268};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=7;
ACE_muzzleVelocities[]={865, 900, 924};
- ACE_barrelLengths[]={20, 24, 26};
+ ACE_barrelLengths[]={508.0, 609.6, 660.4};
};
class ACE_762x67_Ball_Mk248_Mod_1 : B_762x51_Ball {
- airFriction=-0.000815;
+ airFriction=-0.00061188;
caliber=1.9;
hit=18;
typicalSpeed=867;
- ACE_caliber=0.308;
- ACE_bulletLength=1.489;
- ACE_bulletMass=220;
+ ACE_caliber=7.823;
+ ACE_bulletLength=37.821;
+ ACE_bulletMass=14.256;
ACE_ammoTempMuzzleVelocityShifts[]={-5.3, -5.1, -4.6, -4.2, -3.4, -2.6, -1.4, -0.3, 1.4, 3.0, 5.2};
ACE_ballisticCoefficients[]={0.310};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=7;
ACE_muzzleVelocities[]={847, 867, 877};
- ACE_barrelLengths[]={20, 24, 26};
+ ACE_barrelLengths[]={508.0, 609.6, 660.4};
};
class ACE_762x67_Ball_Berger_Hybrid_OTM : B_762x51_Ball {
- airFriction=-0.00076;
+ airFriction=-0.00053733;
caliber=2.0;
hit=19;
typicalSpeed=853;
- ACE_caliber=0.308;
- ACE_bulletLength=1.602;
- ACE_bulletMass=230;
+ ACE_caliber=7.823;
+ ACE_bulletLength=40.691;
+ ACE_bulletMass=14.904;
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};
+ ACE_barrelLengths[]={508.0, 609.6, 660.4};
};
class B_762x54_Ball: B_762x51_Ball {
- airFriction=-0.001023;
+ airFriction=-0.00100023;
typicalSpeed=820;
- ACE_caliber=0.312;
- ACE_bulletLength=1.14;
- ACE_bulletMass=152;
+ ACE_caliber=7.925;
+ ACE_bulletLength=28.956;
+ ACE_bulletMass=9.8496;
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.4};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=1;
ACE_muzzleVelocities[]={700, 800, 820, 833};
- ACE_barrelLengths[]={16, 20, 24, 26};
+ ACE_barrelLengths[]={406.4, 508.0, 609.6, 660.4};
};
class ACE_762x54_Ball_7N14 : B_762x51_Ball {
- airFriction=-0.001023;
+ airFriction=-0.00100023;
caliber=1.5;
hit=15;
typicalSpeed=820;
- ACE_caliber=0.312;
- ACE_bulletLength=1.14;
- ACE_bulletMass=152;
+ ACE_caliber=7.925;
+ ACE_bulletLength=28.956;
+ ACE_bulletMass=9.8496;
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.4};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=1;
ACE_muzzleVelocities[]={700, 800, 820, 833};
- ACE_barrelLengths[]={16, 20, 24, 26};
+ ACE_barrelLengths[]={406.4, 508.0, 609.6, 660.4};
};
class B_762x54_Tracer_Green;
class ACE_762x54_Ball_7T2 : B_762x54_Tracer_Green {
- airFriction=-0.001023;
+ airFriction=-0.00103989;
caliber=1.5;
hit=15;
typicalSpeed=800;
- tracerStartTime = 0.073; //Based on the 7T2 which burns three seconds
- tracerEndTime = 3;
- ACE_caliber=0.312;
- ACE_bulletLength=1.14;
- ACE_bulletMass=149;
+ tracerStartTime=0.073; // Based on the 7T2 which burns three seconds
+ tracerEndTime=3;
+ ACE_caliber=7.925;
+ ACE_bulletLength=28.956;
+ ACE_bulletMass=9.6552;
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.395};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=1;
ACE_muzzleVelocities[]={680, 750, 798, 800};
- ACE_barrelLengths[]={16, 20, 24, 26};
+ ACE_barrelLengths[]={406.4, 508.0, 609.6, 660.4};
};
class ACE_762x35_Ball : B_762x51_Ball {
- airFriction=-0.000821;
+ airFriction=-0.00128942;
caliber=1.5;
hit=11;
typicalSpeed=790;
- ACE_caliber=0.308;
- ACE_bulletLength=1.153;
- ACE_bulletMass=125;
+ ACE_caliber=7.823;
+ ACE_bulletLength=29.286;
+ ACE_bulletMass=8.1;
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.349, 0.338, 0.330, 0.310};
ACE_velocityBoundaries[]={792, 610, 488};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=1;
ACE_muzzleVelocities[]={620, 655, 675};
- ACE_barrelLengths[]={9, 16, 20};
+ ACE_barrelLengths[]={228.6, 406.4, 508.0};
};
class ACE_762x39_Ball : B_762x51_Ball {
- airFriction=-0.0015168;
+ airFriction=-0.00151621;
hit=12;
caliber=1.5;
typicalSpeed=716;
- ACE_caliber=0.308;
- ACE_bulletLength=1.14;
- ACE_bulletMass=123;
+ ACE_caliber=7.823;
+ ACE_bulletLength=28.956;
+ ACE_bulletMass=7.9704;
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.275};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=1;
ACE_muzzleVelocities[]={650, 716, 750};
- ACE_barrelLengths[]={10, 16.3, 20};
+ ACE_barrelLengths[]={254.0, 414.02, 508.0};
};
class ACE_762x39_Ball_57N231P : B_762x54_Tracer_Green {
- airFriction=-0.0015168;
+ airFriction=-0.00151621;
hit=12;
caliber=1.5;
typicalSpeed=716;
tracerStartTime = 0.073; //57N231P tracer burns out to 800m
tracerEndTime = 2.082; //Time in seconds calculated with ballistics calculator
- ACE_caliber=0.308;
- ACE_bulletLength=1.14;
- ACE_bulletMass=117;
+ ACE_caliber=7.823;
+ ACE_bulletLength=28.956;
+ ACE_bulletMass=7.5816;
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.275};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=1;
ACE_muzzleVelocities[]={650, 716, 750};
- ACE_barrelLengths[]={10, 16.3, 20};
+ ACE_barrelLengths[]={254.0, 414.02, 508.0};
};
class B_9x21_Ball : BulletBase {
- airFriction=-0.00125;
+ airFriction=-0.00226847;
typicalSpeed=390;
hit=6;
- ACE_caliber=0.356;
- ACE_bulletLength=0.610;
- ACE_bulletMass=115;
+ ACE_caliber=9.042;
+ ACE_bulletLength=15.494;
+ ACE_bulletMass=7.452;
ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619};
ACE_ballisticCoefficients[]={0.17};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=1;
ACE_muzzleVelocities[]={440, 460, 480};
- ACE_barrelLengths[]={4, 5, 9};
+ ACE_barrelLengths[]={101.6, 127.0, 228.6};
};
class ACE_9x18_Ball_57N181S : B_9x21_Ball {
hit=5;
- airFriction=-0.001234;
+ airFriction=-0.00190333;
typicalSpeed=298;
- ACE_caliber=0.365;
- ACE_bulletLength=0.610;
- ACE_bulletMass=92.6;
+ ACE_caliber=9.271;
+ ACE_bulletLength=15.494;
+ ACE_bulletMass=6.00048;
ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619};
ACE_ballisticCoefficients[]={0.125};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=1;
ACE_muzzleVelocities[]={298, 330, 350};
- ACE_barrelLengths[]={3.8, 5, 9};
+ ACE_barrelLengths[]={96.52, 127.0, 228.6};
};
class ACE_9x19_Ball : B_9x21_Ball {
- airFriction=-0.001234;
+ airFriction=-0.0018577;
typicalSpeed=370;
hit=6;
- ACE_caliber=0.355;
- ACE_bulletLength=0.610;
- ACE_bulletMass=124;
+ ACE_caliber=9.017;
+ ACE_bulletLength=15.494;
+ ACE_bulletMass=8.0352;
ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619};
ACE_ballisticCoefficients[]={0.165};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ASM";
ACE_dragModel=1;
ACE_muzzleVelocities[]={340, 370, 400};
- ACE_barrelLengths[]={4, 5, 9};
+ ACE_barrelLengths[]={101.6, 127.0, 228.6};
};
class ACE_10x25_Ball : B_9x21_Ball {
- airFriction=-0.00168;
+ airFriction=-0.00181928;
typicalSpeed=425;
hit=7;
- ACE_caliber=0.5;
- ACE_bulletLength=0.764;
- ACE_bulletMass=165;
+ ACE_caliber=12.7;
+ ACE_bulletLength=19.406;
+ ACE_bulletMass=10.692;
ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619};
ACE_ballisticCoefficients[]={0.189};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=1;
ACE_muzzleVelocities[]={360, 400, 430};
- ACE_barrelLengths[]={4, 4.61, 9};
+ ACE_barrelLengths[]={101.6, 117.094, 228.6};
};
class ACE_765x17_Ball: B_9x21_Ball {
- airFriction=-0.001213;
+ airFriction=-0.00163356;
typicalSpeed=282;
hit=7;
- ACE_caliber=0.3125;
- ACE_bulletLength=0.610;
- ACE_bulletMass=65;
+ ACE_caliber=7.938;
+ ACE_bulletLength=15.494;
+ ACE_bulletMass=4.212;
ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619};
ACE_ballisticCoefficients[]={0.118};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ASM";
ACE_dragModel=1;
ACE_muzzleVelocities[]={282, 300, 320};
- ACE_barrelLengths[]={4, 5, 9};
+ ACE_barrelLengths[]={101.6, 127.0, 228.6};
};
class ACE_303_Ball : ACE_762x51_Ball_M118LR {
- airFriction=-0.00083;
+ airFriction=-0.0008349;
typicalSpeed=761;
caliber=2.0;
- ACE_caliber=0.311;
- ACE_bulletLength=1.227;
- ACE_bulletMass=174;
+ ACE_caliber=7.899;
+ ACE_bulletLength=31.166;
+ ACE_bulletMass=11.2752;
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.499, 0.493, 0.48};
ACE_velocityBoundaries[]={671, 549};
ACE_standardAtmosphere="ASM";
ACE_dragModel=1;
ACE_muzzleVelocities[]={748, 761, 765};
- ACE_barrelLengths[]={20, 24, 26};
+ ACE_barrelLengths[]={508.0, 609.6, 660.4};
};
class B_93x64_Ball : BulletBase {
- airFriction=-0.00106;
+ airFriction=-0.00108571;
typicalSpeed=880;
- ACE_caliber=0.366;
- ACE_bulletLength=1.350;
- ACE_bulletMass=230;
+ ACE_caliber=9.296;
+ ACE_bulletLength=34.29;
+ ACE_bulletMass=14.904;
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="ASM";
ACE_dragModel=1;
ACE_muzzleVelocities[]={850, 870, 880};
- ACE_barrelLengths[]={20, 24.41, 26};
+ ACE_barrelLengths[]={508.0, 620.014, 660.4};
};
class B_408_Ball : BulletBase {
timeToLive=10;
- airFriction=-0.000395;
+ airFriction=-0.00038944;
typicalSpeed=910;
- ACE_caliber=0.408;
- ACE_bulletLength=2.126;
- ACE_bulletMass=410;
+ ACE_caliber=10.363;
+ ACE_bulletLength=54.0;
+ ACE_bulletMass=26.568;
ACE_transonicStabilityCoef=1;
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.97};
@@ -594,170 +594,171 @@ class CfgAmmo {
ACE_standardAtmosphere="ASM";
ACE_dragModel=1;
ACE_muzzleVelocities[]={910};
- ACE_barrelLengths[]={29};
+ ACE_barrelLengths[]={736.6};
};
class ACE_106x83mm_Ball : B_408_Ball {
timeToLive=10;
- ACE_caliber=0.416;
- ACE_bulletLength=2.089;
- ACE_bulletMass=398;
+ airFriction=-0.00052047;
+ ACE_caliber=10.566;
+ ACE_bulletLength=53.061;
+ ACE_bulletMass=25.7904;
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.72};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ASM";
ACE_dragModel=1;
ACE_muzzleVelocities[]={960};
- ACE_barrelLengths[]={29};
+ ACE_barrelLengths[]={736.6};
};
class B_338_Ball : BulletBase {
timeToLive=10;
- airFriction=-0.000606;
+ airFriction=-0.00059133;
typicalSpeed=915;
- ACE_caliber=0.338;
- ACE_bulletLength=1.558;
- ACE_bulletMass=250;
+ ACE_caliber=8.585;
+ ACE_bulletLength=39.573;
+ ACE_bulletMass=16.2;
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.322};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=7;
ACE_muzzleVelocities[]={880, 915, 925};
- ACE_barrelLengths[]={20, 26, 28};
+ ACE_barrelLengths[]={508.0, 660.4, 711.2};
};
class B_338_NM_Ball : BulletBase {
- airFriction=-0.000537;
+ airFriction=-0.00052201;
typicalSpeed=820;
- ACE_caliber=0.338;
- ACE_bulletLength=1.70;
- ACE_bulletMass=300;
+ ACE_caliber=8.585;
+ ACE_bulletLength=43.18;
+ ACE_bulletMass=19.44;
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.381};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=7;
ACE_muzzleVelocities[]={790, 807, 820};
- ACE_barrelLengths[]={20, 24, 26};
+ ACE_barrelLengths[]={508.0, 609.6, 660.4};
};
class ACE_338_Ball : B_338_Ball {
timeToLive=10;
- airFriction=-0.000535;
+ airFriction=-0.00052190;
typicalSpeed=826;
- ACE_caliber=0.338;
- ACE_bulletLength=1.70;
- ACE_bulletMass=300;
+ ACE_caliber=8.585;
+ ACE_bulletLength=43.18;
+ ACE_bulletMass=19.44;
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.381};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=7;
ACE_muzzleVelocities[]={800, 820, 826, 830};
- ACE_barrelLengths[]={20, 24, 26.5, 28};
+ ACE_barrelLengths[]={508.0, 609.6, 673.1, 711.2};
};
class ACE_338_Ball_API526 : B_338_Ball {
timeToLive=10;
- airFriction=-0.000673;
+ airFriction=-0.00069611;
caliber=2.8;
- typicalSpeed=826;
- ACE_caliber=0.338;
- ACE_bulletLength=1.535;
- ACE_bulletMass=253;
+ typicalSpeed=895;
+ ACE_caliber=8.585;
+ ACE_bulletLength=38.989;
+ ACE_bulletMass=16.3941242;
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_ballisticCoefficients[]={0.560};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
- ACE_dragModel=7;
+ ACE_dragModel=1;
ACE_muzzleVelocities[]={880, 915, 925};
- ACE_barrelLengths[]={20, 26, 28};
+ ACE_barrelLengths[]={508.0, 660.4, 711.2};
};
class B_127x54_Ball : BulletBase {
- airFriction=-0.00014;
+ airFriction=-0.00019268;
typicalSpeed=300;
- ACE_caliber=0.510;
- ACE_bulletLength=2.540;
- ACE_bulletMass=750;
+ ACE_caliber=12.954;
+ ACE_bulletLength=64.516;
+ ACE_bulletMass=48.6;
ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619};
ACE_ballisticCoefficients[]={1.050};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ASM";
ACE_dragModel=1;
ACE_muzzleVelocities[]={300};
- ACE_barrelLengths[]={17.2};
+ ACE_barrelLengths[]={436.88};
};
class B_127x99_Ball : BulletBase {
timeToLive=10;
- airFriction=-0.0006;
+ airFriction=-0.00057503;
typicalSpeed=900;
- ACE_caliber=0.510;
- ACE_bulletLength=2.310;
- ACE_bulletMass=647;
+ ACE_caliber=12.954;
+ ACE_bulletLength=58.674;
+ ACE_bulletMass=41.9256;
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.670};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ASM";
ACE_dragModel=1;
ACE_muzzleVelocities[]={900};
- ACE_barrelLengths[]={29};
+ ACE_barrelLengths[]={736.6};
};
class ACE_127x99_API : BulletBase {
timeToLive=10;
- airFriction=-0.0006;
+ airFriction=-0.00057503;
typicalSpeed=900;
hit=25;
caliber=4.0;
- ACE_caliber=0.510;
- ACE_bulletLength=2.310;
- ACE_bulletMass=648;
+ ACE_caliber=12.954;
+ ACE_bulletLength=58.674;
+ ACE_bulletMass=41.9904;
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.670};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ASM";
ACE_dragModel=1;
ACE_muzzleVelocities[]={900};
- ACE_barrelLengths[]={29};
+ ACE_barrelLengths[]={736.6};
};
class ACE_127x99_Ball_AMAX : B_127x99_Ball {
timeToLive=10;
- airFriction=-0.000374;
+ airFriction=-0.00036645;
typicalSpeed=860;
caliber=3.0;
- ACE_caliber=0.510;
- ACE_bulletLength=2.540;
- ACE_bulletMass=750;
+ ACE_caliber=12.954;
+ ACE_bulletLength=64.516;
+ ACE_bulletMass=48.6;
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[]={1.050};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ASM";
ACE_dragModel=1;
ACE_muzzleVelocities[]={860};
- ACE_barrelLengths[]={29};
+ ACE_barrelLengths[]={736.6};
};
class B_127x108_Ball : BulletBase {
timeToLive=10;
- airFriction=-0.00064;
+ airFriction=-0.00063800;
typicalSpeed=820;
- ACE_caliber=0.511;
- ACE_bulletLength=2.520;
- ACE_bulletMass=745;
+ ACE_caliber=12.979;
+ ACE_bulletLength=64.008;
+ ACE_bulletMass=48.276;
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.63};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ASM";
ACE_dragModel=1;
ACE_muzzleVelocities[]={820};
- ACE_barrelLengths[]={28.7};
+ ACE_barrelLengths[]={728.98};
};
class B_45ACP_Ball : BulletBase {
- airFriction=-0.0007182;
+ airFriction=-0.00081221;
typicalSpeed=250;
- ACE_caliber=0.452;
- ACE_bulletLength=0.68;
- ACE_bulletMass=230;
+ ACE_caliber=11.481;
+ ACE_bulletLength=17.272;
+ ACE_bulletMass=14.904;
ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619};
ACE_ballisticCoefficients[]={0.195};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ASM";
ACE_dragModel=1;
ACE_muzzleVelocities[]={230, 250, 285};
- ACE_barrelLengths[]={4, 5, 9};
+ ACE_barrelLengths[]={101.6, 127.0, 228.6};
};
};
diff --git a/addons/ballistics/CfgMagazines.hpp b/addons/ballistics/CfgMagazines.hpp
index 32121e4e87..e368381333 100644
--- a/addons/ballistics/CfgMagazines.hpp
+++ b/addons/ballistics/CfgMagazines.hpp
@@ -12,75 +12,75 @@ class CfgMagazines {
initSpeed = 760;
};
class ACE_100Rnd_65x39_caseless_mag_Tracer_Dim: 100Rnd_65x39_caseless_mag_Tracer {
- author = "$STR_ACE_Common_ACETeam";
+ author = ECSTRING(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";
+ displayName = CSTRING(100Rnd_65x39_caseless_mag_Tracer_DimName);
+ displayNameShort = CSTRING(100Rnd_65x39_caseless_mag_Tracer_DimNameShort);
+ descriptionShort = CSTRING(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";
+ author = ECSTRING(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";
+ displayName = CSTRING(200Rnd_65x39_cased_Box_Tracer_DimName);
+ 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";
};
class 30Rnd_65x39_caseless_mag_Tracer;
class ACE_30Rnd_65x39_caseless_mag_Tracer_Dim: 30Rnd_65x39_caseless_mag_Tracer {
- author = "$STR_ACE_Common_ACETeam";
+ author = ECSTRING(common,ACETeam);
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";
+ displayName = CSTRING(30Rnd_65x39_caseless_mag_Tracer_DimName);
+ displayNameShort = CSTRING(30Rnd_65x39_caseless_mag_Tracer_DimNameShort);
+ descriptionShort = CSTRING(30Rnd_65x39_caseless_mag_Tracer_DimDescription);
};
class 30Rnd_65x39_caseless_green_mag_Tracer;
class ACE_30Rnd_65x39_caseless_green_mag_Tracer_Dim: 30Rnd_65x39_caseless_green_mag_Tracer {
- author = "$STR_ACE_Common_ACETeam";
+ author = ECSTRING(common,ACETeam);
ammo = "ACE_65x39_Caseless_green_Tracer_Dim";
- displayName = "$STR_ACE_30Rnd_65x39_caseless_green_mag_Tracer_DimName";
- displayNameShort = "$STR_ACE_30Rnd_65x39_caseless_green_mag_Tracer_DimNameShort";
- descriptionShort = "$STR_ACE_30Rnd_65x39_caseless_green_mag_Tracer_DimDescription";
+ displayName = CSTRING(30Rnd_65x39_caseless_green_mag_Tracer_DimName);
+ displayNameShort = CSTRING(30Rnd_65x39_caseless_green_mag_Tracer_DimNameShort);
+ descriptionShort = CSTRING(30Rnd_65x39_caseless_green_mag_Tracer_DimDescription);
};
class 30Rnd_556x45_Stanag: CA_Magazine {
};
class ACE_30Rnd_556x45_Stanag_M995_AP_mag: 30Rnd_556x45_Stanag {
- author = "$STR_ACE_Common_ACETeam";
+ author = ECSTRING(common,ACETeam);
ammo = "ACE_556x45_Ball_M995_AP";
- displayName = "$STR_ACE_30Rnd_556x45_Stanag_M995_AP_mag_Name";
- displayNameShort = "$STR_ACE_30Rnd_556x45_Stanag_M995_AP_mag_NameShort";
- descriptionShort = "$STR_ACE_30Rnd_556x45_Stanag_M995_AP_mag_Description";
- initSpeed = 1046;
+ 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;
};
class ACE_30Rnd_556x45_Stanag_Mk262_mag: 30Rnd_556x45_Stanag {
- author = "$STR_ACE_Common_ACETeam";
+ author = ECSTRING(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";
+ displayName = CSTRING(30Rnd_556x45_Stanag_Mk262_mag_Name);
+ displayNameShort = CSTRING(30Rnd_556x45_Stanag_Mk262_mag_NameShort);
+ descriptionShort = CSTRING(30Rnd_556x45_Stanag_Mk262_mag_Description);
initSpeed = 832;
};
class ACE_30Rnd_556x45_Stanag_Mk318_mag: 30Rnd_556x45_Stanag {
- author = "$STR_ACE_Common_ACETeam";
+ author = ECSTRING(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";
+ 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 {
};
class ACE_30Rnd_556x45_Stanag_Tracer_Dim: 30Rnd_556x45_Stanag_Tracer_Red {
- author = "$STR_ACE_Common_ACETeam";
+ author = ECSTRING(common,ACETeam);
ammo = "ACE_B_556x45_Ball_Tracer_Dim";
- displayName = "$STR_ACE_30Rnd_556x45_mag_Tracer_DimName";
- displayNameShort = "$STR_ACE_30Rnd_556x45_mag_Tracer_DimNameShort";
- descriptionShort = "$STR_ACE_30Rnd_556x45_mag_Tracer_DimDescription";
+ displayName = CSTRING(30Rnd_556x45_mag_Tracer_DimName);
+ displayNameShort = CSTRING(30Rnd_556x45_mag_Tracer_DimNameShort);
+ descriptionShort = CSTRING(30Rnd_556x45_mag_Tracer_DimDescription);
picture = "\A3\weapons_f\data\ui\m_20stanag_red_ca.paa";
};
@@ -97,180 +97,180 @@ class CfgMagazines {
initSpeed = 833;
};
class ACE_20Rnd_762x51_Mag_Tracer: 20Rnd_762x51_Mag {
- author = "$STR_ACE_Common_ACETeam";
+ author = ECSTRING(common,ACETeam);
ammo = "B_762x51_Tracer_Red";
- displayName = "$STR_ACE_20Rnd_762x51_mag_TracerName";
- displayNameShort = "$STR_ACE_20Rnd_762x51_mag_TracerNameShort";
- descriptionShort = "$STR_ACE_20Rnd_762x51_mag_TracerDescription";
+ displayName = CSTRING(20Rnd_762x51_mag_TracerName);
+ displayNameShort = CSTRING(20Rnd_762x51_mag_TracerNameShort);
+ descriptionShort = CSTRING(20Rnd_762x51_mag_TracerDescription);
tracersEvery = 1;
};
class ACE_20Rnd_762x51_Mag_Tracer_Dim: ACE_20Rnd_762x51_Mag_Tracer {
- author = "$STR_ACE_Common_ACETeam";
+ author = ECSTRING(common,ACETeam);
ammo = "ACE_B_762x51_Tracer_Dim";
- displayName = "$STR_ACE_20Rnd_762x51_mag_Tracer_DimName";
- displayNameShort = "$STR_ACE_20Rnd_762x51_mag_Tracer_DimNameShort";
- descriptionShort = "$STR_ACE_20Rnd_762x51_mag_Tracer_DimDescription";
+ displayName = CSTRING(20Rnd_762x51_mag_Tracer_DimName);
+ displayNameShort = CSTRING(20Rnd_762x51_mag_Tracer_DimNameShort);
+ descriptionShort = CSTRING(20Rnd_762x51_mag_Tracer_DimDescription);
};
class ACE_20Rnd_762x51_Mag_SD: 20Rnd_762x51_Mag {
- author = "$STR_ACE_Common_ACETeam";
+ author = ECSTRING(common,ACETeam);
ammo = "ACE_762x51_Ball_Subsonic";
- displayName = "$STR_ACE_20Rnd_762x51_mag_SDName";
- displayNameShort = "$STR_ACE_20Rnd_762x51_mag_SDNameShort";
- descriptionShort = "$STR_ACE_20Rnd_762x51_mag_SDDescription";
+ displayName = CSTRING(20Rnd_762x51_mag_SDName);
+ displayNameShort = CSTRING(20Rnd_762x51_mag_SDNameShort);
+ descriptionShort = CSTRING(20Rnd_762x51_mag_SDDescription);
initSpeed = 325;
};
class ACE_10Rnd_762x51_M118LR_Mag: 10Rnd_762x51_Mag {
- author = "$STR_ACE_Common_ACETeam";
+ author = ECSTRING(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";
+ displayName = CSTRING(10Rnd_762x51_M118LR_Mag_Name);
+ displayNameShort = CSTRING(10Rnd_762x51_M118LR_Mag_NameShort);
+ descriptionShort = CSTRING(10Rnd_762x51_M118LR_Mag_Description);
initSpeed = 780;
};
class ACE_10Rnd_762x51_Mk316_Mod_0_Mag: 10Rnd_762x51_Mag {
- author = "$STR_ACE_Common_ACETeam";
+ author = ECSTRING(common,ACETeam);
ammo = "ACE_762x51_Ball_Mk316_Mod_0";
count = 10;
- displayName = "$STR_ACE_10Rnd_762x51_Mk316_Mod_0_Mag_Name";
- displayNameShort = "$STR_ACE_10Rnd_762x51_Mk316_Mod_0_Mag_NameShort";
- descriptionShort = "$STR_ACE_10Rnd_762x51_Mk316_Mod_0_Mag_Description";
+ displayName = CSTRING(10Rnd_762x51_Mk316_Mod_0_Mag_Name);
+ displayNameShort = CSTRING(10Rnd_762x51_Mk316_Mod_0_Mag_NameShort);
+ descriptionShort = CSTRING(10Rnd_762x51_Mk316_Mod_0_Mag_Description);
initSpeed = 790;
};
class ACE_10Rnd_762x51_Mk319_Mod_0_Mag: 10Rnd_762x51_Mag {
- author = "$STR_ACE_Common_ACETeam";
+ author = ECSTRING(common,ACETeam);
ammo = "ACE_762x51_Ball_Mk319_Mod_0";
count = 10;
- displayName = "$STR_ACE_10Rnd_762x51_Mk319_Mod_0_Mag_Name";
- displayNameShort = "$STR_ACE_10Rnd_762x51_Mk319_Mod_0_Mag_NameShort";
- descriptionShort = "$STR_ACE_10Rnd_762x51_Mk319_Mod_0_Mag_Description";
+ displayName = CSTRING(10Rnd_762x51_Mk319_Mod_0_Mag_Name);
+ displayNameShort = CSTRING(10Rnd_762x51_Mk319_Mod_0_Mag_NameShort);
+ descriptionShort = CSTRING(10Rnd_762x51_Mk319_Mod_0_Mag_Description);
initSpeed = 900;
};
class ACE_10Rnd_762x51_M993_AP_Mag: 10Rnd_762x51_Mag {
- author = "$STR_ACE_Common_ACETeam";
+ author = ECSTRING(common,ACETeam);
ammo = "ACE_762x51_Ball_M993_AP";
count = 10;
- displayName = "$STR_ACE_10Rnd_762x51_M993_AP_Mag_Name";
- displayNameShort = "$STR_ACE_10Rnd_762x51_M993_AP_Mag_NameShort";
- descriptionShort = "$STR_ACE_10Rnd_762x51_M993_AP_Mag_Description";
+ displayName = CSTRING(10Rnd_762x51_M993_AP_Mag_Name);
+ displayNameShort = CSTRING(10Rnd_762x51_M993_AP_Mag_NameShort);
+ descriptionShort = CSTRING(10Rnd_762x51_M993_AP_Mag_Description);
initSpeed = 920;
};
class ACE_20Rnd_762x51_M118LR_Mag: 20Rnd_762x51_Mag {
- author = "$STR_ACE_Common_ACETeam";
+ author = ECSTRING(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";
+ displayName = CSTRING(20Rnd_762x51_M118LR_Mag_Name);
+ displayNameShort = CSTRING(20Rnd_762x51_M118LR_Mag_NameShort);
+ descriptionShort = CSTRING(20Rnd_762x51_M118LR_Mag_Description);
initSpeed = 780;
};
class ACE_20Rnd_762x51_Mk316_Mod_0_Mag: 20Rnd_762x51_Mag {
- author = "$STR_ACE_Common_ACETeam";
+ author = ECSTRING(common,ACETeam);
ammo = "ACE_762x51_Ball_Mk316_Mod_0";
count = 20;
- displayName = "$STR_ACE_20Rnd_762x51_Mk316_Mod_0_Mag_Name";
- displayNameShort = "$STR_ACE_20Rnd_762x51_Mk316_Mod_0_Mag_NameShort";
- descriptionShort = "$STR_ACE_20Rnd_762x51_Mk316_Mod_0_Mag_Description";
+ 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;
};
class ACE_20Rnd_762x51_Mk319_Mod_0_Mag: 20Rnd_762x51_Mag {
- author = "$STR_ACE_Common_ACETeam";
+ author = ECSTRING(common,ACETeam);
ammo = "ACE_762x51_Ball_Mk319_Mod_0";
- displayName = "$STR_ACE_20Rnd_762x51_Mk319_Mod_0_Mag_Name";
- displayNameShort = "$STR_ACE_20Rnd_762x51_Mk319_Mod_0_Mag_NameShort";
- descriptionShort = "$STR_ACE_20Rnd_762x51_Mk319_Mod_0_Mag_Description";
+ 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;
};
class ACE_20Rnd_762x51_M993_AP_Mag: 20Rnd_762x51_Mag {
- author = "$STR_ACE_Common_ACETeam";
+ author = ECSTRING(common,ACETeam);
ammo = "ACE_762x51_Ball_M993_AP";
count = 20;
- displayName = "$STR_ACE_20Rnd_762x51_M993_AP_Mag_Name";
- displayNameShort = "$STR_ACE_20Rnd_762x51_M993_AP_Mag_NameShort";
- descriptionShort = "$STR_ACE_20Rnd_762x51_M993_AP_Mag_Description";
+ 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;
};
class ACE_20Rnd_762x67_Mk248_Mod_0_Mag: 20Rnd_762x51_Mag {
- author = "$STR_ACE_Common_ACETeam";
+ author = ECSTRING(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";
+ 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;
};
class ACE_20Rnd_762x67_Mk248_Mod_1_Mag: 20Rnd_762x51_Mag {
- author = "$STR_ACE_Common_ACETeam";
+ author = ECSTRING(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";
+ 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;
};
class ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag: 20Rnd_762x51_Mag {
- author = "$STR_ACE_Common_ACETeam";
+ author = ECSTRING(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";
+ 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;
};
class ACE_30Rnd_65x47_Scenar_mag: 30Rnd_65x39_caseless_mag {
- author = "$STR_ACE_Common_ACETeam";
+ author = ECSTRING(common,ACETeam);
ammo = "ACE_65x47_Ball_Scenar";
- displayName = "$STR_ACE_30Rnd_65x47_Scenar_mag_Name";
- displayNameShort = "$STR_ACE_30Rnd_65x47_Scenar_mag_NameShort";
- descriptionShort = "$STR_ACE_30Rnd_65x47_Scenar_mag_Description";
+ displayName = CSTRING(30Rnd_65x47_Scenar_mag_Name);
+ displayNameShort = CSTRING(30Rnd_65x47_Scenar_mag_NameShort);
+ descriptionShort = CSTRING(30Rnd_65x47_Scenar_mag_Description);
};
class ACE_30Rnd_65_Creedmor_mag: 30Rnd_65x39_caseless_mag {
- author = "$STR_ACE_Common_ACETeam";
+ author = ECSTRING(common,ACETeam);
ammo = "ACE_65_Creedmor_Ball";
- displayName = "$STR_ACE_30Rnd_65_Creedmor_mag_Name";
- displayNameShort = "$STR_ACE_30Rnd_65_Creedmor_mag_NameShort";
- descriptionShort = "$STR_ACE_30Rnd_65_Creedmor_mag_Description";
+ displayName = CSTRING(30Rnd_65_Creedmor_mag_Name);
+ displayNameShort = CSTRING(30Rnd_65_Creedmor_mag_NameShort);
+ descriptionShort = CSTRING(30Rnd_65_Creedmor_mag_Description);
};
class 10Rnd_338_Mag;
class ACE_10Rnd_338_300gr_HPBT_Mag: 10Rnd_338_Mag {
- author = "$STR_ACE_Common_ACETeam";
+ author = ECSTRING(common,ACETeam);
ammo = "ACE_338_Ball";
- displayName = "$STR_ACE_10Rnd_338_300gr_HPBT_Mag_Name";
- displayNameShort = "$STR_ACE_10Rnd_338_300gr_HPBT_Mag_NameShort";
- descriptionShort = "$STR_ACE_10Rnd_338_300gr_HPBT_Mag_Description";
+ displayName = CSTRING(10Rnd_338_300gr_HPBT_Mag_Name);
+ displayNameShort = CSTRING(10Rnd_338_300gr_HPBT_Mag_NameShort);
+ descriptionShort = CSTRING(10Rnd_338_300gr_HPBT_Mag_Description);
initSpeed = 800;
};
class ACE_10Rnd_338_API526_Mag: 10Rnd_338_Mag {
- author = "$STR_ACE_Common_ACETeam";
+ author = ECSTRING(common,ACETeam);
ammo = "ACE_338_Ball_API526";
- displayName = "$STR_ACE_10Rnd_338_API526_Mag_Name";
- displayNameShort = "$STR_ACE_10Rnd_338_API526_Mag_NameShort";
- descriptionShort = "$STR_ACE_10Rnd_338_API526_Mag_Description";
+ displayName = CSTRING(10Rnd_338_API526_Mag_Name);
+ displayNameShort = CSTRING(10Rnd_338_API526_Mag_NameShort);
+ descriptionShort = CSTRING(10Rnd_338_API526_Mag_Description);
initSpeed = 880;
};
class 5Rnd_127x108_Mag;
class ACE_5Rnd_127x99_Mag: 5Rnd_127x108_Mag {
- author = "$STR_ACE_Common_ACETeam";
+ author = ECSTRING(common,ACETeam);
ammo = "B_127x99_Ball";
- displayName = "$STR_ACE_5Rnd_127x99_Mag_Name";
- displayNameShort = "$STR_ACE_5Rnd_127x99_Mag_NameShort";
- descriptionShort = "$STR_ACE_5Rnd_127x99_Mag_Description";
+ displayName = CSTRING(5Rnd_127x99_Mag_Name);
+ displayNameShort = CSTRING(5Rnd_127x99_Mag_NameShort);
+ descriptionShort = CSTRING(5Rnd_127x99_Mag_Description);
initSpeed = 900;
};
class ACE_5Rnd_127x99_API_Mag: 5Rnd_127x108_Mag {
- author = "$STR_ACE_Common_ACETeam";
+ author = ECSTRING(common,ACETeam);
ammo = "ACE_127x99_API";
- displayName = "$STR_ACE_5Rnd_127x99_API_Mag_Name";
- displayNameShort = "$STR_ACE_5Rnd_127x99_API_Mag_NameShort";
- descriptionShort = "$STR_ACE_5Rnd_127x99_API_Mag_Description";
+ displayName = CSTRING(5Rnd_127x99_API_Mag_Name);
+ displayNameShort = CSTRING(5Rnd_127x99_API_Mag_NameShort);
+ descriptionShort = CSTRING(5Rnd_127x99_API_Mag_Description);
initSpeed = 900;
};
class ACE_5Rnd_127x99_AMAX_Mag: 5Rnd_127x108_Mag {
- author = "$STR_ACE_Common_ACETeam";
+ author = ECSTRING(common,ACETeam);
ammo = "ACE_127x99_Ball_AMAX";
- displayName = "$STR_ACE_5Rnd_127x99_AMAX_Mag_Name";
- displayNameShort = "$STR_ACE_5Rnd_127x99_AMAX_Mag_NameShort";
- descriptionShort = "$STR_ACE_5Rnd_127x99_AMAX_Mag_Description";
+ displayName = CSTRING(5Rnd_127x99_AMAX_Mag_Name);
+ displayNameShort = CSTRING(5Rnd_127x99_AMAX_Mag_NameShort);
+ descriptionShort = CSTRING(5Rnd_127x99_AMAX_Mag_Description);
initSpeed = 860;
};
@@ -279,11 +279,11 @@ class CfgMagazines {
initSpeed = 450;
};
class ACE_30Rnd_9x19_mag: 30Rnd_9x21_Mag {
- author = "$STR_ACE_Common_ACETeam";
+ author = ECSTRING(common,ACETeam);
ammo = "ACE_9x19_Ball";
- displayName = "$STR_ACE_30Rnd_9x19_mag_Name";
- displayNameShort = "$STR_ACE_30Rnd_9x19_mag_NameShort";
- descriptionShort = "$STR_ACE_30Rnd_9x19_mag_Description";
+ displayName = CSTRING(30Rnd_9x19_mag_Name);
+ displayNameShort = CSTRING(30Rnd_9x19_mag_NameShort);
+ descriptionShort = CSTRING(30Rnd_9x19_mag_Description);
initSpeed = 370;
};
@@ -311,11 +311,11 @@ class CfgMagazines {
initSpeed = 450;
};
class ACE_16Rnd_9x19_mag: 16Rnd_9x21_Mag {
- author = "$STR_ACE_Common_ACETeam";
+ author = ECSTRING(common,ACETeam);
ammo = "ACE_9x19_Ball";
- displayName = "$STR_ACE_16Rnd_9x19_mag_Name";
- displayNameShort = "$STR_ACE_16Rnd_9x19_mag_NameShort";
- descriptionShort = "$STR_ACE_16Rnd_9x19_mag_Description";
+ displayName = CSTRING(16Rnd_9x19_mag_Name);
+ displayNameShort = CSTRING(16Rnd_9x19_mag_NameShort);
+ descriptionShort = CSTRING(16Rnd_9x19_mag_Description);
initSpeed = 370;
};
@@ -323,11 +323,11 @@ class CfgMagazines {
initSpeed = 800;
};
class ACE_10Rnd_762x54_Tracer_mag: 10Rnd_762x54_Mag {
- author = "$STR_ACE_Common_ACETeam";
+ author = ECSTRING(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";
+ displayName = CSTRING(10Rnd_762x54_Tracer_mag_Name);
+ displayNameShort = CSTRING(10Rnd_762x54_Tracer_mag_NameShort);
+ descriptionShort = CSTRING(10Rnd_762x54_Tracer_mag_Description);
initSpeed = 800;
tracersEvery = 1;
};
diff --git a/addons/ballistics/CfgVehicles.hpp b/addons/ballistics/CfgVehicles.hpp
index 82e7fef5e3..bb50dcdc2e 100644
--- a/addons/ballistics/CfgVehicles.hpp
+++ b/addons/ballistics/CfgVehicles.hpp
@@ -2,7 +2,7 @@
class CfgVehicles {
class Sign_F;
class ACE_TargetWall: Sign_F {
- author = "$STR_ACE_Common_ACETeam";
+ author = ECSTRING(common,ACETeam);
scope = 0;
class Eventhandlers {
init = QUOTE(_this call COMPILE_FILE(scripts\initTargetWall));
@@ -190,9 +190,9 @@ class CfgVehicles {
class ACE_Box_Ammo: NATO_Box_Base {
scope = 2;
accuracy = 1000;
- displayName = "[ACE] Ammo Supply Crate";
+ displayName = CSTRING(AmmoSupplyCrate_DisplayName);
model = "\A3\weapons_F\AmmoBoxes\AmmoBox_F";
- author = "$STR_ACE_Common_ACETeam";
+ author = ECSTRING(common,ACETeam);
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_SD,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_M993_AP_Mag,4);
@@ -225,5 +225,27 @@ class CfgVehicles {
MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_API_Mag,4);
MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_AMAX_Mag,4);
};
+ class AnimationSources {
+ class Ammo_source {
+ source = "user";
+ animPeriod = 1;
+ initPhase = 0;
+ };
+ class AmmoOrd_source {
+ source = "user";
+ animPeriod = 1;
+ initPhase = 1;
+ };
+ class Grenades_source {
+ source = "user";
+ animPeriod = 1;
+ initPhase = 1;
+ };
+ class Support_source {
+ source = "user";
+ animPeriod = 1;
+ initPhase = 1;
+ };
+ };
};
};
diff --git a/addons/ballistics/CfgWeapons.hpp b/addons/ballistics/CfgWeapons.hpp
index 0f9dbcfbe4..e0cc3f203d 100644
--- a/addons/ballistics/CfgWeapons.hpp
+++ b/addons/ballistics/CfgWeapons.hpp
@@ -1,16 +1,13 @@
+class Single;
+class Burst;
+class FullAuto;
class Mode_SemiAuto;
+class Mode_Burst;
class Mode_FullAuto;
class CfgWeapons {
- class DMR_02_base_F;
- class DMR_03_base_F;
- class DMR_04_base_F;
- class DMR_05_base_F;
- class DMR_06_base_F;
- class GM6_base_F;
class LMG_RCWS;
- class LRR_base_F;
class MGun;
class MGunCore;
class MMG_01_base_F;
@@ -22,19 +19,83 @@ class CfgWeapons {
/* Long Rifles */
+ class GM6_base_F: Rifle_Long_Base_F {
+ class Single: Mode_SemiAuto {
+ dispersion = 0.00029; // radians. Equal to 1.00 MOA.
+ };
+ };
+
+ class LRR_base_F: Rifle_Long_Base_F {
+ class Single: Mode_SemiAuto {
+ dispersion = 0.00020; // radians. Equal to 0.70 MOA.
+ };
+ };
+
+ class DMR_06_base_F: Rifle_Long_Base_F {
+ class Single: Mode_SemiAuto {
+ dispersion = 0.00029; // radians. Equal to 1.00 MOA.
+ };
+
+ class FullAuto: Mode_FullAuto {
+ dispersion = 0.00029; // radians. Equal to 1.00 MOA.
+ };
+ };
+
+ class DMR_05_base_F: Rifle_Long_Base_F {
+ class Single: Mode_SemiAuto {
+ dispersion = 0.00029; // radians. Equal to 1.00 MOA.
+ };
+
+ class FullAuto: Mode_FullAuto {
+ dispersion = 0.00029; // radians. Equal to 1.00 MOA.
+ };
+ };
+
+ class DMR_04_base_F: Rifle_Long_Base_F {
+ class Single: Mode_SemiAuto {
+ dispersion = 0.00029; // radians. Equal to 1.00 MOA.
+ };
+ };
+
+ class DMR_03_base_F: Rifle_Long_Base_F {
+ class Single: Mode_SemiAuto {
+ dispersion = 0.00032; // radians. Equal to 1.10 MOA.
+ };
+
+ class FullAuto: Mode_FullAuto {
+ dispersion = 0.00032; // radians. Equal to 1.10 MOA.
+ };
+ };
+
+ class DMR_02_base_F: Rifle_Long_Base_F {
+ class Single: Mode_SemiAuto {
+ dispersion = 0.000262; // radians. Equal to 0.90 MOA.
+ };
+ };
+
+ class DMR_01_base_F: Rifle_Long_Base_F {
+ class WeaponSlotsInfo: WeaponSlotsInfo {
+ class MuzzleSlot: MuzzleSlot {
+ compatibleItems[] += {"ACE_muzzle_mzls_B"};
+ };
+ };
+ class Single: Mode_SemiAuto {
+ dispersion = 0.0004; // radians. Equal to 1.375 MOA.
+ };
+ };
+
class EBR_base_F: Rifle_Long_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
compatibleItems[] += {"ACE_muzzle_mzls_B"};
};
};
- };
-
- class DMR_01_base_F: Rifle_Long_Base_F {
- class WeaponSlotsInfo: WeaponSlotsInfo {
- class MuzzleSlot: MuzzleSlot {
- compatibleItems[] += {"ACE_muzzle_mzls_B"};
- };
+ class Single: Mode_SemiAuto {
+ dispersion = 0.00029; // radians. Equal to 1.00 MOA.
+ };
+
+ class FullAuto: Mode_FullAuto {
+ dispersion = 0.00029; // radians. Equal to 1.00 MOA.
};
};
@@ -46,14 +107,6 @@ class CfgWeapons {
compatibleItems[] += {"ACE_muzzle_mzls_H"};
};
};
- class Single: Mode_SemiAuto {
- dispersion = 0.000800; // radians. Equal to 2.75 MOA.
- // Based on widely cited 2 MOA figure for new 5.56 ACR.
- };
-
- class FullAuto: Mode_FullAuto {
- dispersion = 0.00147; // radians. Equal to 5.1 MOA.
- };
};
class arifle_MX_SW_F: arifle_MX_Base_F {
magazines[] = {
@@ -65,8 +118,8 @@ class CfgWeapons {
"ACE_30Rnd_65x39_caseless_mag_Tracer_Dim"
};
initSpeed = -1.0;
- ACE_barrelTwist=9;
- ACE_barrelLength=16.0;
+ ACE_barrelTwist=228.6;
+ ACE_barrelLength=406.4;
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
// Shit is broken again
@@ -74,14 +127,6 @@ class CfgWeapons {
compatibleItems[] = {"muzzle_snds_H","muzzle_snds_H_SW","ACE_muzzle_mzls_H"};
};
};
- class Single: Mode_SemiAuto {
- dispersion = 0.000800; // radians. Equal to 2.75 MOA.
- // Based on widely cited 2 MOA figure for new 5.56 ACR.
- };
-
- class manual: FullAuto {
- dispersion = 0.00147; // radians. Equal to 5.1 MOA.
- };
};
class arifle_MXM_F: arifle_MX_Base_F {
magazines[] = {
@@ -92,15 +137,14 @@ class CfgWeapons {
"ACE_30Rnd_65_Creedmor_mag"
};
initSpeed = -1.018;
- ACE_barrelTwist=9;
- ACE_barrelLength=18;
+ ACE_barrelTwist=228.6;
+ ACE_barrelLength=457.2;
class Single: Single {
- dispersion = 0.00029; // radians. Equal to 1 MOA.
- // 6.5mm is easily capable of this in a half-tuned rifle.
+ dispersion = 0.000436; // radians. Equal to 1.50 MOA.
};
class FullAuto: FullAuto {
- dispersion = 0.000800; // radians. Equal to 2.75 MOA.
+ dispersion = 0.000436; // radians. Equal to 1.50 MOA.
};
};
@@ -112,15 +156,6 @@ class CfgWeapons {
compatibleItems[] += {"ACE_muzzle_mzls_H"};
};
};
- class Single: Mode_SemiAuto {
- dispersion = 0.000800; // radians. Equal to 2.75 MOA.
- // Based on widely cited 2 MOA figure for new 5.56 ACR?
- // Use your imagination for fictional weapons!
- };
-
- class FullAuto: Mode_FullAuto {
- dispersion = 0.00147; // radians. Equal to 5.1 MOA.
- };
};
@@ -137,15 +172,8 @@ class CfgWeapons {
compatibleItems[] += {"ACE_muzzle_mzls_H"};
};
};
- ACE_barrelTwist=7;
- ACE_barrelLength=12.5;
- class manual: Mode_FullAuto {
- dispersion = 0.00175; // radians. Equal to 6 MOA.
- };
-
- class Single: manual {
- dispersion = 0.00175; // radians. Equal to 6 MOA.
- };
+ ACE_barrelTwist=177.8;
+ ACE_barrelLength=317.5;
};
class LMG_Zafir_F: Rifle_Long_Base_F {
initSpeed = -1.0;
@@ -154,15 +182,8 @@ class CfgWeapons {
compatibleItems[] += {"ACE_muzzle_mzls_B"};
};
};
- ACE_barrelTwist=12;
- ACE_barrelLength=18.1;
- class FullAuto: Mode_FullAuto {
- dispersion = 0.00175; // radians. Equal to 6 MOA.
- };
-
- class Single: Mode_SemiAuto {
- dispersion = 0.00175; // radians. Equal to 6 MOA.
- };
+ ACE_barrelTwist=304.8;
+ ACE_barrelLength=459.74;
};
@@ -173,13 +194,6 @@ class CfgWeapons {
compatibleItems[] += {"ACE_muzzle_mzls_L"};
};
};
- class Single: Mode_SemiAuto {
- dispersion = 0.000727; // radians. Equal to 2.5 MOA, about the limit of mass-produced M855.
- };
-
- class FullAuto: Mode_FullAuto {
- dispersion = 0.00147; // radians. Equal to 5.1 MOA.
- };
};
class mk20_base_F: Rifle_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
@@ -187,14 +201,6 @@ class CfgWeapons {
compatibleItems[] += {"ACE_muzzle_mzls_L"};
};
};
- class Single: Mode_SemiAuto {
- dispersion = 0.0008727; // radians. Equal to 3 MOA, about the limit of mass-produced M855 plus
- // some extra for these worn out Greek Army service rifles.
- };
-
- class FullAuto: Mode_FullAuto {
- dispersion = 0.00147; // radians. Equal to 5.1 MOA.
- };
};
@@ -202,12 +208,15 @@ class CfgWeapons {
class SDAR_base_F: Rifle_Base_F {
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.
+ dispersion = 0.0008727; // radians. Equal to 3 MOA.
};
+ class Burst: Mode_Burst {
+ dispersion = 0.0008727; // radians. Equal to 3 MOA.
+ };
+
class FullAuto: Mode_FullAuto {
- dispersion = 0.00147; // radians. Equal to 5.1 MOA.
+ dispersion = 0.0008727; // radians. Equal to 3 MOA.
};
};
class pdw2000_base_F: Rifle_Base_F {
@@ -241,8 +250,8 @@ class CfgWeapons {
class hgun_P07_F: Pistol_Base_F {
initSpeed = -0.9778;
- ACE_barrelTwist=10;
- ACE_barrelLength=4;
+ ACE_barrelTwist=254.0;
+ ACE_barrelLength=101.6;
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
linkProxy = "\A3\data_f\proxies\weapon_slots\MUZZLE";
@@ -253,8 +262,8 @@ class CfgWeapons {
class hgun_Rook40_F: Pistol_Base_F {
initSpeed = -1.0;
- ACE_barrelTwist=10;
- ACE_barrelLength=4.4;
+ ACE_barrelTwist=254.0;
+ ACE_barrelLength=111.76;
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
linkProxy = "\A3\data_f\proxies\weapon_slots\MUZZLE";
@@ -265,8 +274,8 @@ class CfgWeapons {
class hgun_ACPC2_F: Pistol_Base_F {
initSpeed = -1.0;
- ACE_barrelTwist=16;
- ACE_barrelLength=5;
+ ACE_barrelTwist=406.4;
+ ACE_barrelLength=127.0;
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
compatibleItems[] += {"ACE_muzzle_mzls_smg_01"};
@@ -276,8 +285,8 @@ class CfgWeapons {
class hgun_Pistol_heavy_01_F: Pistol_Base_F {
initSpeed = -0.96;
- ACE_barrelTwist=16;
- ACE_barrelLength=4.5;
+ ACE_barrelTwist=406.4;
+ ACE_barrelLength=114.3;
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
compatibleItems[] += {"ACE_muzzle_mzls_smg_01"};
@@ -287,8 +296,8 @@ class CfgWeapons {
class hgun_Pistol_heavy_02_F: Pistol_Base_F {
initSpeed = -0.92;
- ACE_barrelTwist=16;
- ACE_barrelLength=3;
+ ACE_barrelTwist=406.4;
+ ACE_barrelLength=76.2;
/*
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot {
@@ -300,8 +309,8 @@ class CfgWeapons {
};
class hgun_PDW2000_F: pdw2000_base_F {
initSpeed = -1.157;
- ACE_barrelTwist=9;
- ACE_barrelLength=7;
+ ACE_barrelTwist=228.6;
+ ACE_barrelLength=177.8;
};
class arifle_Katiba_F: arifle_katiba_Base_F {
magazines[] = {
@@ -310,8 +319,8 @@ class CfgWeapons {
"ACE_30Rnd_65x39_caseless_green_mag_Tracer_Dim"
};
initSpeed = -1.08;
- ACE_barrelTwist=8;
- ACE_barrelLength=28.7;
+ ACE_barrelTwist=203.2;
+ ACE_barrelLength=728.98;
};
class arifle_Katiba_C_F: arifle_katiba_Base_F {
magazines[] = {
@@ -320,8 +329,8 @@ class CfgWeapons {
"ACE_30Rnd_65x39_caseless_green_mag_Tracer_Dim"
};
initSpeed = -1.07;
- ACE_barrelTwist=8;
- ACE_barrelLength=26.8;
+ ACE_barrelTwist=203.2;
+ ACE_barrelLength=680.72;
};
class arifle_Katiba_GL_F: arifle_katiba_Base_F {
magazines[] = {
@@ -330,8 +339,8 @@ class CfgWeapons {
"ACE_30Rnd_65x39_caseless_green_mag_Tracer_Dim"
};
initSpeed = -1.08;
- ACE_barrelTwist=8;
- ACE_barrelLength=28.7;
+ ACE_barrelTwist=203.2;
+ ACE_barrelLength=728.98;
};
class arifle_MX_F: arifle_MX_Base_F {
magazines[] = {
@@ -340,8 +349,8 @@ class CfgWeapons {
"ACE_30Rnd_65x39_caseless_mag_Tracer_Dim"
};
initSpeed = -0.99;
- ACE_barrelTwist=9;
- ACE_barrelLength=14.5;
+ ACE_barrelTwist=228.6;
+ ACE_barrelLength=368.3;
};
class arifle_MX_GL_F: arifle_MX_Base_F {
magazines[] = {
@@ -350,13 +359,13 @@ class CfgWeapons {
"ACE_30Rnd_65x39_caseless_mag_Tracer_Dim"
};
initSpeed = -0.99;
- ACE_barrelTwist=9;
- ACE_barrelLength=14.5;
+ ACE_barrelTwist=228.6;
+ ACE_barrelLength=368.3;
};
/*
class arifle_MX_SW_F: arifle_MX_Base_F {
- ACE_barrelTwist=9;
- ACE_barrelLength=16.0;
+ ACE_barrelTwist=228.6;
+ ACE_barrelLength=406.4;
};
*/
class arifle_MXC_F: arifle_MX_Base_F {
@@ -366,13 +375,13 @@ class CfgWeapons {
"ACE_30Rnd_65x39_caseless_mag_Tracer_Dim"
};
initSpeed = -0.965;
- ACE_barrelTwist=8;
- ACE_barrelLength=10.5;
+ ACE_barrelTwist=203.2;
+ ACE_barrelLength=266.7;
};
/*
class arifle_MXM_F: arifle_MX_Base_F {
- ACE_barrelTwist=9;
- ACE_barrelLength=18;
+ ACE_barrelTwist=228.6;
+ ACE_barrelLength=457.2;
};
*/
class arifle_SDAR_F: SDAR_base_F {
@@ -388,13 +397,13 @@ class CfgWeapons {
"ACE_30Rnd_556x45_Stanag_Tracer_Dim"
};
initSpeed = -0.989;
- ACE_barrelTwist=11.25;
- ACE_barrelLength=18;
+ ACE_barrelTwist=285.75;
+ ACE_barrelLength=457.2;
};
class SMG_02_F: SMG_02_base_F {
initSpeed = -1.054;
- ACE_barrelTwist=10;
- ACE_barrelLength=7.7;
+ ACE_barrelTwist=254.0;
+ ACE_barrelLength=195.58;
};
class arifle_TRG20_F: Tavor_base_F {
magazines[] = {
@@ -408,8 +417,8 @@ class CfgWeapons {
"ACE_30Rnd_556x45_Stanag_Tracer_Dim"
};
initSpeed = -0.95;
- ACE_barrelTwist=7;
- ACE_barrelLength=15;
+ ACE_barrelTwist=177.8;
+ ACE_barrelLength=381.0;
};
class arifle_TRG21_F: Tavor_base_F {
magazines[] = {
@@ -423,8 +432,8 @@ class CfgWeapons {
"ACE_30Rnd_556x45_Stanag_Tracer_Dim"
};
initSpeed = -0.989;
- ACE_barrelTwist=7;
- ACE_barrelLength=18.1;
+ ACE_barrelTwist=177.8;
+ ACE_barrelLength=459.74;
};
class arifle_TRG21_GL_F: arifle_TRG21_F {
magazines[] = {
@@ -438,13 +447,13 @@ class CfgWeapons {
"ACE_30Rnd_556x45_Stanag_Tracer_Dim"
};
initSpeed = -0.989;
- ACE_barrelTwist=7;
- ACE_barrelLength=18.1;
+ ACE_barrelTwist=177.8;
+ ACE_barrelLength=459.74;
};
/*
class LMG_Zafir_F: Rifle_Long_Base_F {
- ACE_barrelTwist=12;
- ACE_barrelLength=18.1;
+ ACE_barrelTwist=304.8;
+ ACE_barrelLength=459.74;
};
*/
class arifle_Mk20_F: mk20_base_F {
@@ -459,8 +468,8 @@ class CfgWeapons {
"ACE_30Rnd_556x45_Stanag_Tracer_Dim"
};
initSpeed = -0.98;
- ACE_barrelTwist=7;
- ACE_barrelLength=17.4;
+ ACE_barrelTwist=177.8;
+ ACE_barrelLength=441.96;
};
class arifle_Mk20C_F: mk20_base_F {
magazines[] = {
@@ -474,8 +483,8 @@ class CfgWeapons {
"ACE_30Rnd_556x45_Stanag_Tracer_Dim"
};
initSpeed = -0.956;
- ACE_barrelTwist=7;
- ACE_barrelLength=16;
+ ACE_barrelTwist=177.8;
+ ACE_barrelLength=406.4;
};
class arifle_Mk20_GL_F: mk20_base_F {
magazines[] = {
@@ -489,13 +498,13 @@ class CfgWeapons {
"ACE_30Rnd_556x45_Stanag_Tracer_Dim"
};
initSpeed = -0.956;
- ACE_barrelTwist=7;
- ACE_barrelLength=16;
+ ACE_barrelTwist=177.8;
+ ACE_barrelLength=406.4;
};
class SMG_01_F: SMG_01_Base {
initSpeed = -1.016;
- ACE_barrelTwist=16;
- ACE_barrelLength=5.5;
+ ACE_barrelTwist=406.4;
+ ACE_barrelLength=139.7;
};
class srifle_DMR_01_F: DMR_01_base_F {
magazines[] = {
@@ -503,8 +512,8 @@ class CfgWeapons {
"ACE_10Rnd_762x54_Tracer_mag"
};
initSpeed = -1.025;
- ACE_barrelTwist=9.5;
- ACE_barrelLength=24;
+ ACE_barrelTwist=241.3;
+ ACE_barrelLength=609.6;
};
class srifle_EBR_F: EBR_base_F {
magazines[] = {
@@ -518,20 +527,20 @@ class CfgWeapons {
"ACE_20Rnd_762x51_Mag_SD"
};
initSpeed = -0.9724;
- ACE_barrelTwist=12;
- ACE_barrelLength=18;
+ ACE_barrelTwist=304.8;
+ ACE_barrelLength=457.2;
};
/*
class LMG_Mk200_F: Rifle_Long_Base_F {
initSpeed = -1.0;
- ACE_barrelTwist=7;
- ACE_barrelLength=12.5;
+ ACE_barrelTwist=177.8;
+ ACE_barrelLength=317.5;
};
*/
class srifle_LRR_F: LRR_base_F {
initSpeed = -1.0;
- ACE_barrelTwist=13;
- ACE_barrelLength=29;
+ ACE_barrelTwist=330.2;
+ ACE_barrelLength=736.6;
};
class srifle_GM6_F: GM6_base_F {
magazines[] = {
@@ -542,8 +551,8 @@ class CfgWeapons {
"ACE_5Rnd_127x99_AMAX_Mag"
};
initSpeed = -1.0;
- ACE_barrelTwist=15;
- ACE_barrelLength=36.6;
+ ACE_barrelTwist=381.0;
+ ACE_barrelLength=730;
};
class srifle_DMR_02_F: DMR_02_base_F {
magazines[] = {
@@ -555,8 +564,8 @@ class CfgWeapons {
"ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag"
};
initSpeed = -0.962;
- ACE_barrelTwist=10;
- ACE_barrelLength=20;
+ ACE_barrelTwist=254.0;
+ ACE_barrelLength=508.0;
};
class srifle_DMR_03_F: DMR_03_base_F {
magazines[] = {
@@ -570,18 +579,18 @@ class CfgWeapons {
"ACE_20Rnd_762x51_Mag_SD"
};
initSpeed = -0.9843;
- ACE_barrelTwist=10;
- ACE_barrelLength=20;
+ ACE_barrelTwist=254.0;
+ ACE_barrelLength=508.0;
};
class srifle_DMR_04_F: DMR_04_base_F {
initSpeed = -1.0;
- ACE_barrelTwist=8;
- ACE_barrelLength=17.72;
+ ACE_barrelTwist=203.2;
+ ACE_barrelLength=450.088;
};
class srifle_DMR_05_blk_F: DMR_05_base_F {
initSpeed = -1.0;
- ACE_barrelTwist=14.17;
- ACE_barrelLength=24.41;
+ ACE_barrelTwist=359.918;
+ ACE_barrelLength=620.014;
};
class srifle_DMR_06_camo_F: DMR_06_base_F {
magazines[] = {
@@ -595,18 +604,18 @@ class CfgWeapons {
"ACE_20Rnd_762x51_Mag_SD"
};
initSpeed = -0.9916;
- ACE_barrelTwist=12;
- ACE_barrelLength=22;
+ ACE_barrelTwist=304.8;
+ ACE_barrelLength=558.8;
};
class MMG_01_hex_F: MMG_01_base_F {
initSpeed = -1.0;
- ACE_barrelTwist=14.17;
- ACE_barrelLength=21.65;
+ ACE_barrelTwist=359.918;
+ ACE_barrelLength=549.91;
};
class MMG_02_camo_F: MMG_02_base_F {
initSpeed = -1.0;
- ACE_barrelTwist=9.25;
- ACE_barrelLength=24;
+ ACE_barrelTwist=234.95;
+ ACE_barrelLength=609.6;
};
class HMG_127 : LMG_RCWS {
@@ -615,8 +624,8 @@ class CfgWeapons {
};
class HMG_M2: HMG_01 {
initSpeed = -1.0;
- ACE_barrelTwist=12;
- ACE_barrelLength=45;
+ ACE_barrelTwist=304.8;
+ ACE_barrelLength=1143.0;
};
/* Silencers */
@@ -642,11 +651,11 @@ class CfgWeapons {
};
class MuzzleCoef {
- dispersionCoef = "0.8f";
+ dispersionCoef = "0.95f";
artilleryDispersionCoef = "1.0f";
fireLightCoef = "0.5f";
- recoilCoef = "1.0f";
- recoilProneCoef = "1.0f";
+ recoilCoef = "0.95f";
+ recoilProneCoef = "0.95f";
minRangeCoef = "1.0f";
minRangeProbabCoef = "1.0f";
midRangeCoef = "1.0f";
@@ -675,11 +684,11 @@ class CfgWeapons {
};
class MuzzleCoef {
- dispersionCoef = "0.8f";
+ dispersionCoef = "0.95f";
artilleryDispersionCoef = "1.0f";
fireLightCoef = "0.5f";
- recoilCoef = "1.0f";
- recoilProneCoef = "1.0f";
+ recoilCoef = "0.95f";
+ recoilProneCoef = "0.95f";
minRangeCoef = "1.0f";
minRangeProbabCoef = "1.0f";
midRangeCoef = "1.0f";
@@ -708,11 +717,11 @@ class CfgWeapons {
};
class MuzzleCoef {
- dispersionCoef = "0.8f";
+ dispersionCoef = "0.95f";
artilleryDispersionCoef = "1.0f";
fireLightCoef = "0.5f";
- recoilCoef = "1.0f";
- recoilProneCoef = "1.0f";
+ recoilCoef = "0.95f";
+ recoilProneCoef = "0.95f";
minRangeCoef = "1.0f";
minRangeProbabCoef = "1.0f";
midRangeCoef = "1.0f";
@@ -741,11 +750,11 @@ class CfgWeapons {
};
class MuzzleCoef {
- dispersionCoef = "0.8f";
+ dispersionCoef = "0.95f";
artilleryDispersionCoef = "1.0f";
fireLightCoef = "0.5f";
- recoilCoef = "1.0f";
- recoilProneCoef = "1.0f";
+ recoilCoef = "0.95f";
+ recoilProneCoef = "0.95f";
minRangeCoef = "1.0f";
minRangeProbabCoef = "1.0f";
midRangeCoef = "1.0f";
@@ -774,11 +783,11 @@ class CfgWeapons {
};
class MuzzleCoef {
- dispersionCoef = "0.8f";
+ dispersionCoef = "0.95f";
artilleryDispersionCoef = "1.0f";
fireLightCoef = "0.5f";
- recoilCoef = "1.0f";
- recoilProneCoef = "1.0f";
+ recoilCoef = "0.95f";
+ recoilProneCoef = "0.95f";
minRangeCoef = "1.0f";
minRangeProbabCoef = "1.0f";
midRangeCoef = "1.0f";
@@ -807,11 +816,11 @@ class CfgWeapons {
};
class MuzzleCoef {
- dispersionCoef = "0.8f";
+ dispersionCoef = "0.95f";
artilleryDispersionCoef = "1.0f";
fireLightCoef = "0.5f";
- recoilCoef = "1.0f";
- recoilProneCoef = "1.0f";
+ recoilCoef = "0.95f";
+ recoilProneCoef = "0.95f";
minRangeCoef = "1.0f";
minRangeProbabCoef = "1.0f";
midRangeCoef = "1.0f";
@@ -840,11 +849,11 @@ class CfgWeapons {
};
class MuzzleCoef {
- dispersionCoef = "0.8f";
+ dispersionCoef = "0.95f";
artilleryDispersionCoef = "1.0f";
fireLightCoef = "0.5f";
- recoilCoef = "1.0f";
- recoilProneCoef = "1.0f";
+ recoilCoef = "0.95f";
+ recoilProneCoef = "0.95f";
minRangeCoef = "1.0f";
minRangeProbabCoef = "1.0f";
midRangeCoef = "1.0f";
@@ -873,11 +882,11 @@ class CfgWeapons {
};
class MuzzleCoef {
- dispersionCoef = "0.8f";
+ dispersionCoef = "0.95f";
artilleryDispersionCoef = "1.0f";
fireLightCoef = "0.5f";
- recoilCoef = "1.0f";
- recoilProneCoef = "1.0f";
+ recoilCoef = "0.95f";
+ recoilProneCoef = "0.95f";
minRangeCoef = "1.0f";
minRangeProbabCoef = "1.0f";
midRangeCoef = "1.0f";
@@ -906,11 +915,11 @@ class CfgWeapons {
};
class MuzzleCoef {
- dispersionCoef = "0.8f";
+ dispersionCoef = "0.95f";
artilleryDispersionCoef = "1.0f";
fireLightCoef = "0.5f";
- recoilCoef = "1.0f";
- recoilProneCoef = "1.0f";
+ recoilCoef = "0.95f";
+ recoilProneCoef = "0.95f";
minRangeCoef = "1.0f";
minRangeProbabCoef = "1.0f";
midRangeCoef = "1.0f";
diff --git a/addons/ballistics/README.md b/addons/ballistics/README.md
index 2bf158cebc..ac727f83c6 100644
--- a/addons/ballistics/README.md
+++ b/addons/ballistics/README.md
@@ -1,12 +1,12 @@
ace_ballistics
==============
-Changes to weapon and ammunition values.
-
+Changes to weapon, magazine and ammunition values.
## Maintainers
The people responsible for merging changes to this component or answering potential questions.
+- [Ruthberg] (http://github.com/Ulteq)
- [KoffeinFlummi](https://github.com/KoffeinFlummi)
- [commy2](https://github.com/commy2)
diff --git a/addons/ballistics/config.cpp b/addons/ballistics/config.cpp
index 66ff7d188e..768ba63e02 100644
--- a/addons/ballistics/config.cpp
+++ b/addons/ballistics/config.cpp
@@ -6,8 +6,7 @@ class CfgPatches {
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_common"};
- author[] = {"TaoSensai","commy2","Ruthberg"};
- authorUrl = "https://github.com/Taosenai/tmr";
+ author[] = {"commy2","Ruthberg"};
VERSION_CONFIG;
};
};
diff --git a/addons/ballistics/stringtable.xml b/addons/ballistics/stringtable.xml
index 7c6d9c85ad..db44078980 100644
--- a/addons/ballistics/stringtable.xml
+++ b/addons/ballistics/stringtable.xml
@@ -1,8 +1,8 @@
-
+
-
+
6.5mm 30Rnd Tracer IR-DIM Mag
6,5mm Nyomjelző IR-DIM 30-as Tár
6,5mm 30-Patronen-Magazin Leuchtspur IR-DIM
@@ -14,7 +14,7 @@
Caricatore 6.5mm 30Rnd Traccianti IR-DIM
Магазин из 30-ти 6,5 мм ИК-трассирующих
-
+
6.5mm IR-DIM
6,5mm IR-DIM
6,5mm IR-DIM
@@ -26,7 +26,7 @@
6.5mm IR-DIM
6,5 мм ИК-трассирующие
-
+
Caliber: 6.5x39mm Tracer IR-DIM<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL
Kaliber: 6,5x39mm Nyomjelző IR-DIM<br />Lövedékek: 30<br />Használható: MX/C/M/SW/3GL
Kaliber: 6,5x39mm Leuchtspur IR-DIM<br />Patronen: 30<br />Eingesetzt von: MX/C/M/SW/3GL
@@ -38,7 +38,7 @@
Calibro: 6.5x39mm Traccianti IR-DIM <br />Munizioni: 30<br />In uso su: MX/C/M/SW/3GL
Калибр: 6,5x39 мм ИК-трассирующие<br />Патронов: 30<br />Используются с: MX/C/M/SW/3GL
-
+
6.5mm 30Rnd SD Mag
6,5mm Halk 30-as Tár
6,5mm 30-Patronen-Magazin SD
@@ -50,7 +50,7 @@
Caricatore 6.5mm 30Rnd Sil.
Магазин из 30-ти 6,5 мм дозвуковых
-
+
6.5mm SD
6,5mm Halk
6,5mm SD
@@ -62,7 +62,7 @@
6.5mm Sil.
6,5 мм дозвуковые
-
+
Caliber: 6.5x39mm SD<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL
Kaliber: 6,5x39mm Halk<br />Lövedékek: 30<br />Használható: MX/C/M/SW/3GL
Kaliber: 6,5x39mm SD<br />Patronen: 30<br />Eingesetzt von: MX/C/M/SW/3GL
@@ -74,7 +74,7 @@
Calibro: 6.5x39mm Sil.<br />Munizioni: 30<br />In uso su: MX/C/M/SW/3GL
Калибр: 6,5x39 мм дозвуковые<br />Патронов: 30<br />Используются с: MX/C/M/SW/3GL
-
+
6.5mm 30Rnd AP Mag
6,5mm Páncéltörő 30-as Tár
6,5mm 30-Patronen-Magazin AP
@@ -86,7 +86,7 @@
Caricatore 6.5mm 30Rnd AP
Магазин из 30-ти 6,5 мм бронебойных
-
+
6.5mm AP
6,5mm Páncéltörő
6,5mm AP
@@ -98,7 +98,7 @@
6.5mm AP
6,5 мм бронебойные
-
+
Caliber: 6.5x39mm AP<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL
Kaliber: 6,5x39mm Páncéltörő<br />Lövedékek: 30<br />Használható: MX/C/M/SW/3GL
Kaliber: 6,5x39mm AP<br />Patronen: 30<br />Eingesetzt von: MX/C/M/SW/3GL
@@ -111,7 +111,7 @@
Калибр: 6,5x39 мм бронебойные<br />Патронов: 30<br />Используются с: MX/C/M/SW/3GL
-
+
6.5mm 30Rnd Tracer IR-DIM Mag
6,5mm IR-DIM Nyomjelző 30-as Tár
6,5mm 30-Patronen-Magazin Leuchtspur IR-DIM
@@ -123,7 +123,7 @@
Caricatore 6.5mm 30Rnd Traccianti IR-DIM
Магазин из 30-ти 6,5 мм ИК-трассирующих
-
+
6.5mm IR-DIM
6,5mm IR-DIM
6,5mm IR-DIM
@@ -135,7 +135,7 @@
6.5mm IR-DIM
6,5 мм ИК-трассирующие
-
+
Caliber: 6.5x39mm Tracer IR-DIM<br />Rounds: 30<br />Used in: Katiba
Kaliber: 6,5x39mm Nyomjelző IR-DIM<br />Lövedékek: 30<br />Használható: Katiba
Kaliber: 6,5x39mm Leuchtspur IR-DIM<br />Patronen: 30<br />Eingesetzt von: Katiba
@@ -147,7 +147,7 @@
Calibro: 6.5x39mm Tracciant IR-DIM<br />Munizioni: 30<br />In uso su: Katiba
Калибр: 6,5x39 мм ИК-трассирующие<br />Патронов: 30<br />Используются с: Katiba
-
+
6.5mm 30Rnd SD Mag
6,5mm Halk 30-as Tár
6,5mm 30-Patronen-Magazin SD
@@ -159,7 +159,7 @@
Caricatore 6.5mm 30Rnd Sil.
Магазин из 30-ти 6,5 мм дозвуковых
-
+
6.5mm SD
6,5mm Halk
6,5mm SD
@@ -171,7 +171,7 @@
6.5mm Sil.
6,5 мм дозвуковые
-
+
Caliber: 6.5x39mm SD<br />Rounds: 30<br />Used in: Katiba
Kaliber: 6,5x39mm Halk<br />Lövedékek: 30<br />Használható: Katiba
Kaliber: 6,5x39mm SD<br />Patronen: 30<br />Eingesetzt von: Katiba
@@ -183,7 +183,7 @@
Calibro: 6.5x39mm Sil.<br />Munizioni: 30<br />In uso su: Katiba
Калибр: 6,5x39 мм дозвуковые<br />Патронов: 30<br />Используются с: Katiba
-
+
6.5mm 30Rnd AP Mag
6,5mm Páncéltörő 30-as Tár
6,5mm 30-Patronen-Magazin AP
@@ -195,7 +195,7 @@
Caricatore 6.5mm 30Rnd AP
Магазин из 30-ти 6,5 мм бронебойных
-
+
6.5mm AP
6,5mm Páncéltörő
6,5mm AP
@@ -207,7 +207,7 @@
6.5mm AP
6,5 мм бронебойные
-
+
Caliber: 6.5x39mm AP<br />Rounds: 30<br />Used in: Katiba
Kaliber: 6,5x39mm Páncéltörő<br />Lövedékek: 30<br />Használható: Katiba
Kaliber: 6,5x39mm AP<br />Patronen: 30<br />Eingesetzt von: Katiba
@@ -220,7 +220,7 @@
Калибр: 6,5x39 мм бронебойные<br />Патронов: 30<br />Используются с: Katiba
-
+
5.56mm 30rnd Tracer IR-DIM Mag
5,56mm Nyomjelző IR-DIM 30-as Tár
5,56mm 30-Patronen-Magazin Leuchtspur IR-DIM
@@ -232,7 +232,7 @@
Caricatore 5.56mm 30rnd Traccianti IR-DIM
Магазин из 30-ти 5,56 мм ИК-трассирующих
-
+
5.56mm IR-DIM
5,56mm IR-DIM
5,56mm IR-DIM
@@ -244,7 +244,7 @@
5.56mm IR-DIM
5,56 мм ИК-трассирующие
-
+
Caliber: 5.56x45mm Tracer IR-DIM<br />Rounds: 30<br />Used in: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR
Kaliber: 5,56x45mm Nyomjelző IR-DIM<br />Lövedékek: 30<br />Használható: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR
Kaliber: 5,56x45mm Leuchtspur IR-DIM<br />Patronen: 30<br />Eingesetzt von: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR
@@ -257,7 +257,7 @@
Калибр: 5,56x45 мм ИК-трассирующие<br />Патронов: 30<br />Используются с: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR
-
+
7.62mm 20rnd Tracer Mag
7,62mm Nyomjelző IR-DIM 20-as Tár
7,62mm 20-Patronen-Magazin Leuchtspur
@@ -269,7 +269,7 @@
Caricatore 7.62mm 20Rnd Traccianti
Магазин из 20-ти 7,62 мм трассирующих
-
+
7.62mm Tracer
7,62mm Nyomjelző
7,62mm Leuchtspur
@@ -281,7 +281,7 @@
7.62mm Traccianti
7,62 мм трассирущие
-
+
Caliber: 7.62x51mm Tracer<br />Rounds: 20<br />Used in: Mk18 ABR
Kaliber: 7,62x51mm Nyomjelző<br />Lövedékek: 20<br />Használható: Mk18 ABR
Kaliber: 7,62x51mm Leuchtspur<br />Patronen: 20<br />Eingesetzt von: EBR
@@ -293,7 +293,7 @@
Calibro: 7.62x51mm Traccianti<br />Munizioni: 20<br />In uso su: Mk18 ABR
Калибр: 7,62x51 мм трассирующие<br />Патронов: 20<br />Используются с: Mk18 ABR
-
+
7.62mm 20rnd Tracer IR-DIM Mag
7,62mm Nyomjelző IR-DIM 20-as Tár
7,62mm 20-Patronen-Magazin Leuchtspur IR-DIM
@@ -305,7 +305,7 @@
Caricatore 7.62mm 20rnd Traccianti IR-DIM
Магазин из 20-ти 7,62 мм ИК-трассирующих
-
+
7.62mm IR-DIM
7,62mm IR-DIM
7,62mm IR-DIM
@@ -317,7 +317,7 @@
7.62mm IR-DIM
7,62 мм ИК-трассирующие
-
+
Caliber: 7.62x51mm Tracer IR-DIM<br />Rounds: 20<br />Used in: Mk18 ABR
Kaliber: 7,62x51mm Nyomjelző IR-DIM<br />Lövedékek: 20<br />Használható: Mk18 ABR
Kaliber: 7,62x51mm Leuchtspur IR-DIM<br />Patronen: 20<br />Eingesetzt von: EBR
@@ -329,7 +329,7 @@
Calibro: 7.62x51mm Traccianti IR-DIM<br />Munizioni: 20<br />In uso su: Mk18 ABR
Калибр: 7,62x51 мм ИК-трассирующие<br />Патронов: 20<br />Используются с: Mk18 ABR
-
+
7.62mm 20Rnd SD Mag
7,62mm Halk 20-as Tár
7,62mm 20-Patronen-Magazin SD
@@ -341,7 +341,7 @@
Caricatore 7.62mm 20Rnd Sil.
Магазин из 20-ти 7,62 мм дозвуковых
-
+
7.62mm SD
7,62mm Halk
7,62mm SD
@@ -353,7 +353,7 @@
7.62mm Sil.
7,62 мм дозвуковые
-
+
Caliber: 7.62x51mm SD<br />Rounds: 20<br />Used in: Mk18 ABR
Kaliber: 7,62x51mm Halk<br />Lövedékek: 20<br />Használható: Mk18 ABR
Kaliber: 7,62x51mm SD<br />Patronen: 20<br />Eingesetzt von: EBR
@@ -366,7 +366,7 @@
Калибр: 7,62x51 мм дозвуковые<br />Патронов: 20<br />Используются с: Mk18 ABR
-
+
.338 NM 130Rnd Tracer Belt
.338 NM 130-Patronen-Gurt Leuchtspur
Taśma .338 NM 130rd Smugacz
@@ -378,7 +378,7 @@
Cinto de munição .338 NM com 130 cartuchos
.338 NM 130-lövedékes nyomkövető heveder
-
+
.338 NM Tracer
.338 NM Leuchtspur
.338 NM Tracer
@@ -390,7 +390,7 @@
.338 NM Traçante
.338 NM nyomkövető
-
+
Caliber: .338 Norma Magnum Tracer<br />Rounds: 130<br />Used in: SPMG
Kaliber: .338 Norma Magnum Leuchtspur<br />Patronen: 130<br />Eingesetzt von: SPMG
Kaliber: .338 Norma Magnum Smugacz<br />Pociski: 130<br />Używany w: SPMG
@@ -402,7 +402,7 @@
Calibre: .338 Norma Magnum Traçante<br />Cartuchos: 130<br />Usado em: SPMG
Kaliber: .338 Norma Magnum nyomkövető<br />Lövedékek: 130<br />Használható: SPMG
-
+
.338 NM 130Rnd IR-DIM Belt
.338 NM 130-Patronen-Gurt Leuchtspur IR-DIM
Taśma .338 NM 130rd IR-DIM
@@ -414,7 +414,7 @@
Cinto de munição traçante .338 NM IR-DIM com 130 cartuchos
.338 NM 130-lövedékes infravörös nyomkövető heveder
-
+
.338 NM IR-DIM
.338 LM IR-DIM
.338 NM IR-DIM
@@ -426,7 +426,7 @@
.338 NM IR-DIM
.338 NM infravörös nyomkövető
-
+
Caliber: .338 Norma Magnum Tracer IR-DIM<br />Rounds: 130<br />Used in: SPMG
Kaliber: .338 Norma Magnum Leuchtspur IR-DIM<br />Patronen: 130<br />Eingesetzt von: SPMG
Kaliber: .338 Norma Magnum Smugacz IR-DIM<br />Pociski: 130<br />Używany w: SPMG
@@ -438,7 +438,7 @@
Calibre: .338 Norma Magnum Traçante IR-DIM<br />Cartuchos: 130<br />Usado em: SPMG
Kaliber: .338 Norma Magnum infravörös nyomkövető<br />Lövedékek: 130<br />Használható: SPMG
-
+
.338 NM 130Rnd AP Belt
.338 NM 130-Patronen-Gurt Hartkern
Taśma .338 NM 130rd AP
@@ -450,7 +450,7 @@
Cinto de munição .338 NM com 130 cartuchos AP
.338 NM 130-lövedékes páncéltörő heveder
-
+
.338 NM AP
.338 NM AP
.338 NM AP
@@ -462,7 +462,7 @@
.338 NM AP
.338 NM páncéltörő
-
+
Caliber: .338 Norma Magnum AP<br />Rounds: 130<br />Used in: SPMG
Kaliber: .338 Norma Magnum Hartkern<br />Patronen: 130<br />Eingesetzt von: SPMG
Kaliber: .338 Norma Magnum AP<br />Pociski: 130<br />Używane w: SPMG
@@ -475,7 +475,7 @@
Kaliber: .338 Norma Magnum páncéltörő<br />Lövedékek: 130<br />Használható: SPMG
-
+
9.3mm 10Rnd Tracer Mag
9,3mm 10-Patronen-Magazin Leuchtspur
Magazynek 9.3mm 10rd Smugacz
@@ -487,7 +487,7 @@
Carregador de 10 cartuchos 9.3mm traçantes
9,3mm 10-lövedékes nyomkövető tár
-
+
9.3mm Tracer
9,3mm Leuchtspur
9,3mm Smugacz
@@ -499,7 +499,7 @@
9.3mm Traçante
9,3mm nyomkövető
-
+
Caliber: 9.3x64mm Tracer<br />Rounds: 10<br />Used in: Cyrus
Kaliber: 9,3x64mm Leuchtspur<br />Patronen: 10<br />Eingesetzt von: Cyrus
Kaliber: 9,3x64mm Smugacz<br />Pociski: 10<br />Używany w: Cyrus
@@ -511,7 +511,7 @@
Calibre: 9.3x64mm Traçante<br />Cartuchos: 10<br />Usado em: Cyrus
Kaliber: 9,3x64mm nyomkövető<br />Lövedékek: 10<br />Használható: Cyrus
-
+
9.3mm 10Rnd Tracer IR-DIM Mag
9,3mm 10-Patronen-Magazin Leuchtspur IR-DIM
Magazynek 9,3mm 10rd Smugacz IR-DIM
@@ -523,7 +523,7 @@
Carregador de 10 cartuchos 9.3mm traçantes IR-DIM
9,3mm 10-lövedékes infravörös nyomkövető tár
-
+
9.3mm IR-DIM
9,3mm IR-DIM
9,3mm IR-DIM
@@ -535,7 +535,7 @@
9.3mm IR-DIM
9,3mm infravörös nyomkövető
-
+
Caliber: 9.3x64mm Tracer IR-DIM<br />Rounds: 10<br />Used in: Cyrus
Kaliber: 9,3x64mm Leuchtspur IR-DIM<br />Patronen: 10<br />Eingesetzt von: Cyrus
Kaliber: 9,3x64mm Smugacz IR-DIM<br />Pociski: 10<br />Używany w: Cyrus
@@ -548,7 +548,7 @@
Kaliber: 9,3x64mm infravörös nyomkövető<br />Lövedékek: 10<br /> Használható: Cyrus
-
+
9.3mm 150Rnd Tracer Belt
9,3mm 150-Patronen-Gurt Leuchtspur
Taśma 9,3mm 150rd Smugacz
@@ -560,7 +560,7 @@
Cinto de munição traçante 9.3mm com 150 cartuchos
9,3mm 150-lövedékes nyomkövető heveder
-
+
9.3mm Tracer
9,3mm Leuchtspur
9,3mm Smugacz
@@ -572,7 +572,7 @@
9.3mm Traçante
9,3mm nyomkövető
-
+
Caliber: 9.3x64mm Tracer<br />Rounds: 150<br />Used in: Navid
Kaliber: 9,3x64mm Leuchtspur<br />Patronen: 150<br />Eingesetzt von: Navid
Kaliber: 9,3x64mm Smugacz<br />Pociski: 150<br />Używane w: Navid
@@ -584,7 +584,7 @@
Calibre: 9.3x64mm Traçante<br />Cartuchos: 150<br />Usado em: Navid
Kaliber: 9,3x64mm nyomkövető<br />Lövedékek: 150<br />Használható: Navid
-
+
9.3mm 150Rnd Tracer IR-DIM Belt
9,3mm 150-Patronen-Gurt Leuchtspur IR-DIM
Taśma 9,3mm 150rd Smugacz IR-DIM
@@ -596,7 +596,7 @@
Cinto de munição traçante 9.3mm IR-DIM com 150 cartuchos
9,3mm 150-lövedékes infravörös nyomkövető heveder
-
+
9.3mm IR-DIM
9,3mm IR-DIM
9,3mm IR-DIM
@@ -608,7 +608,7 @@
9.3mm IR-DIM
9,3mm infravörös nyomkövető
-
+
Caliber: 9.3x64mm Tracer IR-DIM<br />Rounds: 150<br />Used in: Navid
Kaliber: 9,3x64mm Leuchtspur IR-DIM<br />Patronen: 150<br />Eingesetzt von: Navid
Kaliber: 9,3x64mm Smugacz IR-DIM<br />Pociski: 150<br />Używane w: Navid
@@ -620,7 +620,7 @@
Calibre: 9.3x64mm Traçante IR-DIM<br />Cartuchos: 150<br />Usado em: Navid
Kaliber: 9,3x64mm infravörös nyomkövető<br />Lövedékek: 150<br />Használható: Navid
-
+
9.3mm 150Rnd AP Belt
9,3mm 150-Patronen-Gurt Hartkern
Taśma 9,3mm 150rd AP
@@ -632,7 +632,7 @@
Cinto de munição 9.3mm AP com 150 cartuchos
9,3mm 150-lövedékes páncéltörő heveder
-
+
9.3mm AP
9,3mm AP
9,3mm AP
@@ -644,7 +644,7 @@
9.3mm AP
9,3mm páncéltörő
-
+
Caliber: 9.3x64mm AP<br />Rounds: 150<br />Used in: Navid
Kaliber: 9,3x64mm Hartkern<br />Patronen: 150<br />Eingesetzt von: Navid
Kaliber: 9,3x64mm AP<br />Pociski: 150<br />Używane w: Navid
@@ -656,7 +656,7 @@
Calibre: 9.3x64mm AP<br />Cartuchos: 150<br />Usado em: Navid
Kaliber: 9,3x64mm páncéltörő<br />Lövedékek: 150<br />Használható: Navid
-
+
9x19mm 16Rnd Mag
Magazynek 9x19mm 16rd
Ch. 9x19mm 16Cps
@@ -668,7 +668,7 @@
Carregador de 16 cartuchos 9x19mm
9x19mm 16-lövedékes tár
-
+
9x19mm
9x19mm
9x19mm
@@ -680,7 +680,7 @@
9x19mm
9x19mm
-
+
9x19mm 30Rnd Mag
Magazynek 9x19mm 16rd
Ch. 9x19mm 30Cps
@@ -692,7 +692,7 @@
Carregador de 16 cartuchos 9x19mm
9x19mm 16-lövedékes tár
-
+
9x19mm 30Rnd Mag
Magazynek 9x19mm 30rd
Ch. 9x19mm 30Cps
@@ -704,7 +704,7 @@
Carregador de 30 cartuchos 9x19mm
9x19mm 30-lövedékes tár
-
+
9x19mm
9x19mm
9x19mm
@@ -716,7 +716,7 @@
9x19mm
9x19mm
-
+
9x19mm 30Rnd Mag
Magazynek 9x19mm 30rd
Ch. 9x19mm 30Cps
@@ -728,7 +728,7 @@
Carregador de 30 cartuchos 9x19mm
9x19mm 30-lövedékes tár
-
+
7.62x54mm 10Rnd Tracer Mag
Magazynek 7,62x54mm 10rd Smugacz
Ch. 7.62x54mm 10Rnd Traçante
@@ -740,7 +740,7 @@
Carregador com 10 cartuchos 7.62x54mm Traçante
7,62x54mm 10-lövedékes nyomkövető tár
-
+
7.62mm
7,62mm
7.62mm
@@ -752,7 +752,7 @@
7.62mm
7,62mm
-
+
7.62x54mm 10Rnd Tracer Mag
Magazynek 7,62x54mm 10rd Smugacz
Ch. 7.62x54mm 10Cps Traçante
@@ -764,7 +764,7 @@
Carregador com 10 cartuchos 7.62x54mm Traçante
7,62x54mm 10-lövedékes nyomkövető tár
-
+
6.5mm 100Rnd Tracer IR-DIM Mag
Magazynek 6,5mm 100rd Smugacz IR-DIM
Ch. 6.5mm 100Rnd Traçante IR-DIM
@@ -776,7 +776,7 @@
Carregador com 100 cartuchos 6.5mm IR-DIM Traçante
6,5mm 100-lövedékes infravörös nyomkövető tár
-
+
6.5mm IR-DIM
6,5mm IR-DIM
6.5mm IR-DIM
@@ -788,7 +788,7 @@
6.5mm IR-DIM
6,5mm infravörös nyomkövető
-
+
6.5mm 100Rnd Tracer IR-DIM Mag<br />Rounds: 100<br />Used in: MX LSW
Magazynek 6,5mm 100rd Smugacz IR-DIM
Ch. 6.5mm 100Rnd Traçante IR-DIM<br />Cartouches: 100<br />Utilisé avec: MX LSW
@@ -800,7 +800,7 @@
Carregador 6.5mm 100 Cartuchos Traçantes IR-DIM<br />Cartuchos: 100<br />Usado em: MX LSW
6.5mm 100-lövedékes infravörös nyomkövető tár<br />Lövedékek: 100<br />Használható: MX LSW
-
+
6.5mm 200Rnd Tracer IR-DIM Belt
Magazynek 6,5mm 200rd Smugacz IR-DIM
Bande 6.5mm 200Rnd Traçante IR-DIM
@@ -812,7 +812,7 @@
Cinto de munição traçante 6.5mm IR-DIM com 200 cartuchos
6,5mm 200-lövedékes infravörös nyomkövető heveder
-
+
6.5mm IR-DIM
6,5mm IR-DIM
6.5mm IR-DIM
@@ -824,7 +824,7 @@
6.5mm IR-DIM
6,5mm infravörös nyomkövető
-
+
6.5mm 200Rnd Tracer IR-DIM Belt<br />Rounds: 200<br />Used in: Stoner 99 LMG
Magazynek 6,5mm 200rd Smugacz IR-DIM
Bande 6.5mm 200Cps Traçante IR-DIM<br />Cartouches: 200<br />Utilisé avec: Stoner 99 LMG
@@ -836,7 +836,7 @@
Cinto de munição traçante 6.5mm IR-DIM com 200 cartuchos<br />Cartuchos: 200<br />Usado em: Stoner 99 LMG
6.5mm 200-lövedékes infravörös nyomkövető heveder<br />Lövedékek: 200<br />Használható: Stoner 99 LMG
-
+
5.56mm 30Rnd Mag (Mk262)
Magazynek 5,56mm 30rd Mk262
5.56mm 30Cps (Mk262)
@@ -848,7 +848,7 @@
Carregador 5.56mm com 30 cartuchos (Mk262)
5,56mm 30-lövedékes tár (Mk262)
-
+
5.56mm Mk262
5,56mm Mk262
5.56mm Mk262
@@ -860,7 +860,7 @@
5.56mm Mk262
5,56mm Mk262
-
+
Caliber: 5.56x45mm NATO (Mk262)<br />Rounds: 30
Kaliber: 5,56x45mm NATO (Mk262)<br />Pociski: 30
Calibre: 5.56x45mm NATO (Mk262)<br />Cartouches: 30
@@ -872,7 +872,7 @@
Calibre: 5.56x45mm NATO (Mk262)<br/>Cartuchos: 30
Kaliber: 5,56x45mm NATO (Mk262)<br />Lövedékek: 30
-
+
5.56mm 30Rnd Mag (Mk318)
Magazynek 5,56mm 30rd (Mk318)
Ch. 5.56mm 30Cps (Mk318)
@@ -884,7 +884,7 @@
Carregador 5.56mm com 30 cartuchos (Mk318)
5,56mm 30-lövedékes tár (Mk318)
-
+
5.56mm Mk318
5,56mm Mk318
5.56mm Mk318
@@ -896,7 +896,7 @@
5.56mm Mk318
5,56mm Mk318
-
+
Caliber: 5.56x45mm NATO (Mk318)<br />Rounds: 30
Kaliber: 5,56x45mm NATO (Mk318)<br />Pociski: 30
Calibre: 5.56x45mm NATO (Mk318)<br />Cartouches: 30
@@ -908,7 +908,7 @@
Calibre: 5.56x45mm NATO (Mk318)<br/>Cartuchos: 30
Kaliber: 5,56x45mm NATO (Mk318)<br />Lövedékek: 30
-
+
5.56mm 30Rnd Mag (M995 AP)
Magazynek 5,56mm 30rd (M995 AP)
Ch. 5.56mm 30Cps (M995 AP)
@@ -920,7 +920,7 @@
Carregador 5.56mm com 30 cartuchos (M995 AP)
5,56mm 30-lövedékes tár (M995 páncéltörő)
-
+
5.56mm AP
5,56mm AP
5.56mm AP
@@ -932,7 +932,7 @@
5.56mm M995 AP
5,56mm páncéltörő
-
+
Caliber: 5.56x45mm NATO (M995 AP)<br />Rounds: 30
Kaliber: 5,56x45mm NATO (M995 AP)<br />Pociski: 30
Calibre: 5.56x45mm NATO (M995 AP)<br />Cartouches: 30
@@ -944,7 +944,7 @@
Calibre: 5.56x45mm NATO (M995 AP)<br/>Cartuchos: 30
Kaliber: 5,56x45mm NATO (M995 páncéltörő)<br />Lövedékek: 30
-
+
7.62mm 10Rnd Mag (M118LR)
Magazynek 7,62mm 10rd (M118LR)
Ch. 7.62mm 10Cps (M118LR)
@@ -956,7 +956,7 @@
Carregador 7.62mm com 10 cartuchos (M118LR)
7,62mm 10-lövedékes tár (M118LR)
-
+
7.62mm M118LR
7,62mm M118LR
7.62mm M118LR
@@ -968,7 +968,7 @@
7.62mm M118LR
7,62mm M118LR
-
+
Caliber: 7.62x51mm NATO (M118LR)<br />Rounds: 10
Kaliber: 7,62x51mm NATO (M118LR)<br />Pociski: 10
Calibre: 7.62x51mm NATO (M118LR)<br />Cartouches: 10
@@ -980,7 +980,7 @@
Calibre: 7.26x51mm NATO (M118LR)<br/>Cartuchos: 10
Kaliber: 7,62x51mm NATO (M118LR)<br />Lövedékek: 10
-
+
7.62mm 20Rnd Mag (M118LR)
Magazynek 7,62mm 20rd (M118LR)
Ch. 7.62mm 20Cps (M118LR)
@@ -992,7 +992,7 @@
Carregador 7.62mm com 20 cartuchos (M118LR)
7,62mm 20-lövedékes tár (M118LR)
-
+
7.62mm M118LR
7,62mm M118LR
7.62mm M118LR
@@ -1004,7 +1004,7 @@
7.62mm M118LR
7,62mm M118LR
-
+
Caliber: 7.62x51mm NATO (M118LR)<br />Rounds: 20
Kaliber: 7,62x51mm NATO (M118LR)<br />Pociski: 20
Calibre: 7.62x51mm NATO (M118LR)<br />Cartouches: 20
@@ -1016,7 +1016,7 @@
Calibre: 7.26x51mm NATO (M118LR)<br/>Cartuchos: 20
Kaliber: 7,62x51mm NATO (M118LR)<br />Lövedékek: 20
-
+
7.62mm 10Rnd Mag (Mk316 Mod 0)
Magazynek 7,62mm 10rd (Mk316 Mod 0)
Ch. 7.62mm 10Cps (Mk316 Mod 0)
@@ -1028,7 +1028,7 @@
Carregador 7.62mm com 10 cartuchos (Mk316 Mod 0)
7,62mm 10-lövedékes tár (Mk316 Mod 0)
-
+
7.62mm Mk316
7,62mm Mk316
7.62mm Mk316
@@ -1040,7 +1040,7 @@
7.62mm Mk316
7,62mm Mk316
-
+
Caliber: 7.62x51mm NATO (Mk316 Mod 0)<br />Rounds: 10
Kaliber: 7,62x51mm NATO (Mk316 Mod 0)<br />Pociski: 10
Calibre: 7.62x51mm NATO (Mk316 Mod 0)<br />Cartouches: 10
@@ -1052,7 +1052,7 @@
Calibre: 7.26x51mm NATO (Mk316 Mod 0)<br/>Cartuchos: 10
Kaliber: 7,62x51mm NATO (Mk316 Mod 0)<br />Lövedékek: 10
-
+
7.62mm 20Rnd Mag (Mk316 Mod 0)
Magazynek 7,62mm 20rd (Mk316 Mod 0)
Ch. 7.62mm 20Cps (Mk316 Mod 0)
@@ -1064,7 +1064,7 @@
Carregador 7.62mm com 20 cartuchos (Mk316 Mod 0)
7,62mm 20-lövedékes tár (Mk316 Mod 0)
-
+
7.62mm Mk316
7,62mm Mk316
7.62mm Mk316
@@ -1076,7 +1076,7 @@
7.62mm Mk316
7,62mm Mk316
-
+
Caliber: 7.62x51mm NATO (Mk316 Mod 0)<br />Rounds: 20
Kaliber: 7,62x51mm NATO (Mk316 Mod 0)<br />Pociski: 20
Calibre: 7.62x51mm NATO (Mk316 Mod 0)<br />Cartouches: 20
@@ -1088,7 +1088,7 @@
Calibre: 7.26x51mm NATO (Mk316 Mod 0)<br/>Cartuchos: 20
Kaliber: 7,62x51mm NATO (Mk316 Mod 0)<br />Lövedékek: 20
-
+
7.62mm 10Rnd Mag (Mk319 Mod 0)
Magazynek 7,62mm 10rd (Mk319 Mod 0)
Ch. 7.62mm 10Cps (Mk319 Mod 0)
@@ -1100,7 +1100,7 @@
Carregador 7.62mm com 10 cartuchos (Mk319 Mod 0)
7,62mm 10-lövedékes tár (Mk319 Mod 0)
-
+
7.62mm Mk319
7,62mm Mk319
7.62mm Mk319
@@ -1112,7 +1112,7 @@
7.62mm Mk319
7,62mm Mk319
-
+
Caliber: 7.62x51mm NATO (Mk319 Mod 0)<br />Rounds: 10
Kaliber: 7,62x51mm NATO (Mk319 Mod 0)<br />Pociski: 10
Calibre: 7.62x51mm NATO (Mk319 Mod 0)<br />Cartouches: 10
@@ -1124,7 +1124,7 @@
Calibre: 7.26x51mm NATO (Mk319 Mod 0)<br/>Cartuchos: 10
Kaliber: 7,62x51mm NATO (Mk319 Mod 0)<br />Lövedékek: 10
-
+
7.62mm 20Rnd Mag (Mk319 Mod 0)
Magazynek 7,62mm 20rd (Mk319 Mod 0)
Ch. 7.62mm 20Cps (Mk319 Mod 0)
@@ -1136,7 +1136,7 @@
Carregador 7.62mm com 20 cartuchos (Mk319 Mod 0)
7,62mm 20-lövedékes tár (Mk319 Mod 0)
-
+
7.62mm Mk319
7,62mm Mk319
7.62mm Mk319
@@ -1148,7 +1148,7 @@
7.62mm Mk319
7,62mm Mk319
-
+
Caliber: 7.62x51mm NATO (Mk319 Mod 0)<br />Rounds: 20
Kaliber: 7,62x51mm NATO (Mk319 Mod 0)<br />Pociski: 20
Calibre: 7.62x51mm NATO (Mk319 Mod 0)<br />Cartouches: 20
@@ -1160,7 +1160,7 @@
Calibre: 7.26x51mm NATO (Mk319 Mod 0)<br/>Cartuchos: 20
Kaliber: 7,62x51mm NATO (Mk319 Mod 0)<br />Lövedékek: 20
-
+
7.62mm 10Rnd Mag (M993 AP)
Magazynek 7,62mm 10rd (M993 AP)
Ch. 7.62mm 10Cps (M993 AP)
@@ -1172,7 +1172,7 @@
Carregador 7.62mm com 10 cartuchos (M993 AP)
7,62mm 10-lövedékes tár (M993 páncéltörő)
-
+
7.62mm AP
7,62mm AP
7.62mm AP
@@ -1184,7 +1184,7 @@
7.62mm AP
7,62mm páncéltörő
-
+
Caliber: 7.62x51mm NATO (M993 AP)<br />Rounds: 10
Kaliber: 7,62x51mm NATO (M993 AP)<br />Pociski: 10
Calibre: 7.62x51mm NATO (M993 AP)<br />Cartouches: 10
@@ -1196,7 +1196,7 @@
Calibre: 7.26x51mm NATO (M993 AP)<br/>Cartuchos: 10
Kaliber: 7,62x51mm NATO (M993 páncéltörő)<br />Lövedékek: 10
-
+
7.62mm 20Rnd Mag (M993 AP)
Magazynek 7,62mm 20rd (M993 AP)
Ch. 7.62mm 20Cps (M993 AP)
@@ -1208,7 +1208,7 @@
Carregador 7.62mm com 20 cartuchos (M993 AP)
7,62mm 20-lövedékes tár (M993 páncéltörő)
-
+
7.62mm AP
7,62mm AP
7.62mm AP
@@ -1220,7 +1220,7 @@
7.62mm AP
7,62mm páncéltörő
-
+
Caliber: 7.62x51mm NATO (M993 AP)<br />Rounds: 20
Kaliber: 7,62x51mm NATO (M993 AP)<br />Pociski: 20
Calibre: 7.62x51mm NATO (M993 AP)<br />Cartouches: 20
@@ -1232,7 +1232,7 @@
Calibre: 7.26x51mm NATO (M993 AP)<br/>Cartuchos: 20
Kaliber: 7,62x51mm NATO (M993 páncéltörő)<br />Lövedékek: 20
-
+
7.62mm 20Rnd Mag (Mk248 Mod 0)
Magazynek 7,62mm 20rd (Mk248 Mod 0)
Ch. 7.62mm 20Cps (Mk248 Mod 0)
@@ -1244,7 +1244,7 @@
Carregador 7.62mm com 20 cartuchos (Mk248 Mod 0)
7,62mm 20-lövedékes tár (Mk248 Mod 0)
-
+
7.62mm Mk248
7,62mm Mk248
7.62mm Mk248
@@ -1256,7 +1256,7 @@
7.62mm Mk248
7,62mm Mk248
-
+
Caliber: 7.62x67mm NATO (Mk248 Mod 0)<br />Rounds: 20
Kaliber: 7,62x67mm NATO (Mk248 Mod 0)<br />Pociski: 20
Calibre: 7.62x67mm NATO (Mk248 Mod 0)<br />Cartouches: 20
@@ -1268,7 +1268,7 @@
Calibre: 7.26x67mm NATO (Mk248 Mod 0)<br/>Cartuchos: 20
Kaliber: 7,62x51mm NATO (Mk248 Mod 0)<br />Lövedékek: 20
-
+
7.62mm 20Rnd Mag (Mk248 Mod 1)
Magazynek 7,62mm 20rd (Mk248 Mod 1)
Ch. 7.62mm 20Cps (Mk248 Mod 1)
@@ -1280,7 +1280,7 @@
Carregador 7.62mm com 20 cartuchos (Mk248 Mod 1)
7,62mm 20-lövedékes tár (Mk248 Mod 1)
-
+
7.62mm Mk248
7,62mm Mk248
7.62mm Mk248
@@ -1292,7 +1292,7 @@
7.62mm Mk248
7,62mm Mk248
-
+
Caliber: 7.62x67mm NATO (Mk248 Mod 1)<br />Rounds: 20
Kaliber: 7,62x67mm NATO (Mk248 Mod 1)<br />Pociski: 20
Calibre: 7.62x67mm NATO (Mk248 Mod 1)<br />Cartouches: 20
@@ -1304,7 +1304,7 @@
Calibre: 7.26x67mm NATO (Mk248 Mod 1)<br/>Cartuchos: 20
Kaliber: 7,62x51mm NATO (Mk248 Mod 1)<br />Lövedékek: 20
-
+
7.62mm 20Rnd Mag (Berger Hybrid OTM)
Magazynek 7,62mm 20rd (Berger Hybrid OTM)
Ch. 7.62 20Cps (Berger Hybrid OTM)
@@ -1316,7 +1316,7 @@
Carregador 7.62mm com 20 cartuchos (Berger Hybrid OTM)
7,62mm 20-lövedékes tár (Berger Hybrid OTM)
-
+
7.62mm OTM
7,62mm OTM
7.62mm OTM
@@ -1328,7 +1328,7 @@
7.62mm OTM
7,62mm OTM
-
+
Caliber: 7.62x67mm NATO (Berger Hybrid OTM)<br />Rounds: 20
Kaliber: 7,62x67mm NATO (Berger Hybrid OTM)<br />Pociski: 20
Calibre: 7.62x67mm NATO (Berger Hybrid OTM)<br />Cartouches: 20
@@ -1340,7 +1340,7 @@
Calibre: 7.26x67mm NATO (Berger Hybrid OTM)<br/>Cartuchos: 20
Kaliber: 7,62x67mm NATO (Berger Hybrid OTM)<br />Lövedékek: 20
-
+
6.5x47mm 30Rnd Mag (HPBT Scenar)
Ch. 6.5x47mm 30Cps (HPBT Scenar)
Cargador de 30 balas de 6.5x47mm (HPBT Scenar)
@@ -1352,7 +1352,7 @@
Carregador 6.5x47mm com 30 cartuchos (HPBT Scenar)
6,5x47mm 30-lövedékes tár (HPBT Scenar)
-
+
6.5mm Lapua
6.5mm Lapua
6.5mm Lapua
@@ -1364,7 +1364,7 @@
6.5mm Lapua
6,5mm Lapua
-
+
Caliber: 6.5x47mm (HPBT Scenar)<br />Rounds: 30<br />Used in: MXM
Calibre: 6.5x47mm (HPBT Scenar)<br />Cartouches: 30
Calibre: 6.5x47mm (HPBT Scenar)<br />Balas: 30<br />Se usa en: MXM
@@ -1376,7 +1376,7 @@
Calibre: 6.5x47mm (HPBT Scenar)<br/>Cartuchos: 30<br/>Usado em: MXM
Kaliber: 6,5x47mm (HPBT Scenar)<br />Lövedékek: 30<br />Használható: MXM
-
+
6.5mm Creedmor 30Rnd Mag
Magazynek 6,5mm Creedmor 30rd
6.5mm Creedmor 30Rnd Mag
@@ -1388,7 +1388,7 @@
Carregador 6.5mm com 30 cartuchos Creedmor
6,5mm Creedmor 30-lövedékes tár
-
+
6.5mm CM
6.5mm CM
6.5mm CM
@@ -1400,7 +1400,7 @@
6.5mm CM
6,5mm CM
-
+
Caliber: 6.5x47mm Creedmor<br />Rounds: 30<br />Used in: MXM
Kaliber: 6,5x47mm Creedmor<br />Pociski: 30<br />Używany w: MXM
Kaliber: 6,5x47mm Creedmor<br />Patronen: 30<br />Eingesetzt von: MXM
@@ -1412,7 +1412,7 @@
Calibre: 6.5x47mm Creedmor<br/>Cartuchos: 30<br/>Usado em: MXM
Kaliber: 6,5x47mm Creedmor<br />Lövedékek: 30<br />Használható: MXM
-
+
.338 10Rnd Mag (300gr Sierra MatchKing HPBT)
Ch. .338 10 Cps (300gr Sierra MatchKing HPBT)
Cargador de 10 balas de 8.6x70mm (300gr Sierra MatchKing HPBT)
@@ -1424,7 +1424,7 @@
Carregador .338 (300gr Sierra MatchKing HPBT) com 10 cartuchos
.338 10-lövedékes tár (300gr Sierra MatchKing HPBT)
-
+
.338 HPBT
.338 HPBT
.338 HPBT
@@ -1436,7 +1436,7 @@
.338 HPBT
.338 HPBT
-
+
Caliber: 8.6x70mm (300gr Sierra MatchKing HPBT)<br />Rounds: 10
Calibre: 8.6x70mm (300gr Sierra MatchKing HPBT)<br />Cartouches: 10
Calibre: 8.6x70mm (300gr Sierra MatchKing HPBT)<br />Balas: 10
@@ -1448,7 +1448,7 @@
Calibre: 8.6x70mm (300gr Sierra MatchKing HPBT)<br/>Cartuchos: 10
Kaliber: 8,6x70mm (300gr Sierra MatchKing HPBT)<br />Lövedékek: 10
-
+
.338 10Rnd Mag (API526)
Ch. .338 10Cps (API526)
Cargador de 10 balas de .338 (API526)
@@ -1460,7 +1460,7 @@
Carregador .338 (API526) com 10 cartuchos
.338 10-lövedékes tár (API526)
-
+
.338 AP
.338 AP
.338 AP
@@ -1472,7 +1472,7 @@
.338 AP
.338 páncéltörő
-
+
Caliber: 8.6x70mm (API526)<br />Rounds: 10
Calibre: 8.6x70mm (API526)<br />Cartouches: 10
Calibre: 8.6x70mm (API526)<br />Balas: 10
@@ -1484,7 +1484,7 @@
Calibre: 8.6x70mm (API526)<br/>Cartuchos: 10
Kaliber: 8,6x70mm (API526)<br />Lövedékek: 10
-
+
12.7x99mm 5Rnd Mag
Ch. 12.7x99mm 5Cps
Cargador de 5 balas de 12.7x99mm
@@ -1496,7 +1496,7 @@
Carregador 12.7x99mm com 5 cartuchos
12,7x99mm 5-lövedékes tár
-
+
12.7mm
12.7mm
12.7mm
@@ -1508,7 +1508,7 @@
12.7mm
12,7mm
-
+
Caliber: 12.7x99mm<br />Rounds: 5
Calibre: 12.7x99mm<br />Cartouches: 5
Calibre: 12.7x99mm<br />Balas: 5
@@ -1520,7 +1520,7 @@
Calibre: 12.7x99mm<br/>Cartuchos: 5
Kaliber: 12,7x99mm<br />Lövedékek: 5
-
+
12.7x99mm API 5Rnd Mag
Ch. 12.7x99mm API 5Cps
Cargador de 5 balas de 12.7x99mm API
@@ -1532,7 +1532,7 @@
Carregador 12.7x99mm API com 5 cartuchos
12,7x99mm 5-lövedékes tár (páncéltörő-gyújtó)
-
+
12.7mm API
12.7mm API
12.7mm API
@@ -1544,7 +1544,7 @@
12.7mm API
12,7mm páncéltörő-gyújtó
-
+
Caliber: 12.7x99mm API<br />Rounds: 5
Calibre: 12.7x99mm API<br />Cartouches: 5
Calibre: 12.7x99mm API<br />Balas: 5
@@ -1556,7 +1556,7 @@
Calibre: 12.7x99mm API<br/>Cartuchos: 5
Kaliber: 12,7x99mm API<br />Lövedékek: 5
-
+
12.7x99mm 5Rnd Mag (AMAX)
Ch. 12.7x99mm 5Cps (AMAX)
Cargador de 5 balas de 12.7x99mm (AMAX)
@@ -1568,7 +1568,7 @@
Carregador 12.7x99mm (AMAX) com 5 cartuchos
12,7x99mm 5-lövedékes tár (AMAX)
-
+
12.7mm
12.7mm
12.7mm
@@ -1580,7 +1580,7 @@
12.7mm
12,7mm
-
+
Caliber: 12.7x99mm (AMAX)<br />Rounds: 5
Calibre: 12.7x99mm (AMAX)<br />Cartouches: 5
Calibre: 12.7x99mm (AMAX)<br />Balas: 5
@@ -1592,5 +1592,13 @@
Calibre: 12.7x99mm (AMAX)<br/>Cartuchos: 5
Kaliber: 12,7x99mm (AMAX)<br />Lövedékek: 5
+
+ [ACE] Ammo Supply Crate
+ [ACE] Skrzynka z amunicją
+ [ACE] Caja de suministros de munición
+ [ACE] Munitionskiste
+ [ACE] Bedna s municí
+ [ACE] Caixa com suprimentos de munição
+
\ No newline at end of file
diff --git a/addons/captives/ACE_Settings.hpp b/addons/captives/ACE_Settings.hpp
new file mode 100644
index 0000000000..73bafbab41
--- /dev/null
+++ b/addons/captives/ACE_Settings.hpp
@@ -0,0 +1,14 @@
+class ACE_Settings {
+ class GVAR(allowHandcuffOwnSide) {
+ displayName = CSTRING(ModuleSettings_handcuffSide_name);
+ description = CSTRING(ModuleSettings_handcuffSide_description);
+ typeName = "BOOL";
+ value = 1;
+ };
+ class GVAR(allowSurrender) {
+ displayName = CSTRING(ModuleSettings_allowSurrender_name);
+ description = CSTRING(ModuleSettings_allowSurrender_description);
+ typeName = "BOOL";
+ value = 1;
+ };
+};
diff --git a/addons/captives/CfgVehicles.hpp b/addons/captives/CfgVehicles.hpp
index 1e2eb3f201..746a1c4b63 100644
--- a/addons/captives/CfgVehicles.hpp
+++ b/addons/captives/CfgVehicles.hpp
@@ -4,7 +4,7 @@ class CfgVehicles {
class ACE_Actions {
class ACE_ApplyHandcuffs {
- displayName = "$STR_ACE_Captives_SetCaptive";
+ displayName = CSTRING(SetCaptive);
selection = "righthand";
distance = 2;
condition = QUOTE([ARR_2(_player, _target)] call FUNC(canApplyHandcuffs));
@@ -13,7 +13,7 @@ class CfgVehicles {
icon = QUOTE(PATHTOF(UI\handcuff_ca.paa));
};
class ACE_RemoveHandcuffs {
- displayName = "$STR_ACE_Captives_ReleaseCaptive";
+ displayName = CSTRING(ReleaseCaptive);
selection = "righthand";
distance = 2;
condition = QUOTE([ARR_2(_player, _target)] call FUNC(canRemoveHandcuffs));
@@ -24,7 +24,7 @@ class CfgVehicles {
class ACE_MainActions {
class ACE_EscortCaptive {
- displayName = "$STR_ACE_Captives_EscortCaptive";
+ displayName = CSTRING(EscortCaptive);
distance = 4;
condition = QUOTE([ARR_2(_player, _target)] call FUNC(canEscortCaptive));
statement = QUOTE([ARR_3(_player, _target, true)] call FUNC(doEscortCaptive));
@@ -35,7 +35,7 @@ class CfgVehicles {
hotkey = "E";
};
class ACE_StopEscorting {
- displayName = "$STR_ACE_Captives_StopEscorting";
+ displayName = CSTRING(StopEscorting);
distance = 4;
condition = QUOTE([ARR_2(_player, _target)] call FUNC(canStopEscorting));
statement = QUOTE([ARR_3(_player,_target, false)] call FUNC(doEscortCaptive));
@@ -46,7 +46,7 @@ class CfgVehicles {
hotkey = "E";
};
class ACE_LoadCaptive {
- displayName = "$STR_ACE_Captives_LoadCaptive";
+ displayName = CSTRING(LoadCaptive);
distance = 4;
condition = QUOTE([ARR_3(_player, _target, objNull)] call FUNC(canLoadCaptive));
statement = QUOTE([ARR_3(_player, _target, objNull)] call FUNC(doLoadCaptive));
@@ -56,22 +56,19 @@ class CfgVehicles {
priority = 2.2;
hotkey = "L";
};
- class ACE_FriskPerson {
- displayName = "$STR_ACE_Captives_FriskPerson";
- distance = 2;
- condition = QUOTE([ARR_2(_player, _target)] call FUNC(canFriskPerson));
- statement = QUOTE([ARR_2(_player, _target)] call FUNC(doFriskPerson));
- showDisabled = 0;
- //icon = ""; //@todo
- priority = 3;
- hotkey = "F";
+ class GVAR(UnloadCaptive) {
+ displayName = CSTRING(UnloadCaptive);
+ distance = 4;
+ condition = QUOTE([ARR_2(_player, _target)] call FUNC(canUnloadCaptive));
+ statement = QUOTE([ARR_2(_player, _target)] call FUNC(doUnloadCaptive));
+ priority = 1.2;
};
};
};
class ACE_SelfActions {
class ACE_StopEscortingSelf {
- displayName = "$STR_ACE_Captives_StopEscorting";
+ displayName = CSTRING(StopEscorting);
condition = QUOTE([ARR_2(_player, objNull)] call FUNC(canStopEscorting));
statement = QUOTE([ARR_3(_player,objNull, false)] call FUNC(doEscortCaptive));
exceptions[] = {"isNotEscorting"};
@@ -80,20 +77,22 @@ class CfgVehicles {
hotkey = "C";
};
class ACE_StartSurrenderingSelf {
- displayName = "$STR_ACE_Captives_StartSurrendering";
+ displayName = CSTRING(StartSurrendering);
condition = QUOTE([ARR_2(_player, true)] call FUNC(canSurrender));
statement = QUOTE([ARR_2(_player, true)] call FUNC(setSurrendered));
exceptions[] = {};
showDisabled = 0;
priority = 0;
+ icon = QUOTE(PATHTOF(UI\Surrender_ca.paa));
};
class ACE_StopSurrenderingSelf {
- displayName = "$STR_ACE_Captives_StopSurrendering";
+ displayName = CSTRING(StopSurrendering);
condition = QUOTE([ARR_2(_player, false)] call FUNC(canSurrender));
statement = QUOTE([ARR_2(_player, false)] call FUNC(setSurrendered));
exceptions[] = {"isNotSurrendering"};
showDisabled = 0;
priority = 0;
+ icon = QUOTE(PATHTOF(UI\Surrender_ca.paa));
};
};
};
@@ -102,20 +101,13 @@ class CfgVehicles {
class ACE_Actions { \
class ACE_MainActions { \
class GVAR(LoadCaptive) { \
- displayName = "$STR_ACE_Captives_LoadCaptive"; \
+ displayName = CSTRING(LoadCaptive); \
distance = 4; \
condition = QUOTE([ARR_3(_player, objNull, _target)] call FUNC(canLoadCaptive)); \
statement = QUOTE([ARR_3(_player, objNull, _target)] call FUNC(doLoadCaptive)); \
exceptions[] = {"isNotEscorting"}; \
priority = 1.2; \
}; \
- class GVAR(UnloadCaptive) { \
- displayName = "$STR_ACE_Captives_UnloadCaptive"; \
- distance = 4; \
- condition = QUOTE([ARR_2(_player, _target)] call FUNC(canUnloadCaptive)); \
- statement = QUOTE([ARR_2(_player, _target)] call FUNC(doUnloadCaptive)); \
- priority = 1.2; \
- }; \
}; \
};
@@ -159,21 +151,48 @@ class CfgVehicles {
};
class GVAR(ModuleSurrender): Module_F {
- author = "$STR_ACE_Common_ACETeam";
+ author = ECSTRING(common,ACETeam);
category = "ACE";
- displayName = "Make Unit Surrender";
- function = QUOTE(DFUNC(moduleSurrender));
+ displayName = CSTRING(ModuleSurrender_DisplayName); //Make Unit Surrender
+ function = QFUNC(moduleSurrender);
scope = 2; //show in editor
- scopeCurator = 2; //show in zeus
- curatorCost = 0; //???
isGlobal = 1; //run global
isTriggerActivated = 1; //Wait for triggers
icon = QUOTE(PATHTOF(UI\Icon_Module_Make_Unit_Surrender_ca.paa));
functionPriority = 0;
class Arguments {};
class ModuleDescription: ModuleDescription {
- description = "Sync a unit to make them surrender.
Source: ace_captives";
+ description = CSTRING(ModuleSurrender_Description); //Sync a unit to make them surrender.
Source: ace_captives
sync[] = {"AnyAI"};
};
};
+
+ class ACE_Module: Module_F {};
+ class GVAR(moduleSettings): ACE_Module {
+ author = ECSTRING(common,ACETeam);
+ category = "ACE";
+ displayName = CSTRING(ModuleSettings_DisplayName);
+ function = QFUNC(moduleSettings);
+ scope = 2;
+ icon = QUOTE(PATHTOF(UI\Icon_Module_settings_ca.paa));
+ isGlobal = 1;
+ class Arguments {
+ class allowHandcuffOwnSide {
+ displayName = CSTRING(ModuleSettings_handcuffSide_name);
+ description = CSTRING(ModuleSettings_handcuffSide_description);
+ typeName = "BOOL";
+ defaultValue = 1;
+ };
+ class allowSurrender {
+ displayName = CSTRING(ModuleSettings_allowSurrender_name);
+ description = CSTRING(ModuleSettings_allowSurrender_description);
+ typeName = "BOOL";
+ defaultValue = 1;
+ };
+ };
+ class ModuleDescription: ModuleDescription {
+ description = CSTRING(ModuleSettings_Description);
+ sync[] = {};
+ };
+ };
};
diff --git a/addons/captives/CfgWeapons.hpp b/addons/captives/CfgWeapons.hpp
index be2149ca88..7092962519 100644
--- a/addons/captives/CfgWeapons.hpp
+++ b/addons/captives/CfgWeapons.hpp
@@ -3,8 +3,8 @@ class CfgWeapons {
class InventoryItem_Base_F;
class ACE_CableTie: ACE_ItemCore {
- displayName = "$STR_ACE_Captives_CableTie";
- descriptionShort = "$STR_ACE_Captives_CableTieDescription";
+ displayName = CSTRING(CableTie);
+ descriptionShort = CSTRING(CableTieDescription);
model = QUOTE(PATHTOF(models\ace_cabletie.p3d));
picture = QUOTE(PATHTOF(UI\ace_cabletie_ca.paa));
scope = 2;
diff --git a/addons/captives/UI/Icon_Module_settings_ca.paa b/addons/captives/UI/Icon_Module_settings_ca.paa
new file mode 100644
index 0000000000..365f02cb21
Binary files /dev/null and b/addons/captives/UI/Icon_Module_settings_ca.paa differ
diff --git a/addons/captives/UI/Surrender_ca.paa b/addons/captives/UI/Surrender_ca.paa
new file mode 100644
index 0000000000..6ddabf4d56
Binary files /dev/null and b/addons/captives/UI/Surrender_ca.paa differ
diff --git a/addons/captives/XEH_postInit.sqf b/addons/captives/XEH_postInit.sqf
index f91f24025e..da2192d3d6 100644
--- a/addons/captives/XEH_postInit.sqf
+++ b/addons/captives/XEH_postInit.sqf
@@ -11,7 +11,7 @@ if (isServer) then {
_escortedUnit = _disconnectedPlayer getVariable [QGVAR(escortedUnit), objNull];
if ((!isNull _escortedUnit) && {(attachedTo _escortedUnit) == _disconnectedPlayer}) then {
detach _escortedUnit;
- systemChat "debug: DC detach";
+ //systemChat "debug: DC detach";
};
if (_disconnectedPlayer getVariable [QGVAR(isEscorting), false]) then {
_disconnectedPlayer setVariable [QGVAR(isEscorting), false, true];
diff --git a/addons/captives/XEH_preInit.sqf b/addons/captives/XEH_preInit.sqf
index bc6a61bc4f..31bcbe8e02 100644
--- a/addons/captives/XEH_preInit.sqf
+++ b/addons/captives/XEH_preInit.sqf
@@ -24,6 +24,7 @@ PREP(handlePlayerChanged);
PREP(handleRespawn);
PREP(handleUnitInitPost);
PREP(handleZeusDisplayChanged);
+PREP(moduleSettings);
PREP(moduleSurrender);
PREP(setHandcuffed);
PREP(setSurrendered);
diff --git a/addons/captives/config.cpp b/addons/captives/config.cpp
index 57de6ee970..cdaf6dc4e4 100644
--- a/addons/captives/config.cpp
+++ b/addons/captives/config.cpp
@@ -2,7 +2,7 @@
class CfgPatches {
class ADDON {
- units[] = {QGVAR(ModuleSurrender)};
+ units[] = {QGVAR(ModuleSettings), QGVAR(ModuleSurrender)};
weapons[] = {"ACE_CableTie"};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ACE_Interaction"};
@@ -12,6 +12,7 @@ class CfgPatches {
};
};
+#include "ACE_Settings.hpp"
#include "CfgEventHandlers.hpp"
#include "CfgMoves.hpp"
#include "CfgVehicles.hpp"
diff --git a/addons/captives/functions/fnc_canApplyHandcuffs.sqf b/addons/captives/functions/fnc_canApplyHandcuffs.sqf
index f69bb2544d..e42b5455ff 100644
--- a/addons/captives/functions/fnc_canApplyHandcuffs.sqf
+++ b/addons/captives/functions/fnc_canApplyHandcuffs.sqf
@@ -18,8 +18,9 @@
PARAMS_2(_unit,_target);
-//Player has cableTie, target is alive and not already handcuffed
+//Check sides, Player has cableTie, target is alive and not already handcuffed
+(GVAR(allowHandcuffOwnSide) || {(side _unit) != (side _target)}) &&
("ACE_CableTie" in (items _unit)) &&
{alive _target} &&
{!(_target getVariable [QGVAR(isHandcuffed), false])}
diff --git a/addons/captives/functions/fnc_canEscortCaptive.sqf b/addons/captives/functions/fnc_canEscortCaptive.sqf
index 85bd8bbd3e..1d9480fd0b 100644
--- a/addons/captives/functions/fnc_canEscortCaptive.sqf
+++ b/addons/captives/functions/fnc_canEscortCaptive.sqf
@@ -23,4 +23,6 @@ PARAMS_2(_unit,_target);
(_target getVariable [QGVAR(isHandcuffed), false]) &&
{isNull (attachedTo _target)} &&
{alive _target} &&
-{!(_target getVariable ["ACE_isUnconscious", false])}
+{!(_target getVariable ["ACE_isUnconscious", false])} &&
+{(vehicle _unit) == _unit} &&
+{(vehicle _target) == _target}
diff --git a/addons/captives/functions/fnc_canSurrender.sqf b/addons/captives/functions/fnc_canSurrender.sqf
index 3b810a0c5c..059fb98d03 100644
--- a/addons/captives/functions/fnc_canSurrender.sqf
+++ b/addons/captives/functions/fnc_canSurrender.sqf
@@ -1,6 +1,6 @@
/*
* Author: PabstMirror
- * Checks the conditions for being able to surrender
+ * Checks the conditions for being able switch surrender states
*
* Arguments:
* 0: caller (player)