Merge pull request #2 from acemod/master

Update to current version of ace 3
This commit is contained in:
Dimas 2015-05-01 19:41:13 +02:00
commit e394a1ade1
262 changed files with 2882 additions and 1490 deletions

View File

@ -43,7 +43,7 @@ evromalarkey <evromalarkey@gmail.com>
Falke75
Ferenczi
Ferenzi
Filip Basara <filip.basara93@googlemail.com> (Logo)
Filip Basara <filip.basara93@googlemail.com>
FreeZbe <freeseb@gmail.com>
geraldbolso1899
Ghost
@ -87,3 +87,5 @@ Kavinsky <nmunozfernandez@gmail.com>
Coren <coren4@gmail.com>
OnkelDisMaster <onkeldismaster@gmail.com>
Dimaslg <dimaslg@telecable.e>
VyMajoris(W-Cephei)<vycanismajoriscsa@gmail.com>
Bla1337 <t3hslowpoke@gmail.com>

View File

@ -24,7 +24,7 @@ GVAR(currentGrid) = 0;
GVAR(INIT_MESSAGE_ENABLED) = false;
GVAR(extensionAvailable) = true;
/* @TODO: Remove this until verisoning is in sync with cmake/build versioning
/* @TODO: Remove this until versioning is in sync with cmake/build versioning
GVAR(extensionVersion) = ("ace_advanced_ballistics" callExtension "version");
GVAR(extensionAvailable) = (GVAR(extensionVersion) == EXTENSION_REQUIRED_VERSION);
if (!GVAR(extensionAvailable)) exitWith {

View File

@ -47,7 +47,7 @@ if (GVAR(onlyActiveForLocalPlayers) && !(local _unit)) then {
_abort = true;
};
};
//if (!GVAR(vehicleGunnerEnabled) && !(_unit isKindOf "Man")) then { _abort = true; }; // TODO: We currently do not have firedEHs on vehicles
//if (!GVAR(vehicleGunnerEnabled) && !(_unit isKindOf "Man")) then { _abort = true; }; // We currently do not have firedEHs on vehicles
if (GVAR(disabledInFullAutoMode) && getNumber(configFile >> "cfgWeapons" >> _weapon >> _mode >> "autoFire") == 1) then { _abort = true; };
if (_abort || !(GVAR(extensionAvailable))) exitWith {

View File

@ -1,4 +1,4 @@
["ACE3", QGVAR(ProtractorKey), localize "STR_ACE_AdvancedBallistics_ProtractorKey",
["ACE3 Equipment", QGVAR(ProtractorKey), localize "STR_ACE_AdvancedBallistics_ProtractorKey",
{
// Conditions: canInteract
if !([ACE_player, objNull, []] call EFUNC(common,canInteractWith)) exitWith {false};

View File

@ -9,6 +9,7 @@
<French>Afficher les info sur le vent</French>
<Spanish>Mostrar información del viento</Spanish>
<German>Windinformationen anzeigen</German>
<Hungarian>Széladatok mutatása</Hungarian>
</Key>
<Key ID="STR_ACE_AdvancedBallistics_ProtractorKey">
<English>Show Protractor</English>
@ -18,6 +19,7 @@
<French>Afficher le rapporteur</French>
<Spanish>Mostrar transportador</Spanish>
<German>Winkelmesser anzeigen</German>
<Hungarian>Szögmérő mutatása</Hungarian>
</Key>
</Package>
</Project>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<Project name="ACE">
<Package name="Aircraft">
<Key ID="STR_ACE_Aircraft_CMFlareLauncher_Burst_Name">
@ -35,6 +35,7 @@
<Hungarian>Rakodórámpa nyitása</Hungarian>
<Russian>Открыть грузовой отсек</Russian>
<Italian>Apri la porta del cargo</Italian>
<Portuguese>Abrir porta de carga</Portuguese>
</Key>
<Key ID="STR_ACE_Aircraft_CloseCargoRamp">
<English>Close Cargo Door</English>
@ -46,6 +47,7 @@
<Hungarian>Rakodórámpa zárása</Hungarian>
<Russian>Закрыть грузовой отсек</Russian>
<Italian>Chiudi la porta del cargo</Italian>
<Portuguese>Fechar porta de carga</Portuguese>
</Key>
</Package>
</Project>

View File

@ -1,4 +1,4 @@
["ACE3", QGVAR(ATragMXDialogKey), localize "STR_ACE_ATragMX_ATragMXDialogKey",
["ACE3 Equipment", QGVAR(ATragMXDialogKey), localize "STR_ACE_ATragMX_ATragMXDialogKey",
{
// Conditions: canInteract
if !([ACE_player, objNull, []] call EFUNC(common,canInteractWith)) exitWith {false};

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<Project name="ACE">
<Package name="ATragMX">
<Key ID="STR_ACE_ATragMX_Name">
@ -20,6 +20,8 @@
<Spanish>Abrir ATragMX</Spanish>
<French>Ouvrir ATragMX</French>
<German>ATragMX öffnen</German>
<Italian>Apri ATragMX</Italian>
<Hungarian>ATragMX elővétele</Hungarian>
</Key>
<Key ID="STR_ACE_ATragMX_Description">
<English>Rugged PDA with ATragMX</English>
@ -27,7 +29,9 @@
<Russian>Защищенный КПК с ATragMX</Russian>
<Spanish>PDA rugerizada con ATragMX</Spanish>
<German>Robuster PDA mit ATragMX</German>
<French>PDA robuste avec ATragMX</French>
<French>PDA avec ATragMX</French>
<Italian>PDA Robusto con ATragMX</Italian>
<Hungarian>Megerősített PDA, ATragMX-el</Hungarian>
</Key>
<Key ID="STR_ACE_ATragMX_ATragMXDialogKey">
<English>Open ATragMX</English>
@ -36,6 +40,8 @@
<Spanish>Abrir ATragMX</Spanish>
<French>Ouvrir ATragMX</French>
<German>ATragMX öffnen</German>
<Italian>Apri ATragMX</Italian>
<Hungarian>ATragMX elővétele</Hungarian>
</Key>
</Package>
</Project>

View File

@ -176,8 +176,10 @@
<Russian>Не удалось присоединить</Russian>
<Spanish>Error al acoplar</Spanish>
<Czech>Připnutí selhalo</Czech>
<Portuguese>Erro ao anexar</Portuguese>
<Polish>Przyczepianie nie powiodło się</Polish>
<Hungarian>Hozzácsatolás sikertelen</Hungarian>
<Italian>Impossibile Attaccare</Italian>
</Key>
<Key ID="STR_ACE_Attach_Item_Attached">
<English>%1&lt;br/&gt;Attached</English>

View File

@ -322,13 +322,14 @@ class CfgMagazines {
class 10Rnd_762x54_Mag: 10Rnd_762x51_Mag {
initSpeed = 800;
};
class ACE_10Rnd_762x54_Tracer_mag: 16Rnd_9x21_Mag {
class ACE_10Rnd_762x54_Tracer_mag: 10Rnd_762x54_Mag {
author = "$STR_ACE_Common_ACETeam";
ammo = "ACE_762x54_Ball_7T2";
displayName = "$STR_ACE_10Rnd_762x54_Tracer_mag_Name";
displayNameShort = "$STR_ACE_10Rnd_762x54_Tracer_mag_NameShort";
descriptionShort = "$STR_ACE_10Rnd_762x54_Tracer_mag_Description";
initSpeed = 800;
tracersEvery = 1;
};
class 150Rnd_762x54_Box: 150Rnd_762x51_Box {

View File

@ -42,6 +42,7 @@ class CfgVehicles {
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mk316_Mod_0_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,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);
@ -59,6 +60,7 @@ class CfgVehicles {
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mk316_Mod_0_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,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_SD,3);
MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_M993_AP_Mag,4);
@ -82,6 +84,7 @@ class CfgVehicles {
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mk316_Mod_0_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,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4);
};
};
@ -200,6 +203,7 @@ class CfgVehicles {
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mk316_Mod_0_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,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x67_Mk248_Mod_0_Mag,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x67_Mk248_Mod_1_Mag,4);

View File

@ -509,6 +509,7 @@ class CfgWeapons {
class srifle_EBR_F: EBR_base_F {
magazines[] = {
"20Rnd_762x51_Mag",
"ACE_20Rnd_762x51_Mag_Tracer",
"ACE_20Rnd_762x51_Mag_Tracer_Dim",
"ACE_20Rnd_762x51_Mk316_Mod_0_Mag",
"ACE_20Rnd_762x51_M118LR_Mag",
@ -560,6 +561,7 @@ class CfgWeapons {
class srifle_DMR_03_F: DMR_03_base_F {
magazines[] = {
"20Rnd_762x51_Mag",
"ACE_20Rnd_762x51_Mag_Tracer",
"ACE_20Rnd_762x51_Mag_Tracer_Dim",
"ACE_20Rnd_762x51_Mk316_Mod_0_Mag",
"ACE_20Rnd_762x51_M118LR_Mag",
@ -584,6 +586,7 @@ class CfgWeapons {
class srifle_DMR_06_camo_F: DMR_06_base_F {
magazines[] = {
"20Rnd_762x51_Mag",
"ACE_20Rnd_762x51_Mag_Tracer",
"ACE_20Rnd_762x51_Mag_Tracer_Dim",
"ACE_20Rnd_762x51_Mk316_Mod_0_Mag",
"ACE_20Rnd_762x51_M118LR_Mag",

View File

@ -1,6 +1,8 @@
// by commy2
#include "script_component.hpp"
private ["_wall", "_paper"];
_wall = _this select 0;
if (local _wall) then {

View File

@ -31,7 +31,7 @@
<Hungarian>Kaliber: 6,5x39mm Nyomjelző IR-DIM&lt;br /&gt;Lövedékek: 30&lt;br /&gt;Használható: MX/C/M/SW/3GL</Hungarian>
<German>Kaliber: 6,5x39mm Leuchtspur IR-DIM&lt;br /&gt;Patronen: 30&lt;br /&gt;Eingesetzt von: MX/C/M/SW/3GL</German>
<Spanish>Calibre: 6,5x39mm Trazadoras IR-DIM&lt;br /&gt;Balas: 30&lt;br /&gt;Se usa en: MX/C/M/SW/3GL</Spanish>
<French>Calibre: 6,5x39mm Traçantes IR-DIM&lt;br /&gt;Cartouches: 30&lt;br /&gt;Utilisé dans: MX/C/M/SW/3GL</French>
<French>Calibre: 6,5x39mm Traçantes IR-DIM&lt;br /&gt;Cartouches: 30&lt;br /&gt;Utilisé avec: MX/C/M/SW/3GL</French>
<Polish>Kaliber: 6,5x39mm Smugacz IR-DIM&lt;br /&gt;Pociski: 30&lt;br /&gt;Używane w: MX/C/M/SW/3GL</Polish>
<Czech>Ráže: 6.5x39mm Svítící IR-DIM&lt;br /&gt;Munice: 30&lt;br /&gt;Použití: MX/C/M/SW/3GL</Czech>
<Portuguese>Calibre: 6,5x39mm Traçante IR-DIM&lt;br /&gt;Projéteis: 30&lt;br /&gt;Usado em: MX/C/M/SW/3GL</Portuguese>
@ -67,7 +67,7 @@
<Hungarian>Kaliber: 6,5x39mm Halk&lt;br /&gt;Lövedékek: 30&lt;br /&gt;Használható: MX/C/M/SW/3GL</Hungarian>
<German>Kaliber: 6,5x39mm SD&lt;br /&gt;Patronen: 30&lt;br /&gt;Eingesetzt von: MX/C/M/SW/3GL</German>
<Spanish>Calibre: 6,5x39mm SD&lt;br /&gt;Balas: 30&lt;br /&gt;Se usa en: MX/C/M/SW/3GL</Spanish>
<French>Calibre: 6,5x39mm SD&lt;br /&gt;Cartouches: 30&lt;br /&gt;Utilisé dans: MX/C/M/SW/3GL</French>
<French>Calibre: 6,5x39mm SD&lt;br /&gt;Cartouches: 30&lt;br /&gt;Utilisé avec: MX/C/M/SW/3GL</French>
<Polish>Kaliber: 6,5x39mm SD&lt;br /&gt;Pociski: 30&lt;br /&gt;Używane w: MX/C/M/SW/3GL</Polish>
<Czech>Ráže: 6.5x39mm SD&lt;br /&gt;Munice: 30&lt;br /&gt;Použití: MX/C/M/SW/3GL</Czech>
<Portuguese>Calibre: 6,5x39mm SD&lt;br /&gt;Projéteis: 30&lt;br /&gt;Usado em: MX/C/M/SW/3GL</Portuguese>
@ -103,7 +103,7 @@
<Hungarian>Kaliber: 6,5x39mm Páncéltörő&lt;br /&gt;Lövedékek: 30&lt;br /&gt;Használható: MX/C/M/SW/3GL</Hungarian>
<German>Kaliber: 6,5x39mm AP&lt;br /&gt;Patronen: 30&lt;br /&gt;Eingesetzt von: MX/C/M/SW/3GL</German>
<Spanish>Calibre: 6,5x39mm AP&lt;br /&gt;Balas: 30&lt;br /&gt;Se usa en: MX/C/M/SW/3GL</Spanish>
<French>Calibre: 6,5x39mm AP&lt;br /&gt;Cartouches: 30&lt;br /&gt;Utilisé dans: MX/C/M/SW/3GL</French>
<French>Calibre: 6,5x39mm AP&lt;br /&gt;Cartouches: 30&lt;br /&gt;Utilisé avec: MX/C/M/SW/3GL</French>
<Polish>Kaliber: 6,5x39mm AP&lt;br /&gt;Pociski: 30&lt;br /&gt;Używane w: MX/C/M/SW/3GL</Polish>
<Czech>Ráže: 6.5x39mm AP&lt;br /&gt;Munice: 30&lt;br /&gt;Použití: MX/C/M/SW/3GL</Czech>
<Portuguese>Calibre: 6,5x39mm AP&lt;br /&gt;Projéteis: 30&lt;br /&gt;Usado em: MX/C/M/SW/3GL</Portuguese>
@ -140,7 +140,7 @@
<Hungarian>Kaliber: 6,5x39mm Nyomjelző IR-DIM&lt;br /&gt;Lövedékek: 30&lt;br /&gt;Használható: Katiba</Hungarian>
<German>Kaliber: 6,5x39mm Leuchtspur IR-DIM&lt;br /&gt;Patronen: 30&lt;br /&gt;Eingesetzt von: Katiba</German>
<Spanish>Calibre: 6,5x39mm Trazadoras IR-DIM&lt;br /&gt;Balas: 30&lt;br /&gt;Se usa en: Katiba</Spanish>
<French>Calibre: 6,5x39mm Traçantes IR-DIM&lt;br /&gt;Cartouches: 30&lt;br /&gt;Utilisé dans: Katiba</French>
<French>Calibre: 6,5x39mm Traçantes IR-DIM&lt;br /&gt;Cartouches: 30&lt;br /&gt;Utilisé avec: Katiba</French>
<Polish>Kaliber: 6,5x39mm Smugacz IR-DIM&lt;br /&gt;Pociski: 30&lt;br /&gt;Używane w: Katiba</Polish>
<Czech>Ráže: 6.5x39mm Svítící IR-DIM&lt;br /&gt;Munice: 30&lt;br /&gt;Použití: Katiba</Czech>
<Portuguese>Calibre: 6,5x39mm Traçante IR-DIM&lt;br /&gt;Projéteis: 30&lt;br /&gt;Usado em: Katiba</Portuguese>
@ -176,7 +176,7 @@
<Hungarian>Kaliber: 6,5x39mm Halk&lt;br /&gt;Lövedékek: 30&lt;br /&gt;Használható: Katiba</Hungarian>
<German>Kaliber: 6,5x39mm SD&lt;br /&gt;Patronen: 30&lt;br /&gt;Eingesetzt von: Katiba</German>
<Spanish>Calibre: 6,5x39mm SD&lt;br /&gt;Balas: 30&lt;br /&gt;Se usa en: Katiba</Spanish>
<French>Calibre: 6,5x39mm SD&lt;br /&gt;Cartouches: 30&lt;br /&gt;Utilisé dans: Katiba</French>
<French>Calibre: 6,5x39mm SD&lt;br /&gt;Cartouches: 30&lt;br /&gt;Utilisé avec: Katiba</French>
<Polish>Kaliber: 6,5x39mm SD&lt;br /&gt;Naboje: 30&lt;br /&gt;Używane w: Katiba</Polish>
<Czech>Ráže: 6.5x39mm SD&lt;br /&gt;Munice: 30&lt;br /&gt;Použití: Katiba</Czech>
<Portuguese>Calibre: 6,5x39mm SD&lt;br /&gt;Projéteis: 30&lt;br /&gt;Usado em: Katiba</Portuguese>
@ -212,7 +212,7 @@
<Hungarian>Kaliber: 6,5x39mm Páncéltörő&lt;br /&gt;Lövedékek: 30&lt;br /&gt;Használható: Katiba</Hungarian>
<German>Kaliber: 6,5x39mm AP&lt;br /&gt;Patronen: 30&lt;br /&gt;Eingesetzt von: Katiba</German>
<Spanish>Calibre: 6,5x39mm AP&lt;br /&gt;Balas: 30&lt;br /&gt;Se usa en: Katiba</Spanish>
<French>Calibre: 6,5x39mm AP&lt;br /&gt;Cartouches: 30&lt;br /&gt;Utilisé dans: Katiba</French>
<French>Calibre: 6,5x39mm AP&lt;br /&gt;Cartouches: 30&lt;br /&gt;Utilisé avec: Katiba</French>
<Polish>Kaliber: 6,5x39mm AP&lt;br /&gt;Pociski: 30&lt;br /&gt;Używane w: Katiba</Polish>
<Czech>Ráže: 6.5x39mm AP&lt;br /&gt;Munice: 30&lt;br /&gt;Použití: Katiba</Czech>
<Portuguese>Calibre: 6,5x39mm AP&lt;br /&gt;Projéteis: 30&lt;br /&gt;Usado em: Katiba</Portuguese>
@ -249,7 +249,7 @@
<Hungarian>Kaliber: 5,56x45mm Nyomjelző IR-DIM&lt;br /&gt;Lövedékek: 30&lt;br /&gt;Használható: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Hungarian>
<German>Kaliber: 5,56x45mm Leuchtspur IR-DIM&lt;br /&gt;Patronen: 30&lt;br /&gt;Eingesetzt von: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</German>
<Spanish>Calibre: 5,56x45mm Trazadoras IR-DIM&lt;br /&gt;Balas: 30&lt;br /&gt;Se usa en: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Spanish>
<French>Calibre: 5,56x45mm Traçantes IR-DIM&lt;br /&gt;Cartouches: 30&lt;br /&gt;Utilisé dans: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</French>
<French>Calibre: 5,56x45mm Traçantes IR-DIM&lt;br /&gt;Cartouches: 30&lt;br /&gt;Utilisé avec: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</French>
<Polish>Kaliber: 5,56x45mm Smugacz IR-DIM&lt;br /&gt;Pociski: 30&lt;br /&gt;Używane w: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Polish>
<Czech>Ráže: 5.56x45mm Svítící IR-DIM&lt;br /&gt;Munice: 30&lt;br /&gt;Použití: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Czech>
<Portuguese>Calibre: 5,56x45mm Traçante IR-DIM&lt;br /&gt;Projéteis: 30&lt;br /&gt;Usado em: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Portuguese>
@ -286,7 +286,7 @@
<Hungarian>Kaliber: 7,62x51mm Nyomjelző&lt;br /&gt;Lövedékek: 20&lt;br /&gt;Használható: Mk18 ABR</Hungarian>
<German>Kaliber: 7,62x51mm Leuchtspur&lt;br /&gt;Patronen: 20&lt;br /&gt;Eingesetzt von: EBR</German>
<Spanish>Calibre: 7,62x51mm Trazadora&lt;br /&gt;Balas: 20&lt;br /&gt;Se usa en: Mk18 ABR</Spanish>
<French>Calibre: 7,62x51mm Traçantes&lt;br /&gt;Cartouches: 20&lt;br /&gt;Utilisé dans: EBR</French>
<French>Calibre: 7,62x51mm Traçantes&lt;br /&gt;Cartouches: 20&lt;br /&gt;Utilisé avec: EBR</French>
<Polish>Kaliber: 7,62x51mm Smugacz&lt;br /&gt;Pociski: 20&lt;br /&gt;Używane w: Mk18 ABR</Polish>
<Czech>Ráže: 7.62x51mm Svítící&lt;br /&gt;Munice: 20&lt;br /&gt;Použití: Mk18 ABR</Czech>
<Portuguese>Calibre: 7,62x51mm Traçante&lt;br /&gt;Projéteis: 20&lt;br /&gt;Usado em: Mk18 ABR</Portuguese>
@ -322,7 +322,7 @@
<Hungarian>Kaliber: 7,62x51mm Nyomjelző IR-DIM&lt;br /&gt;Lövedékek: 20&lt;br /&gt;Használható: Mk18 ABR</Hungarian>
<German>Kaliber: 7,62x51mm Leuchtspur IR-DIM&lt;br /&gt;Patronen: 20&lt;br /&gt;Eingesetzt von: EBR</German>
<Spanish>Calibre: 7,62x51mm Trazadoras IR-DIM&lt;br /&gt;Balas: 20&lt;br /&gt;Se usa en: Mk18 ABR</Spanish>
<French>Calibre: 7,62x51mm Traçantes IR-DIM&lt;br /&gt;Cartouches: 20&lt;br /&gt;Utilisé dans: EBR</French>
<French>Calibre: 7,62x51mm Traçantes IR-DIM&lt;br /&gt;Cartouches: 20&lt;br /&gt;Utilisé avec: EBR</French>
<Polish>Kaliber: 7,62x51mm Smugacz IR-DIM&lt;br /&gt;Pociski: 20&lt;br /&gt;Używane w: Mk18 ABR</Polish>
<Czech>Ráže: 7.62x51mm Svítící IR-DIM&lt;br /&gt;Munice: 20&lt;br /&gt;Použití: Mk18 ABR</Czech>
<Portuguese>Calibre: 7,62x51mm Traçante IR-DIM&lt;br /&gt;Projéteis: 20&lt;br /&gt;Usado em: Mk18 ABR</Portuguese>
@ -358,7 +358,7 @@
<Hungarian>Kaliber: 7,62x51mm Halk&lt;br /&gt;Lövedékek: 20&lt;br /&gt;Használható: Mk18 ABR</Hungarian>
<German>Kaliber: 7,62x51mm SD&lt;br /&gt;Patronen: 20&lt;br /&gt;Eingesetzt von: EBR</German>
<Spanish>Calibre: 7,62x51mm SD&lt;br /&gt;Balas: 20&lt;br /&gt;Se usa en: Mk18 ABR</Spanish>
<French>Calibre: 7,62x51mm SD&lt;br /&gt;Cartouches: 20&lt;br /&gt;Utilisé dans: EBR</French>
<French>Calibre: 7,62x51mm SD&lt;br /&gt;Cartouches: 20&lt;br /&gt;Utilisé avec: EBR</French>
<Polish>Kaliber: 7,62x51mm SD&lt;br /&gt;Pociski: 20&lt;br /&gt;Używane w: Mk18 ABR</Polish>
<Czech>Ráže: 7.62x51mm SD&lt;br /&gt;Munice: 20&lt;br /&gt;Použití: Mk18 ABR</Czech>
<Portuguese>Calibre: 7,62x51mm SD&lt;br /&gt;Projéteis: 20&lt;br /&gt;Usado em: Mk18 ABR</Portuguese>
@ -373,6 +373,7 @@
<French>Bande .338 NM 130Cps Traçante</French>
<Spanish>Cinta de 130 balas trazadoras de .338 NM</Spanish>
<Russian>Лента из 130-ти .338 NM трассирующих</Russian>
<Italian>.338 NM 130Rnd Tracciante Belt</Italian>
</Key>
<Key ID="STR_ACE_130Rnd_338_Mag_TracerNameShort">
<English>.338 NM Tracer</English>
@ -382,14 +383,16 @@
<French>.338 NM Traçante</French>
<Spanish>.338 NM Trazadora</Spanish>
<Russian>.338 NM трассирующие</Russian>
<Italian>.338 NM 130Rnd Tracciante</Italian>
</Key>
<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>
<German>Kaliber: .338 Norma Magnum Leuchtspur&lt;br /&gt;Patronen: 130&lt;br /&gt;Eingesetzt von: SPMG</German>
<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>
<French>Calibre: .338 Norma Magnum Traçante&lt;br /&gt;Cartouches: 130&lt;br /&gt;Utilisé avec: SPMG</French>
<Spanish>Calibre: .338 Norma Magnum trazadora&lt;br /&gt;Balas: 130&lt;br /&gt;Se usa en: SPMG</Spanish>
<Russian>Калибр: .338 Norma Magnum трассирующие&lt;br /&gt;Патронов: 130&lt;br /&gt;Используются в: SPMG</Russian>
<Italian>Calibro: .338 Norma Magnum Tracciante&lt;br /&gt;Munizioni: 130&lt;br /&gt;In uso su: SPMG</Italian>
</Key>
<Key ID="STR_ACE_130Rnd_338_Mag_Tracer_DimName">
<English>.338 NM 130Rnd IR-DIM Belt</English>
@ -398,6 +401,7 @@
<French>Bande .338 NM 130Cps IR-DIM</French>
<Spanish>Cinta de 130 balas IR-DIM de .338 NM</Spanish>
<Russian>Лента из 130-ти .338 NM ИК-трассирующих</Russian>
<Italian>.338 NM 130Rnd IR-DIM Belt</Italian>
</Key>
<Key ID="STR_ACE_130Rnd_338_Mag_Tracer_DimNameShort">
<English>.338 NM IR-DIM</English>
@ -407,14 +411,16 @@
<French>.338 NM IR-DIM</French>
<Spanish>.338 NM IR-DIM</Spanish>
<Russian>.338 NM ИК-трассирующие</Russian>
<Italian>.338 NM IR-DIM</Italian>
</Key>
<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>
<German>Kaliber: .338 Norma Magnum Leuchtspur IR-DIM&lt;br /&gt;Patronen: 130&lt;br /&gt;Eingesetzt von: SPMG</German>
<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>
<French>Calibre: .338 Norma Magnum Traçante IR-DIM&lt;br /&gt;Cartouches: 130&lt;br /&gt;Utilisé avec: SPMG</French>
<Spanish>Calibre: .338 Norma Magnum trazadora IR-DIM&lt;br /&gt;Balas: 130&lt;br /&gt;Se usa en: SPMG</Spanish>
<Russian>Калибр: .338 Norma Magnum ИК-трассирующие&lt;br /&gt;Патронов: 130&lt;br /&gt;Используются с: SPMG</Russian>
<Italian>Calibro: .338 Norma Magnum Tracciante IR-DIM&lt;br /&gt;Munizioni: 130&lt;br /&gt;In uso su: SPMG</Italian>
</Key>
<Key ID="STR_ACE_130Rnd_338_Mag_APName">
<English>.338 NM 130Rnd AP Belt</English>
@ -423,6 +429,7 @@
<French>Bande .338 NM 130Cps AP</French>
<Spanish>Cinta de 130 balas AP de .338 NM</Spanish>
<Russian>Лента из 130-ти .338 NM бронебойных</Russian>
<Italian>.338 NM 130Rnd AP Belt</Italian>
</Key>
<Key ID="STR_ACE_130Rnd_338_Mag_APNameShort">
<English>.338 NM AP</English>
@ -432,23 +439,26 @@
<French>.338 NM AP</French>
<Spanish>.338 NM AP</Spanish>
<Russian>.338 NM бронебойные</Russian>
<Italian>.338 NM AP</Italian>
</Key>
<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>
<German>Kaliber: .338 Norma Magnum Hartkern&lt;br /&gt;Patronen: 130&lt;br /&gt;Eingesetzt von: SPMG</German>
<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>
<French>Calibre: .338 Norma Magnum AP&lt;br /&gt;Cartouches: 130&lt;br /&gt;Utilisé avec: SPMG</French>
<Spanish>Calibre: .338 Norma Magnum AP&lt;br /&gt;Balas: 130&lt;br /&gt;Se usa en: SPMG</Spanish>
<Russian>Калибр: .338 Norma Magnum бронебойные&lt;br /&gt;Патронов: 130&lt;br /&gt;Используются с: SPMG</Russian>
<Italian>Calibro: .338 Norma Magnum AP&lt;br /&gt;Munizioni: 130&lt;br /&gt;In uso su: SPMG</Italian>
</Key>
<!-- 9.3x64mm 10Rnd -->
<Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_TracerName">
<English>9.3mm 10Rnd Tracer Mag</English>
<German>9,3mm 10-Patronen-Magazin Leuchtspur</German>
<Polish>Magazynek 9.3mm 10rd Smugacz</Polish>
<French>Chargeur 9.3mm 10Cps Traçante</French>
<French>Ch. 9.3mm 10Cps Traçante</French>
<Spanish>Cargador de 10 balas trazadoras de 9.3mm</Spanish>
<Russian>Магазин из 10-ти 9,3 мм трассирующих</Russian>
<Italian>9.3mm 10Rnd Tracer Mag</Italian>
</Key>
<Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_TracerNameShort">
<English>9.3mm Tracer</English>
@ -458,22 +468,25 @@
<French>9.3mm Traçante</French>
<Spanish>9.3mm Trazadora</Spanish>
<Russian>9,3 мм трассирующие</Russian>
<Italian>9.3mm Tracer</Italian>
</Key>
<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>
<German>Kaliber: 9,3x64mm Leuchtspur&lt;br /&gt;Patronen: 10&lt;br /&gt;Eingesetzt von: Cyrus</German>
<Polish>Kaliber: 9,3x64mm 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>
<French>Calibre: 9.3x64mm Traçante&lt;br /&gt;Cartouches: 10&lt;br /&gt;Utilisé avec: Cyrus</French>
<Spanish>Calibre: 9.3x64mm trazadora&lt;br /&gt;Balas: 10&lt;br /&gt;Se usa en: Cyrus</Spanish>
<Russian>Калибр: 9,3x64 мм трассирующие&lt;br /&gt;Патронов: 10&lt;br /&gt;Используются с: Cyrus</Russian>
<Italian>Calibro: 9.3x64mm Tracer&lt;br /&gt;Munizioni: 10&lt;br /&gt;In uso su: Cyrus</Italian>
</Key>
<Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_Tracer_DimName">
<English>9.3mm 10Rnd Tracer IR-DIM Mag</English>
<German>9,3mm 10-Patronen-Magazin Leuchtspur IR-DIM</German>
<Polish>Magazynek 9,3mm 10rd Smugacz IR-DIM</Polish>
<French>Chargeur 9.3mm 10Cps Traçante IR-DIM</French>
<French>Ch. 9.3mm 10Cps Traçante IR-DIM</French>
<Spanish>Cargador de 10 balas trazadoras IR-DIM de 9.3mm</Spanish>
<Russian>Магазин из 10-ти 9,3 мм ИК-трассирующих</Russian>
<Italian>9.3mm 10Rnd Tracciante IR-DIM Mag</Italian>
</Key>
<Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_Tracer_DimNameShort">
<English>9.3mm IR-DIM</English>
@ -483,14 +496,16 @@
<French>9.3mm IR-DIM</French>
<Spanish>9.3mm IR-DIM</Spanish>
<Russian>9,3 мм ИК-трассирующие</Russian>
<Italian>9.3mm IR-DIM</Italian>
</Key>
<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>
<German>Kaliber: 9,3x64mm Leuchtspur IR-DIM&lt;br /&gt;Patronen: 10&lt;br /&gt;Eingesetzt von: Cyrus</German>
<Polish>Kaliber: 9,3x64mm 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>
<French>Calibre: 9.3x64mm Traçante IR-DIM&lt;br /&gt;Cartouches: 10&lt;br /&gt;Utilisé avec: Cyrus</French>
<Spanish>Calibre: 9.3x64mm trazadora IR-DIM&lt;br /&gt;Balas: 10&lt;br /&gt;Se usa en: Cyrus</Spanish>
<Russian>Калибр: 9,3x64 мм ИК-трассирующие&lt;br /&gt;Патронов: 10&lt;br /&gt;Используются с: Cyrus</Russian>
<Italian>Calibro: 9.3x64mm Tracciante IR-DIM&lt;br /&gt;Munizioni: 10&lt;br /&gt;In uso su: Cyrus</Italian>
</Key>
<!-- 9.3x64mm 150Rnd Belt-->
<Key ID="STR_ACE_150Rnd_93x64_Mag_TracerName">
@ -500,6 +515,7 @@
<French>Bande 9.3mm 150Cps Traçante</French>
<Spanish>Cinta de 150 balas trazadoras de 9.3mm</Spanish>
<Russian>Лента из 150-ти 9,3 мм трассирующих</Russian>
<Italian>9.3mm 150Rnd Tracer Belt</Italian>
</Key>
<Key ID="STR_ACE_150Rnd_93x64_Mag_TracerNameShort">
<English>9.3mm Tracer</English>
@ -509,14 +525,16 @@
<French>9.3mm Traçante</French>
<Spanish>9.3mm Trazadora</Spanish>
<Russian>9,3 мм трассирующие</Russian>
<Italian>9.3mm Tracciante</Italian>
</Key>
<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>
<German>Kaliber: 9,3x64mm Leuchtspur&lt;br /&gt;Patronen: 150&lt;br /&gt;Eingesetzt von: Navid</German>
<Polish>Kaliber: 9,3x64mm 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>
<French>Calibre: 9.3x64mm Traçante&lt;br /&gt;Cartouches: 150&lt;br /&gt;Utilisé avec: Navid</French>
<Spanish>Calibre: 9.3x64mm trazadora&lt;br /&gt;Balas: 150&lt;br /&gt;Se usa en: Navid</Spanish>
<Russian>Калибр: 9,3x64 мм трассирующие&lt;br /&gt;Патронов: 150&lt;br /&gt;Используются с: Навид</Russian>
<Italian>Calibro: 9.3x64mm Tracciante&lt;br /&gt;Munizioni: 150&lt;br /&gt;In uso su: Navid</Italian>
</Key>
<Key ID="STR_ACE_150Rnd_93x64_Mag_Tracer_DimName">
<English>9.3mm 150Rnd Tracer IR-DIM Belt</English>
@ -525,6 +543,7 @@
<French>Bande 9.3mm 150Cps Traçante IR-DIM</French>
<Spanish>Cinta de 150 balas trazadoras IR-DIM de 9.3mm</Spanish>
<Russian>Лента из 150-ти 9,3 мм ИК-трассирующих</Russian>
<Italian>9.3mm 150Rnd Tracciante IR-DIM Belt</Italian>
</Key>
<Key ID="STR_ACE_150Rnd_93x64_Mag_Tracer_DimNameShort">
<English>9.3mm IR-DIM</English>
@ -534,14 +553,16 @@
<French>9.3mm IR-DIM</French>
<Spanish>9.3mm IR-DIM</Spanish>
<Russian>9,3 мм ИК-трассирующие</Russian>
<Italian>9.3mm IR-DIM</Italian>
</Key>
<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>
<German>Kaliber: 9,3x64mm Leuchtspur IR-DIM&lt;br /&gt;Patronen: 150&lt;br /&gt;Eingesetzt von: Navid</German>
<Polish>Kaliber: 9,3x64mm 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>
<French>Calibre: 9.3x64mm Traçante IR-DIM&lt;br /&gt;Cartouches: 150&lt;br /&gt;Utilisé avec: Navid</French>
<Spanish>Calibre: 9.3x64mm trazadora IR-DIM&lt;br /&gt;Balas: 150&lt;br /&gt;Se usa en: Navid</Spanish>
<Russian>Калибр: 9,3x64 мм ИК-трассирующие&lt;br /&gt;Патронов: 150&lt;br /&gt;Используются с: Навид</Russian>
<Italian>Calibro: 9.3x64mm Tracciante IR-DIM&lt;br /&gt;Munizioni: 150&lt;br /&gt;In uso su: Navid</Italian>
</Key>
<Key ID="STR_ACE_150Rnd_93x64_Mag_APName">
<English>9.3mm 150Rnd AP Belt</English>
@ -550,6 +571,7 @@
<French>Bande 9.3mm 150Cps AP</French>
<Spanish>Cinta de 150 balas AP de 9.3mm</Spanish>
<Russian>Лента из 150-ти 9,3 мм бронебойных</Russian>
<Italian>9.3mm 150Rnd AP Belt</Italian>
</Key>
<Key ID="STR_ACE_150Rnd_93x64_Mag_APNameShort">
<English>9.3mm AP</English>
@ -559,22 +581,25 @@
<French>9.3mm AP</French>
<Spanish>9.3mm AP</Spanish>
<Russian>9,3 мм бронебойные</Russian>
<Italian>9.3mm AP</Italian>
</Key>
<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>
<German>Kaliber: 9,3x64mm Hartkern&lt;br /&gt;Patronen: 150&lt;br /&gt;Eingesetzt von: Navid</German>
<Polish>Kaliber: 9,3x64mm 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>
<French>Calibre: 9.3x64mm AP&lt;br /&gt;Cartouches: 150&lt;br /&gt;Utilisé avec: Navid</French>
<Spanish>Calibre: 9.3x64mm AP&lt;br /&gt;Balas: 150&lt;br /&gt;Se usa en: Navid</Spanish>
<Russian>Калибр: 9,3x64 мм бронебойные&lt;br /&gt;Патронов: 150&lt;br /&gt;Используются с: Навид</Russian>
<Italian>Calibro: 9.3x64mm AP&lt;br /&gt;Munizioni: 150&lt;br /&gt;In uso su: Navid</Italian>
</Key>
<Key ID="STR_ACE_16Rnd_9x19_mag_Name">
<English>9x19mm 16Rnd Mag</English>
<Polish>Magazynek 9x19mm 16rd</Polish>
<French>Chargeur 9x19mm 16Cps</French>
<French>Ch. 9x19mm 16Cps</French>
<Spanish>Cargador de 16 balas de 9x19mm</Spanish>
<Russian>Магазин из 16-ти 9х19 мм</Russian>
<German>9x19mm 20-Patronen-Magazin</German>
<Italian>9x19mm 16Rnd Mag</Italian>
</Key>
<Key ID="STR_ACE_16Rnd_9x19_mag_NameShort">
<English>9x19mm</English>
@ -583,22 +608,25 @@
<Spanish>9x19mm</Spanish>
<Russian>9х19 мм</Russian>
<German>9x19mm</German>
<Italian>9x19mm</Italian>
</Key>
<Key ID="STR_ACE_16Rnd_9x19_mag_Description">
<English>9x19mm 30Rnd Mag</English>
<Polish>Magazynek 9x19mm 16rd</Polish>
<French>9x19mm 30Cps</French>
<French>Ch. 9x19mm 30Cps</French>
<Spanish>Cargador de 16 balas de 9x19mm</Spanish>
<Russian>Магазин из 16-ти 9х19 мм</Russian>
<German>9x19mm 30-Patronen-Magazin</German>
<Italian>9x19mm 30Rnd Mag</Italian>
</Key>
<Key ID="STR_ACE_30Rnd_9x19_mag_Name">
<English>9x19mm 30Rnd Mag</English>
<Polish>Magazynek 9x19mm 30rd</Polish>
<French>9x19mm 30Cps</French>
<French>Ch. 9x19mm 30Cps</French>
<Spanish>Cargador de 30 balas de 9x19mm</Spanish>
<Russian>Магазин из 30-ти 9х19 мм</Russian>
<German>9x19mm 30-Patronen-Magazin</German>
<Italian>9x19mm 30Rnd Mag</Italian>
</Key>
<Key ID="STR_ACE_30Rnd_9x19_mag_NameShort">
<English>9x19mm</English>
@ -607,46 +635,52 @@
<Spanish>9x19mm</Spanish>
<Russian>9х19 мм</Russian>
<German>9x19mm</German>
<Italian>9x19mm</Italian>
</Key>
<Key ID="STR_ACE_30Rnd_9x19_mag_Description">
<English>9x19mm 30Rnd Mag</English>
<Polish>Magazynek 9x19mm 30rd</Polish>
<French>9x19mm 30Cps</French>
<French>Ch. 9x19mm 30Cps</French>
<Spanish>Cargador de 30 balas de 9x19mm</Spanish>
<Russian>Магазин из 30-ти 9х19 мм</Russian>
<German>9x19mm 30-Patronen-Magazin</German>
<Italian>9x19mm 30Rnd Mag</Italian>
</Key>
<Key ID="STR_ACE_10Rnd_762x54_Tracer_mag_Name">
<English>7.62x54mm 10Rnd Tracer IR-DIM Mag</English>
<Polish>Magazynek 7,62x54mm 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>
<English>7.62x54mm 10Rnd Tracer Mag</English>
<Polish>Magazynek 7,62x54mm 10rd Smugacz</Polish>
<French>Ch. 7.62x54mm 10Rnd Traçante</French>
<Spanish>Cargador de 10 balas trazadoras de 7.62x54mm</Spanish>
<Russian>Магазин из 10-ти 7,62 мм ИК-трассирующих</Russian>
<German>7,62x54mm 10-Patronen-Magazin IR-DIM Leuchtspur</German>
<German>7,62x54mm 10-Patronen-Magazin Leuchtspur</German>
<Italian>7.62x54mm 10Munizioni Traccianti IR-DIM Mag</Italian>
</Key>
<Key ID="STR_ACE_10Rnd_762x54_Tracer_mag_NameShort">
<English>7.62mm IR-DIM</English>
<Polish>7,62mm IR-DIM</Polish>
<French>7.62mm IR-DIM</French>
<Spanish>7.62mm IR-DIM</Spanish>
<Russian>7,62 мм ИК-трассирующие</Russian>
<German>7,62x54mm IR-DIM </German>
<English>7.62mm</English>
<Polish>7,62mm</Polish>
<French>7.62mm</French>
<Spanish>7.62mm</Spanish>
<Russian>7,62 мм</Russian>
<German>7,62x54mm </German>
<Italian>7.62mm IR-DIM</Italian>
</Key>
<Key ID="STR_ACE_10Rnd_762x54_Tracer_mag_Description">
<English>7.62x54mm 10Rnd Tracer IR-DIM Mag</English>
<Polish>Magazynek 7,62x54mm 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>
<English>7.62x54mm 10Rnd Tracer Mag</English>
<Polish>Magazynek 7,62x54mm 10rd Smugacz</Polish>
<French>Ch. 7.62x54mm 10Cps Traçante</French>
<Spanish>Cargador de 10 balas trazadoras de 7.62x54mm</Spanish>
<Russian>Магазин из 10-ти 7,62 мм ИК-трассирующих</Russian>
<German>7,62x54mm 10-Patronen-Magazin IR-DIM Leuchtspur</German>
<German>7,62x54mm 10-Patronen-Magazin Leuchtspur</German>
<Italian>7.62x54mm 10Munizioni Traccianti IR-DIM Mag</Italian>
</Key>
<Key ID="STR_ACE_100Rnd_65x39_caseless_mag_Tracer_DimName">
<English>6.5mm 100Rnd Tracer IR-DIM Mag</English>
<Polish>Magazynek 6,5mm 100rd Smugacz IR-DIM</Polish>
<French>Chargeur 6.5mm 100Rnd Traçante IR-DIM</French>
<French>Ch. 6.5mm 100Rnd Traçante IR-DIM</French>
<Spanish>Cargador de 100 balas trazadoras IR-DIM de 6.5mm</Spanish>
<Russian>Магазин из 100 6,5 мм ИК-трассирующих</Russian>
<German>6,5mm 100-Patronen-Magazin IR-DIM Leuchtspur</German>
<Italian>6.5mm 100Munizioni Traccianti IR-DIM Mag</Italian>
</Key>
<Key ID="STR_ACE_100Rnd_65x39_caseless_mag_Tracer_DimNameShort">
<English>6.5mm IR-DIM</English>
@ -655,14 +689,16 @@
<Spanish>6.5mm IR-DIM</Spanish>
<Russian>6,5 мм ИК-трассирующие</Russian>
<German>6,5mm IR-DIM </German>
<Italian>6.5mm IR-DIM</Italian>
</Key>
<Key ID="STR_ACE_100Rnd_65x39_caseless_mag_Tracer_DimDescription">
<English>6.5mm 100Rnd Tracer IR-DIM Mag&lt;br /&gt;Rounds: 100&lt;br /&gt;Used in: MX LSW</English>
<Polish>Magazynek 6,5mm 100rd Smugacz IR-DIM</Polish>
<French>Chargeur 6.5mm 100Rnd Traçante IR-DIM</French>
<French>Ch. 6.5mm 100Rnd Traçante IR-DIM&lt;br /&gt;Cartouches: 100&lt;br /&gt;Utilisé avec: MX LSW</French>
<Spanish>Cargador de 100 balas trazadoras IR-DIM de 6.5mm</Spanish>
<Russian>Магазин из 100 6,5 мм ИК-трассирующих</Russian>
<German>6,5mm 100-Patronen-Magazin IR-DIM Leuchtspur&lt;br /&gt;Patronen: 100&lt;br /&gt;Eingesetzt von: MXLSW</German>
<Italian>6.5mm 100Rnd Tracer IR-DIM Mag&lt;br /&gt;Munizioni: 100&lt;br /&gt;In uso su: MX LSW</Italian>
</Key>
<Key ID="STR_ACE_200Rnd_65x39_cased_Box_Tracer_DimName">
<English>6.5mm 200Rnd Tracer IR-DIM Belt</English>
@ -671,6 +707,7 @@
<Spanish>Cinta de 200 balas trazadoras IR-DIM de 6.5mm</Spanish>
<Russian>Магазин из 200-т 6,5 мм ИК-трассирующих</Russian>
<German>6,5mm 200-Patronen-Gurt IR-DIM Leuchtspur</German>
<Italian>6.5mm 200Rnd Tracer IR-DIM Belt</Italian>
</Key>
<Key ID="STR_ACE_200Rnd_65x39_cased_Box_Tracer_DimNameShort">
<English>6.5mm IR-DIM</English>
@ -679,14 +716,16 @@
<Spanish>6.5mm IR-DIM</Spanish>
<Russian>6,5 мм ИК-трассирующие</Russian>
<German>6,5mm IR-DIM</German>
<Italian>6.5mm IR-DIM</Italian>
</Key>
<Key ID="STR_ACE_200Rnd_65x39_cased_Box_Tracer_DimDescription">
<English>6.5mm 200Rnd Tracer IR-DIM Belt&lt;br /&gt;Rounds: 200&lt;br /&gt;Used in: Stoner 99 LMG</English>
<Polish>Magazynek 6,5mm 200rd Smugacz IR-DIM</Polish>
<French>Bande 6.5mm 200Cps Traçante IR-DIM</French>
<French>Bande 6.5mm 200Cps Traçante IR-DIM&lt;br /&gt;Cartouches: 200&lt;br /&gt;Utilisé avec: Stoner 99 LMG</French>
<Spanish>Cinta de 200 balas trazadoras IR-DIM de 6.5mm</Spanish>
<Russian>Магазин из 200-т 6,5 мм ИК-трассирующих</Russian>
<German>6,5mm 200-Patronen-Gurt IR-DIM Leuchtspur&lt;br /&gt;Patronen: 200&lt;br /&gt;Eingesetzt von: Stoner 99 LMG</German>
<Italian>6.5mm 200Rnd Tracer IR-DIM Belt&lt;br /&gt;Munizioni: 200&lt;br /&gt;In uso su: Stoner 99 LMG</Italian>
</Key>
<Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk262_mag_Name">
<English>5.56mm 30Rnd Mag (Mk262)</English>
@ -695,6 +734,7 @@
<Spanish>Cargador de 30 balas de 5.56mm (Mk262)</Spanish>
<Russian>Магазин из 30-ти 5.56 мм Mk262</Russian>
<German>5,56mm 30-Patronen-Magazin (Mk262)</German>
<Italian>5.56mm 30Rnd Mag (Mk262)</Italian>
</Key>
<Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk262_mag_NameShort">
<English>5.56mm Mk262</English>
@ -703,6 +743,7 @@
<Spanish>5.56mm Mk262</Spanish>
<Russian>5,56 мм Mk262</Russian>
<German>5,56mm Mk262</German>
<Italian>5.56mm Mk262</Italian>
</Key>
<Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk262_mag_Description">
<English>Caliber: 5.56x45mm NATO (Mk262)&lt;br /&gt;Rounds: 30</English>
@ -711,14 +752,16 @@
<Spanish>Calibre: 5.56x45mm NATO (Mk262)&lt;br /&gt;Balas: 30</Spanish>
<Russian>Калибр: 5,56x45 мм NATO (Mk262)&lt;br /&gt;Патронов: 30</Russian>
<German>Kaliber: 5,56x45mm NATO (Mk262)&lt;br /&gt;Patronen: 30</German>
<Italian>Calibro: 5.56x45 mm NATO (Mk262)&lt;br /&gt;Munizioni: 30</Italian>
</Key>
<Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_Name">
<English>5.56mm 30Rnd Mag (Mk318)</English>
<Polish>Magazynek 5,56mm 30rd (Mk318)</Polish>
<French>5.56mm 30Cps (Mk318)</French>
<French>Ch. 5.56mm 30Cps (Mk318)</French>
<Spanish>Cargador de 30 balas de 5.56mm (Mk318)</Spanish>
<Russian>Магазин из 30-ти 5.56 мм (Mk318)</Russian>
<German>5,56mm 30-Patronen-Magazin (Mk318)</German>
<Italian>5.56mm 30Rnd Mag (Mk318)</Italian>
</Key>
<Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_NameShort">
<English>5.56mm Mk318</English>
@ -727,6 +770,7 @@
<Spanish>5.56mm Mk318</Spanish>
<Russian>5.56 мм Mk318</Russian>
<German>5,56mm Mk318</German>
<Italian>5.56mm Mk318</Italian>
</Key>
<Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_Description">
<English>Caliber: 5.56x45mm NATO (Mk318)&lt;br /&gt;Rounds: 30</English>
@ -735,38 +779,43 @@
<Spanish>Calibre: 5.56x45mm NATO (Mk318)&lt;br /&gt;Balas: 30</Spanish>
<Russian>Калибр: 5,56x45 мм NATO (Mk318)&lt;br /&gt;Патронов: 30</Russian>
<German>Kaliber: 5,56x45mm NATO (Mk318)&lt;br /&gt;Patronen: 30</German>
<Italian>Calibro: 5.56x45 mm NATO (Mk318)&lt;br /&gt;Munizioni: 30</Italian>
</Key>
<Key ID="STR_ACE_30Rnd_556x45_Stanag_M995_AP_mag_Name">
<English>5.56mm 30Rnd Mag (M995 AP)</English>
<Polish>Magazynek 5,56mm 30rd (M995 AP)</Polish>
<French>5.56mm 30Cps (M995 AP)</French>
<French>Ch. 5.56mm 30Cps (M995 AP)</French>
<Spanish>Cargador de 30 balas de 5.56mm (M995 AP)</Spanish>
<Russian>Магазин из 30-ти 5.56 мм (M995 AP)</Russian>
<Russian>Магазин из 30-ти 5.56 мм (M995 бронебойные)</Russian>
<German>5,56mm 30-Patronen-Magazin (M995AP)</German>
<Italian>5.56mm 30Rnd Mag (M995 AP) </Italian>
</Key>
<Key ID="STR_ACE_30Rnd_556x45_Stanag_M995_AP_mag_NameShort">
<English>5.56mm AP</English>
<Polish>5,56mm AP</Polish>
<French>5.56mm AP</French>
<Spanish>5.56mm AP</Spanish>
<Russian>5.56 мм AP</Russian>
<Russian>5.56 мм бронебойные</Russian>
<German>5,56mm AP</German>
<Italian>5.56mm AP</Italian>
</Key>
<Key ID="STR_ACE_30Rnd_556x45_Stanag_M995_AP_mag_Description">
<English>Caliber: 5.56x45mm NATO (M995 AP)&lt;br /&gt;Rounds: 30</English>
<Polish>Kaliber: 5,56x45mm NATO (M995 AP)&lt;br /&gt;Pociski: 30</Polish>
<French>Calibre: 5.56x45mm NATO (M995 AP)&lt;br /&gt;Cartouches: 30</French>
<Spanish>Calibre: 5.56x45mm NATO (M995 AP)&lt;br /&gt;Balas: 30</Spanish>
<Russian>Калибр: 5,56x45 мм NATO (M995 AP)&lt;br /&gt;Патронов: 30</Russian>
<Russian>Калибр: 5,56x45 мм NATO (M995 бронебойные)&lt;br /&gt;Патронов: 30</Russian>
<German>Kaliber: 5,56x45mm NATO (M995 AP)&lt;br /&gt;Patronen: 30</German>
<Italian>Calibro: 5.56x45 mm NATO (M995 AP)&lt;br /&gt;Munizioni: 30</Italian>
</Key>
<Key ID="STR_ACE_10Rnd_762x51_M118LR_Mag_Name">
<English>7.62mm 10Rnd Mag (M118LR)</English>
<Polish>Magazynek 7,62mm 10rd (M118LR)</Polish>
<French>7.62mm 10Cps (M118LR)</French>
<French>Ch. 7.62mm 10Cps (M118LR)</French>
<Spanish>Cargador de 10 balas de 7.62mm (M118LR)</Spanish>
<Russian>Магазин из 10-ти 7,62 мм (M118LR)</Russian>
<German>7,62mm 10-Patronen-Magazin (M118LR)</German>
<Italian>7.62mm 10Rnd Mag (M118LR)</Italian>
</Key>
<Key ID="STR_ACE_10Rnd_762x51_M118LR_Mag_NameShort">
<English>7.62mm M118LR</English>
@ -775,6 +824,7 @@
<Spanish>7.62mm (M118LR)</Spanish>
<Russian>7,62 мм M118LR</Russian>
<German>7,62mm M118LR</German>
<Italian>7.62mm M118LR</Italian>
</Key>
<Key ID="STR_ACE_10Rnd_762x51_M118LR_Mag_Description">
<English>Caliber: 7.62x51mm NATO (M118LR)&lt;br /&gt;Rounds: 10</English>
@ -783,14 +833,16 @@
<Spanish>Calibre: 7.62x51mm NATO (M118LR)&lt;br /&gt;Balas: 10</Spanish>
<Russian>Калибр: 7,62x51 мм NATO (M118LR)&lt;br /&gt;Патронов: 10</Russian>
<German>Kaliber: 7,62x51mm NATO (M118LR)&lt;br /&gt;Patronen: 10</German>
<Italian>Calibro: 7.62x51 mm NATO (M118LR)&lt;br /&gt;Munizioni: 10</Italian>
</Key>
<Key ID="STR_ACE_20Rnd_762x51_M118LR_Mag_Name">
<English>7.62mm 20Rnd Mag (M118LR)</English>
<Polish>Magazynek 7,62mm 20rd (M118LR)</Polish>
<French>7.62mm 20Cps (M118LR)</French>
<French>Ch. 7.62mm 20Cps (M118LR)</French>
<Spanish>Cargador de 20 balas de 7.62mm (M118LR)</Spanish>
<Russian>Магазин из 20-ти 7,62 мм (M118LR)</Russian>
<German>7,62mm 20-Patronen-Magazin (M118LR)</German>
<Italian>7.62mm 20Rnd Mag (M118LR)</Italian>
</Key>
<Key ID="STR_ACE_20Rnd_762x51_M118LR_Mag_NameShort">
<English>7.62mm M118LR</English>
@ -799,6 +851,7 @@
<Spanish>7.62mm (M118LR)</Spanish>
<Russian>7,62 мм M118LR</Russian>
<German>7,62mm M118LR</German>
<Italian>7.62mm M118LR</Italian>
</Key>
<Key ID="STR_ACE_20Rnd_762x51_M118LR_Mag_Description">
<English>Caliber: 7.62x51mm NATO (M118LR)&lt;br /&gt;Rounds: 20</English>
@ -807,14 +860,16 @@
<Spanish>Calibre: 7.62x51mm NATO (M118LR)&lt;br /&gt;Balas: 20</Spanish>
<Russian>Калибр: 7,62x51 мм NATO (M118LR)&lt;br /&gt;Патронов: 20</Russian>
<German>Kaliber: 7,62x51mm NATO (M118LR)&lt;br /&gt;Patronen: 20</German>
<Italian>Calibro: 7.62x51 mm NATO (M118LR)&lt;br /&gt;Munizioni: 20</Italian>
</Key>
<Key ID="STR_ACE_10Rnd_762x51_Mk316_Mod_0_Mag_Name">
<English>7.62mm 10Rnd Mag (Mk316 Mod 0)</English>
<Polish>Magazynek 7,62mm 10rd (Mk316 Mod 0)</Polish>
<French>7.62mm 10Cps (Mk316 Mod 0)</French>
<French>Ch. 7.62mm 10Cps (Mk316 Mod 0)</French>
<Spanish>Cargador de 10 balas de 7.62mm (Mk316 Mod 0)</Spanish>
<Russian>Магазин из 10-ти 7,62 мм (Mk316 Mod 0)</Russian>
<German>7,62mm 10-Patronen-Magazin (Mk316 Mod 0)</German>
<Italian>7.62mm 10Rnd Mag (Mk316 Mod 0)</Italian>
</Key>
<Key ID="STR_ACE_10Rnd_762x51_Mk316_Mod_0_Mag_NameShort">
<English>7.62mm Mk316</English>
@ -823,6 +878,7 @@
<Spanish>7.62mm Mk316</Spanish>
<Russian>7,62 мм Mk316</Russian>
<German>7,62mm Mk316</German>
<Italian>7.62mm Mk316</Italian>
</Key>
<Key ID="STR_ACE_10Rnd_762x51_Mk316_Mod_0_Mag_Description">
<English>Caliber: 7.62x51mm NATO (Mk316 Mod 0)&lt;br /&gt;Rounds: 10</English>
@ -831,14 +887,16 @@
<Spanish>Calibre: 7.62x51mm NATO (Mk316 Mod 0)&lt;br /&gt;Balas: 10</Spanish>
<Russian>Калибр: 7,62x51 мм NATO (Mk316 Mod 0)&lt;br /&gt;Патронов: 10</Russian>
<German>Kaliber: 7,62x51mm NATO (Mk316 Mod 0)&lt;br /&gt;Patronen: 10</German>
<Italian>Calibro: 7.62x51 mm NATO (Mk316 Mod 0)&lt;br /&gt;Munizioni: 10</Italian>
</Key>
<Key ID="STR_ACE_20Rnd_762x51_Mk316_Mod_0_Mag_Name">
<English>7.62mm 20Rnd Mag (Mk316 Mod 0)</English>
<Polish>Magazynek 7,62mm 20rd (Mk316 Mod 0)</Polish>
<French>7.62mm 20Cps (Mk316 Mod 0)</French>
<French>Ch. 7.62mm 20Cps (Mk316 Mod 0)</French>
<Spanish>Cargador de 20 balas de 7.62mm (Mk316 Mod 0)</Spanish>
<Russian>Магазин из 20-ти 7,62 мм (Mk316 Mod 0)</Russian>
<German>7,62mm 20-Patronen-Magazin (Mk316 Mod 0)</German>
<Italian>7.62mm 20Rnd Mag (Mk316 Mod 0)</Italian>
</Key>
<Key ID="STR_ACE_20Rnd_762x51_Mk316_Mod_0_Mag_NameShort">
<English>7.62mm Mk316</English>
@ -847,6 +905,7 @@
<Spanish>7.62mm Mk316</Spanish>
<Russian>7,62 мм Mk316</Russian>
<German>7,62mm Mk316</German>
<Italian>7.62mm Mk316</Italian>
</Key>
<Key ID="STR_ACE_20Rnd_762x51_Mk316_Mod_0_Mag_Description">
<English>Caliber: 7.62x51mm NATO (Mk316 Mod 0)&lt;br /&gt;Rounds: 20</English>
@ -855,22 +914,25 @@
<Spanish>Calibre: 7.62x51mm NATO (Mk316 Mod 0)&lt;br /&gt;Balas: 20</Spanish>
<Russian>Калибр: 7,62x51 мм NATO (Mk316 Mod 0)&lt;br /&gt;Патронов: 20</Russian>
<German>Kaliber: 7,62x51mm NATO (Mk316 Mod 0)&lt;br /&gt;Patronen: 20</German>
<Italian>Calibro: 7.62x51 mm NATO (Mk316 Mod 0)&lt;br /&gt;Munizioni: 20</Italian>
</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>
<French>Ch. 7.62mm 10Cps (Mk319 Mod 0)</French>
<Spanish>Cargador de 10 balas de 7.62mm (Mk319 Mod 0)</Spanish>
<Russian>Магазин из 10-ти 7,62 мм (Mk319 Mod 0)</Russian>
<German>7,62mm 10-Patronen-Magazin (Mk319 Mod 0)</German>
<Italian>7.62mm 10Rnd Mag (Mk319 Mod 0)</Italian>
</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>
<Spanish>7.62mm Mk319</Spanish>
<Russian>7,62mm Mk319</Russian>
<Russian>7,62 мм Mk319</Russian>
<German>7,62mm Mk319</German>
<Italian>7.62mm Mk319</Italian>
</Key>
<Key ID="STR_ACE_10Rnd_762x51_Mk319_Mod_0_Mag_Description">
<English>Caliber: 7.62x51mm NATO (Mk319 Mod 0)&lt;br /&gt;Rounds: 10</English>
@ -879,14 +941,16 @@
<Spanish>Calibre: 7.62x51mm NATO (Mk319 Mod 0)&lt;br /&gt;Balas: 10</Spanish>
<Russian>Калибр: 7,62x51 мм NATO (Mk319 Mod 0)&lt;br /&gt;Патронов: 10</Russian>
<German>Kaliber: 7,62x51mm NATO (Mk319 Mod 0)&lt;br /&gt;Patronen: 10</German>
<Italian>Calibro: 7.62x51 mm NATO (Mk319 Mod 0)&lt;br /&gt;Munizioni: 10</Italian>
</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>
<French>Ch. 7.62mm 20Cps (Mk319 Mod 0)</French>
<Spanish>Cargador de 20 balas de 7.62mm (Mk319 Mod 0)</Spanish>
<Russian>Магазин из 20-ти 7,62 мм (Mk319 Mod 0)</Russian>
<German>7,62mm 20-Patronen-Magazin (Mk319 Mod 0)</German>
<Italian>7.62mm 20Rnd Mag (Mk319 Mod 0)</Italian>
</Key>
<Key ID="STR_ACE_20Rnd_762x51_Mk319_Mod_0_Mag_NameShort">
<English>7.62mm Mk319</English>
@ -895,6 +959,7 @@
<Spanish>7.62mm Mk319</Spanish>
<Russian>7,62 мм Mk319</Russian>
<German>7,62mm Mk319</German>
<Italian>7.62mm Mk319</Italian>
</Key>
<Key ID="STR_ACE_20Rnd_762x51_Mk319_Mod_0_Mag_Description">
<English>Caliber: 7.62x51mm NATO (Mk319 Mod 0)&lt;br /&gt;Rounds: 20</English>
@ -903,62 +968,70 @@
<Spanish>Calibre: 7.62x51mm NATO (Mk319 Mod 0)&lt;br /&gt;Balas: 20</Spanish>
<Russian>Калибр: 7,62x51 мм NATO (Mk319 Mod 0)&lt;br /&gt;Патронов: 20</Russian>
<German>Kaliber: 7,62x51mm NATO (Mk319 Mod 0)&lt;br /&gt;Patronen: 20</German>
<Italian>Calibro: 7.62x51 mm NATO (Mk319 Mod 0)&lt;br /&gt;Munizioni: 20</Italian>
</Key>
<Key ID="STR_ACE_10Rnd_762x51_M993_AP_Mag_Name">
<English>7.62mm 10Rnd Mag (M993 AP)</English>
<Polish>Magazynek 7,62mm 10rd (M993 AP)</Polish>
<French>7.62mm 10Cps (M993 AP)</French>
<French>Ch. 7.62mm 10Cps (M993 AP)</French>
<Spanish>Cargador de 10 balas de 7.62mm (M993 AP)</Spanish>
<Russian>Магазин из 10-ти 7,62 мм (M993 AP)</Russian>
<Russian>Магазин из 10-ти 7,62 мм (M993 бронебойные)</Russian>
<German>7,62mm 10-Patronen-Magazin (M993 AP)</German>
<Italian>7.62mm 10Rnd Mag (M993 AP)</Italian>
</Key>
<Key ID="STR_ACE_10Rnd_762x51_M993_AP_Mag_NameShort">
<English>7.62mm AP</English>
<Polish>7,62mm AP</Polish>
<French>7.62mm AP</French>
<Spanish>7.62mm AP</Spanish>
<Russian>7,62mm AP</Russian>
<Russian>7,62mm бронебойные</Russian>
<German>7,62mm AP</German>
<Italian>7.62mm AP</Italian>
</Key>
<Key ID="STR_ACE_10Rnd_762x51_M993_AP_Mag_Description">
<English>Caliber: 7.62x51mm NATO (M993 AP)&lt;br /&gt;Rounds: 10</English>
<Polish>Kaliber: 7,62x51mm NATO (M993 AP)&lt;br /&gt;Pociski: 10</Polish>
<French>Calibre: 7.62x51mm NATO (M993 AP)&lt;br /&gt;Cartouches: 10</French>
<Spanish>Calibre: 7.62x51mm NATO (M993 AP)&lt;br /&gt;Balas: 10</Spanish>
<Russian>Калибр: 7,62x51 мм NATO (M993 AP)&lt;br /&gt;Патронов: 10</Russian>
<Russian>Калибр: 7,62x51 мм NATO (M993 бронебойные)&lt;br /&gt;Патронов: 10</Russian>
<German>Kaliber: 7,62x51mm NATO (M993 AP)&lt;br /&gt;Patronen: 10</German>
<Italian>Calibro: 7.62x51 mm NATO (M993 AP)&lt;br /&gt;Munizioni: 10</Italian>
</Key>
<Key ID="STR_ACE_20Rnd_762x51_M993_AP_Mag_Name">
<English>7.62mm 20Rnd Mag (M993 AP)</English>
<Polish>Magazynek 7,62mm 20rd (M993 AP)</Polish>
<French>7.62mm 20Cps (M993 AP)</French>
<French>Ch. 7.62mm 20Cps (M993 AP)</French>
<Spanish>Cargador de 20 balas de 7.62mm (M993 AP)</Spanish>
<Russian>Магазин из 20-ти 7,62 мм (M993 AP)</Russian>
<Russian>Магазин из 20-ти 7,62 мм (M993 бронебойные)</Russian>
<German>7,62mm 20-Patronen-Magazin (M993 AP)</German>
<Italian>7.62mm 20Rnd Mag (M993 AP)</Italian>
</Key>
<Key ID="STR_ACE_20Rnd_762x51_M993_AP_Mag_NameShort">
<English>7.62mm AP</English>
<Polish>7,62mm AP</Polish>
<French>7.62mm AP</French>
<Spanish>7.62mm AP</Spanish>
<Russian>7,62 мм AP</Russian>
<Russian>7,62 мм бронебойные</Russian>
<German>7,62mm AP</German>
<Italian>7.62mm AP</Italian>
</Key>
<Key ID="STR_ACE_20Rnd_762x51_M993_AP_Mag_Description">
<English>Caliber: 7.62x51mm NATO (M993 AP)&lt;br /&gt;Rounds: 20</English>
<Polish>Kaliber: 7,62x51mm NATO (M993 AP)&lt;br /&gt;Pociski: 20</Polish>
<French>Calibre: 7.62x51mm NATO (M993 AP)&lt;br /&gt;Cartouches: 20</French>
<Spanish>Calibre: 7.62x51mm NATO (M993 AP)&lt;br /&gt;Balas: 20</Spanish>
<Russian>Калибр: 7,62x51 мм NATO (M993 AP)&lt;br /&gt;Патронов: 20</Russian>
<Russian>Калибр: 7,62x51 мм NATO (M993 бронебойные)&lt;br /&gt;Патронов: 20</Russian>
<German>Kaliber: 7,62x51mm NATO (M993 AP)&lt;br /&gt;Patronen: 20</German>
<Italian>Calibro: 7.62x51 mm NATO (M993 AP)&lt;br /&gt;Munizioni: 20</Italian>
<Spanish>Calibre: 7.62x51 mm NATO (M993 AP)&lt;br /&gt;Balas: 20</Spanish>
</Key>
<Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_0_Mag_Name">
<English>7.62mm 20Rnd Mag (Mk248 Mod 0)</English>
<Polish>Magazynek 7,62mm 20rd (Mk248 Mod 0)</Polish>
<French>7.62mm 20Cps (Mk248 Mod 0)</French>
<French>Ch. 7.62mm 20Cps (Mk248 Mod 0)</French>
<Spanish>Cargador de 20 balas de 7.62mm (Mk248 Mod 0)</Spanish>
<Russian>Магазин из 20-ти 7,62 мм (Mk248 Mod 0)</Russian>
<German>7,62mm 20-Patronen-Magazin (Mk248 Mod 0)</German>
<Italian>7.62mm 20Rnd Mag (Mk248 Mod 0)</Italian>
</Key>
<Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_0_Mag_NameShort">
<English>7.62mm (Mk248 Mod 0)</English>
@ -967,6 +1040,7 @@
<Spanish>7.62mm (Mk248 Mod 0)</Spanish>
<Russian>7,62 мм (Mk248 Mod 0)</Russian>
<German>7,62mm (Mk248 Mod 0)</German>
<Italian>7.62mm (Mk248 Mod 0)</Italian>
</Key>
<Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_0_Mag_Description">
<English>Caliber: 7.62x67mm NATO (Mk248 Mod 0)&lt;br /&gt;Rounds: 20</English>
@ -975,14 +1049,16 @@
<Spanish>Calibre: 7.62x67mm NATO (Mk248 Mod 0)&lt;br /&gt;Balas: 20</Spanish>
<Russian>Калибр: 7,62x67 мм NATO (Mk248 Mod 0)&lt;br /&gt;Патронов: 20</Russian>
<German>Kaliber: 7,62x51mm NATO (Mk248 Mod 0)&lt;br /&gt;Patronen: 20</German>
<Italian>Calibro: 7.62x67 mm NATO (Mk248 Mod 0)&lt;br /&gt;Munizioni: 20</Italian>
</Key>
<Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_1_Mag_Name">
<English>7.62mm 20Rnd Mag (Mk248 Mod 1)</English>
<Polish>Magazynek 7,62mm 20rd (Mk248 Mod 1)</Polish>
<French>7.62mm 20Cps (Mk248 Mod 1)</French>
<French>Ch. 7.62mm 20Cps (Mk248 Mod 1)</French>
<Spanish>Cargador de 20 balas de 7.62mm (Mk248 Mod 1)</Spanish>
<Russian>Магазин из 20-ти 7,62 мм (Mk248 Mod 1)</Russian>
<German>7,62mm 20-Patronen-Magazin (Mk248 Mod 1)</German>
<Italian>7.62mm 20Rnd Mag (Mk248 Mod 1)</Italian>
</Key>
<Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_1_Mag_NameShort">
<English>7.62mm (Mk248 Mod 1)</English>
@ -991,6 +1067,7 @@
<Spanish>7.62mm (Mk248 Mod 1)</Spanish>
<Russian>7,62 мм (Mk248 Mod 1)</Russian>
<German>7,62mm (Mk248 Mod 1)</German>
<Italian>7.62mm (Mk248 Mod 1)</Italian>
</Key>
<Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_1_Mag_Description">
<English>Caliber: 7.62x67mm NATO (Mk248 Mod 1)&lt;br /&gt;Rounds: 20</English>
@ -999,14 +1076,16 @@
<Spanish>Calibre: 7.62x67mm NATO (Mk248 Mod 1)&lt;br /&gt;Balas: 20</Spanish>
<Russian>Калибр: 7,62x67 мм NATO (Mk248 Mod 1)&lt;br /&gt;Патронов: 20</Russian>
<German>Kaliber: 7,62x51mm NATO (Mk248 Mod 1)&lt;br /&gt;Patronen: 20</German>
<Italian>Calibro: 7.62x67 mm NATO (Mk248 Mod 1)&lt;br /&gt;Munizioni: 20</Italian>
</Key>
<Key ID="STR_ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag_Name">
<English>7.62mm 20Rnd Mag (Berger Hybrid OTM)</English>
<Polish>Magazynek 7,62mm 20rd (Berger Hybrid OTM)</Polish>
<French>7.62 20Cps (Berger Hybrid OTM)</French>
<French>Ch. 7.62 20Cps (Berger Hybrid OTM)</French>
<Spanish>Cargador de 20 balas de 7.62mm (Berger Hybrid OTM)</Spanish>
<Russian>Магазин из 20-ти 7,62 мм (Berger Hybrid OTM)</Russian>
<German>7,62mm 20-Patronen-Magazin (Berger Hybrid OTM)</German>
<Italian>7.62mm 20Rnd Mag (Berger Hybrid OTM)</Italian>
</Key>
<Key ID="STR_ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag_NameShort">
<English>7.62mm (OTM)</English>
@ -1015,6 +1094,7 @@
<Spanish>7.62mm (OTM)</Spanish>
<Russian>7,62 мм (OTM)</Russian>
<German>7,62mm (OTM)</German>
<Italian>7.62mm (OTM)</Italian>
</Key>
<Key ID="STR_ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag_Description">
<English>Caliber: 7.62x67mm NATO (Berger Hybrid OTM)&lt;br /&gt;Rounds: 20</English>
@ -1023,14 +1103,16 @@
<Spanish>Calibre: 7.62x67mm NATO (Berger Hybrid OTM)&lt;br /&gt;Balas: 20</Spanish>
<Russian>Калибр: 7,62x67 мм NATO (Berger Hybrid OTM)&lt;br /&gt;Патронов: 20</Russian>
<German>Kaliber: 7,62x67mm NATO (Berger Hybrid OTM)&lt;br /&gt;Patronen: 20</German>
<Italian>Calibro: 7.62x67 mm NATO (Berger Hybrid OTM)&lt;br /&gt;Munizioni: 20</Italian>
</Key>
<Key ID="STR_ACE_30Rnd_65x47_Scenar_mag_Name">
<English>6.5x47mm 30Rnd Mag (HPBT Scenar)</English>
<French>6.5x47mm 30Cps (HPBT Scenar)</French>
<French>Ch. 6.5x47mm 30Cps (HPBT Scenar)</French>
<Spanish>Cargador de 30 balas de 6.5x47mm (HPBT Scenar)</Spanish>
<Polish>Magazynek 6,5x47mm 30rd (HPBT Scenar)</Polish>
<Russian>Магазин из 30-ти 6,5x47 мм (HPBT Scenar)</Russian>
<Russian>Магазин из 30-ти 6,5x47 мм (экспансивные Scenar)</Russian>
<German>6,5x47mm 30-Patronen-Magazin (HPBT Scenar)</German>
<Italian>6.5x47mm 30Rnd Mag (HPBT Scenar)</Italian>
</Key>
<Key ID="STR_ACE_30Rnd_65x47_Scenar_mag_NameShort">
<English>6.5mm Lapua</English>
@ -1039,20 +1121,25 @@
<Polish>6,5mm Lapua</Polish>
<Russian>6,5 мм Lapua</Russian>
<German>6,5mm Lapua</German>
<Italian>6.5mm Lapua</Italian>
</Key>
<Key ID="STR_ACE_30Rnd_65x47_Scenar_mag_Description">
<English>Caliber: 6.5x47mm (HPBT Scenar)&lt;br /&gt;Rounds: 30&lt;br /&gt;Used in: MXM</English>
<French>Calibre: 6.5x47mm (HPBT Scenar)&lt;br /&gt;Cartouches: 30</French>
<Spanish>Calibre: 6.5x47mm (HPBT Scenar)&lt;br /&gt;Balas: 30&lt;br /&gt;Se usa en: MXM</Spanish>
<Polish>Kaliber: 6,5x47mm (HPBT Scenar)&lt;br /&gt;Pociski: 30</Polish>
<Russian>Калибр: 6,5x47 мм (HPBT Scenar)&lt;br /&gt;Патронов: 30</Russian>
<Russian>Калибр: 6,5x47 мм (экспансивные Scenar)&lt;br /&gt;Патронов: 30</Russian>
<German>Kaliber: 6,5x47mm (HPBT Scenar)&lt;br /&gt;Patronen: 30&lt;br /&gt;Eingesetzt von: MXM</German>
<Italian>Calibro: 6.5x47mm (HPBT Scenar)&lt;br /&gt;Munizioni: 30&lt;br /&gt;In uso su: MXM</Italian>
</Key>
<Key ID="STR_ACE_30Rnd_65_Creedmor_mag_Name">
<English>6.5mm Creedmor 30Rnd Mag</English>
<Spanish>Cargador de 30 balas de 6.5mm Creedmor</Spanish>
<Polish>Magazynek 6,5mm Creedmor 30rd</Polish>
<Italian>6.5mm Creedmor 30Rnd Mag</Italian>
<Russian>Магазин из 30-ти 6,5 мм Creedmor</Russian>
<German>6,5mm Creedmor 30-Patronen-Magazin</German>
<Spanish>Cargador de 30 balas Creedmor de 6.5mm</Spanish>
<French>Ch. 6.5mm Creedmor 30Cps</French>
</Key>
<Key ID="STR_ACE_30Rnd_65_Creedmor_mag_NameShort">
<English>6.5mm CM</English>
@ -1061,68 +1148,78 @@
<Polish>6,5mm CM</Polish>
<Russian>6,5 мм CM</Russian>
<German>6,5mm CM</German>
<Italian>6.5mm CM</Italian>
</Key>
<Key ID="STR_ACE_30Rnd_65_Creedmor_mag_Description">
<English>Caliber: 6.5x47mm Creedmor&lt;br /&gt;Rounds: 30&lt;br /&gt;Used in: MXM</English>
<Spanish>Calibre: 6.5x47mm Creedmor&lt;br /&gt;Balas: 30&lt;br /&gt;Se usa en: MXM</Spanish>
<Polish>Kaliber: 6,5x47mm Creedmor&lt;br /&gt;Pociski: 30&lt;br /&gt;Używany w: MXM</Polish>
<German>Kaliber: 6,5x47mm Creedmor&lt;br /&gt;Patronen: 30&lt;br /&gt;Eingesetzt von: MXM</German>
<French>Calibre: 6.5x47mm Creedmor &lt;br /&gt;Cartouches: 30&lt;br /&gt;Utilisé avec: MXM</French>
<Italian>Calibro: 6.5mm Creedmor&lt;br /&gt;Munizioni: 30&lt;br /&gt;In uso su: MXM</Italian>
<Spanish>Calibre: 6.5mm Creedmor&lt;br /&gt;Balas: 30&lt;br /&gt;Se usa en: MXM</Spanish>
</Key>
<Key ID="STR_ACE_10Rnd_338_300gr_HPBT_Mag_Name">
<English>.338 10Rnd Mag (300gr Sierra MatchKing HPBT)</English>
<French>.338 10 Cps (300gr Sierra MatchKing HPBT)</French>
<French>Ch. .338 10 Cps (300gr Sierra MatchKing HPBT)</French>
<Spanish>Cargador de 10 balas de 8.6x70mm (300gr Sierra MatchKing HPBT)</Spanish>
<Polish>Magazynek .338 10rd (300gr Sierra MatchKing HPBT)</Polish>
<Russian>Магазин из 10-ти .338 (300 гран Sierra MatchKing HPBT)</Russian>
<Russian>Магазин из 10-ти .338 (300 гран Sierra MatchKing экспансивные)</Russian>
<German>.338 10-Patronen-Magazin (300gr Sierra MatchKing HPBT)</German>
<Italian>.338 10Munizioni Mag (300gr Sierra MatchKing HPBT)</Italian>
</Key>
<Key ID="STR_ACE_10Rnd_338_300gr_HPBT_Mag_NameShort">
<English>.338 HPBT</English>
<French>.338 HPBT</French>
<Spanish>.338 HPBT</Spanish>
<Polish>.338 HPBT</Polish>
<Russian>.338 HPBT</Russian>
<Russian>.338 экспансивные</Russian>
<German>.338 HPBT</German>
<Italian>.338 (HPBT)</Italian>
</Key>
<Key ID="STR_ACE_10Rnd_338_300gr_HPBT_Mag_Description">
<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>
<Polish>Kaliber: 8,6x70mm (300gr Sierra MatchKing HPBT)&lt;br /&gt;Pociski: 10</Polish>
<Russian>Калибр: 8,6x70mm (300 гран Sierra MatchKing HPBT)&lt;br /&gt;Патронов: 10</Russian>
<Russian>Калибр: 8,6x70mm (300 гран Sierra MatchKing экспансивные)&lt;br /&gt;Патронов: 10</Russian>
<German>Kaliber: 8,6x70mm (300gr Sierra MatchKing HPBT)&lt;br /&gt;Patronen: 10</German>
<Italian>Calibro: 8.6x70mm (300gr Sierra MatchKing HPBT)&lt;br /&gt;Munizioni: 10</Italian>
</Key>
<Key ID="STR_ACE_10Rnd_338_API526_Mag_Name">
<English>.338 10Rnd Mag (API526)</English>
<French>.338 10Cps (API526)</French>
<French>Ch. .338 10Cps (API526)</French>
<Spanish>Cargador de 10 balas de .338 (API526)</Spanish>
<Polish>Magazynek .338 10rd (API526)</Polish>
<Russian>Магазин из 10-ти .338 (API526)</Russian>
<German>.338 10-Patronen-Magazin (API526)</German>
<Italian>.338 10Rnd Mag (API526)</Italian>
</Key>
<Key ID="STR_ACE_10Rnd_338_API526_Mag_NameShort">
<English>.338 AP</English>
<French>.338 AP</French>
<Spanish>.338 AP</Spanish>
<Polish>.338 AP</Polish>
<Russian>.338 бронебойные</Russian>
<Russian>.338 AP</Russian>
<German>.338 AP</German>
<Italian>.338 AP</Italian>
</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>
<Spanish>Calibre: 8.6x70mm (API526)&lt;br /&gt;Balas: 10</Spanish>
<Polish>Kaliber: 8,6x70mm (API526)&lt;br /&gt;Pociski: 10</Polish>
<Russian>Калибр: 8,6x70mm (API526)&lt;br /&gt;Патронов: 10</Russian>
<Russian>Калибр: 8,6x70 мм (API526)&lt;br /&gt;Патронов: 10</Russian>
<German>Kaliber: 8,6x70mm (API526)&lt;br /&gt;Patronen: 10</German>
<Italian>Calibro: 8.6x70mm (API526)&lt;br /&gt;Munizioni: 10</Italian>
</Key>
<Key ID="STR_ACE_5Rnd_127x99_Mag_Name">
<English>12.7x99mm 5Rnd Mag</English>
<French>12.7x99mm 5Cps</French>
<French>Ch. 12.7x99mm 5Cps</French>
<Spanish>Cargador de 5 balas de 12.7x99mm</Spanish>
<Polish>Magazynek 12,7x99mm 5rd</Polish>
<Russian>Магазин из 5-ти 12,7x99 мм</Russian>
<German>12,7x99mm 5-Patronen-Magazin</German>
<Italian>12.7x99mm 5Rnd Mag</Italian>
</Key>
<Key ID="STR_ACE_5Rnd_127x99_Mag_NameShort">
<English>12.7mm</English>
@ -1131,6 +1228,7 @@
<Polish>12,7mm</Polish>
<Russian>12,7 мм</Russian>
<German>12,7mm</German>
<Italian>12.7mm</Italian>
</Key>
<Key ID="STR_ACE_5Rnd_127x99_Mag_Description">
<English>Caliber: 12.7x99mm&lt;br /&gt;Rounds: 5</English>
@ -1139,12 +1237,15 @@
<Polish>Kaliber: 12,7x99mm&lt;br /&gt;Pociski: 5</Polish>
<Russian>Калибр: 12,7x99 мм&lt;br /&gt;Патронов: 5</Russian>
<German>Kaliber: 12,7x99mm&lt;br /&gt;Patronen: 5</German>
<Italian>Calibro: 12.7x99mm&lt;br /&gt;Munizioni: 5</Italian>
</Key>
<Key ID="STR_ACE_5Rnd_127x99_API_Mag_Name">
<English>12.7x99mm API 5Rnd Mag</English>
<French>12.7x99mm API 5Cps</French>
<French>Ch. 12.7x99mm API 5Cps</French>
<Spanish>Cargador de 5 balas de 12.7x99mm API</Spanish>
<Polish>Magazynek 12,7x99mm API 5rd</Polish>
<Italian>12.7x99mm API 5Rnd Mag</Italian>
<Russian>Магазин из 5-ти 12,7x99 мм (бронебойно-зажигательные)</Russian>
<German>12,7x99mm 5-Patronen-Magazin (API)</German>
</Key>
<Key ID="STR_ACE_5Rnd_127x99_API_Mag_NameShort">
@ -1152,6 +1253,8 @@
<French>12.7mm API</French>
<Spanish>12.7mm API</Spanish>
<Polish>12,7mm API</Polish>
<Italian>12.7mm API</Italian>
<Russian>12.7 мм бронебойно-зажигательные</Russian>
<German>12,7mm API</German>
</Key>
<Key ID="STR_ACE_5Rnd_127x99_API_Mag_Description">
@ -1159,15 +1262,18 @@
<French>Calibre: 12.7x99mm API&lt;br /&gt;Cartouches: 5</French>
<Spanish>Calibre: 12.7x99mm API&lt;br /&gt;Balas: 5</Spanish>
<Polish>Kaliber: 12,7x99mm API&lt;br /&gt;Pociski: 5</Polish>
<Russian>Калибр: 12,7x99 мм бронебойно-зажигательные&lt;br /&gt;Патронов: 5</Russian>
<German>Kaliber:12,7x99mm API&lt;br /&gt;Patronen: 5</German>
<Italian>Calibro: 12.7x99mm API&lt;br /&gt;Munizioni: 5</Italian>
</Key>
<Key ID="STR_ACE_5Rnd_127x99_AMAX_Mag_Name">
<English>12.7x99mm 5Rnd Mag (AMAX)</English>
<French>12.7x99mm 5Rnd Mag (AMAX)</French>
<French>Ch. 12.7x99mm 5Cps (AMAX)</French>
<Spanish>Cargador de 5 balas de 12.7x99mm (AMAX)</Spanish>
<Polish>Magazynek 12,7x99mm 5rd (AMAX)</Polish>
<Russian>Магазин из 5-ти 12,7x99 мм (A-MAX)</Russian>
<German>12,7x99mm 5-Patronen-Magazin (AMAX)</German>
<Italian>12.7x99mm 5Rnd Mag (AMAX)</Italian>
</Key>
<Key ID="STR_ACE_5Rnd_127x99_AMAX_Mag_NameShort">
<English>12.7mm</English>
@ -1176,6 +1282,7 @@
<Polish>12,7mm</Polish>
<Russian>12,7 мм</Russian>
<German>12,7mm</German>
<Italian>12.7mm</Italian>
</Key>
<Key ID="STR_ACE_5Rnd_127x99_AMAX_Mag_Description">
<English>Caliber: 12.7x99mm (AMAX)&lt;br /&gt;Rounds: 5</English>
@ -1183,6 +1290,7 @@
<Spanish>Calibre: 12.7x99mm (AMAX)&lt;br /&gt;Balas: 5</Spanish>
<Polish>Kaliber: 12,7x99mm (AMAX)&lt;br /&gt;Pociski: 5</Polish>
<Russian>Калибр: 12,7x99 мм (A-MAX)&lt;br /&gt;Патронов: 5</Russian>
<Italian>Calibro: 12.7x99mm (AMAX)&lt;br /&gt;Munizioni: 5</Italian>
<German>Kaliber:12,7x99mm (AMAX)&lt;br /&gt;Patronen: 5</German>
</Key>
</Package>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<Project name="ACE">
<Package name="Captives">
<Key ID="STR_ACE_Captives_SetCaptive">
@ -119,6 +119,7 @@
<Polish>Ekwipunek rewidowanej osoby</Polish>
<Russian>Инвентарь обысканного человека</Russian>
<Portuguese>Inventário da pessoa revistada</Portuguese>
<Italian>Inventario delle persone perquisite</Italian>
</Key>
<Key ID="STR_ACE_Captives_FriskPerson">
<English>Frisk person</English>
@ -137,6 +138,7 @@
<French>Se rendre</French>
<German>Kapitulieren</German>
<Spanish>Rendirse</Spanish>
<Portuguese>Render-se</Portuguese>
<Czech>Vzdát se</Czech>
<Polish>Poddaj się</Polish>
<Russian>Сдаться</Russian>
@ -148,6 +150,7 @@
<French>Annuler la capitulation</French>
<German>Den Kampf erneut aufnehmen</German>
<Spanish>Dejar de rendirse</Spanish>
<Portuguese>Parar de se render</Portuguese>
<Czech>Přestat se vzdávat</Czech>
<Polish>Podejmij walkę ponownie</Polish>
<Russian>Прекратить сдачу в плен</Russian>
@ -181,6 +184,7 @@
<French>Rien sous le curseur</French>
<German>Es wurde nichts ausgewählt</German>
<Spanish>Nada bajo el ratón</Spanish>
<Portuguese>Nada debaixo do mouse</Portuguese>
<Czech>Nic není vybráno</Czech>
<Polish>Nie ma nic pod kursorem</Polish>
<Russian>Ничего не выделено</Russian>

View File

@ -24,7 +24,7 @@ class Extended_InitPost_EventHandlers {
init = QUOTE(if (local (_this select 0)) then {_this call FUNC(setName)};);
};
class GVAR(forceWalk) {
init = QUOTE(if (local (_this select 0)) then {_this call FUNC(applyForceWalkStatus);};);
init = QUOTE(_this call FUNC(applyForceWalkStatus));
};
class GVAR(muteUnit) {
init = QUOTE(_this call FUNC(muteUnitHandleInitPost));

View File

@ -0,0 +1,15 @@
class CfgUnitInsignia {
class ACE_insignia_logo {
displayName = "ACE3";
author = "$STR_ACE_Common_ACETeam";
texture = PATHTOF(data\Insignia_ace3logo_ca.paa);
textureVehicle = "";
};
class ACE_insignia_banana {
displayName = "ABE3";
author = "$STR_ACE_Common_ACETeam";
texture = PATHTOF(data\insignia_banana_ca.paa);
textureVehicle = "";
};
};

View File

@ -15,7 +15,7 @@ class CfgWeapons {
class ACE_FakePrimaryWeapon: Rifle_Base_F {
scope = 2;
scopeCurator = 1;
scopeArsenal = 1;
displayName = "";
model = "\A3\Weapons_f\empty";
picture = "";

View File

@ -227,6 +227,7 @@ GVAR(OldIsCamera) = false;
["displayTextStructured", FUNC(displayTextStructured)] call FUNC(addEventhandler);
["displayTextPicture", FUNC(displayTextPicture)] call FUNC(addEventhandler);
["medical_onUnconscious", {if (local (_this select 0) && {!(_this select 1)}) then {[ _this select 0, false, QUOTE(FUNC(loadPerson)), west /* dummy side */] call FUNC(switchToGroupSide);};}] call FUNC(addEventhandler);
["notOnMap", {!visibleMap}] call FUNC(addCanInteractWithCondition);
["isNotInside", {

View File

@ -22,6 +22,7 @@ class CfgPatches {
#include "CfgActions.hpp"
#include "CfgMoves.hpp"
#include "CfgVoice.hpp"
#include "CfgUnitInsignia.hpp"
class ACE_Rsc_Display_Base {
idd = -1;

Binary file not shown.

Binary file not shown.

View File

@ -37,3 +37,4 @@ if (isPlayer _unit) then {
};
}foreach ([_unit] call FUNC(getAllDefinedSetVariables));
_unit setVariable ["ACE_forceWalkStatusNumber", 0, true];

View File

@ -50,4 +50,4 @@ _bitmaskNumber = _forceWalkReasonsBooleans call FUNC(toBitmask);
_unit setVariable ["ACE_forceWalkStatusNumber", _bitmaskNumber, true];
// actually apply the forceWalk command globaly
[[_unit], QUOTE(FUNC(applyForceWalkStatus)), _unit] call FUNC(execRemoteFnc);
[[_unit], QUOTE(FUNC(applyForceWalkStatus)), 2] call FUNC(execRemoteFnc);

View File

@ -1,59 +1,44 @@
/**
* fn_unloadPerson_f.sqf
* @Descr: Unload a person from a vehicle
* @Author: Glowbal
/*
* Author: Glowbal
* Unload a person from a vehicle
*
* @Arguments: [caller OBJECT, unit OBJECT]
* @Return: BOOL Returns true if succesfully unloaded person
* @PublicAPI: true
* Arguments:
* 0: unit <OBJECT>
*
* Return Value:
* Returns true if succesfully unloaded person <BOOL>
*
* Public: No
*/
#include "script_component.hpp"
#define GROUP_SWITCH_ID QUOTE(FUNC(loadPerson))
private ["_caller", "_unit","_vehicle", "_loaded"];
_caller = [_this, 0, ObjNull,[ObjNull]] call BIS_fnc_Param;
_unit = [_this, 1, ObjNull,[ObjNull]] call BIS_fnc_Param;
private ["_unit","_vehicle", "_loaded", "_emptyPos"];
_unit = _this select 0;
_vehicle = vehicle _unit;
if (_vehicle == _unit) exitwith {false;};
if !(speed _vehicle <1 && (((getpos _vehicle) select 2) < 2)) exitwith {false;};
if (!([_caller] call FUNC(isAwake))) exitwith{false;};
moveOut _unit;
_emptyPos = ((getPos _vehicle) findEmptyPosition [0, 10, typeof _unit]);
if (count _emptyPos == 0) exitwith {false};
_unit setPos _emptyPos;
unassignVehicle _unit;
if (!alive _unit) then {
_unit action ["Eject", vehicle _unit];
};
[_unit, false, GROUP_SWITCH_ID, side group _caller] call FUNC(switchToGroupSide);
[_unit, false, GROUP_SWITCH_ID, side group _unit] call FUNC(switchToGroupSide);
_loaded = _vehicle getvariable [QGVAR(loaded_persons),[]];
_loaded = _loaded - [_unit];
_vehicle setvariable [QGVAR(loaded_persons),_loaded,true];
if (!([_unit] call FUNC(isAwake))) then {
_handle = [_unit,_vehicle] spawn {
private ["_unit","_vehicle"];
_unit = _this select 0;
_vehicle = _this select 1;
waituntil {vehicle _unit != _vehicle};
[_unit,([_unit] call FUNC(getDeathAnim)), 1, true] call FUNC(doAnimation);
[format["Unit should move into death anim: %1", _unit]] call FUNC(debug);
};
} else {
if ([_unit] call FUNC(isArrested)) then {
_handle = [_unit,_vehicle] spawn {
_unit = _this select 0;
_vehicle = _this select 1;
waituntil {vehicle _unit != _vehicle};
[_unit,"UnaErcPoslechVelitele2", 1] call FUNC(doAnimation);
[format["Unit should move into arrested anim: %1", _unit]] call FUNC(debug);
};
} else {
[format["Unit should move into normal anim: %1", _unit]] call FUNC(debug);
};
[_unit,([_unit] call FUNC(getDeathAnim)), 1, true] call FUNC(doAnimation);
};
true;

View File

@ -276,6 +276,7 @@
<Russian>Выключить командное меню</Russian>
<Hungarian>Parancsnoki menü kikapcsolása</Hungarian>
<Italian>Disabilita Menù di comando</Italian>
<Portuguese>Desabilitar menu de comando</Portuguese>
</Key>
<Key ID="STR_ACE_Common_Unknown">
<English>Unknown</English>
@ -287,6 +288,7 @@
<Hungarian>Ismeretlen</Hungarian>
<Italian>Sconosciuto</Italian>
<French>Inconnu</French>
<Portuguese>Desconhecido</Portuguese>
</Key>
<Key ID="STR_ACE_Common_NoVoice">
<English>No Voice</English>
@ -298,6 +300,7 @@
<Hungarian>Nincs hang</Hungarian>
<Italian>Senza voce</Italian>
<French>Pas de voix</French>
<Portuguese>Sem voz</Portuguese>
</Key>
<Key ID="STR_ACE_ACTION_ACCEPT_REQUEST_KEY_TITLE">
<English>Accept Requests</English>
@ -309,6 +312,7 @@
<French>Accepter requête</French>
<Russian>Принять запросы</Russian>
<Hungarian>Kérések elfogadása</Hungarian>
<Portuguese>Aceitar Pedido</Portuguese>
</Key>
<Key ID="STR_ACE_ACTION_DECLINE_REQUEST_KEY_TITLE">
<English>Decline Requests</English>
@ -320,6 +324,7 @@
<Russian>Отклонить запросы</Russian>
<French>Rejeter requête</French>
<Hungarian>Kérések elutasítása</Hungarian>
<Portuguese>Rejeitar pedido</Portuguese>
</Key>
<Key ID="STR_ACE_ACTION_ACCEPT_REQUEST_KEY_TOOLTIP">
<English>Accept Requests send by other players. These can be requests to use / share equipment, perform certain actions.</English>
@ -331,6 +336,7 @@
<Russian>Принять запросы, отправленные другими игроками. Например, запросы на использование/совместное использование снаряжения, выполнение определенных действий</Russian>
<French>Accepter les requêtes d'autres joueurs. Comme l'utilisation / l'échange d'équipement, la réalisation d'actions.</French>
<Hungarian>Más játékosok általi kérések elfogadása. Ezek a kérések vonatkozhatnak a felszerelés használatára/megosztására, valamint különböző cselekményekre.</Hungarian>
<Portuguese>Aceitar pedidos enviados por outros jogadores. Podem ser pedidos para usar/ compartilhar equipamento, realizar certas ações.</Portuguese>
</Key>
<Key ID="STR_ACE_ACTION_DECLINE_REQUEST_KEY_TOOLTIP">
<English>Decline Requests send by other players. These can be requests to use / share equipment, perform certain actions.</English>
@ -342,6 +348,7 @@
<Russian>Отклонить запросы, отправленные другими игроками. Например, запросы на использование/совместное использование снаряжения, выполнение определенных действий</Russian>
<French>Rejeter les requêtes d'autres joueurs. Comme l'utilisation / l'échange d'équipement, la réalisation d'actions.</French>
<Hungarian>Más játékosok általi kérések elutasítása. Ezek a kérések vonatkozhatnak a felszerelés használatára/megosztására, valamint különböző cselekményekre.</Hungarian>
<Portuguese>Rejeita pedidos enviados por outros jogadores. Podem ser pedidos para usar/ compartilhar equipamento, realizar certas ações.</Portuguese>
</Key>
<Key ID="STR_ACE_Common_SettingFeedbackIconsName">
<English>Feedback icons</English>
@ -353,6 +360,7 @@
<French>Icones d'information</French>
<Czech>Pomocné ikony</Czech>
<Hungarian>Visszajelző ikonok</Hungarian>
<Portuguese>Ícones de Feedback</Portuguese>
</Key>
<Key ID="STR_ACE_Common_SettingFeedbackIconsDesc">
<English>Select the position of or disable the feedback icons on your screen. These icons will show to provide extra feedback on your character status and actions performed.</English>
@ -364,6 +372,7 @@
<French>Sélection de la position ou la désactivation des icones de feedback. Ces icones vous apportent des informations complémentaires sur votre status et sur les actions en cours.</French>
<Czech>Nastavuje pozici nebo vypíná pomocné ikony. Tyto ikony ukazují extra informace ke stavu postavy a vykonávaných činností.</Czech>
<Hungarian>Itt beállítható a visszajelző ikonok képernyőn lévő helyzete és jelenléte. Ezek az ikonok extra visszajelzést biztosítanak a karaktered állapotán és végrehajtott cselekvésein.</Hungarian>
<Portuguese>Selecione a posição ou disabilite a posição dos ícones de feedback na sua tela. Esses ícones irão aparecer para mostrar feedback extra do status do seu personagem e ações realizadas.</Portuguese>
</Key>
<Key ID="STR_ACE_Common_SettingProgressbarLocationName">
<English>Progress bar location</English>
@ -375,6 +384,7 @@
<French>Position de la barre de progression</French>
<Czech>Pozice ukazetele průběhu činnosti</Czech>
<Hungarian>Állapotjelző sáv helyzete</Hungarian>
<Portuguese>Local da barra de progresso</Portuguese>
</Key>
<Key ID="STR_ACE_Common_SettingProgressbarLocationDesc">
<English>Set the desired location of the progress bar on your screen.</English>
@ -386,6 +396,7 @@
<French>Appliquer la position de la barre de progression sur l'écran</French>
<Czech>Nastavuje pozici ukazetele průběhu činnosti na vaší obrazovce.</Czech>
<Hungarian>Itt beállítható az állapotjelző sáv képernyődön lévő helyzete.</Hungarian>
<Portuguese>Define o local desejado da barra de progresso na sua tela.</Portuguese>
</Key>
<Key ID="STR_ACE_Common_SettingDisplayTextColorName">
<English>Hint Background color</English>
@ -397,6 +408,7 @@
<French>Notification: couleur de l'arrière plan</French>
<Czech>Barva pozadí nápovědy</Czech>
<Hungarian>Súgó háttérszíne</Hungarian>
<Portuguese>Cor do fundo da hint</Portuguese>
</Key>
<Key ID="STR_ACE_Common_SettingDisplayTextColorDesc">
<English>The color of the background from the ACE hints.</English>
@ -408,6 +420,7 @@
<French>Notification ACE: couleur de l'arrière plan</French>
<Czech>Barva pozadí ACE nápověd.</Czech>
<Hungarian>Az ACE-súgók hátterének színe.</Hungarian>
<Portuguese>A cor de fundo das hints do ACE.</Portuguese>
</Key>
<Key ID="STR_ACE_Common_SettingDisplayTextFontColorName">
<English>Hint text font color</English>
@ -419,6 +432,7 @@
<French>Notification: couleur du texte</French>
<Czech>Barva fontu nápověd.</Czech>
<Hungarian>Súgószöveg betűinek színe</Hungarian>
<Portuguese>Cor do do texto da hint</Portuguese>
</Key>
<Key ID="STR_ACE_Common_SettingDisplayTextFontColorDesc">
<English>The color of the text font from the ACE hints. This color is the default color for all text displayed through the ACE Hint system, if the hint text has no other color specified.</English>
@ -430,6 +444,7 @@
<French>Notification ACE: couleur du texte. C'est la couleur par défaut de tout texte affiché dans les notifications ACE, si aucune couleur n'est spécifiée pour les notifications</French>
<Czech>Barva fontu ACE nápověd. Toto je standardní barva pro všechen text zobrazovaný ACE nápovědami, pokud nemá nápověda žádnou specifikanou barvu.</Czech>
<Hungarian>Az ACE-súgók betűkészletének színek. Ez a szín alapértelmezett az összes szövegre az ACE-súgórendszerben, ha a súgószöveg maga nem ad meg más színt.</Hungarian>
<Portuguese>A cor do texto das hints do ACE. Essa cor é a cor default para todos os texos exibidos pelo sistema de hints do ACE , caso o texto da hint não tem outra cor especificada.</Portuguese>
</Key>
<Key ID="STR_ACE_Common_bananaDisplayName">
<English>Banana</English>
@ -441,6 +456,7 @@
<Polish>Banan</Polish>
<French>Banane</French>
<Hungarian>Banán</Hungarian>
<Portuguese>Banana</Portuguese>
</Key>
<Key ID="STR_ACE_Common_bananaDescr">
<English>A banana is an edible fruit, botanically a berry, produced by several kinds of large herbaceous flowering plants in the genus Musa.</English>
@ -452,6 +468,7 @@
<Hungarian>A banán egy ehető gyümölcs, technikai szempontból bogyótermés, melyet több fürtvirágzatú növény termel a Musa rendszertani nemzetségben.</Hungarian>
<Polish>Rodzaj roślin z rodziny bananowatych, obejmujący około 80 gatunków.&lt;br /&gt;Przedstawiciele są typowymi przedstawicielami flory międzyzwrotnikowej Azji, Afryki i Australii.&lt;br /&gt;Część gatunków dostarcza jadalnych owoców. Słowo banan pochodzi prawdopodobnie od arabskiego słowa banan, co oznacza palec, lub afrykańskiego języka wolof, w którym rośliny te określa się mianem banaana.</Polish>
<French>Une banane est un fruit qui, d'un point de vue botanique, fait partie du groupe des baies. Produite par plusieurs sortes de grandes plantes à fleurs herbacées du type Musa.</French>
<Portuguese>A banana é uma fruta comestível, botanicamente uma baga, produzida por vários tipos de plantas herbáceas grandes do genero Musa.</Portuguese>
</Key>
</Package>
</Project>

View File

@ -60,7 +60,7 @@ GVAR(disarmTarget) = _target;
//Setup PFEH
[{
private ["_groundContainer", "_targetContainer", "_playerName", "_rankPicture", "_rankIndex", "_targetUniqueItems", "_holderUniqueItems"];
private ["_groundContainer", "_targetContainer", "_playerName", "_rankPicture", "_rankIndex", "_targetUniqueItems", "_holderUniqueItems", "_holder"];
disableSerialization;
EXPLODE_2_PVT(_this,_args,_pfID);
EXPLODE_3_PVT(_args,_player,_target,_display);

View File

@ -10,6 +10,7 @@
<Russian>Открыть инвентарь</Russian>
<Italian>Apri l'inventario</Italian>
<French>Ouvrir l'inventaire</French>
<Hungarian>Felszerelés megtekintése</Hungarian>
</Key>
</Package>
</Project>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<Project name="ACE">
<Package name="Disposable">
<Key ID="STR_ACE_Disposable_UsedTube">
@ -11,6 +11,7 @@
<Hungarian>Elhasznált kilövőcső</Hungarian>
<Russian>Отстрелянная труба</Russian>
<Italian>Tubo utilizzato</Italian>
<Portuguese>Tubo utilizado</Portuguese>
</Key>
<Key ID="STR_ACE_Disposable_UsedTubeDescription">
<English>Used disposable rocket launcher</English>
@ -22,17 +23,19 @@
<Hungarian>Elhasznált eldobható rakétavető</Hungarian>
<Russian>Отстрелянная одноразовая пусковая установка</Russian>
<Italian>Lanciarazzi monouso utilizzato</Italian>
<Portuguese>Lança foguetes descartável utilizado</Portuguese>
</Key>
<Key ID="STR_ACE_Disposable_PreloadedMissileDummy">
<English>Preloaded Missile Dummy</English>
<German>Vorgeladene Racketennachbildung</German>
<French>Missile préchargé Dummy</French>
<French>Missile préchargé</French>
<Czech>Přednabitá dummy střela</Czech>
<Polish>Wstępnie załadowana atrapa pocisku</Polish>
<Spanish>Precargado misil inerte</Spanish>
<Hungarian>Előtöltött műrakéta</Hungarian>
<Russian>Предзаряженная ракетная болванка</Russian>
<Italian>Missile stupido precaricato</Italian>
<Portuguese>Míssel dummy pré-carregado</Portuguese>
</Key>
</Package>
</Project>

View File

@ -0,0 +1,8 @@
class CfgMovesBasic {
class Actions {
class MoveWithInjuredManDragger;
class MoveWithInjuredManDraggerRfl: MoveWithInjuredManDragger {
Up = "amovpercmstpsraswrfldnon";
};
};
};

View File

@ -14,3 +14,4 @@ class CfgPatches {
#include "CfgEventHandlers.hpp"
#include "CfgVehicles.hpp"
#include "CfgMovesBasic.hpp"

View File

@ -22,4 +22,4 @@ if !([_unit, _target, []] call EFUNC(common,canInteractWith)) exitWith {false};
// a static weapon has to be empty for dragging
if ((typeOf _target) isKindOf "StaticWeapon" && {count crew _target > 0}) exitWith {false};
alive _target && {_target getVariable [QGVAR(canCarry), false]} && {animationState _target in ["", "unconscious"] || (_target getvariable ["ACE_isUnconscious", false]) || (_target isKindOf "CAManBase" && {(_target getHitPointDamage "HitLegs") > 0.4})}
alive _target && {vehicle _target == _target} && {_target getVariable [QGVAR(canCarry), false]} && {animationState _target in ["", "unconscious"] || (_target getvariable ["ACE_isUnconscious", false]) || (_target isKindOf "CAManBase" && {(_target getHitPointDamage "HitLegs") > 0.4})}

View File

@ -22,4 +22,4 @@ if !([_unit, _target, []] call EFUNC(common,canInteractWith)) exitWith {false};
// a static weapon has to be empty for dragging
if ((typeOf _target) isKindOf "StaticWeapon" && {count crew _target > 0}) exitWith {false};
alive _target && {_target getVariable [QGVAR(canDrag), false]} && {animationState _target in ["", "unconscious"] || (_target getvariable ["ACE_isUnconscious", false]) || (_target isKindOf "CAManBase" && {(_target getHitPointDamage "HitLegs") > 0.4})};
alive _target && {vehicle _target == _target} && {_target getVariable [QGVAR(canDrag), false]} && {animationState _target in ["", "unconscious"] || (_target getvariable ["ACE_isUnconscious", false]) || (_target isKindOf "CAManBase" && {(_target getHitPointDamage "HitLegs") > 0.4})};

View File

@ -21,7 +21,7 @@
<Czech>Položit</Czech>
<French>Lâcher</French>
<German>Loslassen</German>
<Portuguese>Largar</Portuguese>
<Portuguese>Soltar</Portuguese>
<Italian>Lascia</Italian>
<Hungarian>Elengedés</Hungarian>
</Key>

View File

@ -37,7 +37,7 @@ player addEventHandler ["Killed", {
} count _deadman;
}];
player addEventHandler ["Take", {
private ["_item", "_getter", "_giver", "_config"];
private ["_item", "_getter", "_giver", "_config", "_detonators"];
_item = _this select 2;
_getter = _this select 0;
_giver = _this select 1;

View File

@ -17,7 +17,11 @@
* Public: No
*/
#include "script_component.hpp"
EXPLODE_4_PVT(_this,_unit,_explosive,_magazineClass,_extra);
private["_config", "_detonators", "_hasRequired", "_requiredItems", "_code", "_count", "_codeSet"];
// Config is the last item in the list of passed in items.
_config = (_this select 3) select (count (_this select 3) - 1);
@ -29,7 +33,7 @@ _detonators = [_unit] call FUNC(getDetonators);
_hasRequired = false;
};
} count _requiredItems;
private ["_code", "_count", "_codeSet"];
_codeSet = false;
while {!_codeSet} do {
_code = str(round (random 9999));

View File

@ -17,7 +17,7 @@
* Public: Yes
*/
#include "script_component.hpp"
private ["_clacker", "_config", "_requiredItems", "_hasRequired"];
private ["_clacker", "_config", "_requiredItems", "_hasRequired", "_detonators"];
EXPLODE_3_PVT(_this,_unit,_explosive,_magazineClass);
// Config is the last item in the list of passed in items.
_config = (_this select 3) select (count (_this select 3) - 1);

View File

@ -15,7 +15,7 @@
* Public: No
*/
#include "script_component.hpp"
private ["_result", "_item", "_children"];
private ["_result", "_item", "_children", "_range", "_required"];
EXPLODE_2_PVT(_this,_unit,_detonator);
_range = GetNumber (ConfigFile >> "CfgWeapons" >> _detonator >> "ACE_Range");

View File

@ -11,7 +11,7 @@
* Public: No
*/
#include "script_component.hpp"
private ["_mags", "_item", "_index", "_children"];
private ["_mags", "_item", "_index", "_children", "_itemCount", "_list"];
EXPLODE_1_PVT(_this,_unit);

View File

@ -14,7 +14,7 @@
* Public: No
*/
#include "script_component.hpp"
private ["_items", "_unit", "_children", "_config"];
private ["_unit", "_children", "_config", "_detonators"];
_unit = _this select 0;
_detonators = [_unit] call FUNC(getDetonators);
_children = [];

View File

@ -15,8 +15,7 @@
* Public: No
*/
#include "script_component.hpp"
private ["_hasRequiredItems","_triggerTypes", "_children",
"_detonators", "_required", "_magTriggers"];
private ["_hasRequiredItems","_triggerTypes", "_children", "_detonators", "_required", "_magTriggers"];
EXPLODE_2_PVT(_this,_magazine,_explosive);
_detonators = [ACE_player] call FUNC(getDetonators);

View File

@ -14,7 +14,7 @@
* Public: Yes
*/
#include "script_component.hpp"
private ["_specialist"];
private ["_isSpecialist"];
EXPLODE_2_PVT(_this,_unit,_target);
if (isNull(_target getVariable [QGVAR(Explosive),objNull])) exitWith {
deleteVehicle _target;

View File

@ -19,18 +19,18 @@
* Public: Yes
*/
#include "script_component.hpp"
private ["_result", "_ignoreRange", "_helper"];
private ["_result", "_ignoreRange", "_helpers", "_pos"];
EXPLODE_3_PVT(_this,_unit,_range,_item);
_ignoreRange = (_range == -1);
_result = true;
if (!_ignoreRange && {(_unit distance (_item select 0)) > _range}) exitWith {false};
_helper = (attachedTo (_item select 0));
if (!isNull(_helper)) then {
detach (_item select 0);
deleteVehicle _helper;
};
_helpers = attachedObjects (_item select 0);
{
detach _x;
deleteVehicle _x;
} forEach _helpers;
if (getNumber (ConfigFile >> "CfgAmmo" >> typeof (_item select 0) >> "TriggerWhenDestroyed") == 0) then {
private ["_exp", "_previousExp"];
@ -46,10 +46,11 @@ if (getNumber (ConfigFile >> "CfgAmmo" >> typeof (_item select 0) >> "TriggerWhe
};
};
[{
_explosive = _this;
if (!isNull _explosive) then {
_explosive setDamage 1;
};
private ["_explosive"];
_explosive = _this;
if (!isNull _explosive) then {
_explosive setDamage 1;
};
}, _item select 0, _item select 1, 0] call EFUNC(common,waitAndExecute);
_result

View File

@ -15,7 +15,7 @@
* Public: Yes
*/
#include "script_component.hpp"
private ["_arr", "_ran", "_i","_speedDial"];
private ["_arr", "_ran", "_i"];
EXPLODE_2_PVT(_this,_unit,_code);
if (_unit getVariable [QGVAR(Dialing),false]) exitWith {};
if !(alive _unit) exitWith {};

View File

@ -14,6 +14,8 @@
* Public: Yes
*/
#include "script_component.hpp"
// IGNORE_PRIVATE_WARNING(_detonators);
private ["_unit", "_items", "_result", "_config"];
_unit = _this select 0;
_items = (items _unit);
@ -21,7 +23,7 @@ _result = [];
{
_config = ConfigFile >> "CfgWeapons" >> _x;
if (getNumber (_config >> "ACE_Detonator") == 1) then {
if (getNumber (_config >> "ACE_Detonator") == 1 && {!(_x in _result)}) then {
_result pushBack _x;
};
} forEach _items;

View File

@ -16,6 +16,8 @@
* Public: Yes
*/
#include "script_component.hpp"
// IGNORE_PRIVATE_WARNING(_allExplosives,_deadmanExplosives);
private ["_unit", "_clackerList", "_adjustedList", "_list", "_filter"];
_unit = _this select 0;
_filter = nil;

View File

@ -14,6 +14,8 @@
* Public: Yes
*/
#include "script_component.hpp"
// IGNORE_PRIVATE_WARNING(_hasExplosives);
private ["_unit", "_result", "_magazines"];
_result = false;
_unit = _this select 0;

View File

@ -14,4 +14,6 @@
* Public: Yes
*/
#include "script_component.hpp"
// IGNORE_PRIVATE_WARNING(_hasPlacedExplosives);
(count (_this call FUNC(getPlacedExplosives)) > 0)

View File

@ -15,6 +15,9 @@
*/
#include "script_component.hpp"
if !(isServer) exitWith {};
private["_activated", "_logic"];
_logic = _this select 0;
_activated = _this select 2;

View File

@ -1,7 +1,10 @@
/*
* Author: Garth 'L-H' de Wet
* Handles the "EpeContactStart" event when placing the explosive.
*
* Arguments:
* 0: Explosive Placing Object <OBJECT>
* 1: Colliding Object <OBJECT>
*
* Return Value:
* None
@ -14,19 +17,23 @@
#include "script_component.hpp"
EXPLODE_2_PVT(_this,_explosive,_hitTarget);
TRACE_2("Explosive EpeContactStart",_explosive,_hitTarget);
if ((_explosive getVariable [QGVAR(Handled), false])) exitWith {};
_explosive setVariable [QGVAR(Handled), true];
if (!isNull _hitTarget && {_hitTarget isKindOf "AllVehicles"}) then {
TRACE_1("Attaching to",_hitTarget);
_explosive attachTo [_hitTarget];
private "_dir";
_dir = _setup getVariable [QGVAR(Direction), 0];
_dir = _explosive getVariable [QGVAR(Direction), 0];
_dir = _dir - (getDir _hitTarget);
[[_explosive, _dir, 0], QFUNC(setPosition)] call EFUNC(common,execRemoteFnc);
} else {
[{
EXPLODE_2_PVT(_this,_player,_explosive);
private "_pos";
_pos = getPosASL _explosive;
if (surfaceIsWater _pos) then {
_pos = getPosASL _explosive;
_explosive setPosASL _pos;

View File

@ -21,10 +21,14 @@
* Public: Yes
*/
#include "script_component.hpp"
private ["_ammo", "_explosive"];
private ["_ammo", "_explosive", "_attachedTo", "_expPos", "_magazineTrigger"];
EXPLODE_6_PVT(_this,_unit,_pos,_dir,_magazineClass,_triggerConfig,_triggerSpecificVars);
if (count _this > 6) then {
deleteVehicle (_this select 6);
DEFAULT_PARAM(6,_setupPlaceholderObject,objNull);
_attachedTo = objNull;
if (!isNull _setupPlaceholderObject) then {
_attachedTo = attachedTo _setupPlaceholderObject;
deleteVehicle _setupPlaceholderObject;
};
if (isNil "_triggerConfig") exitWith {
@ -57,6 +61,11 @@ _expPos = getPosATL _explosive;
_defuseHelper setPosATL (((getPosATL _defuseHelper) vectorAdd (_pos vectorDiff _expPos)));
_explosive setPosATL _pos;
if (!isNull _attachedTo) then {
TRACE_1("Attaching Live Explosive",_attachedTo);
_explosive attachTo [_attachedTo];
};
if (isText(_triggerConfig >> "onPlace") && {[_unit,_explosive,_magazineClass,_triggerSpecificVars]
call compile (getText (_triggerConfig >> "onPlace"))}) exitWith {_explosive};
[[_explosive, _dir, getNumber (_magazineTrigger >> "pitch")], QFUNC(setPosition)] call EFUNC(common,execRemoteFnc);

View File

@ -19,7 +19,7 @@ if (GVAR(pfeh_running)) then {
[QGVAR(Placement),"OnEachFrame"] call CALLSTACK(BIS_fnc_removeStackedEventHandler);
GVAR(pfeh_running) = false;
};
private ["_mag", "_setup", "_player"];
private ["_setup", "_player", "_dir"];
_setup = GVAR(Setup);
GVAR(Setup) = objNull;
[GVAR(placer), "ACE_Explosives", false] call EFUNC(Common,setForceWalkStatus);

View File

@ -28,7 +28,7 @@ GVAR(Setup) setVariable [QGVAR(class), _class, true];
GVAR(TweakedAngle) = 180;
[QGVAR(Placement),"OnEachFrame", {
private "_player";
private ["_player", "_pos"];
_player = ACE_player;
if (GVAR(placer) != _player) exitWith {
call FUNC(place_Cancel);

View File

@ -16,11 +16,14 @@
*/
#include "script_component.hpp"
EXPLODE_2_PVT(_this,_unit,_target);
private["_actionToPlay", "_defuseTime", "_isEOD"];
_target = attachedTo (_target);
_fnc_DefuseTime = {
EXPLODE_2_PVT(_this,_specialist,_target);
private ["_defuseTime"];
_defuseTime = 5;
if (isNumber(ConfigFile >> "CfgAmmo" >> typeOf (_target) >> "ACE_DefuseTime")) then {
_defuseTime = getNumber(ConfigFile >> "CfgAmmo" >> typeOf (_target) >> "ACE_DefuseTime");
@ -40,23 +43,22 @@ if (ACE_player != _unit) then {
if (isPlayer _unit) then {
[[_unit, _target], QFUNC(startDefuse), _unit] call EFUNC(common,execRemoteFnc);
} else {
// TODO: use scheduled delay execution
[_unit, _target, [[_unit] call EFUNC(Common,isEOD), _target] call _fnc_DefuseTime] spawn {
(_this select 0) playActionNow _actionToPlay;
(_this select 0) disableAI "MOVE";
(_this select 0) disableAI "TARGET";
sleep (_this select 2);
[(_this select 0), (_this select 1)] call FUNC(defuseExplosive);
(_this select 0) enableAI "MOVE";
(_this select 0) enableAI "TARGET";
};
_unit playActionNow _actionToPlay;
_unit disableAI "MOVE";
_unit disableAI "TARGET";
_defuseTime = [[_unit] call EFUNC(Common,isEOD), _target] call _fnc_DefuseTime;
[{
PARAMS_2(_unit,_target);
[_unit, _target] call FUNC(defuseExplosive);
_unit enableAI "MOVE";
_unit enableAI "TARGET";
}, [_unit, _target], _defuseTime, 0] call EFUNC(common,waitAndExecute);
};
} else {
_unit playActionNow _actionToPlay;
private ["_defuseSeconds", "_isEOD"];
_isEOD = [_unit] call EFUNC(Common,isEOD);
_defuseSeconds = [_isEOD, _target] call _fnc_DefuseTime;
_defuseTime = [_isEOD, _target] call _fnc_DefuseTime;
if (_isEOD || {!GVAR(RequireSpecialist)}) then {
[_defuseSeconds, [_unit,_target], {(_this select 0) call FUNC(defuseExplosive)}, {}, (localize "STR_ACE_Explosives_DefusingExplosive")] call EFUNC(common,progressBar);
[_defuseTime, [_unit,_target], {(_this select 0) call FUNC(defuseExplosive)}, {}, (localize "STR_ACE_Explosives_DefusingExplosive")] call EFUNC(common,progressBar);
};
};

View File

@ -19,6 +19,7 @@
EXPLODE_2_PVT(_this,_explosive,_delay);
[{
private ["_explosive"];
_explosive = _this;
if (!isNull _explosive) then {
[_explosive, -1, [_explosive, 0]] call FUNC(detonateExplosive);

View File

@ -14,7 +14,10 @@
* Public: Yes
*/
#include "script_component.hpp"
private "_result";
private["_result", "_config", "_count", "_index", "_supports"];
// IGNORE_PRIVATE_WARNING(_supports);
_result = [];
_config = getArray (ConfigFile >> "CfgMagazines" >> (_this select 0) >> "ACE_Triggers" >> "SupportedTriggers");
_count = count _config;

View File

@ -1,6 +1,8 @@
#define COMPONENT explosives
#include "\z\ace\addons\main\script_mod.hpp"
// #define DEBUG_MODE_FULL
#ifdef DEBUG_ENABLED_EXPLOSIVES
#define DEBUG_MODE_FULL
#endif

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<Project name="ACE">
<Package name="Explosives">
<Key ID="STR_ACE_Explosives_Menu">
@ -138,7 +138,7 @@
<German>M57 Zündvorrichtung</German>
<Spanish>Dispositivo de detonación M57</Spanish>
<Polish>Zapalnik M57</Polish>
<French>M57 Dispositif de mise à feu</French>
<French>Dispositif de mise à feu M57</French>
<Czech>Odpalovací zařízení M57</Czech>
<Italian>Detonatore M57</Italian>
<Hungarian>M57 Gyújtóeszköz</Hungarian>
@ -162,7 +162,7 @@
<German>M26 Zündvorrichtung</German>
<Spanish>Dispositivo de detonación MK26</Spanish>
<Polish>Zapalnik M26</Polish>
<French>M26 Dispositif de mise à feu</French>
<French>Dispositif de mise à feu M26</French>
<Czech>Odpalovací zařízení M26</Czech>
<Italian>Detonatore M26</Italian>
<Hungarian>M26 Gyújtóeszköz</Hungarian>
@ -282,7 +282,7 @@
<German>"Zünden"-Menü</German>
<Spanish>Menú de detonación</Spanish>
<Polish>Menu detonacji</Polish>
<French>Menu de mise à feu</French>
<French>Menu de mise à feux</French>
<Czech>Menu Detonace</Czech>
<Italian>Menù di detonazione</Italian>
<Hungarian>Robbantási menü</Hungarian>
@ -294,7 +294,7 @@
<German>"Platzieren"-Menü</German>
<Spanish>Menú de colocación</Spanish>
<Polish>Menu umieszczania</Polish>
<French>Menu placement</French>
<French>Menu de placement</French>
<Czech>Menu Umístění</Czech>
<Italian>Menù di collocamento</Italian>
<Hungarian>Elhelyezési menü</Hungarian>
@ -477,6 +477,7 @@
<Polish>Czuwak</Polish>
<Spanish>Detonador de hombre muerto</Spanish>
<Hungarian>Dead Man's Switch</Hungarian>
<Portuguese>Detonador do homem morto</Portuguese>
<Russian>Кнопка мертвеца</Russian>
<Italian>Detonatore a rilascio</Italian>
</Key>
@ -487,7 +488,8 @@
<Czech>Používaný k vzdálenému odpálení, při uvolnění odpálí výbušniny</Czech>
<Polish>Używany w celu zdalnej detonacji ładunków, kiedy jego operator zostanie zabity.</Polish>
<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</Hungarian>
<Portuguese>Usado para detonar remotamente o explosivo quando solto.</Portuguese>
<Russian>Используется для дистанционного подрыва, после смерти оператора.</Russian>
<Italian>Usato per attivare esplosivi al momento del rilascio</Italian>
</Key>
@ -501,6 +503,7 @@
<Hungarian>Felszedés</Hungarian>
<Russian>Поднять</Russian>
<Italian>Raccogli</Italian>
<Portuguese>Pegar</Portuguese>
</Key>
</Package>
</Project>

View File

@ -1,6 +1,6 @@
// by commy2
["ACE3", QGVAR(lazeTarget), localize "STR_ACE_FCS_LaseTarget",
["ACE3 Vehicles", QGVAR(lazeTarget), localize "STR_ACE_FCS_LaseTarget",
{
// Conditions: canInteract
if !([ACE_player, vehicle ACE_player, []] call EFUNC(common,canInteractWith)) exitWith {false};
@ -30,7 +30,7 @@
},
[15, [false, false, false]], false] call cba_fnc_addKeybind; //Tab Key
["ACE3", QGVAR(adjustRangeUp), localize "STR_ACE_FCS_AdjustRangeUp",
["ACE3 Vehicles", QGVAR(adjustRangeUp), localize "STR_ACE_FCS_AdjustRangeUp",
{
// Conditions: canInteract
if !([ACE_player, vehicle ACE_player, []] call EFUNC(common,canInteractWith)) exitWith {false};
@ -44,7 +44,7 @@
{false},
[201, [false, false, false]], false] call cba_fnc_addKeybind; //PageUp Key
["ACE3", QGVAR(adjustRangDown), localize "STR_ACE_FCS_AdjustRangeDown",
["ACE3 Vehicles", QGVAR(adjustRangDown), localize "STR_ACE_FCS_AdjustRangeDown",
{
// Conditions: canInteract
if !([ACE_player, vehicle ACE_player, []] call EFUNC(common,canInteractWith)) exitWith {false};

View File

@ -11,6 +11,7 @@
<Russian>Подсветить цель / Замерить расстояние</Russian>
<Hungarian>Célpont lézerezése / Távolság Bemérése</Hungarian>
<Italian>Misura la distanza</Italian>
<Portuguese>Marcar com laser / Medir Distância</Portuguese>
</Key>
<Key ID="STR_ACE_FCS_ZeroedTo">
<English>Zeroed To</English>

View File

@ -0,0 +1,8 @@
class ACE_Settings {
class GVAR(enabled) {
displayName = "Frag System";
description = "Enables the shrapnel system for explosives";
typeName = "BOOL";
value = 1;
};
};

View File

@ -9,7 +9,7 @@ class CfgAmmo {
// GVAR(skip) = 1;
//};
class Bo_GBU12_LGB;
class Nou_GBU12 : Bo_GBU12_LGB {
class ACE_GBU12 : Bo_GBU12_LGB {
GVAR(classes)[] = {"ACE_frag_large", "ACE_frag_large", "ACE_frag_large_HD", "ACE_frag_large", "ACE_frag_huge", "ACE_frag_huge_HD", "ACE_frag_huge"};
GVAR(metal) = 140000;
GVAR(charge) = 87000;
@ -44,10 +44,14 @@ class CfgAmmo {
};
class RocketBase;
//class R_Hydra_HE: RocketBase {
// GVAR(skip) = 1;
//};
class R_Hydra_HE: RocketBase {
// Source: http://fas.org/man/dod-101/sys/missile/hydra-70.htm
GVAR(classes)[] = {"ACE_frag_medium", "ACE_frag_medium_HD"};
GVAR(metal) = 3850;
GVAR(charge) = 1040;
GVAR(gurney_c) = 2700;
GVAR(gurney_k) = 1/2;
};
//class R_57mm_HE: RocketBase {
// GVAR(skip) = 1;
//};
@ -69,25 +73,26 @@ class CfgAmmo {
GVAR(gurney_k) = 1/2;
};
class G_40mm_HE: GrenadeBase {
GVAR(skip) = 0;
GVAR(force) = 1;
};
class ACE_G_40mm_HEDP: G_40mm_HE {
GVAR(classes)[] = {"ACE_frag_tiny_HD"};
GVAR(metal) = 200;
GVAR(charge) = 45;
GVAR(gurney_c) = 2830;
GVAR(gurney_k) = 3/5;
};
class ACE_G_40mm_HE: ACE_G_40mm_HEDP {
// Source: http://www.inetres.com/gp/military/infantry/grenade/40mm_ammo.html#M441
GVAR(classes)[] = {"ACE_frag_tiny_HD"};
GVAR(metal) = 200;
GVAR(charge) = 32;
GVAR(gurney_c) = 2700;
GVAR(gurney_k) = 3/5;
GVAR(gurney_k) = 1/2;
};
class G_40mm_HEDP: G_40mm_HE {
// Source: http://www.inetres.com/gp/military/infantry/grenade/40mm_ammo.html#M433
GVAR(classes)[] = {"ACE_frag_tiny_HD"};
GVAR(metal) = 200;
GVAR(charge) = 45;
GVAR(gurney_c) = 2830;
GVAR(gurney_k) = 1/2;
};
class ACE_G_40mm_HEDP: G_40mm_HEDP {
};
class ACE_G_40mm_HE: G_40mm_HE {
};
class ACE_G_40mm_Practice: ACE_G_40mm_HE {
GVAR(skip) = 1;
@ -98,7 +103,24 @@ class CfgAmmo {
};
// curator ammo entries
class Sh_82mm_AMOS;
class ShellBase;
class Sh_125mm_HEAT;
class Sh_155mm_AMOS: ShellBase {
// Source: http://www.globalsecurity.org/military/systems/munitions/m795.htm
GVAR(classes)[] = {"ACE_frag_large", "ACE_frag_large", "ACE_frag_large_HD", "ACE_frag_large", "ACE_frag_huge", "ACE_frag_huge_HD", "ACE_frag_huge"};
GVAR(metal) = 36000;
GVAR(charge) = 9979;
GVAR(gurney_c) = 2440;
GVAR(gurney_k) = 1/2;
};
class Sh_82mm_AMOS : Sh_155mm_AMOS {
// Source: http://www.arsenal-bg.com/defense_police/mortar_bombs_82mm.htm
GVAR(classes)[] = {"ACE_frag_medium", "ACE_frag_medium_HD"};
GVAR(metal) = 3200;
GVAR(charge) = 420;
GVAR(gurney_c) = 2440;
GVAR(gurney_k) = 1/2;
};
class ModuleOrdnanceMortar_F_Ammo: Sh_82mm_AMOS {
GVAR(classes)[] = {"ACE_frag_medium", "ACE_frag_medium_HD"};
GVAR(metal) = 800;
@ -106,8 +128,27 @@ class CfgAmmo {
GVAR(gurney_c) = 2320;
GVAR(gurney_k) = 1/2;
};
class Sh_155mm_AMOS;
class Sh_105mm_HEAT_MP : Sh_125mm_HEAT {
GVAR(classes)[] = {"ACE_frag_medium", "ACE_frag_medium_HD"};
GVAR(metal) = 11400;
GVAR(charge) = 7100;
GVAR(gurney_c) = 2800;
GVAR(gurney_k) = 1/2;
};
class Sh_120mm_HE : ShellBase {
GVAR(classes)[] = {"ACE_frag_medium", "ACE_frag_medium_HD"};
GVAR(metal) = 23000;
GVAR(charge) = 3148;
GVAR(gurney_c) = 2830;
GVAR(gurney_k) = 1/2;
};
class Sh_125mm_HE: Sh_120mm_HE {
GVAR(classes)[] = {"ACE_frag_medium", "ACE_frag_medium_HD"};
GVAR(metal) = 16000;
GVAR(charge) = 3200;
GVAR(gurney_c) = 2440;
GVAR(gurney_k) = 1/2;
};
class ModuleOrdnanceHowitzer_F_ammo: Sh_155mm_AMOS {
GVAR(classes)[] = {"ACE_frag_large", "ACE_frag_large", "ACE_frag_large_HD", "ACE_frag_large", "ACE_frag_huge", "ACE_frag_huge_HD", "ACE_frag_huge"};
GVAR(metal) = 1950;
@ -131,11 +172,23 @@ class CfgAmmo {
// GVAR(multiplier) = 1.2;
//};
//class MissileBase;
//class M_Hellfire_AT: MissileBase {
// GVAR(force) = 1;
// GVAR(multiplier) = 1.75;
//};
class MissileBase;
class Missile_AGM_02_F : MissileBase {
// Source: http://fas.org/man/dod-101/sys/smart/agm-65.htm
GVAR(classes)[] = {"ACE_frag_medium", "ACE_frag_medium_HD"};
GVAR(metal) = 56250;
GVAR(charge) = 39000;
GVAR(gurney_c) = 2700;
GVAR(gurney_k) = 1/2;
};
class M_Hellfire_AT: MissileBase {
// Source: http://www.designation-systems.net/dusrm/m-114.html
GVAR(classes)[] = {"ACE_frag_medium", "ACE_frag_medium_HD"};
GVAR(metal) = 8000;
GVAR(charge) = 2400;
GVAR(gurney_c) = 2700;
GVAR(gurney_k) = 1/2;
};
/*
class B_762x51_Ball;

View File

@ -1,12 +1,12 @@
class Extended_PreInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_pre_init));
init = QUOTE(call COMPILE_FILE(XEH_preInit));
};
};
class Extended_PostInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_post_init));
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_postInit));
};
};

View File

@ -0,0 +1,5 @@
#include "script_component.hpp"
if(isServer) then {
[QGVAR(frag_eh), { _this call FUNC(frago); }] call ace_common_fnc_addEventHandler;
};

View File

@ -1,18 +0,0 @@
#include "script_component.hpp"
if(isServer) then {
[QGVAR(frag_eh), { _this call FUNC(frago); }] call ace_common_fnc_addEventHandler;
};
/*
GVAR(replacedBisArtyWrapper) = false;
[] spawn {
waitUntil {
if(!(isNil "BIS_ARTY_F_ShellFlight")) then {
ACE_WRAPPER_BIS_ARTY_F_ShellFlight = BIS_ARTY_F_ShellFlight;
BIS_ARTY_F_ShellFlight = FUNC(BIS_ARTY_WRAPPER);
GVAR(replacedBisArtyWrapper) = true;
};
sleep 4;
GVAR(replacedBisArtyWrapper)
};
};
*/

View File

@ -1,48 +1,35 @@
#include "script_component.hpp"
ADDON = false;
PREP(doSpall);
PREP(fired);
PREP(frago);
PREP(trackFragRound);
PREP(spallTrack);
PREP(doSpall);
PREP(vectorDiffFast);
PREP(trackFragRound);
GVAR(trackedObjects) = [];
GVAR(blackList) = [];
GVAR(traceFrags) = false;
GVAR(replacedBisArtyWrapper) = true;
GVAR(trackedObjects) = [];
GVAR(TOTALFRAGS) = 0;
GVAR(spallIsTrackingCount) = 0;
GVAR(spallHPData) = [];
GVAR(spallIsTrackingCount) = 0;
GVAR(autoTrace) = true;
GVAR(traceID) = -1;
GVAR(traces) = [];
GVAR(tracesStarted) = false;
GVAR(traceID) = -1;
GVAR(autoTrace) = true;
// TODO setting
GVAR(enabled) = true;
// * Other Shit */
PREP(frag_trace);
PREP(denyFrag);
PREP(BIS_ARTY_WRAPPER);
PREP(startTracing);
PREP(stopTracing);
PREP(clearTraces);
PREP(trackTrace);
PREP(addBlackList);
PREP(addTrack);
PREP(drawTraces);
PREP(removeTrack);
PREP(spallHP);
PREP(addBlackList);
PREP(addManualTrack);
PREP(startTracing);
PREP(stopTracing);
PREP(trackTrace);
ADDON = true;

View File

@ -10,7 +10,6 @@ class CfgPatches {
};
};
//PRELOAD_ADDONS;
#include "CfgEventhandlers.hpp"
#include "CfgAmmo.hpp"
#include "ACE_Settings.hpp"

View File

@ -1,13 +0,0 @@
#include "script_component.hpp"
_ret = [(_this select 6)] call FUNC(removeTrack);
if(!_ret) then {
[(_this select 6)] call FUNC(addBlackList);
};
_this call ACE_WRAPPER_BIS_ARTY_F_ShellFlight;
_catEntry = BIS_ARTY_SHELLCAT select ((count BIS_ARTY_SHELLCAT) - 1);
_shell = _catEntry select 0;
_ARTY_DeployOnImpact = getText (configFile >> "CfgAmmo" >> "ARTY_DeployOnImpact");
if(_ARTY_DeployOnImpact == "") then {
_this set[6, _shell];
_this call FUNC(fired);
};

View File

@ -1,7 +0,0 @@
#include "script_component.hpp"
private ["_round"];
_round = _this select 0;
if(alive _round) then {
GVAR(trackedObjects) set[(count GVAR(trackedObjects)), _round];
[DFUNC(trackFragRound), 0, [_round, (getPosASL _round), (velocity _round), (typeOf _round), time, objNull, false, 0, 0]] call cba_fnc_addPerFrameHandler;
};

View File

@ -1,5 +1,8 @@
#include "script_component.hpp"
if(GVAR(autoTrace)) then {
private ["_color", "_data", "_index", "_obj", "_objSpd", "_origin", "_positions"];
if (GVAR(autoTrace)) then {
[] call FUNC(startTracing);
};
@ -12,9 +15,9 @@ if((count _this) > 2) then {
_color = _this select 2;
};
_positions = [];
_objVel = velocity _obj;
_objTVel = sqrt((_objVel select 0)^2 + (_objVel select 1)^2 + (_objVel select 2)^2);
_positions set[(count _positions), [(getPos _obj), _objTVel]];
_data = [_origin, typeOf _origin, typeOf _obj, _objTVel, _positions, _color];
_objSpd = vectorMagnitude (velocity _obj);
_positions set[(count _positions), [(getPos _obj), _objSpd]];
_data = [_origin, typeOf _origin, typeOf _obj, _objSpd, _positions, _color];
GVAR(traces) set[_index, _data];
[DFUNC(trackTrace), 0, [_obj, _index, time]] call cba_fnc_addPerFrameHandler;

View File

@ -1,2 +0,0 @@
#include "script_component.hpp"
GVAR(traces) = [];

View File

@ -1,7 +0,0 @@
#include "script_component.hpp"
private ["_ret"];
_ret = [(_this select 0)] call FUNC(removeTrack);
if(!_ret) then {
[(_this select 0)] call FUNC(addBlackList);
};

View File

@ -8,8 +8,7 @@ private ["_params", "_initialData", "_hpData", "_roundType", "_round", "_object"
"_idh", "_alive", "_exit", "_vm", "_velocity", "_unitDir", "_oldVelocity", "_curVelocity", "_diff", "_polar",
"_pos", "_spallPos", "_i", "_pos1", "_pos2", "_blah", "_data", "_spallPolar", "_c", "_warn", "_m", "_k",
"_gC", "_shellType", "_fragPower", "_spread", "_spallCount", "_elev", "_dir", "_vel", "_spallFragVect",
"_fragment"];
"_fragment", "_index", "_hitData", "_fragTypes", "_fragType", "_foundObjects"];
_params = _this select 0;
[(_this select 1)] call cba_fnc_removePerFrameHandler;
@ -45,8 +44,8 @@ if(_alive || {_caliber >= 2.5} || {(_explosive > 0 && {_idh >= 1})}) then {
_vm = 1;
_velocity = _initialData select 5;
_oldVelocity = _velocity call BIS_fnc_magnitude;
_curVelocity = (velocity _round) call BIS_fnc_magnitude;
_oldVelocity = vectorMagnitude _velocity;
_curVelocity = vectorMagnitude (velocity _round);
if(alive _round) then {
_diff = _velocity vectorDiff (velocity _round);
@ -66,16 +65,8 @@ if(_alive || {_caliber >= 2.5} || {(_explosive > 0 && {_idh >= 1})}) then {
_pos = _hpData select 3;
_spallPos = nil;
for "_i" from 0 to 100 do {
_pos1 = [
(_pos select 0) + (((_unitDir select 0)*0.01)*_i),
(_pos select 1) + (((_unitDir select 1)*0.01)*_i),
(_pos select 2) + (((_unitDir select 2)*0.01)*_i)
];
_pos2 = [
(_pos select 0) + (((_unitDir select 0)*0.01)*(_i+1)),
(_pos select 1) + (((_unitDir select 1)*0.01)*(_i+1)),
(_pos select 2) + (((_unitDir select 2)*0.01)*(_i+1))
];
_pos1 = _pos vectorAdd (_unitDir vectorMultiply (0.01 * _i));
_pos2 = _pos vectorAdd (_unitDir vectorMultiply (0.01 * (_i + 1)));
// _blah = [_object, "FIRE"] intersect [_object worldToModel (ASLtoATL _pos1), _object worldToModel (ASLtoATL _pos2)];
// diag_log text format["b: %1", _blah];

View File

@ -1,13 +1,13 @@
#include "script_component.hpp"
private ["_color", "_index", "_lastPos", "_lastSpd", "_max", "_positions", "_startSpeed"];
{
_positions = _x select 4;
_color = _x select 5;
_index = 0;
_max = count _positions;
_startSpeed = (_positions select 0) select 1;
if(_startSpeed <= 0) then {
_startSpeed = 0.01;
};
_startSpeed = 0.01 max ((_positions select 0) select 1);
_lastSpd = [];
_lastPos = [];
while {_index < _max} do {

View File

@ -1,6 +1,8 @@
#include "script_component.hpp"
private ["_gun", "_type", "_round", "_doFragTrack", "_doSpall"];
if !(!isNil QGVAR(enabled) && {GVAR(enabled)}) exitWith {};
private ["_gun", "_type", "_round", "_doFragTrack", "_doSpall", "_spallTrack", "_spallTrackID"];
if (!GVAR(enabled)) exitWith {};
_gun = _this select 0;
_type = _this select 4;

View File

@ -1,10 +0,0 @@
#include "script_component.hpp"
private ["_params", "_shell"];
_params = _this select 0;
_shell = _params select 0;
if(alive _shell) then {
drop ["\Ca\Data\Cl_basic","","Billboard",1,30,(getPos _shell),[0,0,0],1,1.275,1.0,0.0,[0.5],[[0,1,0,1]],[0],0.0,2.0,"","",""];
} else {
[_this select 1] call cba_fnc_removePerFrameHandler;
};

View File

@ -14,7 +14,7 @@ private ["_round", "_lastPos", "_lastVel", "_shellType", "_gun", "_fragTypes", "
"_manObjects", "_objects", "_crew", "_fragCount", "_fragArcs", "_doRandom", "_target", "_boundingBox",
"_targetPos", "_distance", "_add", "_bbX", "_bbY", "_bbZ", "_cubic", "_targetVel", "_baseVec", "_dir",
"_currentCount", "_count", "_vecVar", "_i", "_vec", "_fp", "_vel", "_fragType", "_fragObj", "_randomCount",
"_sectorSize", "_sectorOffset", "_randomDir"];
"_sectorSize", "_sectorOffset", "_randomDir", "_endTime"];
_round = _this select 0;
@ -159,11 +159,7 @@ if(_isArmed && (count _objects) > 0) then {
_vec set[2, (_vec select 2)-(_vecVar/2)+(random _vecVar)];
_fp = (_fragPower-(random (_fragPowerRandom)));
_vel = [
(_vec select 0)*_fp,
(_vec select 1)*_fp,
(_vec select 2)*_fp
];
_vel = _vec vectorMultiply _fp;
_fragType = round (random ((count _fragTypes)-1));
_fragObj = (_fragTypes select _fragType) createVehicleLocal [0,0,10000];
@ -201,11 +197,7 @@ if(_isArmed && (count _objects) > 0) then {
_fp = (_fragPower-(random (_fragPowerRandom)));
_vel = [
(_vec select 0)*_fp,
(_vec select 1)*_fp,
(_vec select 2)*_fp
];
_vel = _vec vectorMultiply _fp;
_fragType = round (random ((count _fragTypes)-1));
_fragObj = (_fragTypes select _fragType) createVehicleLocal [0,0,10000];

View File

@ -1,15 +1,15 @@
#include "script_component.hpp"
private ["_initialData", "_currentCount", "_hpData", "_round", "_hpRound"];
private ["_initialData", "_hpData", "_round", "_hpRound", "_hpDirect"];
//player sideChat format["f: %1 c: %2", (_this select 0), (count GVAR(spallHPData))];
if((_this select 0) <= (count GVAR(spallHPData))) then {
if ((_this select 0) <= (count GVAR(spallHPData))) then {
_initialData = GVAR(spallHPData) select (_this select 0);
if(!isNil "_initialData") then {
if (!isNil "_initialData") then {
_hpRound = ((_this select 1) select 0) select 2;
_round = _initialData select 3;
_hpDirect = ((_this select 1) select 0) select 10;
if(_hpDirect && {_round == _hpRound}) then {
if (_hpDirect && {_round == _hpRound}) then {
{
_hpData = _x;
_round = _initialData select 3;

View File

@ -1,30 +1,22 @@
//fnc_spallTrack.sqf
#include "script_component.hpp"
private ["_params", "_round", "_multiplier", "_delta", "_curPos", "_velocity", "_velocityStep", "_forwardPos", "_intersectsWith", "_index", "_i", "_test", "_hpId", "_data"];
// setAccTime 0;
private ["_round", "_multiplier", "_foundObjects", "_foundObjectHPIds", "_delta", "_curPos", "_velocity", "_velocityStep", "_forwardPos", "_intersectsWith", "_index", "_hpId", "_data"];
_round = _this select 0;
_multiplier = _this select 1;
_foundObjects = _this select 2;
_foundObjectHPIds = _this select 3;
_delta = (1/diag_fps)*_multiplier;
_delta = (1/diag_fps) * _multiplier;
_curPos = getPosASL _round;
_velocity = velocity _round;
_velocityStep = [
(_velocity select 0)*_delta,
(_velocity select 1)*_delta,
(_velocity select 2)*_delta
];
_forwardPos = [
(_curPos select 0) + (_velocityStep select 0),
(_curPos select 1) + (_velocityStep select 1),
(_curPos select 2) + (_velocityStep select 2)
];
_velocityStep = _velocity vectorMultiply _delta;
_forwardPos = _curPos vectorAdd _velocityStep;
_intersectsWith = lineIntersectsWith [_curPos, _forwardPos];
if(count _intersectsWith > 0) then {
if (count _intersectsWith > 0) then {
// player sideChat format["inter: %1", _intersectsWith];
{
if(!(_x in _foundObjects)) then {

View File

@ -1,6 +1,6 @@
//fnc_trackFragRound.sqf
#include "script_component.hpp"
private ["_params", "_round", "_lastPos", "_lastVel", "_type", "_time", "_doSpall", "_skip", "_explosive", "_indirectRange", "_force", "_fragPower"];
private ["_params", "_round", "_lastPos", "_lastVel", "_type", "_time", "_doSpall", "_spallTrack", "_foundObjectHPIds", "_skip", "_explosive", "_indirectRange", "_force", "_fragPower"];
_params = _this select 0;
_round = _params select 0;
_lastPos = _params select 1;

View File

@ -1,14 +1,14 @@
#include "script_component.hpp"
private ["_params", "_tracerObj", "_index", "_positions", "_data"];
_params = _this select 0;
_tracerObj = _params select 0;
_index = _params select 1;
if(alive _tracerObj && (count GVAR(traces)) > 0) then {
if (alive _tracerObj && (count GVAR(traces)) > 0) then {
_data = GVAR(traces) select _index;
_positions = _data select 4;
_objVel = velocity _tracerObj;
_objTVel = sqrt((_objVel select 0)^2 + (_objVel select 1)^2 + (_objVel select 2)^2);
_positions set[(count _positions), [(getPos _tracerObj), _objTVel]];
_positions set[(count _positions), [(getPos _tracerObj), vectorMagnitude (velocity _tracerObj)]];
} else {
[(_this select 1)] call cba_fnc_removePerFrameHandler;
};

View File

@ -1,15 +0,0 @@
#include "script_component.hpp"
private["_p1","_p2","_return"];
_p1 = _this select 0;
_p2 = _this select 1;
if ((count _p1) != (count _p2)) then {textLogFormat ["BIS_FNC Error: vectors not of same size"]};
_return = [];
{
_return set[_forEachIndex, (_p2 select _forEachIndex) - _x];
} forEach _p1;
_return

View File

@ -11,6 +11,7 @@
<French>Désactive la fragmentation</French>
<Hungarian>Repeszek letiltása</Hungarian>
<Italian>Disattiva la frammentazione</Italian>
<Portuguese>Disabilitar Fragmentação</Portuguese>
</Key>
</Package>
</Project>

View File

@ -17,7 +17,7 @@
#include "script_component.hpp"
if (!hasInterface) exitWith {};
["ACE3", QGVAR(wipeGlasses), localize "STR_ACE_Goggles_WipeGlasses",
["ACE3 Common", QGVAR(wipeGlasses), localize "STR_ACE_Goggles_WipeGlasses",
{
if (!(GETVAR(ace_player,ACE_isUnconscious,false))) exitWith {
call FUNC(clearGlasses);

View File

@ -10,7 +10,7 @@ GVAR(flashbangPPEffectCC) = ppEffectCreate ["ColorCorrections", 4265];
GVAR(flashbangPPEffectCC) ppEffectForceInNVG true;
// Add keybinds
["ACE3", QGVAR(switchGrenadeMode), localize "STR_ACE_Grenades_SwitchGrenadeMode",
["ACE3 Weapons", QGVAR(switchGrenadeMode), localize "STR_ACE_Grenades_SwitchGrenadeMode",
{
// Conditions: canInteract
if !([ACE_player, objNull, ["isNotEscorting"]] call EFUNC(common,canInteractWith)) exitWith {false};

View File

@ -95,7 +95,7 @@
<Russian>XM84 (M84) - граната нелетального действия, и предназначена для отвлечения и временного вывода из строя, либо дезориентации противника. Основное использование нашла при освобождении заложников, захвате преступников и террористов, а также проведении диверсионных миссий.</Russian>
<Hungarian>Villanógránát néven is ismert. Azonnali villanási vakságot, süketséget, fülzúgást, és belső füli zavart okoz.</Hungarian>
<Italian>Anche conosciuta come flashbang. Causa accecamento immediato, sensazioni di sposatezza, mancanza d'equilibrio e disturbi al timpano.</Italian>
<Portuguese>Um tipo de granada não-letal destinado a confundir, desorientar e distrair uma potencial ameaça.</Portuguese>
<Portuguese>Também conhecida como flashbang. Causa uma clarão imediato, cegueira, surdez, zumbido e distúrbio no tímpano.</Portuguese>
</Key>
<Key ID="STR_ACE_Grenades_M127A1_White_Name">
<English>M127A1 Hand Held Signal (White)</English>
@ -152,7 +152,7 @@
<Hungarian>Kézi jelzőrakéta, Fehér színű</Hungarian>
<Italian>Bengala (Bianco)</Italian>
<Polish>Flara ręczna (biała)</Polish>
<Portuguese>Sinalizador (Branco)</Portuguese>
<Portuguese>Sinalizador de Mão (Branco)</Portuguese>
<Russian>Фальшфейер (Белый)</Russian>
<Spanish>Bengala (Blanca)</Spanish>
<French>Feux à main (Blanc)</French>
@ -164,7 +164,7 @@
<Hungarian>Kézi jelzőrakéta, Piros színű</Hungarian>
<Italian>Bengala (Rosso)</Italian>
<Polish>Flara ręczna (czerwona)</Polish>
<Portuguese>Sinalizador (Vermelho)</Portuguese>
<Portuguese>Sinalizador de Mão (Vermelho)</Portuguese>
<Russian>Фальшфейер (Красный)</Russian>
<Spanish>Bengala (Roja)</Spanish>
<French>Feux à main (Rouge)</French>
@ -176,7 +176,7 @@
<Hungarian>Kézi jelzőrakéta, Zöld színű</Hungarian>
<Italian>Bengala (Verde)</Italian>
<Polish>Flara ręczna (zielona)</Polish>
<Portuguese>Sinalizador (Verde)</Portuguese>
<Portuguese>Sinalizador de Mão (Verde)</Portuguese>
<Russian>Фальшфейер (Зелёный)</Russian>
<Spanish>Bengala (Verde)</Spanish>
<French>Feux à main (Vert)</French>
@ -188,7 +188,7 @@
<Hungarian>Kézi jelzőrakéta, Sárga színű</Hungarian>
<Italian>Bengala (Giallo)</Italian>
<Polish>Flara ręczna (żółta)</Polish>
<Portuguese>Sinalizador (Amarelo)</Portuguese>
<Portuguese>Sinalizador de Mão (Amarelo)</Portuguese>
<Russian>Фальшфейер (Жёлтые)</Russian>
<Spanish>Bengala (Amarilla)</Spanish>
<French>Feux à main (Jaune)</French>

View File

@ -21,7 +21,7 @@
*/
#include "script_component.hpp"
private ["_silencer", "_audibleFireCoef", "_loudness", "_strength", "_vehAttenuation"];
private ["_silencer", "_audibleFireCoef", "_audibleFire", "_loudness", "_strength", "_vehAttenuation"];
PARAMS_7(_object,_firer,_distance,_weapon,_muzzle,_mode,_ammo);

View File

@ -5,11 +5,11 @@ if (!hasInterface) exitWith {};
GVAR(ParsedTextCached) = [];
//Setup text/shadow color matrix
//Setup text/shadow/size/color settings matrix
[] call FUNC(setupTextColors);
["SettingChanged", {
PARAMS_2(_name,_value);
if ((_name == QGVAR(colorTextMax)) || {_name == QGVAR(colorTextMin)} || {_name == QGVAR(colorShadowMax)} || {_name == QGVAR(colorShadowMin)}) then {
PARAMS_1(_name);
if (_name in [QGVAR(colorTextMax), QGVAR(colorTextMin), QGVAR(colorShadowMax), QGVAR(colorShadowMin), QGVAR(textSize), QGVAR(shadowSetting)]) then {
[] call FUNC(setupTextColors);
};
}] call EFUNC(common,addEventhandler);
@ -28,24 +28,22 @@ addMissionEventHandler ["Draw3D", DFUNC(render)];
};
["ACE3", QGVAR(InteractKey), (localize "STR_ACE_Interact_Menu_InteractKey"),
["ACE3 Common", QGVAR(InteractKey), (localize "STR_ACE_Interact_Menu_InteractKey"),
{
// Conditions: canInteract
if !([ACE_player, objNull, ["isNotInside","isNotDragging", "isNotCarrying", "isNotSwimming", "notOnMap", "isNotEscorting", "isNotSurrendering"]] call EFUNC(common,canInteractWith)) exitWith {false};
// Statement
[0] call FUNC(keyDown)
},
{[0] call FUNC(keyUp)},
},{[0,false] call FUNC(keyUp)},
[219, [false, false, false]], false] call cba_fnc_addKeybind; //Left Windows Key
["ACE3", QGVAR(SelfInteractKey), (localize "STR_ACE_Interact_Menu_SelfInteractKey"),
["ACE3 Common", QGVAR(SelfInteractKey), (localize "STR_ACE_Interact_Menu_SelfInteractKey"),
{
// Conditions: canInteract
if !([ACE_player, objNull, ["isNotInside","isNotDragging", "isNotCarrying", "isNotSwimming", "notOnMap", "isNotEscorting", "isNotSurrendering"]] call EFUNC(common,canInteractWith)) exitWith {false};
// Statement
[1] call FUNC(keyDown)
},
{[1] call FUNC(keyUp)},
},{[1,false] call FUNC(keyUp)},
[219, [false, true, false]], false] call cba_fnc_addKeybind; //Left Windows Key + Ctrl/Strg

View File

@ -25,6 +25,13 @@ class ACE_Settings {
isClientSettable = 1;
displayName = "$STR_ACE_Interact_Menu_AlwaysUseCursorSelfInteraction";
};
class GVAR(cursorKeepCentered) {
value = 0;
typeName = "BOOL";
isClientSettable = 1;
displayName = "$STR_ACE_Interact_cursorKeepCentered";
description = "$STR_ACE_Interact_cursorKeepCenteredDescription";
};
class GVAR(AlwaysUseCursorInteraction) {
value = 0;
typeName = "BOOL";
@ -61,8 +68,29 @@ class ACE_Settings {
isClientSettable = 1;
displayName = "$STR_ACE_Interact_Menu_ColorShadowMin";
};
class GVAR(textSize) {
value = 2;
typeName = "SCALAR";
isClientSettable = 1;
displayName = "$STR_ACE_Interact_textSize";
values[] = {"$str_very_small", "$str_small", "$str_medium", "$str_large", "$str_very_large"};
};
class GVAR(shadowSetting) {
value = 2;
typeName = "SCALAR";
isClientSettable = 1;
displayName = "$STR_ACE_Interact_shadowSetting";
description = "$STR_ACE_Interact_shadowSettingDescription";
values[] = {"$STR_A3_OPTIONS_DISABLED", "$STR_A3_OPTIONS_ENABLED", "$STR_ACE_Interact_shadowOutline"};
};
class GVAR(actionOnKeyRelease) {
value = 1;
typeName = "BOOL";
isClientSettable = 1;
displayName = "$STR_ACE_Interact_Menu_ActionOnKeyRelease";
};
};
class ACE_Extensions {
extensions[] += {"ace_breakLine"};
extensions[] += {"ace_break_line"};
};

View File

@ -26,8 +26,7 @@ if !(isNil {missionNamespace getVariable [_actionsVarName, nil]}) exitWith {};
private "_recurseFnc";
_recurseFnc = {
private ["_actions", "_displayName", "_distance", "_icon", "_statement", "_selection", "_condition", "_showDisabled",
"_enableInside", "_canCollapse", "_runOnHover", "_children", "_entry", "_entryCfg", "_insertChildren", "_modifierFunction"];
private ["_actions", "_displayName", "_distance", "_icon", "_statement", "_position", "_condition", "_showDisabled", "_enableInside", "_canCollapse", "_runOnHover", "_children", "_entry", "_entryCfg", "_insertChildren", "_modifierFunction", "_i"];
EXPLODE_1_PVT(_this,_actionsCfg);
_actions = [];
@ -39,13 +38,18 @@ _recurseFnc = {
_icon = getText (_entryCfg >> "icon");
_statement = compile (getText (_entryCfg >> "statement"));
_selection = "";
if (isArray ( _entryCfg >> "selection" )) then {
_selection = getArray ( _entryCfg >> "selection" )
// If the position entry is present, compile it
_position = getText (_entryCfg >> "position");
if (_position != "") then {
_position = compile _position;
} else {
_selection = getText (_entryCfg >> "selection");
if (_selection == "") then {
_selection = [0,0,0];
// If the not, but the selection entry is present use that
_position = getText (_entryCfg >> "selection");
if (_position != "") then {
_position = compile format ["_target selectionPosition '%1'", _position];
} else {
// Otherwise, just use the origin
_position = {[0,0,0]};
};
};
@ -77,7 +81,7 @@ _recurseFnc = {
_condition,
_insertChildren,
[],
_selection,
_position,
_distance,
[_showDisabled,_enableInside,_canCollapse,_runOnHover],
_modifierFunction
@ -106,7 +110,7 @@ missionNamespace setVariable [_actionsVarName, [_actionsCfg] call _recurseFnc];
{ true },
{},
[],
[0,0,0],
{[0,0,0]},
1,
[false,false,false]
],

View File

@ -14,7 +14,7 @@
EXPLODE_1_PVT(_this,_target);
private ["_objectType","_actionsVarName"];
private ["_objectType","_actionsVarName", "_canCollapse", "_children", "_enableInside", "_entry", "_entryCfg", "_i", "_insertChildren", "_modifierFunction", "_runOnHover"];
_objectType = _target;
if (typeName _target == "OBJECT") then {
_objectType = typeOf _target;
@ -26,7 +26,7 @@ if !(isNil {missionNamespace getVariable [_actionsVarName, nil]}) exitWith {};
private "_recurseFnc";
_recurseFnc = {
private ["_actions", "_displayName", "_distance", "_icon", "_statement", "_selection", "_condition", "_showDisabled",
private ["_actions", "_displayName", "_icon", "_statement", "_condition", "_showDisabled",
"_enableInside", "_canCollapse", "_runOnHover", "_children", "_entry", "_entryCfg", "_insertChildren", "_modifierFunction"];
EXPLODE_1_PVT(_this,_actionsCfg);
_actions = [];
@ -64,7 +64,7 @@ _recurseFnc = {
_statement,
_condition,
_insertChildren,
[],
{},
[0,0,0],
10, //distace
[_showDisabled,_enableInside,_canCollapse,_runOnHover],
@ -113,7 +113,7 @@ _actions = [
},
{[ACE_player, _target, ["isNotInside","isNotDragging", "isNotCarrying", "isNotSwimming", "notOnMap", "isNotEscorting", "isNotSurrendering"]] call EFUNC(common,canInteractWith)},
{},
[],
{},
"Spine3",
10,
[false,true,false]

View File

@ -11,7 +11,7 @@
* 4: Condition <CODE>
* 5: Insert children code <CODE> (Optional)
* 6: Action parameters <ANY> (Optional)
* 7: Position (Position or Selection Name) <POSITION> or <STRING> (Optional)
* 7: Position (Position array, Position code or Selection Name) <ARRAY>, <CODE> or <STRING> (Optional)
* 8: Distance <NUMBER> (Optional)
* 9: Other parameters <ARRAY> (Optional)
* 10: Modifier function <CODE> (Optional)
@ -28,6 +28,7 @@
EXPLODE_5_PVT(_this,_actionName,_displayName,_icon,_statement,_condition);
// IGNORE_PRIVATE_WARNING(_target);
private ["_insertChildren","_customParams","_position","_distance","_params", "_modifierFunction"];
_insertChildren = if (count _this > 5) then {
@ -43,9 +44,19 @@ _customParams = if (count _this > 6) then {
};
_position = if (count _this > 7) then {
_this select 7
if (typeName (_this select 7) == "STRING") then {
// If the action is set to a selection, create the suitable code
compile format ["_target selectionPosition '%1'", _this select 7];
} else {
if (typeName (_this select 7) == "ARRAY") then {
// If the action is set to a array position, create the suitable code
compile format ["%1", _this select 7];
} else {
_this select 7
};
}
} else {
[0,0,0]
{[0,0,0]}
};
_distance = if (count _this > 8) then {

View File

@ -19,7 +19,7 @@
EXPLODE_2_PVT(_this,_actionTreeList,_parentPath);
private ["_parentNode", "_foundParentNode", "_fnc_findFolder"];
private ["_parentNode", "_foundParentNode", "_fnc_findFolder", "_actionTree"];
// Hack to make this work on the root node too
if (count _parentPath == 0) exitWith {

View File

@ -15,7 +15,11 @@ EXPLODE_2_PVT(_this,_newUnit,_oldUnit);
// add to new unit
private "_ehid";
_ehid = [_newUnit, "DefaultAction", {EGVAR(interact_menu,openedMenuType) >= 0}, {}] call EFUNC(common,addActionEventHandler);
_ehid = [_newUnit, "DefaultAction", {GVAR(openedMenuType) >= 0}, {
if !(GVAR(actionOnKeyRelease)) then {
[GVAR(openedMenuType),true] call FUNC(keyUp);
};
}] call EFUNC(common,addActionEventHandler);
_newUnit setVariable [QGVAR(AAEHID), _ehid];

View File

@ -43,8 +43,20 @@ if (GVAR(useCursorMenu)) then {
// uiNamespace getVariable QGVAR(dlgCursorMenu);
// uiNamespace getVariable QGVAR(cursorMenuOpened);
ctrlEnable [91921, true];
GVAR(cursorPos) = [0.5,0.5,0];
((finddisplay 91919) displayctrl 91921) ctrlAddEventHandler ["MouseMoving", {
GVAR(cursorPos) = [_this select 1, _this select 2, 0];
if (GVAR(cursorKeepCentered)) then {
GVAR(cursorPos) = GVAR(cursorPos) vectorAdd [_this select 1, _this select 2, 0] vectorDiff [0.5, 0.5, 0];
setMousePosition [0.5, 0.5];
} else {
GVAR(cursorPos) = [_this select 1, _this select 2, 0];
};
}];
// handles LMB in cursor mode when action on keyrelease is disabled
((finddisplay 91919) displayctrl 91921) ctrlAddEventHandler ["MouseButtonDown", {
if !(GVAR(actionOnKeyRelease)) then {
[GVAR(openedMenuType),true] call FUNC(keyUp);
};
}];
setMousePosition [0.5, 0.5];
};

View File

@ -12,6 +12,9 @@
*/
#include "script_component.hpp"
private "_calledByClicking";
_calledByClicking = _this select 1;
// Exit if there's no menu opened
if (GVAR(openedMenuType) < 0) exitWith {true};
@ -29,6 +32,9 @@ if(GVAR(actionSelected)) then {
// Clear the conditions caches
["clearConditionCaches", []] call EFUNC(common,localEvent);
// exit scope if selecting an action on key release is disabled
if (!(GVAR(actionOnKeyRelease)) && !_calledByClicking) exitWith {};
// Check the action conditions
_actionData = GVAR(selectedAction) select 0;
if ([_target, _player, _actionData select 6] call (_actionData select 4)) then {

View File

@ -19,7 +19,7 @@
EXPLODE_3_PVT(_this,_objectType,_typeNum,_fullPath);
private ["_res","_varName","_actionTrees"];
private ["_res","_varName","_actionTrees", "_actionIndex", "_parentLevel", "_parentNode"];
_res = _fullPath call FUNC(splitPath);
EXPLODE_2_PVT(_res,_parentPath,_actionName);

View File

@ -14,7 +14,7 @@
BEGIN_COUNTER(fnc_render);
private ["_cursorPos1", "_cursorPos2", "_cursorVec", "_p1", "_p2", "_p", "_v", "_cp", "_forEachIndex", "_renderTargets", "_x", "_cursorScreenPos", "_closestDistance", "_closestSelection", "_pos", "_sPos", "_disSq", "_closest", "_cTime", "_delta", "_foundTarget", "_misMatch", "_hoverPath", "_i"];
private ["_cursorPos1", "_cursorPos2", "_p1", "_p2", "_forEachIndex", "_x", "_cursorScreenPos", "_closestDistance", "_closestSelection", "_sPos", "_disSq", "_closest", "_cTime", "_delta", "_foundTarget", "_misMatch", "_hoverPath", "_i", "_actionData", "_player", "_target"];
_foundTarget = false;
_cursorPos1 = positionCameraToWorld [0, 0, 0];
_cursorPos2 = positionCameraToWorld [0, 0, 2];

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