diff --git a/AUTHORS.txt b/AUTHORS.txt
index a6227478ed..737bfb590b 100644
--- a/AUTHORS.txt
+++ b/AUTHORS.txt
@@ -18,6 +18,7 @@ Kieran
NouberNou
PabstMirror
Ruthberg
+SilentSpike
tpM
ViperMaul
VKing
@@ -65,7 +66,7 @@ Hamburger SV
Harakhti
havena
Hawkins
-jokoho48
+jokoho482 `
Jonpas
Kavinsky
Kllrt
@@ -89,9 +90,9 @@ Raspu86
Riccardo Petricca
Robert Boklahánics
ruPaladin
-SilentSpike
simon84
Sniperwolf572
+SzwedzikPL
Tachi
Toaster
Tonic
diff --git a/README.md b/README.md
index a5d1d57306..72b1336b57 100644
--- a/README.md
+++ b/README.md
@@ -3,26 +3,24 @@
height="112">
-
+
-
-
diff --git a/ace_advanced_ballistics.dll b/ace_advanced_ballistics.dll
index 9d3708959c..dd19f1d0d4 100644
Binary files a/ace_advanced_ballistics.dll and b/ace_advanced_ballistics.dll differ
diff --git a/ace_medical.dll b/ace_medical.dll
index cab14d4a19..1f4f71d5ca 100644
Binary files a/ace_medical.dll and b/ace_medical.dll differ
diff --git a/addons/advanced_ballistics/stringtable.xml b/addons/advanced_ballistics/stringtable.xml
index 5c72c9c06c..eed6e20be3 100644
--- a/addons/advanced_ballistics/stringtable.xml
+++ b/addons/advanced_ballistics/stringtable.xml
@@ -30,136 +30,166 @@
Zaawansowana balistyka
Balística avanzada
Erweiterte Ballistik
+ Pokročilá balistika
Advanced Ballistics
Zaawansowana balistyka
Balística avanzada
Erweiterte Ballistik
+ Pokročilá balistika
Enables advanced ballistics
Aktywuje zaawansowaną balistykę
Activa la balística avanzada
Aktiviert die erweiterte Ballistik
+ Aktivuje pokročilou balistiku
Enabled For Snipers
Activada para francotiradores
+ Akt. dla snajperów
Für Scharfschützen aktiviert
+ Povoleno pro odstřelovače
Enables advanced ballistics for non local snipers (when using high power optics)
Activa la balística avanzada para francotiradores no locales (cuando se usa una mira telescópica)
+ Aktywuje zaawansowaną balistykę dla nielokalnych snajperów (kiedy używają optyki)
Aktiviert die erweiterte Ballistik für nicht lokale Scharfschützen (bei Benutzung von Optiken mit starker Vergrößerung)
+ Aktivuje pokročilou balistiku pro nelokální odstřelovače (když používá výkonnou optiku)
Enabled For Group Members
Activada para miembros de grupo
+ Akt. dla czł. grupy
Für Gruppenmitglieder aktiviert
+ Povoleno pro členy skupiny
Enables advanced ballistics for non local group members
Activada la balística avanzada para miembros de grupo no locales
+ Aktywuje zaawansowaną balistykę dla nielokalnych członków grupy
Aktiviert die erweiterte Ballistik für nicht lokale Gruppenmitglieder
+ Aktivuje pokročilou balistiku pro nelokální členy skupiny
Enabled For Everyone
Activada para todos
+ Akt. dla wszystkich
Für jeden aktiviert
+ Povoleno pro všechny
Enables advanced ballistics for all non local players (enabling this may degrade performance during heavy firefights in multiplayer)
Activada la balística avanzada para todos los jugadores no locales (activarlo puede degradar el rendimiento durante grandes tiroteos en multijugador).
+ Aktywuje zaawansowaną balistykę dla wszystkich nielokalnych graczy (aktywacja tej opcji może spodowować spory spadek wydajności podczas ciężkiej wymiany ognia)
Aktiviert die erweiterte Ballistik für alle nicht lokalen Spieler (das Aktivieren dieser Funktion kann zur Beeinträchtigung des Spielerlebnisses im Multiplayer führen)
+ Aktivovat pokročilou balistiku pro všechny nelokální hráče (aktivace této možnosti způsobuje pokles snímu za sekundu během těžké přestřelky v multiplayeru)
Always Enabled For Group Members
Zawsze akt. dla czł. grupy
Siempre activada para miembros de grupo
Für Gruppenmitglieder immer aktiviert
+ Vždy povoleno pro členy skupiny
Always enables advanced ballistics when a group member fires
Aktywuje zaawansowaną balistykę dla wszystkich członków grupy
Activada la balística avanzada siempre cuando miembros de grupo disparan
Aktiviert die erweiterte Ballistik immer, wenn ein Gruppenmitglied schießt
+ Aktivuje pokročilou balistiku pro členy skupiny
Disabled In FullAuto Mode
Wył. podczas ognia auto.
Desactivada en modo automático
Beim vollautomatischen Feuern deaktiviert
+ Zakázáno v automatickém režimu střelby
Disables the advanced ballistics during full auto fire
Dezaktywuje zaawansowaną balistykę podczas ognia automatycznego
Desactivada la balística avanzada durante el fuego automático
Deaktiviert die erweiterte Ballistik beim vollautomatischen Feuern
+ Zákáže pokročilou balistiku během střelby v režimu automat
Enable Ammo Temperature Simulation
Symulacja temp. amunicji
Activar simulación de temperatura de munición
Simulation der Munitionstemperatur aktivieren
+ Povolit simulaci teploty munice
Muzzle velocity varies with ammo temperature
Prędkość wylotowa pocisku jest zależna od temperatury amunicji
La velocidad de salida varía con la temperatura de la munición
Munitionstemperatur hat Einfluss auf die Mündungsgeschwindigkeit
+ Úsťová rychlost je závislá na teplotě munice
Enable Barrel Length Simulation
Symulacja długości lufy
Habilitar la simulación de longitud del cañón
Simulation der Lauflänge aktivieren
+ Povolit simulaci délky hlavně
Muzzle velocity varies with barrel length
Prędkość wylotowa pocisku jest zależna od długości lufy
La velocidad de salidal varía con la longitud del cañón
Lauflänge beeinflusst Mündungsgeschwindigkeit
+ Úsťová rychlost je závislá na délce hlavně
Enable Bullet Trace Effect
Efekt smugi pocisku
Activar el efecto trazador de la bala
Geschossspureffekt aktivieren
+ Povolit efekt trasírek
Enables a bullet trace effect to high caliber bullets (only visible when looking through high power optics)
Aktywuje efekt smugi pocisku dla pocisków wysokokalibrowych (widoczne tylko podczas patrzenia przez optykę)
Activa el efecto trazador de la balas de gran calibre (solo visible cuando se mira a través de una mira telescópica)
Aktiviere Geschossspureffekt für hohe Kaliber (bei Benutzung von Optiken mit starker Vergrößerung)
+ Aktivuje efekt trasírek z vysokokaliberních zbraní (viditelné pouze skrze výkonnou optiku)
Simulation Interval
Interwał symulacji
Intervalo de simulación
Simulationsintervall
+ Interval simulace
Defines the interval between every calculation step
Określa interwał pomiędzy każdym krokiem kalkulacji
Define el intervalo entre cada cálculo
Legt das Intervall zwischen den Berechnungsschritten fest
+ Určuje interval mezi každým výpočtem
Simulation Radius
Zasięg symulacji
Radio de simulación
Simulationsradius
+ Rozsah simulace
Defines the radius around the player (in meters) at which advanced ballistics are applied to projectiles
Określa obszar naokoło gracza (w metrach), na którym zaawansowana balistyka jest aplikowana dla pocisków
Define el radio alrededor del jugador (en metros) en el cual se aplica la balística avanzada a los proyectiles
Gibt den Radius (in Metern) um den Spieler an, bei dem die erweiterte Ballistik auf Geschosse angewendet wird
+ Určuje oblast kolem hráče (v metrech), kde je pokročilá balistika použita na projektil
Moduł ten pozwala aktywować zaawansowaną balistykę biorącą przy obliczeniach trajektorii lotu pocisku pod uwagę takie rzeczy jak temperatura powietrza, ciśnienie atmosferyczne, wilgotność powietrza, siły Coriolisa i Eotvosa, grawitację a także broń z jakiej wykonywany jest strzał oraz rodzaj amunicji. Wszystko to sprowadza się na bardzo dokładne odwzorowanie balistyki.
+ Tento modul umožňuje aktivovat pokročilou balistiku, která vypočítává trajektorii kulky a bere do úvahy věci jako je teplota vzduchu, atmosférický tlak, vlhkost vzduchu, gravitaci, typ munice a zbraň, ze které je náboj vystřelen. To vše přispívá k velmi přesné balistice.
-
+
\ No newline at end of file
diff --git a/addons/apl/data/Jezek_kov.rvmat b/addons/apl/data/Jezek_kov.rvmat
new file mode 100644
index 0000000000..d2133e6b5a
--- /dev/null
+++ b/addons/apl/data/Jezek_kov.rvmat
@@ -0,0 +1,79 @@
+ambient[]={1.000000,1.000000,1.000000,1.000000};
+diffuse[]={1.000000,1.000000,1.000000,1.000000};
+forcedDiffuse[]={0.000000,0.000000,0.000000,0.000000};
+emmisive[]={0.000000,0.000000,0.000000,1.000000};
+specular[]={1.000000,1.000000,1.000000,1.000000};
+specularPower=83.900002;
+PixelShaderID="Super";
+VertexShaderID="Super";
+class Stage1 {
+ texture="z\ace\addons\apl\data\jezek_texture_NOHQ.tga";
+ uvSource="tex";
+ class uvTransform {
+ aside[]={1.000000,0.000000,0.000000};
+ up[]={0.000000,1.000000,0.000000};
+ dir[]={0.000000,0.000000,0.000000};
+ pos[]={0.000000,0.000000,0.000000};
+ };
+};
+class Stage2 {
+ texture="#(argb,8,8,3)color(0.5,0.5,0.5,1,DT)";
+ uvSource="tex";
+ class uvTransform {
+ aside[]={1.000000,0.000000,0.000000};
+ up[]={0.000000,1.000000,0.000000};
+ dir[]={0.000000,0.000000,0.000000};
+ pos[]={0.000000,0.000000,0.000000};
+ };
+};
+class Stage3 {
+ texture="#(argb,8,8,3)color(0,0,0,0,MC)";
+ uvSource="tex";
+ class uvTransform {
+ aside[]={1.000000,0.000000,0.000000};
+ up[]={0.000000,1.000000,0.000000};
+ dir[]={0.000000,0.000000,0.000000};
+ pos[]={0.000000,0.000000,0.000000};
+ };
+};
+class Stage4 {
+ texture="#(argb,8,8,3)color(1,1,1,1,AS)";
+ uvSource="tex";
+ class uvTransform
+ {
+ aside[]={1.000000,0.000000,0.000000};
+ up[]={0.000000,1.000000,0.000000};
+ dir[]={0.000000,0.000000,0.000000};
+ pos[]={0.000000,0.000000,0.000000};
+ };
+};
+class Stage5 {
+ texture="z\ace\addons\apl\data\jezek_texture_SMDI.tga";
+ uvSource="tex";
+ class uvTransform {
+ aside[]={1.000000,0.000000,0.000000};
+ up[]={0.000000,1.000000,0.000000};
+ dir[]={0.000000,0.000000,0.000000};
+ pos[]={0.000000,0.000000,0.000000};
+ };
+};
+class Stage6 {
+ texture="#(ai,32,128,1)fresnel(1.85,0.64)";
+ uvSource="tex";
+ class uvTransform {
+ aside[]={1.000000,0.000000,0.000000};
+ up[]={0.000000,1.000000,0.000000};
+ dir[]={0.000000,0.000000,0.000000};
+ pos[]={0.000000,0.000000,0.000000};
+ };
+};
+class Stage7 {
+ texture="a3\data_f\env_land_co.paa";
+ uvSource="tex";
+ class uvTransform {
+ aside[]={1.000000,0.000000,0.000000};
+ up[]={0.000000,1.000000,0.000000};
+ dir[]={0.000000,0.000000,0.000000};
+ pos[]={0.000000,0.000000,0.000000};
+ };
+};
diff --git a/addons/apl/data/barbwire_a_co.paa b/addons/apl/data/barbwire_a_co.paa
new file mode 100644
index 0000000000..1809c2c08e
Binary files /dev/null and b/addons/apl/data/barbwire_a_co.paa differ
diff --git a/addons/apl/data/barbwire_a_nohq.paa b/addons/apl/data/barbwire_a_nohq.paa
new file mode 100644
index 0000000000..5612dc460a
Binary files /dev/null and b/addons/apl/data/barbwire_a_nohq.paa differ
diff --git a/addons/apl/data/barbwire_a_ns.rvmat b/addons/apl/data/barbwire_a_ns.rvmat
new file mode 100644
index 0000000000..0a6ad7c316
--- /dev/null
+++ b/addons/apl/data/barbwire_a_ns.rvmat
@@ -0,0 +1,78 @@
+ambient[]={1.000000,1.000000,1.000000,1.000000};
+diffuse[]={1.000000,1.000000,1.000000,1.000000};
+forcedDiffuse[]={0.000000,0.000000,0.000000,0.000000};
+emmisive[]={0.000000,0.000000,0.000000,1.000000};
+specular[]={1.000000,1.000000,1.000000,0.000000};
+specularPower=16.000000;
+PixelShaderID="Super";
+VertexShaderID="Super";
+class Stage1 {
+ texture="z\ace\addons\apl\data\BarbWire_A_NOHQ.tga";
+ uvSource="tex";
+ class uvTransform {
+ aside[]={1.000000,0.000000,0.000000};
+ up[]={0.000000,1.000000,0.000000};
+ dir[]={0.000000,0.000000,0.000000};
+ pos[]={0.000000,0.000000,0.000000};
+ };
+};
+class Stage2 {
+ texture="#(argb,8,8,3)color(0.5,0.5,0.5,1,DT)";
+ uvSource="tex";
+ class uvTransform {
+ aside[]={1.000000,0.000000,0.000000};
+ up[]={0.000000,1.000000,0.000000};
+ dir[]={0.000000,0.000000,0.000000};
+ pos[]={0.000000,0.000000,0.000000};
+ };
+};
+class Stage3 {
+ texture="#(argb,8,8,3)color(0,0,0,0,MC)";
+ uvSource="tex";
+ class uvTransform {
+ aside[]={1.000000,0.000000,0.000000};
+ up[]={0.000000,1.000000,0.000000};
+ dir[]={0.000000,0.000000,0.000000};
+ pos[]={0.000000,0.000000,0.000000};
+ };
+};
+class Stage4 {
+ texture="#(argb,8,8,3)color(1,1,1,1,AS)";
+ uvSource="tex";
+ class uvTransform {
+ aside[]={1.000000,0.000000,0.000000};
+ up[]={0.000000,1.000000,0.000000};
+ dir[]={0.000000,0.000000,0.000000};
+ pos[]={0.000000,0.000000,0.000000};
+ };
+};
+class Stage5 {
+ texture="#(argb,8,8,3)color(0,0,1,1,SMDI)";
+ uvSource="tex";
+ class uvTransform {
+ aside[]={1.000000,0.000000,0.000000};
+ up[]={0.000000,1.000000,0.000000};
+ dir[]={0.000000,0.000000,0.000000};
+ pos[]={0.000000,0.000000,0.000000};
+ };
+};
+class Stage6 {
+ texture="#(ai,32,128,1)fresnel(0.01,0.01)";
+ uvSource="tex";
+ class uvTransform {
+ aside[]={1.000000,0.000000,0.000000};
+ up[]={0.000000,1.000000,0.000000};
+ dir[]={0.000000,0.000000,0.000000};
+ pos[]={0.000000,0.000000,0.000000};
+ };
+};
+class Stage7 {
+ texture="#(argb,8,8,3)color(0,0,0,1,CO)";
+ uvSource="tex";
+ class uvTransform {
+ aside[]={1.000000,0.000000,0.000000};
+ up[]={0.000000,1.000000,0.000000};
+ dir[]={0.000000,0.000000,0.000000};
+ pos[]={0.000000,0.000000,0.000000};
+ };
+};
diff --git a/addons/apl/data/default_vehicle_ti_ca.paa b/addons/apl/data/default_vehicle_ti_ca.paa
new file mode 100644
index 0000000000..53ca8a62b7
Binary files /dev/null and b/addons/apl/data/default_vehicle_ti_ca.paa differ
diff --git a/addons/apl/data/glass_House.bisurf b/addons/apl/data/glass_House.bisurf
new file mode 100644
index 0000000000..b8b91bb2a6
--- /dev/null
+++ b/addons/apl/data/glass_House.bisurf
@@ -0,0 +1,10 @@
+Density=2400;
+rough=0;
+dust=0;
+bulletPenetrability=50;
+soundEnviron=Empty;
+isWater=false;
+friction=0.1;
+restitution=0.1;
+impact = Hit_Glass;
+soundHit = glass;
\ No newline at end of file
diff --git a/addons/apl/data/glass_house.rvmat b/addons/apl/data/glass_house.rvmat
new file mode 100644
index 0000000000..004fd8c6e5
--- /dev/null
+++ b/addons/apl/data/glass_house.rvmat
@@ -0,0 +1 @@
+surfaceInfo="z\ace\addons\apl\data\glass_House.bisurf";
\ No newline at end of file
diff --git a/addons/apl/data/jezek_texture_co.paa b/addons/apl/data/jezek_texture_co.paa
new file mode 100644
index 0000000000..7b2e16d0e7
Binary files /dev/null and b/addons/apl/data/jezek_texture_co.paa differ
diff --git a/addons/apl/data/jezek_texture_nohq.paa b/addons/apl/data/jezek_texture_nohq.paa
new file mode 100644
index 0000000000..6a34328e5f
Binary files /dev/null and b/addons/apl/data/jezek_texture_nohq.paa differ
diff --git a/addons/apl/data/jezek_texture_smdi.paa b/addons/apl/data/jezek_texture_smdi.paa
new file mode 100644
index 0000000000..415d98a09f
Binary files /dev/null and b/addons/apl/data/jezek_texture_smdi.paa differ
diff --git a/addons/apl/data/metal4_weapons_vehicles_int_512_dt.paa b/addons/apl/data/metal4_weapons_vehicles_int_512_dt.paa
new file mode 100644
index 0000000000..a023628a55
Binary files /dev/null and b/addons/apl/data/metal4_weapons_vehicles_int_512_dt.paa differ
diff --git a/addons/apl/data/plastic.bisurf b/addons/apl/data/plastic.bisurf
new file mode 100644
index 0000000000..84984886ec
--- /dev/null
+++ b/addons/apl/data/plastic.bisurf
@@ -0,0 +1,10 @@
+Density=1380;
+rough=0.1;
+dust=0;
+bulletPenetrability=150;
+soundEnviron=Empty;
+isWater=false;
+friction=0.7;
+restitution=0.3;
+impact = default_Mat;
+soundHit = plastic;
\ No newline at end of file
diff --git a/addons/apl/data/plastic.rvmat b/addons/apl/data/plastic.rvmat
new file mode 100644
index 0000000000..6cf20f3d7f
--- /dev/null
+++ b/addons/apl/data/plastic.rvmat
@@ -0,0 +1,4 @@
+surfaceInfo="z\ace\addons\apl\data\plastic.bisurf";
+
+diffuse[]={0.5,0.5,1.0,1.000000};
+ambient[]={0.5,0.5,1.0,1.000000};
\ No newline at end of file
diff --git a/addons/apl/data/plastic_512_dt.paa b/addons/apl/data/plastic_512_dt.paa
new file mode 100644
index 0000000000..62c48c90a4
Binary files /dev/null and b/addons/apl/data/plastic_512_dt.paa differ
diff --git a/addons/apl/data/plech.paa b/addons/apl/data/plech.paa
new file mode 100644
index 0000000000..240e1ce03f
Binary files /dev/null and b/addons/apl/data/plech.paa differ
diff --git a/addons/apl/data/vehicle_destr1024_1024_mc.paa b/addons/apl/data/vehicle_destr1024_1024_mc.paa
new file mode 100644
index 0000000000..68dfc1b977
Binary files /dev/null and b/addons/apl/data/vehicle_destr1024_1024_mc.paa differ
diff --git a/addons/apl/data/vehicle_destr1024_1024_smdi.paa b/addons/apl/data/vehicle_destr1024_1024_smdi.paa
new file mode 100644
index 0000000000..2a2cfc0357
Binary files /dev/null and b/addons/apl/data/vehicle_destr1024_1024_smdi.paa differ
diff --git a/addons/apl/sounds/padak_let.wss b/addons/apl/sounds/padak_let.wss
new file mode 100644
index 0000000000..19476becd8
Binary files /dev/null and b/addons/apl/sounds/padak_let.wss differ
diff --git a/addons/atragmx/CfgVehicles.hpp b/addons/atragmx/CfgVehicles.hpp
index 9e70047013..65ef589d0f 100644
--- a/addons/atragmx/CfgVehicles.hpp
+++ b/addons/atragmx/CfgVehicles.hpp
@@ -10,7 +10,7 @@ class CfgVehicles {
showDisabled = 0;
priority = 2;
icon = PATHTOF(UI\ATRAG_Icon.paa);
- exceptions[] = {"notOnMap", "isNotInside"};
+ exceptions[] = {"notOnMap", "isNotInside", "isNotSitting"};
};
};
};
diff --git a/addons/atragmx/initKeybinds.sqf b/addons/atragmx/initKeybinds.sqf
index a000a106f4..51d2338292 100644
--- a/addons/atragmx/initKeybinds.sqf
+++ b/addons/atragmx/initKeybinds.sqf
@@ -1,7 +1,7 @@
["ACE3 Equipment", QGVAR(ATragMXDialogKey), localize LSTRING(ATragMXDialogKey),
{
// Conditions: canInteract
- if !([ACE_player, objNull, []] call EFUNC(common,canInteractWith)) exitWith {false};
+ if !([ACE_player, objNull, ["notOnMap", "isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith)) exitWith {false};
if (GVAR(active)) exitWith {
closeDialog 0;
false
@@ -11,4 +11,26 @@
false
},
{false},
-[0, [false, false, false]], false, 0] call CBA_fnc_addKeybind; // (empty default key)
\ No newline at end of file
+[0, [false, false, false]], false, 0] call CBA_fnc_addKeybind; // (empty default key)
+
+
+//Add deviceKey entry:
+private ["_conditonCode", "_toggleCode", "_closeCode"];
+_conditonCode = {
+ [] call FUNC(can_show);
+};
+_toggleCode = {
+ // Conditions: canInteract
+ if !([ACE_player, objNull, ["notOnMap", "isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith)) exitWith {};
+ if (GVAR(active)) exitWith {
+ closeDialog 0;
+ };
+ // Statement
+ [] call FUNC(create_dialog);
+};
+_closeCode = {
+ if (GVAR(active)) exitWith {
+ closeDialog 0;
+ };
+};
+[(localize LSTRING(Name)), QUOTE(PATHTOF(UI\ATRAG_Icon.paa)), _conditonCode, _toggleCode, _closeCode] call EFUNC(common,deviceKeyRegisterNew);
diff --git a/addons/attach/functions/fnc_detach.sqf b/addons/attach/functions/fnc_detach.sqf
index 90c305329b..92df83b5c1 100644
--- a/addons/attach/functions/fnc_detach.sqf
+++ b/addons/attach/functions/fnc_detach.sqf
@@ -60,7 +60,7 @@ if (toLower _itemName in ["b_ir_grenade", "o_ir_grenade", "i_ir_grenade"]) then
detach _attachedObject;
_attachedObject setPos ((getPos _unit) vectorAdd [0, 0, -1000]);
// Delete attached item after 0.5 seconds
- [{deleteVehicle (_this select 0)}, [_attachedObject], 0.5, 0] call EFUNC(common,waitAndExecute);
+ [{deleteVehicle (_this select 0)}, [_attachedObject], 2] call EFUNC(common,waitAndExecute);
} else {
// Delete attached item
deleteVehicle _attachedObject;
diff --git a/addons/ballistics/CfgVehicles.hpp b/addons/ballistics/CfgVehicles.hpp
index 622dd7d0d1..bb50dcdc2e 100644
--- a/addons/ballistics/CfgVehicles.hpp
+++ b/addons/ballistics/CfgVehicles.hpp
@@ -225,5 +225,27 @@ class CfgVehicles {
MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_API_Mag,4);
MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_AMAX_Mag,4);
};
+ class AnimationSources {
+ class Ammo_source {
+ source = "user";
+ animPeriod = 1;
+ initPhase = 0;
+ };
+ class AmmoOrd_source {
+ source = "user";
+ animPeriod = 1;
+ initPhase = 1;
+ };
+ class Grenades_source {
+ source = "user";
+ animPeriod = 1;
+ initPhase = 1;
+ };
+ class Support_source {
+ source = "user";
+ animPeriod = 1;
+ initPhase = 1;
+ };
+ };
};
};
diff --git a/addons/ballistics/stringtable.xml b/addons/ballistics/stringtable.xml
index 96e4f720a6..171d7936b8 100644
--- a/addons/ballistics/stringtable.xml
+++ b/addons/ballistics/stringtable.xml
@@ -1597,6 +1597,7 @@
[ACE] Skrzynka z amunicją
[ACE] Caja de suministros de munición
[ACE] Munitionskiste
+ [ACE] Bedna s municí
-
+
\ No newline at end of file
diff --git a/addons/captives/ACE_Settings.hpp b/addons/captives/ACE_Settings.hpp
new file mode 100644
index 0000000000..73bafbab41
--- /dev/null
+++ b/addons/captives/ACE_Settings.hpp
@@ -0,0 +1,14 @@
+class ACE_Settings {
+ class GVAR(allowHandcuffOwnSide) {
+ displayName = CSTRING(ModuleSettings_handcuffSide_name);
+ description = CSTRING(ModuleSettings_handcuffSide_description);
+ typeName = "BOOL";
+ value = 1;
+ };
+ class GVAR(allowSurrender) {
+ displayName = CSTRING(ModuleSettings_allowSurrender_name);
+ description = CSTRING(ModuleSettings_allowSurrender_description);
+ typeName = "BOOL";
+ value = 1;
+ };
+};
diff --git a/addons/captives/CfgVehicles.hpp b/addons/captives/CfgVehicles.hpp
index a90d1ce478..746a1c4b63 100644
--- a/addons/captives/CfgVehicles.hpp
+++ b/addons/captives/CfgVehicles.hpp
@@ -56,15 +56,12 @@ class CfgVehicles {
priority = 2.2;
hotkey = "L";
};
- class ACE_FriskPerson {
- displayName = CSTRING(FriskPerson);
- distance = 2;
- condition = QUOTE([ARR_2(_player, _target)] call FUNC(canFriskPerson));
- statement = QUOTE([ARR_2(_player, _target)] call FUNC(doFriskPerson));
- showDisabled = 0;
- //icon = ""; //@todo
- priority = 3;
- hotkey = "F";
+ class GVAR(UnloadCaptive) {
+ displayName = CSTRING(UnloadCaptive);
+ distance = 4;
+ condition = QUOTE([ARR_2(_player, _target)] call FUNC(canUnloadCaptive));
+ statement = QUOTE([ARR_2(_player, _target)] call FUNC(doUnloadCaptive));
+ priority = 1.2;
};
};
};
@@ -86,6 +83,7 @@ class CfgVehicles {
exceptions[] = {};
showDisabled = 0;
priority = 0;
+ icon = QUOTE(PATHTOF(UI\Surrender_ca.paa));
};
class ACE_StopSurrenderingSelf {
displayName = CSTRING(StopSurrendering);
@@ -94,6 +92,7 @@ class CfgVehicles {
exceptions[] = {"isNotSurrendering"};
showDisabled = 0;
priority = 0;
+ icon = QUOTE(PATHTOF(UI\Surrender_ca.paa));
};
};
};
@@ -109,13 +108,6 @@ class CfgVehicles {
exceptions[] = {"isNotEscorting"}; \
priority = 1.2; \
}; \
- class GVAR(UnloadCaptive) { \
- displayName = CSTRING(UnloadCaptive); \
- distance = 4; \
- condition = QUOTE([ARR_2(_player, _target)] call FUNC(canUnloadCaptive)); \
- statement = QUOTE([ARR_2(_player, _target)] call FUNC(doUnloadCaptive)); \
- priority = 1.2; \
- }; \
}; \
};
@@ -162,7 +154,7 @@ class CfgVehicles {
author = ECSTRING(common,ACETeam);
category = "ACE";
displayName = CSTRING(ModuleSurrender_DisplayName); //Make Unit Surrender
- function = QUOTE(DFUNC(moduleSurrender));
+ function = QFUNC(moduleSurrender);
scope = 2; //show in editor
isGlobal = 1; //run global
isTriggerActivated = 1; //Wait for triggers
@@ -174,4 +166,33 @@ class CfgVehicles {
sync[] = {"AnyAI"};
};
};
+
+ class ACE_Module: Module_F {};
+ class GVAR(moduleSettings): ACE_Module {
+ author = ECSTRING(common,ACETeam);
+ category = "ACE";
+ displayName = CSTRING(ModuleSettings_DisplayName);
+ function = QFUNC(moduleSettings);
+ scope = 2;
+ icon = QUOTE(PATHTOF(UI\Icon_Module_settings_ca.paa));
+ isGlobal = 1;
+ class Arguments {
+ class allowHandcuffOwnSide {
+ displayName = CSTRING(ModuleSettings_handcuffSide_name);
+ description = CSTRING(ModuleSettings_handcuffSide_description);
+ typeName = "BOOL";
+ defaultValue = 1;
+ };
+ class allowSurrender {
+ displayName = CSTRING(ModuleSettings_allowSurrender_name);
+ description = CSTRING(ModuleSettings_allowSurrender_description);
+ typeName = "BOOL";
+ defaultValue = 1;
+ };
+ };
+ class ModuleDescription: ModuleDescription {
+ description = CSTRING(ModuleSettings_Description);
+ sync[] = {};
+ };
+ };
};
diff --git a/addons/captives/UI/Icon_Module_settings_ca.paa b/addons/captives/UI/Icon_Module_settings_ca.paa
new file mode 100644
index 0000000000..365f02cb21
Binary files /dev/null and b/addons/captives/UI/Icon_Module_settings_ca.paa differ
diff --git a/addons/captives/UI/Surrender_ca.paa b/addons/captives/UI/Surrender_ca.paa
new file mode 100644
index 0000000000..6ddabf4d56
Binary files /dev/null and b/addons/captives/UI/Surrender_ca.paa differ
diff --git a/addons/captives/XEH_preInit.sqf b/addons/captives/XEH_preInit.sqf
index bc6a61bc4f..31bcbe8e02 100644
--- a/addons/captives/XEH_preInit.sqf
+++ b/addons/captives/XEH_preInit.sqf
@@ -24,6 +24,7 @@ PREP(handlePlayerChanged);
PREP(handleRespawn);
PREP(handleUnitInitPost);
PREP(handleZeusDisplayChanged);
+PREP(moduleSettings);
PREP(moduleSurrender);
PREP(setHandcuffed);
PREP(setSurrendered);
diff --git a/addons/captives/config.cpp b/addons/captives/config.cpp
index 57de6ee970..cdaf6dc4e4 100644
--- a/addons/captives/config.cpp
+++ b/addons/captives/config.cpp
@@ -2,7 +2,7 @@
class CfgPatches {
class ADDON {
- units[] = {QGVAR(ModuleSurrender)};
+ units[] = {QGVAR(ModuleSettings), QGVAR(ModuleSurrender)};
weapons[] = {"ACE_CableTie"};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ACE_Interaction"};
@@ -12,6 +12,7 @@ class CfgPatches {
};
};
+#include "ACE_Settings.hpp"
#include "CfgEventHandlers.hpp"
#include "CfgMoves.hpp"
#include "CfgVehicles.hpp"
diff --git a/addons/captives/functions/fnc_canApplyHandcuffs.sqf b/addons/captives/functions/fnc_canApplyHandcuffs.sqf
index f69bb2544d..e42b5455ff 100644
--- a/addons/captives/functions/fnc_canApplyHandcuffs.sqf
+++ b/addons/captives/functions/fnc_canApplyHandcuffs.sqf
@@ -18,8 +18,9 @@
PARAMS_2(_unit,_target);
-//Player has cableTie, target is alive and not already handcuffed
+//Check sides, Player has cableTie, target is alive and not already handcuffed
+(GVAR(allowHandcuffOwnSide) || {(side _unit) != (side _target)}) &&
("ACE_CableTie" in (items _unit)) &&
{alive _target} &&
{!(_target getVariable [QGVAR(isHandcuffed), false])}
diff --git a/addons/captives/functions/fnc_canEscortCaptive.sqf b/addons/captives/functions/fnc_canEscortCaptive.sqf
index 85bd8bbd3e..1d9480fd0b 100644
--- a/addons/captives/functions/fnc_canEscortCaptive.sqf
+++ b/addons/captives/functions/fnc_canEscortCaptive.sqf
@@ -23,4 +23,6 @@ PARAMS_2(_unit,_target);
(_target getVariable [QGVAR(isHandcuffed), false]) &&
{isNull (attachedTo _target)} &&
{alive _target} &&
-{!(_target getVariable ["ACE_isUnconscious", false])}
+{!(_target getVariable ["ACE_isUnconscious", false])} &&
+{(vehicle _unit) == _unit} &&
+{(vehicle _target) == _target}
diff --git a/addons/captives/functions/fnc_canSurrender.sqf b/addons/captives/functions/fnc_canSurrender.sqf
index 9ba7cf6de0..059fb98d03 100644
--- a/addons/captives/functions/fnc_canSurrender.sqf
+++ b/addons/captives/functions/fnc_canSurrender.sqf
@@ -22,7 +22,7 @@ private "_returnValue";
_returnValue = if (_newSurrenderState) then {
//no weapon equiped AND not currently surrendering and
- (currentWeapon _unit == "") && {!(_unit getVariable [QGVAR(isSurrendering), false])}
+ GVAR(allowSurrender) && {(currentWeapon _unit) == ""} && {!(_unit getVariable [QGVAR(isSurrendering), false])}
} else {
//is Surrendering
(_unit getVariable [QGVAR(isSurrendering), false])
diff --git a/addons/captives/functions/fnc_canUnloadCaptive.sqf b/addons/captives/functions/fnc_canUnloadCaptive.sqf
index a86bdae588..59e798a24c 100644
--- a/addons/captives/functions/fnc_canUnloadCaptive.sqf
+++ b/addons/captives/functions/fnc_canUnloadCaptive.sqf
@@ -3,15 +3,14 @@
* Check if the unit can unload a captive from the vehicle.
*
* Arguments:
- * 0: Unit that wants to unload a captive