Merge branch 'master' of https://github.com/acemod/ACE3 into feature/switchToLogMacros

Conflicts:
	addons/common/XEH_postInit.sqf
This commit is contained in:
Michael Braun 2015-09-01 08:45:59 +02:00
commit 035b3432c5
130 changed files with 3027 additions and 2682 deletions

View File

@ -1,4 +1,4 @@
# ACE 3 CONTRIBUTOR LIST
# ACE3 CONTRIBUTOR LIST
# If you contributed, but are not listed here, contact me:
# koffeinflummi@gmail.com
#

View File

@ -3,75 +3,75 @@
</p>
<p align="center">
<a href="https://github.com/acemod/ACE3/releases">
<img src="https://img.shields.io/badge/Version-3.2.1-blue.svg" alt="ACE3 version">
<img src="https://img.shields.io/badge/Version-3.2.1-blue.svg" alt="ACE3 Version">
</a>
<a href="https://github.com/acemod/ACE3/releases/download/v3.2.1/ace3_3.2.1.zip">
<img src="http://img.shields.io/badge/Download-56.5_MB-green.svg" alt="ACE3 download">
<img src="http://img.shields.io/badge/Download-56.5_MB-green.svg" alt="ACE3 Download">
</a>
<a href="https://github.com/acemod/ACE3/issues">
<img src="http://img.shields.io/github/issues-raw/acemod/ACE3.svg?label=Issues" alt="ACE3 issues">
<img src="http://img.shields.io/github/issues-raw/acemod/ACE3.svg?label=Issues" alt="ACE3 Issues">
</a>
<a href="http://forums.bistudio.com/showthread.php?191716-ACE3-A-collaborative-merger-between-AGM-CSE-and-ACE&p=2935435&viewfull=1#post2935435">
<img src="https://img.shields.io/badge/BIF-Thread-lightgrey.svg" alt="BIF thread">
<a href="https://forums.bistudio.com/topic/181341-ace3-a-collaborative-merger-between-agm-cse-and-ace/?p=2859670">
<img src="https://img.shields.io/badge/BIF-Thread-lightgrey.svg" alt="BIF Thread">
</a>
<a href="https://github.com/acemod/ACE3/blob/master/LICENSE">
<img src="http://img.shields.io/badge/License-GPLv2-red.svg" alt="ACE3 license">
<img src="http://img.shields.io/badge/License-GPLv2-red.svg" alt="ACE3 License">
</a>
</p>
<p align="center"><sup><strong>Requires the latest version of <a href="http://www.armaholic.com/page.php?id=18767">CBA A3</a>. Visit us on <a href="https://www.facebook.com/ACE3Mod">Facebook</a> | <a href="https://www.youtube.com/c/ACE3Mod">YouTube</a> | <a href="https://twitter.com/ACE3Mod">Twitter</a> | <a href="http://www.reddit.com/r/arma/search?q=ACE&restrict_sr=on&sort=new&t=all">Reddit</a></strong></sup></p>
<p align="center"><sup><strong>Requires the latest version of <a href="https://github.com/CBATeam/CBA_A3/releases">CBA A3</a>. Visit us on <a href="https://www.facebook.com/ACE3Mod">Facebook</a> | <a href="https://www.youtube.com/c/ACE3Mod">YouTube</a> | <a href="https://twitter.com/ACE3Mod">Twitter</a> | <a href="http://www.reddit.com/r/arma/search?q=ACE&restrict_sr=on&sort=new&t=all">Reddit</a></strong></sup></p>
**ACE3** is a joint effort by the teams behind **ACE2**, **AGM** and **CSE** to improve the realism and authenticity of Arma 3.
The project is entirely **open-source** and all contributions are welcome. Feel free to maintain your own custom version, so long as the changes you make are open to the public in accordance with the GNU General Public License ([GPLv2](https://github.com/acemod/ACE3/blob/master/LICENSE)).
The mod is **built modularly**, so almost any included PBO can be easily removed from the configuration. This way, a team can maintain its own tailored version of ACE by simply excluding any components they don't need, or those possibly in conflict with other add-ons. Modules themselves, e.g. the medical system, also include various customization options, allowing mission designers to tweak the overall experience.
The mod is **built modularly**, so almost any included PBO can be easily removed from the configuration. This way, a team can maintain its own tailored version of ACE3 by simply excluding any components they don't need, or those possibly in conflict with other mods. Modules themselves, e.g. the medical system, also include various customization options, allowing mission designers to tweak the overall experience.
### Core features
* Brand new 3D interaction/action system
* Performance and reliability framework
* Focus on modularity and customization
* New flexible client and server settings & configuration
* Improved medical system with various levels (basic/advanced) focus on gameplay/realism
* Proper & consistent network-synced weather
* Wind and weather-based ballistics
* Captivity system
* Explosives system, including different trigger types
* Map screen improvements marker placement and map tools
* Advanced missile guidance and laser designation
- Brand new 3D interaction/action system
- Performance and reliability framework
- Focus on modularity and customization
- New flexible client and server settings & configuration
- Improved medical system with various levels (basic/advanced) focus on gameplay/realism
- Proper & consistent network-synced weather
- Wind and weather-based ballistics
- Captivity system
- Explosives system, including different trigger types
- Map screen improvements marker placement and map tools
- Advanced missile guidance and laser designation
#### Additional features
* Carrying and dragging
* Realistic names for vehicles and weapons
* A fire control system (FCS) for armored vehicles and helicopters
* Realistic ballistics/FCS calculated in C/C++ extensions
* Backblast area and overpressure simulation
* Disposable launchers
* Realistic G-forces
* Vehicle locking
* Realistic night and thermal vision modes
* Magazine repacking
* Realistic weapon overheating mechanic
* Combat deafness (temporary loss of hearing) simulation
* Improved ragdoll physics
* Improved interactions for AARs and ammo bearers
* Adjustable sniper scopes
* No idle animation with lowered weapon
* No talking player avatar
* Jumping over obstacles, climbing over walls and cutting down fences
* Vector, MicroDAGR and Kestrel devices<br>
- Carrying and dragging
- Realistic names for vehicles and weapons
- A fire control system (FCS) for armored vehicles and helicopters
- Realistic ballistics/FCS calculated in C/C++ extensions
- Backblast area and overpressure simulation
- Disposable launchers
- Realistic G-forces
- Vehicle locking
- Realistic night and thermal vision modes
- Magazine repacking
- Realistic weapon overheating mechanic
- Combat deafness (temporary loss of hearing) simulation
- Improved ragdoll physics
- Improved interactions for AARs and ammo bearers
- Adjustable sniper scopes
- No idle animation with lowered weapon
- No talking player avatar
- Jumping over obstacles, climbing over walls and cutting down fences
- Vector, MicroDAGR and Kestrel devices<br>
***and much more...***
### Guides & how-tos
If you installed ACE3 but have trouble understanding how it all works, or where to start, read this first:
* [Getting started](http://ace3mod.com/wiki/user/getting-started.html)
- [Getting started](http://ace3mod.com/wiki/user/getting-started.html)
#### Contributing
You can help out with the ongoing development by looking for potential bugs in our code base, or by contributing new features. To contribute something to ACE, simply fork this repository and submit your pull requests for review by other collaborators. Remember to add yourself to the author array of any PBO you will be editing and the [`AUTHORS.txt`](https://github.com/acemod/ACE3/blob/master/AUTHORS.txt) file; including a valid email address.
You can help out with the ongoing development by looking for potential bugs in our code base, or by contributing new features. To contribute something to ACE3, simply fork this repository and submit your pull requests for review by other collaborators. Remember to add yourself to the author array of any PBO you will be editing and the [`AUTHORS.txt`](https://github.com/acemod/ACE3/blob/master/AUTHORS.txt) file; including a valid email address.
Please, use our [Issue Tracker](https://github.com/acemod/ACE3/issues) to report a bug, propose a feature, or suggest changes to the existing ones. See also:
* [How to report an issue](http://ace3mod.com/wiki/user/how-to-report-an-issue.html)
* [How to make a feature request](http://ace3mod.com/wiki/user/how-to-make-a-feature-request.html)
- [How to report an issue](http://ace3mod.com/wiki/user/how-to-report-an-issue.html)
- [How to make a feature request](http://ace3mod.com/wiki/user/how-to-make-a-feature-request.html)
#### Testing & building
To help us test the latest development changes, download our master branch ([directly](https://github.com/acemod/ACE3/archive/master.zip), or [with git](https://help.github.com/articles/fetching-a-remote/)), then assemble a test build:
* [Setting up the development environment](http://ace3mod.com/wiki/development/setting-up-the-development-environment.html) step-by-step instructions on how to properly setup and build a version of ACE for testing purposes.
- [Setting up the development environment](http://ace3mod.com/wiki/development/setting-up-the-development-environment.html) step-by-step instructions on how to properly setup and build a version of ACE3 for testing purposes.

View File

@ -32,6 +32,7 @@
<German>Erweiterte Ballistik</German>
<Czech>Pokročilá balistika</Czech>
<Portuguese>Balística avançada</Portuguese>
<Hungarian>Fejlett ballisztika</Hungarian>
</Key>
<Key ID="STR_ACE_Advanced_Ballistics_enabled_DisplayName">
<English>Advanced Ballistics</English>
@ -40,6 +41,7 @@
<German>Erweiterte Ballistik</German>
<Czech>Pokročilá balistika</Czech>
<Portuguese>Balística avançada</Portuguese>
<Hungarian>Fejlett ballisztika</Hungarian>
</Key>
<Key ID="STR_ACE_Advanced_Ballistics_enabled_Description">
<English>Enables advanced ballistics</English>
@ -48,6 +50,7 @@
<German>Aktiviert die erweiterte Ballistik</German>
<Czech>Aktivuje pokročilou balistiku</Czech>
<Portuguese>Ativa balística avançada</Portuguese>
<Hungarian>Engedélyezi a fejlett ballisztikát</Hungarian>
</Key>
<Key ID="STR_ACE_Advanced_Ballistics_simulateForSnipers_DisplayName">
<English>Enabled For Snipers</English>
@ -56,6 +59,7 @@
<German>Für Scharfschützen aktiviert</German>
<Czech>Povoleno pro odstřelovače</Czech>
<Portuguese>Ativar para caçadores</Portuguese>
<Hungarian>Mesterlövészeknek engedélyezve</Hungarian>
</Key>
<Key ID="STR_ACE_Advanced_Ballistics_simulateForSnipers_Description">
<English>Enables advanced ballistics for non local snipers (when using high power optics)</English>
@ -64,6 +68,7 @@
<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>
<Portuguese>Ativa balística avançada para caçadores não locais (quando usando miras telescópicas)</Portuguese>
<Hungarian>Engedélyezi a fejlett ballisztikát nem-helyi mesterlövészeknek (nagy-teljesítményű optika használatakor)</Hungarian>
</Key>
<Key ID="STR_ACE_Advanced_Ballistics_simulateForGroupMembers_DisplayName">
<English>Enabled For Group Members</English>
@ -72,6 +77,7 @@
<German>Für Gruppenmitglieder aktiviert</German>
<Czech>Povoleno pro členy skupiny</Czech>
<Portuguese>Ativada para membros do grupo</Portuguese>
<Hungarian>Csoporttagoknak engedélyezve</Hungarian>
</Key>
<Key ID="STR_ACE_Advanced_Ballistics_simulateForGroupMembers_Description">
<English>Enables advanced ballistics for non local group members</English>
@ -80,6 +86,7 @@
<German>Aktiviert die erweiterte Ballistik für nicht lokale Gruppenmitglieder</German>
<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>
<Hungarian>Engedélyezi a fejlett ballisztikát nem-helyi csoporttagoknak</Hungarian>
</Key>
<Key ID="STR_ACE_Advanced_Ballistics_simulateForEveryone_DisplayName">
<English>Enabled For Everyone</English>
@ -88,6 +95,7 @@
<German>Für jeden aktiviert</German>
<Czech>Povoleno pro všechny</Czech>
<Portuguese>Ativada para todos</Portuguese>
<Hungarian>Mindenkinek engedélyezve</Hungarian>
</Key>
<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>
@ -96,6 +104,7 @@
<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>
<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>
<Hungarian>Engedélyezi a fejlett ballisztikát az összes nem-helyi játékosnak (ez a funkció leronthatja a teljesítményt intenzív többjátékos tűzharcok alatt)</Hungarian>
</Key>
<Key ID="STR_ACE_Advanced_Ballistics_alwaysSimulateForGroupMembers_DisplayName">
<English>Always Enabled For Group Members</English>
@ -104,6 +113,7 @@
<German>Für Gruppenmitglieder immer aktiviert</German>
<Czech>Vždy povoleno pro členy skupiny</Czech>
<Portuguese>Sempre ativada para membros do grupo</Portuguese>
<Hungarian>Mindig engedélyezve csoporttagoknak</Hungarian>
</Key>
<Key ID="STR_ACE_Advanced_Ballistics_alwaysSimulateForGroupMembers_Description">
<English>Always enables advanced ballistics when a group member fires</English>
@ -112,6 +122,7 @@
<German>Aktiviert die erweiterte Ballistik immer, wenn ein Gruppenmitglied schießt</German>
<Czech>Aktivuje pokročilou balistiku pro členy skupiny</Czech>
<Portuguese>Sempre ative balística avançada quando um membro do grupo disparar</Portuguese>
<Hungarian>Mindig engedélyezi a fejlett ballisztikát, ha egy csoporttag tüzel</Hungarian>
</Key>
<Key ID="STR_ACE_Advanced_Ballistics_disabledInFullAutoMod_DisplayName">
<English>Disabled In FullAuto Mode</English>
@ -120,6 +131,7 @@
<German>Beim vollautomatischen Feuern deaktiviert</German>
<Czech>Zakázáno v automatickém režimu střelby</Czech>
<Portuguese>Desabilitar no modo automático</Portuguese>
<Hungarian>Automata módban letiltva</Hungarian>
</Key>
<Key ID="STR_ACE_Advanced_Ballistics_disabledInFullAutoMod_Description">
<English>Disables the advanced ballistics during full auto fire</English>
@ -128,6 +140,7 @@
<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>
<Portuguese>Desabilitar a balística avançada durante fogo automático</Portuguese>
<Hungarian>Letiltja a fejlett ballisztikát automata tüzelés folyamán</Hungarian>
</Key>
<Key ID="STR_ACE_Advanced_Ballistics_ammoTemperatureEnabled_DisplayName">
<English>Enable Ammo Temperature Simulation</English>
@ -136,6 +149,7 @@
<German>Simulation der Munitionstemperatur aktivieren</German>
<Czech>Povolit simulaci teploty munice</Czech>
<Portuguese>Ativar simulação de temperatura de munição</Portuguese>
<Hungarian>Lőszer-hő szimuláció engedélyezése</Hungarian>
</Key>
<Key ID="STR_ACE_Advanced_Ballistics_ammoTemperatureEnabled_Description">
<English>Muzzle velocity varies with ammo temperature</English>
@ -144,6 +158,7 @@
<German>Munitionstemperatur hat Einfluss auf die Mündungsgeschwindigkeit</German>
<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>
<Hungarian>A kezdősebesség a lőszer hőmérsékletétől függően változó</Hungarian>
</Key>
<Key ID="STR_ACE_Advanced_Ballistics_barrelLengthInfluenceEnabled_DisplayName">
<English>Enable Barrel Length Simulation</English>
@ -152,6 +167,7 @@
<German>Simulation der Lauflänge aktivieren</German>
<Czech>Povolit simulaci délky hlavně</Czech>
<Portuguese>Ativar a simulação de comprimento do cano</Portuguese>
<Hungarian>Csőhossz-szimuláció engedélyezése</Hungarian>
</Key>
<Key ID="STR_ACE_Advanced_Ballistics_barrelLengthInfluenceEnabled_Description">
<English>Muzzle velocity varies with barrel length</English>
@ -160,6 +176,7 @@
<German>Lauflänge beeinflusst Mündungsgeschwindigkeit</German>
<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>
<Hungarian>A kezdősebesség a cső hosszától függően változó</Hungarian>
</Key>
<Key ID="STR_ACE_Advanced_Ballistics_bulletTraceEnabled_DisplayName">
<English>Enable Bullet Trace Effect</English>
@ -168,6 +185,7 @@
<German>Geschossspureffekt aktivieren</German>
<Czech>Povolit efekt trasírek</Czech>
<Portuguese>Ativa efeito traçante de projétil</Portuguese>
<Hungarian>Nyomkövető-effekt engedélyezése</Hungarian>
</Key>
<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>
@ -176,6 +194,7 @@
<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>
<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>
<Hungarian>Engedélyezi a nagy kaliberű lövedékek nyomának vizuális követését (csak nagy teljesítményű optikán keresztül látható)</Hungarian>
</Key>
<Key ID="STR_ACE_Advanced_Ballistics_simulationInterval_DisplayName">
<English>Simulation Interval</English>
@ -184,6 +203,7 @@
<German>Simulationsintervall</German>
<Czech>Interval simulace</Czech>
<Portuguese>Intervalo da simulação</Portuguese>
<Hungarian>Szimuláció intervalluma</Hungarian>
</Key>
<Key ID="STR_ACE_Advanced_Ballistics_simulationInterval_Description">
<English>Defines the interval between every calculation step</English>
@ -192,6 +212,7 @@
<German>Legt das Intervall zwischen den Berechnungsschritten fest</German>
<Czech>Určuje interval mezi každým výpočtem</Czech>
<Portuguese>Define o intervalo entre cada cálculo</Portuguese>
<Hungarian>Meghatározza a számítási lépések közötti időintervallumot</Hungarian>
</Key>
<Key ID="STR_ACE_Advanced_Ballistics_simulationRadius_DisplayName">
<English>Simulation Radius</English>
@ -200,6 +221,7 @@
<German>Simulationsradius</German>
<Czech>Rozsah simulace</Czech>
<Portuguese>Raio de simulação</Portuguese>
<Hungarian>Szimuláció hatóköre</Hungarian>
</Key>
<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>
@ -208,12 +230,14 @@
<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>
<Portuguese>Define o raio ao redor do jogador (em metros) onde a balística avançada será aplicada aos projéteis</Portuguese>
<Hungarian>Meghatározza a játékos körüli hatókört (méterben), ahol a lövedékek fejlett ballisztikát használnak</Hungarian>
</Key>
<Key ID="STR_ACE_Advanced_Ballistics_Description">
<English>This module enables advanced ballistics simulation - meaning the trajectory of projectiles is influenced by variables like air temperature, atmospheric pressure, humidity, gravity, the type of ammunition and the weapon from which it was fired.</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>
<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>
<Hungarian>Ez a modul engedélyezi a fejlett ballisztikai szimulációt - a lövedékek röppályáját befolyásolni fogja a levegő hőmérséklete, légnyomás, páratartalom, gravitáció, a lövedék fajtája, valamint a fegyver, amiből kilőtték a lövedéket.</Hungarian>
</Key>
</Package>
</Project>

View File

@ -8,3 +8,24 @@ class Extended_PostInit_EventHandlers {
clientInit = QUOTE( call COMPILE_FILE(XEH_clientInit) );
};
};
class Extended_GetIn_EventHandlers {
class All {
class ADDON {
getIn = QUOTE(_this call FUNC(handleGetIn));
};
};
};
class Extended_GetOut_EventHandlers {
class All {
class ADDON {
getOut = QUOTE(_this call FUNC(handleGetOut));
};
};
};
class Extended_Killed_EventHandlers {
class All {
class ADDON {
killed = QUOTE(_this call FUNC(handleKilled));
};
};
};

View File

@ -7,6 +7,9 @@ PREP(canAttach);
PREP(canDetach);
PREP(detach);
PREP(getChildrenAttachActions);
PREP(handleGetIn);
PREP(handleGetOut);
PREP(handleKilled);
PREP(placeApprove);
ADDON = true;

View File

@ -17,15 +17,14 @@
*/
#include "script_component.hpp"
private ["_itemVehClass", "_onAtachText", "_selfAttachPosition", "_attachedItem", "_tempObject", "_actionID", "_model"];
params ["_attachToVehicle","_unit","_args"];
params ["_attachToVehicle","_unit","_args", ["_silentScripted", false]];
_args params [["_itemClassname","", [""]]];
TRACE_3("params",_attachToVehicle,_unit,_itemClassname);
TRACE_4("params",_attachToVehicle,_unit,_itemClassname,_silentScripted);
private ["_itemVehClass", "_onAtachText", "_selfAttachPosition", "_attachedItem", "_tempObject", "_actionID", "_model"];
//Sanity Check (_unit has item in inventory, not over attach limit)
if ((_itemClassname == "") || {!(_this call FUNC(canAttach))}) exitWith {ERROR("Tried to attach, but check failed");};
_selfAttachPosition = [_unit, [-0.05, 0, 0.12], "rightshoulder"];
if ((_itemClassname == "") || {(!_silentScripted) && {!(_this call FUNC(canAttach))}}) exitWith {ERROR("Tried to attach, but check failed");};
_itemVehClass = getText (configFile >> "CfgWeapons" >> _itemClassname >> "ACE_Attachable");
_onAtachText = getText (configFile >> "CfgWeapons" >> _itemClassname >> "displayName");
@ -40,12 +39,13 @@ if (_itemVehClass == "") exitWith {ERROR("no ACE_Attachable for Item");};
_onAtachText = format [localize LSTRING(Item_Attached), _onAtachText];
if (_unit == _attachToVehicle) then { //Self Attachment
_unit removeItem _itemClassname; // Remove item
_attachedItem = _itemVehClass createVehicle [0,0,0];
_attachedItem attachTo _selfAttachPosition;
[_onAtachText] call EFUNC(common,displayTextStructured);
_attachToVehicle setVariable [QGVAR(Objects), [_attachedItem], true];
_attachToVehicle setVariable [QGVAR(ItemNames), [_itemClassname], true];
_attachedItem attachTo [_unit, [-0.05, 0, 0.12], "rightshoulder"];
if (!_silentScripted) then {
_unit removeItem _itemClassname; // Remove item
[_onAtachText] call EFUNC(common,displayTextStructured);
};
_unit setVariable [QGVAR(attached), [[_attachedItem, _itemClassname]], true];
} else {
GVAR(placeAction) = PLACE_WAITING;

View File

@ -17,14 +17,17 @@
*/
#include "script_component.hpp"
private ["_attachLimit", "_attachedObjects","_playerPos"];
params ["_attachToVehicle","_player","_args"];
_args params [["_itemClassname","", [""]]];
TRACE_3("params",_attachToVehicle,_unit,_itemClassname);
TRACE_3("params",_attachToVehicle,_player,_itemClassname);
private ["_attachLimit", "_attachedObjects"];
_attachLimit = [6, 1] select (_player == _attachToVehicle);
_attachedObjects = _attachToVehicle getVariable [QGVAR(Objects), []];
_attachedObjects = _attachToVehicle getVariable [QGVAR(attached), []];
_playerPos = (ACE_player modelToWorldVisual (ACE_player selectionPosition "pilot"));
(canStand _player) && {(_attachToVehicle distance _player) < 7} && {alive _attachToVehicle} && {(count _attachedObjects) < _attachLimit} && {_itemClassname in ((itemsWithMagazines _player) + [""])};
((_player == _attachToVehicle) || {canStand _player}) &&
{(_attachToVehicle distance _player) < 7} &&
{alive _attachToVehicle} &&
{(count _attachedObjects) < _attachLimit} &&
{_itemClassname in ((itemsWithMagazines _player) + [""])};

View File

@ -16,25 +16,25 @@
*/
#include "script_component.hpp"
private ["_attachedObjects", "_inRange"];
params ["_attachToVehicle", "_unit"];
TRACE_2("params",_attachToVehicle,_unit);
_attachedObjects = _attachToVehicle getVariable [QGVAR(Objects), []];
_attachedList = _attachToVehicle getVariable [QGVAR(attached), []];
if ((count _attachedList) == 0) exitWith {false};
private ["_inRange"];
_inRange = false;
if (_unit == _attachToVehicle) then {
_inRange = count _attachedObjects > 0;
} else {
//Scan if unit is within range (using 2d distance)
private ["_unitPos", "_objectPos"];
_unitPos = getPos _unit;
_unitPos set [2,0];
{
_objectPos = getPos _x;
_objectPos set [2, 0];
if (_objectPos distance _unitPos < 4) exitWith {_inRange = true};
} forEach _attachedObjects;
};
{
_x params ["_xObject"];
if (isNull _xObject) exitWith {
TRACE_1("Null attached",_x);
_attachedList deleteAt _forEachIndex;
_attachToVehicle setVariable [QGVAR(attached), _attachedList, true];
};
if (((getPos _unit) distance2d (getPos _xObject)) < 4) exitWith {_inRange = true};
} forEach _attachedList;
canStand _unit && {_inRange} && {alive _attachToVehicle}
_inRange &&
{(_unit == _attachToVehicle) || {canStand _unit}} &&
{alive _attachToVehicle}

View File

@ -16,15 +16,12 @@
*/
#include "script_component.hpp"
private ["_attachedObjects", "_attachedItems", "_itemDisplayName",
"_attachedObject", "_attachedIndex", "_itemName", "_minDistance",
"_unitPos", "_objectPos"
];
params ["_attachToVehicle","_unit"],
TRACE_2("params",_attachToVehicle,_unit);
_attachedObjects = _attachToVehicle getVariable [QGVAR(Objects), []];
_attachedItems = _attachToVehicle getVariable [QGVAR(ItemNames), []];
private ["_attachedList", "_itemDisplayName", "_attachedObject", "_attachedIndex", "_itemName", "_minDistance"];
_attachedList = _attachToVehicle getVariable [QGVAR(attached), []];
_attachedObject = objNull;
_attachedIndex = -1;
@ -32,18 +29,17 @@ _itemName = "";
//Find closest attached object
_minDistance = 1000;
_unitPos = getPos _unit;
_unitPos set [2,0];
{
_objectPos = getPos _x;
_objectPos set [2, 0];
if (_objectPos distance _unitPos < _minDistance) then {
_minDistance = _objectPos distance _unitPos;
_attachedObject = _x;
_itemName = _attachedItems select _forEachIndex;
_x params ["_xObject", "_xItemName"];
if (((getPos _unit) distance2d (getPos _xObject)) < _minDistance) then {
_minDistance = ((getPos _unit) distance2d (getPos _xObject));
_attachedObject = _xObject;
_itemName = _xItemName;
_attachedIndex = _forEachIndex;
};
} forEach _attachedObjects;
} forEach _attachedList;
// Check if unit has an attached item
if (isNull _attachedObject || {_itemName == ""}) exitWith {ERROR("Could not find attached object")};
@ -68,10 +64,8 @@ if (toLower _itemName in ["b_ir_grenade", "o_ir_grenade", "i_ir_grenade"]) then
};
// Reset unit variables
_attachedObjects deleteAt _attachedIndex;
_attachedItems deleteAt _attachedIndex;
_attachToVehicle setVariable [QGVAR(Objects), _attachedObjects, true];
_attachToVehicle setVariable [QGVAR(ItemNames), _attachedItems, true];
_attachedList deleteAt _attachedIndex;
_attachToVehicle setVariable [QGVAR(attached), _attachedList, true];
// Display message
_itemDisplayName = getText (configFile >> "CfgWeapons" >> _itemName >> "displayName");

View File

@ -0,0 +1,38 @@
/*
* Author: PabstMirror
* Handles when a unit gets in to a vehicle.
*
* Arguments:
* 0: vehicle <OBJECT>
* 1: dunno <OBJECT>
* 2: unit <OBJECT>
*
* Return Value:
* None
*
* Example:
* [car2, x, player] call ACE_attach_fnc_handleGetIn
*
* Public: No
*/
#include "script_component.hpp"
if (!isServer) exitWith {};
params ["", "", "_unit"];
TRACE_1("params",_unit);
private ["_attachedList"];
_attachedList = _unit getVariable [QGVAR(attached), []];
if ((count _attachedList) == 0) exitWith {};
(_attachedList select 0) params ["_xObject"];
if (!isNull _xObject) then {
detach _xObject;
_xObject setPos ((getPos _unit) vectorAdd [0, 0, -1000]);
[{deleteVehicle (_this select 0)}, [_xObject], 2] call EFUNC(common,waitAndExecute);
(_attachedList select 0) set [0, objNull];
};
_unit setVariable [QGVAR(attached), _attachedList, true];

View File

@ -0,0 +1,35 @@
/*
* Author: PabstMirror
* Handles when a unit gets in to a vehicle.
*
* Arguments:
* 0: vehicle <OBJECT>
* 1: dunno <OBJECT>
* 2: unit <OBJECT>
*
* Return Value:
* None
*
* Example:
* [car2, x, player] call ACE_attach_fnc_handleGetOut
*
* Public: No
*/
#include "script_component.hpp"
if (!isServer) exitWith {};
params ["", "", "_unit"];
TRACE_1("params",_unit);
private ["_attachedList"];
_attachedList = _unit getVariable [QGVAR(attached), []];
if ((count _attachedList) == 0) exitWith {};
(_attachedList select 0) params ["_xObject", "_xItemName"];
if (isNull _xObject) then {
TRACE_1("null attached when exiting vehicle, scripted reattach",_xItemName);
_unit setVariable [QGVAR(attached), [], true];
[_unit, _unit, _xItemName, true] call FUNC(attach);
};

View File

@ -0,0 +1,39 @@
/*
* Author: PabstMirror
* Handles when vehicle or man is killed.
* Note: Runs where unit is local.
*
* Arguments:
* 0: DeadVehicle <OBJECT>
*
* Return Value:
* None
*
* Example:
* [bob1] call ACE_attach_fnc_handleKilled
*
* Public: No
*/
#include "script_component.hpp"
params ["_deadUnit"];
TRACE_1("params",_deadUnit);
private ["_attachedList"];
_attachedList = _deadUnit getVariable [QGVAR(attached), []];
if ((count _attachedList) == 0) exitWith {};
{
_x params ["_xObject"];
TRACE_2("detaching",_xObject,_deadUnit);
detach _xObject;
//If it's a vehicle, also delete the attached
if (!(_deadUnit isKindOf "CAManBase")) then {
_xObject setPos ((getPos _deadUnit) vectorAdd [0, 0, -1000]);
[{deleteVehicle (_this select 0)}, [_xObject], 2] call EFUNC(common,waitAndExecute);
};
} forEach _attachedList;
_deadUnit setVariable [QGVAR(attached), nil, true];

View File

@ -25,7 +25,7 @@
*/
#include "script_component.hpp"
private ["_startingOffset", "_startDistanceFromCenter", "_closeInUnitVector", "_closeInMax", "_closeInMin", "_closeInDistance", "_endPosTestOffset", "_endPosTest", "_doesIntersect", "_startingPosShifted", "_startASL", "_endPosShifted", "_endASL", "_attachedObject", "_currentObjects", "_currentItemNames"];
private ["_startingOffset", "_startDistanceFromCenter", "_closeInUnitVector", "_closeInMax", "_closeInMin", "_closeInDistance", "_endPosTestOffset", "_endPosTest", "_doesIntersect", "_startingPosShifted", "_startASL", "_endPosShifted", "_endASL", "_attachedObject", "_attachList"];
params ["_unit", "_attachToVehicle", "_itemClassname", "_itemVehClass", "_onAtachText", "_startingPosition"];
TRACE_6("params",_unit,_attachToVehicle,_itemClassname,_itemVehClass,_onAtachText,_startingPosition);
@ -87,12 +87,9 @@ _attachedObject attachTo [_attachToVehicle, _endPosTestOffset];
//Remove Item from inventory
_unit removeItem _itemClassname;
//Add Object to ACE_AttachedObjects and ACE_AttachedItemNames
_currentObjects = _attachToVehicle getVariable [QGVAR(Objects), []];
_currentObjects pushBack _attachedObject;
_attachToVehicle setVariable [QGVAR(Objects), _currentObjects, true];
_currentItemNames = _attachToVehicle getVariable [QGVAR(ItemNames), []];
_currentItemNames pushBack _itemClassname;
_attachToVehicle setVariable [QGVAR(ItemNames), _currentItemNames, true];
//Add Object to attached array
_attachList = _attachToVehicle getVariable [QGVAR(attached), []];
_attachList pushBack [_attachedObject, _itemClassname];
_attachToVehicle setVariable [QGVAR(attached), _attachList, true];
[_onAtachText] call EFUNC(common,displayTextStructured);

View File

@ -3,7 +3,6 @@
ADDON = false;
PREP(backpackOpened);
PREP(getBackpackAssignedUnit);
PREP(isBackpack);
PREP(onOpenInventory);

View File

@ -1,22 +0,0 @@
/*
* Author: commy2
*
* Returns the unit that has the given backpack object equipped.
*
* Argument:
* 0: Executing Unit (Object)
* 1: A backpack object (Object)
*
* Return value:
* Unit that has the backpack equipped. (Object)
*/
#include "script_component.hpp"
scopeName "main";
params ["_unit","_backpack"];
_target = objNull;
{
if (backpackContainer _x == _backpack) then {_target = _x; breakTo "main"};
} count nearestObjects [_unit, ["Man"], 5];
if (isNull _target) exitWith {ACE_Player};
_target

View File

@ -1,7 +1,7 @@
/*
* Author: commy2
*
* Handle the open inventory event. Display message on traget client.
* Handle the open inventory event. Display message on target client.
*
* Argument:
* Input from "InventoryOpened" eventhandler
@ -11,16 +11,17 @@
*/
#include "script_component.hpp"
private "_target";
params ["","_backpack"];
params ["_unit","_backpack"];
// exit if the target is not a backpack
if !([_backpack] call FUNC(isBackpack)) exitWith {};
// exit if the target is not a real backpack, i.e. parachute, static weapon bag etc.
if !([_backpack] call FUNC(isBackpack)) exitWith {false};
// get the unit that wears the backpack object
_target = _this call FUNC(getBackpackAssignedUnit);
private "_target";
_target = objectParent _backpack;
if (isNull _target) exitWith {false};
// raise event on target unit
["backpackOpened", _target, [_target, _backpack]] call EFUNC(common,targetEvent);

View File

@ -1599,6 +1599,7 @@
<German>[ACE] Munitionskiste</German>
<Czech>[ACE] Bedna s municí</Czech>
<Portuguese>[ACE] Caixa com suprimentos de munição</Portuguese>
<Hungarian>[ACE] Lőszeres láda</Hungarian>
</Key>
</Package>
</Project>

View File

@ -18,6 +18,11 @@ class CfgMovesBasic {
default = "ACE_AmovPercMstpSsurWnonDnon";
PutDown = "";
};
class ACE_CivilHandCuffedFFVActions: ACE_CivilStandHandcuffedActions {
stop = "ACE_HandcuffedFFV";
StopRelaxed = "ACE_HandcuffedFFV";
default = "ACE_HandcuffedFFV";
};
};
};
@ -55,6 +60,14 @@ class CfgMovesMaleSdr: CfgMovesBasic {
InterpolateTo[] = {"Unconscious",0.01,"ACE_AmovPercMstpSnonWnonDnon_AmovPercMstpScapWnonDnon",0.1};
};
//Handcuffed-FFV:
class ACE_HandcuffedFFV: ACE_AmovPercMstpScapWnonDnon {
file = "\A3\cargoposes_F_heli\anim\passenger_flatground_3idleunarmed.rtm";
actions = "ACE_CivilHandCuffedFFVActions";
ConnectTo[] = {};
};
//Surrender Anims:
class ACE_AmovPercMstpSnonWnonDnon_AmovPercMstpSsurWnonDnon: CutSceneAnimationBase {
actions = "ACE_CivilStandSurrenderActions";

View File

@ -12,17 +12,17 @@ class CfgVehicles {
exceptions[] = {};
icon = QUOTE(PATHTOF(UI\handcuff_ca.paa));
};
class ACE_RemoveHandcuffs {
displayName = CSTRING(ReleaseCaptive);
selection = "righthand";
distance = 2;
condition = QUOTE([ARR_2(_player, _target)] call FUNC(canRemoveHandcuffs));
statement = QUOTE([ARR_2(_player, _target)] call FUNC(doRemoveHandcuffs));
exceptions[] = {};
icon = QUOTE(PATHTOF(UI\handcuff_ca.paa));
};
class ACE_MainActions {
class ACE_RemoveHandcuffs {
displayName = CSTRING(ReleaseCaptive);
selection = "righthand";
distance = 2;
condition = QUOTE([ARR_2(_player, _target)] call FUNC(canRemoveHandcuffs));
statement = QUOTE([ARR_2(_player, _target)] call FUNC(doRemoveHandcuffs));
exceptions[] = {};
icon = QUOTE(PATHTOF(UI\handcuff_ca.paa));
};
class ACE_EscortCaptive {
displayName = CSTRING(EscortCaptive);
distance = 4;
@ -97,7 +97,7 @@ class CfgVehicles {
};
};
#define MACRO_LOADUNLOADCAPTIVE \
#define MACRO_LOADCAPTIVE \
class ACE_Actions { \
class ACE_MainActions { \
class GVAR(LoadCaptive) { \
@ -113,27 +113,27 @@ class CfgVehicles {
class LandVehicle;
class Car: LandVehicle {
MACRO_LOADUNLOADCAPTIVE
MACRO_LOADCAPTIVE
};
class Tank: LandVehicle {
MACRO_LOADUNLOADCAPTIVE
MACRO_LOADCAPTIVE
};
class Air;
class Helicopter: Air {
MACRO_LOADUNLOADCAPTIVE
MACRO_LOADCAPTIVE
};
class Plane: Air {
MACRO_LOADUNLOADCAPTIVE
MACRO_LOADCAPTIVE
};
class Ship;
class Ship_F: Ship {
MACRO_LOADUNLOADCAPTIVE
MACRO_LOADCAPTIVE
};
class StaticWeapon: LandVehicle {
MACRO_LOADUNLOADCAPTIVE
MACRO_LOADCAPTIVE
};
class Box_NATO_Support_F;

View File

@ -6,12 +6,11 @@
if (isServer) then {
addMissionEventHandler ["HandleDisconnect", {
PARAMS_1(_disconnectedPlayer);
params ["_disconnectedPlayer"];
private "_escortedUnit";
_escortedUnit = _disconnectedPlayer getVariable [QGVAR(escortedUnit), objNull];
if ((!isNull _escortedUnit) && {(attachedTo _escortedUnit) == _disconnectedPlayer}) then {
detach _escortedUnit;
//systemChat "debug: DC detach";
};
if (_disconnectedPlayer getVariable [QGVAR(isEscorting), false]) then {
_disconnectedPlayer setVariable [QGVAR(isEscorting), false, true];

View File

@ -16,6 +16,7 @@ PREP(doFriskPerson);
PREP(doLoadCaptive);
PREP(doRemoveHandcuffs);
PREP(doUnloadCaptive);
PREP(findEmptyNonFFVCargoSeat);
PREP(handleGetIn);
PREP(handleGetOut);
PREP(handleKilled);

View File

@ -11,28 +11,36 @@
* The return value <BOOL>
*
* Example:
* [player, bob] call ACE_captives_fnc_canLoadCaptive
* [player, bob, car] call ACE_captives_fnc_canLoadCaptive
*
* Public: No
*/
#include "script_component.hpp"
private ["_objects"];
params ["_unit", "_target","_vehicle"];
if (isNull _target) then {
_objects = attachedObjects _unit;
_objects = [_objects, {_this getVariable [QGVAR(isHandcuffed), false]}] call EFUNC(common,filter);
if ((count _objects) > 0) then {_target = _objects select 0;};
if ((isNull _target) && {_unit getVariable [QGVAR(isEscorting), false]}) then {
//Looking at a vehicle while escorting, get target from attached objects:
{
if (_x getVariable [QGVAR(isHandcuffed), false]) exitWith {
_target = _x;
};
} forEach (attachedObjects _unit);
};
if ((isNull _target) || {(vehicle _target) != _target} || {!(_target getVariable [QGVAR(isHandcuffed), false])}) exitWith {false};
if (isNull _vehicle) then {
_objects = nearestObjects [_unit, ["Car", "Tank", "Helicopter", "Plane", "Ship"], 10];
if ((count _objects) > 0) then {_vehicle = _objects select 0;};
//Looking at a captive unit, search for nearby vehicles with valid seats:
{
if ((_x emptyPositions "cargo") > 0) exitWith {
_vehicle = _x;
};
} forEach (nearestObjects [_unit, ["Car", "Tank", "Helicopter", "Plane", "Ship"], 10]);
} else {
//We have a vehicle picked, make sure it has empty seats:
if ((_vehicle emptyPositions "cargo") == 0) then {
_vehicle = objNull;
};
};
(!isNull _target)
&& {!isNull _vehicle}
&& {_unit getVariable [QGVAR(isEscorting), false]}
&& {_target getVariable [QGVAR(isHandcuffed), false]}
&& {_vehicle emptyPositions "cargo" > 0}
(!isNull _vehicle)

View File

@ -20,4 +20,5 @@ params ["_unit", "_target"];
//Unit is handcuffed and not currently being escorted
_target getVariable [QGVAR(isHandcuffed), false] &&
{isNull (attachedTo _target)}
{isNull (attachedTo _target)} &&
{(vehicle _target) == _target}

View File

@ -35,7 +35,9 @@ if (_state) then {
nil, 20, false, true, "", QUOTE(!isNull (GETVAR(_target,QGVAR(escortedUnit),objNull)))];
[{
EXPLODE_3_PVT((_this select 0),_unit,_target,_actionID);
params ["_args", "_pfID"];
_args params ["_unit", "_target", "_actionID"];
if (_unit getVariable [QGVAR(isEscorting), false]) then {
if (!alive _target || {!alive _unit} || {!canStand _target} || {!canStand _unit} || {_target getVariable ["ACE_isUnconscious", false]} || {_unit getVariable ["ACE_isUnconscious", false]} || {!isNull (attachedTo _unit)}) then {
_unit setVariable [QGVAR(isEscorting), false, true];

View File

@ -18,7 +18,6 @@
private ["_weapon", "_listedItemClasses", "_actions", "_allGear"];
PARAMS_2(_player,_unit);
params ["_player", "_unit"];
_weapon = currentWeapon _player;

View File

@ -1,6 +1,6 @@
/*
* Author: commy2
* Unit loads the target object into a vehicle.
* Unit loads the target object into a vehicle. (logic same as canLoadCaptive)
*
* Arguments:
* 0: Unit that wants to load a captive <OBJECT>
@ -17,24 +17,34 @@
*/
#include "script_component.hpp"
private "_objects";
params ["_unit", "_target","_vehicle"];
if (isNull _target) then {
_objects = attachedObjects _unit;
_objects = [_objects, {_this getVariable [QGVAR(isHandcuffed), false]}] call EFUNC(common,filter);
if ((count _objects) > 0) then {_target = _objects select 0;};
if ((isNull _target) && {_unit getVariable [QGVAR(isEscorting), false]}) then {
//Looking at a vehicle while escorting, get target from attached objects:
{
if (_x getVariable [QGVAR(isHandcuffed), false]) exitWith {
_target = _x;
};
} forEach (attachedObjects _unit);
};
if (isNull _target) exitWith {};
if ((isNull _target) || {(vehicle _target) != _target} || {!(_target getVariable [QGVAR(isHandcuffed), false])}) exitWith {ERROR("");};
if (isNull _vehicle) then {
_objects = nearestObjects [_unit, ["Car", "Tank", "Helicopter", "Plane", "Ship"], 10];
if ((count _objects) > 0) then {_vehicle = _objects select 0;};
//Looking at a captive unit, search for nearby vehicles with valid seats:
{
// if (([_x] call FUNC(findEmptyNonFFVCargoSeat)) != -1) exitWith {
if ((_x emptyPositions "cargo") > 0) exitWith {
_vehicle = _x;
};
} forEach (nearestObjects [_unit, ["Car", "Tank", "Helicopter", "Plane", "Ship"], 10]);
} else {
// if (([_vehicle] call FUNC(findEmptyNonFFVCargoSeat)) == -1) then {
if ((_vehicle emptyPositions "cargo") == 0) then {
_vehicle = objNull;
};
};
if (isNull _vehicle) exitWith {};
if ((!isNil "_target") && {!isNil "_vehicle"}) then {
_unit setVariable [QGVAR(isEscorting), false, true];
["MoveInCaptive", [_target], [_target, _vehicle]] call EFUNC(common,targetEvent);
};
if (isNull _vehicle) exitWith {ERROR("");};
_unit setVariable [QGVAR(isEscorting), false, true];
["MoveInCaptive", [_target], [_target, _vehicle]] call EFUNC(common,targetEvent);

View File

@ -0,0 +1,67 @@
/*
* Author: PabstMirror
* Finds a free cargo seat, searching non FFV first
*
* Arguments:
* 0: The Vehicle <OBJECT>
*
* Return Value:
* ARRAY [seat index <NUMBER>, is FFV <BOOL>]
*
* Example:
* [car1] call ACE_captives_fnc_findEmptyNonFFVCargoSeat
*
* Public: No
*/
#include "script_component.hpp"
params ["_vehicle"];
TRACE_1("params", _vehicle);
_vehicleConfig = configFile >> "CfgVehicles" >> (typeOf _vehicle);
_proxyOrder = getArray (_vehicleConfig >> "getInProxyOrder");
_transportSoldier = getNumber (_vehicleConfig >> "transportSoldier");
_realCargoCount = if (isArray (_vehicleConfig >> "getInProxyOrder")) then {count _proxyOrder} else {_transportSoldier};
//Find FFV turrets:
_ffvCargoIndexes = [];
{
_turretConfig = [_vehicleConfig, _x] call EFUNC(common,getTurretConfigPath);
_isCargoProxy = ((getText (_turretConfig >> "proxyType")) == "CPCargo") && {isNumber (_turretConfig >> "proxyIndex")};
if (_isCargoProxy) then {
_proxyCargoIndex = getNumber (_turretConfig >> "proxyIndex");
_cargoIndex = _proxyOrder find _proxyCargoIndex;
_ffvCargoIndexes pushBack _cargoIndex;
};
} forEach (allTurrets [_vehicle, true]);
//Find Empty Seats:
_occupiedSeats = [];
{
_x params ["", "", "_xIndex"];
if (_xIndex > -1) then {_occupiedSeats pushBack _xIndex;};
} forEach (fullCrew _vehicle);
TRACE_3("Searching for empty seat",_realCargoCount,_ffvCargoIndexes,_occupiedSeats);
_emptyCargoSeatReturn = [-1, false];
//First seach for non-ffv seats:
for "_index" from 0 to (_realCargoCount - 1) do {
if ((!(_index in _ffvCargoIndexes)) && {!(_index in _occupiedSeats)}) exitWith {
_emptyCargoSeatReturn = [_index, false];
};
};
//Only use FFV if none found:
if (_emptyCargoSeatReturn isEqualTo [-1, false]) then {
for "_index" from 0 to (_realCargoCount - 1) do {
if (!(_index in _occupiedSeats)) exitWith {
_emptyCargoSeatReturn = [_index, true];
};
};
};
_emptyCargoSeatReturn

View File

@ -4,8 +4,8 @@
*
* Arguments:
* 0: _vehicle <OBJECT>
* 2: dunno <OBJECT>
* 1: _unit <OBJECT>
* 1: dunno <OBJECT>
* 2: _unit <OBJECT>
*
* Return Value:
* The return value <BOOL>
@ -17,7 +17,8 @@
*/
#include "script_component.hpp"
params ["_vehicle", "_dontcare","_unit"];
params ["_vehicle", "","_unit"];
TRACE_2("params",_vehicle,_unit);
if (local _unit) then {
if (_unit getVariable [QGVAR(isEscorting), false]) then {
@ -27,4 +28,18 @@ if (local _unit) then {
if (_unit getVariable [QGVAR(isSurrendering), false]) then {
[_unit, false] call FUNC(setSurrender);
};
if (_unit getVariable [QGVAR(isHandcuffed), false]) then {
//Need to force animation for FFV turrets
_turretPath = [];
{
_x params ["_xUnit", "", "", "_xTurretPath"];
if (_unit == _xUnit) exitWith {_turretPath = _xTurretPath};
} forEach (fullCrew (vehicle _unit));
if (!(_turretPath isEqualTo [])) then {
TRACE_1("Setting FFV Handcuffed Animation",_turretPath);
[_unit, "ACE_HandcuffedFFV", 2] call EFUNC(common,doAnimation);
[_unit, "ACE_HandcuffedFFV", 1] call EFUNC(common,doAnimation);
};
};
};

View File

@ -4,8 +4,8 @@
*
* Arguments:
* 0: _vehicle <OBJECT>
* 2: dunno <OBJECT>
* 1: _unit <OBJECT>
* 1: dunno <OBJECT>
* 2: _unit <OBJECT>
*
* Return Value:
* The return value <BOOL>
@ -17,17 +17,21 @@
*/
#include "script_component.hpp"
params ["_vehicle", "_dontcare","_unit"];
params ["_vehicle", "", "_unit"];
TRACE_2("params",_vehicle,_unit);
if ((local _unit) && {_unit getVariable [QGVAR(isHandcuffed), false]}) then {
private ["_cargoIndex"];
_cargoIndex = _unit getVariable [QGVAR(CargoIndex), -1];
//If captive was not "unloaded", then move them back into the vehicle.
if (_cargoIndex != -1) exitWith {
if (_cargoIndex != -1) then {
//If captive was not "unloaded", then move them back into the vehicle.
TRACE_1("forcing back into vehicle",_cargoIndex);
_unit moveInCargo [_vehicle, _cargoIndex];
} else {
//Getting out of vehicle:
[_unit, "ACE_AmovPercMstpScapWnonDnon", 2] call EFUNC(common,doAnimation);
[_unit, "ACE_AmovPercMstpScapWnonDnon", 1] call EFUNC(common,doAnimation);
};
[_unit, "ACE_AmovPercMstpScapWnonDnon", 2] call EFUNC(common,doAnimation);
};

View File

@ -18,7 +18,7 @@
params ["_unit"];
// prevent players from throwing grenades (added to all units)
[_unit, "Throw", {((_this select 1) getVariable [QGVAR(isHandcuffed), false]) || {(_this select 1) getVariable [QGVAR(isSurrendering), false]}}, {}] call EFUNC(common,addActionEventhandler);
// [_unit, "Throw", {systemChat "a"; ((_this select 1) getVariable [QGVAR(isHandcuffed), false]) || {(_this select 1) getVariable [QGVAR(isSurrendering), false]}; true}, {systemChat "b";}] call EFUNC(common,addActionEventhandler);
if (local _unit) then {
// reset status on mission start

View File

@ -26,11 +26,11 @@ if (!_activated) exitWith {};
if (local _logic) then {
//Modules run before postInit can instal the event handler, so we need to wait a little bit
[{
PARAMS_1(_units);
params ["_units"];
{
["SetSurrendered", [_x], [_x, true]] call EFUNC(common,targetEvent);
} forEach _units;
}, [_units], 0.05, 0.05]call EFUNC(common,waitAndExecute);
}, [_units], 0.05]call EFUNC(common,waitAndExecute);
deleteVehicle _logic;
};

View File

@ -17,6 +17,7 @@
#include "script_component.hpp"
params ["_unit","_state"];
TRACE_2("params",_unit,_state);
if (!local _unit) exitwith {
ERROR("running setHandcuffed on remote unit");
@ -43,24 +44,47 @@ if (_state) then {
// fix anim on mission start (should work on dedicated servers)
[{
params ["_unit"];
if (_unit getVariable [QGVAR(isHandcuffed), false] && {vehicle _unit == _unit}) then {
if (!(_unit getVariable [QGVAR(isHandcuffed), false])) exitWith {};
if ((vehicle _unit) == _unit) then {
[_unit] call EFUNC(common,fixLoweredRifleAnimation);
[_unit, "ACE_AmovPercMstpScapWnonDnon", 1] call EFUNC(common,doAnimation);
} else {
[_unit, "ACE_HandcuffedFFV", 2] call EFUNC(common,doAnimation);
[_unit, "ACE_HandcuffedFFV", 1] call EFUNC(common,doAnimation);
};
//Adds an animation changed eh
//If we get a change in animation then redo the animation (handles people vaulting to break the animation chain)
private "_animChangedEHID";
_animChangedEHID = _unit addEventHandler ["AnimChanged", {
PARAMS_2(_unit,_newAnimation);
//Adds an animation changed eh
//If we get a change in animation then redo the animation (handles people vaulting to break the animation chain)
private "_animChangedEHID";
_animChangedEHID = _unit addEventHandler ["AnimChanged", {
params ["_unit", "_newAnimation"];
TRACE_2("AnimChanged",_unit,_newAnimation);
if (_unit == (vehicle _unit)) then {
if ((_newAnimation != "ACE_AmovPercMstpSsurWnonDnon") && {!(_unit getVariable ["ACE_isUnconscious", false])}) then {
TRACE_1("Handcuff animation interrupted",_newAnimation);
[_unit, "ACE_AmovPercMstpScapWnonDnon", 1] call EFUNC(common,doAnimation);
};
}];
_unit setVariable [QGVAR(handcuffAnimEHID), _animChangedEHID];
} else {
};
}, [_unit], 0.01, 0] call EFUNC(common,waitAndExecute);
_turretPath = [];
{
_x params ["_xUnit", "", "", "_xTurretPath"];
if (_unit == _xUnit) exitWith {_turretPath = _xTurretPath};
} forEach (fullCrew (vehicle _unit));
TRACE_1("turret Path",_turretPath);
if (_turretPath isEqualTo []) exitWith {};
TRACE_1("Handcuff (FFV) animation interrupted",_newAnimation);
[_unit, "ACE_HandcuffedFFV", 2] call EFUNC(common,doAnimation);
[_unit, "ACE_HandcuffedFFV", 1] call EFUNC(common,doAnimation);
};
}];
TRACE_2("Adding animChangedEH",_unit,_animChangedEHID);
_unit setVariable [QGVAR(handcuffAnimEHID), _animChangedEHID];
}, [_unit], 0.01] call EFUNC(common,waitAndExecute);
} else {
_unit setVariable [QGVAR(isHandcuffed), false, true];
[_unit, QGVAR(Handcuffed), false] call EFUNC(common,setCaptivityStatus);
@ -68,6 +92,7 @@ if (_state) then {
//remove AnimChanged EH
private "_animChangedEHID";
_animChangedEHID = _unit getVariable [QGVAR(handcuffAnimEHID), -1];
TRACE_1("removing animChanged EH",_animChangedEHID);
_unit removeEventHandler ["AnimChanged", _animChangedEHID];
_unit setVariable [QGVAR(handcuffAnimEHID), -1];

View File

@ -17,6 +17,7 @@
#include "script_component.hpp"
params ["_unit","_state"];
TRACE_2("params",_unit,_state);
if (!local _unit) exitwith {
ERROR("running surrender on remote unit");
@ -43,13 +44,13 @@ if (_state) then {
// fix anim on mission start (should work on dedicated servers)
[{
PARAMS_1(_unit);
params ["_unit"];
if (_unit getVariable [QGVAR(isSurrendering), false] && {(vehicle _unit) == _unit}) then {
//Adds an animation changed eh
//If we get a change in animation then redo the animation (handles people vaulting to break the animation chain)
private "_animChangedEHID";
_animChangedEHID = _unit addEventHandler ["AnimChanged", {
PARAMS_2(_unit,_newAnimation);
params ["_unit", "_newAnimation"];
if ((_newAnimation != "ACE_AmovPercMstpSsurWnonDnon") && {!(_unit getVariable ["ACE_isUnconscious", false])}) then {
TRACE_1("Surrender animation interrupted",_newAnimation);
[_unit, "ACE_AmovPercMstpSsurWnonDnon", 1] call EFUNC(common,doAnimation);
@ -57,7 +58,7 @@ if (_state) then {
}];
_unit setVariable [QGVAR(surrenderAnimEHID), _animChangedEHID];
};
}, [_unit], 0.01, 0] call EFUNC(common,waitAndExecute);
}, [_unit], 0.01] call EFUNC(common,waitAndExecute);
} else {
_unit setVariable [QGVAR(isSurrendering), false, true];
[_unit, QGVAR(Surrendered), false] call EFUNC(common,setCaptivityStatus);
@ -85,8 +86,8 @@ if (_state) then {
//spin up a PFEH, to watching animationState for the next 20 seconds to make sure we don't enter "hands up"
//Handles long animation chains
[{
PARAMS_2(_args,_pfID);
EXPLODE_2_PVT(_args,_unit,_maxTime);
params ["_args", "_pfID"];
_args params ["_unit", "_maxTime"];
//If waited long enough or they re-surrendered or they are unconscious, exit loop
if ((ACE_time > _maxTime) || {_unit getVariable [QGVAR(isSurrendering), false]} || {_unit getVariable ["ACE_isUnconscious", false]}) exitWith {
[_pfID] call CBA_fnc_removePerFrameHandler;

View File

@ -16,11 +16,17 @@
*/
#include "script_component.hpp"
params ["_target","_vehicle"];
TRACE_2("params",_target,_vehicle);
private ["_cargoIndex"];
params ["_target","_vehicle"];
_getSeat = [_vehicle] call FUNC(findEmptyNonFFVCargoSeat);
TRACE_1("free cargo seat",_getSeat);
_cargoIndex = _getSeat select 0;
if (_cargoIndex == -1) exitWith {ERROR("cargo index -1");};
_target moveInCargo [_vehicle, _cargoIndex];
_target assignAsCargoIndex [_vehicle, _cargoIndex];
_target moveInCargo _vehicle;
_target assignAsCargo _vehicle;
_cargoIndex = _vehicle getCargoIndex _target;
_target setVariable [QGVAR(CargoIndex), _cargoIndex, true];

View File

@ -16,8 +16,11 @@
#include "script_component.hpp"
params ["_unit"];
TRACE_1("params",_unit);
_unit setVariable [QGVAR(CargoIndex), -1, true];
moveOut _unit;
[_unit, "ACE_AmovPercMstpScapWnonDnon", 2] call EFUNC(common,doAnimation);
[_unit, "ACE_AmovPercMstpScapWnonDnon", 1] call EFUNC(common,doAnimation);
unassignVehicle _unit;

View File

@ -1,6 +1,8 @@
#define COMPONENT captives
#include "\z\ace\addons\main\script_mod.hpp"
// #define DEBUG_MODE_FULL
#ifdef DEBUG_ENABLED_CAPTIVES
#define DEBUG_MODE_FULL
#endif

View File

@ -164,6 +164,7 @@
<German>Einheit kapitulieren lassen</German>
<Czech>Vzdávající se jednotka</Czech>
<Portuguese>Fazer unidade se render</Portuguese>
<Hungarian>Egység kapitulálása</Hungarian>
</Key>
<Key ID="STR_ACE_Captives_ModuleSurrender_Description">
<English>Sync a unit to make them surrender.&lt;br /&gt;Source: ace_captives</English>
@ -172,6 +173,7 @@
<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>
<Portuguese>Sincroniza uma unidade para fazer com que ela se renda. &lt;br/&gt;Fonte: ace_captives</Portuguese>
<Hungarian>Egység szinkronizálása, hogy kapituláljon.&lt;br /&gt;Forrás: ace_captives</Hungarian>
</Key>
<Key ID="STR_ACE_Captives_ModuleSettings_DisplayName">
<English>Captives Settings</English>
@ -180,6 +182,7 @@
<Czech>Nastavení zajatce</Czech>
<German>Gefangenen-Einstellungen</German>
<Portuguese>Ajustes de prisioneiros</Portuguese>
<Hungarian>Fogoly-beállítások</Hungarian>
</Key>
<Key ID="STR_ACE_Captives_ModuleSettings_Description">
<English>Controls settings for surrender and cable ties</English>
@ -188,6 +191,7 @@
<Czech>Toto kontroluje nastavení kapitulace a pout</Czech>
<German>Einstellungen zur Kapitulation und Kabelbindern</German>
<Portuguese>Controla as configurações de rendição e abraçadeiras</Portuguese>
<Hungarian>Szabályozza a kapituláció és bilincselés beállításait</Hungarian>
</Key>
<Key ID="STR_ACE_Captives_ModuleSettings_handcuffSide_name">
<English>Can handcuff own side</English>
@ -196,6 +200,7 @@
<Czech>Může spoutat spolubojovníky</Czech>
<German>Kann Teamkollegen fesseln</German>
<Portuguese>Pode algemar o próprio lado</Portuguese>
<Hungarian>Saját oldal megbilincselhető</Hungarian>
</Key>
<Key ID="STR_ACE_Captives_ModuleSettings_handcuffSide_description">
<English>Can players cabletie units on their own side</English>
@ -204,6 +209,7 @@
<Czech>Mohou hráči spoutat jednotky na své straně</Czech>
<German>Können Spieler eigene Einheiten fesseln</German>
<Portuguese>Os jogadores podem algemar unidades do seu lado</Portuguese>
<Hungarian>A játékosok megkötözhetik-e a saját oldalukon lévő egységeket</Hungarian>
</Key>
<Key ID="STR_ACE_Captives_ModuleSettings_allowSurrender_name">
<English>Allow surrendering</English>
@ -212,6 +218,7 @@
<Czech>Povolit vzdávání</Czech>
<German>Kapitulation erlauben</German>
<Portuguese>Permite rendição</Portuguese>
<Hungarian>Kapituláció engedélyezése</Hungarian>
</Key>
<Key ID="STR_ACE_Captives_ModuleSettings_allowSurrender_description">
<English>Players can surrender after holstering their weapon</English>
@ -220,6 +227,7 @@
<Czech>Hráč se může vzdát poté, co si skryje zbraň</Czech>
<German>Spieler können kapitulieren, nachdem sie ihre Waffe geholstert haben</German>
<Portuguese>Jogadores podem se render depois de guardar sua arma</Portuguese>
<Hungarian>A játékosok megadhatják magukat a fegyverük elrakása után</Hungarian>
</Key>
<Key ID="STR_ACE_Captives_ModuleSettings_requireSurrender_name">
<English>Require surrendering</English>

View File

@ -1,4 +1,6 @@
// ACE - Common
// #define ENABLE_PERFORMANCE_COUNTERS
#include "script_component.hpp"
//IGNORE_PRIVATE_WARNING("_handleNetEvent", "_handleRequestAllSyncedEvents", "_handleRequestSyncedEvent", "_handleSyncedEvent");
@ -208,6 +210,7 @@ GVAR(OldVisibleMap) = false;
// PFH to raise varios events
[{
BEGIN_COUNTER(stateChecker);
private ["_newCameraView", "_newInventoryDisplayIsOpen", "_newPlayerInventory", "_newPlayerTurret", "_newPlayerVehicle", "_newPlayerVisionMode", "_newPlayerWeapon", "_newZeusDisplayIsOpen", "_newVisibleMap"];
// "playerInventoryChanged" event
_newPlayerInventory = [ACE_player] call FUNC(getAllGear);
@ -281,25 +284,18 @@ GVAR(OldVisibleMap) = false;
["visibleMapChanged", [ACE_player, _newVisibleMap]] call FUNC(localEvent);
};
END_COUNTER(stateChecker);
}, 0, []] call CBA_fnc_addPerFrameHandler;
// PFH to raise camera created event. Only works on these cams by BI.
#define ALL_CAMERAS [ \
missionNamespace getVariable ["BIS_DEBUG_CAM", objNull], \
missionNamespace getVariable ["BIS_fnc_camera_cam", objNull], \
uiNamespace getVariable ["BIS_fnc_arsenal_cam", objNull], \
uiNamespace getVariable ["BIS_fnc_animViewer_cam", objNull], \
missionNamespace getVariable ["BIS_fnc_establishingShot_fakeUAV", objNull] \
]
GVAR(OldIsCamera) = false;
[{
// "activeCameraChanged" event
private ["_isCamera"];
_isCamera = {!isNull _x} count ALL_CAMERAS > 0;
_isCamera = call FUNC(isfeatureCameraActive);
if !(_isCamera isEqualTo GVAR(OldIsCamera)) then {
// Raise ACE event locally
GVAR(OldIsCamera) = _isCamera;
@ -381,5 +377,4 @@ GVAR(deviceKeyCurrentIndex) = -1;
{false},
[0xC7, [true, false, false]], false] call cba_fnc_addKeybind; //SHIFT + Home Key
GVAR(commonPostInited) = true;

View File

@ -477,6 +477,7 @@
<German>Überprüfe PBOs</German>
<Czech>Zkontrolovat PBO</Czech>
<Portuguese>Verificar PBOs</Portuguese>
<Hungarian>PBO-k ellenőrzése</Hungarian>
</Key>
<Key ID="STR_ACE_Common_CheckPBO_Description">
<Polish>Sprawdzaj spójność addonów z serwerem</Polish>
@ -492,6 +493,7 @@
<German>Aktion</German>
<Czech>Akce</Czech>
<Portuguese>Ação</Portuguese>
<Hungarian>Cselekvés</Hungarian>
</Key>
<Key ID="STR_ACE_Common_CheckPBO_Action_Description">
<English>What to do with people who do not have the right PBOs?</English>
@ -500,6 +502,7 @@
<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>
<Portuguese>O que fazer com pessoas que não tem os PBOs corretos?</Portuguese>
<Hungarian>Mi legyen azokkal a személyekkel, akiknek nincsenek meg a helyes PBO-k?</Hungarian>
</Key>
<Key ID="STR_ACE_Common_CheckPBO_Action_WarnOnce">
<English>Warn once</English>
@ -508,6 +511,7 @@
<German>Einmal verwarnen</German>
<Czech>Upozornit jednou</Czech>
<Portuguese>Avisar uma vez</Portuguese>
<Hungarian>Egyszeri figyelmeztetés</Hungarian>
</Key>
<Key ID="STR_ACE_Common_CheckPBO_Action_WarnPerm">
<English>Warn (permanent)</English>
@ -516,6 +520,7 @@
<German>Immer verwarnen</German>
<Czech>Upozornit (permanentně)</Czech>
<Portuguese>Avisar (permanente)</Portuguese>
<Hungarian>Figyelmeztetés (tartós)</Hungarian>
</Key>
<Key ID="STR_ACE_Common_CheckPBO_Action_Kick">
<English>Kick</English>
@ -524,6 +529,7 @@
<German>Kicken</German>
<Czech>Vyhodit</Czech>
<Portuguese>Chutar</Portuguese>
<Hungarian>Kirúgás</Hungarian>
</Key>
<Key ID="STR_ACE_Common_CheckPBO_CheckAll_DisplayName">
<English>Check all addons</English>
@ -532,6 +538,7 @@
<German>Alle Addons überprüfen</German>
<Czech>Zkontrolovat všechny addony</Czech>
<Portuguese>Verificar todos addons</Portuguese>
<Hungarian>Összes bővítmény ellenőrzése</Hungarian>
</Key>
<Key ID="STR_ACE_Common_CheckPBO_CheckAll_Description">
<English>Check all addons instead of only those of ACE?</English>
@ -540,6 +547,7 @@
<German>Alle Addons anstatt nur ACE überprüfen?</German>
<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>
<Hungarian>Az összes bővítmény ellenőrzése, csak az ACE helyett?</Hungarian>
</Key>
<Key ID="STR_ACE_Common_CheckPBO_Whitelist_DisplayName">
<English>Whitelist</English>
@ -548,6 +556,7 @@
<German>Whitelist</German>
<Czech>Seznam povolených</Czech>
<Portuguese>Lista branca</Portuguese>
<Hungarian>Fehérlista</Hungarian>
</Key>
<Key ID="STR_ACE_Common_CheckPBO_Whitelist_Description">
<English>What addons are allowed regardless?</English>
@ -556,6 +565,7 @@
<German>Welche Addons werden dennoch erlaubt?</German>
<Czech>Jaké addony jsou povoleny?</Czech>
<Portuguese>Quais addons são permitidos de qualquer maneira?</Portuguese>
<Hungarian>Milyen bővítmények vannak feltétlenül engedélyezve?</Hungarian>
</Key>
<Key ID="STR_ACE_Common_LSDVehicles_DisplayName">
<English>LSD Vehicles</English>
@ -564,6 +574,7 @@
<German>LSD-Fahrzeuge</German>
<Czech>LSD vozidla</Czech>
<Portuguese>Veículos LSD</Portuguese>
<Hungarian>LSD járművek</Hungarian>
</Key>
<Key ID="STR_ACE_Common_LSDVehicles_Description">
<English>Adds LSD effect to synchronized vehicle</English>
@ -572,6 +583,7 @@
<German>Fügt einen LSD-Effekt zum synchronisierten Fahrzeug hinzu</German>
<Czech>Přidá LSD efekt pro synchronizované vozidla</Czech>
<Portuguese>Adiciona efeito LSD ao veículo sincronizado</Portuguese>
<Hungarian>LSD-effekt hozzáadása a szinkronizált járművekhez</Hungarian>
</Key>
<Key ID="STR_ACE_Common_toggleHandheldDevice">
<English>Toggle Handheld Device</English>
@ -580,6 +592,7 @@
<Portuguese>Ativa dispositivo de mão</Portuguese>
<Polish>Przełącz urządzenie podręczne</Polish>
<Czech>Přepnout ruční zařízení</Czech>
<Hungarian>Kézi eszköz kapcsolása</Hungarian>
</Key>
<Key ID="STR_ACE_Common_closeHandheldDevice">
<English>Close Handheld Device</English>
@ -588,6 +601,7 @@
<Portuguese>Fecha dispositivo de mão</Portuguese>
<Polish>Zamknij urządzenie podręczne</Polish>
<Czech>Zavřít ruční zařízení</Czech>
<Hungarian>Kézi eszköz bezárása</Hungarian>
</Key>
<Key ID="STR_ACE_Common_cycleHandheldDevices">
<English>Cycle Handheld Devices</English>
@ -596,6 +610,7 @@
<Portuguese>Troca dispositivos de mão</Portuguese>
<Polish>Następne urządzenie podręczne</Polish>
<Czech>Procházet ruční zařízení</Czech>
<Hungarian>Kézi eszköz váltása</Hungarian>
</Key>
<Key ID="STR_ACE_Common_Disabled">
<English>Disabled</English>

View File

@ -492,7 +492,7 @@
<Czech>Spínač mrtvého muže</Czech>
<Polish>Czuwak</Polish>
<Spanish>Detonador de hombre muerto</Spanish>
<Hungarian>Dead Man's Switch</Hungarian>
<Hungarian>Halott ember kapcsolója</Hungarian>
<Portuguese>Detonador do homem morto</Portuguese>
<Russian>Кнопка мертвеца</Russian>
<Italian>Detonatore a rilascio</Italian>
@ -528,6 +528,7 @@
<German>Sprengstoffsystem</German>
<Czech>Systém výbušnin</Czech>
<Portuguese>Sistema de explosivos</Portuguese>
<Hungarian>Robbanóanyag-rendszer</Hungarian>
</Key>
<Key ID="STR_ACE_Explosives_RequireSpecialist_DisplayName">
<English>Require specialists?</English>
@ -536,6 +537,7 @@
<German>Benötigt Sprengstoffexperten?</German>
<Czech>Vyžadovat specialistu?</Czech>
<Portuguese>Requer especialista?</Portuguese>
<Hungarian>Specialisták igénylése?</Hungarian>
</Key>
<Key ID="STR_ACE_Explosives_RequireSpecialist_Description">
<English>Require explosive specialists to disable explosives? Default: No</English>
@ -544,6 +546,7 @@
<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>
<Portuguese>Requer especialista em explosivos para desativar explosivos? Padrão: Não</Portuguese>
<Hungarian>Szükséges-e egy specialista a robbanóanyagok hatástalanításához? Alapértelmezett: Nem</Hungarian>
</Key>
<Key ID="STR_ACE_Explosives_PunishNonSpecialists_DisplayName">
<English>Punish non-specialists?</English>
@ -552,6 +555,7 @@
<German>Bestrafe Nicht-Sprengstoffexperten?</German>
<Czech>Potrestat, pokud není specialista?</Czech>
<Portuguese>Punir não especialistas?</Portuguese>
<Hungarian>Nem-specialisták büntetése?</Hungarian>
</Key>
<Key ID="STR_ACE_Explosives_PunishNonSpecialists_Description">
<English>Increase the time it takes to complete actions for non-specialists? Default: Yes</English>
@ -560,6 +564,7 @@
<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>
<Portuguese>Aumentar o tempo necessário para completar ações por não especialistas? Padrão: Sim</Portuguese>
<Hungarian>Nem-specialisták esetén több ideig tartson a cselekvés befejezése? Alapértelmezett: Igen</Hungarian>
</Key>
<Key ID="STR_ACE_Explosives_ExplodeOnDefuse_DisplayName">
<English>Explode on defusal?</English>
@ -567,6 +572,7 @@
<Polish>Eksplozja przy rozbrajaniu?</Polish>
<Czech>Explodovat při zneškodňování?</Czech>
<Spanish>Explotar al desactivar?</Spanish>
<Hungarian>Robbanás hatástalanításkor?</Hungarian>
</Key>
<Key ID="STR_ACE_Explosives_ExplodeOnDefuse_Description">
<English>Enable certain explosives to explode on defusal? Default: Yes</English>
@ -574,6 +580,7 @@
<Polish>Spraw, aby niektóre ładunki wybuchowe eksplodowały przy próbie ich rozbrojenia? Domyślnie:Tak</Polish>
<Czech>Umožnit u některých výbušnin explozi při pokusu je zneškodnit? Výchozí: Ano</Czech>
<Spanish>¿Habilitar ciertos explosivos para estallar al desactivar? Por defecto: Sí</Spanish>
<Hungarian>Meghatározott robbanóanyagok felrobbanjanak-e hatástalanításkor? Alapértelmezett: Igen</Hungarian>
</Key>
<Key ID="STR_ACE_Explosives_Module_Description">
<English>This module adjusts the settings related to explosives.</English>
@ -581,6 +588,7 @@
<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>
<Portuguese>Este módulo permite personalizar as definições relacionadas a explosivos.</Portuguese>
<Hungarian>Ez a modul a robbanóanyagokhoz kötött beállításokat szabályozza.</Hungarian>
</Key>
</Package>
</Project>

View File

@ -5,46 +5,56 @@
<English>Show pointing indicator to self</English>
<Russian>Отображать пальце-индикатор для показывающего игрока</Russian>
<Polish>Pokaż indykator wskazywania palcem dla siebie</Polish>
<Hungarian>Saját mutatási indikátor megjelenítése</Hungarian>
</Key>
<Key ID="STR_ACE_finger_indicatorForSelf_description">
<English>Render the indicator for the pointing player. This option doesn't affect whether the other players would see the indicator</English>
<Russian>Отображать индикатор для показывающего игрока. Эта настройка не влияет на то, будутт ли другие игроки видеть индикатор</Russian>
<Polish> Wyświetl indykator kiedy wskazujesz coś palcem. Ta opcja nie wpływa na to, czy inni gracze zobaczą ten indykator czy też nie.</Polish>
<Hungarian>Az indikátor megjelenítése a mutató játékosnak. Ez a beállítás nem változtat azon, hogy más játékosok látják-e az indikátort.</Hungarian>
</Key>
<Key ID="STR_ACE_finger_indicatorColor_name">
<English>Pointing indicator</English>
<Russian>Пальце-индикатор</Russian>
<Polish>Indykator palca</Polish>
<Hungarian>Ujj-indikátor</Hungarian>
</Key>
<Key ID="STR_ACE_finger_indicatorColor_description">
<English>Color of the pointing indicator circle</English>
<Russian>Цвет индикатора пальце-указания</Russian>
<Polish>Kolor okręgu wyświetlanego przy wskazywaniu palcem</Polish>
<Hungarian>Mutatási indikátor körének színe</Hungarian>
</Key>
<Key ID="STR_ACE_finger_keyComb">
<English>Action "point a finger at"</English>
<Russian>Действие "показать пальцем на"</Russian>
<Polish>Akcja "wskaż palcem"</Polish>
<Hungarian>Cselekvés "ujj rámutatása"</Hungarian>
</Key>
<Key ID="STR_ACE_finger_keyComb_description">
<English>Points, and shows a virtual marker of where you are looking to nearby units. Can be held down.</English>
<Polish>Wskazuje a także wyświetla wirtualny marker-okrąg w miejscu, w które patrzysz, dla wszystkich pobliskich jednostek. Może być przytrzymywany.</Polish>
<Hungarian>Mutat, és elhelyez egy virtuális jelölőt a nézett területhez közeli egységekhez. Lenyomva tartható.</Hungarian>
</Key>
<Key ID="STR_ACE_finger_moduleSettings_displayName">
<English>Pointing Settings</English>
<Polish>Ustawienia wskazywania palcem</Polish>
<Hungarian>Ujj beállításai</Hungarian>
</Key>
<Key ID="STR_ACE_finger_enabled_displayName">
<English>Pointing Enabled</English>
<Polish>Aktywuj wskazywanie</Polish>
<Hungarian>Mutatás engedélyezése</Hungarian>
</Key>
<Key ID="STR_ACE_finger_maxRange_displayName">
<English>Pointing Max Range</English>
<Polish>Maks. zasięg wskazywania</Polish>
<Hungarian>Ujj maximum hatótávja</Hungarian>
</Key>
<Key ID="STR_ACE_finger_maxRange_description">
<English>Max range between players to show the pointing indicator [default: 4 meters]</English>
<Polish>Określ dystans na jakim można wskazywać coś palcem innym graczom. [domyślnie: 4m] </Polish>
<Hungarian>A maximális távolság, amelyben a közeli játékosoknak megjelenik az indikátor. [alapértelmezett: 4 méter]</Hungarian>
</Key>
</Package>
</Project>

View File

@ -8,6 +8,7 @@
<German>Splittersimulation</German>
<Czech>Simulace fragmentace</Czech>
<Portuguese>Simulação de fragmentação</Portuguese>
<Hungarian>Repesz-szimuláció</Hungarian>
</Key>
<Key ID="STR_ACE_Frag_EnableFrag_Desc">
<English>Enable the ACE Fragmentation Simulation</English>
@ -16,6 +17,7 @@
<German>Aktiviere die ACE-Splittersimulation</German>
<Czech>Povolit ACE simulaci fragmentace</Czech>
<Portuguese>Ativa a simulação de fragmentação do ACE</Portuguese>
<Hungarian>Az ACE repesz-szimuláció engedélyezése</Hungarian>
</Key>
<Key ID="STR_ACE_Frag_EnableSpall">
<English>Spalling Simulation</English>
@ -24,6 +26,7 @@
<German>Explosionssimulation</German>
<Czech>Simulace úlomků</Czech>
<Portuguese>Simulação de estilhaços</Portuguese>
<Hungarian>Pattogzás-szimuláció</Hungarian>
</Key>
<Key ID="STR_ACE_Frag_EnableSpall_Desc">
<English>Enable the ACE Spalling Simulation</English>
@ -32,6 +35,7 @@
<German>Aktiviere ACE-Explosionssimulation</German>
<Czech>Povolit ACE simulaci úlomků</Czech>
<Portuguese>Ativa a simulação de estilhaços do ACE</Portuguese>
<Hungarian>Az ACE pattogzás-szimuláció engedélyezése</Hungarian>
</Key>
<Key ID="STR_ACE_Frag_MaxTrack">
<English>Maximum Projectiles Tracked</English>
@ -40,6 +44,7 @@
<German>Maximalzahl der verfolgten Projektile</German>
<Czech>Maximální počet sledovaných projektilů</Czech>
<Portuguese>Máximo de projéteis rastreados</Portuguese>
<Hungarian>Maximum követett repeszek</Hungarian>
</Key>
<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>
@ -48,6 +53,7 @@
<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>
<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>
<Hungarian>Ez a beállítás szabályozza a repeszeződés és pattogzás által kilőtt objektumok követett számát. Ha több ez a szám, ezek az objektumok nem lesznek követve. Csökkentsd ezt a beállítást, ha nem akarsz lassulásokat magas-törmelékmennyiségű helyzetekben (200+ repesz a levegőben egyszerre)</Hungarian>
</Key>
<Key ID="STR_ACE_Frag_MaxTrackPerFrame">
<English>Maximum Projectiles Per Frame</English>
@ -56,6 +62,7 @@
<Polish>Maks. liczba pocisków na klatkę</Polish>
<Czech>Maximální počet projektilů ze jeden snímek</Czech>
<Portuguese>Projéteis máximos por quadro</Portuguese>
<Hungarian>Maximum repesz/képkocka</Hungarian>
</Key>
<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>
@ -64,6 +71,7 @@
<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>
<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>
<Hungarian>A lepattogzási útvonalak számításának darabjai képkockánként. Ez eloszlatja az FPS-megszakadást több képkockára, ezzel csökkentve a súlyosságát.</Hungarian>
</Key>
<Key ID="STR_ACE_Frag_EnableDebugTrace">
<English>(SP Only) Frag/Spall Debug Tracing</English>
@ -72,6 +80,7 @@
<Czech>(Pouze SP) Debug sledování Frag/Úlomků</Czech>
<German>(nur SP) Splitter-/Explosions-Debug-Verfolgung</German>
<Portuguese>(Somente SP) Depuração de fragmentação e estilhaços traçantes</Portuguese>
<Hungarian>(Csak SP) Repesz/Pattogzás debug követés</Hungarian>
</Key>
<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>
@ -80,6 +89,7 @@
<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>
<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>
<Hungarian>(Csak SP) Küldetés/Editor újraindítás szükséges. Engedélyezi a repeszek és pattogzó lövedékek vizuális nyomkövetését, csak egyjátékos módok alatt.</Hungarian>
</Key>
</Package>
</Project>
</Project>

View File

@ -29,7 +29,7 @@ class Extended_FiredNear_EventHandlers {
class Extended_Explosion_EventHandlers {
class CAManBase {
class GVAR(ExplosionNear) {
clientExplosion = QUOTE( if (GVAR(enableCombatDeafness) && {_this select 0 == ACE_player}) then {_this call FUNC(explosionNear)}; );
clientExplosion = QUOTE(_this call FUNC(explosionNear););
};
};
};

View File

@ -15,7 +15,7 @@ GVAR(time4) = 0;
["SettingsInitialized", {
// Spawn volume updating process
[FUNC(updateVolume), 1, [false] ] call CBA_fnc_addPerFrameHandler;
[FUNC(updateVolume), 1, [false]] call CBA_fnc_addPerFrameHandler;
}] call EFUNC(common,addEventHandler);
//Update veh attunation when player veh changes

View File

@ -14,8 +14,7 @@
* Public: No
*/
#include "script_component.hpp"
PARAMS_1(_unit);
params ["_unit"];
// Exit if hearing is disabled or soldier has earplugs already in (persistence scenarios)
if (!GVAR(enableCombatDeafness) || {[_unit] call FUNC(hasEarPlugsIn)}) exitWith {};

View File

@ -15,8 +15,7 @@
* Public: No
*/
#include "script_component.hpp"
PARAMS_2(_unit,_strength);
params ["_unit", "_strength"];
if (_unit != ACE_player) exitWith {};
if (_strength < 0.05) exitWith {};

View File

@ -19,10 +19,14 @@
//Only run if deafness or ear ringing is enabled:
if ((!GVAR(enableCombatDeafness)) && GVAR(DisableEarRinging)) exitWith {};
PARAMS_2(_unit,_damage);
params ["_unit", "_damage"];
if (_unit != ACE_player) exitWith {};
TRACE_2("explosion near player",_unit,_damage);
private ["_strength"];
_strength = 0 max _damage;
_strength = (0 max _damage) * 30;
if (_strength < 0.01) exitWith {};
[{_this call FUNC(earRinging)}, [_unit, _strength], 0.2, 0] call EFUNC(common,waitAndExecute);
[{_this call FUNC(earRinging)}, [_unit, _strength], 0.2] call EFUNC(common,waitAndExecute);

View File

@ -7,8 +7,8 @@
* 1: Firer: Object - Object which fires a weapon near the unit <OBJECT>
* 2: Distance - Distance in meters between the unit and firer <NUMBER>
* 3: weapon - Fired weapon <STRING>
* 4: muzzle - Muzzle that was used <STRING>
* 5: mod - Current mode of the fired weapon <STRING>
* 4: muzzle - Muzzle that was used (not used) <STRING>
* 5: mode - Current mode of the fired weapon (not used) <STRING>
* 6: ammo - Ammo used <STRING>
*
* Return Value:
@ -16,6 +16,7 @@
*
* Example:
* [clientFiredNearEvent] call ace_hearing_fnc_firedNear
* [player, player, 10, "arifle_MX_ACO_pointer_F", "arifle_MX_ACO_pointer_F", "single", "B_65x39_Caseless"] call ace_hearing_fnc_firedNear
*
* Public: No
*/
@ -24,14 +25,14 @@
//Only run if deafness or ear ringing is enabled:
if ((!GVAR(enableCombatDeafness)) && GVAR(DisableEarRinging)) exitWith {};
PARAMS_7(_object,_firer,_distance,_weapon,_muzzle,_mode,_ammo);
params ["_object", "_firer", "_distance", "_weapon", "", "", "_ammo"];
//Only run if firedNear object is player or player's vehicle:
if ((ACE_player != _object) && {(vehicle ACE_player) != _object}) exitWith {};
if (_weapon in ["Throw", "Put"]) exitWith {};
if (_distance > 50) exitWith {};
private ["_silencer", "_audibleFireCoef", "_loudness", "_strength", "_vehAttenuation", "_magazine", "_muzzles", "_weaponMagazines", "_muzzleMagazines", "_ammoType", "_initSpeed", "_ammoConfig", "_caliber", "_parentClasses"];
private ["_silencer", "_audibleFireCoef", "_loudness", "_strength", "_vehAttenuation", "_magazine", "_muzzles", "_weaponMagazines", "_muzzleMagazines", "_ammoType", "_initSpeed", "_ammoConfig", "_caliber"];
_vehAttenuation = if ((ACE_player == (vehicle ACE_player)) || {isTurnedOut ACE_player}) then {1} else {GVAR(playerVehAttenuation)};
@ -58,7 +59,7 @@ if (count _weaponMagazines == 0) then {
_muzzleMagazines = getArray (configFile >> "CfgWeapons" >> _weapon >> _x >> "magazines");
_weaponMagazines append _muzzleMagazines;
};
} forEach _muzzles;
} count _muzzles;
{
_ammoType = getText(configFile >> "CfgMagazines" >> _x >> "ammo");
_weaponMagazines set [_forEachIndex, [_x, _ammoType]];
@ -68,33 +69,30 @@ if (count _weaponMagazines == 0) then {
_magazine = "";
{
EXPLODE_2_PVT(_x,_magazineType,_ammoType);
_x params ["_magazineType", "_ammoType"];
if (_ammoType == _ammo) exitWith {
_magazine = _magazineType;
};
} forEach _weaponMagazines;
} count _weaponMagazines;
if (_magazine == "") exitWith {};
_initSpeed = getNumber(configFile >> "CfgMagazines" >> _magazine >> "initSpeed");
_ammoConfig = (configFile >> "CfgAmmo" >> _ammo);
_parentClasses = [_ammoConfig, true] call BIS_fnc_returnParents;
_caliber = getNumber(_ammoConfig >> "ACE_caliber");
_caliber = switch (true) do {
case ("ShellBase" in _parentClasses): { 80 };
case ("RocketBase" in _parentClasses): { 200 };
case ("MissileBase" in _parentClasses): { 600 };
case ("SubmunitionBase" in _parentClasses): { 80 };
default {
if (_caliber <= 0) then { 6.5 } else { _caliber };
};
_caliber = call {
if (_ammo isKindOf ["ShellBase", (configFile >> "CfgAmmo")]) exitWith { 80 };
if (_ammo isKindOf ["RocketBase", (configFile >> "CfgAmmo")]) exitWith { 200 };
if (_ammo isKindOf ["MissileBase", (configFile >> "CfgAmmo")]) exitWith { 600 };
if (_ammo isKindOf ["SubmunitionBase", (configFile >> "CfgAmmo")]) exitWith { 80 };
if (_caliber <= 0) then { 6.5 } else { _caliber };
};
_loudness = (_caliber ^ 1.25 / 10) * (_initspeed / 1000) * _audibleFireCoef / 5;
_strength = _vehAttenuation * (_loudness - (_loudness / 50 * _distance)); // linear drop off
//systemChat format["%1 : %2 : %3", _strength, _initSpeed, _parentClasses];
//systemChat format["%1 : %2", _strength, _initSpeed];
//systemChat format["%1 : %2 : %3", _weapon, _magazine, _initSpeed];
if (_strength < 0.01) exitWith {};
[{_this call FUNC(earRinging)}, [ACE_player, _strength], 0.2, 0] call EFUNC(common,waitAndExecute);
[{_this call FUNC(earRinging)}, [ACE_player, _strength], 0.2] call EFUNC(common,waitAndExecute);

View File

@ -14,7 +14,6 @@
* Public: No
*/
#include "script_component.hpp"
PARAMS_1(_unit);
params ["_unit"];
_unit getVariable ["ACE_hasEarPlugsin", false]

View File

@ -10,9 +10,7 @@
*/
#include "script_component.hpp"
PARAMS_3(_logic,_units,_activated);
if !(_activated) exitWith {};
params ["_logic"];
[_logic, QGVAR(enableCombatDeafness), "EnableCombatDeafness"] call EFUNC(common,readSettingFromModule);

View File

@ -15,7 +15,7 @@
*/
#include "script_component.hpp"
PARAMS_1(_player);
params ["_player"];
// Plugs in inventory, putting them in
_player removeItem "ACE_EarPlugs";

View File

@ -15,7 +15,7 @@
*/
#include "script_component.hpp"
PARAMS_1(_player);
params ["_player"];
if !(_player canAdd "ACE_EarPlugs") exitWith { // inventory full
[localize LSTRING(Inventory_Full)] call EFUNC(common,displayTextStructured);

View File

@ -19,9 +19,9 @@
//Only run if deafness or ear ringing is enabled:
if ((!GVAR(enableCombatDeafness)) && GVAR(DisableEarRinging)) exitWith {};
EXPLODE_1_PVT((_this select 0),_justUpdateVolume);
private["_volume", "_soundTransitionTime"];
(_this select 0) params ["_justUpdateVolume"];
GVAR(deafnessDV) = (GVAR(deafnessDV) min 20) max 0;
GVAR(volume) = (1 - (GVAR(deafnessDV) / 20)) max 0;

View File

@ -116,6 +116,7 @@
<German>Gehör</German>
<Czech>Sluch</Czech>
<Portuguese>Audição</Portuguese>
<Hungarian>Hallás</Hungarian>
</Key>
<Key ID="STR_ACE_Hearing_CombatDeafness_DisplayName">
<English>Combat Deafness</English>
@ -124,6 +125,7 @@
<German>Aktiviere Taubheit im Gefecht?</German>
<Czech>Povolit ztrátu sluchu?</Czech>
<Portuguese>Ativar surdez em combate?</Portuguese>
<Hungarian>Harci süketség engedélyezése?</Hungarian>
</Key>
<Key ID="STR_ACE_Hearing_CombatDeafness_Description">
<English>Reduces the hearing ability as the player takes hearing damage</English>
@ -132,6 +134,7 @@
<German>Aktiviere Taubheit im Gefecht?</German>
<Czech>Povolit ztrátu sluchu?</Czech>
<Portuguese>Ativar surdez em combate?</Portuguese>
<Hungarian>Harci süketség engedélyezése?</Hungarian>
</Key>
<Key ID="STR_ACE_Hearing_Module_Description">
<English>Controls combat deafness and ear ringing. When activated, players can be deafened when a gun is fired in their vicinity or an explosion takes place without hearing protection</English>
@ -147,4 +150,4 @@
<English>Allow zeus remote controlled units to be able to take hearing damage.</English>
</Key>
</Package>
</Project>
</Project>

View File

@ -75,10 +75,32 @@ addMissionEventHandler ["Draw3D", DFUNC(render)];
if (GVAR(menuBackground)==2) then {(uiNamespace getVariable [QGVAR(menuBackground), displayNull]) closeDisplay 0;};
}] call EFUNC(common,addEventHandler);
// Let key work with zeus open (not perfect, enables all added hotkeys in zeus interface rather than only menu)
// Let key work with zeus open (not perfect, contains workaround to prevent other CBA keybindings)
["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}];
(finddisplay 312) displayAddEventHandler ["KeyUp", {
_key = ["ACE3 Common","ace_interact_menu_InteractKey"] call CBA_fnc_getKeybind;
_key = _key select 5;
_dik = _key select 0;
_mods = _key select 1;
if ((_this select 1) == _dik) then {
if ((_this select [2,3]) isEqualTo _mods) then {
[_this,'keyup'] call CBA_events_fnc_keyHandler
};
};
}];
(finddisplay 312) displayAddEventHandler ["KeyDown", {
_key = ["ACE3 Common","ace_interact_menu_InteractKey"] call CBA_fnc_getKeybind;
_key = _key select 5;
_dik = _key select 0;
_mods = _key select 1;
if ((_this select 1) == _dik) then {
if ((_this select [2,3]) isEqualTo _mods) then {
[_this,'keydown'] call CBA_events_fnc_keyHandler
};
};
}];
};
}] call EFUNC(common,addEventHandler);

View File

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

View File

@ -18,7 +18,7 @@ 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))
!([ACE_player, objNull, ["isNotInside","isNotDragging", "isNotCarrying", "isNotSwimming", "notOnMap", "isNotEscorting", "isNotSurrendering", "isNotSitting", "isNotOnLadder"]] call EFUNC(common,canInteractWith))
}) exitWith {false};
while {dialog} do {

View File

@ -90,6 +90,8 @@
<Polish>Akcje Zeusa</Polish>
<Czech>Akce Zeuse</Czech>
<Spanish>Acciones Zeus</Spanish>
<Hungarian>Zeus cselekvések</Hungarian>
<Portuguese>Ações do Zeus</Portuguese>
</Key>
<Key ID="STR_ACE_Interact_Menu_ColorTextMax">
<English>Interaction - Text Max</English>
@ -230,6 +232,7 @@
<Czech>Pozadí menu interakce</Czech>
<German>Interaktionsmenü-Hintergrund</German>
<Portuguese>Fundo do menu de interação</Portuguese>
<Hungarian>Cselekvő menü háttere</Hungarian>
</Key>
<Key ID="STR_ACE_Interact_Menu_blurScreenDesc">
<English>Blur the background while the interaction menu is open.</English>
@ -238,6 +241,7 @@
<Czech>Rozmazat obraz pokud je interakční menu otevřené.</Czech>
<German>Den Hintergrund verschwimmen lassen, während das Interaktionsmenü geöffnet ist.</German>
<Portuguese>Desfocar o fundo enquanto o menu de interação está aberto.</Portuguese>
<Hungarian>A háttér elmosása a cselekvő menü használata alatt.</Hungarian>
</Key>
<Key ID="STR_ACE_Interact_Menu_backgroundBlur">
<English>Blur screen</English>
@ -246,6 +250,7 @@
<Czech>Rozmazaný obraz</Czech>
<German>Verschwommenes Bild</German>
<Portuguese>Desfoque de tela</Portuguese>
<Hungarian>Kép elmosása</Hungarian>
</Key>
<Key ID="STR_ACE_Interact_Menu_backgroundBlack">
<English>Black</English>
@ -254,22 +259,27 @@
<Czech>Černý obraz</Czech>
<Portuguese>Preto</Portuguese>
<German>Schwarz</German>
<Hungarian>Fekete</Hungarian>
</Key>
<Key ID="STR_ACE_Interact_Menu_addBuildingActions">
<English>Show actions for buildings</English>
<Polish>Pokazuj akcje dla budynków</Polish>
<Czech>Zobrazit akci pro budovy</Czech>
<Spanish>Mostrar acciones para edificios</Spanish>
<Hungarian>Cselekvések mutatása épületeknél</Hungarian>
<Portuguese>Mostrar ações para edifícios</Portuguese>
</Key>
<Key ID="STR_ACE_Interact_Menu_addBuildingActionsDescription">
<English>Adds interaction actions for opening doors and mounting ladders on buildings. (Note: There is a performance cost when opening interaction menu, especially in towns)</English>
<Polish>Dodaje opcje interakcji dla otwierania drzwi oraz wchodzenia po drabinach do budynków. Uwaga: Użycie tej opcji może spowodować spadek wydajności menu interakcji, szczególnie w dużych miastach.</Polish>
<Czech>Přidá možnost interakce pro otevření dvěří a umistňovat žebříky na budovy. (Poznámka: Použití této možnosti snižuje výkon při otevírání pomocí interakčního menu, zejména ve velkých městech.) </Czech>
<Spanish>Añade las acciones de interacción para la apertura de puertas y montaje de escaleras en los edificios. (Nota: Hay un coste de rendimiento al abrir el menú de interacción, especialmente en las ciudades)</Spanish>
<Hungarian>Cselekvéseket engedélyez ajtók kinyitására és létrák mászására. (Figyelem: ez teljesítményvesztéssel járhat a menü megnyitásakor, főleg városokban)</Hungarian>
<Portuguese>Adiciona ações de interações para abrir portas e montar escadas em edifícios. (Nota: Existe um custo de performance quando aberto o menu de interação, especialmente em cidades)</Portuguese>
</Key>
<Key ID="STR_ACE_Interact_Menu_Category_InteractionMenu">
<English>Interaction Menu</English>
<Polish>Menu interakcji</Polish>
</Key>
</Package>
</Project>
</Project>

View File

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

View File

@ -35,7 +35,7 @@ private ["_team"];
// Conditions: canInteract
if !([ACE_player, objNull, []] call EFUNC(common,canInteractWith)) exitWith {false};
// Conditions: specific
if (GVAR(isOpeningDoor) || {[2] call FUNC(getDoor) select 1 == ''}) exitWith {false};
if (GVAR(isOpeningDoor) || {[MACRO_DOOR_REACH_DISTANCE] call FUNC(getDoor) select 1 == ''}) exitWith {false};
// Statement
call EFUNC(interaction,openDoor);
@ -82,3 +82,4 @@ private ["_team"];
[29, [false, false, false]], false] call cba_fnc_addKeybind;
["isNotSwimming", {!underwater (_this select 0)}] call EFUNC(common,addCanInteractWithCondition);
["isNotOnLadder", {getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> animationState (_this select 0) >> "ACE_isLadder") != 1}] call EFUNC(common,addCanInteractWithCondition);

View File

@ -18,7 +18,7 @@
private ["_info", "_phase", "_position", "_time", "_usedMouseWheel", "_getDoorAnimations"];
_info = [2] call FUNC(getDoor);
_info = [MACRO_DOOR_REACH_DISTANCE] call FUNC(getDoor);
EXPLODE_2_PVT(_info,_house,_door);
@ -36,7 +36,7 @@ if (_house animationPhase (_animations select 0) <= 0 && {_house getVariable [_l
};
GVAR(isOpeningDoor) = true;
playSound "ACE_Sound_Click";
playSound "ACE_Sound_Click"; //@todo replace with smth. more fitting
[_house, _animations] spawn {
private ["_house", "_animations", "_phase", "_position", "_time", "_usedMouseWheel"];

View File

@ -9,4 +9,6 @@
#define DEBUG_SETTINGS DEBUG_SETTINGS_INTERACTION
#endif
#include "\z\ace\addons\main\script_macros.hpp"
#include "\z\ace\addons\main\script_macros.hpp"
#define MACRO_DOOR_REACH_DISTANCE (AGLToASL positionCameraToWorld [0,0,0] vectorDistance AGLToASL (ACE_player modelToWorld (ACE_player selectionPosition "Head"))) + 2

File diff suppressed because it is too large Load Diff

View File

@ -1,30 +1,11 @@
// by commy2 and esteldunedain
#include "script_component.hpp"
private ["_p0", "_p1", "_p0Pos", "_offV1", "_offV2", "_offV3", "_camPos", "_intermediatePos", "_iteration", "_light", "_line", "_pL", "_pL2", "_pX", "_size", "_units", "_fnc_getDistanceToTerrain", "_fnc_doesIntersectWithMan"];
params ["_unit", "_range", "_isGreen", "_brightness"];
// init object
/*if (isNil QGVAR(laserdot)) then {
_light = "#lightpoint" createVehicleLocal [0,0,0];
_light setLightBrightness 10;
_light setLightColor [1,0,0];
_light setLightAmbient [1,0,0];
_light setLightDayLight true;
//_light lightAttachObject [GVAR(laserdot), [0,0,0]];
_light setLightAttenuation [0.04,4,4,0,0.04,0.08];
private ["_p0", "_v1", "_v2", "_v3", "_p1", "_pL", "_distance", "_pL2", "_camPos", "_size"];
GVAR(laserdot) = _light;
};*/
EXPLODE_4_PVT(_this,_unit,_range,_isGreen,_brightness);
_p0Pos = _unit modelToWorldVisual (_unit selectionPosition "righthand");
// Convert _p0Pos to ASL
_p0 = + _p0Pos;
if (!surfaceIsWater _p0) then {
_p0 = ATLtoASL _p0;
};
_p0 = AGLToASL (_unit modelToWorldVisual (_unit selectionPosition "righthand"));
// Find a system of orthogonal reference vectors
// _v1 points in the direction of the weapon
@ -36,68 +17,22 @@ _v3 = _v2 vectorCrossProduct _v1;
// Offset over the 3 reference axis
// This offset could eventually be configured by weapon in the config
_offV1 = 0.31;
_offV2 = 0;
_offV3 = 0.08;
#define OFFV1 0.31
#define OFFV2 0
#define OFFV3 0.08
// Offset _p0, the start of the laser
_p0 = _p0 vectorAdd (_v1 vectorMultiply _offV1) vectorAdd (_v3 vectorMultiply _offV3) vectorAdd (_v2 vectorMultiply _offV2);
_p0Pos = _p0Pos vectorAdd (_v1 vectorMultiply _offV1) vectorAdd (_v3 vectorMultiply _offV3) vectorAdd (_v2 vectorMultiply _offV2);
_p0 = _p0 vectorAdd (_v1 vectorMultiply OFFV1) vectorAdd (_v3 vectorMultiply OFFV3) vectorAdd (_v2 vectorMultiply OFFV2);
// Calculate _p1, the potential end of the laser
_p1 = _p0 vectorAdd (_v1 vectorMultiply _range);
//Debugaaa = lineIntersectsObjs [_p0, _p1, objNull, _unit, false, 2];
_pL = lineIntersectsSurfaces [_p0, _p1, ACE_player, vehicle ACE_player, true, 1, "GEOM", "FIRE"] select 0 select 0;
_fnc_getDistanceToTerrain = {
private ["_distance"];
// no intersection found, quit
if (isNil "_pL") exitWith {};
_pX = + _p0;
_line = [_p0, _pX];
_distance = _this;
_iteration = _distance;
while {_iteration > 0.05 / 2} do {
_iteration = _iteration / 2;
_pX = _p0 vectorAdd (_v1 vectorMultiply _distance);
_line set [1, _pX];
_distance = _distance + (([1, -1] select (lineIntersects (_line + [_unit]) || {terrainIntersectASL _line})) * _iteration);
if (_distance > _this) exitWith {_distance = _this};
};
_distance
};
// Get distance to nearest object or terrain (excluding men)
_distance = _range call _fnc_getDistanceToTerrain;
// Find all men potentially intercepted by the ray
_intermediatePos = _p0 vectorAdd (_v1 vectorMultiply _distance/2);
if (!surfaceIsWater _intermediatePos) then {
_intermediatePos = ASLtoATL _intermediatePos;
};
_units = nearestObjects [_intermediatePos, ["Man"], _distance/2];
_units deleteAt (_units find _unit);
_fnc_doesIntersectWithMan = {
_pX = _p0 vectorAdd (_v1 vectorMultiply (_this select 1));
if (!surfaceIsWater _pX) then {
_pX = ASLtoATL _pX;
};
count ([_this select 0, "FIRE"] intersect [_p0Pos, _pX]) > 0
};
// Test intersection with nearby men
{
if ([_x, _distance] call _fnc_doesIntersectWithMan) then {
_distance = _distance min ((_unit distance _x) - _offV1);
};
} forEach _units;
_distance = _p0 vectorDistance _pL;
//systemChat str _distance;
if (_distance < 0.5) exitWith {};
@ -105,31 +40,29 @@ if (_distance < 0.5) exitWith {};
_pL = _p0 vectorAdd (_v1 vectorMultiply _distance);
_pL2 = _p0 vectorAdd (_v1 vectorMultiply (_distance - 0.5));
// Convert _pL to pos
if (!surfaceIsWater _pL) then {
_pL = ASLtoATL _pL;
};
_pL = ASLtoAGL _pL;
/*
drawLine3D [
_p0Pos,
_p0,
_pL,
[[1,0,0,1], [0,1,0,1]] select _isGreen
];
*/
_size = 2 * (_range - (positionCameraToWorld [0,0,0] vectorDistance _pL)) / _range;
//systemChat str [_unit, "FIRE"] intersect [_camPos, _pL];
_camPos = positionCameraToWorld [0,0,0.2];
if (count ([_unit, "FIRE"] intersect [_camPos, _pL]) > 0) exitWith {};
if (count ([ACE_player, "FIRE"] intersect [_camPos, _pL]) > 0) exitWith {};
// Convert _camPos to ASL
if (!surfaceIsWater _camPos) then { _camPos = ATLtoASL _camPos; };
_camPos = AGLToASL _camPos;
if ( terrainIntersectASL [_camPos, _pL2]) exitWith {};
if ( lineIntersects [_camPos, _pL2]) exitWith {};
//GVAR(laserdot) setPos _pL;
_size = 2 * (_range - (positionCameraToWorld [0,0,0] vectorDistance _pL)) / _range;
drawIcon3D [
format ["\a3\weapons_f\acc\data\collimdot_%1_ca.paa", ["red", "green"] select _isGreen],

View File

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

View File

@ -543,46 +543,23 @@ class CfgPatches {
"map_vr",
"extended_eventhandlers", "cba_ui", "cba_xeh", "cba_xeh_a3", "cba_jr"
};
author[] = {"ACE Team"};
authorUrl = "";
versionDesc = "A.C.E.";
versionAct = QUOTE(['MAIN',_this] execVM '\z\ace\addons\main\about.sqf';);
author[] = {ECSTRING(common,ACETeam)};
authorUrl = "http://ace3mod.com/";
versionDesc = "ACE3";
VERSION_CONFIG;
};
};
class CfgMods {
class PREFIX {
dir = "@ACE";
name = "Core - Advanced Combat Environment";
dir = "@ace";
name = "Advanced Combat Environment 3";
picture = "A3\Ui_f\data\Logos\arma3_expansion_alpha_ca";
hidePicture = "true";
hideName = "true";
actionName = "Website";
action = "http://ace.dev-heaven.net";
description = "Bugtracker: ";
};
};
class CfgSettings {
class CBA {
class Versioning {
class PREFIX {
level = DEFAULT_VERSIONING_LEVEL;
handler = "ace_common_fnc_mismatch";
class Dependencies {
CBA[]={"cba_main", {1,0,0}, "true"};
XEH[]={"cba_xeh", {1,0,0}, "true"};
};
};
};
/*
class Registry {
class PREFIX {
removed[] = {};
};
};
*/
action = "http://ace3mod.com/";
description = "Issue Tracker: https://github.com/acemod/ACE3/issues";
};
};

View File

@ -3,12 +3,12 @@
// #define DEBUG_MODE_FULL
#ifdef DEBUG_ENABLED_CORE
#ifdef DEBUG_ENABLED_MAIN
#define DEBUG_MODE_FULL
#endif
#ifdef DEBUG_SETTINGS_CORE
#define DEBUG_SETTINGS DEBUG_SETTINGS_CORE
#ifdef DEBUG_SETTINGS_MAIN
#define DEBUG_SETTINGS DEBUG_SETTINGS_MAIN
#endif
#include "\z\ace\addons\main\script_macros.hpp"

View File

@ -8,6 +8,7 @@
<German>Karte</German>
<Czech>Mapa</Czech>
<Portuguese>Mapa</Portuguese>
<Hungarian>Térkép</Hungarian>
</Key>
<Key ID="STR_ACE_Map_MapIllumination_DisplayName">
<English>Map illumination?</English>
@ -16,6 +17,7 @@
<German>Kartenausleuchtung</German>
<Czech>Osvětlení mapy</Czech>
<Portuguese>Iluminação do mapa?</Portuguese>
<Hungarian>Térkép megvilágítása?</Hungarian>
</Key>
<Key ID="STR_ACE_Map_MapIllumination_Description">
<English>Simulate map lighting based on ambient lighting and player's items?</English>
@ -33,6 +35,7 @@
<German>Kamerawackeln</German>
<Czech>Třesení mapy?</Czech>
<Portuguese>Tremor de mapa?</Portuguese>
<Hungarian>Térkép-rázkódás?</Hungarian>
</Key>
<Key ID="STR_ACE_Map_MapShake_Description">
<English>Make map shake when walking?</English>
@ -41,6 +44,7 @@
<German>Kamerawackeln beim Gehen?</German>
<Czech>Umožnit třesení mapy za pochodu?</Czech>
<Portuguese>Tremer o mapa enquanto caminha?</Portuguese>
<Hungarian>Rázkódjon-e a térkép mozgáskor?</Hungarian>
</Key>
<Key ID="STR_ACE_Map_MapLimitZoom_DisplayName">
<English>Limit map zoom?</English>
@ -49,6 +53,7 @@
<German>Kartenzoom einschränken</German>
<Czech>Omezit přiblížení mapy?</Czech>
<Portuguese>Limitar zoom do mapa?</Portuguese>
<Hungarian>Térkép-nagyítás korlátozása?</Hungarian>
</Key>
<Key ID="STR_ACE_Map_MapLimitZoom_Description">
<English>Limit the amount of zoom available for the map?</English>
@ -57,6 +62,7 @@
<German>Zoomstufe der Karte einschränken?</German>
<Czech>Omezit stupeň přiblížení pro mapu?</Czech>
<Portuguese>Limitar a quantidade de zoom disponível para o mapa?</Portuguese>
<Hungarian>Korlátozva legyen-e a nagyítás mennyisége a térképnél?</Hungarian>
</Key>
<Key ID="STR_ACE_Map_MapShowCursorCoordinates_DisplayName">
<English>Show cursor coordinates?</English>
@ -65,6 +71,7 @@
<German>Zeige Cursor-Koordinaten?</German>
<Czech>Zobrazit souřadnice u kurzoru?</Czech>
<Portuguese>Mostrar coordenadas no cursor?</Portuguese>
<Hungarian>Kurzor-koordináták mutatása?</Hungarian>
</Key>
<Key ID="STR_ACE_Map_MapShowCursorCoordinates_Description">
<English>Show the grid coordinates on the mouse pointer?</English>
@ -73,6 +80,7 @@
<German>Gitter-Koordinaten auf dem Mauszeiger anzeigen?</German>
<Czech>Zobrazit souřadnice u kurzoru v mapě?</Czech>
<Portuguese>Mostrar as coordenadas de grade no ponteiro do mouse?</Portuguese>
<Hungarian>Mutatva legyen-e a kurzornál található rész rácskoordinátája?</Hungarian>
</Key>
<Key ID="STR_ACE_Map_Module_Description">
<English>This module allows you to customize the map screen.</English>
@ -80,6 +88,7 @@
<German>Dieses Modul erweitert die Kartenfunktionen.</German>
<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>
<Hungarian>Ez a modul lehetővé teszi a térképnézet testreszabását.</Hungarian>
</Key>
<Key ID="STR_ACE_Map_BFT_Module_DisplayName">
<English>Blue Force Tracking</English>
@ -88,6 +97,7 @@
<German>Blue Force Tracking</German>
<Czech>Blue Force Tracking</Czech>
<Portuguese>Rastreio de forças azuis</Portuguese>
<Hungarian>Blue Force követés</Hungarian>
</Key>
<Key ID="STR_ACE_Map_BFT_Enabled_DisplayName">
<English>BFT Enable</English>
@ -95,6 +105,7 @@
<Polish>Aktywuj BFT</Polish>
<Czech>Povolit BFT</Czech>
<Spanish>Activar BFT</Spanish>
<Hungarian>BFT engedélyezése</Hungarian>
</Key>
<Key ID="STR_ACE_Map_BFT_Enabled_Description">
<English>Enable Blue Force Tracking. Default: No</English>
@ -102,6 +113,7 @@
<Polish>Aktywuj Blue Force Tracking. Domyślnie: Nie</Polish>
<Czech>Povolit Blue Force Tracking. Výchozí: Ne</Czech>
<Spanish>Activar Blue Force Tracking. Por defecto: No</Spanish>
<Hungarian>Blue Force követés engedélyezése. Alapértelmezett: Nem</Hungarian>
</Key>
<Key ID="STR_ACE_Map_BFT_Interval_DisplayName">
<English>Interval</English>
@ -110,6 +122,7 @@
<German>Intervall</German>
<Czech>Interval</Czech>
<Portuguese>Intervalo</Portuguese>
<Hungarian>Intervallum</Hungarian>
</Key>
<Key ID="STR_ACE_Map_BFT_Interval_Description">
<English>How often the markers should be refreshed (in seconds)</English>
@ -118,6 +131,7 @@
<German>Wie oft sollen die Markierungen aktualisiert werden (in Sekunden)</German>
<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>
<Hungarian>Milyen gyakran frissüljenek a jelölők (másodpercben)</Hungarian>
</Key>
<Key ID="STR_ACE_Map_BFT_HideAiGroups_DisplayName">
<English>Hide AI groups?</English>
@ -126,6 +140,7 @@
<German>KI-Gruppen verstecken?</German>
<Czech>Skrýt AI skupiny?</Czech>
<Portuguese>Esconder grupos de IA?</Portuguese>
<Hungarian>AI csoportok elrejtése?</Hungarian>
</Key>
<Key ID="STR_ACE_Map_BFT_HideAiGroups_Description">
<English>Hide markers for 'AI only' groups?</English>
@ -134,6 +149,7 @@
<German>Verstecke Marker für "nur KI"-Gruppen?</German>
<Czech>Skrýt značky pouze pro AI skupiny?</Czech>
<Portuguese>Esconder marcadores que pertencem ao grupo de IA?</Portuguese>
<Hungarian>Jelölők elrejtése "csak AI" csoportoknál?</Hungarian>
</Key>
<Key ID="STR_ACE_Map_BFT_Module_Description">
<English>This module allows the tracking of allied units with BFT map markers.</English>
@ -141,6 +157,7 @@
<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>
<Portuguese>Permite que você acompanhe as posições no mapa das unidades aliadas com marcadores RFA.</Portuguese>
<Hungarian>Ez a modul lehetővé teszi a szövetséges egységek követését BFT térképjelzőjkkel.</Hungarian>
</Key>
<Key ID="STR_ACE_Map_Action_Flashlights">
<English>Flashlights</English>
@ -167,4 +184,4 @@
<Polish>Zmniejsz czułość</Polish>
</Key>
</Package>
</Project>
</Project>

View File

@ -14,7 +14,7 @@ class CfgVehicles {
class ACE_MapToolsHide {
displayName = CSTRING(MapToolsHide);
condition = QUOTE((call FUNC(canUseMapTools) && {GVAR(mapTool_Shown) != 0}));
statement = QUOTE(GVAR(mapTool_Shown) = 0; [] call FUNC(updateMapToolMarkers));
statement = QUOTE(GVAR(mapTool_Shown) = 0;);
exceptions[] = {"isNotDragging", "notOnMap", "isNotInside", "isNotSitting"};
showDisabled = 1;
priority = 5;
@ -22,7 +22,7 @@ class CfgVehicles {
class ACE_MapToolsShowNormal {
displayName = CSTRING(MapToolsShowNormal);
condition = QUOTE((call FUNC(canUseMapTools) && {GVAR(mapTool_Shown) != 1}));
statement = QUOTE(GVAR(mapTool_Shown) = 1; [] call FUNC(updateMapToolMarkers));
statement = QUOTE(GVAR(mapTool_Shown) = 1;);
exceptions[] = {"isNotDragging", "notOnMap", "isNotInside", "isNotSitting"};
showDisabled = 1;
priority = 4;
@ -30,7 +30,7 @@ class CfgVehicles {
class ACE_MapToolsShowSmall {
displayName = CSTRING(MapToolsShowSmall);
condition = QUOTE((call FUNC(canUseMapTools) && {GVAR(mapTool_Shown) != 2}));
statement = QUOTE(GVAR(mapTool_Shown) = 2; [] call FUNC(updateMapToolMarkers));
statement = QUOTE(GVAR(mapTool_Shown) = 2;);
exceptions[] = {"isNotDragging", "notOnMap", "isNotInside", "isNotSitting"};
showDisabled = 1;
priority = 3;
@ -38,7 +38,7 @@ class CfgVehicles {
class ACE_MapToolsAlignNorth {
displayName = CSTRING(MapToolsAlignNorth);
condition = QUOTE((call FUNC(canUseMapTools) && {GVAR(mapTool_Shown) != 0}));
statement = QUOTE(GVAR(mapTool_angle) = 0; [] call FUNC(updateMapToolMarkers));
statement = QUOTE(GVAR(mapTool_angle) = 0;);
exceptions[] = {"isNotDragging", "notOnMap", "isNotInside", "isNotSitting"};
showDisabled = 1;
priority = 2;
@ -46,7 +46,7 @@ class CfgVehicles {
class ACE_MapToolsAlignCompass {
displayName = CSTRING(MapToolsAlignCompass);
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;);
exceptions[] = {"isNotDragging", "notOnMap", "isNotInside", "isNotSitting"};
showDisabled = 1;
priority = 1;

View File

@ -26,11 +26,11 @@ GVAR(drawing_controls) = [36732, 36733, 36734, 36735, 36736, 36737];
_fnc_installMapEvents = {
private "_d";
_d = _this;
((finddisplay _d) displayctrl 51) ctrlAddEventHandler ["MouseMoving", {_this call FUNC(handleMouseMove);}];
((finddisplay _d) displayctrl 51) ctrlAddEventHandler ["MouseButtonDown", {[1, _this] call FUNC(handleMouseButton);}];
((finddisplay _d) displayctrl 51) ctrlAddEventHandler ["MouseButtonUp", {[0, _this] call FUNC(handleMouseButton)}];
((finddisplay _d) displayctrl 51) ctrlAddEventHandler ["Draw", {_this call FUNC(updateMapToolMarkers);}];
(finddisplay _d) displayAddEventHandler ["KeyDown", {_this call FUNC(handleKeyDown);}];
((findDisplay _d) displayCtrl 51) ctrlAddEventHandler ["MouseMoving", {_this call FUNC(handleMouseMove);}];
((findDisplay _d) displayCtrl 51) ctrlAddEventHandler ["MouseButtonDown", {[1, _this] call FUNC(handleMouseButton);}];
((findDisplay _d) displayCtrl 51) ctrlAddEventHandler ["MouseButtonUp", {[0, _this] call FUNC(handleMouseButton)}];
((findDisplay _d) displayCtrl 51) ctrlAddEventHandler ["Draw", {_this call FUNC(updateMapToolMarkers);}];
(findDisplay _d) displayAddEventHandler ["KeyDown", {_this call FUNC(handleKeyDown);}];
};
// Wait until the briefing map is detected
@ -64,9 +64,17 @@ GVAR(drawing_controls) = [36732, 36733, 36734, 36735, 36736, 36737];
// Install event handlers on the map control and display (control = 51)
GVAR(drawing_syncMarkers) = false;
12 call _fnc_installMapEvents;
// Update the size and rotation of map tools
[] call FUNC(updateMapToolMarkers);
[FUNC(mapStateUpdater), 0, []] call CBA_fnc_addPerFrameHandler;
};
["visibleMapChanged", {
params ["", "_mapOn"];
if (_mapOn) then {
// Show GPS if required
[GVAR(mapGpsShow)] call FUNC(openMapGps);
} else {
// Hide GPS
[false] call FUNC(openMapGps);
// Cancel drawing
call FUNC(cancelDrawing);
};
}] call EFUNC(common,addEventHandler);

View File

@ -16,7 +16,6 @@ PREP(handleMouseButton);
PREP(handleMouseMove);
PREP(handleMouseZChanged);
PREP(isInsideMapTool);
PREP(mapStateUpdater);
PREP(openMapGps);
PREP(openMapGpsUpdate);
PREP(removeLineMarker);

View File

@ -15,7 +15,7 @@
*/
#include "script_component.hpp"
PARAMS_4(_name,_startPos,_endPos,_color);
params ["_name", "_startPos", "_endPos", "_color"];
private ["_marker", "_difPos", "_mag"];

View File

@ -14,7 +14,7 @@
private ["_screenOffset", "_pos"];
_pos = ((finddisplay 12) displayctrl 51) ctrlMapScreenToWorld [0.5, 0.5];
_screenOffset = ((finddisplay 12) displayctrl 51) posWorldToScreen [(_pos select 0) + 100, (_pos select 1)];
_pos = ((findDisplay 12) displayCtrl 51) ctrlMapScreenToWorld [0.5, 0.5];
_screenOffset = ((findDisplay 12) displayCtrl 51) posWorldToScreen [(_pos select 0) + 100, (_pos select 1)];
(_screenOffset select 0) - 0.5

View File

@ -12,7 +12,7 @@
*/
#include "script_component.hpp"
PARAMS_1(_lineMarkers);
params ["_lineMarkers"];
{
private "_marker";

View File

@ -12,6 +12,6 @@
#include "script_component.hpp"
PARAMS_1(_requester);
params ["_requester"];
["drawing_sendbackMarkers", _requester, [GVAR(drawing_lineMarkers)]] call EFUNC(common,targetEvent);

View File

@ -17,6 +17,6 @@
#include "script_component.hpp"
PARAMS_1(_player,_target);
params ["_player", "_target"];
["drawing_requestMarkers", _target, [_player]] call EFUNC(common,targetEvent);

View File

@ -15,11 +15,12 @@
#include "script_component.hpp"
PARAMS_5(_display,_code,_shiftKey,_ctrlKey,_altKey);
params ["", "_code"];
TRACE_1("params",_code);
private ["_handled", "_relPos", "_diffVector", "_magDiffVector", "_lambdaLong", "_lambdaTrasAbs"];
_handled = false;
_handled = false;
#define DIK_ESCAPE 0x01
#define DIK_DELETE 0xD3
@ -30,6 +31,7 @@ if (_code == DIK_ESCAPE) exitWith {
call FUNC(cancelDrawing);
_handled = true;
};
_handled
};
if (_code == DIK_DELETE) exitWith {
@ -65,6 +67,7 @@ if (_code == DIK_DELETE) exitWith {
};
} forEach GVAR(drawing_lineMarkers);
};
_handled
};
_handled

View File

@ -1,6 +1,5 @@
/*
* Author: esteldunedain
*
* Handle mouse buttons.
*
* Argument:
@ -13,46 +12,39 @@
#include "script_component.hpp"
private ["_control", "_button", "_screenPos", "_shiftKey", "_ctrlKey", "_handled", "_pos", "_altKey", "_gui", "_marker"];
params ["_dir", "_params"];
_params params ["_control", "_button", "_screenPosX", "_screenPosY", "_shiftKey", "_ctrlKey", "_altKey"];
TRACE_2("params",_dir,_params);
PARAMS_2(_dir,_params);
_control = _params select 0;
_button = _params select 1;
_screenPos = [_params select 2, _params select 3];
_shiftKey = _params select 4;
_ctrlKey = _params select 5;
_altKey = _params select 6;
_handled = false;
private["_gui", "_handled", "_marker", "_pos"];
_handled = false;
// If it's not a left button event, exit
if (_button != 0) exitWith {};
if (_button != 0) exitWith {_handled};
// If releasing
if (_dir != 1 && (GVAR(mapTool_isDragging) or GVAR(mapTool_isRotating))) exitWith {
GVAR(mapTool_isDragging) = false;
GVAR(mapTool_isRotating) = false;
_handled = true;
_handled
};
// If clicking
if (_dir == 1) exitWith {
if (_dir != 1) then {
if (GVAR(mapTool_isDragging) || GVAR(mapTool_isRotating)) then {
GVAR(mapTool_isDragging) = false;
GVAR(mapTool_isRotating) = false;
_handled = true;
};
} else {
// If clicking
if !(call FUNC(canDraw)) exitWith {_handled = false;};
// Transform mouse screen position to coordinates
_pos = _control ctrlMapScreenToWorld _screenPos;
_pos = _control ctrlMapScreenToWorld [_screenPosX, _screenPosY];
_pos set [count _pos, 0];
if (GVAR(drawing_isDrawing)) exitWith {
// Already drawing -> Add tempLineMarker to permanent list
if (GVAR(drawing_syncMarkers)) then {
deleteMarkerLocal (GVAR(drawing_tempLineMarker) select 0);
// [GVAR(drawing_tempLineMarker), "FUNC(addLineMarker)", 2] call EFUNC(common,execRemoteFnc);
["drawing_addLineMarker", GVAR(drawing_tempLineMarker)] call EFUNC(common,globalEvent);
// Log who drew on the briefing screen
(text format ["[ACE] Server: Player %1 drew on the briefing screen", name player]) call EFUNC(common,serverLog);
(text format ["[ACE] Server: Player %1 drew on the briefing screen", profileName]) call EFUNC(common,serverLog);
} else {
GVAR(drawing_tempLineMarker) call FUNC(updateLineMarker);
GVAR(drawing_lineMarkers) pushBack (+GVAR(drawing_tempLineMarker));
@ -96,6 +88,9 @@ if (_dir == 1) exitWith {
};
_handled = true;
};
_handled
};
diag_log text format ["HJa %1", _handled];
_handled

View File

@ -1,6 +1,5 @@
/*
* Author: esteldunedain
*
* Handle mouse movement over the map tool.
*
* Argument:
@ -13,11 +12,12 @@
#include "script_component.hpp"
params ["_control", "_mousePosX", "_mousePosY"];
TRACE_3("params",_control,_mousePosX,_mousePosY);
private ["_control", "_pos"];
_control = _this select 0;
_pos = [_this select 1, _this select 2];
GVAR(mousePosition) = _control ctrlMapScreenToWorld _pos;
GVAR(mousePosition) = _control ctrlMapScreenToWorld [_mousePosX, _mousePosY];
GVAR(mousePosition) set [2, 0]; //convert 2d pos to 3d
// If cannot draw then exit
@ -32,6 +32,7 @@ if !(call FUNC(canDraw)) exitWith {
// Handle drawing
if (GVAR(drawing_isDrawing)) exitWith {
GVAR(drawing_tempLineMarker) set [2, GVAR(mousePosition)];
TRACE_1("updating line pos",GVAR(mousePosition));
GVAR(drawing_tempLineMarker) call FUNC(updateLineMarker);
false
};
@ -44,8 +45,6 @@ if (GVAR(mapTool_isDragging)) exitWith {
GVAR(mapTool_pos) set [0, (GVAR(mapTool_startPos) select 0) + (GVAR(mousePosition) select 0) - (GVAR(mapTool_startDragPos) select 0)];
GVAR(mapTool_pos) set [1, (GVAR(mapTool_startPos) select 1) + (GVAR(mousePosition) select 1) - (GVAR(mapTool_startDragPos) select 1)];
// Update the size and rotation of the maptool
[] call FUNC(updateMapToolMarkers);
true
};
@ -56,8 +55,6 @@ if (GVAR(mapTool_isRotating)) exitWith {
_angle = (180 + ((GVAR(mousePosition) select 0) - (GVAR(mapTool_startPos) select 0)) atan2 ((GVAR(mousePosition) select 1) - (GVAR(mapTool_startPos) select 1)) mod 360);
GVAR(mapTool_angle) = GVAR(mapTool_startAngle) + _angle - GVAR(mapTool_startDragAngle);
// Update the size and rotation of the maptool
[] call FUNC(updateMapToolMarkers);
true
};

View File

@ -1,33 +0,0 @@
#include "script_component.hpp"
if (visibleMap) then {
// Show/Hide draw buttons
if ("ACE_MapTools" in items ACE_player) then {
{ ((finddisplay 12) displayctrl _x) ctrlShow true; } forEach GVAR(drawing_controls);
} else {
{ ((finddisplay 12) displayctrl _x) ctrlShow false; } forEach GVAR(drawing_controls);
if (GVAR(drawing_isDrawing)) then {
call FUNC(cancelDrawing);
};
};
};
//When Map is Closed:
if (GVAR(mapVisableLastFrame) && (!visibleMap)) then {
GVAR(mapVisableLastFrame) = false;
// Hide GPS
[false] call FUNC(openMapGps);
// Cancel drawing
call FUNC(cancelDrawing);
};
//When Map is Opened:
if ((!GVAR(mapVisableLastFrame)) && (visibleMap)) then {
//todo: "mapOpened" Event????
GVAR(mapVisableLastFrame) = true;
// Show and update map tools if required
[] call FUNC(updateMapToolMarkers);
// Show GPS if required
[GVAR(mapGpsShow)] call FUNC(openMapGps);
};

View File

@ -12,7 +12,7 @@
*/
#include "script_component.hpp"
PARAMS_1(_shouldOpenGps);
params ["_shouldOpenGps"];
private ["_isOpen"];

View File

@ -11,7 +11,7 @@
#include "script_component.hpp"
PARAMS_1(_name);
params ["_name"];
deleteMarkerLocal _name;
{

View File

@ -13,7 +13,8 @@
*/
#include "script_component.hpp"
PARAMS_4(_name,_startPos,_endPos,_color);
params ["_name", "_startPos", "_endPos", "_color"];
TRACE_4("params",_name,_startPos,_endPos,_color);
private ["_difPos", "_mag"];

View File

@ -16,10 +16,20 @@
#define CENTER_OFFSET_Y_PERC 0.1606
#define CONSTANT_SCALE 0.2
PARAMS_1(_theMap);
params ["_theMap"];
private ["_rotatingTexture", "_textureWidth", "_scale", "_xPos", "_yPos"];
// Show/Hide draw buttons
if ([] call FUNC(canDraw)) then {
{ ((findDisplay 12) displayCtrl _x) ctrlShow true; } forEach GVAR(drawing_controls);
} else {
{ ((findDisplay 12) displayCtrl _x) ctrlShow false; } forEach GVAR(drawing_controls);
if (GVAR(drawing_isDrawing)) then {
call FUNC(cancelDrawing);
};
};
if (!("ACE_MapTools" in items ACE_player)|| {GVAR(mapTool_Shown) == 0}) exitWith {};
_rotatingTexture = "";

View File

@ -1593,6 +1593,7 @@
<German>Keine</German>
<Czech>Žádný</Czech>
<Portuguese>Nada</Portuguese>
<Hungarian>Nincs</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_Check_Pulse_Weak">
<English>Weak</English>
@ -2217,6 +2218,7 @@
<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>
<Hungarian>A kötözés eltávolítja a vérfoltokat</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_painIsOnlySuppressed">
<English>Pain is only temporarily suppressed</English>
@ -2225,6 +2227,7 @@
<Czech>Bolest je potlačena pouze dočasně</Czech>
<Spanish>El dolor se suprime solo temporalmente</Spanish>
<Portuguese>Dor é suprimida somente temporáriamente</Portuguese>
<Hungarian>A fájdalom csak ideiglenesen csökken</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_painEffectType">
<English>Pain Effect Type</English>
@ -2738,6 +2741,7 @@
<German>ACE-Medicsystem</German>
<Czech>ACE Zdravotnické</Czech>
<Portuguese>ACE Médico</Portuguese>
<Hungarian>ACE Orvosi Rendszer</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_Module_DisplayName">
<English>Medical Settings [ACE]</English>
@ -2747,6 +2751,7 @@
<German>Medizinische Einstellungen [ACE]</German>
<Czech>Lékařské nastavení [ACE]</Czech>
<Portuguese>Ajustes médicos [ACE]</Portuguese>
<Hungarian>Orvosi beállítások [ACE]</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_level_DisplayName">
<English>Medical Level</English>
@ -2756,6 +2761,7 @@
<German>Medizinisches Level</German>
<Czech>Úroveň medického</Czech>
<Portuguese>Nível médico</Portuguese>
<Hungarian>Orvosi szint</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_level_Description">
<English>What is the medical simulation level?</English>
@ -2765,6 +2771,7 @@
<German>Wie hoch soll das medizinische Simulationslevel sein?</German>
<Czech>Jaká je úroveň lékařské simulace?</Czech>
<Portuguese>Qual o nível de simulação médica?</Portuguese>
<Hungarian>Milyen komplex legyen az orvosi szimuláció?</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_basic">
<English>Basic</English>
@ -2774,6 +2781,7 @@
<German>Standard</German>
<Czech>Základní</Czech>
<Portuguese>Básica</Portuguese>
<Hungarian>Alap</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_advanced">
<English>Advanced</English>
@ -2783,6 +2791,7 @@
<German>Erweitert</German>
<Czech>Pokročilé</Czech>
<Portuguese>Avançada</Portuguese>
<Hungarian>Fejlett</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_medicSetting_DisplayName">
<English>Medics setting</English>
@ -2792,6 +2801,7 @@
<German>Medizinische Einstellungen</German>
<Czech>Úroveň zdravotníků</Czech>
<Portuguese>Configuração médica</Portuguese>
<Hungarian>Orvosok beállítása</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_medicSetting_Description">
<English>What is the level of detail prefered for medics?</English>
@ -2800,6 +2810,7 @@
<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>
<Portuguese>Qual o nível de detalhe preferido para os médicos?</Portuguese>
<Hungarian>Mi a javasolt részletesség orvosok számára?</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_medicSetting_disable">
<English>Disable medics</English>
@ -2809,6 +2820,7 @@
<German>Sanitäter deaktivieren</German>
<Czech>Zakázat zdravotníky</Czech>
<Portuguese>Desativar médicos</Portuguese>
<Hungarian>Orvosok letiltása</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_allowLitterCreation_DisplayName">
<English>Enable Litter</English>
@ -2818,6 +2830,7 @@
<German>Abfälle aktivieren</German>
<Czech>Povolit odpadky</Czech>
<Portuguese>Ativar lixo médico</Portuguese>
<Hungarian>Szemét engedélyezése</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_allowLitterCreation_Description">
<English>Enable litter being created upon treatment</English>
@ -2827,6 +2840,7 @@
<German>Aktiviere Abfälle, wenn eine Behandlung durchgeführt wurde</German>
<Czech>Vytváří odpad zdravotnického materiálu pří léčení</Czech>
<Portuguese>Ativar lixo ser criado após tratamento</Portuguese>
<Hungarian>Engedélyezi a szemét keletkezését ellátáskor</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_litterCleanUpDelay_DisplayName">
<English>Life time of litter objects</English>
@ -2836,6 +2850,7 @@
<German>Dauer des angezeigten Abfalls</German>
<Czech>Životnost pro odpadky</Czech>
<Portuguese>Tempo de vida dos objetos do lixo</Portuguese>
<Hungarian>Szemétobjektumok élettartama</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_litterCleanUpDelay_Description">
<English>How long should litter objects stay? In seconds. -1 is forever.</English>
@ -2845,6 +2860,7 @@
<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>
<Portuguese>Quanto tempo os objetos do lixo devem ficar? Em segundos. -1 é para sempre.</Portuguese>
<Hungarian>Milyen sokáig legyenek jelen a szemétobjektumok (másodpercben)? A -1 végtelen időt jelent.</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_enableScreams_DisplayName">
<English>Enable Screams</English>
@ -2854,6 +2870,7 @@
<German>Schreie aktivieren</German>
<Czech>Povolit křik</Czech>
<Portuguese>Ativar gritos</Portuguese>
<Hungarian>Kiáltások engedélyezése</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_enableScreams_Description">
<English>Enable screaming by injuried units</English>
@ -2863,6 +2880,7 @@
<German>Aktiviere Schreie bei verletzten Einheiten</German>
<Czech>Povolit křičení zraněných jednotek</Czech>
<Portuguese>Ativa gritos para unidades feridas</Portuguese>
<Hungarian>Engedélyezi a sérült egységek kiáltásait</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_playerDamageThreshold_DisplayName">
<English>Player Damage</English>
@ -2872,6 +2890,7 @@
<German>Spielerschaden</German>
<Czech>Poškození hráče</Czech>
<Portuguese>Dano do jogador</Portuguese>
<Hungarian>Játékos sérülés</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_playerDamageThreshold_Description">
<English>What is the damage a player can take before being killed?</English>
@ -2881,6 +2900,7 @@
<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>
<Portuguese>Qal é o dano que um jogador pode sofrer antes de morrer?</Portuguese>
<Hungarian>Mennyi sérülést szenvedhet el egy játékos, mielőtt meghal?</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_AIDamageThreshold_DisplayName">
<English>AI Damage</English>
@ -2890,6 +2910,7 @@
<German>KI-Schaden</German>
<Czech>Poškození AI</Czech>
<Portuguese>Dano da IA</Portuguese>
<Hungarian>AI sérülés</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_AIDamageThreshold_Description">
<English>What is the damage an AI can take before being killed?</English>
@ -2899,6 +2920,7 @@
<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>
<Portuguese>Qual é o dano que uma IA pode sofrer antes de morrer?</Portuguese>
<Hungarian>Mennyi sérülést szenvedhet el egy AI, mielőtt meghal?</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_enableUnconsciousnessAI_DisplayName">
<English>AI Unconsciousness</English>
@ -2908,6 +2930,7 @@
<German>KI-Bewusstlosigkeit</German>
<Czech>Bezvědomí AI</Czech>
<Portuguese>Inconsciência da IA</Portuguese>
<Hungarian>AI eszméletlenség</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_enableUnconsciousnessAI_Description">
<English>Allow AI to go unconscious</English>
@ -2917,6 +2940,7 @@
<German>KI kann bewusstlos werden</German>
<Czech>Umožňuje AI upadnout do bezvědomí</Czech>
<Portuguese>Permite IA ficar inconsciente</Portuguese>
<Hungarian>Engedélyezi az AI eszméletének elvesztését</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_remoteControlledAI_DisplayName">
<English>Remote Controlled AI</English>
@ -2924,6 +2948,7 @@
<Portuguese>IA controlada remotamente</Portuguese>
<Polish>Zdalnie sterowane AI</Polish>
<Czech>Vzdáleně ovládané AI</Czech>
<Hungarian>Távvezérelt AI</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_remoteControlledAI_Description">
<English>Treat remote controlled units as AI not players?</English>
@ -2931,6 +2956,7 @@
<Portuguese>Tratar unidades remotamente controladas como IA?</Portuguese>
<Polish>Traktuj jednostki zdalnie sterowane (przez Zeusa) jako AI, nie jako graczy?</Polish>
<Czech>Ošetřit vzdáleně ovládané jednotky jako AI, ne jako hráče?</Czech>
<Hungarian>Távvezérelt egységek AI-ként, nem játékosként való kezelése?</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_preventInstaDeath_DisplayName">
<English>Prevent instant death</English>
@ -2940,6 +2966,7 @@
<German>Verhindere direkten Tod</German>
<Czech>Zabránit okamžité smrti</Czech>
<Portuguese>Previnir morte instantânea</Portuguese>
<Hungarian>Azonnali halál kiiktatása</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_preventInstaDeath_Description">
<English>Have a unit move to unconscious instead of death</English>
@ -2949,6 +2976,7 @@
<German>Lässt eine Einheit bewusstlos werden anstatt zu sterben</German>
<Czech>Jednotka upadne do bezvědomí namísto smrti</Czech>
<Portuguese>Fazer a unidade ficar inconsciente invés de morrer</Portuguese>
<Hungarian>Egy egység kerüljön eszméletlen állapotba a halott helyett</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_bleedingCoefficient_DisplayName">
<English>Bleeding coefficient</English>
@ -2958,6 +2986,7 @@
<German>Verblutungsmultiplikator</German>
<Czech>Koeficient krvácení</Czech>
<Portuguese>Coeficiente de sangramento</Portuguese>
<Hungarian>Vérzési koefficiens</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_bleedingCoefficient_Description">
<English>Coefficient to modify the bleeding speed</English>
@ -2967,6 +2996,7 @@
<German>Multiplikator um die Verblutungsgeschwindigkeit zu verändern</German>
<Czech>Koeficient rychlosti krvácení</Czech>
<Portuguese>Coeficiente para modificar a velocidade do sangramento</Portuguese>
<Hungarian>Egy szorzó a vérzés sebességének szabályozására</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_painCoefficient_DisplayName">
<English>Pain coefficient</English>
@ -2976,6 +3006,7 @@
<German>Schmerzmultiplikator</German>
<Czech>Koeficient bolesti</Czech>
<Portuguese>Coeficiente de dor</Portuguese>
<Hungarian>Fájdalmi koefficiens</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_painCoefficient_Description">
<English>Coefficient to modify the pain intensity</English>
@ -2985,6 +3016,7 @@
<German>Multiplikator um den Schmerzintensität zu verändern</German>
<Czech>Koeficient intenzity bolesti</Czech>
<Portuguese>Coeficiente para modificar a instensidade de dor</Portuguese>
<Hungarian>Egy szorzó a fájdalom erősségének szabályozására</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_keepLocalSettingsSynced_DisplayName">
<English>Sync status</English>
@ -2994,6 +3026,7 @@
<German>Status synchronisieren</German>
<Czech>Synchronizovat status</Czech>
<Portuguese>Sincronizar estado</Portuguese>
<Hungarian>Szinkronizációs állapot</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_keepLocalSettingsSynced_Description">
<English>Keep unit status synced. Recommended on.</English>
@ -3003,6 +3036,7 @@
<German>Status der Einheit synchron halten. Sollte aktiviert bleiben.</German>
<Czech>Udržuje status jednotky synchronizovaný. Doporučeno zapnout.</Czech>
<Portuguese>Mater o estado da unidade sincronizado. Recomendado ativado.</Portuguese>
<Hungarian>Egységállapotok szinkronizálása. Javasolt a bekapcsolása.</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_Module_Description">
<English>Provides a medical system for both players and AI.</English>
@ -3012,6 +3046,7 @@
<German>Aktiviert ein medizinisches System für Spieler und KI.</German>
<Czech>Poskytuje zdravotní systém pro hráče a AI.</Czech>
<Portuguese>Proporciona o sistema médico para os jogadores e a IA.</Portuguese>
<Hungarian>Egy orvosi rendszert ad játékosok és AI-k számára.</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_Module_DisplayName">
<English>Advanced Medical Settings [ACE]</English>
@ -3021,6 +3056,7 @@
<German>Erweiterte medizinische Einstellungen [ACE]</German>
<Czech>Pokročilé zdravotnické nastavení [ACE]</Czech>
<Portuguese>Ajustes médicos avançados [ACE]</Portuguese>
<Hungarian>Fejlett orvosi beállítások [ACE]</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_enableFor_DisplayName">
<English>Enabled for</English>
@ -3030,6 +3066,7 @@
<German>Aktiviert für</German>
<Czech>Povoleno pro</Czech>
<Portuguese>Habilitado para</Portuguese>
<Hungarian>Engedélyezve...</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_enableFor_Description">
<English>Select what units the advanced medical system will be enabled for</English>
@ -3039,6 +3076,7 @@
<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>
<Portuguese>Selecione quais unidades o sistema médico avançado será habilitado</Portuguese>
<Hungarian>Kiválasztható, mely egységek számára legyen engedélyezve a fejlett orvosi rendszer</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_playeronly">
<English>Players only</English>
@ -3048,6 +3086,7 @@
<German>Nur Spieler</German>
<Czech>Pouze hráči</Czech>
<Portuguese>Somente jogadores</Portuguese>
<Hungarian>Csak játékosok</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_playersandai">
<English>Players and AI</English>
@ -3057,6 +3096,7 @@
<German>Spieler und KI</German>
<Czech>Hráči a AI</Czech>
<Portuguese>Jogadores e IA</Portuguese>
<Hungarian>Játékosok és AI</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_enableAdvancedWounds_DisplayName">
<English>Enable Advanced wounds</English>
@ -3066,6 +3106,7 @@
<German>Aktiviere erweiterte Wunden</German>
<Czech>Povolit pokročilé zranění</Czech>
<Portuguese>Ativar ferimentos avançados</Portuguese>
<Hungarian>Komplex sebek engedélyezése</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_enableAdvancedWounds_Description">
<English>Allow reopening of bandaged wounds?</English>
@ -3075,6 +3116,7 @@
<German>Erlaube das Öffnen von bandagierten Wunden?</German>
<Czech>Umožnit znovuotevření zavázané rány?</Czech>
<Portuguese>Permitr reabertura de ferimentos enfaixados?</Portuguese>
<Hungarian>Visszanyílhatnak a bekötözött sebek?</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_enableVehicleCrashes_DisplayName">
<English>Vehicle Crashes</English>
@ -3084,6 +3126,7 @@
<German>Fahrzeugunfälle</German>
<Czech>Poškození z kolize</Czech>
<Portuguese>Batidas de veículos</Portuguese>
<Hungarian>Járműbalesetek</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_enableVehicleCrashes_Description">
<English>Do units take damage from a vehicle crash?</English>
@ -3093,6 +3136,7 @@
<German>Bekommen Einheiten von Fahrzeugunfällen Schaden?</German>
<Czech>Dostane jednotka poškození při autonehodě?</Czech>
<Portuguese>As unidades recebem dano de uma batida de veículo?</Portuguese>
<Hungarian>Sérülnek-e az egységek autós ütközés során?</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_medicSetting_PAK_DisplayName">
<English>Allow PAK</English>
@ -3102,6 +3146,7 @@
<German>Erlaube Erste-Hilfe-Set</German>
<Czech>Povolit osobní lékárničky</Czech>
<Portuguese>Permitir Kit de Primeiros Socorros</Portuguese>
<Hungarian>Elsősegélycsomag engedélyezése</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_medicSetting_PAK_Description">
<English>Who can use the PAK for full heal?</English>
@ -3111,6 +3156,7 @@
<German>Wer kann das Erste-Hilfe-Set für eine Endheilung verwenden?</German>
<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>
<Hungarian>Ki használhatja az elsősegélycsomagot teljes gyógyításra?</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_anyone">
<English>Anyone</English>
@ -3120,6 +3166,7 @@
<German>Jeder</German>
<Czech>Kdokoliv</Czech>
<Portuguese>Qualquer um</Portuguese>
<Hungarian>Akárki</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_Medic">
<English>Medics only</English>
@ -3129,6 +3176,7 @@
<German>Nur Sanitäter</German>
<Czech>Pouze zdravotník</Czech>
<Portuguese>Somente médicos</Portuguese>
<Hungarian>Csak orvosok</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_Special">
<English>Doctors only</English>
@ -3138,6 +3186,7 @@
<German>Nur Ärzte</German>
<Czech>Pouze doktor</Czech>
<Portuguese>Somente doutores</Portuguese>
<Hungarian>Csak doktorok</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_consumeItem_PAK_DisplayName">
<English>Remove PAK on use</English>
@ -3147,6 +3196,7 @@
<German>Entferne Erste-Hilfe-Set bei Verwendung</German>
<Czech>Odebrat osobní lékárničku po použití</Czech>
<Portuguese>Remover o KPS depois do uso</Portuguese>
<Hungarian>Elsősegélycsomag eltávolítása használatkor</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_consumeItem_PAK_Description">
<English>Should PAK be removed on usage?</English>
@ -3156,6 +3206,7 @@
<German>Sollen Erste-Hilfe-Sets bei Verwendung entfernt werden?</German>
<Czech>Má se osobní lékárnička odstranit po použití?</Czech>
<Portuguese>Deve o KPS ser removido depois do uso?</Portuguese>
<Hungarian>Eltávolítódjon az elsősegélycsomag használatkor?</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_useLocation_PAK_DisplayName">
<English>Locations PAK</English>
@ -3165,6 +3216,7 @@
<German>Orte für Erste-Hilfe-Set</German>
<Czech>Lokace osobní lékárničky</Czech>
<Portuguese>Localizações do KPS</Portuguese>
<Hungarian>Elsősegélycsomag helyek</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_useLocation_PAK_Description">
<English>Where can the Personal Aid Kit be used?</English>
@ -3174,18 +3226,23 @@
<German>Wo kann das Erste-Hilfe-Set verwendet werden?</German>
<Czech>Kde může být použita osobní lékárnička?</Czech>
<Portuguese>Onde o kit de primeiros socorros pode ser utilizado?</Portuguese>
<Hungarian>Hol lehet az elsősegélycsomagot használni?</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_useCondition_PAK_DisplayName">
<English>Condition PAK</English>
<Czech>Podmínka osobní lékárničky</Czech>
<Spanish>Condición EPA</Spanish>
<Polish>Warunek apteczek</Polish>
<Hungarian>Elsősegélycsomag állapot</Hungarian>
<Portuguese>Condição do KPS</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_useCondition_PAK_Description">
<English>When can the Personal Aid Kit be used?</English>
<Czech>Kde může být použita osobní lékárnička?</Czech>
<Spanish>¿Cuando se puede utilizar el Equipo de primeros auxilios?</Spanish>
<Polish>Po spełnieniu jakich warunków apteczka osobista może zostać zastosowana na pacjencie?</Polish>
<Hungarian>Mikor lehet az elsősegélycsomagot használni?</Hungarian>
<Portuguese>Onde o kit de primeiros socorros pode ser utilizado?</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_anywhere">
<English>Anywhere</English>
@ -3195,6 +3252,7 @@
<German>Überall</German>
<Czech>Kdekoliv</Czech>
<Portuguese>Qualquer lugar</Portuguese>
<Hungarian>Akárhol</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_vehicle">
<English>Medical vehicles</English>
@ -3204,6 +3262,7 @@
<German>Medizinische Fahrzeuge</German>
<Czech>Zdravotnická vozidla</Czech>
<Portuguese>Veículos médcos</Portuguese>
<Hungarian>Orvosi járművek</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_facility">
<English>Medical facility</English>
@ -3213,6 +3272,7 @@
<German>Medizinische Einrichtungen</German>
<Czech>Zdravotnické zařízení</Czech>
<Portuguese>Instalação médica</Portuguese>
<Hungarian>Orvosi létesítmény</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_vehicleAndFacility">
<English>Vehicles &amp; facility</English>
@ -3222,6 +3282,7 @@
<German>Fahrzeuge &amp; Einrichtungen</German>
<Czech>Vozidla a zařízení</Czech>
<Portuguese>Veículos e instalações</Portuguese>
<Hungarian>Járművek &amp; létesítmény</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_medicSetting_SurgicalKit_DisplayName">
<English>Allow Surgical kit (Adv)</English>
@ -3231,6 +3292,7 @@
<German>Erlaube Operationskasten</German>
<Czech>Povolit chirurgickou soupravu (Pokr.)</Czech>
<Portuguese>Permite kit cirúrgico (avançado)</Portuguese>
<Hungarian>Sebészkészlet (Fejlett) engedélyezése</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_medicSetting_SurgicalKit_Description">
<English>Who can use the surgical kit?</English>
@ -3240,6 +3302,7 @@
<German>Wer kann den Operationskasten verwenden?</German>
<Czech>Kdo může použít chirurgickou soupravu?</Czech>
<Portuguese>Quem pode usar o kit cirúrgico?</Portuguese>
<Hungarian>Ki használhatja a sebészkészletet?</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_consumeItem_SurgicalKit_DisplayName">
<English>Remove Surgical kit (Adv)</English>
@ -3249,6 +3312,7 @@
<German>Enrtferne Operationskasten (erweitert)</German>
<Czech>Odebrat chirurgickou soupravu (Pokr.)</Czech>
<Portuguese>Remover kit cirúrgico (avançado)</Portuguese>
<Hungarian>Sebészkészlet (Fejlett) eltávolítása</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_consumeItem_SurgicalKit_Description">
<English>Should Surgical kit be removed on usage?</English>
@ -3258,6 +3322,7 @@
<German>Entferne Operationskästen bei Verwendung?</German>
<Czech>Odebrat chirurgickou soupravu po použití?</Czech>
<Portuguese>Deve o kit cirúrgico ser removido após o uso?</Portuguese>
<Hungarian>Eltávolítódjon a sebészkészlet használatkor?</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_useLocation_SurgicalKit_DisplayName">
<English>Locations Surgical kit (Adv)</English>
@ -3267,6 +3332,7 @@
<German>Orte für Operationskästen (erweitert)</German>
<Czech>Lokace chirurgické soupravy (Pokr.)</Czech>
<Portuguese>Localizações do kit cirúrgico (avançado)</Portuguese>
<Hungarian>Sebészkészlet (Fejlett) helyei</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_useLocation_SurgicalKit_Description">
<English>Where can the Surgical kit be used?</English>
@ -3276,18 +3342,23 @@
<German>Wo kann der Operationskasten verwendet werden?</German>
<Czech>Kde může být použita chirurgická souprava?</Czech>
<Portuguese>Onde o kit cirúrgico pode ser utilizado?</Portuguese>
<Hungarian>Hol lehet a sebészkészletet használni?</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_useCondition_SurgicalKit_DisplayName">
<English>Condition Surgical kit (Adv)</English>
<Czech>Podmínka chirurgické soupravy (Pokr.)</Czech>
<Spanish>Condición de equipo quirúrgico (Av)</Spanish>
<Polish>Warunek zestawu chir.</Polish>
<Hungarian>Sebészkészlet állapot</Hungarian>
<Portuguese>Condição do Kit Cirúrgico (Avançado)</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_useCondition_SurgicalKit_Description">
<English>When can the Surgical kit be used?</English>
<Czech>Kde může být použita chirurgická souprava?</Czech>
<Spanish>¿Cuando se puede utilizar el equipo quirúrgico?</Spanish>
<Polish>Po spełnieniu jakich warunków zestaw chirurgiczny może zostać zastosowany na pacjencie?</Polish>
<Hungarian>Mikor lehet a sebészkészletet használni?</Hungarian>
<Portuguese>Onde o kit cirúrgico pode ser utilizado?</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_healHitPointAfterAdvBandage_DisplayName">
<English>Bloodstains</English>
@ -3296,6 +3367,7 @@
<Czech>Skvrny od krve</Czech>
<Spanish>Manchas de sangre</Spanish>
<Portuguese>Manchas de sangue</Portuguese>
<Hungarian>Vérfoltok</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_healHitPointAfterAdvBandage_Description">
<English>Bandaging removes bloodstains</English>
@ -3304,6 +3376,7 @@
<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>
<Hungarian>Kötözés eltávolítja a vérfoltokat</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_painIsOnlySuppressed_DisplayName">
<English>Pain suppression</English>
@ -3312,6 +3385,7 @@
<Czech>Potlačení bolesti</Czech>
<Spanish>Supresión del dolor</Spanish>
<Portuguese>Supressão de dor</Portuguese>
<Hungarian>Fájdalomcsillapítás</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_painIsOnlySuppressed_Description">
<English>Pain is only temporarily suppressed, not removed</English>
@ -3320,6 +3394,7 @@
<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>
<Hungarian>A fájdalom csak ideiglenesen csökken, nem távolítódik el</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AdvancedMedicalSettings_Module_Description">
<English>Configure the treatment settings from ACE Medical</English>
@ -3329,6 +3404,7 @@
<German>Behandlungseinstellungen vom ACE-Medical konfigurieren</German>
<Czech>Konfigurace nastavení léčby ze zdravotnické systému ACE</Czech>
<Portuguese>Configure as opções de tratamento do ACE Médico</Portuguese>
<Hungarian>Kezelési lehetőségek konfigurálása az ACE Orvosi rendszerből</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_ReviveSettings_Module_DisplayName">
<English>Revive Settings [ACE]</English>
@ -3338,6 +3414,7 @@
<German>Wiederbelebungseinstellungen [ACE]</German>
<Czech>Nastavení oživení [ACE]</Czech>
<Portuguese>Sistema de reavivamento [ACE]</Portuguese>
<Hungarian>Újraélesztés beállításai [ACE]</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_ReviveSettings_enableRevive_DisplayName">
<English>Enable Revive</English>
@ -3347,6 +3424,7 @@
<German>Erlaube Wiederbelebung</German>
<Czech>Povolit oživení</Czech>
<Portuguese>Habilitar reavivamento</Portuguese>
<Hungarian>Újraélesztés engedélyezése</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_ReviveSettings_enableRevive_Description">
<English>Enable a basic revive system</English>
@ -3356,6 +3434,7 @@
<German>Aktiviere Standard-Wiederbelebungssystem</German>
<Czech>Povolit základní systém oživení</Czech>
<Portuguese>Habilitar um sistema básico de reavivamento</Portuguese>
<Hungarian>Egy alap újraélesztési rendszer engedélyezése</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_ReviveSettings_maxReviveTime_DisplayName">
<English>Max Revive time</English>
@ -3365,6 +3444,7 @@
<German>Maximale Wiederbelebungszeit</German>
<Czech>Maximální čas pro oživení</Czech>
<Portuguese>Tempo máximo de reavivamento</Portuguese>
<Hungarian>Maximum újraélesztési idő</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_ReviveSettings_maxReviveTime_Description">
<English>Max amount of seconds a unit can spend in revive state</English>
@ -3374,6 +3454,7 @@
<German>Maximale Zeitspanne in Sekunden die eine Einheit im Wiederbelebungszustand verbringen kann</German>
<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>
<Hungarian>Maximum másodperc, amit egy egység újraélesztési állapotban tölthet</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_ReviveSettings_amountOfReviveLives_DisplayName">
<English>Max Revive lives</English>
@ -3383,6 +3464,7 @@
<German>Maximale Leben bei Wiederbelebung</German>
<Czech>Maximální počet oživení</Czech>
<Portuguese>Vidas máximas do reavivado</Portuguese>
<Hungarian>Maximum újraélesztési lehetőségek</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_ReviveSettings_amountOfReviveLives_Description">
<English>Max amount of lives a unit. 0 or -1 is disabled.</English>
@ -3392,6 +3474,7 @@
<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>
<Portuguese>Quantidade máxima de vidas por unidade. 0 ou -1 é desativado.</Portuguese>
<Hungarian>Egy egység maximum "életei". 0 vagy -1 letiltja.</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_ReviveSettings_Module_Description">
<English>Provides a medical system for both players and AI.</English>
@ -3401,6 +3484,7 @@
<German>Aktiviert das Medicsystem für Spieler und KI.</German>
<Czech>Poskytuje zdravotní systém pro hráče a AI.</Czech>
<Portuguese>Proporciona um sistema médico para jogadores e IA.</Portuguese>
<Hungarian>Egy orvosi rendszert ad játékosok és AI-k számára.</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AssignMedicRoles_Module_DisplayName">
<English>Set Medic Class [ACE]</English>
@ -3410,6 +3494,7 @@
<German>Setze Sanitäterklassen [ACE]</German>
<Czech>Určit třídu medika [ACE]</Czech>
<Portuguese>Definir classe médica [ACE]</Portuguese>
<Hungarian>Orvos beállítása [ACE]</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AssignMedicRoles_EnableList_DisplayName">
<English>List</English>
@ -3419,6 +3504,7 @@
<German>Liste</German>
<Czech>Seznam</Czech>
<Portuguese>Lista</Portuguese>
<Hungarian>Lista</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AssignMedicRoles_EnableList_Description">
<English>List of unit names that will be classified as medic, separated by commas.</English>
@ -3428,6 +3514,7 @@
<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>
<Portuguese>Lista dos nomes das unidades que se classificam como médicos, separados por vírgulas.</Portuguese>
<Hungarian>Azon egységek nevei, melyek orvosként vannak meghatározva, vesszővel elválasztva.</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AssignMedicRoles_role_DisplayName">
<English>Is Medic</English>
@ -3437,6 +3524,7 @@
<German>Ist Sanitäter</German>
<Czech>Je zdravotník</Czech>
<Portuguese>É médico</Portuguese>
<Hungarian>Orvos-e</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AssignMedicRoles_role_Description">
<English>This module allows you to assign the medic class to selected units.</English>
@ -3444,6 +3532,7 @@
<German>Dieses Modul legt fest welche Einheit ein Sanitäter ist.</German>
<Czech>Tento modul určuje, která jednotka je zdravotník.</Czech>
<Portuguese>Este módulo determina qual unidade é um paramédico.</Portuguese>
<Hungarian>Ez a modul engedélyezi az orvosi jelző hozzárendelését kiválasztott egységekhez.</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AssignMedicRoles_role_none">
<English>None</English>
@ -3453,6 +3542,7 @@
<German>Keine</German>
<Czech>Žádný</Czech>
<Portuguese>Nada</Portuguese>
<Hungarian>Nincs</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AssignMedicRoles_role_medic">
<English>Regular medic</English>
@ -3462,6 +3552,7 @@
<German>Normaler Sanitäter</German>
<Czech>Řadový zdravotník</Czech>
<Portuguese>Médico regular</Portuguese>
<Hungarian>Hagyományos orvos</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AssignMedicRoles_role_doctor">
<English>Doctor (Only Advanced Medics)</English>
@ -3471,6 +3562,7 @@
<German>Arzt (nur erweiterte Sanitäter)</German>
<Czech>Doktor (Pouze pokročilý zdravotníci)</Czech>
<Portuguese>Doutor (Somente médicos avançados)</Portuguese>
<Hungarian>Doktor (csak fejlett orvosok)</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AssignMedicRoles_Module_Description">
<English>Assigns the ACE medic class to a unit</English>
@ -3480,6 +3572,7 @@
<German>Weise die ACE-Sanitäterklasse einer Einheit zu</German>
<Czech>Přiřadí ACE třídu zdravotníka do jednotky</Czech>
<Portuguese>Atribui a classe médica do ACE a uma unidade</Portuguese>
<Hungarian>Az ACE orvosi jelző hozzárendelése egy egységhez</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AssignMedicVehicle_Module_DisplayName">
<English>Set Medical Vehicle [ACE]</English>
@ -3489,6 +3582,7 @@
<German>Setze medizinisches Fahrzeug [ACE]</German>
<Czech>Určit zdravotnické vozidlo [ACE]</Czech>
<Portuguese>Definir veículo médico [ACE]</Portuguese>
<Hungarian>Orvosi jármű beállítása [ACE]</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AssignMedicVehicle_EnableList_DisplayName">
<English>List</English>
@ -3498,6 +3592,7 @@
<German>Liste</German>
<Czech>Seznam</Czech>
<Portuguese>Lista</Portuguese>
<Hungarian>Lista</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AssignMedicVehicle_EnableList_Description">
<English>List of vehicles that will be classified as medical vehicle, separated by commas.</English>
@ -3507,6 +3602,7 @@
<German>Liste von 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>
<Portuguese>Lista de veículos que serão classificados como veículos médicos, separados por vírgulas.</Portuguese>
<Hungarian>Orvosi járműveknek tekintett járművek listája, vesszővel elválasztva.</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AssignMedicVehicle_enabled_DisplayName">
<English>Is Medical Vehicle</English>
@ -3516,6 +3612,7 @@
<German>Ist medizinisches Fahrzeug</German>
<Czech>Je zdravotnické vozidlo</Czech>
<Portuguese>É um veículo médico</Portuguese>
<Hungarian>Orvosi jármű-e</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AssignMedicVehicle_enabled_Description">
<English>Whatever or not the objects in the list will be a medical vehicle.</English>
@ -3525,6 +3622,7 @@
<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>
<Portuguese>Se serão ou não os objetos dessa lista veículos médicos.</Portuguese>
<Hungarian>A listában lévő objektumok orvosi járművek-e, vagy sem.</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AssignMedicVehicle_Module_Description">
<English>Assigns the ACE medic class to a unit</English>
@ -3534,6 +3632,7 @@
<German>Weist die ACE-Sanitäterklasse einer Einheit zu</German>
<Czech>Přiřadí ACE třídu zdravotníka do jednotky</Czech>
<Portuguese>Atribui a classe médica ACE a uma unidade</Portuguese>
<Hungarian>Hozzárendeli az ACE orvosi jelzőt egy egységhez</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AssignMedicalFacility_Module_DisplayName">
<English>Set Medical Facility [ACE]</English>
@ -3543,6 +3642,7 @@
<German>Setze medizinische Einrichtung [ACE]</German>
<Czech>Určit zdravotnické zařízení [ACE]</Czech>
<Portuguese>Definir instalação médica [ACE]</Portuguese>
<Hungarian>Orvosi létesítmény beállítása [ACE]</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AssignMedicalFacility_enabled_DisplayName">
<English>Is Medical Facility</English>
@ -3552,6 +3652,7 @@
<German>Ist eine medizinische Einrichtung</German>
<Czech>Je zdravotnické zařízení</Czech>
<Portuguese>É uma instalação médica</Portuguese>
<Hungarian>Orvosi létesítmény-e</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AssignMedicalFacility_enabled_Description">
<English>Registers an object as a medical facility</English>
@ -3561,6 +3662,7 @@
<German>Definiert ein Objekt als medizinische Einrichtung</German>
<Czech>Registruje objekt jako zdravotnické zařízení</Czech>
<Portuguese>Registra um objeto como instalacão médica</Portuguese>
<Hungarian>Egy objektum orvosi létesítményként való regisztrálása</Hungarian>
</Key>
<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>
@ -3570,6 +3672,7 @@
<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>
<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>
<Hungarian>Egy objektumot orvosi létesítményként határoz meg. Ez fejlett ellátási lehetőségeket engedélyez. Használható járműveken és épületeken.</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_medicalSupplyCrate">
<English>[ACE] Medical Supply Crate (Basic)</English>
@ -3579,6 +3682,7 @@
<German>[ACE] Medizinische Kiste (standard)</German>
<Czech>[ACE] Zdravotnické zásoby (základní)</Czech>
<Portuguese>[ACE] Caixa com suprimentos médicos</Portuguese>
<Hungarian>[ACE] Orvosi láda (Alap)</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_medicalSupplyCrate_advanced">
<English>[ACE] Medical Supply Crate (Advanced)</English>
@ -3588,18 +3692,23 @@
<German>[ACE] Medizinische Kiste (erweitert)</German>
<Czech>[ACE] Zdravotnické zásoby (pokročilé)</Czech>
<Portuguese>[ACE] Caixa com suprimentos médicos (Avançados)</Portuguese>
<Hungarian>[ACE] Orvosi láda (Fejlett)</Hungarian>
</Key>
<Key ID="STR_ACE_Medical_AnyTime">
<English>Anytime</English>
<Czech>Kdykoli</Czech>
<Spanish>Siempre</Spanish>
<Polish>Zawsze</Polish>
<Hungarian>Akármikor</Hungarian>
<Portuguese>Sempre</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_Stable">
<English>Stable</English>
<Czech>Stabilní</Czech>
<Spanish>Estable</Spanish>
<Polish>Po stabilizacji</Polish>
<Hungarian>Stabil</Hungarian>
<Portuguese>Estável</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_Category_Medical">
<English>Medical</English>
@ -3618,4 +3727,4 @@
<Polish>%1 odszedł zbyt daleko, nie można kontynuować leczenia</Polish>
</Key>
</Package>
</Project>
</Project>

View File

@ -308,6 +308,7 @@
<Czech>MicroDAGR - Vyplnění mapy</Czech>
<German>MicroDAGR-Kartenfüllung</German>
<Portuguese>Preenchimento de mapa do MicroDAGR</Portuguese>
<Hungarian>MicroDAGR térképkitöltés</Hungarian>
</Key>
<Key ID="STR_ACE_MicroDAGR_MapDataAvailable_DisplayName">
<English>MicroDAGR Map Fill</English>
@ -316,6 +317,7 @@
<Czech>MicroDAGR - Vyplnění mapy</Czech>
<German>MicroDAGR-Kartenfüllung</German>
<Portuguese>Preenchimento de mapa do MicroDAGR</Portuguese>
<Hungarian>MicroDAGR térképkitöltés</Hungarian>
</Key>
<Key ID="STR_ACE_MicroDAGR_MapDataAvailable_Description">
<English>How much map data is filled on MicroDAGR's</English>
@ -324,6 +326,7 @@
<German>Wie viel Daten auf einem MicroDAGR zu sehen sind</German>
<Czech>Kolik informací je načteno do MicroDAGR?</Czech>
<Portuguese>Quanta informação é preenchida no mapa do MicroDAGR</Portuguese>
<Hungarian>Mennyi térképadatot tartalmaz a MicroDAGR</Hungarian>
</Key>
<Key ID="STR_ACE_MicroDAGR_MapFill_Full">
<English>Full Satellite + Buildings</English>
@ -332,6 +335,7 @@
<German>Satellitenbild + Gebäude</German>
<Czech>Satelit + Budovy</Czech>
<Portuguese>Satélite completo + Edifícios</Portuguese>
<Hungarian>Teljes műholdas + épületek</Hungarian>
</Key>
<Key ID="STR_ACE_MicroDAGR_MapFill_OnlyRoads">
<English>Topographical + Roads</English>
@ -340,6 +344,7 @@
<German>Topografisch + Straßen</German>
<Czech>Topografické + Cesty</Czech>
<Portuguese>Topográfico + Estradas</Portuguese>
<Hungarian>Topográfia + utak</Hungarian>
</Key>
<Key ID="STR_ACE_MicroDAGR_MapFill_None">
<English>None (Cannot use map view)</English>
@ -348,6 +353,7 @@
<German>Keine (kann keine Kartenansicht verwenden)</German>
<Czech>Žádný (Nelze použít zobrazení mapy)</Czech>
<Portuguese>Nada (Não pode usar a tela de mapa)</Portuguese>
<Hungarian>Semmi (nem használható a térképnézet)</Hungarian>
</Key>
<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>
@ -356,6 +362,7 @@
<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>
<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>
<Hungarian>Meghatárroza a MicroDAGR objektumok térképének tartalmát. A kevesebb adat korlátozza a térképnézeti módot az eszközön. &lt;br /&gt;Forrás: microDAGR.pbo</Hungarian>
</Key>
</Package>
</Project>

View File

@ -104,6 +104,7 @@
<German>Aus</German>
<Czech>Vypnout</Czech>
<Portuguese>Desligado</Portuguese>
<Hungarian>Ki</Hungarian>
</Key>
<Key ID="STR_ACE_MissileGuidance_PlayerOnly">
<English>Player Only</English>
@ -112,6 +113,7 @@
<German>Nur Spieler</German>
<Czech>Pouze hráči</Czech>
<Portuguese>Somente jogador</Portuguese>
<Hungarian>Csak játékosok</Hungarian>
</Key>
<Key ID="STR_ACE_MissileGuidance_PlayerAndAi">
<English>Player and AI</English>
@ -120,6 +122,7 @@
<German>Spieler und KI</German>
<Czech>Hráči a AI</Czech>
<Portuguese>Jogador e IA</Portuguese>
<Hungarian>Játékosok és AI</Hungarian>
</Key>
</Package>
</Project>

View File

@ -8,6 +8,7 @@
<German>ACE-Missionsmodule</German>
<Czech>ACE Moduly mise</Czech>
<Portuguese>Módulo de missões ACE</Portuguese>
<Hungarian>ACE küldetési modulok</Hungarian>
</Key>
<Key ID="STR_ACE_MissionModules_AmbianceSounds_DisplayName">
<English>Ambiance Sounds [ACE]</English>
@ -16,6 +17,7 @@
<German>Umgebungsgeräusche [ACE]</German>
<Czech>Zvuky prostředí [ACE]</Czech>
<Portuguese>[ACE] Sons ambientes</Portuguese>
<Hungarian>Ambiens hangok [ACE]</Hungarian>
</Key>
<Key ID="STR_ACE_MissionModules_AmbianceSounds_soundFiles_DisplayName">
<English>Sounds</English>
@ -24,6 +26,7 @@
<German>Sounds</German>
<Czech>Zvuky</Czech>
<Portuguese>Sons</Portuguese>
<Hungarian>Hangok</Hungarian>
</Key>
<Key ID="STR_ACE_MissionModules_AmbianceSounds_soundFiles_Description">
<English>Class names of the ambiance sounds to be played. Seperated by ','</English>
@ -40,6 +43,7 @@
<German>Mindestabstand</German>
<Czech>Minimální vzdálenost</Czech>
<Portuguese>Distância mínima</Portuguese>
<Hungarian>Minimális távolság</Hungarian>
</Key>
<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>
@ -48,6 +52,7 @@
<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>
<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>
<Hungarian>Egy véletlenszerű pozíció számításához használt érték, amihez megadja a minimum távolságot a játékosok és a lejátszott hangfájl(ok) között</Hungarian>
</Key>
<Key ID="STR_ACE_MissionModules_AmbianceSounds_maximalDistance_DisplayName">
<English>Maximum Distance</English>
@ -56,6 +61,7 @@
<German>Maximalabstand</German>
<Czech>Maximální vzdálenost</Czech>
<Portuguese>Distância máxima</Portuguese>
<Hungarian>Maximális távolság</Hungarian>
</Key>
<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>
@ -64,6 +70,7 @@
<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>
<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>
<Hungarian>Egy véletlenszerű pozíció számításához használt érték, amihez megadja a maximum távolságot a játékosok és a lejátszott hangfájl(ok) között</Hungarian>
</Key>
<Key ID="STR_ACE_MissionModules_AmbianceSounds_minimalDelay_DisplayName">
<English>Minimal Delay</English>
@ -72,6 +79,7 @@
<German>Minimale Verzögerung</German>
<Czech>Minimální prodleva</Czech>
<Portuguese>Atraso mínimo</Portuguese>
<Hungarian>Minimum késleltetés</Hungarian>
</Key>
<Key ID="STR_ACE_MissionModules_AmbianceSounds_minimalDelay_Description">
<English>Minimal delay between sounds played</English>
@ -80,6 +88,7 @@
<German>Minimale Verzögerung zwischen abzuspielenden Sounds</German>
<Czech>Minimální prodleva mezi přehrávanými zvuky</Czech>
<Portuguese>Atraso mínimo entre os sons reproduzidos</Portuguese>
<Hungarian>Minimum késleltetés a lejátszott hangok között</Hungarian>
</Key>
<Key ID="STR_ACE_MissionModules_AmbianceSounds_maximalDelay_DisplayName">
<English>Maximum Delay</English>
@ -88,6 +97,7 @@
<German>Maximale Verzögerung</German>
<Czech>Maximální prodleva</Czech>
<Portuguese>Atraso máximo</Portuguese>
<Hungarian>Maximum késleltetés</Hungarian>
</Key>
<Key ID="STR_ACE_MissionModules_AmbianceSounds_maximalDelay_Description">
<English>Maximum delay between sounds played</English>
@ -96,6 +106,7 @@
<German>Maximale Verzögerung zwischen abzuspielenden Sounds</German>
<Czech>Maximální prodleva mezi přehrávanými zvuky</Czech>
<Portuguese>Atraso máximo entre os sons reproduzidos</Portuguese>
<Hungarian>Maximum késleltetés a lejátszott hangok között</Hungarian>
</Key>
<Key ID="STR_ACE_MissionModules_AmbianceSounds_followPlayers_DisplayName">
<English>Follow Players</English>
@ -104,6 +115,7 @@
<German>Spielern folgen</German>
<Czech>Následovat hráče</Czech>
<Portuguese>Seguir jogadores</Portuguese>
<Hungarian>Játékosok követése</Hungarian>
</Key>
<Key ID="STR_ACE_MissionModules_AmbianceSounds_followPlayers_Description">
<English>Follow players. If set to false, loop will play sounds only nearby logic position.</English>
@ -112,6 +124,7 @@
<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>
<Portuguese>Segue os jogadores. Se esta desabilitado (falso), o loop reproduzirá os sons somente perto de sua posição lógica.</Portuguese>
<Hungarian>Játékosok követése. Ha le van tiltva, az ismétlés csak a legközelebbi logikai ponton játszik le hangokat.</Hungarian>
</Key>
<Key ID="STR_ACE_MissionModules_AmbianceSounds_soundVolume_DisplayName">
<English>Volume</English>
@ -120,6 +133,7 @@
<German>Lautstärke</German>
<Czech>Hlasitost</Czech>
<Portuguese>Volume</Portuguese>
<Hungarian>Hangerő</Hungarian>
</Key>
<Key ID="STR_ACE_MissionModules_AmbianceSounds_soundVolume_Description">
<English>The volume of the sounds played</English>
@ -128,6 +142,7 @@
<German>Lautstärke der abzuspielenden Sounds</German>
<Czech>Hlasitost přehrávaného zvuku</Czech>
<Portuguese>O volume em que os sons serão reproduzidos</Portuguese>
<Hungarian>A lejátszott hangok hangereje</Hungarian>
</Key>
<Key ID="STR_ACE_MissionModules_AmbianceSounds_Description">
<English>Ambiance sounds loop (synced across MP)</English>
@ -136,6 +151,7 @@
<German>Umgebungsgeräusch-Schleife (im MP synchronisiert)</German>
<Czech>Smyčka okkolního zvuku (synchronizováno v MP)</Czech>
<Portuguese>Loop de sons ambientes (sincronizados através do MP)</Portuguese>
<Hungarian>Ambiens hangok folyamatossága (MP alatt szinkronizálva)</Hungarian>
</Key>
</Package>
</Project>

View File

@ -56,6 +56,7 @@
<German>MK6-Einstellungen</German>
<Czech>MK6 - Nastavení</Czech>
<Portuguese>Ajustes do MK6</Portuguese>
<Hungarian>MK6 beállítások</Hungarian>
</Key>
<Key ID="STR_ACE_Mk6Mortar_airResistanceEnabled_DisplayName">
<English>Air Resistance</English>
@ -64,6 +65,7 @@
<German>Luftwiderstand</German>
<Czech>Odpor vzduchu</Czech>
<Portuguese>Resistência do Ar</Portuguese>
<Hungarian>Légellenállás</Hungarian>
</Key>
<Key ID="STR_ACE_Mk6Mortar_airResistanceEnabled_Description">
<English>For Player Shots, Model Air Resistance and Wind Effects</English>
@ -72,6 +74,7 @@
<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>
<Portuguese>Para disparos do jogador, modelo de resistência de ar e efeitos de vento</Portuguese>
<Hungarian>Játékos általi lövésekhez, legyen-e számított légellenállás és szélhatás</Hungarian>
</Key>
<Key ID="STR_ACE_Mk6Mortar_allowComputerRangefinder_DisplayName">
<English>Allow MK6 Computer</English>
@ -80,6 +83,7 @@
<German>Erlaube MK6-Computer</German>
<Czech>MK6 - Povolit počítač</Czech>
<Portuguese>Permitir computador do MK6</Portuguese>
<Hungarian>MK6 számítógép engedélyezése</Hungarian>
</Key>
<Key ID="STR_ACE_Mk6Mortar_allowComputerRangefinder_Description">
<English>Show the Computer and Rangefinder (these NEED to be removed if you enable air resistance)</English>
@ -88,6 +92,7 @@
<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>
<Portuguese>Mostra o computador e o medidor de distância (estes DEVEM ser removidos se você habilitar resistência do ar)</Portuguese>
<Hungarian>A távmérő és számítógép megjelenítése (ezeket el KELL távolítani ha a légellenállás engedélyezve van)</Hungarian>
</Key>
<Key ID="STR_ACE_Mk6Mortar_allowCompass_DisplayName">
<English>Allow MK6 Compass</English>
@ -96,6 +101,7 @@
<German>Erlaube MK6-Kompass</German>
<Czech>MK6 - Povolit kompas</Czech>
<Portuguese>Permitir bússula do MK6</Portuguese>
<Hungarian>MK6 iránytű engedélyezése</Hungarian>
</Key>
<Key ID="STR_ACE_Mk6Mortar_allowCompass_Description">
<English>Show the MK6 Digital Compass</English>
@ -104,9 +110,9 @@
<German>Zeige MK6-Digitaler-Kompass</German>
<Czech>MK6 - Zobrazit digitální kompas</Czech>
<Portuguese>Mostra a bússula digital do MK6</Portuguese>
<Hungarian>Az MK6 digitális iránytű megjelenítése</Hungarian>
</Key>
<Key ID="STR_ACE_Mk6Mortar_Module_Description">
<English></English>
<Polish>Moduł ten pozwala dostosować ustawienia moździerza MK6.</Polish>
<German>Dieses Modul erlaubt das Einstellen des MK6-Mörsers.</German>
<Czech>Tento modul umožňuje nastavení minometu MK6.</Czech>

View File

@ -8,6 +8,7 @@
<Czech>MX-2A</Czech>
<German>MX-2A</German>
<Portuguese>MX-2A</Portuguese>
<Hungarian>MX-2A</Hungarian>
</Key>
<Key ID="STR_ACE_MX2A_Description">
<English>Thermal imaging device</English>
@ -16,6 +17,7 @@
<Spanish>Dispositivo de imagen térmica</Spanish>
<Czech>Termální dalekohled</Czech>
<Portuguese>Dispositivo de imagem térmica</Portuguese>
<Hungarian>Hőleképező készülék</Hungarian>
</Key>
</Package>
</Project>
</Project>

View File

@ -116,6 +116,7 @@
<German>Namensanzeigen</German>
<Czech>Jmenovky</Czech>
<Portuguese>Etiquetas de nome</Portuguese>
<Hungarian>Névcímkék</Hungarian>
</Key>
<Key ID="STR_ACE_NameTags_PlayerNamesViewDistance_DisplayName">
<English>Player Names View Dist.</English>
@ -124,6 +125,7 @@
<German>Spielernamen-Distanz</German>
<Czech>Vzdálenost zobrazení jména hráčů</Czech>
<Portuguese>Distância de visão dos nomes dos jogadores</Portuguese>
<Hungarian>Játékosok nevének látótávja</Hungarian>
</Key>
<Key ID="STR_ACE_NameTags_PlayerNamesViewDistance_Description">
<English>Distance in meters at which player names are shown. Default: 5</English>
@ -132,6 +134,7 @@
<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>
<Portuguese>Distância em metros que os nomes dos jogadores são mostrados. Padrão: 5</Portuguese>
<Hungarian>Méterben megadott érték a játékosok nevének mutatására. Alapértelmezett: 5</Hungarian>
</Key>
<Key ID="STR_ACE_NameTags_showNamesForAI_DisplayName">
<English>Show name tags for AI?</English>
@ -140,6 +143,7 @@
<German>Zeige Namensanzeigen für KI?</German>
<Czech>Zobrazit jmenovky pro AI?</Czech>
<Portuguese>Mostrar nomes para IA?</Portuguese>
<Hungarian>Névcímkék megjelenítése AI-nál?</Hungarian>
</Key>
<Key ID="STR_ACE_NameTags_showNamesForAI_Description">
<English>Show the name and rank tags for friendly AI units? Default: Do not force</English>
@ -148,6 +152,7 @@
<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>
<Portuguese>Mostra o nome e patente para unidades IA aliadas? Padrão: Não forçar</Portuguese>
<Hungarian>Mutassa-e a szövetséges AI egységek nevét és rangját? Alapértelmezett: Nincs felülbírálás</Hungarian>
</Key>
<Key ID="STR_ACE_NameTags_ForceHide">
<English>Force Hide</English>
@ -156,6 +161,7 @@
<German>Verstecken erzwingen</German>
<Czech>Vynuceno skrýt</Czech>
<Portuguese>Ocultar forçado</Portuguese>
<Hungarian>Erőltetett rejtett</Hungarian>
</Key>
<Key ID="STR_ACE_NameTags_ForceShow">
<English>Force Show</English>
@ -164,6 +170,7 @@
<German>Anzeigen erzwingen</German>
<Czech>Vynuceno zobrazit</Czech>
<Portuguese>Mostrar forçado</Portuguese>
<Hungarian>Erőltetett látható</Hungarian>
</Key>
<Key ID="STR_ACE_NameTags_showVehicleCrewInfo_DisplayName">
<English>Show crew info?</English>
@ -172,6 +179,7 @@
<German>Zeige Besatzungsinfo?</German>
<Czech>Zobrazit informace o posádce?</Czech>
<Portuguese>Mostrar informação de tripulação?</Portuguese>
<Hungarian>Legénységi adatok megjelenítése?</Hungarian>
</Key>
<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>
@ -180,6 +188,7 @@
<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>
<Portuguese>Mostrar informações de tripulação ou por padrão permitir a escolha dos jogadores. Padrão: Não forçar.</Portuguese>
<Hungarian>A legénységi adatok mutatása, alapértelmezett esetben a játékos által kiválasztható. Alapértelmezett: Nincs felülbírálás</Hungarian>
</Key>
<Key ID="STR_ACE_NameTags_showCursorTagForVehicles_DisplayName">
<English>Show for Vehicles</English>
@ -188,6 +197,7 @@
<German>Zeige bei Fahrzeugen</German>
<Czech>Zobrazit pro vozidla</Czech>
<Portuguese>Mostrar para veículos</Portuguese>
<Hungarian>Mutatás járműveknél</Hungarian>
</Key>
<Key ID="STR_ACE_NameTags_showCursorTagForVehicles_Description">
<English>Show cursor NameTag for vehicle commander (only if client has name tags enabled)Default: No</English>
@ -204,6 +214,7 @@
<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>
<Portuguese>Este módulo permite que você personalize as configurações e distâncias de etiquetas de nome.</Portuguese>
<Hungarian>Ez a modul lehetővé teszi a névcímkék beállításainak testreszabását.</Hungarian>
</Key>
<Key ID="STR_ACE_NameTags_OnlyCursor">
<English>Only on Cursor</English>
@ -212,6 +223,7 @@
<German>Nur bei Maus</German>
<Czech>Pouze na kurzor</Czech>
<Portuguese>Somente no cursor</Portuguese>
<Hungarian>Csak kurzorra</Hungarian>
</Key>
<Key ID="STR_ACE_NameTags_OnlyKeypress">
<English>Only on Keypress</English>
@ -220,6 +232,7 @@
<German>Nur bei Tastendruck</German>
<Czech>Pouze na klávesu</Czech>
<Portuguese>Somente em tecla ativada</Portuguese>
<Hungarian>Csak gombnyomásra</Hungarian>
</Key>
<Key ID="STR_ACE_NameTags_OnlyCursorAndKeypress">
<English>Only on Cursor and Keypress</English>
@ -228,6 +241,7 @@
<German>Nur Maus und Tastendruck</German>
<Czech>Pouze na kurzor a klávesu</Czech>
<Portuguese>Somente em cursor ou tecla ativada</Portuguese>
<Hungarian>Csak kurzorra és gombnyomásra</Hungarian>
</Key>
<Key ID="STR_ACE_NameTags_ForceShowOnlyCursor">
<English>Force Show Only on Cursor</English>
@ -236,6 +250,7 @@
<Czech>Vynuceno zobrazit pouze na kurzor</Czech>
<German>Erzwinge nur mit Mauszeiger anzuzeigen</German>
<Portuguese>Forçar mostrar somente no cursor</Portuguese>
<Hungarian>Erőltetett látható, csak kurzorra</Hungarian>
</Key>
<Key ID="STR_ACE_NameTags_ForceShowOnlyKeypress">
<English>Force Show Only on Keypress</English>
@ -244,6 +259,7 @@
<Czech>Vynuceno zobrazit pouze na klávesu</Czech>
<German>Erzwinge nur mit Tastendruck anzuzeigen</German>
<Portuguese>Forçar somente mostrar em tecla ativada</Portuguese>
<Hungarian>Erőltetett látható, csak gombnyomásra</Hungarian>
</Key>
<Key ID="STR_ACE_NameTags_ForceShowOnlyCursorAndKeypress">
<English>Force Show Only on Cursor and Keypress</English>
@ -252,6 +268,7 @@
<Czech>Vynuceno zobrazit pouze na kurzor a klávesu</Czech>
<German>Erzwinge nur mit Mauszeiger und Tastendruck anzuzeigen</German>
<Portuguese>Forçar mostrar somente em cursor e tecla ativada</Portuguese>
<Hungarian>Erőltetett látható, csak kurzorra és gombnyomásra</Hungarian>
</Key>
<Key ID="STR_ACE_NameTags_NameTagSettings">
<English>Use Nametag settings</English>
@ -260,6 +277,7 @@
<German>Verwende Namenanzeigen</German>
<Czech>Použít nastavení jmenovky</Czech>
<Portuguese>Usar ajustes de etiquetas de nome</Portuguese>
<Hungarian>Névcímkék beállításának használata</Hungarian>
</Key>
<Key ID="STR_ACE_NameTags_AlwaysShowAll">
<English>Always Show All</English>
@ -268,6 +286,7 @@
<German>Immer alle zeigen</German>
<Czech>Vždy zobrazit vše</Czech>
<Portuguese>Sempre mostrar tudo</Portuguese>
<Hungarian>Mindig minden mutatása</Hungarian>
</Key>
<Key ID="STR_ACE_NameTags_ShowPlayerNames_Desc">
<English>Show player names and set their activation. Default: Enabled</English>
@ -276,6 +295,7 @@
<Czech>Zobrazit jména hráčů a nastavit jejich aktivaci. Výchozí: Povoleno</Czech>
<German>Erlaubt das Anzeigen von Spielernamen und stellt ein, ob sie standardmäßig aktiviert oder deaktiviert sind. Standard: aktiviert</German>
<Portuguese>Mostrar os nomes dos jogadores e definir sua ativação. Padrão: Ativado</Portuguese>
<Hungarian>Mutassa a játékosok nevét és kezelje az aktivációjukat. Alapértelmezett: Engedélyezve</Hungarian>
</Key>
<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>
@ -284,6 +304,7 @@
<Czech>Efekt zvukových vln nad hlavami hráčů když mluví skrz PTT klávesu. Tato volba funguje s TFAR a ACRE2.</Czech>
<German>Es wird ein Schallwellensymbol über den Köpfen von sprechenden Spielern angezeigt, die ihre Push-to-Talk-Taste drücken. Diese Option funktioniert mit TFAR und ACRE2.</German>
<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>
<Hungarian>Hanghullám-effekt a beszélő játékosok feje felett a PTT-gomb lenyomásakor. Ez a beállítás TFAR és ACRE2 alatt működik.</Hungarian>
</Key>
<Key ID="STR_ACE_NameTags_TagSize_Name">
<English>Nametags Size</English>
@ -292,6 +313,7 @@
<Czech>Velikost jmenovky</Czech>
<German>Namensschildgröße</German>
<Portuguese>Tamanho das etiquetas de nome</Portuguese>
<Hungarian>Névcímkék mérete</Hungarian>
</Key>
<Key ID="STR_ACE_NameTags_TagSize_Description">
<English>Text and Icon Size Scaling</English>
@ -300,6 +322,7 @@
<Czech>Velikost textu a ikon</Czech>
<German>Text- und Symbolgrößen</German>
<Portuguese>Escala de tamanho dos ícones e textos</Portuguese>
<Hungarian>Szöveg és ikon méretének skálázása</Hungarian>
</Key>
</Package>
</Project>

View File

@ -3,16 +3,22 @@
if (!hasInterface) exitWith {};
GVAR(camera) = objNull;
0 = 0 spawn {
waituntil {!isNull ACE_player};
waituntil {sleep 1; {_x != GVAR(camera)} count allMissionObjects "camera" == 0};
GVAR(camera) cameraEffect ["TERMINATE", "BACK"];
camDestroy GVAR(camera);
// PiP technique by BadBenson
GVAR(camera) = "camera" camCreate positioncameratoworld [0,0,0];
GVAR(camera) = "camera" camCreate positionCameraToWorld [0,0,0];
GVAR(camera) camSetFov 0.7;
GVAR(camera) camSetTarget ACE_player;
GVAR(camera) camCommit 1;
"ace_optics_rendertarget0" setPiPEffect [2, 1.0, 1.0, 1.0, 0.0, [0.0, 1.0, 0.0, 0.25], [1.0, 0.0, 1.0, 1.0], [0.199, 0.587, 0.114, 0.0]];
"ace_optics_rendertarget0" setPiPEffect [0];
GVAR(camera) cameraEffect ["INTERNAL", "BACK", "ace_optics_rendertarget0"];
};
@ -23,18 +29,19 @@ if (!hasInterface) exitWith {};
};
}] call EFUNC(common,addEventHandler);
// camera has to be re-created every ACE_time another camera is created. Otherwise r2t is either black or transparent. @todo Add popular custom cameras to the event in ACE_common.
// camera has to be re-created every time another camera is created. Otherwise r2t is either black or transparent. @todo Add popular custom cameras to the event in ACE_common.
["activeCameraChanged", {
if !(_this select 1) then {
deleteVehicle GVAR(camera);
GVAR(camera) cameraEffect ["TERMINATE", "BACK"];
camDestroy GVAR(camera);
// PiP technique by BadBenson
GVAR(camera) = "camera" camCreate positioncameratoworld [0,0,0];
GVAR(camera) = "camera" camCreate positionCameraToWorld [0,0,0];
GVAR(camera) camSetFov 0.7;
GVAR(camera) camSetTarget ACE_player;
GVAR(camera) camCommit 1;
"ace_optics_rendertarget0" setPiPEffect [2, 1.0, 1.0, 1.0, 0.0, [0.0, 1.0, 0.0, 0.25], [1.0, 0.0, 1.0, 1.0], [0.199, 0.587, 0.114, 0.0]];
"ace_optics_rendertarget0" setPiPEffect [0];
GVAR(camera) cameraEffect ["INTERNAL", "BACK", "ace_optics_rendertarget0"];
};
}] call EFUNC(common,addEventHandler);

View File

@ -22,8 +22,8 @@ _optic = (primaryWeaponItems ACE_player) select 2;
_isPIP = (getText (configFile >> "CfgWeapons" >> _optic >> "ItemInfo" >> "modelOptics")) == QUOTE(PATHTOF(models\ace_optics_pip.p3d));
if (_isPIP) then {
GVAR(camera) setposATL positioncameratoworld [0,0,0.4];
GVAR(camera) camPrepareTarget positioncameratoworld [0,0,50];
GVAR(camera) setPosATL positionCameraToWorld [0,0,0.4];
GVAR(camera) camPrepareTarget positionCameraToWorld [0,0,50];
GVAR(camera) camCommitPrepared 0;
// @todo, check if that needs to be done at all

View File

@ -224,6 +224,7 @@
<German>Erlaube Config-Export [ACE]</German>
<Czech>Povolit export natavení [ACE]</Czech>
<Portuguese>[ACE] Permitir exportação de configurações</Portuguese>
<Hungarian>Konfiguráció-exportálás engedélyezése [ACE]</Hungarian>
</Key>
<Key ID="STR_ACE_OptionsMenu_AllowConfigExport_allowconfigurationExport_DisplayName">
<English>Allow</English>
@ -232,6 +233,7 @@
<German>Erlaube</German>
<Czech>Povolit</Czech>
<Portuguese>Permitir</Portuguese>
<Hungarian>Engedélyezés</Hungarian>
</Key>
<Key ID="STR_ACE_OptionsMenu_AllowConfigExport_allowconfigurationExport_Description">
<English>Allow export of all settings to a server config formatted.</English>
@ -240,6 +242,7 @@
<German>Erlaube alle Einstellungen in einer Server-Config zu exportieren.</German>
<Czech>Povolit exportovat všechna nastavení do formátu server configu.</Czech>
<Portuguese>Permitir exportação de todas as configurações para uma configuração formatada de servidor.</Portuguese>
<Hungarian>Az összes beállítás szerver-konfigurációba való exportálásának engedélyezése.</Hungarian>
</Key>
<Key ID="STR_ACE_OptionsMenu_AllowConfigExport_Module_Description">
<English>When allowed, you have access to the settings modification and export in SP. Clicking export will place the formated config on your clipboard.</English>
@ -248,6 +251,7 @@
<German>Wenn erlaubt, können die Einstellungsmodifikationen angezeigt und im SP exportiert werden. Wenn auf "Exportieren" geklickt wird, wird eine formatierte Config-Datei in der Zwischenablage abgespeichert.</German>
<Czech>Pokud je povoleno, budete mít přístup k modifikaci nastavení a exportování v SP. Kliknutím na export umístníte formátovaný config do vaší schránky.</Czech>
<Portuguese>Quando permitido, você tem acesso à modificação de definições e exportação em SP. Clicando em exportação colocará a configuração formatada em sua área de transferência.</Portuguese>
<Hungarian>Engedélyezéskor hozzáférést kapsz a beállítások módosításához és exportálásához egyjátékos módban. Exportáláskor a formázott konfiguráció a vágólapra kerül.</Hungarian>
</Key>
<Key ID="STR_ACE_OptionsMenu_Hide">
<English>Hide</English>
@ -256,6 +260,7 @@
<German>Verstecken</German>
<Czech>Skrýt</Czech>
<Portuguese>Ocultar</Portuguese>
<Hungarian>Elrejtés</Hungarian>
</Key>
<Key ID="STR_ACE_OptionsMenu_TopRightDown">
<English>Top right, downwards</English>
@ -264,6 +269,7 @@
<German>Open rechts, nach unten</German>
<Czech>Vpravo nahoře, dolů</Czech>
<Portuguese>Superior direito, para baixo</Portuguese>
<Hungarian>Jobb felül, lefele</Hungarian>
</Key>
<Key ID="STR_ACE_OptionsMenu_TopRightLeft">
<English>Top right, to the left</English>
@ -272,6 +278,7 @@
<German>Von rechts nach links</German>
<Czech>Vpravo nahoře, do leva</Czech>
<Portuguese>Superior direito, à esquerda</Portuguese>
<Hungarian>Jobb felül, balra</Hungarian>
</Key>
<Key ID="STR_ACE_OptionsMenu_TopLeftDown">
<English>Top left, downwards</English>
@ -280,6 +287,7 @@
<German>Von links, nach unten</German>
<Czech>Vlevo nahoře, dolů</Czech>
<Portuguese>Superior esquerdo, para baixo</Portuguese>
<Hungarian>Bal felül, lefele</Hungarian>
</Key>
<Key ID="STR_ACE_OptionsMenu_TopLeftRight">
<English>Top left, to the right</English>
@ -288,6 +296,7 @@
<German>Oben links nach rechts</German>
<Czech>Vlevo nahoře, do prava</Czech>
<Portuguese>Superior esquerdo, para a direita</Portuguese>
<Hungarian>Bal felül, jobbra</Hungarian>
</Key>
<Key ID="STR_ACE_OptionsMenu_Top">
<English>Top</English>
@ -296,6 +305,7 @@
<German>Oben</German>
<Czech>Nahoře</Czech>
<Portuguese>Acima</Portuguese>
<Hungarian>Fent</Hungarian>
</Key>
<Key ID="STR_ACE_OptionsMenu_Bottom">
<English>Bottom</English>
@ -304,6 +314,7 @@
<German>Unten</German>
<Czech>Dole</Czech>
<Portuguese>Abaixo</Portuguese>
<Hungarian>Alul</Hungarian>
</Key>
<Key ID="STR_ACE_OptionsMenu_DumpDebug">
<English>Debug To Clipboard</English>
@ -312,6 +323,7 @@
<Czech>Debug do schránky</Czech>
<German>Debug in die Zwischenablage</German>
<Portuguese>Depuração para área de transferência</Portuguese>
<Hungarian>Debug a vágólapra</Hungarian>
</Key>
<Key ID="STR_ACE_OptionsMenu_DumpDebugTooltip">
<English>Sends debug information to RPT and clipboard.</English>
@ -320,14 +332,17 @@
<Czech>Pošle debug informace do RPT a schránky.</Czech>
<German>Protokolliert Debug-Informationen im RPT und speichert sie in der Zwischenablage.</German>
<Portuguese>Envia informação de depuração para RPT e área de transferência.</Portuguese>
<Hungarian>Debug információt küld az RPT-be és a vágólapra.</Hungarian>
</Key>
<Key ID="STR_ACE_OptionsMenu_headBugFix">
<English>Headbug Fix</English>
<Polish>Fix Headbug</Polish>
<Hungarian>"Fejhiba" fix</Hungarian>
</Key>
<Key ID="STR_ACE_OptionsMenu_headBugFixTooltip">
<English>Resets your animation state.</English>
<Polish>Resetuje aktualną animację.</Polish>
<Hungarian>Visszaállítja az animációs állapotodat.</Hungarian>
</Key>
<Key ID="STR_ACE_OptionsMenu_aceNews">
<English>ACE News</English>
@ -336,6 +351,7 @@
<Portuguese>Notícias do ACE</Portuguese>
<Polish>Wiadomości ACE</Polish>
<Czech>ACE Novinky</Czech>
<Hungarian>ACE hírek</Hungarian>
</Key>
<Key ID="STR_ACE_OptionsMenu_showNewsOnMainMenu_name">
<English>Show News on Main Menu</English>
@ -344,6 +360,7 @@
<Portuguese>Mostrar notícias no menu principal</Portuguese>
<Polish>Pokazuj wiadomości ACE w menu głównym</Polish>
<Czech>Zobrazit novinky v hlavním menu</Czech>
<Hungarian>Hírek mutatása a főmenüben</Hungarian>
</Key>
<Key ID="STR_ACE_OptionsMenu_category_all">
<English>All Categories</English>
@ -354,4 +371,4 @@
<Polish>Logistyka</Polish>
</Key>
</Package>
</Project>
</Project>

View File

@ -9,7 +9,7 @@ class CfgWeapons {
picture = QUOTE(PATHTOF(UI\spare_barrel_ca.paa));
scope = 2;
class ItemInfo: InventoryItem_Base_F {
mass = 50;
mass = 30;
};
};

View File

@ -53,11 +53,13 @@
<English>Cut Parachute</English>
<German>Fallschirm abschneiden</German>
<Polish>Odetnij spadochron</Polish>
<Hungarian>Ejtőernyő elvágása</Hungarian>
</Key>
<Key ID="STR_ACE_Parachute_ReserveParachute">
<English>Reserve Parachute</English>
<German>Reserve Fallschirm</German>
<Polish>Spadochron awaryjny</Polish>
<Hungarian>Tartalék ejtőernyő</Hungarian>
</Key>
</Package>
</Project>
</Project>

View File

@ -1,569 +0,0 @@
class Man;
class CAManBase: Man {
class HitPoints {
class HitHead {
/*armor = 1;
passThrough = 1;
radius = 0.1;
explosionShielding = 0.5;
minimalHit = 0;*/
};
class HitBody {
/*armor = 1;
passThrough = 1;
radius = 0.15;
explosionShielding = 10;
minimalHit = 0;*/
};
class HitHands {
/*armor = 1;
passThrough = 1;
radius = 0.08;
explosionShielding = 1;
minimalHit = 0;*/
};
class HitLegs {
/*armor = 1;
passThrough = 1;
radius = 0.1;
explosionShielding = 1;
minimalHit = 0;*/
};
};
/*armor = 2;
armorStructural = 5;*/
};
class Civilian: CAManBase {
/*class HitPoints: HitPoints {
class HitHead: HitHead {
armor = 1;
};
class HitBody: HitBody {
armor = 2;
};
class HitHands: HitHands {
armor = 2;
};
class HitLegs: HitLegs {
armor = 2;
};
};*/
};
/*class Civilian_F: Civilian {};
class C_man_1: Civilian_F {};*/
class SoldierWB: CAManBase {};
class SoldierEB: CAManBase {};
class SoldierGB: CAManBase {};
class B_Soldier_base_F: SoldierWB {
/*class HitPoints: HitPoints {
class HitHead: HitHead {
armor = 1;
};
class HitBody: HitBody {
armor = 2;
};
class HitHands: HitHands {
armor = 2;
};
class HitLegs: HitLegs {
armor = 2;
};
};
armor = 2;
armorStructural = 5;*/
};
class B_Soldier_02_f: B_Soldier_base_F { // t-shirt
/*class HitPoints: HitPoints {
class HitHead: HitHead {
armor = 1;
};
class HitBody: HitBody {
armor = 1;
};
class HitHands: HitHands {
armor = 1;
};
class HitLegs: HitLegs {
armor = 2;
};
};*/
armorStructural = 5; //7;
};
class B_Soldier_03_f: B_Soldier_base_F { // sleeves
/*class HitPoints: HitPoints {
class HitHead: HitHead {
armor = 1;
};
class HitBody: HitBody {
armor = 2;
};
class HitHands: HitHands {
armor = 1;
};
class HitLegs: HitLegs {
armor = 2;
};
};*/
armorStructural = 5; //7;
};
class B_Soldier_04_f: B_Soldier_base_F { // heli pilot
class HitPoints: HitPoints {
class HitHead: HitHead {
/*armor = 1;
passThrough = 1;
explosionShielding = 0.5;*/
};
class HitBody: HitBody {
/*armor = 2;*/
passThrough = 1; //0.5;
/*explosionShielding = 2.4;*/
};
class HitHands: HitHands {
armor = 2; //8;
passThrough = 1; //0.5;
/*explosionShielding = 1.2;*/
};
class HitLegs: HitLegs {
armor = 2; //8;
passThrough = 1; //0.5;
/*explosionShielding = 1.2;*/
};
};
};
class B_Soldier_05_f: B_Soldier_base_F { // cas pilot
armorStructural = 5; //3;
class HitPoints: HitPoints {
class HitHead: HitHead {
/*armor = 1;
passThrough = 1;
explosionShielding = 0.5;*/
};
class HitBody: HitBody {
armor = 3; //2;
passThrough = 1; //0.5;
/*explosionShielding = 2.4;*/
};
class HitHands: HitHands {
armor = 3; //8;
/*passThrough = 1;
explosionShielding = 1.2;*/
};
class HitLegs: HitLegs {
armor = 3; //8;
/*passThrough = 1;
explosionShielding = 1.2;*/
};
};
};
class B_Soldier_diver_base_F: B_Soldier_base_F {
/*class HitPoints: HitPoints {
class HitHead: HitHead {
armor = 2;
};
class HitBody: HitBody {
armor = 2;
};
class HitHands: HitHands {
armor = 2;
};
class HitLegs: HitLegs {
armor = 2;
};
};*/
};
// these appear to be broken, remnants from A2?
/*class C_man_p_fugitive_F: C_man_1 {
class HitPoints: HitPoints {
class HitBody: HitBody {
armor = "0.3*10";
};
class HitLegs: HitLegs {
armor = "0.3*5";
};
};
};
class C_man_w_worker_F: C_man_1 {
class HitPoints: HitPoints {
class HitBody: HitBody {
armor = "0.6*10";
};
class HitHands: HitHands {
armor = "0.5*5";
};
class HitLegs: HitLegs {
armor = "0.5*5";
};
};
};
class C_man_hunter_1_F: C_man_1 {
class HitPoints: HitPoints {
class HitBody: HitBody {
armor = "0.6*10";
};
class HitHands: HitHands {
armor = "0.5*5";
};
class HitLegs: HitLegs {
armor = "0.5*5";
};
};
};
class C_man_p_shorts_1_F: C_man_1 {
class HitPoints: HitPoints {
class HitLegs: HitLegs {
armor = "0.3*5";
};
};
};
class C_man_pilot_F: C_man_1 {
class HitPoints: HitPoints {
class HitBody: HitBody {
armor = "0.6*10";
};
class HitHands: HitHands {
armor = "0.5*5";
};
class HitLegs: HitLegs {
armor = "0.5*5";
};
};
};*/
class I_Soldier_base_F: SoldierGB {
/*class HitPoints: HitPoints {
class HitHead: HitHead {
armor = 1;
};
class HitBody: HitBody {
armor = 2;
};
class HitHands: HitHands {
armor = 2;
};
class HitLegs: HitLegs {
armor = 2;
};
};*/
/*armor = 2;*/
armorStructural = 5; //7;
};
class I_Soldier_02_F: I_Soldier_base_F { // sleeves
/*class HitPoints: HitPoints {
class HitHead: HitHead {
armor = 1;
};
class HitBody: HitBody {
armor = 2;
};
class HitHands: HitHands {
armor = 1;
};
class HitLegs: HitLegs {
armor = 2;
};
};*/
};
class I_Soldier_03_F: I_Soldier_base_F { // heli pilot
/*armorStructural = 5;*/
class HitPoints: HitPoints {
class HitHead: HitHead {
/*armor = 1;
passThrough = 1;
explosionShielding = 0.5;*/
};
class HitBody: HitBody {
/*armor = 2;*/
passThrough = 1; //0.5;
/*explosionShielding = 2.4;*/
};
class HitHands: HitHands {
armor = 2; //8;
passThrough = 1; //0.5;
/*explosionShielding = 1.2;*/
};
class HitLegs: HitLegs {
armor = 2; //8;
passThrough = 1; //0.5;
/*explosionShielding = 1.2;*/
};
};
};
class I_Soldier_04_F: I_Soldier_base_F { // cas pilot
armorStructural = 5; //3;
class HitPoints: HitPoints {
class HitHead: HitHead {
/*armor = 1;
passThrough = 1;
explosionShielding = 0.5;*/
};
class HitBody: HitBody {
armor = 3; //2;
passThrough = 1; //0.5;
/*explosionShielding = 2.4;*/
};
class HitHands: HitHands {
armor = 3; //8;
/*passThrough = 1;
explosionShielding = 1.2;*/
};
class HitLegs: HitLegs {
armor = 3; //8;
/*passThrough = 1;
explosionShielding = 1.2;*/
};
};
};
class I_Soldier_diver_base_F: I_Soldier_base_F {
/*class HitPoints: HitPoints {
class HitHead: HitHead {
armor = 2;
};
class HitBody: HitBody {
armor = 2;
};
class HitHands: HitHands {
armor = 2;
};
class HitLegs: HitLegs {
armor = 2;
};
};*/
};
class O_Soldier_base_F: SoldierEB {
class HitPoints: HitPoints {
class HitHead: HitHead {
/*armor = 1;
passThrough = 1;
explosionShielding = 0.5;*/
};
class HitBody: HitBody {
armor = 4; //6;
passThrough = 0.85; //0.5;
/*explosionShielding = 1.5;*/
};
class HitHands: HitHands {
armor = 4; //8;
passThrough = 0.85; //0.5;
/*explosionShielding = 0.8;*/
};
class HitLegs: HitLegs {
armor = 4; //8;
passThrough = 0.85; //0.5;
/*explosionShielding = 0.8;*/
};
};
/*armor = 2;
armorStructural = 5;*/
};
class O_officer_F: O_Soldier_base_F {
class HitPoints: HitPoints {
class HitHead: HitHead {
/*armor = 1;
passThrough = 1;
explosionShielding = 0.5;*/
};
class HitBody: HitBody {
/*armor = 2;
passThrough = 1;
explosionShielding = 10;*/
};
class HitHands: HitHands {
/*armor = 2;
passThrough = 1;
explosionShielding = 1;*/
};
class HitLegs: HitLegs {
armor = 2; //8;
passThrough = 1; //0.5;
/*explosionShielding = 1;*/
};
};
};
class O_Soldier_02_F: O_Soldier_base_F { // crew ?
armorStructural = 5; //3;
class HitPoints: HitPoints {
class HitHead: HitHead {
/*armor = 1;
passThrough = 1;
explosionShielding = 0.5;*/
};
class HitBody: HitBody {
armor = 4; //6;
passThrough = 0.85; //0.5;
/*explosionShielding = 1.5;*/
};
class HitHands: HitHands {
armor = 4; //8;
passThrough = 0.85; //1;
/*explosionShielding = 0.8;*/
};
class HitLegs: HitLegs {
armor = 4; //8;
passThrough = 0.85; //1;
/*explosionShielding = 0.8;*/
};
};
};
class O_Soldier_diver_base_F: O_Soldier_base_F {
/*class HitPoints: HitPoints {
class HitHead: HitHead {
armor = 2;
};
class HitBody: HitBody {
armor = 2;
};
class HitHands: HitHands {
armor = 2;
};
class HitLegs: HitLegs {
armor = 2;
};
};*/
};
class O_Soldier_VR_F: O_Soldier_base_F {
/*class HitPoints: HitPoints {
class HitHead: HitHead {
armor = 1;
passThrough = 1;
explosionShielding = 0.5;
};
class HitBody: HitBody {
armor = 2;
passThrough = 1;
explosionShielding = 10;
};
class HitHands: HitHands {
armor = 2;
passThrough = 1;
explosionShielding = 1;
};
class HitLegs: HitLegs {
armor = 2;
passThrough = 1;
explosionShielding = 1;
};
};*/
};
class O_Protagonist_VR_F: O_Soldier_base_F {
/*class HitPoints: HitPoints {
class HitHead: HitHead {
armor = 1;
passThrough = 1;
explosionShielding = 0.5;
};
class HitBody: HitBody {
armor = 2;
passThrough = 1;
explosionShielding = 10;
};
class HitHands: HitHands {
armor = 2;
passThrough = 1;
explosionShielding = 1;
};
class HitLegs: HitLegs {
armor = 2;
passThrough = 1;
explosionShielding = 1;
};
};*/
};

View File

@ -9,6 +9,7 @@
<German>Entfernungsspinne</German>
<Portuguese>Tabela de distâncias</Portuguese>
<French>Table de tir</French>
<Hungarian>Távolsági kártya</Hungarian>
</Key>
<Key ID="STR_ACE_RangeCard_Description">
<English>50 METER increments -- MRAD/MRAD (reticle/turrets)</English>
@ -18,6 +19,7 @@
<German>50-Meter-Schritte MRAD/MRAD (Fadenkreuz/Geschützturm)</German>
<Portuguese>Incrementos de 50 METROS - MRAD/MRAD (retícula/torres)</Portuguese>
<French>Intervalle 50 mètres -- millième/millième (réticule/tambours)</French>
<Hungarian>50 MÉTERES lépések - MRAD/MRAD (célzó/lövegek)</Hungarian>
</Key>
<Key ID="STR_ACE_RangeCard_OpenRangeCard">
<English>Open Range Card</English>
@ -27,6 +29,7 @@
<German>Öffne Entfernungsspinne</German>
<Portuguese>Abrir tabela de distâncias</Portuguese>
<French>Afficher table de tir</French>
<Hungarian>Távolsági kártya kinyitása</Hungarian>
</Key>
<Key ID="STR_ACE_RangeCard_OpenRangeCardCopy">
<English>Open Range Card Copy</English>
@ -36,6 +39,7 @@
<German>Öffne Kopie der Entfernungsspinne</German>
<Portuguese>Abrir cópia da tabela de distâncias</Portuguese>
<French>Afficher table de tir copiée</French>
<Hungarian>Távolsági kártya-másolat kinyitása</Hungarian>
</Key>
<Key ID="STR_ACE_RangeCard_RangeCardDialogKey">
<English>Open Range Card</English>
@ -45,6 +49,7 @@
<German>Öffne Entfernungsspinne</German>
<Portuguese>Abrir tabela de distäncias</Portuguese>
<French>Afficher table de tir</French>
<Hungarian>Távolsági kártya kinyitása</Hungarian>
</Key>
<Key ID="STR_ACE_RangeCard_RangeCardCopyDialogKey">
<English>Open Range Card Copy</English>
@ -54,6 +59,7 @@
<German>Öffne Kopie der Entfernungsspinne</German>
<Portuguese>Abrir cópia da tabela de distâncias</Portuguese>
<French>Afficher table de tir copiée</French>
<Hungarian>Távolsági kártya-másolat kinyitása</Hungarian>
</Key>
<Key ID="STR_ACE_RangeCard_CopyRangeCard">
<English>Copy Range Card</English>
@ -63,6 +69,7 @@
<German>Kopiere Entfernungsspinne</German>
<Portuguese>Copiar tabela de distäncias</Portuguese>
<French>Copier table de tir</French>
<Hungarian>Távolsági kártya másolása</Hungarian>
</Key>
</Package>
</Project>
</Project>

View File

@ -10,6 +10,7 @@
priority = 2; \
icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; \
distance = 4; \
exceptions[] = {"isNotOnLadder"}; \
}; \
}; \
};

View File

@ -30,7 +30,7 @@ if (typeName _wheel == "OBJECT") then {
_wheel = objNull;
{
if ([_unit, _x, ["isNotDragging", "isNotCarrying"]] call EFUNC(common,canInteractWith)) exitWith {
if ([_unit, _x, ["isNotDragging", "isNotCarrying", "isNotOnLadder"]] call EFUNC(common,canInteractWith)) exitWith {
_wheel = _x;
};
} forEach nearestObjects [_unit, ["ACE_Track"], 5];

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