Merge branch 'master' into userActionPrototype

This commit is contained in:
PabstMirror 2015-07-01 15:04:40 -05:00
commit 5e80f9d8d3
274 changed files with 3851 additions and 1478 deletions

1
.gitignore vendored
View File

@ -5,3 +5,4 @@ texHeaders.bin
*.swp *.swp
*.swo *.swo
*.biprivatekey *.biprivatekey
Thumbs.db

View File

@ -18,6 +18,7 @@ Kieran
NouberNou NouberNou
PabstMirror <pabstmirror@gmail.com> PabstMirror <pabstmirror@gmail.com>
Ruthberg <ulteq@web.de> Ruthberg <ulteq@web.de>
SilentSpike <SilentSpike100@gmail.com>
tpM tpM
ViperMaul ViperMaul
VKing <kauestad@gmail.com> VKing <kauestad@gmail.com>
@ -89,7 +90,6 @@ Raspu86
Riccardo Petricca <petriccarcc@gmail.com> Riccardo Petricca <petriccarcc@gmail.com>
Robert Boklahánics <bokirobi@gmail.com> Robert Boklahánics <bokirobi@gmail.com>
ruPaladin <happyworm24@rambler.ru> ruPaladin <happyworm24@rambler.ru>
SilentSpike <SilentSpike100@gmail.com>
simon84 <badguy360th@gmail.com> simon84 <badguy360th@gmail.com>
Sniperwolf572 <tenga6@gmail.com> Sniperwolf572 <tenga6@gmail.com>
SzwedzikPL <szwedzikpl@gmail.com> SzwedzikPL <szwedzikpl@gmail.com>

View File

@ -4,11 +4,11 @@
</p> </p>
<p align="center"> <p align="center">
<a href="https://github.com/acemod/ACE3/releases"> <a href="https://github.com/acemod/ACE3/releases">
<img src="https://img.shields.io/badge/Version-3.0.1-blue.svg" <img src="https://img.shields.io/badge/Version-3.1.1-blue.svg"
alt="ACE version"> alt="ACE version">
</a> </a>
<a href="https://github.com/acemod/ACE3/releases/download/v3.0.1/ace3_3.0.1.zip"> <a href="https://github.com/acemod/ACE3/releases/download/v3.1.1/ace3_3.1.1.zip">
<img src="http://img.shields.io/badge/Download-40.9_MB-green.svg" <img src="http://img.shields.io/badge/Download-51.7_MB-green.svg"
alt="ACE download"> alt="ACE download">
</a> </a>
<a href="https://github.com/acemod/ACE3/issues"> <a href="https://github.com/acemod/ACE3/issues">

Binary file not shown.

Binary file not shown.

View File

@ -31,6 +31,7 @@
<Spanish>Balística avanzada</Spanish> <Spanish>Balística avanzada</Spanish>
<German>Erweiterte Ballistik</German> <German>Erweiterte Ballistik</German>
<Czech>Pokročilá balistika</Czech> <Czech>Pokročilá balistika</Czech>
<Portuguese>Balística avançada</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Ballistics_enabled_DisplayName"> <Key ID="STR_ACE_Advanced_Ballistics_enabled_DisplayName">
<English>Advanced Ballistics</English> <English>Advanced Ballistics</English>
@ -38,6 +39,7 @@
<Spanish>Balística avanzada</Spanish> <Spanish>Balística avanzada</Spanish>
<German>Erweiterte Ballistik</German> <German>Erweiterte Ballistik</German>
<Czech>Pokročilá balistika</Czech> <Czech>Pokročilá balistika</Czech>
<Portuguese>Balística avançada</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Ballistics_enabled_Description"> <Key ID="STR_ACE_Advanced_Ballistics_enabled_Description">
<English>Enables advanced ballistics</English> <English>Enables advanced ballistics</English>
@ -45,6 +47,7 @@
<Spanish>Activa la balística avanzada</Spanish> <Spanish>Activa la balística avanzada</Spanish>
<German>Aktiviert die erweiterte Ballistik</German> <German>Aktiviert die erweiterte Ballistik</German>
<Czech>Aktivuje pokročilou balistiku</Czech> <Czech>Aktivuje pokročilou balistiku</Czech>
<Portuguese>Ativa balística avançada</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Ballistics_simulateForSnipers_DisplayName"> <Key ID="STR_ACE_Advanced_Ballistics_simulateForSnipers_DisplayName">
<English>Enabled For Snipers</English> <English>Enabled For Snipers</English>
@ -52,6 +55,7 @@
<Polish>Akt. dla snajperów</Polish> <Polish>Akt. dla snajperów</Polish>
<German>Für Scharfschützen aktiviert</German> <German>Für Scharfschützen aktiviert</German>
<Czech>Povoleno pro odstřelovače</Czech> <Czech>Povoleno pro odstřelovače</Czech>
<Portuguese>Ativar para caçadores</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Ballistics_simulateForSnipers_Description"> <Key ID="STR_ACE_Advanced_Ballistics_simulateForSnipers_Description">
<English>Enables advanced ballistics for non local snipers (when using high power optics)</English> <English>Enables advanced ballistics for non local snipers (when using high power optics)</English>
@ -59,6 +63,7 @@
<Polish>Aktywuje zaawansowaną balistykę dla nielokalnych snajperów (kiedy używają optyki)</Polish> <Polish>Aktywuje zaawansowaną balistykę dla nielokalnych snajperów (kiedy używają optyki)</Polish>
<German>Aktiviert die erweiterte Ballistik für nicht lokale Scharfschützen (bei Benutzung von Optiken mit starker Vergrößerung)</German> <German>Aktiviert die erweiterte Ballistik für nicht lokale Scharfschützen (bei Benutzung von Optiken mit starker Vergrößerung)</German>
<Czech>Aktivuje pokročilou balistiku pro nelokální odstřelovače (když používá výkonnou optiku)</Czech> <Czech>Aktivuje pokročilou balistiku pro nelokální odstřelovače (když používá výkonnou optiku)</Czech>
<Portuguese>Ativa balística avançada para caçadores não locais (quando usando miras telescópicas)</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Ballistics_simulateForGroupMembers_DisplayName"> <Key ID="STR_ACE_Advanced_Ballistics_simulateForGroupMembers_DisplayName">
<English>Enabled For Group Members</English> <English>Enabled For Group Members</English>
@ -66,6 +71,7 @@
<Polish>Akt. dla czł. grupy</Polish> <Polish>Akt. dla czł. grupy</Polish>
<German>Für Gruppenmitglieder aktiviert</German> <German>Für Gruppenmitglieder aktiviert</German>
<Czech>Povoleno pro členy skupiny</Czech> <Czech>Povoleno pro členy skupiny</Czech>
<Portuguese>Ativada para membros do grupo</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Ballistics_simulateForGroupMembers_Description"> <Key ID="STR_ACE_Advanced_Ballistics_simulateForGroupMembers_Description">
<English>Enables advanced ballistics for non local group members</English> <English>Enables advanced ballistics for non local group members</English>
@ -73,6 +79,7 @@
<Polish>Aktywuje zaawansowaną balistykę dla nielokalnych członków grupy</Polish> <Polish>Aktywuje zaawansowaną balistykę dla nielokalnych członków grupy</Polish>
<German>Aktiviert die erweiterte Ballistik für nicht lokale Gruppenmitglieder</German> <German>Aktiviert die erweiterte Ballistik für nicht lokale Gruppenmitglieder</German>
<Czech>Aktivuje pokročilou balistiku pro nelokální členy skupiny</Czech> <Czech>Aktivuje pokročilou balistiku pro nelokální členy skupiny</Czech>
<Portuguese>Ativa balística avançada para membros de grupo não locais</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Ballistics_simulateForEveryone_DisplayName"> <Key ID="STR_ACE_Advanced_Ballistics_simulateForEveryone_DisplayName">
<English>Enabled For Everyone</English> <English>Enabled For Everyone</English>
@ -80,6 +87,7 @@
<Polish>Akt. dla wszystkich</Polish> <Polish>Akt. dla wszystkich</Polish>
<German>Für jeden aktiviert</German> <German>Für jeden aktiviert</German>
<Czech>Povoleno pro všechny</Czech> <Czech>Povoleno pro všechny</Czech>
<Portuguese>Ativada para todos</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Ballistics_simulateForEveryone_Description"> <Key ID="STR_ACE_Advanced_Ballistics_simulateForEveryone_Description">
<English>Enables advanced ballistics for all non local players (enabling this may degrade performance during heavy firefights in multiplayer)</English> <English>Enables advanced ballistics for all non local players (enabling this may degrade performance during heavy firefights in multiplayer)</English>
@ -87,6 +95,7 @@
<Polish>Aktywuje zaawansowaną balistykę dla wszystkich nielokalnych graczy (aktywacja tej opcji może spodowować spory spadek wydajności podczas ciężkiej wymiany ognia)</Polish> <Polish>Aktywuje zaawansowaną balistykę dla wszystkich nielokalnych graczy (aktywacja tej opcji może spodowować spory spadek wydajności podczas ciężkiej wymiany ognia)</Polish>
<German>Aktiviert die erweiterte Ballistik für alle nicht lokalen Spieler (das Aktivieren dieser Funktion kann zur Beeinträchtigung des Spielerlebnisses im Multiplayer führen)</German> <German>Aktiviert die erweiterte Ballistik für alle nicht lokalen Spieler (das Aktivieren dieser Funktion kann zur Beeinträchtigung des Spielerlebnisses im Multiplayer führen)</German>
<Czech>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)</Czech> <Czech>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)</Czech>
<Portuguese>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)</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Ballistics_alwaysSimulateForGroupMembers_DisplayName"> <Key ID="STR_ACE_Advanced_Ballistics_alwaysSimulateForGroupMembers_DisplayName">
<English>Always Enabled For Group Members</English> <English>Always Enabled For Group Members</English>
@ -94,6 +103,7 @@
<Spanish>Siempre activada para miembros de grupo</Spanish> <Spanish>Siempre activada para miembros de grupo</Spanish>
<German>Für Gruppenmitglieder immer aktiviert</German> <German>Für Gruppenmitglieder immer aktiviert</German>
<Czech>Vždy povoleno pro členy skupiny</Czech> <Czech>Vždy povoleno pro členy skupiny</Czech>
<Portuguese>Sempre ativada para membros do grupo</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Ballistics_alwaysSimulateForGroupMembers_Description"> <Key ID="STR_ACE_Advanced_Ballistics_alwaysSimulateForGroupMembers_Description">
<English>Always enables advanced ballistics when a group member fires</English> <English>Always enables advanced ballistics when a group member fires</English>
@ -101,6 +111,7 @@
<Spanish>Activada la balística avanzada siempre cuando miembros de grupo disparan</Spanish> <Spanish>Activada la balística avanzada siempre cuando miembros de grupo disparan</Spanish>
<German>Aktiviert die erweiterte Ballistik immer, wenn ein Gruppenmitglied schießt</German> <German>Aktiviert die erweiterte Ballistik immer, wenn ein Gruppenmitglied schießt</German>
<Czech>Aktivuje pokročilou balistiku pro členy skupiny</Czech> <Czech>Aktivuje pokročilou balistiku pro členy skupiny</Czech>
<Portuguese>Sempre ative balística avançada quando um membro do grupo disparar</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Ballistics_disabledInFullAutoMod_DisplayName"> <Key ID="STR_ACE_Advanced_Ballistics_disabledInFullAutoMod_DisplayName">
<English>Disabled In FullAuto Mode</English> <English>Disabled In FullAuto Mode</English>
@ -108,6 +119,7 @@
<Spanish>Desactivada en modo automático</Spanish> <Spanish>Desactivada en modo automático</Spanish>
<German>Beim vollautomatischen Feuern deaktiviert</German> <German>Beim vollautomatischen Feuern deaktiviert</German>
<Czech>Zakázáno v automatickém režimu střelby</Czech> <Czech>Zakázáno v automatickém režimu střelby</Czech>
<Portuguese>Desabilitar no modo automático</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Ballistics_disabledInFullAutoMod_Description"> <Key ID="STR_ACE_Advanced_Ballistics_disabledInFullAutoMod_Description">
<English>Disables the advanced ballistics during full auto fire</English> <English>Disables the advanced ballistics during full auto fire</English>
@ -115,6 +127,7 @@
<Spanish>Desactivada la balística avanzada durante el fuego automático</Spanish> <Spanish>Desactivada la balística avanzada durante el fuego automático</Spanish>
<German>Deaktiviert die erweiterte Ballistik beim vollautomatischen Feuern</German> <German>Deaktiviert die erweiterte Ballistik beim vollautomatischen Feuern</German>
<Czech>Zákáže pokročilou balistiku během střelby v režimu automat</Czech> <Czech>Zákáže pokročilou balistiku během střelby v režimu automat</Czech>
<Portuguese>Desabilitar a balística avançada durante fogo automático</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Ballistics_ammoTemperatureEnabled_DisplayName"> <Key ID="STR_ACE_Advanced_Ballistics_ammoTemperatureEnabled_DisplayName">
<English>Enable Ammo Temperature Simulation</English> <English>Enable Ammo Temperature Simulation</English>
@ -122,6 +135,7 @@
<Spanish>Activar simulación de temperatura de munición</Spanish> <Spanish>Activar simulación de temperatura de munición</Spanish>
<German>Simulation der Munitionstemperatur aktivieren</German> <German>Simulation der Munitionstemperatur aktivieren</German>
<Czech>Povolit simulaci teploty munice</Czech> <Czech>Povolit simulaci teploty munice</Czech>
<Portuguese>Ativar simulação de temperatura de munição</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Ballistics_ammoTemperatureEnabled_Description"> <Key ID="STR_ACE_Advanced_Ballistics_ammoTemperatureEnabled_Description">
<English>Muzzle velocity varies with ammo temperature</English> <English>Muzzle velocity varies with ammo temperature</English>
@ -129,6 +143,7 @@
<Spanish>La velocidad de salida varía con la temperatura de la munición</Spanish> <Spanish>La velocidad de salida varía con la temperatura de la munición</Spanish>
<German>Munitionstemperatur hat Einfluss auf die Mündungsgeschwindigkeit</German> <German>Munitionstemperatur hat Einfluss auf die Mündungsgeschwindigkeit</German>
<Czech>Úsťová rychlost je závislá na teplotě munice</Czech> <Czech>Úsťová rychlost je závislá na teplotě munice</Czech>
<Portuguese>A velocidade de saída varia com a temperatura da munição</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Ballistics_barrelLengthInfluenceEnabled_DisplayName"> <Key ID="STR_ACE_Advanced_Ballistics_barrelLengthInfluenceEnabled_DisplayName">
<English>Enable Barrel Length Simulation</English> <English>Enable Barrel Length Simulation</English>
@ -136,6 +151,7 @@
<Spanish>Habilitar la simulación de longitud del cañón</Spanish> <Spanish>Habilitar la simulación de longitud del cañón</Spanish>
<German>Simulation der Lauflänge aktivieren</German> <German>Simulation der Lauflänge aktivieren</German>
<Czech>Povolit simulaci délky hlavně</Czech> <Czech>Povolit simulaci délky hlavně</Czech>
<Portuguese>Ativar a simulação de comprimento do cano</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Ballistics_barrelLengthInfluenceEnabled_Description"> <Key ID="STR_ACE_Advanced_Ballistics_barrelLengthInfluenceEnabled_Description">
<English>Muzzle velocity varies with barrel length</English> <English>Muzzle velocity varies with barrel length</English>
@ -143,6 +159,7 @@
<Spanish>La velocidad de salidal varía con la longitud del cañón</Spanish> <Spanish>La velocidad de salidal varía con la longitud del cañón</Spanish>
<German>Lauflänge beeinflusst Mündungsgeschwindigkeit</German> <German>Lauflänge beeinflusst Mündungsgeschwindigkeit</German>
<Czech>Úsťová rychlost je závislá na délce hlavně</Czech> <Czech>Úsťová rychlost je závislá na délce hlavně</Czech>
<Portuguese>A velocidade de saída caria com o comprimento do cano</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Ballistics_bulletTraceEnabled_DisplayName"> <Key ID="STR_ACE_Advanced_Ballistics_bulletTraceEnabled_DisplayName">
<English>Enable Bullet Trace Effect</English> <English>Enable Bullet Trace Effect</English>
@ -150,6 +167,7 @@
<Spanish>Activar el efecto trazador de la bala</Spanish> <Spanish>Activar el efecto trazador de la bala</Spanish>
<German>Geschossspureffekt aktivieren</German> <German>Geschossspureffekt aktivieren</German>
<Czech>Povolit efekt trasírek</Czech> <Czech>Povolit efekt trasírek</Czech>
<Portuguese>Ativa efeito traçante de projétil</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Ballistics_bulletTraceEnabled_Description"> <Key ID="STR_ACE_Advanced_Ballistics_bulletTraceEnabled_Description">
<English>Enables a bullet trace effect to high caliber bullets (only visible when looking through high power optics)</English> <English>Enables a bullet trace effect to high caliber bullets (only visible when looking through high power optics)</English>
@ -157,6 +175,7 @@
<Spanish>Activa el efecto trazador de la balas de gran calibre (solo visible cuando se mira a través de una mira telescópica)</Spanish> <Spanish>Activa el efecto trazador de la balas de gran calibre (solo visible cuando se mira a través de una mira telescópica)</Spanish>
<German>Aktiviere Geschossspureffekt für hohe Kaliber (bei Benutzung von Optiken mit starker Vergrößerung)</German> <German>Aktiviere Geschossspureffekt für hohe Kaliber (bei Benutzung von Optiken mit starker Vergrößerung)</German>
<Czech>Aktivuje efekt trasírek z vysokokaliberních zbraní (viditelné pouze skrze výkonnou optiku)</Czech> <Czech>Aktivuje efekt trasírek z vysokokaliberních zbraní (viditelné pouze skrze výkonnou optiku)</Czech>
<Portuguese>Ativa o efeito traçante de projétil para projéteis de alto calibre (somente visível quando observado por miras telescópicas)</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Ballistics_simulationInterval_DisplayName"> <Key ID="STR_ACE_Advanced_Ballistics_simulationInterval_DisplayName">
<English>Simulation Interval</English> <English>Simulation Interval</English>
@ -164,6 +183,7 @@
<Spanish>Intervalo de simulación</Spanish> <Spanish>Intervalo de simulación</Spanish>
<German>Simulationsintervall</German> <German>Simulationsintervall</German>
<Czech>Interval simulace</Czech> <Czech>Interval simulace</Czech>
<Portuguese>Intervalo da simulação</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Ballistics_simulationInterval_Description"> <Key ID="STR_ACE_Advanced_Ballistics_simulationInterval_Description">
<English>Defines the interval between every calculation step</English> <English>Defines the interval between every calculation step</English>
@ -171,6 +191,7 @@
<Spanish>Define el intervalo entre cada cálculo</Spanish> <Spanish>Define el intervalo entre cada cálculo</Spanish>
<German>Legt das Intervall zwischen den Berechnungsschritten fest</German> <German>Legt das Intervall zwischen den Berechnungsschritten fest</German>
<Czech>Určuje interval mezi každým výpočtem</Czech> <Czech>Určuje interval mezi každým výpočtem</Czech>
<Portuguese>Define o intervalo entre cada cálculo</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Ballistics_simulationRadius_DisplayName"> <Key ID="STR_ACE_Advanced_Ballistics_simulationRadius_DisplayName">
<English>Simulation Radius</English> <English>Simulation Radius</English>
@ -178,6 +199,7 @@
<Spanish>Radio de simulación</Spanish> <Spanish>Radio de simulación</Spanish>
<German>Simulationsradius</German> <German>Simulationsradius</German>
<Czech>Rozsah simulace</Czech> <Czech>Rozsah simulace</Czech>
<Portuguese>Raio de simulação</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Ballistics_simulationRadius_Description"> <Key ID="STR_ACE_Advanced_Ballistics_simulationRadius_Description">
<English>Defines the radius around the player (in meters) at which advanced ballistics are applied to projectiles</English> <English>Defines the radius around the player (in meters) at which advanced ballistics are applied to projectiles</English>
@ -185,11 +207,13 @@
<Spanish>Define el radio alrededor del jugador (en metros) en el cual se aplica la balística avanzada a los proyectiles</Spanish> <Spanish>Define el radio alrededor del jugador (en metros) en el cual se aplica la balística avanzada a los proyectiles</Spanish>
<German>Gibt den Radius (in Metern) um den Spieler an, bei dem die erweiterte Ballistik auf Geschosse angewendet wird</German> <German>Gibt den Radius (in Metern) um den Spieler an, bei dem die erweiterte Ballistik auf Geschosse angewendet wird</German>
<Czech>Určuje oblast kolem hráče (v metrech), kde je pokročilá balistika použita na projektil</Czech> <Czech>Určuje oblast kolem hráče (v metrech), kde je pokročilá balistika použita na projektil</Czech>
<Portuguese>Define o raio ao redor do jogador (em metros) onde a balística avançada será aplicada aos projéteis</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Ballistics_Description"> <Key ID="STR_ACE_Advanced_Ballistics_Description">
<English></English> <English></English>
<Polish>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.</Polish> <Polish>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.</Polish>
<Czech>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.</Czech> <Czech>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.</Czech>
<Portuguese>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.</Portuguese>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -10,7 +10,7 @@ class CfgVehicles {
showDisabled = 0; showDisabled = 0;
priority = 2; priority = 2;
icon = PATHTOF(UI\ATRAG_Icon.paa); icon = PATHTOF(UI\ATRAG_Icon.paa);
exceptions[] = {"notOnMap", "isNotInside"}; exceptions[] = {"notOnMap", "isNotInside", "isNotSitting"};
}; };
}; };
}; };

View File

@ -1,7 +1,7 @@
["ACE3 Equipment", QGVAR(ATragMXDialogKey), localize LSTRING(ATragMXDialogKey), ["ACE3 Equipment", QGVAR(ATragMXDialogKey), localize LSTRING(ATragMXDialogKey),
{ {
// Conditions: canInteract // 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 { if (GVAR(active)) exitWith {
closeDialog 0; closeDialog 0;
false false
@ -21,7 +21,7 @@ _conditonCode = {
}; };
_toggleCode = { _toggleCode = {
// Conditions: canInteract // 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 { if (GVAR(active)) exitWith {
closeDialog 0; closeDialog 0;
}; };

View File

@ -225,5 +225,27 @@ class CfgVehicles {
MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_API_Mag,4); MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_API_Mag,4);
MACRO_ADDMAGAZINE(ACE_5Rnd_127x99_AMAX_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;
};
};
}; };
}; };

View File

@ -1598,6 +1598,7 @@
<Spanish>[ACE] Caja de suministros de munición</Spanish> <Spanish>[ACE] Caja de suministros de munición</Spanish>
<German>[ACE] Munitionskiste</German> <German>[ACE] Munitionskiste</German>
<Czech>[ACE] Bedna s municí</Czech> <Czech>[ACE] Bedna s municí</Czech>
<Portuguese>[ACE] Caixa com suprimentos de munição</Portuguese>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -163,6 +163,7 @@
<Spanish>Hacer que la unidad se rinda</Spanish> <Spanish>Hacer que la unidad se rinda</Spanish>
<German>Einheit kapitulieren lassen</German> <German>Einheit kapitulieren lassen</German>
<Czech>Vzdávající se jednotka</Czech> <Czech>Vzdávající se jednotka</Czech>
<Portuguese>Fazer unidade se render</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Captives_ModuleSurrender_Description"> <Key ID="STR_ACE_Captives_ModuleSurrender_Description">
<English>Sync a unit to make them surrender.&lt;br /&gt;Source: ace_captives</English> <English>Sync a unit to make them surrender.&lt;br /&gt;Source: ace_captives</English>
@ -170,42 +171,49 @@
<Spanish>Sincroniza una unidad para hacer que se rinda.&lt;br /&gt;Fuente: ace_captives</Spanish> <Spanish>Sincroniza una unidad para hacer que se rinda.&lt;br /&gt;Fuente: ace_captives</Spanish>
<German>Einheit synchronisieren, um sie kapitulieren zu lassen.&lt;br /&gt;Quelle: ace_captives</German> <German>Einheit synchronisieren, um sie kapitulieren zu lassen.&lt;br /&gt;Quelle: ace_captives</German>
<Czech>Synchronizuj s jednotkou, která se má vzdát.&lt;br /&gt;Zdroj: ace_captives</Czech> <Czech>Synchronizuj s jednotkou, která se má vzdát.&lt;br /&gt;Zdroj: ace_captives</Czech>
<Portuguese>Sincroniza uma unidade para fazer com que ela se renda. &lt;br/&gt;Fonte: ace_captives</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Captives_ModuleSettings_DisplayName"> <Key ID="STR_ACE_Captives_ModuleSettings_DisplayName">
<English>Captives Settings</English> <English>Captives Settings</English>
<Polish>Ustawienia więźniów</Polish> <Polish>Ustawienia więźniów</Polish>
<Spanish>Ajustes de prisioneros</Spanish> <Spanish>Ajustes de prisioneros</Spanish>
<Czech>Nastavení zajatce</Czech> <Czech>Nastavení zajatce</Czech>
<Portuguese>Ajustes de prisioneiros</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Captives_ModuleSettings_Description"> <Key ID="STR_ACE_Captives_ModuleSettings_Description">
<English>Controls settings for surrender and cable ties</English> <English>Controls settings for surrender and cable ties</English>
<Polish>Moduł ten kontroluje ustawienia kapitulacji oraz opasek zaciskowych</Polish> <Polish>Moduł ten kontroluje ustawienia kapitulacji oraz opasek zaciskowych</Polish>
<Spanish>Ajustes de control para rendición y precintos</Spanish> <Spanish>Ajustes de control para rendición y precintos</Spanish>
<Czech>Toto kontroluje nastavení kapitulace a pout</Czech> <Czech>Toto kontroluje nastavení kapitulace a pout</Czech>
<Portuguese>Controla as configurações de rendição e abraçadeiras</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Captives_ModuleSettings_handcuffSide_name"> <Key ID="STR_ACE_Captives_ModuleSettings_handcuffSide_name">
<English>Can handcuff own side</English> <English>Can handcuff own side</English>
<Polish>Skuwanie sojuszników</Polish> <Polish>Skuwanie sojuszników</Polish>
<Spanish>Se puede esposar el bando propio</Spanish> <Spanish>Se puede esposar el bando propio</Spanish>
<Czech>Může spoutat spolubojovníky</Czech> <Czech>Může spoutat spolubojovníky</Czech>
<Portuguese>Pode algemar o próprio lado</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Captives_ModuleSettings_handcuffSide_description"> <Key ID="STR_ACE_Captives_ModuleSettings_handcuffSide_description">
<English>Can players cabletie units on their own side</English> <English>Can players cabletie units on their own side</English>
<Polish>Czy gracze mogą skuwać sojuszników?</Polish> <Polish>Czy gracze mogą skuwać sojuszników?</Polish>
<Spanish>Pueden los jugadores esposar unidades en su propio bando</Spanish> <Spanish>Pueden los jugadores esposar unidades en su propio bando</Spanish>
<Czech>Mohou hráči spoutat jednotky na své straně</Czech> <Czech>Mohou hráči spoutat jednotky na své straně</Czech>
<Portuguese>Os jogadores podem algemar unidades do seu lado</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Captives_ModuleSettings_allowSurrender_name"> <Key ID="STR_ACE_Captives_ModuleSettings_allowSurrender_name">
<English>Allow surrendering</English> <English>Allow surrendering</English>
<Polish>Pozwól kapitulować</Polish> <Polish>Pozwól kapitulować</Polish>
<Spanish>Permitir rendición</Spanish> <Spanish>Permitir rendición</Spanish>
<Czech>Povolit vzdávání</Czech> <Czech>Povolit vzdávání</Czech>
<Portuguese>Permite rendição</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Captives_ModuleSettings_allowSurrender_description"> <Key ID="STR_ACE_Captives_ModuleSettings_allowSurrender_description">
<English>Players can surrender after holstering their weapon</English> <English>Players can surrender after holstering their weapon</English>
<Polish>Gracze mogą skapitulować po schowaniu swojej broni do kabury</Polish> <Polish>Gracze mogą skapitulować po schowaniu swojej broni do kabury</Polish>
<Spanish>Los jugadores pueden rendirse después de enfundar su arma</Spanish> <Spanish>Los jugadores pueden rendirse después de enfundar su arma</Spanish>
<Czech>Hráč se může vzdát poté, co si skryje zbraň</Czech> <Czech>Hráč se může vzdát poté, co si skryje zbraň</Czech>
<Portuguese>Jogadores podem se render depois de guardar sua arma</Portuguese>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -67,9 +67,7 @@ class CfgVehicles {
displayName = CSTRING(CheckPBO_Whitelist_DisplayName); displayName = CSTRING(CheckPBO_Whitelist_DisplayName);
description = CSTRING(CheckPBO_Whitelist_Description); description = CSTRING(CheckPBO_Whitelist_Description);
typeName = "STRING"; typeName = "STRING";
class values { defaultValue = "[]";
default = "[]";
};
}; };
}; };
class ModuleDescription: ModuleDescription { class ModuleDescription: ModuleDescription {
@ -85,8 +83,7 @@ class CfgVehicles {
scope = 2; scope = 2;
icon = QUOTE(PATHTOF(UI\Icon_Module_LSD_ca.paa)); icon = QUOTE(PATHTOF(UI\Icon_Module_LSD_ca.paa));
isGlobal = 1; isGlobal = 1;
class Arguments { class Arguments {};
};
class ModuleDescription: ModuleDescription { class ModuleDescription: ModuleDescription {
description = CSTRING(LSDVehicles_Description); description = CSTRING(LSDVehicles_Description);
sync[] = {"AnyVehicle"}; sync[] = {"AnyVehicle"};
@ -115,10 +112,8 @@ class CfgVehicles {
displayName = CSTRING(bananaDisplayName); displayName = CSTRING(bananaDisplayName);
author = CSTRING(ACETeam); author = CSTRING(ACETeam);
vehicleClass = "Items"; vehicleClass = "Items";
class TransportItems class TransportItems {
{ class ACE_banana {
class ACE_banana
{
name = "ACE_banana"; name = "ACE_banana";
count = 1; count = 1;
}; };

View File

@ -140,6 +140,15 @@ call FUNC(checkFiles);
}, 0, [false]] call cba_fnc_addPerFrameHandler; }, 0, [false]] call cba_fnc_addPerFrameHandler;
["SettingsInitialized", {
[
GVAR(checkPBOsAction),
GVAR(checkPBOsCheckAll),
call compile GVAR(checkPBOsWhitelist)
] call FUNC(checkPBOs)
}] call FUNC(addEventHandler);
/***************************************************************/ /***************************************************************/
/***************************************************************/ /***************************************************************/
/***************************************************************/ /***************************************************************/
@ -308,14 +317,6 @@ if(isMultiplayer && { ACE_time > 0 || isNull player } ) then {
}, 0, []] call cba_fnc_addPerFrameHandler; }, 0, []] call cba_fnc_addPerFrameHandler;
}; };
["SettingsInitialized", {
[
GVAR(checkPBOsAction),
GVAR(checkPBOsCheckAll),
call compile GVAR(checkPBOsWhitelist)
] call FUNC(checkPBOs)
}] call FUNC(addEventHandler);
//Device Handler: //Device Handler:
GVAR(deviceKeyHandlingArray) = []; GVAR(deviceKeyHandlingArray) = [];
GVAR(deviceKeyCurrentIndex) = -1; GVAR(deviceKeyCurrentIndex) = -1;

View File

@ -11,7 +11,6 @@ PREP(addCanInteractWithCondition);
PREP(addLineToDebugDraw); PREP(addLineToDebugDraw);
PREP(addSetting); PREP(addSetting);
PREP(addToInventory); PREP(addToInventory);
PREP(adminKick);
PREP(ambientBrightness); PREP(ambientBrightness);
PREP(applyForceWalkStatus); PREP(applyForceWalkStatus);
PREP(ASLToPosition); PREP(ASLToPosition);

View File

@ -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);

View File

@ -67,6 +67,7 @@ if (!isServer) then {
//[_error, "{systemChat _this}"] call FUNC(execRemoteFnc); //[_error, "{systemChat _this}"] call FUNC(execRemoteFnc);
diag_log text _error; diag_log text _error;
if (_mode < 2) then {
_text = composeText [lineBreak, parseText format ["<t align='center'>%1</t>", _text]]; _text = composeText [lineBreak, parseText format ["<t align='center'>%1</t>", _text]];
_rscLayer = "ACE_RscErrorHint" call BIS_fnc_rscLayer; _rscLayer = "ACE_RscErrorHint" call BIS_fnc_rscLayer;
@ -80,11 +81,12 @@ if (!isServer) then {
sleep 10; sleep 10;
_rscLayer cutFadeOut 0.2; _rscLayer cutFadeOut 0.2;
}; };
};
if (_mode == 2) then { if (_mode == 2) then {
sleep 10; waitUntil {alive player}; // To be able to show list if using checkAll
waitUntil {alive player}; _text = composeText [parseText format ["<t align='center'>%1</t>", _text]];
[player] call FUNC(adminKick); ["[ACE] ERROR", _text, {findDisplay 46 closeDisplay 0}] call FUNC(errorMessage);
}; };
}; };
}; };

View File

@ -476,6 +476,7 @@
<Spanish>Comprobar PBOs</Spanish> <Spanish>Comprobar PBOs</Spanish>
<German>Überprüfe PBOs</German> <German>Überprüfe PBOs</German>
<Czech>Zkontrolovat PBO</Czech> <Czech>Zkontrolovat PBO</Czech>
<Portuguese>Verificar PBOs</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Common_CheckPBO_Description"> <Key ID="STR_ACE_Common_CheckPBO_Description">
<English></English> <English></English>
@ -483,6 +484,7 @@
<Spanish>Este módulo verifica la integridad de los addons con los que iniciamos el simulador</Spanish> <Spanish>Este módulo verifica la integridad de los addons con los que iniciamos el simulador</Spanish>
<German>Dieses Modul überprüft ob jeder Spieler die richtigen PBO-Dateien hat.</German> <German>Dieses Modul überprüft ob jeder Spieler die richtigen PBO-Dateien hat.</German>
<Czech>Zjistit addon který je v souladu se serverem</Czech> <Czech>Zjistit addon který je v souladu se serverem</Czech>
<Portuguese>Este módulo verifica a integridade dos addons quando iniciamos a simulação</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Common_CheckPBO_Action_DisplayName"> <Key ID="STR_ACE_Common_CheckPBO_Action_DisplayName">
<English>Action</English> <English>Action</English>
@ -490,6 +492,7 @@
<Spanish>Acción</Spanish> <Spanish>Acción</Spanish>
<German>Aktion</German> <German>Aktion</German>
<Czech>Akce</Czech> <Czech>Akce</Czech>
<Portuguese>Ação</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Common_CheckPBO_Action_Description"> <Key ID="STR_ACE_Common_CheckPBO_Action_Description">
<English>What to do with people who do not have the right PBOs?</English> <English>What to do with people who do not have the right PBOs?</English>
@ -497,6 +500,7 @@
<Spanish>¿Qué hacer con la gente que no tiene correctamente los PBOs?</Spanish> <Spanish>¿Qué hacer con la gente que no tiene correctamente los PBOs?</Spanish>
<German>Was soll mit Leuten passieren, die nicht die richtigen PBOs haben?</German> <German>Was soll mit Leuten passieren, die nicht die richtigen PBOs haben?</German>
<Czech>Co udělat s lidmi, co nemají správné addony?</Czech> <Czech>Co udělat s lidmi, co nemají správné addony?</Czech>
<Portuguese>O que fazer com pessoas que não tem os PBOs corretos?</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Common_CheckPBO_Action_WarnOnce"> <Key ID="STR_ACE_Common_CheckPBO_Action_WarnOnce">
<English>Warn once</English> <English>Warn once</English>
@ -504,6 +508,7 @@
<Spanish>Avisar una vez</Spanish> <Spanish>Avisar una vez</Spanish>
<German>Einmal verwarnen</German> <German>Einmal verwarnen</German>
<Czech>Upozornit jednou</Czech> <Czech>Upozornit jednou</Czech>
<Portuguese>Avisar uma vez</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Common_CheckPBO_Action_WarnPerm"> <Key ID="STR_ACE_Common_CheckPBO_Action_WarnPerm">
<English>Warn (permanent)</English> <English>Warn (permanent)</English>
@ -511,6 +516,7 @@
<Spanish>Avisar (permanente)</Spanish> <Spanish>Avisar (permanente)</Spanish>
<German>Immer verwarnen</German> <German>Immer verwarnen</German>
<Czech>Upozornit (permanentně)</Czech> <Czech>Upozornit (permanentně)</Czech>
<Portuguese>Avisar (permanente)</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Common_CheckPBO_Action_Kick"> <Key ID="STR_ACE_Common_CheckPBO_Action_Kick">
<English>Kick</English> <English>Kick</English>
@ -518,6 +524,7 @@
<Spanish>Expulsar</Spanish> <Spanish>Expulsar</Spanish>
<German>Kicken</German> <German>Kicken</German>
<Czech>Vyhodit</Czech> <Czech>Vyhodit</Czech>
<Portuguese>Chutar</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Common_CheckPBO_CheckAll_DisplayName"> <Key ID="STR_ACE_Common_CheckPBO_CheckAll_DisplayName">
<English>Check all addons</English> <English>Check all addons</English>
@ -525,6 +532,7 @@
<Spanish>Comprobar todos los addons</Spanish> <Spanish>Comprobar todos los addons</Spanish>
<German>Alle Addons überprüfen</German> <German>Alle Addons überprüfen</German>
<Czech>Zkontrolovat všechny addony</Czech> <Czech>Zkontrolovat všechny addony</Czech>
<Portuguese>Verificar todos addons</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Common_CheckPBO_CheckAll_Description"> <Key ID="STR_ACE_Common_CheckPBO_CheckAll_Description">
<English>Check all addons instead of only those of ACE?</English> <English>Check all addons instead of only those of ACE?</English>
@ -532,6 +540,7 @@
<Spanish>Comprobar todos los addons en vez de solo los del ACE</Spanish> <Spanish>Comprobar todos los addons en vez de solo los del ACE</Spanish>
<German>Alle Addons anstatt nur ACE überprüfen?</German> <German>Alle Addons anstatt nur ACE überprüfen?</German>
<Czech>Zkontrolovat všechny addony namísto jen těch od ACE?</Czech> <Czech>Zkontrolovat všechny addony namísto jen těch od ACE?</Czech>
<Portuguese>Verificar todos addons invés de só os do ACE?</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Common_CheckPBO_Whitelist_DisplayName"> <Key ID="STR_ACE_Common_CheckPBO_Whitelist_DisplayName">
<English>Whitelist</English> <English>Whitelist</English>
@ -539,6 +548,7 @@
<Spanish>Lista blanca</Spanish> <Spanish>Lista blanca</Spanish>
<German>Whitelist</German> <German>Whitelist</German>
<Czech>Seznam povolených</Czech> <Czech>Seznam povolených</Czech>
<Portuguese>Lista branca</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Common_CheckPBO_Whitelist_Description"> <Key ID="STR_ACE_Common_CheckPBO_Whitelist_Description">
<English>What addons are allowed regardless?</English> <English>What addons are allowed regardless?</English>
@ -546,6 +556,7 @@
<Spanish>Qué addons están permitidos igualmente</Spanish> <Spanish>Qué addons están permitidos igualmente</Spanish>
<German>Welche Addons werden dennoch erlaubt?</German> <German>Welche Addons werden dennoch erlaubt?</German>
<Czech>Jaké addony jsou povoleny?</Czech> <Czech>Jaké addony jsou povoleny?</Czech>
<Portuguese>Quais addons são permitidos de qualquer maneira?</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Common_LSDVehicles_DisplayName"> <Key ID="STR_ACE_Common_LSDVehicles_DisplayName">
<English>LSD Vehicles</English> <English>LSD Vehicles</English>
@ -553,6 +564,7 @@
<Spanish>Vehículos LSD</Spanish> <Spanish>Vehículos LSD</Spanish>
<German>LSD-Fahrzeuge</German> <German>LSD-Fahrzeuge</German>
<Czech>LSD vozidla</Czech> <Czech>LSD vozidla</Czech>
<Portuguese>Veículos LSD</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Common_LSDVehicles_Description"> <Key ID="STR_ACE_Common_LSDVehicles_Description">
<English>Adds LSD effect to synchronized vehicle</English> <English>Adds LSD effect to synchronized vehicle</English>
@ -560,15 +572,22 @@
<Spanish>Añade el efecto LSD al vehículo sincronizado</Spanish> <Spanish>Añade el efecto LSD al vehículo sincronizado</Spanish>
<German>Fügt einen LSD-Effekt zum synchronisierten Fahrzeug hinzu</German> <German>Fügt einen LSD-Effekt zum synchronisierten Fahrzeug hinzu</German>
<Czech>Přidá LSD efekt pro synchronizované vozidla</Czech> <Czech>Přidá LSD efekt pro synchronizované vozidla</Czech>
<Portuguese>Adiciona efeito LSD ao veículo sincronizado</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Common_toggleHandheldDevice"> <Key ID="STR_ACE_Common_toggleHandheldDevice">
<English>Toggle Handheld Device</English> <English>Toggle Handheld Device</English>
<Spanish>Seleccionar dispositivo de mano</Spanish>
<Portuguese>Ativa dispositivo de mão</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Common_closeHandheldDevice"> <Key ID="STR_ACE_Common_closeHandheldDevice">
<English>Close Handheld Device</English> <English>Close Handheld Device</English>
<Spanish>Cerrar dispositivo de mano</Spanish>
<Portuguese>Fecha dispositivo de mão</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Common_cycleHandheldDevices"> <Key ID="STR_ACE_Common_cycleHandheldDevices">
<English>Cycle Handheld Devices</English> <English>Cycle Handheld Devices</English>
<Spanish>Cambiar dispositivos de mano</Spanish>
<Portuguese>Troca dispositivos de mão</Portuguese>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -11,6 +11,7 @@
<Czech>Ostnatý drát</Czech> <Czech>Ostnatý drát</Czech>
<Italian>Concertina wire</Italian> <Italian>Concertina wire</Italian>
<Hungarian>Concertina wire</Hungarian> <Hungarian>Concertina wire</Hungarian>
<Portuguese>Arame farpado</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_CONCERTINA_WIRECOIL"> <Key ID="STR_ACE_CONCERTINA_WIRECOIL">
<English>Concertina Wire Coil</English> <English>Concertina Wire Coil</English>
@ -22,6 +23,7 @@
<Czech>Smyčka ostnatého drátu</Czech> <Czech>Smyčka ostnatého drátu</Czech>
<Italian>Concertina wire coil</Italian> <Italian>Concertina wire coil</Italian>
<Hungarian>Concertina wire coil</Hungarian> <Hungarian>Concertina wire coil</Hungarian>
<Portuguese>Bobina de arame farpado</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_UNROLLWIRE"> <Key ID="STR_ACE_UNROLLWIRE">
<English>Dismount Concertina Wire</English> <English>Dismount Concertina Wire</English>
@ -33,6 +35,7 @@
<Czech>Svinout ostnatý drát</Czech> <Czech>Svinout ostnatý drát</Czech>
<Italian>Dismount Concertina wire</Italian> <Italian>Dismount Concertina wire</Italian>
<Hungarian>Dismount Concertina wire</Hungarian> <Hungarian>Dismount Concertina wire</Hungarian>
<Portuguese>Desmontar arame farpado</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_ROLLWIRE"> <Key ID="STR_ACE_ROLLWIRE">
<English>Deploy Concertina Wire</English> <English>Deploy Concertina Wire</English>
@ -44,6 +47,7 @@
<Czech>Rozvinout ostnatý drát</Czech> <Czech>Rozvinout ostnatý drát</Czech>
<Italian>Deploy Concertina wire</Italian> <Italian>Deploy Concertina wire</Italian>
<Hungarian>Deploy Concertina wire</Hungarian> <Hungarian>Deploy Concertina wire</Hungarian>
<Portuguese>Colocar arame farpado</Portuguese>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -10,7 +10,7 @@ class CfgVehicles {
showDisabled = 0; showDisabled = 0;
priority = 0.1; priority = 0.1;
icon = QUOTE(PATHTOF(UI\DAGR_Icon.paa)); icon = QUOTE(PATHTOF(UI\DAGR_Icon.paa));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside", "isNotSitting"};
class GVAR(toggle) { class GVAR(toggle) {
displayName = "Toggle DAGR"; displayName = "Toggle DAGR";
condition = QUOTE([ARR_2(_player,'ACE_DAGR')] call EFUNC(common,hasItem)); condition = QUOTE([ARR_2(_player,'ACE_DAGR')] call EFUNC(common,hasItem));
@ -18,7 +18,7 @@ class CfgVehicles {
showDisabled = 0; showDisabled = 0;
priority = 0.2; priority = 0.2;
icon = QUOTE(PATHTOF(UI\DAGR_Icon.paa)); icon = QUOTE(PATHTOF(UI\DAGR_Icon.paa));
exceptions[] = {"notOnMap", "isNotInside"}; exceptions[] = {"notOnMap", "isNotInside", "isNotSitting"};
}; };
}; };
}; };

View File

@ -1,5 +1,7 @@
#include "script_component.hpp" #include "script_component.hpp"
if (!hasInterface) exitWith {};
#include "initKeybinds.sqf" #include "initKeybinds.sqf"
GVAR(outputPFH) = -1; GVAR(outputPFH) = -1;

View File

@ -69,7 +69,7 @@ GVAR(showOutOfSpace) = false;
GVAR(PWR) = false; GVAR(PWR) = false;
GVAR(menuRun) = true; GVAR(menuRun) = true;
[{ [{
if (!dialog || GVAR(PWR)) exitWith { if (!dialog || GVAR(PWR) || !GVAR(menuRun)) exitWith {
closeDialog 266860; closeDialog 266860;
GVAR(menuRun) = false; GVAR(menuRun) = false;
[_this select 1] call CBA_fnc_removePerFrameHandler; [_this select 1] call CBA_fnc_removePerFrameHandler;

View File

@ -17,6 +17,10 @@
GVAR(run) = !GVAR(run); GVAR(run) = !GVAR(run);
if (GVAR(run)) then { if (GVAR(run)) then {
if (GVAR(menuRun) && dialog) then {
GVAR(menuRun) = false;
closeDialog 0;
};
GVAR(hidden) = true; GVAR(hidden) = true;
[{ [{
EXPLODE_1_PVT(_this select 0,_vehicle); EXPLODE_1_PVT(_this select 0,_vehicle);

View File

@ -2,7 +2,7 @@
["ACE3 Equipment", QGVAR(MenuKey), "Configure DAGR", ["ACE3 Equipment", QGVAR(MenuKey), "Configure DAGR",
{ {
// Conditions: canInteract // 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 !([ACE_player, "ACE_DAGR"] call EFUNC(common,hasItem)) exitWith {false}; if !([ACE_player, "ACE_DAGR"] call EFUNC(common,hasItem)) exitWith {false};
// Statement // Statement
@ -14,12 +14,12 @@
true true
}, },
{false}, {false},
[199, [false, true, false]], false] call cba_fnc_addKeybind; // (CTRL + Home) [0, [false, true, false]], false] call cba_fnc_addKeybind; // (empty default key)
["ACE3 Equipment", QGVAR(ToggleKey), "Toggle DAGR", ["ACE3 Equipment", QGVAR(ToggleKey), "Toggle DAGR",
{ {
// Conditions: canInteract // 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 !([ACE_player, "ACE_DAGR"] call EFUNC(common,hasItem)) exitWith {false}; if !([ACE_player, "ACE_DAGR"] call EFUNC(common,hasItem)) exitWith {false};
// Statement // Statement
@ -27,4 +27,33 @@
true true
}, },
{false}, {false},
[199, [false, false, false]], false] call cba_fnc_addKeybind; // (Home) [0, [false, false, false]], false] call cba_fnc_addKeybind; // (empty default key)
//Add deviceKey entry:
private ["_conditonCode", "_toggleCode", "_closeCode"];
_conditonCode = {
([ACE_player, "ACE_DAGR"] call EFUNC(common,hasItem));
};
_toggleCode = {
// Conditions: canInteract
if !([ACE_player, objNull, []] call EFUNC(common,canInteractWith)) exitWith {};
// Statement
[] call FUNC(toggleOverlay);
if (!GVAR(run)) then {
[] call FUNC(menuInit);
};
};
_closeCode = {
// Statement
if (GVAR(run)) then {
//If dispaly is open, close it:
[] call FUNC(toggleOverlay);
};
if (dialog && GVAR(menuRun)) then {
//If dialog is open, close it:
GVAR(menuRun) = false;
closeDialog 0;
};
};
["DAGR", QUOTE(PATHTOF(UI\DAGR_Icon.paa)), _conditonCode, _toggleCode, _closeCode] call EFUNC(common,deviceKeyRegisterNew);

View File

@ -7,4 +7,10 @@ class ACE_Settings {
value = 1; value = 1;
typeName = "BOOL"; typeName = "BOOL";
}; };
class GVAR(ExplodeOnDefuse) {
displayName = CSTRING(ExplodeOnDefuse_DisplayName);
description = CSTRING(ExplodeOnDefuse_Description);
value = 1;
typeName = "BOOL";
};
}; };

View File

@ -71,23 +71,50 @@ class CfgAmmo {
class SatchelCharge_Remote_Ammo_Scripted: SatchelCharge_Remote_Ammo;*/ class SatchelCharge_Remote_Ammo_Scripted: SatchelCharge_Remote_Ammo;*/
class IEDUrbanBig_Remote_Ammo: PipeBombBase { class IEDUrbanBig_Remote_Ammo: PipeBombBase {
mineTrigger = "RangeTrigger";
triggerWhenDestroyed = 1; triggerWhenDestroyed = 1;
soundTrigger[] = {"A3\Sounds_F\weapons\mines\mech_trigger_1", 0.562341, 1, 40}; ACE_explodeOnDefuse = 0.02;
soundTrigger[] = {"A3\Sounds_F\weapons\mines\mech_trigger_1", 0.8, 1, 40};
}; };
class IEDLandBig_Remote_Ammo: PipeBombBase { class IEDUrbanBig_Command_Ammo: IEDUrbanBig_Remote_Ammo {
mineTrigger = "RemoteTrigger";
};
class IEDUrbanBig_Range_Ammo: IEDUrbanBig_Remote_Ammo {
mineTrigger = "RangeTrigger"; mineTrigger = "RangeTrigger";
triggerWhenDestroyed = 1;
soundTrigger[] = {"A3\Sounds_F\weapons\mines\mech_trigger_1", 0.562341, 1, 40};
}; };
class IEDUrbanSmall_Remote_Ammo: PipeBombBase { class IEDUrbanSmall_Remote_Ammo: PipeBombBase {
mineTrigger = "RangeTrigger";
triggerWhenDestroyed = 1; triggerWhenDestroyed = 1;
soundTrigger[] = {"A3\Sounds_F\weapons\mines\mech_trigger_1", 0.562341, 1, 40}; ACE_explodeOnDefuse = 0.02;
soundTrigger[] = {"A3\Sounds_F\weapons\mines\mech_trigger_1", 0.8, 1, 40};
}; };
class IEDLandSmall_Remote_Ammo: PipeBombBase { class IEDUrbanSmall_Command_Ammo: IEDUrbanSmall_Remote_Ammo {
mineTrigger = "RemoteTrigger";
};
class IEDUrbanSmall_Range_Ammo: IEDUrbanSmall_Remote_Ammo {
mineTrigger = "RangeTrigger"; mineTrigger = "RangeTrigger";
};
class IEDLandBig_Remote_Ammo: PipeBombBase {
triggerWhenDestroyed = 1; triggerWhenDestroyed = 1;
soundTrigger[] = {"A3\Sounds_F\weapons\mines\mech_trigger_1", 0.562341, 1, 40}; ACE_explodeOnDefuse = 0.02;
soundTrigger[] = {"A3\Sounds_F\weapons\mines\mech_trigger_1", 0.8, 1, 40};
};
class IEDLandBig_Command_Ammo: IEDLandBig_Remote_Ammo {
mineTrigger = "RemoteTrigger";
};
class IEDLandBig_Range_Ammo: IEDLandBig_Remote_Ammo {
mineTrigger = "RangeTrigger";
};
class IEDLandSmall_Remote_Ammo: PipeBombBase {
triggerWhenDestroyed = 1;
ACE_explodeOnDefuse = 0.02;
soundTrigger[] = {"A3\Sounds_F\weapons\mines\mech_trigger_1", 0.8, 1, 40};
};
class IEDLandSmall_Command_Ammo: IEDLandSmall_Remote_Ammo {
mineTrigger = "RemoteTrigger";
};
class IEDLandSmall_Range_Ammo: IEDLandSmall_Remote_Ammo {
mineTrigger = "RangeTrigger";
}; };
}; };

View File

@ -100,41 +100,47 @@ class CfgMagazines {
class IEDUrbanBig_Remote_Mag: DemoCharge_Remote_Mag { class IEDUrbanBig_Remote_Mag: DemoCharge_Remote_Mag {
ACE_SetupObject = "ACE_Explosives_Place_IEDUrbanBig"; ACE_SetupObject = "ACE_Explosives_Place_IEDUrbanBig";
class ACE_Triggers { class ACE_Triggers {
SupportedTriggers[] = {"Command","DeadmanSwitch", "Cellphone", "PressurePlate"}; SupportedTriggers[] = {"Command", "DeadmanSwitch", "Cellphone", "PressurePlate"};
class Command { class Command {
FuseTime = 0.5; FuseTime = 0.5;
ammo = "IEDUrbanBig_Command_Ammo";
}; };
class DeadmanSwitch:Command {}; class DeadmanSwitch:Command {};
class Cellphone:Command {}; class Cellphone:Command {};
class PressurePlate { class PressurePlate {
displayName = CSTRING(SLAME_Magnetic); displayName = CSTRING(PressurePlate);
digDistance = 0; digDistance = 0;
ammo = "IEDUrbanBig_Remote_Ammo"; ammo = "IEDUrbanBig_Range_Ammo";
pitch = 0; pitch = 0;
}; };
}; };
}; };
class IEDLandBig_Remote_Mag: IEDUrbanBig_Remote_Mag { class IEDLandBig_Remote_Mag: IEDUrbanBig_Remote_Mag {
ACE_SetupObject = "ACE_Explosives_Place_IEDLandBig"; ACE_SetupObject = "ACE_Explosives_Place_IEDLandBig";
class ACE_Triggers: ACE_Triggers { class ACE_Triggers: ACE_Triggers {
class Command: Command {
ammo = "IEDLandBig_Command_Ammo";
};
class PressurePlate: PressurePlate { class PressurePlate: PressurePlate {
ammo = "IEDLandBig_Remote_Ammo"; ammo = "IEDLandBig_Range_Ammo";
}; };
}; };
}; };
class IEDUrbanSmall_Remote_Mag: DemoCharge_Remote_Mag { class IEDUrbanSmall_Remote_Mag: DemoCharge_Remote_Mag {
ACE_SetupObject = "ACE_Explosives_Place_IEDUrbanSmall"; ACE_SetupObject = "ACE_Explosives_Place_IEDUrbanSmall";
class ACE_Triggers { class ACE_Triggers {
SupportedTriggers[] = {"Command","DeadmanSwitch", "Cellphone", "PressurePlate"}; SupportedTriggers[] = {"Command", "DeadmanSwitch", "Cellphone", "PressurePlate"};
class Command { class Command {
FuseTime = 0.5; FuseTime = 0.5;
ammo = "IEDUrbanSmall_Command_Ammo";
}; };
class DeadmanSwitch: Command {}; class DeadmanSwitch: Command {};
class Cellphone: Command {}; class Cellphone: Command {};
class PressurePlate { class PressurePlate {
displayName = CSTRING(SLAME_Magnetic); displayName = CSTRING(PressurePlate);
digDistance = 0; digDistance = 0;
ammo = "IEDUrbanSmall_Remote_Ammo"; ammo = "IEDUrbanSmall_Range_Ammo";
pitch = 0; pitch = 0;
}; };
}; };
@ -142,8 +148,11 @@ class CfgMagazines {
class IEDLandSmall_Remote_Mag: IEDUrbanSmall_Remote_Mag { class IEDLandSmall_Remote_Mag: IEDUrbanSmall_Remote_Mag {
ACE_SetupObject = "ACE_Explosives_Place_IEDLandSmall"; ACE_SetupObject = "ACE_Explosives_Place_IEDLandSmall";
class ACE_Triggers: ACE_Triggers { class ACE_Triggers: ACE_Triggers {
class Command: Command {
ammo = "IEDLandSmall_Command_Ammo";
};
class PressurePlate: PressurePlate { class PressurePlate: PressurePlate {
ammo = "IEDLandSmall_Remote_Ammo"; ammo = "IEDLandSmall_Range_Ammo";
}; };
}; };
}; };

View File

@ -20,6 +20,12 @@ class ACE_ModuleExplosive: ACE_Module {
typeName = "BOOL"; typeName = "BOOL";
defaultValue = 1; defaultValue = 1;
}; };
class ExplodeOnDefuse {
displayName = "$STR_ACE_Explosive_ExplodeOnDefuse_DisplayName";
description = "$STR_ACE_Explosive_ExplodeOnDefuse_Description";
typeName = "BOOL";
defaultValue = 1;
};
}; };
class ModuleDescription { class ModuleDescription {
description = CSTRING(Module_Description); description = CSTRING(Module_Description);

View File

@ -6,7 +6,7 @@ class CfgVehicles {
displayName = CSTRING(Menu); displayName = CSTRING(Menu);
condition = QUOTE(!(_player getVariable [ARR_2('ace_explosives_PlantingExplosive',false)])); condition = QUOTE(!(_player getVariable [ARR_2('ace_explosives_PlantingExplosive',false)]));
statement = ""; statement = "";
exceptions[] = {"isNotSwimming", "isNotInside"}; exceptions[] = {"isNotSwimming", "isNotInside", "isNotSitting"};
showDisabled = 1; showDisabled = 1;
priority = 4; priority = 4;
icon = PATHTOF(UI\Explosives_Menu_ca.paa); icon = PATHTOF(UI\Explosives_Menu_ca.paa);
@ -17,7 +17,7 @@ class CfgVehicles {
condition = QUOTE([_player] call FUNC(canDetonate)); condition = QUOTE([_player] call FUNC(canDetonate));
statement = ""; statement = "";
insertChildren = QUOTE([_player] call FUNC(addTransmitterActions);); insertChildren = QUOTE([_player] call FUNC(addTransmitterActions););
exceptions[] = {"isNotSwimming", "isNotInside"}; exceptions[] = {"isNotSwimming", "isNotInside", "isNotSitting"};
showDisabled = 1; showDisabled = 1;
icon = PATHTOF(UI\Explosives_Menu_ca.paa); icon = PATHTOF(UI\Explosives_Menu_ca.paa);
priority = 2; priority = 2;
@ -38,7 +38,7 @@ class CfgVehicles {
displayName = CSTRING(cellphone_displayName); displayName = CSTRING(cellphone_displayName);
condition = "('ACE_Cellphone' in (items ace_player))"; condition = "('ACE_Cellphone' in (items ace_player))";
statement = "closeDialog 0;createDialog 'Rsc_ACE_PhoneInterface';"; statement = "closeDialog 0;createDialog 'Rsc_ACE_PhoneInterface';";
exceptions[] = {"isNotSwimming", "isNotInside"}; exceptions[] = {"isNotSwimming", "isNotInside", "isNotSitting"};
showDisabled = 0; showDisabled = 0;
icon = PATHTOF(Data\UI\Cellphone_UI.paa); icon = PATHTOF(Data\UI\Cellphone_UI.paa);
priority = 0.8; priority = 0.8;
@ -103,7 +103,7 @@ class CfgVehicles {
statement = ""; statement = "";
insertChildren = QUOTE([ARR_3(_target getVariable QUOTE(QGVAR(class)),_target,_player)] call FUNC(addTriggerActions);); insertChildren = QUOTE([ARR_3(_target getVariable QUOTE(QGVAR(class)),_target,_player)] call FUNC(addTriggerActions););
showDisabled = 0; showDisabled = 0;
exceptions[] = {}; exceptions[] = {"isNotSwimming"};
priority = 5; priority = 5;
icon = QUOTE(PATHTOF(UI\Explosives_Menu_ca.paa)); icon = QUOTE(PATHTOF(UI\Explosives_Menu_ca.paa));
}; };
@ -114,7 +114,7 @@ class CfgVehicles {
condition = "true"; condition = "true";
statement = QUOTE([ARR_2(_player,_target getVariable QUOTE(QGVAR(class)))] call EFUNC(common,addToInventory);deleteVehicle _target;); statement = QUOTE([ARR_2(_player,_target getVariable QUOTE(QGVAR(class)))] call EFUNC(common,addToInventory);deleteVehicle _target;);
showDisabled = 0; showDisabled = 0;
exceptions[] = {}; exceptions[] = {"isNotSwimming"};
priority = 5; priority = 5;
icon = "\A3\ui_f\data\IGUI\Cfg\Actions\Obsolete\ui_action_takemine_ca.paa"; icon = "\A3\ui_f\data\IGUI\Cfg\Actions\Obsolete\ui_action_takemine_ca.paa";
}; };

View File

@ -15,7 +15,7 @@ class RscEdit;
class Rsc_ACE_CallScreen_Edit:RscEdit { class Rsc_ACE_CallScreen_Edit:RscEdit {
canModify = 1; canModify = 1;
colorBackground[] = {0,0,0,1}; colorBackground[] = {0,0,0,0};
colorText[] = {0,0,0,1}; colorText[] = {0,0,0,1};
colorDisabled[] = {1,1,1,0.25}; colorDisabled[] = {1,1,1,0.25};
colorSelection[] = { colorSelection[] = {

View File

@ -17,7 +17,7 @@
#include "script_component.hpp" #include "script_component.hpp"
EXPLODE_2_PVT(_this,_unit,_explosive); EXPLODE_2_PVT(_this,_unit,_explosive);
if (getNumber (ConfigFile >> "CfgAmmo" >> typeof _explosive >> "ACE_explodeOnDefuse") == 1) exitWith { if (GVAR(ExplodeOnDefuse) && (random 1.0) < getNumber(ConfigFile >> "CfgAmmo" >> typeOf _explosive >> "ACE_explodeOnDefuse")) exitWith {
[_unit, -1, [_explosive, 1], true] call FUNC(detonateExplosive); [_unit, -1, [_explosive, 1], true] call FUNC(detonateExplosive);
}; };

View File

@ -27,5 +27,7 @@ if !(_activated) exitWith {};
call EFUNC(Common,readSettingFromModule); call EFUNC(Common,readSettingFromModule);
[_logic, QGVAR(PunishNonSpecialists),"PunishNonSpecialists"] [_logic, QGVAR(PunishNonSpecialists),"PunishNonSpecialists"]
call EFUNC(Common,readSettingFromModule); call EFUNC(Common,readSettingFromModule);
[_logic, QGVAR(ExplodeOnDefuse),"ExplodeOnDefuse"]
call EFUNC(Common,readSettingFromModule);
diag_log text "[ACE]: Explosive Module Initialized."; diag_log text "[ACE]: Explosive Module Initialized.";

View File

@ -511,6 +511,7 @@
<Spanish>Sistema de explosivos</Spanish> <Spanish>Sistema de explosivos</Spanish>
<German>Sprengstoffsystem</German> <German>Sprengstoffsystem</German>
<Czech>Systém výbušnin</Czech> <Czech>Systém výbušnin</Czech>
<Portuguese>Sistema de explosivos</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Explosives_RequireSpecialist_DisplayName"> <Key ID="STR_ACE_Explosives_RequireSpecialist_DisplayName">
<English>Require specialists?</English> <English>Require specialists?</English>
@ -518,6 +519,7 @@
<Spanish>¿Requiere especialista?</Spanish> <Spanish>¿Requiere especialista?</Spanish>
<German>Benötigt Sprengstoffexperten?</German> <German>Benötigt Sprengstoffexperten?</German>
<Czech>Vyžadovat specialistu?</Czech> <Czech>Vyžadovat specialistu?</Czech>
<Portuguese>Requer especialista?</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Explosives_RequireSpecialist_Description"> <Key ID="STR_ACE_Explosives_RequireSpecialist_Description">
<English>Require explosive specialists to disable explosives? Default: No</English> <English>Require explosive specialists to disable explosives? Default: No</English>
@ -525,6 +527,7 @@
<Spanish>Requiere especialista en explosivos para desactivar explosivos?. Por defecto: No</Spanish> <Spanish>Requiere especialista en explosivos para desactivar explosivos?. Por defecto: No</Spanish>
<German>Benötige Sprengstoffexperte um Sprengladungen zu entschärfen? Standard: Nein</German> <German>Benötige Sprengstoffexperte um Sprengladungen zu entschärfen? Standard: Nein</German>
<Czech>Vyžadovat specialistu na zneškodnění výbušniny? Výchozí: Ne</Czech> <Czech>Vyžadovat specialistu na zneškodnění výbušniny? Výchozí: Ne</Czech>
<Portuguese>Requer especialista em explosivos para desativar explosivos? Padrão: Não</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Explosives_PunishNonSpecialists_DisplayName"> <Key ID="STR_ACE_Explosives_PunishNonSpecialists_DisplayName">
<English>Punish non-specialists?</English> <English>Punish non-specialists?</English>
@ -532,6 +535,7 @@
<Spanish>¿Penalizar a los no especialistas?</Spanish> <Spanish>¿Penalizar a los no especialistas?</Spanish>
<German>Bestrafe Nicht-Sprengstoffexperten?</German> <German>Bestrafe Nicht-Sprengstoffexperten?</German>
<Czech>Potrestat, pokud není specialista?</Czech> <Czech>Potrestat, pokud není specialista?</Czech>
<Portuguese>Punir não especialistas?</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Explosives_PunishNonSpecialists_Description"> <Key ID="STR_ACE_Explosives_PunishNonSpecialists_Description">
<English>Increase the time it takes to complete actions for non-specialists? Default: Yes</English> <English>Increase the time it takes to complete actions for non-specialists? Default: Yes</English>
@ -539,12 +543,22 @@
<Spanish>Aumenta el tiempo que lleva completar acciones para los no especialstas?. Por defecto: Si</Spanish> <Spanish>Aumenta el tiempo que lleva completar acciones para los no especialstas?. Por defecto: Si</Spanish>
<German>Entschärfungszeit für Nicht-Sprengstoffexperten erhöhen? Standard: Ja</German> <German>Entschärfungszeit für Nicht-Sprengstoffexperten erhöhen? Standard: Ja</German>
<Czech>Zvýšit čas potřebný k dokončení akce pokud není specialista? Výchozí: Ano</Czech> <Czech>Zvýšit čas potřebný k dokončení akce pokud není specialista? Výchozí: Ano</Czech>
<Portuguese>Aumentar o tempo necessário para completar ações por não especialistas? Padrão: Sim</Portuguese>
</Key>
<Key ID="STR_ACE_Explosives_ExplodeOnDefuse_DisplayName">
<English>Explode on defusal?</English>
<Portuguese>Explosão no desarmamento?</Portuguese>
</Key>
<Key ID="STR_ACE_Explosives_ExplodeOnDefuse_Description">
<English>Enable certain explosives to explode on defusal? Default: Yes</English>
<Portuguese>Ativa certos explosivos para detonar no desarmamento? Padrão: Sim</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Explosives_Module_Description"> <Key ID="STR_ACE_Explosives_Module_Description">
<English></English> <English></English>
<Polish>Moduł ten pozwala dostosować opcje związane z ładunkami wybuchowymi, ich podkładaniem oraz rozbrajaniem.</Polish> <Polish>Moduł ten pozwala dostosować opcje związane z ładunkami wybuchowymi, ich podkładaniem oraz rozbrajaniem.</Polish>
<German>Dieses Modul erlaubt die Einstellungen für Sprengstoffe zu verändern.</German> <German>Dieses Modul erlaubt die Einstellungen für Sprengstoffe zu verändern.</German>
<Czech>Tento modul umoňuje přizpůsobit nastavení týkajících se výbušnin.</Czech> <Czech>Tento modul umoňuje přizpůsobit nastavení týkajících se výbušnin.</Czech>
<Portuguese>Este módulo permite personalizar as definições relacionadas a explosivos.</Portuguese>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -7,6 +7,7 @@
<Spanish>Simulación de fragmentación</Spanish> <Spanish>Simulación de fragmentación</Spanish>
<German>Splittersimulation</German> <German>Splittersimulation</German>
<Czech>Simulace fragmentace</Czech> <Czech>Simulace fragmentace</Czech>
<Portuguese>Simulação de fragmentação</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Frag_EnableFrag_Desc"> <Key ID="STR_ACE_Frag_EnableFrag_Desc">
<English>Enable the ACE Fragmentation Simulation</English> <English>Enable the ACE Fragmentation Simulation</English>
@ -14,6 +15,7 @@
<Polish>Aktywuje symulację fragmentacji ACE</Polish> <Polish>Aktywuje symulację fragmentacji ACE</Polish>
<German>Aktiviere die ACE-Splittersimulation</German> <German>Aktiviere die ACE-Splittersimulation</German>
<Czech>Povolit ACE simulaci fragmentace</Czech> <Czech>Povolit ACE simulaci fragmentace</Czech>
<Portuguese>Ativa a simulação de fragmentação do ACE</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Frag_EnableSpall"> <Key ID="STR_ACE_Frag_EnableSpall">
<English>Spalling Simulation</English> <English>Spalling Simulation</English>
@ -21,6 +23,7 @@
<Polish>Symulacja odprysków</Polish> <Polish>Symulacja odprysków</Polish>
<German>Explosionssimulation</German> <German>Explosionssimulation</German>
<Czech>Simulace úlomků</Czech> <Czech>Simulace úlomků</Czech>
<Portuguese>Simulação de estilhaços</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Frag_EnableSpall_Desc"> <Key ID="STR_ACE_Frag_EnableSpall_Desc">
<English>Enable the ACE Spalling Simulation</English> <English>Enable the ACE Spalling Simulation</English>
@ -28,6 +31,7 @@
<Polish>Aktywuje symulację odprysków ACE</Polish> <Polish>Aktywuje symulację odprysków ACE</Polish>
<German>Aktiviere ACE-Explosionssimulation</German> <German>Aktiviere ACE-Explosionssimulation</German>
<Czech>Povolit ACE simulaci úlomků</Czech> <Czech>Povolit ACE simulaci úlomků</Czech>
<Portuguese>Ativa a simulação de estilhaços do ACE</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Frag_MaxTrack"> <Key ID="STR_ACE_Frag_MaxTrack">
<English>Maximum Projectiles Tracked</English> <English>Maximum Projectiles Tracked</English>
@ -35,6 +39,7 @@
<Polish>Maks. liczba śledzonych pocisków</Polish> <Polish>Maks. liczba śledzonych pocisków</Polish>
<German>Maximalzahl der verfolgten Projektile</German> <German>Maximalzahl der verfolgten Projektile</German>
<Czech>Maximální počet sledovaných projektilů</Czech> <Czech>Maximální počet sledovaných projektilů</Czech>
<Portuguese>Máximo de projéteis rastreados</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Frag_MaxTrack_Desc"> <Key ID="STR_ACE_Frag_MaxTrack_Desc">
<English>This 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 ( &gt;200 rounds in the air at once)</English> <English>This 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 ( &gt;200 rounds in the air at once)</English>
@ -42,6 +47,7 @@
<Polish>To ustawienie kontroluje maksymalną ilość pocisków, jakie fragmentacja i odpryski symulują w danym momencie. Jeżeli więcej pocisków będzie wystrzelonych, wtedy nie będą one śledzone. Zmniejsz tą opcję jeżeli nie chcesz odczuwać spadków FPS podczas ciężkiej wymiany ognia (więcej niż 200 pocisków w powietrzu na raz).</Polish> <Polish>To ustawienie kontroluje maksymalną ilość pocisków, jakie fragmentacja i odpryski symulują w danym momencie. Jeżeli więcej pocisków będzie wystrzelonych, wtedy nie będą one śledzone. Zmniejsz tą opcję jeżeli nie chcesz odczuwać spadków FPS podczas ciężkiej wymiany ognia (więcej niż 200 pocisków w powietrzu na raz).</Polish>
<German>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 (&gt;200 Objekte gleichzeitig in der Luft)</German> <German>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 (&gt;200 Objekte gleichzeitig in der Luft)</German>
<Czech>Toto nastavení kontroluje maximální množství projektilů z fragmentace a úlomků, která jsou sledována v dané době. Pokud je vystřeleno více projektilů, tak nebudou sledovány. Snižte toto nastavení pokud si nepřejete propady FPS v situacích, kde je velké množství projektilů ( &gt;200 nábojů najednou ve vzduchu)</Czech> <Czech>Toto nastavení kontroluje maximální množství projektilů z fragmentace a úlomků, která jsou sledována v dané době. Pokud je vystřeleno více projektilů, tak nebudou sledovány. Snižte toto nastavení pokud si nepřejete propady FPS v situacích, kde je velké množství projektilů ( &gt;200 nábojů najednou ve vzduchu)</Czech>
<Portuguese>Esta definição controla a quantidade máxima de projéteis que o sistema de fragmentação e estilhaçamento irá acompanhar em qualquer momento. Se mais projéteis são disparados, eles não serão rastreados. Diminua essa configuração se você não quiser que o FPS caia em cenários com alta contagem de projéteis (&gt; 200 projéteis no ar ao mesmo tempo)</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Frag_MaxTrackPerFrame"> <Key ID="STR_ACE_Frag_MaxTrackPerFrame">
<English>Maximum Projectiles Per Frame</English> <English>Maximum Projectiles Per Frame</English>
@ -49,6 +55,7 @@
<German>Maximale Anzahl an Projektilen pro Frame</German> <German>Maximale Anzahl an Projektilen pro Frame</German>
<Polish>Maks. liczba pocisków na klatkę</Polish> <Polish>Maks. liczba pocisków na klatkę</Polish>
<Czech>Maximální počet projektilů ze jeden snímek</Czech> <Czech>Maximální počet projektilů ze jeden snímek</Czech>
<Portuguese>Projéteis máximos por quadro</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Frag_MaxTrackPerFrame_Desc"> <Key ID="STR_ACE_Frag_MaxTrackPerFrame_Desc">
<English>The 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.</English> <English>The 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.</English>
@ -56,12 +63,14 @@
<German>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.</German> <German>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.</German>
<Spanish>El número de cálculos de esquirlas que se hará en cualquier cuadro. Esto ayuda a dispersar el impacto en FPS del seguimiento de esquirlas de balas a través de múltiples cuadros, lo que limita aún más su impacto.</Spanish> <Spanish>El número de cálculos de esquirlas que se hará en cualquier cuadro. Esto ayuda a dispersar el impacto en FPS del seguimiento de esquirlas de balas a través de múltiples cuadros, lo que limita aún más su impacto.</Spanish>
<Czech>Počet úlomků v daném snímku. Toto pomáhá rozšířit FPS dopad sledovaného úlomku napříč více snímky, omezuje jeho vliv ještě více.</Czech> <Czech>Počet úlomků v daném snímku. Toto pomáhá rozšířit FPS dopad sledovaného úlomku napříč více snímky, omezuje jeho vliv ještě více.</Czech>
<Portuguese>O número de cálculos por estilhaço rastreado para executar em qualquer quadro. Isso ajuda a distribuir o impacto no FPS do rastreamento de estilhaço em vários quadros, o que limita o seu impacto ainda mais.</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Frag_EnableDebugTrace"> <Key ID="STR_ACE_Frag_EnableDebugTrace">
<English>(SP Only) Frag/Spall Debug Tracing</English> <English>(SP Only) Frag/Spall Debug Tracing</English>
<Spanish>(Solo SP) Seguimiento de depuración de Fragmentación/Astillamiento </Spanish> <Spanish>(Solo SP) Seguimiento de depuración de Fragmentación/Astillamiento </Spanish>
<Polish>(Tylko SP) Wizualny debug odł./odpr.</Polish> <Polish>(Tylko SP) Wizualny debug odł./odpr.</Polish>
<Czech>(Pouze SP) Debug sledování Frag/Úlomků</Czech> <Czech>(Pouze SP) Debug sledování Frag/Úlomků</Czech>
<Portuguese>(Somente SP) Depuração de fragmentação e estilhaços traçantes</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Frag_EnableDebugTrace_Desc"> <Key ID="STR_ACE_Frag_EnableDebugTrace_Desc">
<English>(SP Only) Requires a mission/editor restart. Enables visual tracing of fragmentation and spalling rounds in SP game mode only.</English> <English>(SP Only) Requires a mission/editor restart. Enables visual tracing of fragmentation and spalling rounds in SP game mode only.</English>
@ -69,6 +78,7 @@
<Polish>(Tylko SP) Wymaga restartu misji/edytora. Aktywuje wizualne śledzenie odłamków oraz odprysków w trybie gry Single Player.</Polish> <Polish>(Tylko SP) Wymaga restartu misji/edytora. Aktywuje wizualne śledzenie odłamków oraz odprysków w trybie gry Single Player.</Polish>
<German>(nur SP) Splitter-/Explosions-Debugging</German> <German>(nur SP) Splitter-/Explosions-Debugging</German>
<Czech>(Pouze SP) Vyžaduje restart mise/editoru. Aktivuje vizuální stopování fragmentace a úlomů pouze v režimu jednoho hráče.</Czech> <Czech>(Pouze SP) Vyžaduje restart mise/editoru. Aktivuje vizuální stopování fragmentace a úlomů pouze v režimu jednoho hráče.</Czech>
<Portuguese>(Somente SP) Requer um reinício de missão / editor. Habilita o rastreamento visual de projéteis de fragmentação e estilhaçamento apenas no modo de jogo SP.</Portuguese>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -6,7 +6,7 @@ class CfgVehicles {
class ACE_PutInEarplugs { class ACE_PutInEarplugs {
displayName = CSTRING(EarPlugs_On); displayName = CSTRING(EarPlugs_On);
condition = QUOTE( !([_player] call FUNC(hasEarPlugsIn)) && {'ACE_EarPlugs' in items _player} ); condition = QUOTE( !([_player] call FUNC(hasEarPlugsIn)) && {'ACE_EarPlugs' in items _player} );
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside", "isNotSitting"};
statement = QUOTE( [_player] call FUNC(putInEarPlugs) ); statement = QUOTE( [_player] call FUNC(putInEarPlugs) );
showDisabled = 0; showDisabled = 0;
priority = 2.5; priority = 2.5;
@ -16,7 +16,7 @@ class CfgVehicles {
class ACE_RemoveEarplugs { class ACE_RemoveEarplugs {
displayName = CSTRING(EarPlugs_Off); displayName = CSTRING(EarPlugs_Off);
condition = QUOTE( [_player] call FUNC(hasEarPlugsIn) ); condition = QUOTE( [_player] call FUNC(hasEarPlugsIn) );
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside", "isNotSitting"};
statement = QUOTE( [_player] call FUNC(removeEarPlugs) ); statement = QUOTE( [_player] call FUNC(removeEarPlugs) );
showDisabled = 0; showDisabled = 0;
priority = 2.5; priority = 2.5;

View File

@ -12,4 +12,39 @@ class CfgWeapons {
mass = 1; mass = 1;
}; };
}; };
class H_HelmetB;
class H_HelmetCrew_B: H_HelmetB {
GVAR(protection) = 1;
GVAR(lowerVolume) = 0.80;
};
class H_HelmetCrew_0: H_HelmetCrew_B {};
class H_HelmetCrew_I: H_HelmetCrew_B {};
class H_CrewHelmetHeli_B: H_HelmetB {
GVAR(protection) = 0.75;
GVAR(lowerVolume) = 0.70;
};
class H_CrewHelmetHeli_O: H_CrewHelmetHeli_B {};
class H_CrewHelmetHeli_I: H_CrewHelmetHeli_B {};
class H_PilotHelmetHeli_B: H_HelmetB {
GVAR(protection) = 0.75;
GVAR(lowerVolume) = 0.70;
};
class H_PilotHelmetHeli_O: H_PilotHelmetHeli_B {};
class H_PilotHelmetHeli_I: H_PilotHelmetHeli_B {};
class H_PilotHelmetFighter_B: H_HelmetB {
GVAR(protection) = 1;
GVAR(lowerVolume) = 0.80;
};
class H_PilotHelmetFighter_O: H_PilotHelmetFighter_B {};
class H_PilotHelmetFighter_I: H_PilotHelmetFighter_B {};
class H_Cap_headphones: H_HelmetB {
GVAR(protection) = 0.5;
GVAR(lowerVolume) = 0.60;
};
class H_Cap_marshal: H_Cap_headphones {};
}; };

View File

@ -5,7 +5,7 @@ class CfgPatches {
units[] = {}; units[] = {};
weapons[] = {"ACE_EarPlugs"}; weapons[] = {"ACE_EarPlugs"};
requiredVersion = REQUIRED_VERSION; requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_interaction"}; requiredAddons[] = {"ace_interaction", "A3_Characters_F", "A3_Characters_F_Kart"};
author[] = {"KoffeinFlummi", "esteldunedain", "HopeJ", "commy2", "Rocko", "Rommel", "Ruthberg"}; author[] = {"KoffeinFlummi", "esteldunedain", "HopeJ", "commy2", "Rocko", "Rommel", "Ruthberg"};
authorUrl = "https://github.com/KoffeinFlummi/"; authorUrl = "https://github.com/KoffeinFlummi/";
VERSION_CONFIG; VERSION_CONFIG;

View File

@ -15,9 +15,12 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
private ["_unit", "_launcher"]; PARAMS_1(_unit);
_unit = _this select 0; // Exit if hearing is disabled or soldier has earplugs already in (persistence scenarios)
if (!GVAR(enableCombatDeafness) || {[_unit] call FUNC(hasEarPlugsIn)}) exitWith {};
private ["_launcher"];
// add earplugs if the soldier has a rocket launcher // add earplugs if the soldier has a rocket launcher
_launcher = secondaryWeapon _unit; _launcher = secondaryWeapon _unit;

View File

@ -27,6 +27,15 @@ if (_unit getVariable ["ACE_hasEarPlugsin", false]) then {
_strength = _strength / 4; _strength = _strength / 4;
}; };
//headgear hearing protection
if(headgear _unit != "") then {
private ["_protection"];
_protection = (getNumber (configFile >> "CfgWeapons" >> (headgear _unit) >> QGVAR(protection))) min 1;
if(_protection > 0) then {
_strength = _strength * (1 - _protection);
};
};
_unit setVariable [QGVAR(dv), (_unit getVariable [QGVAR(dv), 0]) + _strength]; _unit setVariable [QGVAR(dv), (_unit getVariable [QGVAR(dv), 0]) + _strength];
if (GVAR(earRingingPFH) != -1) exitWith {}; if (GVAR(earRingingPFH) != -1) exitWith {};

View File

@ -58,14 +58,18 @@ if (count _weaponMagazines == 0) then {
_weaponMagazines append _muzzleMagazines; _weaponMagazines append _muzzleMagazines;
}; };
} forEach _muzzles; } forEach _muzzles;
{
_ammoType = getText(configFile >> "CfgMagazines" >> _x >> "ammo");
_weaponMagazines set [_forEachIndex, [_x, _ammoType]];
} forEach _weaponMagazines;
missionNamespace setVariable [format[QEGVAR(common,weaponMagazines_%1),_weapon], _weaponMagazines]; missionNamespace setVariable [format[QEGVAR(common,weaponMagazines_%1),_weapon], _weaponMagazines];
}; };
_magazine = ""; _magazine = "";
{ {
_ammoType = getText(configFile >> "CfgMagazines" >> _x >> "ammo"); EXPLODE_2_PVT(_x,_magazineType,_ammoType)
if (_ammoType == _ammo) exitWith { if (_ammoType == _ammo) exitWith {
_magazine = _x; _magazine = _magazineType;
}; };
} forEach _weaponMagazines; } forEach _weaponMagazines;

View File

@ -46,6 +46,15 @@ if ([ACE_player] call FUNC(hasEarPlugsIn)) then {
_volume = _volume min GVAR(EarplugsVolume); _volume = _volume min GVAR(EarplugsVolume);
}; };
// Headgear can reduce hearing
if(headgear ACE_player != "") then {
private ["_lowerVolume"];
_lowerVolume = (getNumber (configFile >> "CfgWeapons" >> (headgear ACE_player) >> QGVAR(lowerVolume))) min 1;
if(_lowerVolume > 0) then {
_volume = _volume min (1 - _lowerVolume);
};
};
// Reduce volume if player is unconscious // Reduce volume if player is unconscious
if (ACE_player getVariable ["ACE_isUnconscious", false]) then { if (ACE_player getVariable ["ACE_isUnconscious", false]) then {
_volume = _volume min GVAR(UnconsciousnessVolume); _volume = _volume min GVAR(UnconsciousnessVolume);

View File

@ -115,6 +115,7 @@
<Spanish>Audición</Spanish> <Spanish>Audición</Spanish>
<German>Gehör</German> <German>Gehör</German>
<Czech>Sluch</Czech> <Czech>Sluch</Czech>
<Portuguese>Audição</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Hearing_CombatDeafness_DisplayName"> <Key ID="STR_ACE_Hearing_CombatDeafness_DisplayName">
<English>Enable combat deafness?</English> <English>Enable combat deafness?</English>
@ -122,6 +123,7 @@
<Spanish>¿Habilitar sordera de combate?</Spanish> <Spanish>¿Habilitar sordera de combate?</Spanish>
<German>Aktiviere Taubheit im Gefecht?</German> <German>Aktiviere Taubheit im Gefecht?</German>
<Czech>Povolit ztrátu sluchu?</Czech> <Czech>Povolit ztrátu sluchu?</Czech>
<Portuguese>Ativar surdez em combate?</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Hearing_CombatDeafness_Description"> <Key ID="STR_ACE_Hearing_CombatDeafness_Description">
<English>Enable combat deafness?</English> <English>Enable combat deafness?</English>
@ -129,12 +131,14 @@
<Spanish>Habilita la sordera de combate</Spanish> <Spanish>Habilita la sordera de combate</Spanish>
<German>Aktiviere Taubheit im Gefecht?</German> <German>Aktiviere Taubheit im Gefecht?</German>
<Czech>Povolit ztrátu sluchu?</Czech> <Czech>Povolit ztrátu sluchu?</Czech>
<Portuguese>Ativar surdez em combate?</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Hearing_Module_Description"> <Key ID="STR_ACE_Hearing_Module_Description">
<English></English> <English></English>
<Polish>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.</Polish> <Polish>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.</Polish>
<German>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.</German> <German>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.</German>
<Czech>Ztráta sluchu je možná ve chvíly, kdy se v bezprostřední blízkosti střílí z velkorážní zbraně nebo při bombardování a osoba je bez ochrany sluchu (např. špunty). Tento modul umožňuje tuto věc povolit nebo zakázat.</Czech> <Czech>Ztráta sluchu je možná ve chvíly, kdy se v bezprostřední blízkosti střílí z velkorážní zbraně nebo při bombardování a osoba je bez ochrany sluchu (např. špunty). Tento modul umožňuje tuto věc povolit nebo zakázat.</Czech>
<Portuguese>Este módulo ativa / desativa surdez em combate. Quando ativado, os jogadores podem ficar surdos quando uma arma é disparada ao seu redor ou uma explosão ocorre sem proteção auditiva.</Portuguese>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -19,16 +19,45 @@ class CfgVehicles {
class Parachute_02_base_F; class Parachute_02_base_F;
class ACE_HuntIR: Parachute_02_base_F { class ACE_HuntIR: Parachute_02_base_F {
scope = 1; author = ECSTRING(common,ACETeam);
castDriverShadow = 0;
destrType = "DestructDefault"; destrType = "DestructDefault";
displayName = "HuntIR"; displayName = "HuntIR";
model = PATHTOF(data\huntir.p3d); model = PATHTOF(data\huntir.p3d);
castDriverShadow = 0; scope = 1;
soundEnviron[] = {"z\ace\addons\apl\sounds\padak_let", 0.316228, 1, 80};
soundCrash[] = {"", db-30, 1 }; soundCrash[] = {"", db-30, 1 };
soundEnviron[] = {"z\ace\addons\apl\sounds\padak_let", 0.316228, 1, 80};
soundLandCrash[] = {"", db-30, 1 }; soundLandCrash[] = {"", db-30, 1 };
soundWaterCrash[] = {"", db10, 1 }; soundWaterCrash[] = {"", db10, 1 };
mapSize = 0; class HitPoints {
class HitEngine {
armor = 0;
material = -1;
name = "";
visual = "";
radius = 0;
passThrough = 0;
explosionShielding = 0;
};
class HitParachute {
armor = 0.0001;
material = -1;
name = "parachute";
visual = "";
radius = 0.2;
passThrough = 1;
explosionShielding = 0;
};
class HitCamera {
armor = 0.001;
material = -1;
name = "camera";
visual = "";
radius = 0.025;
passThrough = 1;
explosionShielding = 1;
};
};
}; };
class Item_Base_F; class Item_Base_F;
@ -56,4 +85,14 @@ class CfgVehicles {
MACRO_ADDMAGAZINE(ACE_HuntIR_M203,20); MACRO_ADDMAGAZINE(ACE_HuntIR_M203,20);
}; };
}; };
class Box_NATO_Support_F;
class ACE_Box_Misc: Box_NATO_Support_F {
class TransportItems {
MACRO_ADDITEM(ACE_HuntIR_monitor,5);
};
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_HuntIR_M203,20);
};
};
}; };

View File

@ -3,7 +3,6 @@
ADDON = false; ADDON = false;
PREP(cam); PREP(cam);
PREP(handleDamage);
PREP(handleFired); PREP(handleFired);
PREP(huntir); PREP(huntir);
PREP(huntirCompass); PREP(huntirCompass);

Binary file not shown.

View File

@ -65,12 +65,12 @@ GVAR(no_cams) sort true;
[{ [{
GVAR(nearHuntIRs) = ACE_player nearEntities ["ACE_HuntIR", HUNTIR_MAX_TRANSMISSION_RANGE]; GVAR(nearHuntIRs) = ACE_player nearEntities ["ACE_HuntIR", HUNTIR_MAX_TRANSMISSION_RANGE];
{ {
if (((getPosVisual _x) select 2) > 20 && {!(_x in GVAR(no_cams))} && {damage _x < 0.5}) then { if (((getPosVisual _x) select 2) > 20 && {!(_x in GVAR(no_cams))} && {_x getHitPointDamage "HitCamera" < 0.25}) then {
GVAR(no_cams) pushBack _x; GVAR(no_cams) pushBack _x;
}; };
} forEach GVAR(nearHuntIRs); } forEach GVAR(nearHuntIRs);
{ {
if (((getPosVisual _x) select 2) <= 20 || {!(_x in GVAR(nearHuntIRs))} || {damage _x >= 0.5}) then { if (((getPosVisual _x) select 2) <= 20 || {!(_x in GVAR(nearHuntIRs))} || {_x getHitPointDamage "HitCamera" >= 0.25}) then {
GVAR(no_cams) deleteAt _forEachIndex; GVAR(no_cams) deleteAt _forEachIndex;
if (_forEachIndex < GVAR(cur_cam)) then { if (_forEachIndex < GVAR(cur_cam)) then {
GVAR(cur_cam) = GVAR(cur_cam) - 1; GVAR(cur_cam) = GVAR(cur_cam) - 1;

View File

@ -1,25 +0,0 @@
/*
* Author: Ruthberg
*
* Handles huntir damage
*
* Arguments:
* 0: huntir <OBJECT>
* 1: selectionName <STRING>
* 2: damage <NUMBER>
* 3: source <OBJECT>
* 4: projectile <STRING>
*
* Return Value:
* Nothing
*
* Return value:
* None
*/
#include "script_component.hpp"
PARAMS_5(_huntir,_selectionName,_damage,_source,_projectile);
systemChat format["Selection: %1; Damage: %2", _selectionName, _damage];
_damage

View File

@ -32,17 +32,16 @@ if (_ammo != "F_HuntIR") exitWith {};
_huntir = createVehicle ["ACE_HuntIR", _position, [], 0, "FLY"]; _huntir = createVehicle ["ACE_HuntIR", _position, [], 0, "FLY"];
_huntir setPosATL _position; _huntir setPosATL _position;
_huntir setVariable [QGVAR(startTime), ACE_time, true]; _huntir setVariable [QGVAR(startTime), ACE_time, true];
// TODO: Edit the .p3d to allow doing the following _huntir getHit "camera"; _huntir getHit "parachute";
//_huntir addEventHandler ["HandleDamage", {_this call FUNC(handleDamage)}];
[{ [{
EXPLODE_1_PVT(_this select 0,_huntir); EXPLODE_1_PVT(_this select 0,_huntir);
if (isNull _huntir) exitWith { if (isNull _huntir) exitWith {
[_this select 1] call CBA_fnc_removePerFrameHandler; [_this select 1] call CBA_fnc_removePerFrameHandler;
}; };
if (damage _huntir > 0) then { private ["_parachuteDamage", "_velocity"];
private ["_velocity"]; _parachuteDamage = _huntir getHitPointDamage "HitParachute";
if (_parachuteDamage > 0) then {
_velocity = velocity _huntir; _velocity = velocity _huntir;
_velocity set [2, -1 min -20 * sqrt(damage _huntir)]; _velocity set [2, -1 min -20 * sqrt(_parachuteDamage)];
_huntir setVelocity _velocity; _huntir setVelocity _velocity;
_huntir setVectorUp [0, 0, 1]; _huntir setVectorUp [0, 0, 1];
}; };

View File

@ -61,7 +61,7 @@ createDialog "ace_huntir_cam_dialog_off";
if (_elapsedTime > 10) then { if (_elapsedTime > 10) then {
GVAR(state) = "noGDS"; GVAR(state) = "noGDS";
}; };
if (_elapsedTime > 5 && {count _nearestHuntIRs > 0}) then { if (_elapsedTime > 5 && {{_x getHitPointDamage "HitCamera" < 0.25} count _nearestHuntIRs > 0}) then {
GVAR(state) = "connecting"; GVAR(state) = "connecting";
}; };
}; };

View File

@ -11,6 +11,7 @@
<Polish>Skrzynia HuntIR</Polish> <Polish>Skrzynia HuntIR</Polish>
<French>HuntIR Transport Box</French> <French>HuntIR Transport Box</French>
<Hungarian>HuntIR Transport Box</Hungarian> <Hungarian>HuntIR Transport Box</Hungarian>
<Portuguese>Caixa de transporte do HuntIR</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_HUNTIR_magazine_displayName"> <Key ID="STR_ACE_HUNTIR_magazine_displayName">
<English>HuntIR Round</English> <English>HuntIR Round</English>
@ -22,6 +23,7 @@
<Polish>Nabój HuntIR</Polish> <Polish>Nabój HuntIR</Polish>
<French>Munition HuntIR</French> <French>Munition HuntIR</French>
<Hungarian>HuntIR lövedék</Hungarian> <Hungarian>HuntIR lövedék</Hungarian>
<Portuguese>Cartucho HuntIR</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_HUNTIR_monitor_displayName"> <Key ID="STR_ACE_HUNTIR_monitor_displayName">
<English>HuntIR monitor</English> <English>HuntIR monitor</English>
@ -33,6 +35,7 @@
<Polish>Odbiornik HuntIR</Polish> <Polish>Odbiornik HuntIR</Polish>
<French>Ecran HuntIR</French> <French>Ecran HuntIR</French>
<Hungarian>HuntIR monitor</Hungarian> <Hungarian>HuntIR monitor</Hungarian>
<Portuguese>Monitor HuntIR</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_HUNTIR_activateMonitor"> <Key ID="STR_ACE_HUNTIR_activateMonitor">
<English>Activate HuntIR monitor</English> <English>Activate HuntIR monitor</English>
@ -44,6 +47,7 @@
<Polish>Włącz odbiornik HuntIR</Polish> <Polish>Włącz odbiornik HuntIR</Polish>
<French>Allumer écran HuntIR</French> <French>Allumer écran HuntIR</French>
<Hungarian>HuntIR monitor aktiválása</Hungarian> <Hungarian>HuntIR monitor aktiválása</Hungarian>
<Portuguese>Ativar monitor do HuntIR</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_HUNTIR_CAM"> <Key ID="STR_ACE_HUNTIR_CAM">
<English>Camera:</English> <English>Camera:</English>
@ -55,6 +59,7 @@
<Polish>Kamera:</Polish> <Polish>Kamera:</Polish>
<French>Caméra:</French> <French>Caméra:</French>
<Hungarian>Kamera:</Hungarian> <Hungarian>Kamera:</Hungarian>
<Portuguese>Câmera:</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_HUNTIR_ALT"> <Key ID="STR_ACE_HUNTIR_ALT">
<English>Altitude:</English> <English>Altitude:</English>
@ -66,6 +71,7 @@
<Polish>Wysokość:</Polish> <Polish>Wysokość:</Polish>
<French>Altitude:</French> <French>Altitude:</French>
<Hungarian>Magasság:</Hungarian> <Hungarian>Magasság:</Hungarian>
<Portuguese>Altitude:</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_HUNTIR_TIME"> <Key ID="STR_ACE_HUNTIR_TIME">
<English>Recording Time:</English> <English>Recording Time:</English>
@ -77,6 +83,7 @@
<Polish>Czas nagrywania:</Polish> <Polish>Czas nagrywania:</Polish>
<French>Temps d'enregistrement:</French> <French>Temps d'enregistrement:</French>
<Hungarian>Felvételi idő:</Hungarian> <Hungarian>Felvételi idő:</Hungarian>
<Portuguese>Tempo de gravação:</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_HUNTIR_ESC"> <Key ID="STR_ACE_HUNTIR_ESC">
<English>Press ESC to quit camera</English> <English>Press ESC to quit camera</English>
@ -88,6 +95,7 @@
<Polish>Wciśnij ESC by wyjść z widoku kamery</Polish> <Polish>Wciśnij ESC by wyjść z widoku kamery</Polish>
<French>Appuyer sur ESC pour quitter camera</French> <French>Appuyer sur ESC pour quitter camera</French>
<Hungarian>Nyomj ESC-ket a kamerából való kilépéshez</Hungarian> <Hungarian>Nyomj ESC-ket a kamerából való kilépéshez</Hungarian>
<Portuguese>Pressione ESC para sair da câmera</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_HUNTIR_HELP"> <Key ID="STR_ACE_HUNTIR_HELP">
<English>Help</English> <English>Help</English>
@ -99,6 +107,7 @@
<Polish>Pomoc</Polish> <Polish>Pomoc</Polish>
<French>Aide</French> <French>Aide</French>
<Hungarian>Súgó</Hungarian> <Hungarian>Súgó</Hungarian>
<Portuguese>Ajuda</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_HUNTIR_HELP_ZOOM"> <Key ID="STR_ACE_HUNTIR_HELP_ZOOM">
<English>A/D - Cycle zoom</English> <English>A/D - Cycle zoom</English>
@ -110,6 +119,7 @@
<Polish>A/D - powiększenie</Polish> <Polish>A/D - powiększenie</Polish>
<French>A/D - Changement zoom</French> <French>A/D - Changement zoom</French>
<Hungarian>A/D - Nagyítás</Hungarian> <Hungarian>A/D - Nagyítás</Hungarian>
<Portuguese>A/D - Troca zoom</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_HUNTIR_HELP_CAM"> <Key ID="STR_ACE_HUNTIR_HELP_CAM">
<English>W/S - Select camera</English> <English>W/S - Select camera</English>
@ -121,6 +131,7 @@
<Polish>W/S - wybór kamery</Polish> <Polish>W/S - wybór kamery</Polish>
<French>W/S - Sélectionner caméra</French> <French>W/S - Sélectionner caméra</French>
<Hungarian>W/S - Kamera váltás</Hungarian> <Hungarian>W/S - Kamera váltás</Hungarian>
<Portuguese>W/S - Seleciona câmera</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_HUNTIR_HELP_ROT"> <Key ID="STR_ACE_HUNTIR_HELP_ROT">
<English>Left/Right - Rotate camera</English> <English>Left/Right - Rotate camera</English>
@ -132,6 +143,7 @@
<Polish>Lewo/Prawo - obrót kamery w poziomie</Polish> <Polish>Lewo/Prawo - obrót kamery w poziomie</Polish>
<French>Gauche/Droite - Rotation caméra</French> <French>Gauche/Droite - Rotation caméra</French>
<Hungarian>Jobb/Bal - Kamera forgatás</Hungarian> <Hungarian>Jobb/Bal - Kamera forgatás</Hungarian>
<Portuguese>Esquerda/Direita - Rotaciona câmera</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_HUNTIR_HELP_ELV"> <Key ID="STR_ACE_HUNTIR_HELP_ELV">
<English>Up/Down - Elevate/lower camera</English> <English>Up/Down - Elevate/lower camera</English>
@ -143,6 +155,7 @@
<Polish>Góra/Dół - obrót kamery w pionie</Polish> <Polish>Góra/Dół - obrót kamery w pionie</Polish>
<French>Haut/Bas - Monter/descendre caméra</French> <French>Haut/Bas - Monter/descendre caméra</French>
<Hungarian>Fel/Le - Kamera döntése/süllyesztése</Hungarian> <Hungarian>Fel/Le - Kamera döntése/süllyesztése</Hungarian>
<Portuguese>Acima/Abaixo - Eleva/Abaixa a câmera</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_HUNTIR_HELP_MOD"> <Key ID="STR_ACE_HUNTIR_HELP_MOD">
<English>N - Cycle IT modes</English> <English>N - Cycle IT modes</English>
@ -154,6 +167,7 @@
<Polish>N - wybór trybu IT</Polish> <Polish>N - wybór trybu IT</Polish>
<French>N - Changement de modes IT</French> <French>N - Changement de modes IT</French>
<Hungarian>N - Hőkép módok</Hungarian> <Hungarian>N - Hőkép módok</Hungarian>
<Portuguese>N - Troca modo IT</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_HUNTIR_HELP_RES"> <Key ID="STR_ACE_HUNTIR_HELP_RES">
<English>R - Reset camera</English> <English>R - Reset camera</English>
@ -165,6 +179,7 @@
<Polish>R - resetuj kamerę</Polish> <Polish>R - resetuj kamerę</Polish>
<French>R - Reset caméra</French> <French>R - Reset caméra</French>
<Hungarian>R - Kamera visszaállítása</Hungarian> <Hungarian>R - Kamera visszaállítása</Hungarian>
<Portuguese>R - Redefine a câmera</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_HUNTIR_HELP_EXIT"> <Key ID="STR_ACE_HUNTIR_HELP_EXIT">
<English>Esc - Exit help</English> <English>Esc - Exit help</English>
@ -176,6 +191,7 @@
<Polish>Esc - wyjście z ekranu Pomocy</Polish> <Polish>Esc - wyjście z ekranu Pomocy</Polish>
<French>Esc - Sortir de l'aide</French> <French>Esc - Sortir de l'aide</French>
<Hungarian>Exit - Kilépés a súgóból</Hungarian> <Hungarian>Exit - Kilépés a súgóból</Hungarian>
<Portuguese>Esc - Sai do Ajuda</Portuguese>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -36,8 +36,6 @@ addMissionEventHandler ["Draw3D", DFUNC(render)];
["ACE3 Common", QGVAR(InteractKey), (localize LSTRING(InteractKey)), ["ACE3 Common", QGVAR(InteractKey), (localize LSTRING(InteractKey)),
{ {
// Conditions: canInteract
if !([ACE_player, objNull, ["isNotInside","isNotDragging", "isNotCarrying", "isNotSwimming", "notOnMap", "isNotEscorting", "isNotSurrendering"]] call EFUNC(common,canInteractWith)) exitWith {false};
// Statement // Statement
[0] call FUNC(keyDown) [0] call FUNC(keyDown)
},{[0,false] call FUNC(keyUp)}, },{[0,false] call FUNC(keyUp)},
@ -45,8 +43,6 @@ addMissionEventHandler ["Draw3D", DFUNC(render)];
["ACE3 Common", QGVAR(SelfInteractKey), (localize LSTRING(SelfInteractKey)), ["ACE3 Common", QGVAR(SelfInteractKey), (localize LSTRING(SelfInteractKey)),
{ {
// Conditions: canInteract
if !([ACE_player, objNull, ["isNotInside","isNotDragging", "isNotCarrying", "isNotSwimming", "notOnMap", "isNotEscorting", "isNotSurrendering"]] call EFUNC(common,canInteractWith)) exitWith {false};
// Statement // Statement
[1] call FUNC(keyDown) [1] call FUNC(keyDown)
},{[1,false] call FUNC(keyUp)}, },{[1,false] call FUNC(keyUp)},
@ -78,3 +74,11 @@ addMissionEventHandler ["Draw3D", DFUNC(render)];
if (GVAR(menuBackground)==1) then {[QGVAR(menuBackground), false] call EFUNC(common,blurScreen);}; if (GVAR(menuBackground)==1) then {[QGVAR(menuBackground), false] call EFUNC(common,blurScreen);};
if (GVAR(menuBackground)==2) then {(uiNamespace getVariable [QGVAR(menuBackground), displayNull]) closeDisplay 0;}; if (GVAR(menuBackground)==2) then {(uiNamespace getVariable [QGVAR(menuBackground), displayNull]) closeDisplay 0;};
}] call EFUNC(common,addEventHandler); }] call EFUNC(common,addEventHandler);
// Let key work with zeus open (not perfect, enables all added hotkeys in zeus interface rather than only menu)
["zeusDisplayChanged",{
if (_this select 1) then {
(finddisplay 312) displayAddEventHandler ["KeyUp", {[_this,'keyup'] call CBA_events_fnc_keyHandler}];
(finddisplay 312) displayAddEventHandler ["KeyDown", {[_this,'keydown'] call CBA_events_fnc_keyHandler}];
};
}] call EFUNC(common,addEventHandler);

View File

@ -6,6 +6,7 @@ PREP(addActionToClass);
PREP(addActionToObject); PREP(addActionToObject);
PREP(compileMenu); PREP(compileMenu);
PREP(compileMenuSelfAction); PREP(compileMenuSelfAction);
PREP(compileMenuZeus);
PREP(collectActiveActionTree); PREP(collectActiveActionTree);
PREP(createAction); PREP(createAction);
PREP(ctrlSetParsedTextCached); PREP(ctrlSetParsedTextCached);
@ -77,4 +78,7 @@ GVAR(lastTimeSearchedActions) = -1000;
["CAManBase"] call FUNC(compileMenu); ["CAManBase"] call FUNC(compileMenu);
["CAManBase"] call FUNC(compileMenuSelfAction); ["CAManBase"] call FUNC(compileMenuSelfAction);
// Init zeus menu
[] call FUNC(compileMenuZeus);
ADDON = true; ADDON = true;

View File

@ -122,7 +122,7 @@ _actions = if (_isMan) then {
// Dummy statement so it's not collapsed when there's no available actions // Dummy statement so it's not collapsed when there's no available actions
true true
}, },
{[ACE_player, _target, ["isNotInside","isNotDragging", "isNotCarrying", "isNotSwimming", "notOnMap", "isNotEscorting", "isNotSurrendering"]] call EFUNC(common,canInteractWith)}, {[ACE_player, _target, ["isNotInside","isNotDragging", "isNotCarrying", "isNotSwimming", "notOnMap", "isNotEscorting", "isNotSurrendering", "isNotSitting"]] call EFUNC(common,canInteractWith)},
{}, {},
{}, {},
"Spine3", "Spine3",

View File

@ -0,0 +1,94 @@
/*
* Author: SilentSpike
* Compile the zeus action menu (only to be done once)
*
* Argument:
* nil
*
* Return value:
* None
*
* Public: No
*/
#include "script_component.hpp";
// Exit if the action menu is already compiled for zeus
if !(isNil {missionNamespace getVariable [QGVAR(ZeusActions), nil]}) exitWith {};
private "_recurseFnc";
_recurseFnc = {
private ["_actions", "_displayName", "_icon", "_statement", "_condition", "_showDisabled",
"_enableInside", "_canCollapse", "_runOnHover", "_children", "_entry", "_entryCfg", "_insertChildren", "_modifierFunction"];
EXPLODE_1_PVT(_this,_actionsCfg);
_actions = [];
{
_entryCfg = _x;
if(isClass _entryCfg) then {
_displayName = getText (_entryCfg >> "displayName");
_icon = getText (_entryCfg >> "icon");
_statement = compile (getText (_entryCfg >> "statement"));
_condition = getText (_entryCfg >> "condition");
if (_condition == "") then {_condition = "true"};
_insertChildren = compile (getText (_entryCfg >> "insertChildren"));
_modifierFunction = compile (getText (_entryCfg >> "modifierFunction"));
_showDisabled = (getNumber (_entryCfg >> "showDisabled")) > 0;
_enableInside = (getNumber (_entryCfg >> "enableInside")) > 0;
_canCollapse = (getNumber (_entryCfg >> "canCollapse")) > 0;
_runOnHover = true;
if (isText (_entryCfg >> "runOnHover")) then {
_runOnHover = compile getText (_entryCfg >> "runOnHover");
} else {
_runOnHover = (getNumber (_entryCfg >> "runOnHover")) > 0;
};
_condition = compile _condition;
_children = [_entryCfg] call _recurseFnc;
_entry = [
[
configName _entryCfg,
_displayName,
_icon,
_statement,
_condition,
_insertChildren,
{},
[0,0,0],
10, //distace
[_showDisabled,_enableInside,_canCollapse,_runOnHover],
_modifierFunction
],
_children
];
_actions pushBack _entry;
};
} forEach (configProperties [_actionsCfg, "isClass _x", true]);
_actions
};
private ["_actionsCfg"];
_actionsCfg = configFile >> "ACE_ZeusActions";
// Create a master action to base zeus actions on
GVAR(ZeusActions) = [
[
[
"ACE_ZeusActions",
localize LSTRING(ZeusActionsRoot),
"\A3\Ui_F_Curator\Data\Logos\arma3_zeus_icon_ca.paa",
{true},
{true},
{},
{},
{[0,0,0]},
10,
[false,true,false]
],
[_actionsCfg] call _recurseFnc
]
];

View File

@ -16,6 +16,11 @@ EXPLODE_1_PVT(_this,_menuType);
if (GVAR(openedMenuType) == _menuType) exitWith {true}; if (GVAR(openedMenuType) == _menuType) exitWith {true};
// Conditions: canInteract (these don't apply to zeus)
if ((isNull curatorCamera) && {
!([ACE_player, objNull, ["isNotInside","isNotDragging", "isNotCarrying", "isNotSwimming", "notOnMap", "isNotEscorting", "isNotSurrendering", "isNotSitting"]] call EFUNC(common,canInteractWith))
}) exitWith {false};
while {dialog} do { while {dialog} do {
closeDialog 0; closeDialog 0;
}; };
@ -34,6 +39,7 @@ GVAR(ParsedTextCached) = [];
GVAR(useCursorMenu) = (vehicle ACE_player != ACE_player) || GVAR(useCursorMenu) = (vehicle ACE_player != ACE_player) ||
visibleMap || visibleMap ||
(!isNull curatorCamera) ||
{(_menuType == 1) && {(isWeaponDeployed ACE_player) || GVAR(AlwaysUseCursorSelfInteraction) || {cameraView == "GUNNER"}}} || {(_menuType == 1) && {(isWeaponDeployed ACE_player) || GVAR(AlwaysUseCursorSelfInteraction) || {cameraView == "GUNNER"}}} ||
{(_menuType == 0) && GVAR(AlwaysUseCursorInteraction)}; {(_menuType == 0) && GVAR(AlwaysUseCursorInteraction)};
@ -46,7 +52,12 @@ for "_i" from 0 to (count GVAR(iconCtrls))-1 do {
GVAR(iconCtrls) resize GVAR(iconCount); GVAR(iconCtrls) resize GVAR(iconCount);
if (GVAR(useCursorMenu)) then { if (GVAR(useCursorMenu)) then {
// Don't close zeus interface if open
if (isNull curatorCamera) then {
(findDisplay 46) createDisplay QGVAR(cursorMenu); //"RscCinemaBorder";// (findDisplay 46) createDisplay QGVAR(cursorMenu); //"RscCinemaBorder";//
} else {
createDialog QGVAR(cursorMenu);
};
(finddisplay 91919) displayAddEventHandler ["KeyUp", {[_this,'keyup'] call CBA_events_fnc_keyHandler}]; (finddisplay 91919) displayAddEventHandler ["KeyUp", {[_this,'keyup'] call CBA_events_fnc_keyHandler}];
(finddisplay 91919) displayAddEventHandler ["KeyDown", {[_this,'keydown'] call CBA_events_fnc_keyHandler}]; (finddisplay 91919) displayAddEventHandler ["KeyDown", {[_this,'keydown'] call CBA_events_fnc_keyHandler}];
// The dialog sets: // The dialog sets:

View File

@ -46,6 +46,8 @@ if(GVAR(actionSelected)) then {
}; };
}; };
["interactMenuClosed", [GVAR(openedMenuType)]] call EFUNC(common,localEvent);
GVAR(keyDown) = false; GVAR(keyDown) = false;
GVAR(keyDownSelfAction) = false; GVAR(keyDownSelfAction) = false;
GVAR(openedMenuType) = -1; GVAR(openedMenuType) = -1;
@ -54,6 +56,4 @@ GVAR(expanded) = false;
GVAR(lastPath) = []; GVAR(lastPath) = [];
GVAR(menuDepthPath) = []; GVAR(menuDepthPath) = [];
["interactMenuClosed", [GVAR(openedMenuType)]] call EFUNC(common,localEvent);
true true

View File

@ -118,12 +118,19 @@ _fnc_renderSelfActions = {
} forEach _classActions; } forEach _classActions;
}; };
_fnc_renderZeusActions = {
{
_action = _x;
[_this, _action, [0.5, 0.5]] call FUNC(renderBaseMenu);
} forEach GVAR(ZeusActions);
};
GVAR(collectedActionPoints) resize 0; GVAR(collectedActionPoints) resize 0;
// Render nearby actions, unit self actions or vehicle self actions as appropiate // Render nearby actions, unit self actions or vehicle self actions as appropiate
if (GVAR(openedMenuType) == 0) then { if (GVAR(openedMenuType) == 0) then {
if (isNull curatorCamera) then {
if (vehicle ACE_player == ACE_player) then { if (vehicle ACE_player == ACE_player) then {
if (ACE_diagTime > GVAR(lastTimeSearchedActions) + 0.20) then { if (ACE_diagTime > GVAR(lastTimeSearchedActions) + 0.20) then {
// Once every 0.2 secs, collect nearby objects active and visible action points and render them // Once every 0.2 secs, collect nearby objects active and visible action points and render them
@ -133,9 +140,13 @@ if (GVAR(openedMenuType) == 0) then {
call _fnc_renderLastFrameActions; call _fnc_renderLastFrameActions;
}; };
} else { } else {
// Render vehicle self actions when in vehicle
(vehicle ACE_player) call _fnc_renderSelfActions; (vehicle ACE_player) call _fnc_renderSelfActions;
}; };
} else {
// Render zeus actions when zeus open
(getAssignedCuratorLogic player) call _fnc_renderZeusActions;
};
} else { } else {
ACE_player call _fnc_renderSelfActions; ACE_player call _fnc_renderSelfActions;
}; };

View File

@ -36,7 +36,7 @@ _pos = if((count _this) > 2) then {
}; };
// For non-self actions, exit if the action is too far away or ocluded // For non-self actions, exit if the action is too far away or ocluded
if (GVAR(openedMenuType) == 0 && vehicle ACE_player == ACE_player && if (GVAR(openedMenuType) == 0 && (vehicle ACE_player == ACE_player) && (isNull curatorCamera) &&
{ {
private ["_headPos","_actualDistance"]; private ["_headPos","_actualDistance"];
_headPos = ACE_player modelToWorldVisual (ACE_player selectionPosition "pilot"); _headPos = ACE_player modelToWorldVisual (ACE_player selectionPosition "pilot");

View File

@ -85,6 +85,9 @@
<Italian>Interazioni con veicoli</Italian> <Italian>Interazioni con veicoli</Italian>
<Portuguese>Ações de Veículos</Portuguese> <Portuguese>Ações de Veículos</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Interact_Menu_ZeusActionsRoot">
<English>Zeus Actions</English>
</Key>
<Key ID="STR_ACE_Interact_Menu_ColorTextMax"> <Key ID="STR_ACE_Interact_Menu_ColorTextMax">
<English>Interaction - Text Max</English> <English>Interaction - Text Max</English>
<Polish>Interakcja - Tekst max</Polish> <Polish>Interakcja - Tekst max</Polish>
@ -222,24 +225,28 @@
<Polish>Tło menu interakcji</Polish> <Polish>Tło menu interakcji</Polish>
<Spanish>Fondo del menú de interacción</Spanish> <Spanish>Fondo del menú de interacción</Spanish>
<Czech>Pozadí menu interakce</Czech> <Czech>Pozadí menu interakce</Czech>
<Portuguese>Fundo do menu de interação</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Interact_Menu_blurScreenDesc"> <Key ID="STR_ACE_Interact_Menu_blurScreenDesc">
<English>Blur the background while the interaction menu is open.</English> <English>Blur the background while the interaction menu is open.</English>
<Polish>Rozmywa lub przyciemnia tło na czas otwarcia menu interakcji</Polish> <Polish>Rozmywa lub przyciemnia tło na czas otwarcia menu interakcji</Polish>
<Spanish>Desenfocar el fondo mientras el menú de interacción está abierto.</Spanish> <Spanish>Desenfocar el fondo mientras el menú de interacción está abierto.</Spanish>
<Czech>Rozmazat obraz pokud je interakční menu otevřené.</Czech> <Czech>Rozmazat obraz pokud je interakční menu otevřené.</Czech>
<Portuguese>Desfocar o fundo enquanto o menu de interação está aberto.</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Interact_Menu_backgroundBlur"> <Key ID="STR_ACE_Interact_Menu_backgroundBlur">
<English>Blur screen</English> <English>Blur screen</English>
<Polish>Rozmycie ekranu</Polish> <Polish>Rozmycie ekranu</Polish>
<Spanish>Pantalla de desenfoque</Spanish> <Spanish>Pantalla de desenfoque</Spanish>
<Czech>Rozmazaný obraz</Czech> <Czech>Rozmazaný obraz</Czech>
<Portuguese>Desfoque de tela</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Interact_Menu_backgroundBlack"> <Key ID="STR_ACE_Interact_Menu_backgroundBlack">
<English>Black</English> <English>Black</English>
<Polish>Przyciemnienie ekranu</Polish> <Polish>Przyciemnienie ekranu</Polish>
<Spanish>Negra</Spanish> <Spanish>Negra</Spanish>
<Czech>Černý obraz</Czech> <Czech>Černý obraz</Czech>
<Portuguese>Preto</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Interact_Menu_addBuildingActions"> <Key ID="STR_ACE_Interact_Menu_addBuildingActions">
<English>Show actions for buildings</English> <English>Show actions for buildings</English>

View File

@ -0,0 +1,268 @@
class ACE_ZeusActions {
// _target = curatorLogic
// curatorSelected = [objects,groups,waypoints,markers]
class ZeusUnits {
displayName = "$STR_A3_RscDisplayCurator_ModeUnits_tooltip";
icon = "\A3\UI_F_Curator\Data\Displays\RscDisplayCurator\modeUnits_ca.paa";
class stance {
displayName = "$STR_A3_RscAttributeUnitPos_Title";
class limited {
displayName = "$STR_A3_RscAttributeUnitPos_Down_tooltip";
icon = "\A3\UI_F\Data\IGUI\RscIngameUI\RscUnitInfo\SI_prone_ca.paa";
statement = "{_x setUnitPos 'DOWN';} forEach (curatorSelected select 0);";
};
class normal {
displayName = "$STR_A3_RscAttributeUnitPos_Crouch_tooltip";
icon = "\A3\UI_F\Data\IGUI\RscIngameUI\RscUnitInfo\SI_crouch_ca.paa";
statement = "{_x setUnitPos 'MIDDLE';} forEach (curatorSelected select 0);";
};
class full {
displayName = "$STR_A3_RscAttributeUnitPos_Up_tooltip";
icon = "\A3\UI_F\Data\IGUI\RscIngameUI\RscUnitInfo\SI_stand_ca.paa";
statement = "{_x setUnitPos 'UP';} forEach (curatorSelected select 0);";
};
class auto {
displayName = "$STR_A3_RscAttributeUnitPos_Auto_tooltip";
icon = "\A3\UI_F_Curator\Data\default_ca.paa";
statement = "{_x setUnitPos 'AUTO';} forEach (curatorSelected select 0);";
};
};
class remoteControl {
displayName = "$STR_A3_CfgVehicles_ModuleRemoteControl_F";
icon = "\A3\Modules_F_Curator\Data\portraitRemoteControl_ca.paa";
statement = "_unit = objNull; { if ((side _x in [east,west,resistance,civilian]) && !(isPlayer _x)) exitWith { _unit = _x; }; } forEach (curatorSelected select 0); bis_fnc_curatorObjectPlaced_mouseOver = ['OBJECT',_unit]; (group _target) createUnit ['ModuleRemoteControl_F',[0,0,0],[],0,''];";
};
};
class ZeusGroups {
displayName = "$STR_A3_RscDisplayCurator_ModeGroups_tooltip";
icon = "\A3\UI_F_Curator\Data\Displays\RscDisplayCurator\modeGroups_ca.paa";
class behaviour {
displayName = CSTRING(Zeus_Behaviour);
class careless {
displayName = CSTRING(Zeus_Behaviour_careless);
statement = "{ _x setBehaviour 'CARELESS'; } forEach (curatorSelected select 1);";
};
class safe {
displayName = "$STR_safe";
icon = "\A3\UI_F_Curator\Data\RscCommon\RscAttributeBehaviour\safe_ca.paa";
statement = "{ _x setBehaviour 'SAFE'; } forEach (curatorSelected select 1);";
};
class aware {
displayName = "$STR_aware";
icon = "\A3\UI_F_Curator\Data\RscCommon\RscAttributeBehaviour\aware_ca.paa";
statement = "{ _x setBehaviour 'AWARE'; } forEach (curatorSelected select 1);";
};
class combat {
displayName = "$STR_combat";
icon = "\A3\UI_F_Curator\Data\RscCommon\RscAttributeBehaviour\combat_ca.paa";
statement = "{ _x setBehaviour 'COMBAT'; } forEach (curatorSelected select 1);";
};
class stealth {
displayName = "$STR_stealth";
icon = "\A3\UI_F_Curator\Data\RscCommon\RscAttributeBehaviour\stealth_ca.paa";
statement = "{ _x setBehaviour 'STEALTH'; } forEach (curatorSelected select 1);";
};
};
class speed {
displayName = CSTRING(Zeus_Speed);
class limited {
displayName = "$STR_speed_limited";
icon = "\A3\UI_F_Curator\Data\RscCommon\RscAttributeSpeedMode\limited_ca.paa";
statement = "{_x setSpeedMode 'LIMITED';} forEach (curatorSelected select 1);";
};
class normal {
displayName = "$STR_speed_normal";
icon = "\A3\UI_F_Curator\Data\RscCommon\RscAttributeSpeedMode\normal_ca.paa";
statement = "{_x setSpeedMode 'NORMAL';} forEach (curatorSelected select 1);";
};
class full {
displayName = "$STR_speed_full";
icon = "\A3\UI_F_Curator\Data\RscCommon\RscAttributeSpeedMode\full_ca.paa";
statement = "{_x setSpeedMode 'FULL';} forEach (curatorSelected select 1);";
};
};
class stance {
displayName = "$STR_A3_RscAttributeUnitPos_Title";
class limited {
displayName = "$STR_A3_RscAttributeUnitPos_Down_tooltip";
icon = "\A3\UI_F\Data\IGUI\RscIngameUI\RscUnitInfo\SI_prone_ca.paa";
statement = "{ {_x setUnitPos 'DOWN'} forEach (units _x); } forEach (curatorSelected select 1);";
};
class normal {
displayName = "$STR_A3_RscAttributeUnitPos_Crouch_tooltip";
icon = "\A3\UI_F\Data\IGUI\RscIngameUI\RscUnitInfo\SI_crouch_ca.paa";
statement = "{ {_x setUnitPos 'MIDDLE'} forEach (units _x); } forEach (curatorSelected select 1);";
};
class full {
displayName = "$STR_A3_RscAttributeUnitPos_Up_tooltip";
icon = "\A3\UI_F\Data\IGUI\RscIngameUI\RscUnitInfo\SI_stand_ca.paa";
statement = "{ {_x setUnitPos 'UP'} forEach (units _x); } forEach (curatorSelected select 1);";
};
class auto {
displayName = "$STR_A3_RscAttributeUnitPos_Auto_tooltip";
icon = "\A3\UI_F_Curator\Data\default_ca.paa";
statement = "{ {_x setUnitPos 'AUTO'} forEach (units _x); } forEach (curatorSelected select 1);";
};
};
class formation {
displayName = CSTRING(Zeus_Formation);
class wedge {
displayName = "$STR_wedge";
icon="\A3\UI_F_Curator\Data\RscCommon\RscAttributeFormation\wedge_ca.paa";
statement = "{_x setFormation 'WEDGE';} forEach (curatorSelected select 1);";
};
class vee {
displayName = "$STR_vee";
icon="\A3\UI_F_Curator\Data\RscCommon\RscAttributeFormation\vee_ca.paa";
statement = "{_x setFormation 'VEE';} forEach (curatorSelected select 1);";
};
class line {
displayName = "$STR_line";
icon="\A3\UI_F_Curator\Data\RscCommon\RscAttributeFormation\line_ca.paa";
statement = "{_x setFormation 'LINE';} forEach (curatorSelected select 1);";
};
class column {
displayName = "$STR_column";
icon="\A3\UI_F_Curator\Data\RscCommon\RscAttributeFormation\column_ca.paa";
statement = "{_x setFormation 'COLUMN';} forEach (curatorSelected select 1);";
};
class file {
displayName = "$STR_file";
icon = "\A3\UI_F_Curator\Data\RscCommon\RscAttributeFormation\file_ca.paa";
statement = "{_x setFormation 'FILE';} forEach (curatorSelected select 1);";
};
class stag_column {
displayName = "$STR_staggered";
icon="\A3\UI_F_Curator\Data\RscCommon\RscAttributeFormation\stag_column_ca.paa";
statement = "{_x setFormation 'STAG COLUMN';} forEach (curatorSelected select 1);";
};
class ech_left {
displayName = "$STR_echl";
icon="\A3\UI_F_Curator\Data\RscCommon\RscAttributeFormation\ech_left_ca.paa";
statement = "{_x setFormation 'ECH LEFT';} forEach (curatorSelected select 1);";
};
class ech_right {
displayName = "$STR_echr";
icon="\A3\UI_F_Curator\Data\RscCommon\RscAttributeFormation\ech_right_ca.paa";
statement = "{_x setFormation 'ECH RIGHT';} forEach (curatorSelected select 1);";
};
class diamond {
displayName = "$STR_diamond";
icon="\A3\UI_F_Curator\Data\RscCommon\RscAttributeFormation\diamond_ca.paa";
statement = "{_x setFormation 'DIAMOND';} forEach (curatorSelected select 1);";
};
};
};
class ZeusWaypoints {
displayName = "Waypoints";
icon = "\A3\UI_F_Curator\Data\CfgCurator\waypoint_ca.paa";
class behaviour {
displayName = CSTRING(Zeus_Behaviour);
class careless {
displayName = CSTRING(Zeus_Behaviour_careless);
statement = "{ _x setWaypointBehaviour 'CARELESS'; } forEach (curatorSelected select 2);";
};
class safe {
displayName = "$STR_safe";
icon = "\A3\UI_F_Curator\Data\RscCommon\RscAttributeBehaviour\safe_ca.paa";
statement = "{ _x setWaypointBehaviour 'SAFE'; } forEach (curatorSelected select 2);";
};
class aware {
displayName = "$STR_aware";
icon = "\A3\UI_F_Curator\Data\RscCommon\RscAttributeBehaviour\aware_ca.paa";
statement = "{ _x setWaypointBehaviour 'AWARE'; } forEach (curatorSelected select 2);";
};
class combat {
displayName = "$STR_combat";
icon = "\A3\UI_F_Curator\Data\RscCommon\RscAttributeBehaviour\combat_ca.paa";
statement = "{ _x setWaypointBehaviour 'COMBAT'; } forEach (curatorSelected select 2);";
};
class stealth {
displayName = "$STR_stealth";
icon = "\A3\UI_F_Curator\Data\RscCommon\RscAttributeBehaviour\stealth_ca.paa";
statement = "{ _x setWaypointBehaviour 'STEALTH'; } forEach (curatorSelected select 2);";
};
};
class speed {
displayName = CSTRING(Zeus_Speed);
class limited {
displayName = "$STR_speed_limited";
icon = "\A3\UI_F_Curator\Data\RscCommon\RscAttributeSpeedMode\limited_ca.paa";
statement = "{ _x setWaypointSpeed 'LIMITED'; } forEach (curatorSelected select 2);";
};
class normal {
displayName = "$STR_speed_normal";
icon = "\A3\UI_F_Curator\Data\RscCommon\RscAttributeSpeedMode\normal_ca.paa";
statement = "{ _x setWaypointSpeed 'NORMAL'; } forEach (curatorSelected select 2);";
};
class full {
displayName = "$STR_speed_full";
icon = "\A3\UI_F_Curator\Data\RscCommon\RscAttributeSpeedMode\full_ca.paa";
statement = "{ _x setWaypointSpeed 'FULL'; } forEach (curatorSelected select 2);";
};
};
class formation {
displayName = CSTRING(Zeus_Formation);
class wedge {
displayName = "$STR_wedge";
icon="\A3\UI_F_Curator\Data\RscCommon\RscAttributeFormation\wedge_ca.paa";
statement = "{_x setWaypointFormation 'WEDGE';} forEach (curatorSelected select 1);";
};
class vee {
displayName = "$STR_vee";
icon="\A3\UI_F_Curator\Data\RscCommon\RscAttributeFormation\vee_ca.paa";
statement = "{_x setWaypointFormation 'VEE';} forEach (curatorSelected select 1);";
};
class line {
displayName = "$STR_line";
icon="\A3\UI_F_Curator\Data\RscCommon\RscAttributeFormation\line_ca.paa";
statement = "{_x setWaypointFormation 'LINE';} forEach (curatorSelected select 1);";
};
class column {
displayName = "$STR_column";
icon="\A3\UI_F_Curator\Data\RscCommon\RscAttributeFormation\column_ca.paa";
statement = "{_x setWaypointFormation 'COLUMN';} forEach (curatorSelected select 1);";
};
class file {
displayName = "$STR_file";
icon = "\A3\UI_F_Curator\Data\RscCommon\RscAttributeFormation\file_ca.paa";
statement = "{_x setWaypointFormation 'FILE';} forEach (curatorSelected select 1);";
};
class stag_column {
displayName = "$STR_staggered";
icon="\A3\UI_F_Curator\Data\RscCommon\RscAttributeFormation\stag_column_ca.paa";
statement = "{_x setWaypointFormation 'STAG COLUMN';} forEach (curatorSelected select 1);";
};
class ech_left {
displayName = "$STR_echl";
icon="\A3\UI_F_Curator\Data\RscCommon\RscAttributeFormation\ech_left_ca.paa";
statement = "{_x setWaypointFormation 'ECH LEFT';} forEach (curatorSelected select 1);";
};
class ech_right {
displayName = "$STR_echr";
icon="\A3\UI_F_Curator\Data\RscCommon\RscAttributeFormation\ech_right_ca.paa";
statement = "{_x setWaypointFormation 'ECH RIGHT';} forEach (curatorSelected select 1);";
};
class diamond {
displayName = "$STR_diamond";
icon="\A3\UI_F_Curator\Data\RscCommon\RscAttributeFormation\diamond_ca.paa";
statement = "{_x setWaypointFormation 'DIAMOND';} forEach (curatorSelected select 1);";
};
};
};
class ZeusMarkers {
displayName = "$STR_A3_RscDisplayCurator_ModeMarkers_tooltip";
icon = "\A3\UI_F_Curator\Data\Displays\RscDisplayCurator\modeMarkers_ca.paa";
};
};

View File

@ -191,7 +191,7 @@ class CfgVehicles {
class ACE_TeamManagement { class ACE_TeamManagement {
displayName = CSTRING(TeamManagement); displayName = CSTRING(TeamManagement);
condition = QUOTE(GVAR(EnableTeamManagement)); condition = QUOTE(GVAR(EnableTeamManagement));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside", "isNotSitting"};
statement = ""; statement = "";
showDisabled = 1; showDisabled = 1;
priority = 3.2; priority = 3.2;
@ -201,7 +201,7 @@ class CfgVehicles {
class ACE_JoinTeamRed { class ACE_JoinTeamRed {
displayName = CSTRING(JoinTeamRed); displayName = CSTRING(JoinTeamRed);
condition = QUOTE(true); condition = QUOTE(true);
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside", "isNotSitting"};
statement = QUOTE([ARR_2(_player,'RED')] call DFUNC(joinTeam)); statement = QUOTE([ARR_2(_player,'RED')] call DFUNC(joinTeam));
showDisabled = 1; showDisabled = 1;
priority = 2.4; priority = 2.4;
@ -211,7 +211,7 @@ class CfgVehicles {
class ACE_JoinTeamGreen { class ACE_JoinTeamGreen {
displayName = CSTRING(JoinTeamGreen); displayName = CSTRING(JoinTeamGreen);
condition = QUOTE(true); condition = QUOTE(true);
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside", "isNotSitting"};
statement = QUOTE([ARR_2(_player,'GREEN')] call DFUNC(joinTeam)); statement = QUOTE([ARR_2(_player,'GREEN')] call DFUNC(joinTeam));
showDisabled = 1; showDisabled = 1;
priority = 2.3; priority = 2.3;
@ -221,7 +221,7 @@ class CfgVehicles {
class ACE_JoinTeamBlue { class ACE_JoinTeamBlue {
displayName = CSTRING(JoinTeamBlue); displayName = CSTRING(JoinTeamBlue);
condition = QUOTE(true); condition = QUOTE(true);
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside", "isNotSitting"};
statement = QUOTE([ARR_2(_player,'BLUE')] call DFUNC(joinTeam)); statement = QUOTE([ARR_2(_player,'BLUE')] call DFUNC(joinTeam));
showDisabled = 1; showDisabled = 1;
priority = 2.2; priority = 2.2;
@ -231,7 +231,7 @@ class CfgVehicles {
class ACE_JoinTeamYellow { class ACE_JoinTeamYellow {
displayName = CSTRING(JoinTeamYellow); displayName = CSTRING(JoinTeamYellow);
condition = QUOTE(true); condition = QUOTE(true);
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside", "isNotSitting"};
statement = QUOTE([ARR_2(_player,'YELLOW')] call DFUNC(joinTeam)); statement = QUOTE([ARR_2(_player,'YELLOW')] call DFUNC(joinTeam));
showDisabled = 1; showDisabled = 1;
priority = 2.1; priority = 2.1;
@ -242,7 +242,7 @@ class CfgVehicles {
class ACE_LeaveTeam { class ACE_LeaveTeam {
displayName = CSTRING(LeaveTeam); displayName = CSTRING(LeaveTeam);
condition = QUOTE(assignedTeam _player != 'MAIN'); condition = QUOTE(assignedTeam _player != 'MAIN');
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside", "isNotSitting"};
statement = QUOTE([ARR_2(_player,'MAIN')] call DFUNC(joinTeam)); statement = QUOTE([ARR_2(_player,'MAIN')] call DFUNC(joinTeam));
showDisabled = 1; showDisabled = 1;
priority = 2.5; priority = 2.5;
@ -252,7 +252,7 @@ class CfgVehicles {
class ACE_BecomeLeader { class ACE_BecomeLeader {
displayName = CSTRING(BecomeLeader); displayName = CSTRING(BecomeLeader);
condition = QUOTE(_this call DFUNC(canBecomeLeader)); condition = QUOTE(_this call DFUNC(canBecomeLeader));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside", "isNotSitting"};
statement = QUOTE(_this call DFUNC(doBecomeLeader)); statement = QUOTE(_this call DFUNC(doBecomeLeader));
showDisabled = 1; showDisabled = 1;
priority = 1.0; priority = 1.0;
@ -262,7 +262,7 @@ class CfgVehicles {
class ACE_LeaveGroup { class ACE_LeaveGroup {
displayName = CSTRING(LeaveGroup); displayName = CSTRING(LeaveGroup);
condition = QUOTE(count (units group _player) > 1); condition = QUOTE(count (units group _player) > 1);
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside", "isNotSitting"};
statement = QUOTE(_oldGroup = units group _player; _newGroup = createGroup side _player; [_player] joinSilent _newGroup; {_player reveal _x} forEach _oldGroup;); statement = QUOTE(_oldGroup = units group _player; _newGroup = createGroup side _player; [_player] joinSilent _newGroup; {_player reveal _x} forEach _oldGroup;);
showDisabled = 1; showDisabled = 1;
priority = 1.2; priority = 1.2;
@ -379,7 +379,7 @@ class CfgVehicles {
class ACE_Equipment { class ACE_Equipment {
displayName = CSTRING(Equipment); displayName = CSTRING(Equipment);
condition = QUOTE(true); condition = QUOTE(true);
exceptions[] = {"isNotInside","notOnMap"}; exceptions[] = {"isNotInside","notOnMap", "isNotSitting"};
statement = ""; statement = "";
showDisabled = 1; showDisabled = 1;
priority = 4.5; priority = 4.5;
@ -581,6 +581,13 @@ class CfgVehicles {
selection = ""; selection = "";
distance = 2; distance = 2;
condition = "true"; condition = "true";
class ACE_OpenBox {
displayName = CSTRING(OpenBox);
condition = QUOTE(alive _target);
statement = QUOTE(_player action [ARR_2(QUOTE(QUOTE(Gear)), _target)]);
showDisabled = 0;
priority = -1;
};
}; };
}; };
class ACE_SelfActions {}; class ACE_SelfActions {};

View File

@ -16,3 +16,4 @@ class CfgPatches {
#include "CfgVehicles.hpp" #include "CfgVehicles.hpp"
#include "Menu_Config.hpp" #include "Menu_Config.hpp"
#include "ACE_Settings.hpp" #include "ACE_Settings.hpp"
#include "ACE_ZeusActions.hpp"

View File

@ -793,12 +793,17 @@
<Italian>Passeggeri</Italian> <Italian>Passeggeri</Italian>
<Portuguese>Passageiros</Portuguese> <Portuguese>Passageiros</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Interaction_OpenBox">
<English>Open</English>
<Polish>Otwórz</Polish>
</Key>
<Key ID="STR_ACE_Interaction_Module_DisplayName"> <Key ID="STR_ACE_Interaction_Module_DisplayName">
<English>Interaction System</English> <English>Interaction System</English>
<Polish>System interakcji</Polish> <Polish>System interakcji</Polish>
<Spanish>Sistema de interacción</Spanish> <Spanish>Sistema de interacción</Spanish>
<German>Interaktionssystem</German> <German>Interaktionssystem</German>
<Czech>Systém interakce</Czech> <Czech>Systém interakce</Czech>
<Russian>Sistema de interação</Russian>
</Key> </Key>
<Key ID="STR_ACE_Interaction_EnableTeamManagement_DisplayName"> <Key ID="STR_ACE_Interaction_EnableTeamManagement_DisplayName">
<English>Enable Team Management</English> <English>Enable Team Management</English>
@ -806,6 +811,7 @@
<Spanish>Habilitar gestión de equipos</Spanish> <Spanish>Habilitar gestión de equipos</Spanish>
<German>Aktiviere Gruppenverwaltung</German> <German>Aktiviere Gruppenverwaltung</German>
<Czech>Povolit správu týmu</Czech> <Czech>Povolit správu týmu</Czech>
<Russian>Habilitar gestão de equipes</Russian>
</Key> </Key>
<Key ID="STR_ACE_Interaction_EnableTeamManagement_Description"> <Key ID="STR_ACE_Interaction_EnableTeamManagement_Description">
<English>Should players be allowed to use the Team Management Menu? Default: Yes</English> <English>Should players be allowed to use the Team Management Menu? Default: Yes</English>
@ -813,12 +819,26 @@
<Spanish>¿Deben tener permitido los jugadores el uso del menu de gestión de equipos? Por defecto: Si</Spanish> <Spanish>¿Deben tener permitido los jugadores el uso del menu de gestión de equipos? Por defecto: Si</Spanish>
<German>Sollen Spieler das Gruppenverwaltungsmenü verwenden dürfen? Standard: Ja</German> <German>Sollen Spieler das Gruppenverwaltungsmenü verwenden dürfen? Standard: Ja</German>
<Czech>Mohou hráči použít menu správy týmu? Výchozí: Ano</Czech> <Czech>Mohou hráči použít menu správy týmu? Výchozí: Ano</Czech>
<Russian>Devem os jogadores ter permissão de usar o menu de gestão de equipes? Padrão: Sim</Russian>
</Key> </Key>
<Key ID="STR_ACE_Interaction_Module_Description"> <Key ID="STR_ACE_Interaction_Module_Description">
<English></English> <English>Team management allows color allocation for team members, taking team command and joining/leaving teams.</English>
<Polish>Na zarządzanie drużyną składa się: przydział kolorów dla członków drużyny, przejmowanie dowodzenia, dołączanie/opuszczanie drużyn.</Polish> <Polish>Na zarządzanie drużyną składa się: przydział kolorów dla członków drużyny, przejmowanie dowodzenia, dołączanie/opuszczanie drużyn.</Polish>
<German>Die Gruppenverwaltung erlaubt die Zuweisung von Farben für Einheiten, die Kommandierung und das Beitreten/Verlassen einer Gruppe.</German> <German>Die Gruppenverwaltung erlaubt die Zuweisung von Farben für Einheiten, die Kommandierung und das Beitreten/Verlassen einer Gruppe.</German>
<Czech>Správa týmu se skládá z: přidělení barev pro členy týmu, převzetí velení, připojení/odpojení. </Czech> <Czech>Správa týmu se skládá z: přidělení barev pro členy týmu, převzetí velení, připojení/odpojení. </Czech>
<Russian>O módulo de gestão de equipe é composto por: a atribuição de cores para os membros da equipe, comando das equipes, juntando-se / deixando equipes.</Russian>
</Key>
<Key ID="STR_ACE_Interaction_Zeus_Behaviour">
<English>Behaviour</English>
</Key>
<Key ID="STR_ACE_Interaction_Zeus_Behaviour_careless">
<English>Careless</English>
</Key>
<Key ID="STR_ACE_Interaction_Zeus_Formation">
<English>Formation</English>
</Key>
<Key ID="STR_ACE_Interaction_Zeus_Speed">
<English>Speed Mode</English>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -10,7 +10,7 @@ class CfgVehicles {
showDisabled = 0; showDisabled = 0;
priority = 0.1; priority = 0.1;
icon = QUOTE(PATHTOF(UI\Kestrel4500_Icon.paa)); icon = QUOTE(PATHTOF(UI\Kestrel4500_Icon.paa));
exceptions[] = {"notOnMap"}; exceptions[] = {"notOnMap", "isNotInside", "isNotSitting"};
class GVAR(show) { class GVAR(show) {
displayName = CSTRING(ShowKestrel); displayName = CSTRING(ShowKestrel);
condition = QUOTE(call FUNC(canShow) && !GVAR(Overlay)); condition = QUOTE(call FUNC(canShow) && !GVAR(Overlay));
@ -18,7 +18,7 @@ class CfgVehicles {
showDisabled = 0; showDisabled = 0;
priority = 0.2; priority = 0.2;
icon = QUOTE(PATHTOF(UI\Kestrel4500_Icon.paa)); icon = QUOTE(PATHTOF(UI\Kestrel4500_Icon.paa));
exceptions[] = {"notOnMap", "isNotInside"}; exceptions[] = {"notOnMap", "isNotInside", "isNotSitting"};
}; };
class GVAR(hide) { class GVAR(hide) {
displayName = CSTRING(HideKestrel); displayName = CSTRING(HideKestrel);
@ -27,7 +27,7 @@ class CfgVehicles {
showDisabled = 0; showDisabled = 0;
priority = 0.3; priority = 0.3;
icon = QUOTE(PATHTOF(UI\Kestrel4500_Icon.paa)); icon = QUOTE(PATHTOF(UI\Kestrel4500_Icon.paa));
exceptions[] = {"notOnMap", "isNotInside"}; exceptions[] = {"notOnMap", "isNotInside", "isNotSitting"};
}; };
}; };
}; };

View File

@ -1,7 +1,7 @@
["ACE3 Equipment", QGVAR(KestrelDialogKey), localize LSTRING(KestrelDialogKey), ["ACE3 Equipment", QGVAR(KestrelDialogKey), localize LSTRING(KestrelDialogKey),
{ {
// Conditions: canInteract // 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(Kestrel4500)) exitWith { if (GVAR(Kestrel4500)) exitWith {
closeDialog 0; closeDialog 0;
false false
@ -16,7 +16,7 @@
["ACE3 Equipment", QGVAR(DisplayKestrelKey), localize LSTRING(DisplayKestrelKey), ["ACE3 Equipment", QGVAR(DisplayKestrelKey), localize LSTRING(DisplayKestrelKey),
{ {
// Conditions: canInteract // 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};
// Statement // Statement
[] call FUNC(displayKestrel); [] call FUNC(displayKestrel);

View File

@ -1,7 +1,7 @@
// by commy2 and esteldunedain // by commy2 and esteldunedain
#include "script_component.hpp" #include "script_component.hpp"
private ["_brightness", "_p0", "_p1", "_p0Pos", "_offV1", "_offV2", "_offV3", "_camPos", "_intermediatePos", "_iteration", "_light", "_line", "_pL", "_pL2", "_pX", "_size", "_units", "_fnc_getDistanceToTerrain", "_fnc_doesIntersectWithMan"]; private ["_p0", "_p1", "_p0Pos", "_offV1", "_offV2", "_offV3", "_camPos", "_intermediatePos", "_iteration", "_light", "_line", "_pL", "_pL2", "_pX", "_size", "_units", "_fnc_getDistanceToTerrain", "_fnc_doesIntersectWithMan"];
// init object // init object
/*if (isNil QGVAR(laserdot)) then { /*if (isNil QGVAR(laserdot)) then {
@ -16,7 +16,7 @@ private ["_brightness", "_p0", "_p1", "_p0Pos", "_offV1", "_offV2", "_offV3", "_
GVAR(laserdot) = _light; GVAR(laserdot) = _light;
};*/ };*/
EXPLODE_3_PVT(_this,_unit,_range,_isGreen); EXPLODE_4_PVT(_this,_unit,_range,_isGreen,_brightness);
_p0Pos = _unit modelToWorldVisual (_unit selectionPosition "righthand"); _p0Pos = _unit modelToWorldVisual (_unit selectionPosition "righthand");

View File

@ -35,7 +35,7 @@ _brightness = 2 - call EFUNC(common,ambientBrightness);
}; };
if (_laserID > 0 && {_x isFlashlightOn _weapon}) then { if (_laserID > 0 && {_x isFlashlightOn _weapon}) then {
[_x, 50, _laserID == 2 || _isIR] call FUNC(drawLaserpoint); [_x, 50, (_laserID == 2 || _isIR), _brightness] call FUNC(drawLaserpoint);
}; };
}; };

View File

@ -3,7 +3,7 @@
["ACE3 Weapons", QGVAR(switchLaserLightMode), localize LSTRING(switchLaserLight), ["ACE3 Weapons", QGVAR(switchLaserLightMode), localize LSTRING(switchLaserLight),
{ {
// Conditions: canInteract // Conditions: canInteract
if !([ACE_player, objNull, ["isNotInside"]] call EFUNC(common,canInteractWith)) exitWith {false}; if !([ACE_player, objNull, ["isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith)) exitWith {false};
// Conditions: specific // Conditions: specific
if !([ACE_player] call EFUNC(common,canUseWeapon)) exitWith {false}; if !([ACE_player] call EFUNC(common,canUseWeapon)) exitWith {false};

View File

@ -17,7 +17,7 @@
#include "script_component.hpp" #include "script_component.hpp"
//find is case sensitive, so keep everything lowercase //find is case sensitive, so keep everything lowercase
#define FENCE_TYPENAMES ["land_net_fence_4m_f", "land_net_fence_8m_f", "land_net_fenced_8m_f", "land_new_wiredfence_5m_f", "land_new_wiredfence_10m_dam_f", "land_new_wiredfence_10m_f", "land_pipe_fence_4m_f", "land_pipe_fence_4mnolc_f", "land_sportground_fence_f", "land_wired_fence_4m_f", "land_wired_fence_4md_f", "land_wired_fence_8m_f", "land_wired_fence_8md_f", "land_razorwire_f"] #define FENCE_TYPENAMES ["land_net_fence_4m_f", "land_net_fence_8m_f", "land_net_fenced_8m_f", "land_new_wiredfence_5m_f", "land_new_wiredfence_10m_dam_f", "land_new_wiredfence_10m_f", "land_pipe_fence_4m_f", "land_pipe_fence_4mnolc_f", "land_sportground_fence_f", "land_wired_fence_4m_f", "land_wired_fence_4md_f", "land_wired_fence_8m_f", "land_wired_fence_8md_f", "land_razorwire_f", "ace_concertinawire"]
#define FENCE_P3DS ["mil_wiredfence_f.p3d","wall_indfnc_3.p3d", "wall_indfnc_9.p3d", "wall_indfnc_corner.p3d", "pletivo_wired.p3d", "wall_fen1_5.p3d"] #define FENCE_P3DS ["mil_wiredfence_f.p3d","wall_indfnc_3.p3d", "wall_indfnc_9.p3d", "wall_indfnc_corner.p3d", "pletivo_wired.p3d", "wall_fen1_5.p3d"]

View File

@ -5,7 +5,7 @@ class CfgVehicles {
class ACE_RepackMagazines { class ACE_RepackMagazines {
displayName = CSTRING(RepackMagazines); displayName = CSTRING(RepackMagazines);
condition = QUOTE(true); condition = QUOTE(true);
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside", "isNotSitting"};
insertChildren = QUOTE(_this call FUNC(getMagazineChildren)); insertChildren = QUOTE(_this call FUNC(getMagazineChildren));
priority = -2; priority = -2;
icon = QUOTE(PATHTOF(UI\repack_ca.paa)); icon = QUOTE(PATHTOF(UI\repack_ca.paa));

View File

@ -26,7 +26,7 @@ EXPLODE_2_PVT(_args,_magazineClassname,_lastAmmoCount);
_fullMagazineCount = getNumber (configfile >> "CfgMagazines" >> _magazineClassname >> "count"); _fullMagazineCount = getNumber (configfile >> "CfgMagazines" >> _magazineClassname >> "count");
//Don't show anything if player can't interact: //Don't show anything if player can't interact:
if (!([ACE_player, objNull, ["isNotInside"]] call EFUNC(common,canInteractWith))) exitWith {}; if (!([ACE_player, objNull, ["isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith))) exitWith {};
_structuredOutputText = if (_errorCode == 0) then { _structuredOutputText = if (_errorCode == 0) then {
format ["<t align='center'>%1</t><br/>", (localize LSTRING(RepackComplete))]; format ["<t align='center'>%1</t><br/>", (localize LSTRING(RepackComplete))];

View File

@ -31,7 +31,7 @@ _fullMagazineCount = getNumber (_magazineCfg >> "count");
_isBelt = (isNumber (_magazineCfg >> "ACE_isBelt")) && {(getNumber (_magazineCfg >> "ACE_isBelt")) == 1}; _isBelt = (isNumber (_magazineCfg >> "ACE_isBelt")) && {(getNumber (_magazineCfg >> "ACE_isBelt")) == 1};
//Check canInteractWith: //Check canInteractWith:
if (!([_player, objNull, ["isNotInside"]] call EFUNC(common,canInteractWith))) exitWith {}; if (!([_player, objNull, ["isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith))) exitWith {};
[_player] call EFUNC(common,goKneeling); [_player] call EFUNC(common,goKneeling);
@ -69,5 +69,5 @@ _totalTime,
{_this call FUNC(magazineRepackFinish)}, {_this call FUNC(magazineRepackFinish)},
(localize LSTRING(RepackingMagazine)), (localize LSTRING(RepackingMagazine)),
{_this call FUNC(magazineRepackProgress)}, {_this call FUNC(magazineRepackProgress)},
["isNotInside"] ["isNotInside", "isNotSitting"]
] call EFUNC(common,progressBar); ] call EFUNC(common,progressBar);

View File

@ -4,8 +4,8 @@
#define PREFIX ace #define PREFIX ace
#define MAJOR 3 #define MAJOR 3
#define MINOR 0 #define MINOR 1
#define PATCHLVL 1 #define PATCHLVL 2
#define BUILD 0 #define BUILD 0
#define VERSION MAJOR.MINOR.PATCHLVL.BUILD #define VERSION MAJOR.MINOR.PATCHLVL.BUILD

View File

@ -49,6 +49,12 @@ class CfgVehicles {
isGlobal = 1; isGlobal = 1;
icon = PATHTOF(UI\Icon_Module_BFTracking_ca.paa); icon = PATHTOF(UI\Icon_Module_BFTracking_ca.paa);
class Arguments { class Arguments {
class Enabled {
displayName = CSTRING(BFT_Enabled_DisplayName);
description = CSTRING(BFT_Enabled_Description);
typeName = "BOOL";
defaultValue = 0;
};
class Interval { class Interval {
displayName = CSTRING(BFT_Interval_DisplayName); displayName = CSTRING(BFT_Interval_DisplayName);
description = CSTRING(BFT_Interval_Description); description = CSTRING(BFT_Interval_Description);

View File

@ -1,6 +1,8 @@
#include "script_component.hpp" #include "script_component.hpp"
ADDON = false; // Exit on Headless as well
if !(hasInterface) exitWith {};
LOG(MSG_INIT); LOG(MSG_INIT);
// Calculate the maximum zoom allowed for this map // Calculate the maximum zoom allowed for this map
@ -16,7 +18,36 @@ call FUNC(determineZoom);
GVAR(lastStillTime) = ACE_time; GVAR(lastStillTime) = ACE_time;
GVAR(isShaking) = false; GVAR(isShaking) = false;
//Allow panning the lastStillPosition while mapShake is active
GVAR(rightMouseButtonLastPos) = [];
((findDisplay 12) displayCtrl 51) ctrlAddEventHandler ["Draw", {[] call FUNC(updateMapEffects);}]; ((findDisplay 12) displayCtrl 51) ctrlAddEventHandler ["Draw", {[] call FUNC(updateMapEffects);}];
((findDisplay 12) displayCtrl 51) ctrlAddEventHandler ["MouseMoving", {
if (GVAR(isShaking) && {(count GVAR(rightMouseButtonLastPos)) == 2}) then {
private["_lastPos", "_newPos"];
_lastPos = (_this select 0) ctrlMapScreenToWorld GVAR(rightMouseButtonLastPos);
_newPos = (_this select 0) ctrlMapScreenToWorld (_this select [1,2]);
GVAR(lastStillPosition) set [0, (GVAR(lastStillPosition) select 0) + (_lastPos select 0) - (_newPos select 0)];
GVAR(lastStillPosition) set [1, (GVAR(lastStillPosition) select 1) + (_lastPos select 1) - (_newPos select 1)];
GVAR(rightMouseButtonLastPos) = _this select [1,2];
TRACE_3("Mouse Move",_lastPos,_newPos,GVAR(rightMouseButtonLastPos));
};
}];
((findDisplay 12) displayCtrl 51) ctrlAddEventHandler ["MouseButtonDown", {
if ((_this select 1) == 1) then {
GVAR(rightMouseButtonLastPos) = _this select [2,2];
};
}];
((findDisplay 12) displayCtrl 51) ctrlAddEventHandler ["MouseButtonUp", {
if ((_this select 1) == 1) then {
GVAR(rightMouseButtonLastPos) = [];
};
}];
}; };
ADDON = true; ["SettingsInitialized", {
// Start Blue Force Tracking if Enabled
if (GVAR(BFT_Enabled)) then {
GVAR(BFT_markers) = [];
[FUNC(blueForceTrackingUpdate), GVAR(BFT_Interval), []] call CBA_fnc_addPerFrameHandler;
};
}] call EFUNC(common,addEventHandler);

View File

@ -18,13 +18,9 @@ PARAMS_3(_logic,_units,_activated);
if !(_activated) exitWith {}; if !(_activated) exitWith {};
GVAR(BFT_Enabled) = true; [_logic, QGVAR(BFT_Enabled), "Enabled"] call EFUNC(common,readSettingFromModule);
[_logic, QGVAR(BFT_Interval), "Interval"] call EFUNC(common,readSettingFromModule); [_logic, QGVAR(BFT_Interval), "Interval"] call EFUNC(common,readSettingFromModule);
[_logic, QGVAR(BFT_HideAiGroups), "HideAiGroups"] call EFUNC(common,readSettingFromModule); [_logic, QGVAR(BFT_HideAiGroups), "HideAiGroups"] call EFUNC(common,readSettingFromModule);
diag_log text "[ACE]: Blue Force Tracking Module initialized."; diag_log text "[ACE]: Blue Force Tracking Module initialized.";
TRACE_2("[ACE]: Blue Force Tracking Module initialized.",GVAR(BFT_Interval), GVAR(BFT_HideAiGroups)); TRACE_2("[ACE]: Blue Force Tracking Module initialized.", GVAR(BFT_Interval), GVAR(BFT_HideAiGroups));
//start BFT:
GVAR(BFT_markers) = [];
[FUNC(blueForceTrackingUpdate), GVAR(BFT_Interval), []] call CBA_fnc_addPerFrameHandler;

View File

@ -10,6 +10,8 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
if !(isServer) exitWith {};
PARAMS_3(_logic,_units,_activated); PARAMS_3(_logic,_units,_activated);
if !(_activated) exitWith {}; if !(_activated) exitWith {};
@ -19,4 +21,4 @@ if !(_activated) exitWith {};
[_logic, QGVAR(mapLimitZoom), "MapLimitZoom" ] call EFUNC(common,readSettingFromModule); [_logic, QGVAR(mapLimitZoom), "MapLimitZoom" ] call EFUNC(common,readSettingFromModule);
[_logic, QGVAR(mapShowCursorCoordinates), "MapShowCursorCoordinates"] call EFUNC(common,readSettingFromModule); [_logic, QGVAR(mapShowCursorCoordinates), "MapShowCursorCoordinates"] call EFUNC(common,readSettingFromModule);
diag_log text "[ACE]: Interaction Module Initialized."; diag_log text "[ACE]: Map Module Initialized.";

View File

@ -7,6 +7,7 @@
<Spanish>Mapa</Spanish> <Spanish>Mapa</Spanish>
<German>Karte</German> <German>Karte</German>
<Czech>Mapa</Czech> <Czech>Mapa</Czech>
<Portuguese>Mapa</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Map_MapIllumination_DisplayName"> <Key ID="STR_ACE_Map_MapIllumination_DisplayName">
<English>Map illumination?</English> <English>Map illumination?</English>
@ -14,6 +15,7 @@
<Spanish>¿Iluminación de mapa?</Spanish> <Spanish>¿Iluminación de mapa?</Spanish>
<German>Kartenausleuchtung</German> <German>Kartenausleuchtung</German>
<Czech>Osvětlení mapy</Czech> <Czech>Osvětlení mapy</Czech>
<Portuguese>Iluminação do mapa?</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Map_MapIllumination_Description"> <Key ID="STR_ACE_Map_MapIllumination_Description">
<English>Calculate dynamic map illumination based on light conditions?</English> <English>Calculate dynamic map illumination based on light conditions?</English>
@ -21,6 +23,7 @@
<Spanish>Calcula la iluminación dinámica del mapa basandose en las condiciones de luz</Spanish> <Spanish>Calcula la iluminación dinámica del mapa basandose en las condiciones de luz</Spanish>
<German>Berechne die Kartenauslichtung anhand des Umgebungslichts?</German> <German>Berechne die Kartenauslichtung anhand des Umgebungslichts?</German>
<Czech>Vypočítat dynamické osvětlení mapy na základně světelných podmínek?</Czech> <Czech>Vypočítat dynamické osvětlení mapy na základně světelných podmínek?</Czech>
<Portuguese>Calcular a iluminação dinâmica do mapa de acordo com as condições de luz?</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Map_MapShake_DisplayName"> <Key ID="STR_ACE_Map_MapShake_DisplayName">
<English>Map shake?</English> <English>Map shake?</English>
@ -28,6 +31,7 @@
<Spanish>¿Temblor de mapa?</Spanish> <Spanish>¿Temblor de mapa?</Spanish>
<German>Kamerawackeln</German> <German>Kamerawackeln</German>
<Czech>Třesení mapy?</Czech> <Czech>Třesení mapy?</Czech>
<Portuguese>Tremor de mapa?</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Map_MapShake_Description"> <Key ID="STR_ACE_Map_MapShake_Description">
<English>Make map shake when walking?</English> <English>Make map shake when walking?</English>
@ -35,6 +39,7 @@
<Spanish>Hace que el mapa tiemble cuando caminas</Spanish> <Spanish>Hace que el mapa tiemble cuando caminas</Spanish>
<German>Kamerawackeln beim Gehen?</German> <German>Kamerawackeln beim Gehen?</German>
<Czech>Umožnit třesení mapy za pochodu?</Czech> <Czech>Umožnit třesení mapy za pochodu?</Czech>
<Portuguese>Tremer o mapa enquanto caminha?</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Map_MapLimitZoom_DisplayName"> <Key ID="STR_ACE_Map_MapLimitZoom_DisplayName">
<English>Limit map zoom?</English> <English>Limit map zoom?</English>
@ -42,6 +47,7 @@
<Spanish>¿Limitar el zoom de mapa?</Spanish> <Spanish>¿Limitar el zoom de mapa?</Spanish>
<German>Kartenzoom einschränken</German> <German>Kartenzoom einschränken</German>
<Czech>Omezit přiblížení mapy?</Czech> <Czech>Omezit přiblížení mapy?</Czech>
<Portuguese>Limitar zoom do mapa?</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Map_MapLimitZoom_Description"> <Key ID="STR_ACE_Map_MapLimitZoom_Description">
<English>Limit the amount of zoom available for the map?</English> <English>Limit the amount of zoom available for the map?</English>
@ -49,6 +55,7 @@
<Spanish>Limita la cantidad de zoom disponible para el mapa</Spanish> <Spanish>Limita la cantidad de zoom disponible para el mapa</Spanish>
<German>Zoomstufe der Karte einschränken?</German> <German>Zoomstufe der Karte einschränken?</German>
<Czech>Omezit stupeň přiblížení pro mapu?</Czech> <Czech>Omezit stupeň přiblížení pro mapu?</Czech>
<Portuguese>Limitar a quantidade de zoom disponível para o mapa?</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Map_MapShowCursorCoordinates_DisplayName"> <Key ID="STR_ACE_Map_MapShowCursorCoordinates_DisplayName">
<English>Show cursor coordinates?</English> <English>Show cursor coordinates?</English>
@ -56,6 +63,7 @@
<Spanish>¿Mostrar coordenadas de cursor?</Spanish> <Spanish>¿Mostrar coordenadas de cursor?</Spanish>
<German>Zeige Cursor-Koordinaten?</German> <German>Zeige Cursor-Koordinaten?</German>
<Czech>Zobrazit souřadnice u kurzoru?</Czech> <Czech>Zobrazit souřadnice u kurzoru?</Czech>
<Portuguese>Mostrar coordenadas no cursor?</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Map_MapShowCursorCoordinates_Description"> <Key ID="STR_ACE_Map_MapShowCursorCoordinates_Description">
<English>Show the grid coordinates on the mouse pointer?</English> <English>Show the grid coordinates on the mouse pointer?</English>
@ -63,12 +71,14 @@
<Spanish>Muestra las coordenadas de la cuadricula en el puntero del ratón</Spanish> <Spanish>Muestra las coordenadas de la cuadricula en el puntero del ratón</Spanish>
<German>Gitter-Koordinaten auf dem Mauszeiger anzeigen?</German> <German>Gitter-Koordinaten auf dem Mauszeiger anzeigen?</German>
<Czech>Zobrazit souřadnice u kurzoru v mapě?</Czech> <Czech>Zobrazit souřadnice u kurzoru v mapě?</Czech>
<Portuguese>Mostrar as coordenadas de grade no ponteiro do mouse?</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Map_Module_Description"> <Key ID="STR_ACE_Map_Module_Description">
<English></English> <English></English>
<Polish>Moduł ten pozwala dostosować opcje widoku ekranu mapy.</Polish> <Polish>Moduł ten pozwala dostosować opcje widoku ekranu mapy.</Polish>
<German>Dieses Modul erweitert die Kartenfunktionen.</German> <German>Dieses Modul erweitert die Kartenfunktionen.</German>
<Czech>Tento modul umožňuje přizpůsobit mapu s obrazem.</Czech> <Czech>Tento modul umožňuje přizpůsobit mapu s obrazem.</Czech>
<Portuguese>Este módulo permite que você personalize a tela de mapa.</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Map_BFT_Module_DisplayName"> <Key ID="STR_ACE_Map_BFT_Module_DisplayName">
<English>Blue Force Tracking</English> <English>Blue Force Tracking</English>
@ -76,6 +86,15 @@
<Spanish>Seguimiento de fuerzas amigas</Spanish> <Spanish>Seguimiento de fuerzas amigas</Spanish>
<German>Blue Force Tracking</German> <German>Blue Force Tracking</German>
<Czech>Blue Force Tracking</Czech> <Czech>Blue Force Tracking</Czech>
<Portuguese>Rastreio de forças azuis</Portuguese>
</Key>
<Key ID="STR_ACE_Map_BFT_Enabled_DisplayName">
<English>BFT Enable</English>
<Portuguese>RFA ativo</Portuguese>
</Key>
<Key ID="STR_ACE_Map_BFT_Enabled_Description">
<English>Enable Blue Force Tracking. Default: No</English>
<Portuguese>Ativa Rastreio de Forças Azuis. Padrão: Não</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Map_BFT_Interval_DisplayName"> <Key ID="STR_ACE_Map_BFT_Interval_DisplayName">
<English>Interval</English> <English>Interval</English>
@ -83,6 +102,7 @@
<Spanish>Intervalo</Spanish> <Spanish>Intervalo</Spanish>
<German>Intervall</German> <German>Intervall</German>
<Czech>Interval</Czech> <Czech>Interval</Czech>
<Portuguese>Intervalo</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Map_BFT_Interval_Description"> <Key ID="STR_ACE_Map_BFT_Interval_Description">
<English>How often the markers should be refreshed (in seconds)</English> <English>How often the markers should be refreshed (in seconds)</English>
@ -90,6 +110,7 @@
<Spanish>Frecuencia de actualización de los marcadores (en segundos)</Spanish> <Spanish>Frecuencia de actualización de los marcadores (en segundos)</Spanish>
<German>Wie oft sollen die Markierungen aktualisiert werden (in Sekunden)</German> <German>Wie oft sollen die Markierungen aktualisiert werden (in Sekunden)</German>
<Czech>Jak často budou značky aktualizovány (v sekundách)</Czech> <Czech>Jak často budou značky aktualizovány (v sekundách)</Czech>
<Portuguese>Frequência em que os marcadores devem ser atualizados (em segundos)</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Map_BFT_HideAiGroups_DisplayName"> <Key ID="STR_ACE_Map_BFT_HideAiGroups_DisplayName">
<English>Hide AI groups?</English> <English>Hide AI groups?</English>
@ -97,6 +118,7 @@
<Spanish>¿Ocultar grupos de IA?</Spanish> <Spanish>¿Ocultar grupos de IA?</Spanish>
<German>KI-Gruppen verstecken?</German> <German>KI-Gruppen verstecken?</German>
<Czech>Skrýt AI skupiny?</Czech> <Czech>Skrýt AI skupiny?</Czech>
<Portuguese>Esconder grupos de IA?</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Map_BFT_HideAiGroups_Description"> <Key ID="STR_ACE_Map_BFT_HideAiGroups_Description">
<English>Hide markers for 'AI only' groups?</English> <English>Hide markers for 'AI only' groups?</English>
@ -104,12 +126,14 @@
<Spanish>Oculta las marcas de grupos 'solo IA'</Spanish> <Spanish>Oculta las marcas de grupos 'solo IA'</Spanish>
<German>Verstecke Marker für "nur KI"-Gruppen?</German> <German>Verstecke Marker für "nur KI"-Gruppen?</German>
<Czech>Skrýt značky pouze pro AI skupiny?</Czech> <Czech>Skrýt značky pouze pro AI skupiny?</Czech>
<Portuguese>Esconder marcadores que pertencem ao grupo de IA?</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Map_BFT_Module_Description"> <Key ID="STR_ACE_Map_BFT_Module_Description">
<English></English> <English></English>
<Polish>Pozwala śledzić na mapie pozycje sojuszniczych jednostek za pomocą markerów BFT.</Polish> <Polish>Pozwala śledzić na mapie pozycje sojuszniczych jednostek za pomocą markerów BFT.</Polish>
<German>Dieses Modul ermöglicht es verbündete Einheiten mit dem BFT auf der Karte zu verfolgen.</German> <German>Dieses Modul ermöglicht es verbündete Einheiten mit dem BFT auf der Karte zu verfolgen.</German>
<Czech>Umožňuje sledovat přátelské jednokty na mapě v rámci BFT.</Czech> <Czech>Umožňuje sledovat přátelské jednokty na mapě v rámci BFT.</Czech>
<Portuguese>Permite que você acompanhe as posições no mapa das unidades aliadas com marcadores RFA.</Portuguese>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -7,7 +7,7 @@ class CfgVehicles {
displayName = CSTRING(MapTools_Menu); displayName = CSTRING(MapTools_Menu);
condition = QUOTE((call FUNC(canUseMapTools) || {call FUNC(canUseMapGPS)})); condition = QUOTE((call FUNC(canUseMapTools) || {call FUNC(canUseMapGPS)}));
statement = ""; statement = "";
exceptions[] = {"isNotDragging", "notOnMap", "isNotInside"}; exceptions[] = {"isNotDragging", "notOnMap", "isNotInside", "isNotSitting"};
showDisabled = 0; showDisabled = 0;
priority = 100; priority = 100;
@ -15,7 +15,7 @@ class CfgVehicles {
displayName = CSTRING(MapToolsHide); displayName = CSTRING(MapToolsHide);
condition = QUOTE((call FUNC(canUseMapTools) && {GVAR(mapTool_Shown) != 0})); condition = QUOTE((call FUNC(canUseMapTools) && {GVAR(mapTool_Shown) != 0}));
statement = QUOTE(GVAR(mapTool_Shown) = 0; [] call FUNC(updateMapToolMarkers)); statement = QUOTE(GVAR(mapTool_Shown) = 0; [] call FUNC(updateMapToolMarkers));
exceptions[] = {"isNotDragging", "notOnMap", "isNotInside"}; exceptions[] = {"isNotDragging", "notOnMap", "isNotInside", "isNotSitting"};
showDisabled = 1; showDisabled = 1;
priority = 5; priority = 5;
}; };
@ -23,7 +23,7 @@ class CfgVehicles {
displayName = CSTRING(MapToolsShowNormal); displayName = CSTRING(MapToolsShowNormal);
condition = QUOTE((call FUNC(canUseMapTools) && {GVAR(mapTool_Shown) != 1})); condition = QUOTE((call FUNC(canUseMapTools) && {GVAR(mapTool_Shown) != 1}));
statement = QUOTE(GVAR(mapTool_Shown) = 1; [] call FUNC(updateMapToolMarkers)); statement = QUOTE(GVAR(mapTool_Shown) = 1; [] call FUNC(updateMapToolMarkers));
exceptions[] = {"isNotDragging", "notOnMap", "isNotInside"}; exceptions[] = {"isNotDragging", "notOnMap", "isNotInside", "isNotSitting"};
showDisabled = 1; showDisabled = 1;
priority = 4; priority = 4;
}; };
@ -31,7 +31,7 @@ class CfgVehicles {
displayName = CSTRING(MapToolsShowSmall); displayName = CSTRING(MapToolsShowSmall);
condition = QUOTE((call FUNC(canUseMapTools) && {GVAR(mapTool_Shown) != 2})); condition = QUOTE((call FUNC(canUseMapTools) && {GVAR(mapTool_Shown) != 2}));
statement = QUOTE(GVAR(mapTool_Shown) = 2; [] call FUNC(updateMapToolMarkers)); statement = QUOTE(GVAR(mapTool_Shown) = 2; [] call FUNC(updateMapToolMarkers));
exceptions[] = {"isNotDragging", "notOnMap", "isNotInside"}; exceptions[] = {"isNotDragging", "notOnMap", "isNotInside", "isNotSitting"};
showDisabled = 1; showDisabled = 1;
priority = 3; priority = 3;
}; };
@ -39,7 +39,7 @@ class CfgVehicles {
displayName = CSTRING(MapToolsAlignNorth); displayName = CSTRING(MapToolsAlignNorth);
condition = QUOTE((call FUNC(canUseMapTools) && {GVAR(mapTool_Shown) != 0})); condition = QUOTE((call FUNC(canUseMapTools) && {GVAR(mapTool_Shown) != 0}));
statement = QUOTE(GVAR(mapTool_angle) = 0; [] call FUNC(updateMapToolMarkers)); statement = QUOTE(GVAR(mapTool_angle) = 0; [] call FUNC(updateMapToolMarkers));
exceptions[] = {"isNotDragging", "notOnMap", "isNotInside"}; exceptions[] = {"isNotDragging", "notOnMap", "isNotInside", "isNotSitting"};
showDisabled = 1; showDisabled = 1;
priority = 2; priority = 2;
}; };
@ -47,7 +47,7 @@ class CfgVehicles {
displayName = CSTRING(MapToolsAlignCompass); displayName = CSTRING(MapToolsAlignCompass);
condition = QUOTE((call FUNC(canUseMapTools) && {GVAR(mapTool_Shown) != 0} && {('ItemCompass' in assigneditems ACE_player) || {'ItemCompass' in assigneditems ACE_player}})); condition = QUOTE((call FUNC(canUseMapTools) && {GVAR(mapTool_Shown) != 0} && {('ItemCompass' in assigneditems ACE_player) || {'ItemCompass' in assigneditems ACE_player}}));
statement = QUOTE(GVAR(mapTool_angle) = getDir ACE_player; [] call FUNC(updateMapToolMarkers)); statement = QUOTE(GVAR(mapTool_angle) = getDir ACE_player; [] call FUNC(updateMapToolMarkers));
exceptions[] = {"isNotDragging", "notOnMap", "isNotInside"}; exceptions[] = {"isNotDragging", "notOnMap", "isNotInside", "isNotSitting"};
showDisabled = 1; showDisabled = 1;
priority = 1; priority = 1;
}; };
@ -55,7 +55,7 @@ class CfgVehicles {
displayName = CSTRING(MapGpsShow); displayName = CSTRING(MapGpsShow);
condition = QUOTE((call FUNC(canUseMapGPS) && {!GVAR(mapGpsShow)})); condition = QUOTE((call FUNC(canUseMapGPS) && {!GVAR(mapGpsShow)}));
statement = QUOTE(GVAR(mapGpsShow) = true; [GVAR(mapGpsShow)] call FUNC(openMapGps)); statement = QUOTE(GVAR(mapGpsShow) = true; [GVAR(mapGpsShow)] call FUNC(openMapGps));
exceptions[] = {"isNotDragging", "notOnMap", "isNotInside"}; exceptions[] = {"isNotDragging", "notOnMap", "isNotInside", "isNotSitting"};
showDisabled = 0; showDisabled = 0;
priority = 0; priority = 0;
}; };
@ -63,7 +63,7 @@ class CfgVehicles {
displayName = CSTRING(MapGpsHide); displayName = CSTRING(MapGpsHide);
condition = QUOTE((call FUNC(canUseMapGPS) && {GVAR(mapGpsShow)})); condition = QUOTE((call FUNC(canUseMapGPS) && {GVAR(mapGpsShow)}));
statement = QUOTE(GVAR(mapGpsShow) = false; [GVAR(mapGpsShow)] call FUNC(openMapGps)); statement = QUOTE(GVAR(mapGpsShow) = false; [GVAR(mapGpsShow)] call FUNC(openMapGps));
exceptions[] = {"isNotDragging", "notOnMap", "isNotInside"}; exceptions[] = {"isNotDragging", "notOnMap", "isNotInside", "isNotSitting"};
showDisabled = 0; showDisabled = 0;
priority = 0; priority = 0;
}; };

View File

@ -25,7 +25,7 @@
PARAMS_1(_display); PARAMS_1(_display);
//Can't place markers when can't interact //Can't place markers when can't interact
if (!([ACE_player, objNull, ["notOnMap", "isNotInside"]] call EFUNC(common,canInteractWith))) exitWith { if (!([ACE_player, objNull, ["notOnMap", "isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith))) exitWith {
_display closeDisplay 2; //emulate "Cancel" button _display closeDisplay 2; //emulate "Cancel" button
}; };

View File

@ -2,7 +2,7 @@ class Medical {
displayName = CSTRING(Actions_Medical); displayName = CSTRING(Actions_Medical);
runOnHover = 1; runOnHover = 1;
hotkey = "M"; hotkey = "M";
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside", "isNotSitting"};
statement = QUOTE([ARR_3(_target, true, 0)] call DFUNC(displayPatientInformation)); statement = QUOTE([ARR_3(_target, true, 0)] call DFUNC(displayPatientInformation));
condition = "true"; condition = "true";
icon = PATHTOF(UI\icons\medical_cross.paa); icon = PATHTOF(UI\icons\medical_cross.paa);
@ -10,7 +10,7 @@ class Medical {
class ACE_Head { class ACE_Head {
displayName = CSTRING(Head); displayName = CSTRING(Head);
icon = PATHTOF(UI\icons\medical_cross.paa); icon = PATHTOF(UI\icons\medical_cross.paa);
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside", "isNotSitting"};
statement = QUOTE([ARR_3(_target, true, 0)] call DFUNC(displayPatientInformation)); statement = QUOTE([ARR_3(_target, true, 0)] call DFUNC(displayPatientInformation));
modifierFunction = QUOTE([ARR_4(_target,_player,0,_this select 3)] call FUNC(modifyMedicalAction)); modifierFunction = QUOTE([ARR_4(_target,_player,0,_this select 3)] call FUNC(modifyMedicalAction));
condition = "true"; condition = "true";
@ -79,7 +79,7 @@ class Medical {
distance = 5.0; distance = 5.0;
condition = "true"; condition = "true";
runOnHover = 1; runOnHover = 1;
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside", "isNotSitting"};
statement = QUOTE([ARR_3(_target, true, 1)] call DFUNC(displayPatientInformation)); statement = QUOTE([ARR_3(_target, true, 1)] call DFUNC(displayPatientInformation));
modifierFunction = QUOTE([ARR_4(_target,_player,1,_this select 3)] call FUNC(modifyMedicalAction)); modifierFunction = QUOTE([ARR_4(_target,_player,1,_this select 3)] call FUNC(modifyMedicalAction));
showDisabled = 1; showDisabled = 1;
@ -148,7 +148,7 @@ class Medical {
class ACE_ArmLeft { class ACE_ArmLeft {
displayName = ECSTRING(interaction,ArmLeft); displayName = ECSTRING(interaction,ArmLeft);
runOnHover = 1; runOnHover = 1;
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside", "isNotSitting"};
statement = QUOTE([ARR_3(_target, true, 2)] call DFUNC(displayPatientInformation)); statement = QUOTE([ARR_3(_target, true, 2)] call DFUNC(displayPatientInformation));
modifierFunction = QUOTE([ARR_4(_target,_player,2,_this select 3)] call FUNC(modifyMedicalAction)); modifierFunction = QUOTE([ARR_4(_target,_player,2,_this select 3)] call FUNC(modifyMedicalAction));
condition = "true"; condition = "true";
@ -250,7 +250,7 @@ class Medical {
class ACE_ArmRight { class ACE_ArmRight {
displayName = ECSTRING(interaction,ArmRight); displayName = ECSTRING(interaction,ArmRight);
runOnHover = 1; runOnHover = 1;
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside", "isNotSitting"};
statement = QUOTE([ARR_3(_target, true, 3)] call DFUNC(displayPatientInformation)); statement = QUOTE([ARR_3(_target, true, 3)] call DFUNC(displayPatientInformation));
modifierFunction = QUOTE([ARR_4(_target,_player,3,_this select 3)] call FUNC(modifyMedicalAction)); modifierFunction = QUOTE([ARR_4(_target,_player,3,_this select 3)] call FUNC(modifyMedicalAction));
condition = "true"; condition = "true";
@ -348,7 +348,7 @@ class Medical {
class ACE_LegLeft { class ACE_LegLeft {
displayName = ECSTRING(interaction,LegLeft); displayName = ECSTRING(interaction,LegLeft);
runOnHover = 1; runOnHover = 1;
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside", "isNotSitting"};
statement = QUOTE([ARR_3(_target, true, 4)] call DFUNC(displayPatientInformation)); statement = QUOTE([ARR_3(_target, true, 4)] call DFUNC(displayPatientInformation));
modifierFunction = QUOTE([ARR_4(_target,_player,4,_this select 3)] call FUNC(modifyMedicalAction)); modifierFunction = QUOTE([ARR_4(_target,_player,4,_this select 3)] call FUNC(modifyMedicalAction));
condition = "true"; condition = "true";
@ -435,7 +435,7 @@ class Medical {
class ACE_LegRight { class ACE_LegRight {
displayName = ECSTRING(interaction,LegRight); displayName = ECSTRING(interaction,LegRight);
runOnHover = 1; runOnHover = 1;
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside", "isNotSitting"};
statement = QUOTE([ARR_3(_target, true, 5)] call DFUNC(displayPatientInformation)); statement = QUOTE([ARR_3(_target, true, 5)] call DFUNC(displayPatientInformation));
modifierFunction = QUOTE([ARR_4(_target,_player,5,_this select 3)] call FUNC(modifyMedicalAction)); modifierFunction = QUOTE([ARR_4(_target,_player,5,_this select 3)] call FUNC(modifyMedicalAction));
condition = "true"; condition = "true";

View File

@ -40,6 +40,7 @@ PREP(handleDamage_caching);
PREP(handleDamage_fractures); PREP(handleDamage_fractures);
PREP(handleDamage_internalInjuries); PREP(handleDamage_internalInjuries);
PREP(handleDamage_wounds); PREP(handleDamage_wounds);
PREP(handleDamage_woundsOld);
PREP(handleUnitVitals); PREP(handleUnitVitals);
PREP(handleKilled); PREP(handleKilled);
PREP(handleLocal); PREP(handleLocal);
@ -112,6 +113,8 @@ PREP(handleCreateLitter);
GVAR(injuredUnitCollection) = []; GVAR(injuredUnitCollection) = [];
GVAR(IVBags) = []; GVAR(IVBags) = [];
DFUNC(handleDamage_assignWounds) = if ("ace_medical" callExtension "version" == "") then { DFUNC(handleDamage_woundsOld) } else { DFUNC(handleDamage_wounds)};
call FUNC(parseConfigForInjuries); call FUNC(parseConfigForInjuries);
GVAR(HITPOINTS) = ["HitHead", "HitBody", "HitLeftArm", "HitRightArm", "HitLeftLeg", "HitRightLeg"]; GVAR(HITPOINTS) = ["HitHead", "HitBody", "HitLeftArm", "HitRightArm", "HitLeftLeg", "HitRightLeg"];

View File

@ -42,7 +42,7 @@ _unit setvariable [QGVAR(bodyPartStatus), _damageBodyParts, true];
[_unit] call FUNC(handleDamage_advancedSetDamage); [_unit] call FUNC(handleDamage_advancedSetDamage);
_typeOfDamage = [_typeOfProjectile] call FUNC(getTypeOfDamage); _typeOfDamage = [_typeOfProjectile] call FUNC(getTypeOfDamage);
[_unit, _selectionName, _newDamage, _typeOfProjectile, _typeOfDamage] call FUNC(handleDamage_wounds); [_unit, _selectionName, _newDamage, _typeOfProjectile, _typeOfDamage] call FUNC(handleDamage_assignWounds);
// TODO Disabled until implemented fully // TODO Disabled until implemented fully
//if (GVAR(enableAirway)) then { //if (GVAR(enableAirway)) then {

View File

@ -0,0 +1,143 @@
/*
* Author: Glowbal
* Handling of the open wounds & injuries upon the handleDamage eventhandler.
*
* Arguments:
* 0: Unit That Was Hit <OBJECT>
* 1: Name Of Hit Selection <STRING>
* 2: Amount Of Damage <NUMBER>
* 3: Shooter or source of the damage <OBJECT>
* 4: Type of the damage done <STRING>
*
* Return Value:
* None <NIL>
*
* Public: No
*/
#include "script_component.hpp"
private ["_unit", "_selectionName", "_damage", "_typeOfProjectile", "_typeOfDamage", "_bodyPartn", "_injuryTypeInfo", "_allInjuriesForDamageType", "_allPossibleInjuries", "_highestPossibleDamage", "_highestPossibleSpot", "_minDamage", "_openWounds", "_woundID", "_toAddInjury", "_painToAdd", "_bloodLoss", "_bodyPartNToAdd", "_classType", "_damageLevels", "_foundIndex", "_i", "_injury", "_maxDamage", "_pain", "_painLevel", "_selections", "_toAddClassID", "_woundsCreated"];
_unit = _this select 0;
_selectionName = _this select 1;
_damage = _this select 2;
_typeOfProjectile = _this select 3;
_typeOfDamage = _this select 4;
// Convert the selectionName to a number and ensure it is a valid selection.
_bodyPartn = [_selectionName] call FUNC(selectionNameToNumber);
if (_bodyPartn < 0) exitwith {};
// Get the injury type information. Format: [typeDamage thresholds, selectionSpecific, woundTypes]
_injuryTypeInfo = missionNamespace getvariable [format[QGVAR(woundInjuryType_%1), _typeOfDamage],[[], false, []]];
// This are the available injuries for this damage type. Format [[classtype, selections, bloodloss, minimalDamage, pain], ..]
_allInjuriesForDamageType = _injuryTypeInfo select 2;
// It appears we are dealing with an unknown type of damage.
if (count _allInjuriesForDamageType == 0) then {
// grabbing the configuration for unknown damage type
_injuryTypeInfo = missionNamespace getvariable [QGVAR(woundInjuryType_unknown),[[], false, []]];
_allInjuriesForDamageType = _injuryTypeInfo select 2;
};
// find the available injuries for this damage type and damage amount
_highestPossibleSpot = -1;
_highestPossibleDamage = -1;
_allPossibleInjuries = [];
{
_damageLevels = _x select 4;
_minDamage = _damageLevels select 0;
_maxDamage = _damageLevels select 1;
// Check if the damage is higher as the min damage for the specific injury
if (_damage >= _minDamage && {_damage <= _maxDamage || _maxDamage < 0}) then {
//_classType = _x select 0;
_selections = _x select 1;
//_bloodLoss = _x select 2;
//_pain = _x select 3;
// Check if the injury can be applied to the given selection name
if ("All" in _selections || _selectionName in _selections) then {
// Find the wound which has the highest minimal damage, so we can use this later on for adding the correct injuries
if (_minDamage > _highestPossibleDamage) then {
_highestPossibleSpot = _foreachIndex;
_highestPossibleDamage = _minDamage;
};
// Store the valid possible injury for the damage type, damage amount and selection
_allPossibleInjuries pushback _x;
};
};
}foreach _allInjuriesForDamageType;
// No possible wounds available for this damage type or damage amount.
if (_highestPossibleSpot < 0) exitwith {};
// Administration for open wounds and ids
_openWounds = _unit getvariable[QGVAR(openWounds), []];
_woundID = _unit getvariable[QGVAR(lastUniqueWoundID), 1];
_painToAdd = 0;
_woundsCreated = [];
{
if (_x select 0 <= _damage) exitwith {
for "_i" from 0 to (1+ floor(random(_x select 1)-1)) /* step +1 */ do {
// Find the injury we are going to add. Format [ classID, allowdSelections, bloodloss, painOfInjury, minimalDamage]
_toAddInjury = if (random(1) >= 0.85) then {_allInjuriesForDamageType select _highestPossibleSpot} else {_allPossibleInjuries select (floor(random (count _allPossibleInjuries)));};
_toAddClassID = _toAddInjury select 0;
_foundIndex = -1;
_bodyPartNToAdd = if (_injuryTypeInfo select 1) then {_bodyPartn} else {floor(random(6))};
// If the injury type is selection part specific, we will check if one of those injury types already exists and find the spot for it..
if ((_injuryTypeInfo select 1)) then {
{
// Check if we have an id of the given class on the given bodypart already
if (_x select 1 == _toAddClassID && {_x select 2 == _bodyPartNToAdd}) exitwith {
_foundIndex = _foreachIndex;
};
}foreach _openWounds;
};
_injury = [];
if (_foundIndex < 0) then {
// Create a new injury. Format [ID, classID, bodypart, percentage treated, bloodloss rate]
_injury = [_woundID, _toAddInjury select 0, _bodyPartNToAdd, 1, _toAddInjury select 2];
// Since it is a new injury, we will have to add it to the open wounds array to store it
_openWounds pushback _injury;
// New injuries will also increase the wound ID
_woundID = _woundID + 1;
} else {
// We already have one of these, so we are just going to increase the number that we have of it with a new one.
_injury = _openWounds select _foundIndex;
_injury set [3, (_injury select 3) + 1];
};
// Store the injury so we can process it later correctly.
_woundsCreated pushback _injury;
// Collect the pain that is caused by this injury
_painToAdd = _painToAdd + (_toAddInjury select 3);
};
};
}foreach (_injuryTypeInfo select 0); // foreach damage thresholds
_unit setvariable [QGVAR(openWounds), _openWounds, !USE_WOUND_EVENT_SYNC];
// Only update if new wounds have been created
if (count _woundsCreated > 0) then {
// _unit setvariable [QGVAR(lastUniqueWoundID), _woundID, true];
};
if (USE_WOUND_EVENT_SYNC) then {
// Broadcast the new injuries across the net in parts. One broadcast per injury. Prevents having to broadcast one massive array of injuries.
{
// ["medical_propagateWound", [_unit, _x]] call EFUNC(common,globalEvent);
}foreach _woundsCreated;
};
_painLevel = _unit getvariable [QGVAR(pain), 0];
_unit setvariable [QGVAR(pain), _painLevel + _painToAdd];

View File

@ -60,12 +60,12 @@ _heartRate = _target getvariable [QGVAR(heartRate), 70];
if (alive _target) then { if (alive _target) then {
if (_heartRate > 0) then { if (_heartRate > 0) then {
if (_heartRate <= 45) then { if (_heartRate <= 45) then {
[_target, ((_hrIncreaseLow select 0) + random((_hrIncreaseLow select 1))), (_hrIncreaseLow select 2), _hrCallback] call FUNC(addHeartRateAdjustment); [_target, ((_hrIncreaseLow select 0) + random ((_hrIncreaseLow select 1) - (_hrIncreaseLow select 0))), (_hrIncreaseLow select 2), _hrCallback] call FUNC(addHeartRateAdjustment);
} else { } else {
if (_heartRate > 120) then { if (_heartRate > 120) then {
[_target, ((_hrIncreaseHigh select 0) + random((_hrIncreaseHigh select 1))), (_hrIncreaseHigh select 2), _hrCallback] call FUNC(addHeartRateAdjustment); [_target, ((_hrIncreaseHigh select 0) + random ((_hrIncreaseHigh select 1) - (_hrIncreaseHigh select 0))), (_hrIncreaseHigh select 2), _hrCallback] call FUNC(addHeartRateAdjustment);
} else { } else {
[_target, ((_hrIncreaseNorm select 0) + random((_hrIncreaseNorm select 1))), (_hrIncreaseNorm select 2), _hrCallback] call FUNC(addHeartRateAdjustment); [_target, ((_hrIncreaseNorm select 0) + random ((_hrIncreaseNorm select 1) - (_hrIncreaseNorm select 0))), (_hrIncreaseNorm select 2), _hrCallback] call FUNC(addHeartRateAdjustment);
}; };
}; };
}; };

View File

@ -1592,6 +1592,7 @@
<Spanish>Nada</Spanish> <Spanish>Nada</Spanish>
<German>Keine</German> <German>Keine</German>
<Czech>Žádný</Czech> <Czech>Žádný</Czech>
<Portuguese>Nada</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_Check_Pulse_Weak"> <Key ID="STR_ACE_Medical_Check_Pulse_Weak">
<English>Weak</English> <English>Weak</English>
@ -2210,12 +2211,16 @@
<German>Bandagieren entfernt Blutflecken</German> <German>Bandagieren entfernt Blutflecken</German>
<Polish>Bandażowanie usuwa ślady krwi</Polish> <Polish>Bandażowanie usuwa ślady krwi</Polish>
<Czech>Obvázání odstraňuje skvrny od krve</Czech> <Czech>Obvázání odstraňuje skvrny od krve</Czech>
<Spanish>El vendaje elimina las manchas de sangre</Spanish>
<Portuguese>Bandagem remove manchas de sangue</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_painIsOnlySuppressed"> <Key ID="STR_ACE_Medical_painIsOnlySuppressed">
<English>Pain is only temporarily suppressed</English> <English>Pain is only temporarily suppressed</English>
<German>Schmerzen werden nur vorübergehend unterdrückt</German> <German>Schmerzen werden nur vorübergehend unterdrückt</German>
<Polish>Ból jest tymczasowo zwalczany</Polish> <Polish>Ból jest tymczasowo zwalczany</Polish>
<Czech>Bolest je potlačena pouze dočasně</Czech> <Czech>Bolest je potlačena pouze dočasně</Czech>
<Spanish>El dolor se suprime solo temporalmente</Spanish>
<Portuguese>Dor é suprimida somente temporáriamente</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_painEffectType"> <Key ID="STR_ACE_Medical_painEffectType">
<English>Pain Effect Type</English> <English>Pain Effect Type</English>
@ -2728,6 +2733,7 @@
<Spanish>Médico ACE</Spanish> <Spanish>Médico ACE</Spanish>
<German>ACE-Medicsystem</German> <German>ACE-Medicsystem</German>
<Czech>ACE Zdravotnické</Czech> <Czech>ACE Zdravotnické</Czech>
<Portuguese>ACE Médico</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_MedicalSettings_Module_DisplayName"> <Key ID="STR_ACE_Medical_MedicalSettings_Module_DisplayName">
<English>Medical Settings [ACE]</English> <English>Medical Settings [ACE]</English>
@ -2736,6 +2742,7 @@
<Spanish>Ajustes médicos [ACE]</Spanish> <Spanish>Ajustes médicos [ACE]</Spanish>
<German>Medizinische Einstellungen [ACE]</German> <German>Medizinische Einstellungen [ACE]</German>
<Czech>Lékařské nastavení [ACE]</Czech> <Czech>Lékařské nastavení [ACE]</Czech>
<Portuguese>Ajustes médicos [ACE]</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_MedicalSettings_level_DisplayName"> <Key ID="STR_ACE_Medical_MedicalSettings_level_DisplayName">
<English>Medical Level</English> <English>Medical Level</English>
@ -2744,6 +2751,7 @@
<Spanish>Nivel médico</Spanish> <Spanish>Nivel médico</Spanish>
<German>Medizinisches Level</German> <German>Medizinisches Level</German>
<Czech>Úroveň medického</Czech> <Czech>Úroveň medického</Czech>
<Portuguese>Nível médico</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_MedicalSettings_level_Description"> <Key ID="STR_ACE_Medical_MedicalSettings_level_Description">
<English>What is the medical simulation level?</English> <English>What is the medical simulation level?</English>
@ -2752,6 +2760,7 @@
<Spanish>¿Cuál es el nivel de simulación médica?</Spanish> <Spanish>¿Cuál es el nivel de simulación médica?</Spanish>
<German>Wie hoch soll das medizinische Simulationslevel sein?</German> <German>Wie hoch soll das medizinische Simulationslevel sein?</German>
<Czech>Jaká je úroveň lékařské simulace?</Czech> <Czech>Jaká je úroveň lékařské simulace?</Czech>
<Portuguese>Qual o nível de simulação médica?</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_MedicalSettings_basic"> <Key ID="STR_ACE_Medical_MedicalSettings_basic">
<English>Basic</English> <English>Basic</English>
@ -2760,6 +2769,7 @@
<Spanish>Básico</Spanish> <Spanish>Básico</Spanish>
<German>Standard</German> <German>Standard</German>
<Czech>Základní</Czech> <Czech>Základní</Czech>
<Portuguese>Básica</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_MedicalSettings_advanced"> <Key ID="STR_ACE_Medical_MedicalSettings_advanced">
<English>Advanced</English> <English>Advanced</English>
@ -2768,6 +2778,7 @@
<Spanish>Avanzado</Spanish> <Spanish>Avanzado</Spanish>
<German>Erweitert</German> <German>Erweitert</German>
<Czech>Pokročilé</Czech> <Czech>Pokročilé</Czech>
<Portuguese>Avançada</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_MedicalSettings_medicSetting_DisplayName"> <Key ID="STR_ACE_Medical_MedicalSettings_medicSetting_DisplayName">
<English>Medics setting</English> <English>Medics setting</English>
@ -2776,6 +2787,7 @@
<Spanish>Configuración médica</Spanish> <Spanish>Configuración médica</Spanish>
<German>Medizinische Einstellungen</German> <German>Medizinische Einstellungen</German>
<Czech>Úroveň zdravotníků</Czech> <Czech>Úroveň zdravotníků</Czech>
<Portuguese>Configuração médica</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_MedicalSettings_medicSetting_Description"> <Key ID="STR_ACE_Medical_MedicalSettings_medicSetting_Description">
<English>What is the level of detail prefered for medics?</English> <English>What is the level of detail prefered for medics?</English>
@ -2783,6 +2795,7 @@
<Polish>Jaki jest poziom detali medycznych wyświetlanych dla medyków?</Polish> <Polish>Jaki jest poziom detali medycznych wyświetlanych dla medyków?</Polish>
<Spanish>¿Cuál es el nivel de detalle preferido para los médicos?</Spanish> <Spanish>¿Cuál es el nivel de detalle preferido para los médicos?</Spanish>
<Czech>Jaká úroveň detailů je preferována pro zdravotníky?</Czech> <Czech>Jaká úroveň detailů je preferována pro zdravotníky?</Czech>
<Portuguese>Qual o nível de detalhe preferido para os médicos?</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_MedicalSettings_medicSetting_disable"> <Key ID="STR_ACE_Medical_MedicalSettings_medicSetting_disable">
<English>Disable medics</English> <English>Disable medics</English>
@ -2791,6 +2804,7 @@
<Spanish>Desactivar médicos</Spanish> <Spanish>Desactivar médicos</Spanish>
<German>Sanitäter deaktivieren</German> <German>Sanitäter deaktivieren</German>
<Czech>Zakázat zdravotníky</Czech> <Czech>Zakázat zdravotníky</Czech>
<Portuguese>Desativar médicos</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_MedicalSettings_allowLitterCreation_DisplayName"> <Key ID="STR_ACE_Medical_MedicalSettings_allowLitterCreation_DisplayName">
<English>Enable Litter</English> <English>Enable Litter</English>
@ -2799,6 +2813,7 @@
<Spanish>Activar restos médicos</Spanish> <Spanish>Activar restos médicos</Spanish>
<German>Abfälle aktivieren</German> <German>Abfälle aktivieren</German>
<Czech>Povolit odpadky</Czech> <Czech>Povolit odpadky</Czech>
<Portuguese>Ativar lixo médico</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_MedicalSettings_allowLitterCreation_Description"> <Key ID="STR_ACE_Medical_MedicalSettings_allowLitterCreation_Description">
<English>Enable litter being created upon treatment</English> <English>Enable litter being created upon treatment</English>
@ -2807,6 +2822,7 @@
<Spanish>Activar los restos médicos que se crean en el tratamiento</Spanish> <Spanish>Activar los restos médicos que se crean en el tratamiento</Spanish>
<German>Aktiviere Abfälle, wenn eine Behandlung durchgeführt wurde</German> <German>Aktiviere Abfälle, wenn eine Behandlung durchgeführt wurde</German>
<Czech>Vytváří odpad zdravotnického materiálu pří léčení</Czech> <Czech>Vytváří odpad zdravotnického materiálu pří léčení</Czech>
<Portuguese>Ativar lixo ser criado após tratamento</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_MedicalSettings_litterCleanUpDelay_DisplayName"> <Key ID="STR_ACE_Medical_MedicalSettings_litterCleanUpDelay_DisplayName">
<English>Life time of litter objects</English> <English>Life time of litter objects</English>
@ -2815,6 +2831,7 @@
<Spanish>Tiempo de vida de los restos médicos</Spanish> <Spanish>Tiempo de vida de los restos médicos</Spanish>
<German>Dauer des angezeigten Abfalls</German> <German>Dauer des angezeigten Abfalls</German>
<Czech>Životnost pro odpadky</Czech> <Czech>Životnost pro odpadky</Czech>
<Portuguese>Tempo de vida dos objetos do lixo</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_MedicalSettings_litterCleanUpDelay_Description"> <Key ID="STR_ACE_Medical_MedicalSettings_litterCleanUpDelay_Description">
<English>How long should litter objects stay? In seconds. -1 is forever.</English> <English>How long should litter objects stay? In seconds. -1 is forever.</English>
@ -2823,6 +2840,7 @@
<Spanish>¿Por cuánto tiempo deben permanecer los restos médicos? En segundos. -1 es para siempre.</Spanish> <Spanish>¿Por cuánto tiempo deben permanecer los restos médicos? En segundos. -1 es para siempre.</Spanish>
<German>Wie lange sollen Abfälle am Boden liegen (in Sekunden)? -1 ist für immer.</German> <German>Wie lange sollen Abfälle am Boden liegen (in Sekunden)? -1 ist für immer.</German>
<Czech>Za jak dlouho začnou odpadky mizet? V sekundách. -1 navždy.</Czech> <Czech>Za jak dlouho začnou odpadky mizet? V sekundách. -1 navždy.</Czech>
<Portuguese>Quanto tempo os objetos do lixo devem ficar? Em segundos. -1 é para sempre.</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_MedicalSettings_enableScreams_DisplayName"> <Key ID="STR_ACE_Medical_MedicalSettings_enableScreams_DisplayName">
<English>Enable Screams</English> <English>Enable Screams</English>
@ -2831,6 +2849,7 @@
<Spanish>Activar gritos</Spanish> <Spanish>Activar gritos</Spanish>
<German>Schreie aktivieren</German> <German>Schreie aktivieren</German>
<Czech>Povolit křik</Czech> <Czech>Povolit křik</Czech>
<Portuguese>Ativar gritos</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_MedicalSettings_enableScreams_Description"> <Key ID="STR_ACE_Medical_MedicalSettings_enableScreams_Description">
<English>Enable screaming by injuried units</English> <English>Enable screaming by injuried units</English>
@ -2839,6 +2858,7 @@
<Spanish>Activar gritos para unidades heridas</Spanish> <Spanish>Activar gritos para unidades heridas</Spanish>
<German>Aktiviere Schreie bei verletzten Einheiten</German> <German>Aktiviere Schreie bei verletzten Einheiten</German>
<Czech>Povolit křičení zraněných jednotek</Czech> <Czech>Povolit křičení zraněných jednotek</Czech>
<Portuguese>Ativa gritos para unidades feridas</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_MedicalSettings_playerDamageThreshold_DisplayName"> <Key ID="STR_ACE_Medical_MedicalSettings_playerDamageThreshold_DisplayName">
<English>Player Damage</English> <English>Player Damage</English>
@ -2847,6 +2867,7 @@
<Spanish>Daño de jugador</Spanish> <Spanish>Daño de jugador</Spanish>
<German>Spielerschaden</German> <German>Spielerschaden</German>
<Czech>Poškození hráče</Czech> <Czech>Poškození hráče</Czech>
<Portuguese>Dano do jogador</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_MedicalSettings_playerDamageThreshold_Description"> <Key ID="STR_ACE_Medical_MedicalSettings_playerDamageThreshold_Description">
<English>What is the damage a player can take before being killed?</English> <English>What is the damage a player can take before being killed?</English>
@ -2855,6 +2876,7 @@
<Spanish>¿Cuál es el daño que un jugador puede sufrir antes de morir?</Spanish> <Spanish>¿Cuál es el daño que un jugador puede sufrir antes de morir?</Spanish>
<German>Wie viel Schaden kann ein Spieler erleiden, bevor er getötet wird?</German> <German>Wie viel Schaden kann ein Spieler erleiden, bevor er getötet wird?</German>
<Czech>Jaké poškození může hráč dostat než bude zabit?</Czech> <Czech>Jaké poškození může hráč dostat než bude zabit?</Czech>
<Portuguese>Qal é o dano que um jogador pode sofrer antes de morrer?</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_MedicalSettings_AIDamageThreshold_DisplayName"> <Key ID="STR_ACE_Medical_MedicalSettings_AIDamageThreshold_DisplayName">
<English>AI Damage</English> <English>AI Damage</English>
@ -2863,6 +2885,7 @@
<Spanish>Daño IA</Spanish> <Spanish>Daño IA</Spanish>
<German>KI-Schaden</German> <German>KI-Schaden</German>
<Czech>Poškození AI</Czech> <Czech>Poškození AI</Czech>
<Portuguese>Dano da IA</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_MedicalSettings_AIDamageThreshold_Description"> <Key ID="STR_ACE_Medical_MedicalSettings_AIDamageThreshold_Description">
<English>What is the damage an AI can take before being killed?</English> <English>What is the damage an AI can take before being killed?</English>
@ -2871,6 +2894,7 @@
<Spanish>¿Cuál es el daño que la IA puede sufrir antes de morir?</Spanish> <Spanish>¿Cuál es el daño que la IA puede sufrir antes de morir?</Spanish>
<German>Wie viel Schaden kann eine KI erleiden, bis sie getötet wird?</German> <German>Wie viel Schaden kann eine KI erleiden, bis sie getötet wird?</German>
<Czech>Jaké poškození může AI dostat než bude zabito?</Czech> <Czech>Jaké poškození může AI dostat než bude zabito?</Czech>
<Portuguese>Qual é o dano que uma IA pode sofrer antes de morrer?</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_MedicalSettings_enableUnconsciousnessAI_DisplayName"> <Key ID="STR_ACE_Medical_MedicalSettings_enableUnconsciousnessAI_DisplayName">
<English>AI Unconsciousness</English> <English>AI Unconsciousness</English>
@ -2879,6 +2903,7 @@
<Spanish>Inconsciencia IA</Spanish> <Spanish>Inconsciencia IA</Spanish>
<German>KI-Bewusstlosigkeit</German> <German>KI-Bewusstlosigkeit</German>
<Czech>Bezvědomí AI</Czech> <Czech>Bezvědomí AI</Czech>
<Portuguese>Inconsciência da IA</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_MedicalSettings_enableUnconsciousnessAI_Description"> <Key ID="STR_ACE_Medical_MedicalSettings_enableUnconsciousnessAI_Description">
<English>Allow AI to go unconscious</English> <English>Allow AI to go unconscious</English>
@ -2887,28 +2912,35 @@
<Spanish>Permita a la IA caer inconsciente</Spanish> <Spanish>Permita a la IA caer inconsciente</Spanish>
<German>KI kann bewusstlos werden</German> <German>KI kann bewusstlos werden</German>
<Czech>Umožňuje AI upadnout do bezvědomí</Czech> <Czech>Umožňuje AI upadnout do bezvědomí</Czech>
<Portuguese>Permite IA ficar inconsciente</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_MedicalSettings_remoteControlledAI_DisplayName"> <Key ID="STR_ACE_Medical_MedicalSettings_remoteControlledAI_DisplayName">
<English>Remote Controlled AI</English> <English>Remote Controlled AI</English>
<Spanish>IA controlada remotamente</Spanish>
<Portuguese>IA controlada remotamente</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_MedicalSettings_remoteControlledAI_Description"> <Key ID="STR_ACE_Medical_MedicalSettings_remoteControlledAI_Description">
<English>Treat remote controlled units as AI not players?</English> <English>Treat remote controlled units as AI not players?</English>
<Spanish>¿Tratar unidades remotamente controladas como IA?</Spanish>
<Portuguese>Tratar unidades remotamente controladas como IA?</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_disabled"> <Key ID="STR_ACE_Medical_disabled">
<English>Disabled</English> <English>Disabled</English>
<Russian>Отключено</Russian> <Russian>Отключено</Russian>
<Polish>Wyłączone</Polish> <Polish>Wyłączone</Polish>
<Spanish>Activado</Spanish> <Spanish>Desactivado</Spanish>
<German>Deaktiviert</German> <German>Deaktiviert</German>
<Czech>Zakázáno</Czech> <Czech>Zakázáno</Czech>
<Portuguese>Desativado</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_enabled"> <Key ID="STR_ACE_Medical_enabled">
<English>Enabled</English> <English>Enabled</English>
<Russian>Включено</Russian> <Russian>Включено</Russian>
<Polish>Włączone</Polish> <Polish>Włączone</Polish>
<Spanish>Desactivado</Spanish> <Spanish>Activado</Spanish>
<German>Aktiviert</German> <German>Aktiviert</German>
<Czech>Povoleno</Czech> <Czech>Povoleno</Czech>
<Portuguese>Ativado</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_MedicalSettings_preventInstaDeath_DisplayName"> <Key ID="STR_ACE_Medical_MedicalSettings_preventInstaDeath_DisplayName">
<English>Prevent instant death</English> <English>Prevent instant death</English>
@ -2917,6 +2949,7 @@
<Spanish>Prevenir muerte instantánea</Spanish> <Spanish>Prevenir muerte instantánea</Spanish>
<German>Verhindere direkten Tod</German> <German>Verhindere direkten Tod</German>
<Czech>Zabránit okamžité smrti</Czech> <Czech>Zabránit okamžité smrti</Czech>
<Portuguese>Previnir morte instantânea</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_MedicalSettings_preventInstaDeath_Description"> <Key ID="STR_ACE_Medical_MedicalSettings_preventInstaDeath_Description">
<English>Have a unit move to unconscious instead of death</English> <English>Have a unit move to unconscious instead of death</English>
@ -2925,6 +2958,7 @@
<Spanish>Mover una unidad a inconsciente en vez de a muerta</Spanish> <Spanish>Mover una unidad a inconsciente en vez de a muerta</Spanish>
<German>Lässt eine Einheit bewusstlos werden anstatt zu sterben</German> <German>Lässt eine Einheit bewusstlos werden anstatt zu sterben</German>
<Czech>Jednotka upadne do bezvědomí namísto smrti</Czech> <Czech>Jednotka upadne do bezvědomí namísto smrti</Czech>
<Portuguese>Fazer a unidade ficar inconsciente invés de morrer</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_MedicalSettings_bleedingCoefficient_DisplayName"> <Key ID="STR_ACE_Medical_MedicalSettings_bleedingCoefficient_DisplayName">
<English>Bleeding coefficient</English> <English>Bleeding coefficient</English>
@ -2933,6 +2967,7 @@
<Spanish>Coeficiente de sangrado</Spanish> <Spanish>Coeficiente de sangrado</Spanish>
<German>Verblutungsmultiplikator</German> <German>Verblutungsmultiplikator</German>
<Czech>Koeficient krvácení</Czech> <Czech>Koeficient krvácení</Czech>
<Portuguese>Coeficiente de sangramento</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_MedicalSettings_bleedingCoefficient_Description"> <Key ID="STR_ACE_Medical_MedicalSettings_bleedingCoefficient_Description">
<English>Coefficient to modify the bleeding speed</English> <English>Coefficient to modify the bleeding speed</English>
@ -2941,6 +2976,7 @@
<Spanish>Coeficiente para modificar la velocidad de sangrado</Spanish> <Spanish>Coeficiente para modificar la velocidad de sangrado</Spanish>
<German>Multiplikator um die Verblutungsgeschwindigkeit zu verändern</German> <German>Multiplikator um die Verblutungsgeschwindigkeit zu verändern</German>
<Czech>Koeficient rychlosti krvácení</Czech> <Czech>Koeficient rychlosti krvácení</Czech>
<Portuguese>Coeficiente para modificar a velocidade do sangramento</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_MedicalSettings_painCoefficient_DisplayName"> <Key ID="STR_ACE_Medical_MedicalSettings_painCoefficient_DisplayName">
<English>Pain coefficient</English> <English>Pain coefficient</English>
@ -2949,6 +2985,7 @@
<Spanish>Coeficiente de dolor</Spanish> <Spanish>Coeficiente de dolor</Spanish>
<German>Schmerzmultiplikator</German> <German>Schmerzmultiplikator</German>
<Czech>Koeficient bolesti</Czech> <Czech>Koeficient bolesti</Czech>
<Portuguese>Coeficiente de dor</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_MedicalSettings_painCoefficient_Description"> <Key ID="STR_ACE_Medical_MedicalSettings_painCoefficient_Description">
<English>Coefficient to modify the pain intensity</English> <English>Coefficient to modify the pain intensity</English>
@ -2957,6 +2994,7 @@
<Spanish>Coeficiente para modificar la intensidad del dolor</Spanish> <Spanish>Coeficiente para modificar la intensidad del dolor</Spanish>
<German>Multiplikator um den Schmerzintensität zu verändern</German> <German>Multiplikator um den Schmerzintensität zu verändern</German>
<Czech>Koeficient intenzity bolesti</Czech> <Czech>Koeficient intenzity bolesti</Czech>
<Portuguese>Coeficiente para modificar a instensidade de dor</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_MedicalSettings_keepLocalSettingsSynced_DisplayName"> <Key ID="STR_ACE_Medical_MedicalSettings_keepLocalSettingsSynced_DisplayName">
<English>Sync status</English> <English>Sync status</English>
@ -2965,6 +3003,7 @@
<Spanish>Sincronizador estado</Spanish> <Spanish>Sincronizador estado</Spanish>
<German>Status synchronisieren</German> <German>Status synchronisieren</German>
<Czech>Synchronizovat status</Czech> <Czech>Synchronizovat status</Czech>
<Portuguese>Sincronizar estado</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_MedicalSettings_keepLocalSettingsSynced_Description"> <Key ID="STR_ACE_Medical_MedicalSettings_keepLocalSettingsSynced_Description">
<English>Keep unit status synced. Recommended on.</English> <English>Keep unit status synced. Recommended on.</English>
@ -2973,6 +3012,7 @@
<Spanish>Mantener el estado de la unidad sincronizado. Recomendado activado</Spanish> <Spanish>Mantener el estado de la unidad sincronizado. Recomendado activado</Spanish>
<German>Status der Einheit synchron halten. Sollte aktiviert bleiben.</German> <German>Status der Einheit synchron halten. Sollte aktiviert bleiben.</German>
<Czech>Udržuje status jednotky synchronizovaný. Doporučeno zapnout.</Czech> <Czech>Udržuje status jednotky synchronizovaný. Doporučeno zapnout.</Czech>
<Portuguese>Mater o estado da unidade sincronizado. Recomendado ativado.</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_MedicalSettings_Module_Description"> <Key ID="STR_ACE_Medical_MedicalSettings_Module_Description">
<English>Provides a medical system for both players and AI.</English> <English>Provides a medical system for both players and AI.</English>
@ -2981,6 +3021,7 @@
<Spanish>Proporciona un sistema médico para jugadores e IA.</Spanish> <Spanish>Proporciona un sistema médico para jugadores e IA.</Spanish>
<German>Aktiviert ein medizinisches System für Spieler und KI.</German> <German>Aktiviert ein medizinisches System für Spieler und KI.</German>
<Czech>Poskytuje zdravotní systém pro hráče a AI.</Czech> <Czech>Poskytuje zdravotní systém pro hráče a AI.</Czech>
<Portuguese>Proporciona o sistema médico para os jogadores e a IA.</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_Module_DisplayName"> <Key ID="STR_ACE_Medical_AdvancedMedicalSettings_Module_DisplayName">
<English>Advanced Medical Settings [ACE]</English> <English>Advanced Medical Settings [ACE]</English>
@ -2989,6 +3030,7 @@
<Spanish>Ajustes médicos avanzados [ACE]</Spanish> <Spanish>Ajustes médicos avanzados [ACE]</Spanish>
<German>Erweiterte medizinische Einstellungen [ACE]</German> <German>Erweiterte medizinische Einstellungen [ACE]</German>
<Czech>Pokročilé zdravotnické nastavení [ACE]</Czech> <Czech>Pokročilé zdravotnické nastavení [ACE]</Czech>
<Portuguese>Ajustes médicos avançados [ACE]</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_enableFor_DisplayName"> <Key ID="STR_ACE_Medical_AdvancedMedicalSettings_enableFor_DisplayName">
<English>Enabled for</English> <English>Enabled for</English>
@ -2997,6 +3039,7 @@
<Spanish>Hablitado para</Spanish> <Spanish>Hablitado para</Spanish>
<German>Aktiviert für</German> <German>Aktiviert für</German>
<Czech>Povoleno pro</Czech> <Czech>Povoleno pro</Czech>
<Portuguese>Habilitado para</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_enableFor_Description"> <Key ID="STR_ACE_Medical_AdvancedMedicalSettings_enableFor_Description">
<English>Select what units the advanced medical system will be enabled for</English> <English>Select what units the advanced medical system will be enabled for</English>
@ -3005,6 +3048,7 @@
<Spanish>Seleccione para qué unidades será habilitado el sistema médico avanzado</Spanish> <Spanish>Seleccione para qué unidades será habilitado el sistema médico avanzado</Spanish>
<German>Wähle aus welche Einheiten das erweiterte medizinische System haben</German> <German>Wähle aus welche Einheiten das erweiterte medizinische System haben</German>
<Czech>Vyberte, pro jaké jednotky bude pokročilý zdravotní systém povolen</Czech> <Czech>Vyberte, pro jaké jednotky bude pokročilý zdravotní systém povolen</Czech>
<Portuguese>Selecione quais unidades o sistema médico avançado será habilitado</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_playeronly"> <Key ID="STR_ACE_Medical_playeronly">
<English>Players only</English> <English>Players only</English>
@ -3013,6 +3057,7 @@
<Spanish>Solo jugadores</Spanish> <Spanish>Solo jugadores</Spanish>
<German>Nur Spieler</German> <German>Nur Spieler</German>
<Czech>Pouze hráči</Czech> <Czech>Pouze hráči</Czech>
<Portuguese>Somente jogadores</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_playersandai"> <Key ID="STR_ACE_Medical_playersandai">
<English>Players and AI</English> <English>Players and AI</English>
@ -3021,6 +3066,7 @@
<Spanish>Jugadors e IA</Spanish> <Spanish>Jugadors e IA</Spanish>
<German>Spieler und KI</German> <German>Spieler und KI</German>
<Czech>Hráči a AI</Czech> <Czech>Hráči a AI</Czech>
<Portuguese>Jogadores e IA</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_enableAdvancedWounds_DisplayName"> <Key ID="STR_ACE_Medical_AdvancedMedicalSettings_enableAdvancedWounds_DisplayName">
<English>Enable Advanced wounds</English> <English>Enable Advanced wounds</English>
@ -3029,6 +3075,7 @@
<Spanish>Activa heridas avanzadas</Spanish> <Spanish>Activa heridas avanzadas</Spanish>
<German>Aktiviere erweiterte Wunden</German> <German>Aktiviere erweiterte Wunden</German>
<Czech>Povolit pokročilé zranění</Czech> <Czech>Povolit pokročilé zranění</Czech>
<Portuguese>Ativar ferimentos avançados</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_enableAdvancedWounds_Description"> <Key ID="STR_ACE_Medical_AdvancedMedicalSettings_enableAdvancedWounds_Description">
<English>Allow reopening of bandaged wounds?</English> <English>Allow reopening of bandaged wounds?</English>
@ -3037,6 +3084,7 @@
<Spanish>Permitir la reapertura de las heridas vendadas?</Spanish> <Spanish>Permitir la reapertura de las heridas vendadas?</Spanish>
<German>Erlaube das Öffnen von bandagierten Wunden?</German> <German>Erlaube das Öffnen von bandagierten Wunden?</German>
<Czech>Umožnit znovuotevření zavázané rány?</Czech> <Czech>Umožnit znovuotevření zavázané rány?</Czech>
<Portuguese>Permitr reabertura de ferimentos enfaixados?</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_enableVehicleCrashes_DisplayName"> <Key ID="STR_ACE_Medical_AdvancedMedicalSettings_enableVehicleCrashes_DisplayName">
<English>Vehicle Crashes</English> <English>Vehicle Crashes</English>
@ -3045,6 +3093,7 @@
<Spanish>Accidentes de vehículos</Spanish> <Spanish>Accidentes de vehículos</Spanish>
<German>Fahrzeugunfälle</German> <German>Fahrzeugunfälle</German>
<Czech>Poškození z kolize</Czech> <Czech>Poškození z kolize</Czech>
<Portuguese>Batidas de veículos</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_enableVehicleCrashes_Description"> <Key ID="STR_ACE_Medical_AdvancedMedicalSettings_enableVehicleCrashes_Description">
<English>Do units take damage from a vehicle crash?</English> <English>Do units take damage from a vehicle crash?</English>
@ -3053,6 +3102,7 @@
<Spanish>¿Las unidades reciben daño de un accidente de tráfico?</Spanish> <Spanish>¿Las unidades reciben daño de un accidente de tráfico?</Spanish>
<German>Bekommen Einheiten von Fahrzeugunfällen Schaden?</German> <German>Bekommen Einheiten von Fahrzeugunfällen Schaden?</German>
<Czech>Dostane jednotka poškození při autonehodě?</Czech> <Czech>Dostane jednotka poškození při autonehodě?</Czech>
<Portuguese>As unidades recebem dano de uma batida de veículo?</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_medicSetting_PAK_DisplayName"> <Key ID="STR_ACE_Medical_AdvancedMedicalSettings_medicSetting_PAK_DisplayName">
<English>Allow PAK</English> <English>Allow PAK</English>
@ -3061,6 +3111,7 @@
<Spanish>Permitir EPA</Spanish> <Spanish>Permitir EPA</Spanish>
<German>Erlaube Erstehilfekasten</German> <German>Erlaube Erstehilfekasten</German>
<Czech>Povolit osobní lékárničky</Czech> <Czech>Povolit osobní lékárničky</Czech>
<Portuguese>Permitir Kit de Primeiros Socorros</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_medicSetting_PAK_Description"> <Key ID="STR_ACE_Medical_AdvancedMedicalSettings_medicSetting_PAK_Description">
<English>Who can use the PAK for full heal?</English> <English>Who can use the PAK for full heal?</English>
@ -3069,6 +3120,7 @@
<Spanish>¿Quién puede utilizar el EPA para una cura completa?</Spanish> <Spanish>¿Quién puede utilizar el EPA para una cura completa?</Spanish>
<German>Wer kann den Erstehilfekasten für eine Endheilung verwenden?</German> <German>Wer kann den Erstehilfekasten für eine Endheilung verwenden?</German>
<Czech>Kdo může použít osobní lékárničku pro plné vyléčení?</Czech> <Czech>Kdo může použít osobní lékárničku pro plné vyléčení?</Czech>
<Portuguese>Quem pode usar o KPS para cura completa?</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_anyone"> <Key ID="STR_ACE_Medical_AdvancedMedicalSettings_anyone">
<English>Anyone</English> <English>Anyone</English>
@ -3077,6 +3129,7 @@
<Spanish>Nadie</Spanish> <Spanish>Nadie</Spanish>
<German>Jeder</German> <German>Jeder</German>
<Czech>Kdokoliv</Czech> <Czech>Kdokoliv</Czech>
<Portuguese>Qualquer um</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_Medic"> <Key ID="STR_ACE_Medical_AdvancedMedicalSettings_Medic">
<English>Medics only</English> <English>Medics only</English>
@ -3085,6 +3138,7 @@
<Spanish>Solo médicos</Spanish> <Spanish>Solo médicos</Spanish>
<German>Nur Sanitäter</German> <German>Nur Sanitäter</German>
<Czech>Pouze zdravotník</Czech> <Czech>Pouze zdravotník</Czech>
<Portuguese>Somente médicos</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_Special"> <Key ID="STR_ACE_Medical_AdvancedMedicalSettings_Special">
<English>Doctors only</English> <English>Doctors only</English>
@ -3093,6 +3147,7 @@
<Spanish>Solo doctores</Spanish> <Spanish>Solo doctores</Spanish>
<German>Nur Ärzte</German> <German>Nur Ärzte</German>
<Czech>Pouze doktor</Czech> <Czech>Pouze doktor</Czech>
<Portuguese>Somente doutores</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_consumeItem_PAK_DisplayName"> <Key ID="STR_ACE_Medical_AdvancedMedicalSettings_consumeItem_PAK_DisplayName">
<English>Remove PAK on use</English> <English>Remove PAK on use</English>
@ -3101,6 +3156,7 @@
<Spanish>Eliminar EPA después del uso</Spanish> <Spanish>Eliminar EPA después del uso</Spanish>
<German>Entferne Erstehilfekasten bei Verwendung</German> <German>Entferne Erstehilfekasten bei Verwendung</German>
<Czech>Odebrat osobní lékárničku po použití</Czech> <Czech>Odebrat osobní lékárničku po použití</Czech>
<Portuguese>Remover o KPS depois do uso</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_consumeItem_PAK_Description"> <Key ID="STR_ACE_Medical_AdvancedMedicalSettings_consumeItem_PAK_Description">
<English>Should PAK be removed on usage?</English> <English>Should PAK be removed on usage?</English>
@ -3109,6 +3165,7 @@
<Spanish>El EPA será eliminado después de usarlo</Spanish> <Spanish>El EPA será eliminado después de usarlo</Spanish>
<German>Sollen Erstehilfekästen bei Verwendung entfernt werden?</German> <German>Sollen Erstehilfekästen bei Verwendung entfernt werden?</German>
<Czech>Má se osobní lékárnička odstranit po použití?</Czech> <Czech>Má se osobní lékárnička odstranit po použití?</Czech>
<Portuguese>Deve o KPS ser removido depois do uso?</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_useLocation_PAK_DisplayName"> <Key ID="STR_ACE_Medical_AdvancedMedicalSettings_useLocation_PAK_DisplayName">
<English>Locations PAK</English> <English>Locations PAK</English>
@ -3117,6 +3174,7 @@
<Spanish>Ubicacions del EPA</Spanish> <Spanish>Ubicacions del EPA</Spanish>
<German>Orte für Erstehilfekasten</German> <German>Orte für Erstehilfekasten</German>
<Czech>Lokace osobní lékárničky</Czech> <Czech>Lokace osobní lékárničky</Czech>
<Portuguese>Localizações do KPS</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_useLocation_PAK_Description"> <Key ID="STR_ACE_Medical_AdvancedMedicalSettings_useLocation_PAK_Description">
<English>Where can the personal aid kit be used?</English> <English>Where can the personal aid kit be used?</English>
@ -3125,6 +3183,7 @@
<Spanish>¿Dónde se puede utilizar el equipo de primeros auxilios?</Spanish> <Spanish>¿Dónde se puede utilizar el equipo de primeros auxilios?</Spanish>
<German>Wo kann der Erstehilfekasten verwendet werden?</German> <German>Wo kann der Erstehilfekasten verwendet werden?</German>
<Czech>Kde může být osobní lékárnička použita?</Czech> <Czech>Kde může být osobní lékárnička použita?</Czech>
<Portuguese>Onde o kit de primeiros socorros pode ser utilizado?</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_anywhere"> <Key ID="STR_ACE_Medical_AdvancedMedicalSettings_anywhere">
<English>Anywhere</English> <English>Anywhere</English>
@ -3133,6 +3192,7 @@
<Spanish>Donde sea</Spanish> <Spanish>Donde sea</Spanish>
<German>Überall</German> <German>Überall</German>
<Czech>Kdekoliv</Czech> <Czech>Kdekoliv</Czech>
<Portuguese>Qualquer lugar</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_vehicle"> <Key ID="STR_ACE_Medical_AdvancedMedicalSettings_vehicle">
<English>Medical vehicles</English> <English>Medical vehicles</English>
@ -3141,6 +3201,7 @@
<Spanish>Vehiculos médicos</Spanish> <Spanish>Vehiculos médicos</Spanish>
<German>Medizinische Fahrzeuge</German> <German>Medizinische Fahrzeuge</German>
<Czech>Zdravotnická vozidla</Czech> <Czech>Zdravotnická vozidla</Czech>
<Portuguese>Veículos médcos</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_facility"> <Key ID="STR_ACE_Medical_AdvancedMedicalSettings_facility">
<English>Medical facility</English> <English>Medical facility</English>
@ -3149,6 +3210,7 @@
<Spanish>Centro médico</Spanish> <Spanish>Centro médico</Spanish>
<German>Medizinische Einrichtungen</German> <German>Medizinische Einrichtungen</German>
<Czech>Zdravotnické zařízení</Czech> <Czech>Zdravotnické zařízení</Czech>
<Portuguese>Instalação médica</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_vehicleAndFacility"> <Key ID="STR_ACE_Medical_AdvancedMedicalSettings_vehicleAndFacility">
<English>Vehicles &amp; facility</English> <English>Vehicles &amp; facility</English>
@ -3157,6 +3219,7 @@
<Spanish>Vehículos y centros</Spanish> <Spanish>Vehículos y centros</Spanish>
<German>Fahrzeuge &amp; Einrichtungen</German> <German>Fahrzeuge &amp; Einrichtungen</German>
<Czech>Vozidla a zařízení</Czech> <Czech>Vozidla a zařízení</Czech>
<Portuguese>Veículos e instalações</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_disabled"> <Key ID="STR_ACE_Medical_AdvancedMedicalSettings_disabled">
<English>Disabled</English> <English>Disabled</English>
@ -3165,6 +3228,7 @@
<Spanish>Desactivado</Spanish> <Spanish>Desactivado</Spanish>
<German>Deaktiviert</German> <German>Deaktiviert</German>
<Czech>Zakázáno</Czech> <Czech>Zakázáno</Czech>
<Portuguese>Desativado</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_medicSetting_SurgicalKit_DisplayName"> <Key ID="STR_ACE_Medical_AdvancedMedicalSettings_medicSetting_SurgicalKit_DisplayName">
<English>Allow Surgical kit (Adv)</English> <English>Allow Surgical kit (Adv)</English>
@ -3173,6 +3237,7 @@
<Spanish>Permitir equipo quirúrgico (Avanzado)</Spanish> <Spanish>Permitir equipo quirúrgico (Avanzado)</Spanish>
<German>Erlaube Operationskasten</German> <German>Erlaube Operationskasten</German>
<Czech>Povolit chirurgickou soupravu (Pokr.)</Czech> <Czech>Povolit chirurgickou soupravu (Pokr.)</Czech>
<Portuguese>Permite kit cirúrgico (avançado)</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_medicSetting_SurgicalKit_Description"> <Key ID="STR_ACE_Medical_AdvancedMedicalSettings_medicSetting_SurgicalKit_Description">
<English>Who can use the surgical kit?</English> <English>Who can use the surgical kit?</English>
@ -3181,6 +3246,7 @@
<Spanish>¿Quién puede utilizar el equipo quirúrgico?</Spanish> <Spanish>¿Quién puede utilizar el equipo quirúrgico?</Spanish>
<German>Wer kann den Operationskasten verwenden?</German> <German>Wer kann den Operationskasten verwenden?</German>
<Czech>Kdo může použít chirurgickou soupravu?</Czech> <Czech>Kdo může použít chirurgickou soupravu?</Czech>
<Portuguese>Quem pode usar o kit cirúrgico?</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_consumeItem_SurgicalKit_DisplayName"> <Key ID="STR_ACE_Medical_AdvancedMedicalSettings_consumeItem_SurgicalKit_DisplayName">
<English>Remove Surgical kit (Adv)</English> <English>Remove Surgical kit (Adv)</English>
@ -3189,6 +3255,7 @@
<Spanish>Eliminar equipo quirúrgico (Avanzado)</Spanish> <Spanish>Eliminar equipo quirúrgico (Avanzado)</Spanish>
<German>Enrtferne Operationskasten (erweitert)</German> <German>Enrtferne Operationskasten (erweitert)</German>
<Czech>Odebrat chirurgickou soupravu (Pokr.)</Czech> <Czech>Odebrat chirurgickou soupravu (Pokr.)</Czech>
<Portuguese>Remover kit cirúrgico (avançado)</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_consumeItem_SurgicalKit_Description"> <Key ID="STR_ACE_Medical_AdvancedMedicalSettings_consumeItem_SurgicalKit_Description">
<English>Should Surgical kit be removed on usage?</English> <English>Should Surgical kit be removed on usage?</English>
@ -3197,6 +3264,7 @@
<Spanish>Eliminar el equipo quirúrgico después del uso</Spanish> <Spanish>Eliminar el equipo quirúrgico después del uso</Spanish>
<German>Entferne Operationskästen bei Verwendung?</German> <German>Entferne Operationskästen bei Verwendung?</German>
<Czech>Odebrat chirurgickou soupravu po použití?</Czech> <Czech>Odebrat chirurgickou soupravu po použití?</Czech>
<Portuguese>Deve o kit cirúrgico ser removido após o uso?</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_useLocation_SurgicalKit_DisplayName"> <Key ID="STR_ACE_Medical_AdvancedMedicalSettings_useLocation_SurgicalKit_DisplayName">
<English>Locations Surgical kit (Adv)</English> <English>Locations Surgical kit (Adv)</English>
@ -3205,6 +3273,7 @@
<Spanish>Ubicaciones del equipo quirúrgico (Avanzado)</Spanish> <Spanish>Ubicaciones del equipo quirúrgico (Avanzado)</Spanish>
<German>Orte für Operationskästen (erweitert)</German> <German>Orte für Operationskästen (erweitert)</German>
<Czech>Lokace chirurgické soupravy (Pokr.)</Czech> <Czech>Lokace chirurgické soupravy (Pokr.)</Czech>
<Portuguese>Localizações do kit cirúrgico (avançado)</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_useLocation_SurgicalKit_Description"> <Key ID="STR_ACE_Medical_AdvancedMedicalSettings_useLocation_SurgicalKit_Description">
<English>Where can the Surgical kit be used?</English> <English>Where can the Surgical kit be used?</English>
@ -3213,30 +3282,39 @@
<Spanish>Dónde se puede utilizar el equipo quirúrgico</Spanish> <Spanish>Dónde se puede utilizar el equipo quirúrgico</Spanish>
<German>Wo kann der Operationskasten verwendet werden?</German> <German>Wo kann der Operationskasten verwendet werden?</German>
<Czech>Kde může být použita chirurgická souprava?</Czech> <Czech>Kde může být použita chirurgická souprava?</Czech>
<Portuguese>Onde o kit cirúrgico pode ser utilizado?</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_healHitPointAfterAdvBandage_DisplayName"> <Key ID="STR_ACE_Medical_AdvancedMedicalSettings_healHitPointAfterAdvBandage_DisplayName">
<English>Bloodstains</English> <English>Bloodstains</English>
<German>Blutflecken</German> <German>Blutflecken</German>
<Polish>Plamy krwi</Polish> <Polish>Plamy krwi</Polish>
<Czech>Skvrny od krve</Czech> <Czech>Skvrny od krve</Czech>
<Spanish>Manchas de sangre</Spanish>
<Portuguese>Manchas de sangue</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_healHitPointAfterAdvBandage_Description"> <Key ID="STR_ACE_Medical_AdvancedMedicalSettings_healHitPointAfterAdvBandage_Description">
<English>Bandaging removes bloodstains</English> <English>Bandaging removes bloodstains</English>
<German>Bandagieren entfernt Blutflecken</German> <German>Bandagieren entfernt Blutflecken</German>
<Polish>Bandażowanie usuwa ślady krwi</Polish> <Polish>Bandażowanie usuwa ślady krwi</Polish>
<Czech>Obvázání odstraňuje skvrny od krve</Czech> <Czech>Obvázání odstraňuje skvrny od krve</Czech>
<Spanish>El vendaje elimina las manchas de sangre</Spanish>
<Portuguese>Bandagem remove manchas de sangue</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_painIsOnlySuppressed_DisplayName"> <Key ID="STR_ACE_Medical_AdvancedMedicalSettings_painIsOnlySuppressed_DisplayName">
<English>Pain suppression</English> <English>Pain suppression</English>
<German>Schmerzunterdrückung</German> <German>Schmerzunterdrückung</German>
<Polish>Zwalczanie bólu</Polish> <Polish>Zwalczanie bólu</Polish>
<Czech>Potlačení bolesti</Czech> <Czech>Potlačení bolesti</Czech>
<Spanish>Supresión del dolor</Spanish>
<Portuguese>Supressão de dor</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_painIsOnlySuppressed_Description"> <Key ID="STR_ACE_Medical_AdvancedMedicalSettings_painIsOnlySuppressed_Description">
<English>Pain is only temporarily suppressed, not removed</English> <English>Pain is only temporarily suppressed, not removed</English>
<German>Bandagieren entfernt Blutflecken</German> <German>Schmerzen werden nur vorübergehend unterdrückt, nicht entfernt</German>
<Polish>Ból jest tylko tymczasowo zwalczany, nie jest usuwany trwale</Polish> <Polish>Ból jest tylko tymczasowo zwalczany, nie jest usuwany trwale</Polish>
<Czech>Bolest je potlačena, ale jen dočastně</Czech> <Czech>Bolest je potlačena, ale jen dočastně</Czech>
<Spanish>El dolor se suprime solo temporalmente, no se elimina.</Spanish>
<Portuguese>Dor é somente temporáriamente suprimida, não removida</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_Module_Description"> <Key ID="STR_ACE_Medical_AdvancedMedicalSettings_Module_Description">
<English>Configure the treatment settings from ACE Medical</English> <English>Configure the treatment settings from ACE Medical</English>
@ -3245,6 +3323,7 @@
<Spanish>Configure las opciones de tratamiento del ACE Médico</Spanish> <Spanish>Configure las opciones de tratamiento del ACE Médico</Spanish>
<German>Behandlungseinstellungen vom ACE-Medical konfigurieren</German> <German>Behandlungseinstellungen vom ACE-Medical konfigurieren</German>
<Czech>Konfigurace nastavení léčby ze zdravotnické systému ACE</Czech> <Czech>Konfigurace nastavení léčby ze zdravotnické systému ACE</Czech>
<Portuguese>Configure as opções de tratamento do ACE Médico</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_ReviveSettings_Module_DisplayName"> <Key ID="STR_ACE_Medical_ReviveSettings_Module_DisplayName">
<English>Revive Settings [ACE]</English> <English>Revive Settings [ACE]</English>
@ -3253,6 +3332,7 @@
<Spanish>Sistema de resucitado [ACE]</Spanish> <Spanish>Sistema de resucitado [ACE]</Spanish>
<German>Wiederbelebungseinstellungen [ACE]</German> <German>Wiederbelebungseinstellungen [ACE]</German>
<Czech>Nastavení oživení [ACE]</Czech> <Czech>Nastavení oživení [ACE]</Czech>
<Portuguese>Sistema de reavivamento [ACE]</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_ReviveSettings_enableRevive_DisplayName"> <Key ID="STR_ACE_Medical_ReviveSettings_enableRevive_DisplayName">
<English>Enable Revive</English> <English>Enable Revive</English>
@ -3261,6 +3341,7 @@
<Spanish>Habilitar resucitado</Spanish> <Spanish>Habilitar resucitado</Spanish>
<German>Erlaube Wiederbelebung</German> <German>Erlaube Wiederbelebung</German>
<Czech>Povolit oživení</Czech> <Czech>Povolit oživení</Czech>
<Portuguese>Habilitar reavivamento</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_ReviveSettings_enableRevive_Description"> <Key ID="STR_ACE_Medical_ReviveSettings_enableRevive_Description">
<English>Enable a basic revive system</English> <English>Enable a basic revive system</English>
@ -3269,6 +3350,7 @@
<Spanish>Habilitar un sistema básico de resucitado</Spanish> <Spanish>Habilitar un sistema básico de resucitado</Spanish>
<German>Aktiviere Standard-Wiederbelebungssystem</German> <German>Aktiviere Standard-Wiederbelebungssystem</German>
<Czech>Povolit základní systém oživení</Czech> <Czech>Povolit základní systém oživení</Czech>
<Portuguese>Habilitar um sistema básico de reavivamento</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_ReviveSettings_maxReviveTime_DisplayName"> <Key ID="STR_ACE_Medical_ReviveSettings_maxReviveTime_DisplayName">
<English>Max Revive time</English> <English>Max Revive time</English>
@ -3277,6 +3359,7 @@
<Spanish>Tiempo máximo de resucitado</Spanish> <Spanish>Tiempo máximo de resucitado</Spanish>
<German>Maximale Wiederbelebungszeit</German> <German>Maximale Wiederbelebungszeit</German>
<Czech>Maximální čas pro oživení</Czech> <Czech>Maximální čas pro oživení</Czech>
<Portuguese>Tempo máximo de reavivamento</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_ReviveSettings_maxReviveTime_Description"> <Key ID="STR_ACE_Medical_ReviveSettings_maxReviveTime_Description">
<English>Max amount of seconds a unit can spend in revive state</English> <English>Max amount of seconds a unit can spend in revive state</English>
@ -3285,6 +3368,7 @@
<Spanish>Cantidad máxima de segundos que una unidad puede gastar en estado de resucitación</Spanish> <Spanish>Cantidad máxima de segundos que una unidad puede gastar en estado de resucitación</Spanish>
<German>Maximale Zeitspanne in Sekunden die eine Einheit im Wiederbelebungszustand verbringen kann</German> <German>Maximale Zeitspanne in Sekunden die eine Einheit im Wiederbelebungszustand verbringen kann</German>
<Czech>Maximální doba v agónii v sekundách</Czech> <Czech>Maximální doba v agónii v sekundách</Czech>
<Portuguese>Quantidade máxima de segundos que uma unidade pode gastar em um estado de reavivamento</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_ReviveSettings_amountOfReviveLives_DisplayName"> <Key ID="STR_ACE_Medical_ReviveSettings_amountOfReviveLives_DisplayName">
<English>Max Revive lives</English> <English>Max Revive lives</English>
@ -3293,6 +3377,7 @@
<Spanish>Vidas máximas de resucitado</Spanish> <Spanish>Vidas máximas de resucitado</Spanish>
<German>Maximale Leben bei Wiederbelebung</German> <German>Maximale Leben bei Wiederbelebung</German>
<Czech>Maximální počet oživení</Czech> <Czech>Maximální počet oživení</Czech>
<Portuguese>Vidas máximas do reavivado</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_ReviveSettings_amountOfReviveLives_Description"> <Key ID="STR_ACE_Medical_ReviveSettings_amountOfReviveLives_Description">
<English>Max amount of lives a unit. 0 or -1 is disabled.</English> <English>Max amount of lives a unit. 0 or -1 is disabled.</English>
@ -3301,6 +3386,7 @@
<Spanish>Cantidad máxima de vidas por unidad. 0 o -1 es desactivado.</Spanish> <Spanish>Cantidad máxima de vidas por unidad. 0 o -1 es desactivado.</Spanish>
<German>Maximale Anzahl von Leben einer Einheit. 0 or -1 bedeutet deaktiviert.</German> <German>Maximale Anzahl von Leben einer Einheit. 0 or -1 bedeutet deaktiviert.</German>
<Czech>Maximální počet životu pro jednotku. 0 nebo -1 je zakázáno.</Czech> <Czech>Maximální počet životu pro jednotku. 0 nebo -1 je zakázáno.</Czech>
<Portuguese>Quantidade máxima de vidas por unidade. 0 ou -1 é desativado.</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_ReviveSettings_Module_Description"> <Key ID="STR_ACE_Medical_ReviveSettings_Module_Description">
<English>Provides a medical system for both players and AI.</English> <English>Provides a medical system for both players and AI.</English>
@ -3309,6 +3395,7 @@
<Spanish>Proporciona un sistema médico para jugadores e IA.</Spanish> <Spanish>Proporciona un sistema médico para jugadores e IA.</Spanish>
<German>Aktiviert das Medicsystem für Spieler und KI.</German> <German>Aktiviert das Medicsystem für Spieler und KI.</German>
<Czech>Poskytuje zdravotní systém pro hráče a AI.</Czech> <Czech>Poskytuje zdravotní systém pro hráče a AI.</Czech>
<Portuguese>Proporciona um sistema médico para jogadores e IA.</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AssignMedicRoles_Module_DisplayName"> <Key ID="STR_ACE_Medical_AssignMedicRoles_Module_DisplayName">
<English>Set Medic Class [ACE]</English> <English>Set Medic Class [ACE]</English>
@ -3317,6 +3404,7 @@
<Spanish>Establecer case médica [ACE]</Spanish> <Spanish>Establecer case médica [ACE]</Spanish>
<German>Setze Sanitäterklassen [ACE]</German> <German>Setze Sanitäterklassen [ACE]</German>
<Czech>Určit třídu medika [ACE]</Czech> <Czech>Určit třídu medika [ACE]</Czech>
<Portuguese>Definir classe médica [ACE]</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AssignMedicRoles_EnableList_DisplayName"> <Key ID="STR_ACE_Medical_AssignMedicRoles_EnableList_DisplayName">
<English>List</English> <English>List</English>
@ -3325,6 +3413,7 @@
<Spanish>Lista</Spanish> <Spanish>Lista</Spanish>
<German>Liste</German> <German>Liste</German>
<Czech>Seznam</Czech> <Czech>Seznam</Czech>
<Portuguese>Lista</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AssignMedicRoles_EnableList_Description"> <Key ID="STR_ACE_Medical_AssignMedicRoles_EnableList_Description">
<English>List of unit names that will be classified as medic, separated by commas.</English> <English>List of unit names that will be classified as medic, separated by commas.</English>
@ -3333,6 +3422,7 @@
<Spanish>Lista de los nombres de las unidades que se clasifican como médico, separados por comas.</Spanish> <Spanish>Lista de los nombres de las unidades que se clasifican como médico, separados por comas.</Spanish>
<German>Liste von Namen, die als Sanitäter verwendet werden. Wird durch Kommas getrennt.</German> <German>Liste von Namen, die als Sanitäter verwendet werden. Wird durch Kommas getrennt.</German>
<Czech>Seznam osob které budou klasifikovány jako zdravotník, oddělené čárkami.</Czech> <Czech>Seznam osob které budou klasifikovány jako zdravotník, oddělené čárkami.</Czech>
<Portuguese>Lista dos nomes das unidades que se classificam como médicos, separados por vírgulas.</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AssignMedicRoles_role_DisplayName"> <Key ID="STR_ACE_Medical_AssignMedicRoles_role_DisplayName">
<English>Is Medic</English> <English>Is Medic</English>
@ -3341,6 +3431,7 @@
<Spanish>Es médico</Spanish> <Spanish>Es médico</Spanish>
<German>Ist Sanitäter</German> <German>Ist Sanitäter</German>
<Czech>Je zdravotník</Czech> <Czech>Je zdravotník</Czech>
<Portuguese>É médico</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AssignMedicRoles_role_Description"> <Key ID="STR_ACE_Medical_AssignMedicRoles_role_Description">
<English></English> <English></English>
@ -3348,6 +3439,7 @@
<Polish></Polish> <Polish></Polish>
<German>Dieses Modul legt fest welche Einheit ein Sanitäter ist.</German> <German>Dieses Modul legt fest welche Einheit ein Sanitäter ist.</German>
<Czech>Tento modul určuje, která jednotka je zdravotník.</Czech> <Czech>Tento modul určuje, která jednotka je zdravotník.</Czech>
<Portuguese>Este módulo determina qual unidade é um paramédico.</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AssignMedicRoles_role_none"> <Key ID="STR_ACE_Medical_AssignMedicRoles_role_none">
<English>None</English> <English>None</English>
@ -3356,6 +3448,7 @@
<Spanish>Nada</Spanish> <Spanish>Nada</Spanish>
<German>Keine</German> <German>Keine</German>
<Czech>Žádný</Czech> <Czech>Žádný</Czech>
<Portuguese>Nada</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AssignMedicRoles_role_medic"> <Key ID="STR_ACE_Medical_AssignMedicRoles_role_medic">
<English>Regular medic</English> <English>Regular medic</English>
@ -3364,6 +3457,7 @@
<Spanish>Médico regular</Spanish> <Spanish>Médico regular</Spanish>
<German>Normaler Sanitäter</German> <German>Normaler Sanitäter</German>
<Czech>Řadový zdravotník</Czech> <Czech>Řadový zdravotník</Czech>
<Portuguese>Médico regular</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AssignMedicRoles_role_doctor"> <Key ID="STR_ACE_Medical_AssignMedicRoles_role_doctor">
<English>Doctor (Only Advanced Medics)</English> <English>Doctor (Only Advanced Medics)</English>
@ -3372,6 +3466,7 @@
<Spanish>Doctor (Solo medicina avanzada)</Spanish> <Spanish>Doctor (Solo medicina avanzada)</Spanish>
<German>Arzt (nur erweiterte Sanitäter)</German> <German>Arzt (nur erweiterte Sanitäter)</German>
<Czech>Doktor (Pouze pokročilý zdravotníci)</Czech> <Czech>Doktor (Pouze pokročilý zdravotníci)</Czech>
<Portuguese>Doutor (Somente médicos avançados)</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AssignMedicRoles_Module_Description"> <Key ID="STR_ACE_Medical_AssignMedicRoles_Module_Description">
<English>Assigns the ACE medic class to a unit</English> <English>Assigns the ACE medic class to a unit</English>
@ -3380,6 +3475,7 @@
<Spanish>Asigna la clase médico ACE a una unidad</Spanish> <Spanish>Asigna la clase médico ACE a una unidad</Spanish>
<German>Weise die ACE-Sanitäterklasse einer Einheit zu</German> <German>Weise die ACE-Sanitäterklasse einer Einheit zu</German>
<Czech>Přiřadí ACE třídu zdravotníka do jednotky</Czech> <Czech>Přiřadí ACE třídu zdravotníka do jednotky</Czech>
<Portuguese>Atribui a classe médica do ACE a uma unidade</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AssignMedicVehicle_Module_DisplayName"> <Key ID="STR_ACE_Medical_AssignMedicVehicle_Module_DisplayName">
<English>Set Medical Vehicle [ACE]</English> <English>Set Medical Vehicle [ACE]</English>
@ -3388,6 +3484,7 @@
<Spanish>Establecer vehículos médicos [ACE]</Spanish> <Spanish>Establecer vehículos médicos [ACE]</Spanish>
<German>Setze medizinisches Fahrzeug [ACE]</German> <German>Setze medizinisches Fahrzeug [ACE]</German>
<Czech>Určit zdravotnické vozidlo [ACE]</Czech> <Czech>Určit zdravotnické vozidlo [ACE]</Czech>
<Portuguese>Definir veículo médico [ACE]</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AssignMedicVehicle_EnableList_DisplayName"> <Key ID="STR_ACE_Medical_AssignMedicVehicle_EnableList_DisplayName">
<English>List</English> <English>List</English>
@ -3396,6 +3493,7 @@
<Spanish>Lista</Spanish> <Spanish>Lista</Spanish>
<German>Liste</German> <German>Liste</German>
<Czech>Seznam</Czech> <Czech>Seznam</Czech>
<Portuguese>Lista</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AssignMedicVehicle_EnableList_Description"> <Key ID="STR_ACE_Medical_AssignMedicVehicle_EnableList_Description">
<English>List of vehicles that will be classified as medical vehicle, separated by commas.</English> <English>List of vehicles that will be classified as medical vehicle, separated by commas.</English>
@ -3404,6 +3502,7 @@
<Spanish>Lista de los vehículos que se clasifican como vehículo médicos, separados por comas.</Spanish> <Spanish>Lista de los vehículos que se clasifican como vehículo médicos, separados por comas.</Spanish>
<German>Liste ovn Fahrzeugen, die als medizinische Fahrzeuge verwendet werden. Wird durch Kommas getrennt.</German> <German>Liste ovn Fahrzeugen, die als medizinische Fahrzeuge verwendet werden. Wird durch Kommas getrennt.</German>
<Czech>Seznam vozidel které budou klasifikovány jako zdravotnická vozidla, oddělené čárkami.</Czech> <Czech>Seznam vozidel které budou klasifikovány jako zdravotnická vozidla, oddělené čárkami.</Czech>
<Portuguese>Lista de veículos que serão classificados como veículos médicos, separados por vírgulas.</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AssignMedicVehicle_enabled_DisplayName"> <Key ID="STR_ACE_Medical_AssignMedicVehicle_enabled_DisplayName">
<English>Is Medical Vehicle</English> <English>Is Medical Vehicle</English>
@ -3412,6 +3511,7 @@
<Spanish>Es vehículo médico</Spanish> <Spanish>Es vehículo médico</Spanish>
<German>Ist medizinisches Fahrzeug</German> <German>Ist medizinisches Fahrzeug</German>
<Czech>Je zdravotnické vozidlo</Czech> <Czech>Je zdravotnické vozidlo</Czech>
<Portuguese>É um veículo médico</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AssignMedicVehicle_enabled_Description"> <Key ID="STR_ACE_Medical_AssignMedicVehicle_enabled_Description">
<English>Whatever or not the objects in the list will be a medical vehicle.</English> <English>Whatever or not the objects in the list will be a medical vehicle.</English>
@ -3420,6 +3520,7 @@
<Spanish>Cualquiera de la lista o fuera de ella será un vehículo médico.</Spanish> <Spanish>Cualquiera de la lista o fuera de ella será un vehículo médico.</Spanish>
<German>Leg fest ob das Objekt in der Liste ein medizinisches Fahrzeug ist.</German> <German>Leg fest ob das Objekt in der Liste ein medizinisches Fahrzeug ist.</German>
<Czech>Ať už jsou nebo nejsou objekty v seznamu budou zdravotnická vozidla.</Czech> <Czech>Ať už jsou nebo nejsou objekty v seznamu budou zdravotnická vozidla.</Czech>
<Portuguese>Se serão ou não os objetos dessa lista veículos médicos.</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AssignMedicVehicle_Module_Description"> <Key ID="STR_ACE_Medical_AssignMedicVehicle_Module_Description">
<English>Assigns the ACE medic class to a unit</English> <English>Assigns the ACE medic class to a unit</English>
@ -3428,6 +3529,7 @@
<Spanish>Asigna la clase médico ACE a una unidad</Spanish> <Spanish>Asigna la clase médico ACE a una unidad</Spanish>
<German>Weist die ACE-Sanitäterklasse einer Einheit zu</German> <German>Weist die ACE-Sanitäterklasse einer Einheit zu</German>
<Czech>Přiřadí ACE třídu zdravotníka do jednotky</Czech> <Czech>Přiřadí ACE třídu zdravotníka do jednotky</Czech>
<Portuguese>Atribui a classe médica ACE a uma unidade</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AssignMedicalFacility_Module_DisplayName"> <Key ID="STR_ACE_Medical_AssignMedicalFacility_Module_DisplayName">
<English>Set Medical Facility [ACE]</English> <English>Set Medical Facility [ACE]</English>
@ -3436,6 +3538,7 @@
<Spanish>Establece el centro médico [ACE]</Spanish> <Spanish>Establece el centro médico [ACE]</Spanish>
<German>Setze medizinische Einrichtung [ACE]</German> <German>Setze medizinische Einrichtung [ACE]</German>
<Czech>Určit zdravotnické zařízení [ACE]</Czech> <Czech>Určit zdravotnické zařízení [ACE]</Czech>
<Portuguese>Definir instalação médica [ACE]</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AssignMedicalFacility_enabled_DisplayName"> <Key ID="STR_ACE_Medical_AssignMedicalFacility_enabled_DisplayName">
<English>Is Medical Facility</English> <English>Is Medical Facility</English>
@ -3444,6 +3547,7 @@
<Spanish>Es centro médico</Spanish> <Spanish>Es centro médico</Spanish>
<German>Ist eine medizinische Einrichtung</German> <German>Ist eine medizinische Einrichtung</German>
<Czech>Je zdravotnické zařízení</Czech> <Czech>Je zdravotnické zařízení</Czech>
<Portuguese>É uma instalação médica</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AssignMedicalFacility_enabled_Description"> <Key ID="STR_ACE_Medical_AssignMedicalFacility_enabled_Description">
<English>Registers an object as a medical facility</English> <English>Registers an object as a medical facility</English>
@ -3452,6 +3556,7 @@
<Spanish>Registra un objeto como un centro médico</Spanish> <Spanish>Registra un objeto como un centro médico</Spanish>
<German>Definiert ein Objekt als medizinische Einrichtung</German> <German>Definiert ein Objekt als medizinische Einrichtung</German>
<Czech>Registruje objekt jako zdravotnické zařízení</Czech> <Czech>Registruje objekt jako zdravotnické zařízení</Czech>
<Portuguese>Registra um objeto como instalacão médica</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_AssignMedicalFacility_Module_Description"> <Key ID="STR_ACE_Medical_AssignMedicalFacility_Module_Description">
<English>Defines an object as a medical facility. This allows for more advanced treatments. Can be used on buildings and vehicles.</English> <English>Defines an object as a medical facility. This allows for more advanced treatments. Can be used on buildings and vehicles.</English>
@ -3460,6 +3565,7 @@
<Spanish>Define un objeto como un centro médico. Esto permite tratamientos más avanzados. Se puede utilizar en edificios y vehículos.</Spanish> <Spanish>Define un objeto como un centro médico. Esto permite tratamientos más avanzados. Se puede utilizar en edificios y vehículos.</Spanish>
<German>Definiert ein Objekt als medizinische Einrichtung. Das ermöglicht weitere Behandlungen. Kann bei Gebäuden und Fahrzeugen verwendet werden.</German> <German>Definiert ein Objekt als medizinische Einrichtung. Das ermöglicht weitere Behandlungen. Kann bei Gebäuden und Fahrzeugen verwendet werden.</German>
<Czech>Definuje objekt jako zdravotnické zařízení. To umožňuje více pokročilé léčení. Může být použito na budovy nebo na vozidla.</Czech> <Czech>Definuje objekt jako zdravotnické zařízení. To umožňuje více pokročilé léčení. Může být použito na budovy nebo na vozidla.</Czech>
<Portuguese>Define um objeto como instalação médica. Isso permite tratamentos mais avançados. Pode ser utilizado em edifícios e veículos.</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_medicalSupplyCrate"> <Key ID="STR_ACE_Medical_medicalSupplyCrate">
<English>[ACE] Medical Supply Crate (Basic)</English> <English>[ACE] Medical Supply Crate (Basic)</English>
@ -3468,6 +3574,7 @@
<Spanish>[ACE] Caja de suministros médicos (Básica)</Spanish> <Spanish>[ACE] Caja de suministros médicos (Básica)</Spanish>
<German>[ACE] Medizinische Kiste (standard)</German> <German>[ACE] Medizinische Kiste (standard)</German>
<Czech>[ACE] Zdravotnické zásoby (základní)</Czech> <Czech>[ACE] Zdravotnické zásoby (základní)</Czech>
<Portuguese>[ACE] Caixa com suprimentos médicos</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_medicalSupplyCrate_advanced"> <Key ID="STR_ACE_Medical_medicalSupplyCrate_advanced">
<English>[ACE] Medical Supply Crate (Advanced)</English> <English>[ACE] Medical Supply Crate (Advanced)</English>
@ -3476,6 +3583,7 @@
<Spanish>[ACE] Caja de suministros médicos (Avanzada)</Spanish> <Spanish>[ACE] Caja de suministros médicos (Avanzada)</Spanish>
<German>[ACE] Medizinische Kiste (erweitert)</German> <German>[ACE] Medizinische Kiste (erweitert)</German>
<Czech>[ACE] Zdravotnické zásoby (pokročilé)</Czech> <Czech>[ACE] Zdravotnické zásoby (pokročilé)</Czech>
<Portuguese>[ACE] Caixa com suprimentos médicos (Avançados)</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Medical_Yes"> <Key ID="STR_ACE_Medical_Yes">
<English>Yes</English> <English>Yes</English>

View File

@ -9,21 +9,21 @@ class CfgVehicles {
condition = QUOTE(([DISPLAY_MODE_DIALOG] call FUNC(canShow)) && {GVAR(currentShowMode) != DISPLAY_MODE_DIALOG}); condition = QUOTE(([DISPLAY_MODE_DIALOG] call FUNC(canShow)) && {GVAR(currentShowMode) != DISPLAY_MODE_DIALOG});
statement = QUOTE([DISPLAY_MODE_DIALOG] call FUNC(openDisplay)); statement = QUOTE([DISPLAY_MODE_DIALOG] call FUNC(openDisplay));
icon = QUOTE(PATHTOF(UI\icon_microDAGR.paa)); icon = QUOTE(PATHTOF(UI\icon_microDAGR.paa));
exceptions[] = {"notOnMap", "isNotInside"}; exceptions[] = {"notOnMap", "isNotInside", "isNotSitting"};
class GVAR(show) { class GVAR(show) {
//Opens the mini map //Opens the mini map
displayName = CSTRING(show); displayName = CSTRING(show);
condition = QUOTE(([DISPLAY_MODE_DISPLAY] call FUNC(canShow)) && {GVAR(currentShowMode) != DISPLAY_MODE_DISPLAY}); condition = QUOTE(([DISPLAY_MODE_DISPLAY] call FUNC(canShow)) && {GVAR(currentShowMode) != DISPLAY_MODE_DISPLAY});
statement = QUOTE([DISPLAY_MODE_DISPLAY] call FUNC(openDisplay)); statement = QUOTE([DISPLAY_MODE_DISPLAY] call FUNC(openDisplay));
icon = QUOTE(PATHTOF(UI\icon_microDAGR.paa)); icon = QUOTE(PATHTOF(UI\icon_microDAGR.paa));
exceptions[] = {"notOnMap", "isNotInside"}; exceptions[] = {"notOnMap", "isNotInside", "isNotSitting"};
}; };
class GVAR(close) { class GVAR(close) {
displayName = CSTRING(closeUnit); displayName = CSTRING(closeUnit);
condition = QUOTE(GVAR(currentShowMode) != DISPLAY_MODE_CLOSED); condition = QUOTE(GVAR(currentShowMode) != DISPLAY_MODE_CLOSED);
statement = QUOTE([DISPLAY_MODE_CLOSED] call FUNC(openDisplay)); statement = QUOTE([DISPLAY_MODE_CLOSED] call FUNC(openDisplay));
icon = QUOTE(PATHTOF(UI\icon_microDAGR.paa)); icon = QUOTE(PATHTOF(UI\icon_microDAGR.paa));
exceptions[] = {"notOnMap", "isNotInside"}; exceptions[] = {"notOnMap", "isNotInside", "isNotSitting"};
}; };
}; };
}; };

View File

@ -9,7 +9,7 @@ _conditonCode = {
("ACE_microDAGR" in (items ACE_player)) ("ACE_microDAGR" in (items ACE_player))
}; };
_toggleCode = { _toggleCode = {
if !([ACE_player, objNull, ["notOnMap", "isNotInside"]] call EFUNC(common,canInteractWith)) exitWith {}; if !([ACE_player, objNull, ["notOnMap", "isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith)) exitWith {};
[] call FUNC(openDisplay); //toggle display mode [] call FUNC(openDisplay); //toggle display mode
}; };
_closeCode = { _closeCode = {

View File

@ -26,11 +26,11 @@ case (DISPLAY_MODE_CLOSED): {_returnValue = true}; //Can always close
case (DISPLAY_MODE_HIDDEN): {_returnValue = true}; //Can always hide case (DISPLAY_MODE_HIDDEN): {_returnValue = true}; //Can always hide
case (DISPLAY_MODE_DIALOG): { case (DISPLAY_MODE_DIALOG): {
_returnValue = ("ACE_microDAGR" in (items ACE_player)) && {[ACE_player, objNull, ["notOnMap", "isNotInside"]] call EFUNC(common,canInteractWith)}; _returnValue = ("ACE_microDAGR" in (items ACE_player)) && {[ACE_player, objNull, ["notOnMap", "isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith)};
}; };
case (DISPLAY_MODE_DISPLAY): { case (DISPLAY_MODE_DISPLAY): {
//Can't have minimap up while zoomed in //Can't have minimap up while zoomed in
_returnValue = (cameraview != "GUNNER") && {"ACE_microDAGR" in (items ACE_player)} && {[ACE_player, objNull, ["notOnMap", "isNotInside"]] call EFUNC(common,canInteractWith)}; _returnValue = (cameraview != "GUNNER") && {"ACE_microDAGR" in (items ACE_player)} && {[ACE_player, objNull, ["notOnMap", "isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith)};
}; };
}; };

View File

@ -15,7 +15,7 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
private ["_display", "_daylight", "_theMap", "_mapSize"]; private ["_display", "_theMap", "_mapSize"];
disableSerialization; disableSerialization;
@ -27,10 +27,6 @@ if (GVAR(currentShowMode) == DISPLAY_MODE_DIALOG) then {
}; };
if (isNull _display) exitWith {ERROR("No Display");}; if (isNull _display) exitWith {ERROR("No Display");};
//Fade "shell" at night
_daylight = 0.05 max (((1 - overcast)/2 + ((1 - cos (daytime * 360/24)) / 4)) * (linearConversion [0, 1, sunOrMoon, (0.25 * moonIntensity), 1]));
(_display displayCtrl IDC_MICRODAGRSHELL) ctrlSetTextColor [_daylight, _daylight, _daylight, 1];
//TopBar //TopBar
(_display displayCtrl IDC_RANGEFINDERCONNECTEDICON) ctrlShow (GVAR(currentWaypoint) == -2); (_display displayCtrl IDC_RANGEFINDERCONNECTEDICON) ctrlShow (GVAR(currentWaypoint) == -2);

View File

@ -15,7 +15,7 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
private ["_display", "_waypoints", "_posString", "_eastingText", "_northingText", "_numASL", "_aboveSeaLevelText", "_compassAngleText", "_targetPosName", "_targetPosLocationASL", "_bearingText", "_rangeText", "_targetName", "_bearing", "_2dDistanceKm", "_SpeedText", "_playerPos2d", "_wpListBox", "_currentIndex", "_wpName", "_wpPos", "_settingListBox", "_yearString", "_monthSring", "_dayString"]; private ["_display", "_waypoints", "_posString", "_eastingText", "_northingText", "_numASL", "_aboveSeaLevelText", "_compassAngleText", "_targetPosName", "_targetPosLocationASL", "_bearingText", "_rangeText", "_targetName", "_bearing", "_2dDistanceKm", "_SpeedText", "_playerPos2d", "_wpListBox", "_currentIndex", "_wpName", "_wpPos", "_settingListBox", "_yearString", "_monthSring", "_dayString", "_daylight"];
disableSerialization; disableSerialization;
_display = displayNull; _display = displayNull;
@ -26,6 +26,10 @@ if (GVAR(currentShowMode) == DISPLAY_MODE_DIALOG) then {
}; };
if (isNull _display) exitWith {ERROR("No Display");}; if (isNull _display) exitWith {ERROR("No Display");};
//Fade "shell" at night
_daylight = [] call EFUNC(common,ambientBrightness);
(_display displayCtrl IDC_MICRODAGRSHELL) ctrlSetTextColor [_daylight, _daylight, _daylight, 1];
(_display displayCtrl IDC_CLOCKTEXT) ctrlSetText ([daytime, "HH:MM"] call bis_fnc_timeToString); (_display displayCtrl IDC_CLOCKTEXT) ctrlSetText ([daytime, "HH:MM"] call bis_fnc_timeToString);
_waypoints = [] call FUNC(deviceGetWaypoints); _waypoints = [] call FUNC(deviceGetWaypoints);

View File

@ -306,12 +306,14 @@
<Polish>Wypełnienie mapy MicroDAGR</Polish> <Polish>Wypełnienie mapy MicroDAGR</Polish>
<Spanish>Relleno del mapa MicroDAGR</Spanish> <Spanish>Relleno del mapa MicroDAGR</Spanish>
<Czech>MicroDAGR - Vyplnění mapy</Czech> <Czech>MicroDAGR - Vyplnění mapy</Czech>
<Portuguese>Preenchimento de mapa do MicroDAGR</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_MicroDAGR_MapDataAvailable_DisplayName"> <Key ID="STR_ACE_MicroDAGR_MapDataAvailable_DisplayName">
<English>MicroDAGR Map Fill</English> <English>MicroDAGR Map Fill</English>
<Polish>Wypełnienie mapy MicroDAGR</Polish> <Polish>Wypełnienie mapy MicroDAGR</Polish>
<Spanish>Relleno del mapa MicroDAGR</Spanish> <Spanish>Relleno del mapa MicroDAGR</Spanish>
<Czech>MicroDAGR - Vyplnění mapy</Czech> <Czech>MicroDAGR - Vyplnění mapy</Czech>
<Portuguese>Preenchimento de mapa do MicroDAGR</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_MicroDAGR_MapDataAvailable_Description"> <Key ID="STR_ACE_MicroDAGR_MapDataAvailable_Description">
<English>How much map data is filled on MicroDAGR's</English> <English>How much map data is filled on MicroDAGR's</English>
@ -319,6 +321,7 @@
<Spanish>Cuanta información está disponible en el mapa del MicroDAG</Spanish> <Spanish>Cuanta información está disponible en el mapa del MicroDAG</Spanish>
<German>Wie viel Daten auf einem MicroDAGR zu sehen sind</German> <German>Wie viel Daten auf einem MicroDAGR zu sehen sind</German>
<Czech>Kolik informací je načteno do MicroDAGR?</Czech> <Czech>Kolik informací je načteno do MicroDAGR?</Czech>
<Portuguese>Quanta informação é preenchida no mapa do MicroDAGR</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_MicroDAGR_None"> <Key ID="STR_ACE_MicroDAGR_None">
<English>Full Satellite + Buildings</English> <English>Full Satellite + Buildings</English>
@ -326,6 +329,7 @@
<Spanish>Satelite completo + Edificios</Spanish> <Spanish>Satelite completo + Edificios</Spanish>
<German>Satellitenbild + Gebäude</German> <German>Satellitenbild + Gebäude</German>
<Czech>Satelit + Budovy</Czech> <Czech>Satelit + Budovy</Czech>
<Portuguese>Satélite completo + Edifícios</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_MicroDAGR_Side"> <Key ID="STR_ACE_MicroDAGR_Side">
<English>Topographical + Roads</English> <English>Topographical + Roads</English>
@ -333,6 +337,7 @@
<Spanish>Topografico + Carreteras</Spanish> <Spanish>Topografico + Carreteras</Spanish>
<German>Topografisch + Straßen</German> <German>Topografisch + Straßen</German>
<Czech>Topografické + Cesty</Czech> <Czech>Topografické + Cesty</Czech>
<Portuguese>Topográfico + Estradas</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_MicroDAGR_Unique"> <Key ID="STR_ACE_MicroDAGR_Unique">
<English>None (Cannot use map view)</English> <English>None (Cannot use map view)</English>
@ -340,6 +345,7 @@
<Spanish>Nada (No se puede el mapa)</Spanish> <Spanish>Nada (No se puede el mapa)</Spanish>
<German>Keine (kann keine Kartenansicht verwenden)</German> <German>Keine (kann keine Kartenansicht verwenden)</German>
<Czech>Žádný (Nelze použít zobrazení mapy)</Czech> <Czech>Žádný (Nelze použít zobrazení mapy)</Czech>
<Portuguese>Nada (Não pode usar a tela de mapa)</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_MicroDAGR_Module_Description"> <Key ID="STR_ACE_MicroDAGR_Module_Description">
<English>Controls how much data is filled on the microDAGR items. Less data restricts the map view to show less on the minimap.&lt;br /&gt;Source: microDAGR.pbo</English> <English>Controls how much data is filled on the microDAGR items. Less data restricts the map view to show less on the minimap.&lt;br /&gt;Source: microDAGR.pbo</English>
@ -347,6 +353,7 @@
<Spanish>Controla la cantidad de información disponible en el microDAGR. Menos datos limitan la vista del mapa a mostrar menos en el minimapa.&lt;br /&gt;Fuente: microDAGR.pbo</Spanish> <Spanish>Controla la cantidad de información disponible en el microDAGR. Menos datos limitan la vista del mapa a mostrar menos en el minimapa.&lt;br /&gt;Fuente: microDAGR.pbo</Spanish>
<German>Steuert wie viel Daten auf dem microDAGR zu sehen ist. Weniger Daten schränken die Kartenansicht ein, um mehr auf der Minimap zu sehen.&lt;br /&gt;Quelle: microDAGR.pbo</German> <German>Steuert wie viel Daten auf dem microDAGR zu sehen ist. Weniger Daten schränken die Kartenansicht ein, um mehr auf der Minimap zu sehen.&lt;br /&gt;Quelle: microDAGR.pbo</German>
<Czech>Tento modul umožňuje kontrolovat, kolik informací je obsaženo v MicroDAGR. Menší množství dat omezené zobrazením mapy ukazují méně věcí na minimapě.&lt;br /&gt;Zdroj: microDAGR.pbo</Czech> <Czech>Tento modul umožňuje kontrolovat, kolik informací je obsaženo v MicroDAGR. Menší množství dat omezené zobrazením mapy ukazují méně věcí na minimapě.&lt;br /&gt;Zdroj: microDAGR.pbo</Czech>
<Portuguese>Controla quantos dados são preenchidos nos itens microDAGR. Menos dados restringe a visualização de mapa para mostrar menos informações no minimapa&lt;br/&gt;Fonte: MicroDAGR.pbo</Portuguese>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -20,6 +20,7 @@ class CfgVehicles {
class ACE_Comanche_Test : B_Heli_Attack_01_F { class ACE_Comanche_Test : B_Heli_Attack_01_F {
scope = 1; scope = 1;
scopeCurator = 0;
displayName = "ACE_Comanche_Test"; displayName = "ACE_Comanche_Test";
author = "ACE Team"; author = "ACE Team";
class Library { class Library {

View File

@ -2,7 +2,7 @@
class CfgPatches { class CfgPatches {
class ADDON { class ADDON {
units[] = {}; units[] = {"ACE_Comanche_Test"};
weapons[] = {}; weapons[] = {};
requiredVersion = REQUIRED_VERSION; requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_laser"}; requiredAddons[] = {"ace_laser"};

View File

@ -103,6 +103,7 @@
<Spanish>Desactivado</Spanish> <Spanish>Desactivado</Spanish>
<German>Aus</German> <German>Aus</German>
<Czech>Vypnout</Czech> <Czech>Vypnout</Czech>
<Portuguese>Desligado</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_MissileGuidance_PlayerOnly"> <Key ID="STR_ACE_MissileGuidance_PlayerOnly">
<English>Player Only</English> <English>Player Only</English>
@ -110,6 +111,7 @@
<Spanish>Solo jugador</Spanish> <Spanish>Solo jugador</Spanish>
<German>Nur Spieler</German> <German>Nur Spieler</German>
<Czech>Pouze hráči</Czech> <Czech>Pouze hráči</Czech>
<Portuguese>Somente jogador</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_MissileGuidance_PlayerAndAi"> <Key ID="STR_ACE_MissileGuidance_PlayerAndAi">
<English>Player and AI</English> <English>Player and AI</English>
@ -117,6 +119,7 @@
<Spanish>Jugador e IA</Spanish> <Spanish>Jugador e IA</Spanish>
<German>Spieler und KI</German> <German>Spieler und KI</German>
<Czech>Hráči a AI</Czech> <Czech>Hráči a AI</Czech>
<Portuguese>Jogador e IA</Portuguese>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -7,6 +7,7 @@
<Spanish>Módulo de misiones ACE</Spanish> <Spanish>Módulo de misiones ACE</Spanish>
<German>ACE-Missionsmodule</German> <German>ACE-Missionsmodule</German>
<Czech>ACE Moduly mise</Czech> <Czech>ACE Moduly mise</Czech>
<Portuguese>Módulo de missões ACE</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_MissionModules_AmbianceSounds_DisplayName"> <Key ID="STR_ACE_MissionModules_AmbianceSounds_DisplayName">
<English>Ambiance Sounds [ACE]</English> <English>Ambiance Sounds [ACE]</English>
@ -14,6 +15,7 @@
<Spanish>[ACE] Sonidos ambiente</Spanish> <Spanish>[ACE] Sonidos ambiente</Spanish>
<German>Umgebungsgeräusche [ACE]</German> <German>Umgebungsgeräusche [ACE]</German>
<Czech>Zvuky prostředí [ACE]</Czech> <Czech>Zvuky prostředí [ACE]</Czech>
<Portuguese>[ACE] Sons ambientes</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_MissionModules_AmbianceSounds_soundFiles_DisplayName"> <Key ID="STR_ACE_MissionModules_AmbianceSounds_soundFiles_DisplayName">
<English>Sounds</English> <English>Sounds</English>
@ -21,6 +23,7 @@
<Spanish>Sonidos</Spanish> <Spanish>Sonidos</Spanish>
<German>Sounds</German> <German>Sounds</German>
<Czech>Zvuky</Czech> <Czech>Zvuky</Czech>
<Portuguese>Sons</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_MissionModules_AmbianceSounds_soundFiles_Description"> <Key ID="STR_ACE_MissionModules_AmbianceSounds_soundFiles_Description">
<English>Class names of the ambiance sounds to be played. Seperated by ','</English> <English>Class names of the ambiance sounds to be played. Seperated by ','</English>
@ -28,6 +31,7 @@
<Spanish>Class names de los sonidos ambiente que se reproducirán. Separados por ','</Spanish> <Spanish>Class names de los sonidos ambiente que se reproducirán. Separados por ','</Spanish>
<German>Klassennamen der Umgebungsgeräusche, die abgespielt werden sollen. Getrennt durch ","</German> <German>Klassennamen der Umgebungsgeräusche, die abgespielt werden sollen. Getrennt durch ","</German>
<Czech>Class names zvuků prostředí, které budou přehrány. Oddělené ',' </Czech> <Czech>Class names zvuků prostředí, které budou přehrány. Oddělené ',' </Czech>
<Portuguese>Nomes de classe dos sons de ambiente para serem reproduzidos. Separados por ","</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_MissionModules_AmbianceSounds_minimalDistance_DisplayName"> <Key ID="STR_ACE_MissionModules_AmbianceSounds_minimalDistance_DisplayName">
<English>Minimal Distance</English> <English>Minimal Distance</English>
@ -35,6 +39,7 @@
<Spanish>Distancia mínima</Spanish> <Spanish>Distancia mínima</Spanish>
<German>Mindestabstand</German> <German>Mindestabstand</German>
<Czech>Minimální vzdálenost</Czech> <Czech>Minimální vzdálenost</Czech>
<Portuguese>Distância mínima</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_MissionModules_AmbianceSounds_minimalDistance_Description"> <Key ID="STR_ACE_MissionModules_AmbianceSounds_minimalDistance_Description">
<English>Used for calculating a random position and sets the minimal distance between the players and the played sound file(s)</English> <English>Used for calculating a random position and sets the minimal distance between the players and the played sound file(s)</English>
@ -42,6 +47,7 @@
<Spanish>Usado para calcular una posición aleatoria y establecer la distancia mínima entre los jugadores y los ficheros de sonido reproducidos</Spanish> <Spanish>Usado para calcular una posición aleatoria y establecer la distancia mínima entre los jugadores y los ficheros de sonido reproducidos</Spanish>
<German>Wird verwendet, um eine zufällige Position zu bestimmen und setzt den Mindestabstand zwischen Spielern und der/den abzuspielenden Sounddatei(en) fest</German> <German>Wird verwendet, um eine zufällige Position zu bestimmen und setzt den Mindestabstand zwischen Spielern und der/den abzuspielenden Sounddatei(en) fest</German>
<Czech>Používá se pro výpočet náhodné pozice a určuje minimální vzdálenost mezi hráči a přehrávaným zvukem.</Czech> <Czech>Používá se pro výpočet náhodné pozice a určuje minimální vzdálenost mezi hráči a přehrávaným zvukem.</Czech>
<Portuguese>Usada para calcular uma posição aleatória e definir a distância mínima entre os jogadores e os arquivos de sons que estão sendo reproduzidos.</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_MissionModules_AmbianceSounds_maximalDistance_DisplayName"> <Key ID="STR_ACE_MissionModules_AmbianceSounds_maximalDistance_DisplayName">
<English>Maximum Distance</English> <English>Maximum Distance</English>
@ -49,6 +55,7 @@
<Spanish>Distancia máxima</Spanish> <Spanish>Distancia máxima</Spanish>
<German>Maximalabstand</German> <German>Maximalabstand</German>
<Czech>Maximální vzdálenost</Czech> <Czech>Maximální vzdálenost</Czech>
<Portuguese>Distância máxima</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_MissionModules_AmbianceSounds_maximalDistance_Description"> <Key ID="STR_ACE_MissionModules_AmbianceSounds_maximalDistance_Description">
<English>Used for calculating a random position and sets the maximum distance between the players and the played sound file(s)</English> <English>Used for calculating a random position and sets the maximum distance between the players and the played sound file(s)</English>
@ -56,6 +63,7 @@
<Spanish>Usado para calcular una posición aleatoria y establecer la distancia máxima entre los jugadores y los ficheros de sonido reproducidos</Spanish> <Spanish>Usado para calcular una posición aleatoria y establecer la distancia máxima entre los jugadores y los ficheros de sonido reproducidos</Spanish>
<German>Wird verwendet, um eine zufällige Position zu bestimmen und setzt den Maximalabstand zwischen Spielern und der/den abzuspielenden Sounddatei(en) fest</German> <German>Wird verwendet, um eine zufällige Position zu bestimmen und setzt den Maximalabstand zwischen Spielern und der/den abzuspielenden Sounddatei(en) fest</German>
<Czech>Používá se pro výpočet náhodné pozice a určuje maximální vzdálenost mezi hráči a přehrávaným zvukem.</Czech> <Czech>Používá se pro výpočet náhodné pozice a určuje maximální vzdálenost mezi hráči a přehrávaným zvukem.</Czech>
<Portuguese>Usado para calcular uma posição aleatória e definir uma distância máxima entre os jogadores e os arquivos de sons que estão sendo reproduzidos.</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_MissionModules_AmbianceSounds_minimalDelay_DisplayName"> <Key ID="STR_ACE_MissionModules_AmbianceSounds_minimalDelay_DisplayName">
<English>Minimal Delay</English> <English>Minimal Delay</English>
@ -63,6 +71,7 @@
<Spanish>Retraso mínimo</Spanish> <Spanish>Retraso mínimo</Spanish>
<German>Minimale Verzögerung</German> <German>Minimale Verzögerung</German>
<Czech>Minimální prodleva</Czech> <Czech>Minimální prodleva</Czech>
<Portuguese>Atraso mínimo</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_MissionModules_AmbianceSounds_minimalDelay_Description"> <Key ID="STR_ACE_MissionModules_AmbianceSounds_minimalDelay_Description">
<English>Minimal delay between sounds played</English> <English>Minimal delay between sounds played</English>
@ -70,6 +79,7 @@
<Spanish>Retraso mínimo entre los sonidos reproducidos</Spanish> <Spanish>Retraso mínimo entre los sonidos reproducidos</Spanish>
<German>Minimale Verzögerung zwischen abzuspielenden Sounds</German> <German>Minimale Verzögerung zwischen abzuspielenden Sounds</German>
<Czech>Minimální prodleva mezi přehrávanými zvuky</Czech> <Czech>Minimální prodleva mezi přehrávanými zvuky</Czech>
<Portuguese>Atraso mínimo entre os sons reproduzidos</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_MissionModules_AmbianceSounds_maximalDelay_DisplayName"> <Key ID="STR_ACE_MissionModules_AmbianceSounds_maximalDelay_DisplayName">
<English>Maximum Delay</English> <English>Maximum Delay</English>
@ -77,6 +87,7 @@
<Spanish>Retraso máximo</Spanish> <Spanish>Retraso máximo</Spanish>
<German>Maximale Verzögerung</German> <German>Maximale Verzögerung</German>
<Czech>Maximální prodleva</Czech> <Czech>Maximální prodleva</Czech>
<Portuguese>Atraso máximo</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_MissionModules_AmbianceSounds_maximalDelay_Description"> <Key ID="STR_ACE_MissionModules_AmbianceSounds_maximalDelay_Description">
<English>Maximum delay between sounds played</English> <English>Maximum delay between sounds played</English>
@ -84,6 +95,7 @@
<Spanish>Retraso máximo entre los sonidos reproducidos</Spanish> <Spanish>Retraso máximo entre los sonidos reproducidos</Spanish>
<German>Maximale Verzögerung zwischen abzuspielenden Sounds</German> <German>Maximale Verzögerung zwischen abzuspielenden Sounds</German>
<Czech>Maximální prodleva mezi přehrávanými zvuky</Czech> <Czech>Maximální prodleva mezi přehrávanými zvuky</Czech>
<Portuguese>Atraso máximo entre os sons reproduzidos</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_MissionModules_AmbianceSounds_followPlayers_DisplayName"> <Key ID="STR_ACE_MissionModules_AmbianceSounds_followPlayers_DisplayName">
<English>Follow Players</English> <English>Follow Players</English>
@ -91,6 +103,7 @@
<Spanish>Seguir jugadores</Spanish> <Spanish>Seguir jugadores</Spanish>
<German>Spielern folgen</German> <German>Spielern folgen</German>
<Czech>Následovat hráče</Czech> <Czech>Následovat hráče</Czech>
<Portuguese>Seguir jogadores</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_MissionModules_AmbianceSounds_followPlayers_Description"> <Key ID="STR_ACE_MissionModules_AmbianceSounds_followPlayers_Description">
<English>Follow players. If set to false, loop will play sounds only nearby logic position.</English> <English>Follow players. If set to false, loop will play sounds only nearby logic position.</English>
@ -98,6 +111,7 @@
<Spanish>Seguir jugadores. Si esta desabilitado (false), se reproducirán sonidos en bucle solo cerca de la posición lógica.</Spanish> <Spanish>Seguir jugadores. Si esta desabilitado (false), se reproducirán sonidos en bucle solo cerca de la posición lógica.</Spanish>
<German>Spielern folgen. Wenn auf falsch gesetzt, werden Sounds nur in der Nähe des Logikmoduls abgespielt.</German> <German>Spielern folgen. Wenn auf falsch gesetzt, werden Sounds nur in der Nähe des Logikmoduls abgespielt.</German>
<Czech>Následuj hráče. Pokud je FALSE, smyčka zvuku bude přehrávána na nejbližší pozici logiki.</Czech> <Czech>Následuj hráče. Pokud je FALSE, smyčka zvuku bude přehrávána na nejbližší pozici logiki.</Czech>
<Portuguese>Segue os jogadores. Se esta desabilitado (falso), o loop reproduzirá os sons somente perto de sua posição lógica.</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_MissionModules_AmbianceSounds_soundVolume_DisplayName"> <Key ID="STR_ACE_MissionModules_AmbianceSounds_soundVolume_DisplayName">
<English>Volume</English> <English>Volume</English>
@ -105,6 +119,7 @@
<Spanish>Volumen</Spanish> <Spanish>Volumen</Spanish>
<German>Lautstärke</German> <German>Lautstärke</German>
<Czech>Hlasitost</Czech> <Czech>Hlasitost</Czech>
<Portuguese>Volume</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_MissionModules_AmbianceSounds_soundVolume_Description"> <Key ID="STR_ACE_MissionModules_AmbianceSounds_soundVolume_Description">
<English>The volume of the sounds played</English> <English>The volume of the sounds played</English>
@ -112,6 +127,7 @@
<Spanish>Volumen de los sonidos reproducidos</Spanish> <Spanish>Volumen de los sonidos reproducidos</Spanish>
<German>Lautstärke der abzuspielenden Sounds</German> <German>Lautstärke der abzuspielenden Sounds</German>
<Czech>Hlasitost přehrávaného zvuku</Czech> <Czech>Hlasitost přehrávaného zvuku</Czech>
<Portuguese>O volume em que os sons serão reproduzidos</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_MissionModules_AmbianceSounds_Description"> <Key ID="STR_ACE_MissionModules_AmbianceSounds_Description">
<English>Ambiance sounds loop (synced across MP)</English> <English>Ambiance sounds loop (synced across MP)</English>
@ -119,6 +135,7 @@
<Spanish>Bucle de sonidos ambiente (sincronizados en MP)</Spanish> <Spanish>Bucle de sonidos ambiente (sincronizados en MP)</Spanish>
<German>Umgebungsgeräusch-Schleife (im MP synchronisiert)</German> <German>Umgebungsgeräusch-Schleife (im MP synchronisiert)</German>
<Czech>Smyčka okkolního zvuku (synchronizováno v MP)</Czech> <Czech>Smyčka okkolního zvuku (synchronizováno v MP)</Czech>
<Portuguese>Loop de sons ambientes (sincronizados através do MP)</Portuguese>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -9,7 +9,7 @@ class CfgVehicles {
statement = QUOTE(_this call FUNC(rangeTableOpen)); statement = QUOTE(_this call FUNC(rangeTableOpen));
priority = 0; priority = 0;
icon = QUOTE(PATHTOF(UI\icon_rangeTable.paa)); icon = QUOTE(PATHTOF(UI\icon_rangeTable.paa));
exceptions[] = {"notOnMap", "isNotInside"}; exceptions[] = {"notOnMap", "isNotInside", "isNotSitting"};
}; };
}; };
}; };

View File

@ -55,6 +55,7 @@
<Spanish>Ajustes MK6</Spanish> <Spanish>Ajustes MK6</Spanish>
<German>MK6-Einstellungen</German> <German>MK6-Einstellungen</German>
<Czech>MK6 - Nastavení</Czech> <Czech>MK6 - Nastavení</Czech>
<Portuguese>Ajustes do MK6</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Mk6Mortar_airResistanceEnabled_DisplayName"> <Key ID="STR_ACE_Mk6Mortar_airResistanceEnabled_DisplayName">
<English>Air Resistance</English> <English>Air Resistance</English>
@ -62,6 +63,7 @@
<Spanish>Resistencia al aire</Spanish> <Spanish>Resistencia al aire</Spanish>
<German>Luftwiderstand</German> <German>Luftwiderstand</German>
<Czech>Odpor vzduchu</Czech> <Czech>Odpor vzduchu</Czech>
<Portuguese>Resistência do Ar</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Mk6Mortar_airResistanceEnabled_Description"> <Key ID="STR_ACE_Mk6Mortar_airResistanceEnabled_Description">
<English>For Player Shots, Model Air Resistance and Wind Effects</English> <English>For Player Shots, Model Air Resistance and Wind Effects</English>
@ -69,6 +71,7 @@
<Spanish>Para disparos del jugador, modelo de resistencia al aire y efectos de viento</Spanish> <Spanish>Para disparos del jugador, modelo de resistencia al aire y efectos de viento</Spanish>
<German>Für Spielerschüsse, Luftwiderstand und Windeffekte</German> <German>Für Spielerschüsse, Luftwiderstand und Windeffekte</German>
<Czech>Pro hráčovu střelbu, Model odporu vzduchu a povětrných podmínek</Czech> <Czech>Pro hráčovu střelbu, Model odporu vzduchu a povětrných podmínek</Czech>
<Portuguese>Para disparos do jogador, modelo de resistência de ar e efeitos de vento</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Mk6Mortar_allowComputerRangefinder_DisplayName"> <Key ID="STR_ACE_Mk6Mortar_allowComputerRangefinder_DisplayName">
<English>Allow MK6 Computer</English> <English>Allow MK6 Computer</English>
@ -76,6 +79,7 @@
<Spanish>Habilitar ordenador del MK6</Spanish> <Spanish>Habilitar ordenador del MK6</Spanish>
<German>Erlaube MK6-Computer</German> <German>Erlaube MK6-Computer</German>
<Czech>MK6 - Povolit počítač</Czech> <Czech>MK6 - Povolit počítač</Czech>
<Portuguese>Permitir computador do MK6</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Mk6Mortar_allowComputerRangefinder_Description"> <Key ID="STR_ACE_Mk6Mortar_allowComputerRangefinder_Description">
<English>Show the Computer and Rangefinder (these NEED to be removed if you enable air resistance)</English> <English>Show the Computer and Rangefinder (these NEED to be removed if you enable air resistance)</English>
@ -83,6 +87,7 @@
<Spanish>Muestra el ordenador y el medidor de distancia (DEBEN ser quitados si se activa la resistecia al aire)</Spanish> <Spanish>Muestra el ordenador y el medidor de distancia (DEBEN ser quitados si se activa la resistecia al aire)</Spanish>
<German>Zeige den Computer und den Entfernungsmesser an (diese MÜSSEN entfernt werden, wenn der Luftwiderstand aktiviert ist)</German> <German>Zeige den Computer und den Entfernungsmesser an (diese MÜSSEN entfernt werden, wenn der Luftwiderstand aktiviert ist)</German>
<Czech>Zobrazit počítač a dálkoměr (toto MUSÍ být odstraněno pokud je zapnut odpor vzduchu)</Czech> <Czech>Zobrazit počítač a dálkoměr (toto MUSÍ být odstraněno pokud je zapnut odpor vzduchu)</Czech>
<Portuguese>Mostra o computador e o medidor de distância (estes DEVEM ser removidos se você habilitar resistência do ar)</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Mk6Mortar_allowCompass_DisplayName"> <Key ID="STR_ACE_Mk6Mortar_allowCompass_DisplayName">
<English>Allow MK6 Compass</English> <English>Allow MK6 Compass</English>
@ -90,6 +95,7 @@
<Spanish>Habilitar brujula del MK6</Spanish> <Spanish>Habilitar brujula del MK6</Spanish>
<German>Erlaube MK6-Kompass</German> <German>Erlaube MK6-Kompass</German>
<Czech>MK6 - Povolit kompas</Czech> <Czech>MK6 - Povolit kompas</Czech>
<Portuguese>Permitir bússula do MK6</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Mk6Mortar_allowCompass_Description"> <Key ID="STR_ACE_Mk6Mortar_allowCompass_Description">
<English>Show the MK6 Digital Compass</English> <English>Show the MK6 Digital Compass</English>
@ -97,12 +103,14 @@
<Spanish>Muestra la brujula digital en el MK6</Spanish> <Spanish>Muestra la brujula digital en el MK6</Spanish>
<German>Zeige MK6-Digitaler-Kompass</German> <German>Zeige MK6-Digitaler-Kompass</German>
<Czech>MK6 - Zobrazit digitální kompas</Czech> <Czech>MK6 - Zobrazit digitální kompas</Czech>
<Portuguese>Mostra a bússula digital do MK6</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Mk6Mortar_Module_Description"> <Key ID="STR_ACE_Mk6Mortar_Module_Description">
<English></English> <English></English>
<Polish>Moduł ten pozwala dostosować ustawienia moździerza MK6.</Polish> <Polish>Moduł ten pozwala dostosować ustawienia moździerza MK6.</Polish>
<German>Dieses Modul erlaubt das Einstellen des MK6-Mörsers.</German> <German>Dieses Modul erlaubt das Einstellen des MK6-Mörsers.</German>
<Czech>Tento modul umožňuje nastavení minometu MK6.</Czech> <Czech>Tento modul umožňuje nastavení minometu MK6.</Czech>
<Portuguese>Este módulo permite que você ajuste o morteiro MK6.</Portuguese>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -26,12 +26,8 @@
_function = missionNamespace getvariable _function; _function = missionNamespace getvariable _function;
}; };
if (_isGlobal) then { if (_isGlobal || isServer) then {
[_logic, [], true] call _function; [_logic, (synchronizedObjects _logic), true] call _function;
} else {
if (isServer) then {
[_logic, [], true] call _function;
};
}; };
if !(_isPersistent) then { if !(_isPersistent) then {

View File

@ -6,6 +6,7 @@
<Polish>MX-2A</Polish> <Polish>MX-2A</Polish>
<Spanish>MX-2A</Spanish> <Spanish>MX-2A</Spanish>
<Czech>MX-2A</Czech> <Czech>MX-2A</Czech>
<Portuguese>MX-2A</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_MX2A_Description"> <Key ID="STR_ACE_MX2A_Description">
<English>Thermal imaging device</English> <English>Thermal imaging device</English>
@ -13,6 +14,7 @@
<Polish>Monokular termowizyjny</Polish> <Polish>Monokular termowizyjny</Polish>
<Spanish>Dispositivo de imagen térmica</Spanish> <Spanish>Dispositivo de imagen térmica</Spanish>
<Czech>Termální dalekohled</Czech> <Czech>Termální dalekohled</Czech>
<Portuguese>Dispositivo de imagem térmica</Portuguese>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -115,6 +115,7 @@
<Spanish>Etiquetas de nombre</Spanish> <Spanish>Etiquetas de nombre</Spanish>
<German>Namensanzeigen</German> <German>Namensanzeigen</German>
<Czech>Jmenovky</Czech> <Czech>Jmenovky</Czech>
<Portuguese>Etiquetas de nome</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_NameTags_PlayerNamesViewDistance_DisplayName"> <Key ID="STR_ACE_NameTags_PlayerNamesViewDistance_DisplayName">
<English>Player Names View Dist.</English> <English>Player Names View Dist.</English>
@ -122,6 +123,7 @@
<Spanish>Distancia de vision para nombres de jugadores</Spanish> <Spanish>Distancia de vision para nombres de jugadores</Spanish>
<German>Spielernamen-Distanz</German> <German>Spielernamen-Distanz</German>
<Czech>Vzdálenost zobrazení jména hráčů</Czech> <Czech>Vzdálenost zobrazení jména hráčů</Czech>
<Portuguese>Distância de visão dos nomes dos jogadores</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_NameTags_PlayerNamesViewDistance_Description"> <Key ID="STR_ACE_NameTags_PlayerNamesViewDistance_Description">
<English>Distance in meters at which player names are shown. Default: 5</English> <English>Distance in meters at which player names are shown. Default: 5</English>
@ -129,6 +131,7 @@
<Spanish>Distancia en metros a la que se muestran los nombres de los jugadores. Por defecto: 5</Spanish> <Spanish>Distancia en metros a la que se muestran los nombres de los jugadores. Por defecto: 5</Spanish>
<German>Distanz in Metern bei der Spielernamen angezeigt werden. Standard: 5</German> <German>Distanz in Metern bei der Spielernamen angezeigt werden. Standard: 5</German>
<Czech>Vzdálenost v metrech pro zobrazení jména. Výchozí: 5</Czech> <Czech>Vzdálenost v metrech pro zobrazení jména. Výchozí: 5</Czech>
<Portuguese>Distância em metros que os nomes dos jogadores são mostrados. Padrão: 5</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_NameTags_showNamesForAI_DisplayName"> <Key ID="STR_ACE_NameTags_showNamesForAI_DisplayName">
<English>Show name tags for AI?</English> <English>Show name tags for AI?</English>
@ -136,6 +139,7 @@
<Spanish>¿Mostrar nombres para la IA?</Spanish> <Spanish>¿Mostrar nombres para la IA?</Spanish>
<German>Zeige Namensanzeigen für KI?</German> <German>Zeige Namensanzeigen für KI?</German>
<Czech>Zobrazit jmenovky pro AI?</Czech> <Czech>Zobrazit jmenovky pro AI?</Czech>
<Portuguese>Mostrar nomes para IA?</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_NameTags_showNamesForAI_Description"> <Key ID="STR_ACE_NameTags_showNamesForAI_Description">
<English>Show the name and rank tags for friendly AI units? Default: Do not force</English> <English>Show the name and rank tags for friendly AI units? Default: Do not force</English>
@ -143,6 +147,7 @@
<Spanish>Muestra etiquetas de nombre y rango para las unidades IA amigas? Por defecto: No forzar</Spanish> <Spanish>Muestra etiquetas de nombre y rango para las unidades IA amigas? Por defecto: No forzar</Spanish>
<German>Zeige den Namen und Rang für freundliche KI-Einheiten? Standard: nicht erwzingen</German> <German>Zeige den Namen und Rang für freundliche KI-Einheiten? Standard: nicht erwzingen</German>
<Czech>Zobrazit jména a hodnosti pro spřátelené AI jednotky? Výchozí: Nevynucovat</Czech> <Czech>Zobrazit jména a hodnosti pro spřátelené AI jednotky? Výchozí: Nevynucovat</Czech>
<Portuguese>Mostra o nome e patente para unidades IA aliadas? Padrão: Não forçar</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_NameTags_DoNotForce"> <Key ID="STR_ACE_NameTags_DoNotForce">
<English>Do Not Force</English> <English>Do Not Force</English>
@ -150,6 +155,7 @@
<Spanish>No forzar</Spanish> <Spanish>No forzar</Spanish>
<German>Nicht erzwingen</German> <German>Nicht erzwingen</German>
<Czech>Nevynucovat</Czech> <Czech>Nevynucovat</Czech>
<Portuguese>Não forçar</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_NameTags_ForceHide"> <Key ID="STR_ACE_NameTags_ForceHide">
<English>Force Hide</English> <English>Force Hide</English>
@ -157,6 +163,7 @@
<Spanish>Ocultar forzado</Spanish> <Spanish>Ocultar forzado</Spanish>
<German>Verstecken erzwingen</German> <German>Verstecken erzwingen</German>
<Czech>Vynuceno skrýt</Czech> <Czech>Vynuceno skrýt</Czech>
<Portuguese>Ocultar forçado</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_NameTags_ForceShow"> <Key ID="STR_ACE_NameTags_ForceShow">
<English>Force Show</English> <English>Force Show</English>
@ -164,6 +171,7 @@
<Spanish>Mostrar forzado</Spanish> <Spanish>Mostrar forzado</Spanish>
<German>Anzeigen erzwingen</German> <German>Anzeigen erzwingen</German>
<Czech>Vynuceno zobrazit</Czech> <Czech>Vynuceno zobrazit</Czech>
<Portuguese>Mostrar forçado</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_NameTags_showVehicleCrewInfo_DisplayName"> <Key ID="STR_ACE_NameTags_showVehicleCrewInfo_DisplayName">
<English>Show crew info?</English> <English>Show crew info?</English>
@ -171,6 +179,7 @@
<Spanish>¿Mostrar información de la tripulación?</Spanish> <Spanish>¿Mostrar información de la tripulación?</Spanish>
<German>Zeige Besatzungsinfo?</German> <German>Zeige Besatzungsinfo?</German>
<Czech>Zobrazit informace o posádce?</Czech> <Czech>Zobrazit informace o posádce?</Czech>
<Portuguese>Mostrar informação de tripulação?</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_NameTags_showVehicleCrewInfo_Description"> <Key ID="STR_ACE_NameTags_showVehicleCrewInfo_Description">
<English>Show vehicle crew info, or by default allows players to choose it on their own. Default: Do Not Force</English> <English>Show vehicle crew info, or by default allows players to choose it on their own. Default: Do Not Force</English>
@ -178,6 +187,7 @@
<Spanish>Muestra información de la tripulación, o por defecto permite a los jugadores elegirlo. Por defecto: No forzar</Spanish> <Spanish>Muestra información de la tripulación, o por defecto permite a los jugadores elegirlo. Por defecto: No forzar</Spanish>
<German>Zeige Fahrzeugbesatzungsinfo oder erlaube Spielern es auszuwählen. Standard: nicht erzwingen.</German> <German>Zeige Fahrzeugbesatzungsinfo oder erlaube Spielern es auszuwählen. Standard: nicht erzwingen.</German>
<Czech>Zobrazit informace o posádce, nebo nechat aby si hráč vybral sám. Výchozí: Nevynucovat </Czech> <Czech>Zobrazit informace o posádce, nebo nechat aby si hráč vybral sám. Výchozí: Nevynucovat </Czech>
<Portuguese>Mostrar informações de tripulação ou por padrão permitir a escolha dos jogadores. Padrão: Não forçar.</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_NameTags_showCursorTagForVehicles_DisplayName"> <Key ID="STR_ACE_NameTags_showCursorTagForVehicles_DisplayName">
<English>Show for Vehicles</English> <English>Show for Vehicles</English>
@ -185,6 +195,7 @@
<Spanish>Mostrar para vehiculos</Spanish> <Spanish>Mostrar para vehiculos</Spanish>
<German>Zeige bei Fahrzeugen</German> <German>Zeige bei Fahrzeugen</German>
<Czech>Zobrazit pro vozidla</Czech> <Czech>Zobrazit pro vozidla</Czech>
<Portuguese>Mostrar para veículos</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_NameTags_showCursorTagForVehicles_Description"> <Key ID="STR_ACE_NameTags_showCursorTagForVehicles_Description">
<English>Show cursor NameTag for vehicle commander (only if client has name tags enabled)Default: No</English> <English>Show cursor NameTag for vehicle commander (only if client has name tags enabled)Default: No</English>
@ -192,6 +203,7 @@
<Spanish>Muestra etiquetas de nombre en el cursor para el comandante del vehiculo (solo si el cliente tiene las etiquetas de nombre activadas) Por defecto: No</Spanish> <Spanish>Muestra etiquetas de nombre en el cursor para el comandante del vehiculo (solo si el cliente tiene las etiquetas de nombre activadas) Por defecto: No</Spanish>
<German>Zeige Maus-Namensanzeigen für Fahrzeugkommandanten (nur wenn der Client Namensanzeigen aktiviert hat). Standard: Nein</German> <German>Zeige Maus-Namensanzeigen für Fahrzeugkommandanten (nur wenn der Client Namensanzeigen aktiviert hat). Standard: Nein</German>
<Czech>Zobrazit jmenovky pro velitele vozidla (pouze pokud má klient jmenovky povolené). Výchozí: Ne</Czech> <Czech>Zobrazit jmenovky pro velitele vozidla (pouze pokud má klient jmenovky povolené). Výchozí: Ne</Czech>
<Portuguese>Mostrar o nome no cursor para o comandante do veículo (somente se o cliente tiver etiquetas de nomes ativada). Padrão: Não</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_NameTags_Module_Description"> <Key ID="STR_ACE_NameTags_Module_Description">
<English>This module allows you to customize settings and range of Name Tags.</English> <English>This module allows you to customize settings and range of Name Tags.</English>
@ -199,6 +211,7 @@
<German>Dieses Modul erlaubt die Einstellungen der Anzeigenamen zu verändern.</German> <German>Dieses Modul erlaubt die Einstellungen der Anzeigenamen zu verändern.</German>
<Spanish>Este módulo permite personalizar la configuración y la distancia de las Etiquetas de nombre.</Spanish> <Spanish>Este módulo permite personalizar la configuración y la distancia de las Etiquetas de nombre.</Spanish>
<Czech>Tento modul umožňuje si přizpůsobit nastavení a vzdálenost jmenovky.</Czech> <Czech>Tento modul umožňuje si přizpůsobit nastavení a vzdálenost jmenovky.</Czech>
<Portuguese>Este módulo permite que você personalize as configurações e distâncias de etiquetas de nome.</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_NameTags_Disabled"> <Key ID="STR_ACE_NameTags_Disabled">
<English>Disabled</English> <English>Disabled</English>
@ -206,6 +219,7 @@
<Spanish>Desactivado</Spanish> <Spanish>Desactivado</Spanish>
<German>Deaktiviert</German> <German>Deaktiviert</German>
<Czech>Zakázáno</Czech> <Czech>Zakázáno</Czech>
<Portuguese>Desativado</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_NameTags_Enabled"> <Key ID="STR_ACE_NameTags_Enabled">
<English>Enabled</English> <English>Enabled</English>
@ -213,6 +227,7 @@
<Spanish>Activado</Spanish> <Spanish>Activado</Spanish>
<German>Aktiviert</German> <German>Aktiviert</German>
<Czech>Povoleno</Czech> <Czech>Povoleno</Czech>
<Portuguese>Ativado</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_NameTags_OnlyCursor"> <Key ID="STR_ACE_NameTags_OnlyCursor">
<English>Only on Cursor</English> <English>Only on Cursor</English>
@ -220,6 +235,7 @@
<Spanish>Solo cursor</Spanish> <Spanish>Solo cursor</Spanish>
<German>Nur bei Maus</German> <German>Nur bei Maus</German>
<Czech>Pouze na kurzor</Czech> <Czech>Pouze na kurzor</Czech>
<Portuguese>Somente no cursor</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_NameTags_OnlyKeypress"> <Key ID="STR_ACE_NameTags_OnlyKeypress">
<English>Only on Keypress</English> <English>Only on Keypress</English>
@ -227,6 +243,7 @@
<Spanish>Solo al pulsar tecla</Spanish> <Spanish>Solo al pulsar tecla</Spanish>
<German>Nur bei Tastendruck</German> <German>Nur bei Tastendruck</German>
<Czech>Pouze na klávesu</Czech> <Czech>Pouze na klávesu</Czech>
<Portuguese>Somente em tecla ativada</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_NameTags_OnlyCursorAndKeypress"> <Key ID="STR_ACE_NameTags_OnlyCursorAndKeypress">
<English>Only on Cursor and Keypress</English> <English>Only on Cursor and Keypress</English>
@ -234,24 +251,28 @@
<Spanish>En cursor y al pulsar tecla</Spanish> <Spanish>En cursor y al pulsar tecla</Spanish>
<German>Nur Maus und Tastendruck</German> <German>Nur Maus und Tastendruck</German>
<Czech>Pouze na kurzor a klávesu</Czech> <Czech>Pouze na kurzor a klávesu</Czech>
<Portuguese>Somente em cursor ou tecla ativada</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_NameTags_ForceShowOnlyCursor"> <Key ID="STR_ACE_NameTags_ForceShowOnlyCursor">
<English>Force Show Only on Cursor</English> <English>Force Show Only on Cursor</English>
<Polish>Wymuś pod kursorem</Polish> <Polish>Wymuś pod kursorem</Polish>
<Spanish>Forzar mostrar solo en el cursor</Spanish> <Spanish>Forzar mostrar solo en el cursor</Spanish>
<Czech>Vynuceno zobrazit pouze na kurzor</Czech> <Czech>Vynuceno zobrazit pouze na kurzor</Czech>
<Portuguese>Forçar mostrar somente no cursor</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_NameTags_ForceShowOnlyKeypress"> <Key ID="STR_ACE_NameTags_ForceShowOnlyKeypress">
<English>Force Show Only on Keypress</English> <English>Force Show Only on Keypress</English>
<Polish>Wymuś po wciśnięciu klawisza</Polish> <Polish>Wymuś po wciśnięciu klawisza</Polish>
<Spanish>Forzar mostrar solo al pulsar tecla</Spanish> <Spanish>Forzar mostrar solo al pulsar tecla</Spanish>
<Czech>Vynuceno zobrazit pouze na klávesu</Czech> <Czech>Vynuceno zobrazit pouze na klávesu</Czech>
<Portuguese>Forçar somente mostrar em tecla ativada</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_NameTags_ForceShowOnlyCursorAndKeypress"> <Key ID="STR_ACE_NameTags_ForceShowOnlyCursorAndKeypress">
<English>Force Show Only on Cursor and Keypress</English> <English>Force Show Only on Cursor and Keypress</English>
<Polish>Wymuś pod kursorem i po wciśnięciu klawisza</Polish> <Polish>Wymuś pod kursorem i po wciśnięciu klawisza</Polish>
<Spanish>Forzar mostrar en el cursor y al pulsar tecla</Spanish> <Spanish>Forzar mostrar en el cursor y al pulsar tecla</Spanish>
<Czech>Vynuceno zobrazit pouze na kurzor a klávesu</Czech> <Czech>Vynuceno zobrazit pouze na kurzor a klávesu</Czech>
<Portuguese>Forçar mostrar somente em cursor e tecla ativada</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_NameTags_NameTagSettings"> <Key ID="STR_ACE_NameTags_NameTagSettings">
<English>Use Nametag settings</English> <English>Use Nametag settings</English>
@ -259,6 +280,7 @@
<Spanish>Usar ajustes de etiquetas de nombre</Spanish> <Spanish>Usar ajustes de etiquetas de nombre</Spanish>
<German>Verwende Namenanzeigen</German> <German>Verwende Namenanzeigen</German>
<Czech>Použít nastavení jmenovky</Czech> <Czech>Použít nastavení jmenovky</Czech>
<Portuguese>Usar ajustes de etiquetas de nome</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_NameTags_AlwaysShowAll"> <Key ID="STR_ACE_NameTags_AlwaysShowAll">
<English>Always Show All</English> <English>Always Show All</English>
@ -266,30 +288,35 @@
<Spanish>Mostrar siempre todo</Spanish> <Spanish>Mostrar siempre todo</Spanish>
<German>Immer alle zeigen</German> <German>Immer alle zeigen</German>
<Czech>Vždy zobrazit vše</Czech> <Czech>Vždy zobrazit vše</Czech>
<Portuguese>Sempre mostrar tudo</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_NameTags_ShowPlayerNames_Desc"> <Key ID="STR_ACE_NameTags_ShowPlayerNames_Desc">
<English>Show player names and set their activation. Default: Enabled</English> <English>Show player names and set their activation. Default: Enabled</English>
<Polish>Opcja ta pozwala dostosować sposób wyświetlania imion nad głowami graczy. Opcja "Tylko po wciśnięciu klawisza" wyświetla imiona tylko przytrzymania klawisza "Modyfikator" dostępnego w menu ustawień addonów -&gt; ACE3.</Polish> <Polish>Opcja ta pozwala dostosować sposób wyświetlania imion nad głowami graczy. Opcja "Tylko po wciśnięciu klawisza" wyświetla imiona tylko przytrzymania klawisza "Modyfikator" dostępnego w menu ustawień addonów -&gt; ACE3.</Polish>
<Spanish>Mostrar nombres de los jugadores y establecer su activación. Predeterminado: Habilitado</Spanish> <Spanish>Mostrar nombres de los jugadores y establecer su activación. Predeterminado: Habilitado</Spanish>
<Czech>Zobrazit jména hráčů a nastavit jejich aktivaci. Výchozí: Povoleno</Czech> <Czech>Zobrazit jména hráčů a nastavit jejich aktivaci. Výchozí: Povoleno</Czech>
<Portuguese>Mostrar os nomes dos jogadores e definir sua ativação. Padrão: Ativado</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_NameTags_ShowSoundWaves_Desc"> <Key ID="STR_ACE_NameTags_ShowSoundWaves_Desc">
<English>Effect of sound waves above the heads of speaking players after holding the PTT key. This option works with TFAR and ACRE2.</English> <English>Effect of sound waves above the heads of speaking players after holding the PTT key. This option works with TFAR and ACRE2.</English>
<Polish>Opcja ta pozwala dostosować sposób wyświetlania efektu fal dźwiękowych nad głowami mówiących graczy, wyświetlanych po przytrzymaniu klawisza PTT. Opcja ta współpracuje z TFAR oraz ACRE2.</Polish> <Polish>Opcja ta pozwala dostosować sposób wyświetlania efektu fal dźwiękowych nad głowami mówiących graczy, wyświetlanych po przytrzymaniu klawisza PTT. Opcja ta współpracuje z TFAR oraz ACRE2.</Polish>
<Spanish>Efecto de ondas sonoras encima de las cabezas de los jugadores que hablan después de mantener la tecla PTT. Esta opción funciona con TFAR y ACRE2.</Spanish> <Spanish>Efecto de ondas sonoras encima de las cabezas de los jugadores que hablan después de mantener la tecla PTT. Esta opción funciona con TFAR y ACRE2.</Spanish>
<Czech>Efekt zvukových vln nad hlavami hráčů když mluví skrz PTT klávesu. Tato volba funguje s TFAR a ACRE2.</Czech> <Czech>Efekt zvukových vln nad hlavami hráčů když mluví skrz PTT klávesu. Tato volba funguje s TFAR a ACRE2.</Czech>
<Portuguese>Efeito de ondas sonoras acima das cabeças dos jogadores que falam depois mantendo pressionada a tecla PTT. Esta opção funciona com TFAR e ACRE2.</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_NameTags_TagSize_Name"> <Key ID="STR_ACE_NameTags_TagSize_Name">
<English>Nametags Size</English> <English>Nametags Size</English>
<Polish>Rozmiar imion</Polish> <Polish>Rozmiar imion</Polish>
<Spanish>Tamaño de las Etiquetas de nombre</Spanish> <Spanish>Tamaño de las Etiquetas de nombre</Spanish>
<Czech>Velikost jmenovky</Czech> <Czech>Velikost jmenovky</Czech>
<Portuguese>Tamanho das etiquetas de nome</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_NameTags_TagSize_Description"> <Key ID="STR_ACE_NameTags_TagSize_Description">
<English>Text and Icon Size Scaling</English> <English>Text and Icon Size Scaling</English>
<Polish>Skalowanie tekstu oraz ikon</Polish> <Polish>Skalowanie tekstu oraz ikon</Polish>
<Spanish>Escala del texto y el icono</Spanish> <Spanish>Escala del texto y el icono</Spanish>
<Czech>Velikost textu a ikon</Czech> <Czech>Velikost textu a ikon</Czech>
<Portuguese>Escala de tamanho dos ícones e textos</Portuguese>
</Key> </Key>
</Package> </Package>
</Project> </Project>

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