Merge pull request #1 from acemod/master

Update
This commit is contained in:
Coren4 2015-04-16 14:57:31 +02:00
commit 4686203d2c
235 changed files with 6804 additions and 4978 deletions

View File

@ -33,6 +33,7 @@ Aggr094 <bastards4glory@gmail.com>
Anthariel <Contact@storm-simulation.com>
BlackQwar
Brakoviejo
Clon1998 <ps.patti1998@gmail.com>
Codingboy
Crusty
eRazeri
@ -48,6 +49,7 @@ GieNkoV <gienkov.grzegorz@gmail.com>
gpgpgpgp
Grzegorz
Hamburger SV
Harakhti <shadowdragonphd@gmail.com>
havena <silveredenis@gmail.com>
Hawkins
jokoho48
@ -59,12 +61,14 @@ MarcBook
meat <p.humberdroz@gmail.com>
Michail Nikolaev
nic547 <nic547@outlook.com>
nomisum <nomisum@gmail.com>
oscarmolinadev
pokertour
rakowozz
Raspu86
Riccardo Petricca <petriccarcc@gmail.com>
Robert Boklahánics <bokirobi@gmail.com>
ramius86 <pasini86@hotmail.com>
simon84
Sniperwolf572 <tenga6@gmail.com>
Tonic
@ -76,5 +80,4 @@ ruPaladin <happyworm24@rambler.ru>
BlackPixxel
Asgar Serran <piechottaf@web.de>
Kavinsky <nmunozfernandez@gmail.com>
BlackPixxel
Coren <coren4@gmail.com>

BIN
ace_breakLine.dll Normal file

Binary file not shown.

View File

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

View File

@ -1,11 +0,0 @@
#define GRAVITY 9.80665
#define ABSOLUTE_ZERO_IN_CELSIUS -273.15
#define KELVIN(t) (t - ABSOLUTE_ZERO_IN_CELSIUS)
#define CELSIUS(t) (t + ABSOLUTE_ZERO_IN_CELSIUS)
#define UNIVERSAL_GAS_CONSTANT 8.314
#define WATER_VAPOR_MOLAR_MASS 0.018016
#define DRY_AIR_MOLAR_MASS 0.028964
#define SPECIFIC_GAS_CONSTANT_DRY_AIR 287.058
#define STD_AIR_DENSITY_ICAO 1.22498
#define STD_AIR_DENSITY_ASM 1.20885
#define GET_TEMPERATURE_AT_HEIGHT(h) (EGVAR(weather,currentTemperature) - 0.0065 * (h))

View File

@ -15,7 +15,6 @@
* None
*/
#include "script_component.hpp"
#include "defines.h"
private ["_temperature", "_pressure", "_relativeHumidity"];
_temperature = _this select 0; // in C

View File

@ -16,7 +16,6 @@
* Public: No
*/
#include "script_component.hpp"
#include "defines.h"
private ["_ballisticCoefficient", "_temperature", "_pressure", "_relativeHumidity", "_atmosphereModel", "_airDensity"];
_ballisticCoefficient = _this select 0;

View File

@ -22,9 +22,9 @@ if (GVAR(Protractor)) exitWith {
1 cutText ["", "PLAIN"];
true
};
if (weaponLowered ACE_player) exitWith { true };
if (vehicle ACE_player != ACE_player) exitWith { true };
if (currentWeapon ACE_player != primaryWeapon ACE_player) exitWith { true };
if (weaponLowered ACE_player) exitWith { false };
if (vehicle ACE_player != ACE_player) exitWith { false };
if (currentWeapon ACE_player != primaryWeapon ACE_player) exitWith { false };
2 cutText ["", "PLAIN"];
EGVAR(weather,WindInfo) = false;

View File

@ -18,7 +18,6 @@
* Public: No
*/
#include "script_component.hpp"
#include "defines.h"
private ["_unit", "_weapon", "_mode", "_ammo", "_magazine", "_caliber", "_bullet", "_abort", "_index", "_opticsName", "_opticType", "_bulletTraceVisible", "_temperature", "_barometricPressure", "_atmosphereModel", "_bulletMass", "_bulletLength", "_bulletTranslation", "_airFriction", "_dragModel", "_velocityBoundaryData", "_muzzleVelocity", "_muzzleVelocityCoef", "_muzzleVelocityShift", "_bulletVelocity", "_bulletSpeed", "_bulletLength", "_bulletWeight", "_barrelTwist", "_twistDirection", "_stabilityFactor", "_transonicStabilityCoef", "_ACE_Elevation", "_ACE_Windage", "_ID"];
_unit = _this select 0;

View File

@ -5,7 +5,6 @@
// Statement
[] call FUNC(displayProtractor);
false
},
{false},
[37, [true, true, false]], false, 0] call CBA_fnc_addKeybind; // (CTRL + SHIFT + K)

View File

@ -12,3 +12,17 @@
#endif
#include "\z\ace\addons\main\script_macros.hpp"
#define GRAVITY 9.80665
#define ABSOLUTE_ZERO_IN_CELSIUS -273.15
#define KELVIN(t) (t - ABSOLUTE_ZERO_IN_CELSIUS)
#define CELSIUS(t) (t + ABSOLUTE_ZERO_IN_CELSIUS)
#define UNIVERSAL_GAS_CONSTANT 8.314
#define WATER_VAPOR_MOLAR_MASS 0.018016
#define DRY_AIR_MOLAR_MASS 0.028964
#define SPECIFIC_GAS_CONSTANT_DRY_AIR 287.058
#define STD_AIR_DENSITY_ICAO 1.22498
#define STD_AIR_DENSITY_ASM 1.20885
#define GET_TEMPERATURE_AT_HEIGHT(h) (EGVAR(weather,currentTemperature) - 0.0065 * (h))
#define EXTENSION_REQUIRED_VERSION "1.0"

View File

@ -1,11 +1,20 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler. -->
<Project name="ACE">
<Package name="AdvancedBallistics">
<Key ID="STR_ACE_AdvancedBallistics_WindInfoKey">
<English>Show Wind Info</English>
<Polish>Pokaż inf. o wietrze</Polish>
<Italian>Mostra indicazioni del vento</Italian>
<Russian>Показать информацию о ветре</Russian>
<French>Afficher les info du vent</French>
</Key>
<Key ID="STR_ACE_AdvancedBallistics_ProtractorKey">
<English>Show Protractor</English>
<Polish>Pokaż kątomierz</Polish>
<Italian>Mostra il rapportatore</Italian>
<Russian>Показать транспортир</Russian>
<French>Afficher le rapporteur</French>
</Key>
</Package>
</Project>

View File

@ -16,7 +16,7 @@ class CfgAmmo {
explosionEffects = "ExploAmmoExplosion";
model = "\A3\Weapons_f\Data\bullettracer\tracer_red";
};
class ACE_20mm_HEDP : B_20mm {};
class ACE_20mm_HE : B_20mm {};
class ACE_20mm_AP : B_20mm {
hit = 50;
indirectHit = 12;

View File

@ -10,7 +10,7 @@ class CfgMagazines {
// an extended magazine for the comanche
class 300Rnd_20mm_shells;
class ACE_500Rnd_20mm_shells_Comanche: 300Rnd_20mm_shells {
ammo = "ACE_20mm_HEDP";
ammo = "ACE_20mm_HE";
count = 500;
};
};

View File

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2014-12-12 -->
<Project name="ACE">
<Package name="Aircraft">
<Key ID="STR_ACE_Aircraft_CMFlareLauncher_Burst_Name">
@ -8,7 +7,7 @@
<Spanish>Ráfaga</Spanish>
<Polish>Seria</Polish>
<Czech>Dávka</Czech>
<French>Rafale</French>
<French>Contre mesure</French>
<Russian>Очередь</Russian>
<Hungarian>Sorozat</Hungarian>
<Portuguese>Rajada</Portuguese>
@ -30,21 +29,23 @@
<English>Open Cargo Door</English>
<German>Laderampe öffnen</German>
<Spanish>Abrir compuerta de carga</Spanish>
<French>Ourvir Rampe Cargo</French>
<French>Ourvir rampe cargo</French>
<Polish>Otwórz drzwi ładowni</Polish>
<Czech>Otevřít nákladní prostor</Czech>
<Hungarian>Rámpát kinyitni</Hungarian>
<Hungarian>Rakodórámpa nyitása</Hungarian>
<Russian>Открыть грузовой отсек</Russian>
<Italian>Apri la porta del cargo</Italian>
</Key>
<Key ID="STR_ACE_Aircraft_CloseCargoRamp">
<English>Close Cargo Door</English>
<German>Laderampe schließen</German>
<Spanish>Cerrar compuerta de carga</Spanish>
<French>Fermer la Rampe du Cargo</French>
<French>Fermer rampe cargo</French>
<Polish>Zamknij drzwi ładowni</Polish>
<Czech>Zavřít nákladní prostor</Czech>
<Hungarian>Rámpát zárni</Hungarian>
<Hungarian>Rakodórámpa zárása</Hungarian>
<Russian>Закрыть грузовой отсек</Russian>
<Italian>Chiudi la porta del cargo</Italian>
</Key>
</Package>
</Project>

View File

@ -116,10 +116,10 @@ class ATragMX_RscListBox {
color[]={1,1,1,0.6};
colorActive[]={1,1,1,1};
colorDisabled[]={1,1,1,0.3};
thumb=QUOTE(PATHTOF(ui\data\igui_scrollbar_thumb_ca.paa));
arrowFull=QUOTE(PATHTOF(ui\data\igui_arrow_top_active_ca.paa));
arrowEmpty=QUOTE(PATHTOF(ui\data\igui_arrow_top_ca.paa));
border=QUOTE(PATHTOF(ui\data\igui_border_scroll_ca.paa));
//thumb="\ca\ui\data\igui_scrollbar_thumb_ca.paa";
//arrowFull="\ca\ui\data\igui_arrow_top_active_ca.paa";
//arrowEmpty="\ca\ui\data\igui_arrow_top_ca.paa";
//border="\ca\ui\data\igui_border_scroll_ca.paa";
};
class ListScrollBar : ScrollBar {

View File

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

View File

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

View File

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

View File

@ -56,3 +56,13 @@ GVAR(windageOutput) = [0, 0, 0, 0];
GVAR(leadOutput) = [0, 0, 0, 0];
GVAR(tofOutput) = [0, 0, 0, 0];
GVAR(velocityOutput) = [0, 0, 0, 0];
GVAR(showMainPage) = true;
GVAR(showAddNewGun) = false;
GVAR(showGunList) = false;
GVAR(showRangeCard) = false;
GVAR(showRangeCardSetup) = false;
GVAR(showTargetRangeAssist) = false;
GVAR(showTargetSpeedAssist) = false;
GVAR(showTargetSpeedAssistTimer) = false;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -8,4 +8,4 @@
false
},
{false},
[197, [false, false, false]], false, 0] call CBA_fnc_addKeybind; // (PRINT)
[0, [false, false, false]], false, 0] call CBA_fnc_addKeybind; // (empty default key)

View File

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

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler. -->
<Project name="ACE">
<Package name="ATragMX">
<Key ID="STR_ACE_ATragMX_Name">
@ -15,12 +16,18 @@
</Key>
<Key ID="STR_ACE_ATragMX_OpenATragMXDialog">
<English>Open ATragMX</English>
<Polish>Otwórz ATragMX</Polish>
<Russian>Открыть ATragMX</Russian>
</Key>
<Key ID="STR_ACE_ATragMX_Description">
<English>Rugged PDA with ATragMX</English>
<Polish>Przenośny PDA z kalkulatorem balistycznym ATragMX</Polish>
<Russian>Защищенный КПК с ATragMX</Russian>
</Key>
<Key ID="STR_ACE_ATragMX_ATragMXDialogKey">
<English>Open ATragMX</English>
<Polish>Otwórz ATragMX</Polish>
<Russian>Открыть ATragMX</Russian>
</Key>
</Package>
</Project>

View File

@ -90,7 +90,7 @@
<German>Leuchtstab befestigt</German>
<Spanish>Barra de luz acoplada</Spanish>
<Polish>Przyczepiono światło chemiczne</Polish>
<French>Chemlight attaché</French>
<French>Chemlight attachée</French>
<Czech>Chemické světlo připnuto</Czech>
<Portuguese>Chemlight Acoplada</Portuguese>
<Italian>Chemlight attaccata</Italian>
@ -102,7 +102,7 @@
<German>Leuchtstab entfernt</German>
<Spanish>Barra de luz quitada</Spanish>
<Polish>Odczepiono światło chemiczne</Polish>
<French>Chemlight détaché</French>
<French>Chemlight détachée</French>
<Czech>Chemické světlo odepnuto</Czech>
<Portuguese>Chemlight Separada</Portuguese>
<Italian>Chemlight staccata</Italian>
@ -171,12 +171,13 @@
</Key>
<Key ID="STR_ACE_Attach_Failed">
<English>Attach Failed</English>
<French>Échec de l'attachement</French>
<French>Impossible d'attacher</French>
<German>Befestigen fehlgeschlagen</German>
<Russian>Соединение прервано</Russian>
<Russian>Не удалось присоединить</Russian>
<Spanish>Error al acoplar</Spanish>
<Czech>Připnutí selhalo</Czech>
<Polish>Przyczepianie nie powiodło się</Polish>
<Hungarian>Hozzácsatolás sikertelen</Hungarian>
</Key>
<Key ID="STR_ACE_Attach_Item_Attached">
<English>%1&lt;br/&gt;Attached</English>

View File

@ -3,21 +3,20 @@ class CfgAmmo {
class BulletCore;
class BulletBase: BulletCore {
// Default: 6 | More is good, but too much is bad (especially with wind deflection / advanced ballistics)
timeToLive = 10;
timeToLive=6;
};
class B_20mm : BulletBase {
timeToLive = 30;
timeToLive=30;
};
class B_25mm : BulletBase {
timeToLive = 30;
timeToLive=30;
};
class B_35mm_AA : BulletBase {
timeToLive = 30;
timeToLive=30;
};
class B_30mm_AP : BulletBase {
timeToLive = 30;
timeToLive=30;
};
class B_556x45_Ball : BulletBase {
@ -85,12 +84,13 @@ class CfgAmmo {
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
ACE_ballisticCoefficients[]={0.168};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ASM";
ACE_standardAtmosphere="ICAO";
ACE_dragModel=7;
ACE_muzzleVelocities[]={780, 880, 920};
ACE_barrelLengths[]={10, 16.3, 20};
};
class ACE_545x39_Ball_7T3M : B_556x45_Ball_Tracer_Red {
class B_556x45_Ball_Tracer_Yellow;
class ACE_545x39_Ball_7T3M : B_556x45_Ball_Tracer_Yellow {
airFriction=-0.001162;
caliber=0.5;
deflecting=18;
@ -102,13 +102,13 @@ class CfgAmmo {
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
ACE_ballisticCoefficients[]={0.168};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ASM";
ACE_standardAtmosphere="ICAO";
ACE_dragModel=7;
ACE_muzzleVelocities[]={785, 883, 925};
ACE_barrelLengths[]={10, 16.3, 20};
};
class B_65x39_Caseless : BulletBase {
airFriction=-0.000772;
airFriction=-0.000785;
typicalSpeed=800;
ACE_caliber=0.264;
ACE_bulletLength=1.295;
@ -122,13 +122,32 @@ class CfgAmmo {
ACE_barrelLengths[]={10, 16, 20, 24, 26, 30};
};
class B_65x39_Case_yellow;
class ACE_B_65x39_Caseless_Tracer_Dim : B_65x39_Case_yellow {
class ACE_65x39_Caseless_Tracer_Dim : B_65x39_Case_yellow {
nvgOnly = 1;
};
class B_65x39_Caseless_green;
class ACE_65x39_Caseless_green_Tracer_Dim : B_65x39_Caseless_green {
nvgOnly = 1;
};
class ACE_65x47_Ball_Scenar: B_65x39_Caseless
{
airFriction=-0.00078;
typicalSpeed=820 ;
ACE_caliber=0.264;
ACE_bulletLength=1.364;
ACE_bulletMass=139;
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
ACE_ballisticCoefficients[]={0.290};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=7;
ACE_muzzleVelocities[]={730, 760, 790, 820, 830};
ACE_barrelLengths[]={10, 16, 20, 24, 26};
};
class B_762x51_Ball : BulletBase {
airFriction=-0.001035;
typicalSpeed=833;
hit=14;
hit=9;
ACE_caliber=0.308;
ACE_bulletLength=1.14;
ACE_bulletMass=146;
@ -140,8 +159,8 @@ class CfgAmmo {
ACE_muzzleVelocities[]={700, 800, 820, 833, 845};
ACE_barrelLengths[]={10, 16, 20, 24, 26};
};
class B_762x51_Tracer_Red;
class ACE_B_762x51_Tracer_Dim: B_762x51_Tracer_Red {
class B_762x51_Tracer_Yellow;
class ACE_B_762x51_Tracer_Dim: B_762x51_Tracer_Yellow {
nvgOnly = 1;
};
class ACE_762x51_Ball_M118LR : B_762x51_Ball {
@ -153,17 +172,33 @@ class CfgAmmo {
ACE_bulletLength=1.24;
ACE_bulletMass=175;
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
ACE_ballisticCoefficients[]={0.505, 0.496, 0.485, 0.485, 0.485};
ACE_velocityBoundaries[]={853, 549, 549, 549};
ACE_ballisticCoefficients[]={0.243};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=1;
ACE_dragModel=7;
ACE_muzzleVelocities[]={750, 780, 790, 794};
ACE_barrelLengths[]={16, 20, 24, 26};
};
class ACE_762x51_Ball_Mk319_Mod_0 : B_762x51_Ball {
airFriction=-0.00103;
caliber=0.85;
hit=14;
typicalSpeed=890;
ACE_caliber=0.308;
ACE_bulletLength=1.24;
ACE_bulletMass=130;
ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619};
ACE_ballisticCoefficients[]={0.377};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=1;
ACE_muzzleVelocities[]={838, 892, 910};
ACE_barrelLengths[]={13, 16, 20};
};
class ACE_762x51_Ball_Subsonic : B_762x51_Ball {
airFriction=-0.000535;
caliber=0.5;
hit=16;
hit=6;
typicalSpeed=790;
ACE_caliber=0.308;
ACE_bulletLength=1.340;
@ -176,7 +211,57 @@ class CfgAmmo {
ACE_muzzleVelocities[]={305, 325, 335, 340};
ACE_barrelLengths[]={16, 20, 24, 26};
};
class B_762x54_Ball : BulletBase {
class ACE_762x67_Ball_Mk248_Mod_0 : B_762x51_Ball {
airFriction=-0.000830;
caliber=1.08;
hit=17;
typicalSpeed=900;
ACE_caliber=0.308;
ACE_bulletLength=1.353;
ACE_bulletMass=190;
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
ACE_ballisticCoefficients[]={0.268};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=7;
ACE_muzzleVelocities[]={865, 900, 924};
ACE_barrelLengths[]={20, 24, 26};
};
class ACE_762x67_Ball_Mk248_Mod_1 : B_762x51_Ball {
airFriction=-0.000815;
caliber=1.12;
hit=18;
typicalSpeed=867;
ACE_caliber=0.308;
ACE_bulletLength=1.489;
ACE_bulletMass=220;
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
ACE_ballisticCoefficients[]={0.310};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=7;
ACE_muzzleVelocities[]={847, 867, 877};
ACE_barrelLengths[]={20, 24, 26};
};
class ACE_762x67_Ball_Berger_Hybrid_OTM : B_762x51_Ball {
airFriction=-0.00076;
caliber=1.15;
hit=19;
typicalSpeed=853;
ACE_caliber=0.308;
ACE_bulletLength=1.602;
ACE_bulletMass=230;
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
ACE_ballisticCoefficients[]={0.368};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=7;
ACE_muzzleVelocities[]={800, 853, 884};
ACE_barrelLengths[]={20, 24, 26};
};
class B_762x54_Ball: B_762x51_Ball {
airFriction=-0.001023;
typicalSpeed=820;
ACE_caliber=0.312;
ACE_bulletLength=1.14;
ACE_bulletMass=152;
@ -204,7 +289,8 @@ class CfgAmmo {
ACE_muzzleVelocities[]={700, 800, 820, 833};
ACE_barrelLengths[]={16, 20, 24, 26};
};
class ACE_762x54_Ball_7T2 : B_762x51_Tracer_Red {
class B_762x54_Tracer_Green;
class ACE_762x54_Ball_7T2 : B_762x54_Tracer_Green {
airFriction=-0.001023;
caliber=0.9;
hit=15;
@ -251,7 +337,7 @@ class CfgAmmo {
ACE_muzzleVelocities[]={650, 716, 750};
ACE_barrelLengths[]={10, 16.3, 20};
};
class ACE_762x39_Ball_57N231P : B_762x51_Tracer_Red {
class ACE_762x39_Ball_57N231P : B_762x51_Tracer_Yellow {
airFriction=-0.0015168;
hit=12;
typicalSpeed=716;
@ -276,7 +362,7 @@ class CfgAmmo {
ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619};
ACE_ballisticCoefficients[]={0.17};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ASM";
ACE_standardAtmosphere="ICAO";
ACE_dragModel=1;
ACE_muzzleVelocities[]={440, 460, 480};
ACE_barrelLengths[]={4, 5, 9};
@ -291,7 +377,7 @@ class CfgAmmo {
ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619};
ACE_ballisticCoefficients[]={0.125};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ASM";
ACE_standardAtmosphere="ICAO";
ACE_dragModel=1;
ACE_muzzleVelocities[]={298, 330, 350};
ACE_barrelLengths[]={3.8, 5, 9};
@ -321,7 +407,7 @@ class CfgAmmo {
ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619};
ACE_ballisticCoefficients[]={0.189};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ASM";
ACE_standardAtmosphere="ICAO";
ACE_dragModel=1;
ACE_muzzleVelocities[]={360, 400, 430};
ACE_barrelLengths[]={4, 4.61, 9};
@ -356,6 +442,8 @@ class CfgAmmo {
ACE_barrelLengths[]={20, 24, 26};
};
class B_93x64_Ball : BulletBase {
airFriction=-0.00106;
typicalSpeed=880;
ACE_caliber=0.366;
ACE_bulletLength=1.350;
ACE_bulletMass=230;
@ -369,6 +457,7 @@ class CfgAmmo {
ACE_barrelLengths[]={20, 24.41, 26};
};
class B_408_Ball : BulletBase {
timeToLive=10;
airFriction=-0.000395;
typicalSpeed=910;
ACE_caliber=0.408;
@ -384,6 +473,7 @@ class CfgAmmo {
ACE_barrelLengths[]={29};
};
class ACE_106x83mm_Ball : B_408_Ball {
timeToLive=10;
ACE_caliber=0.416;
ACE_bulletLength=2.089;
ACE_bulletMass=398;
@ -395,24 +485,10 @@ class CfgAmmo {
ACE_muzzleVelocities[]={960};
ACE_barrelLengths[]={29};
};
class ACE_338_Ball : B_408_Ball {
airFriction=-0.000526;
caliber=1.55;
deflecting=12;
hit=20;
typicalSpeed=826;
ACE_caliber=0.338;
ACE_bulletLength=1.70;
ACE_bulletMass=300;
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
ACE_ballisticCoefficients[]={0.381};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=7;
ACE_muzzleVelocities[]={820, 826, 830};
ACE_barrelLengths[]={24, 26.5, 28};
};
class B_338_Ball : BulletBase {
timeToLive=10;
airFriction=-0.000606;
typicalSpeed=915;
ACE_caliber=0.338;
ACE_bulletLength=1.558;
ACE_bulletMass=250;
@ -425,6 +501,8 @@ class CfgAmmo {
ACE_barrelLengths[]={20, 26, 28};
};
class B_338_NM_Ball : BulletBase {
airFriction=-0.000537;
typicalSpeed=820;
ACE_caliber=0.338;
ACE_bulletLength=1.70;
ACE_bulletMass=300;
@ -436,10 +514,44 @@ class CfgAmmo {
ACE_muzzleVelocities[]={790, 807, 820};
ACE_barrelLengths[]={20, 24, 26};
};
class ACE_338_Ball : B_338_Ball {
timeToLive=10;
airFriction=-0.000535;
caliber=1.55;
typicalSpeed=826;
ACE_caliber=0.338;
ACE_bulletLength=1.70;
ACE_bulletMass=300;
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
ACE_ballisticCoefficients[]={0.381};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=7;
ACE_muzzleVelocities[]={800, 820, 826, 830};
ACE_barrelLengths[]={20, 24, 26.5, 28};
};
class ACE_338_Ball_API526 : B_338_Ball {
timeToLive=10;
airFriction=-0.000673;
caliber=2.4;
typicalSpeed=826;
ACE_caliber=0.338;
ACE_bulletLength=1.535;
ACE_bulletMass=253;
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
ACE_ballisticCoefficients[]={0.290};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=7;
ACE_muzzleVelocities[]={880, 915, 925};
ACE_barrelLengths[]={20, 26, 28};
};
class B_127x54_Ball : BulletBase {
ACE_caliber=0.50;
airFriction=-0.00014;
typicalSpeed=300;
ACE_caliber=0.510;
ACE_bulletLength=2.540;
ACE_bulletMass=950;
ACE_bulletMass=750;
ACE_ammoTempMuzzleVelocityShifts[]={-2.655, -2.547, -2.285, -2.012, -1.698, -1.280, -0.764, -0.153, 0.596, 1.517, 2.619};
ACE_ballisticCoefficients[]={1.050};
ACE_velocityBoundaries[]={};
@ -449,6 +561,7 @@ class CfgAmmo {
ACE_barrelLengths[]={17.2};
};
class B_127x99_Ball : BulletBase {
timeToLive=10;
airFriction=-0.0006;
typicalSpeed=853;
ACE_caliber=0.510;
@ -463,6 +576,9 @@ class CfgAmmo {
ACE_barrelLengths[]={29};
};
class ACE_127x99_Ball_AMAX : B_127x99_Ball {
timeToLive=10;
airFriction=-0.000374;
typicalSpeed=860;
ACE_caliber=0.510;
ACE_bulletLength=2.540;
ACE_bulletMass=750;
@ -475,6 +591,8 @@ class CfgAmmo {
ACE_barrelLengths[]={29};
};
class B_127x108_Ball : BulletBase {
timeToLive=10;
airFriction=-0.00064;
typicalSpeed=820;
ACE_caliber=0.511;
ACE_bulletLength=2.520;

View File

@ -11,22 +11,60 @@ class CfgMagazines {
class 100Rnd_65x39_caseless_mag_Tracer: 100Rnd_65x39_caseless_mag {
initSpeed = 760;
};
class ACE_100Rnd_65x39_caseless_mag_Tracer_Dim: 100Rnd_65x39_caseless_mag_Tracer {
author = "$STR_ACE_Common_ACETeam";
ammo = "ACE_65x39_Caseless_Tracer_Dim";
displayName = "$STR_ACE_100Rnd_65x39_caseless_mag_Tracer_DimName";
displayNameShort = "$STR_ACE_100Rnd_65x39_caseless_mag_Tracer_DimNameShort";
descriptionShort = "$STR_ACE_100Rnd_65x39_caseless_mag_Tracer_DimDescription";
picture = "\A3\weapons_f\data\ui\m_100rnd_65x39_yellow_ca.paa";
};
class 200Rnd_65x39_cased_Box: 100Rnd_65x39_caseless_mag {
initSpeed = 760;
};
class 30Rnd_65x39_caseless_mag_Tracer: 30Rnd_65x39_caseless_mag {
class ACE_200Rnd_65x39_cased_Box_Tracer_Dim: 200Rnd_65x39_cased_Box {
author = "$STR_ACE_Common_ACETeam";
ammo = "ACE_65x39_Caseless_Tracer_Dim";
displayName = "$STR_ACE_200Rnd_65x39_cased_Box_Tracer_DimName";
displayNameShort = "$STR_ACE_200Rnd_65x39_cased_Box_Tracer_DimNameShort";
descriptionShort = "$STR_ACE_200Rnd_65x39_cased_Box_Tracer_DimDescription";
picture = "\A3\weapons_f\data\ui\m_200rnd_65x39_yellow_ca.paa";
};
class 30Rnd_65x39_caseless_mag_Tracer;
class ACE_30Rnd_65x39_caseless_mag_Tracer_Dim: 30Rnd_65x39_caseless_mag_Tracer {
author = "$STR_ACE_Common_ACETeam";
ammo = "ACE_B_65x39_Caseless_Tracer_Dim";
ammo = "ACE_65x39_Caseless_Tracer_Dim";
displayName = "$STR_ACE_30Rnd_65x39_caseless_mag_Tracer_DimName";
displayNameShort = "$STR_ACE_30Rnd_65x39_caseless_mag_Tracer_DimNameShort";
descriptionShort = "$STR_ACE_30Rnd_65x39_caseless_mag_Tracer_DimDescription";
};
class 30Rnd_65x39_caseless_green_mag_Tracer;
class ACE_30Rnd_65x39_caseless_green_mag_Tracer_Dim: 30Rnd_65x39_caseless_green_mag_Tracer {
author = "$STR_ACE_Common_ACETeam";
ammo = "ACE_65x39_Caseless_green_Tracer_Dim";
displayName = "$STR_ACE_30Rnd_65x39_caseless_mag_Tracer_DimName";
displayNameShort = "$STR_ACE_30Rnd_65x39_caseless_mag_Tracer_DimNameShort";
descriptionShort = "$STR_ACE_30Rnd_65x39_caseless_mag_Tracer_DimDescription";
picture = "\A3\weapons_f\data\ui\m_30stanag_caseless_yellow_CA.paa";
};
class 30Rnd_556x45_Stanag: CA_Magazine {
};
class ACE_30Rnd_556x45_Stanag_Mk262_mag: 30Rnd_556x45_Stanag {
author = "$STR_ACE_Common_ACETeam";
ammo = "ACE_556x45_Ball_Mk262";
displayName = "$STR_ACE_30Rnd_556x45_Stanag_Mk262_mag_Name";
displayNameShort = "$STR_ACE_30Rnd_556x45_Stanag_Mk262_mag_NameShort";
descriptionShort = "$STR_ACE_30Rnd_556x45_Stanag_Mk262_mag_Description";
initSpeed = 832;
};
class ACE_30Rnd_556x45_Stanag_Mk318_mag: 30Rnd_556x45_Stanag {
author = "$STR_ACE_Common_ACETeam";
ammo = "ACE_556x45_Ball_Mk318";
displayName = "$STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_Name";
displayNameShort = "$STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_NameShort";
descriptionShort = "$STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_Description";
initSpeed = 922;
};
class 30Rnd_556x45_Stanag_Tracer_Red: 30Rnd_556x45_Stanag {
};
class ACE_30Rnd_556x45_Stanag_Tracer_Dim: 30Rnd_556x45_Stanag_Tracer_Red {
@ -35,7 +73,7 @@ class CfgMagazines {
displayName = "$STR_ACE_30Rnd_556x45_mag_Tracer_DimName";
displayNameShort = "$STR_ACE_30Rnd_556x45_mag_Tracer_DimNameShort";
descriptionShort = "$STR_ACE_30Rnd_556x45_mag_Tracer_DimDescription";
picture = "\A3\weapons_f\data\ui\m_30stanag_yellow_ca.paa";
picture = "\A3\weapons_f\data\ui\m_20stanag_red_ca.paa";
};
class 20Rnd_762x51_Mag: CA_Magazine {
@ -50,7 +88,7 @@ class CfgMagazines {
class 150Rnd_762x51_Box_Tracer: 150Rnd_762x51_Box {
initSpeed = 833;
};
class ACE_20Rnd_762x51_Mag_Tracer: 20Rnd_762x51_Mag { //@todo Green tracers for opfor and yellow tracers for independent
class ACE_20Rnd_762x51_Mag_Tracer: 20Rnd_762x51_Mag {
author = "$STR_ACE_Common_ACETeam";
ammo = "B_762x51_Tracer_Red";
displayName = "$STR_ACE_20Rnd_762x51_mag_TracerName";
@ -76,6 +114,108 @@ class CfgMagazines {
initSpeed = 325;
};
class ACE_10Rnd_762x51_M118LR_Mag: 10Rnd_762x51_Mag {
author = "$STR_ACE_Common_ACETeam";
ammo = "ACE_762x51_Ball_M118LR";
count = 10;
displayName = "$STR_ACE_10Rnd_762x51_M118LR_Mag_Name";
displayNameShort = "$STR_ACE_10Rnd_762x51_M118LR_Mag_NameShort";
descriptionShort = "$STR_ACE_10Rnd_762x51_M118LR_Mag_Description";
initSpeed = 780;
};
class ACE_10Rnd_762x51_Mk319_Mod_0_Mag: 10Rnd_762x51_Mag {
author = "$STR_ACE_Common_ACETeam";
ammo = "ACE_762x51_Ball_Mk319_Mod_0";
count = 10;
displayName = "$STR_ACE_10Rnd_762x51_Mk319_Mod_0_Mag_Name";
displayNameShort = "$STR_ACE_10Rnd_762x51_Mk319_Mod_0_Mag_NameShort";
descriptionShort = "$STR_ACE_10Rnd_762x51_Mk319_Mod_0_Mag_Description";
initSpeed = 900;
};
class ACE_20Rnd_762x51_M118LR_Mag: 20Rnd_762x51_Mag {
author = "$STR_ACE_Common_ACETeam";
ammo = "ACE_762x51_Ball_M118LR";
displayName = "$STR_ACE_20Rnd_762x51_M118LR_Mag_Name";
displayNameShort = "$STR_ACE_20Rnd_762x51_M118LR_Mag_NameShort";
descriptionShort = "$STR_ACE_20Rnd_762x51_M118LR_Mag_Description";
initSpeed = 780;
};
class ACE_20Rnd_762x51_Mk319_Mod_0_Mag: 20Rnd_762x51_Mag {
author = "$STR_ACE_Common_ACETeam";
ammo = "ACE_762x51_Ball_Mk319_Mod_0";
displayName = "$STR_ACE_20Rnd_762x51_Mk319_Mod_0_Mag_Name";
displayNameShort = "$STR_ACE_20Rnd_762x51_Mk319_Mod_0_Mag_NameShort";
descriptionShort = "$STR_ACE_20Rnd_762x51_Mk319_Mod_0_Mag_Description";
initSpeed = 900;
};
class ACE_20Rnd_762x67_Mk248_Mod_0_Mag: 20Rnd_762x51_Mag {
author = "$STR_ACE_Common_ACETeam";
ammo = "ACE_762x67_Ball_Mk248_Mod_0";
displayName = "$STR_ACE_20Rnd_762x67_Mk248_Mod_0_Mag_Name";
displayNameShort = "$STR_ACE_20Rnd_762x67_Mk248_Mod_0_Mag_NameShort";
descriptionShort = "$STR_ACE_20Rnd_762x67_Mk248_Mod_0_Mag_Description";
initSpeed = 900;
};
class ACE_20Rnd_762x67_Mk248_Mod_1_Mag: 20Rnd_762x51_Mag {
author = "$STR_ACE_Common_ACETeam";
ammo = "ACE_762x67_Ball_Mk248_Mod_1";
displayName = "$STR_ACE_20Rnd_762x67_Mk248_Mod_1_Mag_Name";
displayNameShort = "$STR_ACE_20Rnd_762x67_Mk248_Mod_1_Mag_NameShort";
descriptionShort = "$STR_ACE_20Rnd_762x67_Mk248_Mod_1_Mag_Description";
initSpeed = 880;
};
class ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag: 20Rnd_762x51_Mag {
author = "$STR_ACE_Common_ACETeam";
ammo = "ACE_762x67_Ball_Berger_Hybrid_OTM";
displayName = "$STR_ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag_Name";
displayNameShort = "$STR_ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag_NameShort";
descriptionShort = "$STR_ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag_Description";
initSpeed = 832;
};
class ACE_30Rnd_65x47_Scenar_mag: 30Rnd_65x39_caseless_mag {
author = "$STR_ACE_Common_ACETeam";
ammo = "ACE_65x47_Ball_Scenar";
displayName = "$STR_ACE_30Rnd_65x47_Scenar_mag_Name";
displayNameShort = "$STR_ACE_30Rnd_65x47_Scenar_mag_NameShort";
descriptionShort = "$STR_ACE_30Rnd_65x47_Scenar_mag_Description";
};
class 10Rnd_338_Mag;
class ACE_10Rnd_338_300gr_HPBT_Mag: 10Rnd_338_Mag {
author = "$STR_ACE_Common_ACETeam";
ammo = "ACE_338_Ball";
displayName = "$STR_ACE_10Rnd_338_300gr_HPBT_Mag_Name";
displayNameShort = "$STR_ACE_10Rnd_338_300gr_HPBT_Mag_NameShort";
descriptionShort = "$STR_ACE_10Rnd_338_300gr_HPBT_Mag_Description";
initSpeed = 800;
};
class ACE_10Rnd_338_API526_Mag: 10Rnd_338_Mag {
author = "$STR_ACE_Common_ACETeam";
ammo = "ACE_338_Ball_API526";
displayName = "$STR_ACE_10Rnd_338_API526_Mag_Name";
displayNameShort = "$STR_ACE_10Rnd_338_API526_Mag_NameShort";
descriptionShort = "$STR_ACE_10Rnd_338_API526_Mag_Description";
initSpeed = 880;
};
class 5Rnd_127x108_Mag;
class ACE_5Rnd_127x99_Mag: 5Rnd_127x108_Mag {
author = "$STR_ACE_Common_ACETeam";
ammo = "B_127x99_Ball";
displayName = "$STR_ACE_5Rnd_127x99_Mag_Name";
displayNameShort = "$STR_ACE_5Rnd_127x99_Mag_NameShort";
descriptionShort = "$STR_ACE_5Rnd_127x99_Mag_Description";
initSpeed = 853;
};
class ACE_5Rnd_127x99_AMAX_Mag: 5Rnd_127x108_Mag {
author = "$STR_ACE_Common_ACETeam";
ammo = "ACE_127x99_Ball_AMAX";
displayName = "$STR_ACE_5Rnd_127x99_AMAX_Mag_Name";
displayNameShort = "$STR_ACE_5Rnd_127x99_AMAX_Mag_NameShort";
descriptionShort = "$STR_ACE_5Rnd_127x99_AMAX_Mag_Description";
initSpeed = 860;
};
class 30Rnd_9x21_Mag: CA_Magazine {
initSpeed = 450;
};
@ -104,7 +244,7 @@ class CfgMagazines {
initSpeed = 250;
};
class 30Rnd_45ACP_Mag_SMG_01_Tracer_Green: CA_Magazine {
class 30Rnd_45ACP_Mag_SMG_01_Tracer_Green: 30Rnd_45ACP_Mag_SMG_01 {
initSpeed = 250;
};
@ -123,6 +263,14 @@ class CfgMagazines {
class 10Rnd_762x54_Mag: 10Rnd_762x51_Mag {
initSpeed = 800;
};
class ACE_10Rnd_762x54_Tracer_mag: 16Rnd_9x21_Mag {
author = "$STR_ACE_Common_ACETeam";
ammo = "ACE_762x54_Ball_7T2";
displayName = "$STR_ACE_10Rnd_762x54_Tracer_mag_Name";
displayNameShort = "$STR_ACE_10Rnd_762x54_Tracer_mag_NameShort";
descriptionShort = "$STR_ACE_10Rnd_762x54_Tracer_mag_Description";
initSpeed = 800;
};
class 150Rnd_762x54_Box: 150Rnd_762x51_Box {
initSpeed = 750;

View File

@ -9,4 +9,186 @@ class CfgVehicles {
//hitPart = "systemChat str _this";
};
};
class NATO_Box_Base;
class Box_NATO_Wps_F: NATO_Box_Base {
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4);
};
};
class Box_NATO_WpsSpecial_F: NATO_Box_Base {
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_30Rnd_65x39_caseless_mag_Tracer_Dim,4);
MACRO_ADDMAGAZINE(ACE_100Rnd_65x39_caseless_mag_Tracer_Dim,4);
MACRO_ADDMAGAZINE(ACE_200Rnd_65x39_cased_Box_Tracer_Dim,4);
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Tracer_Dim,1);
MACRO_ADDMAGAZINE(ACE_10Rnd_338_300gr_HPBT_Mag,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_338_API526_Mag,4);
MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_Mag,4);
MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_AMAX_Mag,4);
};
};
class Box_NATO_Ammo_F: NATO_Box_Base {
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_M118LR_Mag,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_M118LR_Mag,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_Mk319_Mod_0_Mag,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mk319_Mod_0_Mag,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_338_300gr_HPBT_Mag,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_338_API526_Mag,4);
MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_Mag,4);
MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_AMAX_Mag,4);
};
};
class Box_NATO_Support_F: NATO_Box_Base {
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_M118LR_Mag,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_M118LR_Mag,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_Mk319_Mod_0_Mag,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mk319_Mod_0_Mag,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_SD,3);
MACRO_ADDMAGAZINE(ACE_10Rnd_338_300gr_HPBT_Mag,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_338_API526_Mag,4);
MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_Mag,4);
MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_AMAX_Mag,4);
};
};
class ReammoBox_F;
class B_supplyCrate_F: ReammoBox_F {
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_M118LR_Mag,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_M118LR_Mag,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_Mk319_Mod_0_Mag,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mk319_Mod_0_Mag,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4);
};
};
class EAST_Box_Base;
class Box_East_Wps_F: EAST_Box_Base {
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_762x54_Tracer_mag,4);
};
};
class Box_East_WpsSpecial_F: EAST_Box_Base {
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Tracer_Dim,1);
MACRO_ADDMAGAZINE(ACE_30Rnd_65x39_caseless_green_mag_Tracer_Dim,4);
MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_762x54_Tracer_mag,4);
};
};
class Box_East_Ammo_F: EAST_Box_Base {
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_762x54_Tracer_mag,4);
};
};
class Box_East_Support_F: EAST_Box_Base {
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,6);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_SD,3);
MACRO_ADDMAGAZINE(ACE_10Rnd_762x54_Tracer_mag,4);
};
};
class IND_Box_Base;
class Box_IND_Wps_F: IND_Box_Base {
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk262_mag,4);
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk318_mag,4);
};
};
class Box_IND_WpsSpecial_F: IND_Box_Base {
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Tracer_Dim,4);
};
};
class Box_IND_Ammo_F: IND_Box_Base {
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk262_mag,4);
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk318_mag,4);
};
};
class FIA_Box_Base_F;
class Box_FIA_Wps_F: FIA_Box_Base_F {
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk262_mag,4);
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk318_mag,4);
};
};
class Box_FIA_Ammo_F: FIA_Box_Base_F {
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk262_mag,4);
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk318_mag,4);
};
};
class I_supplyCrate_F: B_supplyCrate_F {
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk262_mag,4);
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk318_mag,4);
};
};
class IG_supplyCrate_F: ReammoBox_F {
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk262_mag,4);
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk318_mag,4);
};
};
class C_supplyCrate_F: ReammoBox_F {
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4);
};
};
class ACE_Box_Ammo: NATO_Box_Base {
scope = 2;
accuracy = 1000;
displayName = "[ACE] Ammo Supply Crate";
// TODO: model = "...";
author = "$STR_ACE_Common_ACETeam";
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_SD,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_M118LR_Mag,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_M118LR_Mag,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_Mk319_Mod_0_Mag,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mk319_Mod_0_Mag,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x67_Mk248_Mod_0_Mag,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x67_Mk248_Mod_1_Mag,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_762x54_Tracer_mag,4);
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk262_mag,4);
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk318_mag,4);
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Tracer_Dim,4);
MACRO_ADDMAGAZINE(ACE_30Rnd_65x39_caseless_mag_Tracer_Dim,4);
MACRO_ADDMAGAZINE(ACE_30Rnd_65x39_caseless_green_mag_Tracer_Dim,4);
MACRO_ADDMAGAZINE(ACE_100Rnd_65x39_caseless_mag_Tracer_Dim,4);
MACRO_ADDMAGAZINE(ACE_200Rnd_65x39_cased_Box_Tracer_Dim,4);
MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_338_300gr_HPBT_Mag,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_338_API526_Mag,4);
MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_Mag,4);
MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_AMAX_Mag,4);
};
};
};

View File

@ -56,6 +56,14 @@ class CfgWeapons {
};
};
class arifle_MX_SW_F: arifle_MX_Base_F {
magazines[] = {
"100Rnd_65x39_caseless_mag_Tracer",
"100Rnd_65x39_caseless_mag",
"30Rnd_65x39_caseless_mag",
"30Rnd_65x39_caseless_mag_Tracer",
"ACE_100Rnd_65x39_caseless_mag_Tracer_Dim",
"ACE_30Rnd_65x39_caseless_mag_Tracer_Dim"
};
initSpeed = -1.0;
ACE_barrelTwist=9;
ACE_barrelLength=16.0;
@ -76,6 +84,12 @@ class CfgWeapons {
};
};
class arifle_MXM_F: arifle_MX_Base_F {
magazines[] = {
"30Rnd_65x39_caseless_mag",
"30Rnd_65x39_caseless_mag_Tracer",
"ACE_30Rnd_65x39_caseless_mag_Tracer_Dim",
"ACE_30Rnd_65x47_Scenar_mag"
};
initSpeed = -1.018;
ACE_barrelTwist=9;
ACE_barrelLength=18;
@ -111,6 +125,11 @@ class CfgWeapons {
/* Other */
class LMG_Mk200_F: Rifle_Long_Base_F {
magazines[] = {
"200Rnd_65x39_cased_Box",
"200Rnd_65x39_cased_Box_Tracer",
"ACE_200Rnd_65x39_cased_Box_Tracer_Dim"
};
initSpeed = -0.9763;
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
@ -180,7 +199,7 @@ class CfgWeapons {
/* SMGs */
class SDAR_base_F: Rifle_Base_F {
initSpeed = -0.9723;
initSpeed = -0.989;
class Single: Mode_SemiAuto {
dispersion = 0.0008727; // radians. Equal to 3 MOA, about the limit of mass-produced M855 plus
// some extra because Kel-Tec.
@ -284,26 +303,51 @@ class CfgWeapons {
ACE_barrelLength=7;
};
class arifle_Katiba_F: arifle_katiba_Base_F {
initSpeed = -1.09;
magazines[] = {
"30Rnd_65x39_caseless_green",
"30Rnd_65x39_caseless_green_mag_Tracer",
"ACE_30Rnd_65x39_caseless_green_mag_Tracer_Dim"
};
initSpeed = -1.08;
ACE_barrelTwist=8;
ACE_barrelLength=28.7;
};
class arifle_Katiba_C_F: arifle_katiba_Base_F {
magazines[] = {
"30Rnd_65x39_caseless_green",
"30Rnd_65x39_caseless_green_mag_Tracer",
"ACE_30Rnd_65x39_caseless_green_mag_Tracer_Dim"
};
initSpeed = -1.07;
ACE_barrelTwist=8;
ACE_barrelLength=26.8;
};
class arifle_Katiba_GL_F: arifle_katiba_Base_F {
initSpeed = -1.09;
magazines[] = {
"30Rnd_65x39_caseless_green",
"30Rnd_65x39_caseless_green_mag_Tracer",
"ACE_30Rnd_65x39_caseless_green_mag_Tracer_Dim"
};
initSpeed = -1.08;
ACE_barrelTwist=8;
ACE_barrelLength=28.7;
};
class arifle_MX_F: arifle_MX_Base_F {
magazines[] = {
"30Rnd_65x39_caseless_mag",
"30Rnd_65x39_caseless_mag_Tracer",
"ACE_30Rnd_65x39_caseless_mag_Tracer_Dim"
};
initSpeed = -0.99;
ACE_barrelTwist=9;
ACE_barrelLength=14.5;
};
class arifle_MX_GL_F: arifle_MX_Base_F {
magazines[] = {
"30Rnd_65x39_caseless_mag",
"30Rnd_65x39_caseless_mag_Tracer",
"ACE_30Rnd_65x39_caseless_mag_Tracer_Dim"
};
initSpeed = -0.99;
ACE_barrelTwist=9;
ACE_barrelLength=14.5;
@ -315,6 +359,11 @@ class CfgWeapons {
};
*/
class arifle_MXC_F: arifle_MX_Base_F {
magazines[] = {
"30Rnd_65x39_caseless_mag",
"30Rnd_65x39_caseless_mag_Tracer",
"ACE_30Rnd_65x39_caseless_mag_Tracer_Dim"
};
initSpeed = -0.965;
ACE_barrelTwist=8;
ACE_barrelLength=10.5;
@ -326,7 +375,17 @@ class CfgWeapons {
};
*/
class arifle_SDAR_F: SDAR_base_F {
initSpeed = -0.9723;
magazines[] = {
"20Rnd_556x45_UW_mag",
"30Rnd_556x45_Stanag",
"30Rnd_556x45_Stanag_Tracer_Red",
"30Rnd_556x45_Stanag_Tracer_Green",
"30Rnd_556x45_Stanag_Tracer_Yellow",
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
"ACE_30Rnd_556x45_Stanag_Tracer_Dim"
};
initSpeed = -0.989;
ACE_barrelTwist=11.25;
ACE_barrelLength=18;
};
@ -336,16 +395,43 @@ class CfgWeapons {
ACE_barrelLength=7.7;
};
class arifle_TRG20_F: Tavor_base_F {
magazines[] = {
"30Rnd_556x45_Stanag",
"30Rnd_556x45_Stanag_Tracer_Red",
"30Rnd_556x45_Stanag_Tracer_Green",
"30Rnd_556x45_Stanag_Tracer_Yellow",
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
"ACE_30Rnd_556x45_Stanag_Tracer_Dim"
};
initSpeed = -0.95;
ACE_barrelTwist=7;
ACE_barrelLength=15;
};
class arifle_TRG21_F: Tavor_base_F {
magazines[] = {
"30Rnd_556x45_Stanag",
"30Rnd_556x45_Stanag_Tracer_Red",
"30Rnd_556x45_Stanag_Tracer_Green",
"30Rnd_556x45_Stanag_Tracer_Yellow",
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
"ACE_30Rnd_556x45_Stanag_Tracer_Dim"
};
initSpeed = -0.989;
ACE_barrelTwist=7;
ACE_barrelLength=18.1;
};
class arifle_TRG21_GL_F: Tavor_base_F {
class arifle_TRG21_GL_F: arifle_TRG21_F {
magazines[] = {
"30Rnd_556x45_Stanag",
"30Rnd_556x45_Stanag_Tracer_Red",
"30Rnd_556x45_Stanag_Tracer_Green",
"30Rnd_556x45_Stanag_Tracer_Yellow",
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
"ACE_30Rnd_556x45_Stanag_Tracer_Dim"
};
initSpeed = -0.989;
ACE_barrelTwist=7;
ACE_barrelLength=18.1;
@ -357,16 +443,43 @@ class CfgWeapons {
};
*/
class arifle_Mk20_F: mk20_base_F {
magazines[] = {
"30Rnd_556x45_Stanag",
"30Rnd_556x45_Stanag_Tracer_Red",
"30Rnd_556x45_Stanag_Tracer_Green",
"30Rnd_556x45_Stanag_Tracer_Yellow",
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
"ACE_30Rnd_556x45_Stanag_Tracer_Dim"
};
initSpeed = -0.98;
ACE_barrelTwist=7;
ACE_barrelLength=17.4;
};
class arifle_Mk20C_F: mk20_base_F {
magazines[] = {
"30Rnd_556x45_Stanag",
"30Rnd_556x45_Stanag_Tracer_Red",
"30Rnd_556x45_Stanag_Tracer_Green",
"30Rnd_556x45_Stanag_Tracer_Yellow",
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
"ACE_30Rnd_556x45_Stanag_Tracer_Dim"
};
initSpeed = -0.956;
ACE_barrelTwist=7;
ACE_barrelLength=16;
};
class arifle_Mk20_GL_F: mk20_base_F {
magazines[] = {
"30Rnd_556x45_Stanag",
"30Rnd_556x45_Stanag_Tracer_Red",
"30Rnd_556x45_Stanag_Tracer_Green",
"30Rnd_556x45_Stanag_Tracer_Yellow",
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
"ACE_30Rnd_556x45_Stanag_Tracer_Dim"
};
initSpeed = -0.956;
ACE_barrelTwist=7;
ACE_barrelLength=16;
@ -377,11 +490,22 @@ class CfgWeapons {
ACE_barrelLength=5.5;
};
class srifle_DMR_01_F: DMR_01_base_F {
magazines[] = {
"10Rnd_762x54_Mag",
"ACE_10Rnd_762x54_Tracer_mag"
};
initSpeed = -1.025;
ACE_barrelTwist=9.5;
ACE_barrelLength=24;
};
class srifle_EBR_F: EBR_base_F {
magazines[] = {
"20Rnd_762x51_Mag",
"ACE_20Rnd_762x51_Mag_Tracer_Dim",
"ACE_20Rnd_762x51_M118LR_Mag",
"ACE_20Rnd_762x51_Mk319_Mod_0_Mag",
"ACE_20Rnd_762x51_Mag_SD"
};
initSpeed = -0.9724;
ACE_barrelTwist=12;
ACE_barrelLength=18;
@ -399,16 +523,37 @@ class CfgWeapons {
ACE_barrelLength=29;
};
class srifle_GM6_F: GM6_base_F {
magazines[] = {
"5Rnd_127x108_Mag",
"5Rnd_127x108_APDS_Mag",
"ACE_5Rnd_127x99_Mag",
"ACE_5Rnd_127x99_AMAX_Mag"
};
initSpeed = -1.0;
ACE_barrelTwist=15;
ACE_barrelLength=43.3;
ACE_barrelLength=36.6;
};
class srifle_DMR_02_F: DMR_02_base_F {
initSpeed = -1.0;
magazines[] = {
"10Rnd_338_Mag",
"ACE_10Rnd_338_300gr_HPBT_Mag",
"ACE_10Rnd_338_API526_Mag",
"ACE_20Rnd_762x67_Mk248_Mod_0_Mag",
"ACE_20Rnd_762x67_Mk248_Mod_1_Mag",
"ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag"
};
initSpeed = -0.962;
ACE_barrelTwist=10;
ACE_barrelLength=26;
ACE_barrelLength=20;
};
class srifle_DMR_03_F: DMR_03_base_F {
magazines[] = {
"20Rnd_762x51_Mag",
"ACE_20Rnd_762x51_Mag_Tracer_Dim",
"ACE_20Rnd_762x51_M118LR_Mag",
"ACE_20Rnd_762x51_Mk319_Mod_0_Mag",
"ACE_20Rnd_762x51_Mag_SD"
};
initSpeed = -0.9843;
ACE_barrelTwist=10;
ACE_barrelLength=20;
@ -424,6 +569,13 @@ class CfgWeapons {
ACE_barrelLength=24.41;
};
class srifle_DMR_06_camo_F: DMR_06_base_F {
magazines[] = {
"20Rnd_762x51_Mag",
"ACE_20Rnd_762x51_Mag_Tracer_Dim",
"ACE_20Rnd_762x51_M118LR_Mag",
"ACE_20Rnd_762x51_Mk319_Mod_0_Mag",
"ACE_20Rnd_762x51_Mag_SD"
};
initSpeed = -0.9916;
ACE_barrelTwist=12;
ACE_barrelLength=22;

View File

@ -29,11 +29,11 @@
</Key>
<Key ID="STR_ACE_30Rnd_65x39_caseless_mag_Tracer_DimDescription">
<English>Caliber: 6.5x39 mm Tracer IR-DIM&lt;br /&gt;Rounds: 30&lt;br /&gt;Used in: MX/C/M/SW/3GL</English>
<Hungarian>Kaliber: 6,5x39 mm Nyomjelző IR-DIM&lt;br /&gt;Lőszerek: 30&lt;br /&gt;Használható: MX/C/M/SW/3GL</Hungarian>
<Hungarian>Kaliber: 6,5x39 mm Nyomjelző IR-DIM&lt;br /&gt;Lövedékek: 30&lt;br /&gt;Használható: MX/C/M/SW/3GL</Hungarian>
<German>Kaliber: 6,5x39 mm Leuchtspur IR-DIM&lt;br /&gt;Patronen: 30&lt;br /&gt;Eingesetzt von: MX/C/M/SW/3GL</German>
<Spanish>Calibre: 6,5x39 mm Trazadoras IR-DIM&lt;br /&gt;Balas: 30&lt;br /&gt;Se usa en: MX/C/M/SW/3GL</Spanish>
<French>Calibre: 6,5x39 mm Traçantes IR-DIM&lt;br /&gt;Cartouches: 30&lt;br /&gt;Utilisé dans: MX/C/M/SW/3GL</French>
<Polish>Kaliber: 6,5 x 39 mm Smugowy IR-DIM&lt;br /&gt;Pociski: 30&lt;br /&gt;Używane w: MX/C/M/SW/3GL</Polish>
<Polish>Kaliber: 6,5x39 mm Smugacz IR-DIM&lt;br /&gt;Pociski: 30&lt;br /&gt;Używane w: MX/C/M/SW/3GL</Polish>
<Czech>Ráže: 6.5x39 mm Svítící IR-DIM&lt;br /&gt;Munice: 30&lt;br /&gt;Použití: MX/C/M/SW/3GL</Czech>
<Portuguese>Calibre: 6,5x39 mm Traçante IR-DIM&lt;br /&gt;Projéteis: 30&lt;br /&gt;Usado em: MX/C/M/SW/3GL</Portuguese>
<Italian>Calibro: 6.5x39 mm Traccianti IR-DIM &lt;br /&gt;Munizioni: 30&lt;br /&gt;In uso su: MX/C/M/SW/3GL</Italian>
@ -41,7 +41,7 @@
</Key>
<Key ID="STR_ACE_30Rnd_65x39_caseless_mag_SDName">
<English>6.5mm 30Rnd SD Mag</English>
<Hungarian>6,5 mm Hangtompítós 30-as Tár</Hungarian>
<Hungarian>6,5 mm Halk 30-as Tár</Hungarian>
<German>6,5 mm 30-Schuss-Magazin SD</German>
<Spanish>Cargador de 30 balas SD de 6,5mm</Spanish>
<French>Ch. 6,5mm 30Cps SD</French>
@ -53,7 +53,7 @@
</Key>
<Key ID="STR_ACE_30Rnd_65x39_caseless_mag_SDNameShort">
<English>6.5mm SD</English>
<Hungarian>6,5 mm Hangtompítós</Hungarian>
<Hungarian>6,5 mm Halk</Hungarian>
<German>6,5mm SD</German>
<Spanish>6,5mm SD</Spanish>
<French>6,5mm SD</French>
@ -65,11 +65,11 @@
</Key>
<Key ID="STR_ACE_30Rnd_65x39_caseless_mag_SDDescription">
<English>Caliber: 6.5x39 mm SD&lt;br /&gt;Rounds: 30&lt;br /&gt;Used in: MX/C/M/SW/3GL</English>
<Hungarian>Kaliber: 6,5x39 mm Hangtompítós&lt;br /&gt;Lőszerek: 30&lt;br /&gt;Használható: MX/C/M/SW/3GL</Hungarian>
<Hungarian>Kaliber: 6,5x39 mm Halk&lt;br /&gt;Lövedékek: 30&lt;br /&gt;Használható: MX/C/M/SW/3GL</Hungarian>
<German>Kaliber: 6,5x39 mm SD&lt;br /&gt;Patronen: 30&lt;br /&gt;Eingesetzt von: MX/C/M/SW/3GL</German>
<Spanish>Calibre: 6,5x39 mm SD&lt;br /&gt;Balas: 30&lt;br /&gt;Se usa en: MX/C/M/SW/3GL</Spanish>
<French>Calibre: 6,5x39 mm SD&lt;br /&gt;Cartouches: 30&lt;br /&gt;Utilisé dans: MX/C/M/SW/3GL</French>
<Polish>Kaliber: 6,5 x 39 mm SD&lt;br /&gt;Pociski: 30&lt;br /&gt;Używane w: MX/C/M/SW/3GL</Polish>
<Polish>Kaliber: 6,5x39 mm SD&lt;br /&gt;Pociski: 30&lt;br /&gt;Używane w: MX/C/M/SW/3GL</Polish>
<Czech>Ráže: 6.5x39 mm SD&lt;br /&gt;Munice: 30&lt;br /&gt;Použití: MX/C/M/SW/3GL</Czech>
<Portuguese>Calibre: 6,5x39 mm SD&lt;br /&gt;Projéteis: 30&lt;br /&gt;Usado em: MX/C/M/SW/3GL</Portuguese>
<Italian>Calibro: 6.5x39 mm Sil.&lt;br /&gt;Munizioni: 30&lt;br /&gt;In uso su: MX/C/M/SW/3GL </Italian>
@ -101,11 +101,11 @@
</Key>
<Key ID="STR_ACE_30Rnd_65x39_caseless_mag_APDescription">
<English>Caliber: 6.5x39 mm AP&lt;br /&gt;Rounds: 30&lt;br /&gt;Used in: MX/C/M/SW/3GL</English>
<Hungarian>Kaliber: 6,5x39 mm Páncéltörő&lt;br /&gt;Lőszerek: 30&lt;br /&gt;Használható: MX/C/M/SW/3GL</Hungarian>
<Hungarian>Kaliber: 6,5x39 mm 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,5x39 mm AP&lt;br /&gt;Patronen: 30&lt;br /&gt;Eingesetzt von: MX/C/M/SW/3GL</German>
<Spanish>Calibre: 6,5x39 mm AP&lt;br /&gt;Balas: 30&lt;br /&gt;Se usa en: MX/C/M/SW/3GL</Spanish>
<French>Calibre: 6,5x39 mm AP&lt;br /&gt;Cartouches: 30&lt;br /&gt;Utilisé dans: MX/C/M/SW/3GL</French>
<Polish>Kaliber: 6,5 x 39 mm AP&lt;br /&gt;Pociski: 30&lt;br /&gt;Używane w: MX/C/M/SW/3GL</Polish>
<Polish>Kaliber: 6,5x39 mm AP&lt;br /&gt;Pociski: 30&lt;br /&gt;Używane w: MX/C/M/SW/3GL</Polish>
<Czech>Ráže: 6.5x39 mm AP&lt;br /&gt;Munice: 30&lt;br /&gt;Použití: MX/C/M/SW/3GL</Czech>
<Portuguese>Calibre: 6,5x39 mm AP&lt;br /&gt;Projéteis: 30&lt;br /&gt;Usado em: MX/C/M/SW/3GL</Portuguese>
<Italian>Calibro: 6.5x39 mm AP&lt;br /&gt;Munizioni: 30&lt;br /&gt;In uso su: MX/C/M/SW/3GL</Italian>
@ -138,11 +138,11 @@
</Key>
<Key ID="STR_ACE_30Rnd_65x39_caseless_green_mag_Tracer_DimDescription">
<English>Caliber: 6.5x39 mm Tracer IR-DIM&lt;br /&gt;Rounds: 30&lt;br /&gt;Used in: Katiba</English>
<Hungarian>Kaliber: 6,5x39 mm Nyomjelző IR-DIM&lt;br /&gt;Lőszerek: 30&lt;br /&gt;Használható: Katiba</Hungarian>
<Hungarian>Kaliber: 6,5x39 mm Nyomjelző IR-DIM&lt;br /&gt;Lövedékek: 30&lt;br /&gt;Használható: Katiba</Hungarian>
<German>Kaliber: 6,5x39 mm Leuchtspur IR-DIM&lt;br /&gt;Patronen: 30&lt;br /&gt;Eingesetzt von: Katiba</German>
<Spanish>Calibre: 6,5x39 mm Trazadoras IR-DIM&lt;br /&gt;Balas: 30&lt;br /&gt;Se usa en: Katiba</Spanish>
<French>Calibre: 6,5x39 mm Traçantes IR-DIM&lt;br /&gt;Cartouches: 30&lt;br /&gt;Utilisé dans: Katiba</French>
<Polish>Kaliber: 6,5x39 mm Smugowy IR-DIM&lt;br /&gt;Pociski: 30&lt;br /&gt;Używane w: Katiba</Polish>
<Polish>Kaliber: 6,5x39 mm Smugacz IR-DIM&lt;br /&gt;Pociski: 30&lt;br /&gt;Używane w: Katiba</Polish>
<Czech>Ráže: 6.5x39 mm Svítící IR-DIM&lt;br /&gt;Munice: 30&lt;br /&gt;Použití: Katiba</Czech>
<Portuguese>Calibre: 6,5x39 mm Traçante IR-DIM&lt;br /&gt;Projéteis: 30&lt;br /&gt;Usado em: Katiba</Portuguese>
<Italian>Calibro: 6.5x39 mm Tracciant IR-DIM&lt;br /&gt;Munizioni: 30&lt;br /&gt;In uso su: Katiba</Italian>
@ -150,7 +150,7 @@
</Key>
<Key ID="STR_ACE_30Rnd_65x39_caseless_green_mag_SDName">
<English>6.5mm 30Rnd SD Mag</English>
<Hungarian>6,5 mm Hangtompítós 30-as Tár</Hungarian>
<Hungarian>6,5 mm Halk 30-as Tár</Hungarian>
<German>6,5 mm 30-Schuss-Magazin SD</German>
<Spanish>Cargador de 30 balas SD de 6,5mm</Spanish>
<French>Ch. 6,5mm 30Cps SD</French>
@ -162,7 +162,7 @@
</Key>
<Key ID="STR_ACE_30Rnd_65x39_caseless_green_mag_SDNameShort">
<English>6.5mm SD</English>
<Hungarian>6,5 mm Hangtompítós</Hungarian>
<Hungarian>6,5 mm Halk</Hungarian>
<German>6,5mm SD</German>
<Spanish>6,5mm SD</Spanish>
<French>6,5mm SD</French>
@ -174,11 +174,11 @@
</Key>
<Key ID="STR_ACE_30Rnd_65x39_caseless_green_mag_SDDescription">
<English>Caliber: 6.5x39 mm SD&lt;br /&gt;Rounds: 30&lt;br /&gt;Used in: Katiba</English>
<Hungarian>Kaliber: 6,5x39 mm Hangtompítós&lt;br /&gt;Lőszerek: 30&lt;br /&gt;Használható: Katiba</Hungarian>
<Hungarian>Kaliber: 6,5x39 mm Halk&lt;br /&gt;Lövedékek: 30&lt;br /&gt;Használható: Katiba</Hungarian>
<German>Kaliber: 6,5x39 mm SD&lt;br /&gt;Patronen: 30&lt;br /&gt;Eingesetzt von: Katiba</German>
<Spanish>Calibre: 6,5x39 mm SD&lt;br /&gt;Balas: 30&lt;br /&gt;Se usa en: Katiba</Spanish>
<French>Calibre: 6,5x39 mm SD&lt;br /&gt;Cartouches: 30&lt;br /&gt;Utilisé dans: Katiba</French>
<Polish>Kaliber: 6,5 x 39 mm SD&lt;br /&gt;Naboje: 30&lt;br /&gt;Używane w: Katiba</Polish>
<Polish>Kaliber: 6,5x39 mm SD&lt;br /&gt;Naboje: 30&lt;br /&gt;Używane w: Katiba</Polish>
<Czech>Ráže: 6.5x39 mm SD&lt;br /&gt;Munice: 30&lt;br /&gt;Použití: Katiba</Czech>
<Portuguese>Calibre: 6,5x39 mm SD&lt;br /&gt;Projéteis: 30&lt;br /&gt;Usado em: Katiba</Portuguese>
<Italian>Calibro: 6.5x39 mm Sil.&lt;br /&gt;Munizioni: 30&lt;br /&gt;In uso su: Katiba</Italian>
@ -210,11 +210,11 @@
</Key>
<Key ID="STR_ACE_30Rnd_65x39_caseless_green_mag_APDescription">
<English>Caliber: 6.5x39 mm AP&lt;br /&gt;Rounds: 30&lt;br /&gt;Used in: Katiba</English>
<Hungarian>Kaliber: 6,5x39 mm Páncéltörő&lt;br /&gt;Lőszerek: 30&lt;br /&gt;Használható: Katiba</Hungarian>
<Hungarian>Kaliber: 6,5x39 mm Páncéltörő&lt;br /&gt;Lövedékek: 30&lt;br /&gt;Használható: Katiba</Hungarian>
<German>Kaliber: 6,5x39 mm AP&lt;br /&gt;Patronen: 30&lt;br /&gt;Eingesetzt von: Katiba</German>
<Spanish>Calibre: 6,5x39 mm AP&lt;br /&gt;Balas: 30&lt;br /&gt;Se usa en: Katiba</Spanish>
<French>Calibre: 6,5x39 mm AP&lt;br /&gt;Cartouches: 30&lt;br /&gt;Utilisé dans: Katiba</French>
<Polish>Kaliber: 6,5 x 39 mm AP&lt;br /&gt;Pociski: 30&lt;br /&gt;Używane w: Katiba</Polish>
<Polish>Kaliber: 6,5x39 mm AP&lt;br /&gt;Pociski: 30&lt;br /&gt;Używane w: Katiba</Polish>
<Czech>Ráže: 6.5x39 mm AP&lt;br /&gt;Munice: 30&lt;br /&gt;Použití: Katiba</Czech>
<Portuguese>Calibre: 6,5x39 mm AP&lt;br /&gt;Projéteis: 30&lt;br /&gt;Usado em: Katiba</Portuguese>
<Italian>Calibro: 6.5x39 mm AP&lt;br /&gt;Munizioni: 30&lt;br /&gt;In uso su: Katiba</Italian>
@ -247,52 +247,16 @@
</Key>
<Key ID="STR_ACE_30Rnd_556x45_mag_Tracer_DimDescription">
<English>Caliber: 5.56x45 mm Tracer IR-DIM&lt;br /&gt;Rounds: 30&lt;br /&gt;Used in: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</English>
<Hungarian>Kaliber: 5,56x45 mm Nyomjelző IR-DIM&lt;br /&gt;Lőszerek: 30&lt;br /&gt;Használható: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Hungarian>
<Hungarian>Kaliber: 5,56x45 mm 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,56x45 mm 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,56x45 mm 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,56x45 mm Traçantes IR-DIM&lt;br /&gt;Cartouches: 30&lt;br /&gt;Utilisé dans: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</French>
<Polish>Kaliber: 5,56 x 45 mm Smugowy IR-DIM&lt;br /&gt;Pociski: 30&lt;br /&gt;Używane w: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Polish>
<Polish>Kaliber: 5,56x45 mm 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.56x45 mm 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,56x45 mm 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>
<Italian>Calibro: 5.56x45 mm Traccianti IR-DIM&lt;br /&gt;Munizioni: 30&lt;br /&gt;In uso su: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Italian>
<Russian>Калибр: 5.56x45 мм трассирующие под ПНВ&lt;br /&gt;Патронов: 30&lt;br /&gt;Применимы в: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Russian>
</Key>
<Key ID="STR_ACE_30Rnd_556x45_mag_SDName">
<English>5.56mm 30Rnd SD Mag</English>
<Hungarian>5,56 mm Hangtompítós 30-as Tár</Hungarian>
<German>5,56 mm 30-Schuss-Magazin SD</German>
<Spanish>Cargador de 30 balas SD de 5,56 mm</Spanish>
<French>Ch. 5,56mm 30Cps SD</French>
<Polish>Magazynek 5,56mm 30rd SD</Polish>
<Czech>5.56mm 30ks SD Zásobník</Czech>
<Portuguese>Carregador de 30 projéteis SD de 5,56mm</Portuguese>
<Italian>Caricatore 5.56mm 30Rnd Sil.</Italian>
<Russian>Магазин из 30-ти 5.56 мм дозвуковых</Russian>
</Key>
<Key ID="STR_ACE_30Rnd_556x45_mag_SDNameShort">
<English>5.56mm SD</English>
<Hungarian>5,56 mm Hangtompítós</Hungarian>
<German>5,56mm SD</German>
<Spanish>5,56 mm SD</Spanish>
<French>5,56mm SD</French>
<Polish>5,56mm SD</Polish>
<Czech>5.56mm SD</Czech>
<Portuguese>5,56mm SD</Portuguese>
<Italian>5.56 Sil.</Italian>
<Russian>5.56 мм дозвуковые</Russian>
</Key>
<Key ID="STR_ACE_30Rnd_556x45_mag_SDDescription">
<English>Caliber: 5.56x45 mm SD&lt;br /&gt;Rounds: 30&lt;br /&gt;Used in: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</English>
<Hungarian>Kaliber: 5,56x45 mm Hangtompítós&lt;br /&gt;Lőszerek: 30&lt;br /&gt;Használható: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Hungarian>
<German>Kaliber: 5,56x45 mm SD&lt;br /&gt;Patronen: 30&lt;br /&gt;Eingesetzt von: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</German>
<Spanish>Calibre: 5,56x45 mm SD&lt;br /&gt;Balas: 30&lt;br /&gt;Se usa en: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Spanish>
<French>Calibre: 5.56x45 mm SD&lt;br /&gt;Cartouches: 30&lt;br /&gt;Utilisé dans: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</French>
<Polish>Kaliber: 5,56 x 45 mm SD&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.56x45 mm SD&lt;br /&gt;Munice: 30&lt;br /&gt;Použití: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Czech>
<Portuguese>Calibre: 5,56x45 mm SD&lt;br /&gt;Projéteis: 30&lt;br /&gt;Usado em: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Portuguese>
<Italian>Calibro: 5.56x45 mm Sil.&lt;br /&gt;Munizioni: 30&lt;br /&gt;In uso su: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Italian>
<Russian>Калибр: 5.56x45 мм дозвуковые&lt;br /&gt;Патронов: 30&lt;br /&gt;Применимы в: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Russian>
</Key>
<Key ID="STR_ACE_30Rnd_556x45_mag_APName">
<English>5.56mm 30Rnd AP Mag</English>
<Hungarian>5,56 mm Páncéltörő 30-as Tár</Hungarian>
@ -319,11 +283,11 @@
</Key>
<Key ID="STR_ACE_30Rnd_556x45_mag_APDescription">
<English>Caliber: 5.56x45 mm AP&lt;br /&gt;Rounds: 30&lt;br /&gt;Used in: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</English>
<Hungarian>Kaliber: 5,56x45 mm Páncéltörő&lt;br /&gt;Lőszerek: 30&lt;br /&gt;Használható: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Hungarian>
<Hungarian>Kaliber: 5,56x45 mm Páncéltörő&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,56x45 mm AP&lt;br /&gt;Patronen: 30&lt;br /&gt;Eingesetzt von: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</German>
<Spanish>Calibre: 5,56x45 mm AP&lt;br /&gt;Balas: 30&lt;br /&gt;Se usa en: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Spanish>
<French>Calibre: 5,56x45 mm AP&lt;br /&gt;Cartouches: 30&lt;br /&gt;Utilisé dans: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</French>
<Polish>Kaliber: 5,56 x 45 mm AP&lt;br /&gt;Pociski: 30&lt;br /&gt;Używane w: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Polish>
<Polish>Kaliber: 5,56x45 mm AP&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.56x45 mm AP&lt;br /&gt;Munice: 30&lt;br /&gt;Použití: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Czech>
<Portuguese>Calibre: 5,56x45 mm AP&lt;br /&gt;Projéteis: 30&lt;br /&gt;Usado em: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Portuguese>
<Italian>Calibro: 5.56x45 mm AP&lt;br /&gt;Munizioni: 30&lt;br /&gt;In uso su: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Italian>
@ -356,11 +320,11 @@
</Key>
<Key ID="STR_ACE_20Rnd_762x51_mag_TracerDescription">
<English>Caliber: 7.62x51 mm Tracer&lt;br /&gt;Rounds: 20&lt;br /&gt;Used in: Mk18 ABR</English>
<Hungarian>Kaliber: 7,62x51 mm Nyomjelző&lt;br /&gt;Lőszerek: 20&lt;br /&gt;Használható: Mk18 ABR</Hungarian>
<Hungarian>Kaliber: 7,62x51 mm Nyomjelző&lt;br /&gt;Lövedékek: 20&lt;br /&gt;Használható: Mk18 ABR</Hungarian>
<German>Kaliber: 7,62x51 mm Leuchtspur&lt;br /&gt;Patronen: 20&lt;br /&gt;Eingesetzt von: EBR</German>
<Spanish>Calibre: 7,62x51 mm Trazadora&lt;br /&gt;Balas: 20&lt;br /&gt;Se usa en: Mk18 ABR</Spanish>
<French>Calibre: 7,62x51 mm Traçantes&lt;br /&gt;Cartouches: 20&lt;br /&gt;Utilisé dans: EBR</French>
<Polish>Kaliber: 7,62 x 51 mm Smugacz&lt;br /&gt;Pociski: 20&lt;br /&gt;Używane w: Mk18 ABR</Polish>
<Polish>Kaliber: 7,62x51 mm Smugacz&lt;br /&gt;Pociski: 20&lt;br /&gt;Używane w: Mk18 ABR</Polish>
<Czech>Ráže: 7.62x51 mm Svítící&lt;br /&gt;Munice: 20&lt;br /&gt;Použití: Mk18 ABR</Czech>
<Portuguese>Calibre: 7,62x51 mm Traçante&lt;br /&gt;Projéteis: 20&lt;br /&gt;Usado em: Mk18 ABR</Portuguese>
<Italian>Calibro: 7.62x51 mm Traccianti&lt;br /&gt;Munizioni: 20&lt;br /&gt;In uso su: Mk18 ABR</Italian>
@ -392,11 +356,11 @@
</Key>
<Key ID="STR_ACE_20Rnd_762x51_mag_Tracer_DimDescription">
<English>Caliber: 7.62x51 mm Tracer IR-DIM&lt;br /&gt;Rounds: 20&lt;br /&gt;Used in: Mk18 ABR</English>
<Hungarian>Kaliber: 7,62x51 mm Nyomjelző IR-DIM&lt;br /&gt;Lőszerek: 20&lt;br /&gt;Használható: Mk18 ABR</Hungarian>
<Hungarian>Kaliber: 7,62x51 mm Nyomjelző IR-DIM&lt;br /&gt;Lövedékek: 20&lt;br /&gt;Használható: Mk18 ABR</Hungarian>
<German>Kaliber: 7,62x51 mm Leuchtspur IR-DIM&lt;br /&gt;Patronen: 20&lt;br /&gt;Eingesetzt von: EBR</German>
<Spanish>Calibre: 7,62x51 mm Trazadoras IR-DIM&lt;br /&gt;Balas: 20&lt;br /&gt;Se usa en: Mk18 ABR</Spanish>
<French>Calibre: 7,62x51 mm Traçantes IR-DIM&lt;br /&gt;Cartouches: 20&lt;br /&gt;Utilisé dans: EBR</French>
<Polish>Kaliber: 7,62 x 51 mm Smugacz IR-DIM&lt;br /&gt;Pociski: 20&lt;br /&gt;Używane w: Mk18 ABR</Polish>
<Polish>Kaliber: 7,62x51 mm Smugacz IR-DIM&lt;br /&gt;Pociski: 20&lt;br /&gt;Używane w: Mk18 ABR</Polish>
<Czech>Ráže: 7.62x51 mm Svítící IR-DIM&lt;br /&gt;Munice: 20&lt;br /&gt;Použití: Mk18 ABR</Czech>
<Portuguese>Calibre: 7,62x51 mm Traçante IR-DIM&lt;br /&gt;Projéteis: 20&lt;br /&gt;Usado em: Mk18 ABR</Portuguese>
<Italian>Calibro: 7.62x51 mm Traccianti IR-DIM&lt;br /&gt;Munizioni: 20&lt;br /&gt;In uso su: Mk18 ABR</Italian>
@ -404,7 +368,7 @@
</Key>
<Key ID="STR_ACE_20Rnd_762x51_mag_SDName">
<English>7.62mm 20Rnd SD Mag</English>
<Hungarian>7,62 mm Hangtompítós 20-as Tár</Hungarian>
<Hungarian>7,62 mm Halk 20-as Tár</Hungarian>
<German>7,62 mm 20-Schuss-Magazin SD</German>
<Spanish>Cargador de 20 balas SD de 7,62mm</Spanish>
<French>Ch. 7,62mm 20Cps SD</French>
@ -416,7 +380,7 @@
</Key>
<Key ID="STR_ACE_20Rnd_762x51_mag_SDNameShort">
<English>7.62mm SD</English>
<Hungarian>7,62 mm Hangtompítós</Hungarian>
<Hungarian>7,62 mm Halk</Hungarian>
<German>7,62mm SD</German>
<Spanish>7,62mm SD</Spanish>
<French>7,62mm SD</French>
@ -428,11 +392,11 @@
</Key>
<Key ID="STR_ACE_20Rnd_762x51_mag_SDDescription">
<English>Caliber: 7.62x51 mm SD&lt;br /&gt;Rounds: 20&lt;br /&gt;Used in: Mk18 ABR</English>
<Hungarian>Kaliber: 7,62x51 mm Hangtompítós&lt;br /&gt;Lőszerek: 20&lt;br /&gt;Használható: Mk18 ABR</Hungarian>
<Hungarian>Kaliber: 7,62x51 mm Halk&lt;br /&gt;Lövedékek: 20&lt;br /&gt;Használható: Mk18 ABR</Hungarian>
<German>Kaliber: 7,62x51 mm SD&lt;br /&gt;Patronen: 20&lt;br /&gt;Eingesetzt von: EBR</German>
<Spanish>Calibre: 7,62x51 mm SD&lt;br /&gt;Balas: 20&lt;br /&gt;Se usa en: Mk18 ABR</Spanish>
<French>Calibre: 7,62x51 mm SD&lt;br /&gt;Cartouches: 20&lt;br /&gt;Utilisé dans: EBR</French>
<Polish>Kaliber: 7,62 x 51 mm SD&lt;br /&gt;Pociski: 20&lt;br /&gt;Używane w: Mk18 ABR</Polish>
<Polish>Kaliber: 7,62x51 mm SD&lt;br /&gt;Pociski: 20&lt;br /&gt;Używane w: Mk18 ABR</Polish>
<Czech>Ráže: 7.62x51 mm SD&lt;br /&gt;Munice: 20&lt;br /&gt;Použití: Mk18 ABR</Czech>
<Portuguese>Calibre: 7,62x51 mm SD&lt;br /&gt;Projéteis: 20&lt;br /&gt;Usado em: Mk18 ABR</Portuguese>
<Italian>Calibro: 7.62x51 mm Sil.&lt;br /&gt;Munizioni: 20&lt;br /&gt;In uso su: Mk18 ABR</Italian>
@ -464,268 +428,459 @@
</Key>
<Key ID="STR_ACE_20Rnd_762x51_mag_APDescription">
<English>Caliber: 7.62x51 mm AP&lt;br /&gt;Rounds: 20&lt;br /&gt;Used in: Mk18 ABR</English>
<Hungarian>Kaliber: 7,62x51 mm Páncéltörő&lt;br /&gt;Lőszerek: 20&lt;br /&gt;Használható: Mk18 ABR</Hungarian>
<Hungarian>Kaliber: 7,62x51 mm Páncéltörő&lt;br /&gt;Lövedékek: 20&lt;br /&gt;Használható: Mk18 ABR</Hungarian>
<German>Kaliber: 7,62x51 mm AP&lt;br /&gt;Patronen: 20&lt;br /&gt;Eingesetzt von: EBR</German>
<Spanish>Calibre: 7,62x51 mm AP&lt;br /&gt;Balas: 20&lt;br /&gt;Se usa en: Mk18 ABR</Spanish>
<French>Calibre: 7,62x51 mm AP&lt;br /&gt;Cartouches: 20&lt;br /&gt;Utilisé dans: EBR</French>
<Polish>Kaliber: 7,62 x 51 mm AP&lt;br /&gt;Pociski: 20&lt;br /&gt;Używane w: Mk18 ABR</Polish>
<Polish>Kaliber: 7,62x51 mm AP&lt;br /&gt;Pociski: 20&lt;br /&gt;Używane w: Mk18 ABR</Polish>
<Czech>Ráže: 7.62x51 mm AP&lt;br /&gt;Munice: 20&lt;br /&gt;Použití: Mk18 ABR</Czech>
<Portuguese>Calibre: 7,62x51 mm AP&lt;br /&gt;Projéteis: 20&lt;br /&gt;Usado em: Mk18 ABR</Portuguese>
<Italian>Calibro: 7.62x51 mm AP&lt;br /&gt;Munizioni: 20&lt;br /&gt;In uso su: Mk18 ABR</Italian>
<Russian>Калибр: 7.62x51 мм дозвуковые&lt;br /&gt;Патронов: 20&lt;br /&gt;Применимы в: Mk18 ABR</Russian>
</Key>
<Key ID="STR_ACE_20Rnd_762x51_mag_LRDescription">
<English>Caliber: 7.62x51mm M118LR&lt;br /&gt;Rounds: 20&lt;br /&gt;Type: M14</English>
<Hungarian>Kaliber: 7,62x51 mm M118LR&lt;br /&gt;Lőszerek: 20&lt;br /&gt;Típus: M14</Hungarian>
<German>Kaliber: 7,62x51mm M118LR&lt;br /&gt;Schuss: 20&lt;br /&gt;Typ: M14</German>
<Spanish>Calibre: 7,62x51mm M118LR&lt;br /&gt;Balas: 20&lt;br /&gt;Tipo: M14</Spanish>
<Polish>Kaliber: 7,62 x 51 mm M118LR&lt;br /&gt;Pociski: 20&lt;br /&gt;Typ: M14</Polish>
<Czech>Kalibr: 7.62x51mm M118LR&lt;br /&gt;Náboje: 20&lt;br /&gt;Typ: M14</Czech>
<French>Calibre : 7,62x51mm M118LR&lt;br /&gt;Cartouches: 20&lt;br /&gt;Type: M14</French>
<Portuguese>Calibre: 7,62x51mm M118LR&lt;br /&gt;Projéteis: 20&lt;br /&gt;Tipo: M14</Portuguese>
<Russian>Калибр: 7.62x51mm M118LR&lt;br /&gt;Патронов: 20&lt;br /&gt;Тип: M14</Russian>
<Italian>Calibro: 7.62x51mm M118LR&lt;br /&gt;Munizioni:20&lt;br /&gt;In uso su: M14</Italian>
</Key>
<!-- .338 Lapua Magnum -->
<Key ID="STR_ACE_10Rnd_338_Mag_TracerName">
<English>.338 LM 10Rnd Tracer Mag</English>
<German>.338 LM 10-Schuss-Magazin Leuchtspur</German>
<Polish>Magazynek .338 LM 10rd Smugacz</Polish>
<Czech>.338 LM 10Rnd Svítící Zásobník</Czech>
</Key>
<Key ID="STR_ACE_10Rnd_338_Mag_TracerNameShort">
<English>.338 LM Tracer</English>
<German>.338 LM Leuchtspur</German>
<Polish>.338 LM Smugacz</Polish>
<Czech>.338 LM Svítící</Czech>
</Key>
<Key ID="STR_ACE_10Rnd_338_Mag_TracerDescription">
<English>Caliber: .338 Lapua Magnum Tracer&lt;br /&gt;Rounds: 10&lt;br /&gt;Used in: MAR-10</English>
<German>Kaliber: .338 Lapua Magnum Leuchtspur&lt;br /&gt;Schuss: 10&lt;br /&gt;Verwendet für: MAR-10</German>
<Polish>Kaliber: .338 Lapua Magnum Smugacz&lt;br /&gt;Pociski: 10&lt;br /&gt;Używane w: MAR-10</Polish>
</Key>
<Key ID="STR_ACE_10Rnd_388_Mag_Tracer_DimName">
<English>.338 LM 10Rnd IR-DIM Mag</English>
<German>.338 LM 10-Schuss-Magazin Leuchtspur IR-DIM</German>
<Polish>Magazynek .338 LM 10rd IR-DIM</Polish>
</Key>
<Key ID="STR_ACE_10Rnd_338_Mag_Tracer_DimNameShort">
<English>.338 LM IR-DIM</English>
<German>.338 LM IR-DIM</German>
<Polish>.338 LM IR-DIM</Polish>
<Czech>.338 LM IR-DIM</Czech>
</Key>
<Key ID="STR_ACE_10Rnd_338_Mag_Tracer_DimDescription">
<English>Caliber: .338 Lapua Magnum Tracer IR-DIM&lt;br /&gt;Rounds: 10&lt;br /&gt;Used in: MAR-10</English>
<German>Kaliber: .338 Lapua Magnum Leuchtspur IR-DIM&lt;br /&gt;Schuss: 10&lt;br /&gt;Verwendet für: MAR-10</German>
<Polish>Kaliber: .338 Lapua Magnum Smugacz IR-DIM&lt;br /&gt;Pociski: 10&lt;br /&gt;Używane w: MAR-10</Polish>
</Key>
<Key ID="STR_ACE_10Rnd_338_Mag_APName">
<English>.338 LM 10Rnd AP Mag</English>
<German>.338 LM 10-Schuss-Magazin Hartkern</German>
<Polish>Magazynek .338 LM 10rd AP</Polish>
</Key>
<Key ID="STR_ACE_10Rnd_338_Mag_APNameShort">
<English>.338 LM AP</English>
<German>.338 LM AP</German>
<Polish>.338 LM AP</Polish>
<Czech>.338 LM AP</Czech>
</Key>
<Key ID="STR_ACE_10Rnd_338_Mag_APDescription">
<English>Caliber: .338 Lapua Magnum AP&lt;br /&gt;Rounds: 10&lt;br /&gt;Used in: MAR-10</English>
<German>Kaliber: .338 Lapua Magnum Hartkern&lt;br /&gt;Schuss: 10&lt;br /&gt;Verwendet für: MAR-10</German>
<Polish>Kaliber: .338 Lapua Magnum AP&lt;br /&gt;Pociski: 10&lt;br /&gt;Używany w: MAR-10</Polish>
</Key>
<Key ID="STR_ACE_10Rnd_338_Mag_SDName">
<English>.338 LM 10Rnd SD Mag</English>
<German>.338 LM 10-Schuss-Magazin Unterschall</German>
<Polish>Magazynek .338 LM 10rd SD</Polish>
</Key>
<Key ID="STR_ACE_10Rnd_338_Mag_SDNameShort">
<English>.338 LM SD</English>
<German>.338 LM SD</German>
<Polish>.338 LM SD</Polish>
<Czech>.338 LM SD</Czech>
</Key>
<Key ID="STR_ACE_10Rnd_338_Mag_SDDescription">
<English>Caliber: .338 Lapua Magnum SD&lt;br /&gt;Rounds: 10&lt;br /&gt;Used in: MAR-10</English>
<German>Kaliber: .338 Lapua Magnum Unterschall&lt;br /&gt;Schuss: 10&lt;br /&gt;Verwendet für: MAR-10</German>
<Polish>Kaliber: .338 Lapua Magnum SD&lt;br /&gt;Pociski: 10&lt;br /&gt;Używany w: MAR-10</Polish>
</Key>
<!-- .338 Norma Magnum -->
<Key ID="STR_ACE_130Rnd_338_Mag_TracerName">
<English>.338 NM 130Rnd Tracer Belt</English>
<German>.338 NM 130-Schuss-Gurt Leuchtspur</German>
<Polish>Taśma .338 NM 130rd Smugacz</Polish>
<French>Bande .338 NM 130Cps Traçante</French>
</Key>
<Key ID="STR_ACE_130Rnd_338_Mag_TracerNameShort">
<English>.338 NM Tracer</English>
<German>.338 NM Leuchtspur</German>
<Polish>.338 NM Tracer</Polish>
<Czech>.338 NM Svítící</Czech>
<French>.338 NM Traçante</French>
</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;Schuss: 130&lt;br /&gt;Verwendet für: SPMG</German>
<Polish>Kaliber: .338 Norma Magnum Smugacz&lt;br /&gt;Pociski: 130&lt;br /&gt;Używany w: SPMG</Polish>
<French>Calibre: .338 Norma Magnum Traçante&lt;br /&gt;Cartouches: 130&lt;br /&gt;Utilisé dans: SPMG</French>
</Key>
<Key ID="STR_ACE_130Rnd_338_Mag_Tracer_DimName">
<English>.338 NM 130Rnd IR-DIM Belt</English>
<German>.338 NM 130-Schuss-Gurt Leuchtspur IR-DIM</German>
<Polish>Taśma .338 NM 130rd IR-DIM</Polish>
<French>Bande .338 NM 130Cps IR-DIM</French>
</Key>
<Key ID="STR_ACE_130Rnd_338_Mag_Tracer_DimNameShort">
<English>.338 NM IR-DIM</English>
<German>.338 LM IR-DIM</German>
<Polish>.338 NM IR-DIM</Polish>
<Czech>.338 NM IR-DIM</Czech>
<French>.338 NM IR-DIM</French>
</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;Schuss: 130&lt;br /&gt;Verwendet für: SPMG</German>
<Polish>Kaliber: .338 Norma Magnum Smugacz IR-DIM&lt;br /&gt;Pociski: 130&lt;br /&gt;Używany w: SPMG</Polish>
<French>Calibre: .338 Norma Magnum Traçante IR-DIM&lt;br /&gt;Cartouches: 130&lt;br /&gt;Utilisé dans: SPMG</French>
</Key>
<Key ID="STR_ACE_130Rnd_338_Mag_APName">
<English>.338 NM 130Rnd AP Belt</English>
<German>.338 NM 130-Schuss-Gurt Hartkern</German>
<Polish>Taśma .338 NM 130rd AP</Polish>
<French>Bande .338 NM 130Cps AP</French>
</Key>
<Key ID="STR_ACE_130Rnd_338_Mag_APNameShort">
<English>.338 NM AP</English>
<German>.338 NM AP</German>
<Polish>.338 NM AP</Polish>
<Czech>.338 NM AP</Czech>
<French>.338 NM AP</French>
</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;Schuss: 130&lt;br /&gt;Verwendet für: SPMG</German>
<Polish>Kaliber: .338 Norma Magnum AP&lt;br /&gt;Pociski: 130&lt;br /&gt;Używane w: SPMG</Polish>
<French>Calibre: .338 Norma Magnum AP&lt;br /&gt;Cartouches: 130&lt;br /&gt;Utilisé dans: SPMG</French>
</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-Schuss-Magazin Leuchtspur</German>
<Polish>Magazynek 9.3mm 10rd Smugacz</Polish>
<French>Chargeur 9.3mm 10Cps Traçante</French>
</Key>
<Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_TracerNameShort">
<English>9.3mm Tracer</English>
<German>9,3mm Leuchtspur</German>
<Polish>9,3mm Smugacz</Polish>
<Czech>9.3mm Svítící</Czech>
<French>9.3mm Traçante</French>
</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;Schuss: 10&lt;br /&gt;Verwendet für: Cyrus</German>
<Polish>Kaliber: 9,3 x 64 mm Smugacz&lt;br /&gt;Pociski: 10&lt;br /&gt;Używany w: Cyrus</Polish>
<Polish>Kaliber: 9,3x64 mm Smugacz&lt;br /&gt;Pociski: 10&lt;br /&gt;Używany w: Cyrus</Polish>
<French>Calibre: 9.3x64mm Traçante&lt;br /&gt;Cartouches: 10&lt;br /&gt;Utilisé dans: Cyrus</French>
</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-Schuss-Magazin Leuchtspur IR-DIM</German>
<Polish>Magazynek 9,3mm 10rd Smugacz IR-DIM</Polish>
<French>Chargeur 9.3mm 10Cps Traçante IR-DIM</French>
</Key>
<Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_Tracer_DimNameShort">
<English>9.3mm IR-DIM</English>
<German>9,3mm IR-DIM</German>
<Polish>9,3mm IR-DIM</Polish>
<Czech>9.3mm IR-DIM</Czech>
<French>9.3mm IR-DIM</French>
</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;Schuss: 10&lt;br /&gt;Verwendet für: Cyrus</German>
<Polish>Kaliber: 9,3 x 64 mm Smugacz IR-DIM&lt;br /&gt;Pociski: 10&lt;br /&gt;Używany w: Cyrus</Polish>
<Polish>Kaliber: 9,3x64 mm Smugacz IR-DIM&lt;br /&gt;Pociski: 10&lt;br /&gt;Używany w: Cyrus</Polish>
<French>Calibre: 9.3x64mm Traçante IR-DIM&lt;br /&gt;Cartouches: 10&lt;br /&gt;Utilisé dans: Cyrus</French>
</Key>
<Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_APName">
<English>9.3mm 10Rnd AP Mag</English>
<German>9,3mm 10-Schuss-Magazin Hartkern</German>
<Polish>Magazynek 9,3mm 10rd AP</Polish>
<French>Chargeur 9.3mm 10Cps AP</French>
</Key>
<Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_APNameShort">
<English>9.3mm AP</English>
<German>9,3mm AP</German>
<Polish>9,3mm AP</Polish>
<Czech>9.3mm AP</Czech>
<French>9.3mm AP</French>
</Key>
<Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_APDescription">
<English>Caliber: 9.3x64mm AP&lt;br /&gt;Rounds: 10&lt;br /&gt;Used in: Cyrus</English>
<German>Kaliber: 9,3x64mm Hartkern&lt;br /&gt;Schuss: 10&lt;br /&gt;Verwendet für: Cyrus</German>
<Polish>Kaliber: 9,3 x 64 mm AP&lt;br /&gt;Pociski: 10&lt;br /&gt;Używany w: Cyrus</Polish>
</Key>
<Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_SDName">
<English>9.3mm 10Rnd SD Mag</English>
<German>9,3mm 10-Schuss-Magazin Unterschall</German>
<Polish>Magazynek 9,3mm 10rd SD</Polish>
</Key>
<Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_SDNameShort">
<English>9.3mm SD</English>
<German>9,3mm SD</German>
<Polish>9,3mm SD</Polish>
<Czech>9.3mm SD</Czech>
</Key>
<Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_SDDescription">
<English>Caliber: 9.3x64mm SD&lt;br /&gt;Rounds: 10&lt;br /&gt;Used in: Cyrus</English>
<German>Kaliber: 9,3x64mm Unterschall&lt;br /&gt;Schuss: 10&lt;br /&gt;Verwendet für: Cyrus</German>
<Polish>Kaliber: 9,3 x 64 mm SD&lt;br /&gt;Pociski: 10&lt;br /&gt;Używany w: Cyrus</Polish>
<Polish>Kaliber: 9,3x64 mm AP&lt;br /&gt;Pociski: 10&lt;br /&gt;Używany w: Cyrus</Polish>
<French>Calibre: 9.3x64mm AP&lt;br /&gt;Cartouches: 10&lt;br /&gt;Utilisé dans: Cyrus</French>
</Key>
<!-- 9.3x64mm 150Rnd Belt-->
<Key ID="STR_ACE_150Rnd_93x64_Mag_TracerName">
<English>9.3mm 150Rnd Tracer Belt</English>
<German>9,3mm 150-Schuss-Gurt Leuchtspur</German>
<Polish>Taśma 9,3mm 150rd Smugacz</Polish>
<French>Bande 9.3mm 150Cps Traçante</French>
</Key>
<Key ID="STR_ACE_150Rnd_93x64_Mag_TracerNameShort">
<English>9.3mm Tracer</English>
<German>9,3mm Leuchtspur</German>
<Polish>9,3mm Smugacz</Polish>
<Czech>9.3mm Svítící</Czech>
<French>9.3mm Traçante</French>
</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;Schuss: 150&lt;br /&gt;Verwendet für: Navid</German>
<Polish>Kaliber: 9,3 x 64 mm Smugacz&lt;br /&gt;Pociski: 150&lt;br /&gt;Używane w: Navid</Polish>
<Polish>Kaliber: 9,3x64 mm Smugacz&lt;br /&gt;Pociski: 150&lt;br /&gt;Używane w: Navid</Polish>
<French>Calibre: 9.3x64mm Traçante&lt;br /&gt;Cartouches: 150&lt;br /&gt;Utilisé dans: Navid</French>
</Key>
<Key ID="STR_ACE_150Rnd_93x64_Mag_Tracer_DimName">
<English>9.3mm 150Rnd Tracer IR-DIM Belt</English>
<German>9,3mm 150-Schuss-Gurt Leuchtspur IR-DIM</German>
<Polish>Taśma 9,3mm 150rd Smugacz IR-DIM</Polish>
<French>Bande 9.3mm 150Cps Traçante IR-DIM</French>
</Key>
<Key ID="STR_ACE_150Rnd_93x64_Mag_Tracer_DimNameShort">
<English>9.3mm IR-DIM</English>
<German>9,3mm IR-DIM</German>
<Polish>9,3mm IR-DIM</Polish>
<Czech>9.3mm IR-DIM</Czech>
<French>9.3mm IR-DIM</French>
</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;Schuss: 150&lt;br /&gt;Verwendet für: Navid</German>
<Polish>Kaliber: 9,3 x 64 mm Smugacz IR-DIM&lt;br /&gt;Pociski: 150&lt;br /&gt;Używane w: Navid</Polish>
<Polish>Kaliber: 9,3x64 mm Smugacz IR-DIM&lt;br /&gt;Pociski: 150&lt;br /&gt;Używane w: Navid</Polish>
<French>Calibre: 9.3x64mm Traçante IR-DIM&lt;br /&gt;Cartouches: 150&lt;br /&gt;Utilisé dans: Navid</French>
</Key>
<Key ID="STR_ACE_150Rnd_93x64_Mag_APName">
<English>9.3mm 150Rnd AP Belt</English>
<German>9,3mm 150-Schuss-Gurt Hartkern</German>
<Polish>Taśma 9,3mm 150rd AP</Polish>
<French>Bande 9.3mm 150Cps AP</French>
</Key>
<Key ID="STR_ACE_150Rnd_93x64_Mag_APNameShort">
<English>9.3mm AP</English>
<German>9,3mm AP</German>
<Polish>9,3mm AP</Polish>
<Czech>9.3mm AP</Czech>
<French>9.3mm AP</French>
</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;Schuss: 150&lt;br /&gt;Verwendet für: Navid</German>
<Polish>Kaliber: 9,3 x 64 mm AP&lt;br /&gt;Pociski: 150&lt;br /&gt;Używane w: Navid</Polish>
<Polish>Kaliber: 9,3x64 mm AP&lt;br /&gt;Pociski: 150&lt;br /&gt;Używane w: Navid</Polish>
<French>Calibre: 9.3x64mm AP&lt;br /&gt;Cartouches: 150&lt;br /&gt;Utilisé dans: Navid</French>
</Key>
<Key ID="STR_ACE_16Rnd_9x19_mag_Name">
<English>9x19mm 16Rnd Mag</English>
<Polish>Magazynek 9x19mm 16rd</Polish>
<French>Chargeur 9x19mm 16Cps</French>
</Key>
<Key ID="STR_ACE_16Rnd_9x19_mag_NameShort">
<English>9x19mm</English>
<Polish>9x19mm</Polish>
<French>9x19mm</French>
</Key>
<Key ID="STR_ACE_16Rnd_9x19_mag_Description">
<English>9x19mm 30Rnd Mag</English>
<Polish>Magazynek 9x19mm 16rd</Polish>
<French>9x19mm 30Cps</French>
</Key>
<Key ID="STR_ACE_30Rnd_9x19_mag_Name">
<English>9x19mm 30Rnd Mag</English>
<Polish>Magazynek 9x19mm 30rd</Polish>
<French>9x19mm 30Cps</French>
</Key>
<Key ID="STR_ACE_30Rnd_9x19_mag_NameShort">
<English>9x19mm</English>
<Polish>9x19mm</Polish>
<French>9x19mm</French>
</Key>
<Key ID="STR_ACE_30Rnd_9x19_mag_Description">
<English>9x19mm 30Rnd Mag</English>
<Polish>Magazynek 9x19mm 30rd</Polish>
<French>9x19mm 30Cps</French>
</Key>
<Key ID="STR_ACE_10Rnd_762x54_Tracer_mag_Name">
<English>7.62x54mm 10Rnd Tracer IR-DIM Mag</English>
<Polish>Magazynek 7,62x54 mm 10rd Smugacz IR-DIM</Polish>
<French>Chargeur 7.62x54mm 10Rnd Traçante IR-DIM</French>
</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>
</Key>
<Key ID="STR_ACE_10Rnd_762x54_Tracer_mag_Description">
<English>7.62x54mm 10Rnd Tracer IR-DIM Mag</English>
<Polish>Magazynek 7,62x54 mm 10rd Smugacz IR-DIM</Polish>
<French>Chargeur 7.62x54mm 10Cps Traçante IR-DIM</French>
</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>
</Key>
<Key ID="STR_ACE_100Rnd_65x39_caseless_mag_Tracer_DimNameShort">
<English>6.5mm IR-DIM</English>
<Polish>6,5mm IR-DIM</Polish>
<French>6.5mm IR-DIM</French>
</Key>
<Key ID="STR_ACE_100Rnd_65x39_caseless_mag_Tracer_DimDescription">
<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>
</Key>
<Key ID="STR_ACE_200Rnd_65x39_cased_Box_Tracer_DimName">
<English>6.5mm 200Rnd Tracer IR-DIM Belt</English>
<Polish>Magazynek 6,5mm 200rd Smugacz IR-DIM</Polish>
<French>Bande 6.5mm 200Rnd Traçante IR-DIM</French>
</Key>
<Key ID="STR_ACE_200Rnd_65x39_cased_Box_Tracer_DimNameShort">
<English>6.5mm IR-DIM</English>
<Polish>6,5mm IR-DIM</Polish>
<French>6.5mm IR-DIM</French>
</Key>
<Key ID="STR_ACE_200Rnd_65x39_cased_Box_Tracer_DimDescription">
<English>6.5mm 200Rnd Tracer IR-DIM Belt</English>
<Polish>Magazynek 6,5mm 200rd Smugacz IR-DIM</Polish>
<French>Bande 6.5mm 200Cps Traçante IR-DIM</French>
</Key>
<Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk262_mag_Name">
<English>5.56mm 30Rnd Mag (Mk262)</English>
<Polish>Magazynek 5,56mm 30rd Mk262</Polish>
<French>5.56mm 30Cps (Mk262)</French>
</Key>
<Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk262_mag_NameShort">
<English>5.56mm Mk262</English>
<Polish>5,56mm Mk262</Polish>
<French>5.56mm Mk262</French>
</Key>
<Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk262_mag_Description">
<English>Caliber: 5.56x45 mm NATO (Mk262)&lt;br /&gt;Rounds: 30</English>
<Polish>Kaliber: 5,56x45 mm NATO (Mk262)&lt;br /&gt;Pociski: 30</Polish>
<French>Calibre: 5.56x45 mm NATO (Mk262)&lt;br /&gt;Cartouches: 30</French>
</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>
</Key>
<Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_NameShort">
<English>5.56mm Mk318</English>
<Polish>5,56mm Mk318</Polish>
<French>5.56mm Mk318</French>
</Key>
<Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_Description">
<English>Caliber: 5.56x45 mm NATO (Mk318)&lt;br /&gt;Rounds: 30</English>
<Polish>Kaliber: 5,56x45 mm NATO (Mk318)&lt;br /&gt;Pociski: 30</Polish>
<French>Calibre: 5.56x45 mm NATO (Mk318)&lt;br /&gt;Cartouches: 30</French>
</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>
</Key>
<Key ID="STR_ACE_10Rnd_762x51_M118LR_Mag_NameShort">
<English>7.62mm M118LR</English>
<Polish>7,62mm M118LR</Polish>
<French>7.62mm M118LR</French>
</Key>
<Key ID="STR_ACE_10Rnd_762x51_M118LR_Mag_Description">
<English>Caliber: 7.62x51 mm NATO (M118LR)&lt;br /&gt;Rounds: 10</English>
<Polish>Kaliber: 7,62x51 mm NATO (M118LR)&lt;br /&gt;Pociski: 10</Polish>
<French>Calibre: 7.62x51 mm NATO (M118LR)&lt;br /&gt;Cartouches: 10</French>
</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>
</Key>
<Key ID="STR_ACE_20Rnd_762x51_M118LR_Mag_NameShort">
<English>7.62mm M118LR</English>
<Polish>7,62mm M118LR</Polish>
<French>7.62mm M118LR</French>
</Key>
<Key ID="STR_ACE_20Rnd_762x51_M118LR_Mag_Description">
<English>Caliber: 7.62x51 mm NATO (M118LR)&lt;br /&gt;Rounds: 20</English>
<Polish>Kaliber: 7,62x51 mm NATO (M118LR)&lt;br /&gt;Pociski: 20</Polish>
<French>Calibre: 7.62x51 mm NATO (M118LR)&lt;br /&gt;Cartouches: 20</French>
</Key>
<Key ID="STR_ACE_10Rnd_762x51_Mk319_Mod_0_Mag_Name">
<English>7.62mm 10Rnd Mag (Mk319 Mod 0)</English>
<Polish>Magazynek 7,62mm 10rd (Mk319 Mod 0)</Polish>
<French>7.62mm 10Cps (Mk319 Mod 0)</French>
</Key>
<Key ID="STR_ACE_10Rnd_762x51_Mk319_Mod_0_Mag_NameShort">
<English>7.62mm Mk319</English>
<Polish>7,62mm Mk319</Polish>
<French>7.62mm Mk319</French>
</Key>
<Key ID="STR_ACE_10Rnd_762x51_Mk319_Mod_0_Mag_Description">
<English>Caliber: 7.62x51 mm NATO (Mk319 Mod 0)&lt;br /&gt;Rounds: 10</English>
<Polish>Kaliber: 7,62x51 mm NATO (Mk319 Mod 0)&lt;br /&gt;Pociski: 10</Polish>
<French>Calibre: 7.62x51 mm NATO (Mk319 Mod 0)&lt;br /&gt;Cartouches: 10</French>
</Key>
<Key ID="STR_ACE_20Rnd_762x51_Mk319_Mod_0_Mag_Name">
<English>7.62mm 20Rnd Mag (Mk319 Mod 0)</English>
<Polish>Magazynek 7,62mm 20rd (Mk319 Mod 0)</Polish>
<French>7.62mm 20Cps (Mk319 Mod 0)</French>
</Key>
<Key ID="STR_ACE_20Rnd_762x51_Mk319_Mod_0_Mag_NameShort">
<English>7.62mm Mk319</English>
<Polish>7,62mm Mk319</Polish>
<French>7.62mm Mk319</French>
</Key>
<Key ID="STR_ACE_20Rnd_762x51_Mk319_Mod_0_Mag_Description">
<English>Caliber: 7.62x51 mm NATO (Mk319 Mod 0)&lt;br /&gt;Rounds: 20</English>
<Polish>Kaliber: 7,62x51 mm NATO (Mk319 Mod 0)&lt;br /&gt;Pociski: 20</Polish>
<French>Calibre: 7.62x51 mm NATO (Mk319 Mod 0)&lt;br /&gt;Cartouches: 20</French>
</Key>
<Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_0_Mag_Name">
<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>
</Key>
<Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_0_Mag_NameShort">
<English>7.62mm (Mk248 Mod 0)</English>
<Polish>7,62mm (Mk248 Mod 0)</Polish>
<French>7.62mm (Mk248 Mod 0)</French>
</Key>
<Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_0_Mag_Description">
<English>Caliber: 7.62x67 mm NATO (Mk248 Mod 0)&lt;br /&gt;Rounds: 20</English>
<Polish>Kaliber: 7,62x67 mm NATO (Mk248 Mod 0)&lt;br /&gt;Pociski: 20</Polish>
<French>Calibre: 7.62x67mm NATO (Mk248 Mod 0)&lt;br /&gt;Cartouches: 20</French>
</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>
</Key>
<Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_1_Mag_NameShort">
<English>7.62mm (Mk248 Mod 1)</English>
<Polish>7,62mm (Mk248 Mod 1)</Polish>
<French>7.62mm (Mk248 Mod 1)</French>
</Key>
<Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_1_Mag_Description">
<English>Caliber: 7.62x67 mm NATO (Mk248 Mod 1)&lt;br /&gt;Rounds: 20</English>
<Polish>Kaliber: 7,62x67 mm NATO (Mk248 Mod 1)&lt;br /&gt;Pociski: 20</Polish>
<French>Calibre: 7.62x67mm NATO (Mk248 Mod 1)&lt;br /&gt;Cartouches: 20</French>
</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>
</Key>
<Key ID="STR_ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag_NameShort">
<English>7.62mm (OTM)</English>
<Polish>7,62mm (OTM)</Polish>
<French>7.62mm (OTM)</French>
</Key>
<Key ID="STR_ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag_Description">
<English>Caliber: 7.62x67 mm NATO (Berger Hybrid OTM)&lt;br /&gt;Rounds: 20</English>
<Polish>Kaliber: 7,62x67 mm NATO (Berger Hybrid OTM)&lt;br /&gt;Pociski: 20</Polish>
<French>Calibre: 7.62x67mm NATO (Berger Hybrid OTM)&lt;br /&gt;Cartouches: 20</French>
</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>
</Key>
<Key ID="STR_ACE_30Rnd_65x47_Scenar_mag_NameShort">
<English>6.5mm Scenar</English>
<French>6.5mm Scenar</French>
</Key>
<Key ID="STR_ACE_30Rnd_65x47_Scenar_mag_Description">
<English>Caliber: 6.5x47mm (HPBT Scenar)&lt;br /&gt;Rounds: 30</English>
<French>Calibre: 6.5x47mm (HPBT Scenar)&lt;br /&gt;Cartouches: 30</French>
</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>
</Key>
<Key ID="STR_ACE_10Rnd_338_300gr_HPBT_Mag_NameShort">
<English>.338 (HPBT)</English>
<French>.338 (HPBT)</French>
</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>
</Key>
<Key ID="STR_ACE_10Rnd_338_API526_Mag_Name">
<English>.338 10Rnd Mag (API526)</English>
<French>.338 10Cps (API526)</French>
</Key>
<Key ID="STR_ACE_10Rnd_338_API526_Mag_NameShort">
<English>.338 AP</English>
<French>.338 AP</French>
</Key>
<Key ID="STR_ACE_10Rnd_338_API526_Mag_Description">
<English>Caliber: 8.6x70mm (API526)&lt;br /&gt;Rounds: 10</English>
<French>Calibre: 8.6x70mm (API526)&lt;br /&gt;Cartouches: 10</French>
</Key>
<Key ID="STR_ACE_5Rnd_127x99_Mag_Name">
<English>12.7x99mm 5Rnd Mag</English>
<French>12.7x99mm 5Cps</French>
</Key>
<Key ID="STR_ACE_5Rnd_127x99_Mag_NameShort">
<English>12.7mm</English>
<French>12.7mm</French>
</Key>
<Key ID="STR_ACE_5Rnd_127x99_Mag_Description">
<English>Caliber: 12.7x99mm&lt;br /&gt;Rounds: 5</English>
<French>Calibre: 12.7x99mm&lt;br /&gt;Cartouches: 5</French>
</Key>
<Key ID="STR_ACE_5Rnd_127x99_AMAX_Mag_Name">
<English>12.7x99mm 5Rnd Mag (AMAX)</English>
<French>12.7x99mm 5Rnd Mag (AMAX)</French>
</Key>
<Key ID="STR_ACE_5Rnd_127x99_AMAX_Mag_NameShort">
<English>12.7mm</English>
<French>12.7mm</French>
</Key>
<Key ID="STR_ACE_5Rnd_127x99_AMAX_Mag_Description">
<English>Caliber: 12.7x99mm (AMAX)&lt;br /&gt;Rounds: 5</English>
<French>Calibre: 12.7x99mm (AMAX)&lt;br /&gt;Cartouches: 5</French>
</Key>
</Package>
</Project>

View File

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

View File

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

View File

@ -22,7 +22,7 @@
<Czech>Osvobodit Zajatce</Czech>
<Italian>Libera il Prigioniero</Italian>
<Portuguese>Libertar Prisioneiro</Portuguese>
<Hungarian>Fogoly szabadon elengedése</Hungarian>
<Hungarian>Fogoly szabadon engedése</Hungarian>
<Russian>Освободить пленника</Russian>
</Key>
<Key ID="STR_ACE_Captives_EscortCaptive">
@ -58,7 +58,7 @@
<Czech>Musíš ho nejdříve zajmout!</Czech>
<Italian>Prima devi arrestarlo!</Italian>
<Portuguese>Você deve tomá-lo como prisioneiro primeiro!</Portuguese>
<Hungarian>Először foglyul kell ejtened!</Hungarian>
<Hungarian>Először foglyul kell ejtened őt!</Hungarian>
<Russian>Вы должны сначала взять его в плен!</Russian>
</Key>
<Key ID="STR_ACE_Captives_LoadCaptive">
@ -71,6 +71,7 @@
<Hungarian>Fogoly berakása</Hungarian>
<Russian>Загрузить пленного</Russian>
<Portuguese>Embarcar Prisioneiro</Portuguese>
<Italian>Carica il prigioniero</Italian>
</Key>
<Key ID="STR_ACE_Captives_UnloadCaptive">
<English>Unload Captive</English>
@ -82,6 +83,7 @@
<Hungarian>Fogoly kivevése</Hungarian>
<Russian>Выгрузить пленного</Russian>
<Portuguese>Desembarcar Prisioneiro</Portuguese>
<Italian>Scarica il prigioniero</Italian>
</Key>
<Key ID="STR_ACE_Captives_CableTie">
<English>Cable Tie</English>
@ -104,7 +106,7 @@
<Czech>Stahovací pásky vám umožní zadržet vězně.</Czech>
<Portuguese>A algema plástica permite que você contenha prisioneiros.</Portuguese>
<Italian>Fascietta che ti consente di arrestare i prigionieri.</Italian>
<Hungarian>Gyorskötöző emberek fogjulejtéséhez.</Hungarian>
<Hungarian>Gyorskötöző, emberek foglyulejtéséhez használható.</Hungarian>
<Russian>Кабельные стяжки позволяют связывать пленников.</Russian>
</Key>
<Key ID="STR_ACE_Captives_FriskMenuHeader">
@ -128,51 +130,62 @@
<Hungarian>Motozás</Hungarian>
<Russian>Обыскать человека</Russian>
<Portuguese>Revistar</Portuguese>
<Italian>Perquisisci la persona</Italian>
</Key>
<Key ID="STR_ACE_Captives_StartSurrendering">
<English>Surrender</English>
<French>Se rendre</French>
<French>Capituler</French>
<German>Kapitulieren</German>
<Spanish>Rendirse</Spanish>
<Russian>Сдаться</Russian>
<Czech>Vzdát se</Czech>
<Polish>Poddaj się</Polish>
<Russian>Сдаться в плен</Russian>
<Hungarian>Megadás</Hungarian>
<Italian>Arreso</Italian>
</Key>
<Key ID="STR_ACE_Captives_StopSurrendering">
<English>Stop Surrendering</English>
<French>Arrêt de se rendre</French>
<French>Annuler la capitulation</French>
<German>Den Kampf erneut aufnehmen</German>
<Spanish>Dejar de rendirse</Spanish>
<Russian>Остановить сдачу</Russian>
<Czech>Přestat se vzdávat</Czech>
<Polish>Podejmij walkę ponownie</Polish>
<Russian>Отменить сдачу в плен</Russian>
<Hungarian>Megadás abbahagyása</Hungarian>
<Italian>Annulla la resa</Italian>
</Key>
<Key ID="STR_ACE_Captives_Zeus_OnlyAlive">
<English>Only use on alive units</English>
<French>Utilisation uniquement sur les unités en vie</French>
<French>Utiliser uniquement sur unité vivante</French>
<German>Nur bei lebenden Einheiten verwendbar</German>
<Spanish>Utilizar solo en unidades vivas</Spanish>
<Russian>Только для живых юнитов</Russian>
<Czech>Použitelné jen na živé jednotky</Czech>
<Polish>Używaj tylko na żywych jednostkach</Polish>
<Russian>Применимо только к живым юнитам</Russian>
<Hungarian>Csak élő egységeken használni</Hungarian>
<Italian>Si può fare solo su persone vive</Italian>
</Key>
<Key ID="STR_ACE_Captives_Zeus_OnlyInfantry">
<English>Only use on dismounted inf</English>
<French>Utilisation uniquement sur les infanteries</French>
<French>Utiliser uniquement sur personnel à pied</French>
<German>Nur bei abgesessener Infanterie verwendbar</German>
<Spanish>Utilizar solo en infanteria desmontada</Spanish>
<Russian>Только для спеш. солдат</Russian>
<Czech>Použitelné jen na pěsích jednotkách</Czech>
<Polish>Używaj tylko na piechocie poza wszelkimi pojazdami</Polish>
<Russian>Применимо только к пехоте вне техники</Russian>
<Hungarian>Csak járműben kívül lévő egységeken használni</Hungarian>
<Italian>Si può usare solo su fanteria a piedi</Italian>
</Key>
<Key ID="STR_ACE_Captives_Zeus_NothingSelected">
<English>Nothing under mouse</English>
<French>Rien sous la souris</French>
<German>Es wurde nichts ausgewählt</German>
<Spanish>Nada bajo el ratón</Spanish>
<Russian>Объекты под мышью отсутствуют</Russian>
<Czech>Nic není vybráno</Czech>
<Polish>Nie ma nic pod kursorem</Polish>
<Russian>Ничего не выделено</Russian>
<Hungarian>Semmi sincs az egér alatt</Hungarian>
<Italian>Niente selezionato</Italian>
</Key>
</Package>
</Project>

View File

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

View File

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

View File

@ -69,9 +69,9 @@ class ACE_Settings {
* force = 0;
*
* Does it appear on the options menu?
* isClientSetable = 1;
* isClientSettable = 1;
*
* The following settings only apply when isClientSetable == 1
* The following settings only apply when isClientSettable == 1
* Stringtable entry with the setting name
* displayName = "$STR_ACE_Common_SettingName";
*
@ -90,14 +90,14 @@ class ACE_Settings {
/*class GVAR(enableNumberHotkeys) {
value = 1;
typeName = "BOOL";
isClientSetable = 1;
isClientSettable = 1;
displayName = "$STR_ACE_Common_EnableNumberHotkeys";
};*/
class GVAR(settingFeedbackIcons) {
value = 1;
typeName = "SCALAR";
force = 0;
isClientSetable = 1;
isClientSettable = 1;
displayName = "$STR_ACE_Common_SettingFeedbackIconsName";
description = "$STR_ACE_Common_SettingFeedbackIconsDesc";
values[] = {"Hide", "Top right, downwards", "Top right, to the left", "Top left, downwards", "Top left, to the right"};
@ -106,7 +106,7 @@ class ACE_Settings {
value = 0;
typeName = "SCALAR";
force = 0;
isClientSetable = 1;
isClientSettable = 1;
displayName = "$STR_ACE_Common_SettingProgressbarLocationName";
description = "$STR_ACE_Common_SettingProgressbarLocationDesc";
values[] = {"Top", "Bottom"};
@ -114,14 +114,14 @@ class ACE_Settings {
class GVAR(displayTextColor) {
value[] = {0,0,0,0.1};
typeName = "COLOR";
isClientSetable = 1;
isClientSettable = 1;
displayName = "$STR_ACE_Common_SettingDisplayTextColorName";
description = "$STR_ACE_Common_SettingDisplayTextColorDesc";
};
class GVAR(displayTextFontColor) {
value[] = {1,1,1,1};
typeName = "COLOR";
isClientSetable = 1;
isClientSettable = 1;
displayName = "$STR_ACE_Common_SettingDisplayTextFontColorName";
description = "$STR_ACE_Common_SettingDisplayTextFontColorDesc";
};

View File

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

View File

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

View File

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

View File

@ -52,4 +52,4 @@ _lowestVolume = 1;
// Set Radio mod variables.
player setVariable ["tf_globalVolume", _lowestVolume];
player setVariable ["acre_sys_core_globalVolume", _lowestVolume];
if (!isNil "acre_api_fnc_setGlobalVolume") then { [_lowestVolume^0.33] call acre_api_fnc_setGlobalVolume; };

View File

@ -58,7 +58,7 @@ if (isNil _name) then {
/*_settingData = [
_name,
_typeName,
_isClientSetable,
_isClientSettable,
_localizedName,
_localizedDescription,
_possibleValues,
@ -68,7 +68,7 @@ if (isNil _name) then {
_settingData = [
_name,
_typeName,
(getNumber (_optionEntry >> "isClientSetable")) > 0,
(getNumber (_optionEntry >> "isClientSettable")) > 0,
getText (_optionEntry >> "displayName"),
getText (_optionEntry >> "description"),
getArray (_optionEntry >> "values"),

View File

@ -27,7 +27,7 @@ if (_setVolume) then {
player setVariable ["tf_unable_to_use_radio", false];
// ACRE2
[NORMAL_LEVEL] call acre_api_fnc_setGlobalVolume;
if (!isNil "acre_api_fnc_setGlobalVolume") then { [NORMAL_LEVEL^0.33] call acre_api_fnc_setGlobalVolume; };
player setVariable ["acre_sys_core_isDisabled", false, true];
} else {
@ -40,7 +40,7 @@ if (_setVolume) then {
player setVariable ["tf_unable_to_use_radio", true];
// ACRE2
[MUTED_LEVEL] call acre_api_fnc_setGlobalVolume;
if (!isNil "acre_api_fnc_setGlobalVolume") then { [MUTED_LEVEL^0.33] call acre_api_fnc_setGlobalVolume; };
player setVariable ["acre_sys_core_isDisabled", true, true];
};

View File

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler. -->
<Project name="ACE">
<Package name="Common">
<Key ID="STR_ACE_Common_ACETeam">
@ -44,10 +43,10 @@
<Spanish>Opciones ACE</Spanish>
<Polish>Ustawienia ACE</Polish>
<Czech>Nastavení ACE</Czech>
<French>ACE Options</French>
<French>Options ACE</French>
<Russian>ACE Настройки</Russian>
<Portuguese>Opções do ACE</Portuguese>
<Hungarian>ACE Opciók</Hungarian>
<Hungarian>ACE Beállítások</Hungarian>
<Italian>Opzioni ACE</Italian>
</Key>
<!-- These are cardinal directions, in case you didn't guess. -->
@ -298,6 +297,7 @@
<Russian>Без голоса</Russian>
<Hungarian>Nincs hang</Hungarian>
<Italian>Senza voce</Italian>
<French>Pas de voix</French>
</Key>
<Key ID="STR_ACE_ACTION_ACCEPT_REQUEST_KEY_TITLE">
<English>Accept Requests</English>
@ -306,7 +306,9 @@
<Polish>Akceptuj prośby</Polish>
<Czech>Přijmout žádost</Czech>
<Italian>Accetta Richieste</Italian>
<Russian>Подтвердить запросы</Russian>
<French>Accepter requête</French>
<Russian>Принять запросы</Russian>
<Hungarian>Kérések elfogadása</Hungarian>
</Key>
<Key ID="STR_ACE_ACTION_DECLINE_REQUEST_KEY_TITLE">
<English>Decline Requests</English>
@ -316,6 +318,8 @@
<Czech>Zamítnout žádost</Czech>
<Italian>Rifiuta Richieste</Italian>
<Russian>Отклонить запросы</Russian>
<French>Rejeter requête</French>
<Hungarian>Kérések elutasítása</Hungarian>
</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>
@ -323,8 +327,10 @@
<Spanish>Acepta peticiones de otros jugadores. Pueden ser solicitudes para usar / compartir equipamiento, realizar ciertas acciones.</Spanish>
<Polish>Akceptuj prośby wysłane przez innych graczy. Akceptacji wymagają między innymi akcje używania / współdzielenia wyposażenia, wykonywania określonych czynności.</Polish>
<Italian>Accetta le richieste degli altri giocatori. Queste possono riguardare l'uso o la condivisione dell'equipaggiamento, o di determinate azioni.</Italian>
<Russian>Подтвердить запросы, посланные другими игроками. Это могут быть просьбы о передаче снаряжения или выполнении определённых действий.</Russian>
<Czech>Přijimutí žádosti poslané jinými hráči. Mohou to být žádosti k použítí/sdílení vybavení nebo k vykonání určité činnosti.</Czech>
<Russian>Принять запросы, отправленные другими игроками. Например, запросы на использование/совместное использование снаряжения, выполнение определенных действий</Russian>
<French>Accepter les requêtes d'autres joueurs. Comme l'utilisation / l'échange d'équipement, la réalistion 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>
</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>
@ -332,8 +338,10 @@
<Spanish>Rechazar peticiones de otros jugadores. Pueden ser solicitudes para usar / compartir equipamiento, realizar ciertas acciones.</Spanish>
<Polish>Ignoruj prośby wysłane przez innych graczy. Akceptacji wymagają między innymi akcje używania / współdzielenia wyposażenia, wykonywania określonych czynności.</Polish>
<Italian>Rifiuta le richieste degli altri giocatori. Queste possono riguardare l'uso o la condivisione dell'equipaggiamento, o di determinate azioni.</Italian>
<Russian>Отклонить запросы, посланные другими игроками. Это могут быть просьбы о передаче снаряжения или выполнении определённых действий.</Russian>
<Czech>Zamítnutí žádostii poslané jinými hráči. Mohou to být žádosti k použítí/sdílení vybavení nebo k vykonání určité činnosti.</Czech>
<Russian>Отклонить запросы, отправленные другими игроками. Например, запросы на использование/совместное использование снаряжения, выполнение определенных действий</Russian>
<French>Rejeter les requêtes d'autres joueurs. Comme l'utilisation / l'échange d'équipement, la réalistion 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>
</Key>
<Key ID="STR_ACE_Common_SettingFeedbackIconsName">
<English>Feedback icons</English>
@ -342,8 +350,9 @@
<Italian>Icone informative</Italian>
<Russian>Иконки состояний</Russian>
<Polish>Ikony pomocnicze</Polish>
<French>Icônes de Feedback</French>
<French>Icones d'information</French>
<Czech>Pomocné ikony</Czech>
<Hungarian>Visszajelző ikonok</Hungarian>
</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>
@ -352,8 +361,9 @@
<Italian>Seleziona la posizione o disabilita le icone informative sul tuo schermo. Queste saranno mostrate per fornire informazioni aggiuntive sullo stato o sulle azioni del giocatore.</Italian>
<Russian>Выберите положение или или отключите отображение иконок состояний на Вашем экране. Эти иконки предоставят дополнительную информацию о состоянии персонажа и выполняемых действиях.</Russian>
<Polish>Ustaw pozycję lub wyłącz całkowicie ikony pomocnicze na ekranie. Te ikony dostarczają dodatkowych informacji na temat statusu Twojej postaci i wykonywanych przez nią akcji.</Polish>
<French>Sélectionner la position de ou désactiver les îcones de feedback sur votre écran. Ces îcones sont là pour vous fournir un feedback du statut votre personnage et les actions à effectuer.</French>
<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>
</Key>
<Key ID="STR_ACE_Common_SettingProgressbarLocationName">
<English>Progress bar location</English>
@ -362,18 +372,20 @@
<Italian>Posizione della barra di avanzamento</Italian>
<Russian>Положение прогресс-бара</Russian>
<Polish>Lokalizacja paska postępu</Polish>
<French>Localisation de la barre de progression</French>
<French>Position de la barre de progression</French>
<Czech>Pozice ukazetele průběhu činnosti</Czech>
<Hungarian>Állapotjelző sáv helyzete</Hungarian>
</Key>
<Key ID="STR_ACE_Common_SettingProgressbarLocationDesc">
<English>Set the desired location of the progress bar on your screen.</English>
<German>Setze die gewünschte Position der Fortschrittsanzeige fest</German>
<German>Setze die gewünschte Position der Fortschrittsanzeige fest.</German>
<Spanish>Seleccionar la ubicación deseada de la barra de progreso en tu pantalla</Spanish>
<Italian>Modifica la posizione su schermo della barra di avanzamento.</Italian>
<Russian>Установите желаемое положение строки состояния на экране.</Russian>
<Polish>Ustaw pożądaną lokalizację paska postępu na ekranie</Polish>
<French>Définisez l'endroit que vous désirez pour faire appraître la barre de progression.</French>
<French>Appliquer la postion 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>
</Key>
<Key ID="STR_ACE_Common_SettingDisplayTextColorName">
<English>Hint Background color</English>
@ -382,8 +394,9 @@
<Italian>Sfondo dei Suggerimenti</Italian>
<Russian>Цвет фона всплывающих подсказок</Russian>
<Polish>Kolor tła powiadomień</Polish>
<French>Couleur de fond des astuces</French>
<French>Notification: couleur de l'arrière plan</French>
<Czech>Barva pozadí nápovědy</Czech>
<Hungarian>Súgó háttérszíne</Hungarian>
</Key>
<Key ID="STR_ACE_Common_SettingDisplayTextColorDesc">
<English>The color of the background from the ACE hints.</English>
@ -392,8 +405,9 @@
<Italian>Il colore di sfondo dei suggerimenti dell'ACE.</Italian>
<Russian>Цвет фона всплывающий подсказок АСЕ.</Russian>
<Polish>Kolor tła dla powiadomień ACE</Polish>
<French>Définisez la couleur de fond pour les astuces fournies par ACE.</French>
<French>Notifications 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>
</Key>
<Key ID="STR_ACE_Common_SettingDisplayTextFontColorName">
<English>Hint text font color</English>
@ -402,18 +416,20 @@
<Italian>Testo dei Suggerimenti</Italian>
<Russian>Цвет шрифта всплывающих подсказок</Russian>
<Polish>Kolor tekstu powiadomień</Polish>
<French>Couleur du texte des astuces</French>
<French>Notification: couleur du texte</French>
<Czech>Barva fontu nápověd.</Czech>
<Hungarian>Súgószöveg betűinek színe</Hungarian>
</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>
<German>Wähle die Textfarbe für ACE-Hinweise. </German>
<German>Wähle die Textfarbe für ACE-Hinweise. Die gewählte Farbe wird als Standartfarbe der Hinweise angezeigt, wenn der Hinweis selbst keine spezifische Farbe hat. </German>
<Spanish>El color del texto de las notificaciones del ACE. Este es el color predeterminado para todo el texto que se muestra a través del sistema de notificaciones del ACE, si el texto de notificación no tiene otro color especificado.</Spanish>
<Italian>Il colore del testo dei suggerimenti dell'ACE. Questo è il colore standard per tutti i caratteri mostrati dal sistema di suggerimenti dell'ACE, se questo non è altrimenti specificato.</Italian>
<Russian>Цвет шрифта текста всплывающих подсказок АСЕ. Этот цвет является стандартным для всего текста, транслирующегося через систему подсказок АСЕ, если не установлено другого цвета для текста подсказок.</Russian>
<Polish>Kolor tekstu dla powiadomień ACE. Ten kolor jest domyślnym dla wszystkich tekstów wyświetlanych poprzez System Powiadomień ACE, jeżeli dla powiadomienia nie określono innego koloru.</Polish>
<French>Définisez la couleur du texte des astuces fournies par ACE. La couleur est celle par défaut affichée à travers toutes les astuces de ACE seulement si aucune couleur n'est défnie.</French>
<French>Notification ACE: couleur du texte. C'est la couleur par défaut de tout texte afficher 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>
</Key>
<Key ID="STR_ACE_Common_bananaDisplayName">
<English>Banana</English>
@ -424,16 +440,18 @@
<Russian>Банан</Russian>
<Polish>Banan</Polish>
<French>Banane</French>
<Hungarian>Banán</Hungarian>
</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>
<German>Die Banane ist eine essbare Frucht, biologisch betrachtet jedoch eine Beere. Sie wächst an unterschiedlichen, krautartigen Gewächsen aus der Familie der Musa.</German>
<German>Die Bananen (Musa) sind eine Pflanzengattung in der Familie der Bananengewächse (Musaceae) innerhalb der Einkeimblättrigen Pflanzen (Monokotyledonen).</German>
<Spanish>Una banana es una fruta comestible, botanicamente una baya, producida por varios tipos de grandes plantas herbáceas del género Musa.</Spanish>
<Czech>Banán je protáhlé ovoce a plod banánovníku (epigeická bobule).</Czech>
<Italian>Una banana è un frutto commestibile, nello specifico una bacca cuoiosa, prodotto da un gran numero di grandi pianti erbacee dotate di fiori, della famiglia delle Musaceae.</Italian>
<Russian>Банан - это съедобный фрукт, ягода с ботанической точки зрения, произрастающий на нескольких видах травянистых растениях рода Банан (Musa).</Russian>
<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 comestible, botaniquement une baie, produite par plusieurs types de grandes plantes herbacées à fleurs dans le genre Musa.</French>
<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>
</Key>
</Package>
</Project>

View File

@ -1,11 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler. -->
<Project name="ACE">
<Package name="Disarming">
<Key ID="STR_ACE_Disarming_OpenInventory">
<English>Open Inventory</English>
<German>Öffne Inventar</German>
<Polish>Otwórz ekwipunek</Polish>
<Czech>Otevřít inventář</Czech>
<Spanish>Abrir inventario</Spanish>
<Russian>Открыть инвентарь</Russian>
<Italian>Apri l'inventario</Italian>
</Key>
</Package>
</Project>

View File

@ -8,8 +8,9 @@
<Czech>Použitý odpalovač</Czech>
<Polish>Zużyta rura</Polish>
<Spanish>Lanzador utilizado</Spanish>
<Hungarian>Használt cső</Hungarian>
<Hungarian>Elhasznált kilövőcső</Hungarian>
<Russian>Отстрелянная труба</Russian>
<Italian>Tubo utilizzato</Italian>
</Key>
<Key ID="STR_ACE_Disposable_UsedTubeDescription">
<English>Used disposable rocket launcher</English>
@ -18,8 +19,9 @@
<Czech>Použitý raketomet</Czech>
<Polish>Zużyta rura granatnika jednorazowego użytku</Polish>
<Spanish>Lanzador desechable utilizado</Spanish>
<Hungarian>Használt rakétavető</Hungarian>
<Hungarian>Elhasznált eldobható rakétavető</Hungarian>
<Russian>Отстрелянная одноразовая пусковая установка</Russian>
<Italian>Lanciarazzi monouso utilizzato</Italian>
</Key>
<Key ID="STR_ACE_Disposable_PreloadedMissileDummy">
<English>Preloaded Missile Dummy</English>
@ -28,8 +30,9 @@
<Czech>Přednabitá dummy střela</Czech>
<Polish>Wstępnie załadowana atrapa pocisku</Polish>
<Spanish>Preloaded Missile Dummy</Spanish>
<Hungarian>Preloaded Missile Dummy</Hungarian>
<Hungarian>Előtöltött műrakéta</Hungarian>
<Russian>Заряженная ракетная пустышка</Russian>
<Italian>Missile stupido precaricato</Italian>
</Key>
</Package>
</Project>

View File

@ -33,9 +33,9 @@
<French>Objet trop lourd</French>
<Portuguese>Não é possível carregar o item devido a seu peso</Portuguese>
<Italian>Non è possibile trascinare l'oggetto a causa del suo peso</Italian>
<Hungarian>Túl nehéz ahhoz, hogy elhúzd</Hungarian>
<Russian>Слишком тяжело</Russian>
<Czech>Moc težké</Czech>
<Hungarian>Az objektum túl nehéz</Hungarian>
</Key>
<Key ID="STR_ACE_Dragging_Carry">
<English>Carry</English>
@ -46,7 +46,7 @@
<Czech>Nést</Czech>
<Portuguese>Carregar</Portuguese>
<Italian>Trascina</Italian>
<Hungarian>Felvesz</Hungarian>
<Hungarian>Felves</Hungarian>
<Russian>Нести</Russian>
</Key>
</Package>

View File

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler. -->
<Project name="ACE">
<Package name="Explosives">
<Key ID="STR_ACE_Explosives_Menu">
@ -22,7 +21,7 @@
<French>Placer &gt;&gt;</French>
<Czech>Položit &gt;&gt;</Czech>
<Italian>Piazza &gt;&gt;</Italian>
<Hungarian>Lerakás &gt;&gt;</Hungarian>
<Hungarian>Elhelyezés &gt;&gt;</Hungarian>
<Portuguese>Colocar &gt;&gt;</Portuguese>
<Russian>Установить &gt;&gt;</Russian>
</Key>
@ -45,10 +44,10 @@
<Polish>Kod ładunku: %1</Polish>
<French>Code explosif: %1</French>
<Czech>Kód výbušniny: %1</Czech>
<Italian>Codice dell'esplosivo : %1</Italian>
<Hungarian>Robbanóanyag kódja: %1</Hungarian>
<Portuguese>Código do explosivo: %1</Portuguese>
<Russian>Код подрыва: %1</Russian>
<Italian>Codice esplosivo: %1</Italian>
</Key>
<Key ID="STR_ACE_Explosives_PlaceAction">
<English>Place</English>
@ -118,7 +117,7 @@
<French>Téléphone Portable</French>
<Czech>Telefon</Czech>
<Italian>Cellulare</Italian>
<Hungarian>Mobil</Hungarian>
<Hungarian>Mobiltelefon</Hungarian>
<Portuguese>Celular</Portuguese>
<Russian>Сотовый телефон</Russian>
</Key>
@ -130,7 +129,7 @@
<French>Utilisé pour déclencher des explosifs à distance</French>
<Czech>Používaný ke vzdálenému odpalování výbušnin</Czech>
<Italian>Usato per l'attivazione a distanza degli esplosivi</Italian>
<Hungarian>Robbanóanyagok távoli robbantásához</Hungarian>
<Hungarian>Robbanóanyagok távoli robbantásához való</Hungarian>
<Portuguese>Usado para acionar explosivos remotamente</Portuguese>
<Russian>Используется для удаленной детонации СВУ</Russian>
</Key>
@ -142,7 +141,7 @@
<French>M57 Dispositif de mise à feu</French>
<Czech>Odpalovací zařízení M57</Czech>
<Italian>Detonatore M57</Italian>
<Hungarian>M57 Detonátor</Hungarian>
<Hungarian>M57 Gyújtóeszköz</Hungarian>
<Portuguese>M57 Dispositivo de Detonação</Portuguese>
<Russian>Взрыватель M57</Russian>
</Key>
@ -166,7 +165,7 @@
<French>M26 Dispositif de mise à feu</French>
<Czech>Odpalovací zařízení M26</Czech>
<Italian>Detonatore M26</Italian>
<Hungarian>M26 Detonátor</Hungarian>
<Hungarian>M26 Gyújtóeszköz</Hungarian>
<Portuguese>M26 Dispositivo de Detonação</Portuguese>
<Russian>Взрыватель M26</Russian>
</Key>
@ -202,7 +201,7 @@
<French>Permet de désamorçer des explosifs</French>
<Czech>Dovoluje zneškodňování výbušnin</Czech>
<Italian>Consente la disattivazione degli ordigni esplosivi</Italian>
<Hungarian>Robbanóanyagok hatástalanításához</Hungarian>
<Hungarian>Robbanóanyagok hatástalanítását teszi lehetővé</Hungarian>
<Portuguese>Permite o desarme de explosivos</Portuguese>
<Russian>Позволяет обезвреживать ВУ</Russian>
</Key>
@ -214,7 +213,7 @@
<French>Ajouter à la composition rapide</French>
<Czech>Přidat jako rychlou volbu</Czech>
<Italian>Aggiungi alla selezione rapida</Italian>
<Hungarian>Hozzáadás gyorshíváshoz</Hungarian>
<Hungarian>Hozzáadás a gyorstárcsázóhoz</Hungarian>
<Portuguese>Adicionar à ligação rápida</Portuguese>
<Russian>Добавить в ускоренный набор</Russian>
</Key>
@ -286,7 +285,7 @@
<French>Menu de mise à feu</French>
<Czech>Menu Detonace</Czech>
<Italian>Menù di detonazione</Italian>
<Hungarian>Robbantás menü</Hungarian>
<Hungarian>Robbantási menü</Hungarian>
<Portuguese>Menu de detonação</Portuguese>
<Russian>Меню подрыва</Russian>
</Key>
@ -298,7 +297,7 @@
<French>Menu Placement</French>
<Czech>Menu Umístění</Czech>
<Italian>Menù di collocamento</Italian>
<Hungarian>Lerakás menü</Hungarian>
<Hungarian>Elhelyezési menü</Hungarian>
<Portuguese>Menu de posicionamento</Portuguese>
<Russian>Меню детонации</Russian>
</Key>
@ -322,7 +321,7 @@
<French>Désamorçage des explosifs...</French>
<Czech>Zneškodňuji Výbušninu...</Czech>
<Italian>Esposivo in fase di disattivazione...</Italian>
<Hungarian>Robbanóanyag hatástalaníása...</Hungarian>
<Hungarian>Robbanóanyag hatástalanítása...</Hungarian>
<Portuguese>Desarmando Explosivo...</Portuguese>
<Russian>Обезвреживание...</Russian>
</Key>
@ -331,10 +330,10 @@
<German>Zeitzünder</German>
<Spanish>Temporizador</Spanish>
<Polish>Czasomierz</Polish>
<French>Retard</French>
<French>Minuteur</French>
<Czech>Časovač</Czech>
<Italian>Cronometro</Italian>
<Hungarian>Időzített</Hungarian>
<Hungarian>Időzítő</Hungarian>
<Portuguese>Timer</Portuguese>
<Russian>Таймер</Russian>
</Key>
@ -355,10 +354,10 @@
<German>Zeit einstellen</German>
<Spanish>Configurar tiempo</Spanish>
<Polish>Ustaw czas</Polish>
<French>Régler retard</French>
<French>Régler minuteur</French>
<Czech>Nastavit Čas</Czech>
<Italian>Modifica il conto alla rovescia</Italian>
<Hungarian>Idő állítása</Hungarian>
<Hungarian>Idő beállítása</Hungarian>
<Portuguese>Configurar Tempo</Portuguese>
<Russian>Установить время</Russian>
</Key>
@ -370,7 +369,7 @@
<French>Sélectionner une mise à feu</French>
<Czech>Zvolit Detonátor</Czech>
<Italian>Seleziona un Attivatore</Italian>
<Hungarian>Detonátor kiválasztása</Hungarian>
<Hungarian>Gyújtóeszköz kiválasztása</Hungarian>
<Portuguese>Selecionar um Gatilho</Portuguese>
<Russian>Выберите детонатор</Russian>
</Key>
@ -403,7 +402,7 @@
<Polish>Linka naciągu</Polish>
<Spanish>Cable trampa</Spanish>
<German>Stolperdraht</German>
<French>Fil de butée</French>
<French>Fil de détente</French>
<Czech>Nástražný drát</Czech>
<Italian>Filo a Inciampo</Italian>
<Hungarian>Botlódrót</Hungarian>
@ -418,7 +417,7 @@
<French>Capteur IR</French>
<Czech>IR Značkovač</Czech>
<Italian>Sensore IR</Italian>
<Hungarian>IR szenzor</Hungarian>
<Hungarian>Infravörös szenzor</Hungarian>
<Portuguese>Sensor IV</Portuguese>
<Russian>ИК сенсор</Russian>
</Key>
@ -430,7 +429,7 @@
<French>Pas de mise à feu disponible pour %1</French>
<Czech>Žádný detonátor k dispozici pro %1</Czech>
<Italian>Nessun attivatore disponibile per %1</Italian>
<Hungarian>Nincs detonátor a %1</Hungarian>
<Hungarian>Nincs elérhető gyújtóeszköz ide: %1</Hungarian>
<Portuguese>Nenhum gatilho disponível para %1</Portuguese>
<Russian>Нет доступных взрывателей для %1</Russian>
</Key>
@ -442,7 +441,7 @@
<French>Capteur IR (de flanc)</French>
<Czech>IR Značkovač (Výbuch stranou)</Czech>
<Italian>Sensore IR (Attacco laterale)</Italian>
<Hungarian>IR Sensor (Side Attack)</Hungarian>
<Hungarian>Infravörös szenzor (Side Attack)</Hungarian>
<Portuguese>Sensor infravermelho (ataque lateral)</Portuguese>
<Russian>ИК (детонация вбок)</Russian>
</Key>
@ -454,7 +453,7 @@
<French>Capteur Magnétique (par le bas)</French>
<Czech>Magnetický Senzor (Výbuch ze spoda)</Czech>
<Italian>Sensore Magnetico di Prossimità (Attacco inferiore)</Italian>
<Hungarian>Mágneses (Bottom Attack)</Hungarian>
<Hungarian>Mágneses mező érzékelő (Bottom Attack)</Hungarian>
<Portuguese>Influência magnética (ataque inferior)</Portuguese>
<Russian>Магнитный (детонация вверх)</Russian>
</Key>
@ -465,7 +464,7 @@
<French>Pas d'explosif à mettre à feu.</French>
<Italian>Nessun esplosivo sul sensore.</Italian>
<Czech>Žádná výbušnina k odpálení.</Czech>
<Hungarian>Nincs robbanóanyag a detonátorhoz.</Hungarian>
<Hungarian>Nincs robbanóanyag a gyújtóeszközhöz kötve.</Hungarian>
<Polish>Brak ładunków na zapalnik.</Polish>
<Portuguese>Nenhum explosivo no gatilho.</Portuguese>
<Russian>Нет доступных ВУ для взрывателя.</Russian>
@ -487,8 +486,9 @@
<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</Hungarian>
<Hungarian>Robbanóanyagok távoli robbantásához való, elengedéskor gyújt.</Hungarian>
<Russian>Используется для дистанционного подрыва, после смерти оператора.</Russian>
<Italian>Usato per attivare esplosivi quando rilasciato</Italian>
</Key>
<Key ID="STR_ACE_Explosives_Pickup">
<English>Pick up</English>
@ -496,7 +496,10 @@
<Spanish>Recoger</Spanish>
<Czech>Sebrat</Czech>
<Polish>Podnieś</Polish>
<French>Prendre</French>
<French>Ramasser</French>
<Hungarian>Felszedés</Hungarian>
<Russian>Поднять</Russian>
<Italian>Raccogli</Italian>
</Key>
</Package>
</Project>

View File

@ -9,6 +9,7 @@
<Czech>Označit cíl / Změřit vzdálenost</Czech>
<Spanish>Iluminar objetivo / Medir distancia</Spanish>
<Russian>Подсветить цель / Замерить расстояние</Russian>
<Hungarian>Célpont lézerezése / Távolság Bemérése</Hungarian>
</Key>
<Key ID="STR_ACE_FCS_ZeroedTo">
<English>Zeroed To</English>
@ -18,7 +19,7 @@
<Czech>Nastaveno na</Czech>
<French>Zéroté à</French>
<Russian>Выставлено на</Russian>
<Hungarian>Nullázás</Hungarian>
<Hungarian>Nullázási táv</Hungarian>
<Portuguese>Fixado em</Portuguese>
<Italian>Azzeramento a</Italian>
</Key>
@ -65,7 +66,7 @@
<French>SCT réinitialisé.</French>
<Polish>SKO został zresetowany.</Polish>
<Czech>FCS byl resetován.</Czech>
<Hungarian>Az FCS visszaállítva</Hungarian>
<Hungarian>FCS visszaállítva.</Hungarian>
<Portuguese>FCS reiniciado.</Portuguese>
<Italian>L'FCS è stato azzerato</Italian>
<Russian>СУО обнулен.</Russian>

View File

@ -8,6 +8,9 @@
<Spanish>Desactivar fragmentación</Spanish>
<Polish>Wyłącz fragmentację odłamków</Polish>
<Russian>Выключить разлёт осколков</Russian>
<French>Désactive la fragmentation</French>
<Hungarian>Repeszek letiltása</Hungarian>
<Italian>Disattiva la frammentazione</Italian>
</Key>
</Package>
</Project>

View File

@ -247,7 +247,7 @@ class ACE_Settings {
class GVAR(showInThirdPerson) {
value = 0;
typeName = "BOOL";
isClientSetable = 1;
isClientSettable = 1;
displayName = "$STR_ACE_Goggles_ShowInThirdPerson";
};
};

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler. -->
<Project name="ACE">
<Package name="Goggles">
<Key ID="STR_ACE_Goggles_ShowInThirdPerson">
@ -8,7 +9,7 @@
<Czech>Zobrazit efekt brýlí v třetí osobě</Czech>
<French>Effets de lunettes à la 3ème personne</French>
<Russian>Отображать эффект очков от третьего лица</Russian>
<Hungarian>Szemüveg effekt mutatása külső nézetből</Hungarian>
<Hungarian>Szemüveg-effekt mutatása külső nézetből</Hungarian>
<Polish>Włącz efekty gogli w trzeciej osobie</Polish>
<Portuguese>Mostrar efeitos de óculos em Terceira Pessoa</Portuguese>
<Italian>Attiva l'effetto degli occhiali in terza persona</Italian>
@ -20,7 +21,7 @@
<Czech>Vyčistit brýle</Czech>
<French>Essuyer les lunettes</French>
<Russian>Протереть очки</Russian>
<Hungarian>Szemüveg törlése</Hungarian>
<Hungarian>Szemüveg letörlése</Hungarian>
<Polish>Wytrzyj gogle</Polish>
<Portuguese>Limpar Óculos</Portuguese>
<Italian>Pulisci gli occhiali</Italian>

View File

@ -15,63 +15,74 @@
*/
#include "script_component.hpp"
private ["_affected", "_strength", "_posGrenade", "_posUnit", "_angleGrenade", "_angleView", "_angleDiff", "_light"];
private ["_affected", "_strength", "_posGrenade", "_posUnit", "_angleGrenade", "_angleView", "_angleDiff", "_light", "_losCount"];
PARAMS_1(_grenade);
_affected = _grenade nearEntities ["CAManBase", 50];
_affected = _grenade nearEntities ["CAManBase", 20];
{
if ((local _x) && {alive _x}) then {
_strength = 1 - ((_x distance _grenade) min 15) / 15;
TRACE_3("FlashBangEffect Start",_x,(_x distance _grenade),_strength);
if (_x != ACE_player) then {
//must be AI
_x disableAI "MOVE";
_x disableAI "ANIM";
_x disableAI "AUTOTARGET";
_x disableAI "TARGET";
_x disableAI "FSM";
[_x, true] call EFUNC(common,disableAI);
_x setSkill ((skill _x) / 50);
[{
PARAMS_1(_unit);
_unit enableAI "MOVE";
_unit enableAI "ANIM";
_unit enableAI "AUTOTARGET";
_unit enableAI "TARGET";
_unit enableAI "FSM";
//Make sure we don't enable AI for unconscious units
if (!(_unit getVariable ["ace_isunconscious", false])) then {
[_unit, false] call EFUNC(common,disableAI);
};
_unit setSkill (skill _unit * 50);
}, [_x], (7 * _strength), 0.1] call EFUNC(common,waitAndExecute); //0.1 precision is fine for AI
} else {
//Do effects for player
// is there line of sight to the grenade?
_posGrenade = getPosASL _grenade;
_eyePos = eyePos ACE_player; //PositionASL
_posGrenade set [2, (_posGrenade select 2) + 0.2]; // compensate for grenade glitching into ground
if (lineIntersects [_posGrenade, getPosASL _x, _grenade, _x]) then {
_losCount = 0;
//Check for line of sight (check 4 points in case grenade is stuck in an object or underground)
{
if (!lineIntersects [(_posGrenade vectorAdd _x), _eyePos, _grenade, ACE_player]) then {
_losCount = _losCount + 1;
};
} forEach [[0,0,0], [0,0,0.2], [0.1, 0.1, 0.1], [-0.1, -0.1, 0.1]];
TRACE_1("Line of sight count (out of 4)",_losCount);
if (_losCount == 0) then {
_strength = _strength / 10;
};
// beeeeeeeeeeeeeeeeeeeeeeeeeeeeep
if (isClass (configFile >> "CfgPatches" >> "ACE_Hearing") and _strength > 0) then {
//Add ace_hearing ear ringing sound effect
if ((isClass (configFile >> "CfgPatches" >> "ACE_Hearing")) && {_strength > 0}) then {
[_x, 0.5 + (_strength / 2)] call EFUNC(hearing,earRinging);
};
// account for people looking away by slightly
// reducing the effect for visual effects.
_posUnit = getPos _x;
_posGrenade = getPos _grenade;
_angleGrenade = ((_posGrenade select 0) - (_posUnit select 0)) atan2 ((_posGrenade select 1) - (_posUnit select 1));
_angleGrenade = (_angleGrenade + 360) % 360;
_eyeDir = (positionCameraToWorld [0,0,1] vectorDiff positionCameraToWorld [0,0,0]);
_dirToUnitVector = _eyePos vectorFromTo _posGrenade;
_angleDiff = acos (_eyeDir vectorDotProduct _dirToUnitVector);
_angleView = (eyeDirection ACE_player select 0) atan2 (eyeDirection ACE_player select 1);
_angleView = (_angleView + 360) % 360;
//From 0-45deg, full effect
if (_angleDiff > 45) then {
_strength = _strength - _strength * ((_angleDiff - 45) / 120);
};
_angleDiff = 180 - abs (abs (_angleGrenade - _angleView) - 180);
_angleDiff = ((_angleDiff - 45) max 0);
TRACE_1("Final strength for player",_strength);
_strength = _strength - _strength * (_angleDiff / 135);
//Add ace_medical pain effect:
if ((isClass (configFile >> "CfgPatches" >> "ACE_Medical")) && {_strength > 0}) then {
[ACE_player, (_strength / 2)] call EFUNC(medical,adjustPainLevel);
};
// create flash to illuminate environment
_light = "#lightpoint" createVehicleLocal (getPos _grenade);

View File

@ -10,7 +10,7 @@
<Czech>Změnit styl hodu granátu</Czech>
<French>Changer type de lancer de grenade</French>
<Russian>Сменить режим броска гранаты</Russian>
<Hungarian>Gránátdobás mód váltás</Hungarian>
<Hungarian>Gránátkezelési mód váltása</Hungarian>
<Italian>Cambia tipo di granata</Italian>
<Portuguese>Alternar Modo de Granada</Portuguese>
</Key>
@ -58,7 +58,7 @@
<Czech>Po zemi</Czech>
<French>Lancer Roulé</French>
<Russian>Катить гранату</Russian>
<Hungarian>Gurítás</Hungarian>
<Hungarian>Gránát gurítása</Hungarian>
<Italian>Fai rotolare la granata</Italian>
<Portuguese>Rolar Granada</Portuguese>
</Key>
@ -70,7 +70,7 @@
<Czech>Upustit granát</Czech>
<French>Lâcher la grenade</French>
<Russian>Бросить себе под ноги</Russian>
<Hungarian>Ejtés</Hungarian>
<Hungarian>Gránát ejtése</Hungarian>
<Italian>Lascia la granata</Italian>
<Portuguese>Largar Granada</Portuguese>
</Key>
@ -82,7 +82,7 @@
<Polish>Granat hukowy M84</Polish>
<Czech>Omračující granát M84</Czech>
<Russian>M84 светозвуковая граната</Russian>
<Hungarian>M84 Villanógránát</Hungarian>
<Hungarian>M84 Kábítógránát</Hungarian>
<Italian>Granata Stordente M84</Italian>
<Portuguese>M84 granada de atordoamento</Portuguese>
</Key>
@ -94,7 +94,7 @@
<Polish>Znany też jako flashbang. Powoduje natychmiastową tymczasową ślepotę, głuchotę, dzwonienie w uszach i inne zaburzenia ucha wewnętrznego.</Polish>
<Czech>Omračující granát je taktická nesmrtící zbraň používaná při záchraně rukojmí a zvládání davu.</Czech>
<Russian>XM84 (M84) - граната нелетального действия, и предназначена для отвлечения и временного вывода из строя, либо дезориентации противника. Основное использование нашла при освобождении заложников, захвате преступников и террористов, а также проведении диверсионных миссий.</Russian>
<Hungarian>Eldobás után felrobban és éles hang, valamint fényhatással zavarja össze a környezetében tartózkodókat.</Hungarian>
<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>
</Key>
@ -102,7 +102,7 @@
<English>M127A1 Hand Held Signal (White)</English>
<German>M127A1 Leuchtmittel (Weiß)</German>
<Czech>Světlice M127A1 (Bílá)</Czech>
<Hungarian>M127A1 Jelzőrakéta (Fehér)</Hungarian>
<Hungarian>M127A1 Kézi Jelzőrakéta (Fehér)</Hungarian>
<Italian>M127A1 Bengala (Bianco)</Italian>
<Polish>Flara ręczna sygnałowa M127A1 (biała)</Polish>
<Portuguese>M127A1 Sinalizador (Branco)</Portuguese>
@ -114,7 +114,7 @@
<English>M127A1 Hand Held Signal (Red)</English>
<German>M127A1 Leuchtmittel (Rot)</German>
<Czech>Světlice M127A1 (Červená)</Czech>
<Hungarian>M127A1 Jelzőrakéta (Piros)</Hungarian>
<Hungarian>M127A1 Kézi Jelzőrakéta (Piros)</Hungarian>
<Italian>M127A1 Bengala (Rosso)</Italian>
<Polish>Flara ręczna sygnałowa M127A1 (czerwona)</Polish>
<Portuguese>M127A1 Sinalizador (Vermelho)</Portuguese>
@ -126,7 +126,7 @@
<English>M127A1 Hand Held Signal (Green)</English>
<German>M127A1 Leuchtmittel (Grün)</German>
<Czech>Světlice M127A1 (Zelená)</Czech>
<Hungarian>M127A1 Jelzőrakéta (Zöld)</Hungarian>
<Hungarian>M127A1 Kézi Jelzőrakéta (Zöld)</Hungarian>
<Italian>M127A1 Bengala (Verde)</Italian>
<Polish>Flara ręczna sygnałowa M127A1 (zielona)</Polish>
<Portuguese>M127A1 Sinalizador (Verde)</Portuguese>
@ -138,7 +138,7 @@
<English>M127A1 Hand Held Signal (Yellow)</English>
<German>M127A1 Leuchtmittel (Gelb)</German>
<Czech>Světlice M127A1 (Žlutá)</Czech>
<Hungarian>M127A1 Jelzőrakéta (Sárga)</Hungarian>
<Hungarian>M127A1 Kézi Jelzőrakéta (Sárga)</Hungarian>
<Italian>M127A1 Bengala (Giallo)</Italian>
<Polish>Flara ręczna sygnałowa M127A1 (żółta)</Polish>
<Portuguese>M127A1 Sinalizador (Amarelo)</Portuguese>
@ -150,7 +150,7 @@
<English>White Hand Flare</English>
<German>Weiße Leuchtkugel, wird wie eine Granate geworfen.</German>
<Czech>Světlice (Bílá)</Czech>
<Hungarian>Jelzőrakéta (Fehér)</Hungarian>
<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>
@ -162,7 +162,7 @@
<English>Red Hand Flare</English>
<German>Rote Leuchtkugel, wird wie eine Granate geworfen.</German>
<Czech>Světlice (Červená)</Czech>
<Hungarian>Jelzőrakéta (Piros)</Hungarian>
<Hungarian>Kézi jelzőrakéta, Piros színű</Hungarian>
<Italian>Bengala (Rosso)</Italian>
<Polish>Flara ręczna (czerwona)</Polish>
<Portuguese>Sinalizador (Vermelho)</Portuguese>
@ -174,7 +174,7 @@
<English>Green Hand Flare</English>
<German>Grüne Leuchtkugel, wird wie eine Granate geworfen.</German>
<Czech>Světlice (Zelená)</Czech>
<Hungarian>Jelzőrakéta (Zöld)</Hungarian>
<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>
@ -186,7 +186,7 @@
<English>Yellow Hand Flare</English>
<German>Gelbe Leuchtkugel, wird wie eine Granate geworfen.</German>
<Czech>Světlice (Žlutá)</Czech>
<Hungarian>Jelzőrakéta (Sárga)</Hungarian>
<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>

View File

@ -38,7 +38,7 @@ class ACE_Settings {
class GVAR(DisableEarRinging) {
value = 0;
typeName = "BOOL";
isClientSetable = 1;
isClientSettable = 1;
displayName = "$STR_ACE_Hearing_DisableEarRinging";
};
};

View File

@ -31,7 +31,7 @@ _muzzle = _this select 4;
_mode = _this select 5;
_ammo = _this select 6;
if (_weapon in ["Throw", "Put"]) exitWith {};
if (toLower _weapon in ["throw", "put"]) exitWith {};
if (_unit != vehicle _unit && {!([_unit] call EFUNC(common,isTurnedOut))}) exitWith {};
_silencer = switch (_weapon) do {

View File

@ -56,7 +56,7 @@ if (!(missionNameSpace getVariable [QGVAR(disableVolumeUpdate), false])) then {
0.1 fadeSound _volume;
0.1 fadeSpeech _volume;
ACE_player setVariable ["tf_globalVolume", _volume];
if (!isNil "acre_api_fnc_setGlobalVolume") then {[_volume] call acre_api_fnc_setGlobalVolume;};
if (!isNil "acre_api_fnc_setGlobalVolume") then {[_volume^(0.33)] call acre_api_fnc_setGlobalVolume;};
};
//hintSilent format ["GVAR(currentDeafness), _Volume = %1, %2", GVAR(currentDeafness), _volume];

View File

@ -15,7 +15,7 @@
</Key>
<Key ID="STR_ACE_Hearing_EarPlugs_Description">
<English>Protective Ear Plugs allow the wearer to be near loud weaponry without damage to his hearing.</English>
<German>Schützende Ohrenstöpsel, die es dem Träger ermöglichen, sich in der Nähe lauter Waffen aufzuhalten.</German>
<German>Schützende Ohrenstöpsel, die es dem Träger ermöglichen, sich in der Nähe lauter Waffen aufzuhalten ohne Gehörschäden davonzutragen..</German>
<Spanish>Los tapones para los oídos permiten al usuario operar armamento ruidoso sin sufrir pérdida de audición.</Spanish>
<Polish>Stopery do uszu umożliwiają użytkownikowi przebywać w pobliżu głośnej broni bez poniesienia konsekwencji jaką jest utrata słuchu.</Polish>
<Czech>Ochranné špunty umožňují uživateli, aby neutrpěl zranění jeho sluchu v blízkosti hlasitých zbraní.</Czech>
@ -27,7 +27,7 @@
</Key>
<Key ID="STR_ACE_Hearing_EarPlugs_On">
<English>Earplugs in</English>
<German>Ohrenstöpsel drinnen</German>
<German>Ohrenstöpsel rein</German>
<Spanish>Poner tapones</Spanish>
<Polish>Włóż stopery</Polish>
<Czech>Dát špunty do uší</Czech>
@ -81,7 +81,7 @@
<Czech>Nemáš žádné špunty</Czech>
<Russian>У вас нет беруш</Russian>
<French>Vous n'avez pas de Bouchons Anti-Bruits</French>
<Hungarian>Nincs füldugód</Hungarian>
<Hungarian>Nincsen füldugód</Hungarian>
<Portuguese>Você não possui protetores auriculares</Portuguese>
<Italian>Non hai i tappi auricolari</Italian>
</Key>
@ -99,12 +99,14 @@
</Key>
<Key ID="STR_ACE_Hearing_DisableEarRinging">
<English>Disable ear ringing</English>
<French>Désactiver les tintements d'oreille</French>
<French>Désactiver le bourdonnement</French>
<Spanish>Desactivar zumbido de oídos</Spanish>
<Russian>Отключить эффект баротравмы</Russian>
<German>Knalltrauma deaktivieren</German>
<Czech>Vypnout pískání v uších</Czech>
<Polish>Wyłącz dzwonienie w uszach</Polish>
<Hungarian>Fülcsengés letiltása</Hungarian>
<Italian>Disabilita il ronzio</Italian>
</Key>
</Package>
</Project>

View File

@ -50,3 +50,6 @@ addMissionEventHandler ["Draw3D", DFUNC(render)];
GVAR(actionSelected) = false;
[] call FUNC(keyUp);
}] call EFUNC(common,addEventhandler);
// disable firing while the interact menu is is is opened
["playerChanged", {_this call FUNC(handlePlayerChanged)}] call EFUNC(common,addEventHandler);

View File

@ -9,6 +9,7 @@ PREP(compileMenuSelfAction);
PREP(collectActiveActionTree);
PREP(createAction);
PREP(findActionNode);
PREP(handlePlayerChanged);
PREP(isSubPath);
PREP(keyDown);
PREP(keyUp);

View File

@ -20,7 +20,13 @@ class ACE_Settings {
class GVAR(AlwaysUseCursorSelfInteraction) {
value = 0;
typeName = "BOOL";
isClientSetable = 1;
isClientSettable = 1;
displayName = "$STR_ACE_Interact_Menu_AlwaysUseCursorSelfInteraction";
};
class GVAR(UseListMenu) {
value = 0;
typeName = "BOOL";
isClientSettable = 1;
displayName = "$STR_ACE_Interact_Menu_UseListMenu";
};
};

View File

@ -38,10 +38,17 @@ _recurseFnc = {
_distance = getNumber (_entryCfg >> "distance");
_icon = getText (_entryCfg >> "icon");
_statement = compile (getText (_entryCfg >> "statement"));
_selection = "";
if (isArray ( _entryCfg >> "selection" )) then {
_selection = getArray ( _entryCfg >> "selection" )
} else {
_selection = getText (_entryCfg >> "selection");
if (_selection == "") then {
_selection = [0,0,0];
};
};
_condition = getText (_entryCfg >> "condition");
if (_condition == "") then {_condition = "true"};

View File

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

View File

@ -0,0 +1,27 @@
/*
* Author: commy2
* Disables firing while the menu is opened. Called from playerChanged eh.
*
* Argument:
* 0: New unit to add the addAction eh <OBJECT>
* 1: Old unit to remove the addAction eh <STRING>
*
* Return value:
* None
*/
#include "script_component.hpp"
EXPLODE_2_PVT(_this,_newUnit,_oldUnit);
// add to new unit
private "_ehid";
_ehid = [_newUnit, "DefaultAction", {EGVAR(interact_menu,openedMenuType) >= 0}, {}] call EFUNC(common,addActionEventHandler);
_newUnit setVariable [QGVAR(AAEHID), _ehid];
// remove from old unit
_ehid = _oldUnit getVariable [QGVAR(AAEHID), -1];
[_oldUnit, "DefaultAction", _ehid] call EFUNC(common,removeActionEventHandler);
_oldUnit setVariable [QGVAR(AAEHID), -1];

View File

@ -14,19 +14,24 @@
GVAR(currentOptions) = [];
private ["_player","_numInteractObjects","_numInteractions","_actionsVarName","_classActions","_objectActions","_target","_player","_action","_actionData","_active"];
private ["_player","_numInteractObjects","_numInteractions","_actionsVarName","_classActions","_objectActions","_target","_player","_action","_actionData","_active","_cameraPos","_cameraDir"];
_player = ACE_player;
_fnc_renderNearbyActions = {
// Render all nearby interaction menus
#define MAXINTERACTOBJECTS 3
_cameraPos = (positionCameraToWorld [0, 0, 0]) call EFUNC(common,positionToASL);
_cameraDir = ((positionCameraToWorld [0, 0, 1]) call EFUNC(common,positionToASL)) vectorDiff _cameraPos;
_numInteractObjects = 0;
_nearestObjects = nearestObjects [ACE_player, ["All"], 15];
_nearestObjects = nearestObjects [((getPosASL ACE_player) vectorAdd (_cameraDir vectorMultiply 5)) call EFUNC(common,ASLToPosition), ["All"], 8];
{
_target = _x;
// Quick oclussion test. Skip objects more than 1 m behind the camera plane
_lambda = ((getPosASL _x) vectorDiff _cameraPos) vectorDotProduct _cameraDir;
if (_lambda > -1) then {
_numInteractions = 0;
// Prevent interacting with yourself or your own vehicle
if (_target != ACE_player && {_target != vehicle ACE_player}) then {
@ -60,6 +65,7 @@ _fnc_renderNearbyActions = {
_numInteractObjects = _numInteractObjects + 1;
};
};
};
if (_numInteractObjects >= MAXINTERACTOBJECTS) exitWith {};
} forEach _nearestObjects;

View File

@ -35,8 +35,18 @@ GVAR(iconCount) = GVAR(iconCount) + 1;
if(_icon == "") then {
_icon = DEFAULT_ICON;
};
_text = format ["<img image='%1' color='%2' align='center'/><br/><t color='%3' size='0.80' align='center' shadow='1' shadowColor='#000000' shadowOffset='0.07'>%4</t>", _icon, _color, _color, _text];
_text = if (GVAR(UseListMenu)) then {
format ["<img image='%1' color='%2' align='left'/><t color='%3' size='0.80' shadow='1' shadowColor='#000000' shadowOffset='0.07'>%4</t>", _icon, _color, _color, _text]
} else {
format ["<img image='%1' color='%2' align='center'/><br/><t color='%3' size='0.80' align='center' shadow='1' shadowColor='#000000' shadowOffset='0.07'>%4</t>", _icon, _color, _color, "ace_breakLine" callExtension _text];
};
_ctrl ctrlSetStructuredText (parseText _text);
_ctrl ctrlSetPosition [(_sPos select 0)-(0.125*SafeZoneW), (_sPos select 1)-(0.0095*SafeZoneW), 0.25*SafeZoneW, 0.1*SafeZoneW];
//_ctrl ctrlSetBackgroundColor [1, 0, 0, 0.1];
_text = if (GVAR(UseListMenu)) then {
_ctrl ctrlSetPosition [(_sPos select 0)-(0.0095*SafeZoneW), (_sPos select 1)-(0.0095*SafeZoneW), 0.20*SafeZoneW, 0.035*SafeZoneW];
} else {
_ctrl ctrlSetPosition [(_sPos select 0)-(0.0750*SafeZoneW), (_sPos select 1)-(0.0095*SafeZoneW), 0.15*SafeZoneW, 0.100*SafeZoneW];
};
//_ctrl ctrlSetBackgroundColor [0, 1, 0, 0.1];
_ctrl ctrlCommit 0;

View File

@ -92,7 +92,12 @@ if (_numChildren == 1) then {
};
// Scale menu based on the amount of children
_scale = 0.17 * (((0.8 * (0.46 / sin (0.5 * _angleInterval))) min 1.1) max 0.5);
_scale = if (GVAR(UseListMenu)) then {
0.17
} else {
0.17 * (((0.8 * (0.46 / sin (0.5 * _angleInterval))) min 1.1) max 0.5)
};
// Animate menu scale
if (_menuInSelectedPath && (_menuDepth == count _path)) then {
_scale = _scale * (0.3 + 0.7 * (((diag_tickTime - GVAR(expandedTime)) * 8) min 1));
@ -106,8 +111,13 @@ _angle = _centerAngle - _angleSpan / 2;
{
//BEGIN_COUNTER(children);
private ["_offset","_newPos"];
_newPos = [(_sPos select 0) -_scale * cos _angle,
_newPos = if (GVAR(UseListMenu)) then {
[(_sPos select 0) + _scale * 1.10,
(_sPos select 1) + _scale * 0.30 * 4/3 * (_foreachindex - _numChildren/2 + 0.5)];
} else {
[(_sPos select 0) -_scale * cos _angle,
(_sPos select 1) +_scale * (sin _angle) * 4/3];
};
//drawLine3D [_pos, _newPos, [1,0,0,0.8]];
//END_COUNTER(children);

View File

@ -24,7 +24,12 @@ private "_ctrl";
_ctrl = GVAR(iconCtrls) select GVAR(iconCount);
GVAR(iconCount) = GVAR(iconCount) + 1;
_ctrl ctrlSetStructuredText (parseText format ["<img image='%1' color='#FF0000' size='1.6' align='center'/>", _icon]);
_ctrl ctrlSetPosition [(_sPos select 0)-(0.05*SafeZoneW), (_sPos select 1)-(0.014*SafeZoneW), 0.1*SafeZoneW, 0.035*SafeZoneW];
if (GVAR(UseListMenu)) then {
_ctrl ctrlSetStructuredText (parseText format ["<img image='%1' color='#FF0000' size='1.6'/>", _icon]);
_ctrl ctrlSetPosition [(_sPos select 0)-(0.014*SafeZoneW), (_sPos select 1)-(0.014*SafeZoneW), 0.05*SafeZoneW, 0.035*SafeZoneW];
} else {
_ctrl ctrlSetStructuredText (parseText format ["<img image='%1' color='#FF0000' size='1.6' align='center'/>", _icon]);
_ctrl ctrlSetPosition [(_sPos select 0)-(0.050*SafeZoneW), (_sPos select 1)-(0.014*SafeZoneW), 0.1*SafeZoneW, 0.035*SafeZoneW];
};
//_ctrl ctrlSetBackgroundColor [1, 0, 0, 0.1];
_ctrl ctrlCommit 0;

View File

@ -10,3 +10,5 @@
#endif
#include "\z\ace\addons\main\script_macros.hpp"
#define ENABLE_PERFORMANCE_COUNTERS

View File

@ -9,6 +9,15 @@
<Czech>Zobrazit kurzor v menu pro vlastní interakci</Czech>
<Polish>Zawsze wyświetlaj kursor dla własnej interakcji</Polish>
<French>Toujours afficher le curseur pour les interactions sur soi-même</French>
<Hungarian>Mindig legyen a saját cselekvés kurzorja látható</Hungarian>
<Italian>Mostra sempre il cursore per le auto interazioni</Italian>
</Key>
<Key ID="STR_ACE_Interact_Menu_UseListMenu">
<English>Display interaction menus as lists</English>
<Spanish>Mostrar los menus de interacción como listas</Spanish>
<Russian>Показывать меню взаимодействия в виде списка</Russian>
<French>Afficher le menu d'interaction au format liste</French>
<Italian>Mostra il menù di interazione come lista</Italian>
</Key>
<Key ID="STR_ACE_Interact_Menu_InteractKey">
<English>Interact Key</English>
@ -18,6 +27,8 @@
<Czech>Klávesa pro interakci</Czech>
<Polish>Klawisz interakcji</Polish>
<French>Touche d'interaction</French>
<Hungarian>Cselekvő gomb</Hungarian>
<Italian>Tasto interazione</Italian>
</Key>
<Key ID="STR_ACE_Interact_Menu_SelfInteractKey">
<English>Self Interaction Key</English>
@ -26,7 +37,9 @@
<Russian>Клавиша взаимодействия (с собой)</Russian>
<Czech>Klávesa pro vlastní interakci</Czech>
<Polish>Klawisz własnej interakcji</Polish>
<French>Touche d'Interaction sur soi-même</French>
<French>Touche d'interaction personnelle</French>
<Hungarian>Saját cselekvő gomb</Hungarian>
<Italian>Tasto per auto interazioni</Italian>
</Key>
<Key ID="STR_ACE_Interact_Menu_SelfActionsRoot">
<English>Self Actions</English>
@ -35,7 +48,9 @@
<Russian>Действия с собой</Russian>
<Czech>Vlastní akce</Czech>
<Polish>Własne akcje</Polish>
<French>Actions sur soi-même</French>
<French>Interaction personnelle</French>
<Hungarian>Saját cselekvések</Hungarian>
<Italian>Auto interazioni</Italian>
</Key>
<Key ID="STR_ACE_Interact_Menu_VehicleActionsRoot">
<English>Vehicle Actions</English>
@ -44,7 +59,9 @@
<Russian>Действия на транспорте</Russian>
<Czech>Interakce s vozidly</Czech>
<Polish>Akcje pojazdu</Polish>
<French>Actions sur les véhicules</French>
<French>Interaction véhicule</French>
<Hungarian>Járműves cselekvések</Hungarian>
<Italian>Interazioni con veicoli</Italian>
</Key>
</Package>
</Project>

View File

@ -8,30 +8,42 @@
<Czech>Interakce</Czech>
<Polish>Interakcje</Polish>
<French>Interactions</French>
<Russian>Взаимодействия</Russian>
<Hungarian>Cselekvések</Hungarian>
<Italian>Interazioni</Italian>
</Key>
<Key ID="STR_ACE_Interaction_Torso">
<English>Torso</English>
<French>Torse</French>
<German>Torso</German>
<Spanish>Torso</Spanish>
<Czech>Trup</Czech>
<Polish>Tors</Polish>
<French>Torse</French>
<Russian>Торс</Russian>
<Hungarian>Testtörzs</Hungarian>
<Italian>Torso</Italian>
</Key>
<Key ID="STR_ACE_Interaction_Head">
<English>Head</English>
<French>Tête</French>
<German>Kopf</German>
<Spanish>Cabeza</Spanish>
<Czech>Hlava</Czech>
<Polish>Głowa</Polish>
<French>Tête</French>
<Russian>Голова</Russian>
<Hungarian>Fej</Hungarian>
<Italian>Testa</Italian>
</Key>
<Key ID="STR_ACE_Interaction_ArmLeft">
<English>Left Arm</English>
<French>Bras gauche</French>
<German>Linker Arm</German>
<Spanish>Brazo izquierdo</Spanish>
<Czech>Levá paže</Czech>
<Polish>Lewe ramię</Polish>
<French>Bras Gauche</French>
<Russian>Левая рука</Russian>
<Hungarian>Bal kar</Hungarian>
<Italian>Braccio sinistro</Italian>
</Key>
<Key ID="STR_ACE_Interaction_ArmRight">
<English>Right Arm</English>
@ -39,7 +51,10 @@
<Spanish>Brazo derecho</Spanish>
<Czech>Pravá paže</Czech>
<Polish>Prawe ramię</Polish>
<French>Bras Droit</French>
<French>Bras droit</French>
<Russian>Правая рука</Russian>
<Hungarian>Jobb kar</Hungarian>
<Italian>Braccio destro</Italian>
</Key>
<Key ID="STR_ACE_Interaction_LegLeft">
<English>Left Leg</English>
@ -47,7 +62,10 @@
<Spanish>Pierna izquierda</Spanish>
<Czech>Levá noha</Czech>
<Polish>Lewa noga</Polish>
<French>Jambe Gauche</French>
<French>Jambe gauche</French>
<Russian>Левая нога</Russian>
<Hungarian>Bal láb</Hungarian>
<Italian>Gamba sinistra</Italian>
</Key>
<Key ID="STR_ACE_Interaction_LegRight">
<English>Right Leg</English>
@ -55,15 +73,21 @@
<Spanish>Pierna derecha</Spanish>
<Czech>Pravá hona</Czech>
<Polish>Prawa noga</Polish>
<French>Jambe Droite</French>
<French>Jambe droite</French>
<Russian>Правая нога</Russian>
<Hungarian>Jobb láb</Hungarian>
<Italian>Gamba destra</Italian>
</Key>
<Key ID="STR_ACE_Interaction_Weapon">
<English>Weapon</English>
<French>Arme</French>
<German>Waffe</German>
<Spanish>Arma</Spanish>
<Czech>Zbraň</Czech>
<Polish>Broń</Polish>
<French>Arme</French>
<Russian>Оружие</Russian>
<Hungarian>Fegyver</Hungarian>
<Italian>Arma</Italian>
</Key>
<Key ID="STR_ACE_Interaction_InteractionMenu">
<English>Interaction Menu</English>
@ -73,9 +97,9 @@
<Czech>Menu interakce</Czech>
<French>Menu d'interaction</French>
<Russian>Меню взаимодействия</Russian>
<Hungarian>Interakció</Hungarian>
<Hungarian>Cselekvő menü</Hungarian>
<Portuguese>Menu de Interação</Portuguese>
<Italian>Menù Interattivo</Italian>
<Italian>Menù interazione</Italian>
</Key>
<Key ID="STR_ACE_Interaction_InteractionMenuSelf">
<English>Interaction Menu (Self)</English>
@ -85,9 +109,9 @@
<Czech>Menu interakce (vlastní)</Czech>
<French>Menu d'interaction (Perso)</French>
<Russian>Меню взаимодействия (с собой)</Russian>
<Hungarian>Interakció (saját) </Hungarian>
<Hungarian>Cselekvő menü (saját) </Hungarian>
<Portuguese>Menu de Interação (Individual)</Portuguese>
<Italian>Menù Interattivo (Individuale)</Italian>
<Italian>Menù interazione (Individuale)</Italian>
</Key>
<Key ID="STR_ACE_Interaction_OpenDoor">
<English>Open / Close Door</English>
@ -97,7 +121,7 @@
<Czech>Otevřít / Zavřít dveře</Czech>
<French>Ouvrir / Fermer Portes</French>
<Russian>Открыть / Закрыть двери</Russian>
<Hungarian>Ajtó nyitás / zárás</Hungarian>
<Hungarian>Ajtó nyitása / zárása</Hungarian>
<Portuguese>Abrir / Fechar Porta</Portuguese>
<Italian>Apri / Chiudi la porta</Italian>
</Key>
@ -121,7 +145,7 @@
<Italian>Sblocca la porta</Italian>
<Russian>Разблокировать дверь</Russian>
<Portuguese>Destrancar Porta</Portuguese>
<Hungarian> Zár kinyitása</Hungarian>
<Hungarian>Zár kinyitása</Hungarian>
<Polish>Odblokuj drzwi</Polish>
<Czech>Odemknout dveře</Czech>
</Key>
@ -157,7 +181,7 @@
<Czech>Přidat se do skupiny</Czech>
<French>Rejoindre Groupe</French>
<Russian>Вступить в группу</Russian>
<Hungarian>Csatlakozás</Hungarian>
<Hungarian>Csatlakozás a csoporthoz</Hungarian>
<Portuguese>Unir-se ao grupo</Portuguese>
<Italian>Unisciti alla squadra</Italian>
</Key>
@ -179,7 +203,7 @@
<Spanish>Asumir el liderazgo</Spanish>
<Polish>Przejmij dowodzenie</Polish>
<Czech>Stát se velitelem</Czech>
<French>Devenir Leader</French>
<French>Devenir Chef de groupe</French>
<Russian>Стать лидером</Russian>
<Hungarian>Vezetés átvétele</Hungarian>
<Portuguese>Tornar-se Líder</Portuguese>
@ -195,7 +219,7 @@
<Russian>ТАНЦЕВАТЬ!</Russian>
<Hungarian>TÁNC!</Hungarian>
<Portuguese>DANCE!</Portuguese>
<Italian>Balla!</Italian>
<Italian>DANZA!</Italian>
</Key>
<Key ID="STR_ACE_Interaction_StopDancing">
<English>Stop Dancing</English>
@ -349,7 +373,7 @@
<Czech>Ahoj</Czech>
<French>Salut</French>
<Russian>Привет</Russian>
<Hungarian>Szeva</Hungarian>
<Hungarian>Helló</Hungarian>
<Portuguese>Olá</Portuguese>
<Italian>Ciao</Italian>
</Key>
@ -404,24 +428,24 @@
<Key ID="STR_ACE_Interaction_YouWereTappedRight">
<English>You were tapped on the RIGHT shoulder</English>
<Spanish>Te tocaron el hombro DERECHO</Spanish>
<German>Dir wurde auf die Rechte Schulter geklopft</German>
<French>On te tape sur l'épaule</French>
<German>Dir wurde auf die rechte Schulter geklopft</German>
<French>On te tape sur l'épaule droite</French>
<Polish>Zostałeś klepnięty po ramieniu</Polish>
<Hungarian>Vállonveregettek</Hungarian>
<Hungarian>Megveregették a JOBB válladat.</Hungarian>
<Czech>Někdo tě poklepal na PRAVÉ rameno</Czech>
<Russian>Вас похлопали по плечу</Russian>
<Russian>Вас похлопали по ПРАВОМУ плечу</Russian>
<Portuguese>Você foi tocado no ombro</Portuguese>
<Italian>Ti è stato dato un colpetto sulla spalla</Italian>
</Key>
<Key ID="STR_ACE_Interaction_YouWereTappedLeft">
<English>You were tapped on the LEFT shoulder.</English>
<Spanish>Te tocaron el hombro IZQUIERDO.</Spanish>
<German>Dir wurde auf die Linke Schulter geklopft</German>
<French>On te tape sur l'épaule.</French>
<German>Dir wurde auf die linke Schulter geklopft</German>
<French>On te tape sur l'épaule gauche</French>
<Polish>Zostałeś klepnięty po ramieniu</Polish>
<Hungarian>Vállonveregettek</Hungarian>
<Hungarian>Megveregették a BAL válladat.</Hungarian>
<Czech>Někdo tě poklepal na LEVÉ rameno</Czech>
<Russian>Вас похлопали по плечу</Russian>
<Russian>Вас похлопали по ЛЕВОМУ плечу</Russian>
<Portuguese>Você foi tocado no ombro.</Portuguese>
<Italian>Ti è stato dato un colpetto sulla spalla</Italian>
</Key>
@ -483,7 +507,7 @@
<Russian>Управление&lt;br/&gt;группой</Russian>
<Portuguese>Gerenciamento&lt;br/&gt;de Equipe</Portuguese>
<Italian>Organizzazione&lt;br/&gt;Squadra</Italian>
<Hungarian>Csapat&lt;br/&gt;kezelés</Hungarian>
<Hungarian>Csapat&lt;br/&gt;kezelése</Hungarian>
</Key>
<Key ID="STR_ACE_Interaction_TeamRED">
<English>Red</English>
@ -549,7 +573,7 @@
<English>Join Team&lt;br/&gt;Green</English>
<German>Team Grün&lt;br/&gt;beitreten</German>
<Spanish>Unirse al&lt;br/&gt;equipo verde</Spanish>
<French>Rejoindre&lt;br/&gt;Verte</French>
<French>Rejoindre&lt;br/&gt;Vert</French>
<Polish>Dołącz do&lt;br/&gt;drużyny zielonej</Polish>
<Czech>Připojit do&lt;br/&gt;Zeleného týmu</Czech>
<Russian>Присоединиться&lt;br/&gt;к зеленой группе</Russian>
@ -561,7 +585,7 @@
<English>Join Team&lt;br/&gt;Blue</English>
<German>Team Blau&lt;br/&gt;beitreten</German>
<Spanish>Unirse al&lt;br/&gt;equipo azul</Spanish>
<French>Rejoindre&lt;br/&gt;Bleue</French>
<French>Rejoindre&lt;br/&gt;Bleu</French>
<Polish>Dołącz do&lt;br/&gt;drużyny niebieskiej</Polish>
<Czech>Připojit do&lt;br/&gt;Modrého týmu</Czech>
<Russian>Присоединиться&lt;br/&gt;к синей группе</Russian>
@ -590,7 +614,7 @@
<Czech>Připojil ses do %1 týmu</Czech>
<Russian>Вы присоединились к группе %1</Russian>
<Portuguese>Você uniu-se à Equipe %1</Portuguese>
<Italian>Sei entrato nella Squadra %1</Italian>
<Italian>Sei entrato nel team %1</Italian>
<Hungarian>Csatlakoztál a %1 csapathoz</Hungarian>
</Key>
<Key ID="STR_ACE_Interaction_LeaveTeam">
@ -602,7 +626,7 @@
<Czech>Opustit tým</Czech>
<Russian>Покинуть группу</Russian>
<Portuguese>Deixar Equipe</Portuguese>
<Italian>Lascia la Squadra</Italian>
<Italian>Lascia il team</Italian>
<Hungarian>Csapat elhagyása</Hungarian>
</Key>
<Key ID="STR_ACE_Interaction_LeftTeam">
@ -614,7 +638,7 @@
<Czech>Opustil si tým</Czech>
<Russian>Вы покинули группу</Russian>
<Portuguese>Você deixou a Equipe</Portuguese>
<Italian>Hai lasciato la squadra</Italian>
<Italian>Hai lasciato il team</Italian>
<Hungarian>Elhagytad a csapatot</Hungarian>
</Key>
<Key ID="STR_ACE_Interaction_Pardon">
@ -643,13 +667,13 @@
</Key>
<Key ID="STR_ACE_Interaction_ModifierKey">
<English>Modifier Key</English>
<German>Modifikator</German>
<German>Modifikator-Taste</German>
<Polish>Modyfikator</Polish>
<French>Modifier la touche</French>
<Spanish>Tecla modificadora</Spanish>
<Russian>Клавиша-модификатор</Russian>
<Portuguese>Tecla Modificadora</Portuguese>
<Italian>Modifica Tasto</Italian>
<Italian>Modifica tasto</Italian>
<Hungarian>Módosító billentyű</Hungarian>
<Czech>Modifikátor</Czech>
</Key>
@ -663,16 +687,18 @@
<Hungarian>Hatótávolságon kívül</Hungarian>
<Polish>Poza zasięgiem</Polish>
<Czech>Mimo dosah</Czech>
<Italian>Non in raggio</Italian>
</Key>
<Key ID="STR_ACE_Interaction_Equipment">
<English>Equipment</English>
<German>Ausrüstung</German>
<Spanish>Equipamiento</Spanish>
<French>Équipment</French>
<French>Équipement</French>
<Polish>Ekwipunek</Polish>
<Czech>Vybavení</Czech>
<Hungarian>Felszerelés</Hungarian>
<Russian>Снаряжение</Russian>
<Italian>Equipaggiamento</Italian>
</Key>
<Key ID="STR_ACE_Interaction_Push">
<English>Push</English>
@ -683,6 +709,7 @@
<Czech>Odstrčit</Czech>
<Hungarian>Tolás</Hungarian>
<Russian>Толкать</Russian>
<Italian>Spingi</Italian>
</Key>
<Key ID="STR_ACE_Interaction_Interact">
<English>Interact</English>
@ -692,15 +719,19 @@
<Russian>Взаимодействовать</Russian>
<Polish>Interakcja</Polish>
<Spanish>Interactuar</Spanish>
<Hungarian>Cselekvés</Hungarian>
<Italian>Interagisci</Italian>
</Key>
<Key ID="STR_ACE_Interaction_Passengers">
<English>Passengers</English>
<German>Fahrzeuginsassen</German>
<German>Passagiere</German>
<Spanish>Pasajeros</Spanish>
<Russian>Пассажиры</Russian>
<Czech>Pasažéři</Czech>
<Polish>Pasażerowie</Polish>
<French>Passagers</French>
<Hungarian>Utasok</Hungarian>
<Italian>Passeggeri</Italian>
</Key>
</Package>
</Project>

View File

@ -18,7 +18,7 @@ class ACE_Settings {
class GVAR(inventoryDisplaySize) {
value = 0;
typeName = "SCALAR";
isClientSetable = 1;
isClientSettable = 1;
displayName = "$STR_ACE_Inventory_SettingName";
description = "$STR_ACE_Inventory_SettingDescription";
values[] = {"Normal (Default Size)", "Medium", "Bigger"};

View File

@ -8,7 +8,9 @@
<Russian>Сделать окно инвентаря больше</Russian>
<Czech>Zvětšit zobrazení inventáře</Czech>
<Polish>Powiększ UI ekwipunku</Polish>
<French>Augmente la taille d'affichage de l'inventaire</French>
<French>Agrandir la taille d'affichage de l'inventaire</French>
<Hungarian>Legyen a felszerelés menüje nagyobb</Hungarian>
<Italian>Ingrandisci il menù inventario</Italian>
</Key>
<Key ID="STR_ACE_Inventory_SettingDescription">
<English>Normally inventory display is scaled by UI size. This allows scaling the Inventory UI size up, but doesn't increase font size allowing more rows displayed.</English>
@ -17,7 +19,9 @@
<Russian>Обычно, окно инвентаря зависит от размеров пользовательского интерфейса. Эта настройка позволяет увеличить размер окна инвентаря в пользовательском интерфейсе, не увеличивая размера шрифтов, так что отображется большее количество строк.</Russian>
<Czech>Normálně se velikost invetáře škáluje s velikostí UI. Toto nastavení dovoluje škálování velikost inventáře ale nežvětšuje velikost fontu. To dovoluje zobrazení více řad v inventáři.</Czech>
<Polish>Ekwipunek skalowany jest poprzez rozmiar UI. Ta opcja pozwala powiększyć rozmiar UI ekwipunku, lecz nie zwiększa rozmiaru fontu pozwalając na wyświetlanie większej ilości wierszy.</Polish>
<French>Normalement, l'inventaire est automatiquement mesuré par la taille de l'interface de l'utilisateur. Cette option vous permet d'augmenter la taille d'affichage de l'inventaire, cependant, cette option n'augmente pas la police d'écriture et le nombre de place.</French>
<French>L'inventaire est normalement affiché en fonction de la taille de l'UI. Cette option permet d'agrandir l'affichage de l'inventaire, mais n'a aucun effet sur la taille des polices permettant d'afficher plus de ligne</French>
<Hungarian>Alaphelyzetben a kezelőfelület mérete skálázza a felszerelési menüt. Ez az opció engedélyezi a menü felskálázását, de megtartja a betűméreteket, így növelve a láthatóságot.</Hungarian>
<Italian>Normalmente il menù inventario è scalato in base alle dimensioni interfaccia. Questa opzione di permette di ingrandirlo ulteriormente ma senza aumentare la dimensione del testo.</Italian>
</Key>
</Package>
</Project>

View File

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

View File

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

View File

@ -12,19 +12,9 @@ class RscLine;
class RscInGameUI {
class ACE_RscOptics_javelin {
idd = 300;
controls[] = { "ACE_javelin_elements_group", "CA_Distance", "ACE_Targeting" }; //, "ACE_TargetingConstrains", "ACE_TargetingGate", "ACE_TargetingLines"};
controls[] = { "ACE_javelin_elements_group", "ACE_Targeting" }; //, "ACE_TargetingConstrains", "ACE_TargetingGate", "ACE_TargetingLines"};
onLoad = QUOTE(_this call FUNC(onOpticLoad));
onUnload = "uiNameSpace setVariable ['ACE_RscOptics_javelin',nil];uiNameSpace setVariable ['ACE_RscOptics_javelin_PFH',nil];";
class CA_Distance: RscOpticsValue {
idc = 151;
sizeEx = "0";
colorText[] = {0,0,0,0};
x = 0;
y = 0;
w = 0;
h = 0;
};
onUnload = QUOTE(_this call FUNC(onOpticUnload));
class ACE_javelin_elements_group: RscControlsGroup
{
@ -45,6 +35,16 @@ class RscInGameUI {
height = 0.001;
};
class Controls {
class CA_Distance: RscOpticsValue {
idc = 151;
sizeEx = "0";
colorText[] = {0,0,0,0};
x = 0;
y = 0;
w = 0;
h = 0;
};
class ACE_javelin_Day_mode_off: RscPicture {
idc = 1001;
x = "(SafezoneX+(SafezoneW -SafezoneH*3/4)/2)+ (0.03/4)*3*SafezoneH - SafezoneX";
@ -58,7 +58,7 @@ class RscInGameUI {
idc = 160;
colorText[] = {0.2941,0.8745,0.2157,1};
};
class ACE_javelin_WFOV_mode_off: ACE_javelin_Day_mode_off {
class CA_Javelin_WFOV_mode_off : ACE_javelin_Day_mode_off {
idc = 1004;
x = "(SafezoneX+(SafezoneW -SafezoneH*3/4)/2)+ (0.307/4)*3*SafezoneH - SafezoneX";
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\wfov_co.paa";
@ -81,13 +81,6 @@ class RscInGameUI {
height = 0.001;
};
class Controls {
class ACE_javelin_WFOV_mode: ACE_javelin_WFOV_mode_off {
idc = -1;
y = "0.031*SafezoneH - SafezoneY";
x = "((SafezoneW -SafezoneH*3/4)/2)+ (0.307/4)*3*SafezoneH - SafezoneX";
colorText[] = {0.2941,0.8745,0.2157,1};
};
/*
class StadiaL: RscLine {
x = "0.4899*SafezoneW - SafezoneX";
y = "0.171*SafezoneH - SafezoneY";
@ -130,10 +123,10 @@ class RscInGameUI {
h = 0;
colorText[] = {0.2941,0.8745,0.2157,1};
};
*/
};
};
class ACE_javelin_NFOV_mode_off: ACE_javelin_Day_mode_off {
class CA_Javelin_NFOV_mode_off: ACE_javelin_Day_mode_off {
idc = 1003;
x = "(SafezoneX+(SafezoneW -SafezoneH*3/4)/2)+ (0.586/4)*3*SafezoneH - SafezoneX";
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\nfov_co.paa";
@ -156,13 +149,6 @@ class RscInGameUI {
height = 0.001;
};
class Controls {
class ACE_javelin_NFOV_mode: ACE_javelin_NFOV_mode_off {
idc = 699003;
x = "((SafezoneW -SafezoneH*3/4)/2)+ (0.586/4)*3*SafezoneH - SafezoneX";
y = "0.031*SafezoneH - SafezoneY";
colorText[] = {0.2941,0.8745,0.2157,1};
};
/*
class StadiaL: RscLine {
x = "0.4788*SafezoneW - SafezoneX";
y = "0.171*SafezoneH - SafezoneY";
@ -205,7 +191,7 @@ class RscInGameUI {
h = "0.1895*SafezoneH";
colorText[] = {0.2941,0.8745,0.2157,1};
};
*/
};
};

View File

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

View File

@ -4,10 +4,10 @@ TRACE_1("enter", _this);
private["_player", "_currentFireMode"];
_currentFireMode = ACE_player getVariable["ace_missileguidance_attackProfile", "TOP"];
if(_currentFireMode == "LIN") then {
_currentFireMode = "TOP";
_currentFireMode = ACE_player getVariable["ace_missileguidance_attackProfile", "JAV_TOP"];
if(_currentFireMode == "JAV_DIR") then {
_currentFireMode = "JAV_TOP";
} else {
_currentFireMode = "LIN";
_currentFireMode = "JAV_DIR";
};
ACE_player setVariable["ace_missileguidance_attackProfile", _currentFireMode, false];

View File

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

View File

@ -3,27 +3,14 @@
TRACE_1("enter", _this);
#define __TRACKINTERVAL 0 // how frequent the check should be.
#define __LOCKONTIME 3.0 // Lock on won't occur sooner
#define __LOCKONTIMERANDOM 0.3 // Deviation in lock on time
#define __SENSORSQUARE 1 // Locking on sensor square side in angles
#define __LOCKONTIME 3 // Lock on won't occur sooner
#define __OffsetX ((ctrlPosition __JavelinIGUITargetingLineV) select 0) - 0.5
#define __OffsetY ((ctrlPosition __JavelinIGUITargetingLineH) select 1) - 0.5
private["_isJavelin", "_args", "_lastTick", "_runTime", "_soundTime", "_lockTime", "_newTarget", "_currentTarget", "_range", "_pos", "_targetArray"];
if( ! ([ (configFile >> "CfgWeapons" >> (currentWeapon (vehicle ACE_player)) ), "launch_Titan_base"] call EFUNC(common,inheritsFrom))
|| { (vehicle ACE_player) != ACE_player }
) exitWith {
__JavelinIGUITargeting ctrlShow false;
__JavelinIGUITargetingGate ctrlShow false;
__JavelinIGUITargetingLines ctrlShow false;
__JavelinIGUITargetingConstraints ctrlShow false;
[(_this select 1)] call cba_fnc_removePerFrameHandler;
uiNamespace setVariable["ACE_RscOptics_javelin_PFH", nil];
};
// Reset arguments if we havnt rendered in over a second
_args = uiNamespace getVariable[QGVAR(arguments), [] ];
if( (count _args) > 0) then {
@ -40,6 +27,20 @@ _currentTarget = _args select 1;
_runTime = _args select 2;
_lockTime = _args select 3;
_soundTime = _args select 4;
_randomLockInterval = _args select 5;
_fireDisabledEH = _args select 6;
if( ! ([ (configFile >> "CfgWeapons" >> (currentWeapon (vehicle ACE_player)) ), "launch_Titan_base"] call EFUNC(common,inheritsFrom)) ) exitWith {
__JavelinIGUITargeting ctrlShow false;
__JavelinIGUITargetingGate ctrlShow false;
__JavelinIGUITargetingLines ctrlShow false;
__JavelinIGUITargetingConstraints ctrlShow false;
_fireDisabledEH = [_fireDisabledEH] call FUNC(enableFire);
[(_this select 1)] call cba_fnc_removePerFrameHandler;
uiNamespace setVariable["ACE_RscOptics_javelin_PFH", nil];
};
// Find a target within the optic range
_newTarget = objNull;
@ -52,10 +53,16 @@ if ((velocity ACE_player) distance [0,0,0] > 0.5 && {cameraView == "GUNNER"} &&
// Refresh the firemode
[] call FUNC(showFireMode);
// bail on not loaded
if (ACE_player ammo (currentWeapon ACE_player) == 0) exitWith { };
_range = parseNumber (ctrlText __JavelinIGUIRangefinder);
TRACE_1("Viewing range", _range);
if (_range > 50 && {_range < 2500}) then {
_pos = positionCameraToWorld [0,0,_range];
_targetArray = _pos nearEntities ["AllVehicles", _range/25];
TRACE_1("Searching at range", _targetArray);
if (count (_targetArray) > 0) then {
_newTarget = _targetArray select 0;
};
@ -77,13 +84,56 @@ _offsetY = __OffsetY;
__JavelinIGUITargeting ctrlShow true;
__JavelinIGUITargetingConstrains ctrlShow true;
_zamerny = if (_currentTarget isKindOf "CAManBase") then {_currentTarget selectionPosition "body"} else {_currentTarget selectionPosition "zamerny"};
_randomPosWithinBounds = [(_zamerny select 0) + 1 - (random 2.0),(_zamerny select 1) + 1 - (random 2.0),(_zamerny select 2) + 0.5 - (random 1.0)];
_apos = worldToScreen (_currentTarget modelToWorld _randomPosWithinBounds);
_aposX = 0;
_aposY = 0;
if (count _apos < 2) then {
_aposX = 1;
_aposY = 0;
} else {
_aposX = (_apos select 0) + _offsetX;
_aposY = (_apos select 1) + _offsetY;
};
if((call CBA_fnc_getFoV) select 1 > 9) then {
__JavelinIGUINFOV ctrlSetTextColor __ColorGreen;
__JavelinIGUIWFOV ctrlSetTextColor __ColorGray;
} else {
__JavelinIGUINFOV ctrlSetTextColor __ColorGray;
__JavelinIGUIWFOV ctrlSetTextColor __ColorGreen;
};
FUNC(disableFire) = {
_firedEH = _this select 0;
if(_firedEH < 0 && difficulty > 0) then {
_firedEH = [ACE_player, "DefaultAction", {true}, {
_canFire = ACE_player getVariable["ace_missileguidance_target", nil];
if(!isNil "_canFire") exitWith { false };
true
}] call EFUNC(common,addActionEventHandler);
};
_firedEH
};
FUNC(enableFire) = {
_firedEH = _this select 0;
if(_firedEH > 0 && difficulty > 0) then {
[ACE_player, "DefaultAction", _firedEH] call EFUNC(common,removeActionEventHandler);
};
-1
};
if (isNull _newTarget) then {
// No targets found
_currentTarget = objNull;
_lockTime = 0;
__JavelinIGUISeek ctrlSetTextColor __ColorGray;
__JavelinIGUINFOV ctrlSetTextColor __ColorGreen;
__JavelinIGUITargeting ctrlShow false;
__JavelinIGUITargetingGate ctrlShow false;
__JavelinIGUITargetingLines ctrlShow false;
@ -92,7 +142,7 @@ if (isNull _newTarget) then {
ACE_player setVariable ["ace_missileguidance_target",nil, false];
// Disallow fire
//if (ACE_player ammo "Javelin" > 0 || {ACE_player ammo "ACE_Javelin_Direct" > 0}) then {ACE_player setWeaponReloadingTime //[player, "Javelin", 0.2];};
_fireDisabledEH = [_fireDisabledEH] call FUNC(disableFire);
} else {
if (_newTarget distance ACE_player < 2500
&& {(call CBA_fnc_getFoV) select 1 > 9}
@ -107,36 +157,20 @@ if (isNull _newTarget) then {
playSound "ACE_Javelin_Locking";
} else {
if(diag_tickTime - _lockTime > __LOCKONTIME) then {
if(diag_tickTime - _lockTime > __LOCKONTIME + _randomLockInterval) then {
TRACE_2("LOCKED!", _currentTarget, _lockTime);
__JavelinIGUISeek ctrlSetTextColor __ColorGreen;
__JavelinIGUINFOV ctrlSetTextColor __ColorNull;
__JavelinIGUITargeting ctrlShow true;
__JavelinIGUITargetingConstrains ctrlShow false;
__JavelinIGUITargetingGate ctrlShow true;
__JavelinIGUITargetingLines ctrlShow true;
_zamerny = if (_currentTarget isKindOf "CAManBase") then {_currentTarget selectionPosition "body"} else {_currentTarget selectionPosition "zamerny"};
_randomPosWithinBounds = [(_zamerny select 0) + 1 - (random 2.0),(_zamerny select 1) + 1 - (random 2.0),(_zamerny select 2) + 0.5 - (random 1.0)];
_apos = worldToScreen (_currentTarget modelToWorld _randomPosWithinBounds);
_aposX = 0;
_aposY = 0;
if (count _apos < 2) then {
_aposX = 1;
_aposY = 0;
} else {
_aposX = (_apos select 0) + _offsetX;
_aposY = (_apos select 1) + _offsetY;
};
// Move target marker to coords.
__JavelinIGUITargetingLineV ctrlSetPosition [_aposX,ctrlPosition __JavelinIGUITargetingLineV select 1];
__JavelinIGUITargetingLineH ctrlSetPosition [ctrlPosition __JavelinIGUITargetingLineH select 0,_aposY];
{_x ctrlCommit __TRACKINTERVAL} forEach [__JavelinIGUITargetingLineH,__JavelinIGUITargetingLineV];
//__JavelinIGUITargetingLineV ctrlSetPosition [_aposX,ctrlPosition __JavelinIGUITargetingLineV select 1];
//__JavelinIGUITargetingLineH ctrlSetPosition [ctrlPosition __JavelinIGUITargetingLineH select 0,_aposY];
//{_x ctrlCommit __TRACKINTERVAL} forEach [__JavelinIGUITargetingLineH,__JavelinIGUITargetingLineV];
_boundsInput = if (_currentTarget isKindOf "CAManBase") then {
[_currentTarget,[-1,-1,-2],_currentTarget selectionPosition "body"];
@ -162,6 +196,9 @@ if (isNull _newTarget) then {
ACE_player setVariable["ace_missileguidance_target", _currentTarget, false];
// Allow fire
_fireDisabledEH = [_fireDisabledEH] call FUNC(enableFire);
if(diag_tickTime > _soundTime) then {
playSound "ACE_Javelin_Locked";
_soundTime = diag_tickTime + 0.25;
@ -169,6 +206,7 @@ if (isNull _newTarget) then {
} else {
__JavelinIGUITargeting ctrlShow true;
__JavelinIGUITargetingGate ctrlShow true;
__JavelinIGUITargetingConstrains ctrlShow true;
__JavelinIGUITargetingLines ctrlShow false;
ACE_player setVariable["ace_missileguidance_target", nil, false];
@ -186,6 +224,8 @@ if (isNull _newTarget) then {
_maxX = ((_bpos select 2) + _offsetX) min (_constraintRight - 0.025*(3/4)*SafezoneH);
_maxY = ((_bpos select 3) + _offsetY) min (_constraintBottom - 0.025*SafezoneH);
TRACE_4("", _boundsInput, _bpos, _minX, _minY);
__JavelinIGUITargetingGateTL ctrlSetPosition [_minX,_minY];
__JavelinIGUITargetingGateTR ctrlSetPosition [_maxX,_minY];
__JavelinIGUITargetingGateBL ctrlSetPosition [_minX,_maxY];
@ -197,22 +237,26 @@ if (isNull _newTarget) then {
playSound "ACE_Javelin_Locking";
_soundTime = diag_tickTime + 0.25;
};
// Disallow fire
_fireDisabledEH = [_fireDisabledEH] call FUNC(disableFire);
};
};
} else {
// Something is wrong with our seek
// No targets found
_currentTarget = objNull;
ACE_player setVariable["ace_missileguidance_target", nil, false];
_lockTime = 0;
__JavelinIGUISeek ctrlSetTextColor __ColorGray;
__JavelinIGUINFOV ctrlSetTextColor __ColorGray;
__JavelinIGUITargeting ctrlShow false;
__JavelinIGUITargetingGate ctrlShow false;
__JavelinIGUITargetingLines ctrlShow false;
__JavelinIGUITargetingConstraints ctrlShow false;
ACE_player setVariable ["ace_missileguidance_target",nil, false];
};
// Disallow fire
_fireDisabledEH = [_fireDisabledEH] call FUNC(disableFire);
};
};
//TRACE_2("", _newTarget, _currentTarget);
@ -223,5 +267,6 @@ _args set[1, _currentTarget];
_args set[2, _runTime];
_args set[3, _lockTime];
_args set[4, _soundTime];
_args set[6, _fireDisabledEH];
uiNamespace setVariable[QGVAR(arguments), _args ];

View File

@ -2,6 +2,8 @@
#include "script_component.hpp"
TRACE_1("enter", _this);
#define __LOCKONTIMERANDOM 2 // Deviation in lock on time
if((count _this) > 0) then {
uiNameSpace setVariable ['ACE_RscOptics_javelin',_this select 0];
};
@ -22,10 +24,14 @@ uiNameSpace setVariable [QGVAR(arguments),
objNull, // currentTargetObject
0, // Run Time
0, // Lock Time
0 // Sound timer
0, // Sound timer
(random __LOCKONTIMERANDOM), // random lock time addition
-1
]
];
_pfh_handle = uiNamespace getVariable ["ACE_RscOptics_javelin_PFH", nil];
if(isNil "_pfh_handle") then {
_pfh_handle = [FUNC(onOpticDraw), 0, []] call CBA_fnc_addPerFrameHandler;

View File

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

View File

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

View File

@ -24,7 +24,9 @@
#define __JavelinIGUISeek (__JavelinIGUI displayCtrl 699000)
#define __JavelinIGUITop (__JavelinIGUI displayCtrl 699001)
#define __JavelinIGUIDir (__JavelinIGUI displayCtrl 699002)
#define __JavelinIGUINFOV (__JavelinIGUI displayCtrl 699003)
#define __JavelinIGUINFOV (__JavelinIGUI displayCtrl 1003)
#define __JavelinIGUIWFOV (__JavelinIGUI displayCtrl 1004)
#define __JavelinIGUIRangefinder (__JavelinIGUI displayCtrl 151)
// Constrains
#define __JavelinIGUITargetingConstrains (__JavelinIGUI displayCtrl 699100)

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="WEP_JAVELIN">
<Key ID="STR_ACE_JAVELIN_LockTarget">
@ -7,7 +7,9 @@
<Russian>Захватить цель (удерживать)</Russian>
<Czech>Zamknout cíl(držet)</Czech>
<Polish>Namierz cel (przytrzymaj)</Polish>
<French>Vérouiller la Cible (Maintenir)</French>
<French>Verrouiller cible (maintenir)</French>
<Hungarian>Célpontra állás (Lenyomva tartott)</Hungarian>
<Italian>Aggangia il bersagio</Italian>
</Key>
<Key ID="STR_ACE_JAVELIN_CycleFireMode">
<English>Cycle Fire Mode</English>
@ -15,7 +17,9 @@
<Russian>Переключение режимов огня</Russian>
<Czech>Cyklování režimů palby</Czech>
<Polish>Przełącz tryb ognia</Polish>
<French>Mode de Tir (Cycle)</French>
<French>Cycle mode de tir</French>
<Hungarian>Tüzelési mód váltása</Hungarian>
<Italian>Alterna le modalità di fuoco</Italian>
</Key>
</Package>
</Project>

View File

@ -1,6 +1,6 @@
#include "script_component.hpp"
//#include "initKeybinds.sqf"
#include "initKeybinds.sqf"
GVAR(Menus) = ["Direction", "Wind SPD m/s", "CROSSWIND m/s", "HEADWIND m/s", "TEMP °C", "HUMIDITY %", "BARO hPA", "ALTITUDE m", "User Screen 1", "User Screen 2"];

View File

@ -1 +0,0 @@
#define GET_TEMPERATURE_AT_HEIGHT(h) (EGVAR(weather,currentTemperature) - 0.0065 * (h))

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