Merge branch 'master' into artilleryTables

This commit is contained in:
PabstMirror
2019-09-30 21:11:24 -05:00
174 changed files with 1767 additions and 701 deletions

View File

@ -7,15 +7,6 @@ assignees: ''
---
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: bug
assignees: ''
---
**Mods (complete and add to the following information):**
- **Arma 3:** `x.xx` [e.g. 1.00 stable, rc, dev]
- **CBA:** `3.x.x` [e.g. 3.0.0 stable, commit hash]

View File

@ -0,0 +1,20 @@
---
name: Enhancement request
about: Suggest an improvement for this project
title: ''
labels: kind/enhancement
assignees: ''
---
**Is your enhancement related to a problem?**
A clear and concise description of what the enhancement entails. Ex. [...] would improve user experience.
**Solution you'd like:**
A clear and concise description of what you want to happen.
**Alternatives you've considered:**
A clear and concise description of any alternative solutions or ideas you've considered.
**Additional context:**
Add any other context or screenshots about the enhancement here.

View File

@ -1,10 +0,0 @@
---
name: Todo
about: Create simple todo for this project
title: ''
labels: ''
assignees: ''
---

View File

@ -133,6 +133,7 @@ Riccardo Petricca <petriccarcc@gmail.com>
Robert Boklahánics <bokirobi@gmail.com>
ruPaladin <happyworm24@rambler.ru>
Rutger "RedBery" Meijering <c.redbery@gmail.com>
Schwaggot <tom.ryan@posteo.de>
simon84 <badguy360th@gmail.com>
Skengman2
Sniperwolf572 <tenga6@gmail.com>

View File

@ -82,7 +82,7 @@ push: commit
release: clean version commit
@"$(MAKE)" $(MAKEFLAGS) signatures
@echo " ZIP $(ZIP)_$(VERSION_S).zip"
@cp *.dll mod.cpp README.md docs/README_DE.md docs/README_PL.md AUTHORS.txt LICENSE logo_ace3_ca.paa meta.cpp $(BIN)
@cp *.dll *.so mod.cpp README.md docs/README_DE.md docs/README_PL.md AUTHORS.txt LICENSE logo_ace3_ca.paa meta.cpp $(BIN)
@zip -qr $(ZIP)_$(VERSION_S).zip $(BIN)
clean:

View File

@ -19,7 +19,7 @@
<img src="https://img.shields.io/badge/License-GPLv2-red.svg?style=flat-square" alt="ACE3 License">
</a>
<a href="https://slackin.ace3mod.com/">
<img src="https://slackin.ace3mod.com/badge.svg?style=flat-square&label=Slack" alt="ACE3 Slack">
<img src="https://img.shields.io/badge/Slack-Join-darkviolet.svg?style=flat-square" alt="ACE3 Slack">
</a>
<a href="https://circleci.com/gh/acemod/ACE3">
<img src="https://circleci.com/gh/acemod/ACE3.svg?style=svg" alt="ACE3 Build Status">

Binary file not shown.

Binary file not shown.

View File

@ -20,5 +20,8 @@ class CfgPatches {
#include "ACE_Settings.hpp"
class ACE_Extensions {
extensions[] += {"ace_advanced_ballistics"};
class ace_advanced_ballistics {
windows = 1;
client = 1;
};
};

View File

@ -1,7 +1,7 @@
#include "script_component.hpp"
/*
* Author: Ruthberg
* Initializes the advanced ballistics dll extension with terrain data
* Initializes the advanced ballistics extension with terrain data
*
* Arguments:
* None

View File

@ -92,6 +92,7 @@
<French>Activer les variations de la vitesse initiale</French>
<Polish>Aktywuj wariację prędkości wylotowej</Polish>
<Russian>Вкл. вариацию начальной скорости</Russian>
<Portuguese>Ativar Variação de Velocidade no Freio de boca (muzzle)</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Ballistics_muzzleVelocityVariationEnabled_Description">
<English>Simulates slight variations in muzzle velocity between each shot</English>
@ -104,6 +105,7 @@
<French>Simule les légères variations</French>
<Polish>Symuluje lekkie zmiany w prędkości wylotowej między każdym strzałem</Polish>
<Russian>Имитирует небольшие изменения начальной скорости при каждом выстреле</Russian>
<Portuguese>Simula pequenas variações na velocidade do Freio de Boca entre cada tiro</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Ballistics_ammoTemperatureEnabled_DisplayName">
<English>Enable Ammo Temperature Simulation</English>

View File

@ -12,6 +12,7 @@
<French>ACE Fatigue Avancée</French>
<Polish>ACE Zaawansowane Zmęczenie</Polish>
<Russian>ACE Продвинутая усталость</Russian>
<Portuguese>ACE Fadiga Avançada</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_PerformanceFactor">
<English>Performance Factor</English>
@ -24,6 +25,7 @@
<Chinese>體力值</Chinese>
<Chinesesimp>体力值</Chinesesimp>
<Russian>Фактор производительности</Russian>
<Portuguese>Fator de Performance</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_PerformanceFactor_Description">
<English>Influences the overall performance of all players with no custom factor. Higher means better.</English>
@ -36,6 +38,7 @@
<Chinese>影響所有玩家的體力表現,值越高代表體力越好</Chinese>
<Chinesesimp>影响所有玩家的体力表现,值越高代表体力越好</Chinesesimp>
<Russian>Влияет на общую производительность игроков, у которых не задано персональное значение.</Russian>
<Portuguese>Influencia na performance geral de todos os jogadores sem nenhum fator personalizado. Quanto maior, melhor.</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_PerformanceFactor_EdenDescription">
<English>Influences the overall performance of this unit. Higher means better.</English>
@ -48,6 +51,7 @@
<Chinese>影響這個單位的體力表現,值越高代表體力越好</Chinese>
<Chinesesimp>影响这个单位的体力表现,值越高代表体力越好</Chinesesimp>
<Russian>Влияет на общую производительность юнита.</Russian>
<Portuguese>Influencia na performance geral dessa unidade. Quanto maior, melhor.</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_RecoveryFactor">
<English>Recovery Factor</English>
@ -60,6 +64,7 @@
<Chinese>回復值</Chinese>
<Chinesesimp>回复值</Chinesesimp>
<Russian>Фактор восстановления</Russian>
<Portuguese>Fator de Recuperação</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_RecoveryFactor_Description">
<English>Changes how fast the player recovers when resting. Higher is faster.</English>
@ -72,6 +77,7 @@
<Chinese>決定玩家休息多久就能回復體力,值越高恢復越快</Chinese>
<Chinesesimp>决定玩家休息多久就能回复体力,值越高恢复越快</Chinesesimp>
<Russian>Изменяет скорость восстановления игрока во время отдыха. Чем выше, тем быстрее.</Russian>
<Portuguese>Altera o quão rápido um jogador recupera quando descansando. Quanto maior, mais rápido.</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_LoadFactor">
<English>Load Factor</English>
@ -84,6 +90,7 @@
<Chinese>負重量</Chinese>
<Chinesesimp>负重量</Chinesesimp>
<Russian>Фактор нагрузки</Russian>
<Portuguese>Fator de Carga</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_LoadFactor_Description">
<English>Increases or decreases how much weight influences the players performance. Zero means equipment weight has no performance influence.</English>
@ -96,6 +103,7 @@
<Chinese>增加或降低玩家所能承受的負重量. 如設定值為0, 代表裝備的重量將不會影響到玩家的體力表現</Chinese>
<Chinesesimp>增加或降低玩家所能承受的负重量. 如设定值为0, 代表装备的重量将不会影响到玩家的体力表现</Chinesesimp>
<Russian>Увеличивает или уменьшает вес, влияющий на производительность игроков. Ноль означает, что вес снаряжения не влияет на производительность</Russian>
<Portuguese>Aumenta ou diminui o quanto o peso influencia a performance do jogador. Zero significa que o peso não tem impacto algum na performance.</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_TerrainGradientFactor">
<English>Terrain Gradient Factor</English>
@ -108,6 +116,7 @@
<Chinese>地形陡峭影響值</Chinese>
<Chinesesimp>地形陡峭影响值</Chinesesimp>
<Russian>Фактор местности</Russian>
<Portuguese>Fator de Inclinação do Terreno</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_TerrainGradientFactor_Description">
<English>Sets how much steep terrain increases stamina loss. Higher means higher stamina loss.</English>
@ -120,6 +129,7 @@
<Chinese>設定陡峭的地形將會影響多少體力的流失,值越高代表體力流失越快</Chinese>
<Chinesesimp>设定陡峭的地形将会影响多少体力的流,失值越高代表体力流失越快</Chinesesimp>
<Russian>Устанавливает, насколько крутая местность увеличивает потерю выносливости. Чем выше, тем быстрее теряется выносливость.</Russian>
<Portuguese>Define o quanto que um terreno íngrime aumenta na perda de estamina. Quanto maior, maior a perda de estamina.</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_SwayFactor">
<English>Sway factor</English>
@ -131,6 +141,7 @@
<Italian>Fattore di oscillazione</Italian>
<Polish>Czynnik kołysania</Polish>
<Russian>Фактор колебания прицела</Russian>
<Portuguese>Fator de Balanço de Mira</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_SwayFactor_Description">
<English>Influences the amount of weapon sway. Higher means more sway.</English>
@ -142,6 +153,7 @@
<Italian>Influenza l'ammontare di oscillazione dell'arma. Maggiore significa più oscillazione.</Italian>
<Polish>Wpływa na poziom kołysania broni. Większa ilość znaczy większe kołysanie.</Polish>
<Russian>Влияет на колебания прицела оружия. Чем выше - тем больше.</Russian>
<Portuguese>Influencia a quantidade de balanço da mira da arma. Quanto maior, mais balanço.</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_Enabled">
<English>Enabled</English>
@ -154,6 +166,7 @@
<Chinese>啟用</Chinese>
<Chinesesimp>启用</Chinesesimp>
<Russian>Включена</Russian>
<Portuguese>Ativado</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_Enabled_Description">
<English>Enables/disables Advanced Fatigue.</English>
@ -166,6 +179,7 @@
<Chinese>啟用/關閉進階體力.</Chinese>
<Chinesesimp>启用/关闭进阶体力.</Chinesesimp>
<Russian>Включает / Отключает Продвинутую усталость</Russian>
<Portuguese>Ativa/Desativa Fadiga Avançada.</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_EnableStaminaBar">
<English>Show stamina bar</English>
@ -178,6 +192,7 @@
<Chinese>顯示體力條</Chinese>
<Chinesesimp>显示体力条</Chinesesimp>
<Russian>Показать шкалу усталости</Russian>
<Portuguese>Exibir barra de estamina</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_EnableStaminaBar_Description">
<English>Shows the stamina bar.</English>
@ -190,6 +205,7 @@
<Chinese>顯示體力條</Chinese>
<Chinesesimp>显示体力条</Chinesesimp>
<Russian>Показывает шкалу усталости.</Russian>
<Portuguese>Exibe a barra de estamina.</Portuguese>
</Key>
</Package>
</Project>

View File

@ -12,6 +12,7 @@
<Italian>Lancio Avanzato</Italian>
<Chinese>進階投擲</Chinese>
<Chinesesimp>进阶投掷</Chinesesimp>
<Portuguese>Arremesso Avançado</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_Module_Description">
<English>Allows changing advanced throwing behaviour.</English>
@ -24,6 +25,7 @@
<Italian>Permette il cambiamento della modalità di tiro.</Italian>
<Chinese>允許使用更多不同的投擲方式</Chinese>
<Chinesesimp>允许使用更多不同的投掷方式</Chinesesimp>
<Portuguese>Permite mudar o comportamento do arremesso avançado.</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_Enable_DisplayName">
<English>Enable Advanced Throwing</English>
@ -36,6 +38,7 @@
<Italian>Abilita Lancio Avanzato</Italian>
<Chinese>啟用進階投擲</Chinese>
<Chinesesimp>启用进阶投掷</Chinesesimp>
<Portuguese>Ativa o Arremesso Avançado</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_Enable_Description">
<English>Enables advanced throwing system.</English>
@ -48,6 +51,7 @@
<Italian>Abilita il sistema di lancio avanzato.</Italian>
<Chinese>啟用進階投擲系統</Chinese>
<Chinesesimp>启用进阶投掷系统</Chinesesimp>
<Portuguese>Ativa o sistema de Arremesso Avançado.</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_ShowThrowArc_DisplayName">
<English>Show Throw Arc</English>
@ -60,6 +64,7 @@
<Italian>Mostra Arco di Tiro</Italian>
<Chinese>顯示投擲軌道</Chinese>
<Chinesesimp>显示投掷轨道</Chinesesimp>
<Portuguese>Mostrar o Arco de Arremesso</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_ShowThrowArc_Description">
<English>Enables visualization of the throw arc (where throwable will fly).</English>
@ -72,6 +77,7 @@
<Italian>Abilita la visualizzazione dell'arco del tiro (dove l'oggetto lanciabile volerà).</Italian>
<Chinese>顯示投擲軌道幫助投擲</Chinese>
<Chinesesimp>显示投掷轨道帮助投掷</Chinesesimp>
<Portuguese>Permite a visualização do Arco de Arremesso por onde o objeto será jogado.</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_ShowMouseControls_DisplayName">
<English>Show Throwing Mouse Controls</English>
@ -84,6 +90,7 @@
<Italian>Mostra Comandi Mouse Lancio</Italian>
<Chinese>顯示滑鼠投擲控制提示</Chinese>
<Chinesesimp>显示滑鼠投掷控制提示</Chinesesimp>
<Portuguese>Mostrar os controles de mouse para Arremesso</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_ShowMouseControls_Description">
<English>Enables visual cues for mouse controls when throwable is prepared.</English>
@ -96,6 +103,7 @@
<Italian>Abilita la visualizzazione dei controlli del mouse quando l'oggetto lanciabile è pronto.</Italian>
<Chinese>開啟後會在準備投擲時, 顯示滑鼠相關操作</Chinese>
<Chinesesimp>开启后会在准备投掷时, 显示滑鼠相关操作</Chinesesimp>
<Portuguese>Ativa as dicas visuais dos controles do mouse quando um arremessável é preparado.</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_EnablePickUp_DisplayName">
<English>Enable Throwables Pick Up</English>
@ -108,6 +116,7 @@
<Italian>Abilita Raccogli Oggetti</Italian>
<Chinese>啟用可撿取地面投擲物</Chinese>
<Chinesesimp>启用可捡取地面投掷物</Chinesesimp>
<Portuguese>Permitir pegar arremessáveis</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_EnablePickUp_Description">
<English>Enables ability to pick up throwables from the ground.</English>
@ -120,6 +129,7 @@
<Italian>Abilita la possibilità di raccogliere un oggetto lanciabile da terra.</Italian>
<Chinese>啟用後, 可撿取地面上的投擲物</Chinese>
<Chinesesimp>启用后, 可捡取地面上的投掷物</Chinesesimp>
<Portuguese>Permite que objetos arremessados sejam pegos do chão. (ACE Menu de Interação)</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_EnablePickUpAttached_DisplayName">
<English>Enable Attached Throwables Pick Up</English>
@ -132,6 +142,7 @@
<Italian>Abilita Raccogli Oggetti Lanciabili da altri Oggetti</Italian>
<Chinese>啟用可撿取附著投擲物</Chinese>
<Chinesesimp>启用可捡取附着投掷物</Chinesesimp>
<Portuguese>Permitir pegar arremessáveis fixados</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_EnablePickUpAttached_Description">
<English>Enables ability to pick up throwables from attached objects.</English>
@ -144,6 +155,7 @@
<Italian>Abilita la possibilità di raccogliere gli oggetti lanciabili dagli altri oggetti. </Italian>
<Chinese>啟用後, 可撿取附著在物件上的投擲物</Chinese>
<Chinesesimp>启用后, 可捡取附着在物件上的投掷物</Chinesesimp>
<Portuguese>Permite que arremessáveis fixados em objetos sejam pegos.</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_Prepare">
<English>Prepare/Change Throwable</English>
@ -156,6 +168,7 @@
<Italian>Prepara/Cambia Oggetto lanciabile</Italian>
<Chinese>準備/變更投擲物</Chinese>
<Chinesesimp>准备/变更投掷物</Chinesesimp>
<Portuguese>Preparar/Mudar Arremessável</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_dropModeHold">
<English>Throwable Drop Mode (Hold)</English>
@ -168,6 +181,7 @@
<Italian>Modalità Oggetto Gettabile (Mantenere)</Italian>
<Chinese>投擲模式 (按住)</Chinese>
<Chinesesimp>投掷模式 (按住)</Chinesesimp>
<Portuguese>Modo de Arremesso (Segurar)</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_DropModeToggle">
<English>Throwable Drop Mode (Toggle)</English>
@ -180,6 +194,7 @@
<Italian>Modalità Oggetto lanciabile Gettabile (Interruttore)</Italian>
<Chinese>投擲模式 (切換)</Chinese>
<Chinesesimp>投掷模式 (切换)</Chinesesimp>
<Portuguese>Modo de Arremesso (Alternar)</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_Primed">
<English>Primed</English>
@ -192,6 +207,7 @@
<Italian>Armato</Italian>
<Chinese>引信開始燃燒</Chinese>
<Chinesesimp>引信开始燃烧</Chinesesimp>
<Portuguese>Preparado</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_Throw">
<English>Throw</English>
@ -204,6 +220,7 @@
<Italian>Lanciare</Italian>
<Chinese>投擲</Chinese>
<Chinesesimp>投掷</Chinesesimp>
<Portuguese>Arremessar</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_ChangeMode">
<English>(Scroll) Change Mode</English>
@ -216,6 +233,7 @@
<Italian>(Scorrere) Cambio Modalità</Italian>
<Chinese>(滾輪) 變更模式</Chinese>
<Chinesesimp>(滚轮) 变更模式</Chinesesimp>
<Portuguese>(Roda do Mouse) Alternar modo</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_Extend">
<English>(Scroll) Extend</English>
@ -228,6 +246,7 @@
<Italian>(Scorrere) Estendere</Italian>
<Chinese>(滾輪) 延長</Chinese>
<Chinesesimp>(滚轮) 延长</Chinesesimp>
<Portuguese>(Roda do Mouse) Extender</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_Cook">
<English>(Click) Cook</English>
@ -240,6 +259,7 @@
<Italian>(Click) Arma</Italian>
<Chinese>(點擊) 提早拉開引信</Chinese>
<Chinesesimp>(点击) 提早拉开引信</Chinesesimp>
<Portuguese>(Clique) Cozinhar</Portuguese>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_PickUp">
<English>Pick Up</English>
@ -252,6 +272,7 @@
<Italian>Raccogli</Italian>
<Chinese>撿取</Chinese>
<Chinesesimp>捡取</Chinesesimp>
<Portuguese>Pegar</Portuguese>
</Key>
</Package>
</Project>

View File

@ -12,6 +12,7 @@
<Korean>위치가 잘못되었습니다.</Korean>
<Polish>Podano błędną pozycję.</Polish>
<Russian>Указана неверная позиция</Russian>
<Portuguese>Posição inválida fornecida.</Portuguese>
</Key>
<Key ID="STR_ACE_ai_GarrisonNoUnits">
<English>No units provided.</English>
@ -24,6 +25,7 @@
<Korean>병력이 없습니다.</Korean>
<Polish>Nie podano żadnych jednostek.</Polish>
<Russian>Не указаны юниты</Russian>
<Portuguese>Nenhuma unidade fornecida.</Portuguese>
</Key>
<Key ID="STR_ACE_ai_GarrisonNotEnoughPos">
<English>There aren't enough positions to place all units.</English>
@ -36,6 +38,7 @@
<Korean>모든 병력을 배치 할 공간이 없습니다.</Korean>
<Polish>Nie ma wystarczającej ilości pozycji, aby umieścić wszystkie jednostki.</Polish>
<Russian>Недостаточно позиций для размещения всех юнитов</Russian>
<Portuguese>Não há posições suficientes para colocar todas as unidades.</Portuguese>
</Key>
<Key ID="STR_ACE_ai_GarrisonNoBuilding">
<English>No building found.</English>
@ -48,6 +51,7 @@
<Korean>건물이 없습니다.</Korean>
<Polish>Nie znaleziono budynku.</Polish>
<Russian>Здание не найдено</Russian>
<Portuguese>Nenhuma construção encontrada.</Portuguese>
</Key>
</Package>
</Project>

Binary file not shown.

Binary file not shown.

View File

@ -18,18 +18,19 @@
params ["_stat", "_config", "_args"];
_args params ["_statMinMax", "_barLimits"];
TRACE_4("statBarStatement_accuracy",_stat,_config,_statMinMax,_barLimits);
private _fireModes = getArray (_config >> "modes");
private _dispersion = [];
{
private _n = log (getNumber (_config >> _x >> "dispersion"));
if (!finite _n) then {_n = 0;};
_dispersion pushBackUnique _n;
if (getNumber (_config >> _x >> "showToPlayer") != 0) then {
private _n = log (getNumber (_config >> _x >> "dispersion"));
if (!finite _n) then {_n = 0;};
_dispersion pushBackUnique _n;
};
} foreach _fireModes;
_dispersion sort true;
TRACE_1("",_dispersion);
linearConversion [_statMinMax select 0, _statMinMax select 1, _dispersion param [0, 0], _barLimits select 0, _barLimits select 1]

View File

@ -12,6 +12,7 @@
<Chinese>隱藏</Chinese>
<Chinesesimp>隐藏</Chinesesimp>
<Russian>Спрятать</Russian>
<Portuguese>Ocultar</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonHideTooltip">
<English>Hide interface</English>
@ -24,6 +25,7 @@
<Chinese>隱藏介面</Chinese>
<Chinesesimp>隐藏介面</Chinesesimp>
<Russian>Скрыть интерфейс</Russian>
<Portuguese>Oculta a Interface</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonLoadoutsText">
<English>Loadouts</English>
@ -36,6 +38,7 @@
<Chinese>裝備</Chinese>
<Chinesesimp>装备</Chinesesimp>
<Russian>Комплекты</Russian>
<Portuguese>Loadouts</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonExportText">
<English>Export</English>
@ -48,6 +51,7 @@
<Chinese>匯出</Chinese>
<Chinesesimp>汇出</Chinesesimp>
<Russian>Экспорт</Russian>
<Portuguese>Exportar</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonImportText">
<English>Import</English>
@ -60,6 +64,7 @@
<Chinese>匯入</Chinese>
<Chinesesimp>汇入</Chinesesimp>
<Russian>Импорт</Russian>
<Portuguese>Importar</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonCloseText">
<English>Close</English>
@ -72,6 +77,7 @@
<Chinese>關閉</Chinese>
<Chinesesimp>关闭</Chinesesimp>
<Russian>Закрыть</Russian>
<Portuguese>Fechar</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_noVirtualItems">
<English>No virtual item available</English>
@ -84,6 +90,7 @@
<Chinese>沒有可用的虛擬物品</Chinese>
<Chinesesimp>没有可用的虚拟物品</Chinesesimp>
<Russian>Виртуальный предмет недоступен</Russian>
<Portuguese>Nenhum item virtual disponível</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonSaveText">
<English>Save</English>
@ -96,6 +103,7 @@
<Chinese>保存</Chinese>
<Chinesesimp>保存</Chinesesimp>
<Russian>Сохранить</Russian>
<Portuguese>Salvar</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonSaveTooltip">
<English>Save the current loadout</English>
@ -108,12 +116,14 @@
<Chinese>保存當前的裝備</Chinese>
<Chinesesimp>保存当前的装备</Chinesesimp>
<Russian>Сохранить текущий комплект экипировки</Russian>
<Portuguese>Salva o loadout atual</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonSaveTooltip_shiftClick">
<English>[Shift+Click to save to mission defaults]</English>
<Japanese>[Shift + クリック] でミッション標準として保存します</Japanese>
<Polish>Shift + Klik aby zapisac jako domyślne dla misji </Polish>
<Russian>[Shift+Клик, чтобы сохранить в настройках по умолчанию]</Russian>
<Portuguese>[Shift+Clique para salvar nos padrões da missão]</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonRenameText">
<English>Rename</English>
@ -126,6 +136,7 @@
<Chinese>重新命名</Chinese>
<Chinesesimp>重新命名</Chinesesimp>
<Russian>Переименовать</Russian>
<Portuguese>Renomear</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonRenameTooltip">
<English>Rename the selected loadout</English>
@ -138,6 +149,7 @@
<Chinese>重新命名當前選擇的裝備</Chinese>
<Chinesesimp>重新命名当前选择的装备</Chinesesimp>
<Russian>Переименовать выбранный комплект экипировки</Russian>
<Portuguese>Renomeia o loadout selecionado</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonLoadText">
<English>Load</English>
@ -150,6 +162,7 @@
<Chinese>載入</Chinese>
<Chinesesimp>载入</Chinesesimp>
<Russian>Загрузить</Russian>
<Portuguese>Carregar</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonLoadTooltip">
<English>Load the selected loadout</English>
@ -162,6 +175,7 @@
<Chinese>載入當前選擇的裝備</Chinese>
<Chinesesimp>载入当前选择的装备</Chinesesimp>
<Russian>Загрузить выбранный комплект экипировки</Russian>
<Portuguese>Carrega o loadout selecionado</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonDeleteText">
<English>Delete</English>
@ -174,6 +188,7 @@
<Chinese>刪除</Chinese>
<Chinesesimp>删除</Chinesesimp>
<Russian>Удалить</Russian>
<Portuguese>Apagar</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonDeleteTooltip">
<English>Delete the selected loadout</English>
@ -186,6 +201,7 @@
<Chinese>刪除當前選擇的裝備</Chinese>
<Chinesesimp>删除当前选择的装备</Chinesesimp>
<Russian>Удалить выбранный комплект экипировки</Russian>
<Portuguese>Apaga o loadout selecionado</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_tabMyLoadoutsText">
<English>My loadouts</English>
@ -198,6 +214,7 @@
<Chinese>我的裝備</Chinese>
<Chinesesimp>我的装备</Chinesesimp>
<Russian>Мои комплекты</Russian>
<Portuguese>Meus loadouts</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_tabMyLoadoutsTooltip">
<English>Loadouts saved in your profile</English>
@ -210,6 +227,7 @@
<Chinese>裝備已保存到你的設定檔中</Chinese>
<Chinesesimp>装备已保存到你的设定档中</Chinesesimp>
<Russian>Комплекты экипировки, сохраненные в вашем профиле</Russian>
<Portuguese>Loadouts salvos em seu perfil</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_tabDefaultLoadoutsText">
<English>Default loadouts</English>
@ -222,6 +240,7 @@
<Chinese>預設裝備</Chinese>
<Chinesesimp>预设装备</Chinesesimp>
<Russian>По умолчанию</Russian>
<Portuguese>Loadouts padrões</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_tabDefaultLoadoutsTooltip">
<English>Loadouts made available by the mission maker</English>
@ -234,6 +253,7 @@
<Chinese>任務作者提供的預設裝備</Chinese>
<Chinesesimp>任务作者提供的预设装备</Chinesesimp>
<Russian>Комплекты экипировки, предоставляемые создателем миссии</Russian>
<Portuguese>Loadouts definidos pelo criador da missão</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_tabSharedLoadoutsText">
<English>Public loadouts</English>
@ -246,6 +266,7 @@
<Chinese>公用裝備</Chinese>
<Chinesesimp>公用装备</Chinesesimp>
<Russian>Публичные комплекты</Russian>
<Portuguese>Loadouts públicos</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_tabSharedLoadoutsTooltip">
<English>Loadouts shared by you and other players</English>
@ -258,6 +279,7 @@
<Chinese>由你與其他玩家分享的裝備配置</Chinese>
<Chinesesimp>由你与其他玩家分享的装备配置</Chinesesimp>
<Russian>Комплекты экипировки, опубликованные вами и другими игроками</Russian>
<Portuguese>Loadouts compartilhados por você ou outros jogadores</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_sortByWeightText">
<English>Sort by weight</English>
@ -270,6 +292,7 @@
<Chinese>以重量排序</Chinese>
<Chinesesimp>以重量排序</Chinesesimp>
<Russian>Сортировка по весу</Russian>
<Portuguese>Ordenar por peso</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_sortByAmountText">
<English>Sort by amount</English>
@ -282,6 +305,7 @@
<Chinese>以數量排序</Chinese>
<Chinesesimp>以数量排序</Chinesesimp>
<Russian>Сортировка по количеству</Russian>
<Portuguese>Ordenar por quantidade</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonShareTooltip">
<English>Share or stop sharing the selected loadout</English>
@ -294,6 +318,7 @@
<Chinese>開始/停止分享當前選擇的裝備</Chinese>
<Chinesesimp>开始/停止分享当前选择的装备</Chinesesimp>
<Russian>Открыть или закрыть общий доступ к комплекту экипировки</Russian>
<Portuguese>Compartilhar ou parar de compartilhar o loadout selecionado</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonSharePrivateText">
<English>Private</English>
@ -306,6 +331,7 @@
<Chinese>私用</Chinese>
<Chinesesimp>私用</Chinesesimp>
<Russian>Приватный</Russian>
<Portuguese>Privado</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonSharePublicText">
<English>Public</English>
@ -318,6 +344,7 @@
<Chinese>公用</Chinese>
<Chinesesimp>公用</Chinesesimp>
<Russian>Публичный</Russian>
<Portuguese>Público</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_exportDefaultError">
<English>The default loadouts list is empty!</English>
@ -330,6 +357,7 @@
<Chinese>沒有預設的裝備清單!</Chinese>
<Chinesesimp>没有预设的装备清单!</Chinesesimp>
<Russian>Список комплекта экипировки пуст!</Russian>
<Portuguese>A lista de loadouts padrões está vazia!</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_exportDefault">
<English>Default loadouts list exported to clipboard</English>
@ -342,6 +370,7 @@
<Chinese>預設的裝備清單已匯出到剪貼簿中</Chinese>
<Chinesesimp>预设的装备清单已汇出到剪贴簿中</Chinesesimp>
<Russian>Список комплекта экипировки по умолчанию экспортирован в буфер</Russian>
<Portuguese>A lista de loadouts padrões foi exportada pra área de transferência</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_exportCurrent">
<English>Current loadout exported to clipboard</English>
@ -354,6 +383,7 @@
<Chinese>當前的裝備已匯出到剪貼簿中</Chinese>
<Chinesesimp>当前的装备已汇出到剪贴簿中</Chinesesimp>
<Russian>Текущий список комплекта экипировки экспортирован в буфер</Russian>
<Portuguese>Loadout atual foi exportado pra área de transferência</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_importFormatError">
<English>Wrong format provided</English>
@ -366,6 +396,7 @@
<Chinese>提供的格式錯誤</Chinese>
<Chinesesimp>提供的格式错误</Chinesesimp>
<Russian>Неверный формат импорта</Russian>
<Portuguese>Format incorreto fornecido</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_importedDefault">
<English>Default loadouts list imported from clipboard</English>
@ -378,6 +409,7 @@
<Chinese>預設的裝備清單已從剪貼簿中匯入</Chinese>
<Chinesesimp>预设的装备清单已从剪贴簿中汇入</Chinesesimp>
<Russian>Список комплекта экипировки по умолчанию импортирован из буфера</Russian>
<Portuguese>A lista de loadouts padrões foi importada da área de transferência</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_importedCurrent">
<English>Loadout imported from clipboard</English>
@ -390,6 +422,7 @@
<Chinese>裝備已從剪貼簿中匯入</Chinese>
<Chinesesimp>装备已从剪贴簿中汇入</Chinesesimp>
<Russian>Список комплекта экипировки импортирован из буфера</Russian>
<Portuguese>Loadout importado da área de transferência</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_loadoutDeleted">
<English>The following loadout was deleted:</English>
@ -402,6 +435,7 @@
<Chinese>以下的裝備已被刪除:</Chinese>
<Chinesesimp>以下的装备已被删除:</Chinesesimp>
<Russian>Удален комплект экипировки:</Russian>
<Portuguese>O seguinte loadout foi apagado:</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_loadoutUnshared">
<English>The following loadout is not public anymore:</English>
@ -414,6 +448,7 @@
<Chinese>以下的裝備已不再被分享:</Chinese>
<Chinesesimp>以下的装备已不再被分享:</Chinesesimp>
<Russian>Этот комплект экипировки больше не публичный:</Russian>
<Portuguese>O seguinte loadout não é mais público:</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_saveEmptyNameBox">
<English>The name field is empty!</English>
@ -426,6 +461,7 @@
<Chinese>名稱欄位為空!</Chinese>
<Chinesesimp>名称栏位为空!</Chinesesimp>
<Russian>Поле имени пустое!</Russian>
<Portuguese>O nome não pode estar vazio!</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_saveAuthorError">
<English>You are the author of this loadout</English>
@ -438,6 +474,7 @@
<Chinese>你是這個裝備的作者</Chinese>
<Chinesesimp>你是这个装备的作者</Chinesesimp>
<Russian>Вы автор этого комплекта экипировки</Russian>
<Portuguese>Você é o autor desse loadout</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_saveSharedError">
<English>A loadout of yours with the same name is public</English>
@ -450,6 +487,7 @@
<Chinese>已有相同名稱的裝備在公用分享區</Chinese>
<Chinesesimp>已有相同名称的装备在公用分享区</Chinesesimp>
<Russian>Ваш комплект экипировки с таким же именем является публичным</Russian>
<Portuguese>Um loadout seu com o mesmo nome é público</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_loadoutSaved">
<English>The following loadout was saved:</English>
@ -462,6 +500,7 @@
<Chinese>以下的裝備已被保存:</Chinese>
<Chinesesimp>以下的装备已被保存:</Chinesesimp>
<Russian>Сохранен комплект экипировки:</Russian>
<Portuguese>O seguinte loadout foi salvo:</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_loadoutLoaded">
<English>The following loadout was loaded:</English>
@ -474,6 +513,7 @@
<Chinese>以下的裝備已被載入:</Chinese>
<Chinesesimp>以下的装备已被载入:</Chinesesimp>
<Russian>Загружен комплект экипировки:</Russian>
<Portuguese>O seguinte loadout foi carregado:</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_renameExistError">
<English>A loadout with the same name already exist!</English>
@ -486,6 +526,7 @@
<Chinese>已有相同名稱的裝備!</Chinese>
<Chinesesimp>已有相同名称的装备!</Chinesesimp>
<Russian>Комплект с таким именем уже существует!</Russian>
<Portuguese>Um loadout com o mesmo nome já existe!</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_loadoutRenamed">
<English>was renamed to</English>
@ -498,6 +539,7 @@
<Chinese>已被改名為</Chinese>
<Chinesesimp>已被改名为</Chinesesimp>
<Russian>был переименован в</Russian>
<Portuguese>foi renameado para</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_invertCameraSetting">
<English>Invert camera controls</English>
@ -510,6 +552,7 @@
<Chinese>反轉攝影機控制</Chinese>
<Chinesesimp>反转摄影机控制</Chinesesimp>
<Russian>Инвертировать управление камерой</Russian>
<Portuguese>Inverter controles da câmera</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_modIconsSetting">
<English>Enable mod icons</English>
@ -522,6 +565,7 @@
<Chinese>啟用模組圖示</Chinese>
<Chinesesimp>启用模组图示</Chinesesimp>
<Russian>Включить иконки модов</Russian>
<Portuguese>Ativar ícones de mods</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_fontHeightSetting">
<English>Panel font height</English>
@ -534,6 +578,7 @@
<Chinese>面板字體高度</Chinese>
<Chinesesimp>面板字体高度</Chinesesimp>
<Russian>Размер шрифта панели</Russian>
<Portuguese>Altura da fonte do painel</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_allowDefaultLoadoutsSetting">
<English>Allow default loadouts</English>
@ -546,6 +591,7 @@
<Chinese>允許預設裝備</Chinese>
<Chinesesimp>允许预设装备</Chinesesimp>
<Russian>Разрешить комплекты по умолчанию</Russian>
<Portuguese>Permitir loadouts padrões</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_allowSharingSetting">
<English>Allow loadout sharing</English>
@ -558,6 +604,7 @@
<Chinese>允許分享裝備</Chinese>
<Chinesesimp>允许分享装备</Chinesesimp>
<Russian>Разрешить публикацию комплектов</Russian>
<Portuguese>Permitir compartilhar loadouts</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_printToRPTSetting">
<English>Log missing / unavailable items</English>
@ -570,6 +617,7 @@
<Chinese>記錄遺失/無法使用的項目</Chinese>
<Chinesesimp>记录遗失/无法使用的项目</Chinesesimp>
<Russian>Вести журнал недоступных предметов</Russian>
<Portuguese>Registrar em log itens indisponíveis/não encontrados</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonCurrentMagTooltip">
<English>Primary magazine</English>
@ -582,6 +630,7 @@
<Chinese>主要武器彈匣</Chinese>
<Chinesesimp>主要武器弹匣</Chinesesimp>
<Russian>Основной магазин</Russian>
<Portuguese>Carregador Primário</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonCurrentMag2Tooltip">
<English>Secondary magazine</English>
@ -594,6 +643,7 @@
<Chinese>次要武器彈匣</Chinese>
<Chinesesimp>次要武器弹匣</Chinesesimp>
<Russian>Вторичный магазин</Russian>
<Portuguese>Carregador Secundário</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_settingCategory">
<English>ACE Arsenal</English>
@ -606,6 +656,7 @@
<Chinese>ACE虛擬軍火庫</Chinese>
<Chinesesimp>ACE虚拟军火库</Chinesesimp>
<Russian>ACE Арсенал</Russian>
<Portuguese>ACE Arsenal</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_defaultLoadoutsTooltip">
<English>Allow the use of the default loadouts tab</English>
@ -618,6 +669,7 @@
<Chinese>允許使用預設的裝備</Chinese>
<Chinesesimp>允许使用预设的装备</Chinesesimp>
<Russian>Разрешить использование вкладки комплектов экипировки по умолчанию</Russian>
<Portuguese>Permite o uso da aba de loadouts padrões</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_modIconsTooltip">
<English>Show / hide mod icons for the left panel</English>
@ -630,6 +682,7 @@
<Chinese>在左面板中顯示/隱藏模組圖示</Chinese>
<Chinesesimp>在左面板中显示/隐藏模组图示</Chinesesimp>
<Russian>Показать / скрыть значки модов в левой панели</Russian>
<Portuguese>Mostra / Esconde os ícones de mods no painel esquerdo</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_fontHeightTooltip">
<English>Change the font height for text in the left / right panels</English>
@ -642,6 +695,7 @@
<Chinese>變更左/右面板中的字體高度</Chinese>
<Chinesesimp>变更左/右面板中的字体高度</Chinesesimp>
<Russian>Изменить размер шрифта для текста в левой / правой панелях</Russian>
<Portuguese>Muda o tamanho da fonte para os textos nos painéis esquerdo e direito</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_printToRPTTooltip">
<English>Log missing / unavailable items in the RPT</English>
@ -654,6 +708,7 @@
<Chinese>記錄遺失/無法使用的項目到RPT檔案中</Chinese>
<Chinesesimp>记录遗失/无法使用的项目到RPT档案中</Chinesesimp>
<Russian>Вести журнал отсутствующих / недоступных предметов в RPT</Russian>
<Portuguese>Registrar em log itens indisponíveis no RPT</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_CantOpenDisplay">
<English>Unable to open ACE arsenal</English>
@ -666,6 +721,7 @@
<Chinesesimp>无法开启ACE虚拟军火库</Chinesesimp>
<Polish>Nie można otworzyć arsenału ACE</Polish>
<Russian>Невозможно открыть ACE Арсенал</Russian>
<Portuguese>Não foi possível abrir o ACE Arsenal</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_portLoadoutsText">
<English>Import BI VA loadouts to ACE Arsenal</English>
@ -678,6 +734,7 @@
<Italian>Importa l'arsenale virtuale BI nell'arsenale ACE</Italian>
<Polish>Importuj zestawy wyposażenia z wirtualnego arsenału BI do arsenału ACE</Polish>
<Russian>Импорт комплектов из Арсенала BI в Арсенал ACE</Russian>
<Portuguese>Importar loadouts do BIS Arsenal para o ACE Arsenal</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_portLoadoutsPlayerError">
<English>No player unit available! Place a unit and mark it as "Player".</English>
@ -690,6 +747,7 @@
<Italian>Non ci sono giocatori! Poisziona una unità e impostala come "Giocatore".</Italian>
<Polish>Brak dostępnych jednostek gracza! Postaw jednostkę i oznacz ją jako "Gracz".</Polish>
<Russian>Нет доступных игроков! Разместите юнит и отметьте его как «Игрок»</Russian>
<Portuguese>Nenhuma unidade de jogador disponível! Coloque uma unidade e marque como "Player".</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_portLoadoutsLoadoutError">
<English>No loadouts to import.</English>
@ -702,6 +760,7 @@
<Italian>Non ci sono equipaggiamenti da importare.</Italian>
<Polish>Brak zestawów wyposażenia do zaimportowania.</Polish>
<Russian>Нет комплектов для импорта</Russian>
<Portuguese>Nenhum loadout para importar.</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_Mission">
<English>ACE Arsenal</English>
@ -713,6 +772,7 @@
<Italian>Arsenale ACE</Italian>
<Polish>Arsenał ACE</Polish>
<Russian>ACE Арсенал</Russian>
<Portuguese>ACE Arsenal</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_ReturnToArsenal">
<English>Return to ACE Arsenal.</English>
@ -724,6 +784,7 @@
<Italian>Torna all'arsenale ACE</Italian>
<Polish>Wróć do arsenału ACE.</Polish>
<Russian>Вернуться в ACE Арсенал</Russian>
<Portuguese>Voltar para o ACE Arsenal</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_Mission_tooltip">
<English>Use ACE Arsenal to try out different weapons and equipment.</English>
@ -735,6 +796,7 @@
<Italian>Usa l'arsenale ACE per provare armi ed equipaggiamenti vari.</Italian>
<Polish>Skorzystaj z arsenału ACE by wypróbować broń i ekwipunek.</Polish>
<Russian>Используйте ACE Arsenal, чтобы опробовать различное оружие и снаряжение.</Russian>
<Portuguese>Use o ACE Arsenal para experimentar diferentes armas e equipamentos.</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_Mission_overview">
<English>Try weapons and equipment and create your own loadouts.</English>
@ -746,6 +808,7 @@
<Italian>Prova armi ed equipaggiamenti e creai i tuoi equipaggiamenti personalizzati.</Italian>
<Polish>Wypróbuj broń i ekwipunek i stwórz swoje własne zestawy wyposażenia.</Polish>
<Russian>Опробуйте оружие и снаряжение, создавайте собственные комплекты экипировки.</Russian>
<Portuguese>Experimente armas e equipamentos e crie seus próprios loadouts.</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonLoadoutsTooltip">
<English>Open the loadouts screen</English>
@ -757,6 +820,7 @@
<Italian>Apri la pagina degli equipaggiamenti</Italian>
<Polish>Otwórz ekran zestawów</Polish>
<Russian>Открыть окно комплектов экипировки</Russian>
<Portuguese>Abre a tela de loadouts</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonExportTooltip">
<English>Export current / default loadouts</English>
@ -768,6 +832,7 @@
<Italian>Esporta l'equipaggiamento attuale oppure la lista degli equipaggiamenti di base</Italian>
<Polish>Eksportuj obecne / domyślne zestawy wyposażenia </Polish>
<Russian>Экспорт комплектов экипировки</Russian>
<Portuguese>Exporta loadout atual / loadouts padrões</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonImportTooltip">
<English>Import current / default loadouts</English>
@ -779,6 +844,7 @@
<Italian>Importa l'equipaggiamento attuale oppure la lista degli equipaggiamenti di base</Italian>
<Polish>Importuj obecne / domyślne zestawy wyposażenia</Polish>
<Russian>Импорт комплектов экипировки</Russian>
<Portuguese>Importa loadout atual / loadouts padrões</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_statPotassium">
<English>Potassium levels</English>
@ -789,6 +855,7 @@
<Italian>Ilvello di potassio</Italian>
<Polish>Poziomy potasu</Polish>
<Russian>Уровень Калия</Russian>
<Portuguese>Níveis de Potássio</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_statMagnification">
<English>Magnification</English>
@ -800,7 +867,7 @@
<Russian>Увеличение</Russian>
<German>Vergrößerung</German>
<Czech>Zvětšení</Czech>
<Portuguese>Aumentox</Portuguese>
<Portuguese>Aumento</Portuguese>
<Korean>배율</Korean>
<Chinesesimp>放大倍数</Chinesesimp>
<Japanese>拡大倍率</Japanese>
@ -813,6 +880,7 @@
<Polish>Wsparcie noktowizyjne</Polish>
<Italian>Supporto visore notturno</Italian>
<Russian>Поддержка ночного видения</Russian>
<Portuguese>Suporte de Visão Noturna</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_statVisionMode_supPrim">
<English>Primary supported</English>
@ -821,6 +889,7 @@
<Polish>Wspierane przez broń główną</Polish>
<Italian>Primario supportato</Italian>
<Russian>Поддерживается осн. прицелом</Russian>
<Portuguese>Primária suportada</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_statVisionMode_supSec">
<English>Secondary supported</English>
@ -829,6 +898,7 @@
<Polish>Wspierane przez broń drugorzędną</Polish>
<Italian>Secondario supportato</Italian>
<Russian>Поддерживается доп. прицелом</Russian>
<Portuguese>Secundária suportada</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_statVisionMode_IntPrim">
<English>Primary integrated</English>
@ -837,6 +907,7 @@
<Polish>Zintegrowane z bronią główną</Polish>
<Italian>Primario integrato</Italian>
<Russian>Интегрирован в осн. прицел</Russian>
<Portuguese>Primária integrada</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_statVisionMode_NoSup">
<English>Not Supported</English>
@ -845,6 +916,7 @@
<Polish>Nie wspierane</Polish>
<Italian>Non supportato</Italian>
<Russian>Не поддерживается</Russian>
<Portuguese>Não suportado</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_page">
<English>Page</English>
@ -856,6 +928,7 @@
<Italian>Pagina</Italian>
<Polish>Strona</Polish>
<Russian>Стр.</Russian>
<Portuguese>Página</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_enableIdentityTabsSettings">
<English>Enable the faces / voices / insignias tabs</English>
@ -867,6 +940,7 @@
<Italian>Abilita volti, voci e insegne</Italian>
<Polish>Aktywuj zakładki twarz / głos / insygnia</Polish>
<Russian>Включить вкладки Лиц / Голосов / Знаков различия</Russian>
<Portuguese>Ativar as abas de rostos / vozes / insígnias</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_buttonClearContainerTooltip">
<English>Empty the selected container</English>
@ -878,6 +952,7 @@
<Italian>Svuota il contenitore selezionato</Italian>
<Polish>Opróżnij wybrany pojemnik</Polish>
<Russian>Очистить контейнер</Russian>
<Portuguese>Esvaziar o cointâiner selecionado</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_exportedClassnameText">
<English>Exported class name to clipboard</English>
@ -889,6 +964,7 @@
<Italian>Copiato il nome della classe negli appunti</Italian>
<Polish>Wyeksportowano nazwę klasy do schowka</Polish>
<Russian>Имя класса, экспортированного в буфер</Russian>
<Portuguese>O nome da classe foi exportado para a área de transferência</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_Mode">
<English>Mode</English>
@ -912,7 +988,7 @@
<Spanish>Lista blanca</Spanish>
<German>Whitelist</German>
<Czech>Seznam povolených</Czech>
<Portuguese>Lista branca</Portuguese>
<Portuguese>Lista Branca</Portuguese>
<French>Liste blanche</French>
<Hungarian>Fehérlista</Hungarian>
<Russian>Вайтлист</Russian>
@ -929,6 +1005,7 @@
<Italian>Lista Nera</Italian>
<Polish>Czarna lista (lista wykluczeń)</Polish>
<Russian>Чёрный список</Russian>
<Portuguese>Lista Negra</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_Items">
<English>Items</English>
@ -952,6 +1029,7 @@
<Japanese>スクリプト用に現在のアイテム リストをアレイでエクスポートします</Japanese>
<Italian>Esporta l'attuale lista di elementi come un array, per essere usati negli script</Italian>
<Polish>Eksportuj obecną listę przedmiotów jako tablicę do wykorzystania w skryptach</Polish>
<Portuguese>Exportar a lista atual de itens como uma matriz para usar em scripts</Portuguese>
<Russian>Экспорт текущего списка предметов в виде массива для использования в скриптах</Russian>
</Key>
<Key ID="STR_ACE_Arsenal_AttributeImport_Tooltip">
@ -960,6 +1038,7 @@
<Polish>Zaimportuj listę przedmiotów ze schowka (lista musi być w tym samym formacie jak przy exporcie)</Polish>
<Japanese>クリップボードからアイテムリストをアレイでインポートします (エクスポートと同じフォーマットである必要があります)</Japanese>
<Russian>Импорт массива списка предметов из буфера (должен иметь тот же формат, что при экспорте)</Russian>
<Portuguese>Importar lista de itens da área de transferência (deve estar no mesmo formato que uma lista exportada)</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_AttributeAddCompatible_DisplayName">
<English>Add Compatible Items</English>
@ -967,6 +1046,7 @@
<Polish>Dodaj kompatybilne przedmioty</Polish>
<Japanese>対応アイテムを追加</Japanese>
<Russian>Добавить совместимые предметы</Russian>
<Portuguese>Adicionar itens compatíveis</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_AttributeAddCompatible_Tooltip">
<English>Will automatically add compatible attachments or magazines (based on selected category) for all weapons in current items list</English>
@ -974,6 +1054,7 @@
<Polish>Automatycznie doda kompatybilne dodatki oraz magazynki (odpowiednio do każdej kategorii) dla wszystkich broni na liście</Polish>
<Japanese>現在のアイテム リスト内にある全武器に対応するアタッチメントと弾倉 (選択したカテゴリに基づき) を自動的に追加します</Japanese>
<Russian>Добавляет совместимые приспособления или магазины (в зависимости от выбранной категории) для всего оружия в текущем списке предметов</Russian>
<Portuguese>Irá automaticamente adicionar acessórios ou carregadores (baseado na categoria selecionada) para todas as armas na lista de itens atual</Portuguese>
</Key>
<Key ID="STR_ACE_Arsenal_statTTL">
<English>Time to live</English>
@ -983,6 +1064,7 @@
<Polish>Czas by żyć</Polish>
<Italian>Scadenza (TTL)</Italian>
<Russian>Время действия</Russian>
<Portuguese>Time to live</Portuguese>
</Key>
</Package>
</Project>

View File

@ -40,7 +40,7 @@
<Polish>Odczep przedmiot</Polish>
<French>Détacher l'objet</French>
<Czech>Odepnout předmět</Czech>
<Portuguese>Separar item</Portuguese>
<Portuguese>Desprender item</Portuguese>
<Italian>Stacca l'oggetto</Italian>
<Hungarian>Tárgy lecsatolása</Hungarian>
<Russian>Отсоединить</Russian>
@ -200,7 +200,7 @@
<Polish>Umieść</Polish>
<French>Placer</French>
<Czech>Položit</Czech>
<Portuguese>Colocar</Portuguese>
<Portuguese>Fixar</Portuguese>
<Italian>Posiziona</Italian>
<Hungarian>Elhelyez</Hungarian>
<Russian>Установить</Russian>

View File

@ -2290,6 +2290,7 @@
<Italian>Rigatura della canna</Italian>
<Polish>Gwintowanie lufy</Polish>
<Russian>Нарезы ствола</Russian>
<Portuguese>Barrel Twist</Portuguese>
</Key>
<Key ID="STR_ACE_Ballistics_statBarrelLength">
<English>Barrel length</English>
@ -2301,6 +2302,7 @@
<Italian>Lunghezza della canna</Italian>
<Polish>Długość lufy</Polish>
<Russian>Длина ствола</Russian>
<Portuguese>Comprimento do cano</Portuguese>
</Key>
<Key ID="STR_ACE_Ballistics_statBallisticCoef">
<English>Ballistic coefficient</English>
@ -2312,6 +2314,7 @@
<Italian>Coefficente balistico</Italian>
<Polish>Współczynnik balistyczny</Polish>
<Russian>Баллистический коэффициент</Russian>
<Portuguese>Coeficiente balístico</Portuguese>
</Key>
<Key ID="STR_ACE_Ballistics_statBulletMass">
<English>Bullet mass</English>
@ -2323,6 +2326,7 @@
<Italian>Massa del proiettile</Italian>
<Polish>Masa pocisku</Polish>
<Russian>Масса пули</Russian>
<Portuguese>Massa do projétil</Portuguese>
</Key>
<Key ID="STR_ACE_Ballistics_statMuzzleVelocity">
<English>Muzzle velocity</English>
@ -2334,6 +2338,7 @@
<Italian>Velocità iniziale</Italian>
<Polish>Prędkość wylotowa</Polish>
<Russian>Начальная скорость</Russian>
<Portuguese>Velocidade de Saída</Portuguese>
</Key>
</Package>
</Project>

View File

@ -11,6 +11,7 @@
<Korean>포로설정</Korean>
<Polish>Jeńcy</Polish>
<Russian>Пленные</Russian>
<Portuguese>Prisioneiros</Portuguese>
</Key>
<Key ID="STR_ACE_Captives_SetCaptive">
<English>Take Prisoner</English>
@ -320,7 +321,7 @@
<Spanish>Permitir rendición</Spanish>
<Czech>Povolit vzdávání</Czech>
<German>Kapitulation erlauben</German>
<Portuguese>Permite rendição</Portuguese>
<Portuguese>Permitir Rendição</Portuguese>
<French>Permettre la reddition</French>
<Hungarian>Kapituláció engedélyezése</Hungarian>
<Russian>Разрешить сдаваться</Russian>
@ -416,6 +417,7 @@
<Korean>커서의 병력을 포박합니다.</Korean>
<Polish>Ustawia jednostkę pod kursorem jako jeniec.</Polish>
<Russian>Арестовывает указанный курсором юнит</Russian>
<Portuguese>Torna a unidade sob o cursor um prisioneiro</Portuguese>
</Key>
<Key ID="STR_ACE_Captives_ModuleSettings_requireSurrenderAi_name">
<English>Require AI surrendering</English>
@ -427,6 +429,7 @@
<Korean>AI 항복 필요</Korean>
<Polish>Wymaga poddania się przez SI</Polish>
<Russian>Требовать ИИ сдаться для ареста</Russian>
<Portuguese>Requer rendição da IA</Portuguese>
</Key>
<Key ID="STR_ACE_Captives_ModuleSettings_requireSurrenderAi_description">
<English>Require AI to surrender before they can be arrested</English>
@ -438,6 +441,7 @@
<Korean>포박하기 전에 먼저 AI가 투항해야만 합니다.</Korean>
<Polish>Wymaga poddania się przez SI zanim aresztowanie będzie możliwe</Polish>
<Russian>Требовать для ареста, чтобы ИИ вначале сдавались</Russian>
<Portuguese>Requer que a IA se renda antes que seja presa</Portuguese>
</Key>
</Package>
</Project>

View File

@ -238,6 +238,7 @@
<Polish>Przestrzeń ładunkowa</Polish>
<Korean>화물 공간</Korean>
<Russian>Грузовое пространство</Russian>
<Portuguese>Espaço de Carga</Portuguese>
</Key>
<Key ID="STR_ACE_Cargo_space_edenDesc">
<English>The cargo space available in this vehicle/container</English>
@ -249,6 +250,7 @@
<Polish>Dostępna przestrzeń ładunkowa w tym pojeździe/kontenerze</Polish>
<Korean>이 차량/컨테이너에서 사용가능한 화물 공간</Korean>
<Russian>Грузовое пространство, доступное в этом транспортном средстве / контейнере</Russian>
<Portuguese>O espaço de carga disponível nesse veículo/contâiner</Portuguese>
</Key>
<Key ID="STR_ACE_Cargo_size_edenName">
<English>Cargo Size</English>
@ -260,6 +262,7 @@
<Polish>Wielkość ładunku</Polish>
<Korean>화물 크기</Korean>
<Russian>Размер груза</Russian>
<Portuguese>Tamanho da Carga</Portuguese>
</Key>
<Key ID="STR_ACE_Cargo_size_edenDesc">
<English>The cargo space required to hold this object (-1 for unloadable)</English>
@ -271,6 +274,7 @@
<Polish>Wymagana przestrzeń ładunkowa dla tego obiektu (-1 dla niemożliwych do załadowania)</Polish>
<Korean>이 화물을 적재하는데 필요한 공간 (-1=무조건 적재가능)</Korean>
<Russian>Грузовое пространство, необходимое для размещения этого объекта (-1 для незагружаемого)</Russian>
<Portuguese>O Espaço de carga necessário para carregar esse objeto (-1 para que não seja carregável)</Portuguese>
</Key>
<Key ID="STR_ACE_Cargo_paradropButton">
<English>Airdrop</English>
@ -283,6 +287,7 @@
<Chinese>空投</Chinese>
<Chinesesimp>空投</Chinesesimp>
<Russian>Десантирование груза</Russian>
<Portuguese>Lançamento Aéreo</Portuguese>
</Key>
<Key ID="STR_ACE_Cargo_unlevelFlightWarning">
<English>Unlevel Flight</English>
@ -295,6 +300,7 @@
<Chinese>此架飛機並無保持水平飛行</Chinese>
<Chinesesimp>此架飞机并无保持水平飞行</Chinesesimp>
<Russian>Неподходящее положение</Russian>
<Portuguese>Desnivelar Vôo</Portuguese>
</Key>
<Key ID="STR_ACE_Cargo_paradropTimeCoefficent">
<English>Paradrop Time Coefficient</English>
@ -307,6 +313,7 @@
<Polish>Współczynnik czasu zrzutu</Polish>
<Korean>공중 투하 시간 계수</Korean>
<Russian>Коэффициент времени десантирования</Russian>
<Portuguese>Fator de Tempo para soltar a carga</Portuguese>
</Key>
<Key ID="STR_ACE_Cargo_paradropTimeCoefficent_description">
<English>Modifier for how long it takes to paradrop a cargo item.</English>
@ -319,6 +326,7 @@
<Polish>Modyfikator wskazujący jak dużo czasu potrzeba by zrzucić przedmiot na spadochronie.</Polish>
<Korean>화물을 공중 투하 하는데 얼마나 걸리는 시간 설정</Korean>
<Russian>Модификатор времени, необходимого для десантирования груза</Russian>
<Portuguese>Coeficiente de quanto tempo leva para soltar uma carga de paraquedas</Portuguese>
</Key>
<Key ID="STR_ACE_Cargo_loadTimeCoefficient">
<English>Load Time Coefficient</English>
@ -327,6 +335,7 @@
<Polish>Współczynnik czasu załadowania</Polish>
<Italian>Coefficente Tempo Caricamento</Italian>
<Russian>Коэффициент времени погрузки</Russian>
<Portuguese>Fator de tempo para carregar</Portuguese>
</Key>
<Key ID="STR_ACE_Cargo_loadTimeCoefficient_description">
<English>Modifies how long it takes to load/unload items.\nTime, in seconds, is the size of the item multiplied by this value.</English>
@ -335,6 +344,7 @@
<Polish>Modyfikuje, jak długo zajmuje załadowywanie/wyładowywanie przedmiotów. \nCzasem, w sekundach, jest wielkość przedmiotu razy jego wartość.</Polish>
<Italian>Modifica quanto tempo ci impiega a caricare o scaricare gli oggetti.\n Tempo, in secondi, è la dimensione dell'oggetto moltiplicata per questo valore</Italian>
<Russian>Изменяет время для загрузки/выгрузки предметов. \n Время (сек) - это размер предмета, умноженный на это значение.</Russian>
<Portuguese>Coeficiente de quanto tempo leva para carregar/descarregar itens.\nTempo, em segundos, é o tamanho do objeto multiplicado por esse valor.</Portuguese>
</Key>
</Package>
</Project>

View File

@ -12,6 +12,7 @@
<Chinese>螢光棒</Chinese>
<Chinesesimp>萤光棒</Chinesesimp>
<Russian>Химсвет</Russian>
<Portuguese>Bastões de Luz</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Action_Prepare">
<English>Prepare %1</English>
@ -24,6 +25,7 @@
<Chinese>使用%1</Chinese>
<Chinesesimp>使用%1</Chinesesimp>
<Russian>Приготовить %1</Russian>
<Portuguese>Preparar %1</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Action_Prepare_Done">
<English>%1&lt;br/&gt;Prepared</English>
@ -36,6 +38,7 @@
<Chinese>%1&lt;br/&gt;已使用</Chinese>
<Chinesesimp>%1&lt;br/&gt;已使用</Chinesesimp>
<Russian>%1&lt;br/&gt;Приготовлен</Russian>
<Portuguese>%1&lt;br/&gt;Preparado</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Inventory_Full">
<English>No inventory space</English>
@ -64,6 +67,7 @@
<Chinese>[ACE] 螢光棒</Chinese>
<Chinesesimp>[ACE] 萤光棒</Chinesesimp>
<Russian>[ACE] Химсвет</Russian>
<Portuguese>[ACE] Bastões de Luz</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Orange_DisplayName">
<English>Chemlight (Orange)</English>
@ -76,6 +80,7 @@
<Chinese>螢光棒 (橘色)</Chinese>
<Chinesesimp>萤光棒 (橘色)</Chinesesimp>
<Russian>Химсвет (Оранжевый)</Russian>
<Portuguese>Bastão de Luz (Laranja)</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Orange_DisplayNameShort">
<English>Orange Light</English>
@ -88,6 +93,7 @@
<Chinese>橘色光</Chinese>
<Chinesesimp>橘色光</Chinesesimp>
<Russian>Оранжевый свет</Russian>
<Portuguese>Luz Laranja</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Orange_DescriptionShort">
<English>Type: Light - Orange&lt;br /&gt;Rounds: 1&lt;br /&gt;Used in: Hand</English>
@ -100,6 +106,7 @@
<Chinese>類型: 光 - 橘色&lt;br /&gt;發數: 1&lt;br /&gt;使用於: 手</Chinese>
<Chinesesimp>类型: 光 - 橘色&lt;br /&gt;发数: 1&lt;br /&gt;使用于: 手</Chinesesimp>
<Russian>Тип: Свет - Оранжевый&lt;br /&gt;1 штука&lt;br /&gt;В руках</Russian>
<Portuguese>Tipo: Luz - Laranja&lt;br/&gt;Usos: 1&lt;br/&gt;Usado em: Mão</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_White_DisplayName">
<English>Chemlight (White)</English>
@ -112,6 +119,7 @@
<Chinese>螢光棒 (白色)</Chinese>
<Chinesesimp>萤光棒 (白色)</Chinesesimp>
<Russian>Химсвет (Белый)</Russian>
<Portuguese>Bastão de Luz (Branco)</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_White_DisplayNameShort">
<English>White Light</English>
@ -124,6 +132,7 @@
<Chinese>白色光</Chinese>
<Chinesesimp>白色光</Chinesesimp>
<Russian>Белый свет</Russian>
<Portuguese>Luz Branca</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_White_DescriptionShort">
<English>Type: Light - White&lt;br /&gt;Rounds: 1&lt;br /&gt;Used in: Hand</English>
@ -136,6 +145,7 @@
<Chinese>類型: 光 - 白色&lt;br /&gt;發數: 1&lt;br /&gt;使用於: 手</Chinese>
<Chinesesimp>类型: 光 - 白色&lt;br /&gt;发数: 1&lt;br /&gt;使用于: 手</Chinesesimp>
<Russian>Тип: Свет - Белый&lt;br /&gt;1 штука&lt;br /&gt;В руках</Russian>
<Portuguese>Tipo: Luz - Branco&lt;br/&gt;Usos: 1&lt;br/&gt;Usado em: Mão</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_HiRed_DisplayName">
<English>Chemlight (Hi Red)</English>
@ -148,6 +158,7 @@
<Chinese>螢光棒 (超亮紅色)</Chinese>
<Chinesesimp>萤光棒 (超亮红色)</Chinesesimp>
<Russian>Химсвет (Ярко-Красный)</Russian>
<Portuguese>Bastão de Luz (Vermelho Forte)</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_HiRed_DisplayNameShort">
<English>Red Hi Light</English>
@ -160,6 +171,7 @@
<Chinese>超亮紅色光</Chinese>
<Chinesesimp>超亮红色光</Chinesesimp>
<Russian>Яркий Красный свет</Russian>
<Portuguese>Luz forte vermelha</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_HiRed_DescriptionShort">
<English>Type: Light - Red Hi (30 minute)&lt;br /&gt;Rounds: 1&lt;br /&gt;Used in: Hand</English>
@ -172,6 +184,7 @@
<Chinese>類型: 光 - 超亮紅色 (30分鐘)&lt;br /&gt;發數: 1&lt;br /&gt;使用於: 手</Chinese>
<Chinesesimp>类型: 光 - 超亮红色 (30分钟)&lt;br /&gt;发数: 1&lt;br /&gt;使用于: 手</Chinesesimp>
<Russian>Тип: Свет - Ярко-Красный (30 минут)&lt;br /&gt;1 штука&lt;br /&gt;В руках</Russian>
<Portuguese>Tipo: Luz - Vermelho Forte (30 minutos)&lt;br/&gt;Usos: 1&lt;br/&gt;Usado em: Mão</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_HiYellow_DisplayName">
<English>Chemlight (Hi Yellow)</English>
@ -184,6 +197,7 @@
<Chinese>螢光棒 (超亮黃色)</Chinese>
<Chinesesimp>萤光棒 (超亮黄色)</Chinesesimp>
<Russian>Химсвет (Ярко-Желтый)</Russian>
<Portuguese>Bastão de Luz (Amarelo Forte)</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_HiYellow_DisplayNameShort">
<English>Yellow Hi Light</English>
@ -196,6 +210,7 @@
<Chinese>超亮黃色光</Chinese>
<Chinesesimp>超亮黄色光</Chinesesimp>
<Russian>Яркий Желтый свет</Russian>
<Portuguese>Luz forte amarela</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_HiYellow_DescriptionShort">
<English>Type: Light - Yellow Hi (30 minute)&lt;br /&gt;Rounds: 1&lt;br /&gt;Used in: Hand</English>
@ -208,6 +223,7 @@
<Chinese>類型: 光 - 超亮黃色 (30分鐘)&lt;br /&gt;發數: 1&lt;br /&gt;使用於: 手</Chinese>
<Chinesesimp>类型: 光 - 超亮黄色 (30分钟)&lt;br /&gt;发数: 1&lt;br /&gt;使用于: 手</Chinesesimp>
<Russian>Тип: Свет - Ярко-Желтый (30 минут)&lt;br /&gt;1 штука&lt;br /&gt;В руках</Russian>
<Portuguese>Tipo: Luz - Amarelo Forte (30 minutos)&lt;br/&gt;Usos: 1&lt;br/&gt;Usado em: Mão</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_HiWhite_DisplayName">
<English>Chemlight (Hi White)</English>
@ -220,6 +236,7 @@
<Chinese>螢光棒 (超亮白色)</Chinese>
<Chinesesimp>萤光棒 (超亮白色)</Chinesesimp>
<Russian>Химсвет (Ярко-Белый)</Russian>
<Portuguese>Bastão de Luz (Branco Forte)</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_HiWhite_DisplayNameShort">
<English>White Hi Light</English>
@ -232,6 +249,7 @@
<Chinese>超亮白色光</Chinese>
<Chinesesimp>超亮白色光</Chinesesimp>
<Russian>Яркий Белый свет</Russian>
<Portuguese>Luz forte branca</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_HiWhite_DescriptionShort">
<English>Type: Light - White Hi (30 minute)&lt;br /&gt;Rounds: 1&lt;br /&gt;Used in: Hand</English>
@ -244,6 +262,7 @@
<Chinese>類型: 光 - 超亮白色 (30分鐘)&lt;br /&gt;發數: 1&lt;br /&gt;使用於: 手</Chinese>
<Chinesesimp>类型: 光 - 超亮白色 (30分钟)&lt;br /&gt;发数: 1&lt;br /&gt;使用于: 手</Chinesesimp>
<Russian>Тип: Свет - Ярко-Белый (30 минут)&lt;br /&gt;1 штука&lt;br /&gt;В руках</Russian>
<Portuguese>Tipo: Luz - Branco Forte (30 minutos)&lt;br/&gt;Usos: 1&lt;br/&gt;Usado em: Mão</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_HiBlue_DisplayName">
<English>Chemlight (Hi Blue)</English>
@ -252,6 +271,7 @@
<Polish>Świetlik (jaskrawy niebieski)</Polish>
<Italian>Luce chimica (Hi Blu)</Italian>
<Russian>Химсвет (Ярко-Синий)</Russian>
<Portuguese>Bastão de Luz (Azul Forte)</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_HiBlue_DisplayNameShort">
<English>Blue Hi Light</English>
@ -260,6 +280,7 @@
<Polish>Jaskrawe niebieskie światło</Polish>
<Italian>Luce Hi Blu</Italian>
<Russian>Яркий Синий свет</Russian>
<Portuguese>Luz forte azul</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_HiBlue_DescriptionShort">
<English>Type: Light - Blue Hi (30 minute)&lt;br /&gt;Rounds: 1&lt;br /&gt;Used in: Hand</English>
@ -268,6 +289,7 @@
<Polish>Typ: Światło - jaskrawe niebieskie (30 minut)&lt;br/&gt;Pociski: 1&lt;br/&gt;Używany w: ręce</Polish>
<Italian>Tipo: Luce - Hi blu (30 minuti)&lt;br/&gt;Rimanenti:1 &lt;br/&gt;Usata in: Mano</Italian>
<Russian>Тип: Свет - Ярко-Синий (30 минут)&lt;br /&gt;1 штука&lt;br /&gt;В руках</Russian>
<Portuguese>Tipo: Luz - Azul Forte (30 minutos)&lt;br/&gt;Usos: 1&lt;br/&gt;Usado em: Mão</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_HiGreen_DisplayName">
<English>Chemlight (Hi Green)</English>
@ -276,6 +298,7 @@
<Polish>Świetlik (jaskrawy zielony)</Polish>
<Italian>Luce chimica (Hi Verde)</Italian>
<Russian>Химсвет (Ярко-Зеленый)</Russian>
<Portuguese>Bastão de Luz (Verde Forte)</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_HiGreen_DisplayNameShort">
<English>Green Hi Light</English>
@ -284,6 +307,7 @@
<Polish>Jaskrawe zielone światło</Polish>
<Italian>Luce Hi Verde</Italian>
<Russian>Яркий Зеленый свет</Russian>
<Portuguese>Luz forte verde</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_HiGreen_DescriptionShort">
<English>Type: Light - Green Hi (30 minute)&lt;br /&gt;Rounds: 1&lt;br /&gt;Used in: Hand</English>
@ -292,6 +316,7 @@
<Polish>Typ: Światło - jaskrawe zielone (30 minut)&lt;br/&gt;Pociski: 1&lt;br/&gt;Używany w: ręce</Polish>
<Italian>Tipo: Luce - Hi verde (30 minuti)&lt;br/&gt;Rimanenti: 1&lt;br/&gt;Usata in: Mano</Italian>
<Russian>Тип: Свет - Ярко-Зеленый (30 минут)&lt;br /&gt;1 штука&lt;br /&gt;В руках</Russian>
<Portuguese>Tipo: Luz - Verde Forte (30 minutos)&lt;br/&gt;Usos: 1&lt;br/&gt;Usado em: Mão</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_UltraHiOrange_DisplayName">
<English>Chemlight (Ultra-Hi Orange)</English>
@ -300,6 +325,7 @@
<Polish>Świetlik (ultra-jaskrawy pomarańczowy)</Polish>
<Italian>Luce chimica (Ultra-Hi Arancione)</Italian>
<Russian>Химсвет (Ультраяркий Оранжевый)</Russian>
<Portuguese>Bastão de Luz (Laranja Ultra Forte)</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_UltraHiOrange_DisplayNameShort">
<English>Orange Ultra-Hi Light</English>
@ -308,6 +334,7 @@
<Polish>Ultra-jaskrawe pomarańczowe światło</Polish>
<Italian>Luce Ultra-Hi Arancione</Italian>
<Russian>Ультраяркий Оранжевый свет</Russian>
<Portuguese>Luz ultra forte laranja</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_UltraHiOrange_DescriptionShort">
<English>Type: Light - Orange Ultra-Hi (5 minute)&lt;br /&gt;Rounds: 1&lt;br /&gt;Used in: Hand</English>
@ -316,6 +343,7 @@
<Polish>Typ: Światło - ultra-jaskrawe pomarańczowe (30 minut)&lt;br/&gt;Pociski: 1&lt;br/&gt;Używany w: ręce</Polish>
<Italian>Tipo: Luce - Ultra-Hi (5 minuti)&lt;br/&gt;Rimanenti: 1&lt;br/&gt;Usata in: Mano</Italian>
<Russian>Тип: Свет - Ультраяркий Оранжевый (5 минут)&lt;br /&gt;1 штука&lt;br /&gt;В руках</Russian>
<Portuguese>Tipo: Luz - Laranja Ultra Forte (5 minutos)&lt;br/&gt;Usos: 1&lt;br/&gt;Usado em: Mão</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_IR_DisplayName">
<English>Chemlight (IR)</English>
@ -328,6 +356,7 @@
<Chinese>螢光棒 (紅外線)</Chinese>
<Chinesesimp>萤光棒 (红外线)</Chinesesimp>
<Russian>Химсвет (Инфракрасный)</Russian>
<Portuguese>Bastão de Luz (IV)</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_IR_DisplayNameShort">
<English>IR Light</English>
@ -340,6 +369,7 @@
<Chinese>紅外線光</Chinese>
<Chinesesimp>红外线光</Chinesesimp>
<Russian>Инфракрасный свет</Russian>
<Portuguese>Bastão de luz infravermelho</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_IR_DescriptionShort">
<English>Type: Light - Infrared&lt;br /&gt;Rounds: 1&lt;br /&gt;Used in: Hand</English>
@ -352,6 +382,7 @@
<Chinese>類型: 光 - 紅外線&lt;br /&gt;發數: 1&lt;br /&gt;使用於: 手</Chinese>
<Chinesesimp>类型: 光 - 红外线&lt;br /&gt;发数: 1&lt;br /&gt;使用于: 手</Chinesesimp>
<Russian>Тип: Свет - Инфракрасный&lt;br /&gt;1 штука&lt;br /&gt;В руках</Russian>
<Portuguese>Tipo: Luz - Infravermelho&lt;br/&gt;Usos: 1&lt;br/&gt;Usado em: Mão</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_Empty_DisplayName">
<English>Chemlight Shield (Empty)</English>
@ -364,6 +395,7 @@
<Chinese>螢光棒保護殼 (空)</Chinese>
<Chinesesimp>萤光棒保护壳 (空)</Chinesesimp>
<Russian>Контейнер для Химсвета (Пуст)</Russian>
<Portuguese>Estojo de Luz (Vazio)</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_Empty_DescriptionShort">
<English>Shield for chemlights. Combine with chemlight to prepare reading light.</English>
@ -376,6 +408,7 @@
<Chinese>螢光棒的保護殼. 與螢光棒結合後可充當閱讀燈</Chinese>
<Chinesesimp>萤光棒的保护壳. 与萤光棒结合后可充当阅读灯.</Chinesesimp>
<Russian>Защитный контейнер для Химсвета. Объедините с Химсветом, чтобы подготовить Свет для чтения</Russian>
<Portuguese>Estojo para os bastões de luz. Combine com o bastão de luz para preparar luz de leitura.</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_Green_DisplayName">
<English>Chemlight Shield (Green)</English>
@ -388,6 +421,7 @@
<Chinese>螢光棒保護殼 (綠色)</Chinese>
<Chinesesimp>萤光棒保护壳 (绿色)</Chinesesimp>
<Russian>Контейнер для Химсвета (Зел)</Russian>
<Portuguese>Estojo de Luz (Verde)</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_Green_DescriptionShort">
<English>Green reading light.</English>
@ -400,6 +434,7 @@
<Chinese>綠色閱讀燈</Chinese>
<Chinesesimp>绿色阅读灯。</Chinesesimp>
<Russian>Ночник из Химсвета (Зеленый)</Russian>
<Portuguese>Luz de leitura verde.</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_Red_DisplayName">
<English>Chemlight Shield (Red)</English>
@ -412,6 +447,7 @@
<Chinese>螢光棒保護殼 (紅色)</Chinese>
<Chinesesimp>萤光棒保护壳 (红色)</Chinesesimp>
<Russian>Контейнер для Химсвета (Красн)</Russian>
<Portuguese>Estojo de Luz (Vermelho)</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_Red_DescriptionShort">
<English>Red reading light.</English>
@ -424,6 +460,7 @@
<Chinese>紅色閱讀燈</Chinese>
<Chinesesimp>红色阅读灯。</Chinesesimp>
<Russian>Ночник из Химсвета (Красный)</Russian>
<Portuguese>Luz de leitura vermelha.</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_Blue_DisplayName">
<English>Chemlight Shield (Blue)</English>
@ -436,6 +473,7 @@
<Chinese>螢光棒保護殼 (藍色)</Chinese>
<Chinesesimp>萤光棒保护壳 (蓝色)</Chinesesimp>
<Russian>Контейнер для Химсвета (Син)</Russian>
<Portuguese>Estojo de Luz (Azul)</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_Blue_DescriptionShort">
<English>Blue reading light.</English>
@ -448,6 +486,7 @@
<Chinese>藍色閱讀燈</Chinese>
<Chinesesimp>蓝色阅读灯。</Chinesesimp>
<Russian>Ночник из Химсвета (Синий)</Russian>
<Portuguese>Luz de leitura azul.</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_Yellow_DisplayName">
<English>Chemlight Shield (Yellow)</English>
@ -460,6 +499,7 @@
<Chinese>螢光棒保護殼 (黃色)</Chinese>
<Chinesesimp>萤光棒保护壳 (黄色)</Chinesesimp>
<Russian>Контейнер для Химсвета (Желт)</Russian>
<Portuguese>Estojo de Luz (Amarelo)</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_Yellow_DescriptionShort">
<English>Yellow reading light.</English>
@ -472,6 +512,7 @@
<Chinese>黃色閱讀燈</Chinese>
<Chinesesimp>黄色阅读灯。</Chinesesimp>
<Russian>Ночник из Химсвета (Желтый)</Russian>
<Portuguese>Luz de leitura amarela.</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_Orange_DisplayName">
<English>Chemlight Shield (Orange)</English>
@ -484,6 +525,7 @@
<Chinese>螢光棒保護殼 (橘色)</Chinese>
<Chinesesimp>萤光棒保护壳 (橘色)</Chinesesimp>
<Russian>Контейнер для Химсвета (Оранж)</Russian>
<Portuguese>Estojo de Luz (Laranja)</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_Orange_DescriptionShort">
<English>Orange reading light.</English>
@ -496,6 +538,7 @@
<Chinese>橘色閱讀燈</Chinese>
<Chinesesimp>橘色阅读灯。</Chinesesimp>
<Russian>Ночник из Химсвета (Оранжевый)</Russian>
<Portuguese>Luz de leitura laranja.</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_White_DisplayName">
<English>Chemlight Shield (White)</English>
@ -508,6 +551,7 @@
<Chinese>螢光棒保護殼 (白色)</Chinese>
<Chinesesimp>萤光棒保护壳 (白色)</Chinesesimp>
<Russian>Контейнер для Химсвета (Белый)</Russian>
<Portuguese>Estojo de Luz (Branco)</Portuguese>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_White_DescriptionShort">
<English>White reading light.</English>
@ -520,6 +564,7 @@
<Chinese>白色閱讀燈</Chinese>
<Chinesesimp>白色阅读灯。</Chinesesimp>
<Russian>Ночник из Химсвета (Белый)</Russian>
<Portuguese>Luz de leitura branca.</Portuguese>
</Key>
</Package>
</Project>

View File

@ -121,8 +121,8 @@ if (isServer) then {
[QGVAR(fixFloating), FUNC(fixFloating)] call CBA_fnc_addEventHandler;
[QGVAR(fixPosition), FUNC(fixPosition)] call CBA_fnc_addEventHandler;
["ace_loadPersonEvent", FUNC(loadPersonLocal)] call CBA_fnc_addEventHandler;
["ace_unloadPersonEvent", FUNC(unloadPersonLocal)] call CBA_fnc_addEventHandler;
["ace_loadPersonEvent", LINKFUNC(loadPersonLocal)] call CBA_fnc_addEventHandler;
["ace_unloadPersonEvent", LINKFUNC(unloadPersonLocal)] call CBA_fnc_addEventHandler;
[QGVAR(lockVehicle), {
_this setVariable [QGVAR(lockStatus), locked _this];

View File

@ -10,7 +10,7 @@ class CfgPatches {
author = CSTRING(ACETeam);
authors[] = {"KoffeinFlummi"};
url = ECSTRING(main,URL);
VERSION_CONFIG_COMMON;
VERSION_CONFIG;
};
};
@ -67,9 +67,7 @@ class ACE_Rsc_Control_Base {
#include "CompassControl.hpp"
#include "CfgUIGrids.hpp"
class ACE_Extensions {
extensions[] = {};
};
class ACE_Extensions {};
class ACE_Tests {
vehicleTransportInventory = QPATHTOF(dev\test_vehicleInventory.sqf);

View File

@ -67,38 +67,43 @@ if (!(_oldCompats isEqualTo [])) then {
};
///////////////
// check dlls
// check extensions
///////////////
if (toLower (productVersion select 6) in ["linux", "osx"]) then {
INFO("Operating system does not support DLL file format");
private _platform = toLower (productVersion select 6);
if (!isServer && {_platform in ["linux", "osx"]}) then {
// Linux and OSX client ports do not support extensions at all
INFO("Operating system does not support extensions");
} else {
{
private _versionEx = _x callExtension "version";
private _extension = configName _x;
private _isWindows = _platform == "windows" && {getNumber (_x >> "windows") == 1};
private _isLinux = _platform == "linux" && {getNumber (_x >> "linux") == 1};
private _isClient = hasInterface && {getNumber (_x >> "client") == 1};
private _isServer = !hasInterface && {getNumber (_x >> "server") == 1};
if (_versionEx == "") then {
private _extension = ".dll";
if ((_isWindows || _isLinux) && {_isClient || _isServer}) then {
private _versionEx = _extension callExtension "version";
if (_versionEx == "") then {
private _extensionFile = _extension;
if (productVersion select 7 == "x64") then {
_extensionFile = format ["%1_x64", _extensionFile];
};
if (productVersion select 7 == "x64") then {
_extension = "_x64.dll";
private _platformExt = [".dll", ".so"] select (_platform == "linux");
_extensionFile = format ["%1%2", _extensionFile, _platformExt];
private _errorMsg = format ["Extension %1 not found.", _extensionFile];
ERROR(_errorMsg);
if (hasInterface) then {
["[ACE] ERROR", _errorMsg, {findDisplay 46 closeDisplay 0}] call FUNC(errorMessage);
};
} else {
// Print the current extension version
INFO_2("Extension version: %1: %2",_extension,_versionEx);
};
if (productVersion select 6 == "Linux") then {
_extension = ".so";
};
private _errorMsg = format ["Extension %1%2 not found.", _x, _extension];
ERROR(_errorMsg);
if (hasInterface) then {
["[ACE] ERROR", _errorMsg, {findDisplay 46 closeDisplay 0}] call FUNC(errorMessage);
};
} else {
// Print the current extension version
INFO_2("Extension version: %1: %2",_x,_versionEx);
};
false
} count getArray (configFile >> "ACE_Extensions" >> "extensions");
} forEach ("true" configClasses (configFile >> "ACE_Extensions"));
};
///////////////

View File

@ -20,8 +20,9 @@
#define GROUP_SWITCH_ID QFUNC(loadPerson)
params ["_caller", "_unit", ["_vehicle", objNull]];
TRACE_3("loadPerson",_caller,_unit,_vehicle);
if (!([_caller, _unit, ["isNotDragging", "isNotCarrying", "isNotSwimming"]] call FUNC(canInteractWith)) || {_caller == _unit}) exitWith {_vehicle};
if (!([_caller, _unit, ["isNotDragging", "isNotCarrying", "isNotSwimming"]] call FUNC(canInteractWith)) || {_caller == _unit}) exitWith { objNull };
// Try to use nearest vehicle if a vehicle hasn't been supplied
if (isNull _vehicle) then {
@ -30,6 +31,7 @@ if (isNull _vehicle) then {
if (!isNull _vehicle) then {
[_unit, true, GROUP_SWITCH_ID, side group _caller] call FUNC(switchToGroupSide);
TRACE_3("sending ace_loadPersonEvent",_unit,_vehicle,_caller);
["ace_loadPersonEvent", [_unit, _vehicle, _caller], _unit] call CBA_fnc_targetEvent;
};

View File

@ -17,15 +17,11 @@
* Public: Yes
*/
params ["_unit", "_vehicle", "_caller"];
// if (!alive _unit) then {
// _unit = [_unit, _caller] call makeCopyOfBody; //func does not exist
// };
params ["_unit", "_vehicle", ["_caller", objNull]];
TRACE_3("loadPersonLocal",_unit,_vehicle,_caller);
private _slotsOpen = false;
if (_vehicle emptyPositions "cargo" > 0) then {
if ((_vehicle emptyPositions "cargo" > 0) && {!(_unit getVariable ['ACE_isUnconscious', false])} || {(getNumber (configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "ejectDeadCargo")) == 0}) then {
_unit moveInCargo _vehicle;
_slotsOpen = true;
} else {
@ -35,29 +31,16 @@ if (_vehicle emptyPositions "cargo" > 0) then {
};
};
if (_slotsOpen) then {
private _loaded = _vehicle getVariable [QGVAR(loaded_persons),[]];
_loaded pushBack _unit;
if (!_slotsOpen) exitWith { WARNING_2("no open seats %1->%2",_unit,_vehicle); };
_vehicle setVariable [QGVAR(loaded_persons), _loaded, true];
if !([_unit] call FUNC(isAwake)) then {
[{
(_this select 0) params ["_unit", "_vehicle"];
// wait until the unit is in the vehicle
if (vehicle _unit != _vehicle) exitWith {
// kill this pfh if either one is deleted
if (isNull _unit || isNull _vehicle) then {
[_this select 1] call CBA_fnc_removePerFrameHandler;
};
};
_unit setVariable [QEGVAR(medical,vehicleAwakeAnim), [_vehicle, animationState _unit]];
[_unit, [_unit] call FUNC(getDeathAnim), 1, true] call FUNC(doAnimation);
[_this select 1] call CBA_fnc_removePerFrameHandler;
}, 0.5, [_unit, _vehicle]] call CBA_fnc_addPerFrameHandler;
};
};
[{ // just for error reporting
params ["_unit", "_vehicle"];
(alive _unit) && {alive _vehicle} && {(vehicle _unit) == _vehicle}
}, {
params ["_unit", "_vehicle"];
TRACE_2("success",_unit,_vehicle);
}, [_unit, _vehicle], 2, {
params ["_unit", "_vehicle"];
if (!alive _unit) exitWith {};
WARNING_2("timeout %1->%2",_unit,_vehicle);
}] call CBA_fnc_waitUntilAndExecute;

View File

@ -19,4 +19,8 @@
params ["_unit", ["_distance", 10]];
private _nearVehicles = nearestObjects [_unit, ["Car", "Air", "Tank", "Ship_F", "Pod_Heli_Transport_04_crewed_base_F"], _distance];
_nearVehicles select {(_x emptyPositions "cargo" > 0) || {_x emptyPositions "gunner" > 0}}
_nearVehicles select {
// Filter cargo seats that will eject unconscious units (e.g. quad bike)
((_x emptyPositions "cargo" > 0) && {!(_unit getVariable ['ACE_isUnconscious', false])} || {(getNumber (configFile >> "CfgVehicles" >> (typeOf _x) >> "ejectDeadCargo")) == 0})
|| {_x emptyPositions "gunner" > 0}
}

View File

@ -15,18 +15,16 @@
* Public: No
*/
#define GROUP_SWITCH_ID QFUNC(loadPerson)
params ["_unit"];
TRACE_1("unloadPerson",_unit);
private _vehicle = vehicle _unit;
if (isNull _vehicle) exitWith {false};
if (_vehicle == _unit) exitWith {false};
if (speed _vehicle > 1 || {((getPos _vehicle) select 2) > 2}) exitWith {false};
if (!isNull _vehicle) then {
["ace_unloadPersonEvent", [_unit, _vehicle], [_unit]] call CBA_fnc_targetEvent;
};
["ace_unloadPersonEvent", [_unit, _vehicle], [_unit]] call CBA_fnc_targetEvent;
true

View File

@ -20,11 +20,19 @@
#define GROUP_SWITCH_ID QFUNC(loadPerson)
params ["_unit", "_vehicle", ["_unloader", objNull]];
TRACE_3("params",_unit,_vehicle,_unloader);
TRACE_3("unloadpersonLocal",_unit,_vehicle,_unloader);
//This covers testing vehicle stability and finding a safe position
private _emptyPos = [_vehicle, (typeOf _unit), _unloader] call EFUNC(common,findUnloadPosition);
TRACE_1("findUnloadPosition",_emptyPos);
if (_emptyPos isEqualTo []) then {
_emptyPos = [_vehicle, (typeOf _unit), _unloader] call EFUNC(common,findUnloadPosition);
TRACE_1("findUnloadPosition 2nd attempt",_emptyPos);
if (_emptyPos isEqualTo []) then {
_emptyPos = [_vehicle, (typeOf _unit), _unloader] call EFUNC(common,findUnloadPosition);
TRACE_1("findUnloadPosition 3rd attempt",_emptyPos);
};
};
if (count _emptyPos != 3) exitwith {
WARNING_4("Could not find unload pos %1-ASL: %2 isTouchingGround: %3 Speed: %4",_vehicle, getPosASL _vehicle, isTouchingGround _vehicle, speed _vehicle);
@ -38,57 +46,22 @@ if (count _emptyPos != 3) exitwith {
unassignVehicle _unit;
[_unit] orderGetIn false;
private _resetUncon = false;
if (lifeState _unit == "INCAPACITATED") then {
_resetUncon = true;
_unit setUnconscious false;
TRACE_1("pausing setUnconscious",_unit);
};
TRACE_1("Ejecting", alive _unit);
_unit action ["Eject", vehicle _unit];
[{
params ["_unit", "_emptyPos", "_resetUncon"];
if ((vehicle _unit) != _unit) then {
WARNING_2("Failed to unload in time [%1 - %2]",_unit, vehicle _unit);
};
params ["_unit", "_emptyPos"];
(alive _unit) && {(vehicle _unit) != _unit}
}, {
params ["_unit", "_emptyPos"];
TRACE_2("success",_unit,_emptyPos);
_unit setPosASL AGLToASL _emptyPos;
if (_resetUncon) then {
TRACE_1("resuming setUnconscious",_unit);
// This should reset the unit to an Unconscious animation
// Also has the hilarious effect of violently ragdolling the guy
_unit setUnconscious true;
};
// ToDo [medical-rewrite]: verify we can remove the following commented code
// if !([_unit] call FUNC(isAwake)) then {
// TRACE_1("Check if isAwake", [_unit] call FUNC(isAwake));
// if (driver _unit == _unit) then {
// private _anim = [_unit] call FUNC(getDeathAnim);
// [_unit, _anim, 1, true] call FUNC(doAnimation);
// [{
// params ["_unit", "_anim"];
// if ((_unit getVariable "ACE_isUnconscious") and (animationState _unit != _anim)) then {
// [_unit, _anim, 2, true] call FUNC(doAnimation);
// };
// }, [_unit, _anim], 0.5] call CBA_fnc_waitAndExecute;
// };
// };
}, [_unit, _emptyPos, _resetUncon], 0.5] call CBA_fnc_waitAndExecute;
}, [_unit, _emptyPos], 2, {
params ["_unit", "_emptyPos"];
if (!alive _unit) exitWith {};
WARNING_2("timeout %1->%2",_unit,vehicle _unit);
}] call CBA_fnc_waitUntilAndExecute;
[_unit, false, GROUP_SWITCH_ID, side group _unit] call FUNC(switchToGroupSide);
private _loaded = _vehicle getvariable [QGVAR(loaded_persons),[]];
_loaded deleteAt (_loaded find _unit);
_vehicle setvariable [QGVAR(loaded_persons), _loaded, true];
true

View File

@ -1,59 +0,0 @@
#include "script_component.hpp"
#define MAX_COUNT 30
#define ANIM_TIME 10
private _display = findDisplay 0;
if (!scriptDone (_display getVariable [QGVAR(versionTooltip), scriptNull])) exitWith {};
_display setVariable [QGVAR(versionTooltip), [_display] spawn {
disableSerialization;
params ["_display"];
private _allControls = [];
private _fnc_create = {
private _ctrl = _display ctrlCreate ["RscPicture", -1];
// randomize size
private _size = selectRandom [safezoneW / 30, safezoneW / 20, safezoneW / 15];
private _position = [
random safezoneW + safezoneX - _size / 2,
- random (safezoneH / 5) + safezoneY - _size,
_size,
_size
];
_ctrl ctrlSetPosition _position;
_ctrl ctrlCommit 0;
// pls ignore
_ctrl ctrlSetText QPATHTOF(data\icon_banana_ca.paa);
// animate with random speed
_position set [1, 1 - safezoneY];
_ctrl ctrlSetPosition _position;
_ctrl ctrlCommit (ANIM_TIME * random [0.5, 1, 1.5]);
_allControls pushBack _ctrl;
};
while {!isNull _display} do {
_allControls = _allControls select {
if (ctrlCommitted _x) then {
ctrlDelete _x;
false
} else {
true
};
};
while {count _allControls < MAX_COUNT} do {
call _fnc_create;
};
uiSleep 3;
};
}];

View File

@ -16,10 +16,6 @@
#include "\z\ace\addons\main\script_macros.hpp"
#define VERSION_CONFIG_COMMON VERSION_CONFIG;\
versionDesc = "ACE 3";\
versionAct = QUOTE(call COMPILE_FILE(init_versionTooltip))
#define DIG_SURFACE_BLACKLIST [ \
"concrete", "concrete_exp", "concrete_int", "int_concrete", "int_concrete_exp", \

View File

@ -11,6 +11,7 @@
<Korean>일반</Korean>
<Polish>Ogólny</Polish>
<Russian>Общий</Russian>
<Portuguese>Comum</Portuguese>
</Key>
<Key ID="STR_ACE_Common_ACETeam">
<English>ACE-Team</English>
@ -515,6 +516,7 @@
<Korean>PBO 검사</Korean>
<Polish>Sprawdź akcję PBO</Polish>
<Russian>Действие при проверке PBO</Russian>
<Portuguese>Ação de Checar PBO</Portuguese>
</Key>
<Key ID="STR_ACE_Common_CheckPBOsCheckAll">
<English>Check PBO All</English>
@ -526,6 +528,7 @@
<Korean>모든 PBO 검사</Korean>
<Polish>Sprawdź wszystkie PBO</Polish>
<Russian>Проверять все PBO</Russian>
<Portuguese>Checar Todos os PBOs</Portuguese>
</Key>
<Key ID="STR_ACE_Common_CheckPBOsWhitelist">
<English>Check PBO Whitelist</English>
@ -537,6 +540,7 @@
<Korean>검사 제외 PBO</Korean>
<Polish>Sprawdź białą listę PBO</Polish>
<Russian>Белый список для проверки PBO</Russian>
<Portuguese>Lista Branca de PBO</Portuguese>
</Key>
<Key ID="STR_ACE_Common_SettingFeedbackIconsName">
<English>Feedback icons</English>
@ -676,6 +680,7 @@
<Chinese>保持武器雷射/手電筒的狀態</Chinese>
<Chinesesimp>保持武器雷射/手电筒的状态</Chinesesimp>
<Polish>Trwały znacznik laserowy/latarka</Polish>
<Portuguese>Luz da lanterna/laser da arma persistente</Portuguese>
</Key>
<Key ID="STR_ACE_Common_SettingPersistentLaserDesc">
<English>Enable gunlight after weapon switch or vehicle enter/exit if it was previously enabled.</English>
@ -687,6 +692,7 @@
<Chinese>保存武器雷射/手電筒的開關狀態,使玩家切換武器或進出載具時能保持之前的的狀態</Chinese>
<Chinesesimp>保存武器雷射/手电筒的开关状态,使玩家切换武器或进出载具时能保持之前的的状态。</Chinesesimp>
<Polish>Aktywuj znacznik laserowy/latarkę po zmianie broni lub wejściu/wyjściu z pojazdu, jeśli był on poprzednio włączony.</Polish>
<Portuguese>Ativa a luz da arma ao trocar de arma, entrar/sair de um veículo. Caso tenha sido acesa anteriormente.</Portuguese>
</Key>
<Key ID="STR_ACE_Common_bananaDisplayName">
<English>Banana</English>
@ -1010,6 +1016,7 @@
<German>Immer</German>
<Japanese>常に</Japanese>
<Russian>Всегда</Russian>
<Portuguese>Sempre</Portuguese>
</Key>
<Key ID="STR_ACE_Common_Anywhere">
<English>Anywhere</English>
@ -1090,12 +1097,14 @@
<Japanese>確認</Japanese>
<German>Bestätigen</German>
<Russian>Подтвердить</Russian>
<Portuguese>Confirmar</Portuguese>
</Key>
<Key ID="STR_ACE_Common_Never">
<English>Never</English>
<Japanese>行わない</Japanese>
<German>Nie</German>
<Russian>Никогда</Russian>
<Portuguese>Nunca</Portuguese>
</Key>
<Key ID="STR_ACE_Common_VehiclesOnly">
<English>Vehicles only</English>
@ -1274,6 +1283,7 @@
<Italian>Permesso di abbassare la musica</Italian>
<Polish>Zezwól na przyciszanie muzyki</Polish>
<Russian>Разрешить приглушение музыки</Russian>
<Portuguese>Permite diminuir volume da música</Portuguese>
</Key>
<Key ID="STR_ACE_Common_AllowFadeMusicTooltip">
<English>Allow ACE scripts to turn down the music.</English>
@ -1285,6 +1295,7 @@
<Italian>Permetti agli script di ACEdi abbassare la musica.</Italian>
<Polish>Zezwól skrypty ACE na przyciszanie muzyki.</Polish>
<Russian>Позволить скриптам ACE приглушать музыку</Russian>
<Portuguese>Permite que Scripts do ACE diminuam o volume da música.</Portuguese>
</Key>
<Key ID="STR_ACE_Common_FlagBlack">
<English>Flag (ACE - Black)</English>
@ -1295,6 +1306,7 @@
<Japanese>旗 (ACE - 黒)</Japanese>
<Polish>Flaga (ACE - Czarna)</Polish>
<Russian>Флаг (ACE - Черный)</Russian>
<Portuguese>Bandeira (ACE - Preto)</Portuguese>
</Key>
<Key ID="STR_ACE_Common_FlagWhite">
<English>Flag (ACE - White)</English>
@ -1305,6 +1317,7 @@
<Japanese>旗 (ACE - 白)</Japanese>
<Polish>Flaga (ACE - Biała)</Polish>
<Russian>Флаг (ACE - Белый)</Russian>
<Portuguese>Bandeira (ACE - Branco)</Portuguese>
</Key>
<Key ID="STR_ACE_Common_playerOnly">
<English>Players only</English>

View File

@ -12,18 +12,21 @@
<French>ACE Cook off</French>
<Polish>ACE Samozapłon</Polish>
<Russian>ACE Возгорание</Russian>
<Portuguese>ACE Cook off</Portuguese>
</Key>
<Key ID="STR_ACE_CookOff_enable_hd_name">
<English>Damage handling and turret effects</English>
<German>Schadensberechnung und Geschützturmeffekte</German>
<Japanese>損傷処理と砲塔の効果</Japanese>
<Russian>Обработка урона и эффектов срыва башни</Russian>
<Portuguese>Manipulação de dano e efeitos de torre</Portuguese>
</Key>
<Key ID="STR_ACE_CookOff_enable_hd_tooltip">
<English>Changes damage handling for cook off and turret explosion effects</English>
<German>Ändert die Schadensberechnung für die Durchzündung und die Explosionseffekte des Geschützturmes</German>
<Japanese>誘爆の損傷処理と砲塔の爆発効果を変更します。</Japanese>
<Russian>Изменяет обработку урона для возгорания и эффекта срыва башни</Russian>
<Portuguese>Modifica a manipulação de dano para o cozinhamento de munição e efeitos de explosão da torre</Portuguese>
</Key>
<Key ID="STR_ACE_CookOff_generic_turret_wreck">
<English>Wreck (Turret)</English>
@ -51,6 +54,7 @@
<Chinese>開啟彈藥箱殉爆效果</Chinese>
<Chinesesimp>开启弹药箱殉爆效果</Chinesesimp>
<Russian>Разрешить возгорание ящиков с боеприпасами</Russian>
<Portuguese>Permitir cozinhar caixas de munição</Portuguese>
</Key>
<Key ID="STR_ACE_CookOff_enableBoxCookoff_tooltip">
<English>Enables cooking off of ammo boxes.</English>
@ -63,6 +67,7 @@
<Chinese>開啟彈藥箱殉爆效果</Chinese>
<Chinesesimp>开启弹药箱殉爆效果</Chinesesimp>
<Russian>Активирует возгорание ящиков с боеприпасами</Russian>
<Portuguese>Permitir que caixas de munição cozinhem.</Portuguese>
</Key>
<Key ID="STR_ACE_CookOff_enableAmmoCookoff_name">
<English>Enable Ammunition cook off</English>
@ -75,6 +80,7 @@
<Chinese>開啟彈藥殉爆效果</Chinese>
<Chinesesimp>开启弹药殉爆效果</Chinesesimp>
<Russian>Разрешить детонацию боекомплекта</Russian>
<Portuguese>Permitir cozinhar munição</Portuguese>
</Key>
<Key ID="STR_ACE_CookOff_enableAmmoCookoff_tooltip">
<English>Enables Ammunition cook off. Fires ammunition projectiles while vehicle is on fire and has ammunition.</English>
@ -87,6 +93,7 @@
<Chinesesimp>开启弹药殉爆效果。当一台载有弹药的载具起火时, 将会有殉爆的效果。</Chinesesimp>
<Korean>쿡오프 현상을 활성화 합니다. 이것은 탄약에 불이 붙어있는 동안 주변에 발사체를 발사합니다.</Korean>
<Russian>Активирует возгорание и детонацию боекомплекта в горящей технике</Russian>
<Portuguese>Permite que a munição cozinhe. Dispara projéteis de munição enquanto o veículo está em chamas e tem munição.</Portuguese>
</Key>
<Key ID="STR_ACE_CookOff_ammoCookoffDuration_name">
<English>Ammunition cook off duration</English>
@ -99,6 +106,7 @@
<Chinesesimp>弹药殉爆效果持续时间</Chinesesimp>
<Korean>쿡오프 지속 시간</Korean>
<Russian>Длительность возгорания боеприпасов</Russian>
<Portuguese>Duração do cozinhamento de munição</Portuguese>
</Key>
<Key ID="STR_ACE_CookOff_ammoCookoffDuration_tooltip">
<English>Multiplier for how long cook off lasts [Setting to 0 will disable ammo cookoff]</English>
@ -111,6 +119,7 @@
<Chinesesimp>设定弹药殉爆效果会持续多久时间 [输入0来关闭殉爆效果]</Chinesesimp>
<Korean>쿡오프 지속 시간의 배수 [0 이면 비활성]</Korean>
<Russian>Множитель длительности возгорания [0 - отключает возгорание боеприпасов]</Russian>
<Portuguese>Multiplicação da duração do cozinhamento [0 faz com que o cozinhamento seja desativado]</Portuguese>
</Key>
<Key ID="STR_ACE_CookOff_probabilityCoef_name">
<English>Cook-off probability coefficient</English>
@ -122,6 +131,7 @@
<French>Coefficient de probabilité du cook off</French>
<Polish>Współczynnik prawdopodobieństwa samozapłonu</Polish>
<Russian>Коэффициент вероятности возгорания</Russian>
<Portuguese>Probabilidade de Cozinhar</Portuguese>
</Key>
<Key ID="STR_ACE_CookOff_probabilityCoef_tooltip">
<English>Multiplier for cook-off probability. Higher value results in higher cook-off probability</English>
@ -133,6 +143,7 @@
<French>Multiplicateur pour la probabilité du cook off. Plus la valeur est élevée, plus la probabilité de cook off est haute.</French>
<Polish>Mnożnik prawdopodobieństwa samozapłonu. Większa wartość oznacza większe prawdopodobieństwo samozapłonu</Polish>
<Russian>Множитель коэффициента вероятности возгорания. Чем выше значение, тем выше вероятность.</Russian>
<Portuguese>Multiplicador para a chance de cozinhamento. Valores mais altos aumentam as chances de ocorrer.</Portuguese>
</Key>
</Package>
</Project>

View File

@ -49,7 +49,7 @@
[_player, "PutDown"] call EFUNC(common,doGesture);
// drag after deploying
if ((missionNamespace getVariable [QGVAR(dragAfterDeploying), false]) && {["ACE_dragging"] call EFUNC(common,isModLoaded)}) then {
if ((missionNamespace getVariable [QGVAR(dragAfterDeploy), false]) && {["ACE_dragging"] call EFUNC(common,isModLoaded)}) then {
if ([_player, _cswTripod] call EFUNC(dragging,canCarry)) then {
TRACE_1("starting carry",_cswTripod);
[_player, _cswTripod] call EFUNC(dragging,startCarry);

View File

@ -51,7 +51,7 @@ if (isNull _container) then {
_weaponRelPos set [2, ((getPosATL _unloadTo) select 2) + 0.05];
_container = createVehicle ["groundWeaponHolder", [0, 0, 0], [], 0, "NONE"];
// ToDo: Unload to ammo box??
_unloadTo setVariable [QGVAR(container), container, true];
_unloadTo setVariable [QGVAR(container), _container, true];
_container setDir random [0, 180, 360];
_container setPosATL _weaponRelPos;
if ((_weaponRelPos select 2) < 0.5) then {

View File

@ -41,3 +41,13 @@ private _categoryArray = [format ["ACE %1", localize LSTRING(DisplayName)]];
{[QGVAR(progressBarTimeCoefficent), _this] call EFUNC(common,cbaSettings_settingChanged)},
false // Needs mission restart
] call CBA_settings_fnc_init;
[
QGVAR(dragAfterDeploy), "CHECKBOX",
[LSTRING(dragAfterDeploy_displayName), LSTRING(dragAfterDeploy_description)],
_categoryArray,
false, // default value
false, // isGlobal
{[QGVAR(dragAfterDeploy), _this] call EFUNC(common,cbaSettings_settingChanged)},
false // Needs mission restart
] call CBA_settings_fnc_init;

View File

@ -3,9 +3,11 @@
<Package name="CSW">
<Key ID="STR_ACE_CSW_displayName">
<English>Crew Served Weapons</English>
<Portuguese>Crew Served Weapons (CSW)</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_PlaceTripod_displayName">
<English>Place Tripod</English>
<Portuguese>Montar Tripé</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_DisassembleCSW_displayName">
<English>Disassemble</English>
@ -39,6 +41,7 @@
<Italian>Load %1</Italian>
<Russian>Загрузить %1</Russian>
<Hungarian>Load %1</Hungarian>
<Portuguese>Carregar %1</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_unloadX">
<English>Unload %1</English>
@ -50,189 +53,257 @@
<Italian>Unload %1</Italian>
<Russian>Разгрузить %1</Russian>
<Hungarian>Unload %1</Hungarian>
<Portuguese>Descarregar %1</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_actionLink">
<English>Link %1</English>
<Portuguese>Conectar %1</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_defaultAssemblyMode_displayName">
<English>Advanced assembly</English>
<Portuguese>Montagem Avançada</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_defaultAssemblyMode_description">
<English>Use ace for Assemble/Disassemble of supported static weapons. Loaded ammo is reduced to a single magazine.</English>
<Portuguese>Usar o ACE para Montar/Desmontar armas estáticas suportadas. Munição carregada é reduzida para um único carregador.</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_handleExtraMagazines_displayName">
<English>Save extra ammo</English>
<Portuguese>Economizar munição extra</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_handleExtraMagazines_description">
<English>Store extra magazines next to static weapon</English>
<Portuguese>Carregar munições extras próximo à arma estática</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_ammoHandling_displayName">
<English>Ammo handling</English>
<Portuguese>Manipulação de Munições</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_ammoHandling_description">
<English>Allow loading and unloading magazines</English>
<Portuguese>Permite carregamento e descarregamento de munições</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_progressBarTimeCoefficent_displayName">
<English>Interaction Time Coefficent</English>
<Portuguese>Coeficiente de tempo para a interação</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_progressBarTimeCoefficent_description">
<English>Scales time required to assemble and reload static weapons</English>
<Portuguese>Escala o tempo requerido para montar e recarregar armas estáticas.</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_dragAfterDeploy_displayName">
<English>Drag tripods after deploying</English>
<Portuguese>Arrastar tripés após montar</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_dragAfterDeploy_description">
<English>After deploying a tripod, start dragging it to a precise location</English>
<Portuguese>Assim que montar um tripé, automaticamente começa a arrastá-lo para um posicionamento mais preciso</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_Pickup_displayName">
<English>Pickup Tripod</English>
<Portuguese>Carregar Tripé</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_MountWeapon_displayName">
<English>Mount Weapon</English>
<Portuguese>Montar Arma</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_DisassembleCSW_progressBar">
<English>Disassembling Gun...</English>
<Portuguese>Desmontando Arma...</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_AssembleCSW_progressBar">
<English>Assembling Gun...</English>
<Portuguese>Montando Arma...</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_PickupTripod_progressBar">
<English>Picking Up Tripod...</English>
<Portuguese>Carregando Tripé...</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_PlaceTripod_progressBar">
<English>Placing Tripod...</English>
<Portuguese>Montando Tripé...</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_eden_enableCSW">
<English>Enable CSW</English>
<Portuguese>Ativar CSW</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_eden_enableCSW_tooltip">
<English>Enables Crew Served ability on this weapon</English>
<Portuguese>Ativar funções de CSW nessa arma</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_eden_enableAndEmpty">
<English>Enabled and Leave Weapon Empty</English>
<Portuguese>Ativado e deixar arma vazia</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_genericTripod_displayName">
<English>Tripod</English>
<French>Trépied</French>
<Spanish>Trípode</Spanish>
<Italian>Treppiede</Italian>
<Polish>Trójnóg</Polish>
<German>Dreibein</German>
<Turkish>Üçayak</Turkish>
<English>Tripod</English>
<French>Trépied</French>
<Spanish>Trípode</Spanish>
<Italian>Treppiede</Italian>
<Polish>Trójnóg</Polish>
<German>Dreibein</German>
<Turkish>Üçayak</Turkish>
<Portuguese>Tripé</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_StaticATBag_displayName">
<English>[CSW] Static Mini-Spike Launcher (AT)</English>
<Portuguese>[CSW] Lançador Estático - Mini-Spike (AT)</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_StaticAABag_displayName">
<English>[CSW] Static Mini-Spike Launcher (AA)</English>
<Portuguese>[CSW] Lançador Estático - Mini-Spike (AA)</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_StaticHMGBag_displayName">
<English>[CSW] Static XM312 Gun</English>
<Portuguese>[CSW] Arma Estática - XM312</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_StaticAutoHMGBag_displayName">
<English>[CSW] Static XM312 Gun (Autonomous)</English>
<Portuguese>[CSW] Arma Estática - XM312 (Autônoma)</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_StaticGMGBag_displayName">
<English>[CSW] Static XM307 Gun</English>
<Portuguese>[CSW] Arma Estática - XM307</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_StaticAutoGMGBag_displayName">
<English>[CSW] Static XM307 Gun (Autonomous)</English>
<Portuguese>[CSW] Arma Estática - XM307 (Autônoma)</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_127x108_displayName">
<English>[CSW] 12.7x108mm HMG Belt</English>
<Portuguese>[CSW] Cinto de Munição - 12.7x108mm HMG</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_127x99_displayName">
<English>[CSW] 12.7x99mm HMG Belt</English>
<Portuguese>[CSW] Cinto de Munição - 12.7x99mm HMG</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_127x99_red_displayName">
<English>[CSW] 12.7x99mm Tracer HMG Belt (Red)</English>
<Portuguese>[CSW] Cinto de Munição - 12.7x99mm HMG (Traçante Vermelho)</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_127x99_green_displayName">
<English>[CSW] 12.7x99mm Tracer HMG Belt (Green)</English>
<Portuguese>[CSW] Cinto de Munição - 12.7x99mm HMG (Traçante Verde)</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_127x99_yellow_displayName">
<English>[CSW] 12.7x99mm Tracer HMG Belt (Yellow)</English>
<Portuguese>[CSW] Cinto de Munição - 12.7x99mm HMG (Traçante Amarelo)</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_GMGBelt_displayName">
<English>[CSW] 20mm Grenade GMG Belt</English>
<Portuguese>[CSW] Cinto de Munição - Granada 20mm GMG</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_m3Tripod_displayName">
<English>M3 Tripod</English>
<Portuguese>M3 Tripé</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_kordTripodFolded_displayName">
<English>[CSW] 6P57 Deployable Tripod</English>
<Portuguese>[CSW] 6P57 Tripé Ajustável</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_kordTripodFoldedLow_displayName">
<English>[CSW] 6P57 Deployable Tripod (Low)</English>
<Portuguese>[CSW] 6P57 Tripé Ajustável (Baixo)</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_m220TripodFolded_displayName">
<English>[CSW] M220 Deployable Tripod</English>
<Portuguese>[CSW] M220 Tripé Ajustável</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_sag30TripodFolded_displayName">
<English>[CSW] SAG-30 Deployable Tripod</English>
<Portuguese>[CSW] SAG-30 Tripé Ajustável</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_kordTripod_displayName">
<English>6P57 Tripod</English>
<Portuguese>Tripé 6P57</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_sag30Tripod_displayName">
<English>SAG-30 Tripod</English>
<Portuguese>Tripe SAG-30</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_m220Tripod_displayName">
<English>M220 Tripod</English>
<Portuguese>Tripé M220</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_m3TripodFolded_displayName">
<English>[CSW] M3 Deployable Tripod</English>
<Portuguese>[CSW] M3 Tripe Ajustável</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_m3TripodLowFolded_displayName">
<English>[CSW] M3 Deployable Tripod (Low)</English>
<Portuguese>[CSW] M3 Tripe Ajustável (Baixo)</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_mortarBaseplateBag_displayName">
<English>[CSW] Mortar Baseplate</English>
<Portuguese>[CSW] Placa base de Morteiro</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_mortarBaseplate_displayName">
<English>Mortar Baseplate</English>
<Portuguese>Placa base de Morteiro</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_mk6MortarBag_displayName">
<English>[CSW] Mk6 Mortar Tube</English>
<Portuguese>[CSW] Tubo de Morteiro - Mk6</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_m252_tube">
<English>[CSW] M252 Tube Bag</English>
<Portuguese>[CSW] Tubo de Morteiro - M252</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_m2_gun">
<English>[CSW] M2 Gun Bag</English>
<Portuguese>[CSW] Bolsa de Arma - M2</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_mk19_gun">
<English>[CSW] MK19 Gun Bag</English>
<Portuguese>[CSW] Bolsa de Arma - MK19</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_tow_tube">
<English>[CSW] BGM-71 TOW Launcher Bag</English>
<Portuguese>[CSW] Bolsa de Lançador - BGM-71 TOW</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_dshk_gun">
<English>[CSW] DSHK Gun Bag</English>
<Portuguese>[CSW] Bolsa de Arma - DSHK</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_2b14_tube">
<English>[CSW] 2B14 Tube Bag</English>
<Portuguese>[CSW] Bolsa de Arma - 2B14</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_nsv_gun">
<English>[CSW] NSV Gun Bag</English>
<Portuguese>[CSW] Bolsa de Arma - NSV</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_kord_gun">
<English>[CSW] KORD Gun Bag</English>
<Portuguese>[CSW] Bolsa de Arma - KORD</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_ags30_gun">
<English>[CSW] AGS-30 Gun Bag</English>
<Portuguese>[CSW] Bolsa de Arma - AGS-30</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_metis_tube">
<English>[CSW] 9k115 Metis Launcher Bag</English>
<Portuguese>[CSW] Bolsa de Arma - 9k115 Metis</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_kornet_launcher">
<English>[CSW] 9m113 Kornet Launcher</English>
<Portuguese>[CSW] Bolsa de Arma - 9m113 Kornet</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_spg9_Tripod">
<English>SPG-9 Tripod</English>
<Portuguese>Tripé SPG-9</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_spg9_TripodFolded">
<English>[CSW] SPG-9 Deployable Tripod</English>
<Portuguese>[CSW] SPG-9 Tripe Ajustável (Baixo)</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_spg9_tube">
<English>[CSW] SPG-9 Launcher Bag</English>
<Portuguese>[CSW] Bolsa de Lançador - SPG-9</Portuguese>
</Key>
<Key ID="STR_ACE_CSW_spg9m_tube">
<English>[CSW] SPG-9M Launcher Bag</English>
<Portuguese>[CSW] Bolsa de Lançador - SPG-9M</Portuguese>
</Key>
</Package>
</Project>

View File

@ -13,6 +13,7 @@
<Italian>Piastrina</Italian>
<Chinese>兵籍牌</Chinese>
<Chinesesimp>兵籍牌</Chinesesimp>
<Portuguese>Dog Tag</Portuguese>
</Key>
<Key ID="STR_ACE_Dogtags_checkItem">
<English>Check Dog Tag</English>
@ -26,6 +27,7 @@
<Italian>Controlla Piastrina</Italian>
<Chinese>檢查兵籍牌</Chinese>
<Chinesesimp>检查兵籍牌</Chinesesimp>
<Portuguese>Verificar Dog Tag</Portuguese>
</Key>
<Key ID="STR_ACE_Dogtags_checkDogtag">
<English>Check</English>
@ -39,6 +41,7 @@
<Italian>Controlla</Italian>
<Chinese>檢查</Chinese>
<Chinesesimp>检查</Chinesesimp>
<Portuguese>Verificar</Portuguese>
</Key>
<Key ID="STR_ACE_Dogtags_takeDogtag">
<English>Take</English>
@ -52,6 +55,7 @@
<Italian>Prendi</Italian>
<Chinese>拿取</Chinese>
<Chinesesimp>拿取</Chinesesimp>
<Portuguese>Pegar</Portuguese>
</Key>
<Key ID="STR_ACE_Dogtags_takeDogtagSuccess">
<English>Dogtag taken from %1...</English>
@ -65,6 +69,7 @@
<Italian>Piastrina presa da %1...</Italian>
<Chinese>從%1身上拿取兵籍牌...</Chinese>
<Chinesesimp>从%1身上拿取兵籍牌...</Chinesesimp>
<Portuguese>Dogtag pego de %1...</Portuguese>
</Key>
<Key ID="STR_ACE_Dogtags_dogtagAlreadyTaken">
<English>Somebody else has already taken the dogtag...</English>
@ -78,6 +83,7 @@
<Italian>Qualcun altro ha già preso la piastrina...</Italian>
<Chinese>已經有人把他的兵籍牌拿走了...</Chinese>
<Chinesesimp>已经有人把他的兵籍牌拿走了...</Chinesesimp>
<Portuguese>Alguém já pegou essa dogtag...</Portuguese>
</Key>
<Key ID="STR_ACE_Dogtags_IGUI_Description">
<English>Onscreen display for checking dogtags</English>
@ -87,6 +93,7 @@
<Italian>Display su schermo per il controllo delle piastrine</Italian>
<Polish>Wyświetlacz ekranowy dla sprawdzania nieśmiertelników</Polish>
<Russian>Экран для проверки жетонов</Russian>
<Portuguese>Tela de Exibição para verificar dogtags</Portuguese>
</Key>
</Package>
</Project>

View File

@ -3,24 +3,31 @@
<Package name="dragon">
<Key ID="STR_ACE_dragon_dragonNameCarry">
<English>[CSW] M47 Super-Dragon</English>
<Portuguese>[CSW] M47 Super-Dragon</Portuguese>
</Key>
<Key ID="STR_ACE_dragon_dragonName">
<English>M47 Super-Dragon</English>
<Portuguese>M47 Super-Dragon</Portuguese>
</Key>
<Key ID="STR_ACE_dragon_attachSight">
<English>Attach Sight</English>
<Portuguese>Colocar Mira</Portuguese>
</Key>
<Key ID="STR_ACE_dragon_detachSight">
<English>Detach Sight</English>
<Portuguese>Remover Mira</Portuguese>
</Key>
<Key ID="STR_ACE_dragon_sightName">
<English>SU-36/P Daysight</English>
<Portuguese>SU-36/P Daysight</Portuguese>
</Key>
<Key ID="STR_ACE_dragon_sightDescription">
<English>A light, cheap sight used for daytime operations. Contains the guidance computer for the whole system</English>
<Portuguese>Uma mira leve e comum utilizada para operações de dia. Contêm o computador de orientação para todo o sistema.</Portuguese>
</Key>
<Key ID="STR_ACE_dragon_dragonDescription">
<English>A Wire-Guided SACLOS missile with a unique flight characteristic</English>
<Portuguese>Um míssil SACLOS, guiado por fio com uma característica única de vôo</Portuguese>
</Key>
</Package>
</Project>

View File

@ -1006,6 +1006,7 @@
<Italian>Cavo d'innesco</Italian>
<Chinesesimp>绊线闪光地雷</Chinesesimp>
<Chinese>絆線閃光地雷</Chinese>
<Portuguese>Tripwire (Sinalizador)</Portuguese>
</Key>
<Key ID="STR_ACE_Explosives_TripFlare_Description">
<English>Type: Tripwire flare - Ignites a non-lethal flare when triggered.&lt;br /&gt;Rounds: 1&lt;br /&gt;Used on: Ground</English>
@ -1018,6 +1019,7 @@
<Italian>Tipo: Cavo d'innesco - Sfocio un abbaglio non letale quanto attivato. &lt;br /&gt;Rimanenti: 1&lt;br /&gt;Usato: A terra</Italian>
<Chinesesimp>类型: 绊线闪光地雷 - 触发后产生非致命性的强光.&lt;br /&gt;发数: 1&lt;br /&gt;使用于: 地面</Chinesesimp>
<Chinese>類型: 絆線閃光地雷 - 觸發後產生非致命性的強光.&lt;br /&gt;發數: 1&lt;br /&gt;使用於: 地面</Chinese>
<Portuguese>Tipo: Flare de Tripwire - Acende um sinalizador não letal quando acionado.&lt;br/&gt;Usos: 1&lt;br/&gt;Usado em: Chão</Portuguese>
</Key>
<Key ID="STR_ACE_Explosives_statExploRange">
<English>Explosive range</English>
@ -1029,6 +1031,7 @@
<Italian>Raggio di detonazione</Italian>
<Polish>Zasięg wybuchu</Polish>
<Russian>Дальность подрыва</Russian>
<Portuguese>Alcance do explosivo</Portuguese>
</Key>
<Key ID="STR_ACE_Explosives_ExplosiveTimer">
<English>Explosive Timer</English>
@ -1037,6 +1040,7 @@
<Japanese>爆発タイマー</Japanese>
<Polish>Czasomierz Wybuchu</Polish>
<Russian>Таймер взрывчатки</Russian>
<Portuguese>Timer de explosão</Portuguese>
</Key>
</Package>
</Project>

View File

@ -56,6 +56,7 @@
<Korean>패스트 로프 시스템 보관</Korean>
<Polish>Schowaj system zjazdu na linach</Polish>
<Russian>Спрятать систему спуска</Russian>
<Portuguese>Recolher o sistema de descida rápida</Portuguese>
</Key>
<Key ID="STR_ACE_Fastroping_Interaction_deployRopes">
<English>Deploy ropes</English>
@ -152,6 +153,7 @@
<Japanese>12m ロープを展開</Japanese>
<Polish>Wysuń linę o długości 12 m.</Polish>
<Russian>Выпустить 12 м канат</Russian>
<Portuguese>Jogar cordar (12m)</Portuguese>
</Key>
<Key ID="STR_ACE_Fastroping_Interaction_deployRopes15">
<English>Deploy 15m ropes</English>
@ -160,6 +162,7 @@
<Japanese>15m ロープを展開</Japanese>
<Polish>Wysuń linę o długości 15 m.</Polish>
<Russian>Выпустить 15 м канат</Russian>
<Portuguese>Jogar cordar (15m)</Portuguese>
</Key>
<Key ID="STR_ACE_Fastroping_Interaction_deployRopes18">
<English>Deploy 18m ropes</English>
@ -168,6 +171,7 @@
<Japanese>18m ロープを展開</Japanese>
<Polish>Wysuń linę o długości 18 m.</Polish>
<Russian>Выпустить 18 м канат</Russian>
<Portuguese>Jogar cordar (18m)</Portuguese>
</Key>
<Key ID="STR_ACE_Fastroping_Interaction_deployRopes27">
<English>Deploy 27m ropes</English>
@ -176,6 +180,7 @@
<Japanese>27m ロープを展開</Japanese>
<Polish>Wysuń linę o długości 27 m.</Polish>
<Russian>Выпустить 27 м канат</Russian>
<Portuguese>Jogar cordar (27m)</Portuguese>
</Key>
<Key ID="STR_ACE_Fastroping_Interaction_deployRopes36">
<English>Deploy 36m ropes</English>
@ -184,6 +189,7 @@
<Japanese>36m ロープを展開</Japanese>
<Polish>Wysuń linę o długości 36 m.</Polish>
<Russian>Выпустить 36 м канат</Russian>
<Portuguese>Jogar cordar (36m)</Portuguese>
</Key>
<Key ID="STR_ACE_Fastroping_Ropesupply">
<English>[ACE] Ropes Supply crate</English>
@ -192,6 +198,7 @@
<Japanese>[ACE] ロープ収納箱</Japanese>
<Polish>Skrzynia z linami ACE</Polish>
<Russian>[ACE] Ящик с канатами</Russian>
<Portuguese>[ACE] Suprimento de cordas</Portuguese>
</Key>
<Key ID="STR_ACE_Fastroping_descriptionShort">
<English>Used to do deploy ropes from a compatibile helicopter</English>
@ -200,6 +207,7 @@
<Japanese>対応するヘリコプターからロープを展開する為に使用されます</Japanese>
<Polish>Używane do opuszczania lin z kompatybilnych smigłowców</Polish>
<Russian>Используется для выпуска канатов с совместимого вертолета</Russian>
<Portuguese>Usado para fazer descida rápida de corda em helicópteros compatíveis com FRIES</Portuguese>
</Key>
<Key ID="STR_ACE_Fastroping_Rope_12_Display">
<English>Rope 12.2 meters</English>
@ -208,6 +216,7 @@
<Japanese>ロープ (12.2 メートル)</Japanese>
<Polish>Lina, długość 12,2 m.</Polish>
<Russian>Канат 12.2 метров</Russian>
<Portuguese>Corda (12.2m)</Portuguese>
</Key>
<Key ID="STR_ACE_Fastroping_Rope_15_Display">
<English>Rope 15.2 meters</English>
@ -216,6 +225,7 @@
<Japanese>ロープ (15.2 メートル)</Japanese>
<Polish>Lina, długość 15,2 m.</Polish>
<Russian>Канат 15.2 метров</Russian>
<Portuguese>Corda (15.2m)</Portuguese>
</Key>
<Key ID="STR_ACE_Fastroping_Rope_18_Display">
<English>Rope 18.3 meters</English>
@ -224,6 +234,7 @@
<Japanese>ロープ (18.3 メートル)</Japanese>
<Polish>Lina, długość 18,3 m.</Polish>
<Russian>Канат 18.3 метров</Russian>
<Portuguese>Corda (18.3m)</Portuguese>
</Key>
<Key ID="STR_ACE_Fastroping_Rope_27_Display">
<English>Rope 27.4 meters</English>
@ -232,6 +243,7 @@
<Japanese>ロープ (27.4 メートル)</Japanese>
<Polish>Lina, długość 27,4 m.</Polish>
<Russian>Канат 27.4 метров</Russian>
<Portuguese>Corda (27.4m)</Portuguese>
</Key>
<Key ID="STR_ACE_Fastroping_Rope_36_Display">
<English>Rope 36.6 meters</English>
@ -240,6 +252,7 @@
<Japanese>ロープ (36.6 メートル)</Japanese>
<Polish>Lina, długość 36,6 m.</Polish>
<Russian>Канат 36.6 метров</Russian>
<Portuguese>Corda (36.6m)</Portuguese>
</Key>
<Key ID="STR_ACE_Fastroping_setting_requireRopeItems_displayName">
<English>Require rope item to deploy</English>
@ -248,6 +261,7 @@
<Japanese>展開にはロープ アイテムを必須に</Japanese>
<Polish>Wymaga przedmiotu typu lina </Polish>
<Russian>Требуется канат</Russian>
<Portuguese>Requer uma corda para jogar</Portuguese>
</Key>
</Package>
</Project>

View File

@ -28,7 +28,10 @@ class CfgPatches {
#include "CfgOptics.hpp"
class ACE_Extensions {
extensions[] += {"ace_fcs"};
class ace_fcs {
windows = 1;
client = 1;
};
};
class ACE_Tests {

View File

@ -12,6 +12,7 @@
<French>Pointage</French>
<Polish>Wskazywanie</Polish>
<Russian>Указание пальцем</Russian>
<Portuguese>Apontando</Portuguese>
</Key>
<Key ID="STR_ACE_finger_indicatorForSelf_name">
<English>Show pointing indicator to self</English>

View File

@ -101,6 +101,7 @@
<Italian>Colore della luce sulla mappa</Italian>
<Polish>Kolor światła na mapie</Polish>
<Russian>Цвет подсветки карты</Russian>
<Portuguese>Cor da lanterna no mapa</Portuguese>
</Key>
</Package>
</Project>

View File

@ -6,7 +6,7 @@
<German>Effekte der G-Kräfte</German>
<Spanish>Efectos Gforces</Spanish>
<Czech>G Force efekty</Czech>
<Portuguese>Efeitos de ForçaG</Portuguese>
<Portuguese>Efeitos da Força G</Portuguese>
<French>Effets de force gravitationnelle</French>
<Russian>Эффекты перегрузок</Russian>
<Japanese>G による効果</Japanese>
@ -41,6 +41,7 @@
<Italian>Riduzione forza G</Italian>
<Polish>Redukcja przeciążenia</Polish>
<Russian>Уменьшение перегрузок</Russian>
<Portuguese>Redução de Força-G</Portuguese>
</Key>
</Package>
</Project>

View File

@ -11,6 +11,7 @@
<Korean>고글</Korean>
<Polish>Gogle</Polish>
<Russian>Очки</Russian>
<Portuguese>Óculos</Portuguese>
</Key>
<Key ID="STR_ACE_Goggles_ShowInThirdPerson">
<English>Show Goggle Effects in Third Person</English>
@ -55,6 +56,7 @@
<Italian>Effetti Occhiali</Italian>
<Chinesesimp>护目镜效果</Chinesesimp>
<Chinese>護目鏡效果</Chinese>
<Portuguese>Efeitos de Óculos</Portuguese>
</Key>
<Key ID="STR_ACE_Goggles_effects_tintOnly">
<English>Tint</English>
@ -67,6 +69,7 @@
<Italian>Colore</Italian>
<Chinesesimp>染色</Chinesesimp>
<Chinese>染色</Chinese>
<Portuguese>Cor</Portuguese>
</Key>
<Key ID="STR_ACE_Goggles_enabled_tintAndEffects">
<English>Tint + Effects</English>
@ -79,6 +82,7 @@
<Italian>Colore + Effetti</Italian>
<Chinesesimp>染色 + 影响</Chinesesimp>
<Chinese>染色 + 影響</Chinese>
<Portuguese>Cor + Efeitos</Portuguese>
</Key>
</Package>
</Project>

View File

@ -348,6 +348,7 @@
<Italian>AN-M14 Granata Incendiaria</Italian>
<Chinesesimp>AN-M14 燃烧手榴弹</Chinesesimp>
<Chinese>AN-M14 燃燒手榴彈</Chinese>
<Portuguese>Granada Incendiária AN-M14</Portuguese>
</Key>
<Key ID="STR_ACE_Grenades_Incendiary_NameShort">
<English>AN-M14</English>
@ -360,6 +361,7 @@
<Italian>AN-M14</Italian>
<Chinesesimp>AN-M14</Chinesesimp>
<Chinese>AN-M14</Chinese>
<Portuguese>AN-M14</Portuguese>
</Key>
<Key ID="STR_ACE_Grenades_Incendiary_Description">
<English>Incendiary grenade used to destroy weapons, ammunition and other equipment.</English>
@ -372,6 +374,7 @@
<Italian>Granata incendiaria usata per distruggere armi, munizioni e altri equipaggiamenti.</Italian>
<Chinesesimp>燃烧手榴弹是用来摧毁武器,弹药以及其他装备的好帮手。</Chinesesimp>
<Chinese>燃燒手榴彈是用來摧毀武器,彈藥以及其他裝備的好幫手</Chinese>
<Portuguese>Granada Incendiária utilizada para destruir armas, munições e outros equipamentos.</Portuguese>
</Key>
<Key ID="STR_ACE_Grenades_parachute_flare_description">
<English>Type: Star Parachute Flare</English>
@ -379,6 +382,7 @@
<Italian>Tipo: Granata a paracadute con bengala</Italian>
<Japanese>種類: パラシュート式照明弾 (星弾)</Japanese>
<Russian>Тип: Осветительная ракета - звезда на парашюте</Russian>
<Portuguese>Tipo: Sinalizador de pára-quedas estrela</Portuguese>
</Key>
<Key ID="STR_ACE_Grenades_40mm_flare_white">
<English>M583 Illumination Flare (White)</English>
@ -386,6 +390,7 @@
<Italian>M583 Granata con bengala (Bianca)</Italian>
<Japanese>M583 照明弾 (白)</Japanese>
<Russian>M583 Осветит. ракета (Белая)</Russian>
<Portuguese>M583 Sinalizador de Iluminação (Branco)</Portuguese>
</Key>
<Key ID="STR_ACE_Grenades_40mm_flare_red">
<English>M662 Illumination Flare (Red)</English>
@ -393,6 +398,7 @@
<Italian>M662 Granata con bengala (Rossa)</Italian>
<Japanese>M662 照明弾 (赤)</Japanese>
<Russian>M662 Осветит. ракета (Красная)</Russian>
<Portuguese>M662 Sinalizador de Iluminação (Vermelho)</Portuguese>
</Key>
<Key ID="STR_ACE_Grenades_40mm_flare_green">
<English>M661 Illumination Flare (Green)</English>
@ -400,6 +406,7 @@
<Italian>M661 Granata con bengala (Verde)</Italian>
<Japanese>M661 照明弾 (緑)</Japanese>
<Russian>M661 Осветит. ракета (Зеленая)</Russian>
<Portuguese>M661 Sinalizador de Iluminação (Verde)</Portuguese>
</Key>
<Key ID="STR_ACE_Grenades_parachute_flare_ir_description">
<English>Type: Parachute IR Flare</English>
@ -407,6 +414,7 @@
<Italian>Tipo: Granata a paracadute con infrarosso</Italian>
<Japanese>種類: パラシュート式赤外線照明弾</Japanese>
<Russian>Тип: ИК-осветительная ракета на парашюте</Russian>
<Portuguese>Tipo: Sinalizador Infravermelho de Pára-quedas</Portuguese>
</Key>
<Key ID="STR_ACE_Grenades_40mm_flare_ir">
<English>M992 Illumination IR Flare</English>
@ -414,6 +422,7 @@
<Italian>M992 Granata con infrarosso</Italian>
<Japanese>M992 赤外線照明弾</Japanese>
<Russian>M992 ИК-осветительная ракета</Russian>
<Portuguese>M992 Sinalizador de Iluminação Infravermelho</Portuguese>
</Key>
</Package>
</Project>

View File

@ -13,6 +13,7 @@
<Italian>Borsa per Armi</Italian>
<Chinesesimp>枪袋</Chinesesimp>
<Chinese>槍袋</Chinese>
<Portuguese>Bolsa de Arma</Portuguese>
</Key>
<Key ID="STR_ACE_Gunbag_DisplayName_Tan">
<English>Gunbag (Tan)</English>
@ -26,6 +27,7 @@
<Italian>Borsa per Armi (Tan)</Italian>
<Chinesesimp>枪袋 (黄褐色)</Chinesesimp>
<Chinese>槍袋 (黃褐色)</Chinese>
<Portuguese>Bolsa de Arma (Bege)</Portuguese>
</Key>
<Key ID="STR_ACE_Gunbag_ToGunbag">
<English>Put weapon into gunbag</English>
@ -39,6 +41,7 @@
<Italian>Metti l'arma nella borsa per armi</Italian>
<Chinesesimp>将武器放置枪袋</Chinesesimp>
<Chinese>將武器放置槍袋</Chinese>
<Portuguese>Colocar arma na Bosla de Arma</Portuguese>
</Key>
<Key ID="STR_ACE_Gunbag_OffGunbag">
<English>Get weapon out of gunbag</English>
@ -52,6 +55,7 @@
<Italian>Prendi l'arma dalla borsa per armi</Italian>
<Chinesesimp>将武器拿出枪袋</Chinesesimp>
<Chinese>將武器拿出槍袋</Chinese>
<Portuguese>Retirar arma da Bolsa de Arma</Portuguese>
</Key>
<Key ID="STR_ACE_Gunbag_Status">
<English>Status</English>
@ -65,6 +69,7 @@
<Italian>Stato</Italian>
<Chinesesimp>状态</Chinesesimp>
<Chinese>狀態</Chinese>
<Portuguese>Status</Portuguese>
</Key>
<Key ID="STR_ACE_Gunbag_Empty">
<English>Gunbag Empty</English>
@ -78,6 +83,7 @@
<Italian>Borsa per armi vuota</Italian>
<Chinesesimp>枪袋为空</Chinesesimp>
<Chinese>槍袋為空</Chinese>
<Portuguese>Bolsa de Arma Vazia</Portuguese>
</Key>
</Package>
</Project>

View File

@ -292,6 +292,7 @@
<Italian>Protezione auditiva</Italian>
<Polish>Ochrona słuchu</Polish>
<Russian>Защита слуха</Russian>
<Portuguese>Proteção Auditiva</Portuguese>
</Key>
<Key ID="STR_ACE_Hearing_statHearingLowerVolume">
<English>Volume muffling</English>
@ -303,6 +304,7 @@
<Italian>Volume attenuazione</Italian>
<Polish>Tłumienie głośności</Polish>
<Russian>Глушение звука</Russian>
<Portuguese>Abafamento de Volume</Portuguese>
</Key>
<Key ID="STR_ACE_Hearing_earplugsVolume_DisplayName">
<English>Earplugs Volume</English>
@ -313,6 +315,7 @@
<Italian>Volume tappi per le orecchie</Italian>
<Polish>Głośność Stoperów</Polish>
<Russian>Громкость в берушах</Russian>
<Portuguese>Volume do Protetor Auricular</Portuguese>
</Key>
<Key ID="STR_ACE_Hearing_earplugsVolume_Description">
<English>Volume when using earplugs.</English>
@ -323,6 +326,7 @@
<Italian>Volume audio quandi si indossano i tappi per le orecchie.</Italian>
<Polish>Głośność podczas używania stoperów.</Polish>
<Russian>Громкость при одетых берушах</Russian>
<Portuguese>Volume quando estiver utilizando um Protetor Auricular</Portuguese>
</Key>
<Key ID="STR_ACE_Hearing_unconsciousnessVolume_DisplayName">
<English>Unconscious Volume</English>
@ -333,6 +337,7 @@
<Italian>Volume quando incoscente</Italian>
<Polish>Nieprzytomna Głośność</Polish>
<Russian>Громкость без сознания</Russian>
<Portuguese>Volume Inconsciente</Portuguese>
</Key>
<Key ID="STR_ACE_Hearing_unconsciousnessVolume_Description">
<English>Volume when unconscious.</English>
@ -343,6 +348,7 @@
<Italian>Volume quando incoscente.</Italian>
<Polish>Głośność podczas bycia nieprzytomnym.</Polish>
<Russian>Громкость при потере сознания</Russian>
<Portuguese>Volume enquanto inconsciente</Portuguese>
</Key>
</Package>
</Project>

View File

@ -11,6 +11,7 @@
<Polish>Ustaw tryb pocisku Hellfire</Polish>
<Korean>헬파이어 모드 세팅</Korean>
<Russian>Установить режим Hellfire</Russian>
<Portuguese>Definir modo de Hellfire</Portuguese>
</Key>
</Package>
</Project>

View File

@ -11,6 +11,7 @@
<German>Mindestschaden, um Sturz auszulösen</German>
<Polish>Minimalne obrażenie, żeby aktywować spadanie</Polish>
<Russian>Минимальный урон для активации падения</Russian>
<Portuguese>Dano Mínimo para ativar queda</Portuguese>
</Key>
</Package>
</Project>

View File

@ -8,6 +8,7 @@
<Italian>Filoguidato</Italian>
<Japanese>ワイヤ有線誘導</Japanese>
<Russian>Проводное управление</Russian>
<Portuguese>Guiado por Fio</Portuguese>
</Key>
<Key ID="STR_ACE_HOT_SACLOS_Description">
<English>Semi-automatic command to line of sight</English>
@ -16,6 +17,7 @@
<Italian>Comando Semi-Automatico via Contatto Visivo(SACLOS)</Italian>
<Japanese>半自動指令照準線一致誘導方式</Japanese>
<Russian>Полуавтоматическое командное наведение по линии визирования (SACLOS)</Russian>
<Portuguese>Comando semi-automático para a linha de visão (SACLOS)</Portuguese>
</Key>
<Key ID="STR_ACE_HOT_missileType_Description">
<English>Wire-Guided Missile</English>
@ -24,6 +26,7 @@
<Italian>Missile filoguidato</Italian>
<Japanese>ワイヤ有線誘導ミサイル</Japanese>
<Russian>Ракета с проводным управлением</Russian>
<Portuguese>Míssil Guiado por Fio</Portuguese>
</Key>
<Key ID="STR_ACE_HOT_hotMissile">
<English>HOT Missile</English>
@ -32,6 +35,7 @@
<Italian>Missile HOT</Italian>
<Japanese>HOT ミサイル</Japanese>
<Russian>Ракета HOT</Russian>
<Portuguese>Míssil HOT</Portuguese>
</Key>
<Key ID="STR_ACE_HOT_hot1">
<English>HOT 1</English>
@ -40,6 +44,7 @@
<Italian>HOT 1</Italian>
<Japanese>HOT 1</Japanese>
<Russian>HOT 1</Russian>
<Portuguese>HOT 1</Portuguese>
</Key>
<Key ID="STR_ACE_HOT_hot2">
<English>HOT 2</English>
@ -48,6 +53,7 @@
<Italian>HOT 2</Italian>
<Japanese>HOT 2</Japanese>
<Russian>HOT 2</Russian>
<Portuguese>HOT 2</Portuguese>
</Key>
<Key ID="STR_ACE_HOT_hot2mp">
<English>HOT 2MP</English>
@ -56,6 +62,7 @@
<Italian>HOT 2MP</Italian>
<Japanese>HOT 2MP</Japanese>
<Russian>HOT 2MP</Russian>
<Portuguese>HOT 2MP</Portuguese>
</Key>
<Key ID="STR_ACE_HOT_hot3">
<English>HOT 3</English>
@ -64,6 +71,7 @@
<Italian>HOT 3</Italian>
<Japanese>HOT 3</Japanese>
<Russian>HOT 3</Russian>
<Portuguese>HOT 3</Portuguese>
</Key>
<Key ID="STR_ACE_HOT_missileType_Description_AP">
<English>Wire-Guided Missile (Anti-Personnel)</English>
@ -72,6 +80,7 @@
<Italian>Missile filoguidato antiuomo</Italian>
<Japanese>ワイヤ有線誘導ミサイル (対人)</Japanese>
<Russian>Ракета с проводным управлением (Противопехотная)</Russian>
<Portuguese>Míssil Guiado por Fio (Anti-Pessoal)</Portuguese>
</Key>
<Key ID="STR_ACE_HOT_hot1_1">
<English>1x HOT 1 [ACE]</English>
@ -80,6 +89,7 @@
<Italian>1x HOT1 [ACE]</Italian>
<Japanese>1x HOT 1 [ACE]</Japanese>
<Russian>1x HOT 1 [ACE]</Russian>
<Portuguese>1x HOT 1 [ACE]</Portuguese>
</Key>
<Key ID="STR_ACE_HOT_hot1_3">
<English>3x HOT 1 [ACE]</English>
@ -88,6 +98,7 @@
<Italian>3x HOT 1 [ACE]</Italian>
<Japanese>3x HOT 1 [ACE]</Japanese>
<Russian>3x HOT 1 [ACE]</Russian>
<Portuguese>3x HOT 1 [ACE]</Portuguese>
</Key>
<Key ID="STR_ACE_HOT_hot1_4">
<English>4x HOT 1 [ACE]</English>
@ -96,6 +107,7 @@
<Italian>4x HOT 1 [ACE]</Italian>
<Japanese>4x HOT 1 [ACE]</Japanese>
<Russian>4x HOT 1 [ACE]</Russian>
<Portuguese>4x HOT 1 [ACE]</Portuguese>
</Key>
<Key ID="STR_ACE_HOT_hot2_1">
<English>1x HOT 2 [ACE]</English>
@ -104,6 +116,7 @@
<Italian>1x HOT 2 [ACE]</Italian>
<Japanese>1x HOT 2 [ACE]</Japanese>
<Russian>1x HOT 2 [ACE]</Russian>
<Portuguese>1x HOT 2 [ACE]</Portuguese>
</Key>
<Key ID="STR_ACE_HOT_hot2_3">
<English>3x HOT 2 [ACE]</English>
@ -112,6 +125,7 @@
<Italian>3x HOT 2 [ACE]</Italian>
<Japanese>3x HOT 2 [ACE]</Japanese>
<Russian>3x HOT 2 [ACE]</Russian>
<Portuguese>3x HOT 2 [ACE]</Portuguese>
</Key>
<Key ID="STR_ACE_HOT_hot2_4">
<English>4x HOT 2 [ACE]</English>
@ -120,6 +134,7 @@
<Italian>4x HOT 2 [ACE]</Italian>
<Japanese>4x HOT 2 [ACE]</Japanese>
<Russian>4x HOT 2 [ACE]</Russian>
<Portuguese>4x HOT 2 [ACE]</Portuguese>
</Key>
<Key ID="STR_ACE_HOT_hot2mp_1">
<English>1x HOT 2MP [ACE]</English>
@ -128,6 +143,7 @@
<Italian>1x HOT 2MP [ACE]</Italian>
<Japanese>1x HOT 2MP [ACE]</Japanese>
<Russian>1x HOT 2MP [ACE]</Russian>
<Portuguese>1x HOT 2MP [ACE]</Portuguese>
</Key>
<Key ID="STR_ACE_HOT_hot2mp_3">
<English>3x HOT 2MP [ACE]</English>
@ -136,6 +152,7 @@
<Italian>3x HOT 2MP [ACE]</Italian>
<Japanese>3x HOT 2MP [ACE]</Japanese>
<Russian>3x HOT 2MP [ACE]</Russian>
<Portuguese>3x HOT 2MP [ACE]</Portuguese>
</Key>
<Key ID="STR_ACE_HOT_hot2mp_4">
<English>4x HOT 2MP [ACE]</English>
@ -144,6 +161,7 @@
<Italian>4x HOT 2MP [ACE]</Italian>
<Japanese>4x HOT 2MP [ACE]</Japanese>
<Russian>4x HOT 2MP [ACE]</Russian>
<Portuguese>4x HOT 2MP [ACE]</Portuguese>
</Key>
<Key ID="STR_ACE_HOT_hot3_1">
<English>1x HOT 3 [ACE]</English>
@ -152,6 +170,7 @@
<Italian>1x HOT 3 [ACE]</Italian>
<Japanese>1x HOT 3 [ACE]</Japanese>
<Russian>1x HOT 3 [ACE]</Russian>
<Portuguese>1x HOT 3 [ACE]</Portuguese>
</Key>
<Key ID="STR_ACE_HOT_hot3_4">
<English>4x HOT 3 [ACE]</English>
@ -160,6 +179,7 @@
<Italian>4x HOT 3 [ACE]</Italian>
<Japanese>4x HOT 3 [ACE]</Japanese>
<Russian>4x HOT 3 [ACE]</Russian>
<Portuguese>4x HOT 3 [ACE]</Portuguese>
</Key>
<Key ID="STR_ACE_HOT_hot3_3">
<English>3x HOT 3 [ACE]</English>
@ -168,6 +188,7 @@
<Italian>3x HOT 3 [ACE]</Italian>
<Japanese>3x HOT 3 [ACE]</Japanese>
<Russian>3x HOT 3 [ACE]</Russian>
<Portuguese>3x HOT 3 [ACE]</Portuguese>
</Key>
</Package>
</Project>

View File

@ -23,5 +23,12 @@ class CfgPatches {
#include "ACE_Settings.hpp"
class ACE_Extensions {
extensions[] += {"ace_break_line", "ace_parse_imagepath"};
class ace_break_line {
windows = 1;
client = 1;
};
class ace_parse_imagepath {
windows = 1;
client = 1;
};
};

View File

@ -455,6 +455,7 @@
<Italian>Controllo Settore</Italian>
<Polish>Kolor wybierającego</Polish>
<Russian>Цвет селектора</Russian>
<Portuguese>Cor do Seletor</Portuguese>
</Key>
</Package>
</Project>

View File

@ -11,6 +11,7 @@
<Korean>상호작용</Korean>
<Polish>Interakcja</Polish>
<Russian>Взаимодействие</Russian>
<Portuguese>Interação</Portuguese>
</Key>
<Key ID="STR_ACE_Interaction_MainAction">
<English>Interactions</English>
@ -22,7 +23,7 @@
<Russian>Взаимодействия</Russian>
<Hungarian>Cselekvések</Hungarian>
<Italian>Interazioni</Italian>
<Portuguese>Interaçãoes</Portuguese>
<Portuguese>Interações</Portuguese>
<Japanese>インタラクション</Japanese>
<Korean>상호작용</Korean>
<Chinesesimp>互动</Chinesesimp>
@ -489,6 +490,7 @@
<Korean>나가</Korean>
<Chinesesimp>出去</Chinesesimp>
<Chinese>出去</Chinese>
<Portuguese>Saia!</Portuguese>
</Key>
<Key ID="STR_ACE_Interaction_TeamManagement">
<English>Team Management</English>
@ -850,6 +852,7 @@
<Chinese></Chinese>
<Italian>Gira</Italian>
<Polish>Przewróć</Polish>
<Portuguese>Virar</Portuguese>
</Key>
<Key ID="STR_ACE_Interaction_Interact">
<English>Interact</English>
@ -957,6 +960,7 @@
<Korean>부정행위 가중치 사용안함</Korean>
<Polish>Wyłącz negatywną ocenę</Polish>
<Russian>Отключить отрицательный рейтинг</Russian>
<Portuguese>Desativar avaliação negativa</Portuguese>
</Key>
<Key ID="STR_ACE_Interaction_DisableNegativeRating_Description">
<English>Should players receive negative rating? When enabled players are only receiving positive ratings which prevents friendly AI fire when destroying friendly equipment or killing team members.</English>
@ -968,6 +972,7 @@
<Korean>플레이어의 부정행위 가중치를 계산합니까? 활성화된 플레이어는 높은 레이팅을 가질때, 아군의 장비나 병력을 사격해도 아군 AI의 사격을 받지 않습니다.</Korean>
<Polish>Czy powinni gracze otrzymywać negatywną ocenę? Kiedy aktywowani gracze otrzymuję wyłącznie pozytywną ocenę, która zapobiega ognia przyjaznego SI podczas niszczenia przyjaznego wyposażenia lub zabijaniu członków drużyny.</Polish>
<Russian>Должны ли игроки получать отрицательный рейтинг? Когда включено, игроки получают только положительный рейтинг, что предотвращает дружественный огонь от ИИ при уничтожении дружественного оборудования или убийстве членов команды.</Russian>
<Portuguese>Jogadores devem receber uma avaliação negativa? Quando ativado, os jogadores estão recebendo avaliações positivas, prevenindo que IA amigável atire quando destruir algum equipamento aliado ou matar membros de equipe.</Portuguese>
</Key>
<Key ID="STR_ACE_Interaction_Module_Description">
<English>Team management allows color allocation for team members, taking team command and joining/leaving teams.</English>
@ -1100,6 +1105,7 @@
<Chinese>拿出屍體</Chinese>
<Chinesesimp>拿出尸体</Chinesesimp>
<Polish>Wyciągnij ciało</Polish>
<Portuguese>Retirar Corpo</Portuguese>
</Key>
<Key ID="STR_ACE_Interaction_SmashWindshield">
<English>Smash windshield</English>
@ -1111,6 +1117,7 @@
<Hungarian>Szélvédő széttörése</Hungarian>
<Japanese>フロントガラスを破る</Japanese>
<Italian>Sfonda il parabrezza</Italian>
<Portuguese>Quebrar pára-brisa</Portuguese>
</Key>
</Package>
</Project>

View File

@ -12,6 +12,7 @@
<Chinesesimp>雷射散射模拟计算</Chinesesimp>
<Chinese>雷射散射模擬計算</Chinese>
<Russian>Число симуляций рассеивания лазерного луча</Russian>
<Portuguese>Contador da Simulação de Dispersão de Laser</Portuguese>
</Key>
<Key ID="STR_ACE_Laser_laserCode">
<English>Laser Code</English>

View File

@ -11,6 +11,7 @@
<Korean>탄약 채우기</Korean>
<Polish>Przepakowywanie magazynków</Polish>
<Russian>Перепаковка Магазинов</Russian>
<Portuguese>Preenchimento de Carregador</Portuguese>
</Key>
<Key ID="STR_ACE_MagazineRepack_timePerAmmo">
<English>Time per round</English>
@ -22,6 +23,7 @@
<Korean>구경 당 시간</Korean>
<Polish>Czas na nabój</Polish>
<Russian>Время на патрон</Russian>
<Portuguese>Tempo por projétil</Portuguese>
</Key>
<Key ID="STR_ACE_MagazineRepack_timePerMagazine">
<English>Time per magazine</English>
@ -33,6 +35,7 @@
<Korean>탄창 당 시간</Korean>
<Polish>Czas na magazynek</Polish>
<Russian>Время на магазин</Russian>
<Portuguese>Tempo por carregador</Portuguese>
</Key>
<Key ID="STR_ACE_MagazineRepack_timePerBeltLink">
<English>Time per belt link</English>
@ -44,6 +47,7 @@
<Korean>탄약띠 당 시간</Korean>
<Polish>Czas na taśmę</Polish>
<Russian>Время на звено ленты</Russian>
<Portuguese>Tempo por carregador de cinto</Portuguese>
</Key>
<Key ID="STR_ACE_MagazineRepack_RepackMagazines">
<English>Repack Magazines</English>

View File

@ -5,8 +5,9 @@
#include "script_version.hpp"
#define VERSION MAJOR.MINOR.PATCHLVL.BUILD
#define VERSION_AR MAJOR,MINOR,PATCHLVL,BUILD
#define VERSION MAJOR.MINOR
#define VERSION_STR MAJOR.MINOR.PATCHLVL.BUILD
#define VERSION_AR MAJOR,MINOR,PATCHLVL,BUILD
// MINIMAL required version for the Mod. Components can specify others..
#define REQUIRED_VERSION 1.94

View File

@ -513,6 +513,7 @@
<Chinesesimp>关闭友军踪迹</Chinesesimp>
<Chinese>關閉友軍蹤跡</Chinese>
<Russian>Отключить BFT</Russian>
<Portuguese>Desativar BFT</Portuguese>
</Key>
<Key ID="STR_ACE_Map_disableBFT_description">
<English>Always disable Blue Force Tracking for this group.</English>
@ -525,6 +526,7 @@
<Chinesesimp>对此小队永远关闭友军踪迹显示</Chinesesimp>
<Chinese>對此小隊永遠關閉友軍蹤跡顯示</Chinese>
<Russian>Всегда отключать Blue Force Tracking для этой группы</Russian>
<Portuguese>Sempre desativar Rastreio Blue Force (BFT) para esse grupo.</Portuguese>
</Key>
</Package>
</Project>

View File

@ -5,14 +5,14 @@ class CfgVehicles {
class ACE_MapGpsShow {
displayName = CSTRING(MapGpsShow);
condition = QUOTE((!GVAR(mapGpsShow)) && {call FUNC(canUseMapGPS)});
statement = QUOTE(GVAR(mapGpsShow) = true; [GVAR(mapGpsShow)] call FUNC(openMapGps));
statement = QUOTE(GVAR(mapGpsShow) = true;);
exceptions[] = {"isNotDragging", "notOnMap", "isNotInside", "isNotSitting"};
showDisabled = 0;
};
class ACE_MapGpsHide {
displayName = CSTRING(MapGpsHide);
condition = QUOTE((GVAR(mapGpsShow)) && {call FUNC(canUseMapGPS)});
statement = QUOTE(GVAR(mapGpsShow) = false; [GVAR(mapGpsShow)] call FUNC(openMapGps));
statement = QUOTE(GVAR(mapGpsShow) = false;);
exceptions[] = {"isNotDragging", "notOnMap", "isNotInside", "isNotSitting"};
showDisabled = 0;
};

View File

@ -1,80 +0,0 @@
#define GUI_GRID_X (0)
#define GUI_GRID_Y (0)
#define GUI_GRID_W (0.025)
#define GUI_GRID_H (0.04)
#define ST_LEFT 0x00
#define ST_RIGHT 0x01
#define ST_CENTER 0x02
#define W_gps 0.4025
#define H_gps 0.25
#define X_gps safeZoneX + safeZoneW - 1.1 * W_gps
#define Y_gps safeZoneY + safeZoneH - 1.2 * H_gps
class RscTitles {
class RscACE_MapGps {
idd = 9855;
movingEnable = 1;
duration = 3600;
fadein = 0;
fadeout = 0;
onLoad = QUOTE(uiNamespace setVariable [ARR_2(QUOTE(QGVAR(ui_mapGpsDisplay)), _this select 0)];);
class controls {
class back:RscPicture {
x = X_gps;
y = Y_gps;
w = W_gps;
h = H_gps;
text = QPATHTOF(UI\mapGps.paa);
colorBackground[] = {1, 1, 1, 1};
};
class heading: RscText{
idc = 913590;
x = X_gps + W_gps * 0.225;
y = Y_gps + H_gps * 0.12;
w = W_gps * 0.2;
h = H_gps * 0.16;
style = ST_LEFT;
text = "225";
colorBackground[] = {0,0,0,0};
colorText[] = {0.247,0.251,0.157,1};
shadowColo[] = {0,0,0,0};
// EtelkaNarrowMediumPro broke with 1.72 hotfix, can revert back to that font if fixed (following 3 uses of PuristaSemibold)
font = "PuristaSemibold";
shadow = 0;
sizeEx = 0.042;
};
class altitude: RscText{
idc = 913591;
x = X_gps + W_gps * 0.575;
y = Y_gps + H_gps * 0.12;
w = W_gps * 0.2;
h = H_gps * 0.16;
style = ST_RIGHT;
text = "55 m";
colorBackground[] = {0,0,0,0};
colorText[] = {0.247,0.251,0.157,1};
shadowColo[] = {0,0,0,0};
font = "PuristaSemibold";
shadow = 0;
sizeEx = 0.042;
};
class coordinates: RscText{
idc = 913592;
x = X_gps + W_gps * 0.15;
y = Y_gps + H_gps * 0.33;
w = W_gps * 0.7;
h = H_gps * 0.35;
style = ST_CENTER;
text = "012.3 115.1";
colorBackground[] = {0,0,0,0};
colorText[] = {0.247,0.251,0.157,1};
shadowColo[] = {0,0,0,0};
font = "PuristaSemibold";
shadow = 0;
sizeEx = 0.1;
};
};
};
};

View File

@ -0,0 +1,89 @@
class RscDisplayMainMap {
class objects {
class GVAR(MapGpsDisplay): RscObject {
show = 0;
idc = 913589;
type = 82;
model = QPATHTOF(data\MapGpsDisplay.p3d);
/*
1.000 - normal model
memory - has 4 points in selection "deviceScreen" and then those 4 as individual "deviceScreen tl", "deviceScreen br", "deviceScreen b'", "deviceScreen br"
geometry - has a simpe box with a name selection component01 (needed to make it dragable)
*/
scale = 0.333;
direction[] = {0,1,0};
up[] = {0,0,-1};
x = 0.9;
y = 0.9;
z = 0.2;
xBack = 0.9;
yBack = 0.9;
zBack = 0.3;
inBack = 1;
enableZoom = 1;
zoomDuration = 0.001;
class Areas {
class deviceScreen {
selection = "deviceScreen";
class controls {
class Picture: RscPicture {
text = QPATHTOF(UI\MapGpsDisplay_background_ca.paa);
// gets displayed in game a little bit washed out depending on rotation angle
x = 0;
y = 0;
w = 1;
h = 0.77;
};
class heading: RscText {
idc = 913590;
x = 0.15;
y = 0;
w = 0.35;
h = 0.2;
style = 0; // ST_LEFT
text = "225";
colorBackground[] = {0,0,0,0};
colorText[] = {0.1235,0.1255,0.0785,1};
shadowColor[] = {0,0,0,0};
// EtelkaNarrowMediumPro broke with 1.72 hotfix, can revert back to that font if fixed (following 3 uses of PuristaSemibold) [ still broken ]
font = "PuristaSemibold";
shadow = 0;
sizeEx = 0.18;
};
class altitude: RscText{
idc = 913591;
x = 0.5;
y = 0;
w = 0.35;
h = 0.2;
style = 1; // ST_RIGHT
text = "55 m";
colorBackground[] = {0,0,0,0};
colorText[] = {0.1235,0.1255,0.0785,1};
shadowColor[] = {0,0,0,0};
font = "PuristaSemibold";
shadow = 0;
sizeEx = 0.18;
};
class coordinates: RscText{
idc = 913592;
x = 0;
y = 0.225;
w = 1;
h = 0.35;
style = 2; // ST_CENTER
text = "12345 12345";
colorBackground[] = {0,0,0,0};
colorText[] = {0.1235,0.1255,0.0785,1};
shadowColor[] = {0,0,0,0};
font = "PuristaSemibold";
shadow = 0;
sizeEx = 0.333;
};
};
};
};
};
};
};

Binary file not shown.

Binary file not shown.

View File

@ -5,6 +5,5 @@ PREP(drawLinesOnRoamer);
PREP(handleMouseButton);
PREP(handleMouseMove);
PREP(isInsideMapTool);
PREP(openMapGps);
PREP(openMapGpsUpdate);
PREP(updateMapToolMarkers);

View File

@ -6,6 +6,7 @@ if (!hasInterface) exitWith {};
// Init variables
GVAR(mapGpsShow) = true;
GVAR(mapGpsNextUpdate) = -1;
GVAR(mapTool_Shown) = 0;
GVAR(mapTool_pos) = [0,0];
@ -19,18 +20,12 @@ GVAR(mapTool_isRotating) = false;
((findDisplay 12) displayCtrl 51) ctrlAddEventHandler ["MouseMoving", {_this call FUNC(handleMouseMove);}];
((findDisplay 12) displayCtrl 51) ctrlAddEventHandler ["MouseButtonDown", {[1, _this] call FUNC(handleMouseButton);}];
((findDisplay 12) displayCtrl 51) ctrlAddEventHandler ["MouseButtonUp", {[0, _this] call FUNC(handleMouseButton)}];
((findDisplay 12) displayCtrl 51) ctrlAddEventHandler ["Draw", {_this call FUNC(updateMapToolMarkers);}];
((findDisplay 12) displayCtrl 51) ctrlAddEventHandler ["Draw", {call FUNC(updateMapToolMarkers); call FUNC(openMapGpsUpdate);}];
}, []] call CBA_fnc_waitUntilAndExecute;
["visibleMap", {
params ["", "_mapOn"];
if (_mapOn) then {
// Show GPS if required
[GVAR(mapGpsShow)] call FUNC(openMapGps);
} else {
// Hide GPS
[false] call FUNC(openMapGps);
if (!_mapOn) then {
// Handle closing map in middle of line drawing (it's never created)
GVAR(freedrawing) = false;
};

View File

@ -26,7 +26,7 @@ class RscButtonMenu;
class RscEdit;
#include "ACE_Settings.hpp"
#include "MapGpsUI.hpp"
#include "CfgEventHandlers.hpp"
#include "CfgVehicles.hpp"
#include "CfgWeapons.hpp"
#include "RscDisplayMainMap.hpp"

Binary file not shown.

View File

@ -10,7 +10,7 @@
* Boolean <BOOL>
*
* Example:
* call ACE_map_fnc_canUseMapGPS
* call ACE_maptools_fnc_canUseMapGPS
*
* Public: No
*/

View File

@ -1,28 +0,0 @@
#include "script_component.hpp"
/*
* Author: esteldunedain
* Opens or closes the gps on the map screen, showing coordinates
*
* Arguments:
* 0: Open GPS? <BOOL>
*
* Return Value:
* None
*
* Example:
* [true] call ACE_maptools_fnc_openMapGps
*
* Public: No
*/
params ["_shouldOpenGps"];
private _isOpen = !(isNull (uiNamespace getVariable [QGVAR(ui_mapGpsDisplay), displayNull]));
if (_shouldOpenGps && {"ItemGPS" in assignedItems ACE_player} && {!_isOpen}) then {
("RscACE_MapGps" call BIS_fnc_rscLayer) cutRsc ["RscACE_MapGps","PLAIN"];
[FUNC(openMapGpsUpdate), 0.5, []] call CBA_fnc_addPerFrameHandler; //update bearing/altitude every 0.5 sec (ticktime)
} else {
("RscACE_MapGps" call BIS_fnc_rscLayer) cutText ["","PLAIN"];
};

View File

@ -1,30 +1,34 @@
#include "script_component.hpp"
/*
* Author: esteldunedain
* update gps display
* Author: esteldunedain, PabstMirror
* update gps display, called from main map's draw
*
* Arguments:
* Something
* 0: Map ctrl <CONTROL>
*
* Return Value:
* None
*
* Example:
* call ACE_maptools_fnc_openMapGpsUpdate
* [findDisplay 12 displayCtrl 51] call ACE_maptools_fnc_openMapGpsUpdate;
*
* Public: No
*/
if ((!("ItemGPS" in assigneditems ACE_player)) || {isNull (uiNamespace getVariable [QGVAR(ui_mapGpsDisplay), displayNull])}) exitWith {
("RscACE_MapGps" call BIS_fnc_rscLayer) cutText ["","PLAIN"]; // Close GPS RSC
[(_this select 1)] call CBA_fnc_removePerFrameHandler; // Remove frameHandler
};
disableSerialization;
params ["_mapCtrl"];
private _mapDisplay = ctrlParent _mapCtrl;
private _mapGpsDisplay = uiNamespace getVariable [QGVAR(ui_mapGpsDisplay), displayNull];
private _ctrl = _mapGpsDisplay displayCtrl 913590;
if ((!GVAR(mapGpsShow)) || {!(call FUNC(canUseMapGPS))}) exitWith {
(_mapDisplay displayCtrl 913589) ctrlShow false;
};
(_mapDisplay displayCtrl 913589) ctrlShow true;
if (CBA_missionTime < GVAR(mapGpsNextUpdate)) exitWith {};
GVAR(mapGpsNextUpdate) = CBA_missionTime + 0.5;
private _ctrl = _mapDisplay displayCtrl 913590;
_ctrl ctrlSetText str (round (getDir ACE_player)); // Set Heading
_ctrl = _mapGpsDisplay displayCtrl 913591;
_ctrl = _mapDisplay displayCtrl 913591;
_ctrl ctrlSetText str (round ((getPosASL ACE_player) select 2) + EGVAR(common,mapAltitude)); // Set Altitude
_ctrl = _mapGpsDisplay displayCtrl 913592;
_ctrl = _mapDisplay displayCtrl 913592;
_ctrl ctrlSetText mapGridPosition ACE_player; // Set grid cords

View File

@ -188,6 +188,7 @@
<Italian>Ruota Strumenti di Mappatura</Italian>
<Chinesesimp>选转地图工具的按键</Chinesesimp>
<Chinese>選轉地圖工具的按鍵</Chinese>
<Portuguese>Tecla para girar Ferramentas de Mapa</Portuguese>
</Key>
<Key ID="STR_ACE_MapTools_rotateModifierKey_description">
<English>Modifier key to allow rotating map tools</English>
@ -200,6 +201,7 @@
<Italian>Tasto modifica per consentire strumenti di mappatura rotanti</Italian>
<Chinesesimp>修改旋转地图工具的按键</Chinesesimp>
<Chinese>修改旋轉地圖工具的按鍵</Chinese>
<Portuguese>Tecla de Modificador para permitir girar as ferramentas de mapa</Portuguese>
</Key>
<Key ID="STR_ACE_MapTools_drawStraightLines_displayName">
<English>Draw straight lines with maptools</English>
@ -212,6 +214,7 @@
<Chinesesimp>使用地图工具来绘制直线</Chinesesimp>
<Chinese>使用地圖工具來繪製直線</Chinese>
<Russian>Прямые линии с инструментами карты</Russian>
<Portuguese>Desenhar linhas retas com as ferramentas de mapa</Portuguese>
</Key>
<Key ID="STR_ACE_MapTools_drawStraightLines_description">
<English>Draw on the edge of maptools to draw straight lines. Note: Must hover at midpoint to delete.</English>
@ -224,6 +227,7 @@
<Chinesesimp>使用地图工具的边缘来绘制直线。备注: 要删除直线时,请把滑鼠移动到该线条的中央即可删除该线。</Chinesesimp>
<Chinese>使用地圖工具的邊緣來繪製直線。備註: 要刪除直線時,請把滑鼠移動到該線條的中央即可刪除該線</Chinese>
<Russian>Рисуйте по краю инструмента карты, чтобы провести прямые линии. Примечание: при удалении линии размещайте курсор над ее серединой</Russian>
<Portuguese>Desenhe no canto da ferramenta de mapa para desenhar linhas retas. Observação: Sobreponha o meio com o mouse para deletar.</Portuguese>
</Key>
</Package>
</Project>

View File

@ -27,6 +27,7 @@
<Korean>맵마커</Korean>
<Polish>Znaczniki</Polish>
<Russian>Маркеры</Russian>
<Portuguese>Marcadores</Portuguese>
</Key>
<Key ID="STR_ACE_Markers_MoveRestriction">
<English>Allow moving markers for</English>
@ -38,6 +39,7 @@
<Italian>Permetti di spostare i marcatori a:</Italian>
<Polish>Zezwól na poruszanie znaczników dla</Polish>
<Russian>Разрешить перемещение маркеров для</Russian>
<Portuguese>Permitir que movam marcadores</Portuguese>
</Key>
<Key ID="STR_ACE_Markers_MoveRestriction_Description">
<English>Restricts which players are able to move markers while holding the Alt key.</English>
@ -49,6 +51,7 @@
<Italian>Limita quali giocatori possono spostare i marcatori mentre premono il tasto Alt.</Italian>
<Polish>Ogranicz którzy gracze mogą poruszać znacznikami podczas trzymania przycisku Alt.</Polish>
<Russian>Устанавливает ограничение на перемещения маркеров игроками при помощи клавиши Alt</Russian>
<Portuguese>Restringe quais jogadores podem mover os marcadores do mapa enquanto seguram a tecla ALT.</Portuguese>
</Key>
<Key ID="STR_ACE_Markers_MoveRestriction_Nobody">
<English>Nobody</English>
@ -60,6 +63,7 @@
<Italian>Nessuno</Italian>
<Polish>Nikt</Polish>
<Russian>Никого</Russian>
<Portuguese>Ninguém</Portuguese>
</Key>
<Key ID="STR_ACE_Markers_MoveRestriction_All">
<English>All players</English>
@ -71,6 +75,7 @@
<Korean>모든 플레이어</Korean>
<Polish>Wszyscy gracze</Polish>
<Russian>Всех игроков</Russian>
<Portuguese>Todos jogadores</Portuguese>
</Key>
<Key ID="STR_ACE_Markers_MoveRestriction_Admins">
<English>Admins</English>
@ -82,6 +87,7 @@
<Korean>관리자</Korean>
<Polish>Administratorzy</Polish>
<Russian>Админов</Russian>
<Portuguese>Admins</Portuguese>
</Key>
<Key ID="STR_ACE_Markers_MoveRestriction_GroupLeaders">
<English>Group leaders</English>
@ -93,6 +99,7 @@
<Korean>분대장</Korean>
<Polish>Przywódcy grup</Polish>
<Russian>Лидеров групп</Russian>
<Portuguese>Líderes de grupo</Portuguese>
</Key>
<Key ID="STR_ACE_Markers_MoveRestriction_GroupLeadersAndAdmins">
<English>Group leaders and Admins</English>
@ -104,6 +111,7 @@
<Korean>분대장과 관리자</Korean>
<Polish>Przywódcy grup i Administratorzy</Polish>
<Russian>Лидеров групп и Админов</Russian>
<Portuguese>Líderes de grupo e Admins</Portuguese>
</Key>
<Key ID="STR_ACE_Markers_MoveRestriction_Owner">
<English>Creator</English>
@ -111,6 +119,7 @@
<Japanese>設置者</Japanese>
<Polish>Twórca</Polish>
<Russian>Создателя</Russian>
<Portuguese>Criador</Portuguese>
</Key>
</Package>
</Project>

View File

@ -12,6 +12,7 @@
<Korean>AGM-65 Maverick L, 레이저 유도 대지 미사일</Korean>
<Polish>AGM-65 Maverick L, Kierowany laserowo pocisk powietrze-ziemia</Polish>
<Russian>AGM-65 Maverick L, ракета Воздух-Земля с лазерным наведением</Russian>
<Portuguese>AGM-65 Maverick L, Míssil Anti Chão Guiado a Laser</Portuguese>
</Key>
<Key ID="str_ace_maverick_l_mag_x1">
<English>AGM-65 Maverick L [ACE]</English>
@ -23,6 +24,7 @@
<Korean>AGM-65 Maverick L [ACE]</Korean>
<Polish>AGM-65 Maverick L [ACE]</Polish>
<Russian>AGM-65 Maverick L [ACE]</Russian>
<Portuguese>AGM-65 Maverick L [ACE]</Portuguese>
</Key>
<Key ID="str_ace_maverick_l_mag_x2">
<English>2x AGM-65 Maverick L [ACE]</English>
@ -34,6 +36,7 @@
<Korean>2x AGM-65 Maverick L [ACE]</Korean>
<Polish>2x AGM-65 Maverick L [ACE]</Polish>
<Russian>2x AGM-65 Maverick L [ACE]</Russian>
<Portuguese>2x AGM-65 Maverick L [ACE]</Portuguese>
</Key>
<Key ID="str_ace_maverick_l_mag_x3">
<English>3x AGM-65 Maverick L [ACE]</English>
@ -45,6 +48,7 @@
<Korean>3x AGM-65 Maverick L [ACE]</Korean>
<Polish>3x AGM-65 Maverick L [ACE]</Polish>
<Russian>3x AGM-65 Maverick L [ACE]</Russian>
<Portuguese>3x AGM-65 Maverick L [ACE]</Portuguese>
</Key>
<Key ID="str_ace_maverick_l_mag_short">
<English>Laser Guided</English>
@ -56,6 +60,7 @@
<Korean>레이저 유도</Korean>
<Polish>Kierowany laserowo</Polish>
<Russian>С лазерным наведением</Russian>
<Portuguese>Guiado a laser</Portuguese>
</Key>
<Key ID="str_ace_maverick_kh25ml_mag_descr">
<English>Kh-25ML, Laser Guided Air-to-Ground-Missile</English>
@ -67,6 +72,7 @@
<Italian>Kh-25ML, a Guida Laser Missile Aria-Terra</Italian>
<Polish>Kh-25ML, Kierowany laserowo pocisk powietrze-ziemia</Polish>
<Russian>Х-25МЛ, ракета Воздух-Земля с лазерным наведением</Russian>
<Portuguese>Kh-25ML, Míssil Ar para Chão Guiado a Laser</Portuguese>
</Key>
<Key ID="str_ace_maverick_kh25ml_mag_x1">
<English>1x Kh-25ML [ACE]</English>
@ -78,6 +84,7 @@
<Japanese>1x Kh-25ML [ACE]</Japanese>
<Italian>1x Kh-25ML [ACE]</Italian>
<Polish>1x Kh-25ML [ACE]</Polish>
<Portuguese>1x Kh-25ML [ACE]</Portuguese>
</Key>
</Container>
<Container name="weapons">
@ -91,6 +98,7 @@
<Korean>AGM-65 Maverick L</Korean>
<Polish>AGM-65 Maverick L</Polish>
<Russian>AGM-65 Maverick L</Russian>
<Portuguese>AGM-65 Maverick L</Portuguese>
</Key>
<Key ID="str_ace_maverick_kh25ml">
<English>Kh-25ML</English>
@ -102,6 +110,7 @@
<Japanese>Kh-25ML</Japanese>
<Italian>Kh-25ML</Italian>
<Polish>Kh-25ML</Polish>
<Portuguese>Kh-25ML</Portuguese>
</Key>
</Container>
</Package>

View File

@ -1,5 +1,8 @@
#include "\z\ace\addons\medical\script_component.hpp"
if (missionNamespace getVariable [QGVAR(dev_watchVariableRunning), false]) exitWith {};
GVAR(dev_watchVariableRunning) = true;
["medical", {
// Hide when patient display is up because they might overlap
@ -45,7 +48,7 @@
private _heartRate = GET_HEART_RATE(_unit);
GET_BLOOD_PRESSURE(_unit) params ["_bpLow", "_bpHigh"];
_return pushBack format ["CardiacOutput %1", _cardiacOutput toFixed 5];
_return pushBack format [" - [HR: %1] [BP: %2 / %3]", _heartRate toFixed 1, _bpLow toFixed 1, _bpHigh toFixed 1];
_return pushBack format [" - [HR: %1] [BP: %2 / %3]", _heartRate toFixed 1, _bpHigh toFixed 1, _bpLow toFixed 1];
// Pain:
private _pain = GET_PAIN(_unit);
@ -88,7 +91,7 @@
// Wounds:
_return pushBack "------- Wounds: -------";
_return pushBack "------- Open Wounds: -------";
private _wounds = GET_OPEN_WOUNDS(_unit);
{
_x params ["_xClassID", "_xBodyPartN", "_xAmountOf", "_xBleeding", "_xDamage"];
@ -124,17 +127,11 @@
private _hrTargetAdjustment = 0;
private _painSupressAdjustment = 0;
private _peripheralResistanceAdjustment = 0;
private _medicationCounts = [];
private _uniqueMedications = [];
private _rawMedications = (_unit getVariable [VAR_MEDICATIONS, []]) apply {
_x params ["_medication", "_timeAdded", "_timeTillMaxEffect", "_maxTimeInSystem", "_hrAdjust", "_painAdjust", "_flowAdjust"];
_uniqueMedications pushBackUnique _medication;
private _timeInSystem = CBA_missionTime - _timeAdded;
private _index = _medicationCounts find _medication;
if (_index < 0) then {
_index = _medicationCounts pushBack _medication;
_medicationCounts pushBack 0
};
_medicationCounts set [(_index + 1), (_medicationCounts select (_index + 1)) + linearConversion [_timeTillMaxEffect, _maxTimeInSystem, _timeInSystem, 1, 0, true]];
private _effectRatio = (((_timeInSystem / _timeTillMaxEffect) ^ 2) min 1) * (_maxTimeInSystem - _timeInSystem) / _maxTimeInSystem;
_hrTargetAdjustment = _hrTargetAdjustment + _hrAdjust * _effectRatio;
_painSupressAdjustment = _painSupressAdjustment + _painAdjust * _effectRatio;
@ -142,9 +139,11 @@
format ["%1 [%2 / %3][%4][%5,%6,%7]",_medication,_timeInSystem toFixed 0,_maxTimeInSystem toFixed 0, _effectRatio toFixed 2, _hrAdjust toFixed 1, _painAdjust toFixed 2, _flowAdjust toFixed 1];
};
_return pushBack format ["Adjusts: [HR %1][PS %2][PR %3]", _hrTargetAdjustment toFixed 2, _painSupressAdjustment toFixed 2, _peripheralResistanceAdjustment toFixed 2];
for "_i" from 0 to (count _medicationCounts) - 1 step 2 do {
_return pushBack format ["-%1: %2", _medicationCounts select _i, _medicationCounts select _i + 1];
};
{
private _medicationCount = [_unit, _x, true] call EFUNC(medical_status,getMedicationCount);
private _medicationEffectiveness = [_unit, _x, false] call EFUNC(medical_status,getMedicationCount);
_return pushBack format ["-%1: C: %2 - E: %3", _x, _medicationCount toFixed 2, _medicationEffectiveness toFixed 2];
} forEach _uniqueMedications;
_return pushBack "------- Medications Raw: -------";
_return append _rawMedications;
@ -152,6 +151,8 @@
_return pushBack format ["ACE_setCustomAimCoef: %1", [missionNamespace, "ACE_setCustomAimCoef", "max"] call EFUNC(common,arithmeticGetResult)];
};
_return pushBack format ["%1 - %2",lifeState _unit, animationState _unit];
// Footer:
_return pushBack "</t>";

View File

@ -28,3 +28,12 @@
[0, 1, 0.05, 2],
true
] call CBA_settings_fnc_init;
[
QGVAR(spontaneousWakeUpEpinephrineBoost),
"SLIDER",
[LSTRING(spontaneousWakeUpEpinephrineBoost_DisplayName), LSTRING(spontaneousWakeUpEpinephrineBoost_Description)],
LSTRING(Category),
[1, 30, 1, 1],
true
] call CBA_settings_fnc_init;

View File

@ -23,6 +23,7 @@
<Japanese>気絶から覚醒する可能性</Japanese>
<Russian>Шанс очнуться при потере сознания</Russian>
<French>Chance de reprendre connaissance</French>
<Portuguese>Chance de recuperar consciência</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_SpontaneousWakeUpChance_Description">
<English>The probablity that a unit with stable vitals will wake up from unconsciousness (checked every 15 seconds).</English>
@ -30,54 +31,69 @@
<Japanese>安定状態にある人が覚醒する確率です。(15 秒毎に確認)</Japanese>
<Russian>Вероятность, что стабилизированный юнит очнется от потери сознания (Проверяется каждые 15 сек)</Russian>
<French>La probabilité pour qu'une unité en état stable puisse reprendre conscience (état vérifié toutes les 15 secondes).</French>
<Portuguese>A probabilidade que uma unidade com vitais estabilizados possa recuperar consciências (verificado a cada 15 segundos)</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_spontaneousWakeUpEpinephrineBoost_DisplayName">
<English>Epinephrine Increases Wake Up Chance</English>
</Key>
<Key ID="STR_ACE_Medical_spontaneousWakeUpEpinephrineBoost_Description">
<English>Increases how often spontaneous wake up checks happen when patient has Epinephrine in their system.</English>
</Key>
<Key ID="STR_ACE_Medical_Limping_DisplayName">
<English>Limping</English>
<Russian>Хромота</Russian>
<Japanese>跛行</Japanese>
<French>Boitement</French>
<Portuguese>Mancando</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_Limping_Description">
<English>Limp when unit has leg wounds...(todo)</English>
<Russian>Хромота, когда юнит имеет ранения ног...</Russian>
<Japanese>足を負傷時に引きずって歩くようにします・・・(TODO)</Japanese>
<French>Une unité boite si elle est blessée à la jambe... (TODO)</French>
<Portuguese>Mancar quando a unidade possuir ferimentos nas pernas... (TODO)</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_Limping_LimpOnOpenWounds">
<English>Limp on open wounds</English>
<Russian>Хромота при открытых ранах</Russian>
<Japanese>創傷開放時に跛行</Japanese>
<French>Boiter si plaies ouvertes</French>
<Portuguese>Mancar se possuir feridas abertas</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_Limping_LimpRequiresStitching">
<English>Limp on open or bandaged wounds</English>
<Russian>Хромота при открытых или забинтованых ранах</Russian>
<Japanese>負傷時は引きずって歩くようにします</Japanese>
<French>Boiter si plaies ouvertes ou pansées</French>
<Portuguese>Mancar se possuir feridas abertas ou atadas</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_Fractures_DisplayName">
<English>Fractures</English>
<Russian>Переломы</Russian>
<Japanese>骨折</Japanese>
<French>Fractures</French>
<Portuguese>Fraturas</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_Fractures_Description">
<English>Limp fractures... (todo)</English>
<Russian>Хромота при переломах...</Russian>
<Japanese>骨折時は引きずって歩くようにします・・・ (TODO)</Japanese>
<French>Une unité boite en cas de fracture... (TODO)</French>
<Portuguese>Mancar Fraturas (TODO)</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_Fractures_SplintHealsFully">
<English>Splints fully heal fractures</English>
<Russian>Шины полностью лечат перелом</Russian>
<Japanese>添え木で骨折完治</Japanese>
<French>Les attelles guérissent complètement les fractures</French>
<Portuguese>Tala cura fraturas completamente</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_Fractures_SplintHasEffects">
<English>Splints heal (but cannot sprint)</English>
<Russian>Шины вылечивают, но не дают бегать</Russian>
<Japanese>添え木で治療しますが、走れません</Japanese>
<French>Les attelles guérissent les fractures, mais empêchent de courir</French>
<Portuguese>Talas curam (mas não consegue correr)</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_remoteControlledAI_DisplayName">
<English>Remote Controlled AI</English>
@ -371,6 +387,7 @@
<Polish>Otwórz pokrywę</Polish>
<Russian>Открыть крышку</Russian>
<French>Ouvrir le couvercle</French>
<Portuguese>Abrir Tampa</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_closeLid">
<English>Close lid</English>
@ -383,6 +400,7 @@
<Polish>Zamknij pokrywę</Polish>
<Russian>Закрыть крышку</Russian>
<French>Fermer le couvercle</French>
<Portuguese>Fechar Tampa</Portuguese>
</Key>
</Package>
</Project>

View File

@ -7,6 +7,7 @@
<Japanese>AI 衛生兵</Japanese>
<Russian>ИИ Медик</Russian>
<French>Médecine IA</French>
<Portuguese>IA Médico</Portuguese>
</Key>
<Key ID="STR_ACE_medical_ai_enableFor_desc">
<English>AI will respond to injury and unconsciousness</English>
@ -14,6 +15,7 @@
<Japanese>AI が負傷者と気絶している人に対して行動するようになります。</Japanese>
<Russian>ИИ будет реагировать на травмы и потерю сознания</Russian>
<French>Les unités IA seront sensibles aux blessures, ainsi qu'à la perte de connaissance.</French>
<Portuguese>A IA irá responder a ferimentos e perdas de consciência</Portuguese>
</Key>
<Key ID="STR_ACE_medical_ai_enabledFor_OnlyServerAndHC">
<English>Only Server and HC</English>
@ -27,6 +29,7 @@
<Chinesesimp>只在伺服器或无头客户端</Chinesesimp>
<Chinese>只在伺服器或無頭客戶端</Chinese>
<Korean>서버와 헤드리스만</Korean>
<Portuguese>Apenas Servidor e HC</Portuguese>
</Key>
</Package>
</Project>

View File

@ -25,36 +25,42 @@
<Chinesesimp>开启血液滴落效果</Chinesesimp>
<Chinese>開啟血液滴落效果</Chinese>
<Russian>Разрешить капли крови</Russian>
<Portuguese>Permitir gotas de sangue</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_Blood_EnabledFor_Description">
<English>Enables the creation of blood drops when units are bleeding or take damage.</English>
<Japanese>ユニットが出血かダメージを受けた時に、血痕を残すようにします。</Japanese>
<French>Si une unité saigne, elle laissera des traces de sang derrière elle.</French>
<Russian>Разрешает создание капель крови при кровотечении или получении урона</Russian>
<Portuguese>Permitir a criação de gotas de sangue quando as unidades recebem ferimentos ou estão sangrando.</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_Blood_MaxBloodObjects_DisplayName">
<English>Max Blood Objects</English>
<Japanese>最大血痕数</Japanese>
<French>Quantité sang affiché</French>
<Russian>Макс. кол-во капель крови</Russian>
<Portuguese>Limite de objetos de sangue</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_Blood_MaxBloodObjects_Description">
<English>Sets the maximum number of blood drop objects which can be spawned, excessive amounts can cause FPS lag.</English>
<Japanese>生成される血痕オブジェクト数を設定できます。極端に増やすと FPS ラグを引き起こします。</Japanese>
<French>Définit le nombre maximal de traces de sangs pouvant être affichées.\nUne quantité excessive peut engendrer une baisse de FPS.</French>
<Russian>Задает макс. количество создаваемых объектов капель крови. Чрезмерное количество может вызвать задержку FPS</Russian>
<Portuguese>Define o limite máximo de objetos de gota de sangue que podem ser criados, quantidades excessivas podem causar lag de FPS.</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_Blood_BloodLifetime_DisplayName">
<English>Blood Lifetime</English>
<Japanese>血痕の寿命</Japanese>
<French>Durée d'affichage du sang</French>
<Russian>Время жизни капель крови</Russian>
<Portuguese>Duração do Sangue</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_Blood_BloodLifetime_Description">
<English>Controls the lifetime of blood drop objects.</English>
<Japanese>血痕オブジェクトの寿命を決定します。</Japanese>
<French>Définit la durée d'affichage des traces de sang</French>
<Russian>Управляет временем жизни объектов капель крови.</Russian>
<Portuguese>Controla o tempo de vida que um objeto de gota de sangue tem.</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_Blood_OnlyPlayers">
<English>Only Players</English>
@ -67,6 +73,7 @@
<Chinesesimp>只有玩家</Chinesesimp>
<Chinese>只有玩家</Chinese>
<Russian>Только игроки</Russian>
<Portuguese>Apenas Jogadores</Portuguese>
</Key>
</Package>
</Project>

View File

@ -18,6 +18,10 @@ class CfgPatches {
#include "ACE_Medical_Injuries.hpp"
#include "CfgEventHandlers.hpp"
/*
class ACE_Extensions {
extensions[] += {"ace_medical"};
class ace_medical {
// Not yet used
};
};
*/

View File

@ -40,10 +40,7 @@ private _extensionOutput = "ace_medical" callExtension format ["HandleDamageWoun
TRACE_1("",_extensionOutput);
// these are default values and modified by _extensionOutput
private _painToAdd = 0;
private _woundsCreated = [];
call compile _extensionOutput;
(parseSimpleArray _extensionOutput) params ["_woundsCreated", "_painToAdd"];
// todo: Make the pain and bleeding calculations part of the extension again
private _woundDamage = _damage / ((count _woundsCreated) max 1); // If the damage creates multiple wounds

View File

@ -6,24 +6,28 @@
<Japanese>プレイヤーのクリティカル ダメージしきい値</Japanese>
<French>Seuil de dégât critique du joueur</French>
<Russian>Порог критического урона игрока</Russian>
<Portuguese>Limite de Dano Crítico do Jogador</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_Damage_PlayerDamageThreshold_Description">
<English>Sets the amount of damage a player can receive before going unconscious.</English>
<Japanese>プレイヤーが気絶になる前に受けられるダメージ量を決定できます。</Japanese>
<French>Définit la quantité de dégâts qu'un joueur peut subir avant de perdre connaissance.</French>
<Russian>Устанавливает количество урона, которое может получить игрок, прежде чем потеряет сознание.</Russian>
<Portuguese>Define a quantidade de dano que um jogador pode receber antes de ficar inconsciente.</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_Damage_AIDamageThreshold_DisplayName">
<English>AI Critical Damage Threshold</English>
<Japanese>AI のクリティカル ダメージしきい値</Japanese>
<French>Seuil de dégât critique de l'IA</French>
<Russian>Порог критического урона AI</Russian>
<Portuguese>Limite de Dano Crítico da IA</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_Damage_AIDamageThreshold_Description">
<English>Sets the amount of damage an AI unit can receive before going unconscious.</English>
<Japanese>AI が気絶になる前に受けられるダメージ量を決定できます。</Japanese>
<French>Définit la quantité de dégâts qu'une unité IA peut subir avant de perdre connaissance.</French>
<Russian>Устанавливает количество урона, которое может получить ИИ, прежде чем потеряет сознание.</Russian>
<Portuguese>Define a quantidade de dano que uma IA pode receber antes de ficar inconsciente.</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_Damage_Abrasion">
<English>Scrape</English>

View File

@ -17,9 +17,10 @@
*/
params [["_unit", objNull, [objNull]], ["_isUnconscious", true, [false]]];
TRACE_2("setUnconsciousAnim",_unit,_isUnconscious);
if (!local _unit) exitWith {
ERROR("Unit not local or null");
ERROR_1("Unit %1 not local or null",_unit);
};
_unit setUnconscious _isUnconscious;
@ -27,21 +28,25 @@ _unit setUnconscious _isUnconscious;
if (_isUnconscious) then {
// eject from static weapon
if (vehicle _unit isKindOf "StaticWeapon") then {
TRACE_2("ejecting from static weapon",_unit,vehicle _unit);
[_unit] call EFUNC(common,unloadPerson);
};
// set animation inside vehicles
if (vehicle _unit != _unit) then {
private _unconAnim = _unit call EFUNC(common,getDeathAnim);
TRACE_2("inVehicle - playing death anim",_unit,_unconAnim);
[_unit, _unconAnim] call EFUNC(common,doAnimation);
};
} else {
// reset animation inside vehicles
if (vehicle _unit != _unit) then {
private _awakeAnim = _unit call EFUNC(common,getAwakeAnim);
TRACE_2("inVehicle - playing awake anim",_unit,_awakeAnim);
[_unit, _awakeAnim, 2] call EFUNC(common,doAnimation);
} else {
// and on foot
TRACE_1("onfoot - playing standard anim",_unit);
[_unit, "AmovPpneMstpSnonWnonDnon"] call EFUNC(common,doAnimation);
if (currentWeapon _unit == secondaryWeapon _unit && {currentWeapon _unit != ""}) then {
@ -50,9 +55,12 @@ if (_isUnconscious) then {
[{
params ["_unit"];
if (animationState _unit == "unconscious" && {lifeState _unit != "INCAPACITATED"}) then {
TRACE_3("after delay",_unit,animationState _unit,lifeState _unit);
if (!alive _unit) exitWith {};
// Fix unit being in locked animation with switchMove (If unit was unloaded from a vehicle, they may be in deadstate instead of unconscious)
if (((animationState _unit == "unconscious") || {animationState _unit == "deadstate"}) && {lifeState _unit != "INCAPACITATED"}) then {
[_unit, "AmovPpneMstpSnonWnonDnon", 2] call EFUNC(common,doAnimation);
TRACE_1("forcing SwitchMove",animationState _unit);
};
}, _unit, 0.5] call CBA_fnc_waitAndExecute;
};

View File

@ -94,6 +94,9 @@
#define DEFAULT_BANDAGE_REOPENING_MIN_DELAY 120
#define DEFAULT_BANDAGE_REOPENING_MAX_DELAY 200
// Time it takes to stitch one wound
#define WOUND_STITCH_TIME 5
#define DEFAULT_TOURNIQUET_VALUES [0,0,0,0,0,0]
#define DEFAULT_FRACTURE_VALUES [0,0,0,0,0,0]

View File

@ -7,6 +7,7 @@
<Japanese>フィードバック</Japanese>
<Russian>Реакция на ранения</Russian>
<French>Réaction aux blessures</French>
<Portuguese>Reação a Lesões</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_Feedback_PainEffectType_DisplayName">
<English>Pain Effect Type</English>
@ -27,6 +28,7 @@
<Japanese>痛みの効果の種類を選択できます。</Japanese>
<French>Permet de choisir quel effet provoque la douleur.</French>
<Russian>Выбирает тип визуализации болевого эффекта.</Russian>
<Portuguese>Selecione o tipo de efeito de dor.</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_Feedback_PainEffectType_WhiteFlashing">
<English>White Flashing</English>
@ -34,6 +36,7 @@
<Japanese>白く点滅</Japanese>
<Russian>Белые вспышки</Russian>
<French>Flash blancs</French>
<Portuguese>Flashes Brancos</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_Feedback_PainEffectType_PulsingBlur">
<English>Pulsing Blur</English>
@ -41,6 +44,7 @@
<Japanese>ボケの強弱</Japanese>
<Russian>Пульсирующее размытие</Russian>
<French>Pulsations floues</French>
<Portuguese>Borrão Pulsante</Portuguese>
</Key>
<Container name="Settings">
<Key ID="STR_ACE_Medical_feedback_enableScreams_DisplayName">

View File

@ -72,7 +72,7 @@ switch (GET_FRACTURES(_target) select _selectionN) do {
};
// Indicate the amount of pain the unit is in
if ([_target] call EFUNC(common,isAwake)) then {
if (_target call EFUNC(common,isAwake)) then {
private _pain = GET_PAIN_PERCEIVED(_target);
if (_pain > 0) then {
private _painText = switch (true) do {
@ -113,7 +113,7 @@ private _fnc_getWoundDescription = {
if (_amountOf >= 1) then {
format ["%1x %2", ceil _amountOf, _woundName];
} else {
format ["Partial %1", _woundName];
format [localize LSTRING(PartialX), _woundName];
};
};
@ -156,7 +156,8 @@ lbClear _ctrl;
{
_x params ["_text", "_color"];
private _index = _ctrl lbAdd _text;
_ctrl lbSetColor [_index, _color];
_ctrl lbSetSelectColor [_index, _color];
_ctrl lbSetColor [_ctrl lbAdd _text, _color];
} forEach _entries;
_ctrl lbSetCurSel -1;

View File

@ -6,6 +6,7 @@
<Japanese>GUI</Japanese>
<French>GUI</French>
<Russian>Медицинский интерфейс</Russian>
<Portuguese>GUI</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_GUI_EnableActions_DisplayName">
<English>Enable Medical Actions</English>
@ -13,6 +14,7 @@
<Japanese>医療行為を有効化</Japanese>
<Russian>Разрешить Медицинские действия</Russian>
<French>Activer actions médicales</French>
<Portuguese>Ativar Ações Médicas</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_GUI_EnableActions_Description">
<English>Enables medical actions for the Interaction Menu and selects their style.</English>
@ -20,6 +22,7 @@
<Japanese>インタラクション メニューから選択した表示方式で医療行為をできるようになります。</Japanese>
<Russian>Включает медицинские действия для меню взаимодействия и выбирает их стиль.</Russian>
<French>Permet d'afficher les actions médicales dans le menu d'interaction, ainsi que de choisir le style visuel.</French>
<Portuguese>Ativa as ações médicas para o menu de interação e seleciona seus estilos.</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_GUI_Selections3D">
<English>Selections (3D)</English>
@ -59,6 +62,7 @@
<Japanese>自分への医療行為を有効化</Japanese>
<Russian>Разрешить Медицинские действия на себе</Russian>
<French>Activer actions médicales sur soi-même</French>
<Portuguese>Ativar ações médicas em si mesmo</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_GUI_EnableSelfActions_Description">
<English>Enables medical actions for the Self Interaction Menu.</English>
@ -66,6 +70,7 @@
<Japanese>セルフ インタラクション メニューで医療行為をできるようになります。</Japanese>
<Russian>Включает медицинские действия для меню взаимодействия с собой.</Russian>
<French>Active les actions médicales du menu d'interaction personnel.</French>
<Portuguese>Ativa as ações médicas do menu de interação pessoal.</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_GUI_EnableMedicalMenu_DisplayName">
<English>Enable Medical Menu</English>
@ -73,6 +78,7 @@
<Japanese>医療メニューを有効化</Japanese>
<Russian>Разрешить Медицинское меню</Russian>
<French>Activer menu médical</French>
<Portuguese>Ativar Menu Médico</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_GUI_EnableMedicalMenu_Description">
<English>Enables the use of the Medical Menu through the keybind or interaction menu.</English>
@ -80,6 +86,7 @@
<Japanese>割り当てられたキーかインタラクション メニューから医療メニューを使えるようになります。</Japanese>
<Russian>Позволяет использовать Медицинское меню через связку клавиш или меню взаимодействия.</Russian>
<French>Permet l'utilisation du menu médical via une touche, ou via le menu d'interaction.</French>
<Portuguese>Ativa o uso do Menu Médico atráves da Tecla ou Menu de Interação.</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_GUI_OpenAfterTreatment_DisplayName">
<English>Reopen Medical Menu</English>
@ -87,6 +94,7 @@
<Japanese>医療メニューの再使用</Japanese>
<Russian>Открывать меню после лечения</Russian>
<French>Rouvrir le menu médical</French>
<Portuguese>Reabrir Menu Médico</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_GUI_OpenAfterTreatment_Description">
<English>Reopen the Medical Menu after successful treatment.</English>
@ -94,6 +102,7 @@
<Japanese>治療が成功した後に、再度医療メニューを開きます。</Japanese>
<Russian>Открывает Медицинское меню после успешного лечения</Russian>
<French>Réouvre le menu médical suite à l'application d'un soin.</French>
<Portuguese>Reabrir Menu Médico após um tratamento com sucesso</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_GUI_MaxDistance_DisplayName">
<English>Maximum Distance</English>
@ -101,6 +110,7 @@
<Japanese>最大距離</Japanese>
<Russian>Макс. дистанция</Russian>
<French>Distance maximale</French>
<Portuguese>Distância Máxima</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_GUI_MaxDistance_Description">
<English>Maximum distance from which the Medical Menu can be opened.</English>
@ -108,6 +118,7 @@
<Japanese>治療メニューを開いたままにできる最大距離を決定します。</Japanese>
<Russian>Максимальное расстояние, с которого можно открыть Медицинское меню.</Russian>
<French>Définit la distance (en mètres) à partir de laquelle il n'est plus possible d'activer le menu médical pour traiter un patient.</French>
<Portuguese>A Distância máxima do paciente para que o Menu Médico possa ser aberto.</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_GUI_Medical">
<English>Medical</English>
@ -129,7 +140,7 @@
<English>Medical Menu</English>
<German>Sanitätsmenü</German>
<Polish>Menu medyczne</Polish>
<Portuguese>Menu médico</Portuguese>
<Portuguese>Menu Médico</Portuguese>
<Russian>Медицинское меню</Russian>
<Spanish>Menú médico</Spanish>
<Czech>Zdravotnikcá nabídka</Czech>
@ -823,12 +834,14 @@
<Russian>Перелом</Russian>
<Japanese>骨折している</Japanese>
<French>Fracturé</French>
<Portuguese>Fraturado</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_GUI_Status_SplintApplied">
<English>Splint Applied</English>
<Russian>Наложена шина</Russian>
<Japanese>添え木が当てている</Japanese>
<French>Attelle appliquée</French>
<Portuguese>Tala Aplicada</Portuguese>
</Key>
<!--
Strings above match Blood2 but seem to differ in some languages, determine which is best to use
@ -839,6 +852,7 @@
<Japanese>いくらか失血している</Japanese>
<Russian>Небольшая кровопотеря</Russian>
<French>A perdu un peu de sang</French>
<Portuguese>Perdeu um pouco de Sangue</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_GUI_Lost_Blood2">
<English>Lost a lot of blood</English>
@ -862,6 +876,7 @@
<Japanese>かなり酷く大量失血している</Japanese>
<Russian>Огромная кровопотеря</Russian>
<French>A perdu une grande quantité de sang</French>
<Portuguese>Perdeu uma quantidade grande de sangue</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_GUI_Lost_Blood4">
<English>Lost a fatal amount of blood</English>
@ -869,6 +884,7 @@
<Japanese>致命的な程失血している</Japanese>
<Russian>Фатальная кровопотеря</Russian>
<French>Exsanguination</French>
<Portuguese>Perdeu uma quantidade fatal de sangue</Portuguese>
</Key>
<Key ID="STR_ACE_Medical_GUI_STATUS_TOURNIQUET_APPLIED">
<English>Tourniquet [CAT]</English>
@ -916,5 +932,8 @@
<Chinesesimp>检伤分类卡</Chinesesimp>
<Chinese>檢傷分類卡</Chinese>
</Key>
<Key ID="STR_ACE_Medical_GUI_PartialX">
<English>Partial %1</English>
</Key>
</Package>
</Project>

View File

@ -10,12 +10,6 @@ class Extended_PreInit_EventHandlers {
};
};
class Extended_PostInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_postInit));
};
};
class Extended_Respawn_EventHandlers {
class CAManBase {
class ADDON {

View File

@ -3,7 +3,6 @@
class ACE_Medical_StateMachine {
list = QUOTE(call EFUNC(common,getLocalUnits));
skipNull = 1;
class Default {
onState = QFUNC(handleStateDefault);
class Injury {
@ -44,7 +43,7 @@ class ACE_Medical_StateMachine {
};
class Unconscious {
onState = QFUNC(handleStateUnconscious);
onStateEntered = QUOTE([ARR_2(_this,(true))] call EFUNC(medical_status,setUnconscious));
onStateEntered = QUOTE([ARR_2(_this,true)] call EFUNC(medical_status,setUnconscious));
class DeathAI {
targetState = "Dead";
condition = QUOTE(!GVAR(AIUnconsciousness) && {!isPlayer _this});
@ -53,7 +52,7 @@ class ACE_Medical_StateMachine {
targetState = "Injured";
condition = QEFUNC(medical_status,hasStableVitals);
events[] = {QEGVAR(medical,WakeUp)};
onTransition = QUOTE([ARR_2(_this,(false))] call EFUNC(medical_status,setUnconscious));
onTransition = QUOTE([ARR_2(_this,false)] call EFUNC(medical_status,setUnconscious));
};
class FatalTransitions {
targetState = "CardiacArrest";
@ -65,24 +64,18 @@ class ACE_Medical_StateMachine {
};
};
class FatalInjury {
// Transition state for handling instant death
// Transition state for handling instant death from fatal injuries
// This state raises the next transition in the same frame
onStateEntered = QFUNC(enteredStateFatalInjury);
class DeathAI {
events[] = {QEGVAR(medical,FatalInjuryInstantTransition)};
targetState = "Dead";
condition = QUOTE(!isPlayer _this && {GVAR(fatalInjuryConditionAI)});
};
class SecondChance {
events[] = {QEGVAR(medical,FatalInjuryInstantTransition)};
targetState = "CardiacArrest";
condition = QUOTE(GVAR(fatalInjuryCondition) > 0);
condition = QFUNC(conditionSecondChance);
onTransition = QFUNC(transitionSecondChance);
};
class Death {
events[] = {QEGVAR(medical,FatalInjuryInstantTransition)};
targetState = "Dead";
condition = "true";
};
};
class CardiacArrest {
@ -90,8 +83,10 @@ class ACE_Medical_StateMachine {
onStateEntered = QFUNC(enteredStateCardiacArrest);
onStateLeaving = QFUNC(leftStateCardiacArrest);
class DeathAI {
// If an AI unit reanimates, they will immediately die upon entering unconsciousness if AI Unconsciousness is disabled
// As a result, we immediately kill the AI unit since cardiac arrest is effectively useless for it
targetState = "Dead";
condition = QUOTE(!isPlayer _this && {GVAR(fatalInjuryConditionAI)});
condition = QUOTE(!GVAR(AIUnconsciousness) && {!isPlayer _this});
};
class Timeout {
targetState = "Dead";

View File

@ -1,5 +1,6 @@
PREP(conditionCardiacArrestTimer);
PREP(conditionExecutionDeath);
PREP(conditionSecondChance);
PREP(enteredStateCardiacArrest);
PREP(enteredStateDeath);
PREP(enteredStateFatalInjury);
@ -9,6 +10,5 @@ PREP(handleStateInjured);
PREP(handleStateUnconscious);
PREP(leftStateCardiacArrest);
PREP(localityChangedEH);
PREP(localityTransfer);
PREP(resetStateDefault);
PREP(transitionSecondChance);

View File

@ -1,3 +0,0 @@
#include "script_component.hpp"
[QGVAR(localityTransfer), LINKFUNC(localityTransfer)] call CBA_fnc_addEventHandler;

View File

@ -1,10 +1,10 @@
#include "script_component.hpp"
/*
* Author: BaerMitUmlaut
* Condition for an execution caused death.
* Condition for an execution caused death (fatal injury received in cardiac arrest).
*
* Arguments:
* 0: The Unit <OBJECT>
* 0: Unit <OBJECT>
*
* Return Value:
* None
@ -17,4 +17,9 @@
params ["_unit"];
(GVAR(fatalInjuryCondition) < 2) && {!(_unit getVariable [QEGVAR(medical,deathBlocked), false])}
(if (isPlayer _unit) then {
GVAR(fatalInjuriesPlayer) != FATAL_INJURIES_NEVER
} else {
GVAR(fatalInjuriesAI) != FATAL_INJURIES_NEVER
})
&& {!(_unit getVariable [QEGVAR(medical,deathBlocked), false])}

View File

@ -0,0 +1,24 @@
#include "script_component.hpp"
/*
* Author: mharis001
* Condition for going into cardiac arrest upon receiving a fatal injury.
*
* Arguments:
* 0: Unit <OBJECT>
*
* Return Value:
* None
*
* Example:
* [player] call ace_medical_statemachine_fnc_conditionSecondChance
*
* Public: No
*/
params ["_unit"];
if (isPlayer _unit) then {
GVAR(fatalInjuriesPlayer) != FATAL_INJURIES_ALWAYS
} else {
GVAR(fatalInjuriesAI) != FATAL_INJURIES_ALWAYS
}

View File

@ -16,10 +16,12 @@
*/
params ["_unit"];
if (isNull _unit) exitWith {};
// TODO: Probably also needs additional logic to deal with edge cases
//IGNORE_PRIVATE_WARNING ["_thisOrigin", "_thisTransition"]; // vars provided by CBA_statemachine
TRACE_3("enteredStateDeath",_this,_thisOrigin,_thisTransition);
// Send a local event before death
[QEGVAR(medical,death), [_unit]] call CBA_fnc_localEvent;
private _causeOfDeath = format ["%1:%2", _thisOrigin, _thisTransition];
[_unit] call EFUNC(medical_status,setDead);
// could delay a frame here to fix the double killed EH, but we lose it being a "native" kill (scoreboard / rating)
[_unit, _causeOfDeath] call EFUNC(medical_status,setDead);

View File

@ -39,7 +39,13 @@ if (EGVAR(medical,spontaneousWakeUpChance) > 0) then {
_unit setVariable [QEGVAR(medical,lastWakeUpCheck), CBA_missionTime];
};
if (CBA_missionTime - _lastWakeUpCheck > SPONTANEOUS_WAKE_UP_INTERVAL) then {
private _wakeUpCheckInterval = SPONTANEOUS_WAKE_UP_INTERVAL;
if (EGVAR(medical,spontaneousWakeUpEpinephrineBoost) > 1) then {
private _epiEffectiveness = [_unit, "Epinephrine", false] call EFUNC(medical_status,getMedicationCount);
_wakeUpCheckInterval = _wakeUpCheckInterval * linearConversion [0, 1, _epiEffectiveness, 1, 1 / EGVAR(medical,spontaneousWakeUpEpinephrineBoost), true];
TRACE_2("epiBoost",_epiEffectiveness,_wakeUpCheckInterval);
};
if (CBA_missionTime - _lastWakeUpCheck > _wakeUpCheckInterval) then {
TRACE_2("Checking for wake up",_unit,EGVAR(medical,spontaneousWakeUpChance));
_unit setVariable [QEGVAR(medical,lastWakeUpCheck), CBA_missionTime];

View File

@ -1,7 +1,8 @@
#include "script_component.hpp"
/*
* Author: PabstMirror
* Handles locality switch.
* Handles locality switch. Will also be called at unit init.
* Because state machine state is local only, when a unit transfers locality we need to manually transition to it's current state
*
* Arguments:
* 0: Unit <OBJECT>
@ -19,15 +20,50 @@
params ["_unit", "_isLocal"];
TRACE_2("localityChangedEH",_unit,_isLocal);
if (!alive _unit) exitWith {TRACE_1("dead", _this)};
if (!_isLocal) then {
// If locality changed, broadcast the last medical state
_unit setVariable [VAR_HEART_RATE, GET_HEART_RATE(_unit), true];
_unit setVariable [VAR_BLOOD_PRESS, _unit getVariable [VAR_BLOOD_PRESS, [80, 120]], true];
_unit setVariable [VAR_BLOOD_VOL, GET_BLOOD_VOLUME(_unit), true];
if (!alive _unit) exitWith {};
if (_isLocal) then {
private _currentState = [_unit, EGVAR(medical,STATE_MACHINE)] call CBA_statemachine_fnc_getCurrentState;
TRACE_2("sending current state",_unit,_currentState);
[QGVAR(localityTransfer), [_unit, _currentState], _unit] call CBA_fnc_targetEvent;
TRACE_1("local",_currentState);
switch (true) do {
case (IN_CRDC_ARRST(_unit)): {
if (_currentState == "CardiacArrest") exitWith {};
_unit setVariable [VAR_CRDC_ARRST, false]; // force reset vars so setCardiacArrest can run (enteredStateCardiacArrest will also be called)
_unit setVariable [VAR_UNCON, false];
TRACE_1("manually changing state to CardiacArrest",_currentState);
[_unit, EGVAR(medical,STATE_MACHINE), _currentState, "CardiacArrest", {}, "LocalityChange"] call CBA_statemachine_fnc_manualTransition;
};
case (IS_UNCONSCIOUS(_unit)): {
if (_currentState == "Unconscious") exitWith {};
_unit setVariable [VAR_UNCON, false]; // force reset var so ace_medical_status_fnc_setUnconscious can run
TRACE_1("manually changing state to Unconscious",_currentState);
[_unit, EGVAR(medical,STATE_MACHINE), _currentState, "Unconscious", {}, "LocalityChange"] call CBA_statemachine_fnc_manualTransition;
};
case (IS_BLEEDING(_unit) || {IS_IN_PAIN(_unit)}): {
if (_currentState == "Injured") exitWith {};
TRACE_1("manually changing state to Injured",_currentState);
[_unit, EGVAR(medical,STATE_MACHINE), _currentState, "Injured", {}, "LocalityChange"] call CBA_statemachine_fnc_manualTransition;
};
default {
// If locality transfers back and forth, we could be in an old state and should transfer back to default
if (_currentState == "Default") exitWith {};
TRACE_1("manually changing state to Default",_currentState);
[_unit, EGVAR(medical,STATE_MACHINE), _currentState, "Default", {}, "LocalityChange"] call CBA_statemachine_fnc_manualTransition;
};
};
} else {
/*
// Not sure if this is even needed, idea is that on locality transfer we broadcast more up to date info
private _lastTimeUpdated = _unit getVariable [QEGVAR(medical_vitals,lastTimeUpdated), 1e99];
private _deltaT = CBA_missionTime - _lastTimeUpdated;
TRACE_1("not local",_deltaT);
if (_deltaT < 5) then {
// If locality changed and we have recently updated vitals, broadcast globally now
_unit setVariable [VAR_HEART_RATE, GET_HEART_RATE(_unit), true];
_unit setVariable [VAR_BLOOD_PRESS, _unit getVariable [VAR_BLOOD_PRESS, [80, 120]], true];
_unit setVariable [VAR_BLOOD_VOL, GET_BLOOD_VOLUME(_unit), true];
};
*/
};

View File

@ -1,26 +0,0 @@
#include "script_component.hpp"
/*
* Author: PabstMirror
* Handles locality switch.
*
* Arguments:
* 0: Unit <OBJECT>
* 1: State <STRING>
*
* Return Value:
* None
*
* Example:
* [player, "Injured"] call ace_medical_statemachine_fnc_localityTransfer
*
* Public: No
*/
params ["_unit", "_currentState"];
TRACE_2("localityTransfer",_unit,_currentState);
private _oldState = [_unit, EGVAR(medical,STATE_MACHINE)] call CBA_statemachine_fnc_getCurrentState;
if (_oldState != _currentState) then {
TRACE_2("changing state",_oldState,_currentState);
[_unit, EGVAR(medical,STATE_MACHINE), _oldState, _currentState, {}, "LocalityChange"] call CBA_statemachine_fnc_manualTransition;
};

View File

@ -1,18 +1,26 @@
[
QGVAR(fatalInjuryCondition),
QGVAR(fatalInjuriesPlayer),
"LIST",
[LSTRING(FatalInjuryCondition_DisplayName), LSTRING(FatalInjuryCondition_Description)],
[LSTRING(FatalInjuriesPlayer_DisplayName), LSTRING(FatalInjuriesPlayer_Description)],
[ELSTRING(medical,Category), LSTRING(SubCategory)],
[[0, 1, 2], [ELSTRING(common,Always), LSTRING(InCardiacArrest), ELSTRING(common,Never)], 0],
[
[FATAL_INJURIES_ALWAYS, FATAL_INJURIES_CRDC_ARRST, FATAL_INJURIES_NEVER],
[ELSTRING(common,Always), LSTRING(InCardiacArrest), ELSTRING(common,Never)],
0
],
true
] call CBA_settings_fnc_init;
[
QGVAR(fatalInjuryConditionAI),
"CHECKBOX",
[LSTRING(FatalInjuryConditionAI_DisplayName), LSTRING(FatalInjuryConditionAI_Description)],
QGVAR(fatalInjuriesAI),
"LIST",
[LSTRING(FatalInjuriesAI_DisplayName), LSTRING(FatalInjuriesAI_Description)],
[ELSTRING(medical,Category), LSTRING(SubCategory)],
true,
[
[FATAL_INJURIES_ALWAYS, FATAL_INJURIES_CRDC_ARRST, FATAL_INJURIES_NEVER],
[ELSTRING(common,Always), LSTRING(InCardiacArrest), ELSTRING(common,Never)],
0
],
true
] call CBA_settings_fnc_init;

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