Merge pull request #4 from acemod/master

update my master fork
This commit is contained in:
Legolasindar 2015-04-16 18:52:06 +02:00
commit 3426237b6c
127 changed files with 1944 additions and 753 deletions

View File

@ -33,6 +33,7 @@ Aggr094 <bastards4glory@gmail.com>
Anthariel <Contact@storm-simulation.com> Anthariel <Contact@storm-simulation.com>
BlackQwar BlackQwar
Brakoviejo Brakoviejo
Clon1998 <ps.patti1998@gmail.com>
Codingboy Codingboy
Crusty Crusty
eRazeri eRazeri
@ -67,8 +68,10 @@ rakowozz
Raspu86 Raspu86
Riccardo Petricca <petriccarcc@gmail.com> Riccardo Petricca <petriccarcc@gmail.com>
Robert Boklahánics <bokirobi@gmail.com> Robert Boklahánics <bokirobi@gmail.com>
ramius86 <pasini86@hotmail.com>
simon84 simon84
Sniperwolf572 <tenga6@gmail.com> Sniperwolf572 <tenga6@gmail.com>
Tachi <zaveruha007@gmail.com>
Tonic Tonic
Tourorist <tourorist@gmail.com> Tourorist <tourorist@gmail.com>
Valentin Torikian <valentin.torikian@gmail.com> Valentin Torikian <valentin.torikian@gmail.com>

View File

@ -33,9 +33,10 @@ GVAR(AtmosphericDensitySimulationEnabled) = true;
GVAR(currentGrid) = 0; GVAR(currentGrid) = 0;
GVAR(INIT_MESSAGE_ENABLED) = false; GVAR(INIT_MESSAGE_ENABLED) = false;
GVAR(extensionAvailable) = "ace_advanced_ballistics" callExtension "version" == "1.0"; GVAR(extensionVersion) = ("ace_advanced_ballistics" callExtension "version");
GVAR(extensionAvailable) = (GVAR(extensionVersion) == EXTENSION_REQUIRED_VERSION);
if (!GVAR(extensionAvailable)) exitWith { if (!GVAR(extensionAvailable)) exitWith {
if ("ace_advanced_ballistics" callExtension "version" == "") then { if (GVAR(extensionVersion) == "") then {
diag_log text "[ACE] ERROR: ace_advanced_ballistics.dll is missing"; diag_log text "[ACE] ERROR: ace_advanced_ballistics.dll is missing";
} else { } else {
diag_log text "[ACE] ERROR: ace_advanced_ballistics.dll is incompatible"; diag_log text "[ACE] ERROR: ace_advanced_ballistics.dll is incompatible";

View File

@ -19,7 +19,7 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
private ["_unit", "_weapon", "_mode", "_ammo", "_magazine", "_caliber", "_bullet", "_abort", "_index", "_opticsName", "_opticType", "_bulletTraceVisible", "_temperature", "_barometricPressure", "_atmosphereModel", "_bulletMass", "_bulletLength", "_bulletTranslation", "_airFriction", "_dragModel", "_velocityBoundaryData", "_muzzleVelocity", "_muzzleVelocityCoef", "_muzzleVelocityShift", "_bulletVelocity", "_bulletSpeed", "_bulletLength", "_bulletWeight", "_barrelTwist", "_twistDirection", "_stabilityFactor", "_transonicStabilityCoef", "_ACE_Elevation", "_ACE_Windage", "_ID"]; private ["_unit", "_weapon", "_mode", "_ammo", "_magazine", "_caliber", "_bullet", "_abort", "_index", "_opticsName", "_opticType", "_bulletTraceVisible", "_temperature", "_barometricPressure", "_atmosphereModel", "_bulletMass", "_bulletLength", "_airFriction", "_dragModel", "_muzzleVelocity", "_muzzleVelocityCoef", "_muzzleAccessory", "_initSpeedCoef", "_muzzleVelocityShift", "_bulletVelocity", "_bulletSpeed", "_bulletLength", "_bulletWeight", "_barrelTwist", "_twistDirection", "_stabilityFactor", "_transonicStabilityCoef"];
_unit = _this select 0; _unit = _this select 0;
_weapon = _this select 1; _weapon = _this select 1;
_mode = _this select 3; _mode = _this select 3;
@ -95,12 +95,11 @@ if (GVAR(ammoTemperatureEnabled)) then {
}; };
}; };
// TODO: Make _bulletTraceVisible global and toggle it with events
_bulletTraceVisible = false; _bulletTraceVisible = false;
if (GVAR(bulletTraceEnabled) && currentWeapon ACE_player == primaryWeapon ACE_player && count primaryWeaponItems ACE_player > 2) then { if (GVAR(bulletTraceEnabled) && cameraView == "GUNNER" && currentWeapon ACE_player == primaryWeapon ACE_player && count primaryWeaponItems ACE_player > 2) then {
_opticsName = (primaryWeaponItems ACE_player) select 2; _opticsName = (primaryWeaponItems ACE_player) select 2;
_opticType = getNumber(configFile >> "cfgWeapons" >> _opticsName >> "ItemInfo" >> "opticType"); _opticType = getNumber(configFile >> "cfgWeapons" >> _opticsName >> "ItemInfo" >> "opticType");
_bulletTraceVisible = (_opticType == 2 || currentWeapon ACE_player in ["ACE_Vector", "Binocular", "Rangefinder", "Laserdesignator"]) && cameraView == "GUNNER"; _bulletTraceVisible = (_opticType == 2 || currentWeapon ACE_player in ["ACE_Vector", "Binocular", "Rangefinder", "Laserdesignator"]);
}; };
_caliber = getNumber(configFile >> "cfgAmmo" >> _ammo >> "ACE_caliber"); _caliber = getNumber(configFile >> "cfgAmmo" >> _ammo >> "ACE_caliber");
@ -159,14 +158,16 @@ if (GVAR(AdvancedAirDragEnabled)) then {
private ["_index", "_bullet", "_caliber", "_bulletTraceVisible", "_bulletVelocity", "_bulletPosition"]; private ["_index", "_bullet", "_caliber", "_bulletTraceVisible", "_bulletVelocity", "_bulletPosition"];
EXPLODE_4_PVT(_this select 0,_bullet,_caliber,_bulletTraceVisible,_index); EXPLODE_4_PVT(_this select 0,_bullet,_caliber,_bulletTraceVisible,_index);
if (!alive _bullet) exitWith {
[_this select 1] call cba_fnc_removePerFrameHandler;
};
_bulletVelocity = velocity _bullet; _bulletVelocity = velocity _bullet;
_bulletPosition = getPosASL _bullet; _bulletPosition = getPosASL _bullet;
if (_bulletTraceVisible && vectorMagnitude _bulletVelocity > 600) then { _bulletSpeed = vectorMagnitude _bulletVelocity;
if (!alive _bullet || _bulletSpeed < 100) exitWith {
[_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,"","",""]; 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,"","",""];
}; };
@ -190,7 +191,7 @@ if (GVAR(AdvancedAirDragEnabled)) then {
if ((GVAR(bulletDatabaseOccupiedIndices) pushBack _index) == 0) then { if ((GVAR(bulletDatabaseOccupiedIndices) pushBack _index) == 0) then {
[{ [{
private ["_bulletDatabaseEntry", "_bullet", "_caliber", "_muzzleVelocity", "_frames", "_speed", "_airFriction", "_airFrictionRef", "_dragModel", "_atmosphereModel", "_ballisticCoefficient", "_ballisticCoefficients", "_velocityBoundaries", "_airDensity", "_stabilityFactor", "_transonicStabilityCoef", "_twistDirection", "_unit", "_bulletTraceVisible", "_index", "_temperature", "_humidity", "_deltaT", "_TOF", "_bulletPosition", "_bulletVelocity", "_bulletSpeed", "_trueVelocity", "_trueSpeed", "_bulletSpeedAvg", "_wind", "_drag", "_dragRef", "_vect", "_accel", "_accelRef", "_centripetalAccel", "_pressure", "_pressureDeviation", "_windSourceObstacle", "_windSourceTerrain", "_height", "_roughnessLength"]; private ["_bulletDatabaseEntry", "_bullet", "_caliber", "_muzzleVelocity", "_frames", "_speed", "_airFriction", "_airFrictionRef", "_dragModel", "_atmosphereModel", "_ballisticCoefficient", "_ballisticCoefficients", "_velocityBoundaries", "_airDensity", "_stabilityFactor", "_transonicStabilityCoef", "_twistDirection", "_unit", "_bulletTraceVisible", "_index", "_temperature", "_humidity", "_deltaT", "_TOF", "_bulletPosition", "_bulletVelocity", "_bulletSpeed", "_trueVelocity", "_trueSpeed", "_bulletSpeedAvg", "_wind", "_drag", "_dragRef", "_vect", "_accel", "_accelRef", "_centripetalAccel", "_pressure", "_pressureDeviation", "_windSourceObstacle", "_windSourceTerrain", "_height", "_roughnessLength", "_bulletDir", "_horizontalDeflection", "_horizontalDeflectionPartial", "_spinDrift", "_spinDriftPartial"];
{ {
_bulletDatabaseEntry = (GVAR(bulletDatabase) select _x); _bulletDatabaseEntry = (GVAR(bulletDatabase) select _x);

View File

@ -24,3 +24,5 @@
#define STD_AIR_DENSITY_ICAO 1.22498 #define STD_AIR_DENSITY_ICAO 1.22498
#define STD_AIR_DENSITY_ASM 1.20885 #define STD_AIR_DENSITY_ASM 1.20885
#define GET_TEMPERATURE_AT_HEIGHT(h) (EGVAR(weather,currentTemperature) - 0.0065 * (h)) #define GET_TEMPERATURE_AT_HEIGHT(h) (EGVAR(weather,currentTemperature) - 0.0065 * (h))
#define EXTENSION_REQUIRED_VERSION "1.0"

View File

@ -6,12 +6,16 @@
<English>Show Wind Info</English> <English>Show Wind Info</English>
<Polish>Pokaż inf. o wietrze</Polish> <Polish>Pokaż inf. o wietrze</Polish>
<Italian>Mostra indicazioni del vento</Italian> <Italian>Mostra indicazioni del vento</Italian>
<Russian>Показать информацию о ветре</Russian>
<French>Afficher les info du vent</French>
<Spanish>Mostrar información del viento</Spanish> <Spanish>Mostrar información del viento</Spanish>
</Key> </Key>
<Key ID="STR_ACE_AdvancedBallistics_ProtractorKey"> <Key ID="STR_ACE_AdvancedBallistics_ProtractorKey">
<English>Show Protractor</English> <English>Show Protractor</English>
<Polish>Pokaż kątomierz</Polish> <Polish>Pokaż kątomierz</Polish>
<Italian>Mostra il rapportatore</Italian> <Italian>Mostra il rapportatore</Italian>
<Russian>Показать транспортир</Russian>
<French>Afficher le rapporteur</French>
<Spanish>Mostrar transportador</Spanish> <Spanish>Mostrar transportador</Spanish>
</Key> </Key>
</Package> </Package>

View File

@ -230,12 +230,12 @@ class ATragMX_Display {
w=0.03; w=0.03;
h=0.03; h=0.03;
colorBackground[]={0,0,0,0.0}; colorBackground[]={0,0,0,0.0};
action=QUOTE(((GVAR(currentGun) select GVAR(currentTarget)) + (count GVAR(gunList)) - 1) % (count GVAR(gunList)) call FUNC(change_gun)); action=QUOTE((GVAR(currentGun) + (count GVAR(gunList)) - 1) % (count GVAR(gunList)) call FUNC(change_gun));
}; };
class BOTTOM: TOP { class BOTTOM: TOP {
idc=-1; idc=-1;
y=0.265*safezoneH+safezoneY+0.955; y=0.265*safezoneH+safezoneY+0.955;
action=QUOTE(((GVAR(currentGun) select GVAR(currentTarget)) + (count GVAR(gunList)) + 1) % (count GVAR(gunList)) call FUNC(change_gun)); action=QUOTE((GVAR(currentGun) + (count GVAR(gunList)) + 1) % (count GVAR(gunList)) call FUNC(change_gun));
}; };
class LEFT: ATragMX_RscButton { class LEFT: ATragMX_RscButton {
idc=-1; idc=-1;
@ -244,12 +244,12 @@ class ATragMX_Display {
w=0.05; w=0.05;
h=0.03; h=0.03;
colorBackground[]={0,0,0,0}; colorBackground[]={0,0,0,0};
action=QUOTE(call FUNC(parse_input); GVAR(currentTarget) = (4 + GVAR(currentTarget) - 1) % 4; call FUNC(update_target_selection)); action=QUOTE(((4 + GVAR(currentTarget) - 1) % 4) call FUNC(change_target_slot));
}; };
class RIGHT: LEFT { class RIGHT: LEFT {
idc=-1; idc=-1;
x=0.55*safezoneW+safezoneX+0.2725; x=0.55*safezoneW+safezoneX+0.2725;
action=QUOTE(call FUNC(parse_input); GVAR(currentTarget) = (4 + GVAR(currentTarget) + 1) % 4; call FUNC(update_target_selection)); action=QUOTE(((4 + GVAR(currentTarget) + 1) % 4) call FUNC(change_target_slot));
}; };
class TOP_LEFT: ATragMX_RscButton { class TOP_LEFT: ATragMX_RscButton {
idc=-1; idc=-1;
@ -420,25 +420,25 @@ class ATragMX_Display {
colorBackgroundDisabled[]={0,0,0,1}; colorBackgroundDisabled[]={0,0,0,1};
colorBackgroundActive[]={0,0,0,0}; colorBackgroundActive[]={0,0,0,0};
text="A"; text="A";
action=QUOTE(call FUNC(parse_input); GVAR(currentTarget)=0; call FUNC(update_target_selection)); action=QUOTE(0 call FUNC(change_target_slot));
}; };
class TEXT_TARGET_B: TEXT_TARGET_A { class TEXT_TARGET_B: TEXT_TARGET_A {
idc=501; idc=501;
x=0.550*safezoneW+safezoneX+0.2281; x=0.550*safezoneW+safezoneX+0.2281;
text="B"; text="B";
action=QUOTE(call FUNC(parse_input); GVAR(currentTarget)=1; call FUNC(update_target_selection)); action=QUOTE(1 call FUNC(change_target_slot));
}; };
class TEXT_TARGET_C: TEXT_TARGET_B { class TEXT_TARGET_C: TEXT_TARGET_B {
idc=502; idc=502;
x=0.550*safezoneW+safezoneX+0.2512; x=0.550*safezoneW+safezoneX+0.2512;
text="C"; text="C";
action=QUOTE(call FUNC(parse_input); GVAR(currentTarget)=2; call FUNC(update_target_selection)); action=QUOTE(2 call FUNC(change_target_slot));
}; };
class TEXT_TARGET_D: TEXT_TARGET_B { class TEXT_TARGET_D: TEXT_TARGET_B {
idc=503; idc=503;
x=0.550*safezoneW+safezoneX+0.2743; x=0.550*safezoneW+safezoneX+0.2743;
text="D"; text="D";
action=QUOTE(call FUNC(parse_input); GVAR(currentTarget)=3; call FUNC(update_target_selection)); action=QUOTE(3 call FUNC(change_target_slot));
}; };
class TEXT_TARGET: TEXT_GUN { class TEXT_TARGET: TEXT_GUN {

View File

@ -6,16 +6,38 @@ if (count (profileNamespace getVariable ["ACE_ATragMX_gunList", []]) > 0) then {
GVAR(gunList) = profileNamespace getVariable "ACE_ATragMX_gunList"; GVAR(gunList) = profileNamespace getVariable "ACE_ATragMX_gunList";
} else { } else {
// Profile Name, Muzzle Velocity, Zero Range, Scope Base Angle, AirFriction, Bore Height, Scope Unit, Elevation Scope Step, Windage Scope Step, Maximum Elevation, Dialed Elevation, Dialed Windage, Mass, Ammo Class Name, Magazine Class Name, BC, Drag Model, Atmosphere Model // Profile Name, Muzzle Velocity, Zero Range, Scope Base Angle, AirFriction, Bore Height, Scope Unit, Elevation Scope Step, Windage Scope Step, Maximum Elevation, Dialed Elevation, Dialed Windage, Mass, Ammo Class Name, Magazine Class Name, BC, Drag Model, Atmosphere Model
GVAR(gunList) = [["12.7x108mm" , 820, 100, 0.0659, -0.0008600, 3.81, 0, 0.338, 0.338, 120, 0, 0, 48.28, "B_127x108_Ball" , "5Rnd_127x108_Mag" , 0.700, 1, "ASM" ], GVAR(gunList) = [["12.7x108mm" , 820, 100, 0.0659, -0.0008600, 3.81, 0, 0.338, 0.338, 120, 0, 0, 48.28, "B_127x108_Ball" , "5Rnd_127x108_Mag" , 0.630, 1, "ASM" ],
["12.7x99mm" , 880, 100, 0.0607, -0.0008600, 3.81, 0, 0.338, 0.338, 120, 0, 0, 41.92, "B_127x99_Ball" , "5Rnd_mas_127x99_Stanag" , 0.670, 1, "ASM" ],
["12.7x54mm" , 290, 100, 0.3913, -0.0014000, 3.81, 0, 0.338, 0.338, 120, 0, 0, 61.56, "B_127x54_Ball" , "10Rnd_127x54_Mag" , 1.050, 1, "ASM" ], ["12.7x99mm AMAX" , 860, 100, 0.0612, -0.0008600, 3.81, 0, 0.338, 0.338, 120, 0, 0, 48.60, "B_127x99_Ball" , "5Rnd_mas_127x99_Stanag" , 1.050, 1, "ASM" ],
["10.4x77mm" , 910, 100, 0.0572, -0.0004800, 3.81, 0, 0.338, 0.338, 120, 0, 0, 27.15, "B_408_Ball" , "7Rnd_408_Mag" , 0.970, 1, "ASM" ], ["12.7x99mm" , 853, 100, 0.0623, -0.0008600, 3.81, 0, 0.338, 0.338, 120, 0, 0, 41.92, "B_127x99_Ball" , "5Rnd_mas_127x99_Stanag" , 0.670, 1, "ASM" ],
["9.3×64mm" , 870, 100, 0.0632, -0.0007500, 3.81, 0, 0.338, 0.338, 120, 0, 0, 16.20, "B_93x64_Ball" , "10Rnd_93x64_DMR_05_Mag" , 0.368, 1, "ASM" ],
["8.6×70mm" , 915, 100, 0.0572, -0.0006100, 3.81, 0, 0.338, 0.338, 120, 0, 0, 16.20, "B_338_Ball" , "10Rnd_338_Mag" , 0.322, 7, "ICAO"], ["12.7x54mm" , 300, 100, 0.3394, -0.0014000, 3.81, 0, 0.338, 0.338, 120, 0, 0, 48.60, "B_127x54_Ball" , "10Rnd_127x54_Mag" , 1.050, 1, "ASM" ],
["7.62x51mm" , 850, 100, 0.0639, -0.0010000, 3.81, 0, 0.338, 0.338, 120, 0, 0, 9.460, "B_762x51_Ball" , "20Rnd_762x51_Mag" , 0.393, 1, "ICAO"],
["6.5x39mm" , 800, 100, 0.0689, -0.0009000, 3.81, 0, 0.338, 0.338, 120, 0, 0, 7.776, "B_65x39_Caseless", "30Rnd_65x39_caseless_mag", 0.263, 1, "ICAO"], [".408 Chey Tac" , 910, 100, 0.0569, -0.0004800, 3.81, 0, 0.338, 0.338, 120, 0, 0, 27.15, "B_408_Ball" , "7Rnd_408_Mag" , 0.970, 1, "ASM" ],
["5.56x45mm" , 920, 100, 0.0584, -0.0012650, 3.81, 0, 0.338, 0.338, 120, 0, 0, 4.000, "B_556x45_Ball" , "30Rnd_556x45_Stanag" , 0.304, 1, "ASM" ],
["5.56x45mm Mk262" , 850, 100, 0.0643, -0.0011250, 3.81, 0, 0.338, 0.338, 120, 0, 0, 4.990, "RH_556x45_Mk262" , "RH_30Rnd_556x45_Mk262" , 0.361, 1, "ASM" ]]; ["9.3×64mm" , 870, 100, 0.0619, -0.0007500, 3.81, 0, 0.338, 0.338, 120, 0, 0, 14.90, "B_93x64_Ball" , "10Rnd_93x64_DMR_05_Mag" , 0.368, 1, "ASM" ],
[".338LM 250gr" , 880, 100, 0.0598, -0.0006060, 3.81, 0, 0.338, 0.338, 120, 0, 0, 16.20, "B_338_Ball" , "10Rnd_338_Mag" , 0.322, 7, "ICAO"],
[".338LM 300gr" , 800, 100, 0.0677, -0.0005350, 3.81, 0, 0.338, 0.338, 120, 0, 0, 19.44, "ACE_338_Ball" , "ACE_10Rnd_338_300gr_HPBT_Mag" , 0.381, 7, "ICAO"],
[".338LM API526" , 880, 100, 0.0601, -0.0006730, 3.81, 0, 0.338, 0.338, 120, 0, 0, 16.39, "ACE_338_Ball_API526" , "ACE_10Rnd_338_API526_Mag" , 0.290, 7, "ICAO"],
[".300WM Mk248 Mod 0", 900, 100, 0.0584, -0.0008300, 3.81, 0, 0.338, 0.338, 120, 0, 0, 13.31, "ACE_762x67_Ball_Mk248_Mod_0" , "ACE_20Rnd_762x67_Mk248_Mod_0_Mag" , 0.268, 7, "ICAO"],
[".300WM Mk248 Mod 1", 867, 100, 0.0611, -0.0008150, 3.81, 0, 0.338, 0.338, 120, 0, 0, 14.26, "ACE_762x67_Ball_Mk248_Mod_1" , "ACE_20Rnd_762x67_Mk248_Mod_1_Mag" , 0.310, 7, "ICAO"],
[".300WM Berger OTM" , 853, 100, 0.0622, -0.0007600, 3.81, 0, 0.338, 0.338, 120, 0, 0, 14.90, "ACE_762x67_Ball_Berger_Hybrid_OTM", "ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag", 0.368, 7, "ICAO"],
["7.62x54mmR" , 800, 100, 0.0692, -0.0010230, 3.81, 0, 0.338, 0.338, 120, 0, 0, 9.849, "B_762x54_Ball" , "10Rnd_762x54_Mag" , 0.400, 1, "ICAO"],
["7.62x51mm M80" , 810, 100, 0.0679, -0.0010350, 3.81, 0, 0.338, 0.338, 120, 0, 0, 9.525, "B_762x51_Ball" , "20Rnd_762x51_Mag" , 0.200, 7, "ICAO"],
["7.62x51mm M118LR" , 820, 100, 0.0662, -0.0008525, 3.81, 0, 0.338, 0.338, 120, 0, 0, 11.34, "ACE_762x51_Ball_M118LR" , "ACE_20Rnd_762x51_M118LR_Mag" , 0.243, 7, "ICAO"],
["7.62x51mm Mk319" , 820, 100, 0.0670, -0.0010300, 3.81, 0, 0.338, 0.338, 120, 0, 0, 8.424, "ACE_762x51_Ball_Mk319_Mod_0" , "ACE_20Rnd_762x51_Mk319_Mod_0_Mag" , 0.377, 1, "ICAO"],
["7.62x51mm Subsonic", 320, 100, 0.3060, -0.0004910, 3.81, 0, 0.338, 0.338, 120, 0, 0, 12.96, "ACE_762x51_Ball_Subsonic" , "ACE_20Rnd_762x51_Mag_SD" , 0.235, 7, "ICAO"],
["6.5x39mm" , 800, 100, 0.0683, -0.0007850, 3.81, 0, 0.338, 0.338, 120, 0, 0, 7.970, "B_65x39_Caseless" , "30Rnd_65x39_caseless_mag" , 0.263, 7, "ICAO"],
["6.5x47mm Lapua" , 800, 100, 0.0682, -0.0007710, 3.81, 0, 0.338, 0.338, 120, 0, 0, 9.007, "ACE_65x47_Ball_Scenar" , "ACE_30Rnd_65x47_Scenar_mag" , 0.290, 7, "ICAO"],
["5.56x45mm M855" , 870, 100, 0.0626, -0.0012650, 3.81, 0, 0.338, 0.338, 120, 0, 0, 4.018, "B_556x45_Ball" , "30Rnd_556x45_Stanag" , 0.151, 7, "ASM" ],
["5.56x45mm Mk262" , 820, 100, 0.0671, -0.0011250, 3.81, 0, 0.338, 0.338, 120, 0, 0, 4.990, "ACE_556x45_Ball_Mk262" , "ACE_30Rnd_556x45_Stanag_Mk262_mag" , 0.361, 1, "ASM" ],
["5.56x45mm Mk318" , 880, 100, 0.0616, -0.0011200, 3.81, 0, 0.338, 0.338, 120, 0, 0, 4.018, "ACE_556x45_Ball_Mk318" , "ACE_30Rnd_556x45_Stanag_Mk318_mag" , 0.307, 1, "ASM" ]];
profileNamespace setVariable ["ACE_ATragMX_gunList", GVAR(gunList)]; profileNamespace setVariable ["ACE_ATragMX_gunList", GVAR(gunList)];
}; };

View File

@ -11,6 +11,7 @@ PREP(calculate_target_solution);
PREP(calculate_target_speed_assist); PREP(calculate_target_speed_assist);
PREP(can_show); PREP(can_show);
PREP(change_gun); PREP(change_gun);
PREP(change_target_slot);
PREP(create_dialog); PREP(create_dialog);
PREP(cycle_range_card_columns); PREP(cycle_range_card_columns);
PREP(cycle_scope_unit); PREP(cycle_scope_unit);

View File

@ -18,21 +18,21 @@
[] call FUNC(parse_input); [] call FUNC(parse_input);
private ["_scopeBaseAngle"]; private ["_scopeBaseAngle"];
_scopeBaseAngle = ((GVAR(workingMemory) select GVAR(currentTarget)) select 3); _scopeBaseAngle = (GVAR(workingMemory) select 3);
private ["_bulletMass", "_boreHeight", "_airFriction", "_muzzleVelocity", "_bc", "_dragModel", "_atmosphereModel"]; private ["_bulletMass", "_boreHeight", "_airFriction", "_muzzleVelocity", "_bc", "_dragModel", "_atmosphereModel"];
_bulletMass = (GVAR(workingMemory) select GVAR(currentTarget)) select 12; _bulletMass = GVAR(workingMemory) select 12;
_boreHeight = (GVAR(workingMemory) select GVAR(currentTarget)) select 5; _boreHeight = GVAR(workingMemory) select 5;
_airFriction = (GVAR(workingMemory) select GVAR(currentTarget)) select 4; _airFriction = GVAR(workingMemory) select 4;
_muzzleVelocity = (GVAR(workingMemory) select GVAR(currentTarget)) select 1; _muzzleVelocity = GVAR(workingMemory) select 1;
_bc = (GVAR(workingMemory) select GVAR(currentTarget)) select 15; _bc = GVAR(workingMemory) select 15;
_dragModel = (GVAR(workingMemory) select GVAR(currentTarget)) select 16; _dragModel = GVAR(workingMemory) select 16;
_atmosphereModel = (GVAR(workingMemory) select GVAR(currentTarget)) select 17; _atmosphereModel = GVAR(workingMemory) select 17;
private ["_temperature", "_barometricPressure", "_relativeHumidity"]; private ["_temperature", "_barometricPressure", "_relativeHumidity"];
_temperature = (GVAR(temperature) select GVAR(currentTarget)); _temperature = GVAR(temperature);
_barometricPressure = (GVAR(barometricPressure) select GVAR(currentTarget)); _barometricPressure = GVAR(barometricPressure);
_relativeHumidity = (GVAR(relativeHumidity) select GVAR(currentTarget)); _relativeHumidity = GVAR(relativeHumidity);
if (GVAR(currentUnit) == 1) then if (GVAR(currentUnit) == 1) then
{ {
_temperature = (_temperature - 32) / 1.8; _temperature = (_temperature - 32) / 1.8;

View File

@ -34,6 +34,7 @@ _temperature = 15;
_barometricPressure = 1013.25; _barometricPressure = 1013.25;
_relativeHumidity = 0; _relativeHumidity = 0;
private ["_result"];
_result = [_scopeBaseAngle, _bulletMass, _boreHeight, _airFriction, _muzzleVelocity, _temperature, _barometricPressure, _relativeHumidity, 1000, 0, 0, 0, 0, _zeroRange, _airFriction, 1, "ICAO", false] call FUNC(calculate_solution); _result = [_scopeBaseAngle, _bulletMass, _boreHeight, _airFriction, _muzzleVelocity, _temperature, _barometricPressure, _relativeHumidity, 1000, 0, 0, 0, 0, _zeroRange, _airFriction, 1, "ICAO", false] call FUNC(calculate_solution);
_scopeBaseAngle + (_result select 0) / 60 _scopeBaseAngle + (_result select 0) / 60

View File

@ -109,8 +109,12 @@ while {_TOF < 15 && (_bulletPos select 1) < _targetRange} do {
if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then { if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then {
if (missionNamespace getVariable [QEGVAR(advanced_ballistics,AdvancedAirDragEnabled), false]) then { if (missionNamespace getVariable [QEGVAR(advanced_ballistics,AdvancedAirDragEnabled), false]) then {
private ["_drag"]; private ["_drag"];
_drag = -1 * ([_dragModel, _bc, _trueSpeed] call EFUNC(advanced_ballistics,calculateRetardation)); _drag = if (missionNamespace getVariable [QEGVAR(advanced_ballistics,extensionAvailable), false]) then {
_bulletAccel = (vectorNormalized _trueVelocity) vectorMultiply (_drag); parseNumber(("ace_advanced_ballistics" callExtension format["retard:%1:%2:%3", _dragModel, _bc, _trueSpeed]))
} else {
([_dragModel, _bc, _trueSpeed] call EFUNC(advanced_ballistics,calculateRetardation))
};
_bulletAccel = (vectorNormalized _trueVelocity) vectorMultiply (-1 * _drag);
}; };
} else { } else {
_bulletAccel = _trueVelocity vectorMultiply (_trueSpeed * _airFriction); _bulletAccel = _trueVelocity vectorMultiply (_trueSpeed * _airFriction);

View File

@ -18,21 +18,21 @@
[] call FUNC(parse_input); [] call FUNC(parse_input);
private ["_scopeBaseAngle"]; private ["_scopeBaseAngle"];
_scopeBaseAngle = ((GVAR(workingMemory) select GVAR(currentTarget)) select 3); _scopeBaseAngle = (GVAR(workingMemory) select 3);
private ["_bulletMass", "_boreHeight", "_airFriction", "_muzzleVelocity", "_bc", "_dragModel", "_atmosphereModel"]; private ["_bulletMass", "_boreHeight", "_airFriction", "_muzzleVelocity", "_bc", "_dragModel", "_atmosphereModel"];
_bulletMass = (GVAR(workingMemory) select GVAR(currentTarget)) select 12; _bulletMass = GVAR(workingMemory) select 12;
_boreHeight = (GVAR(workingMemory) select GVAR(currentTarget)) select 5; _boreHeight = GVAR(workingMemory) select 5;
_airFriction = (GVAR(workingMemory) select GVAR(currentTarget)) select 4; _airFriction = GVAR(workingMemory) select 4;
_muzzleVelocity = (GVAR(workingMemory) select GVAR(currentTarget)) select 1; _muzzleVelocity = GVAR(workingMemory) select 1;
_bc = (GVAR(workingMemory) select GVAR(currentTarget)) select 15; _bc = GVAR(workingMemory) select 15;
_dragModel = (GVAR(workingMemory) select GVAR(currentTarget)) select 16; _dragModel = GVAR(workingMemory) select 16;
_atmosphereModel = (GVAR(workingMemory) select GVAR(currentTarget)) select 17; _atmosphereModel = GVAR(workingMemory) select 17;
private ["_temperature", "_barometricPressure", "_relativeHumidity"]; private ["_temperature", "_barometricPressure", "_relativeHumidity"];
_temperature = (GVAR(temperature) select GVAR(currentTarget)); _temperature = GVAR(temperature);
_barometricPressure = (GVAR(barometricPressure) select GVAR(currentTarget)); _barometricPressure = GVAR(barometricPressure);
_relativeHumidity = (GVAR(relativeHumidity) select GVAR(currentTarget)); _relativeHumidity = GVAR(relativeHumidity);
if (GVAR(currentUnit) == 1) then if (GVAR(currentUnit) == 1) then
{ {
_temperature = (_temperature - 32) / 1.8; _temperature = (_temperature - 32) / 1.8;
@ -55,6 +55,7 @@ if (GVAR(currentUnit) == 1) then
_targetSpeed = _targetSpeed / 2.23693629; _targetSpeed = _targetSpeed / 2.23693629;
}; };
private ["_result"];
_result = [_scopeBaseAngle, _bulletMass, _boreHeight, _airFriction, _muzzleVelocity, _temperature, _barometricPressure, _relativeHumidity, 1000, _result = [_scopeBaseAngle, _bulletMass, _boreHeight, _airFriction, _muzzleVelocity, _temperature, _barometricPressure, _relativeHumidity, 1000,
_windSpeed, _windDirection, _inclinationAngle, _targetSpeed, _targetRange, _bc, _dragModel, _atmosphereModel, false] call FUNC(calculate_solution); _windSpeed, _windDirection, _inclinationAngle, _targetSpeed, _targetRange, _bc, _dragModel, _atmosphereModel, false] call FUNC(calculate_solution);

View File

@ -17,14 +17,14 @@
if (_this < 0 || _this > (count GVAR(gunList)) - 1) exitWith {}; if (_this < 0 || _this > (count GVAR(gunList)) - 1) exitWith {};
GVAR(workingMemory) set [GVAR(currentTarget), +(GVAR(gunList) select _this)]; GVAR(workingMemory) = +(GVAR(gunList) select _this);
GVAR(currentGun) set [GVAR(currentTarget), _this]; GVAR(currentGun) = _this;
lbSetCurSel [6000, (GVAR(currentGun) select GVAR(currentTarget))]; lbSetCurSel [6000, GVAR(currentGun)];
if ((GVAR(scopeUnits) select (GVAR(currentScopeUnit) select GVAR(currentTarget))) != "Clicks") then if ((GVAR(scopeUnits) select GVAR(currentScopeUnit)) != "Clicks") then
{ {
GVAR(currentScopeUnit) set [GVAR(currentTarget), (GVAR(workingMemory) select GVAR(currentTarget)) select 6]; GVAR(currentScopeUnit) = GVAR(workingMemory) select 6;
}; };
[] call FUNC(update_gun); [] call FUNC(update_gun);
@ -35,4 +35,4 @@ GVAR(leadOutput) set [GVAR(currentTarget), 0];
GVAR(tofOutput) set [GVAR(currentTarget), 0]; GVAR(tofOutput) set [GVAR(currentTarget), 0];
GVAR(velocityOutput) set [GVAR(currentTarget), 0]; GVAR(velocityOutput) set [GVAR(currentTarget), 0];
[] call FUNC(update_result); [] call FUNC(calculate_target_solution);

View File

@ -0,0 +1,26 @@
/*
* Author: Ruthberg
* Selects a target slot (A, B, C or D)
*
* Arguments:
* target <NUMBER>
*
* Return Value:
* Nothing
*
* Example:
* 2 call ace_atragmx_fnc_change_target_slot
*
* Public: No
*/
#include "script_component.hpp"
private ["_target"];
_target = 0 max _this min 3;
call FUNC(parse_input);
GVAR(currentTarget) = _target;
call FUNC(update_target_selection);
call FUNC(calculate_target_solution);

View File

@ -23,15 +23,19 @@ createDialog 'ATragMX_Display';
call FUNC(update_target_selection); call FUNC(update_target_selection);
true call FUNC(show_main_page); GVAR(showMainPage) call FUNC(show_main_page);
false call FUNC(show_add_new_gun); GVAR(showAddNewGun) call FUNC(show_add_new_gun);
false call FUNC(show_gun_list); GVAR(showGunList) call FUNC(show_gun_list);
false call FUNC(show_range_card); GVAR(showRangeCard) call FUNC(show_range_card);
false call FUNC(show_range_card_setup); if (GVAR(showRangeCard)) then {
false call FUNC(show_target_range_assist); ctrlSetFocus (_dsp displayCtrl 5001);
false call FUNC(show_target_speed_assist); [] call FUNC(update_range_card);
false call FUNC(show_target_speed_assist_timer); };
GVAR(showRangeCardSetup) call FUNC(show_range_card_setup);
GVAR(showTargetRangeAssist) call FUNC(show_target_range_assist);
GVAR(showTargetSpeedAssist) call FUNC(show_target_speed_assist);
GVAR(showTargetSpeedAssistTimer) call FUNC(show_target_speed_assist_timer);
{ {
lbAdd [6000, _x select 0]; lbAdd [6000, _x select 0];

View File

@ -17,7 +17,7 @@
[] call FUNC(parse_input); [] call FUNC(parse_input);
GVAR(currentScopeUnit) set [GVAR(currentTarget), ((GVAR(currentScopeUnit) select GVAR(currentTarget)) + 1) % (count GVAR(scopeUnits))]; GVAR(currentScopeUnit) = (GVAR(currentScopeUnit) + 1) % (count GVAR(scopeUnits));
[] call FUNC(update_scope_unit); [] call FUNC(update_scope_unit);
[] call FUNC(update_result); [] call FUNC(update_result);

View File

@ -15,7 +15,7 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
GVAR(workingMemory) = [+(GVAR(gunList) select 0), +(GVAR(gunList) select 0), +(GVAR(gunList) select 0), +(GVAR(gunList) select 0)]; GVAR(workingMemory) = +(GVAR(gunList) select 0);
GVAR(scopeUnits) = ["MILs", "TMOA", "SMOA", "Clicks"]; GVAR(scopeUnits) = ["MILs", "TMOA", "SMOA", "Clicks"];
@ -37,13 +37,13 @@ GVAR(speedAssistNumTicksUnit) = 0;
GVAR(speedAssistTimer) = true; GVAR(speedAssistTimer) = true;
GVAR(currentUnit) = 2; GVAR(currentUnit) = 2;
GVAR(currentGun) = [0, 0, 0, 0]; GVAR(currentGun) = 0;
GVAR(currentTarget) = 0; GVAR(currentTarget) = 0;
GVAR(currentScopeUnit) = [0, 0, 0, 0]; GVAR(currentScopeUnit) = 0;
GVAR(temperature) = [15, 15, 15, 15]; GVAR(temperature) = 15;
GVAR(barometricPressure) = [1013.25, 1013.25, 1013.25, 1013.25]; GVAR(barometricPressure) = 1013.25;
GVAR(relativeHumidity) = [0.5, 0.5, 0.5, 0.5]; GVAR(relativeHumidity) = 0.5;
GVAR(windSpeed) = [0, 0, 0, 0]; GVAR(windSpeed) = [0, 0, 0, 0];
GVAR(windDirection) = [12, 12, 12, 12]; GVAR(windDirection) = [12, 12, 12, 12];
@ -56,3 +56,13 @@ GVAR(windageOutput) = [0, 0, 0, 0];
GVAR(leadOutput) = [0, 0, 0, 0]; GVAR(leadOutput) = [0, 0, 0, 0];
GVAR(tofOutput) = [0, 0, 0, 0]; GVAR(tofOutput) = [0, 0, 0, 0];
GVAR(velocityOutput) = [0, 0, 0, 0]; GVAR(velocityOutput) = [0, 0, 0, 0];
GVAR(showMainPage) = true;
GVAR(showAddNewGun) = false;
GVAR(showGunList) = false;
GVAR(showRangeCard) = false;
GVAR(showRangeCardSetup) = false;
GVAR(showTargetRangeAssist) = false;
GVAR(showTargetSpeedAssist) = false;
GVAR(showTargetSpeedAssistTimer) = false;

View File

@ -15,9 +15,9 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
GVAR(temperature) set [GVAR(currentTarget), parseNumber(ctrlText 200)]; GVAR(temperature) = parseNumber(ctrlText 200);
GVAR(barometricPressure) set [GVAR(currentTarget), 0 max parseNumber(ctrlText 210)]; GVAR(barometricPressure) = 0 max parseNumber(ctrlText 210);
GVAR(relativeHumidity) set [GVAR(currentTarget), (0 max parseNumber(ctrlText 220) min 100) / 100]; GVAR(relativeHumidity) = (0 max parseNumber(ctrlText 220) min 100) / 100;
GVAR(windSpeed) set [GVAR(currentTarget), 0 max abs(parseNumber(ctrlText 300)) min 50]; GVAR(windSpeed) set [GVAR(currentTarget), 0 max abs(parseNumber(ctrlText 300)) min 50];
GVAR(windDirection) set [GVAR(currentTarget), 1 max Round(parseNumber(ctrlText 310)) min 12]; GVAR(windDirection) set [GVAR(currentTarget), 1 max Round(parseNumber(ctrlText 310)) min 12];
@ -44,20 +44,20 @@ _boreHeight = 0.1 max _boreHeight min 10;
_bulletMass = 1 max _bulletMass min 100; _bulletMass = 1 max _bulletMass min 100;
_muzzleVelocity = 100 max _muzzleVelocity min 1400; _muzzleVelocity = 100 max _muzzleVelocity min 1400;
(GVAR(workingMemory) select GVAR(currentTarget)) set [5, _boreHeight]; GVAR(workingMemory) set [5, _boreHeight];
(GVAR(workingMemory) select GVAR(currentTarget)) set [12, _bulletMass]; GVAR(workingMemory) set [12, _bulletMass];
if ((missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) && (missionNamespace getVariable [QEGVAR(advanced_ballistics,AdvancedAirDragEnabled), false])) then { if ((missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) && (missionNamespace getVariable [QEGVAR(advanced_ballistics,AdvancedAirDragEnabled), false])) then {
(GVAR(workingMemory) select GVAR(currentTarget)) set [15, _airFriction]; GVAR(workingMemory) set [15, _airFriction];
} else { } else {
(GVAR(workingMemory) select GVAR(currentTarget)) set [4, _airFriction]; GVAR(workingMemory) set [4, _airFriction];
}; };
(GVAR(workingMemory) select GVAR(currentTarget)) set [1, _muzzleVelocity]; GVAR(workingMemory) set [1, _muzzleVelocity];
private ["_elevationCur", "_elevationCur", "_elevationScopeStep", "_windageScopeStep"]; private ["_elevationCur", "_windageCur", "_elevationScopeStep", "_windageScopeStep"];
_elevationCur = parseNumber(ctrlText 402); _elevationCur = parseNumber(ctrlText 402);
_windageCur = parseNumber(ctrlText 412); _windageCur = parseNumber(ctrlText 412);
switch ((GVAR(currentScopeUnit) select GVAR(currentTarget))) do switch (GVAR(currentScopeUnit)) do
{ {
case 0: case 0:
{ {
@ -73,16 +73,16 @@ switch ((GVAR(currentScopeUnit) select GVAR(currentTarget))) do
case 3: case 3:
{ {
_elevationScopeStep = ((GVAR(workingMemory) select GVAR(currentTarget)) select 7); _elevationScopeStep = (GVAR(workingMemory) select 7);
_windageScopeStep = ((GVAR(workingMemory) select GVAR(currentTarget)) select 8); _windageScopeStep = (GVAR(workingMemory) select 8);
_elevationCur = _elevationCur * _elevationScopeStep; _elevationCur = _elevationCur * _elevationScopeStep;
_windageCur = _windageCur * _windageScopeStep; _windageCur = _windageCur * _windageScopeStep;
}; };
}; };
(GVAR(workingMemory) select GVAR(currentTarget)) set [10, _elevationCur]; GVAR(workingMemory) set [10, _elevationCur];
(GVAR(workingMemory) select GVAR(currentTarget)) set [11, _windageCur]; GVAR(workingMemory) set [11, _windageCur];
[] call FUNC(update_gun); [] call FUNC(update_gun);
[] call FUNC(update_atmosphere); [] call FUNC(update_atmosphere);

View File

@ -15,7 +15,7 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
(GVAR(workingMemory) select GVAR(currentTarget)) set [10, 0]; GVAR(workingMemory) set [10, 0];
(GVAR(workingMemory) select GVAR(currentTarget)) set [11, 0]; GVAR(workingMemory) set [11, 0];
[] call FUNC(update_result); [] call FUNC(update_result);

View File

@ -18,7 +18,7 @@
private ["_index"]; private ["_index"];
_index = 0 max (lbCurSel 6000); _index = 0 max (lbCurSel 6000);
GVAR(gunList) set [_index, +(GVAR(workingMemory) select GVAR(currentTarget))]; GVAR(gunList) set [_index, +GVAR(workingMemory)];
lbClear 6000; lbClear 6000;
{ {

View File

@ -15,4 +15,6 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
GVAR(showAddNewGun) = _this;
{ctrlShow [_x, _this]} forEach [11000, 11001, 11002, 11003]; {ctrlShow [_x, _this]} forEach [11000, 11001, 11002, 11003];

View File

@ -15,4 +15,12 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
GVAR(showGunList) = _this;
{ctrlShow [_x, _this]} forEach [6000, 6001, 6002, 6003, 6004, 6005, 6006, 6007]; {ctrlShow [_x, _this]} forEach [6000, 6001, 6002, 6003, 6004, 6005, 6006, 6007];
if (_this) then {
ctrlSetFocus (_dsp displayCtrl 6002);
lbSetCurSel [6000, GVAR(currentGun)];
};

View File

@ -15,5 +15,7 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
GVAR(showMainPage) = _this;
{ctrlShow [_x, _this]} forEach [10, 100, 11, 110, 12, 120, 13, 130, 14, 140, 20, 200, 21, 210, 22, 220, 30, 300, 31, 310, 32, 320, 33, 330, 34, 340, 40, 400, 401, 402, 403, 41, 410, 411, 412, 42, 420, {ctrlShow [_x, _this]} forEach [10, 100, 11, 110, 12, 120, 13, 130, 14, 140, 20, 200, 21, 210, 22, 220, 30, 300, 31, 310, 32, 320, 33, 330, 34, 340, 40, 400, 401, 402, 403, 41, 410, 411, 412, 42, 420,
500, 501, 502, 503, 600, 601, 602, 603, 1000, 2000, 3000, 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008]; 500, 501, 502, 503, 600, 601, 602, 603, 1000, 2000, 3000, 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008];

View File

@ -15,4 +15,6 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
GVAR(showRangeCard) = _this;
{ctrlShow [_x, _this]} forEach [5000, 5001, 5002, 5003, 5004, 5005, 5006, 5007]; {ctrlShow [_x, _this]} forEach [5000, 5001, 5002, 5003, 5004, 5005, 5006, 5007];

View File

@ -15,4 +15,14 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
GVAR(showRangeCardSetup) = _this;
{ctrlShow [_x, _this]} forEach [10000, 10001, 10002, 10003, 10004, 10005, 10006, 10007, 10008, 10009]; {ctrlShow [_x, _this]} forEach [10000, 10001, 10002, 10003, 10004, 10005, 10006, 10007, 10008, 10009];
if (_this) then {
ctrlSetFocus (_dsp displayCtrl 10006);
ctrlSetText [10003, Str(Round(GVAR(rangeCardStartRange)))];
ctrlSetText [10004, Str(Round(GVAR(rangeCardEndRange)))];
ctrlSetText [10005, Str(Round(GVAR(rangeCardIncrement)))];
};

View File

@ -15,4 +15,21 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
GVAR(showTargetRangeAssist) = _this;
{ctrlShow [_x, _this]} forEach [7000, 7001, 7002, 7003, 7004, 7005, 7006, 7007, 7008, 7009, 7010, 7011, 7012, 7013, 7014, 7015, 7016, 7017, 7018, 7019, 7020]; {ctrlShow [_x, _this]} forEach [7000, 7001, 7002, 7003, 7004, 7005, 7006, 7007, 7008, 7009, 7010, 7011, 7012, 7013, 7014, 7015, 7016, 7017, 7018, 7019, 7020];
if (_this) then {
ctrlSetFocus (_dsp displayCtrl 7018);
ctrlSetText [7012, Str(parseNumber(ctrlText 320))];
ctrlSetText [7013, Str(parseNumber(ctrlText 340))];
if (GVAR(currentUnit) != 2) then
{
ctrlSetText [7016, "Yards"];
} else
{
ctrlSetText [7016, "Meters"];
};
};

View File

@ -15,4 +15,28 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
GVAR(showTargetSpeedAssist) = _this;
{ctrlShow [_x, _this]} forEach [8000, 8001, 8002, 8003, 8004, 8005, 8006, 8007, 8008, 8009, 8010, 8011, 8012, 8013, 8014, 8015]; {ctrlShow [_x, _this]} forEach [8000, 8001, 8002, 8003, 8004, 8005, 8006, 8007, 8008, 8009, 8010, 8011, 8012, 8013, 8014, 8015];
if (_this) then {
ctrlSetFocus (_dsp displayCtrl 8012);
ctrlSetText [8004, Str(Round((GVAR(targetRange) select GVAR(currentTarget))))];
if (GVAR(currentUnit) != 2) then
{
ctrlSetText [8008, "Yards"];
} else
{
ctrlSetText [8008, "Meters"];
};
if (GVAR(currentUnit) != 1) then
{
ctrlSetText [8011, "m/s"];
} else
{
ctrlSetText [8011, "mph"];
};
};

View File

@ -15,4 +15,6 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
GVAR(showTargetSpeedAssistTimer) = _this;
{ctrlShow [_x, _this]} forEach [9000, 9001, 9002]; {ctrlShow [_x, _this]} forEach [9000, 9001, 9002];

View File

@ -15,8 +15,6 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
#define _dsp (uiNamespace getVariable "ATragMX_Display")
if !(ctrlVisible 9000) then { if !(ctrlVisible 9000) then {
false call FUNC(show_target_speed_assist); false call FUNC(show_target_speed_assist);

View File

@ -15,8 +15,6 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
#define _dsp (uiNamespace getVariable "ATragMX_Display")
if (ctrlVisible 6000) then if (ctrlVisible 6000) then
{ {
false call FUNC(show_gun_list); false call FUNC(show_gun_list);
@ -29,8 +27,4 @@ if (ctrlVisible 6000) then
{ {
false call FUNC(show_main_page); false call FUNC(show_main_page);
true call FUNC(show_gun_list); true call FUNC(show_gun_list);
ctrlSetFocus (_dsp displayCtrl 6002);
lbSetCurSel [6000, (GVAR(currentGun) select GVAR(currentTarget))];
}; };

View File

@ -15,8 +15,6 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
#define _dsp (uiNamespace getVariable "ATragMX_Display")
if (ctrlVisible 5006) then if (ctrlVisible 5006) then
{ {
false call FUNC(show_range_card); false call FUNC(show_range_card);

View File

@ -3,7 +3,7 @@
* Toggles the range card setup screen on/off * Toggles the range card setup screen on/off
* *
* Arguments: * Arguments:
* Nothing * Apply new range card settings <BOOL>
* *
* Return Value: * Return Value:
* Nothing * Nothing
@ -15,8 +15,6 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
#define _dsp (uiNamespace getVariable "ATragMX_Display")
if (ctrlVisible 10000) then if (ctrlVisible 10000) then
{ {
false call FUNC(show_range_card_setup); false call FUNC(show_range_card_setup);
@ -35,10 +33,4 @@ if (ctrlVisible 10000) then
{ {
false call FUNC(show_range_card); false call FUNC(show_range_card);
true call FUNC(show_range_card_setup); true call FUNC(show_range_card_setup);
ctrlSetFocus (_dsp displayCtrl 10006);
ctrlSetText [10003, Str(Round(GVAR(rangeCardStartRange)))];
ctrlSetText [10004, Str(Round(GVAR(rangeCardEndRange)))];
ctrlSetText [10005, Str(Round(GVAR(rangeCardIncrement)))];
}; };

View File

@ -15,8 +15,6 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
#define _dsp (uiNamespace getVariable "ATragMX_Display")
if (ctrlVisible 7000) then if (ctrlVisible 7000) then
{ {
false call FUNC(show_target_range_assist); false call FUNC(show_target_range_assist);
@ -31,17 +29,4 @@ if (ctrlVisible 7000) then
{ {
false call FUNC(show_main_page); false call FUNC(show_main_page);
true call FUNC(show_target_range_assist); true call FUNC(show_target_range_assist);
ctrlSetFocus (_dsp displayCtrl 7018);
ctrlSetText [7012, Str(parseNumber(ctrlText 320))];
ctrlSetText [7013, Str(parseNumber(ctrlText 340))];
if (GVAR(currentUnit) != 2) then
{
ctrlSetText [7016, "Yards"];
} else
{
ctrlSetText [7016, "Meters"];
};
}; };

View File

@ -15,8 +15,6 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
#define _dsp (uiNamespace getVariable "ATragMX_Display")
if (ctrlVisible 8000) then if (ctrlVisible 8000) then
{ {
false call FUNC(show_target_speed_assist); false call FUNC(show_target_speed_assist);
@ -31,24 +29,4 @@ if (ctrlVisible 8000) then
{ {
false call FUNC(show_main_page); false call FUNC(show_main_page);
true call FUNC(show_target_speed_assist); true call FUNC(show_target_speed_assist);
ctrlSetFocus (_dsp displayCtrl 8012);
ctrlSetText [8004, Str(Round((GVAR(targetRange) select GVAR(currentTarget))))];
if (GVAR(currentUnit) != 2) then
{
ctrlSetText [8008, "Yards"];
} else
{
ctrlSetText [8008, "Meters"];
};
if (GVAR(currentUnit) != 1) then
{
ctrlSetText [8011, "m/s"];
} else
{
ctrlSetText [8011, "mph"];
};
}; };

View File

@ -15,10 +15,10 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
ctrlSetText [200, Str(Round((GVAR(temperature) select GVAR(currentTarget)) * 10) / 10)]; ctrlSetText [200, Str(Round(GVAR(temperature) * 10) / 10)];
if (GVAR(currentUnit) == 1) then { if (GVAR(currentUnit) == 1) then {
ctrlSetText [210, Str(Round((GVAR(barometricPressure) select GVAR(currentTarget)) * 100) / 100)]; ctrlSetText [210, Str(Round(GVAR(barometricPressure) * 100) / 100)];
} else { } else {
ctrlSetText [210, Str(Round(GVAR(barometricPressure) select GVAR(currentTarget)))]; ctrlSetText [210, Str(Round(GVAR(barometricPressure)))];
}; };
ctrlSetText [220, Str(Round((GVAR(relativeHumidity) select GVAR(currentTarget)) * 100 * 10) / 10)]; ctrlSetText [220, Str(Round(GVAR(relativeHumidity) * 100 * 10) / 10)];

View File

@ -15,39 +15,39 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
ctrlSetText [1000, (GVAR(workingMemory) select GVAR(currentTarget)) select 0]; ctrlSetText [1000, GVAR(workingMemory) select 0];
if (GVAR(currentUnit) == 1) then if (GVAR(currentUnit) == 1) then
{ {
ctrlSetText [ 100, Str(Round(((GVAR(workingMemory) select GVAR(currentTarget)) select 5) / 2.54 * 100) / 100)]; ctrlSetText [ 100, Str(Round((GVAR(workingMemory) select 5) / 2.54 * 100) / 100)];
} else } else
{ {
ctrlSetText [ 100, Str(Round(((GVAR(workingMemory) select GVAR(currentTarget)) select 5) * 100) / 100)]; ctrlSetText [ 100, Str(Round((GVAR(workingMemory) select 5) * 100) / 100)];
}; };
if (GVAR(currentUnit) == 1) then if (GVAR(currentUnit) == 1) then
{ {
ctrlSetText [ 110, Str(Round(((GVAR(workingMemory) select GVAR(currentTarget)) select 12) * 15.4323584))]; ctrlSetText [ 110, Str(Round((GVAR(workingMemory) select 12) * 15.4323584))];
} else } else
{ {
ctrlSetText [ 110, Str(Round((GVAR(workingMemory) select GVAR(currentTarget)) select 12))]; ctrlSetText [ 110, Str(Round(GVAR(workingMemory) select 12))];
}; };
if ((missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) && (missionNamespace getVariable [QEGVAR(advanced_ballistics,AdvancedAirDragEnabled), false])) then { if ((missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) && (missionNamespace getVariable [QEGVAR(advanced_ballistics,AdvancedAirDragEnabled), false])) then {
ctrlSetText [ 120, Str(Round(((GVAR(workingMemory) select GVAR(currentTarget)) select 15) * 1000) / 1000)]; ctrlSetText [ 120, Str(Round((GVAR(workingMemory) select 15) * 1000) / 1000)];
} else { } else {
ctrlSetText [ 120, Str(Round(((GVAR(workingMemory) select GVAR(currentTarget)) select 4) * -1000 * 1000) / 1000)]; ctrlSetText [ 120, Str(Round((GVAR(workingMemory) select 4) * -1000 * 1000) / 1000)];
}; };
if (GVAR(currentUnit) == 1) then if (GVAR(currentUnit) == 1) then
{ {
ctrlSetText [130, Str(Round(((GVAR(workingMemory) select GVAR(currentTarget)) select 1) * 3.2808399))]; ctrlSetText [130, Str(Round((GVAR(workingMemory) select 1) * 3.2808399))];
} else } else
{ {
ctrlSetText [130, Str(Round((GVAR(workingMemory) select GVAR(currentTarget)) select 1))]; ctrlSetText [130, Str(Round(GVAR(workingMemory) select 1))];
}; };
if (GVAR(currentUnit) == 2) then if (GVAR(currentUnit) == 2) then
{ {
ctrlSetText [140, Str(Round((GVAR(workingMemory) select GVAR(currentTarget)) select 2))]; ctrlSetText [140, Str(Round(GVAR(workingMemory) select 2))];
} else } else
{ {
ctrlSetText [140, Str(Round(((GVAR(workingMemory) select GVAR(currentTarget)) select 2) * 1.0936133))]; ctrlSetText [140, Str(Round((GVAR(workingMemory) select 2) * 1.0936133))];
}; };
[] call FUNC(update_scope_unit); [] call FUNC(update_scope_unit);

View File

@ -15,7 +15,7 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
private ["_range", "_elevation", "_windage", "_lead", "_TOF", "_velocity", "_kineticEnergy", "_rangeOutput", "_elevationOutput", "_windageOutput", "_lastColumnOutput"]; private ["_range", "_elevation", "_windage", "_elevationScopeStep", "_windageScopeStep", "_lead", "_TOF", "_velocity", "_kineticEnergy", "_rangeOutput", "_elevationOutput", "_windageOutput", "_lastColumnOutput"];
_lastColumnOutput = ""; _lastColumnOutput = "";
ctrlSetText [5006, (GVAR(rangeCardLastColumns) select GVAR(rangeCardCurrentColumn))]; ctrlSetText [5006, (GVAR(rangeCardLastColumns) select GVAR(rangeCardCurrentColumn))];
@ -39,7 +39,7 @@ lnbClear 5007;
_velocity = _x select 5; _velocity = _x select 5;
_kineticEnergy = _x select 6; _kineticEnergy = _x select 6;
switch ((GVAR(currentScopeUnit) select GVAR(currentTarget))) do switch (GVAR(currentScopeUnit)) do
{ {
case 0: case 0:
{ {
@ -55,8 +55,8 @@ lnbClear 5007;
case 3: case 3:
{ {
_elevationScopeStep = ((GVAR(workingMemory) select GVAR(currentTarget)) select 7); _elevationScopeStep = (GVAR(workingMemory) select 7);
_windageScopeStep = ((GVAR(workingMemory) select GVAR(currentTarget)) select 8); _windageScopeStep = (GVAR(workingMemory) select 8);
_elevation = Round(_elevation / _elevationScopeStep); _elevation = Round(_elevation / _elevationScopeStep);
_windage = Round(_windage / _windageScopeStep); _windage = Round(_windage / _windageScopeStep);

View File

@ -15,7 +15,7 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
(GVAR(workingMemory) select GVAR(currentTarget)) set [10, (GVAR(elevationOutput) select GVAR(currentTarget))]; GVAR(workingMemory) set [10, (GVAR(elevationOutput) select GVAR(currentTarget))];
(GVAR(workingMemory) select GVAR(currentTarget)) set [11, (GVAR(windageOutput) select GVAR(currentTarget))]; GVAR(workingMemory) set [11, (GVAR(windageOutput) select GVAR(currentTarget))];
[] call FUNC(update_result); [] call FUNC(update_result);

View File

@ -19,15 +19,15 @@ private ["_elevationAbs", "_elevationRel", "_elevationCur", "_windageAbs", "_win
_elevationAbs = (GVAR(elevationOutput) select GVAR(currentTarget)); _elevationAbs = (GVAR(elevationOutput) select GVAR(currentTarget));
_windageAbs = (GVAR(windageOutput) select GVAR(currentTarget)); _windageAbs = (GVAR(windageOutput) select GVAR(currentTarget));
_elevationCur = (GVAR(workingMemory) select GVAR(currentTarget)) select 10; _elevationCur = GVAR(workingMemory) select 10;
_windageCur = (GVAR(workingMemory) select GVAR(currentTarget)) select 11; _windageCur = GVAR(workingMemory) select 11;
_elevationRel = _elevationAbs - _elevationCur; _elevationRel = _elevationAbs - _elevationCur;
_windageRel = _windageAbs - _windageCur; _windageRel = _windageAbs - _windageCur;
_lead = (GVAR(leadOutput) select GVAR(currentTarget)); _lead = (GVAR(leadOutput) select GVAR(currentTarget));
switch ((GVAR(currentScopeUnit) select GVAR(currentTarget))) do switch (GVAR(currentScopeUnit)) do
{ {
case 0: case 0:
{ {
@ -55,8 +55,8 @@ switch ((GVAR(currentScopeUnit) select GVAR(currentTarget))) do
case 3: case 3:
{ {
_elevationScopeStep = ((GVAR(workingMemory) select GVAR(currentTarget)) select 7); _elevationScopeStep = (GVAR(workingMemory) select 7);
_windageScopeStep = ((GVAR(workingMemory) select GVAR(currentTarget)) select 8); _windageScopeStep = (GVAR(workingMemory) select 8);
_elevationAbs = Round(_elevationAbs / _elevationScopeStep); _elevationAbs = Round(_elevationAbs / _elevationScopeStep);
_windageAbs = Round(_windageAbs / _windageScopeStep); _windageAbs = Round(_windageAbs / _windageScopeStep);

View File

@ -15,5 +15,5 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
ctrlSetText [2000, GVAR(scopeUnits) select (GVAR(currentScopeUnit) select GVAR(currentTarget))]; ctrlSetText [2000, GVAR(scopeUnits) select GVAR(currentScopeUnit)];
ctrlSetText [5000, GVAR(scopeUnits) select (GVAR(currentScopeUnit) select GVAR(currentTarget))]; ctrlSetText [5000, GVAR(scopeUnits) select GVAR(currentScopeUnit)];

View File

@ -15,8 +15,6 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
#define _dsp (uiNamespace getVariable "ATragMX_Display")
(_dsp displayCtrl 500) ctrlEnable true; (_dsp displayCtrl 500) ctrlEnable true;
(_dsp displayCtrl 501) ctrlEnable true; (_dsp displayCtrl 501) ctrlEnable true;
(_dsp displayCtrl 502) ctrlEnable true; (_dsp displayCtrl 502) ctrlEnable true;

View File

@ -15,8 +15,6 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
#define _dsp (uiNamespace getVariable "ATragMX_Display")
(_dsp displayCtrl 600) ctrlEnable true; (_dsp displayCtrl 600) ctrlEnable true;
(_dsp displayCtrl 601) ctrlEnable true; (_dsp displayCtrl 601) ctrlEnable true;
(_dsp displayCtrl 602) ctrlEnable true; (_dsp displayCtrl 602) ctrlEnable true;

View File

@ -16,16 +16,16 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_scopeBaseAngle"]; private ["_scopeBaseAngle"];
_scopeBaseAngle = ((GVAR(workingMemory) select GVAR(currentTarget)) select 3); _scopeBaseAngle = (GVAR(workingMemory) select 3);
private ["_bulletMass", "_boreHeight", "_airFriction", "_muzzleVelocity", "_bc", "_dragModel", "_atmosphereModel"]; private ["_bulletMass", "_boreHeight", "_airFriction", "_muzzleVelocity", "_bc", "_dragModel", "_atmosphereModel"];
_bulletMass = (GVAR(workingMemory) select GVAR(currentTarget)) select 12; _bulletMass = GVAR(workingMemory) select 12;
_boreHeight = (GVAR(workingMemory) select GVAR(currentTarget)) select 5; _boreHeight = GVAR(workingMemory) select 5;
_airFriction = (GVAR(workingMemory) select GVAR(currentTarget)) select 4; _airFriction = GVAR(workingMemory) select 4;
_muzzleVelocity = (GVAR(workingMemory) select GVAR(currentTarget)) select 1; _muzzleVelocity = GVAR(workingMemory) select 1;
_bc = (GVAR(workingMemory) select GVAR(currentTarget)) select 15; _bc = GVAR(workingMemory) select 15;
_dragModel = (GVAR(workingMemory) select GVAR(currentTarget)) select 16; _dragModel = GVAR(workingMemory) select 16;
_atmosphereModel = (GVAR(workingMemory) select GVAR(currentTarget)) select 17; _atmosphereModel = GVAR(workingMemory) select 17;
private ["_zeroRange"]; private ["_zeroRange"];
_zeroRange = Round(parseNumber(ctrlText 140)); _zeroRange = Round(parseNumber(ctrlText 140));
@ -34,14 +34,14 @@ if (GVAR(currentUnit) != 2) then
_zeroRange = _zeroRange / 1.0936133; _zeroRange = _zeroRange / 1.0936133;
}; };
if (_zeroRange < 10) exitWith { if (_zeroRange < 10) exitWith {
(GVAR(workingMemory) select GVAR(currentTarget)) set [2, _zeroRange]; GVAR(workingMemory) set [2, _zeroRange];
(GVAR(workingMemory) select GVAR(currentTarget)) set [3, 0]; GVAR(workingMemory) set [3, 0];
}; };
private ["_temperature", "_barometricPressure", "_relativeHumidity"]; private ["_temperature", "_barometricPressure", "_relativeHumidity"];
_temperature = (GVAR(temperature) select GVAR(currentTarget)); _temperature = GVAR(temperature);
_barometricPressure = (GVAR(barometricPressure) select GVAR(currentTarget)); _barometricPressure = GVAR(barometricPressure);
_relativeHumidity = (GVAR(relativeHumidity) select GVAR(currentTarget)); _relativeHumidity = GVAR(relativeHumidity);
if (GVAR(currentUnit) == 1) then if (GVAR(currentUnit) == 1) then
{ {
_temperature = (_temperature - 32) / 1.8; _temperature = (_temperature - 32) / 1.8;
@ -51,5 +51,5 @@ if (GVAR(currentUnit) == 1) then
private ["_result"]; private ["_result"];
_result = [_scopeBaseAngle, _bulletMass, _boreHeight, _airFriction, _muzzleVelocity, _temperature, _barometricPressure, _relativeHumidity, 1000, 0, 0, 0, 0, _zeroRange, _bc, _dragModel, _atmosphereModel, false] call FUNC(calculate_solution); _result = [_scopeBaseAngle, _bulletMass, _boreHeight, _airFriction, _muzzleVelocity, _temperature, _barometricPressure, _relativeHumidity, 1000, 0, 0, 0, 0, _zeroRange, _bc, _dragModel, _atmosphereModel, false] call FUNC(calculate_solution);
(GVAR(workingMemory) select GVAR(currentTarget)) set [2, _zeroRange]; GVAR(workingMemory) set [2, _zeroRange];
(GVAR(workingMemory) select GVAR(currentTarget)) set [3, _scopeBaseAngle + (_result select 0) / 60]; GVAR(workingMemory) set [3, _scopeBaseAngle + (_result select 0) / 60];

View File

@ -10,3 +10,5 @@
#endif #endif
#include "\z\ace\addons\main\script_macros.hpp" #include "\z\ace\addons\main\script_macros.hpp"
#define _dsp (uiNamespace getVariable "ATragMX_Display")

View File

@ -17,16 +17,19 @@
<Key ID="STR_ACE_ATragMX_OpenATragMXDialog"> <Key ID="STR_ACE_ATragMX_OpenATragMXDialog">
<English>Open ATragMX</English> <English>Open ATragMX</English>
<Polish>Otwórz ATragMX</Polish> <Polish>Otwórz ATragMX</Polish>
<Russian>Открыть ATragMX</Russian>
<Spanish>Abrir ATragMX</Spanish> <Spanish>Abrir ATragMX</Spanish>
</Key> </Key>
<Key ID="STR_ACE_ATragMX_Description"> <Key ID="STR_ACE_ATragMX_Description">
<English>Rugged PDA with ATragMX</English> <English>Rugged PDA with ATragMX</English>
<Polish>Przenośny PDA z kalkulatorem balistycznym ATragMX</Polish> <Polish>Przenośny PDA z kalkulatorem balistycznym ATragMX</Polish>
<Russian>Защищенный КПК с ATragMX</Russian>
<Spanish>PDA rugerizada con ATragMX</Spanish> <Spanish>PDA rugerizada con ATragMX</Spanish>
</Key> </Key>
<Key ID="STR_ACE_ATragMX_ATragMXDialogKey"> <Key ID="STR_ACE_ATragMX_ATragMXDialogKey">
<English>Open ATragMX</English> <English>Open ATragMX</English>
<Polish>Otwórz ATragMX</Polish> <Polish>Otwórz ATragMX</Polish>
<Russian>Открыть ATragMX</Russian>
<Spanish>Abrir ATragMX</Spanish> <Spanish>Abrir ATragMX</Spanish>
</Key> </Key>
</Package> </Package>

View File

@ -11,7 +11,7 @@
<Portuguese>Acoplar item &gt;&gt;</Portuguese> <Portuguese>Acoplar item &gt;&gt;</Portuguese>
<Italian>Attacca l'oggetto &gt;&gt;</Italian> <Italian>Attacca l'oggetto &gt;&gt;</Italian>
<Hungarian>Tárgy hozzácsatolása &gt;&gt;</Hungarian> <Hungarian>Tárgy hozzácsatolása &gt;&gt;</Hungarian>
<Russian>Добавить приспособления</Russian> <Russian>Прикрепить предмет</Russian>
</Key> </Key>
<Key ID="STR_ACE_Attach_Attach"> <Key ID="STR_ACE_Attach_Attach">
<English>Attach</English> <English>Attach</English>
@ -23,7 +23,7 @@
<Portuguese>Acoplar</Portuguese> <Portuguese>Acoplar</Portuguese>
<Italian>Attacca</Italian> <Italian>Attacca</Italian>
<Hungarian>Hozzácsatolás</Hungarian> <Hungarian>Hozzácsatolás</Hungarian>
<Russian>Присоединить</Russian> <Russian>Прикрепить</Russian>
</Key> </Key>
<Key ID="STR_ACE_Attach_Detach"> <Key ID="STR_ACE_Attach_Detach">
<English>Detach item</English> <English>Detach item</English>
@ -47,7 +47,7 @@
<Portuguese>Marcador IV Acoplado</Portuguese> <Portuguese>Marcador IV Acoplado</Portuguese>
<Italian>Strobo IR attaccata</Italian> <Italian>Strobo IR attaccata</Italian>
<Hungarian>Infravörös jeladó hozzácsatolva</Hungarian> <Hungarian>Infravörös jeladó hozzácsatolva</Hungarian>
<Russian>ИК-маяк присоединён</Russian> <Russian>ИК-маяк прикреплён</Russian>
</Key> </Key>
<Key ID="STR_ACE_Attach_IrStrobe_Detached"> <Key ID="STR_ACE_Attach_IrStrobe_Detached">
<English>IR Strobe Detached</English> <English>IR Strobe Detached</English>
@ -71,7 +71,7 @@
<Portuguese>Granada IV Acoplada</Portuguese> <Portuguese>Granada IV Acoplada</Portuguese>
<Italian>Granata IR attaccata</Italian> <Italian>Granata IR attaccata</Italian>
<Hungarian>Infravörös gránát hozzácsatolva</Hungarian> <Hungarian>Infravörös gránát hozzácsatolva</Hungarian>
<Russian>ИК-граната присоединена</Russian> <Russian>ИК-граната прикреплена</Russian>
</Key> </Key>
<Key ID="STR_ACE_Attach_IrGrenade_Detached"> <Key ID="STR_ACE_Attach_IrGrenade_Detached">
<English>IR Grenade Detached</English> <English>IR Grenade Detached</English>
@ -95,7 +95,7 @@
<Portuguese>Chemlight Acoplada</Portuguese> <Portuguese>Chemlight Acoplada</Portuguese>
<Italian>Chemlight attaccata</Italian> <Italian>Chemlight attaccata</Italian>
<Hungarian>Chemlight hozzácsatolva</Hungarian> <Hungarian>Chemlight hozzácsatolva</Hungarian>
<Russian>Химсвет присоединён</Russian> <Russian>Химсвет прикреплён</Russian>
</Key> </Key>
<Key ID="STR_ACE_Attach_Chemlight_Detached"> <Key ID="STR_ACE_Attach_Chemlight_Detached">
<English>Chemlight Detached</English> <English>Chemlight Detached</English>

View File

@ -3,8 +3,7 @@ class CfgAmmo {
class BulletCore; class BulletCore;
class BulletBase: BulletCore { class BulletBase: BulletCore {
// Default: 6 | More is good, but too much is bad (especially with wind deflection / advanced ballistics) timeToLive=6;
timeToLive = 10;
}; };
class B_20mm : BulletBase { class B_20mm : BulletBase {
@ -85,7 +84,7 @@ class CfgAmmo {
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_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_ballisticCoefficients[]={0.168};
ACE_velocityBoundaries[]={}; ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ASM"; ACE_standardAtmosphere="ICAO";
ACE_dragModel=7; ACE_dragModel=7;
ACE_muzzleVelocities[]={780, 880, 920}; ACE_muzzleVelocities[]={780, 880, 920};
ACE_barrelLengths[]={10, 16.3, 20}; ACE_barrelLengths[]={10, 16.3, 20};
@ -103,13 +102,13 @@ class CfgAmmo {
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_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_ballisticCoefficients[]={0.168};
ACE_velocityBoundaries[]={}; ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ASM"; ACE_standardAtmosphere="ICAO";
ACE_dragModel=7; ACE_dragModel=7;
ACE_muzzleVelocities[]={785, 883, 925}; ACE_muzzleVelocities[]={785, 883, 925};
ACE_barrelLengths[]={10, 16.3, 20}; ACE_barrelLengths[]={10, 16.3, 20};
}; };
class B_65x39_Caseless : BulletBase { class B_65x39_Caseless : BulletBase {
airFriction=-0.000772; airFriction=-0.000785;
typicalSpeed=800; typicalSpeed=800;
ACE_caliber=0.264; ACE_caliber=0.264;
ACE_bulletLength=1.295; ACE_bulletLength=1.295;
@ -142,13 +141,13 @@ class CfgAmmo {
ACE_velocityBoundaries[]={}; ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO"; ACE_standardAtmosphere="ICAO";
ACE_dragModel=7; ACE_dragModel=7;
ACE_muzzleVelocities[]={760, 790, 820, 830}; ACE_muzzleVelocities[]={730, 760, 790, 820, 830};
ACE_barrelLengths[]={16, 20, 24, 26}; ACE_barrelLengths[]={10, 16, 20, 24, 26};
}; };
class B_762x51_Ball : BulletBase { class B_762x51_Ball : BulletBase {
airFriction=-0.001035; airFriction=-0.001035;
typicalSpeed=833; typicalSpeed=833;
hit=14; hit=9;
ACE_caliber=0.308; ACE_caliber=0.308;
ACE_bulletLength=1.14; ACE_bulletLength=1.14;
ACE_bulletMass=146; ACE_bulletMass=146;
@ -173,15 +172,46 @@ class CfgAmmo {
ACE_bulletLength=1.24; ACE_bulletLength=1.24;
ACE_bulletMass=175; ACE_bulletMass=175;
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_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.505, 0.496, 0.485, 0.485, 0.485}; ACE_ballisticCoefficients[]={0.243};
ACE_velocityBoundaries[]={853, 549, 549, 549}; ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO"; ACE_standardAtmosphere="ICAO";
ACE_dragModel=1; ACE_dragModel=7;
ACE_muzzleVelocities[]={750, 780, 790, 794}; ACE_muzzleVelocities[]={750, 780, 790, 794};
ACE_barrelLengths[]={16, 20, 24, 26}; ACE_barrelLengths[]={16, 20, 24, 26};
}; };
class ACE_762x67_Ball_Mk248_Mod_0 : B_762x51_Ball class ACE_762x51_Ball_Mk319_Mod_0 : B_762x51_Ball {
{ airFriction=-0.00103;
caliber=0.85;
hit=14;
typicalSpeed=890;
ACE_caliber=0.308;
ACE_bulletLength=1.24;
ACE_bulletMass=130;
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};
};
class ACE_762x51_Ball_Subsonic : B_762x51_Ball {
airFriction=-0.000535;
caliber=0.5;
hit=6;
typicalSpeed=790;
ACE_caliber=0.308;
ACE_bulletLength=1.340;
ACE_bulletMass=200;
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};
};
class ACE_762x67_Ball_Mk248_Mod_0 : B_762x51_Ball {
airFriction=-0.000830; airFriction=-0.000830;
caliber=1.08; caliber=1.08;
hit=17; hit=17;
@ -197,8 +227,7 @@ class CfgAmmo {
ACE_muzzleVelocities[]={865, 900, 924}; ACE_muzzleVelocities[]={865, 900, 924};
ACE_barrelLengths[]={20, 24, 26}; ACE_barrelLengths[]={20, 24, 26};
}; };
class ACE_762x67_Ball_Mk248_Mod_1 : B_762x51_Ball class ACE_762x67_Ball_Mk248_Mod_1 : B_762x51_Ball {
{
airFriction=-0.000815; airFriction=-0.000815;
caliber=1.12; caliber=1.12;
hit=18; hit=18;
@ -214,8 +243,7 @@ class CfgAmmo {
ACE_muzzleVelocities[]={847, 867, 877}; ACE_muzzleVelocities[]={847, 867, 877};
ACE_barrelLengths[]={20, 24, 26}; ACE_barrelLengths[]={20, 24, 26};
}; };
class ACE_762x67_Ball_Berger_Hybrid_OTM : B_762x51_Ball class ACE_762x67_Ball_Berger_Hybrid_OTM : B_762x51_Ball {
{
airFriction=-0.00076; airFriction=-0.00076;
caliber=1.15; caliber=1.15;
hit=19; hit=19;
@ -231,23 +259,7 @@ class CfgAmmo {
ACE_muzzleVelocities[]={800, 853, 884}; ACE_muzzleVelocities[]={800, 853, 884};
ACE_barrelLengths[]={20, 24, 26}; ACE_barrelLengths[]={20, 24, 26};
}; };
class ACE_762x51_Ball_Subsonic : B_762x51_Ball { class B_762x54_Ball: B_762x51_Ball {
airFriction=-0.000535;
caliber=0.5;
hit=16;
typicalSpeed=790;
ACE_caliber=0.308;
ACE_bulletLength=1.340;
ACE_bulletMass=200;
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};
};
class B_762x54_Ball : BulletBase {
airFriction=-0.001023; airFriction=-0.001023;
typicalSpeed=820; typicalSpeed=820;
ACE_caliber=0.312; ACE_caliber=0.312;
@ -350,7 +362,7 @@ class CfgAmmo {
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_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_ballisticCoefficients[]={0.17};
ACE_velocityBoundaries[]={}; ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ASM"; ACE_standardAtmosphere="ICAO";
ACE_dragModel=1; ACE_dragModel=1;
ACE_muzzleVelocities[]={440, 460, 480}; ACE_muzzleVelocities[]={440, 460, 480};
ACE_barrelLengths[]={4, 5, 9}; ACE_barrelLengths[]={4, 5, 9};
@ -365,7 +377,7 @@ class CfgAmmo {
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_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_ballisticCoefficients[]={0.125};
ACE_velocityBoundaries[]={}; ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ASM"; ACE_standardAtmosphere="ICAO";
ACE_dragModel=1; ACE_dragModel=1;
ACE_muzzleVelocities[]={298, 330, 350}; ACE_muzzleVelocities[]={298, 330, 350};
ACE_barrelLengths[]={3.8, 5, 9}; ACE_barrelLengths[]={3.8, 5, 9};
@ -395,7 +407,7 @@ class CfgAmmo {
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_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_ballisticCoefficients[]={0.189};
ACE_velocityBoundaries[]={}; ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ASM"; ACE_standardAtmosphere="ICAO";
ACE_dragModel=1; ACE_dragModel=1;
ACE_muzzleVelocities[]={360, 400, 430}; ACE_muzzleVelocities[]={360, 400, 430};
ACE_barrelLengths[]={4, 4.61, 9}; ACE_barrelLengths[]={4, 4.61, 9};
@ -445,6 +457,7 @@ class CfgAmmo {
ACE_barrelLengths[]={20, 24.41, 26}; ACE_barrelLengths[]={20, 24.41, 26};
}; };
class B_408_Ball : BulletBase { class B_408_Ball : BulletBase {
timeToLive=10;
airFriction=-0.000395; airFriction=-0.000395;
typicalSpeed=910; typicalSpeed=910;
ACE_caliber=0.408; ACE_caliber=0.408;
@ -460,6 +473,7 @@ class CfgAmmo {
ACE_barrelLengths[]={29}; ACE_barrelLengths[]={29};
}; };
class ACE_106x83mm_Ball : B_408_Ball { class ACE_106x83mm_Ball : B_408_Ball {
timeToLive=10;
ACE_caliber=0.416; ACE_caliber=0.416;
ACE_bulletLength=2.089; ACE_bulletLength=2.089;
ACE_bulletMass=398; ACE_bulletMass=398;
@ -472,7 +486,8 @@ class CfgAmmo {
ACE_barrelLengths[]={29}; ACE_barrelLengths[]={29};
}; };
class B_338_Ball : BulletBase { class B_338_Ball : BulletBase {
airFriction=-0.00061 timeToLive=10;
airFriction=-0.000606;
typicalSpeed=915; typicalSpeed=915;
ACE_caliber=0.338; ACE_caliber=0.338;
ACE_bulletLength=1.558; ACE_bulletLength=1.558;
@ -500,10 +515,9 @@ class CfgAmmo {
ACE_barrelLengths[]={20, 24, 26}; ACE_barrelLengths[]={20, 24, 26};
}; };
class ACE_338_Ball : B_338_Ball { class ACE_338_Ball : B_338_Ball {
airFriction=-0.000526; timeToLive=10;
airFriction=-0.000535;
caliber=1.55; caliber=1.55;
deflecting=12;
hit=20;
typicalSpeed=826; typicalSpeed=826;
ACE_caliber=0.338; ACE_caliber=0.338;
ACE_bulletLength=1.70; ACE_bulletLength=1.70;
@ -516,6 +530,22 @@ class CfgAmmo {
ACE_muzzleVelocities[]={800, 820, 826, 830}; ACE_muzzleVelocities[]={800, 820, 826, 830};
ACE_barrelLengths[]={20, 24, 26.5, 28}; ACE_barrelLengths[]={20, 24, 26.5, 28};
}; };
class ACE_338_Ball_API526 : B_338_Ball {
timeToLive=10;
airFriction=-0.000673;
caliber=2.4;
typicalSpeed=826;
ACE_caliber=0.338;
ACE_bulletLength=1.535;
ACE_bulletMass=253;
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[]={880, 915, 925};
ACE_barrelLengths[]={20, 26, 28};
};
class B_127x54_Ball : BulletBase { class B_127x54_Ball : BulletBase {
airFriction=-0.00014; airFriction=-0.00014;
typicalSpeed=300; typicalSpeed=300;
@ -531,6 +561,7 @@ class CfgAmmo {
ACE_barrelLengths[]={17.2}; ACE_barrelLengths[]={17.2};
}; };
class B_127x99_Ball : BulletBase { class B_127x99_Ball : BulletBase {
timeToLive=10;
airFriction=-0.0006; airFriction=-0.0006;
typicalSpeed=853; typicalSpeed=853;
ACE_caliber=0.510; ACE_caliber=0.510;
@ -545,6 +576,9 @@ class CfgAmmo {
ACE_barrelLengths[]={29}; ACE_barrelLengths[]={29};
}; };
class ACE_127x99_Ball_AMAX : B_127x99_Ball { class ACE_127x99_Ball_AMAX : B_127x99_Ball {
timeToLive=10;
airFriction=-0.000374;
typicalSpeed=860;
ACE_caliber=0.510; ACE_caliber=0.510;
ACE_bulletLength=2.540; ACE_bulletLength=2.540;
ACE_bulletMass=750; ACE_bulletMass=750;
@ -557,6 +591,8 @@ class CfgAmmo {
ACE_barrelLengths[]={29}; ACE_barrelLengths[]={29};
}; };
class B_127x108_Ball : BulletBase { class B_127x108_Ball : BulletBase {
timeToLive=10;
airFriction=-0.00064;
typicalSpeed=820; typicalSpeed=820;
ACE_caliber=0.511; ACE_caliber=0.511;
ACE_bulletLength=2.520; ACE_bulletLength=2.520;

View File

@ -123,6 +123,15 @@ class CfgMagazines {
descriptionShort = "$STR_ACE_10Rnd_762x51_M118LR_Mag_Description"; descriptionShort = "$STR_ACE_10Rnd_762x51_M118LR_Mag_Description";
initSpeed = 780; initSpeed = 780;
}; };
class ACE_10Rnd_762x51_Mk319_Mod_0_Mag: 10Rnd_762x51_Mag {
author = "$STR_ACE_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";
initSpeed = 900;
};
class ACE_20Rnd_762x51_M118LR_Mag: 20Rnd_762x51_Mag { class ACE_20Rnd_762x51_M118LR_Mag: 20Rnd_762x51_Mag {
author = "$STR_ACE_Common_ACETeam"; author = "$STR_ACE_Common_ACETeam";
ammo = "ACE_762x51_Ball_M118LR"; ammo = "ACE_762x51_Ball_M118LR";
@ -131,6 +140,14 @@ class CfgMagazines {
descriptionShort = "$STR_ACE_20Rnd_762x51_M118LR_Mag_Description"; descriptionShort = "$STR_ACE_20Rnd_762x51_M118LR_Mag_Description";
initSpeed = 780; initSpeed = 780;
}; };
class ACE_20Rnd_762x51_Mk319_Mod_0_Mag: 20Rnd_762x51_Mag {
author = "$STR_ACE_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";
initSpeed = 900;
};
class ACE_20Rnd_762x67_Mk248_Mod_0_Mag: 20Rnd_762x51_Mag { class ACE_20Rnd_762x67_Mk248_Mod_0_Mag: 20Rnd_762x51_Mag {
author = "$STR_ACE_Common_ACETeam"; author = "$STR_ACE_Common_ACETeam";
ammo = "ACE_762x67_Ball_Mk248_Mod_0"; ammo = "ACE_762x67_Ball_Mk248_Mod_0";
@ -171,6 +188,33 @@ class CfgMagazines {
descriptionShort = "$STR_ACE_10Rnd_338_300gr_HPBT_Mag_Description"; descriptionShort = "$STR_ACE_10Rnd_338_300gr_HPBT_Mag_Description";
initSpeed = 800; initSpeed = 800;
}; };
class ACE_10Rnd_338_API526_Mag: 10Rnd_338_Mag {
author = "$STR_ACE_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";
initSpeed = 880;
};
class 5Rnd_127x108_Mag;
class ACE_5Rnd_127x99_Mag: 5Rnd_127x108_Mag {
author = "$STR_ACE_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";
initSpeed = 853;
};
class ACE_5Rnd_127x99_AMAX_Mag: 5Rnd_127x108_Mag {
author = "$STR_ACE_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";
initSpeed = 860;
};
class 30Rnd_9x21_Mag: CA_Magazine { class 30Rnd_9x21_Mag: CA_Magazine {
initSpeed = 450; initSpeed = 450;
@ -200,7 +244,7 @@ class CfgMagazines {
initSpeed = 250; initSpeed = 250;
}; };
class 30Rnd_45ACP_Mag_SMG_01_Tracer_Green: CA_Magazine { class 30Rnd_45ACP_Mag_SMG_01_Tracer_Green: 30Rnd_45ACP_Mag_SMG_01 {
initSpeed = 250; initSpeed = 250;
}; };

View File

@ -23,6 +23,10 @@ class CfgVehicles {
MACRO_ADDMAGAZINE(ACE_100Rnd_65x39_caseless_mag_Tracer_Dim,4); MACRO_ADDMAGAZINE(ACE_100Rnd_65x39_caseless_mag_Tracer_Dim,4);
MACRO_ADDMAGAZINE(ACE_200Rnd_65x39_cased_Box_Tracer_Dim,4); MACRO_ADDMAGAZINE(ACE_200Rnd_65x39_cased_Box_Tracer_Dim,4);
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Tracer_Dim,1); MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Tracer_Dim,1);
MACRO_ADDMAGAZINE(ACE_10Rnd_338_300gr_HPBT_Mag,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_338_API526_Mag,4);
MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_Mag,4);
MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_AMAX_Mag,4);
}; };
}; };
@ -31,16 +35,28 @@ class CfgVehicles {
MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4); MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_M118LR_Mag,4); MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_M118LR_Mag,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_M118LR_Mag,4); MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_M118LR_Mag,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_Mk319_Mod_0_Mag,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mk319_Mod_0_Mag,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4); MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_338_300gr_HPBT_Mag,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_338_API526_Mag,4);
MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_Mag,4);
MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_AMAX_Mag,4);
}; };
}; };
class Box_NATO_Support_F: NATO_Box_Base { class Box_NATO_Support_F: NATO_Box_Base {
class TransportMagazines { class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_M118LR_Mag,4); MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_M118LR_Mag,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_M118LR_Mag,6); MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_M118LR_Mag,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_Mk319_Mod_0_Mag,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mk319_Mod_0_Mag,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4); MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_SD,3); MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_SD,3);
MACRO_ADDMAGAZINE(ACE_10Rnd_338_300gr_HPBT_Mag,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_338_API526_Mag,4);
MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_Mag,4);
MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_AMAX_Mag,4);
}; };
}; };
@ -50,6 +66,8 @@ class CfgVehicles {
MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4); MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_M118LR_Mag,4); MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_M118LR_Mag,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_M118LR_Mag,4); MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_M118LR_Mag,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_Mk319_Mod_0_Mag,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mk319_Mod_0_Mag,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4); MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4);
}; };
}; };
@ -142,10 +160,18 @@ class CfgVehicles {
}; };
}; };
class ACE_Box_Misc: Box_NATO_Support_F { class ACE_Box_Ammo: NATO_Box_Base {
scope = 2;
accuracy = 1000;
displayName = "[ACE] Ammo Supply Crate";
// TODO: model = "...";
author = "$STR_ACE_Common_ACETeam";
class TransportMagazines { class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_SD,4); MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_SD,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_M118LR_Mag,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_M118LR_Mag,4); MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_M118LR_Mag,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_Mk319_Mod_0_Mag,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mk319_Mod_0_Mag,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4); MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x67_Mk248_Mod_0_Mag,4); MACRO_ADDMAGAZINE(ACE_20Rnd_762x67_Mk248_Mod_0_Mag,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x67_Mk248_Mod_1_Mag,4); MACRO_ADDMAGAZINE(ACE_20Rnd_762x67_Mk248_Mod_1_Mag,4);
@ -159,6 +185,10 @@ class CfgVehicles {
MACRO_ADDMAGAZINE(ACE_100Rnd_65x39_caseless_mag_Tracer_Dim,4); MACRO_ADDMAGAZINE(ACE_100Rnd_65x39_caseless_mag_Tracer_Dim,4);
MACRO_ADDMAGAZINE(ACE_200Rnd_65x39_cased_Box_Tracer_Dim,4); MACRO_ADDMAGAZINE(ACE_200Rnd_65x39_cased_Box_Tracer_Dim,4);
MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4); MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_338_300gr_HPBT_Mag,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_338_API526_Mag,4);
MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_Mag,4);
MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_AMAX_Mag,4);
}; };
}; };
}; };

View File

@ -422,7 +422,7 @@ class CfgWeapons {
ACE_barrelTwist=7; ACE_barrelTwist=7;
ACE_barrelLength=18.1; ACE_barrelLength=18.1;
}; };
class arifle_TRG21_GL_F: Tavor_base_F { class arifle_TRG21_GL_F: arifle_TRG21_F {
magazines[] = { magazines[] = {
"30Rnd_556x45_Stanag", "30Rnd_556x45_Stanag",
"30Rnd_556x45_Stanag_Tracer_Red", "30Rnd_556x45_Stanag_Tracer_Red",
@ -503,6 +503,7 @@ class CfgWeapons {
"20Rnd_762x51_Mag", "20Rnd_762x51_Mag",
"ACE_20Rnd_762x51_Mag_Tracer_Dim", "ACE_20Rnd_762x51_Mag_Tracer_Dim",
"ACE_20Rnd_762x51_M118LR_Mag", "ACE_20Rnd_762x51_M118LR_Mag",
"ACE_20Rnd_762x51_Mk319_Mod_0_Mag",
"ACE_20Rnd_762x51_Mag_SD" "ACE_20Rnd_762x51_Mag_SD"
}; };
initSpeed = -0.9724; initSpeed = -0.9724;
@ -522,14 +523,21 @@ class CfgWeapons {
ACE_barrelLength=29; ACE_barrelLength=29;
}; };
class srifle_GM6_F: GM6_base_F { class srifle_GM6_F: GM6_base_F {
magazines[] = {
"5Rnd_127x108_Mag",
"5Rnd_127x108_APDS_Mag",
"ACE_5Rnd_127x99_Mag",
"ACE_5Rnd_127x99_AMAX_Mag"
};
initSpeed = -1.0; initSpeed = -1.0;
ACE_barrelTwist=15; ACE_barrelTwist=15;
ACE_barrelLength=43.3; ACE_barrelLength=36.6;
}; };
class srifle_DMR_02_F: DMR_02_base_F { class srifle_DMR_02_F: DMR_02_base_F {
magazines[] = { magazines[] = {
"10Rnd_338_Mag", "10Rnd_338_Mag",
"ACE_10Rnd_338_300gr_HPBT_Mag", "ACE_10Rnd_338_300gr_HPBT_Mag",
"ACE_10Rnd_338_API526_Mag",
"ACE_20Rnd_762x67_Mk248_Mod_0_Mag", "ACE_20Rnd_762x67_Mk248_Mod_0_Mag",
"ACE_20Rnd_762x67_Mk248_Mod_1_Mag", "ACE_20Rnd_762x67_Mk248_Mod_1_Mag",
"ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag" "ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag"
@ -543,6 +551,7 @@ class CfgWeapons {
"20Rnd_762x51_Mag", "20Rnd_762x51_Mag",
"ACE_20Rnd_762x51_Mag_Tracer_Dim", "ACE_20Rnd_762x51_Mag_Tracer_Dim",
"ACE_20Rnd_762x51_M118LR_Mag", "ACE_20Rnd_762x51_M118LR_Mag",
"ACE_20Rnd_762x51_Mk319_Mod_0_Mag",
"ACE_20Rnd_762x51_Mag_SD" "ACE_20Rnd_762x51_Mag_SD"
}; };
initSpeed = -0.9843; initSpeed = -0.9843;
@ -564,6 +573,7 @@ class CfgWeapons {
"20Rnd_762x51_Mag", "20Rnd_762x51_Mag",
"ACE_20Rnd_762x51_Mag_Tracer_Dim", "ACE_20Rnd_762x51_Mag_Tracer_Dim",
"ACE_20Rnd_762x51_M118LR_Mag", "ACE_20Rnd_762x51_M118LR_Mag",
"ACE_20Rnd_762x51_Mk319_Mod_0_Mag",
"ACE_20Rnd_762x51_Mag_SD" "ACE_20Rnd_762x51_Mag_SD"
}; };
initSpeed = -0.9916; initSpeed = -0.9916;

View File

@ -438,31 +438,12 @@
<Italian>Calibro: 7.62x51 mm AP&lt;br /&gt;Munizioni: 20&lt;br /&gt;In uso su: Mk18 ABR</Italian> <Italian>Calibro: 7.62x51 mm AP&lt;br /&gt;Munizioni: 20&lt;br /&gt;In uso su: Mk18 ABR</Italian>
<Russian>Калибр: 7.62x51 мм дозвуковые&lt;br /&gt;Патронов: 20&lt;br /&gt;Применимы в: Mk18 ABR</Russian> <Russian>Калибр: 7.62x51 мм дозвуковые&lt;br /&gt;Патронов: 20&lt;br /&gt;Применимы в: Mk18 ABR</Russian>
</Key> </Key>
<!-- .338 Lapua Magnum -->
<Key ID="STR_ACE_10Rnd_338_Mag_APName">
<English>.338 LM 10Rnd AP Mag</English>
<German>.338 LM 10-Schuss-Magazin Hartkern</German>
<Polish>Magazynek .338 LM 10rd AP</Polish>
<Spanish>Cargador de 20 balas AP de .338 LM</Spanish>
</Key>
<Key ID="STR_ACE_10Rnd_338_Mag_APNameShort">
<English>.338 LM AP</English>
<German>.338 LM AP</German>
<Polish>.338 LM AP</Polish>
<Czech>.338 LM AP</Czech>
<Spanish>.338 LM AP</Spanish>
</Key>
<Key ID="STR_ACE_10Rnd_338_Mag_APDescription">
<English>Caliber: .338 Lapua Magnum AP&lt;br /&gt;Rounds: 10&lt;br /&gt;Used in: MAR-10</English>
<German>Kaliber: .338 Lapua Magnum Hartkern&lt;br /&gt;Schuss: 10&lt;br /&gt;Verwendet für: MAR-10</German>
<Polish>Kaliber: .338 Lapua Magnum AP&lt;br /&gt;Pociski: 10&lt;br /&gt;Używany w: MAR-10</Polish>
<Spanish>Calibre: .338 Lapua Magnum AP&lt;br /&gt;Balas: 10&lt;br /&gt;Se usa en: MAR-10</Spanish>
</Key>
<!-- .338 Norma Magnum --> <!-- .338 Norma Magnum -->
<Key ID="STR_ACE_130Rnd_338_Mag_TracerName"> <Key ID="STR_ACE_130Rnd_338_Mag_TracerName">
<English>.338 NM 130Rnd Tracer Belt</English> <English>.338 NM 130Rnd Tracer Belt</English>
<German>.338 NM 130-Schuss-Gurt Leuchtspur</German> <German>.338 NM 130-Schuss-Gurt Leuchtspur</German>
<Polish>Taśma .338 NM 130rd Smugacz</Polish> <Polish>Taśma .338 NM 130rd Smugacz</Polish>
<French>Bande .338 NM 130Cps Traçante</French>
<Spanish>Cinta de 130 balas trazadoras de .338 NM</Spanish> <Spanish>Cinta de 130 balas trazadoras de .338 NM</Spanish>
</Key> </Key>
<Key ID="STR_ACE_130Rnd_338_Mag_TracerNameShort"> <Key ID="STR_ACE_130Rnd_338_Mag_TracerNameShort">
@ -470,18 +451,21 @@
<German>.338 NM Leuchtspur</German> <German>.338 NM Leuchtspur</German>
<Polish>.338 NM Tracer</Polish> <Polish>.338 NM Tracer</Polish>
<Czech>.338 NM Svítící</Czech> <Czech>.338 NM Svítící</Czech>
<French>.338 NM Traçante</French>
<Spanish>.338 NM trazadora</Spanish> <Spanish>.338 NM trazadora</Spanish>
</Key> </Key>
<Key ID="STR_ACE_130Rnd_338_Mag_TracerDescription"> <Key ID="STR_ACE_130Rnd_338_Mag_TracerDescription">
<English>Caliber: .338 Norma Magnum Tracer&lt;br /&gt;Rounds: 130&lt;br /&gt;Used in: SPMG</English> <English>Caliber: .338 Norma Magnum Tracer&lt;br /&gt;Rounds: 130&lt;br /&gt;Used in: SPMG</English>
<German>Kaliber: .338 Norma Magnum Leuchtspur&lt;br /&gt;Schuss: 130&lt;br /&gt;Verwendet für: SPMG</German> <German>Kaliber: .338 Norma Magnum Leuchtspur&lt;br /&gt;Schuss: 130&lt;br /&gt;Verwendet für: SPMG</German>
<Polish>Kaliber: .338 Norma Magnum Smugacz&lt;br /&gt;Pociski: 130&lt;br /&gt;Używany w: SPMG</Polish> <Polish>Kaliber: .338 Norma Magnum Smugacz&lt;br /&gt;Pociski: 130&lt;br /&gt;Używany w: SPMG</Polish>
<French>Calibre: .338 Norma Magnum Traçante&lt;br /&gt;Cartouches: 130&lt;br /&gt;Utilisé dans: SPMG</French>
<Spanish>Calibre: .338 Norma Magnum trazadora&lt;br /&gt;Balas: 130&lt;br /&gt;Se usa en: SPMG</Spanish> <Spanish>Calibre: .338 Norma Magnum trazadora&lt;br /&gt;Balas: 130&lt;br /&gt;Se usa en: SPMG</Spanish>
</Key> </Key>
<Key ID="STR_ACE_130Rnd_338_Mag_Tracer_DimName"> <Key ID="STR_ACE_130Rnd_338_Mag_Tracer_DimName">
<English>.338 NM 130Rnd IR-DIM Belt</English> <English>.338 NM 130Rnd IR-DIM Belt</English>
<German>.338 NM 130-Schuss-Gurt Leuchtspur IR-DIM</German> <German>.338 NM 130-Schuss-Gurt Leuchtspur IR-DIM</German>
<Polish>Taśma .338 NM 130rd IR-DIM</Polish> <Polish>Taśma .338 NM 130rd IR-DIM</Polish>
<French>Bande .338 NM 130Cps IR-DIM</French>
<Spanish>Cinta de 130 balas IR-DIM de .338 NM</Spanish> <Spanish>Cinta de 130 balas IR-DIM de .338 NM</Spanish>
</Key> </Key>
<Key ID="STR_ACE_130Rnd_338_Mag_Tracer_DimNameShort"> <Key ID="STR_ACE_130Rnd_338_Mag_Tracer_DimNameShort">
@ -489,18 +473,21 @@
<German>.338 LM IR-DIM</German> <German>.338 LM IR-DIM</German>
<Polish>.338 NM IR-DIM</Polish> <Polish>.338 NM IR-DIM</Polish>
<Czech>.338 NM IR-DIM</Czech> <Czech>.338 NM IR-DIM</Czech>
<French>.338 NM IR-DIM</French>
<Spanish>.338 NM IR-DIM</Spanish> <Spanish>.338 NM IR-DIM</Spanish>
</Key> </Key>
<Key ID="STR_ACE_130Rnd_338_Mag_Tracer_DimDescription"> <Key ID="STR_ACE_130Rnd_338_Mag_Tracer_DimDescription">
<English>Caliber: .338 Norma Magnum Tracer IR-DIM&lt;br /&gt;Rounds: 130&lt;br /&gt;Used in: SPMG</English> <English>Caliber: .338 Norma Magnum Tracer IR-DIM&lt;br /&gt;Rounds: 130&lt;br /&gt;Used in: SPMG</English>
<German>Kaliber: .338 Norma Magnum Leuchtspur IR-DIM&lt;br /&gt;Schuss: 130&lt;br /&gt;Verwendet für: SPMG</German> <German>Kaliber: .338 Norma Magnum Leuchtspur IR-DIM&lt;br /&gt;Schuss: 130&lt;br /&gt;Verwendet für: SPMG</German>
<Polish>Kaliber: .338 Norma Magnum Smugacz IR-DIM&lt;br /&gt;Pociski: 130&lt;br /&gt;Używany w: SPMG</Polish> <Polish>Kaliber: .338 Norma Magnum Smugacz IR-DIM&lt;br /&gt;Pociski: 130&lt;br /&gt;Używany w: SPMG</Polish>
<French>Calibre: .338 Norma Magnum Traçante IR-DIM&lt;br /&gt;Cartouches: 130&lt;br /&gt;Utilisé dans: SPMG</French>
<Spanish>Calibre: .338 Norma Magnum trazadora IR-DIM&lt;br /&gt;Balas: 130&lt;br /&gt;Se usa en: SPMG</Spanish> <Spanish>Calibre: .338 Norma Magnum trazadora IR-DIM&lt;br /&gt;Balas: 130&lt;br /&gt;Se usa en: SPMG</Spanish>
</Key> </Key>
<Key ID="STR_ACE_130Rnd_338_Mag_APName"> <Key ID="STR_ACE_130Rnd_338_Mag_APName">
<English>.338 NM 130Rnd AP Belt</English> <English>.338 NM 130Rnd AP Belt</English>
<German>.338 NM 130-Schuss-Gurt Hartkern</German> <German>.338 NM 130-Schuss-Gurt Hartkern</German>
<Polish>Taśma .338 NM 130rd AP</Polish> <Polish>Taśma .338 NM 130rd AP</Polish>
<French>Bande .338 NM 130Cps AP</French>
<Spanish>Cinta de 130 balas AP de .338 NM</Spanish> <Spanish>Cinta de 130 balas AP de .338 NM</Spanish>
</Key> </Key>
<Key ID="STR_ACE_130Rnd_338_Mag_APNameShort"> <Key ID="STR_ACE_130Rnd_338_Mag_APNameShort">
@ -508,12 +495,14 @@
<German>.338 NM AP</German> <German>.338 NM AP</German>
<Polish>.338 NM AP</Polish> <Polish>.338 NM AP</Polish>
<Czech>.338 NM AP</Czech> <Czech>.338 NM AP</Czech>
<French>.338 NM AP</French>
<Spanish>.338 NM AP</Spanish> <Spanish>.338 NM AP</Spanish>
</Key> </Key>
<Key ID="STR_ACE_130Rnd_338_Mag_APDescription"> <Key ID="STR_ACE_130Rnd_338_Mag_APDescription">
<English>Caliber: .338 Norma Magnum AP&lt;br /&gt;Rounds: 130&lt;br /&gt;Used in: SPMG</English> <English>Caliber: .338 Norma Magnum AP&lt;br /&gt;Rounds: 130&lt;br /&gt;Used in: SPMG</English>
<German>Kaliber: .338 Norma Magnum Hartkern&lt;br /&gt;Schuss: 130&lt;br /&gt;Verwendet für: SPMG</German> <German>Kaliber: .338 Norma Magnum Hartkern&lt;br /&gt;Schuss: 130&lt;br /&gt;Verwendet für: SPMG</German>
<Polish>Kaliber: .338 Norma Magnum AP&lt;br /&gt;Pociski: 130&lt;br /&gt;Używane w: SPMG</Polish> <Polish>Kaliber: .338 Norma Magnum AP&lt;br /&gt;Pociski: 130&lt;br /&gt;Używane w: SPMG</Polish>
<French>Calibre: .338 Norma Magnum AP&lt;br /&gt;Cartouches: 130&lt;br /&gt;Utilisé dans: SPMG</French>
<Spanish>Calibre: .338 Norma Magnum AP&lt;br /&gt;Balas: 130&lt;br /&gt;Se usa en: SPMG</Spanish> <Spanish>Calibre: .338 Norma Magnum AP&lt;br /&gt;Balas: 130&lt;br /&gt;Se usa en: SPMG</Spanish>
</Key> </Key>
<!-- 9.3x64mm 10Rnd --> <!-- 9.3x64mm 10Rnd -->
@ -521,6 +510,7 @@
<English>9.3mm 10Rnd Tracer Mag</English> <English>9.3mm 10Rnd Tracer Mag</English>
<German>9,3mm 10-Schuss-Magazin Leuchtspur</German> <German>9,3mm 10-Schuss-Magazin Leuchtspur</German>
<Polish>Magazynek 9.3mm 10rd Smugacz</Polish> <Polish>Magazynek 9.3mm 10rd Smugacz</Polish>
<French>Chargeur 9.3mm 10Cps Traçante</French>
<Spanish>Cargador de 10 balas trazadoras de 9.3mm</Spanish> <Spanish>Cargador de 10 balas trazadoras de 9.3mm</Spanish>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_TracerNameShort"> <Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_TracerNameShort">
@ -528,18 +518,21 @@
<German>9,3mm Leuchtspur</German> <German>9,3mm Leuchtspur</German>
<Polish>9,3mm Smugacz</Polish> <Polish>9,3mm Smugacz</Polish>
<Czech>9.3mm Svítící</Czech> <Czech>9.3mm Svítící</Czech>
<French>9.3mm Traçante</French>
<Spanish>9.3mm trazadora</Spanish> <Spanish>9.3mm trazadora</Spanish>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_TracerDescription"> <Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_TracerDescription">
<English>Caliber: 9.3x64mm Tracer&lt;br /&gt;Rounds: 10&lt;br /&gt;Used in: Cyrus</English> <English>Caliber: 9.3x64mm Tracer&lt;br /&gt;Rounds: 10&lt;br /&gt;Used in: Cyrus</English>
<German>Kaliber: 9,3x64mm Leuchtspur&lt;br /&gt;Schuss: 10&lt;br /&gt;Verwendet für: Cyrus</German> <German>Kaliber: 9,3x64mm Leuchtspur&lt;br /&gt;Schuss: 10&lt;br /&gt;Verwendet für: Cyrus</German>
<Polish>Kaliber: 9,3x64 mm Smugacz&lt;br /&gt;Pociski: 10&lt;br /&gt;Używany w: Cyrus</Polish> <Polish>Kaliber: 9,3x64 mm Smugacz&lt;br /&gt;Pociski: 10&lt;br /&gt;Używany w: Cyrus</Polish>
<French>Calibre: 9.3x64mm Traçante&lt;br /&gt;Cartouches: 10&lt;br /&gt;Utilisé dans: Cyrus</French>
<Spanish>Calibre: 9.3x64mm trazadora&lt;br /&gt;Balas: 10&lt;br /&gt;Se usa en: Cyrus</Spanish> <Spanish>Calibre: 9.3x64mm trazadora&lt;br /&gt;Balas: 10&lt;br /&gt;Se usa en: Cyrus</Spanish>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_Tracer_DimName"> <Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_Tracer_DimName">
<English>9.3mm 10Rnd Tracer IR-DIM Mag</English> <English>9.3mm 10Rnd Tracer IR-DIM Mag</English>
<German>9,3mm 10-Schuss-Magazin Leuchtspur IR-DIM</German> <German>9,3mm 10-Schuss-Magazin Leuchtspur IR-DIM</German>
<Polish>Magazynek 9,3mm 10rd Smugacz IR-DIM</Polish> <Polish>Magazynek 9,3mm 10rd Smugacz IR-DIM</Polish>
<French>Chargeur 9.3mm 10Cps Traçante IR-DIM</French>
<Spanish>Cargador de 10 balas trazadoras IR-DIM de 9.3mm</Spanish> <Spanish>Cargador de 10 balas trazadoras IR-DIM de 9.3mm</Spanish>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_Tracer_DimNameShort"> <Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_Tracer_DimNameShort">
@ -547,18 +540,21 @@
<German>9,3mm IR-DIM</German> <German>9,3mm IR-DIM</German>
<Polish>9,3mm IR-DIM</Polish> <Polish>9,3mm IR-DIM</Polish>
<Czech>9.3mm IR-DIM</Czech> <Czech>9.3mm IR-DIM</Czech>
<French>9.3mm IR-DIM</French>
<Spanish>9.3mm IR-DIM</Spanish> <Spanish>9.3mm IR-DIM</Spanish>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_Tracer_DimDescription"> <Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_Tracer_DimDescription">
<English>Caliber: 9.3x64mm Tracer IR-DIM&lt;br /&gt;Rounds: 10&lt;br /&gt;Used in: Cyrus</English> <English>Caliber: 9.3x64mm Tracer IR-DIM&lt;br /&gt;Rounds: 10&lt;br /&gt;Used in: Cyrus</English>
<German>Kaliber: 9,3x64mm Leuchtspur IR-DIM&lt;br /&gt;Schuss: 10&lt;br /&gt;Verwendet für: Cyrus</German> <German>Kaliber: 9,3x64mm Leuchtspur IR-DIM&lt;br /&gt;Schuss: 10&lt;br /&gt;Verwendet für: Cyrus</German>
<Polish>Kaliber: 9,3x64 mm Smugacz IR-DIM&lt;br /&gt;Pociski: 10&lt;br /&gt;Używany w: Cyrus</Polish> <Polish>Kaliber: 9,3x64 mm Smugacz IR-DIM&lt;br /&gt;Pociski: 10&lt;br /&gt;Używany w: Cyrus</Polish>
<French>Calibre: 9.3x64mm Traçante IR-DIM&lt;br /&gt;Cartouches: 10&lt;br /&gt;Utilisé dans: Cyrus</French>
<Spanish>Calibre: 9.3x64mm trazadora IR-DIM&lt;br /&gt;Balas: 10&lt;br /&gt;Se usa en: Cyrus</Spanish> <Spanish>Calibre: 9.3x64mm trazadora IR-DIM&lt;br /&gt;Balas: 10&lt;br /&gt;Se usa en: Cyrus</Spanish>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_APName"> <Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_APName">
<English>9.3mm 10Rnd AP Mag</English> <English>9.3mm 10Rnd AP Mag</English>
<German>9,3mm 10-Schuss-Magazin Hartkern</German> <German>9,3mm 10-Schuss-Magazin Hartkern</German>
<Polish>Magazynek 9,3mm 10rd AP</Polish> <Polish>Magazynek 9,3mm 10rd AP</Polish>
<French>Chargeur 9.3mm 10Cps AP</French>
<Spanish>Cargador de 10 balas AP de 9.3mm</Spanish> <Spanish>Cargador de 10 balas AP de 9.3mm</Spanish>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_APNameShort"> <Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_APNameShort">
@ -566,12 +562,14 @@
<German>9,3mm AP</German> <German>9,3mm AP</German>
<Polish>9,3mm AP</Polish> <Polish>9,3mm AP</Polish>
<Czech>9.3mm AP</Czech> <Czech>9.3mm AP</Czech>
<French>9.3mm AP</French>
<Spanish>9.3mm AP</Spanish> <Spanish>9.3mm AP</Spanish>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_APDescription"> <Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_APDescription">
<English>Caliber: 9.3x64mm AP&lt;br /&gt;Rounds: 10&lt;br /&gt;Used in: Cyrus</English> <English>Caliber: 9.3x64mm AP&lt;br /&gt;Rounds: 10&lt;br /&gt;Used in: Cyrus</English>
<German>Kaliber: 9,3x64mm Hartkern&lt;br /&gt;Schuss: 10&lt;br /&gt;Verwendet für: Cyrus</German> <German>Kaliber: 9,3x64mm Hartkern&lt;br /&gt;Schuss: 10&lt;br /&gt;Verwendet für: Cyrus</German>
<Polish>Kaliber: 9,3x64 mm AP&lt;br /&gt;Pociski: 10&lt;br /&gt;Używany w: Cyrus</Polish> <Polish>Kaliber: 9,3x64 mm AP&lt;br /&gt;Pociski: 10&lt;br /&gt;Używany w: Cyrus</Polish>
<French>Calibre: 9.3x64mm AP&lt;br /&gt;Cartouches: 10&lt;br /&gt;Utilisé dans: Cyrus</French>
<Spanish>Calibre: 9.3x64mm AP&lt;br /&gt;Balas: 10&lt;br /&gt;Se usa en: Cyrus</Spanish> <Spanish>Calibre: 9.3x64mm AP&lt;br /&gt;Balas: 10&lt;br /&gt;Se usa en: Cyrus</Spanish>
</Key> </Key>
<!-- 9.3x64mm 150Rnd Belt--> <!-- 9.3x64mm 150Rnd Belt-->
@ -579,6 +577,7 @@
<English>9.3mm 150Rnd Tracer Belt</English> <English>9.3mm 150Rnd Tracer Belt</English>
<German>9,3mm 150-Schuss-Gurt Leuchtspur</German> <German>9,3mm 150-Schuss-Gurt Leuchtspur</German>
<Polish>Taśma 9,3mm 150rd Smugacz</Polish> <Polish>Taśma 9,3mm 150rd Smugacz</Polish>
<French>Bande 9.3mm 150Cps Traçante</French>
<Spanish>Cinta de 150 balas trazadoras de 9.3mm</Spanish> <Spanish>Cinta de 150 balas trazadoras de 9.3mm</Spanish>
</Key> </Key>
<Key ID="STR_ACE_150Rnd_93x64_Mag_TracerNameShort"> <Key ID="STR_ACE_150Rnd_93x64_Mag_TracerNameShort">
@ -586,18 +585,21 @@
<German>9,3mm Leuchtspur</German> <German>9,3mm Leuchtspur</German>
<Polish>9,3mm Smugacz</Polish> <Polish>9,3mm Smugacz</Polish>
<Czech>9.3mm Svítící</Czech> <Czech>9.3mm Svítící</Czech>
<French>9.3mm Traçante</French>
<Spanish>9.3mm trazadora</Spanish> <Spanish>9.3mm trazadora</Spanish>
</Key> </Key>
<Key ID="STR_ACE_150Rnd_93x64_Mag_TracerDescription"> <Key ID="STR_ACE_150Rnd_93x64_Mag_TracerDescription">
<English>Caliber: 9.3x64mm Tracer&lt;br /&gt;Rounds: 150&lt;br /&gt;Used in: Navid</English> <English>Caliber: 9.3x64mm Tracer&lt;br /&gt;Rounds: 150&lt;br /&gt;Used in: Navid</English>
<German>Kaliber: 9,3x64mm Leuchtspur&lt;br /&gt;Schuss: 150&lt;br /&gt;Verwendet für: Navid</German> <German>Kaliber: 9,3x64mm Leuchtspur&lt;br /&gt;Schuss: 150&lt;br /&gt;Verwendet für: Navid</German>
<Polish>Kaliber: 9,3x64 mm Smugacz&lt;br /&gt;Pociski: 150&lt;br /&gt;Używane w: Navid</Polish> <Polish>Kaliber: 9,3x64 mm Smugacz&lt;br /&gt;Pociski: 150&lt;br /&gt;Używane w: Navid</Polish>
<French>Calibre: 9.3x64mm Traçante&lt;br /&gt;Cartouches: 150&lt;br /&gt;Utilisé dans: Navid</French>
<Spanish>Calibre: 9.3x64mm trazadora&lt;br /&gt;Balas: 150&lt;br /&gt;Se usa en: Navid</Spanish> <Spanish>Calibre: 9.3x64mm trazadora&lt;br /&gt;Balas: 150&lt;br /&gt;Se usa en: Navid</Spanish>
</Key> </Key>
<Key ID="STR_ACE_150Rnd_93x64_Mag_Tracer_DimName"> <Key ID="STR_ACE_150Rnd_93x64_Mag_Tracer_DimName">
<English>9.3mm 150Rnd Tracer IR-DIM Belt</English> <English>9.3mm 150Rnd Tracer IR-DIM Belt</English>
<German>9,3mm 150-Schuss-Gurt Leuchtspur IR-DIM</German> <German>9,3mm 150-Schuss-Gurt Leuchtspur IR-DIM</German>
<Polish>Taśma 9,3mm 150rd Smugacz IR-DIM</Polish> <Polish>Taśma 9,3mm 150rd Smugacz IR-DIM</Polish>
<French>Bande 9.3mm 150Cps Traçante IR-DIM</French>
<Spanish>Cinta de 150 balas trazadoras IR-DIM de 9.3mm</Spanish> <Spanish>Cinta de 150 balas trazadoras IR-DIM de 9.3mm</Spanish>
</Key> </Key>
<Key ID="STR_ACE_150Rnd_93x64_Mag_Tracer_DimNameShort"> <Key ID="STR_ACE_150Rnd_93x64_Mag_Tracer_DimNameShort">
@ -605,18 +607,21 @@
<German>9,3mm IR-DIM</German> <German>9,3mm IR-DIM</German>
<Polish>9,3mm IR-DIM</Polish> <Polish>9,3mm IR-DIM</Polish>
<Czech>9.3mm IR-DIM</Czech> <Czech>9.3mm IR-DIM</Czech>
<French>9.3mm IR-DIM</French>
<Spanish>9.3mm IR-DIM</Spanish> <Spanish>9.3mm IR-DIM</Spanish>
</Key> </Key>
<Key ID="STR_ACE_150Rnd_93x64_Mag_Tracer_DimDescription"> <Key ID="STR_ACE_150Rnd_93x64_Mag_Tracer_DimDescription">
<English>Caliber: 9.3x64mm Tracer IR-DIM&lt;br /&gt;Rounds: 150&lt;br /&gt;Used in: Navid</English> <English>Caliber: 9.3x64mm Tracer IR-DIM&lt;br /&gt;Rounds: 150&lt;br /&gt;Used in: Navid</English>
<German>Kaliber: 9,3x64mm Leuchtspur IR-DIM&lt;br /&gt;Schuss: 150&lt;br /&gt;Verwendet für: Navid</German> <German>Kaliber: 9,3x64mm Leuchtspur IR-DIM&lt;br /&gt;Schuss: 150&lt;br /&gt;Verwendet für: Navid</German>
<Polish>Kaliber: 9,3x64 mm Smugacz IR-DIM&lt;br /&gt;Pociski: 150&lt;br /&gt;Używane w: Navid</Polish> <Polish>Kaliber: 9,3x64 mm Smugacz IR-DIM&lt;br /&gt;Pociski: 150&lt;br /&gt;Używane w: Navid</Polish>
<French>Calibre: 9.3x64mm Traçante IR-DIM&lt;br /&gt;Cartouches: 150&lt;br /&gt;Utilisé dans: Navid</French>
<Spanish>Calibre: 9.3x64mm trazadora IR-DIM&lt;br /&gt;Balas: 150&lt;br /&gt;Se usa en: Navid</Spanish> <Spanish>Calibre: 9.3x64mm trazadora IR-DIM&lt;br /&gt;Balas: 150&lt;br /&gt;Se usa en: Navid</Spanish>
</Key> </Key>
<Key ID="STR_ACE_150Rnd_93x64_Mag_APName"> <Key ID="STR_ACE_150Rnd_93x64_Mag_APName">
<English>9.3mm 150Rnd AP Belt</English> <English>9.3mm 150Rnd AP Belt</English>
<German>9,3mm 150-Schuss-Gurt Hartkern</German> <German>9,3mm 150-Schuss-Gurt Hartkern</German>
<Polish>Taśma 9,3mm 150rd AP</Polish> <Polish>Taśma 9,3mm 150rd AP</Polish>
<French>Bande 9.3mm 150Cps AP</French>
<Spanish>Cinta de 150 balas AP de 9.3mm</Spanish> <Spanish>Cinta de 150 balas AP de 9.3mm</Spanish>
</Key> </Key>
<Key ID="STR_ACE_150Rnd_93x64_Mag_APNameShort"> <Key ID="STR_ACE_150Rnd_93x64_Mag_APNameShort">
@ -624,217 +629,327 @@
<German>9,3mm AP</German> <German>9,3mm AP</German>
<Polish>9,3mm AP</Polish> <Polish>9,3mm AP</Polish>
<Czech>9.3mm AP</Czech> <Czech>9.3mm AP</Czech>
<French>9.3mm AP</French>
<Spanish>9.3mm AP</Spanish> <Spanish>9.3mm AP</Spanish>
</Key> </Key>
<Key ID="STR_ACE_150Rnd_93x64_Mag_APDescription"> <Key ID="STR_ACE_150Rnd_93x64_Mag_APDescription">
<English>Caliber: 9.3x64mm AP&lt;br /&gt;Rounds: 150&lt;br /&gt;Used in: Navid</English> <English>Caliber: 9.3x64mm AP&lt;br /&gt;Rounds: 150&lt;br /&gt;Used in: Navid</English>
<German>Kaliber: 9,3x64mm Hartkern&lt;br /&gt;Schuss: 150&lt;br /&gt;Verwendet für: Navid</German> <German>Kaliber: 9,3x64mm Hartkern&lt;br /&gt;Schuss: 150&lt;br /&gt;Verwendet für: Navid</German>
<Polish>Kaliber: 9,3x64 mm AP&lt;br /&gt;Pociski: 150&lt;br /&gt;Używane w: Navid</Polish> <Polish>Kaliber: 9,3x64 mm AP&lt;br /&gt;Pociski: 150&lt;br /&gt;Używane w: Navid</Polish>
<French>Calibre: 9.3x64mm AP&lt;br /&gt;Cartouches: 150&lt;br /&gt;Utilisé dans: Navid</French>
<Spanish>Calibre: 9.3x64mm AP&lt;br /&gt;Balas: 150&lt;br /&gt;Se usa en: Navid</Spanish> <Spanish>Calibre: 9.3x64mm AP&lt;br /&gt;Balas: 150&lt;br /&gt;Se usa en: Navid</Spanish>
</Key> </Key>
<Key ID="STR_ACE_16Rnd_9x19_mag_Name"> <Key ID="STR_ACE_16Rnd_9x19_mag_Name">
<English>9x19mm 16Rnd Mag</English> <English>9x19mm 16Rnd Mag</English>
<Polish>Magazynek 9x19mm 16rd</Polish> <Polish>Magazynek 9x19mm 16rd</Polish>
<French>Chargeur 9x19mm 16Cps</French>
<Spanish>Cargador de 16 balas de 9x19mm</Spanish> <Spanish>Cargador de 16 balas de 9x19mm</Spanish>
</Key> </Key>
<Key ID="STR_ACE_16Rnd_9x19_mag_NameShort"> <Key ID="STR_ACE_16Rnd_9x19_mag_NameShort">
<English>9x19mm</English> <English>9x19mm</English>
<Polish>9x19mm</Polish> <Polish>9x19mm</Polish>
<French>9x19mm</French>
<Spanish>9x19mm</Spanish> <Spanish>9x19mm</Spanish>
</Key> </Key>
<Key ID="STR_ACE_16Rnd_9x19_mag_Description"> <Key ID="STR_ACE_16Rnd_9x19_mag_Description">
<English>9x19mm 16Rnd Mag</English> <English>9x19mm 30Rnd Mag</English>
<Polish>Magazynek 9x19mm 16rd</Polish> <Polish>Magazynek 9x19mm 16rd</Polish>
<French>9x19mm 30Cps</French>
<Spanish>Cargador de 16 balas de 9x19mm</Spanish> <Spanish>Cargador de 16 balas de 9x19mm</Spanish>
</Key> </Key>
<Key ID="STR_ACE_30Rnd_9x19_mag_Name"> <Key ID="STR_ACE_30Rnd_9x19_mag_Name">
<English>9x19mm 30Rnd Mag</English> <English>9x19mm 30Rnd Mag</English>
<Polish>Magazynek 9x19mm 30rd</Polish> <Polish>Magazynek 9x19mm 30rd</Polish>
<French>9x19mm 30Cps</French>
<Spanish>Cargador de 30 balas de 9x19mm</Spanish> <Spanish>Cargador de 30 balas de 9x19mm</Spanish>
</Key> </Key>
<Key ID="STR_ACE_30Rnd_9x19_mag_NameShort"> <Key ID="STR_ACE_30Rnd_9x19_mag_NameShort">
<English>9x19mm</English> <English>9x19mm</English>
<Polish>9x19mm</Polish> <Polish>9x19mm</Polish>
<French>9x19mm</French>
<Spanish>9x19mm</Spanish> <Spanish>9x19mm</Spanish>
</Key> </Key>
<Key ID="STR_ACE_30Rnd_9x19_mag_Description"> <Key ID="STR_ACE_30Rnd_9x19_mag_Description">
<English>9x19mm 30Rnd Mag</English> <English>9x19mm 30Rnd Mag</English>
<Polish>Magazynek 9x19mm 30rd</Polish> <Polish>Magazynek 9x19mm 30rd</Polish>
<French>9x19mm 30Cps</French>
<Spanish>Cargador de 30 balas de 9x19mm</Spanish> <Spanish>Cargador de 30 balas de 9x19mm</Spanish>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_762x54_Tracer_mag_Name"> <Key ID="STR_ACE_10Rnd_762x54_Tracer_mag_Name">
<English>7.62x54mm 10Rnd Tracer IR-DIM Mag</English> <English>7.62x54mm 10Rnd Tracer IR-DIM Mag</English>
<Polish>Magazynek 7,62x54 mm 10rd Smugacz IR-DIM</Polish> <Polish>Magazynek 7,62x54 mm 10rd Smugacz IR-DIM</Polish>
<French>Chargeur 7.62x54mm 10Rnd Traçante IR-DIM</French>
<Spanish>Cargador de 10 balas trazadoras IR-DIM de 7.62x54mm</Spanish> <Spanish>Cargador de 10 balas trazadoras IR-DIM de 7.62x54mm</Spanish>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_762x54_Tracer_mag_NameShort"> <Key ID="STR_ACE_10Rnd_762x54_Tracer_mag_NameShort">
<English>7.62mm IR-DIM</English> <English>7.62mm IR-DIM</English>
<Polish>7,62mm IR-DIM</Polish> <Polish>7,62mm IR-DIM</Polish>
<French>7.62mm IR-DIM</French>
<Spanish>7.62mm IR-DIM</Spanish> <Spanish>7.62mm IR-DIM</Spanish>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_762x54_Tracer_mag_Description"> <Key ID="STR_ACE_10Rnd_762x54_Tracer_mag_Description">
<English>7.62x54mm 10Rnd Tracer IR-DIM Mag</English> <English>7.62x54mm 10Rnd Tracer IR-DIM Mag</English>
<Polish>Magazynek 7,62x54 mm 10rd Smugacz IR-DIM</Polish> <Polish>Magazynek 7,62x54 mm 10rd Smugacz IR-DIM</Polish>
<French>Chargeur 7.62x54mm 10Cps Traçante IR-DIM</French>
<Spanish>Cargador de 10 balas trazadoras IR-DIM de 7.62x54mm</Spanish> <Spanish>Cargador de 10 balas trazadoras IR-DIM de 7.62x54mm</Spanish>
</Key> </Key>
<Key ID="STR_ACE_100Rnd_65x39_caseless_mag_Tracer_DimName"> <Key ID="STR_ACE_100Rnd_65x39_caseless_mag_Tracer_DimName">
<English>6.5mm 100Rnd Tracer IR-DIM Mag</English> <English>6.5mm 100Rnd Tracer IR-DIM Mag</English>
<Polish>Magazynek 6,5mm 100rd Smugacz IR-DIM</Polish> <Polish>Magazynek 6,5mm 100rd Smugacz IR-DIM</Polish>
<French>Chargeur 6.5mm 100Rnd Traçante IR-DIM</French>
<Spanish>Cargador de 100 balas trazadoras IR-DIM de 6.5mm</Spanish> <Spanish>Cargador de 100 balas trazadoras IR-DIM de 6.5mm</Spanish>
</Key> </Key>
<Key ID="STR_ACE_100Rnd_65x39_caseless_mag_Tracer_DimNameShort"> <Key ID="STR_ACE_100Rnd_65x39_caseless_mag_Tracer_DimNameShort">
<English>6.5mm IR-DIM</English> <English>6.5mm IR-DIM</English>
<Polish>6,5mm IR-DIM</Polish> <Polish>6,5mm IR-DIM</Polish>
<French>6.5mm IR-DIM</French>
<Spanish>6.5mm IR-DIM</Spanish> <Spanish>6.5mm IR-DIM</Spanish>
</Key> </Key>
<Key ID="STR_ACE_100Rnd_65x39_caseless_mag_Tracer_DimDescription"> <Key ID="STR_ACE_100Rnd_65x39_caseless_mag_Tracer_DimDescription">
<English>6.5mm 100Rnd Tracer IR-DIM Mag</English> <English>6.5mm 100Rnd Tracer IR-DIM Mag</English>
<Polish>Magazynek 6,5mm 100rd Smugacz IR-DIM</Polish> <Polish>Magazynek 6,5mm 100rd Smugacz IR-DIM</Polish>
<French>Chargeur 6.5mm 100Rnd Traçante IR-DIM</French>
<Spanish>Cargador de 100 balas trazadoras IR-DIM de 6.5mm</Spanish> <Spanish>Cargador de 100 balas trazadoras IR-DIM de 6.5mm</Spanish>
</Key> </Key>
<Key ID="STR_ACE_200Rnd_65x39_cased_Box_Tracer_DimName"> <Key ID="STR_ACE_200Rnd_65x39_cased_Box_Tracer_DimName">
<English>6.5mm 200Rnd Tracer IR-DIM Belt</English> <English>6.5mm 200Rnd Tracer IR-DIM Belt</English>
<Polish>Magazynek 6,5mm 200rd Smugacz IR-DIM</Polish> <Polish>Magazynek 6,5mm 200rd Smugacz IR-DIM</Polish>
<French>Bande 6.5mm 200Rnd Traçante IR-DIM</French>
<Spanish>Cinta de 200 balas trazadoras IR-DIM de 6.5mm</Spanish> <Spanish>Cinta de 200 balas trazadoras IR-DIM de 6.5mm</Spanish>
</Key> </Key>
<Key ID="STR_ACE_200Rnd_65x39_cased_Box_Tracer_DimNameShort"> <Key ID="STR_ACE_200Rnd_65x39_cased_Box_Tracer_DimNameShort">
<English>6.5mm IR-DIM</English> <English>6.5mm IR-DIM</English>
<Polish>6,5mm IR-DIM</Polish> <Polish>6,5mm IR-DIM</Polish>
<French>6.5mm IR-DIM</French>
<Spanish>6.5mm IR-DIM</Spanish> <Spanish>6.5mm IR-DIM</Spanish>
</Key> </Key>
<Key ID="STR_ACE_200Rnd_65x39_cased_Box_Tracer_DimDescription"> <Key ID="STR_ACE_200Rnd_65x39_cased_Box_Tracer_DimDescription">
<English>6.5mm 200Rnd Tracer IR-DIM Belt</English> <English>6.5mm 200Rnd Tracer IR-DIM Belt</English>
<Polish>Magazynek 6,5mm 200rd Smugacz IR-DIM</Polish> <Polish>Magazynek 6,5mm 200rd Smugacz IR-DIM</Polish>
<French>Bande 6.5mm 200Cps Traçante IR-DIM</French>
<Spanish>Cinta de 200 balas trazadoras IR-DIM de 6.5mm</Spanish> <Spanish>Cinta de 200 balas trazadoras IR-DIM de 6.5mm</Spanish>
</Key> </Key>
<Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk262_mag_Name"> <Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk262_mag_Name">
<English>5.56mm 30Rnd Mag (Mk262)</English> <English>5.56mm 30Rnd Mag (Mk262)</English>
<Polish>Magazynek 5,56mm 30rd Mk262</Polish> <Polish>Magazynek 5,56mm 30rd Mk262</Polish>
<French>5.56mm 30Cps (Mk262)</French>
<Spanish>Cargador de 30 balas de 5.56mm (Mk262)</Spanish> <Spanish>Cargador de 30 balas de 5.56mm (Mk262)</Spanish>
</Key> </Key>
<Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk262_mag_NameShort"> <Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk262_mag_NameShort">
<English>5.56mm (Mk262)</English> <English>5.56mm Mk262</English>
<Polish>5,56mm (Mk262)</Polish> <Polish>5,56mm Mk262</Polish>
<French>5.56mm Mk262</French>
<Spanish>5.56mm (Mk262)</Spanish> <Spanish>5.56mm (Mk262)</Spanish>
</Key> </Key>
<Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk262_mag_Description"> <Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk262_mag_Description">
<English>Caliber: 5.56x45 mm NATO (Mk262)&lt;br /&gt;Rounds: 30</English> <English>Caliber: 5.56x45 mm NATO (Mk262)&lt;br /&gt;Rounds: 30</English>
<Polish>Kaliber: 5,56x45 mm NATO (Mk262)&lt;br /&gt;Pociski: 30</Polish> <Polish>Kaliber: 5,56x45 mm NATO (Mk262)&lt;br /&gt;Pociski: 30</Polish>
<French>Calibre: 5.56x45 mm NATO (Mk262)&lt;br /&gt;Cartouches: 30</French>
<Spanish>Calibre: 5.56x45 mm NATO (Mk262)&lt;br /&gt;Balas: 30</Spanish> <Spanish>Calibre: 5.56x45 mm NATO (Mk262)&lt;br /&gt;Balas: 30</Spanish>
</Key> </Key>
<Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_Name"> <Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_Name">
<English>5.56mm 30Rnd Mag (Mk318)</English> <English>5.56mm 30Rnd Mag (Mk318)</English>
<Polish>Magazynek 5,56mm 30rd Mk318</Polish> <Polish>Magazynek 5,56mm 30rd Mk318</Polish>
<French>5.56mm 30Cps (Mk318)</French>
<Spanish>Cargador de 30 balas de 5.56mm (Mk318)</Spanish> <Spanish>Cargador de 30 balas de 5.56mm (Mk318)</Spanish>
</Key> </Key>
<Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_NameShort"> <Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_NameShort">
<English>5.56mm (Mk318)</English> <English>5.56mm Mk318</English>
<Polish>5,56mm (Mk318)</Polish> <Polish>5,56mm Mk318</Polish>
<French>5.56mm Mk318</French>
<Spanish>5.56mm (Mk318)</Spanish> <Spanish>5.56mm (Mk318)</Spanish>
</Key> </Key>
<Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_Description"> <Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_Description">
<English>Caliber: 5.56x45 mm NATO (Mk318)&lt;br /&gt;Rounds: 30</English> <English>Caliber: 5.56x45 mm NATO (Mk318)&lt;br /&gt;Rounds: 30</English>
<Polish>Kaliber: 5,56x45 mm NATO (Mk318)&lt;br /&gt;Pociski: 30</Polish> <Polish>Kaliber: 5,56x45 mm NATO (Mk318)&lt;br /&gt;Pociski: 30</Polish>
<French>Calibre: 5.56x45 mm NATO (Mk318)&lt;br /&gt;Cartouches: 30</French>
<Spanish>Calibre: 5.56x45 mm NATO (Mk318)&lt;br /&gt;Balas: 30</Spanish> <Spanish>Calibre: 5.56x45 mm NATO (Mk318)&lt;br /&gt;Balas: 30</Spanish>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_762x51_M118LR_Mag_Name"> <Key ID="STR_ACE_10Rnd_762x51_M118LR_Mag_Name">
<English>7.62mm 10Rnd Mag (M118LR)</English> <English>7.62mm 10Rnd Mag (M118LR)</English>
<Polish>Magazynek 7,62mm 10rd (M118LR)</Polish> <Polish>Magazynek 7,62mm 10rd (M118LR)</Polish>
<French>7.62mm 10Cps (M118LR)</French>
<Spanish>Cargador de 10 balas de 7.62mm (M118LR)</Spanish> <Spanish>Cargador de 10 balas de 7.62mm (M118LR)</Spanish>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_762x51_M118LR_Mag_NameShort"> <Key ID="STR_ACE_10Rnd_762x51_M118LR_Mag_NameShort">
<English>7.62mm (M118LR)</English> <English>7.62mm M118LR</English>
<Polish>7,62mm (M118LR)</Polish> <Polish>7,62mm M118LR</Polish>
<French>7.62mm M118LR</French>
<Spanish>7.62mm (M118LR)</Spanish> <Spanish>7.62mm (M118LR)</Spanish>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_762x51_M118LR_Mag_Description"> <Key ID="STR_ACE_10Rnd_762x51_M118LR_Mag_Description">
<English>Caliber: 7.62x51 mm NATO (M118LR)&lt;br /&gt;Rounds: 10</English> <English>Caliber: 7.62x51 mm NATO (M118LR)&lt;br /&gt;Rounds: 10</English>
<Polish>Kaliber: 7,62x51 mm NATO (M118LR)&lt;br /&gt;Pociski: 10</Polish> <Polish>Kaliber: 7,62x51 mm NATO (M118LR)&lt;br /&gt;Pociski: 10</Polish>
<French>Calibre: 7.62x51 mm NATO (M118LR)&lt;br /&gt;Cartouches: 10</French>
<Spanish>Calibre: 7.62x51 mm NATO (M118LR)&lt;br /&gt;Balas: 10</Spanish> <Spanish>Calibre: 7.62x51 mm NATO (M118LR)&lt;br /&gt;Balas: 10</Spanish>
</Key> </Key>
<Key ID="STR_ACE_20Rnd_762x51_M118LR_Mag_Name"> <Key ID="STR_ACE_20Rnd_762x51_M118LR_Mag_Name">
<English>7.62mm 20Rnd Mag (M118LR)</English> <English>7.62mm 20Rnd Mag (M118LR)</English>
<Polish>Magazynek 7,62mm 20rd (M118LR)</Polish> <Polish>Magazynek 7,62mm 20rd (M118LR)</Polish>
<French>7.62mm 20Cps (M118LR)</French>
<Spanish>Cargador de 20 balas de 7.62mm (M118LR)</Spanish> <Spanish>Cargador de 20 balas de 7.62mm (M118LR)</Spanish>
</Key> </Key>
<Key ID="STR_ACE_20Rnd_762x51_M118LR_Mag_NameShort"> <Key ID="STR_ACE_20Rnd_762x51_M118LR_Mag_NameShort">
<English>7.62mm (M118LR)</English> <English>7.62mm M118LR</English>
<Polish>7,62mm (M118LR)</Polish> <Polish>7,62mm M118LR</Polish>
<French>7.62mm M118LR</French>
<Spanish>7.62mm (M118LR)</Spanish> <Spanish>7.62mm (M118LR)</Spanish>
</Key> </Key>
<Key ID="STR_ACE_20Rnd_762x51_M118LR_Mag_Description"> <Key ID="STR_ACE_20Rnd_762x51_M118LR_Mag_Description">
<English>Caliber: 7.62x51 mm NATO (M118LR)&lt;br /&gt;Rounds: 20</English> <English>Caliber: 7.62x51 mm NATO (M118LR)&lt;br /&gt;Rounds: 20</English>
<Polish>Kaliber: 7,62x51 mm NATO (M118LR)&lt;br /&gt;Pociski: 20</Polish> <Polish>Kaliber: 7,62x51 mm NATO (M118LR)&lt;br /&gt;Pociski: 20</Polish>
<French>Calibre: 7.62x51 mm NATO (M118LR)&lt;br /&gt;Cartouches: 20</French>
<Spanish>Calibre: 7.62x51 mm NATO (M118LR)&lt;br /&gt;Balas: 20</Spanish> <Spanish>Calibre: 7.62x51 mm NATO (M118LR)&lt;br /&gt;Balas: 20</Spanish>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_762x51_Mk319_Mod_0_Mag_Name">
<English>7.62mm 10Rnd Mag (Mk319 Mod 0)</English>
<Polish>Magazynek 7,62mm 10rd (Mk319 Mod 0)</Polish>
<French>7.62mm 10Cps (Mk319 Mod 0)</French>
</Key>
<Key ID="STR_ACE_10Rnd_762x51_Mk319_Mod_0_Mag_NameShort">
<English>7.62mm Mk319</English>
<Polish>7,62mm Mk319</Polish>
<French>7.62mm Mk319</French>
</Key>
<Key ID="STR_ACE_10Rnd_762x51_Mk319_Mod_0_Mag_Description">
<English>Caliber: 7.62x51 mm NATO (Mk319 Mod 0)&lt;br /&gt;Rounds: 10</English>
<Polish>Kaliber: 7,62x51 mm NATO (Mk319 Mod 0)&lt;br /&gt;Pociski: 10</Polish>
<French>Calibre: 7.62x51 mm NATO (Mk319 Mod 0)&lt;br /&gt;Cartouches: 10</French>
</Key>
<Key ID="STR_ACE_20Rnd_762x51_Mk319_Mod_0_Mag_Name">
<English>7.62mm 20Rnd Mag (Mk319 Mod 0)</English>
<Polish>Magazynek 7,62mm 20rd (Mk319 Mod 0)</Polish>
<French>7.62mm 20Cps (Mk319 Mod 0)</French>
</Key>
<Key ID="STR_ACE_20Rnd_762x51_Mk319_Mod_0_Mag_NameShort">
<English>7.62mm Mk319</English>
<Polish>7,62mm Mk319</Polish>
<French>7.62mm Mk319</French>
</Key>
<Key ID="STR_ACE_20Rnd_762x51_Mk319_Mod_0_Mag_Description">
<English>Caliber: 7.62x51 mm NATO (Mk319 Mod 0)&lt;br /&gt;Rounds: 20</English>
<Polish>Kaliber: 7,62x51 mm NATO (Mk319 Mod 0)&lt;br /&gt;Pociski: 20</Polish>
<French>Calibre: 7.62x51 mm NATO (Mk319 Mod 0)&lt;br /&gt;Cartouches: 20</French>
</Key>
<Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_0_Mag_Name"> <Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_0_Mag_Name">
<English>7.62mm 20Rnd Mag (Mk248 Mod 0)</English> <English>7.62mm 20Rnd Mag (Mk248 Mod 0)</English>
<Polish>Magazynek 7,62mm 20rd (Mk248 Mod 0)</Polish> <Polish>Magazynek 7,62mm 20rd (Mk248 Mod 0)</Polish>
<French>7.62mm 20Cps (Mk248 Mod 0)</French>
<Spanish>Cargador de 20 balas de 7.62mm (Mk248 Mod 0)</Spanish> <Spanish>Cargador de 20 balas de 7.62mm (Mk248 Mod 0)</Spanish>
</Key> </Key>
<Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_0_Mag_NameShort"> <Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_0_Mag_NameShort">
<English>7.62mm (Mk248 Mod 0)</English> <English>7.62mm (Mk248 Mod 0)</English>
<Polish>7,62mm (Mk248 Mod 0)</Polish> <Polish>7,62mm (Mk248 Mod 0)</Polish>
<French>7.62mm (Mk248 Mod 0)</French>
<Spanish>7.62mm (Mk248 Mod 0)</Spanish> <Spanish>7.62mm (Mk248 Mod 0)</Spanish>
</Key> </Key>
<Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_0_Mag_Description"> <Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_0_Mag_Description">
<English>Caliber: 7.62x67 mm NATO (Mk248 Mod 0)&lt;br /&gt;Rounds: 20</English> <English>Caliber: 7.62x67 mm NATO (Mk248 Mod 0)&lt;br /&gt;Rounds: 20</English>
<Polish>Kaliber: 7,62x51 mm NATO (Mk248 Mod 0)&lt;br /&gt;Pociski: 20</Polish> <Polish>Kaliber: 7,62x67 mm NATO (Mk248 Mod 0)&lt;br /&gt;Pociski: 20</Polish>
<French>Calibre: 7.62x67mm NATO (Mk248 Mod 0)&lt;br /&gt;Cartouches: 20</French>
<Spanish>Calibre: 7.62x67 mm NATO (Mk248 Mod 0)&lt;br /&gt;Balas: 20</Spanish> <Spanish>Calibre: 7.62x67 mm NATO (Mk248 Mod 0)&lt;br /&gt;Balas: 20</Spanish>
</Key> </Key>
<Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_1_Mag_Name"> <Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_1_Mag_Name">
<English>7.62mm 20Rnd Mag (Mk248 Mod 1)</English> <English>7.62mm 20Rnd Mag (Mk248 Mod 1)</English>
<Polish>Magazynek 7,62mm 20rd (Mk248 Mod 1)</Polish> <Polish>Magazynek 7,62mm 20rd (Mk248 Mod 1)</Polish>
<French>7.62mm 20Cps (Mk248 Mod 1)</French>
<Spanish>Cargador de 20 balas de 7.62mm (Mk248 Mod 1)</Spanish> <Spanish>Cargador de 20 balas de 7.62mm (Mk248 Mod 1)</Spanish>
</Key> </Key>
<Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_1_Mag_NameShort"> <Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_1_Mag_NameShort">
<English>7.62mm (Mk248 Mod 1)</English> <English>7.62mm (Mk248 Mod 1)</English>
<Polish>7,62mm (Mk248 Mod 1)</Polish> <Polish>7,62mm (Mk248 Mod 1)</Polish>
<French>7.62mm (Mk248 Mod 1)</French>
<Spanish>7.62mm (Mk248 Mod 1)</Spanish> <Spanish>7.62mm (Mk248 Mod 1)</Spanish>
</Key> </Key>
<Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_1_Mag_Description"> <Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_1_Mag_Description">
<English>Caliber: 7.62x67 mm NATO (Mk248 Mod 1)&lt;br /&gt;Rounds: 20</English> <English>Caliber: 7.62x67 mm NATO (Mk248 Mod 1)&lt;br /&gt;Rounds: 20</English>
<Polish>Kaliber: 7,62x67 mm NATO (Mk248 Mod 1)&lt;br /&gt;Pociski: 20</Polish> <Polish>Kaliber: 7,62x67 mm NATO (Mk248 Mod 1)&lt;br /&gt;Pociski: 20</Polish>
<French>Calibre: 7.62x67mm NATO (Mk248 Mod 1)&lt;br /&gt;Cartouches: 20</French>
<Spanish>Calibre: 7.62x67 mm NATO (Mk248 Mod 1)&lt;br /&gt;Balas: 20</Spanish> <Spanish>Calibre: 7.62x67 mm NATO (Mk248 Mod 1)&lt;br /&gt;Balas: 20</Spanish>
</Key> </Key>
<Key ID="STR_ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag_Name"> <Key ID="STR_ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag_Name">
<English>7.62mm 20Rnd Mag (Berger Hybrid OTM)</English> <English>7.62mm 20Rnd Mag (Berger Hybrid OTM)</English>
<Polish>Magazynek 7,62mm 20rd (Berger Hybrid OTM)</Polish> <Polish>Magazynek 7,62mm 20rd (Berger Hybrid OTM)</Polish>
<French>7.62 20Cps (Berger Hybrid OTM)</French>
<Spanish>Cargador de 20 balas de 7.62mm (Berger Hybrid OTM)</Spanish> <Spanish>Cargador de 20 balas de 7.62mm (Berger Hybrid OTM)</Spanish>
</Key> </Key>
<Key ID="STR_ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag_NameShort"> <Key ID="STR_ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag_NameShort">
<English>7.62mm (OTM)</English> <English>7.62mm (OTM)</English>
<Polish>7,62mm (OTM)</Polish> <Polish>7,62mm (OTM)</Polish>
<French>7.62mm (OTM)</French>
<Spanish>7.62mm (OTM)</Spanish> <Spanish>7.62mm (OTM)</Spanish>
</Key> </Key>
<Key ID="STR_ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag_Description"> <Key ID="STR_ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag_Description">
<English>Caliber: 7.62x67 mm NATO (Berger Hybrid OTM)&lt;br /&gt;Rounds: 20</English> <English>Caliber: 7.62x67 mm NATO (Berger Hybrid OTM)&lt;br /&gt;Rounds: 20</English>
<Polish>Kaliber: 7,62x67 mm NATO (Berger Hybrid OTM)&lt;br /&gt;Pociski: 20</Polish> <Polish>Kaliber: 7,62x67 mm NATO (Berger Hybrid OTM)&lt;br /&gt;Pociski: 20</Polish>
<French>Calibre: 7.62x67mm NATO (Berger Hybrid OTM)&lt;br /&gt;Cartouches: 20</French>
<Spanish>Calibre: 7.62x67 mm NATO (Berger Hybrid OTM)&lt;br /&gt;Balas: 20</Spanish> <Spanish>Calibre: 7.62x67 mm NATO (Berger Hybrid OTM)&lt;br /&gt;Balas: 20</Spanish>
</Key> </Key>
<Key ID="STR_ACE_30Rnd_65x47_Scenar_mag_Name"> <Key ID="STR_ACE_30Rnd_65x47_Scenar_mag_Name">
<English>6.5x47mm 30Rnd Mag (HPBT Scenar)</English> <English>6.5x47mm 30Rnd Mag (HPBT Scenar)</English>
<French>6.5x47mm 30Cps (HPBT Scenar)</French>
<Spanish>Cargador de 30 balas de 6.5x47mm (HPBT Scenar)</Spanish> <Spanish>Cargador de 30 balas de 6.5x47mm (HPBT Scenar)</Spanish>
</Key> </Key>
<Key ID="STR_ACE_30Rnd_65x47_Scenar_mag_NameShort"> <Key ID="STR_ACE_30Rnd_65x47_Scenar_mag_NameShort">
<English>6.5mm Scenar</English> <English>6.5mm Scenar</English>
<French>6.5mm Scenar</French>
<Spanish>6.5mm Scenar</Spanish> <Spanish>6.5mm Scenar</Spanish>
</Key> </Key>
<Key ID="STR_ACE_30Rnd_65x47_Scenar_mag_Description"> <Key ID="STR_ACE_30Rnd_65x47_Scenar_mag_Description">
<English>Caliber: 6.5x47mm (HPBT Scenar)&lt;br /&gt;Rounds: 30</English> <English>Caliber: 6.5x47mm (HPBT Scenar)&lt;br /&gt;Rounds: 30</English>
<French>Calibre: 6.5x47mm (HPBT Scenar)&lt;br /&gt;Cartouches: 30</French>
<Spanish>Calibre: 6.5x47mm (HPBT Scenar)&lt;br /&gt;Balas: 30</Spanish> <Spanish>Calibre: 6.5x47mm (HPBT Scenar)&lt;br /&gt;Balas: 30</Spanish>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_338_300gr_HPBT_Mag_Name"> <Key ID="STR_ACE_10Rnd_338_300gr_HPBT_Mag_Name">
<English>8.6x70mm 10Rnd Mag (300gr Sierra MatchKing HPBT)</English> <English>.338 10Rnd Mag (300gr Sierra MatchKing HPBT)</English>
<French>.338 10 Cps (300gr Sierra MatchKing HPBT)</French>
<Spanish>Cargador de 10 balas de 8.6x70mm (300gr Sierra MatchKing HPBT)</Spanish> <Spanish>Cargador de 10 balas de 8.6x70mm (300gr Sierra MatchKing HPBT)</Spanish>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_338_300gr_HPBT_Mag_NameShort"> <Key ID="STR_ACE_10Rnd_338_300gr_HPBT_Mag_NameShort">
<English>.338 (HPBT)</English> <English>.338 (HPBT)</English>
<French>.338 (HPBT)</French>
<Spanish>.338 (HPBT)</Spanish> <Spanish>.338 (HPBT)</Spanish>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_338_300gr_HPBT_Mag_Description"> <Key ID="STR_ACE_10Rnd_338_300gr_HPBT_Mag_Description">
<English>Caliber: 8.6x70mm (300gr Sierra MatchKing HPBT)&lt;br /&gt;Rounds: 10</English> <English>Caliber: 8.6x70mm (300gr Sierra MatchKing HPBT)&lt;br /&gt;Rounds: 10</English>
<French>Calibre: 8.6x70mm (300gr Sierra MatchKing HPBT)&lt;br /&gt;Cartouches: 10</French>
<Spanish>Calibre: 8.6x70mm (300gr Sierra MatchKing HPBT)&lt;br /&gt;Balas: 10</Spanish> <Spanish>Calibre: 8.6x70mm (300gr Sierra MatchKing HPBT)&lt;br /&gt;Balas: 10</Spanish>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_338_API526_Mag_Name">
<English>.338 10Rnd Mag (API526)</English>
<French>.338 10Cps (API526)</French>
</Key>
<Key ID="STR_ACE_10Rnd_338_API526_Mag_NameShort">
<English>.338 AP</English>
<French>.338 AP</French>
</Key>
<Key ID="STR_ACE_10Rnd_338_API526_Mag_Description">
<English>Caliber: 8.6x70mm (API526)&lt;br /&gt;Rounds: 10</English>
<French>Calibre: 8.6x70mm (API526)&lt;br /&gt;Cartouches: 10</French>
</Key>
<Key ID="STR_ACE_5Rnd_127x99_Mag_Name">
<English>12.7x99mm 5Rnd Mag</English>
<French>12.7x99mm 5Cps</French>
</Key>
<Key ID="STR_ACE_5Rnd_127x99_Mag_NameShort">
<English>12.7mm</English>
<French>12.7mm</French>
</Key>
<Key ID="STR_ACE_5Rnd_127x99_Mag_Description">
<English>Caliber: 12.7x99mm&lt;br /&gt;Rounds: 5</English>
<French>Calibre: 12.7x99mm&lt;br /&gt;Cartouches: 5</French>
</Key>
<Key ID="STR_ACE_5Rnd_127x99_AMAX_Mag_Name">
<English>12.7x99mm 5Rnd Mag (AMAX)</English>
<French>12.7x99mm 5Rnd Mag (AMAX)</French>
</Key>
<Key ID="STR_ACE_5Rnd_127x99_AMAX_Mag_NameShort">
<English>12.7mm</English>
<French>12.7mm</French>
</Key>
<Key ID="STR_ACE_5Rnd_127x99_AMAX_Mag_Description">
<English>Caliber: 12.7x99mm (AMAX)&lt;br /&gt;Rounds: 5</English>
<French>Calibre: 12.7x99mm (AMAX)&lt;br /&gt;Cartouches: 5</French>
</Key>
</Package> </Package>
</Project> </Project>

View File

@ -53,8 +53,7 @@ if (_state) then {
_animChangedEHID = _unit addEventHandler ["AnimChanged", { _animChangedEHID = _unit addEventHandler ["AnimChanged", {
PARAMS_2(_unit,_newAnimation); PARAMS_2(_unit,_newAnimation);
if ((_newAnimation != "ACE_AmovPercMstpSsurWnonDnon") && {!(_unit getVariable ["ACE_isUnconscious", false])}) then { if ((_newAnimation != "ACE_AmovPercMstpSsurWnonDnon") && {!(_unit getVariable ["ACE_isUnconscious", false])}) then {
ERROR("Handcuff animation interrupted"); TRACE_1("Handcuff animation interrupted",_newAnimation);
// systemChat format ["debug %2: new %1", _newAnimation, time];
[_unit, "ACE_AmovPercMstpScapWnonDnon", 1] call EFUNC(common,doAnimation); [_unit, "ACE_AmovPercMstpScapWnonDnon", 1] call EFUNC(common,doAnimation);
}; };
}]; }];

View File

@ -51,8 +51,7 @@ if (_state) then {
_animChangedEHID = _unit addEventHandler ["AnimChanged", { _animChangedEHID = _unit addEventHandler ["AnimChanged", {
PARAMS_2(_unit,_newAnimation); PARAMS_2(_unit,_newAnimation);
if ((_newAnimation != "ACE_AmovPercMstpSsurWnonDnon") && {!(_unit getVariable ["ACE_isUnconscious", false])}) then { if ((_newAnimation != "ACE_AmovPercMstpSsurWnonDnon") && {!(_unit getVariable ["ACE_isUnconscious", false])}) then {
ERROR("Surrender animation interrupted"); TRACE_1("Surrender animation interrupted",_newAnimation);
// systemChat format ["debug %2: new %1", _newAnimation, time];
[_unit, "ACE_AmovPercMstpSsurWnonDnon", 1] call EFUNC(common,doAnimation); [_unit, "ACE_AmovPercMstpSsurWnonDnon", 1] call EFUNC(common,doAnimation);
}; };
}]; }];

View File

@ -71,6 +71,7 @@
<Hungarian>Fogoly berakása</Hungarian> <Hungarian>Fogoly berakása</Hungarian>
<Russian>Загрузить пленного</Russian> <Russian>Загрузить пленного</Russian>
<Portuguese>Embarcar Prisioneiro</Portuguese> <Portuguese>Embarcar Prisioneiro</Portuguese>
<Italian>Carica il prigioniero</Italian>
</Key> </Key>
<Key ID="STR_ACE_Captives_UnloadCaptive"> <Key ID="STR_ACE_Captives_UnloadCaptive">
<English>Unload Captive</English> <English>Unload Captive</English>
@ -82,6 +83,7 @@
<Hungarian>Fogoly kivevése</Hungarian> <Hungarian>Fogoly kivevése</Hungarian>
<Russian>Выгрузить пленного</Russian> <Russian>Выгрузить пленного</Russian>
<Portuguese>Desembarcar Prisioneiro</Portuguese> <Portuguese>Desembarcar Prisioneiro</Portuguese>
<Italian>Scarica il prigioniero</Italian>
</Key> </Key>
<Key ID="STR_ACE_Captives_CableTie"> <Key ID="STR_ACE_Captives_CableTie">
<English>Cable Tie</English> <English>Cable Tie</English>
@ -93,7 +95,7 @@
<Portuguese>Algema Plástica</Portuguese> <Portuguese>Algema Plástica</Portuguese>
<Italian>Fascietta</Italian> <Italian>Fascietta</Italian>
<Hungarian>Gyorskötöző</Hungarian> <Hungarian>Gyorskötöző</Hungarian>
<Russian>Кабельная стяжка</Russian> <Russian>Пластиковые наручники</Russian>
</Key> </Key>
<Key ID="STR_ACE_Captives_CableTieDescription"> <Key ID="STR_ACE_Captives_CableTieDescription">
<English>Cable ties that allow you to restrain prisoners.</English> <English>Cable ties that allow you to restrain prisoners.</English>
@ -105,7 +107,7 @@
<Portuguese>A algema plástica permite que você contenha prisioneiros.</Portuguese> <Portuguese>A algema plástica permite que você contenha prisioneiros.</Portuguese>
<Italian>Fascietta che ti consente di arrestare i prigionieri.</Italian> <Italian>Fascietta che ti consente di arrestare i prigionieri.</Italian>
<Hungarian>Gyorskötöző, emberek foglyulejtéséhez használható.</Hungarian> <Hungarian>Gyorskötöző, emberek foglyulejtéséhez használható.</Hungarian>
<Russian>Кабельные стяжки позволяют связывать пленников.</Russian> <Russian>Пластиковые наручники позволяют связывать пленников.</Russian>
</Key> </Key>
<Key ID="STR_ACE_Captives_FriskMenuHeader"> <Key ID="STR_ACE_Captives_FriskMenuHeader">
<English>Inventory of frisked person</English> <English>Inventory of frisked person</English>
@ -115,7 +117,7 @@
<Hungarian>Motozott személy felszerelése</Hungarian> <Hungarian>Motozott személy felszerelése</Hungarian>
<Czech>Inventář prohledávané osoby</Czech> <Czech>Inventář prohledávané osoby</Czech>
<Polish>Ekwipunek rewidowanej osoby</Polish> <Polish>Ekwipunek rewidowanej osoby</Polish>
<Russian>Инвентарь обысканных лиц</Russian> <Russian>Инвентарь обысканного человека</Russian>
<Portuguese>Inventário da pessoa revistada</Portuguese> <Portuguese>Inventário da pessoa revistada</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Captives_FriskPerson"> <Key ID="STR_ACE_Captives_FriskPerson">
@ -128,6 +130,7 @@
<Hungarian>Motozás</Hungarian> <Hungarian>Motozás</Hungarian>
<Russian>Обыскать человека</Russian> <Russian>Обыскать человека</Russian>
<Portuguese>Revistar</Portuguese> <Portuguese>Revistar</Portuguese>
<Italian>Perquisisci la persona</Italian>
</Key> </Key>
<Key ID="STR_ACE_Captives_StartSurrendering"> <Key ID="STR_ACE_Captives_StartSurrendering">
<English>Surrender</English> <English>Surrender</English>
@ -136,8 +139,9 @@
<Spanish>Rendirse</Spanish> <Spanish>Rendirse</Spanish>
<Czech>Vzdát se</Czech> <Czech>Vzdát se</Czech>
<Polish>Poddaj się</Polish> <Polish>Poddaj się</Polish>
<Russian>Сдаться в плен</Russian> <Russian>Сдаться</Russian>
<Hungarian>Megadás</Hungarian> <Hungarian>Megadás</Hungarian>
<Italian>Arreso</Italian>
</Key> </Key>
<Key ID="STR_ACE_Captives_StopSurrendering"> <Key ID="STR_ACE_Captives_StopSurrendering">
<English>Stop Surrendering</English> <English>Stop Surrendering</English>
@ -146,8 +150,9 @@
<Spanish>Dejar de rendirse</Spanish> <Spanish>Dejar de rendirse</Spanish>
<Czech>Přestat se vzdávat</Czech> <Czech>Přestat se vzdávat</Czech>
<Polish>Podejmij walkę ponownie</Polish> <Polish>Podejmij walkę ponownie</Polish>
<Russian>Отменить сдачу в плен</Russian> <Russian>Прекратить сдачу в плен</Russian>
<Hungarian>Megadás abbahagyása</Hungarian> <Hungarian>Megadás abbahagyása</Hungarian>
<Italian>Annulla la resa</Italian>
</Key> </Key>
<Key ID="STR_ACE_Captives_Zeus_OnlyAlive"> <Key ID="STR_ACE_Captives_Zeus_OnlyAlive">
<English>Only use on alive units</English> <English>Only use on alive units</English>
@ -158,6 +163,7 @@
<Polish>Używaj tylko na żywych jednostkach</Polish> <Polish>Używaj tylko na żywych jednostkach</Polish>
<Russian>Применимо только к живым юнитам</Russian> <Russian>Применимо только к живым юнитам</Russian>
<Hungarian>Csak élő egységeken használni</Hungarian> <Hungarian>Csak élő egységeken használni</Hungarian>
<Italian>Si può fare solo su persone vive</Italian>
</Key> </Key>
<Key ID="STR_ACE_Captives_Zeus_OnlyInfantry"> <Key ID="STR_ACE_Captives_Zeus_OnlyInfantry">
<English>Only use on dismounted inf</English> <English>Only use on dismounted inf</English>
@ -168,6 +174,7 @@
<Polish>Używaj tylko na piechocie poza wszelkimi pojazdami</Polish> <Polish>Używaj tylko na piechocie poza wszelkimi pojazdami</Polish>
<Russian>Применимо только к пехоте вне техники</Russian> <Russian>Применимо только к пехоте вне техники</Russian>
<Hungarian>Csak járműben kívül lévő egységeken használni</Hungarian> <Hungarian>Csak járműben kívül lévő egységeken használni</Hungarian>
<Italian>Si può usare solo su fanteria a piedi</Italian>
</Key> </Key>
<Key ID="STR_ACE_Captives_Zeus_NothingSelected"> <Key ID="STR_ACE_Captives_Zeus_NothingSelected">
<English>Nothing under mouse</English> <English>Nothing under mouse</English>
@ -178,6 +185,7 @@
<Polish>Nie ma nic pod kursorem</Polish> <Polish>Nie ma nic pod kursorem</Polish>
<Russian>Ничего не выделено</Russian> <Russian>Ничего не выделено</Russian>
<Hungarian>Semmi sincs az egér alatt</Hungarian> <Hungarian>Semmi sincs az egér alatt</Hungarian>
<Italian>Niente selezionato</Italian>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -199,6 +199,8 @@ class ACE_RadioProtocolNoRadio: RadioProtocolBase {
Ready[] = {}; Ready[] = {};
Waiting[] = {}; Waiting[] = {};
StandingBy[] = {}; StandingBy[] = {};
RallyUp[] = {};
UnderFireE[] = {};
/*IAmReady[] = {}; /*IAmReady[] = {};
ReadyForOrders[] = {}; ReadyForOrders[] = {};
AwaitingOrders[] = {};*/ AwaitingOrders[] = {};*/

View File

@ -1,4 +1,3 @@
class GVAR(ProgressBar_Dialog) { class GVAR(ProgressBar_Dialog) {
idd = -1; idd = -1;
movingEnable = false; movingEnable = false;
@ -24,18 +23,16 @@ class GVAR(ProgressBar_Dialog) {
w = "safezoneW"; w = "safezoneW";
h = "safezoneH"; h = "safezoneH";
}; };
class Progress: ACE_gui_RscProgress { class Progress: ACE_gui_RscProgress {
idc = 1; idc = 1;
x = "1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; x = "1.2 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "0.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; y = "0.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "38 * (((safezoneW / safezoneH) min 1.2) / 40)"; w = "37.8 * (((safezoneW / safezoneH) min 1.2) / 40)";
h = ".8 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; h = ".8 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
colorFrame[] = {0,0,0,0.0}; colorFrame[] = {0,0,0,0.0};
colorBar[] = {0.27,0.5,0.31,0.8}; colorBar[] = {0.27,0.5,0.31,0.8};
texture = "#(argb,8,8,3)color(1,1,1,0.7)"; texture = "#(argb,8,8,3)color(1,1,1,0.7)";
}; };
class Title_Bar : ACE_gui_staticBase { class Title_Bar : ACE_gui_staticBase {
idc = 2; idc = 2;
style = 0x22; style = 0x22;

View File

@ -31,7 +31,11 @@ if (typeName _statement == "STRING") then {
_name = format ["ACE_Action_%1", _action]; _name = format ["ACE_Action_%1", _action];
_actionsVar = _unit getVariable [_name, [-1, [-1, [], []]]]; _actionsVar = _unit getVariable [_name, [-1, [-1, [], []], objNull]];
if (_unit != _actionsVar select 2) then { // check if the unit is still valid, fixes respawn issues
_actionsVar = [-1, [-1, [], []], objNull];
};
_actionID = _actionsVar select 0; _actionID = _actionsVar select 0;
_actions = _actionsVar select 1; _actions = _actionsVar select 1;
@ -65,6 +69,6 @@ if (_actionID == -1) then {
_actionID = _unit addAction _addAction; _actionID = _unit addAction _addAction;
}; };
_unit setVariable [_name, [_actionID, [_id, _actionIDs, _actions]], false]; _unit setVariable [_name, [_actionID, [_id, _actionIDs, _actions], _unit], false];
_id _id

View File

@ -26,7 +26,7 @@ PARAMS_4(_totalTime,_args,_onFinish,_onFail);
DEFAULT_PARAM(4,_localizedTitle,""); DEFAULT_PARAM(4,_localizedTitle,"");
DEFAULT_PARAM(5,_condition,{true}); DEFAULT_PARAM(5,_condition,{true});
DEFAULT_PARAM(6,_exceptions,[]); DEFAULT_PARAM(6,_exceptions,[]);
private ["_player", "_perFrameFunction"]; private ["_player", "_perFrameFunction", "_ctrlPos"];
_player = ACE_player; _player = ACE_player;
@ -35,14 +35,15 @@ closeDialog 0;
createDialog QGVAR(ProgressBar_Dialog); createDialog QGVAR(ProgressBar_Dialog);
(uiNamespace getVariable QGVAR(ctrlProgressBarTitle)) ctrlSetText _localizedTitle; (uiNamespace getVariable QGVAR(ctrlProgressBarTitle)) ctrlSetText _localizedTitle;
if (GVAR(SettingProgressBarLocation) == 1) then { //Adjust position based on user setting:
private "_ctrlPos"; _ctrlPos = ctrlPosition (uiNamespace getVariable QGVAR(ctrlProgressBarTitle));
_ctrlPos = [1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2), 29 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2), 38 * (((safezoneW / safezoneH) min 1.2) / 40), 0.8 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)]; _ctrlPos set [1, ((0 + 29 * GVAR(SettingProgressBarLocation)) * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2))];
(uiNamespace getVariable QGVAR(ctrlProgressBar)) ctrlSetPosition _ctrlPos;
(uiNamespace getVariable QGVAR(ctrlProgressBarTitle)) ctrlSetPosition _ctrlPos; (uiNamespace getVariable QGVAR(ctrlProgressBarTitle)) ctrlSetPosition _ctrlPos;
(uiNamespace getVariable QGVAR(ctrlProgressBar)) ctrlCommit 0;
(uiNamespace getVariable QGVAR(ctrlProgressBarTitle)) ctrlCommit 0; (uiNamespace getVariable QGVAR(ctrlProgressBarTitle)) ctrlCommit 0;
}; _ctrlPos = ctrlPosition (uiNamespace getVariable QGVAR(ctrlProgressBar));
_ctrlPos set [1, ((0.1 + 29 * GVAR(SettingProgressBarLocation)) * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2))];
(uiNamespace getVariable QGVAR(ctrlProgressBar)) ctrlSetPosition _ctrlPos;
(uiNamespace getVariable QGVAR(ctrlProgressBar)) ctrlCommit 0;
_perFrameFunction = { _perFrameFunction = {

View File

@ -23,7 +23,7 @@ if (_id == -1) exitWith {};
_name = format ["ACE_Action_%1", _action]; _name = format ["ACE_Action_%1", _action];
_actionsVar = _unit getVariable [_name, [-1, [-1, [], []]]]; _actionsVar = _unit getVariable [_name, [-1, [-1, [], []], objNull]];
_actionID = _actionsVar select 0; _actionID = _actionsVar select 0;
_actions = _actionsVar select 1; _actions = _actionsVar select 1;
@ -32,6 +32,8 @@ _currentID = _actions select 0;
_actionIDs = _actions select 1; _actionIDs = _actions select 1;
_actions = _actions select 2; _actions = _actions select 2;
if (_unit != _actionsVar select 2) exitWith {};
_id = _actionIDs find _id; _id = _actionIDs find _id;
if (_id == -1) exitWith {}; if (_id == -1) exitWith {};
@ -47,4 +49,4 @@ if (count _actions == 0) then {
_actionID = -1; _actionID = -1;
}; };
_unit setVariable [_name, [_actionID, [_currentID, _actionIDs, _actions]], false]; _unit setVariable [_name, [_actionID, [_currentID, _actionIDs, _actions], _unit], false];

View File

@ -403,7 +403,7 @@
<German>Die Hintergrundfarbe der ACE-Hinweise.</German> <German>Die Hintergrundfarbe der ACE-Hinweise.</German>
<Spanish>El color de fondo de las notificaciones del ACE</Spanish> <Spanish>El color de fondo de las notificaciones del ACE</Spanish>
<Italian>Il colore di sfondo dei suggerimenti dell'ACE.</Italian> <Italian>Il colore di sfondo dei suggerimenti dell'ACE.</Italian>
<Russian>Цвет фона всплывающий подсказок АСЕ.</Russian> <Russian>Цвет фона всплывающих подсказок АСЕ.</Russian>
<Polish>Kolor tła dla powiadomień ACE</Polish> <Polish>Kolor tła dla powiadomień ACE</Polish>
<French>Notifications ACE: couleur de l'arrière plan</French> <French>Notifications ACE: couleur de l'arrière plan</French>
<Czech>Barva pozadí ACE nápověd.</Czech> <Czech>Barva pozadí ACE nápověd.</Czech>

View File

@ -7,6 +7,8 @@
<Polish>Otwórz ekwipunek</Polish> <Polish>Otwórz ekwipunek</Polish>
<Czech>Otevřít inventář</Czech> <Czech>Otevřít inventář</Czech>
<Spanish>Abrir inventario</Spanish> <Spanish>Abrir inventario</Spanish>
<Russian>Открыть инвентарь</Russian>
<Italian>Apri l'inventario</Italian>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -10,6 +10,7 @@
<Spanish>Lanzador utilizado</Spanish> <Spanish>Lanzador utilizado</Spanish>
<Hungarian>Elhasznált kilövőcső</Hungarian> <Hungarian>Elhasznált kilövőcső</Hungarian>
<Russian>Отстрелянная труба</Russian> <Russian>Отстрелянная труба</Russian>
<Italian>Tubo utilizzato</Italian>
</Key> </Key>
<Key ID="STR_ACE_Disposable_UsedTubeDescription"> <Key ID="STR_ACE_Disposable_UsedTubeDescription">
<English>Used disposable rocket launcher</English> <English>Used disposable rocket launcher</English>
@ -20,6 +21,7 @@
<Spanish>Lanzador desechable utilizado</Spanish> <Spanish>Lanzador desechable utilizado</Spanish>
<Hungarian>Elhasznált eldobható rakétavető</Hungarian> <Hungarian>Elhasznált eldobható rakétavető</Hungarian>
<Russian>Отстрелянная одноразовая пусковая установка</Russian> <Russian>Отстрелянная одноразовая пусковая установка</Russian>
<Italian>Lanciarazzi monouso utilizzato</Italian>
</Key> </Key>
<Key ID="STR_ACE_Disposable_PreloadedMissileDummy"> <Key ID="STR_ACE_Disposable_PreloadedMissileDummy">
<English>Preloaded Missile Dummy</English> <English>Preloaded Missile Dummy</English>
@ -30,6 +32,7 @@
<Spanish>Preloaded Missile Dummy</Spanish> <Spanish>Preloaded Missile Dummy</Spanish>
<Hungarian>Előtöltött műrakéta</Hungarian> <Hungarian>Előtöltött műrakéta</Hungarian>
<Russian>Заряженная ракетная пустышка</Russian> <Russian>Заряженная ракетная пустышка</Russian>
<Italian>Missile stupido precaricato</Italian>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -44,10 +44,10 @@
<Polish>Kod ładunku: %1</Polish> <Polish>Kod ładunku: %1</Polish>
<French>Code explosif: %1</French> <French>Code explosif: %1</French>
<Czech>Kód výbušniny: %1</Czech> <Czech>Kód výbušniny: %1</Czech>
<Italian>Codice dell'esplosivo : %1</Italian>
<Hungarian>Robbanóanyag kódja: %1</Hungarian> <Hungarian>Robbanóanyag kódja: %1</Hungarian>
<Portuguese>Código do explosivo: %1</Portuguese> <Portuguese>Código do explosivo: %1</Portuguese>
<Russian>Код подрыва: %1</Russian> <Russian>Код подрыва: %1</Russian>
<Italian>Codice esplosivo: %1</Italian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_PlaceAction"> <Key ID="STR_ACE_Explosives_PlaceAction">
<English>Place</English> <English>Place</English>
@ -488,6 +488,7 @@
<Spanish>Utilizado para detonar explosivos remotamente al soltarlo.</Spanish> <Spanish>Utilizado para detonar explosivos remotamente al soltarlo.</Spanish>
<Hungarian>Robbanóanyagok távoli robbantásához való, elengedéskor gyújt.</Hungarian> <Hungarian>Robbanóanyagok távoli robbantásához való, elengedéskor gyújt.</Hungarian>
<Russian>Используется для дистанционного подрыва, после смерти оператора.</Russian> <Russian>Используется для дистанционного подрыва, после смерти оператора.</Russian>
<Italian>Usato per attivare esplosivi quando rilasciato</Italian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_Pickup"> <Key ID="STR_ACE_Explosives_Pickup">
<English>Pick up</English> <English>Pick up</English>
@ -497,6 +498,8 @@
<Polish>Podnieś</Polish> <Polish>Podnieś</Polish>
<French>Ramasser</French> <French>Ramasser</French>
<Hungarian>Felszedés</Hungarian> <Hungarian>Felszedés</Hungarian>
<Russian>Поднять</Russian>
<Italian>Raccogli</Italian>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -10,6 +10,7 @@
<Russian>Выключить разлёт осколков</Russian> <Russian>Выключить разлёт осколков</Russian>
<French>Désactive la fragmentation</French> <French>Désactive la fragmentation</French>
<Hungarian>Repeszek letiltása</Hungarian> <Hungarian>Repeszek letiltása</Hungarian>
<Italian>Disattiva la frammentazione</Italian>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -106,6 +106,7 @@
<Czech>Vypnout pískání v uších</Czech> <Czech>Vypnout pískání v uších</Czech>
<Polish>Wyłącz dzwonienie w uszach</Polish> <Polish>Wyłącz dzwonienie w uszach</Polish>
<Hungarian>Fülcsengés letiltása</Hungarian> <Hungarian>Fülcsengés letiltása</Hungarian>
<Italian>Disabilita il ronzio</Italian>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -19,7 +19,7 @@
* Action <ARRAY> * Action <ARRAY>
* *
* Example: * Example:
* [VulcanPinch","Vulcan Pinch","",{_target setDamage 1;},{true},{},[parameters], [0,0,0], 100] call ace_interact_menu_fnc_createAction; * ["VulcanPinch","Vulcan Pinch","",{_target setDamage 1;},{true},{},[parameters], [0,0,0], 100] call ace_interact_menu_fnc_createAction;
* *
* Public: No * Public: No
*/ */

View File

@ -10,10 +10,15 @@
<Polish>Zawsze wyświetlaj kursor dla własnej interakcji</Polish> <Polish>Zawsze wyświetlaj kursor dla własnej interakcji</Polish>
<French>Toujours afficher le curseur pour les interactions sur soi-même</French> <French>Toujours afficher le curseur pour les interactions sur soi-même</French>
<Hungarian>Mindig legyen a saját cselekvés kurzorja látható</Hungarian> <Hungarian>Mindig legyen a saját cselekvés kurzorja látható</Hungarian>
<Italian>Mostra sempre il cursore per le auto interazioni</Italian>
</Key> </Key>
<Key ID="STR_ACE_Interact_Menu_UseListMenu"> <Key ID="STR_ACE_Interact_Menu_UseListMenu">
<English>Display interaction menus as lists</English> <English>Display interaction menus as lists</English>
<Spanish>Mostrar los menus de interacción como listas</Spanish> <Spanish>Mostrar los menus de interacción como listas</Spanish>
<Russian>Показывать меню взаимодействия в виде списка</Russian>
<French>Afficher le menu d'interaction au format liste</French>
<Italian>Mostra il menù di interazione come lista</Italian>
<Polish>Wyświetlaj menu interakcji jako listę</Polish>
</Key> </Key>
<Key ID="STR_ACE_Interact_Menu_InteractKey"> <Key ID="STR_ACE_Interact_Menu_InteractKey">
<English>Interact Key</English> <English>Interact Key</English>
@ -24,6 +29,7 @@
<Polish>Klawisz interakcji</Polish> <Polish>Klawisz interakcji</Polish>
<French>Touche d'interaction</French> <French>Touche d'interaction</French>
<Hungarian>Cselekvő gomb</Hungarian> <Hungarian>Cselekvő gomb</Hungarian>
<Italian>Tasto interazione</Italian>
</Key> </Key>
<Key ID="STR_ACE_Interact_Menu_SelfInteractKey"> <Key ID="STR_ACE_Interact_Menu_SelfInteractKey">
<English>Self Interaction Key</English> <English>Self Interaction Key</English>
@ -34,6 +40,7 @@
<Polish>Klawisz własnej interakcji</Polish> <Polish>Klawisz własnej interakcji</Polish>
<French>Touche d'interaction personnelle</French> <French>Touche d'interaction personnelle</French>
<Hungarian>Saját cselekvő gomb</Hungarian> <Hungarian>Saját cselekvő gomb</Hungarian>
<Italian>Tasto per auto interazioni</Italian>
</Key> </Key>
<Key ID="STR_ACE_Interact_Menu_SelfActionsRoot"> <Key ID="STR_ACE_Interact_Menu_SelfActionsRoot">
<English>Self Actions</English> <English>Self Actions</English>
@ -44,6 +51,7 @@
<Polish>Własne akcje</Polish> <Polish>Własne akcje</Polish>
<French>Interaction personnelle</French> <French>Interaction personnelle</French>
<Hungarian>Saját cselekvések</Hungarian> <Hungarian>Saját cselekvések</Hungarian>
<Italian>Auto interazioni</Italian>
</Key> </Key>
<Key ID="STR_ACE_Interact_Menu_VehicleActionsRoot"> <Key ID="STR_ACE_Interact_Menu_VehicleActionsRoot">
<English>Vehicle Actions</English> <English>Vehicle Actions</English>
@ -54,6 +62,7 @@
<Polish>Akcje pojazdu</Polish> <Polish>Akcje pojazdu</Polish>
<French>Interaction véhicule</French> <French>Interaction véhicule</French>
<Hungarian>Járműves cselekvések</Hungarian> <Hungarian>Járműves cselekvések</Hungarian>
<Italian>Interazioni con veicoli</Italian>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -10,6 +10,7 @@
<French>Interactions</French> <French>Interactions</French>
<Russian>Взаимодействия</Russian> <Russian>Взаимодействия</Russian>
<Hungarian>Cselekvések</Hungarian> <Hungarian>Cselekvések</Hungarian>
<Italian>Interazioni</Italian>
</Key> </Key>
<Key ID="STR_ACE_Interaction_Torso"> <Key ID="STR_ACE_Interaction_Torso">
<English>Torso</English> <English>Torso</English>
@ -20,6 +21,7 @@
<Polish>Tors</Polish> <Polish>Tors</Polish>
<Russian>Торс</Russian> <Russian>Торс</Russian>
<Hungarian>Testtörzs</Hungarian> <Hungarian>Testtörzs</Hungarian>
<Italian>Torso</Italian>
</Key> </Key>
<Key ID="STR_ACE_Interaction_Head"> <Key ID="STR_ACE_Interaction_Head">
<English>Head</English> <English>Head</English>
@ -30,15 +32,18 @@
<Polish>Głowa</Polish> <Polish>Głowa</Polish>
<Russian>Голова</Russian> <Russian>Голова</Russian>
<Hungarian>Fej</Hungarian> <Hungarian>Fej</Hungarian>
<Italian>Testa</Italian>
</Key> </Key>
<Key ID="STR_ACE_Interaction_ArmLeft"> <Key ID="STR_ACE_Interaction_ArmLeft">
<English>Left Arm</English> <English>Left Arm</English>
<French>Bras gauche</French>
<German>Linker Arm</German> <German>Linker Arm</German>
<Spanish>Brazo izquierdo</Spanish> <Spanish>Brazo izquierdo</Spanish>
<Czech>Levá paže</Czech> <Czech>Levá paže</Czech>
<Polish>Lewe ramię</Polish> <Polish>Lewe ramię</Polish>
<Russian>Левая рука</Russian> <Russian>Левая рука</Russian>
<Hungarian>Bal kar</Hungarian> <Hungarian>Bal kar</Hungarian>
<Italian>Braccio sinistro</Italian>
</Key> </Key>
<Key ID="STR_ACE_Interaction_ArmRight"> <Key ID="STR_ACE_Interaction_ArmRight">
<English>Right Arm</English> <English>Right Arm</English>
@ -49,6 +54,7 @@
<French>Bras droit</French> <French>Bras droit</French>
<Russian>Правая рука</Russian> <Russian>Правая рука</Russian>
<Hungarian>Jobb kar</Hungarian> <Hungarian>Jobb kar</Hungarian>
<Italian>Braccio destro</Italian>
</Key> </Key>
<Key ID="STR_ACE_Interaction_LegLeft"> <Key ID="STR_ACE_Interaction_LegLeft">
<English>Left Leg</English> <English>Left Leg</English>
@ -59,6 +65,7 @@
<French>Jambe gauche</French> <French>Jambe gauche</French>
<Russian>Левая нога</Russian> <Russian>Левая нога</Russian>
<Hungarian>Bal láb</Hungarian> <Hungarian>Bal láb</Hungarian>
<Italian>Gamba sinistra</Italian>
</Key> </Key>
<Key ID="STR_ACE_Interaction_LegRight"> <Key ID="STR_ACE_Interaction_LegRight">
<English>Right Leg</English> <English>Right Leg</English>
@ -69,6 +76,7 @@
<French>Jambe droite</French> <French>Jambe droite</French>
<Russian>Правая нога</Russian> <Russian>Правая нога</Russian>
<Hungarian>Jobb láb</Hungarian> <Hungarian>Jobb láb</Hungarian>
<Italian>Gamba destra</Italian>
</Key> </Key>
<Key ID="STR_ACE_Interaction_Weapon"> <Key ID="STR_ACE_Interaction_Weapon">
<English>Weapon</English> <English>Weapon</English>
@ -79,6 +87,7 @@
<Polish>Broń</Polish> <Polish>Broń</Polish>
<Russian>Оружие</Russian> <Russian>Оружие</Russian>
<Hungarian>Fegyver</Hungarian> <Hungarian>Fegyver</Hungarian>
<Italian>Arma</Italian>
</Key> </Key>
<Key ID="STR_ACE_Interaction_InteractionMenu"> <Key ID="STR_ACE_Interaction_InteractionMenu">
<English>Interaction Menu</English> <English>Interaction Menu</English>
@ -90,7 +99,7 @@
<Russian>Меню взаимодействия</Russian> <Russian>Меню взаимодействия</Russian>
<Hungarian>Cselekvő menü</Hungarian> <Hungarian>Cselekvő menü</Hungarian>
<Portuguese>Menu de Interação</Portuguese> <Portuguese>Menu de Interação</Portuguese>
<Italian>Menù Interattivo</Italian> <Italian>Menù interazione</Italian>
</Key> </Key>
<Key ID="STR_ACE_Interaction_InteractionMenuSelf"> <Key ID="STR_ACE_Interaction_InteractionMenuSelf">
<English>Interaction Menu (Self)</English> <English>Interaction Menu (Self)</English>
@ -102,7 +111,7 @@
<Russian>Меню взаимодействия (с собой)</Russian> <Russian>Меню взаимодействия (с собой)</Russian>
<Hungarian>Cselekvő menü (saját) </Hungarian> <Hungarian>Cselekvő menü (saját) </Hungarian>
<Portuguese>Menu de Interação (Individual)</Portuguese> <Portuguese>Menu de Interação (Individual)</Portuguese>
<Italian>Menù Interattivo (Individuale)</Italian> <Italian>Menù interazione (Individuale)</Italian>
</Key> </Key>
<Key ID="STR_ACE_Interaction_OpenDoor"> <Key ID="STR_ACE_Interaction_OpenDoor">
<English>Open / Close Door</English> <English>Open / Close Door</English>
@ -194,7 +203,7 @@
<Spanish>Asumir el liderazgo</Spanish> <Spanish>Asumir el liderazgo</Spanish>
<Polish>Przejmij dowodzenie</Polish> <Polish>Przejmij dowodzenie</Polish>
<Czech>Stát se velitelem</Czech> <Czech>Stát se velitelem</Czech>
<French>Devenir Leader</French> <French>Devenir Chef de groupe</French>
<Russian>Стать лидером</Russian> <Russian>Стать лидером</Russian>
<Hungarian>Vezetés átvétele</Hungarian> <Hungarian>Vezetés átvétele</Hungarian>
<Portuguese>Tornar-se Líder</Portuguese> <Portuguese>Tornar-se Líder</Portuguese>
@ -210,7 +219,7 @@
<Russian>ТАНЦЕВАТЬ!</Russian> <Russian>ТАНЦЕВАТЬ!</Russian>
<Hungarian>TÁNC!</Hungarian> <Hungarian>TÁNC!</Hungarian>
<Portuguese>DANCE!</Portuguese> <Portuguese>DANCE!</Portuguese>
<Italian>Balla!</Italian> <Italian>DANZA!</Italian>
</Key> </Key>
<Key ID="STR_ACE_Interaction_StopDancing"> <Key ID="STR_ACE_Interaction_StopDancing">
<English>Stop Dancing</English> <English>Stop Dancing</English>
@ -564,7 +573,7 @@
<English>Join Team&lt;br/&gt;Green</English> <English>Join Team&lt;br/&gt;Green</English>
<German>Team Grün&lt;br/&gt;beitreten</German> <German>Team Grün&lt;br/&gt;beitreten</German>
<Spanish>Unirse al&lt;br/&gt;equipo verde</Spanish> <Spanish>Unirse al&lt;br/&gt;equipo verde</Spanish>
<French>Rejoindre&lt;br/&gt;Verte</French> <French>Rejoindre&lt;br/&gt;Vert</French>
<Polish>Dołącz do&lt;br/&gt;drużyny zielonej</Polish> <Polish>Dołącz do&lt;br/&gt;drużyny zielonej</Polish>
<Czech>Připojit do&lt;br/&gt;Zeleného týmu</Czech> <Czech>Připojit do&lt;br/&gt;Zeleného týmu</Czech>
<Russian>Присоединиться&lt;br/&gt;к зеленой группе</Russian> <Russian>Присоединиться&lt;br/&gt;к зеленой группе</Russian>
@ -576,7 +585,7 @@
<English>Join Team&lt;br/&gt;Blue</English> <English>Join Team&lt;br/&gt;Blue</English>
<German>Team Blau&lt;br/&gt;beitreten</German> <German>Team Blau&lt;br/&gt;beitreten</German>
<Spanish>Unirse al&lt;br/&gt;equipo azul</Spanish> <Spanish>Unirse al&lt;br/&gt;equipo azul</Spanish>
<French>Rejoindre&lt;br/&gt;Bleue</French> <French>Rejoindre&lt;br/&gt;Bleu</French>
<Polish>Dołącz do&lt;br/&gt;drużyny niebieskiej</Polish> <Polish>Dołącz do&lt;br/&gt;drużyny niebieskiej</Polish>
<Czech>Připojit do&lt;br/&gt;Modrého týmu</Czech> <Czech>Připojit do&lt;br/&gt;Modrého týmu</Czech>
<Russian>Присоединиться&lt;br/&gt;к синей группе</Russian> <Russian>Присоединиться&lt;br/&gt;к синей группе</Russian>
@ -605,7 +614,7 @@
<Czech>Připojil ses do %1 týmu</Czech> <Czech>Připojil ses do %1 týmu</Czech>
<Russian>Вы присоединились к группе %1</Russian> <Russian>Вы присоединились к группе %1</Russian>
<Portuguese>Você uniu-se à Equipe %1</Portuguese> <Portuguese>Você uniu-se à Equipe %1</Portuguese>
<Italian>Sei entrato nella Squadra %1</Italian> <Italian>Sei entrato nel team %1</Italian>
<Hungarian>Csatlakoztál a %1 csapathoz</Hungarian> <Hungarian>Csatlakoztál a %1 csapathoz</Hungarian>
</Key> </Key>
<Key ID="STR_ACE_Interaction_LeaveTeam"> <Key ID="STR_ACE_Interaction_LeaveTeam">
@ -617,7 +626,7 @@
<Czech>Opustit tým</Czech> <Czech>Opustit tým</Czech>
<Russian>Покинуть группу</Russian> <Russian>Покинуть группу</Russian>
<Portuguese>Deixar Equipe</Portuguese> <Portuguese>Deixar Equipe</Portuguese>
<Italian>Lascia la Squadra</Italian> <Italian>Lascia il team</Italian>
<Hungarian>Csapat elhagyása</Hungarian> <Hungarian>Csapat elhagyása</Hungarian>
</Key> </Key>
<Key ID="STR_ACE_Interaction_LeftTeam"> <Key ID="STR_ACE_Interaction_LeftTeam">
@ -629,7 +638,7 @@
<Czech>Opustil si tým</Czech> <Czech>Opustil si tým</Czech>
<Russian>Вы покинули группу</Russian> <Russian>Вы покинули группу</Russian>
<Portuguese>Você deixou a Equipe</Portuguese> <Portuguese>Você deixou a Equipe</Portuguese>
<Italian>Hai lasciato la squadra</Italian> <Italian>Hai lasciato il team</Italian>
<Hungarian>Elhagytad a csapatot</Hungarian> <Hungarian>Elhagytad a csapatot</Hungarian>
</Key> </Key>
<Key ID="STR_ACE_Interaction_Pardon"> <Key ID="STR_ACE_Interaction_Pardon">
@ -658,13 +667,13 @@
</Key> </Key>
<Key ID="STR_ACE_Interaction_ModifierKey"> <Key ID="STR_ACE_Interaction_ModifierKey">
<English>Modifier Key</English> <English>Modifier Key</English>
<German>Modifikator Taste</German> <German>Modifikator-Taste</German>
<Polish>Modyfikator</Polish> <Polish>Modyfikator</Polish>
<French>Modifier la touche</French> <French>Modifier la touche</French>
<Spanish>Tecla modificadora</Spanish> <Spanish>Tecla modificadora</Spanish>
<Russian>Клавиша-модификатор</Russian> <Russian>Клавиша-модификатор</Russian>
<Portuguese>Tecla Modificadora</Portuguese> <Portuguese>Tecla Modificadora</Portuguese>
<Italian>Modifica Tasto</Italian> <Italian>Modifica tasto</Italian>
<Hungarian>Módosító billentyű</Hungarian> <Hungarian>Módosító billentyű</Hungarian>
<Czech>Modifikátor</Czech> <Czech>Modifikátor</Czech>
</Key> </Key>
@ -678,6 +687,7 @@
<Hungarian>Hatótávolságon kívül</Hungarian> <Hungarian>Hatótávolságon kívül</Hungarian>
<Polish>Poza zasięgiem</Polish> <Polish>Poza zasięgiem</Polish>
<Czech>Mimo dosah</Czech> <Czech>Mimo dosah</Czech>
<Italian>Non in raggio</Italian>
</Key> </Key>
<Key ID="STR_ACE_Interaction_Equipment"> <Key ID="STR_ACE_Interaction_Equipment">
<English>Equipment</English> <English>Equipment</English>
@ -688,6 +698,7 @@
<Czech>Vybavení</Czech> <Czech>Vybavení</Czech>
<Hungarian>Felszerelés</Hungarian> <Hungarian>Felszerelés</Hungarian>
<Russian>Снаряжение</Russian> <Russian>Снаряжение</Russian>
<Italian>Equipaggiamento</Italian>
</Key> </Key>
<Key ID="STR_ACE_Interaction_Push"> <Key ID="STR_ACE_Interaction_Push">
<English>Push</English> <English>Push</English>
@ -698,6 +709,7 @@
<Czech>Odstrčit</Czech> <Czech>Odstrčit</Czech>
<Hungarian>Tolás</Hungarian> <Hungarian>Tolás</Hungarian>
<Russian>Толкать</Russian> <Russian>Толкать</Russian>
<Italian>Spingi</Italian>
</Key> </Key>
<Key ID="STR_ACE_Interaction_Interact"> <Key ID="STR_ACE_Interaction_Interact">
<English>Interact</English> <English>Interact</English>
@ -708,16 +720,18 @@
<Polish>Interakcja</Polish> <Polish>Interakcja</Polish>
<Spanish>Interactuar</Spanish> <Spanish>Interactuar</Spanish>
<Hungarian>Cselekvés</Hungarian> <Hungarian>Cselekvés</Hungarian>
<Italian>Interagisci</Italian>
</Key> </Key>
<Key ID="STR_ACE_Interaction_Passengers"> <Key ID="STR_ACE_Interaction_Passengers">
<English>Passengers</English> <English>Passengers</English>
<German>Fahrzeuginsassen</German> <German>Passagiere</German>
<Spanish>Pasajeros</Spanish> <Spanish>Pasajeros</Spanish>
<Russian>Пассажиры</Russian> <Russian>Пассажиры</Russian>
<Czech>Pasažéři</Czech> <Czech>Pasažéři</Czech>
<Polish>Pasażerowie</Polish> <Polish>Pasażerowie</Polish>
<French>Passagers</French> <French>Passagers</French>
<Hungarian>Utasok</Hungarian> <Hungarian>Utasok</Hungarian>
<Italian>Passeggeri</Italian>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -10,6 +10,7 @@
<Polish>Powiększ UI ekwipunku</Polish> <Polish>Powiększ UI ekwipunku</Polish>
<French>Agrandir la taille d'affichage de l'inventaire</French> <French>Agrandir la taille d'affichage de l'inventaire</French>
<Hungarian>Legyen a felszerelés menüje nagyobb</Hungarian> <Hungarian>Legyen a felszerelés menüje nagyobb</Hungarian>
<Italian>Ingrandisci il menù inventario</Italian>
</Key> </Key>
<Key ID="STR_ACE_Inventory_SettingDescription"> <Key ID="STR_ACE_Inventory_SettingDescription">
<English>Normally inventory display is scaled by UI size. This allows scaling the Inventory UI size up, but doesn't increase font size allowing more rows displayed.</English> <English>Normally inventory display is scaled by UI size. This allows scaling the Inventory UI size up, but doesn't increase font size allowing more rows displayed.</English>
@ -20,6 +21,7 @@
<Polish>Ekwipunek skalowany jest poprzez rozmiar UI. Ta opcja pozwala powiększyć rozmiar UI ekwipunku, lecz nie zwiększa rozmiaru fontu pozwalając na wyświetlanie większej ilości wierszy.</Polish> <Polish>Ekwipunek skalowany jest poprzez rozmiar UI. Ta opcja pozwala powiększyć rozmiar UI ekwipunku, lecz nie zwiększa rozmiaru fontu pozwalając na wyświetlanie większej ilości wierszy.</Polish>
<French>L'inventaire est normalement affiché en fonction de la taille de l'UI. Cette option permet d'agrandir l'affichage de l'inventaire, mais n'a aucun effet sur la taille des polices permettant d'afficher plus de ligne</French> <French>L'inventaire est normalement affiché en fonction de la taille de l'UI. Cette option permet d'agrandir l'affichage de l'inventaire, mais n'a aucun effet sur la taille des polices permettant d'afficher plus de ligne</French>
<Hungarian>Alaphelyzetben a kezelőfelület mérete skálázza a felszerelési menüt. Ez az opció engedélyezi a menü felskálázását, de megtartja a betűméreteket, így növelve a láthatóságot.</Hungarian> <Hungarian>Alaphelyzetben a kezelőfelület mérete skálázza a felszerelési menüt. Ez az opció engedélyezi a menü felskálázását, de megtartja a betűméreteket, így növelve a láthatóságot.</Hungarian>
<Italian>Normalmente il menù inventario è scalato in base alle dimensioni interfaccia. Questa opzione di permette di ingrandirlo ulteriormente ma senza aumentare la dimensione del testo.</Italian>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -10,3 +10,9 @@ class Extended_PostInit_EventHandlers {
clientInit = QUOTE(call COMPILE_FILE(XEH_clientInit)); clientInit = QUOTE(call COMPILE_FILE(XEH_clientInit));
}; };
}; };
class Extended_FiredBIS_EventHandlers {
class All {
ADDON = QUOTE(_this call FUNC(onFired));
};
};

View File

@ -8,6 +8,9 @@ class CfgWeapons {
weaponInfoType = "ACE_RscOptics_javelin"; weaponInfoType = "ACE_RscOptics_javelin";
modelOptics = PATHTOF(data\reticle_titan.p3d); modelOptics = PATHTOF(data\reticle_titan.p3d);
canLock = 1;
lockingTargetSound[] = {"",0,1}; lockingTargetSound[] = {"",0,1};
lockedTargetSound[] = {"",0,1}; lockedTargetSound[] = {"",0,1};
}; };

View File

@ -14,7 +14,7 @@ class RscInGameUI {
idd = 300; idd = 300;
controls[] = { "ACE_javelin_elements_group", "ACE_Targeting" }; //, "ACE_TargetingConstrains", "ACE_TargetingGate", "ACE_TargetingLines"}; controls[] = { "ACE_javelin_elements_group", "ACE_Targeting" }; //, "ACE_TargetingConstrains", "ACE_TargetingGate", "ACE_TargetingLines"};
onLoad = QUOTE(_this call FUNC(onOpticLoad)); onLoad = QUOTE(_this call FUNC(onOpticLoad));
onUnload = "uiNameSpace setVariable ['ACE_RscOptics_javelin',nil];uiNameSpace setVariable ['ACE_RscOptics_javelin_PFH',nil];"; onUnload = QUOTE(_this call FUNC(onOpticUnload));
class ACE_javelin_elements_group: RscControlsGroup class ACE_javelin_elements_group: RscControlsGroup
{ {

View File

@ -6,6 +6,7 @@ PREP(lockKeyUp);
PREP(cycleFireMode); PREP(cycleFireMode);
PREP(showFireMode); PREP(showFireMode);
PREP(onFired);
PREP(onOpticLoad); PREP(onOpticLoad);
PREP(onOpticDraw); PREP(onOpticDraw);

View File

@ -0,0 +1,20 @@
//#define DEBUG_MODE_FULL
#include "script_component.hpp"
PARAMS_7(_shooter,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile);
// Bail on not missile
if( _shooter != ACE_player) exitWith { false };
if( ! ([ (configFile >> "CfgWeapons" >> (currentWeapon (vehicle ACE_player)) ), "launch_Titan_base"] call EFUNC(common,inheritsFrom)) ) exitWith { };
_pfh_handle = uiNamespace getVariable ["ACE_RscOptics_javelin_PFH", nil];
if(!isNil "_pfh_handle") then {
//[_pfh_handle] call cba_fnc_removePerFrameHandler;
//uiNamespace setVariable["ACE_RscOptics_javelin_PFH", nil];
__JavelinIGUITargeting ctrlShow false;
__JavelinIGUITargetingGate ctrlShow false;
__JavelinIGUITargetingLines ctrlShow false;
__JavelinIGUITargetingConstraints ctrlShow false;
};

View File

@ -11,18 +11,6 @@ TRACE_1("enter", _this);
private["_isJavelin", "_args", "_lastTick", "_runTime", "_soundTime", "_lockTime", "_newTarget", "_currentTarget", "_range", "_pos", "_targetArray"]; private["_isJavelin", "_args", "_lastTick", "_runTime", "_soundTime", "_lockTime", "_newTarget", "_currentTarget", "_range", "_pos", "_targetArray"];
if( ! ([ (configFile >> "CfgWeapons" >> (currentWeapon (vehicle ACE_player)) ), "launch_Titan_base"] call EFUNC(common,inheritsFrom))
|| { (vehicle ACE_player) != ACE_player }
) exitWith {
__JavelinIGUITargeting ctrlShow false;
__JavelinIGUITargetingGate ctrlShow false;
__JavelinIGUITargetingLines ctrlShow false;
__JavelinIGUITargetingConstraints ctrlShow false;
[(_this select 1)] call cba_fnc_removePerFrameHandler;
uiNamespace setVariable["ACE_RscOptics_javelin_PFH", nil];
};
// Reset arguments if we havnt rendered in over a second // Reset arguments if we havnt rendered in over a second
_args = uiNamespace getVariable[QGVAR(arguments), [] ]; _args = uiNamespace getVariable[QGVAR(arguments), [] ];
if( (count _args) > 0) then { if( (count _args) > 0) then {
@ -40,6 +28,19 @@ _runTime = _args select 2;
_lockTime = _args select 3; _lockTime = _args select 3;
_soundTime = _args select 4; _soundTime = _args select 4;
_randomLockInterval = _args select 5; _randomLockInterval = _args select 5;
_fireDisabledEH = _args select 6;
if( ! ([ (configFile >> "CfgWeapons" >> (currentWeapon (vehicle ACE_player)) ), "launch_Titan_base"] call EFUNC(common,inheritsFrom)) ) exitWith {
__JavelinIGUITargeting ctrlShow false;
__JavelinIGUITargetingGate ctrlShow false;
__JavelinIGUITargetingLines ctrlShow false;
__JavelinIGUITargetingConstraints ctrlShow false;
_fireDisabledEH = [_fireDisabledEH] call FUNC(enableFire);
[(_this select 1)] call cba_fnc_removePerFrameHandler;
uiNamespace setVariable["ACE_RscOptics_javelin_PFH", nil];
};
// Find a target within the optic range // Find a target within the optic range
_newTarget = objNull; _newTarget = objNull;
@ -106,6 +107,27 @@ if((call CBA_fnc_getFoV) select 1 > 9) then {
__JavelinIGUIWFOV ctrlSetTextColor __ColorGreen; __JavelinIGUIWFOV ctrlSetTextColor __ColorGreen;
}; };
FUNC(disableFire) = {
_firedEH = _this select 0;
if(_firedEH < 0 && difficulty > 0) then {
_firedEH = [ACE_player, "DefaultAction", {true}, {
_canFire = ACE_player getVariable["ace_missileguidance_target", nil];
if(!isNil "_canFire") exitWith { false };
true
}] call EFUNC(common,addActionEventHandler);
};
_firedEH
};
FUNC(enableFire) = {
_firedEH = _this select 0;
if(_firedEH > 0 && difficulty > 0) then {
[ACE_player, "DefaultAction", _firedEH] call EFUNC(common,removeActionEventHandler);
};
-1
};
if (isNull _newTarget) then { if (isNull _newTarget) then {
// No targets found // No targets found
_currentTarget = objNull; _currentTarget = objNull;
@ -120,8 +142,7 @@ if (isNull _newTarget) then {
ACE_player setVariable ["ace_missileguidance_target",nil, false]; ACE_player setVariable ["ace_missileguidance_target",nil, false];
// Disallow fire // Disallow fire
if (ACE_player ammo (currentWeapon ACE_player) > 0) then { ACE_player setWeaponReloadingTime [player, (currentWeapon ACE_player), 0.2]; }; _fireDisabledEH = [_fireDisabledEH] call FUNC(disableFire);
} else { } else {
if (_newTarget distance ACE_player < 2500 if (_newTarget distance ACE_player < 2500
&& {(call CBA_fnc_getFoV) select 1 > 9} && {(call CBA_fnc_getFoV) select 1 > 9}
@ -176,7 +197,7 @@ if (isNull _newTarget) then {
ACE_player setVariable["ace_missileguidance_target", _currentTarget, false]; ACE_player setVariable["ace_missileguidance_target", _currentTarget, false];
// Allow fire // Allow fire
ACE_player setWeaponReloadingTime [player, (currentWeapon ACE_player), 0]; _fireDisabledEH = [_fireDisabledEH] call FUNC(enableFire);
if(diag_tickTime > _soundTime) then { if(diag_tickTime > _soundTime) then {
playSound "ACE_Javelin_Locked"; playSound "ACE_Javelin_Locked";
@ -217,7 +238,7 @@ if (isNull _newTarget) then {
_soundTime = diag_tickTime + 0.25; _soundTime = diag_tickTime + 0.25;
}; };
// Disallow fire // Disallow fire
if (ACE_player ammo (currentWeapon ACE_player) > 0) then { ACE_player setWeaponReloadingTime [player, (currentWeapon ACE_player), 0.2]; }; _fireDisabledEH = [_fireDisabledEH] call FUNC(disableFire);
}; };
}; };
} else { } else {
@ -234,7 +255,7 @@ if (isNull _newTarget) then {
ACE_player setVariable ["ace_missileguidance_target",nil, false]; ACE_player setVariable ["ace_missileguidance_target",nil, false];
// Disallow fire // Disallow fire
if (ACE_player ammo (currentWeapon ACE_player) > 0) then { ACE_player setWeaponReloadingTime [player, (currentWeapon ACE_player), 0.2]; }; _fireDisabledEH = [_fireDisabledEH] call FUNC(disableFire);
}; };
}; };
@ -246,5 +267,6 @@ _args set[1, _currentTarget];
_args set[2, _runTime]; _args set[2, _runTime];
_args set[3, _lockTime]; _args set[3, _lockTime];
_args set[4, _soundTime]; _args set[4, _soundTime];
_args set[6, _fireDisabledEH];
uiNamespace setVariable[QGVAR(arguments), _args ]; uiNamespace setVariable[QGVAR(arguments), _args ];

View File

@ -25,7 +25,8 @@ uiNameSpace setVariable [QGVAR(arguments),
0, // Run Time 0, // Run Time
0, // Lock Time 0, // Lock Time
0, // Sound timer 0, // Sound timer
(random __LOCKONTIMERANDOM) // random lock time addition (random __LOCKONTIMERANDOM), // random lock time addition
-1
] ]
]; ];

View File

@ -0,0 +1,20 @@
//#define DEBUG_MODE_FULL
#include "script_component.hpp"
TRACE_1("enter", _this);
uiNameSpace setVariable ['ACE_RscOptics_javelin',nil];
_pfh = uiNamespace getVariable["ACE_RscOptics_javelin_PFH", nil ];
if(!isNil "_pfh") then {
[_pfh] call CBA_fnc_removePerFrameHandler;
uiNameSpace setVariable ['ACE_RscOptics_javelin_PFH',nil];
};
_args = uiNamespace getVariable[QGVAR(arguments), nil ];
if(!isNil "_args") then {
_disableFireEH = _args select 6;
if(_disableFireEH > 0 && difficulty > 0) then {
[ACE_player, "DefaultAction", _disableFireEH] call EFUNC(common,removeActionEventHandler);
};
uiNameSpace setVariable [QGVAR(arguments),nil];
};

View File

@ -4,8 +4,8 @@ TRACE_1("enter", _this);
private["_player", "_currentFireMode"]; private["_player", "_currentFireMode"];
_currentFireMode = ACE_player getVariable["ace_missileguidance_attackProfile", "TOP"]; _currentFireMode = ACE_player getVariable["ace_missileguidance_attackProfile", "JAV_TOP"];
if(_currentFireMode == "TOP") then { if(_currentFireMode == "JAV_TOP") then {
__JavelinIGUITop ctrlSetTextColor __ColorGreen; __JavelinIGUITop ctrlSetTextColor __ColorGreen;
__JavelinIGUIDir ctrlSetTextColor __ColorGray; __JavelinIGUIDir ctrlSetTextColor __ColorGray;
} else { } else {

View File

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler. -->
<Project name="ACE"> <Project name="ACE">
<Package name="WEP_JAVELIN"> <Package name="WEP_JAVELIN">
<Key ID="STR_ACE_JAVELIN_LockTarget"> <Key ID="STR_ACE_JAVELIN_LockTarget">
@ -10,6 +9,7 @@
<Polish>Namierz cel (przytrzymaj)</Polish> <Polish>Namierz cel (przytrzymaj)</Polish>
<French>Verrouiller cible (maintenir)</French> <French>Verrouiller cible (maintenir)</French>
<Hungarian>Célpontra állás (Lenyomva tartott)</Hungarian> <Hungarian>Célpontra állás (Lenyomva tartott)</Hungarian>
<Italian>Aggangia il bersagio</Italian>
<Spanish>Fijar objetivo (Mantener)</Spanish> <Spanish>Fijar objetivo (Mantener)</Spanish>
</Key> </Key>
<Key ID="STR_ACE_JAVELIN_CycleFireMode"> <Key ID="STR_ACE_JAVELIN_CycleFireMode">
@ -20,6 +20,7 @@
<Polish>Przełącz tryb ognia</Polish> <Polish>Przełącz tryb ognia</Polish>
<French>Cycle mode de tir</French> <French>Cycle mode de tir</French>
<Hungarian>Tüzelési mód váltása</Hungarian> <Hungarian>Tüzelési mód váltása</Hungarian>
<Italian>Alterna le modalità di fuoco</Italian>
<Spanish>Cambiar modo de disparo</Spanish> <Spanish>Cambiar modo de disparo</Spanish>
</Key> </Key>
</Package> </Package>

View File

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler. -->
<Project name="ACE"> <Project name="ACE">
<Package name="Kestrel4500"> <Package name="Kestrel4500">
<Key ID="STR_ACE_Kestrel_Name"> <Key ID="STR_ACE_Kestrel_Name">
@ -17,32 +16,49 @@
<Key ID="STR_ACE_Kestrel_Description"> <Key ID="STR_ACE_Kestrel_Description">
<English>Kestrel 4500 Pocket Weather Tracker</English> <English>Kestrel 4500 Pocket Weather Tracker</English>
<Polish>Anemomentr skrzydełkowy Kestrel 4500</Polish> <Polish>Anemomentr skrzydełkowy Kestrel 4500</Polish>
<Russian>Карманная метеостанция Kestrel 4500NV</Russian>
<French>Station météo portable Kestrel 4500</French>
<Spanish>Kestrel 4500 Pocket Weather Tracker</Spanish> <Spanish>Kestrel 4500 Pocket Weather Tracker</Spanish>
</Key> </Key>
<Key ID="STR_ACE_Kestrel4500_OpenKestrel"> <Key ID="STR_ACE_Kestrel4500_OpenKestrel">
<English>Open Kestrel 4500</English> <English>Open Kestrel 4500</English>
<Polish>Otwórz Kestrel 4500</Polish> <Polish>Otwórz Kestrel 4500</Polish>
<Hungarian>Kestrel 4500 elővétele</Hungarian> <Hungarian>Kestrel 4500 elővétele</Hungarian>
<Russian>Открыть Kestrel 4500NV</Russian>
<French>Ouvrir Kestrel 4500</French>
<Italian>Accendi Kestrel 4500</Italian>
<Spanish>Abrir Kestrel 4500</Spanish> <Spanish>Abrir Kestrel 4500</Spanish>
</Key> </Key>
<Key ID="STR_ACE_Kestrel4500_ShowKestrel"> <Key ID="STR_ACE_Kestrel4500_ShowKestrel">
<English>Show Kestrel 4500</English> <English>Show Kestrel 4500</English>
<Polish>Pokaż Kestrel 4500</Polish> <Polish>Pokaż Kestrel 4500</Polish>
<Russian>Показать Kestrel 4500NV</Russian>
<French>Afficher Kestrel 4500</French>
<Italian>Mostra Kestrel 4500</Italian>
<Spanish>Mostrar Kestrel 4500</Spanish> <Spanish>Mostrar Kestrel 4500</Spanish>
</Key> </Key>
<Key ID="STR_ACE_Kestrel4500_HideKestrel"> <Key ID="STR_ACE_Kestrel4500_HideKestrel">
<English>Hide Kestrel 4500</English> <English>Hide Kestrel 4500</English>
<Polish>Ukryj Kestrel 4500</Polish> <Polish>Ukryj Kestrel 4500</Polish>
<Russian>Убрать Kestrel 4500NV</Russian>
<French>Cacher Kestrel 4500</French>
<Italian>Nascondi Kestrel 4500</Italian>
<Spanish>Esconder Kestrel 4500</Spanish> <Spanish>Esconder Kestrel 4500</Spanish>
</Key> </Key>
<Key ID="STR_ACE_Kestrel4500_KestrelDialogKey"> <Key ID="STR_ACE_Kestrel4500_KestrelDialogKey">
<English>Open Kestrel 4500</English> <English>Open Kestrel 4500</English>
<Polish>Otwórz Kestrel 4500</Polish> <Polish>Otwórz Kestrel 4500</Polish>
<Russian>Открыть Kestrel 4500NV</Russian>
<French>Ouvrir Kestrel 4500</French>
<Italian>Accendi Kestrel 4500</Italian>
<Spanish>Abrir Kestrel 4500</Spanish> <Spanish>Abrir Kestrel 4500</Spanish>
</Key> </Key>
<Key ID="STR_ACE_Kestrel4500_DisplayKestrelKey"> <Key ID="STR_ACE_Kestrel4500_DisplayKestrelKey">
<English>Show Kestrel 4500</English> <English>Show Kestrel 4500</English>
<Polish>Pokaż Kestrel 4500</Polish> <Polish>Pokaż Kestrel 4500</Polish>
<Russian>Показать Kestrel 4500NV</Russian>
<French>Afficher Kestrel 4500</French>
<Italian>Mostra Kestrel 4500</Italian>
<Spanish>Mostrar Kestrel 4500</Spanish> <Spanish>Mostrar Kestrel 4500</Spanish>
</Key> </Key>
</Package> </Package>

View File

@ -10,6 +10,7 @@
<Polish>Desygnator laserowy wł.</Polish> <Polish>Desygnator laserowy wł.</Polish>
<French>Désignateur Laser Allumé</French> <French>Désignateur Laser Allumé</French>
<Hungarian>Lézeres Megjelölő Be</Hungarian> <Hungarian>Lézeres Megjelölő Be</Hungarian>
<Italian>Designatore laser acceso</Italian>
</Key> </Key>
<Key ID="STR_ACE_Laser_SelfDesignate_DesignatorOff"> <Key ID="STR_ACE_Laser_SelfDesignate_DesignatorOff">
<English>Laser Designator Off</English> <English>Laser Designator Off</English>
@ -20,6 +21,7 @@
<Polish>Desygnator laserowy wył.</Polish> <Polish>Desygnator laserowy wył.</Polish>
<French>Désignateur Laser Éteint</French> <French>Désignateur Laser Éteint</French>
<Hungarian>Lézeres Megjelölő Ki</Hungarian> <Hungarian>Lézeres Megjelölő Ki</Hungarian>
<Italian>Designatore laser spento</Italian>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler. -->
<Project name="ACE"> <Project name="ACE">
<Package name="Laserpointer"> <Package name="Laserpointer">
<Key ID="STR_ACE_Laserpointer_red"> <Key ID="STR_ACE_Laserpointer_red">
@ -11,6 +10,7 @@
<Polish>Wskaźnik laserowy (czerwony)</Polish> <Polish>Wskaźnik laserowy (czerwony)</Polish>
<Hungarian>Lézer-pointer (piros)</Hungarian> <Hungarian>Lézer-pointer (piros)</Hungarian>
<Spanish>Puntero láser (rojo)</Spanish> <Spanish>Puntero láser (rojo)</Spanish>
<Italian>Puntatore laser (rosso)</Italian>
</Key> </Key>
<Key ID="STR_ACE_Laserpointer_green"> <Key ID="STR_ACE_Laserpointer_green">
<English>Laser Pointer (green)</English> <English>Laser Pointer (green)</English>
@ -21,6 +21,7 @@
<Polish>Wskaźnik laserowy (zielony)</Polish> <Polish>Wskaźnik laserowy (zielony)</Polish>
<Hungarian>Lézer-pointer (zöld)</Hungarian> <Hungarian>Lézer-pointer (zöld)</Hungarian>
<Spanish>Puntero láser (verde)</Spanish> <Spanish>Puntero láser (verde)</Spanish>
<Italian>Puntatore laser (verde)</Italian>
</Key> </Key>
<Key ID="STR_ACE_Laserpointer_Description"> <Key ID="STR_ACE_Laserpointer_Description">
<English>Emits visible light. </English> <English>Emits visible light. </English>
@ -31,6 +32,7 @@
<Polish>Wydziela widzialne światło.</Polish> <Polish>Wydziela widzialne światło.</Polish>
<Hungarian>Látható fényt bocsát ki.</Hungarian> <Hungarian>Látható fényt bocsát ki.</Hungarian>
<Spanish>Emite luz visible.</Spanish> <Spanish>Emite luz visible.</Spanish>
<Italian>Emette luce visibile</Italian>
</Key> </Key>
<Key ID="STR_ACE_Laserpointer_useLaser"> <Key ID="STR_ACE_Laserpointer_useLaser">
<English>&lt;t color='#9cf953'&gt;Use: &lt;/t&gt;Turn Laser ON/OFF</English> <English>&lt;t color='#9cf953'&gt;Use: &lt;/t&gt;Turn Laser ON/OFF</English>
@ -48,18 +50,25 @@
<English>Laser</English> <English>Laser</English>
<German>Laser</German> <German>Laser</German>
<Polish>Laser</Polish> <Polish>Laser</Polish>
<Russian>Лазер</Russian>
<French>Laser</French>
<Spanish>Laser</Spanish> <Spanish>Laser</Spanish>
</Key> </Key>
<Key ID="STR_ACE_Laserpointer_IRLaser"> <Key ID="STR_ACE_Laserpointer_IRLaser">
<English>IR Laser</English> <English>IR Laser</English>
<German>IR-Laser</German> <German>IR-Laser</German>
<Polish>Laser IR</Polish> <Polish>Laser IR</Polish>
<Russian>ИК-лазер</Russian>
<French>Laser IR</French>
<Spanish>Laser IR</Spanish> <Spanish>Laser IR</Spanish>
</Key> </Key>
<Key ID="STR_ACE_Laserpointer_switchLaserLight"> <Key ID="STR_ACE_Laserpointer_switchLaserLight">
<English>Switch Laser / IR Laser</English> <English>Switch Laser / IR Laser</English>
<German>Umschalten Laser / IR-Laser</German> <German>Umschalten Laser / IR-Laser</German>
<Polish>Przełącz Laser / Laser IR</Polish> <Polish>Przełącz Laser / Laser IR</Polish>
<Russian>Изменить режим Лазер / ИК-лазер</Russian>
<French>Changer Laser / Laser IR</French>
<Italian>Alterna Laser / IR Laser</Italian>
<Spanish>Cambiar Laser / Laser IR</Spanish> <Spanish>Cambiar Laser / Laser IR</Spanish>
</Key> </Key>
</Package> </Package>

Binary file not shown.

View File

@ -82,6 +82,7 @@
<Czech>Páskování dokončeno</Czech> <Czech>Páskování dokončeno</Czech>
<Polish>Przepakowywanie zakończone</Polish> <Polish>Przepakowywanie zakończone</Polish>
<Hungarian>Újratárazás befejezve</Hungarian> <Hungarian>Újratárazás befejezve</Hungarian>
<Italian>Riempi caricatore</Italian>
</Key> </Key>
<Key ID="STR_ACE_MagazineRepack_RepackInterrupted"> <Key ID="STR_ACE_MagazineRepack_RepackInterrupted">
<English>Repacking Interrupted</English> <English>Repacking Interrupted</English>
@ -92,6 +93,7 @@
<Czech>Páskování přerušeno</Czech> <Czech>Páskování přerušeno</Czech>
<Polish>Przepakowywanie przerwane</Polish> <Polish>Przepakowywanie przerwane</Polish>
<Hungarian>Újratárazás megszakítva</Hungarian> <Hungarian>Újratárazás megszakítva</Hungarian>
<Italian>Riempimento interrotto</Italian>
</Key> </Key>
<Key ID="STR_ACE_MagazineRepack_RepackedMagazinesCount"> <Key ID="STR_ACE_MagazineRepack_RepackedMagazinesCount">
<English>%1 Full and %2 Partial</English> <English>%1 Full and %2 Partial</English>
@ -102,6 +104,7 @@
<Czech>%1 plný a %2 částečně</Czech> <Czech>%1 plný a %2 částečně</Czech>
<Polish>Pełnych: %1.&lt;br /&gt;Częściowo pełnych: %2.</Polish> <Polish>Pełnych: %1.&lt;br /&gt;Częściowo pełnych: %2.</Polish>
<Hungarian>%1 teljes és %2 részleges</Hungarian> <Hungarian>%1 teljes és %2 részleges</Hungarian>
<Italian>%1 pieno e %2 parziale</Italian>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler. -->
<Project name="ACE"> <Project name="ACE">
<Package name="Map"> <Package name="Map">
<Key ID="STR_ACE_MapTools_Name"> <Key ID="STR_ACE_MapTools_Name">
@ -143,6 +142,7 @@
<Spanish>Dirección: %1°</Spanish> <Spanish>Dirección: %1°</Spanish>
<Hungarian>Irány: %1</Hungarian> <Hungarian>Irány: %1</Hungarian>
<Russian>Направление: %1°</Russian> <Russian>Направление: %1°</Russian>
<Italian>Direzione : %1°</Italian>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler. -->
<Project name="ACE"> <Project name="ACE">
<Package name="Markers"> <Package name="Markers">
<Key ID="STR_ACE_Markers_MarkerDirection"> <Key ID="STR_ACE_Markers_MarkerDirection">
@ -11,6 +10,7 @@
<Spanish>Dirección: %1°</Spanish> <Spanish>Dirección: %1°</Spanish>
<Russian>Направление: %1°</Russian> <Russian>Направление: %1°</Russian>
<Hungarian>Irány: %1°</Hungarian> <Hungarian>Irány: %1°</Hungarian>
<Italian>Direzione: %1°</Italian>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -40,7 +40,7 @@ if ((_tourniquets select _part) > 0) exitwith {
}; };
_removeItem = _items select 0; _removeItem = _items select 0;
[[_target, _removeItem], QUOTE(DFUNC(treatmentTourniquetLocal)), _target] call EFUNC(common,execRemoteFnc); /* TODO Replace by event system */ [[_target, _removeItem, _selectionName], QUOTE(DFUNC(treatmentTourniquetLocal)), _target] call EFUNC(common,execRemoteFnc); /* TODO Replace by event system */
[_target, _removeItem] call FUNC(addToTriageCard); [_target, _removeItem] call FUNC(addToTriageCard);
[_target, "activity", "STR_ACE_MEDICAL_ACTIVITY_appliedTourniquet", [[_caller] call EFUNC(common,getName)]] call FUNC(addToLog); [_target, "activity", "STR_ACE_MEDICAL_ACTIVITY_appliedTourniquet", [[_caller] call EFUNC(common,getName)]] call FUNC(addToLog);

View File

@ -13,15 +13,13 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
private ["_target", "_tourniquetItem", "_part", "_tourniquets", "_applyingTo"]; private ["_target", "_tourniquetItem", "_part", "_tourniquets", "_applyingTo", "_selectionName"];
_target = _this select 0; _target = _this select 0;
_tourniquetItem = _this select 1; _tourniquetItem = _this select 1;
_selectionName = _this select 2;
//[_target,"treatment",format["%1 applied a tourniquet on %2",[_caller] call EFUNC(common,getName),_selectionName]] call FUNC(addActivityToLog);
//[_target,_removeItem] call FUNC(addToTriageList);
[_target] call FUNC(addToInjuredCollection); [_target] call FUNC(addToInjuredCollection);
_part = [_selectionName] call FUNC(selectionNameToNumber); _part = [_selectionName] call FUNC(selectionNameToNumber);
// Place a tourniquet on the bodypart // Place a tourniquet on the bodypart

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -11,6 +11,7 @@
<Polish>MicroDAGR GPS</Polish> <Polish>MicroDAGR GPS</Polish>
<French>MicroDAGR GPS</French> <French>MicroDAGR GPS</French>
<Hungarian>MicroDAGR GPS</Hungarian> <Hungarian>MicroDAGR GPS</Hungarian>
<Italian>MicroDAGR GPS</Italian>
</Key> </Key>
<Key ID="STR_ACE_microdagr_itemDescription"> <Key ID="STR_ACE_microdagr_itemDescription">
<English>MicroDAGR advanced GPS receiver</English> <English>MicroDAGR advanced GPS receiver</English>
@ -21,6 +22,7 @@
<French>Récepteur GPS MicroDAGR</French> <French>Récepteur GPS MicroDAGR</French>
<Czech>MicroDAGR pokročílá GPS příjímač</Czech> <Czech>MicroDAGR pokročílá GPS příjímač</Czech>
<Hungarian>MicroDAGR fejlett GPS vevőegység</Hungarian> <Hungarian>MicroDAGR fejlett GPS vevőegység</Hungarian>
<Italian>MicroDAGR ricevitore GPS avanzato</Italian>
</Key> </Key>
<Key ID="STR_ACE_microdagr_settingUseMils"> <Key ID="STR_ACE_microdagr_settingUseMils">
<English>Angular Unit:</English> <English>Angular Unit:</English>
@ -31,6 +33,7 @@
<German>Winkeleinheit:</German> <German>Winkeleinheit:</German>
<Czech>Úhlová jednotka:</Czech> <Czech>Úhlová jednotka:</Czech>
<Hungarian>Szögmértékegység:</Hungarian> <Hungarian>Szögmértékegység:</Hungarian>
<Italian>Unità angolare:</Italian>
</Key> </Key>
<Key ID="STR_ACE_microdagr_settingMils"> <Key ID="STR_ACE_microdagr_settingMils">
<English>Mils</English> <English>Mils</English>
@ -41,6 +44,7 @@
<French>Mils</French> <French>Mils</French>
<Czech>Mils</Czech> <Czech>Mils</Czech>
<Hungarian>Mil</Hungarian> <Hungarian>Mil</Hungarian>
<Italian>Miglia</Italian>
</Key> </Key>
<Key ID="STR_ACE_microdagr_settingShowWP"> <Key ID="STR_ACE_microdagr_settingShowWP">
<English>Show Waypoints On Map:</English> <English>Show Waypoints On Map:</English>
@ -51,6 +55,7 @@
<French>Montrer points de passage sur la carte</French> <French>Montrer points de passage sur la carte</French>
<Czech>Ukázat waypointy na mapě:</Czech> <Czech>Ukázat waypointy na mapě:</Czech>
<Hungarian>Útvonalpontok mutatása a térképen:</Hungarian> <Hungarian>Útvonalpontok mutatása a térképen:</Hungarian>
<Italian>Mostra waypoint sulla mappa:</Italian>
</Key> </Key>
<Key ID="STR_ACE_microdagr_settingDegrees"> <Key ID="STR_ACE_microdagr_settingDegrees">
<English>Degrees</English> <English>Degrees</English>
@ -61,13 +66,14 @@
<French>Degrés</French> <French>Degrés</French>
<Czech>Stupně</Czech> <Czech>Stupně</Czech>
<Hungarian>Fok</Hungarian> <Hungarian>Fok</Hungarian>
<Italian>Gradi</Italian>
</Key> </Key>
<Key ID="STR_ACE_microdagr_settingOn"> <Key ID="STR_ACE_microdagr_settingOn">
<English>On</English> <English>On</English>
<Czech>Zapnuto</Czech> <Czech>Zapnuto</Czech>
<French>Allumé</French> <French>Allumé</French>
<German>Ein</German> <German>Ein</German>
<Italian></Italian> <Italian>Acceso</Italian>
<Polish>Wł.</Polish> <Polish>Wł.</Polish>
<Portuguese>Ativar</Portuguese> <Portuguese>Ativar</Portuguese>
<Russian>Вкл.</Russian> <Russian>Вкл.</Russian>
@ -79,7 +85,7 @@
<Czech>Vypnuto</Czech> <Czech>Vypnuto</Czech>
<French>Eteint</French> <French>Eteint</French>
<German>Aus</German> <German>Aus</German>
<Italian>No</Italian> <Italian>Spento</Italian>
<Polish>Wył.</Polish> <Polish>Wył.</Polish>
<Portuguese>Desativar</Portuguese> <Portuguese>Desativar</Portuguese>
<Russian>Выкл.</Russian> <Russian>Выкл.</Russian>
@ -95,6 +101,7 @@
<German>Koordinaten eingeben:</German> <German>Koordinaten eingeben:</German>
<Czech>Napiš souřadnice:</Czech> <Czech>Napiš souřadnice:</Czech>
<Hungarian>Add meg a rácskoordinátákat:</Hungarian> <Hungarian>Add meg a rácskoordinátákat:</Hungarian>
<Italian>Introduci griglia coordinate:</Italian>
</Key> </Key>
<Key ID="STR_ACE_microdagr_wpEnterName"> <Key ID="STR_ACE_microdagr_wpEnterName">
<English>Name of [%1]</English> <English>Name of [%1]</English>
@ -105,6 +112,7 @@
<French>Nom de %1</French> <French>Nom de %1</French>
<Czech>Název [%1]</Czech> <Czech>Název [%1]</Czech>
<Hungarian>[%1] neve</Hungarian> <Hungarian>[%1] neve</Hungarian>
<Italian>Nome di [%1]</Italian>
</Key> </Key>
<Key ID="STR_ACE_microdagr_controlMGRS"> <Key ID="STR_ACE_microdagr_controlMGRS">
<English>MGRS-New</English> <English>MGRS-New</English>
@ -115,6 +123,7 @@
<French>Info-MGRS</French> <French>Info-MGRS</French>
<Czech>MGRS-Nový</Czech> <Czech>MGRS-Nový</Czech>
<Hungarian>MGRS-új</Hungarian> <Hungarian>MGRS-új</Hungarian>
<Italian>Nuovo MGRS</Italian>
</Key> </Key>
<Key ID="STR_ACE_microdagr_controlWGD"> <Key ID="STR_ACE_microdagr_controlWGD">
<English>WGD</English> <English>WGD</English>
@ -125,6 +134,7 @@
<French>WGD</French> <French>WGD</French>
<Czech>WGD</Czech> <Czech>WGD</Czech>
<Hungarian>WGD</Hungarian> <Hungarian>WGD</Hungarian>
<Italian>WGD</Italian>
</Key> </Key>
<Key ID="STR_ACE_microdagr_controlRange"> <Key ID="STR_ACE_microdagr_controlRange">
<English>Range:</English> <English>Range:</English>
@ -135,6 +145,7 @@
<French>Distance:</French> <French>Distance:</French>
<Czech>Vzdálenost:</Czech> <Czech>Vzdálenost:</Czech>
<Hungarian>Távolság:</Hungarian> <Hungarian>Távolság:</Hungarian>
<Italian>Distanza:</Italian>
</Key> </Key>
<Key ID="STR_ACE_microdagr_compasDirection"> <Key ID="STR_ACE_microdagr_compasDirection">
<English>Compass Direction</English> <English>Compass Direction</English>
@ -145,6 +156,7 @@
<French>Azimut</French> <French>Azimut</French>
<Czech>Azimut:</Czech> <Czech>Azimut:</Czech>
<Hungarian>Irányszög</Hungarian> <Hungarian>Irányszög</Hungarian>
<Italian>Azimut</Italian>
</Key> </Key>
<Key ID="STR_ACE_microdagr_menuMark"> <Key ID="STR_ACE_microdagr_menuMark">
<English>Mark</English> <English>Mark</English>
@ -155,6 +167,7 @@
<French>Marque</French> <French>Marque</French>
<Czech>Označit</Czech> <Czech>Označit</Czech>
<Hungarian>Jelölés</Hungarian> <Hungarian>Jelölés</Hungarian>
<Italian>Marca</Italian>
</Key> </Key>
<Key ID="STR_ACE_microdagr_menuWaypoints"> <Key ID="STR_ACE_microdagr_menuWaypoints">
<English>Waypoints</English> <English>Waypoints</English>
@ -165,6 +178,7 @@
<Polish>Punkty trasy</Polish> <Polish>Punkty trasy</Polish>
<French>Point de passage</French> <French>Point de passage</French>
<Hungarian>Útvonalpontok</Hungarian> <Hungarian>Útvonalpontok</Hungarian>
<Italian>waypoints</Italian>
</Key> </Key>
<Key ID="STR_ACE_microdagr_menuConnectTo"> <Key ID="STR_ACE_microdagr_menuConnectTo">
<English>Connect To</English> <English>Connect To</English>
@ -175,6 +189,7 @@
<Polish>Podłącz do</Polish> <Polish>Podłącz do</Polish>
<French>Connecter</French> <French>Connecter</French>
<Hungarian>Csatlakozás</Hungarian> <Hungarian>Csatlakozás</Hungarian>
<Italian>Collega a </Italian>
</Key> </Key>
<Key ID="STR_ACE_microdagr_menuSettings"> <Key ID="STR_ACE_microdagr_menuSettings">
<English>Settings</English> <English>Settings</English>
@ -185,6 +200,7 @@
<Czech>Nastavení</Czech> <Czech>Nastavení</Czech>
<Polish>Ustawienia</Polish> <Polish>Ustawienia</Polish>
<Hungarian>Beállítások</Hungarian> <Hungarian>Beállítások</Hungarian>
<Italian>Impostaizoni</Italian>
</Key> </Key>
<Key ID="STR_ACE_microdagr_waypointsSet"> <Key ID="STR_ACE_microdagr_waypointsSet">
<English>SetWP</English> <English>SetWP</English>
@ -195,6 +211,7 @@
<Polish>UstawPT</Polish> <Polish>UstawPT</Polish>
<French>Définir point de passage</French> <French>Définir point de passage</French>
<Hungarian>UP Beállítása</Hungarian> <Hungarian>UP Beállítása</Hungarian>
<Italian>Definisci WayPoints</Italian>
</Key> </Key>
<Key ID="STR_ACE_microdagr_waypointsAdd"> <Key ID="STR_ACE_microdagr_waypointsAdd">
<English>Add</English> <English>Add</English>
@ -205,6 +222,7 @@
<Polish>Dodaj</Polish> <Polish>Dodaj</Polish>
<French>Ajouter</French> <French>Ajouter</French>
<Hungarian>Hozzáadás</Hungarian> <Hungarian>Hozzáadás</Hungarian>
<Italian>Aggiungi</Italian>
</Key> </Key>
<Key ID="STR_ACE_microdagr_waypointsDelete"> <Key ID="STR_ACE_microdagr_waypointsDelete">
<English>Delete</English> <English>Delete</English>
@ -226,6 +244,7 @@
<French>Basculer le mode d'affichage MicroDAGR</French> <French>Basculer le mode d'affichage MicroDAGR</French>
<Czech>Přepnout zobrazení MircroDAGRu</Czech> <Czech>Přepnout zobrazení MircroDAGRu</Czech>
<Hungarian>MicroDAGR kijelzési mód váltása</Hungarian> <Hungarian>MicroDAGR kijelzési mód váltása</Hungarian>
<Italian>Alterna modalità display MicroDAGR</Italian>
</Key> </Key>
<Key ID="STR_ACE_microdagr_show"> <Key ID="STR_ACE_microdagr_show">
<English>Show MicoDAGR</English> <English>Show MicoDAGR</English>
@ -236,6 +255,7 @@
<Polish>Pokaż&lt;br /&gt;MicroDAGR</Polish> <Polish>Pokaż&lt;br /&gt;MicroDAGR</Polish>
<French>Afficher MicroDAGR</French> <French>Afficher MicroDAGR</French>
<Hungarian>MicroDAGR mutatása</Hungarian> <Hungarian>MicroDAGR mutatása</Hungarian>
<Italian>Mostra MicroDAGR</Italian>
</Key> </Key>
<Key ID="STR_ACE_microdagr_configure"> <Key ID="STR_ACE_microdagr_configure">
<English>Configure MicroDAGR</English> <English>Configure MicroDAGR</English>
@ -246,6 +266,7 @@
<Polish>Konfiguruj&lt;br /&gt;MicroDAGR</Polish> <Polish>Konfiguruj&lt;br /&gt;MicroDAGR</Polish>
<French>Configurer MicroDAGR</French> <French>Configurer MicroDAGR</French>
<Hungarian>MicroDAGR konfigurálása</Hungarian> <Hungarian>MicroDAGR konfigurálása</Hungarian>
<Italian>ConfiguraMicroDAGR</Italian>
</Key> </Key>
<Key ID="STR_ACE_microdagr_closeUnit"> <Key ID="STR_ACE_microdagr_closeUnit">
<English>Close MicroDAGR</English> <English>Close MicroDAGR</English>
@ -256,6 +277,7 @@
<Polish>Zamknij&lt;br /&gt;MicroDAGR</Polish> <Polish>Zamknij&lt;br /&gt;MicroDAGR</Polish>
<French>Fermer MicroDAGR</French> <French>Fermer MicroDAGR</French>
<Hungarian>MicroDAGR elrejtése</Hungarian> <Hungarian>MicroDAGR elrejtése</Hungarian>
<Italian>Chiudi MicroDAGR</Italian>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -50,6 +50,8 @@ class CfgAmmo {
//maxDeflection = 0.5; //maxDeflection = 0.5;
//incDeflection = 0.005; //incDeflection = 0.005;
canVanillaLock = 0; // Can this default vanilla lock? Only applicable to non-cadet mode
// Guidance type for munitions // Guidance type for munitions
defaultSeekerType = "SALH"; defaultSeekerType = "SALH";
seekerTypes[] = { "SALH", "LIDAR", "SARH", "Optic", "Thermal", "GPS", "SACLOS", "MCLOS" }; seekerTypes[] = { "SALH", "LIDAR", "SARH", "Optic", "Thermal", "GPS", "SACLOS", "MCLOS" };
@ -120,6 +122,8 @@ class CfgAmmo {
//maxDeflection = 0.5; //maxDeflection = 0.5;
//incDeflection = 0.005; //incDeflection = 0.005;
canVanillaLock = 0;
// Guidance type for munitions // Guidance type for munitions
defaultSeekerType = "Optic"; defaultSeekerType = "Optic";
seekerTypes[] = { "Optic" }; seekerTypes[] = { "Optic" };

View File

@ -48,12 +48,12 @@ switch( (_state select 0) ) do {
if( ((ASLToATL _projectilePos) select 2) - ((ASLToATL _seekerTargetPos) select 2) >= _cruisAlt) then { if( ((ASLToATL _projectilePos) select 2) - ((ASLToATL _seekerTargetPos) select 2) >= _cruisAlt) then {
_state set[0, STAGE_TERMINAL]; _state set[0, STAGE_TERMINAL];
} else { } else {
_returnTargetPos = _seekerTargetPos vectorAdd [0,0,_distanceToTarget*2]; _returnTargetPos = _seekerTargetPos vectorAdd [0,0,_distanceToTarget*1.5];
}; };
}; };
case STAGE_TERMINAL: { case STAGE_TERMINAL: {
TRACE_1("STAGE_TERMINAL",""); TRACE_1("STAGE_TERMINAL","");
//_returnTargetPos = _seekerTargetPos vectorAdd [0,0,_distanceToTarget * 0.02]; _returnTargetPos = _seekerTargetPos vectorAdd [0,0,_distanceToTarget * 0.002];
}; };
}; };

View File

@ -48,24 +48,29 @@ switch( (_state select 0) ) do {
_cruisAlt = 140 * (_distanceShooterToTarget/1250); _cruisAlt = 140 * (_distanceShooterToTarget/1250);
TRACE_1("_cruisAlt", _cruisAlt); TRACE_1("_cruisAlt", _cruisAlt);
}; };
if( ((ASLToATL _projectilePos) select 2) - ((ASLToATL _seekerTargetPos) select 2) >= _cruisAlt) then { if( ((ASLToATL _projectilePos) select 2) - ((ASLToATL _seekerTargetPos) select 2) >= _cruisAlt) then {
_state set[0, STAGE_COAST]; if(_cruisAlt < 140) then {
_state set[0, STAGE_TERMINAL];
} else { } else {
_returnTargetPos = _seekerTargetPos vectorAdd [0,0,_distanceToTarget*2]; _state set[0, STAGE_COAST];
};
} else {
_returnTargetPos = _seekerTargetPos vectorAdd [0,0,_distanceToTarget*1.5];
}; };
}; };
case STAGE_COAST: { case STAGE_COAST: {
TRACE_1("STAGE_COAST",""); TRACE_1("STAGE_COAST","");
TRACE_1("", ((ASLToATL _projectilePos) select 2) - (( ASLToATL _seekerTargetPos) select 2) ); TRACE_1("", ((ASLToATL _projectilePos) select 2) - (( ASLToATL _seekerTargetPos) select 2) );
if(_distanceShooterToTarget < 1250 || _distanceToTarget < ( ((ASLToATL _projectilePos) select 2) - (( ASLToATL _seekerTargetPos) select 2) ) * 1.5) then { if(_distanceToTarget < ( ((ASLToATL _projectilePos) select 2) - (( ASLToATL _seekerTargetPos) select 2) ) * 1.5) then {
_state set[0, STAGE_TERMINAL]; _state set[0, STAGE_TERMINAL];
}; } else {
_returnTargetPos = _seekerTargetPos vectorAdd [0,0,(_projectilePos select 2)]; _returnTargetPos = _seekerTargetPos vectorAdd [0,0,(_projectilePos select 2)];
}; };
};
case STAGE_TERMINAL: { case STAGE_TERMINAL: {
TRACE_1("STAGE_TERMINAL",""); TRACE_1("STAGE_TERMINAL","");
//_returnTargetPos = _seekerTargetPos vectorAdd [0,0,_distanceToTarget * 0.02]; //_returnTargetPos = _seekerTargetPos vectorAdd [0,0,_distanceToTarget * 0.02];
_returnTargetPos = _seekerTargetPos vectorAdd [0,0,_distanceToTarget * 0.002];
}; };
}; };

View File

@ -41,15 +41,14 @@ if ( isNil "_lockMode" || { ! ( _lockMode in (getArray (_config >> "seekerLockMo
// If we didn't get a target, try to fall back on tab locking // If we didn't get a target, try to fall back on tab locking
if(isNil "_target") then { if(isNil "_target") then {
if(!isPlayer _shooter) then { if(!isPlayer _shooter) then {
// This was an AI shot, lets still guide it on the AI target // This was an AI shot, lets still guide it on the AI target
_target = _shooter getVariable[QGVAR(vanilla_target), nil]; _target = _shooter getVariable[QGVAR(vanilla_target), nil];
TRACE_1("Detected AI Shooter!", _target); TRACE_1("Detected AI Shooter!", _target);
} else { } else {
_canUseLock = getNumber (_config >> "canVanillaLock"); _canUseLock = getNumber (_config >> "canVanillaLock");
if(_canUseLock > 0) then {
// @TODO: Get vanilla target // @TODO: Get vanilla target
if(_canUseLock > 0 || difficulty < 1) then {
_vanillaTarget = cursorTarget; _vanillaTarget = cursorTarget;
TRACE_1("Using Vanilla Locking", _vanillaTarget); TRACE_1("Using Vanilla Locking", _vanillaTarget);

View File

@ -8,7 +8,7 @@
<Polish>Zaawansowane naprowadzanie rakiet</Polish> <Polish>Zaawansowane naprowadzanie rakiet</Polish>
<German>Erweitertes Raketenlenksystem</German> <German>Erweitertes Raketenlenksystem</German>
<Czech>Pokročilé řízení střel</Czech> <Czech>Pokročilé řízení střel</Czech>
<Italian>Avanzato Missile Guidance</Italian> <Italian>Guida missili avanzata</Italian>
<Portuguese>Avançado Missile Guidance</Portuguese> <Portuguese>Avançado Missile Guidance</Portuguese>
<Hungarian>Fejlett rakétairányító</Hungarian> <Hungarian>Fejlett rakétairányító</Hungarian>
<Russian>Расширенный ракетой</Russian> <Russian>Расширенный ракетой</Russian>
@ -20,7 +20,7 @@
<Polish>Hydra-70 DAGR</Polish> <Polish>Hydra-70 DAGR</Polish>
<German>Hydra-70 DAGR Rackete</German> <German>Hydra-70 DAGR Rackete</German>
<Czech>Hydra-70 DAGR</Czech> <Czech>Hydra-70 DAGR</Czech>
<Italian></Italian> <Italian>Missile Hydra-70 DAGR</Italian>
<Portuguese></Portuguese> <Portuguese></Portuguese>
<Hungarian>Hydra-70 DAGR rakéta</Hungarian> <Hungarian>Hydra-70 DAGR rakéta</Hungarian>
<Russian></Russian> <Russian></Russian>
@ -32,7 +32,7 @@
<Polish>DAGR</Polish> <Polish>DAGR</Polish>
<German>DAGR</German> <German>DAGR</German>
<Czech>DAGR</Czech> <Czech>DAGR</Czech>
<Italian></Italian> <Italian>DAGR</Italian>
<Portuguese></Portuguese> <Portuguese></Portuguese>
<Hungarian>DAGR</Hungarian> <Hungarian>DAGR</Hungarian>
<Russian></Russian> <Russian></Russian>
@ -44,7 +44,7 @@
<Polish>Laserowo naprowadzana rakieta Hydra-70 DAGR</Polish> <Polish>Laserowo naprowadzana rakieta Hydra-70 DAGR</Polish>
<German>Hydra-70 DAGR lasergelenkte Rakete</German> <German>Hydra-70 DAGR lasergelenkte Rakete</German>
<Czech>Hydra-70 DAGR laserem naváděná střela</Czech> <Czech>Hydra-70 DAGR laserem naváděná střela</Czech>
<Italian></Italian> <Italian>Hydra-70 DAGR missile guida laser</Italian>
<Portuguese></Portuguese> <Portuguese></Portuguese>
<Hungarian>Hydra-70 DAGR lézer-irányított rakéta</Hungarian> <Hungarian>Hydra-70 DAGR lézer-irányított rakéta</Hungarian>
<Russian></Russian> <Russian></Russian>
@ -56,7 +56,7 @@
<Polish>Hellfire II AGM-114K</Polish> <Polish>Hellfire II AGM-114K</Polish>
<German>Hellfire II AGM-114K</German> <German>Hellfire II AGM-114K</German>
<Czech>Hellfire II AGM-114K</Czech> <Czech>Hellfire II AGM-114K</Czech>
<Italian></Italian> <Italian>Missile Hellfire II AGM-114K</Italian>
<Portuguese></Portuguese> <Portuguese></Portuguese>
<Hungarian>Hellfire II AGM-114K rakéta</Hungarian> <Hungarian>Hellfire II AGM-114K rakéta</Hungarian>
<Russian></Russian> <Russian></Russian>
@ -68,7 +68,7 @@
<Polish>AGM-114K</Polish> <Polish>AGM-114K</Polish>
<German>AGM-114K</German> <German>AGM-114K</German>
<Czech>AGM-114K</Czech> <Czech>AGM-114K</Czech>
<Italian></Italian> <Italian>AGM-114K</Italian>
<Portuguese></Portuguese> <Portuguese></Portuguese>
<Hungarian>AGM-114K</Hungarian> <Hungarian>AGM-114K</Hungarian>
<Russian></Russian> <Russian></Russian>
@ -80,7 +80,7 @@
<Polish>Laserowo naprowadzana rakieta Hellfire II AGM-114K</Polish> <Polish>Laserowo naprowadzana rakieta Hellfire II AGM-114K</Polish>
<German>Hellfire II AGM-114K Lasergelenkte Rakete</German> <German>Hellfire II AGM-114K Lasergelenkte Rakete</German>
<Czech>Hellfire II AGM-114K laserem naváděná střela</Czech> <Czech>Hellfire II AGM-114K laserem naváděná střela</Czech>
<Italian></Italian> <Italian>Missile guida laser Hellfire II AGM-114K</Italian>
<Portuguese></Portuguese> <Portuguese></Portuguese>
<Hungarian>Hellfire II AGM-114K lézer-irányított rakéta</Hungarian> <Hungarian>Hellfire II AGM-114K lézer-irányított rakéta</Hungarian>
<Russian></Russian> <Russian></Russian>

View File

@ -34,6 +34,7 @@
<Czech>Vylézt</Czech> <Czech>Vylézt</Czech>
<Russian>Подняться</Russian> <Russian>Подняться</Russian>
<Hungarian>Mászás</Hungarian> <Hungarian>Mászás</Hungarian>
<Italian>Arrampicati</Italian>
</Key> </Key>
<Key ID="STR_ACE_Movement_CanNotClimb"> <Key ID="STR_ACE_Movement_CanNotClimb">
<English>Can't climb here</English> <English>Can't climb here</English>
@ -44,6 +45,7 @@
<Czech>Zde není možné vylézt</Czech> <Czech>Zde není možné vylézt</Czech>
<Russian>Не можете подняться здесь</Russian> <Russian>Не можете подняться здесь</Russian>
<Hungarian>Itt nem tudsz mászni</Hungarian> <Hungarian>Itt nem tudsz mászni</Hungarian>
<Italian>Non puoi arrampicarti qui</Italian>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -5,6 +5,7 @@
if (!hasInterface) exitWith {}; if (!hasInterface) exitWith {};
GVAR(ShowNamesTime) = -10;
// Add keybinds // Add keybinds
["ACE3", QGVAR(showNameTags), localize "STR_ACE_NameTags_ShowNames", ["ACE3", QGVAR(showNameTags), localize "STR_ACE_NameTags_ShowNames",

View File

@ -9,9 +9,6 @@ PREP(getVehicleData);
PREP(initIsSpeaking); PREP(initIsSpeaking);
PREP(moduleNameTags); PREP(moduleNameTags);
PREP(onDraw3d); PREP(onDraw3d);
PREP(onMouseZChanged);
PREP(setText); PREP(setText);
GVAR(ShowNamesTime) = -10;
ADDON = true; ADDON = true;

View File

@ -20,8 +20,8 @@ if (isServer) then {
//If someone disconnects while speaking, reset their variable //If someone disconnects while speaking, reset their variable
addMissionEventHandler ["HandleDisconnect", { addMissionEventHandler ["HandleDisconnect", {
PARAMS_1(_disconnectedPlayer); PARAMS_1(_disconnectedPlayer);
if (_disconnectedPlayer getVariable [QGVAR(isSpeaking), false]) then { if (_disconnectedPlayer getVariable [QGVAR(isSpeakingInGame), false]) then {
_disconnectedPlayer setVariable [QGVAR(isSpeaking), false, true]; _disconnectedPlayer setVariable [QGVAR(isSpeakingInGame), false, true];
}; };
}]; }];
}; };
@ -31,46 +31,40 @@ if (!hasInterface) exitWith {};
["playerChanged", { ["playerChanged", {
//When player changes, make sure to reset old unit's variable //When player changes, make sure to reset old unit's variable
PARAMS_2(_newUnit,_oldUnit); PARAMS_2(_newUnit,_oldUnit);
if (_oldUnit getVariable [QGVAR(isSpeaking), false]) then { if ((!isNull _oldUnit) && {_oldUnit getVariable [QGVAR(isSpeakingInGame), false]}) then {
_oldUnit setVariable [QGVAR(isSpeaking), false, true]; _oldUnit setVariable [QGVAR(isSpeakingInGame), false, true];
}; };
}] call EFUNC(common,addEventHandler); }] call EFUNC(common,addEventHandler);
//For performance, chose different code paths at mission start based on installed mods (once, instead of checking each time) if (isClass (configFile >> "cfgPatches" >> "acre_api")) then {
_pfEHCode = switch (true) do { diag_log text format ["[ACE_nametags] - ACRE Detected"];
case (isClass (configFile >> "cfgPatches" >> "acre_api")): { DFUNC(isSpeaking) = {
{ PARAMS_1(_unit);
_oldSetting = ACE_player getVariable [QGVAR(isSpeaking), false]; ([_unit] call acre_api_fnc_isSpeaking) || ([ACE_player] call acre_api_fnc_isBroadcasting)
_newSetting = ([ACE_player] call acre_api_fnc_isSpeaking) || ([ACE_player] call acre_api_fnc_isBroadcasting) || {!(isNull findDisplay 55)};
if (!(_oldSetting isEqualTo _newSetting)) then {
ACE_player setVariable [QGVAR(isSpeaking), _newSetting, true];
}; };
} else {
if (isClass (configFile >> "cfgPatches" >> "task_force_radio")) then {
diag_log text format ["[ACE_nametags] - TFR Detected"];
DFUNC(isSpeaking) = {
PARAMS_1(_unit);
(_unit getVariable ["tf_isSpeaking", false])
}; };
}; } else {
case (isClass (configFile >> "cfgPatches" >> "task_force_radio")): { //No Radio Mod - Start a PFEH to watch the internal VON icon
//Note: TFAR has a TFAR_fnc_isSpeaking function, but it has a fairly costly `callExtension` //Note: class RscDisplayVoiceChat {idd = 55} - only present when talking
//I think it's much faster to use the internal "tf_isSpeaking" variable
//If we don't care about the built-in VON, we could switch this to a pure event driven system [{
{ _oldSetting = ACE_player getVariable [QGVAR(isSpeakingInGame), false];
_oldSetting = ACE_player getVariable [QGVAR(isSpeaking), false];
_newSetting = (ACE_player getVariable ["tf_isSpeaking", false]) || {!(isNull findDisplay 55)};
if (!(_oldSetting isEqualTo _newSetting)) then {
ACE_player setVariable [QGVAR(isSpeaking), _newSetting, true];
};
};
};
default {
//Note: class RscDisplayVoiceChat {idd = 55}; //only present when talking
{
_oldSetting = ACE_player getVariable [QGVAR(isSpeaking), false];
_newSetting = (!(isNull findDisplay 55)); _newSetting = (!(isNull findDisplay 55));
if (!(_oldSetting isEqualTo _newSetting)) then { if (!(_oldSetting isEqualTo _newSetting)) then {
ACE_player setVariable [QGVAR(isSpeaking), _newSetting, true]; ACE_player setVariable [QGVAR(isSpeakingInGame), _newSetting, true];
};
};
};
}; };
} , 0.1, []] call CBA_fnc_addPerFrameHandler;
//Is 0.05sec precision enough?? DFUNC(isSpeaking) = {
[_pfEHCode, 0.05, []] call CBA_fnc_addPerFrameHandler; PARAMS_1(_unit);
(_unit getVariable [QGVAR(isSpeakingInGame), false])
};
};
};

Some files were not shown because too many files have changed in this diff Show More