diff --git a/.gitignore b/.gitignore
index f05646fb8a..f312ddb55e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,3 +5,4 @@ texHeaders.bin
*.swp
*.swo
*.biprivatekey
+Thumbs.db
diff --git a/AUTHORS.txt b/AUTHORS.txt
index 41d51268a6..737bfb590b 100644
--- a/AUTHORS.txt
+++ b/AUTHORS.txt
@@ -18,6 +18,7 @@ Kieran
NouberNou
PabstMirror
Ruthberg
+SilentSpike
tpM
ViperMaul
VKing
@@ -89,7 +90,6 @@ Raspu86
Riccardo Petricca
Robert Boklahánics
ruPaladin
-SilentSpike
simon84
Sniperwolf572
SzwedzikPL
diff --git a/README.md b/README.md
index 7e1ffe1672..72b1336b57 100644
--- a/README.md
+++ b/README.md
@@ -4,11 +4,11 @@
-
-
-
+
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_parse_imagepath.dll b/ace_parse_imagepath.dll
new file mode 100644
index 0000000000..33264959a8
Binary files /dev/null and b/ace_parse_imagepath.dll differ
diff --git a/addons/advanced_ballistics/stringtable.xml b/addons/advanced_ballistics/stringtable.xml
index eed6e20be3..8ba88dee2b 100644
--- a/addons/advanced_ballistics/stringtable.xml
+++ b/addons/advanced_ballistics/stringtable.xml
@@ -31,6 +31,7 @@
Balística avanzada
Erweiterte Ballistik
Pokročilá balistika
+ Balística avançada
Advanced Ballistics
@@ -38,6 +39,7 @@
Balística avanzada
Erweiterte Ballistik
Pokročilá balistika
+ Balística avançada
Enables advanced ballistics
@@ -45,6 +47,7 @@
Activa la balística avanzada
Aktiviert die erweiterte Ballistik
Aktivuje pokročilou balistiku
+ Ativa balística avançada
Enabled For Snipers
@@ -52,6 +55,7 @@
Akt. dla snajperów
Für Scharfschützen aktiviert
Povoleno pro odstřelovače
+ Ativar para caçadores
Enables advanced ballistics for non local snipers (when using high power optics)
@@ -59,6 +63,7 @@
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)
+ Ativa balística avançada para caçadores não locais (quando usando miras telescópicas)
Enabled For Group Members
@@ -66,6 +71,7 @@
Akt. dla czł. grupy
Für Gruppenmitglieder aktiviert
Povoleno pro členy skupiny
+ Ativada para membros do grupo
Enables advanced ballistics for non local group members
@@ -73,6 +79,7 @@
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
+ Ativa balística avançada para membros de grupo não locais
Enabled For Everyone
@@ -80,6 +87,7 @@
Akt. dla wszystkich
Für jeden aktiviert
Povoleno pro všechny
+ Ativada para todos
Enables advanced ballistics for all non local players (enabling this may degrade performance during heavy firefights in multiplayer)
@@ -87,6 +95,7 @@
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)
+ Ativa balística avançada para todos os jogadores não locais (ativando isso pode degradar a performance durante troca de tiros intensas no multiplayer)
Always Enabled For Group Members
@@ -94,6 +103,7 @@
Siempre activada para miembros de grupo
Für Gruppenmitglieder immer aktiviert
Vždy povoleno pro členy skupiny
+ Sempre ativada para membros do grupo
Always enables advanced ballistics when a group member fires
@@ -101,6 +111,7 @@
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
+ Sempre ative balística avançada quando um membro do grupo disparar
Disabled In FullAuto Mode
@@ -108,6 +119,7 @@
Desactivada en modo automático
Beim vollautomatischen Feuern deaktiviert
Zakázáno v automatickém režimu střelby
+ Desabilitar no modo automático
Disables the advanced ballistics during full auto fire
@@ -115,6 +127,7 @@
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
+ Desabilitar a balística avançada durante fogo automático
Enable Ammo Temperature Simulation
@@ -122,6 +135,7 @@
Activar simulación de temperatura de munición
Simulation der Munitionstemperatur aktivieren
Povolit simulaci teploty munice
+ Ativar simulação de temperatura de munição
Muzzle velocity varies with ammo temperature
@@ -129,6 +143,7 @@
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
+ A velocidade de saída varia com a temperatura da munição
Enable Barrel Length Simulation
@@ -136,6 +151,7 @@
Habilitar la simulación de longitud del cañón
Simulation der Lauflänge aktivieren
Povolit simulaci délky hlavně
+ Ativar a simulação de comprimento do cano
Muzzle velocity varies with barrel length
@@ -143,6 +159,7 @@
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ě
+ A velocidade de saída caria com o comprimento do cano
Enable Bullet Trace Effect
@@ -150,6 +167,7 @@
Activar el efecto trazador de la bala
Geschossspureffekt aktivieren
Povolit efekt trasírek
+ Ativa efeito traçante de projétil
Enables a bullet trace effect to high caliber bullets (only visible when looking through high power optics)
@@ -157,6 +175,7 @@
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)
+ Ativa o efeito traçante de projétil para projéteis de alto calibre (somente visível quando observado por miras telescópicas)
Simulation Interval
@@ -164,6 +183,7 @@
Intervalo de simulación
Simulationsintervall
Interval simulace
+ Intervalo da simulação
Defines the interval between every calculation step
@@ -171,6 +191,7 @@
Define el intervalo entre cada cálculo
Legt das Intervall zwischen den Berechnungsschritten fest
Určuje interval mezi každým výpočtem
+ Define o intervalo entre cada cálculo
Simulation Radius
@@ -178,6 +199,7 @@
Radio de simulación
Simulationsradius
Rozsah simulace
+ Raio de simulação
Defines the radius around the player (in meters) at which advanced ballistics are applied to projectiles
@@ -185,11 +207,13 @@
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
+ Define o raio ao redor do jogador (em metros) onde a balística avançada será aplicada aos projéteis
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.
+ Este módulo permite que você ative cálculos de balística avançada, fazendo a trajetória do projétil levar em consideração coisas como temperatura do ar, pressão atmosférica, umidade, força de Coriolis, a gravidade, o modelo da arma no qual o disparo é realizado e o tipo de munição. Tudo isso acrescenta-se a um balística muito precisa.
\ No newline at end of file
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 c2ab01d217..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, ["notOnMap", "isNotInside"]] 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
@@ -21,7 +21,7 @@ _conditonCode = {
};
_toggleCode = {
// Conditions: canInteract
- if !([ACE_player, objNull, ["notOnMap", "isNotInside"]] call EFUNC(common,canInteractWith)) exitWith {};
+ if !([ACE_player, objNull, ["notOnMap", "isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith)) exitWith {};
if (GVAR(active)) exitWith {
closeDialog 0;
};
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 171d7936b8..db44078980 100644
--- a/addons/ballistics/stringtable.xml
+++ b/addons/ballistics/stringtable.xml
@@ -1598,6 +1598,7 @@
[ACE] Caja de suministros de munición
[ACE] Munitionskiste
[ACE] Bedna s municí
+ [ACE] Caixa com suprimentos de munição
\ No newline at end of file
diff --git a/addons/captives/stringtable.xml b/addons/captives/stringtable.xml
index 19ab9050a3..a65daba683 100644
--- a/addons/captives/stringtable.xml
+++ b/addons/captives/stringtable.xml
@@ -163,6 +163,7 @@
Hacer que la unidad se rinda
Einheit kapitulieren lassen
Vzdávající se jednotka
+ Fazer unidade se render
Sync a unit to make them surrender.<br />Source: ace_captives
@@ -170,42 +171,49 @@
Sincroniza una unidad para hacer que se rinda.<br />Fuente: ace_captives
Einheit synchronisieren, um sie kapitulieren zu lassen.<br />Quelle: ace_captives
Synchronizuj s jednotkou, která se má vzdát.<br />Zdroj: ace_captives
+ Sincroniza uma unidade para fazer com que ela se renda. <br/>Fonte: ace_captives
Captives Settings
Ustawienia więźniów
Ajustes de prisioneros
Nastavení zajatce
+ Ajustes de prisioneiros
Controls settings for surrender and cable ties
Moduł ten kontroluje ustawienia kapitulacji oraz opasek zaciskowych
Ajustes de control para rendición y precintos
Toto kontroluje nastavení kapitulace a pout
+ Controla as configurações de rendição e abraçadeiras
Can handcuff own side
Skuwanie sojuszników
Se puede esposar el bando propio
Může spoutat spolubojovníky
+ Pode algemar o próprio lado
Can players cabletie units on their own side
Czy gracze mogą skuwać sojuszników?
Pueden los jugadores esposar unidades en su propio bando
Mohou hráči spoutat jednotky na své straně
+ Os jogadores podem algemar unidades do seu lado
Allow surrendering
Pozwól kapitulować
Permitir rendición
Povolit vzdávání
+ Permite rendição
Players can surrender after holstering their weapon
Gracze mogą skapitulować po schowaniu swojej broni do kabury
Los jugadores pueden rendirse después de enfundar su arma
Hráč se může vzdát poté, co si skryje zbraň
+ Jogadores podem se render depois de guardar sua arma
\ No newline at end of file
diff --git a/addons/common/CfgVehicles.hpp b/addons/common/CfgVehicles.hpp
index 380e9c3274..767822f4ea 100644
--- a/addons/common/CfgVehicles.hpp
+++ b/addons/common/CfgVehicles.hpp
@@ -1,112 +1,109 @@
class CfgVehicles {
- /*class Man;
- class CAManBase: Man {
- // @todo
- class UserActions {
- class ACE_Fire {
- displayName = "";
- priority = -99;
- available = 1;
- radius = 2.5;
- radiusView = 0;
- position = "";
- showWindow = 0;
- showIn3D = 0;
- onlyForPlayer = 1;
- shortcut = "DefaultAction";
- condition = QUOTE(call GVAR(UserActionFireCondition));
- statement = QUOTE(call GVAR(UserActionFire));
- userActionID = 100;
- };
- };
- };*/
+ /*class Man;
+ class CAManBase: Man {
+ // @todo
+ class UserActions {
+ class ACE_Fire {
+ displayName = "";
+ priority = -99;
+ available = 1;
+ radius = 2.5;
+ radiusView = 0;
+ position = "";
+ showWindow = 0;
+ showIn3D = 0;
+ onlyForPlayer = 1;
+ shortcut = "DefaultAction";
+ condition = QUOTE(call GVAR(UserActionFireCondition));
+ statement = QUOTE(call GVAR(UserActionFire));
+ userActionID = 100;
+ };
+ };
+ };*/
- // += needs a non inherited entry in that class, otherwise it simply overwrites
- //#include
+ // += needs a non inherited entry in that class, otherwise it simply overwrites
+ //#include
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);
- function = QFUNC(moduleCheckPBOs);
- scope = 2;
- isGlobal = 1;
- icon = QUOTE(PATHTOF(UI\Icon_Module_CheckPBO_ca.paa));
- class Arguments {
- class Action {
- displayName = CSTRING(CheckPBO_Action_DisplayName);
- description = CSTRING(CheckPBO_Action_Description);
- typeName = "NUMBER";
- class values {
- class WarnOnce {
- default = 1;
- name = CSTRING(CheckPBO_Action_WarnOnce);
- value = 0;
- };
- class Warn {
- name = CSTRING(CheckPBO_Action_WarnPerm);
- value = 1;
- };
- class Kick {
- name = CSTRING(CheckPBO_Action_Kick);
- value = 2;
- };
+ author = CSTRING(ACETeam);
+ category = "ACE";
+ displayName = CSTRING(CheckPBO_DisplayName);
+ function = QFUNC(moduleCheckPBOs);
+ scope = 2;
+ isGlobal = 1;
+ icon = QUOTE(PATHTOF(UI\Icon_Module_CheckPBO_ca.paa));
+ class Arguments {
+ class Action {
+ displayName = CSTRING(CheckPBO_Action_DisplayName);
+ description = CSTRING(CheckPBO_Action_Description);
+ typeName = "NUMBER";
+ class values {
+ class WarnOnce {
+ default = 1;
+ name = CSTRING(CheckPBO_Action_WarnOnce);
+ value = 0;
+ };
+ class Warn {
+ name = CSTRING(CheckPBO_Action_WarnPerm);
+ value = 1;
+ };
+ class Kick {
+ name = CSTRING(CheckPBO_Action_Kick);
+ value = 2;
+ };
+ };
+ };
+ class CheckAll {
+ displayName = CSTRING(CheckPBO_CheckAll_DisplayName);
+ description = CSTRING(CheckPBO_CheckAll_Description);
+ typeName = "BOOL";
+ defaultValue = 0;
+ };
+ class Whitelist {
+ displayName = CSTRING(CheckPBO_Whitelist_DisplayName);
+ description = CSTRING(CheckPBO_Whitelist_Description);
+ typeName = "STRING";
+ defaultValue = "[]";
+ };
};
- };
- class CheckAll {
- displayName = CSTRING(CheckPBO_CheckAll_DisplayName);
- description = CSTRING(CheckPBO_CheckAll_Description);
- typeName = "BOOL";
- defaultValue = 0;
- };
- class Whitelist {
- displayName = CSTRING(CheckPBO_Whitelist_DisplayName);
- description = CSTRING(CheckPBO_Whitelist_Description);
- typeName = "STRING";
- class values {
- default = "[]";
+ class ModuleDescription: ModuleDescription {
+ description = CSTRING(CheckPBO_Description);
};
- };
};
- class ModuleDescription: ModuleDescription {
- description = CSTRING(CheckPBO_Description);
- };
- };
- class ACE_ModuleLSDVehicles: ACE_Module {
- author = CSTRING(ACETeam);
- category = "ACE";
- displayName = CSTRING(LSDVehicles_DisplayName);
- function = "ACE_Common_fnc_moduleLSDVehicles";
- scope = 2;
- icon = QUOTE(PATHTOF(UI\Icon_Module_LSD_ca.paa));
- isGlobal = 1;
- class Arguments {
+ class ACE_ModuleLSDVehicles: ACE_Module {
+ author = CSTRING(ACETeam);
+ category = "ACE";
+ displayName = CSTRING(LSDVehicles_DisplayName);
+ function = "ACE_Common_fnc_moduleLSDVehicles";
+ scope = 2;
+ icon = QUOTE(PATHTOF(UI\Icon_Module_LSD_ca.paa));
+ isGlobal = 1;
+ class Arguments {};
+ class ModuleDescription: ModuleDescription {
+ description = CSTRING(LSDVehicles_Description);
+ sync[] = {"AnyVehicle"};
+ };
};
- class ModuleDescription: ModuleDescription {
- description = CSTRING(LSDVehicles_Description);
- sync[] = {"AnyVehicle"};
+
+ class Box_NATO_Support_F;
+ class ACE_Box_Misc: Box_NATO_Support_F {
+ author = CSTRING(ACETeam);
+ displayName = CSTRING(MiscItems);
+ transportMaxWeapons = 9001;
+ transportMaxMagazines = 9001;
+ transportMaxItems = 9001;
+ maximumload = 9001;
+
+ class TransportWeapons {};
+ class TransportMagazines {};
+ class TransportItems {};
+ class TransportBackpacks {};
};
- };
-
- class Box_NATO_Support_F;
- class ACE_Box_Misc: Box_NATO_Support_F {
- author = CSTRING(ACETeam);
- displayName = CSTRING(MiscItems);
- transportMaxWeapons = 9001;
- transportMaxMagazines = 9001;
- transportMaxItems = 9001;
- maximumload = 9001;
-
- class TransportWeapons {};
- class TransportMagazines {};
- class TransportItems {};
- class TransportBackpacks {};
- };
class Item_Base_F;
class ACE_bananaItem: Item_Base_F {
@@ -115,10 +112,8 @@ class CfgVehicles {
displayName = CSTRING(bananaDisplayName);
author = CSTRING(ACETeam);
vehicleClass = "Items";
- class TransportItems
- {
- class ACE_banana
- {
+ class TransportItems {
+ class ACE_banana {
name = "ACE_banana";
count = 1;
};
diff --git a/addons/common/XEH_postInit.sqf b/addons/common/XEH_postInit.sqf
index 7281e02849..22513ec468 100644
--- a/addons/common/XEH_postInit.sqf
+++ b/addons/common/XEH_postInit.sqf
@@ -6,7 +6,7 @@
//Singe PFEH to handle execNextFrame and waitAndExec:
[{
private ["_entry"];
-
+
//Handle the waitAndExec array:
while {((count GVAR(waitAndExecArray)) > 0) && {((GVAR(waitAndExecArray) select 0) select 0) <= ACE_Time}} do {
_entry = GVAR(waitAndExecArray) deleteAt 0;
@@ -56,6 +56,10 @@
["setFuel", {(_this select 0) setFuel (_this select 1)}] call FUNC(addEventhandler);
["setSpeaker", {(_this select 0) setSpeaker (_this select 1)}] call FUNC(addEventhandler);
+if (isServer) then {
+ ["hideObjectGlobal", {(_this select 0) hideObjectGlobal (_this select 1)}] call FUNC(addEventHandler);
+};
+
// hack to get PFH to work in briefing
[QGVAR(onBriefingPFH), "onEachFrame", {
if (ACE_time > 0) exitWith {
@@ -140,6 +144,15 @@ call FUNC(checkFiles);
}, 0, [false]] call cba_fnc_addPerFrameHandler;
+["SettingsInitialized", {
+ [
+ GVAR(checkPBOsAction),
+ GVAR(checkPBOsCheckAll),
+ call compile GVAR(checkPBOsWhitelist)
+ ] call FUNC(checkPBOs)
+}] call FUNC(addEventHandler);
+
+
/***************************************************************/
/***************************************************************/
/***************************************************************/
@@ -308,14 +321,6 @@ if(isMultiplayer && { ACE_time > 0 || isNull player } ) then {
}, 0, []] call cba_fnc_addPerFrameHandler;
};
-["SettingsInitialized", {
- [
- GVAR(checkPBOsAction),
- GVAR(checkPBOsCheckAll),
- call compile GVAR(checkPBOsWhitelist)
- ] call FUNC(checkPBOs)
-}] call FUNC(addEventHandler);
-
//Device Handler:
GVAR(deviceKeyHandlingArray) = [];
GVAR(deviceKeyCurrentIndex) = -1;
diff --git a/addons/common/XEH_preInit.sqf b/addons/common/XEH_preInit.sqf
index 3a26d1e184..54f374fcc2 100644
--- a/addons/common/XEH_preInit.sqf
+++ b/addons/common/XEH_preInit.sqf
@@ -11,7 +11,6 @@ PREP(addCanInteractWithCondition);
PREP(addLineToDebugDraw);
PREP(addSetting);
PREP(addToInventory);
-PREP(adminKick);
PREP(ambientBrightness);
PREP(applyForceWalkStatus);
PREP(ASLToPosition);
@@ -103,6 +102,7 @@ PREP(goKneeling);
PREP(hadamardProduct);
PREP(hasItem);
PREP(hasMagazine);
+PREP(hideUnit);
PREP(inheritsFrom);
PREP(insertionSort);
PREP(interpolateFromArray);
@@ -180,6 +180,7 @@ PREP(toBin);
PREP(toBitmask);
PREP(toHex);
PREP(toNumber);
+PREP(unhideUnit);
PREP(uniqueElementsOnly);
PREP(unloadPerson);
PREP(unloadPersonLocal);
diff --git a/addons/common/functions/fnc_adminKick.sqf b/addons/common/functions/fnc_adminKick.sqf
deleted file mode 100644
index bc9afd9fcb..0000000000
--- a/addons/common/functions/fnc_adminKick.sqf
+++ /dev/null
@@ -1,8 +0,0 @@
-// by commy2
-#include "script_component.hpp"
-
-private "_name";
-
-_name = name (_this select 0);
-
-[_name, "{if (serverCommandAvailable '#kick') then {serverCommand format['#kick %1', _this]}}"] call FUNC(execRemoteFnc);
diff --git a/addons/common/functions/fnc_checkPBOs.sqf b/addons/common/functions/fnc_checkPBOs.sqf
index f239074b0b..4733f1a81f 100644
--- a/addons/common/functions/fnc_checkPBOs.sqf
+++ b/addons/common/functions/fnc_checkPBOs.sqf
@@ -67,24 +67,26 @@ if (!isServer) then {
//[_error, "{systemChat _this}"] call FUNC(execRemoteFnc);
diag_log text _error;
- _text = composeText [lineBreak, parseText format ["%1", _text]];
+ if (_mode < 2) then {
+ _text = composeText [lineBreak, parseText format ["%1", _text]];
- _rscLayer = "ACE_RscErrorHint" call BIS_fnc_rscLayer;
- _rscLayer cutRsc ["ACE_RscErrorHint", "PLAIN", 0, true];
+ _rscLayer = "ACE_RscErrorHint" call BIS_fnc_rscLayer;
+ _rscLayer cutRsc ["ACE_RscErrorHint", "PLAIN", 0, true];
- disableSerialization;
- _ctrlHint = uiNamespace getVariable "ACE_ctrlErrorHint";
- _ctrlHint ctrlSetStructuredText _text;
+ disableSerialization;
+ _ctrlHint = uiNamespace getVariable "ACE_ctrlErrorHint";
+ _ctrlHint ctrlSetStructuredText _text;
- if (_mode == 0) then {
- sleep 10;
- _rscLayer cutFadeOut 0.2;
+ if (_mode == 0) then {
+ sleep 10;
+ _rscLayer cutFadeOut 0.2;
+ };
};
if (_mode == 2) then {
- sleep 10;
- waitUntil {alive player};
- [player] call FUNC(adminKick);
+ waitUntil {alive player}; // To be able to show list if using checkAll
+ _text = composeText [parseText format ["%1", _text]];
+ ["[ACE] ERROR", _text, {findDisplay 46 closeDisplay 0}] call FUNC(errorMessage);
};
};
};
diff --git a/addons/common/functions/fnc_hideUnit.sqf b/addons/common/functions/fnc_hideUnit.sqf
new file mode 100644
index 0000000000..b3cd6f7b77
--- /dev/null
+++ b/addons/common/functions/fnc_hideUnit.sqf
@@ -0,0 +1,34 @@
+/*
+ * Author: SilentSpike (based on muteUnit)
+ * Globally hides a unit. This allows the handling of more than one reason to hide an object globally.
+ *
+ * Arguments:
+ * 0: Unit