diff --git a/AUTHORS.txt b/AUTHORS.txt
index d33f9f41c7..2dd973ce6c 100644
--- a/AUTHORS.txt
+++ b/AUTHORS.txt
@@ -72,6 +72,7 @@ Kllrt
legman
Legolasindar "Viper"
licht-im-Norden87
+Macusercom
MarcBook
meat
Michail Nikolaev
diff --git a/ace_advanced_ballistics.dll b/ace_advanced_ballistics.dll
index 0a14d846b5..9d3708959c 100644
Binary files a/ace_advanced_ballistics.dll and b/ace_advanced_ballistics.dll differ
diff --git a/addons/advanced_ballistics/config.cpp b/addons/advanced_ballistics/config.cpp
index 1a2187783b..3f974b18df 100644
--- a/addons/advanced_ballistics/config.cpp
+++ b/addons/advanced_ballistics/config.cpp
@@ -5,7 +5,7 @@ class CfgPatches {
units[] = {};
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
- requiredAddons[] = {"ace_ballistics", "ace_weather", "ace_modules"};
+ requiredAddons[] = {"ace_ballistics", "ace_weather"};
author[] = {"Ruthberg"};
authorUrl = "https://github.com/ulteq";
VERSION_CONFIG;
diff --git a/addons/advanced_ballistics/stringtable.xml b/addons/advanced_ballistics/stringtable.xml
index f6d67bd8a5..5c72c9c06c 100644
--- a/addons/advanced_ballistics/stringtable.xml
+++ b/addons/advanced_ballistics/stringtable.xml
@@ -29,110 +29,133 @@
Advanced BallisticsZaawansowana balistykaBalística avanzada
+ Erweiterte BallistikAdvanced BallisticsZaawansowana balistykaBalística avanzada
+ Erweiterte BallistikEnables advanced ballisticsAktywuje zaawansowaną balistykęActiva la balística avanzada
+ Aktiviert die erweiterte BallistikEnabled For SnipersActivada para francotiradores
+ Für Scharfschützen aktiviertEnables advanced ballistics for non local snipers (when using high power optics)Activa la balística avanzada para francotiradores no locales (cuando se usa una mira telescópica)
+ Aktiviert die erweiterte Ballistik für nicht lokale Scharfschützen (bei Benutzung von Optiken mit starker Vergrößerung)Enabled For Group MembersActivada para miembros de grupo
+ Für Gruppenmitglieder aktiviertEnables advanced ballistics for non local group membersActivada la balística avanzada para miembros de grupo no locales
+ Aktiviert die erweiterte Ballistik für nicht lokale GruppenmitgliederEnabled For EveryoneActivada para todos
+ Für jeden aktiviertEnables advanced ballistics for all non local players (enabling this may degrade performance during heavy firefights in multiplayer)Activada la balística avanzada para todos los jugadores no locales (activarlo puede degradar el rendimiento durante grandes tiroteos en multijugador).
+ Aktiviert die erweiterte Ballistik für alle nicht lokalen Spieler (das Aktivieren dieser Funktion kann zur Beeinträchtigung des Spielerlebnisses im Multiplayer führen)Always Enabled For Group MembersZawsze akt. dla czł. grupySiempre activada para miembros de grupo
+ Für Gruppenmitglieder immer aktiviertAlways enables advanced ballistics when a group member firesAktywuje zaawansowaną balistykę dla wszystkich członków grupyActivada la balística avanzada siempre cuando miembros de grupo disparan
+ Aktiviert die erweiterte Ballistik immer, wenn ein Gruppenmitglied schießtDisabled In FullAuto ModeWył. podczas ognia auto.Desactivada en modo automático
+ Beim vollautomatischen Feuern deaktiviertDisables the advanced ballistics during full auto fireDezaktywuje zaawansowaną balistykę podczas ognia automatycznegoDesactivada la balística avanzada durante el fuego automático
+ Deaktiviert die erweiterte Ballistik beim vollautomatischen FeuernEnable Ammo Temperature SimulationSymulacja temp. amunicjiActivar simulación de temperatura de munición
+ Simulation der Munitionstemperatur aktivierenMuzzle velocity varies with ammo temperaturePrędkość wylotowa pocisku jest zależna od temperatury amunicjiLa velocidad de salida varía con la temperatura de la munición
+ Munitionstemperatur hat Einfluss auf die MündungsgeschwindigkeitEnable Barrel Length SimulationSymulacja długości lufyHabilitar la simulación de longitud del cañón
+ Simulation der Lauflänge aktivierenMuzzle velocity varies with barrel lengthPrędkość wylotowa pocisku jest zależna od długości lufyLa velocidad de salidal varía con la longitud del cañón
+ Lauflänge beeinflusst MündungsgeschwindigkeitEnable Bullet Trace EffectEfekt smugi pociskuActivar el efecto trazador de la bala
+ Geschossspureffekt aktivierenEnables a bullet trace effect to high caliber bullets (only visible when looking through high power optics)Aktywuje efekt smugi pocisku dla pocisków wysokokalibrowych (widoczne tylko podczas patrzenia przez optykę)Activa el efecto trazador de la balas de gran calibre (solo visible cuando se mira a través de una mira telescópica)
+ Aktiviere Geschossspureffekt für hohe Kaliber (bei Benutzung von Optiken mit starker Vergrößerung)Simulation IntervalInterwał symulacjiIntervalo de simulación
+ SimulationsintervallDefines the interval between every calculation stepOkreśla interwał pomiędzy każdym krokiem kalkulacjiDefine el intervalo entre cada cálculo
+ Legt das Intervall zwischen den Berechnungsschritten festSimulation RadiusZasięg symulacjiRadio de simulación
+ SimulationsradiusDefines the radius around the player (in meters) at which advanced ballistics are applied to projectilesOkreśla obszar naokoło gracza (w metrach), na którym zaawansowana balistyka jest aplikowana dla pociskówDefine el radio alrededor del jugador (en metros) en el cual se aplica la balística avanzada a los proyectiles
+ Gibt den Radius (in Metern) um den Spieler an, bei dem die erweiterte Ballistik auf Geschosse angewendet wird
diff --git a/addons/atragmx/XEH_postInit.sqf b/addons/atragmx/XEH_postInit.sqf
index 9663ec0a92..4b61a28551 100644
--- a/addons/atragmx/XEH_postInit.sqf
+++ b/addons/atragmx/XEH_postInit.sqf
@@ -6,41 +6,41 @@ if ((profileNamespace getVariable ["ACE_ATragMX_profileNamespaceVersion", 0]) ==
GVAR(gunList) = profileNamespace getVariable "ACE_ATragMX_gunList";
} else {
// Profile Name, Muzzle Velocity, Zero Range, Scope Base Angle, AirFriction, Bore Height, Scope Unit, Scope Click Unit, Scope Click Number, Maximum Elevation, Dialed Elevation, Dialed Windage, Mass, Bullet Diameter, Rifle Twist, BC, Drag Model, Atmosphere Model
- GVAR(gunList) = [["12.7x108mm" , 820, 100, 0.0657, -0.0006469, 3.81, 0, 2, 10, 120, 0, 0, 48.28, 12.7, 38.10, 0.630, 1, "ASM" ],
+ GVAR(gunList) = [["12.7x108mm" , 820, 100, 0.0657485, -0.00063800, 3.81, 0, 2, 10, 120, 0, 0, 48.28, 12.7, 38.10, 0.630, 1, "ASM" ],
- ["12.7x99mm AMAX" , 860, 100, 0.0612, -0.0003722, 3.81, 0, 2, 10, 120, 0, 0, 48.60, 12.7, 38.10, 1.050, 1, "ASM" ],
- ["12.7x99mm" , 900, 100, 0.0623, -0.0005942, 3.81, 0, 2, 10, 120, 0, 0, 41.92, 12.7, 38.10, 0.670, 1, "ASM" ],
+ ["12.7x99mm AMAX" , 860, 100, 0.0611565, -0.00036645, 3.81, 0, 2, 10, 120, 0, 0, 48.60, 12.7, 38.10, 1.050, 1, "ASM" ],
+ ["12.7x99mm" , 900, 100, 0.0582418, -0.00057503, 3.81, 0, 2, 10, 120, 0, 0, 41.92, 12.7, 38.10, 0.670, 1, "ASM" ],
- ["12.7x54mm" , 300, 100, 0.3395, -0.0001877, 3.81, 0, 2, 10, 120, 0, 0, 48.60, 12.7, 24.13, 1.050, 1, "ASM" ],
+ ["12.7x54mm" , 300, 100, 0.3394630, -0.00019268, 3.81, 0, 2, 10, 120, 0, 0, 48.60, 12.7, 24.13, 1.050, 1, "ASM" ],
- [".408 Chey Tac" , 910, 100, 0.0571, -0.0003958, 3.81, 0, 2, 10, 120, 0, 0, 27.15, 10.4, 33.02, 0.970, 1, "ASM" ],
+ [".408 Chey Tac" , 910, 100, 0.0569400, -0.00038944, 3.81, 0, 2, 10, 120, 0, 0, 27.15, 10.4, 33.02, 0.970, 1, "ASM" ],
- ["9.3×64mm" , 870, 100, 0.0619, -0.0010921, 3.81, 0, 2, 10, 120, 0, 0, 14.90, 9.30, 35.56, 0.368, 1, "ASM" ],
+ ["9.3×64mm" , 870, 100, 0.0619295, -0.00108571, 3.81, 0, 2, 10, 120, 0, 0, 14.90, 9.30, 35.56, 0.368, 1, "ASM" ],
- [".338LM 250gr" , 880, 100, 0.0598, -0.0006234, 3.81, 0, 2, 10, 120, 0, 0, 16.20, 8.58, 25.40, 0.322, 7, "ICAO"],
- [".338LM 300gr" , 800, 100, 0.0677, -0.0005397, 3.81, 0, 2, 10, 120, 0, 0, 19.44, 8.58, 25.40, 0.381, 7, "ICAO"],
- [".338LM API526" , 895, 100, 0.0601, -0.0007120, 3.81, 0, 2, 10, 120, 0, 0, 16.39, 8.58, 25.40, 0.560, 1, "ASM" ],
+ [".338LM 250gr" , 880, 100, 0.0598469, -0.00059133, 3.81, 0, 2, 10, 120, 0, 0, 16.20, 8.58, 25.40, 0.322, 7, "ICAO"],
+ [".338LM 300gr" , 800, 100, 0.0677343, -0.00052190, 3.81, 0, 2, 10, 120, 0, 0, 19.44, 8.58, 25.40, 0.381, 7, "ICAO"],
+ [".338LM API526" , 895, 100, 0.0588865, -0.00069611, 3.81, 0, 2, 10, 120, 0, 0, 16.39, 8.58, 25.40, 0.560, 1, "ASM" ],
- [".300WM Mk248 Mod 0", 900, 100, 0.0584, -0.0007305, 3.81, 0, 2, 10, 120, 0, 0, 13.31, 7.80, 25.40, 0.268, 7, "ICAO"],
- [".300WM Mk248 Mod 1", 867, 100, 0.0611, -0.0006326, 3.81, 0, 2, 10, 120, 0, 0, 14.26, 7.80, 25.40, 0.310, 7, "ICAO"],
- [".300WM Berger OTM" , 853, 100, 0.0622, -0.0005271, 3.81, 0, 2, 10, 120, 0, 0, 14.90, 7.80, 25.40, 0.368, 7, "ICAO"],
+ [".300WM Mk248 Mod 0", 900, 100, 0.0584442, -0.00070530, 3.81, 0, 2, 10, 120, 0, 0, 13.31, 7.80, 25.40, 0.268, 7, "ICAO"],
+ [".300WM Mk248 Mod 1", 867, 100, 0.0610738, -0.00061188, 3.81, 0, 2, 10, 120, 0, 0, 14.26, 7.80, 25.40, 0.310, 7, "ICAO"],
+ [".300WM Berger OTM" , 853, 100, 0.0622179, -0.00053733, 3.81, 0, 2, 10, 120, 0, 0, 14.90, 7.80, 25.40, 0.368, 7, "ICAO"],
- ["7.62x54mmR" , 800, 100, 0.0692, -0.0010165, 3.81, 0, 2, 10, 120, 0, 0, 9.849, 7.92, 24.13, 0.400, 1, "ICAO"],
+ ["7.62x54mmR" , 800, 100, 0.0691878, -0.00100023, 3.81, 0, 2, 10, 120, 0, 0, 9.849, 7.92, 24.13, 0.400, 1, "ICAO"],
- ["7.62x51mm M80" , 810, 100, 0.0679, -0.0010319, 3.81, 0, 2, 10, 120, 0, 0, 9.525, 7.82, 25.40, 0.200, 7, "ICAO"],
- ["7.62x51mm M118LR" , 780, 100, 0.0710, -0.0008497, 3.81, 0, 2, 10, 120, 0, 0, 11.34, 7.82, 25.40, 0.243, 7, "ICAO"],
- ["7.62x51mm Mk319" , 910, 100, 0.0585, -0.0010435, 3.81, 0, 2, 10, 120, 0, 0, 8.424, 7.82, 25.40, 0.377, 1, "ICAO"],
- ["7.62x51mm M993" , 930, 100, 0.0585, -0.0010914, 3.81, 0, 2, 10, 120, 0, 0, 8.230, 7.82, 25.40, 0.359, 1, "ICAO"],
- ["7.62x51mm Subsonic", 320, 100, 0.3060, -0.0004145, 3.81, 0, 2, 10, 120, 0, 0, 12.96, 7.82, 25.40, 0.235, 7, "ICAO"],
+ ["7.62x51mm M80" , 810, 100, 0.0679374, -0.00100957, 3.81, 0, 2, 10, 120, 0, 0, 9.525, 7.82, 25.40, 0.200, 7, "ICAO"],
+ ["7.62x51mm M118LR" , 780, 100, 0.0710319, -0.00082828, 3.81, 0, 2, 10, 120, 0, 0, 11.34, 7.82, 25.40, 0.243, 7, "ICAO"],
+ ["7.62x51mm Mk319" , 910, 100, 0.0584524, -0.00102338, 3.81, 0, 2, 10, 120, 0, 0, 8.424, 7.82, 25.40, 0.377, 1, "ICAO"],
+ ["7.62x51mm M993" , 930, 100, 0.0570316, -0.00107148, 3.81, 0, 2, 10, 120, 0, 0, 8.230, 7.82, 25.40, 0.359, 1, "ICAO"],
+ ["7.62x51mm Subsonic", 320, 100, 0.3059680, -0.00049899, 3.81, 0, 2, 10, 120, 0, 0, 12.96, 7.82, 25.40, 0.235, 7, "ICAO"],
- ["6.5x39mm" , 800, 100, 0.0683, -0.0007728, 3.81, 0, 2, 10, 120, 0, 0, 7.970, 6.71, 22.86, 0.263, 7, "ICAO"],
- ["6.5x47mm Lapua" , 800, 100, 0.0682, -0.0006977, 3.81, 0, 2, 10, 120, 0, 0, 9.007, 6.71, 22.86, 0.290, 7, "ICAO"],
- ["6.5mm Creedmor" , 840, 100, 0.0637, -0.0006136, 3.81, 0, 2, 10, 120, 0, 0, 9.072, 6.71, 22.86, 0.317, 7, "ICAO"],
+ ["6.5x39mm" , 800, 100, 0.0683482, -0.00075308, 3.81, 0, 2, 10, 120, 0, 0, 7.970, 6.71, 22.86, 0.263, 7, "ICAO"],
+ ["6.5x47mm Lapua" , 800, 100, 0.0682221, -0.00067037, 3.81, 0, 2, 10, 120, 0, 0, 9.007, 6.71, 22.86, 0.290, 7, "ICAO"],
+ ["6.5mm Creedmor" , 840, 100, 0.0636501, -0.00060887, 3.81, 0, 2, 10, 120, 0, 0, 9.072, 6.71, 22.86, 0.317, 7, "ICAO"],
- ["5.56x45mm M855" , 870, 100, 0.0626, -0.0013685, 3.81, 0, 2, 10, 120, 0, 0, 4.018, 5.70, 17.78, 0.151, 7, "ASM" ],
- ["5.56x45mm Mk262" , 820, 100, 0.0671, -0.0011287, 3.81, 0, 2, 10, 120, 0, 0, 4.990, 5.70, 17.78, 0.361, 1, "ASM" ],
- ["5.56x45mm Mk318" , 880, 100, 0.0616, -0.0013064, 3.81, 0, 2, 10, 120, 0, 0, 4.018, 5.70, 17.78, 0.307, 1, "ASM" ],
- ["5.56x45mm M995" , 869, 100, 0.0616, -0.0012972, 3.81, 0, 2, 10, 120, 0, 0, 4.536, 5.70, 17.78, 0.310, 1, "ASM" ]];
+ ["5.56x45mm M855" , 870, 100, 0.0626386, -0.00126466, 3.81, 0, 2, 10, 120, 0, 0, 4.018, 5.70, 17.78, 0.151, 7, "ASM" ],
+ ["5.56x45mm Mk262" , 820, 100, 0.0671481, -0.00109563, 3.81, 0, 2, 10, 120, 0, 0, 4.990, 5.70, 17.78, 0.361, 1, "ASM" ],
+ ["5.56x45mm Mk318" , 880, 100, 0.0615937, -0.00123318, 3.81, 0, 2, 10, 120, 0, 0, 4.018, 5.70, 17.78, 0.307, 1, "ASM" ],
+ ["5.56x45mm M995" , 869, 100, 0.0626713, -0.00123272, 3.81, 0, 2, 10, 120, 0, 0, 4.536, 5.70, 17.78, 0.310, 1, "ASM" ]];
[] call FUNC(clear_user_data);
profileNamespace setVariable ["ACE_ATragMX_gunList", GVAR(gunList)];
diff --git a/addons/atragmx/script_component.hpp b/addons/atragmx/script_component.hpp
index 40d62e440e..8154ffa04b 100644
--- a/addons/atragmx/script_component.hpp
+++ b/addons/atragmx/script_component.hpp
@@ -11,4 +11,4 @@
#include "\z\ace\addons\main\script_macros.hpp"
-#define ATRAGMX_PROFILE_NAMESPACE_VERSION 1.6
+#define ATRAGMX_PROFILE_NAMESPACE_VERSION 1.7
diff --git a/addons/attach/functions/fnc_attach.sqf b/addons/attach/functions/fnc_attach.sqf
index 2a3eca5940..984c231366 100644
--- a/addons/attach/functions/fnc_attach.sqf
+++ b/addons/attach/functions/fnc_attach.sqf
@@ -54,8 +54,8 @@ if (_unit == _attachToVehicle) then { //Self Attachment
[_unit, QGVAR(vehAttach), true] call EFUNC(common,setForceWalkStatus);
- //MenuBack isn't working for now (localize LSTRING(CancelAction))
- [{[localize LSTRING(PlaceAction), ""] call EFUNC(interaction,showMouseHint)}, [], 0, 0] call EFUNC(common,waitAndExecute);
+ //MenuBack isn't working for now (localize "STR_ACE_Attach_CancelAction")
+ [{[localize LSTRING(PlaceAction), ""] call EFUNC(interaction,showMouseHint)}, []] call EFUNC(common,execNextFrame);
_unit setVariable [QGVAR(placeActionEH), [_unit, "DefaultAction", {true}, {GVAR(placeAction) = 1;}] call EFUNC(common,AddActionEventHandler)];
// _unit setVariable [QGVAR(cancelActionEH), [_unit, "MenuBack", {true}, {GVAR(placeAction) = 0;}] call EFUNC(common,AddActionEventHandler)];
diff --git a/addons/ballistics/CfgAmmo.hpp b/addons/ballistics/CfgAmmo.hpp
index 74b8d1e4c3..5ffe94ac45 100644
--- a/addons/ballistics/CfgAmmo.hpp
+++ b/addons/ballistics/CfgAmmo.hpp
@@ -20,7 +20,7 @@ class CfgAmmo {
};
class B_556x45_Ball : BulletBase {
- airFriction=-0.0013685;
+ airFriction=-0.00126466;
hit=8;
typicalSpeed=750;
tracerStartTime=0.073; // M856 tracer burns out to 800m
@@ -37,7 +37,7 @@ class CfgAmmo {
ACE_barrelLengths[]={210.82, 238.76, 269.24, 299.72, 330.2, 360.68, 391.16, 419.1, 449.58, 480.06, 508.0, 609.6};
};
class ACE_556x45_Ball_Mk262 : B_556x45_Ball {
- airFriction=-0.0011287;
+ airFriction=-0.00109563;
caliber=0.8;
deflecting=18;
hit=11;
@@ -54,7 +54,7 @@ class CfgAmmo {
ACE_barrelLengths[]={190.5, 368.3, 457.2, 508.0};
};
class ACE_556x45_Ball_Mk318 : B_556x45_Ball {
- airFriction=-0.0013064;
+ airFriction=-0.00123318;
caliber=0.8;
deflecting=18;
hit=9;
@@ -71,7 +71,7 @@ class CfgAmmo {
ACE_barrelLengths[]={254.0, 393.7, 508.0};
};
class ACE_556x45_Ball_M995_AP : B_556x45_Ball {
- airFriction=-0.0012972;
+ airFriction=-0.00123272;
caliber=1.6;
deflecting=18;
hit=6;
@@ -92,7 +92,7 @@ class CfgAmmo {
nvgOnly = 1;
};
class ACE_545x39_Ball_7N6M : B_556x45_Ball {
- airFriction=-0.001222;
+ airFriction=-0.00114744;
caliber=0.6;
deflecting=18;
hit=7;
@@ -110,7 +110,7 @@ class CfgAmmo {
};
class B_556x45_Ball_Tracer_Green;
class ACE_545x39_Ball_7T3M : B_556x45_Ball_Tracer_Green {
- airFriction=-0.001222;
+ airFriction=-0.00114744;
caliber=0.6;
deflecting=18;
hit=7;
@@ -129,7 +129,7 @@ class CfgAmmo {
ACE_barrelLengths[]={254.0, 414.02, 508.0};
};
class B_65x39_Caseless : BulletBase {
- airFriction=-0.0007728;
+ airFriction=-0.00075308;
typicalSpeed=800;
ACE_caliber=6.706;
ACE_bulletLength=32.893;
@@ -151,7 +151,7 @@ class CfgAmmo {
nvgOnly = 1;
};
class ACE_65x47_Ball_Scenar: B_65x39_Caseless {
- airFriction=-0.0006977;
+ airFriction=-0.00067037;
typicalSpeed=820 ;
caliber=0.9;
ACE_caliber=6.706;
@@ -166,7 +166,7 @@ class CfgAmmo {
ACE_barrelLengths[]={254.0, 406.4, 508.0, 609.6, 660.4};
};
class ACE_65_Creedmor_Ball: B_65x39_Caseless {
- airFriction=-0.0006136;
+ airFriction=-0.00060887;
typicalSpeed=860 ;
caliber=1.1;
ACE_caliber=6.706;
@@ -181,7 +181,7 @@ class CfgAmmo {
ACE_barrelLengths[]={254.0, 406.4, 508.0, 609.6, 660.4};
};
class B_762x51_Ball : BulletBase {
- airFriction=-0.0010319;
+ airFriction=-0.00100957;
typicalSpeed=833;
hit=9;
tracerStartTime=0.073; // Based on the British L5A1 which burns out to 1000m
@@ -202,7 +202,7 @@ class CfgAmmo {
nvgOnly = 1;
};
class ACE_762x51_Ball_M118LR : B_762x51_Ball {
- airFriction=-0.0008497;
+ airFriction=-0.00082828;
caliber=1.8;
hit=16;
typicalSpeed=790;
@@ -218,7 +218,7 @@ class CfgAmmo {
ACE_barrelLengths[]={406.4, 508.0, 609.6, 660.4};
};
class ACE_762x51_Ball_Mk316_Mod_0 : B_762x51_Ball {
- airFriction=-0.0008421;
+ airFriction=-0.00082029;
caliber=1.8;
hit=16;
typicalSpeed=790;
@@ -234,7 +234,7 @@ class CfgAmmo {
ACE_barrelLengths[]={406.4, 508.0, 609.6, 660.4};
};
class ACE_762x51_Ball_Mk319_Mod_0 : B_762x51_Ball {
- airFriction=-0.0010435;
+ airFriction=-0.00102338;
caliber=1.5;
hit=14;
typicalSpeed=900;
@@ -250,7 +250,7 @@ class CfgAmmo {
ACE_barrelLengths[]={330.2, 406.4, 508.0};
};
class ACE_762x51_Ball_M993_AP : B_762x51_Ball {
- airFriction=-0.0010914;
+ airFriction=-0.00107148;
caliber=2.2;
hit=11;
typicalSpeed=910;
@@ -266,7 +266,7 @@ class CfgAmmo {
ACE_barrelLengths[]={330.2, 406.4, 508.0};
};
class ACE_762x51_Ball_Subsonic : B_762x51_Ball {
- airFriction=-0.0004145;
+ airFriction=-0.00049899;
caliber=1;
hit=6;
typicalSpeed=320;
@@ -282,7 +282,7 @@ class CfgAmmo {
ACE_barrelLengths[]={406.4, 508.0, 609.6, 660.4};
};
class ACE_30_06_M1_Ball : B_762x51_Ball {
- airFriction=-0.0008290;
+ airFriction=-0.00080900;
typicalSpeed=800;
caliber=2.0;
hit=10;
@@ -298,7 +298,7 @@ class CfgAmmo {
ACE_barrelLengths[]={254.0, 406.4, 508.0, 609.6, 660.4};
};
class ACE_7_Remington_Magnum_Ball : B_762x51_Ball {
- airFriction=-0.0005809;
+ airFriction=-0.00056738;
typicalSpeed=820;
caliber=2.1;
hit=8;
@@ -314,7 +314,7 @@ class CfgAmmo {
ACE_barrelLengths[]={254.0, 406.4, 508.0, 609.6, 660.4};
};
class ACE_243_Winchester_Ball : B_762x51_Ball {
- airFriction=-0.0007010;
+ airFriction=-0.00067875;
typicalSpeed=915;
caliber=2.3;
hit=6;
@@ -330,7 +330,7 @@ class CfgAmmo {
ACE_barrelLengths[]={254.0, 406.4, 508.0, 609.6, 660.4};
};
class ACE_762x67_Ball_Mk248_Mod_0 : B_762x51_Ball {
- airFriction=-0.0007305;
+ airFriction=-0.00070530;
caliber=1.8;
hit=17;
typicalSpeed=900;
@@ -346,7 +346,7 @@ class CfgAmmo {
ACE_barrelLengths[]={508.0, 609.6, 660.4};
};
class ACE_762x67_Ball_Mk248_Mod_1 : B_762x51_Ball {
- airFriction=-0.0006326;
+ airFriction=-0.00061188;
caliber=1.9;
hit=18;
typicalSpeed=867;
@@ -362,7 +362,7 @@ class CfgAmmo {
ACE_barrelLengths[]={508.0, 609.6, 660.4};
};
class ACE_762x67_Ball_Berger_Hybrid_OTM : B_762x51_Ball {
- airFriction=-0.0005271;
+ airFriction=-0.00053733;
caliber=2.0;
hit=19;
typicalSpeed=853;
@@ -378,7 +378,7 @@ class CfgAmmo {
ACE_barrelLengths[]={508.0, 609.6, 660.4};
};
class B_762x54_Ball: B_762x51_Ball {
- airFriction=-0.0010165;
+ airFriction=-0.00100023;
typicalSpeed=820;
ACE_caliber=7.925;
ACE_bulletLength=28.956;
@@ -392,7 +392,7 @@ class CfgAmmo {
ACE_barrelLengths[]={406.4, 508.0, 609.6, 660.4};
};
class ACE_762x54_Ball_7N14 : B_762x51_Ball {
- airFriction=-0.0010165;
+ airFriction=-0.00100023;
caliber=1.5;
hit=15;
typicalSpeed=820;
@@ -409,7 +409,7 @@ class CfgAmmo {
};
class B_762x54_Tracer_Green;
class ACE_762x54_Ball_7T2 : B_762x54_Tracer_Green {
- airFriction=-0.0010369;
+ airFriction=-0.00103989;
caliber=1.5;
hit=15;
typicalSpeed=800;
@@ -427,7 +427,7 @@ class CfgAmmo {
ACE_barrelLengths[]={406.4, 508.0, 609.6, 660.4};
};
class ACE_762x35_Ball : B_762x51_Ball {
- airFriction=-0.0012406;
+ airFriction=-0.00128942;
caliber=1.5;
hit=11;
typicalSpeed=790;
@@ -443,7 +443,7 @@ class CfgAmmo {
ACE_barrelLengths[]={228.6, 406.4, 508.0};
};
class ACE_762x39_Ball : B_762x51_Ball {
- airFriction=-0.0014519;
+ airFriction=-0.00151621;
hit=12;
caliber=1.5;
typicalSpeed=716;
@@ -459,7 +459,7 @@ class CfgAmmo {
ACE_barrelLengths[]={254.0, 414.02, 508.0};
};
class ACE_762x39_Ball_57N231P : B_762x54_Tracer_Green {
- airFriction=-0.0015168;
+ airFriction=-0.00151621;
hit=12;
caliber=1.5;
typicalSpeed=716;
@@ -477,7 +477,7 @@ class CfgAmmo {
ACE_barrelLengths[]={254.0, 414.02, 508.0};
};
class B_9x21_Ball : BulletBase {
- airFriction=-0.0021165;
+ airFriction=-0.00226847;
typicalSpeed=390;
hit=6;
ACE_caliber=9.042;
@@ -493,7 +493,7 @@ class CfgAmmo {
};
class ACE_9x18_Ball_57N181S : B_9x21_Ball {
hit=5;
- airFriction=-0.0015655;
+ airFriction=-0.00190333;
typicalSpeed=298;
ACE_caliber=9.271;
ACE_bulletLength=15.494;
@@ -507,7 +507,7 @@ class CfgAmmo {
ACE_barrelLengths[]={96.52, 127.0, 228.6};
};
class ACE_9x19_Ball : B_9x21_Ball {
- airFriction=-0.0015833;
+ airFriction=-0.0018577;
typicalSpeed=370;
hit=6;
ACE_caliber=9.017;
@@ -522,7 +522,7 @@ class CfgAmmo {
ACE_barrelLengths[]={101.6, 127.0, 228.6};
};
class ACE_10x25_Ball : B_9x21_Ball {
- airFriction=-0.00168;
+ airFriction=-0.00181928;
typicalSpeed=425;
hit=7;
ACE_caliber=12.7;
@@ -537,7 +537,7 @@ class CfgAmmo {
ACE_barrelLengths[]={101.6, 117.094, 228.6};
};
class ACE_765x17_Ball: B_9x21_Ball {
- airFriction=-0.001410;
+ airFriction=-0.00163356;
typicalSpeed=282;
hit=7;
ACE_caliber=7.938;
@@ -552,7 +552,7 @@ class CfgAmmo {
ACE_barrelLengths[]={101.6, 127.0, 228.6};
};
class ACE_303_Ball : ACE_762x51_Ball_M118LR {
- airFriction=-0.0008410;
+ airFriction=-0.0008349;
typicalSpeed=761;
caliber=2.0;
ACE_caliber=7.899;
@@ -567,7 +567,7 @@ class CfgAmmo {
ACE_barrelLengths[]={508.0, 609.6, 660.4};
};
class B_93x64_Ball : BulletBase {
- airFriction=-0.0010921;
+ airFriction=-0.00108571;
typicalSpeed=880;
ACE_caliber=9.296;
ACE_bulletLength=34.29;
@@ -582,7 +582,7 @@ class CfgAmmo {
};
class B_408_Ball : BulletBase {
timeToLive=10;
- airFriction=-0.0003958;
+ airFriction=-0.00038944;
typicalSpeed=910;
ACE_caliber=10.363;
ACE_bulletLength=54.0;
@@ -598,6 +598,7 @@ class CfgAmmo {
};
class ACE_106x83mm_Ball : B_408_Ball {
timeToLive=10;
+ airFriction=-0.00052047;
ACE_caliber=10.566;
ACE_bulletLength=53.061;
ACE_bulletMass=25.7904;
@@ -611,7 +612,7 @@ class CfgAmmo {
};
class B_338_Ball : BulletBase {
timeToLive=10;
- airFriction=-0.0006234;
+ airFriction=-0.00059133;
typicalSpeed=915;
ACE_caliber=8.585;
ACE_bulletLength=39.573;
@@ -625,7 +626,7 @@ class CfgAmmo {
ACE_barrelLengths[]={508.0, 660.4, 711.2};
};
class B_338_NM_Ball : BulletBase {
- airFriction=-0.0005434;
+ airFriction=-0.00052201;
typicalSpeed=820;
ACE_caliber=8.585;
ACE_bulletLength=43.18;
@@ -640,7 +641,7 @@ class CfgAmmo {
};
class ACE_338_Ball : B_338_Ball {
timeToLive=10;
- airFriction=-0.0005397;
+ airFriction=-0.00052190;
typicalSpeed=826;
ACE_caliber=8.585;
ACE_bulletLength=43.18;
@@ -655,7 +656,7 @@ class CfgAmmo {
};
class ACE_338_Ball_API526 : B_338_Ball {
timeToLive=10;
- airFriction=-0.0007120;
+ airFriction=-0.00069611;
caliber=2.8;
typicalSpeed=895;
ACE_caliber=8.585;
@@ -670,7 +671,7 @@ class CfgAmmo {
ACE_barrelLengths[]={508.0, 660.4, 711.2};
};
class B_127x54_Ball : BulletBase {
- airFriction=-0.0001877;
+ airFriction=-0.00019268;
typicalSpeed=300;
ACE_caliber=12.954;
ACE_bulletLength=64.516;
@@ -685,7 +686,7 @@ class CfgAmmo {
};
class B_127x99_Ball : BulletBase {
timeToLive=10;
- airFriction=-0.0005942;
+ airFriction=-0.00057503;
typicalSpeed=900;
ACE_caliber=12.954;
ACE_bulletLength=58.674;
@@ -700,7 +701,7 @@ class CfgAmmo {
};
class ACE_127x99_API : BulletBase {
timeToLive=10;
- airFriction=-0.0005886;
+ airFriction=-0.00057503;
typicalSpeed=900;
hit=25;
caliber=4.0;
@@ -717,7 +718,7 @@ class CfgAmmo {
};
class ACE_127x99_Ball_AMAX : B_127x99_Ball {
timeToLive=10;
- airFriction=-0.0003722;
+ airFriction=-0.00036645;
typicalSpeed=860;
caliber=3.0;
ACE_caliber=12.954;
@@ -733,7 +734,7 @@ class CfgAmmo {
};
class B_127x108_Ball : BulletBase {
timeToLive=10;
- airFriction=-0.0006469;
+ airFriction=-0.00063800;
typicalSpeed=820;
ACE_caliber=12.979;
ACE_bulletLength=64.008;
@@ -747,7 +748,7 @@ class CfgAmmo {
ACE_barrelLengths[]={728.98};
};
class B_45ACP_Ball : BulletBase {
- airFriction=-0.0007312;
+ airFriction=-0.00081221;
typicalSpeed=250;
ACE_caliber=11.481;
ACE_bulletLength=17.272;
diff --git a/addons/ballistics/stringtable.xml b/addons/ballistics/stringtable.xml
index c70c772cc0..96e4f720a6 100644
--- a/addons/ballistics/stringtable.xml
+++ b/addons/ballistics/stringtable.xml
@@ -1596,6 +1596,7 @@
[ACE] Ammo Supply Crate[ACE] Skrzynka z amunicją[ACE] Caja de suministros de munición
+ [ACE] Munitionskiste
-
\ No newline at end of file
+
diff --git a/addons/captives/CfgVehicles.hpp b/addons/captives/CfgVehicles.hpp
index 2ff432d692..a90d1ce478 100644
--- a/addons/captives/CfgVehicles.hpp
+++ b/addons/captives/CfgVehicles.hpp
@@ -164,8 +164,6 @@ class CfgVehicles {
displayName = CSTRING(ModuleSurrender_DisplayName); //Make Unit Surrender
function = QUOTE(DFUNC(moduleSurrender));
scope = 2; //show in editor
- scopeCurator = 2; //show in zeus
- curatorCost = 0; //???
isGlobal = 1; //run global
isTriggerActivated = 1; //Wait for triggers
icon = QUOTE(PATHTOF(UI\Icon_Module_Make_Unit_Surrender_ca.paa));
@@ -176,4 +174,4 @@ class CfgVehicles {
sync[] = {"AnyAI"};
};
};
-};
\ No newline at end of file
+};
diff --git a/addons/captives/functions/fnc_moduleSurrender.sqf b/addons/captives/functions/fnc_moduleSurrender.sqf
index fbcbce4951..5b40b7663e 100644
--- a/addons/captives/functions/fnc_moduleSurrender.sqf
+++ b/addons/captives/functions/fnc_moduleSurrender.sqf
@@ -23,37 +23,13 @@ private ["_bisMouseOver", "_mouseOverObject"];
if (!_activated) exitWith {};
if (local _logic) then {
- if ((!isnull curatorcamera) && {((count curatorMouseOver) == 2) && {(curatorMouseOver select 1) == _logic}}) then {//in zeus interface and we placed the module
- _bisMouseOver = missionNamespace getVariable ["bis_fnc_curatorObjectPlaced_mouseOver", []];//bis caches the previous curatorMouseOver
- if ((count _bisMouseOver) == 2) then {//check what mouse was over before the module was placed
- _mouseOverObject = _bisMouseOver select 1;
- if ((_mouseOverObject isKindOf "CAManBase") && {(vehicle _mouseOverObject) == _mouseOverObject}) then {
- TRACE_2("Debug - module surrendering %1",_mouseOverObject,(name _mouseOverObject));
- if (alive _mouseOverObject) then {
- if (!(_mouseOverObject getVariable [QGVAR(isSurrendering), false])) then {
- ["SetSurrendered", [_mouseOverObject], [_mouseOverObject, true]] call EFUNC(common,targetEvent);
- } else {
- ["SetSurrendered", [_mouseOverObject], [_mouseOverObject, false]] call EFUNC(common,targetEvent);
- };
- } else {
- [LSTRING(Zeus_OnlyAlive)] call EFUNC(common,displayTextStructured);
- };
- } else {
- [LSTRING(Zeus_OnlyInfantry)] call EFUNC(common,displayTextStructured);
- };
- } else {
- [LSTRING(Zeus_NothingSelected)] call EFUNC(common,displayTextStructured);
- };
- } else {
- //an editor module
- //Modules run before postInit can instal the event handler, so we need to wait a little bit
- [{
- PARAMS_1(_units);
- {
- ["SetSurrendered", [_x], [_x, true]] call EFUNC(common,targetEvent);
- } forEach _units;
- }, [_units], 0.05, 0.05]call EFUNC(common,waitAndExecute);
- };
+ //Modules run before postInit can instal the event handler, so we need to wait a little bit
+ [{
+ PARAMS_1(_units);
+ {
+ ["SetSurrendered", [_x], [_x, true]] call EFUNC(common,targetEvent);
+ } forEach _units;
+ }, [_units], 0.05, 0.05]call EFUNC(common,waitAndExecute);
deleteVehicle _logic;
};
diff --git a/addons/captives/stringtable.xml b/addons/captives/stringtable.xml
index 071282c5f9..4e329675d1 100644
--- a/addons/captives/stringtable.xml
+++ b/addons/captives/stringtable.xml
@@ -157,51 +157,17 @@
Megadás abbahagyásaSmetti di arrenderti
-
- Only use on alive units
- Utiliser uniquement sur une unité vivante
- Nur bei lebenden Einheiten verwendbar
- Utilizar solo en unidades vivas
- Použitelné jen na živé jednotky
- Używaj tylko na żywych jednostkach
- Применимо только к живым юнитам
- Csak élő egységeken használni
- Si può fare solo su persone vive
- Usar somente em unidades vivas
-
-
- Only use on dismounted inf
- Utiliser uniquement sur du personnel à pied
- Nur bei abgesessener Infanterie verwendbar
- Utilizar solo en infanteria desmontada
- Použitelné jen na pěsích jednotkách
- Używaj tylko na piechocie poza wszelkimi pojazdami
- Применимо только к пехоте вне техники
- Csak járműben kívül lévő egységeken használni
- Si può usare solo su fanteria a piedi
- Usar somente em infantaria desmontada
-
-
- Nothing under mouse
- Rien sous le curseur
- Es wurde nichts ausgewählt
- Nada bajo el ratón
- Nada debaixo do mouse
- Nic není vybráno
- Nie ma nic pod kursorem
- Ничего не выделено
- Semmi sincs az egér alatt
- Nessuna selezione
- Make Unit SurrenderPoddaj się!Hacer que la unidad se rinda
+ Einheit kapitulieren lassenSync a unit to make them surrender.<br />Source: ace_captivesZsynchronizuj z jednostką aby sprawić by się poddała<br />Źródło: ace_captivesSincroniza una unidad para hacer que se rinda.<br />Fuente: ace_captives
+ Einheit synchronisieren, um sie kapitulieren zu lassen.<br />Quelle: ace_captives
-
\ No newline at end of file
+
diff --git a/addons/common/CfgVehicles.hpp b/addons/common/CfgVehicles.hpp
index 5444566ad1..eb50bc9f5a 100644
--- a/addons/common/CfgVehicles.hpp
+++ b/addons/common/CfgVehicles.hpp
@@ -1,4 +1,3 @@
-
class CfgVehicles {
/*class Man;
class CAManBase: Man {
@@ -24,12 +23,12 @@ class CfgVehicles {
// += needs a non inherited entry in that class, otherwise it simply overwrites
//#include
-
- class Logic;
- class Module_F: Logic {
- class ModuleDescription {};
- };
- class ACE_ModuleCheckPBOs: Module_F {
+ class Logic;
+ class Module_F: Logic {
+ class ModuleDescription;
+ };
+ class ACE_Module: Module_F {};
+ class ACE_ModuleCheckPBOs: ACE_Module {
author = CSTRING(ACETeam);
category = "ACE";
displayName = CSTRING(CheckPBO_DisplayName);
@@ -77,7 +76,7 @@ class CfgVehicles {
};
};
- class ACE_ModuleLSDVehicles: Module_F {
+ class ACE_ModuleLSDVehicles: ACE_Module {
author = CSTRING(ACETeam);
category = "ACE";
displayName = CSTRING(LSDVehicles_DisplayName);
diff --git a/addons/common/XEH_postInit.sqf b/addons/common/XEH_postInit.sqf
index b91d9b9a39..643d4cb9d3 100644
--- a/addons/common/XEH_postInit.sqf
+++ b/addons/common/XEH_postInit.sqf
@@ -269,6 +269,9 @@ GVAR(commonPostInited) = true;
diag_log text format["[ACE] Settings received from server"];
+ // Event so that ACE_Modules have their settings loaded:
+ ["InitSettingsFromModules", []] call FUNC(localEvent);
+
// Load user settings from profile
if (hasInterface) then {
call FUNC(loadSettingsFromProfile);
diff --git a/addons/common/config.cpp b/addons/common/config.cpp
index ba8cd8a5f8..6237e047fd 100644
--- a/addons/common/config.cpp
+++ b/addons/common/config.cpp
@@ -5,7 +5,7 @@ class CfgPatches {
units[] = {"ACE_Box_Misc", "ACE_bananaItem"};
weapons[] = {"ACE_ItemCore","ACE_FakePrimaryWeapon", "ACE_Banana"};
requiredVersion = REQUIRED_VERSION;
- requiredAddons[] = {"ace_main"};
+ requiredAddons[] = {"ace_main","ace_modules"};
author[] = {"KoffeinFlummi"};
authorUrl = "https://github.com/KoffeinFlummi/";
VERSION_CONFIG;
diff --git a/addons/common/functions/fnc_progressBar.sqf b/addons/common/functions/fnc_progressBar.sqf
index d6518a9f10..adc1b8d4c3 100644
--- a/addons/common/functions/fnc_progressBar.sqf
+++ b/addons/common/functions/fnc_progressBar.sqf
@@ -60,7 +60,7 @@ _perFrameFunction = {
if (isNull (uiNamespace getVariable [QGVAR(ctrlProgressBar), controlNull])) then {
_errorCode = 1;
} else {
- if (ACE_player != _player) then {
+ if (ACE_player != _player || !alive _player) then {
_errorCode = 2;
} else {
if (!([_args, _elapsedTime, _totalTime, _errorCode] call _condition)) then {
diff --git a/addons/common/stringtable.xml b/addons/common/stringtable.xml
index 67d0b932f7..c773c1f4a2 100644
--- a/addons/common/stringtable.xml
+++ b/addons/common/stringtable.xml
@@ -39,7 +39,7 @@
ACE Options
- ACE Optionen
+ ACE-OptionenOpciones ACEUstawienia ACENastavení ACE
@@ -474,66 +474,79 @@
Check PBOsSprawdzaj PBOComprobar PBOs
+ Überprüfe PBOsSprawdzaj spójność addonów z serweremEste módulo verifica la integridad de los addons con los que iniciamos el simulador
+ Dieses Modul überprüft ob jeder Spieler die richtigen PBO-Dateien hat.ActionAkcjaAcción
+ AktionWhat to do with people who do not have the right PBOs?Co zrobić z graczami, którzy nie mają właściwych PBO?¿Qué hacer con la gente que no tiene correctamente los PBOs?
+ Was soll mit Leuten passieren, die nicht die richtigen PBOs haben?Warn onceOstrzeż razAvisar una vez
+ Einmal verwarnenWarn (permanent)Ostrzeżenie (permanentne)Avisar (permanente)
+ Immer verwarnenKickKickExpulsar
+ KickenCheck all addonsSprawdź wsz. addonyComprobar todos los addons
+ Alle Addons überprüfenCheck all addons instead of only those of ACE?Sprawdzaj wszystkie addony czy tylko te z ACE?Comprobar todos los addons en vez de solo los del ACE
+ Alle Addons anstatt nur ACE überprüfen?WhitelistBiała listaLista blanca
+ WhitelistWhat addons are allowed regardless?Jakie addony są dozwolone?Qué addons están permitidos igualmente
+ Welche Addons werden dennoch erlaubt?LSD VehiclesPojazdy LSDVehículos LSD
+ LSD-FahrzeugeAdds LSD effect to synchronized vehicleDodaje efekt LSD pod zsynchronizowany pojazdAñade el efecto LSD al vehículo sincronizado
+ Fügt einen LSD-Effekt zum synchronisierten Fahrzeug hinzu
-
\ No newline at end of file
+
diff --git a/addons/disarming/functions/fnc_disarmDropItems.sqf b/addons/disarming/functions/fnc_disarmDropItems.sqf
index e19a01df1b..5422fd00a6 100644
--- a/addons/disarming/functions/fnc_disarmDropItems.sqf
+++ b/addons/disarming/functions/fnc_disarmDropItems.sqf
@@ -68,7 +68,7 @@ if (isNull _holder) exitWith {
if (_holder getVariable [QGVAR(holderInUse), false]) exitWith {
[{
_this call FUNC(disarmDropItems);
- }, _this, 0, 0] call EFUNC(common,waitAndExecute);
+ }, _this] call EFUNC(common,execNextFrame);
};
_holder setVariable [QGVAR(holderInUse), true];
diff --git a/addons/dragging/functions/fnc_startCarry.sqf b/addons/dragging/functions/fnc_startCarry.sqf
index 842945c202..5521bec375 100644
--- a/addons/dragging/functions/fnc_startCarry.sqf
+++ b/addons/dragging/functions/fnc_startCarry.sqf
@@ -41,7 +41,7 @@ if (_target isKindOf "CAManBase") then {
// move a bit closer and adjust direction when trying to pick up a person
_target setDir (getDir _unit + 180);
- _target setPos (getPos _unit vectorAdd vectorDir _unit);
+ _target setPosASL (getPosASL _unit vectorAdd (vectorDir _unit));
[_unit, "AcinPknlMstpSnonWnonDnon_AcinPercMrunSnonWnonDnon", 2, true] call EFUNC(common,doAnimation);
[_target, "AinjPfalMstpSnonWrflDnon_carried_Up", 2, true] call EFUNC(common,doAnimation);
diff --git a/addons/dragging/functions/fnc_startDrag.sqf b/addons/dragging/functions/fnc_startDrag.sqf
index 56f0ea928e..1d4eb9a158 100644
--- a/addons/dragging/functions/fnc_startDrag.sqf
+++ b/addons/dragging/functions/fnc_startDrag.sqf
@@ -43,7 +43,7 @@ _unit selectWeapon primaryWeapon _unit;
// move a bit closer and adjust direction when trying to pick up a person
if (_target isKindOf "CAManBase") then {
_target setDir (getDir _unit + 180);
- _target setPos (getPos _unit vectorAdd (vectorDir _unit vectorMultiply 1.5));
+ _target setPosASL (getPosASL _unit vectorAdd (vectorDir _unit vectorMultiply 1.5));
[_target, "AinjPpneMrunSnonWnonDb_grab", 2, true] call EFUNC(common,doAnimation);
};
diff --git a/addons/explosives/CfgModule.hpp b/addons/explosives/CfgModule.hpp
index 939f8821b2..d5bad207a5 100644
--- a/addons/explosives/CfgModule.hpp
+++ b/addons/explosives/CfgModule.hpp
@@ -1,8 +1,5 @@
-class Logic;
-class Module_F: Logic {
- class ModuleDescription {};
-};
-class ACE_ModuleExplosive: Module_F {
+class ACE_Module;
+class ACE_ModuleExplosive: ACE_Module {
author = ECSTRING(common,ACETeam);
category = "ACE";
displayName = CSTRING(Module_DisplayName);
@@ -24,7 +21,7 @@ class ACE_ModuleExplosive: Module_F {
defaultValue = 1;
};
};
- class ModuleDescription: ModuleDescription {
+ class ModuleDescription {
description = CSTRING(Module_Description);
};
-};
\ No newline at end of file
+};
diff --git a/addons/explosives/XEH_postInit.sqf b/addons/explosives/XEH_postInit.sqf
index cc0b7347b6..27a4703906 100644
--- a/addons/explosives/XEH_postInit.sqf
+++ b/addons/explosives/XEH_postInit.sqf
@@ -15,28 +15,10 @@
*/
#include "script_component.hpp"
-//Start up a PFEH that scans all mines/explosives without defuseObjects attached and adds them
-//Handles Editor Placed / Zeus / Scripted
-if (isServer) then {
- [{
- private ["_explosive", "_helpers", "_defuseHelper"];
- {
- _explosive = _x;
- _helpers = {
- ((typeOf _x) == "ACE_DefuseObject") && {(_x getVariable [QGVAR(Explosive), objNull]) == _explosive}
- } count (attachedObjects _explosive);
-
- if (_helpers == 0) then {
- TRACE_3("Explosive without helper",_explosive,(getPosAsl _explosive),(typeOf _explosive));
- _defuseHelper = createVehicle ["ACE_DefuseObject", (getPos _explosive), [], 0, "NONE"];
- _defuseHelper attachTo [_explosive, [0,0,0], ""];
- _defuseHelper setVariable [QGVAR(Explosive),_explosive,true];
- };
- } forEach allMines;
- }, 5, []] call CBA_fnc_addPerFrameHandler;
-};
-
if !(hasInterface) exitWith {};
+
+["interactMenuOpened", {_this call FUNC(interactEH)}] call EFUNC(common,addEventHandler);
+
GVAR(PlacedCount) = 0;
GVAR(Setup) = objNull;
GVAR(pfeh_running) = false;
diff --git a/addons/explosives/XEH_preInit.sqf b/addons/explosives/XEH_preInit.sqf
index 519d917793..b3888e1535 100644
--- a/addons/explosives/XEH_preInit.sqf
+++ b/addons/explosives/XEH_preInit.sqf
@@ -36,6 +36,8 @@ PREP(handleScrollWheel);
PREP(hasExplosives);
PREP(hasPlacedExplosives);
+PREP(interactEH);
+
PREP(getDetonators);
PREP(getPlacedExplosives);
PREP(getSpeedDialExplosive);
diff --git a/addons/explosives/functions/fnc_defuseExplosive.sqf b/addons/explosives/functions/fnc_defuseExplosive.sqf
index 5abfabe60f..28a14b25a5 100644
--- a/addons/explosives/functions/fnc_defuseExplosive.sqf
+++ b/addons/explosives/functions/fnc_defuseExplosive.sqf
@@ -21,10 +21,4 @@ if (getNumber (ConfigFile >> "CfgAmmo" >> typeof _explosive >> "ACE_explodeOnDef
[_unit, -1, [_explosive, 1], true] call FUNC(detonateExplosive);
};
-{
- detach _x;
- deleteVehicle _x;
- false
-} count (attachedObjects (_explosive));
-
_unit action ["Deactivate", _unit, _explosive];
diff --git a/addons/explosives/functions/fnc_detonateExplosive.sqf b/addons/explosives/functions/fnc_detonateExplosive.sqf
index 959ac0c347..bfdf4a4b92 100644
--- a/addons/explosives/functions/fnc_detonateExplosive.sqf
+++ b/addons/explosives/functions/fnc_detonateExplosive.sqf
@@ -26,12 +26,6 @@ _result = true;
if (!_ignoreRange && {(_unit distance (_item select 0)) > _range}) exitWith {false};
-_helpers = attachedObjects (_item select 0);
-{
- detach _x;
- deleteVehicle _x;
-} forEach _helpers;
-
if (getNumber (ConfigFile >> "CfgAmmo" >> typeof (_item select 0) >> "TriggerWhenDestroyed") == 0) then {
private ["_exp", "_previousExp"];
_previousExp = _item select 0;
diff --git a/addons/explosives/functions/fnc_interactEH.sqf b/addons/explosives/functions/fnc_interactEH.sqf
new file mode 100644
index 0000000000..4e916edb82
--- /dev/null
+++ b/addons/explosives/functions/fnc_interactEH.sqf
@@ -0,0 +1,56 @@
+/*
+ * Author: PabstMirror
+ * When interact_menu starts rendering (from "interact_keyDown" event)
+ * Add defuse helpers to all nearby mines
+ *
+ * Arguments:
+ * Interact Menu Type (0 - world, 1 - self)
+ *
+ * Return Value:
+ * Nothing
+ *
+ * Example:
+ * [0] call ace_explosives_fnc_interactEH
+ *
+ * Public: Yes
+ */
+#include "script_component.hpp"
+
+PARAMS_1(_interactionType);
+
+//Ignore self-interaction menu
+if (_interactionType != 0) exitWith {};
+//Ignore while mounted:
+if ((vehicle ACE_player) != ACE_player) exitWith {};
+//Ignore if we don't have defuse kit
+if (!("ACE_DefusalKit" in (items ACE_player))) exitWith {};
+
+[{
+ PARAMS_2(_args,_pfID);
+ EXPLODE_3_PVT(_args,_setPosition,_addedDefuseHelpers,_minesHelped);
+
+ if (!EGVAR(interact_menu,keyDown)) then {
+ TRACE_1("Cleaning Defuse Helpers",(count _addedDefuseHelpers));
+ {deleteVehicle _x;} forEach _addedDefuseHelpers;
+ [_pfID] call CBA_fnc_removePerFrameHandler;
+ } else {
+ private ["_defuseHelper"];
+ // Prevent Rare Error when ending mission with interact key down:
+ if (isNull ace_player) exitWith {};
+
+ //If player moved >5 meters from last pos, then rescan
+ if (((getPosASL ace_player) distance _setPosition) > 5) then {
+ {
+ if (((_x distance ACE_player) < 15) && {!(_x in _minesHelped)}) then {
+ TRACE_2("Making Defuse Helper",(_x),(typeOf _x));
+ _defuseHelper = "ACE_DefuseObject" createVehicleLocal (getPos _x);
+ _defuseHelper attachTo [_x, [0,0,0]];
+ _defuseHelper setVariable [QGVAR(Explosive),_x];
+ _addedDefuseHelpers pushBack _defuseHelper;
+ _minesHelped pushBack _x;
+ };
+ } forEach allMines;
+ _args set [0, (getPosASL ace_player)];
+ };
+ };
+}, 0.5, [((getPosASL ace_player) vectorAdd [-100,0,0]), [], []]] call CBA_fnc_addPerFrameHandler;
diff --git a/addons/explosives/functions/fnc_placeExplosive.sqf b/addons/explosives/functions/fnc_placeExplosive.sqf
index 2e6a0ad2c5..68580c2ba0 100644
--- a/addons/explosives/functions/fnc_placeExplosive.sqf
+++ b/addons/explosives/functions/fnc_placeExplosive.sqf
@@ -51,16 +51,8 @@ if (isText(_magazineTrigger >> "ammo")) then {
_ammo = getText (_magazineTrigger >> "ammo");
};
_triggerSpecificVars pushBack _triggerConfig;
-private ["_defuseHelper"];
-_defuseHelper = createVehicle ["ACE_DefuseObject", _pos, [], 0, "NONE"];
-_defuseHelper setPosATL _pos;
_explosive = createVehicle [_ammo, _pos, [], 0, "NONE"];
-_defuseHelper attachTo [_explosive, [0,0,0], ""];
-_defuseHelper setVariable [QGVAR(Explosive),_explosive,true];
-
-_expPos = getPosATL _explosive;
-_defuseHelper setPosATL (((getPosATL _defuseHelper) vectorAdd (_pos vectorDiff _expPos)));
_explosive setPosATL _pos;
if (!isNull _attachedTo) then {
diff --git a/addons/explosives/functions/fnc_place_Approve.sqf b/addons/explosives/functions/fnc_place_Approve.sqf
index 323e8bd634..0604045f65 100644
--- a/addons/explosives/functions/fnc_place_Approve.sqf
+++ b/addons/explosives/functions/fnc_place_Approve.sqf
@@ -37,7 +37,7 @@ if (_dir > 180) then {
} else {
_dir = 180 + _dir;
};
-_setup setVariable [QGVAR(Direction), _dir];
+_setup setVariable [QGVAR(Direction), _dir, true];
_player setVariable [QGVAR(PlantingExplosive), true];
[{_this setVariable [QGVAR(PlantingExplosive), false]}, _player, 1.5, 0.5] call EFUNC(common,waitAndExecute);
_setup addEventHandler ["EpeContactStart", FUNC(onLanded)];
diff --git a/addons/explosives/stringtable.xml b/addons/explosives/stringtable.xml
index 716400c973..839f8a1582 100644
--- a/addons/explosives/stringtable.xml
+++ b/addons/explosives/stringtable.xml
@@ -509,30 +509,36 @@
Explosive SystemSystem ładunków wybuchowychSistema de explosivos
+ SprengstoffsystemRequire specialists?Wymagaj specjalistów?¿Requiere especialista?
+ Benötigt Sprengstoffexperten?Require explosive specialists to disable explosives? Default: NoWymagać saperów do rozbrajania ładunków wybuchowych? Domyślnie: NieRequiere especialista en explosivos para desactivar explosivos?. Por defecto: No
+ Benötige Sprengstoffexperte um Sprengladungen zu entschärfen? Standard: NeinPunish non-specialists?Karaj nie-specjalistów?¿Penalizar a los no especialistas?
+ Bestrafe Nicht-Sprengstoffexperten?Increase the time it takes to complete actions for non-specialists? Default: YesZwiększyć ilość wymaganego czasu do ukończenia akcji dla nie-specjalistów? Domyślnie: TakAumenta el tiempo que lleva completar acciones para los no especialstas?. Por defecto: Si
+ Entschärfungszeit für Nicht-Sprengstoffexperten erhöhen? Standard: JaModuł ten pozwala dostosować opcje związane z ładunkami wybuchowymi, ich podkładaniem oraz rozbrajaniem.
+ Dieses Modul erlaubt die Einstellungen für Sprengstoffe zu verändern.
-
\ No newline at end of file
+
diff --git a/addons/fcs/stringtable.xml b/addons/fcs/stringtable.xml
index d62a5d85ea..77d683fc98 100644
--- a/addons/fcs/stringtable.xml
+++ b/addons/fcs/stringtable.xml
@@ -3,7 +3,7 @@
Lase Target / Measure Distance
- Ziel anlasern / Entfernung Messen
+ Ziel anlasern / Entfernung messenTélémétrer la cibleNaświetl cel / Zmierz odległośćOznačit cíl / Změřit vzdálenost
@@ -74,4 +74,4 @@
СУО обнулен.
-
+
\ No newline at end of file
diff --git a/addons/frag/stringtable.xml b/addons/frag/stringtable.xml
index 19acc9d81b..fa1a680e92 100644
--- a/addons/frag/stringtable.xml
+++ b/addons/frag/stringtable.xml
@@ -4,33 +4,41 @@
Fragmentation SimulationSimulación de fragmentación
+ SplittersimulationEnable the ACE Fragmentation SimulationActiva la simulación de fragmentación ACE
+ Aktiviere die ACE-SplittersimulationSpalling SimulationSimulación de astillamiento
+ ExplosionssimulationEnable the ACE Spalling SimulationActiva la simulación de astillamiento ACE
+ Aktiviere ACE-ExplosionssimulationMaximum Projectiles TrackedMáximos proyectiles rastreados
+ Maximalzahl der verfolgten ProjektileThis setting controls the maximum amount of projectiles the fragmentation and spalling system will track at any given time. If more projectiles are fired, they will not be tracked. Lower this setting if you do not want FPS drops at high-count projectile scenarios ( >200 rounds in the air at once)Este ajuste controla la cantidad máxima de proyectiles del sistema de fragmentación y astillamiento de los que se hará un seguimiento en cualquier momento dado. Si se disparan más proyectiles, no serán rastreados. Baja esta opción si no deseas una bajada de FPS en escenarios con muchos proyectiles (>200 proyectiles en el aire a la vez)
+ Diese Einstellung steuert die maximale Anzahl an Projektilen, die das Splitter- und Explosionssystem gleichzeitig verfolgen wird. Wenn mehr Projektile abgefeuert werden, werden sie nicht verfolgt werden. Diese Einstellung zu verringern, kann FPS-Einbrüche bei Szenarien mit vielen Projektilen verhindern (>200 Objekte gleichzeitig in der Luft)Maximum Projectiles Per FrameMáximos proyectiles por cuadro
+ Maximale Anzahl an Projektilen pro FrameThe number of spall track calculations to perform in any given frame. This helps spread the FPS impact of tracking spall rounds across multiple frames, limiting its impact even further.
+ Gibt die Anzahl der Explosionverfolgungsberechnungen an, die gleichzeitig ausgeführt werden. Das kann dabei helfen den FPS-Einfluss abzuschwächen, wenn Teile über mehrere Frames hinweg verfolgt werden.(SP Only) Frag/Spall Debug Tracing
@@ -39,6 +47,7 @@
(SP Only) Requires a mission/editor restart. Enables visual tracing of fragmentation and spalling rounds in SP game mode only.(Solo SP) Requiere un reinicio misión/editor. Permite el seguimiento visual de la fragmentación y astillamientos de los proyectiles en modo SP.
+ (nur SP) Splitter-/Explosions-Debugging
-
\ No newline at end of file
+
diff --git a/addons/hearing/CfgVehicles.hpp b/addons/hearing/CfgVehicles.hpp
index eb1586a6bc..b0ef46faa0 100644
--- a/addons/hearing/CfgVehicles.hpp
+++ b/addons/hearing/CfgVehicles.hpp
@@ -93,9 +93,8 @@ class CfgVehicles {
};
};
-
- class Module_F;
- class ACE_ModuleHearing: Module_F {
+ class ACE_Module;
+ class ACE_ModuleHearing: ACE_Module {
author = ECSTRING(common,ACETeam);
category = "ACE";
displayName = CSTRING(Module_DisplayName);
diff --git a/addons/hearing/stringtable.xml b/addons/hearing/stringtable.xml
index a5a36ac77e..c7e852bc06 100644
--- a/addons/hearing/stringtable.xml
+++ b/addons/hearing/stringtable.xml
@@ -113,20 +113,24 @@
HearingSłuchAudición
+ GehörEnable combat deafness?Wł. głuchotę bojową¿Habilitar sordera de combate?
+ Aktiviere Taubheit im Gefecht?Enable combat deafness?Możliwość chwilowej utraty słuchu przy głośnych wystrzałach i jednoczesnym braku włożonych stoperówHabilita la sordera de combate
+ Aktiviere Taubheit im Gefecht?Głuchota bojowa pojawia się w momentach, kiedy stoimy w pobliżu broni wielkokalibrowej bez ochrony słuchu, lub np. podczas ostrzału artyleryjskiego. Moduł ten pozwala na włączenie lub wyłączenie tego efektu.
+ Dieses Modul aktiviert/deaktiviert die Taubheit im Gefecht. Wenn aktiviert, können Spieler ohne Gehörschutz taub werden, wenn eine Waffe in ihrer Nähe abgefeuert wird oder eine Explosion stattfindet.
-
\ No newline at end of file
+
diff --git a/addons/hitreactions/ACE_Settings.hpp b/addons/hitreactions/ACE_Settings.hpp
new file mode 100644
index 0000000000..adbbdacaf2
--- /dev/null
+++ b/addons/hitreactions/ACE_Settings.hpp
@@ -0,0 +1,7 @@
+class ACE_Settings {
+ class GVAR(minDamageToTrigger) {
+ //Minimum mamage needed to trigger falling down while moving. Set to -1 to disable completely.
+ typeName = "SCALAR";
+ value = 0.1;
+ };
+};
diff --git a/addons/hitreactions/config.cpp b/addons/hitreactions/config.cpp
index 33d2665311..77b68b77f5 100644
--- a/addons/hitreactions/config.cpp
+++ b/addons/hitreactions/config.cpp
@@ -12,4 +12,5 @@ class CfgPatches {
};
};
+#include "ACE_Settings.hpp"
#include "CfgEventHandlers.hpp"
diff --git a/addons/hitreactions/functions/fnc_fallDown.sqf b/addons/hitreactions/functions/fnc_fallDown.sqf
index fdad970950..b979d09a4f 100644
--- a/addons/hitreactions/functions/fnc_fallDown.sqf
+++ b/addons/hitreactions/functions/fnc_fallDown.sqf
@@ -10,6 +10,9 @@ _damage = _this select 2;
// don't fall on collision damage
if (_unit == _firer) exitWith {};
+//Exit if system disabled:
+if (GVAR(minDamageToTrigger) == -1) exitWith {};
+
// cam shake for player
if (_unit == ACE_player) then {
addCamShake [3, 5, _damage + random 10];
@@ -27,13 +30,16 @@ if (_vehicle isKindOf "StaticWeapon") exitwith {
};
// don't fall after minor damage
-if (_damage < 0.1) exitWith {};
+if (_damage < GVAR(minDamageToTrigger)) exitWith {};
// play sound
if (!isNil QUOTE(EFUNC(medical,playInjuredSound))) then {
[_unit] call EFUNC(medical,playInjuredSound);
};
+//Don't do animations if in a vehicle (looks weird and animations never reset):
+if (_vehicle != _unit) exitWith {};
+
// this checks most things, so it doesn't mess with being inside vehicles or while dragging etc.
if !([_unit, _vehicle] call EFUNC(common,canInteractWith)) exitWith {};
diff --git a/addons/interaction/CfgVehicles.hpp b/addons/interaction/CfgVehicles.hpp
index f29e69baa9..f83fd26344 100644
--- a/addons/interaction/CfgVehicles.hpp
+++ b/addons/interaction/CfgVehicles.hpp
@@ -1,7 +1,6 @@
class CfgVehicles {
-
- class Module_F;
- class ACE_ModuleInteraction: Module_F {
+ class ACE_Module;
+ class ACE_ModuleInteraction: ACE_Module {
author = ECSTRING(common,ACETeam);
category = "ACE";
displayName = CSTRING(Module_DisplayName);
diff --git a/addons/interaction/stringtable.xml b/addons/interaction/stringtable.xml
index b4dafad983..a1dad1a8e0 100644
--- a/addons/interaction/stringtable.xml
+++ b/addons/interaction/stringtable.xml
@@ -111,7 +111,7 @@
Interaction Menu (Self)
- Interaktionsmenü (Selbst)
+ Interaktionsmenü (selbst)Menú de interacción (Propio)Menu interakcji (własne)Menu interakce (vlastní)
@@ -495,7 +495,7 @@
Get Down!
- Auf Den Boden!
+ Auf den Boden!Al suelo!Padnij!K zemi!
@@ -507,7 +507,7 @@
Team Management
- Team Management
+ GruppenverwaltungGestión de equipoGestion d'équipeZarządzanie oddziałem
@@ -797,20 +797,24 @@
Interaction SystemSystem interakcjiSistema de interacción
+ InteraktionssystemEnable Team ManagementWł. zarządzanie drużynąHabilitar gestión de equipos
+ Aktiviere GruppenverwaltungShould players be allowed to use the Team Management Menu? Default: YesCzy gracze mogą korzystać z menu zarządzania drużyną? Domyślnie: Tak¿Deben tener permitido los jugadores el uso del menu de gestión de equipos? Por defecto: Si
+ Sollen Spieler das Gruppenverwaltungsmenü verwenden dürfen? Standard: JaNa zarządzanie drużyną składa się: przydział kolorów dla członków drużyny, przejmowanie dowodzenia, dołączanie/opuszczanie drużyn.
+ Die Gruppenverwaltung erlaubt die Zuweisung von Farben für Einheiten, die Kommandierung und das Beitreten/Verlassen einer Gruppe.
-
\ No newline at end of file
+
diff --git a/addons/inventory/stringtable.xml b/addons/inventory/stringtable.xml
index 6ad5ec0408..8272594df5 100644
--- a/addons/inventory/stringtable.xml
+++ b/addons/inventory/stringtable.xml
@@ -15,7 +15,7 @@
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.
- Im Regelfall wird die Inventargröße durch die Größe der Nutzeroberfläche bestimmt. Diese Einstellung erlaubt es das Inventar unter Ausschluss der Schriftgröße zu vergrößern. Dadurch können mehr Gegenstände angezeigt werden.
+ Im Regelfall wird die Inventargröße durch die Größe der Nutzeroberfläche bestimmt. Diese Einstellung erlaubt es, das Inventar unter Ausschluss der Schriftgröße zu vergrößern. Dadurch können mehr Gegenstände angezeigt werden.Normalmente la pantalla de inventario se escala por el tamaño de la interfaz de usuario. Esto permite ampliar el tamaño de la interfaz de usuario de inventario, pero no aumenta el tamaño de fuente, permitiendo mostrar más filas.Обычно, размер окна инвентаря зависит от размеров пользовательского интерфейса. Эта настройка позволяет увеличить размер окна инвентаря, не увеличивая размеры шрифтов, так что отображется большее количество строк.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.
@@ -26,4 +26,4 @@
Normalmente o tamanho da tela do inventário é ditada pelo tamanho da UI. Isso permite aumentar o tamanho da tela de inventário, mas não aumenta o tamanho da fonte, permitindo que mais linhas sejam visualizadas.
-
+
\ No newline at end of file
diff --git a/addons/kestrel4500/XEH_postInit.sqf b/addons/kestrel4500/XEH_postInit.sqf
index 98136cbd0b..f22fc2228f 100644
--- a/addons/kestrel4500/XEH_postInit.sqf
+++ b/addons/kestrel4500/XEH_postInit.sqf
@@ -2,10 +2,10 @@
#include "initKeybinds.sqf"
-GVAR(Menus) = ["Date", "Direction", "Wind SPD m/s", "CROSSWIND m/s", "HEADWIND m/s", "TEMP °C", "CHILL °C", "HUMIDITY %", "HEAT INDEX °C", "DEW POINT °C", "WET BULB °C", "BARO hPA", "ALTITUDE m", "User Screen 1", "User Screen 2"];
+GVAR(Menus) = ["Date", "Direction", "Wind SPD m/s", "CROSSWIND m/s", "HEADWIND m/s", "TEMP °C", "CHILL °C", "HUMIDITY %", "HEAT INDEX °C", "DEW POINT °C", "WET BULB °C", "BARO hPA", "ALTITUDE m", "DENS ALT m", "User Screen 1", "User Screen 2"];
-GVAR(TOTAL) = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
-GVAR(ENTRIES) = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
+GVAR(TOTAL) = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
+GVAR(ENTRIES) = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
GVAR(MinAvgMax) = false;
GVAR(MinAvgMaxMode) = 0;
diff --git a/addons/kestrel4500/functions/fnc_collectData.sqf b/addons/kestrel4500/functions/fnc_collectData.sqf
index 41f372d416..4858ad80b2 100644
--- a/addons/kestrel4500/functions/fnc_collectData.sqf
+++ b/addons/kestrel4500/functions/fnc_collectData.sqf
@@ -14,26 +14,28 @@
*/
#include "script_component.hpp"
-private ["_playerDir", "_playerAltitude", "_temperature", "_humidity", "_barometricPressure", "_altitude", "_chill", "_heatIndex", "_dewPoint", "_wetBulb", "_fnc_updateMemory", "_windSpeed", "_crosswind", "_headwind"];
+private ["_playerDir", "_playerAltitude", "_temperature", "_humidity", "_barometricPressure", "_altitude", "_airDensity", "_densityAltitude", "_chill", "_heatIndex", "_dewPoint", "_wetBulb", "_fnc_updateMemory", "_windSpeed", "_crosswind", "_headwind"];
_playerDir = getDir ACE_player;
_playerAltitude = (getPosASL ACE_player) select 2;
_temperature = _playerAltitude call EFUNC(weather,calculateTemperatureAtHeight);
_humidity = EGVAR(weather,currentHumidity);
_barometricPressure = _playerAltitude call EFUNC(weather,calculateBarometricPressure);
_altitude = EGVAR(weather,Altitude) + _playerAltitude;
+_airDensity = [_temperature, _barometricPressure, _humidity] call EFUNC(weather,calculateAirDensity);
+_densityAltitude = _airDensity call EFUNC(weather,calculateDensityAltitude);
_chill = [_temperature, _humidity] call EFUNC(weather,calculateWindChill);
_heatIndex = [_temperature, _humidity] call EFUNC(weather,calculateHeatIndex);
_dewPoint = [_temperature, _humidity] call EFUNC(weather,calculateDewPoint);
_wetBulb = [_temperature, _barometricPressure, _humidity] call EFUNC(weather,calculateWetBulb);
if (isNil QGVAR(MIN) || isNil QGVAR(MAX)) then {
- GVAR(MIN) = [0, _playerDir, 0, 0, 0, _temperature, _chill, _humidity, _heatIndex, _dewPoint, _wetBulb, _barometricPressure, _altitude];
- GVAR(MAX) = [0, _playerDir, 0, 0, 0, _temperature, _chill, _humidity, _heatIndex, _dewPoint, _wetBulb, _barometricPressure, _altitude];
+ GVAR(MIN) = [0, _playerDir, 0, 0, 0, _temperature, _chill, _humidity, _heatIndex, _dewPoint, _wetBulb, _barometricPressure, _altitude, _densityAltitude];
+ GVAR(MAX) = [0, _playerDir, 0, 0, 0, _temperature, _chill, _humidity, _heatIndex, _dewPoint, _wetBulb, _barometricPressure, _altitude, _densityAltitude];
};
{
GVAR(ENTRIES) set [_x, (GVAR(ENTRIES) select _x) + 1];
-} forEach [1, 5, 6, 7, 8, 9, 10, 11, 12];
+} forEach [1, 5, 6, 7, 8, 9, 10, 11, 12, 13];
_fnc_updateMemory = {
PARAMS_2(_slot,_value);
@@ -86,3 +88,4 @@ if (GVAR(MinAvgMaxMode) == 1) then {
[10, _wetBulb] call _fnc_updateMemory;
[11, _barometricPressure] call _fnc_updateMemory;
[12, _altitude] call _fnc_updateMemory;
+[13, _densityAltitude] call _fnc_updateMemory;
diff --git a/addons/kestrel4500/functions/fnc_generateOutputData.sqf b/addons/kestrel4500/functions/fnc_generateOutputData.sqf
index fc7b94b711..fce359de6f 100644
--- a/addons/kestrel4500/functions/fnc_generateOutputData.sqf
+++ b/addons/kestrel4500/functions/fnc_generateOutputData.sqf
@@ -16,7 +16,7 @@
if (ACE_diagTime - GVAR(headingSetDisplayTimer) < 0.8) exitWith {["", "", " Heading Set", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""]};
-private ["_playerDir", "_playerAltitude", "_temperature", "_humidity", "_barometricPressure", "_chill", "_heatIndex", "_dewPoint", "_wetBulb", "_fnc_dayOfWeek", "_dayString", "_monthString", "_windSpeed", "_windDir", "_textTop", "_textCenterBig", "_textCenter", "_textCenterLine1Left", "_textCenterLine2Left", "_textCenterLine3Left", "_textCenterLine1Right", "_textCenterLine2Right", "_textCenterLine3Right", "_textInfoLine1", "_textInfoLine2", "_textBottomBig", "_textCenterLine1", "_textCenterLine2", "_textCenterLine3", "_textCenterLine4", "_textCenterLine5", "_textCenterLine6"];
+private ["_playerDir", "_playerAltitude", "_temperature", "_humidity", "_barometricPressure", "_airDensity", "_densityAltitude", "_chill", "_heatIndex", "_dewPoint", "_wetBulb", "_fnc_dayOfWeek", "_dayString", "_monthString", "_windSpeed", "_windDir", "_textTop", "_textCenterBig", "_textCenter", "_textCenterLine1Left", "_textCenterLine2Left", "_textCenterLine3Left", "_textCenterLine1Right", "_textCenterLine2Right", "_textCenterLine3Right", "_textInfoLine1", "_textInfoLine2", "_textBottomBig", "_textCenterLine1", "_textCenterLine2", "_textCenterLine3", "_textCenterLine4", "_textCenterLine5", "_textCenterLine6"];
[] call FUNC(collectData);
@@ -52,6 +52,8 @@ _playerAltitude = (getPosASL ACE_player) select 2;
_temperature = _playerAltitude call EFUNC(weather,calculateTemperatureAtHeight);
_humidity = EGVAR(weather,currentHumidity);
_barometricPressure = _playerAltitude call EFUNC(weather,calculateBarometricPressure);
+_airDensity = [_temperature, _barometricPressure, _humidity] call EFUNC(weather,calculateAirDensity);
+_densityAltitude = _airDensity call EFUNC(weather,calculateDensityAltitude);
_chill = [_temperature, _humidity] call EFUNC(weather,calculateWindChill);
_heatIndex = [_temperature, _humidity] call EFUNC(weather,calculateHeatIndex);
_dewPoint = [_temperature, _humidity] call EFUNC(weather,calculateDewPoint);
@@ -284,7 +286,19 @@ if (GVAR(referenceHeadingMenu) == 0) then {
_textCenterLine3Right = Str(round(GVAR(Max) select 12));
};
};
- case 13: { // User Screen 1
+ case 13: { // DENSITY ALTITUDE
+ if (!GVAR(MinAvgMax)) then {
+ _textCenterBig = Str(round(_densityAltitude));
+ } else {
+ _textCenterLine1Left = "Min";
+ _textCenterLine2Left = "Avg";
+ _textCenterLine3Left = "Max";
+ _textCenterLine1Right = Str(round(GVAR(Min) select 13));
+ _textCenterLine2Right = Str(round((GVAR(Total) select 13) / (GVAR(Entries) select 13)));
+ _textCenterLine3Right = Str(round(GVAR(Max) select 13));
+ };
+ };
+ case 14: { // User Screen 1
_textCenterLine1Left = Str(round(_playerDir));
_textCenterLine2Left = Str(round(EGVAR(weather,Altitude) + _playerAltitude));
_textCenterLine3Left = Str(round(abs(_windSpeed) * 10) / 10);
@@ -292,7 +306,7 @@ if (GVAR(referenceHeadingMenu) == 0) then {
_textCenterLine2Right = "m";
_textCenterLine3Right = "m/s";
};
- case 14: { // User Screen 2
+ case 15: { // User Screen 2
_textCenterLine1Left = Str(round(_temperature * 10) / 10);
_textCenterLine2Left = Str(round(_humidity * 100 * 10) / 10);
_textCenterLine3Left = Str(round((_playerAltitude call EFUNC(weather,calculateBarometricPressure)) * 10) / 10);
diff --git a/addons/magazinerepack/stringtable.xml b/addons/magazinerepack/stringtable.xml
index 8c1a0e01dc..c6879280da 100644
--- a/addons/magazinerepack/stringtable.xml
+++ b/addons/magazinerepack/stringtable.xml
@@ -76,7 +76,7 @@
Repacking FinishedRéorganisation terminée
- Wiederverpacken Fertig
+ Wiederverpacken fertigReorganización finalizadaПерепаковка завершенаPáskování dokončeno
@@ -88,7 +88,7 @@
Repacking InterruptedRéorganisation interrompue
- Umpacken Unterbrochen
+ Umpacken unterbrochenReorganización interrumpidaПерепаковка прерванаPáskování přerušeno
@@ -110,4 +110,4 @@
%1 Total e %2 Parcial
-
+
\ No newline at end of file
diff --git a/addons/map/CfgVehicles.hpp b/addons/map/CfgVehicles.hpp
index ad41480827..88e6fffc1a 100644
--- a/addons/map/CfgVehicles.hpp
+++ b/addons/map/CfgVehicles.hpp
@@ -1,6 +1,6 @@
class CfgVehicles {
- class Module_F;
- class ACE_ModuleMap: Module_F {
+ class ACE_Module;
+ class ACE_ModuleMap: ACE_Module {
author = ECSTRING(common,ACETeam);
category = "ACE";
displayName = CSTRING(Module_DisplayName);
@@ -39,6 +39,7 @@ class CfgVehicles {
};
};
+ class Module_F;
class ACE_ModuleBlueForceTracking: Module_F {
author = ECSTRING(common,ACETeam);
category = "ACE";
@@ -65,4 +66,4 @@ class CfgVehicles {
description = CSTRING(BFT_Module_Description);
};
};
-};
\ No newline at end of file
+};
diff --git a/addons/map/stringtable.xml b/addons/map/stringtable.xml
index f59c2652ff..373275d6b9 100644
--- a/addons/map/stringtable.xml
+++ b/addons/map/stringtable.xml
@@ -5,79 +5,95 @@
MapMapaMapa
+ KarteMap illumination?Oświetlenie mapy¿Iluminación de mapa?
+ KartenausleuchtungCalculate dynamic map illumination based on light conditions?Oblicza dynamiczne oświetlenie mapy bazujące na warunkach oświetleniowychCalcula la iluminación dinámica del mapa basandose en las condiciones de luz
+ Berechne die Kartenauslichtung anhand des Umgebungslichts?Map shake?Drżenie mapy¿Temblor de mapa?
+ KamerawackelnMake map shake when walking?Ekran mapy drży podczas ruchuHace que el mapa tiemble cuando caminas
+ Kamerawackeln beim Gehen?Limit map zoom?Ograniczony zoom¿Limitar el zoom de mapa?
+ Kartenzoom einschränkenLimit the amount of zoom available for the map?Ogranicza maksymalny stopień przybliżenia mapyLimita la cantidad de zoom disponible para el mapa
+ Zoomstufe der Karte einschränken?Show cursor coordinates?Koordynaty pod kursorem¿Mostrar coordenadas de cursor?
+ Zeige Cursor-Koordinaten?Show the grid coordinates on the mouse pointer?Pokazuje pod kursorem koordynaty wskazanego kwadratu mapyMuestra las coordenadas de la cuadricula en el puntero del ratón
+ Gitter-Koordinaten auf dem Mauszeiger anzeigen?Moduł ten pozwala dostosować opcje widoku ekranu mapy.
+ Dieses Modul erweitert die Kartenfunktionen.Blue Force TrackingBlue Force TrackingSeguimiento de fuerzas amigas
+ Blue Force TrackingIntervalInterwałIntervalo
+ IntervallHow often the markers should be refreshed (in seconds)Jak często markery powinny być odświeżane (w sekundach)Frecuencia de actualización de los marcadores (en segundos)
+ Wie oft sollen die Markierungen aktualisiert werden (in Sekunden)Hide AI groups?Ukryj grupy AI¿Ocultar grupos de IA?
+ KI-Gruppen verstecken?Hide markers for 'AI only' groups?Ukrywa markery dla grup złożonych tylko z AIOculta las marcas de grupos 'solo IA'
+ Verstecke Marker für "nur KI"-Gruppen?Pozwala śledzić na mapie pozycje sojuszniczych jednostek za pomocą markerów BFT.
+ Dieses Modul ermöglicht es verbündete Einheiten mit dem BFT auf der Karte zu verfolgen.
-
\ No newline at end of file
+
diff --git a/addons/medical/config.cpp b/addons/medical/config.cpp
index f86f5d166e..463ed95406 100644
--- a/addons/medical/config.cpp
+++ b/addons/medical/config.cpp
@@ -5,7 +5,7 @@ class CfgPatches {
units[] = {"ACE_medicalSupplyCrate", "ACE_medicalSupplyCrate_advanced", "ACE_fieldDressingItem", "ACE_packingBandageItem", "ACE_elasticBandageItem", "ACE_tourniquetItem", "ACE_morphineItem", "ACE_atropineItem", "ACE_epinephrineItem", "ACE_plasmaIVItem", "ACE_bloodIVItem", "ACE_salineIVItem", "ACE_quikclotItem", "ACE_personalAidKitItem", "ACE_surgicalKitItem", "ACE_bodyBagItem", "ACE_bodyBagObject"};
weapons[] = {"ACE_fieldDressing", "ACE_packingBandage", "ACE_elasticBandage", "ACE_tourniquet", "ACE_morphine", "ACE_atropine", "ACE_epinephrine", "ACE_plasmaIV", "ACE_plasmaIV_500", "ACE_plasmaIV_250", "ACE_bloodIV", "ACE_bloodIV_500", "ACE_bloodIV_250", "ACE_salineIV", "ACE_salineIV_500", "ACE_salineIV_250", "ACE_quikclot", "ACE_personalAidKit", "ACE_surgicalKit", "ACE_bodyBag"};
requiredVersion = REQUIRED_VERSION;
- requiredAddons[] = {"ace_interaction","ace_modules", "ace_apl"};
+ requiredAddons[] = {"ace_interaction", "ace_apl"};
author[] = {"Glowbal", "KoffeinFlummi"};
authorUrl = "";
VERSION_CONFIG;
diff --git a/addons/medical/functions/fnc_actionPlaceInBodyBag.sqf b/addons/medical/functions/fnc_actionPlaceInBodyBag.sqf
index 872b9a628a..1812912c6b 100644
--- a/addons/medical/functions/fnc_actionPlaceInBodyBag.sqf
+++ b/addons/medical/functions/fnc_actionPlaceInBodyBag.sqf
@@ -22,10 +22,10 @@ _nameOfUnit = [_target] call EFUNC(common,getName);
if (alive _target) then {
[_target, true] call FUNC(setDead);
};
-_onPosition = getPos _target;
+_onPosition = getPosASL _target;
deleteVehicle _target;
_bodyBagCreated = createVehicle ["ACE_bodyBagObject", _onPosition, [], 0, "NONE"];
// reset the position to ensure it is on the correct one.
-_bodyBagCreated setPos [_onPosition select 0, _onPosition select 1, (_onPosition select 2) + 0.2];
+_bodyBagCreated setPosASL [_onPosition select 0, _onPosition select 1, (_onPosition select 2) + 0.2];
_bodyBagCreated;
diff --git a/addons/medical/functions/fnc_treatment.sqf b/addons/medical/functions/fnc_treatment.sqf
index 141fe68188..06cea8dfe3 100644
--- a/addons/medical/functions/fnc_treatment.sqf
+++ b/addons/medical/functions/fnc_treatment.sqf
@@ -26,7 +26,7 @@ _className = _this select 3;
if (uiNamespace getVariable [QEGVAR(interact_menu,cursorMenuOpened),false]) exitwith {
[{
_this call FUNC(treatment);
- }, _this, 0, 0] call EFUNC(common,waitAndExecute);
+ }, _this] call EFUNC(common,execNextFrame);
};
if !(_target isKindOf "CAManBase") exitWith {false};
diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml
index 25b3952a0b..b866afe0b6 100644
--- a/addons/medical/stringtable.xml
+++ b/addons/medical/stringtable.xml
@@ -44,7 +44,7 @@
Устанавливает количество мусора, который появляется после использования мед. препаратов. Большое количество мусора может уменьшить производительность, поэтому данная настройка локальна для клиента.Il livello di dettagli della simulazione dei rifiuti indica il numero di rifiuti che verranno creati localmente nel client. La creazione di troppi rifiuti in aree locali potrebbe causare lag e calo di FPS. Questo è un settaggio client.Le niveau de simulation des détritus règle la quantité de déchets qui vont être créés localement chez le client. Des quantitées excessive chez certains clients peuvent causer des chutes de FPS, c'est donc une option client uniquement.
- Die Einstellung für das Abfall-Detaillevel stellt die Menge der lokal erzeugten medizinischen Abfälle ein. Zuviel erzeugte Abfälle können FPS-Lags erzeugen, deswegen ist diese Einstellung nur clientseitig.
+ Die Einstellung für das Abfall-Detaillevel stellt die Menge der lokal erzeugten medizinischen Abfälle ein. Zuviel erzeugte Abfälle können FPS-Einbrüche erzeugen, deswegen ist diese Einstellung nur clientseitig.A hulladékszimuláció részletessége megszabja a kliens által megjelenített hulladékobjektumok mennyiségét. Súlyos mennyiségek izolált területeken alacsony FPS-t okozhatnak, így ez egy kliensoldali beállítás.O nível de detalhe de sujeira determina o número de itens que irão aparecer no cliente. Quantidades excessivas em áreas locais podem aumentar o lag do FPS, então esta é uma opção somente para o cliente.Počet zobrazených předmětů po použití zdravotnického materiálu ovlivňuje počet objektů, které budou zobrazeny klientovi v místě použití zdravotnického materiálu. Vyšší množství objektů může způsobovat poklesy FPS a proto je toto nastavení čistě na klientovi.
@@ -111,7 +111,7 @@
Transfuse Saline
- Salzlösungtransfusion
+ SalzlösungstransfusionTransfundir salinoTransfúze fyziologický roztokuPrzetocz sól fizjologiczną
@@ -171,7 +171,7 @@
Bandage Left Arm
- Arm links verbinden
+ Linken Arm verbindenVendar el brazo izquierdoBandażuj lewe ramięObvázat levou ruku
@@ -183,7 +183,7 @@
Bandage Right Arm
- Arm rechts verbinden
+ Rechten Arm verbindenVendar el brazo derechoBandażuj prawe ramięObvázat pravou ruku
@@ -195,7 +195,7 @@
Bandage Left Leg
- Bein links verbinden
+ Linkes Bein verbindenVendar la pierna izquierdaBandażuj lewą nogęObvázat levou nohu
@@ -207,7 +207,7 @@
Bandage Right Leg
- Bein rechts verbinden
+ Rechtes Bein verbindenVendar la pierna derechaBandażuj prawą nogęObvázat pravou nohu
@@ -267,7 +267,7 @@
Transfusing Saline ...
- Sallösungtransfusion ...
+ Salzlösungtransfusion ...Transfusión de salino ...Probíha transfúze fyziologický roztoku ...Przetaczanie soli fizjologicznej ...
@@ -787,7 +787,7 @@
Utilizado para cubrir una heridaUtilisé pour couvrir une blessureUżywany w celu przykrycia i ochrony miejsca zranienia
- Verwendet, um Wunden abzudecken
+ Verwendet um Wunden abzudeckenSebesülések befedésére alkalmasUsato per coprire una feritaUsado para cobrir um ferimento
@@ -915,7 +915,7 @@
Morphine autoinjector
- Morphium Autoinjektor
+ Morphium-AutoinjektorМорфин в пневмошприцеMorfina auto-inyectableAuto-injecteur de Morphine
@@ -955,7 +955,7 @@
Atropina auto-inyectableAuto-injecteur d'AtropineAutostrzykawka AtroPen
- Atropin Autoinjektor
+ Atropin-AutoinjektorAutoinjektor atropinAtropin autoinjektorAutoiniettore di atropina
@@ -967,7 +967,7 @@
Usado en escenarios NBQUtilisé en cas d'attaque CBRNAtropina. Stosowana jako lek rozkurczowy i środek rozszerzający źrenice.
- Verwendet bei ABC Kontamination
+ Verwendet bei ABC-KontaminationNBK helyzetek esetén használandóUsato in situazioni con gas nervino.Usado em casos de ataque QBRN
@@ -979,7 +979,7 @@
Medicamento usado por militares en escenarios NBQMédicament utilisé par l'armée en cas d'attaque CBRNAtropina. Stosowana jako lek rozkurczowy i środek rozszerzający źrenice. Środek stosowany w przypadku zagrożeń NBC.
- Ein Medikament, das vom Militär bei ABC Kontamination verwendet wird.
+ Ein Medikament, das vom Militär bei ABC-Kontamination verwendet wird.Egy instabil alkaloid, NBK helyzetek esetén a katonai szervezetek veszik használatba.E' un farmaco usato in ambito militare in scenari con presenza di gas nervino.Uma droga usada por militares em casos de ataque QBRN.
@@ -991,7 +991,7 @@
Epinefrina auto-inyectableAuto-injecteur d'épinéphrineAutostrzykawka EpiPen
- Epiniphrin Autoinjektor
+ Epiniphrin-AutoinjektorAutoinjektor adrenalinEpinefrin autoinjektorAutoiniettore di epinefrina
@@ -1016,7 +1016,7 @@
Medicament qui fonctionne sur le système nerveux sympathique créant une dilatation des bronches, augmente la fréquence cardiaque et annule les effets d'une réaction allergique (anaphylaxie). Utilisé lors d'arrêt cardio-respiratoire pour augmenter les chances de retrouver un pouls.EpiPen z adrenaliną ma działanie sympatykomimetyczne, tj. pobudza receptory alfa- i beta-adrenergiczne. Pobudzenie układu współczulnego prowadzi do zwiększenia częstotliwości pracy serca, zwiększenia pojemności wyrzutowej serca i przyśpieszenia krążenia wieńcowego. Pobudzenie oskrzelowych receptorów beta-adrenergicznych wywołuje rozkurcz mięśni gładkich oskrzeli, co w efekcie zmniejsza towarzyszące oddychaniu świsty i duszności.Una sostanza che permette di dilatare i bronchi, aumentare il battito cardiaco e combattere effetti di reazioni allergiche. Usato anche in casi di arresto cardiaco.
- Ein Medikament, dass die Bronchien erweitert, die Herzfrequenz erhöht und Symptome von allergischen Reaktionen(Anaphylaxie) bekämpft. Wird bei plötzlichem Herzstillstand verabreicht.
+ Ein Medikament, das die Bronchien erweitert, die Herzfrequenz erhöht und Symptome von allergischen Reaktionen(Anaphylaxie) bekämpft. Wird bei plötzlichem Herzstillstand verabreicht.Uma droga trabalha dilatando os bronquios, aumentando a frequência cardíaca e combate efeitos de reações alérgicas(anáfilaticas). Usado em casos de parada cardiaca com poucas changes de recuperação.Egy hormon, mely a szimpatikus idegrendszer által kitágítja a hörgőket, valamint megnöveli a szívverést, ezzel ellensúlyozva ilyen jellegű allergiás reakciókat (anafilaxiás sokk). Hirtelen szívmegállás esetén is használt, idő alatt csökkenő hatásfokkal.Zúžení periferních cév díky působení na alfa receptory a následné kontrakci hladkých svalů, tím dochází k tzv. centralizaci oběhu, krev se soustřeďuje v životně důležitých centrálních orgánech (srdce, mozek, plíce), působí také pozitivně na srdeční činnost a dochází ke zvýšení krevního tlaku a tepu. Dále se používá při náhlé srdeční zástavě.
@@ -2705,36 +2705,43 @@
ACE MedicalACE Opcje medyczneMédico ACE
+ ACE-MedicsystemMedical Settings [ACE]Ustawienia medyczne [ACE]Ajustes médicos [ACE]
+ Medizinische Einstellungen [ACE]Medical LevelPoziom medycznyNivel médico
+ Medizinisches LevelWhat is the medical simulation level?Jaki jest poziom symulacji medycznej?¿Cuál es el nivel de simulación médica?
+ Wie hoch soll das medizinische Simulationslevel sein?BasicPodstawowyBásico
+ StandardAdvancedZaawansowanyAvanzado
+ ErweitertMedics settingPoziom medykówConfiguración médica
+ Medizinische EinstellungenWhat is the level of detail prefered for medics?
@@ -2745,415 +2752,498 @@
Disable medicsWyłącz medykówDesactivar médicos
+ Sanitäter deaktivierenEnable LitterAktywuj odpadkiActivar restos médicos
+ Abfälle aktivierenEnable litter being created upon treatmentTwórz odpadki medyczne podczas leczeniaActivar los restos médicos que se crean en el tratamiento
+ Aktiviere Abfälle, wenn eine Behandlung durchgeführt wurdeLife time of litter objectsDługość życia odpadkówTiempo de vida de los restos médicos
+ Dauer des angezeigten AbfallsHow long should litter objects stay? In seconds. -1 is forever.Ile czasu musi upłynąć, aby odpadki zaczęły znikać? W sekundach. -1 dla nieskończoności.¿Por cuánto tiempo deben permanecer los restos médicos? En segundos. -1 es para siempre.
+ Wie lange sollen Abfälle am Boden liegen (in Sekunden)? -1 ist für immer.Enable ScreamsAktywuj wrzaskiActivar gritos
+ Schreie aktivierenEnable screaming by injuried unitsAktywuj wrzeszczenie z bólu przez ranne jednostkiActivar gritos para unidades heridas
+ Aktiviere Schreie bei verletzten EinheitenPlayer DamagePróg obrażeń graczyDaño de jugador
+ SpielerschadenWhat is the damage a player can take before being killed?Jaki jest próg obrażeń, jakie gracz może otrzymać zanim zostanie zabity?¿Cuál es el daño que un jugador puede sufrir antes de morir?
+ Wie viel Schaden kann ein Spieler erleiden, bevor er getötet wird?AI DamagePróg obrażeń AIDaño IA
+ KI-SchadenWhat is the damage an AI can take before being killed?Jaki jest próg obrażeń, jakie AI może otrzymać zanim zostanie zabite?¿Cuál es el daño que la IA puede sufrir antes de morir?
+ Wie viel Schaden kann eine KI erleiden, bis sie getötet wird?AI UnconsciousnessNieprzytomność AIInconsciencia IA
+ KI-BewusstlosigkeitAllow AI to go unconsciousCzy AI może być nieprzytomne od odniesionych obrażeń?Permita a la IA caer inconsciente
+ KI kann bewusstlos werdenDisabledWyłączoneActivado
+ DeaktiviertEnabledWłączoneDesactivado
+ AktiviertPrevent instant deathWył. natychmiast. śmierćPrevenir muerte instantánea
+ Verhindere direkten TodHave a unit move to unconscious instead of deathSpraw, aby jednostka została przeniesiona do stanu nieprzytomności zamiast ginąć na miejscu od śmiertelnych obrażeńMover una unidad a inconsciente en vez de a muerta
+ Lässt eine Einheit bewusstlos werden anstatt zu sterbenBleeding coefficientMnożnik krwawieniaCoeficiente de sangrado
+ VerblutungsmultiplikatorCoefficient to modify the bleeding speedMnożnik modyfikujący prędkość wykrwawiania sięCoeficiente para modificar la velocidad de sangrado
+ Multiplikator um die Verblutungsgeschwindigkeit zu verändernPain coefficientMnożnik bóluCoeficiente de dolor
+ SchmerzmultiplikatorCoefficient to modify the pain intensityMnożnik modyfikujący intensywność bóluCoeficiente para modificar la intensidad del dolor
+ Multiplikator um den Schmerzintensität zu verändernSync statusSynchronizuj statusSincronizador estado
+ Status synchronisierenKeep unit status synced. Recommended on.Utrzymuj synchronizację statusu jednostek. Zalecane zostawienie tej opcji włączonej.Mantener el estado de la unidad sincronizado. Recomendado activado
+ Status der Einheit synchron halten. Sollte aktiviert bleiben.Provides a medical system for both players and AI.Moduł ten dostarcza system medyczny dla graczy oraz AI.Proporciona un sistema médico para jugadores e IA.
+ Aktiviert ein medizinisches System für Spieler und KI.Advanced Medical Settings [ACE]Zaawansowane ustawienia medyczne [ACE]Ajustes médicos avanzados [ACE]
+ Erweiterte medizinische Einstellungen [ACE]Enabled forAktywne dlaHablitado para
+ Aktiviert fürSelect what units the advanced medical system will be enabled forWybierz dla kogo zaawansowany system medyczny będzie aktywnySeleccione para qué unidades será habilitado el sistema médico avanzado
+ Wähle aus welche Einheiten das erweiterte medizinische System habenPlayers onlyTylko dla graczySolo jugadores
+ Nur SpielerPlayers and AIGracze oraz AIJugadors e IA
+ Spieler und KIEnable Advanced woundsAkt. zaawansowane ranyActiva heridas avanzadas
+ Aktiviere erweiterte WundenAllow reopening of bandaged wounds?Pozwól na otwieranie się zabandażowanych ran?Permitir la reapertura de las heridas vendadas?
+ Erlaube das Öffnen von bandagierten Wunden?Vehicle CrashesObrażenia od kolizjiAccidentes de vehículos
+ FahrzeugunfälleDo units take damage from a vehicle crash?Czy jednostki otrzymują obrażenia w wyniku kolizji pojazdów?¿Las unidades reciben daño de un accidente de tráfico?
+ Bekommen Einheiten von Fahrzeugunfällen Schaden?Allow PAKUst. apteczek osobistychPermitir EPA
+ Erlaube ErstehilfekastenWho can use the PAK for full heal?Kto może skorzystać z apteczki osobistej w celu pełnego uleczenia?¿Quién puede utilizar el EPA para una cura completa?
+ Wer kann den Erstehilfekasten für eine Endheilung verwenden?AnyoneWszyscyNadie
+ JederMedics onlyTylko medycySolo médicos
+ Nur SanitäterDoctors onlyTylko doktorzySolo doctores
+ Nur ÄrzteRemove PAK on useUsuń apteczkę po użyciuEliminar EPA después del uso
+ Entferne Erstehilfekasten bei VerwendungShould PAK be removed on usage?Czy apteczka osobista powinna zniknąć z ekwipunku po jej użyciu?El EPA será eliminado después de usarlo
+ Sollen Erstehilfekästen bei Verwendung entfernt werden?Locations PAKOgr. apteczek osobistychUbicacions del EPA
+ Orte für ErstehilfekastenWhere can the personal aid kit be used?Gdzie można korzystać z apteczek osobistych?¿Dónde se puede utilizar el equipo de primeros auxilios?
+ Wo kann der Erstehilfekasten verwendet werden?AnywhereWszędzieDonde sea
+ ÜberallMedical vehiclesPojazdy medyczneVehiculos médicos
+ Medizinische FahrzeugeMedical facilityBudynki medyczneCentro médico
+ Medizinische EinrichtungenVehicles & facilityPojazdy i budynki medyczneVehículos y centros
+ Fahrzeuge & EinrichtungenDisabledWyłączoneDesactivado
+ DeaktiviertAllow Surgical kit (Adv)Ust. zestawu chirurg.Permitir equipo quirúrgico (Avanzado)
+ Erlaube OperationskastenWho can use the surgical kit?Kto może skorzystać z zestawu chirurgicznego w celu zszycia ran?¿Quién puede utilizar el equipo quirúrgico?
+ Wer kann den Operationskasten verwenden?Remove Surgical kit (Adv)Usuń zest. chir. po użyciuEliminar equipo quirúrgico (Avanzado)
+ Enrtferne Operationskasten (erweitert)Should Surgical kit be removed on usage?Czy zestaw chirurgiczny powinien zniknąć z ekwipunku po jego użyciu?Eliminar el equipo quirúrgico después del uso
+ Entferne Operationskästen bei Verwendung?Locations Surgical kit (Adv)Ogr. zestawu chirurg.Ubicaciones del equipo quirúrgico (Avanzado)
+ Orte für Operationskästen (erweitert)Where can the Surgical kit be used?Gdzie można korzystać z zestawu chirurgicznego?Dónde se puede utilizar el equipo quirúrgico
+ Wo kann der Operationskasten verwendet werden?Configure the treatment settings from ACE MedicalSkonfiguruj zaawansowane ustawienia leczenia systemu medycznego ACEConfigure las opciones de tratamiento del ACE Médico
+ Behandlungseinstellungen vom ACE-Medical konfigurierenRevive Settings [ACE]Ustawienia wskrzeszania [ACE]Sistema de resucitado [ACE]
+ Wiederbelebungseinstellungen [ACE]Enable ReviveAktywuj wskrzeszanieHabilitar resucitado
+ Erlaube WiederbelebungEnable a basic revive systemAktywuj podstawowy system wskrzeszaniaHabilitar un sistema básico de resucitado
+ Aktiviere Standard-WiederbelebungssystemMax Revive timeMaks. czas agoniiTiempo máximo de resucitado
+ Maximale WiederbelebungszeitMax amount of seconds a unit can spend in revive stateMaksymalna długość agonii w sekundach (czas na wskrzeszenie)Cantidad máxima de segundos que una unidad puede gastar en estado de resucitación
+ Maximale Zeitspanne in Sekunden die eine Einheit im Wiederbelebungszustand verbringen kannMax Revive livesMaks. ilość wskrzeszeńVidas máximas de resucitado
+ Maximale Leben bei WiederbelebungMax amount of lives a unit. 0 or -1 is disabled.Maksymalna ilość wskrzeszeń. Wpisz 0 lub -1 aby wyłączyć.Cantidad máxima de vidas por unidad. 0 o -1 es desactivado.
+ Maximale Anzahl von Leben einer Einheit. 0 or -1 bedeutet deaktiviert.Provides a medical system for both players and AI.Moduł ten aktywuje podstawowy system wskrzeszania. Jednostka po otrzymaniu śmiertelnych obrażeń przechodzi do stanu agonii, która trwa określoną długość czasu. W tym czasie aby wskrzesić i jednocześnie odratować jednostkę należy opatrzeć jej rany i wykonać RKO.Proporciona un sistema médico para jugadores e IA.
+ Aktiviert das Medicsystem für Spieler und KI.Set Medic Class [ACE]Ustaw klasę medyka [ACE]Establecer case médica [ACE]
+ Setze Sanitäterklassen [ACE]ListListaLista
+ ListeList of unit names that will be classified as medic, separated by commas.Lista nazw jednostek, które są sklasyfikowane jako medycy, oddzielone przecinkami.Lista de los nombres de las unidades que se clasifican como médico, separados por comas.
+ Liste von Namen, die als Sanitäter verwendet werden. Wird durch Kommas getrennt.Is MedicKlasa medycznaEs médico
+ Ist Sanitäter
+ Dieses Modul legt fest welche Einheit ein Sanitäter ist.NoneŻadnaNada
+ KeineRegular medicZwykły medykMédico regular
+ Normaler SanitäterDoctor (Only Advanced Medics)Doktor (tylko zaawansowani medycy)Doctor (Solo medicina avanzada)
+ Arzt (nur erweiterte Sanitäter)Assigns the ACE medic class to a unitModuł ten przypisuje klasę medyka ACE do jednostek.Asigna la clase médico ACE a una unidad
+ Weise die ACE-Sanitäterklasse einer Einheit zuSet Medical Vehicle [ACE]Ustaw pojazd medyczny [ACE]Establecer vehículos médicos [ACE]
+ Setze medizinisches Fahrzeug [ACE]ListListaLista
+ ListeList of vehicles that will be classified as medical vehicle, separated by commas.Lista nazw pojazdów, które są sklasyfikowane jako pojazdy medyczne, oddzielone przecinkami.Lista de los vehículos que se clasifican como vehículo médicos, separados por comas.
+ Liste ovn Fahrzeugen, die als medizinische Fahrzeuge verwendet werden. Wird durch Kommas getrennt.Is Medical VehicleJest pojazdem med.Es vehículo médico
+ Ist medizinisches FahrzeugWhatever or not the objects in the list will be a medical vehicle.Czy pojazdy z tej listy są pojazdami medycznymi.Cualquiera de la lista o fuera de ella será un vehículo médico.
+ Leg fest ob das Objekt in der Liste ein medizinisches Fahrzeug ist.Assigns the ACE medic class to a unitModuł ten pozwala na przypisanie danym pojazdom statusu pojazdów medycznych. Wewnątrz takiego pojazdu można wykonywać zaawansowane zabiegi medyczne.Asigna la clase médico ACE a una unidad
+ Weist die ACE-Sanitäterklasse einer Einheit zuSet Medical Facility [ACE]Ustaw budynek medyczny [ACE]Establece el centro médico [ACE]
+ Setze medizinische Einrichtung [ACE]Is Medical FacilityJest budynkiem med.Es centro médico
+ Ist eine medizinische EinrichtungRegisters an object as a medical facilityPrzypisuje danemu obiektowi status budynku medycznegoRegistra un objeto como un centro médico
+ Definiert ein Objekt als medizinische EinrichtungDefines an object as a medical facility. This allows for more advanced treatments. Can be used on buildings and vehicles.Moduł ten pozwala przypisać status budynku medycznego danemu obiektowi. Budynek taki pozwala na wykonywanie zaawansowanych zabiegów medycznych. Może być użyte na pojazdach i budynkach.Define un objeto como un centro médico. Esto permite tratamientos más avanzados. Se puede utilizar en edificios y vehículos.
+ Definiert ein Objekt als medizinische Einrichtung. Das ermöglicht weitere Behandlungen. Kann bei Gebäuden und Fahrzeugen verwendet werden.[ACE] Medical Supply Crate (Basic)[ACE] Skrzynka z zapasami medycznymi (podstawowa)[ACE] Caja de suministros médicos (Básica)
+ [ACE] Medizinische Kiste (standard)[ACE] Medical Supply Crate (Advanced)[ACE] Skrzynka z zapasami medycznymi (zaawansowana)[ACE] Caja de suministros médicos (Avanzada)
+ [ACE] Medizinische Kiste (erweitert)Yes
@@ -3180,4 +3270,4 @@
No
-
\ No newline at end of file
+
diff --git a/addons/microdagr/CfgVehicles.hpp b/addons/microdagr/CfgVehicles.hpp
index 669e0417f9..d07903dbc1 100644
--- a/addons/microdagr/CfgVehicles.hpp
+++ b/addons/microdagr/CfgVehicles.hpp
@@ -36,12 +36,8 @@ class CfgVehicles {
};
};
- class Logic;
- class Module_F: Logic {
- class ArgumentsBaseUnits {};
- class ModuleDescription {};
- };
- class GVAR(dagrModule): Module_F {
+ class ACE_Module;
+ class GVAR(dagrModule): ACE_Module {
author = ECSTRING(common,ACETeam);
category = "ACE";
displayName = CSTRING(Module_DisplayName);
@@ -62,7 +58,7 @@ class CfgVehicles {
};
};
};
- class ModuleDescription: ModuleDescription {
+ class ModuleDescription {
description = CSTRING(Module_Description);
};
};
diff --git a/addons/microdagr/stringtable.xml b/addons/microdagr/stringtable.xml
index d6f55aca64..a13e8d5541 100644
--- a/addons/microdagr/stringtable.xml
+++ b/addons/microdagr/stringtable.xml
@@ -315,26 +315,31 @@
How much map data is filled on MicroDAGR'sJak duża część informacji mapy jest załadowana do MicroDAGR?Cuanta información está disponible en el mapa del MicroDAG
+ Wie viel Daten auf einem MicroDAGR zu sehen sindFull Satellite + BuildingsPełna satelitarna + budynkiSatelite completo + Edificios
+ Satellitenbild + GebäudeTopographical + RoadsTopograficzna + drogiTopografico + Carreteras
+ Topografisch + StraßenNone (Cannot use map view)Żadna (wyłącza ekran mapy)Nada (No se puede el mapa)
+ Keine (kann keine Kartenansicht verwenden)Controls how much data is filled on the microDAGR items. Less data restricts the map view to show less on the minimap.<br />Source: microDAGR.pboModuł ten pozwala kontrolować jak duża ilość informacji jest załadowana do przedmiotów MicroDAGR. Mniejsza ilość danych ogranicza widok mapy pokazując mniej rzeczy na minimapie.<br />Źródło: microDAGR.pboControla la cantidad de información disponible en el microDAGR. Menos datos limitan la vista del mapa a mostrar menos en el minimapa.<br />Fuente: microDAGR.pbo
+ Steuert wie viel Daten auf dem microDAGR zu sehen ist. Weniger Daten schränken die Kartenansicht ein, um mehr auf der Minimap zu sehen.<br />Quelle: microDAGR.pbo
-
\ No newline at end of file
+
diff --git a/addons/missileguidance/stringtable.xml b/addons/missileguidance/stringtable.xml
index 9c8ddde87b..ee5b02bb4b 100644
--- a/addons/missileguidance/stringtable.xml
+++ b/addons/missileguidance/stringtable.xml
@@ -19,7 +19,7 @@
Guida dei missili avanzata, o AMG, offre diversi miglioramenti alla teleguida di missili. E' anche un sistema necessario per i tipi di armi missile.Продвинутое наведение ракет, или ПНР, обеспечивает множество усовершествований для наведения и стрельбы ракет. Также, это система, необходимая для всех ракетных типов оружия.El guiado avanzado de misiles, o AMG en sus siglas en inglés, ofrece múltiples mejoras en el fijado y disparo de misiles. Es también un sistema requerido para armas de tipo misil.
- Das Erweiterte Raketenlenksystem, auch ERls genannt, bietet viele Verbesserungen zum Aufschalten und Feuern mittels gelenkten Raketen.
+ Das Erweiterte Raketenlenksystem, auch ERls genannt, bietet viele Verbesserungen zum Aufschalten und Feuern mittels gelenkter Raketen. Le guidage avancé de missile, ou AMG en anglais, apporte de multiple améliorations au verouillage et au tir de missiles. C'est aussi un framework requis pour tout arme de type missile.A fejlett rakétairányító (vagy AMG) többféle módosítást tartalmaz a rakéták célkövetéséhez és tüzeléséhez. Ez egy szükséges keresztrendszer a rakéta-alapú fegyverekhez.Orientação avançada de mísseis ou OAM, fornece vários aprimoramentos para travamento de mísseis e disparos. Também é um sistema requerido para disparar armas que utilizem mísseis.
@@ -101,16 +101,19 @@
OffWyłączDesactivado
+ AusPlayer OnlyTylko graczSolo jugador
+ Nur SpielerPlayer and AIGracz oraz AIJugador e IA
+ Spieler und KI
-
\ No newline at end of file
+
diff --git a/addons/missionmodules/stringtable.xml b/addons/missionmodules/stringtable.xml
index ed923d2afc..86d9725af2 100644
--- a/addons/missionmodules/stringtable.xml
+++ b/addons/missionmodules/stringtable.xml
@@ -5,86 +5,103 @@
ACE Mission ModulesACE Moduły misjiMódulo de misiones ACE
+ ACE-MissionsmoduleAmbiance Sounds [ACE]Dźwięki [ACE][ACE] Sonidos ambiente
+ Umgebungsgeräusche [ACE]SoundsDźwiękiSonidos
+ SoundsClass names of the ambiance sounds to be played. Seperated by ','Class name-y dźwięków do odtwarzania. Oddzielone przy użyciu ','Class names de los sonidos ambiente que se reproducirán. Separados por ','
+ Klassennamen der Umgebungsgeräusche, die abgespielt werden sollen. Getrennt durch ","Minimal DistanceMinimalny dystansDistancia mínima
+ MindestabstandUsed for calculating a random position and sets the minimal distance between the players and the played sound file(s)Używany do obliczania losowej pozycji a także ustawia minimalny dystans pomiędzy graczami a odtwarzanymi plikami dźwiękowymiUsado para calcular una posición aleatoria y establecer la distancia mínima entre los jugadores y los ficheros de sonido reproducidos
+ Wird verwendet, um eine zufällige Position zu bestimmen und setzt den Mindestabstand zwischen Spielern und der/den abzuspielenden Sounddatei(en) festMaximum DistanceMaksymalny dystansDistancia máxima
+ MaximalabstandUsed for calculating a random position and sets the maximum distance between the players and the played sound file(s)Używany do obliczania losowej pozycji a także ustawia maksymalny dystans pomiędzy graczami a odtwarzanymi plikami dźwiękowymiUsado para calcular una posición aleatoria y establecer la distancia máxima entre los jugadores y los ficheros de sonido reproducidos
+ Wird verwendet, um eine zufällige Position zu bestimmen und setzt den Maximalabstand zwischen Spielern und der/den abzuspielenden Sounddatei(en) festMinimal DelayMinimalne opóźnienieRetraso mínimo
+ Minimale VerzögerungMinimal delay between sounds playedMinimalne opóźnienie pomiędzy odtwarzanymi dźwiękamiRetraso mínimo entre los sonidos reproducidos
+ Minimale Verzögerung zwischen abzuspielenden SoundsMaximum DelayMaksymalne opóźnienieRetraso máximo
+ Maximale VerzögerungMaximum delay between sounds playedMaksymalne opóźnienie pomiędzy odtwarzanymi dźwiękamiRetraso máximo entre los sonidos reproducidos
+ Maximale Verzögerung zwischen abzuspielenden SoundsFollow PlayersPodążaj za graczamiSeguir jugadores
+ Spielern folgenFollow players. If set to false, loop will play sounds only nearby logic position.Podążaj za graczami. Jeżeli ustawione na 'Nie', pętla będzie odtwarzana tylko w pobliżu pozycji logiki.Seguir jugadores. Si esta desabilitado (false), se reproducirán sonidos en bucle solo cerca de la posición lógica.
+ Spielern folgen. Wenn auf falsch gesetzt, werden Sounds nur in der Nähe des Logikmoduls abgespielt.VolumeGłośnośćVolumen
+ LautstärkeThe volume of the sounds playedGłośność odtwarzanych dźwiękówVolumen de los sonidos reproducidos
+ Lautstärke der abzuspielenden SoundsAmbiance sounds loop (synced across MP)Pętla odtwarzania dzwięków (synchronizowana na MP)Bucle de sonidos ambiente (sincronizados en MP)
+ Umgebungsgeräusch-Schleife (im MP synchronisiert)
-
\ No newline at end of file
+
diff --git a/addons/mk6mortar/CfgVehicles.hpp b/addons/mk6mortar/CfgVehicles.hpp
index aca60f7e0c..9206b459c3 100644
--- a/addons/mk6mortar/CfgVehicles.hpp
+++ b/addons/mk6mortar/CfgVehicles.hpp
@@ -43,12 +43,9 @@ class CfgVehicles {
};
};
- class Logic;
- class Module_F: Logic {
- class ModuleDescription {};
- };
- class GVAR(module): Module_F {
- author = ECSTRING(common,ACETeam);
+ class ACE_Module;
+ class GVAR(module): ACE_Module {
+ author = "ECSTRING(common,ACETeam);
category = "ACE";
displayName = CSTRING(Module_DisplayName);
function = QFUNC(moduleInit);
@@ -76,8 +73,8 @@ class CfgVehicles {
defaultValue = 1;
};
};
- class ModuleDescription: ModuleDescription {
+ class ModuleDescription {
description = CSTRING(Module_Description);
};
};
-};
\ No newline at end of file
+};
diff --git a/addons/mk6mortar/stringtable.xml b/addons/mk6mortar/stringtable.xml
index ff37742681..d5559609e3 100644
--- a/addons/mk6mortar/stringtable.xml
+++ b/addons/mk6mortar/stringtable.xml
@@ -53,40 +53,48 @@
MK6 SettingsMoździerz MK6 - UstawieniaAjustes MK6
+ MK6-EinstellungenAir ResistanceOpór powietrzaResistencia al aire
+ LuftwiderstandFor Player Shots, Model Air Resistance and Wind EffectsModeluj opór powietrza oraz wpływ wiatru na tor lotu pocisku dla strzałów z moździerza MK6 przez graczyPara disparos del jugador, modelo de resistencia al aire y efectos de viento
+ Für Spielerschüsse, Luftwiderstand und WindeffekteAllow MK6 ComputerKomputer MK6Habilitar ordenador del MK6
+ Erlaube MK6-ComputerShow the Computer and Rangefinder (these NEED to be removed if you enable air resistance)Zezwól na komputer i dalmierz (opcja ta MUSI zostać wyłączona jeżeli aktywowałeś opór powietrza)Muestra el ordenador y el medidor de distancia (DEBEN ser quitados si se activa la resistecia al aire)
+ Zeige den Computer und den Entfernungsmesser an (diese MÜSSEN entfernt werden, wenn der Luftwiderstand aktiviert ist)Allow MK6 CompassKompas MK6Habilitar brujula del MK6
+ Erlaube MK6-KompassShow the MK6 Digital CompassPokaż kompas MK6Muestra la brujula digital en el MK6
+ Zeige MK6-Digitaler-KompassModuł ten pozwala dostosować ustawienia moździerza MK6.
+ Dieses Modul erlaubt das Einstellen des MK6-Mörsers.
-
\ No newline at end of file
+
diff --git a/addons/modules/XEH_postInit.sqf b/addons/modules/XEH_postInit.sqf
index b6aecf5f90..2e115d020b 100644
--- a/addons/modules/XEH_postInit.sqf
+++ b/addons/modules/XEH_postInit.sqf
@@ -1,44 +1,46 @@
#include "script_component.hpp"
-// TODO This is a basic and limited implementation that mimics some of the functionality from the A3 module framework, but not all of it.
-// We have to execute this in the postInit XEH because on object init, the parameters of the modules are not yet available. They are if we execute it at the start of postInit execution.
-{
- [_x] call {
- private ["_logic", "_logicType", "_config", "_isGlobal", "_isDisposable", "_isPersistent","_function"];
- _logic = _this select 0;
- _logicType = typeof _logic;
- _logic hideobject true;
+["InitSettingsFromModules", {
+ // TODO This is a basic and limited implementation that mimics some of the functionality from the A3 module framework, but not all of it.
+ // We have to execute this in the postInit XEH because on object init, the parameters of the modules are not yet available. They are if we execute it at the start of postInit execution.
+ {
+ [_x] call {
+ private ["_logic", "_logicType", "_config", "_isGlobal", "_isDisposable", "_isPersistent","_function"];
+ _logic = _this select 0;
+ _logicType = typeof _logic;
+ _logic hideobject true;
- if (_logic getvariable [QGVAR(initalized), false]) exitwith {};
- _config = (configFile >> "CfgVehicles" >> _logicType);
- if !(isClass _config) exitwith {};
+ if (_logic getvariable [QGVAR(initalized), false]) exitwith {};
+ _config = (configFile >> "CfgVehicles" >> _logicType);
+ if !(isClass _config) exitwith {};
- // isGlobal = 1;
- _isGlobal = getNumber (_config >> "isGlobal") > 0;
- _isDisposable = getNumber (_config >> "isDisposable") > 0;
- _isPersistent = getNumber (_config >> "isPersistent") > 0 || getnumber (_config >> "isGlobal") > 1;
- _function = getText (_config >> "function");
- if (isnil _function) then {
- _function = compile _function;
- } else {
- _function = missionNamespace getvariable _function;
- };
+ // isGlobal = 1;
+ _isGlobal = getNumber (_config >> "isGlobal") > 0;
+ _isDisposable = getNumber (_config >> "isDisposable") > 0;
+ _isPersistent = getNumber (_config >> "isPersistent") > 0 || getnumber (_config >> "isGlobal") > 1;
+ _function = getText (_config >> "function");
+ if (isnil _function) then {
+ _function = compile _function;
+ } else {
+ _function = missionNamespace getvariable _function;
+ };
- if (_isGlobal) then {
- [_logic, [], true] call _function;
- } else {
- if (isServer) then {
+ if (_isGlobal) then {
[_logic, [], true] call _function;
+ } else {
+ if (isServer) then {
+ [_logic, [], true] call _function;
+ };
+ };
+
+ if !(_isPersistent) then {
+ _logic setvariable [QGVAR(initalized), true];
+ };
+
+ if (_isDisposable) then {
+ deleteVehicle _logic;
};
};
-
- if !(_isPersistent) then {
- _logic setvariable [QGVAR(initalized), true];
- };
-
- if (_isDisposable) then {
- deleteVehicle _logic;
- };
- };
-}foreach GVAR(moduleInitCollection);
+ }foreach GVAR(moduleInitCollection);
+}] call FUNC(addEventhandler);
diff --git a/addons/modules/config.cpp b/addons/modules/config.cpp
index c5880e7bb1..d25e193d32 100644
--- a/addons/modules/config.cpp
+++ b/addons/modules/config.cpp
@@ -5,7 +5,7 @@ class CfgPatches {
units[] = {};
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
- requiredAddons[] = {"ace_common"};
+ requiredAddons[] = {"ace_main"};
author[] = {"Glowbal"};
authorUrl = "";
VERSION_CONFIG;
diff --git a/addons/nametags/CfgVehicles.hpp b/addons/nametags/CfgVehicles.hpp
index de1db9ec80..ff1a82a473 100644
--- a/addons/nametags/CfgVehicles.hpp
+++ b/addons/nametags/CfgVehicles.hpp
@@ -1,9 +1,6 @@
class CfgVehicles {
- class Logic;
- class Module_F: Logic {
- class ModuleDescription {};
- };
- class ACE_ModuleNameTags : Module_F {
+ class ACE_Module;
+ class ACE_ModuleNameTags: ACE_Module {
author = ECSTRING(common,ACETeam);
category = "ACE";
displayName = CSTRING(Module_DisplayName);
@@ -65,7 +62,7 @@ class CfgVehicles {
defaultValue = 0;
};
};
- class ModuleDescription: ModuleDescription {
+ class ModuleDescription {
description = CSTRING(Module_Description);
};
};
diff --git a/addons/nametags/stringtable.xml b/addons/nametags/stringtable.xml
index be8f69698b..5caa6dea41 100644
--- a/addons/nametags/stringtable.xml
+++ b/addons/nametags/stringtable.xml
@@ -113,100 +113,120 @@
Name TagsUstawienia imionEtiquetas de nombre
+ NamensanzeigenPlayer Names View Dist.Zasięg imion graczyDistancia de vision para nombres de jugadores
+ Spielernamen-DistanzDistance in meters at which player names are shown. Default: 5Dystans w metrach, na którym wyświetlane są imiona graczy. Domyślnie: 5Distancia en metros a la que se muestran los nombres de los jugadores. Por defecto: 5
+ Distanz in Metern bei der Spielernamen angezeigt werden. Standard: 5Show name tags for AI?Imiona AI¿Mostrar nombres para la IA?
+ Zeige Namensanzeigen für KI?Show the name and rank tags for friendly AI units? Default: Do not forcePokaż imiona i rangi przyjaznych jednostek AI? Domyślnie: Nie wymuszajMuestra etiquetas de nombre y rango para las unidades IA amigas? Por defecto: No forzar
+ Zeige den Namen und Rang für freundliche KI-Einheiten? Standard: nicht erwzingenDo Not ForceNie wymuszajNo forzar
+ Nicht erzwingenForce HideWymuś ukrycieOcultar forzado
+ Verstecken erzwingenForce showWymuś wyświetlanieMostrar forzado
+ Anzeigen erzwingenShow crew info?Pokaż załogę¿Mostrar información de la tripulación?
+ Zeige Besatzungsinfo?Show vehicle crew info, or by default allows players to choose it on their own. Default: Do Not ForcePokaż informacje o obsadzie pojazdu, lub pozwól graczom ustawić tą opcje według własnego uznania. Domyślnie: Nie wymuszajMuestra información de la tripulación, o por defecto permite a los jugadores elegirlo. Por defecto: No forzar
+ Zeige Fahrzeugbesatzungsinfo oder erlaube Spielern es auszuwählen. Standard: nicht erzwingen.Show for VehiclesPokaż dla pojazdówMostrar para vehiculos
+ Zeige bei FahrzeugenShow cursor NameTag for vehicle commander (only if client has name tags enabled)Default: NoPokazuj imię dowódcy pojazdu nad pojazdem (tylko jeżeli klient ma włączone imiona graczy). Domyślnie: NieMuestra etiquetas de nombre en el cursor para el comandante del vehiculo (solo si el cliente tiene las etiquetas de nombre activadas) Por defecto: No
+ Zeige Maus-Namensanzeigen für Fahrzeugkommandanten (nur wenn der Client Namensanzeigen aktiviert hat). Standard: NeinModuł ten pozwala dostosować ustawienia i zasięg wyświetlania imion.
+ Dieses Modul erlaubt die Einstellungen der Anzeigenamen zu verändern.DisabledWyłączoneDesactivado
+ DeaktiviertEnabledWłączoneActivado
+ AktiviertOnly CursorTylko pod kursoremSolo cursor
+ Nur bei MausOnly On KeypressTylko po wciśnięciu klawiszaSolo al pulsar tecla
+ Nur bei TastendruckOnly Cursor and KeyPressTylko pod kursorem i po wciśnięciu klawiszaEn cursor y al pulsar tecla
+ Nur Maus und TastendruckUse Nametag settingsUżyj ustawień imionUsar ajustes de etiquetas de nombre
+ Verwende NamenanzeigenAlways Show AllZawsze pokazuj wszystkieMostrar siempre todo
+ Immer alle zeigen
@@ -223,4 +243,4 @@
Text and Icon Size Scaling
-
\ No newline at end of file
+
diff --git a/addons/nightvision/functions/fnc_changeNVGBrightness.sqf b/addons/nightvision/functions/fnc_changeNVGBrightness.sqf
index 327c148883..22f96ce9b1 100644
--- a/addons/nightvision/functions/fnc_changeNVGBrightness.sqf
+++ b/addons/nightvision/functions/fnc_changeNVGBrightness.sqf
@@ -22,12 +22,12 @@ PARAMS_2(_player,_changeInBrightness);
_brightness = _player getVariable [QGVAR(NVGBrightness), 0];
-_brightness = ((round (10 * _brightness + _changeInBrightness) / 10) min 1) max -1;
+_brightness = ((round (10 * _brightness + _changeInBrightness) / 10) min 0.5) max -0.5;
_player setVariable [QGVAR(NVGBrightness), _brightness, false];
-GVAR(ppEffectNVGBrightness) ppEffectAdjust [1, 1, _brightness / 4, [0, 0, 0, 0], [0, 0, 0, 1], [0, 0, 0, 1]];
+GVAR(ppEffectNVGBrightness) ppEffectAdjust [1, (_brightness + 1), 0, [0, 0, 0, 0], [0, 0, 0, 1], [0, 0, 0, 1]];
GVAR(ppEffectNVGBrightness) ppEffectCommit 0;
-[format [(localize LSTRING(NVGBrightness)), (_brightness * 100)]] call EFUNC(common,displayTextStructured);
+[format [(localize LSTRING(NVGBrightness)), (_brightness * 10)]] call EFUNC(common,displayTextStructured);
playSound "ACE_Sound_Click";
diff --git a/addons/nightvision/stringtable.xml b/addons/nightvision/stringtable.xml
index 9fe8593e13..050945d5d8 100644
--- a/addons/nightvision/stringtable.xml
+++ b/addons/nightvision/stringtable.xml
@@ -5,7 +5,7 @@
NV Goggles (Gen1)Noktovizor (Gen1)JVN (Gen1)
- NS-Brille (Gen1)
+ NS-Brille (1. Gen.)Occhiali notturni (Gen1)Gogle noktowizyjne (Gen1)Óculos de visão noturna (Gen1)
@@ -17,7 +17,7 @@
NV Goggles (Gen2)Noktovizor (Gen2)JVN (Gen2)
- NS-Brille (Gen2)
+ NS-Brille (2. Gen.)Occhiali notturni (Gen2)Gogle noktowizyjne (Gen2)Óculos de visão noturna (Gen2)
@@ -29,7 +29,7 @@
NV Goggles (Gen3)Noktovizor (Gen3)JVN (Gen3)
- NS-Brille (Gen3)
+ NS-Brille (3. Gen.)Occhiali notturni (Gen3)Gogle noktowizyjne (Gen3)Óculos de visão noturna (Gen3)
@@ -41,7 +41,7 @@
NV Goggles (Gen3, Brown)Noktovizor (Gen3, hnědý)JVN (Gen3, marron)
- NS-Brille (Gen3, Braun)
+ NS-Brille (3. Gen., braun)Occhiali notturni (Gen3, marroni)Gogle noktowizyjne (Gen3, brązowe)Óculos de visão noturna (Gen3, marrons)
@@ -53,7 +53,7 @@
NV Goggles (Gen3, Green)Noktovizor (Gen3, zelený)JVN (Gen3, vertes)
- NS-Brille (Gen3, Grün)
+ NS-Brille (3. Gen., grün)Occhiali notturni (Gen3, verdi)Gogle noktowizyjne (Gen3, zielone)Óculos de visão noturna (Gen3, verdes)
@@ -65,7 +65,7 @@
NV Goggles (Gen3, Black)Noktovizor (Gen3, černý)JVN (Gen3, noires)
- NS-Brille (Gen3, Schwarz)
+ NS-Brille (3. Gen., schwarz)Occhiali notturni (Gen3, neri)Gogle noktowizyjne (Gen3, czarne)Óculos de visão noturna (Gen3, pretos)
@@ -77,7 +77,7 @@
NV Goggles (Gen4)Noktovizor (Gen4)JVN (Gen4)
- NS-Brille (Gen4)
+ NS-Brille (4. Gen.)Occhiali notturni (Gen4)Gogle noktowizyjne (Gen4)Óculos de visão noturna (Gen4)
@@ -134,4 +134,4 @@
Riduci la luminosità dell'NVG
-
+
\ No newline at end of file
diff --git a/addons/optionsmenu/stringtable.xml b/addons/optionsmenu/stringtable.xml
index 7f59830b75..d29670e097 100644
--- a/addons/optionsmenu/stringtable.xml
+++ b/addons/optionsmenu/stringtable.xml
@@ -3,7 +3,7 @@
ACE Options
- ACE Optionen
+ ACE-OptionenOpciones ACEUstawienia ACEACE Nastavení
@@ -245,56 +245,67 @@
Allow Config Export [ACE]Pozwól na eksport ustawień [ACE][ACE] Permitir exportar configuración
+ Erlaube Config-Export [ACE]AllowZezwólPermitir
+ ErlaubeAllow export of all settings to a server config formatted.Zezwól na eksport wszystkich ustawień do formatu konfiguracji serwera.Permitir la exportación de todos los ajustes de configuración a un servidor con formato.
+ Erlaube alle Einstellungen in einer Server-Config zu exportieren.When allowed, you have access to the settings modification and export in SP. Clicking export will place the formated config on your clipboard.Jeżeli ustawione na zezwól, wtedy będziesz mieć dostęp do ekranu modyfikacji wszystich ustawień i zmiennych ACE, a także będziesz mieć możliwość eksportu tychże ustawień do formatu rozpoznawalnego przez userconfig serwera. Kliknięcie opcji Eksportuj skopiuje wszystkie ustawienia do schowka. Działa tylko w trybie SP.Cuando esta permitido, se tiene acceso a los ajustes de modificación y exportación en SP. Pulsar en exportar copiara la configuración al portapapeles.
+ Wenn erlaubt, können die Einstellungsmodifikationen angezeigt und im SP exportiert werden. Wenn auf "Exportieren" geklickt wird, wird eine formatierte Config-Datei in der Zwischenablage abgespeichert.HideUkryjOcultar
+ VersteckenTop right, downwardsPo prawej u góry, w dółArriba a la derecha, hacia abajo
+ Open rechts, nach untenTop right, to the leftPo prawej u góry, do lewejArriba a la derecha, hacia la izquierda
+ Von rechts nach linksTop left, downwardsPo lewej u góry, w dółArriba a la izquierda, hacia abajo
+ Von links, nach untenTop left, to the rightPo lewej u góry, do prawejArriba a la izquierda, hacia la derecha
+ Oben links nach rechtsTopGóraArriba
+ ObenBottomDółAbajo
+ Unten
-
\ No newline at end of file
+
diff --git a/addons/overheating/CfgWeapons.hpp b/addons/overheating/CfgWeapons.hpp
index 44f23e24b7..025fa5e280 100644
--- a/addons/overheating/CfgWeapons.hpp
+++ b/addons/overheating/CfgWeapons.hpp
@@ -41,14 +41,14 @@ class CfgWeapons {
ACE_Overheating_JamChance[] = {0, 0.0003, 0.0015, 0.0075};
};
- class MMG_02_base_F : rifle_Base_F {
+ class MMG_02_base_F: Rifle_Long_Base_F {
ACE_Overheating_allowSwapBarrel = 1;
ACE_Overheating_Dispersion[] = {0, -0.001, 0.001, 0.004};
ACE_Overheating_SlowdownFactor[] = {1, 1, 1, 0.9};
ACE_Overheating_JamChance[] = {0, 0.0003, 0.0015, 0.0075};
};
- class MMG_01_base_F : rifle_Base_F {
+ class MMG_01_base_F: Rifle_Long_Base_F {
ACE_Overheating_allowSwapBarrel = 1;
ACE_Overheating_Dispersion[] = {0, -0.001, 0.001, 0.004};
ACE_Overheating_SlowdownFactor[] = {1, 1, 1, 0.9};
diff --git a/addons/rangecard/functions/fnc_calculateSolution.sqf b/addons/rangecard/functions/fnc_calculateSolution.sqf
index d8f0fe0cac..ea86d9986e 100644
--- a/addons/rangecard/functions/fnc_calculateSolution.sqf
+++ b/addons/rangecard/functions/fnc_calculateSolution.sqf
@@ -24,7 +24,9 @@
* 18: Stability factor
* 19: Twist Direction
* 20: Latitude
- * 21: Range Card Slot
+ * 21: Direction of Fire
+ * 22: Range Card Slot
+ * 23: Use advanced ballistics config?
*
* Return Value:
* 0: Elevation (MOA)
@@ -44,7 +46,7 @@
*/
#include "script_component.hpp"
-private ["_scopeBaseAngle", "_bulletMass", "_boreHeight", "_airFriction", "_muzzleVelocity", "_temperature", "_barometricPressure", "_relativeHumidity", "_simSteps", "_windSpeed1", "_windSpeed2", "_windDirection", "_inclinationAngle", "_targetSpeed", "_targetRange", "_drag", "_bc", "_dragModel", "_atmosphereModel", "_storeRangeCardData", "_stabilityFactor", "_twistDirection", "_latitude", "_directionOfFire", "_rangeCardSlot"];
+private ["_scopeBaseAngle", "_bulletMass", "_boreHeight", "_airFriction", "_muzzleVelocity", "_temperature", "_barometricPressure", "_relativeHumidity", "_simSteps", "_windSpeed1", "_windSpeed2", "_windDirection", "_inclinationAngle", "_targetSpeed", "_targetRange", "_drag", "_bc", "_dragModel", "_atmosphereModel", "_storeRangeCardData", "_stabilityFactor", "_twistDirection", "_latitude", "_directionOfFire", "_rangeCardSlot", "_useABConfig"];
_scopeBaseAngle = _this select 0;
_bulletMass = _this select 1;
_boreHeight = _this select 2;
@@ -69,6 +71,7 @@ _twistDirection = _this select 19;
_latitude = _this select 20;
_directionOfFire = _this select 21;
_rangeCardSlot = _this select 22;
+_useABConfig = _this select 23;
if (_storeRangeCardData) then {
GVAR(rangeCardDataMVs) set [_rangeCardSlot, format[" %1", round(_muzzleVelocity)]];
@@ -109,10 +112,17 @@ private ["_wind1", "_wind2", "_windDrift"];
_wind1 = [cos(270 - _windDirection * 30) * _windSpeed1, sin(270 - _windDirection * 30) * _windSpeed1, 0];
_wind2 = [cos(270 - _windDirection * 30) * _windSpeed2, sin(270 - _windDirection * 30) * _windSpeed2, 0];
_windDrift = 0;
-if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then {
+if (_useABConfig) then {
_bc = [_bc, _temperature, _barometricPressure, _relativeHumidity, _atmosphereModel] call EFUNC(advanced_ballistics,calculateAtmosphericCorrection);
};
+private ["_airFrictionCoef", "_airDensity"];
+_airFrictionCoef = 1;
+if (!_useABConfig && (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false])) then {
+ _airDensity = [_temperature, _barometricPressure, _relativeHumidity] call EFUNC(weather,calculateAirDensity);
+ _airFrictionCoef = _airDensity / 1.22498;
+};
+
private ["_speedTotal", "_stepsTotal", "_speedAverage"];
_speedTotal = 0;
_stepsTotal = 0;
@@ -139,7 +149,7 @@ while {_TOF < 6 && (_bulletPos select 1) < _targetRange} do {
_trueVelocity = _bulletVelocity vectorDiff _wind1;
_trueSpeed = vectorMagnitude _trueVelocity;
- if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then {
+ if (_useABConfig) then {
_drag = if (missionNamespace getVariable [QEGVAR(advanced_ballistics,extensionAvailable), false]) then {
parseNumber(("ace_advanced_ballistics" callExtension format["retard:%1:%2:%3", _dragModel, _bc, _trueSpeed]))
} else {
@@ -147,7 +157,7 @@ while {_TOF < 6 && (_bulletPos select 1) < _targetRange} do {
};
_bulletAccel = (vectorNormalized _trueVelocity) vectorMultiply (-1 * _drag);
} else {
- _bulletAccel = _trueVelocity vectorMultiply (_trueSpeed * _airFriction);
+ _bulletAccel = _trueVelocity vectorMultiply (_trueSpeed * _airFriction * _airFrictionCoef);
};
_bulletAccel = _bulletAccel vectorAdd _gravity;
diff --git a/addons/rangecard/functions/fnc_updateRangeCard.sqf b/addons/rangecard/functions/fnc_updateRangeCard.sqf
index d58e7ff6bb..4c3a1626ee 100644
--- a/addons/rangecard/functions/fnc_updateRangeCard.sqf
+++ b/addons/rangecard/functions/fnc_updateRangeCard.sqf
@@ -20,7 +20,8 @@
disableSerialization;
#define __dsp (uiNamespace getVariable "RangleCard_Display")
-private ["_airFriction", "_ammoConfig", "_atmosphereModel", "_barometricPressure", "_barrelLength", "_barrelTwist", "_bc", "_boreHeight", "_cacheEntry", "_column", "_control", "_dragModel", "_i", "_muzzleVelocity", "_mv", "_mvShift", "_offset", "_relativeHumidity", "_result", "_row", "_scopeBaseAngle", "_weaponConfig", "_zeroRange", "_initSpeed", "_initSpeedCoef"];
+private ["_airFriction", "_ammoConfig", "_atmosphereModel", "_barometricPressure", "_barrelLength", "_barrelTwist", "_bc", "_bulletMass", "_boreHeight", "_cacheEntry", "_column", "_control", "_dragModel", "_i", "_muzzleVelocity", "_mv", "_mvShift", "_offset", "_relativeHumidity", "_result", "_row", "_scopeBaseAngle", "_weaponConfig", "_zeroRange", "_initSpeed", "_initSpeedCoef", "_useABConfig"];
+_useABConfig = (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]);
PARAMS_3(_ammoClass,_magazineClass,_weaponClass);
@@ -80,14 +81,6 @@ lnbClear 770200;
lnbClear 770300;
lnbClear 770400;
-lnbAddRow [770100, ["4mps Wind(MRADs)", "1mps LEAD(MRADs)"]];
-if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then {
- lnbAddRow [770100, ["Air/Ammo Temp", "Air/Ammo Temp"]];
-
- lnbAddRow [770200, ["-15°C", " -5°C", " 5°C", " 10°C", " 15°C", " 20°C", " 25°C", " 30°C", " 35°C"]];
- lnbAddRow [770300, ["-15°C", " 10°C", " 35°C", "-15°C", " 10°C", " 35°C"]];
-};
-
GVAR(rangeCardDataElevation) = [[], [], [], [], [], [], [], [], []];
GVAR(rangeCardDataWindage) = [[], [], [], [], [], [], [], [], []];
GVAR(rangeCardDataLead) = [[], [], [], [], [], [], [], [], []];
@@ -105,7 +98,22 @@ _airFriction = _ammoConfig select 0;
_barrelTwist = _weaponConfig select 0;
_barrelLength = _weaponConfig select 2;
_muzzleVelocity = 0;
-if (_barrelLength > 0 && missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then {
+
+_bc = 0;
+if (count (_ammoConfig select 6) > 0) then {
+ _bc = (_ammoConfig select 6) select 0;
+};
+_dragModel = _ammoConfig select 5;
+_atmosphereModel = _ammoConfig select 8;
+_bulletMass = 5;
+_boreHeight = 3.81;
+_zeroRange = 100;
+
+if (_bc == 0) then {
+ _useABConfig = false;
+};
+
+if (_barrelLength > 0 && _useABConfig) then {
_muzzleVelocity = [_barrelLength, _ammoConfig select 10, _ammoConfig select 11, 0] call EFUNC(advanced_ballistics,calculateBarrelLengthVelocityShift);
} else {
_initSpeed = getNumber (configFile >> "CfgMagazines" >> _magazineClass >> "initSpeed");
@@ -119,7 +127,7 @@ if (_barrelLength > 0 && missionNamespace getVariable [QEGVAR(advanced_ballistic
_muzzleVelocity = _initSpeed;
};
-if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then {
+if (_useABConfig) then {
ctrlSetText [770000, format["%1'' - %2 gr (%3)", round((_ammoConfig select 1) * 39.3700787) / 1000, round((_ammoConfig select 3) * 15.4323584), _ammoClass]];
if (_barrelLength > 0 && _barrelTwist > 0) then {
ctrlSetText [770002, format["Barrel: %1'' 1:%2'' twist", round(_barrelLength * 0.0393700787), round(_barrelTwist * 0.0393700787)]];
@@ -128,14 +136,16 @@ if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) t
};
} else {
ctrlSetText [770000, getText (configFile >> "CfgMagazines" >> _magazineClass >> "displayNameShort")];
- ctrlSetText [770002, ""];
+ ctrlSetText [770002, getText (configFile >> "CfgWeapons" >> _weaponClass >> "displayName")];
};
-_bc = (_ammoConfig select 6) select 0;
-_dragModel = _ammoConfig select 5;
-_atmosphereModel = _ammoConfig select 8;
-_boreHeight = 3.81;
-_zeroRange = 100;
+lnbAddRow [770100, ["4mps Wind(MRADs)", "1mps LEAD(MRADs)"]];
+if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then {
+ lnbAddRow [770100, ["Air/Ammo Temp", "Air/Ammo Temp"]];
+
+ lnbAddRow [770200, ["-15°C", " -5°C", " 5°C", " 10°C", " 15°C", " 20°C", " 25°C", " 30°C", " 35°C"]];
+ lnbAddRow [770300, ["-15°C", " 10°C", " 35°C", "-15°C", " 10°C", " 35°C"]];
+};
_barometricPressure = 1013.25;
if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then {
@@ -147,27 +157,23 @@ if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) t
ctrlSetText [770001, format["Drop Tables for B.P.: %1mb; Corrected for MVV at Air/Ammo Temperatures -15-35 °C", round(_barometricPressure * 100) / 100]];
ctrlSetText [77004 , format["B.P.: %1mb", round(_barometricPressure * 100) / 100]];
} else {
- ctrlSetText [770001, getText (configFile >> "CfgWeapons" >> _weaponClass >> "displayName")];
+ ctrlSetText [770001, ""];
ctrlSetText [77004 , ""];
};
_cacheEntry = missionNamespace getVariable format[QGVAR(%1_%2_%3), _ammoClass, _weaponClass, missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]];
if (isNil {_cacheEntry}) then {
+ _result = [0, 0, _boreHeight, _airFriction, _muzzleVelocity, 15, 1013.25, 0.5, 1000, [0, 0], 0, 0, 0, _zeroRange, _bc, _dragModel, _atmosphereModel, false, 1.5, 0, 0, 0, 0, _useABConfig] call FUNC(calculateSolution);
+ _scopeBaseAngle = (_result select 0) / 60;
if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then {
{
_mvShift = [_ammoConfig select 9, _x] call EFUNC(advanced_ballistics,calculateAmmoTemperatureVelocityShift);
_mv = _muzzleVelocity + _mvShift;
- _result = [0, 0, _boreHeight, _airFriction, _mv, _x, 1013.25, 0.5, 1000, [0, 0], 0, 0, 0, _zeroRange, _bc, _dragModel, _atmosphereModel, false, 1.5, 0, 0, 0] call FUNC(calculateSolution);
- _scopeBaseAngle = (_result select 0) / 60;
-
- [_scopeBaseAngle,27,_boreHeight,_airFriction,_mv,_x,_barometricPressure,_relativeHumidity,1000,[4,0],3,0,1,GVAR(rangeCardEndRange),_bc,_dragModel,_atmosphereModel,true,1.5,1,46,23,_forEachIndex] call FUNC(calculateSolution);
+ [_scopeBaseAngle,_bulletMass,_boreHeight,_airFriction,_mv,_x,_barometricPressure,_relativeHumidity,1000,[4,0],3,0,1,GVAR(rangeCardEndRange),_bc,_dragModel,_atmosphereModel,true,1.5,1,46,23,_forEachIndex,_useABConfig] call FUNC(calculateSolution);
} forEach [-15, -5, 5, 10, 15, 20, 25, 30, 35];
- } else {
- _result = [0, 0, _boreHeight, _airFriction, _muzzleVelocity, _x, 1013.25, 0.5, 1000, [0, 0], 0, 0, 0, _zeroRange, _bc, _dragModel, _atmosphereModel, false, 1.5, 0, 0, 0] call FUNC(calculateSolution);
- _scopeBaseAngle = (_result select 0) / 60;
-
- [_scopeBaseAngle,27,_boreHeight,_airFriction,_muzzleVelocity,_x,_barometricPressure,_relativeHumidity,1000,[4,0],3,0,1,GVAR(rangeCardEndRange),_bc,_dragModel,_atmosphereModel,true,1.5,1,46,23,3] call FUNC(calculateSolution);
+ } else {
+ [_scopeBaseAngle,_bulletMass,_boreHeight,_airFriction,_muzzleVelocity,15,_barometricPressure,_relativeHumidity,1000,[4,0],3,0,1,GVAR(rangeCardEndRange),_bc,_dragModel,_atmosphereModel,true,1.5,1,46,23,3,_useABConfig] call FUNC(calculateSolution);
};
for "_i" from 0 to 9 do {
@@ -234,7 +240,7 @@ for "_column" from 0 to 8 do {
};
} forEach [0, 3, 8];
-if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then {
+if (_useABConfig) then {
ctrlSetText [770020, "For best results keep ammunition at ambient air temperature. Tables calculated for the above listed barrel"];
ctrlSetText [770021, "and load with optic mounted 1.5'' above line of bore."];
} else {
diff --git a/addons/respawn/CfgVehicles.hpp b/addons/respawn/CfgVehicles.hpp
index 1022dcab1e..aa99b4e942 100644
--- a/addons/respawn/CfgVehicles.hpp
+++ b/addons/respawn/CfgVehicles.hpp
@@ -1,9 +1,6 @@
class CfgVehicles {
- class Logic;
- class Module_F: Logic {
- class ModuleDescription {};
- };
- class ACE_ModuleRespawn: Module_F {
+ class ACE_Module;
+ class ACE_ModuleRespawn: ACE_Module {
author = ECSTRING(common,ACETeam);
category = "ACE";
displayName = CSTRING(Module_DisplayName);
@@ -27,12 +24,12 @@ class CfgVehicles {
defaultValue = 1;
};
};
- class ModuleDescription: ModuleDescription {
+ class ModuleDescription {
description = CSTRING(Module_Description);
};
};
- class ACE_ModuleFriendlyFire: Module_F {
+ class ACE_ModuleFriendlyFire: ACE_Module {
author = ECSTRING(common,ACETeam);
category = "ACE";
displayName = CSTRING(FriendlyFire_Module_DisplayName);
@@ -42,12 +39,12 @@ class CfgVehicles {
icon = QUOTE(PATHTOF(UI\Icon_Module_FriendlyFire_ca.paa));
class Arguments {};
- class ModuleDescription: ModuleDescription {
+ class ModuleDescription {
description = CSTRING(FriendlyFire_Module_Description);
};
};
- class ACE_ModuleRallypoint: Module_F {
+ class ACE_ModuleRallypoint: ACE_Module {
author = ECSTRING(common,ACETeam);
category = "ACE";
displayName = CSTRING(Rallypoint_Module_DisplayName);
@@ -57,7 +54,7 @@ class CfgVehicles {
icon = QUOTE(PATHTOF(UI\Icon_Module_Rallypoint_ca.paa));
class Arguments {};
- class ModuleDescription: ModuleDescription {
+ class ModuleDescription {
description = CSTRING(Rallypoint_Module_Description);
};
};
diff --git a/addons/respawn/stringtable.xml b/addons/respawn/stringtable.xml
index fe4b363c1c..3b45a38953 100644
--- a/addons/respawn/stringtable.xml
+++ b/addons/respawn/stringtable.xml
@@ -149,35 +149,42 @@
Respawn SystemSystem odrodzeniaSistema de reaparición
+ Respawn-SystemSave Gear?Zapisać ekwipunek?¿Guardar equipo?
+ Ausrüstung speichern?Respawn with the gear a soldier had just before his death?Odradzaj z ekwipunkiem jaki żołnierz miał tuż przed swoją śmiercią?Reaparece con el equipo que el soldado tenía justo antes de morir
+ Mit der Ausrüstung, die ein Soldat vor seinem Tod hatte, respawnen?Remove bodies?Usuwać ciała?¿Eliminar cuerpos?
+ Körper entfernen?Remove player bodies after disconnect?Usuwaj ciała graczy po rozłączeniu z serwera?Elimina los cuerpos de los jugadores cuando se desconecten
+ Entferne Spielerkörper nach dem Trennen einer Verbindung?Moduł ten pozwala dostosować ustawienia odrodzenia (respawnu).
+ Dieses Modul erlaubt es die Respawn-Einstellungen anzupassen.Friendly Fire MessagesWiadomości Friendly FireMensajes de fuego amigo
+ Freundbeschuss-Nachrichten
@@ -187,6 +194,7 @@
Rallypoint SystemSystem punktu zbiórkiSistema de punto de reunión
+ Rallypoint-System
@@ -196,11 +204,13 @@
Move RallypointPrzenieś punkt zbiórkiMover punto de reunión
+ Bewege RallypointACE RespawnACE OdrodzenieReaparición ACE
+ ACE-Respawn
-
\ No newline at end of file
+
diff --git a/addons/switchunits/CfgVehicles.hpp b/addons/switchunits/CfgVehicles.hpp
index 8e4507c605..7951a6cd59 100644
--- a/addons/switchunits/CfgVehicles.hpp
+++ b/addons/switchunits/CfgVehicles.hpp
@@ -1,6 +1,6 @@
class CfgVehicles {
- class Module_F;
- class ACE_ModuleSwitchUnits: Module_F {
+ class ACE_Module;
+ class ACE_ModuleSwitchUnits: ACE_Module {
author = ECSTRING(common,ACETeam);
category = "ACE";
displayName = CSTRING(Module_DisplayName);
@@ -50,4 +50,4 @@ class CfgVehicles {
description = CSTRING(Module_Description);
};
};
-};
\ No newline at end of file
+};
diff --git a/addons/switchunits/stringtable.xml b/addons/switchunits/stringtable.xml
index af99ac8417..16582b3d6d 100644
--- a/addons/switchunits/stringtable.xml
+++ b/addons/switchunits/stringtable.xml
@@ -29,70 +29,83 @@
SwitchUnits SystemSystem zmiany stronSistema de cambio de unidad
+ Einheiten-Switch-System?Switch to West?Zmiana na Zachód?¿Cambiar a Oeste?
+ Nach BLUFOR wechseln?Allow switching to west units?Pozwolić zmieniać graczom stronę na Zachód?¿Permitir cambios a unidades del Oeste?
+ Erlaube das Wechseln zu BLUFOR-Einheiten?Switch to East?Zmiana na Wschód?¿Cambiar a Este?
+ Nach OPFOR wechseln?Allow switching to east units?Pozwolić zmieniać graczom stronę na Wschód?¿Permitir cambios a unidades del Este?
+ Erlaube das Wechseln zu OPFOR-Einheiten?Switch to Independent?Zmiana na Ruch Oporu?¿Cambiar a Independiente?
+ Nach INDFOR wechseln?Allow switching to independent units?Pozwolić zmieniać stronę na Ruch Oporu?¿Permitir cambios a unidades Independientes?
+ Erlaube das Wechseln zu INDFOR-Einheiten?Switch to Civilian?Zmiana na Cywili?¿Cambiar a Civil?
+ Nach CIVILIAN wechseln?Allow switching to civilian units?Pozwolić zmieniać stronę na Cywili?¿Permitir cambios a unidades Civiles
+ Erlaube das Wechseln zu CIVILIAN-Einheiten?Enable Safe Zone?Aktywuj bezp. strefę?¿Habilitar zona segura?
+ Aktiviere Sicherheitszone?Enable a safe zone around enemy units? Players can't switch to units inside of the safe zone.Aktywuje bezpieczną strefę wokół jednostek przeciwnika. Gracze nie mogą zmieniać strony wewnątrz tej strefy.Habilita una zona segura alrededor de las unidades enemigas. Los jugadores no pueden cambiar de unidad dentro de la zona segura.
+ Aktiviere eine Sicherheitszone um feindliche Einheiten? Spieler können nicht zu Einheiten in der Sicherheitszone wechseln.Safe Zone RadiusPromień bezp. strefyRadio de la zona segura
+ SicherheitszonenradiusThe safe zone around players from a different team. Default: 200Promień bezpiecznej strefy wokół graczy z innych drużyn. Domyślnie: 200La zona segura alrededor de los jugadores de distintos equipos. Por defecto: 200
+ Die Sicherheitszone um Spieler von einem anderen Team. Standard: 200
-
\ No newline at end of file
+
diff --git a/addons/vehiclelock/CfgVehicles.hpp b/addons/vehiclelock/CfgVehicles.hpp
index fccbb59e93..9e6f155616 100644
--- a/addons/vehiclelock/CfgVehicles.hpp
+++ b/addons/vehiclelock/CfgVehicles.hpp
@@ -64,9 +64,10 @@ class CfgVehicles {
class Logic;
class Module_F: Logic {
- class ModuleDescription {};
+ class ModuleDescription;
};
- class ACE_VehicleLock_ModuleSetup: Module_F {
+ class ACE_Module: Module_F {};
+ class ACE_VehicleLock_ModuleSetup: ACE_Module {
author = ECSTRING(common,ACETeam);
category = "ACE";
displayName = CSTRING(Module_DisplayName);
@@ -99,12 +100,12 @@ class CfgVehicles {
defaultValue = "10";
};
};
- class ModuleDescription: ModuleDescription {
+ class ModuleDescription {
description = CSTRING(Module_Description);
};
};
- class ACE_VehicleLock_ModuleSyncedAssign: Module_F {
+ class ACE_VehicleLock_ModuleSyncedAssign: ACE_Module {
author = ECSTRING(common,ACETeam);
category = "ACE";
displayName = CSTRING(VehicleKeyAssign_Module_DisplayName);
@@ -119,4 +120,4 @@ class CfgVehicles {
sync[] = {"AnyPlayer", "AnyVehicle"};
};
};
-};
\ No newline at end of file
+};
diff --git a/addons/vehiclelock/stringtable.xml b/addons/vehiclelock/stringtable.xml
index f12b571f49..3cfbac7518 100644
--- a/addons/vehiclelock/stringtable.xml
+++ b/addons/vehiclelock/stringtable.xml
@@ -137,66 +137,79 @@
Vehicle Lock SetupUstawienie blokady pojazdówConfiguración del cierre del vehiculo
+ FahrzeugsperreinstellungenLock Vehicle InventoryZablokuj ekwipunek pojazduBloquear inventario del vehículo
+ Sperre FahrzeuginventarLocks the inventory of locked vehiclesBlokuje dostęp do ekwipunku pojazduBloquea el inventario de los vehículos cerrados
+ Sperrt das Inventar von gesperrten FahrzeugenVehicle Starting Lock StatePoczątkowy stan blok. poj.Estado inicial del cierre en vehículos
+ Fahrzeuge spawnen gesperrtSet lock state for all vehicles (removes ambiguous lock states)Ustawia początkowy stan blokady dla wszystkich pojazdów (usuwa dwuznaczne stany blokady)Establece el estado de cierre para todos los vehículos (elimina estados de cierre ambiguos)
+ Setze Sperrstatus für alle Fahrzeuge (entfernt unklare Sperrzustände)As IsJak jestEstá
+ UnverändertLockedZablokowanyCerrado
+ GesperrtUnlockedOdblokowanyAbierto
+ OffenDefault Lockpick StrengthCzas włamywaniaDurabilidad de la ganzua por defecto
+ Standard-Pick-StärkeDefault Time to lockpick (in seconds). Default: 10Domyślny czas potrzebny na otwarcie pojazdu (w sekundach). Domyślnie: 10Tiempo por defecto para forzar cerradura (en segundos). Por defecto: 10
+ Standardzeit um ein Schloss zu knacken (in Sekunden). Standard: 10Settings for lockpick strength and initial vehicle lock state. Removes ambiguous lock states.<br />Source: vehiclelock.pboUstawienia czasu włamywania oraz domyślnego stanu blokady pojazdów. Wyłącza dwuznaczne ustawienia blokady. Moduł ten umożliwia więc np. zamknięcie pojazdów przeciwnika na klucz tak, że gracze bez odpowiedniego sprzętu (wytrycha) nie będą mogli ich używać.<br />Źródło: vehiclelock.pboAjustes de la durabilidad de la ganzua y el estado inicial del cierre de los vehículos. Elimina estados de cierre ambiguos.<br />Fuente: vehiclelock.pbo
+ Einstellungen für Pick-Stärke und anfänglichen Fahrzeugsperrzustand. Entfernt unklare Sperrzustände.<br />Quelle: vehiclelock.pboVehicle Key AssignPrzydział kluczyka do pojazduAsignacion de la llave del vehículo
+ FahrzeugschlüsselzuweisungSync with vehicles and players. Will handout custom keys to players for every synced vehicle. Only valid for objects present at mission start.<br />Source: vehiclelock.pboZsynchronizuj z pojazdami i graczami. Rozda klucze dla graczy dla każdego zsynchronizowanego pojazdu. Działa tylko na pojazdy obecne na misji od samego początku (postawione w edytorze).<br />Źródło: vehiclelock.pboSincronizar con vehiculos y jugadores. Distribuirá llaves personalizadas a los jugadores para todos los vehículos sincronizados. Solo valido para objetos presentes al inicio de la mision.<br />Fuente: vehiclelock.pbo
+ Synchronisiere mit Fahrzeugen und Spielern. Wird eigene Schlüssel an Spieler für jedes synchronisierte Fahrzeuge aushändigen. Nur gültig für am Missionsstart existierende Fahrzeuge.<br />Quelle: vehiclelock.pbo
-
\ No newline at end of file
+
diff --git a/addons/viewdistance/ACE_Settings.hpp b/addons/viewdistance/ACE_Settings.hpp
index 87acad5667..8db97caa52 100644
--- a/addons/viewdistance/ACE_Settings.hpp
+++ b/addons/viewdistance/ACE_Settings.hpp
@@ -2,47 +2,45 @@ class ACE_Settings {
class GVAR(enabled) {
typeName = "BOOL";
value = 1;
- displayName = "Enable ACE viewdistance";
- description = "Enables ACE viewdistance module.";
+ displayName = "$STR_ACE_ViewDistance_enabled_DisplayName";
+ description = "$STR_ACE_ViewDistance_enabled_Description";
};
class GVAR(viewDistanceOnFoot) {
typeName = "SCALAR";
isClientSettable = 1;
value = 0; // index, NOT value // Can set it to client's actual viewdistance in the init function once ACE_Settings supports numbers (if ever).
- values[] = {"Video settings","500","1000","1500","2000","2500","3000","3500","4000","5000","6000","7000","8000","9000","10000"}; // Values also need to be changed in functions/fnc_returnValue.sqf
- displayName = "Client View Distance (On Foot)";
- description = "Changes in game view distance when the player is on foot.";
+ values[] = {"$STR_ACE_ViewDistance_videosettings","500","1000","1500","2000","2500","3000","3500","4000","5000","6000","7000","8000","9000","10000"}; // Values also need to be changed in functions/fnc_returnValue.sqf
+ displayName = "$STR_ACE_ViewDistance_onFoot_DisplayName";
+ description = "$STR_ACE_ViewDistance_onFoot_Description";
};
class GVAR(viewDistanceLandVehicle) {
typeName = "SCALAR";
isClientSettable = 1;
value = 0; // index, NOT value
- values[] = {"Video settings","500","1000","1500","2000","2500","3000","3500","4000","5000","6000","7000","8000","9000","10000"}; // Values also need to be changed in functions/fnc_returnValue.sqf
- displayName = "Client View Distance (Land Vehicle)";
- description = "Changes in game view distance when the player is in a land vehicle.";
+ values[] = {"$STR_ACE_ViewDistance_videosettings","500","1000","1500","2000","2500","3000","3500","4000","5000","6000","7000","8000","9000","10000"}; // Values also need to be changed in functions/fnc_returnValue.sqf
+ displayName = "$STR_ACE_ViewDistance_landVehicle_DisplayName";
+ description = "$STR_ACE_ViewDistance_landVehicle_Description";
};
class GVAR(viewDistanceAirVehicle) {
typeName = "SCALAR";
isClientSettable = 1;
value = 0; // index, NOT value
- values[] = {"Video settings","500","1000","1500","2000","2500","3000","3500","4000","5000","6000","7000","8000","9000","10000"}; // Values also need to be changed in functions/fnc_returnValue.sqf
- displayName = "Client View Distance (Air Vehicle)";
- description = "Changes in game view distance when the player is in an air vehicle.";
+ values[] = {"$STR_ACE_ViewDistance_videosettings","500","1000","1500","2000","2500","3000","3500","4000","5000","6000","7000","8000","9000","10000"}; // Values also need to be changed in functions/fnc_returnValue.sqf
+ displayName = "$STR_ACE_ViewDistance_airVehicle_DisplayName";
+ description = "$STR_ACE_ViewDistance_airVehicle_Description";
};
class GVAR(limitViewDistance) {
typeName = "SCALAR";
value = 10000; // Value, NOT index. 10000 is the maximum in A3
- displayName = "View Distance Limit";
- description = "Limit for client's view distance set here and can overridden by module";
+ displayName = "$STR_ACE_ViewDistance_limit_DisplayName";
+ description = "$STR_ACE_ViewDistance_limit_setting";
};
class GVAR(objectViewDistanceCoeff) {
typeName = "SCALAR";
isClientSettable = 1;
value = 0; // index. Actual coefficient is given by functions/fnc_returnObjectCoeff.sqf
- values[] = {"Off","Very Low","Low","Medium","High","Very High"};
- displayName = "Dynamic Object View Distance";
- description = "Sets the object view distance as a coefficient of the view distance.";
+ values[] = {"$STR_ACE_ViewDistance_object_off","$STR_ACE_ViewDistance_object_verylow","$STR_ACE_ViewDistance_object_low","$STR_ACE_ViewDistance_object_medium","$STR_ACE_ViewDistance_object_high","$STR_ACE_ViewDistance_object_veryhigh"};
+ displayName = "$STR_ACE_ViewDistance_object_DisplayName";
+ description = "$STR_ACE_ViewDistance_object_Description";
};
};
-
-// To do: include string table style displayName & description.
\ No newline at end of file
diff --git a/addons/viewdistance/CfgVehicles.hpp b/addons/viewdistance/CfgVehicles.hpp
index 5424a2733a..6d0271d149 100644
--- a/addons/viewdistance/CfgVehicles.hpp
+++ b/addons/viewdistance/CfgVehicles.hpp
@@ -4,23 +4,27 @@ class CfgVehicles {
author = ECSTRING(common,ACETeam);
category = "ACE";
function = QUOTE(DFUNC(initModule));
- displayName = "View Distance Limiter";
+ displayName = "$STR_ACE_ViewDistance_Module_DisplayName";
scope = 2;
isGlobal = 1;
//icon = ""; // needs an icon
class Arguments {
class moduleViewDistanceEnabled {
- displayName = "Enable ACE viewdistance";
- description = "Enables ACE viewdistance";
+ displayName = "$STR_ACE_ViewDistance_enabled_DisplayName";
+ description = "$STR_ACE_ViewDistance_enabled_Description";
typeName = "BOOL";
defaultValue = 1;
};
class moduleViewDistanceLimit {
- displayName = "View Distance Limit";
- description = "Sets the limit for how high clients can raise their view distance (<= 10000)";
+ displayName = "$STR_ACE_ViewDistance_limit_DisplayName";
+ description = "$STR_ACE_ViewDistance_limit_Description";
typeName = "NUMBER";
defaultValue = 10000;
};
+ };
+ class ModuleDescription {
+ description = "$STR_ACE_ViewDistance_Module_Description";
+ sync[] = {};
};
};
};
\ No newline at end of file
diff --git a/addons/viewdistance/functions/fnc_changeViewDistance.sqf b/addons/viewdistance/functions/fnc_changeViewDistance.sqf
index 30d308dc51..9060254c60 100644
--- a/addons/viewdistance/functions/fnc_changeViewDistance.sqf
+++ b/addons/viewdistance/functions/fnc_changeViewDistance.sqf
@@ -34,13 +34,13 @@ if (_object_view_distance_coeff > 0) then {
if (_show_prompt) then {
_text = if (_new_view_distance <= _view_distance_limit) then {
- format ["View Distance: %1m", str(viewDistance)];
+ format ["%1 %2m", (localize "STR_ACE_ViewDistance_infotext"), str(viewDistance)];
} else {
- format ["That option is invalid! The limit is %1m", str(viewDistance)];
+ format ["%1 %2m", (localize "STR_ACE_ViewDistance_invalid"), str(viewDistance)];
};
if (GVAR(objectViewDistanceCoeff) > 0) then {
- _text = _text + format [" Object View Distance is %1%2",str(_object_view_distance_coeff * 100),"%"];
+ _text = _text + format [" %1 %2%3", (localize "STR_ACE_ViewDistance_objectinfotext"), str(_object_view_distance_coeff * 100),"%"];
};
[parseText _text,2] call EFUNC(common,displayTextStructured);
};
diff --git a/addons/viewdistance/stringtable.xml b/addons/viewdistance/stringtable.xml
new file mode 100644
index 0000000000..33d667b65f
--- /dev/null
+++ b/addons/viewdistance/stringtable.xml
@@ -0,0 +1,105 @@
+
+
+
+
+ View Distance Limiter
+ Ogranicznik zasięgu widzenia
+
+
+ Allows limiting maximum view distance that can be set by players.
+ Pozwala ustawić maksymalny limit zasięgu widzenia.
+
+
+ Enable ACE viewdistance
+ Wł. zasięg widzenia ACE
+
+
+ Enables ACE viewdistance
+ Aktywuje możliwość zmiany zasięgu widzenia w menu ustawień ACE
+
+
+ View Distance Limit
+ Limit zas. widzenia
+
+
+ Sets the limit for how high clients can raise their view distance (up to 10000)
+ Ustawia maksymalny limit zasięgu widzenia jaki mogą ustawić gracze (do 10000)
+
+
+ Limit for client's view distance set here and can overridden by module
+ Limit zasięgu widzenia jest ustawiany tutaj i może zostać nadpisany poprzez moduł
+
+
+ Client View Distance (On Foot)
+ Zasięg widzenia (piechota)
+
+
+ Changes in game view distance when the player is on foot.
+ Zmienia zasięg widzenia kiedy gracz porusza się na piechotę.
+
+
+ Client View Distance (Land Vehicle)
+ Zasięg widzenia (pojazdy naziemne)
+
+
+ Changes in game view distance when the player is in a land vehicle.
+ Zmienia zasięg widzenia kiedy gracz porusza się pojazdami naziemnymi.
+
+
+ Client View Distance (Air Vehicle)
+ Zasięg widzenia (pojazdy lotnicze)
+
+
+ Changes in game view distance when the player is in an air vehicle.
+ Zmienia zasięg widzenia kiedy gracz porusza się pojazdami lotniczymi.
+
+
+ Dynamic Object View Distance
+ Dynamiczny zasięg rysowania obiektów
+
+
+ Sets the object view distance as a coefficient of the view distance.
+ Zmienia zasięg rysowania obiektów jako mnożnik zasięgu widzenia.
+
+
+ Off
+ Wyłącz
+
+
+ Very Low
+ Bardzo niski
+
+
+ Low
+ Niski
+
+
+ Medium
+ Średni
+
+
+ High
+ Wysoki
+
+
+ Very High
+ Bardzo wysoki
+
+
+ View Distance:
+ Zasięg widzenia:
+
+
+ Object View Distance is
+ Zasięg widzenia obiektów wynosi
+
+
+ That option is invalid! The limit is
+ Ta opcja jest nieprawidłowa! Limit wynosi
+
+
+ Video Settings
+ Ustawienia wideo
+
+
+
diff --git a/addons/weather/README.md b/addons/weather/README.md
index c5b210c70d..a2b719fc11 100644
--- a/addons/weather/README.md
+++ b/addons/weather/README.md
@@ -1,8 +1,8 @@
ace_weather
===========
-Fixes weather synchronisation across clients.
-
+This module simulates realistic weather effects, according to the geographical location of the map, the date and time.
+It also ensures that all players experience the same weather effects.
## Maintainers
diff --git a/addons/weather/XEH_preInit.sqf b/addons/weather/XEH_preInit.sqf
index 177b58ec82..eb5291334a 100644
--- a/addons/weather/XEH_preInit.sqf
+++ b/addons/weather/XEH_preInit.sqf
@@ -5,6 +5,7 @@ ADDON = false;
PREP(calculateAirDensity);
PREP(calculateBarometricPressure);
+PREP(calculateDensityAltitude);
PREP(calculateDewPoint);
PREP(calculateHeatIndex);
PREP(calculateRoughnessLength);
diff --git a/addons/weather/config.cpp b/addons/weather/config.cpp
index 18059fe9e8..50e2f8ace0 100644
--- a/addons/weather/config.cpp
+++ b/addons/weather/config.cpp
@@ -5,7 +5,7 @@ class CfgPatches {
units[] = {};
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
- requiredAddons[] = {"ace_common", "ace_modules"};
+ requiredAddons[] = {"ace_common"};
author[] = {"q1184", "Rocko", "esteldunedain", "Ruthberg"};
VERSION_CONFIG;
};
diff --git a/addons/weather/functions/fnc_calculateDensityAltitude.sqf b/addons/weather/functions/fnc_calculateDensityAltitude.sqf
new file mode 100644
index 0000000000..97889e2499
--- /dev/null
+++ b/addons/weather/functions/fnc_calculateDensityAltitude.sqf
@@ -0,0 +1,19 @@
+/*
+ * Author: Ruthberg
+ *
+ * Calculates density altitude for a given air density
+ *
+ * Arguments:
+ * density of air - kg * m^(-3)
+ *
+ * Return Value:
+ * density altitude - m
+ *
+ * Return value:
+ * None
+ */
+#include "script_component.hpp"
+
+// Source: http://wahiduddin.net/calc/density_altitude.htm
+
+((44.3308 - 42.2665 * _this ^ 0.2349692456) * 1000)
diff --git a/addons/weather/functions/fnc_updateAceWeather.sqf b/addons/weather/functions/fnc_updateAceWeather.sqf
index de5a644835..029e1eb89b 100644
--- a/addons/weather/functions/fnc_updateAceWeather.sqf
+++ b/addons/weather/functions/fnc_updateAceWeather.sqf
@@ -27,11 +27,11 @@ if (GVAR(syncRain) && GVAR(rain_period_count) > GVAR(rain_next_period)) then {
_rainOverCast = (overcast - 0.7) / 0.3;
if (GVAR(current_rain) == 0) then {
// Initialize rain with a random strength depending on the current overcast value
- GVAR(current_rain) = 0.25 + (random 0.25) + (random 0.5) * _rainOverCast;
+ GVAR(current_rain) = -0.25 + (random 0.75) + (random 0.5) * _rainOverCast;
};
GVAR(current_rain) = GVAR(current_rain) + GVAR(current_rain) * ((_rainOverCast * _overcastMultiplier) / 8) * GVAR(rain_current_range);
- GVAR(current_rain) = 0.01 max GVAR(current_rain) min 1;
+ GVAR(current_rain) = 0 max GVAR(current_rain) min 1;
GVAR(rain_current_range) = -1 + (random 2);
} else {
diff --git a/addons/weather/stringtable.xml b/addons/weather/stringtable.xml
index e4967b47e0..3443bb4b47 100644
--- a/addons/weather/stringtable.xml
+++ b/addons/weather/stringtable.xml
@@ -17,71 +17,85 @@
WeatherPogodaClima
+ WetterMultiplayer synchronized ACE weather moduleSynchronizowana pogoda ACEModulo climático del ACE sincronizado en multijugador
+ ACE-Wettermodul (synchron im Multiplayer)Weather propagationZmiany pogodyPropagación del clima
+ WetterübertragungEnables server side weather propagationAktywuje zmiany pogody po stronie serweraPermite al servidor controlar la propagación del clima
+ Aktiviere serverseitige WetterübertragungACE WeatherPogoda ACEClima ACE
+ ACE-WetterOverrides the default weather (editor, mission settings) with ACE weather (map based)Nadpisuje domyślne ustawienia pogody (edytor, wywiad) przy użyciu pogody ACE (zależna od mapy)Sobreescribe el sistema climático por defecto (editor, ajustes de mision) con clima del ACE (basado en el mapa)
+ Überschreibt das Standardwetter (Editor, Missionseinstellungen) mit dem ACE-Wetter (kartenbasiert)Sync RainSynchronizuj deszczSincronizar lluvia
+ Regen synchronisierenSynchronizes rainSynchronizuje deszczSincroniza la lluvia
+ Synchronisiert den RegenSync WindSynchronizuj wiatrSincronizar viento
+ Wind synchronisierenSynchronizes windSynchronizuje wiatrSincroniza el viento
+ Synchronisiert den WindSync MiscSynchronizuj różneSincronizar otros
+ Sonstiges synchronisierenSynchronizes lightnings, rainbow, fog, ...Synchronizuje pioruny, tęcze, mgłę, ...Sincroniza relampagos, arcoiris, niebla ...
+ Synchronisiert Blitze, Regenbögen, Nebel, ...Update IntervalInterwał aktualizacjiIntervalo de actualización
+ AktualisierungsintervallDefines the interval (seconds) between weather updatesOkreśla interwał (sekundy) pomiędzy aktualizacjami pogodyDefina el intervalo (en segundos) entre actualizacions de clima
+ Definiert das Intervall (in Sekunden) zwischen Wetteraktualisierungen
-
\ No newline at end of file
+
diff --git a/addons/winddeflection/stringtable.xml b/addons/winddeflection/stringtable.xml
index d38bcf8283..9a9a051fec 100644
--- a/addons/winddeflection/stringtable.xml
+++ b/addons/winddeflection/stringtable.xml
@@ -70,46 +70,55 @@
Wind DeflectionWpływ wiatruDesviación por viento
+ WindablenkungEnables wind deflectionAktywuje wpływ wiatru na trajektorię lotu pociskówActiva la desviación por viento
+ Aktiviert WindablenkungVehicle EnabledWłączone dla pojazdówHabilitada en vehículos
+ Fahrzeuge aktiviertEnables wind deflection for static/vehicle gunnersAktywuje wpływ wiatru na trajektorię lotu pocisków dla broni statycznej i na pojazdachHabilita la desviación por viento para artilleros estaticos/de vehículos
+ Aktiviere Windablenkung für statische oder FahrzeugschützenSimulation IntervalInterwał symulacjiIntervalo de simulación
+ SimulationsintervallDefines the interval between every calculation stepOkreśla interwał pomiędzy każdym krokiem kalkulacjiDefine el intervalo entre cada calculo
+ Definiert das Intervall zwischen jedem BerechnungsschrittSimulation RadiusZasięg symulacjiRadio de simulación
+ SimulationsradiusDefines the radius around the player (in meters) at which projectiles are wind deflectedOkreśla obszar naokoło gracza (w metrach), na którym pociski są znoszone przez wiatrDefine el radio alrededor del jugador (en metros) en el cual los proyectiles son desviados por el viento
+ Gibt den Radius (in Metern) um den Spieler an, in dem Projektile vom Wind beeinflusst werdenWind influence on projectiles trajectoryWpływ wiatru na trajektorię lotu pociskówInfluencia del viento en la trayectoria de proyectiles
+ Windeinfluss auf die Geschossbahnen
-
\ No newline at end of file
+
diff --git a/addons/zeus/ACE_Settings.hpp b/addons/zeus/ACE_Settings.hpp
index 536790ba26..2630c72dff 100644
--- a/addons/zeus/ACE_Settings.hpp
+++ b/addons/zeus/ACE_Settings.hpp
@@ -18,6 +18,6 @@ class ACE_Settings {
class GVAR(revealMines) {
typeName = "SCALAR";
value = 0;
- values[] = {"Disabled", "Partially", "Fully"};
+ values[] = {"$STR_ACE_Zeus_revealMines_disable", "$STR_ACE_Zeus_revealMines_partial", "$STR_ACE_Zeus_revealMines_full"};
};
};
diff --git a/addons/zeus/CfgFactionClasses.hpp b/addons/zeus/CfgFactionClasses.hpp
deleted file mode 100644
index bf34546727..0000000000
--- a/addons/zeus/CfgFactionClasses.hpp
+++ /dev/null
@@ -1,6 +0,0 @@
-class CfgFactionClasses {
- class NO_CATEGORY;
- class ADDON: NO_CATEGORY {
- displayName = "ACE Zeus";
- };
-};
diff --git a/addons/zeus/CfgVehicles.hpp b/addons/zeus/CfgVehicles.hpp
index 7d145c8421..439dede5b1 100644
--- a/addons/zeus/CfgVehicles.hpp
+++ b/addons/zeus/CfgVehicles.hpp
@@ -3,78 +3,112 @@ class CfgVehicles {
class ModuleEmpty_F;
class ACE_Module;
- class GVAR(moduleZeusSettings): ACE_Module {
+ class ModuleCurator_F: Module_F {
+ function = QFUNC(bi_moduleCurator);
+ };
+ class ModuleMine_F: ModuleEmpty_F {
+ function = QFUNC(bi_moduleMine);
+ };
+ class ModuleOrdnance_F: Module_F {
+ function = QFUNC(bi_moduleProjectile);
+ };
+ class ModuleRemoteControl_F: Module_F {
+ function = QFUNC(bi_moduleRemoteControl);
+ };
+ class GVAR(moduleSettings): ACE_Module {
scope = 2;
- displayName = "Zeus Settings [ACE]";
- //icon = QUOTE(PATHTOF(iconGoesHere));
- category = "ACE_zeus";
- function = QUOTE(DFUNC(moduleZeusSettings));
+ displayName = "$STR_ACE_Zeus_Module_DisplayName";
+ icon = QUOTE(PATHTOF(UI\Icon_Module_Zeus_Settings_ca.paa));
+ category = "ACE";
+ function = QFUNC(moduleZeusSettings);
functionPriority = 1;
isGlobal = 1;
isTriggerActivated = 0;
author = "SilentSpike";
class Arguments {
class zeusAscension {
- displayName = "Ascension Messages";
- description = "Display global popup messages when a player is assigned as Zeus.";
+ displayName = "$STR_ACE_Zeus_ascension_DisplayName";
+ description = "$STR_ACE_Zeus_ascension_Description";
typeName = "BOOL";
defaultValue = 0;
};
class zeusBird {
- displayName = "Zeus Eagle";
- description = "Spawn an eagle that follows the Zeus camera.";
+ displayName = "$STR_ACE_Zeus_bird_DisplayName";
+ description = "$STR_ACE_Zeus_bird_Description";
typeName = "BOOL";
defaultValue = 0;
};
class remoteWind {
- displayName = "Wind Sounds";
- description = "Play wind sounds when Zeus remote controls a unit.";
+ displayName = "$STR_ACE_Zeus_remoteWind_DisplayName";
+ description = "$STR_ACE_Zeus_remoteWind_Description";
typeName = "BOOL";
defaultValue = 0;
};
class radioOrdnance {
- displayName = "Ordnance Warning";
- description = "Play a radio warning when Zeus uses ordnance.";
+ displayName = "$STR_ACE_Zeus_radioOrdnance_DisplayName";
+ description = "$STR_ACE_Zeus_radioOrdnance_Description";
typeName = "BOOL";
defaultValue = 0;
};
class revealMines {
- displayName = "Reveal Mines";
- description = "Reveal mines to allies and/or place map markers.";
+ displayName = "$STR_ACE_Zeus_revealMines_DisplayName";
+ description = "$STR_ACE_Zeus_revealMines_Description";
typeName = "NUMBER";
class values {
class disable {
- name = "Disabled";
+ name = "$STR_ACE_Zeus_revealMines_disable";
value = 0;
default = 1;
};
class partial {
- name = "Reveal to Allies";
+ name = "$STR_ACE_Zeus_revealMines_partial";
value = 1;
};
class full {
- name = "Allies + Map Markers";
+ name = "$STR_ACE_Zeus_revealMines_full";
value = 2;
};
};
};
};
class ModuleDescription {
- description = "Provides control over various aspects of Zeus.";
+ description = "$STR_ACE_Zeus_Module_Description";
sync[] = {};
};
};
-
- class ModuleCurator_F: Module_F {
- function = QUOTE(DFUNC(bi_moduleCurator));
+ class GVAR(moduleBase): Module_F {
+ author = "SilentSpike";
+ category = "ACE";
+ scopeCurator = 2;
};
- class ModuleMine_F: ModuleEmpty_F {
- function = QUOTE(DFUNC(bi_moduleMine));
+ class GVAR(moduleCaptive): GVAR(moduleBase) {
+ curatorCanAttach = 1;
+ displayName = "$STR_ACE_Zeus_ModuleCaptive_DisplayName";
+ function = QFUNC(moduleCaptive);
+ icon = QUOTE(PATHTOF(UI\Icon_Module_Zeus_Captive_ca.paa));
+ class ModuleDescription {
+ description = "Flips the capture state of the specified unit.";
+ sync[] = {};
+ };
};
- class ModuleOrdnance_F: Module_F {
- function = QUOTE(DFUNC(bi_moduleProjectile));
+ class GVAR(moduleSurrender): GVAR(moduleBase) {
+ curatorCanAttach = 1;
+ displayName = "$STR_ACE_Zeus_ModuleSurrender_DisplayName";
+ function = QFUNC(moduleSurrender);
+ icon = QUOTE(PATHTOF(UI\Icon_Module_Zeus_Surrender_ca.paa));
+ class ModuleDescription {
+ description = "Flips the surrender state of the specified unit.";
+ sync[] = {};
+ };
};
- class ModuleRemoteControl_F: Module_F {
- function = QUOTE(DFUNC(bi_moduleRemoteControl));
+ class GVAR(moduleUnconscious): GVAR(moduleBase) {
+ curatorCanAttach = 1;
+ displayName = "$STR_ACE_Zeus_ModuleUnconscious_DisplayName";
+ function = QFUNC(moduleUnconscious);
+ icon = QUOTE(PATHTOF(UI\Icon_Module_Zeus_Unconscious_ca.paa));
+ class ModuleDescription {
+ description = "Flips the unconscious state of the specified unit.";
+ sync[] = {};
+ };
};
};
diff --git a/addons/zeus/XEH_preInit.sqf b/addons/zeus/XEH_preInit.sqf
index e7bb1b96a5..1b2ac19263 100644
--- a/addons/zeus/XEH_preInit.sqf
+++ b/addons/zeus/XEH_preInit.sqf
@@ -6,6 +6,14 @@ PREP(bi_moduleCurator);
PREP(bi_moduleMine);
PREP(bi_moduleProjectile);
PREP(bi_moduleRemoteControl);
+PREP(handleZeusUnitAssigned);
+PREP(moduleCaptive);
+PREP(moduleSurrender);
+PREP(moduleUnconscious);
PREP(moduleZeusSettings);
+if (isServer) then {
+ ["zeusUnitAssigned", FUNC(handleZeusUnitAssigned)] call EFUNC(common,addEventHandler);
+};
+
ADDON = true;
diff --git a/addons/zeus/config.cpp b/addons/zeus/config.cpp
index 4bdc1cd5e1..7505f2770e 100644
--- a/addons/zeus/config.cpp
+++ b/addons/zeus/config.cpp
@@ -5,14 +5,30 @@ class CfgPatches {
units[] = {};
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
- requiredAddons[] = {"ace_common","ace_modules"};
+ requiredAddons[] = {"ace_common"};
author[] = {"SilentSpike"};
authorUrl = "https://github.com/SilentSpike";
VERSION_CONFIG;
};
+ // Use additional cfgPatches to contextually remove modules from zeus
+ class GVAR(captives): ADDON {
+ units[] = {
+ QGVAR(moduleCaptive),
+ QGVAR(moduleSurrender)
+ };
+ };
+ class GVAR(medical): ADDON {
+ units[] = {
+ QGVAR(moduleUnconscious)
+ };
+ };
+};
+
+class ACE_Curator {
+ GVAR(captives) = "ace_captives";
+ GVAR(medical) = "ace_medical";
};
#include "CfgEventHandlers.hpp"
-#include "CfgFactionClasses.hpp"
#include "CfgVehicles.hpp"
#include "ACE_Settings.hpp"
diff --git a/addons/zeus/functions/fnc_bi_moduleCurator.sqf b/addons/zeus/functions/fnc_bi_moduleCurator.sqf
index 016d1ae078..b33d7461cd 100644
--- a/addons/zeus/functions/fnc_bi_moduleCurator.sqf
+++ b/addons/zeus/functions/fnc_bi_moduleCurator.sqf
@@ -2,9 +2,12 @@
* Author: Bohemia Interactive
* Module function for initalizing zeus
* Edited to remove eagle and global ascension message
+ * Added "zeusUnitAssigned" event call
*
* Arguments:
- * 0: The logic object