Merge branch 'master' of https://github.com/KoffeinFlummi/ACE3 into rallypointfix

This commit is contained in:
commy2 2015-04-15 00:06:12 +02:00
commit 7c5a6538a9
129 changed files with 3790 additions and 3657 deletions

View File

@ -76,4 +76,4 @@ ruPaladin <happyworm24@rambler.ru>
BlackPixxel
Asgar Serran <piechottaf@web.de>
Kavinsky <nmunozfernandez@gmail.com>
BlackPixxel

View File

@ -1,11 +0,0 @@
#define GRAVITY 9.80665
#define ABSOLUTE_ZERO_IN_CELSIUS -273.15
#define KELVIN(t) (t - ABSOLUTE_ZERO_IN_CELSIUS)
#define CELSIUS(t) (t + ABSOLUTE_ZERO_IN_CELSIUS)
#define UNIVERSAL_GAS_CONSTANT 8.314
#define WATER_VAPOR_MOLAR_MASS 0.018016
#define DRY_AIR_MOLAR_MASS 0.028964
#define SPECIFIC_GAS_CONSTANT_DRY_AIR 287.058
#define STD_AIR_DENSITY_ICAO 1.22498
#define STD_AIR_DENSITY_ASM 1.20885
#define GET_TEMPERATURE_AT_HEIGHT(h) (EGVAR(weather,currentTemperature) - 0.0065 * (h))

View File

@ -15,7 +15,6 @@
* None
*/
#include "script_component.hpp"
#include "defines.h"
private ["_temperature", "_pressure", "_relativeHumidity"];
_temperature = _this select 0; // in C
@ -30,7 +29,7 @@ if (_relativeHumidity > 0) then {
_pSat = 6.1078 * 10 ^ ((7.5 * _temperature) / (_temperature + 237.3));
_vaporPressure = _relativeHumidity * _pSat;
_partialPressure = _pressure - _vaporPressure;
(_partialPressure * DRY_AIR_MOLAR_MASS + _vaporPressure * WATER_VAPOR_MOLAR_MASS) / (UNIVERSAL_GAS_CONSTANT * KELVIN(_temperature))
} else {
_pressure / (SPECIFIC_GAS_CONSTANT_DRY_AIR * KELVIN(_temperature))

View File

@ -16,7 +16,6 @@
* Public: No
*/
#include "script_component.hpp"
#include "defines.h"
private ["_ballisticCoefficient", "_temperature", "_pressure", "_relativeHumidity", "_atmosphereModel", "_airDensity"];
_ballisticCoefficient = _this select 0;

View File

@ -18,7 +18,6 @@
* Public: No
*/
#include "script_component.hpp"
#include "defines.h"
private ["_unit", "_weapon", "_mode", "_ammo", "_magazine", "_caliber", "_bullet", "_abort", "_index", "_opticsName", "_opticType", "_bulletTraceVisible", "_temperature", "_barometricPressure", "_atmosphereModel", "_bulletMass", "_bulletLength", "_bulletTranslation", "_airFriction", "_dragModel", "_velocityBoundaryData", "_muzzleVelocity", "_muzzleVelocityCoef", "_muzzleVelocityShift", "_bulletVelocity", "_bulletSpeed", "_bulletLength", "_bulletWeight", "_barrelTwist", "_twistDirection", "_stabilityFactor", "_transonicStabilityCoef", "_ACE_Elevation", "_ACE_Windage", "_ID"];
_unit = _this select 0;
@ -153,17 +152,17 @@ if (GVAR(AdvancedAirDragEnabled)) then {
#ifdef USE_ADVANCEDBALLISTICS_DLL
GVAR(currentbulletID) = (GVAR(currentbulletID) + 1) % 10000;
"ace_advanced_ballistics" callExtension format["new:%1:%2:%3:%4:%5:%6:%7:%8:%9:%10:%11:%12:%13:%14:%15:%16:%17:%18", GVAR(currentbulletID), _airFriction, _ballisticCoefficients, _velocityBoundaries, _atmosphereModel, _dragModel, _stabilityFactor, _twistDirection, _muzzleVelocity, _transonicStabilityCoef, getPosASL _bullet, EGVAR(weather,Latitude), EGVAR(weather,currentTemperature), EGVAR(weather,Altitude), EGVAR(weather,currentHumidity), overcast, floor(time), time - floor(time)];
[{
private ["_index", "_bullet", "_caliber", "_bulletTraceVisible", "_bulletVelocity", "_bulletPosition"];
EXPLODE_4_PVT(_this select 0,_bullet,_caliber,_bulletTraceVisible,_index);
if (!alive _bullet) exitWith {
[_this select 1] call cba_fnc_removePerFrameHandler;
};
_bulletVelocity = velocity _bullet;
_bulletPosition = getPosASL _bullet;

View File

@ -11,4 +11,16 @@
#define DEBUG_SETTINGS DEBUG_SETTINGS_ADVANCEDBALLISTICS
#endif
#include "\z\ace\addons\main\script_macros.hpp"
#include "\z\ace\addons\main\script_macros.hpp"
#define GRAVITY 9.80665
#define ABSOLUTE_ZERO_IN_CELSIUS -273.15
#define KELVIN(t) (t - ABSOLUTE_ZERO_IN_CELSIUS)
#define CELSIUS(t) (t + ABSOLUTE_ZERO_IN_CELSIUS)
#define UNIVERSAL_GAS_CONSTANT 8.314
#define WATER_VAPOR_MOLAR_MASS 0.018016
#define DRY_AIR_MOLAR_MASS 0.028964
#define SPECIFIC_GAS_CONSTANT_DRY_AIR 287.058
#define STD_AIR_DENSITY_ICAO 1.22498
#define STD_AIR_DENSITY_ASM 1.20885
#define GET_TEMPERATURE_AT_HEIGHT(h) (EGVAR(weather,currentTemperature) - 0.0065 * (h))

View File

@ -1,11 +1,14 @@
<?xml version="1.0" encoding="utf-8" ?>
<Project name="ACE">
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler. -->
<Project name="ACE">
<Package name="AdvancedBallistics">
<Key ID="STR_ACE_AdvancedBallistics_WindInfoKey">
<English>Show Wind Info</English>
<English>Show Wind Info</English>
<Polish>Pokaż inf. o wietrze</Polish>
</Key>
<Key ID="STR_ACE_AdvancedBallistics_ProtractorKey">
<English>Show Protractor</English>
<English>Show Protractor</English>
<Polish>Pokaż kątomierz</Polish>
</Key>
</Package>
</Project>
</Package>
</Project>

View File

@ -1,50 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2014-12-12 -->
<Project name="ACE">
<Package name="Aircraft">
<Key ID="STR_ACE_Aircraft_CMFlareLauncher_Burst_Name">
<English>Burst</English>
<German>Feuerstoß</German>
<Spanish>Ráfaga</Spanish>
<Polish>Seria</Polish>
<Czech>Dávka</Czech>
<French>Rafale</French>
<Russian>Очередь</Russian>
<Hungarian>Sorozat</Hungarian>
<Portuguese>Rajada</Portuguese>
<Italian>Raffica</Italian>
</Key>
<Key ID="STR_ACE_Aircraft_gatling_20mm_Name">
<English>XM301</English>
<German>XM301</German>
<Spanish>XM301</Spanish>
<Polish>XM301</Polish>
<Czech>XM301</Czech>
<French>XM301</French>
<Russian>XM301</Russian>
<Hungarian>XM301</Hungarian>
<Portuguese>XM301</Portuguese>
<Italian>XM301</Italian>
</Key>
<Key ID="STR_ACE_Aircraft_OpenCargoRamp">
<English>Open Cargo Door</English>
<German>Laderampe öffnen</German>
<Spanish>Abrir compuerta de carga</Spanish>
<French>Ourvir Rampe Cargo</French>
<Polish>Otwórz drzwi ładowni</Polish>
<Czech>Otevřít nákladní prostor</Czech>
<Hungarian>Rámpát kinyitni</Hungarian>
<Russian>Открыть грузовой отсек</Russian>
</Key>
<Key ID="STR_ACE_Aircraft_CloseCargoRamp">
<English>Close Cargo Door</English>
<German>Laderampe schließen</German>
<Spanish>Cerrar compuerta de carga</Spanish>
<French>Fermer la Rampe du Cargo</French>
<Polish>Zamknij drzwi ładowni</Polish>
<Czech>Zavřít nákladní prostor</Czech>
<Hungarian>Rámpát zárni</Hungarian>
<Russian>Закрыть грузовой отсек</Russian>
</Key>
</Package>
<Package name="Aircraft">
<Key ID="STR_ACE_Aircraft_CMFlareLauncher_Burst_Name">
<English>Burst</English>
<German>Feuerstoß</German>
<Spanish>Ráfaga</Spanish>
<Polish>Seria</Polish>
<Czech>Dávka</Czech>
<French>Contre mesure</French>
<Russian>Очередь</Russian>
<Hungarian>Sorozat</Hungarian>
<Portuguese>Rajada</Portuguese>
<Italian>Raffica</Italian>
</Key>
<Key ID="STR_ACE_Aircraft_gatling_20mm_Name">
<English>XM301</English>
<German>XM301</German>
<Spanish>XM301</Spanish>
<Polish>XM301</Polish>
<Czech>XM301</Czech>
<French>XM301</French>
<Russian>XM301</Russian>
<Hungarian>XM301</Hungarian>
<Portuguese>XM301</Portuguese>
<Italian>XM301</Italian>
</Key>
<Key ID="STR_ACE_Aircraft_OpenCargoRamp">
<English>Open Cargo Door</English>
<German>Laderampe öffnen</German>
<Spanish>Abrir compuerta de carga</Spanish>
<French>Ourvir rampe cargo</French>
<Polish>Otwórz drzwi ładowni</Polish>
<Czech>Otevřít nákladní prostor</Czech>
<Hungarian>Rámpát kinyitni</Hungarian>
<Russian>Открыть грузовой отсек</Russian>
</Key>
<Key ID="STR_ACE_Aircraft_CloseCargoRamp">
<English>Close Cargo Door</English>
<German>Laderampe schließen</German>
<Spanish>Cerrar compuerta de carga</Spanish>
<French>Fermer rampe cargo</French>
<Polish>Zamknij drzwi ładowni</Polish>
<Czech>Zavřít nákladní prostor</Czech>
<Hungarian>Rámpát zárni</Hungarian>
<Russian>Закрыть грузовой отсек</Russian>
</Key>
</Package>
</Project>

View File

@ -1,26 +1,30 @@
<?xml version="1.0" encoding="utf-8" ?>
<Project name="ACE">
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler. -->
<Project name="ACE">
<Package name="ATragMX">
<Key ID="STR_ACE_ATragMX_Name">
<English>ATragMX</English>
<German>ATragMX</German>
<Spanish>ATragMX</Spanish>
<French>ATragMX</French>
<Polish>ATragMX</Polish>
<Czech>ATragMX</Czech>
<Italian>ATragMX</Italian>
<Hungarian>ATragMX</Hungarian>
<Portuguese>ATragMX</Portuguese>
<Russian>ATragMX</Russian>
<English>ATragMX</English>
<German>ATragMX</German>
<Spanish>ATragMX</Spanish>
<French>ATragMX</French>
<Polish>ATragMX</Polish>
<Czech>ATragMX</Czech>
<Italian>ATragMX</Italian>
<Hungarian>ATragMX</Hungarian>
<Portuguese>ATragMX</Portuguese>
<Russian>ATragMX</Russian>
</Key>
<Key ID="STR_ACE_ATragMX_OpenATragMXDialog">
<English>Open ATragMX</English>
<English>Open ATragMX</English>
<Polish>Otwórz ATragMX</Polish>
</Key>
<Key ID="STR_ACE_ATragMX_Description">
<English>Rugged PDA with ATragMX</English>
<English>Rugged PDA with ATragMX</English>
<Polish>Przenośny PDA z kalkulatorem balistycznym ATragMX</Polish>
</Key>
<Key ID="STR_ACE_ATragMX_ATragMXDialogKey">
<English>Open ATragMX</English>
<English>Open ATragMX</English>
<Polish>Otwórz ATragMX</Polish>
</Key>
</Package>
</Project>
</Package>
</Project>

View File

@ -1,206 +1,206 @@
<?xml version="1.0" encoding="utf-8"?>
<Project name="ACE">
<Package name="Attach">
<Key ID="STR_ACE_Attach_AttachDetach">
<English>Attach item &gt;&gt;</English>
<German>Gegenstand befestigen &gt;&gt;</German>
<Spanish>Acoplar objeto &gt;&gt;</Spanish>
<Polish>Przyczep przedmiot &gt;&gt;</Polish>
<French>Attacher l'objet &gt;&gt;</French>
<Czech>Připnout předmět &gt;&gt;</Czech>
<Portuguese>Acoplar item &gt;&gt;</Portuguese>
<Italian>Attacca l'oggetto &gt;&gt;</Italian>
<Hungarian>Tárgy hozzácsatolása &gt;&gt;</Hungarian>
<Russian>Добавить приспособления</Russian>
</Key>
<Key ID="STR_ACE_Attach_Attach">
<English>Attach</English>
<German>Befestigen</German>
<Spanish>Acoplar</Spanish>
<Polish>Przyczep</Polish>
<French>Attacher</French>
<Czech>Připnout</Czech>
<Portuguese>Acoplar</Portuguese>
<Italian>Attacca</Italian>
<Hungarian>Hozzácsatolás</Hungarian>
<Russian>Присоединить</Russian>
</Key>
<Key ID="STR_ACE_Attach_Detach">
<English>Detach item</English>
<German>Gegenstand entfernen</German>
<Spanish>Quitar objeto</Spanish>
<Polish>Odczep przedmiot</Polish>
<French>Détacher l'objet</French>
<Czech>Odepnout předmět</Czech>
<Portuguese>Separar item</Portuguese>
<Italian>Stacca l'oggetto</Italian>
<Hungarian>Tárgy lecsatolása</Hungarian>
<Russian>Отсоединить</Russian>
</Key>
<Key ID="STR_ACE_Attach_IrStrobe_Attached">
<English>IR Strobe Attached</English>
<German>IR-Stroboskop befestigt</German>
<Spanish>Marcador IR acoplado</Spanish>
<Polish>Przyczepiono stroboskop IR</Polish>
<French>Strobe IR attaché</French>
<Czech>IR Značkovač připnutý</Czech>
<Portuguese>Marcador IV Acoplado</Portuguese>
<Italian>Strobo IR attaccata</Italian>
<Hungarian>Infravörös jeladó hozzácsatolva</Hungarian>
<Russian>ИК-маяк присоединён</Russian>
</Key>
<Key ID="STR_ACE_Attach_IrStrobe_Detached">
<English>IR Strobe Detached</English>
<German>IR-Stroboskop entfernt</German>
<Spanish>Marcador IR quitado</Spanish>
<Polish>Odczepiono stroboskop IR</Polish>
<French>Strobe IR détaché</French>
<Czech>IR Značkovač odepnutý</Czech>
<Portuguese>Marcador IV Separado</Portuguese>
<Italian>Strobo IR staccata</Italian>
<Hungarian>Infravörös jeladó lecsatolva</Hungarian>
<Russian>ИК-маяк отсоединён</Russian>
</Key>
<Key ID="STR_ACE_Attach_IrGrenade_Attached">
<English>IR Grenade Attached</English>
<German>IR-Granate befestigt</German>
<Spanish>Granada IR acoplada</Spanish>
<Polish>Przyczepiono granat IR</Polish>
<French>Grenade IR attachée</French>
<Czech>IR Granát připnutý</Czech>
<Portuguese>Granada IV Acoplada</Portuguese>
<Italian>Granata IR attaccata</Italian>
<Hungarian>Infravörös gránát hozzácsatolva</Hungarian>
<Russian>ИК-граната присоединена</Russian>
</Key>
<Key ID="STR_ACE_Attach_IrGrenade_Detached">
<English>IR Grenade Detached</English>
<German>IR-Granate entfernt</German>
<Spanish>Granada IR quitada</Spanish>
<Polish>Odczepiono granat IR</Polish>
<French>Grenade IR détachée</French>
<Czech>IR Granát odepnutý</Czech>
<Portuguese>Granada IV Separada</Portuguese>
<Italian>Granata IR staccata</Italian>
<Hungarian>Infravörös gránát lecsatolva</Hungarian>
<Russian>ИК-граната отсоединена</Russian>
</Key>
<Key ID="STR_ACE_Attach_Chemlight_Attached">
<English>Chemlight Attached</English>
<German>Leuchtstab befestigt</German>
<Spanish>Barra de luz acoplada</Spanish>
<Polish>Przyczepiono światło chemiczne</Polish>
<French>Chemlight attaché</French>
<Czech>Chemické světlo připnuto</Czech>
<Portuguese>Chemlight Acoplada</Portuguese>
<Italian>Chemlight attaccata</Italian>
<Hungarian>Chemlight hozzácsatolva</Hungarian>
<Russian>Химсвет присоединён</Russian>
</Key>
<Key ID="STR_ACE_Attach_Chemlight_Detached">
<English>Chemlight Detached</English>
<German>Leuchtstab entfernt</German>
<Spanish>Barra de luz quitada</Spanish>
<Polish>Odczepiono światło chemiczne</Polish>
<French>Chemlight détaché</French>
<Czech>Chemické světlo odepnuto</Czech>
<Portuguese>Chemlight Separada</Portuguese>
<Italian>Chemlight staccata</Italian>
<Hungarian>Chemlight hozzácsatolva</Hungarian>
<Russian>Химсвет отсоединён</Russian>
</Key>
<Key ID="STR_ACE_Attach_Inventory_Full">
<English>No inventory space</English>
<German>Kein Platz im Inventar</German>
<Spanish>Sin espacio en inventario</Spanish>
<Polish>Brak miejsca w ekwipunku</Polish>
<French>Pas de place dans l'inventaire</French>
<Czech>Není místo v inventáři</Czech>
<Portuguese>Sem espaço no inventário</Portuguese>
<Italian>Non hai più spazio</Italian>
<Hungarian>Nincs több hely</Hungarian>
<Russian>В инвентаре нет места</Russian>
</Key>
<Key ID="STR_ACE_IrStrobe_Name">
<English>IR Strobe</English>
<German>IR-Stroboskop</German>
<Spanish>Marcador IR</Spanish>
<Polish>Stroboskop IR</Polish>
<French>Strobe IR</French>
<Czech>IR Značkovač</Czech>
<Portuguese>Marcador IV</Portuguese>
<Italian>Strobo IR</Italian>
<Hungarian>Infravörös jeladó</Hungarian>
<Russian>ИК-маяк</Russian>
</Key>
<Key ID="STR_ACE_IrStrobe_Description">
<English>IR Strobe allows you to signal your position through a pulsating beacon only visible with NVGs.</English>
<German>Das IR-Stroboskop erlaubt es dir deine Position mit einem blinkenden Leuchtfeuer zu signalisieren, welches nur mit Nachtsichtgerät zu erkennen ist.</German>
<Polish>Stroboskop światła podczerwieni umożliwia oznaczenie swojej pozycji pulsacyjnym światłem widocznym tylko przez optykę noktowizyjną i gogle noktowizyjne.</Polish>
<Spanish>El Marcador IR permite señalizar su posisición a través de una baliza visible solo a través de dispositivos de visión nocturna. </Spanish>
<French>Le Strobe IR permet de signaler votre position grace à un clignotement visible par des JVN.</French>
<Czech>IR Značkovač je Infračerveně zářící stroboskop umožňující signalizaci vaší pozice díky blikajícímu světlu, které je vidět pouze při užití noktovizoru.</Czech>
<Portuguese>O Marcador IV permite que você sinalize sua posição através de um pulso visível somente com equipamento de visão noturna.</Portuguese>
<Italian>La Strobo IR è una luce stroboscopica che ti permette di segnalare la tua posizione grazie all'emissione di impulsi ad infrarossi visibili solo con i visori notturni.</Italian>
<Hungarian>Az infravörös jeladóval megjelölheted a helyzetedet úgy, hogy annak pulzáló fénye csak éjjellátó készülékkel látható.</Hungarian>
<Russian>ИК-маяк позволяет сигнализировать о своём местоположении через пульсирующий свет, видимый только через ПНВ.</Russian>
</Key>
<Key ID="STR_ACE_Attach_PlaceAction">
<English>Place</English>
<German>Platzieren</German>
<Spanish>Colocar</Spanish>
<Polish>Umieść</Polish>
<French>Placer</French>
<Czech>Položit</Czech>
<Portuguese>Colocar</Portuguese>
<Italian>Posiziona</Italian>
<Hungarian>Elhelyez</Hungarian>
<Russian>Установить</Russian>
</Key>
<Key ID="STR_ACE_Attach_CancelAction">
<English>Cancel</English>
<German>Abbrechen</German>
<Spanish>Cancelar</Spanish>
<Polish>Anuluj</Polish>
<French>Annuler</French>
<Czech>Zrušit</Czech>
<Portuguese>Cancelar</Portuguese>
<Italian>Annulla</Italian>
<Hungarian>Mégse</Hungarian>
<Russian>Отмена</Russian>
</Key>
<Key ID="STR_ACE_Attach_Failed">
<English>Attach Failed</English>
<French>Échec de l'attachement</French>
<German>Befestigen fehlgeschlagen</German>
<Russian>Не удалось присоединить</Russian>
<Spanish>Error al acoplar</Spanish>
<Czech>Připnutí selhalo</Czech>
<Polish>Przyczepianie nie powiodło się</Polish>
</Key>
<Key ID="STR_ACE_Attach_Item_Attached">
<English>%1&lt;br/&gt;Attached</English>
<German>%1&lt;br/&gt;befestigt</German>
<Spanish>%1&lt;br/&gt;acoplada</Spanish>
<Polish>%1&lt;br/&gt;Przyczepiono</Polish>
<French>%1&lt;br/&gt;attachée</French>
<Czech>%1&lt;br/&gt;Připnutý</Czech>
<Portuguese>%1&lt;br/&gt;Acoplada</Portuguese>
<Italian>%1&lt;br/&gt;attaccata</Italian>
<Hungarian>%1&lt;br/&gt;hozzácsatolva</Hungarian>
<Russian>%1&lt;br/&gt;присоединена</Russian>
</Key>
<Key ID="STR_ACE_Attach_Item_Detached">
<English>%1&lt;br/&gt;Detached</English>
<German>%1&lt;br/&gt;entfernt</German>
<Spanish>%1&lt;br/&gt;quitada</Spanish>
<Polish>%1&lt;br/&gt;Odczepiono</Polish>
<French>%1&lt;br/&gt;détachée</French>
<Czech>%1&lt;br/&gt;Odepnutý</Czech>
<Portuguese>%1&lt;br/&gt;Separada</Portuguese>
<Italian>%1&lt;br/&gt;staccata</Italian>
<Hungarian>%1&lt;br/&gt;lecsatolva</Hungarian>
<Russian>%1&lt;br/&gt;отсоединена</Russian>
</Key>
</Package>
<Package name="Attach">
<Key ID="STR_ACE_Attach_AttachDetach">
<English>Attach item &gt;&gt;</English>
<German>Gegenstand befestigen &gt;&gt;</German>
<Spanish>Acoplar objeto &gt;&gt;</Spanish>
<Polish>Przyczep przedmiot &gt;&gt;</Polish>
<French>Attacher l'objet &gt;&gt;</French>
<Czech>Připnout předmět &gt;&gt;</Czech>
<Portuguese>Acoplar item &gt;&gt;</Portuguese>
<Italian>Attacca l'oggetto &gt;&gt;</Italian>
<Hungarian>Tárgy hozzácsatolása &gt;&gt;</Hungarian>
<Russian>Добавить приспособления</Russian>
</Key>
<Key ID="STR_ACE_Attach_Attach">
<English>Attach</English>
<German>Befestigen</German>
<Spanish>Acoplar</Spanish>
<Polish>Przyczep</Polish>
<French>Attacher</French>
<Czech>Připnout</Czech>
<Portuguese>Acoplar</Portuguese>
<Italian>Attacca</Italian>
<Hungarian>Hozzácsatolás</Hungarian>
<Russian>Присоединить</Russian>
</Key>
<Key ID="STR_ACE_Attach_Detach">
<English>Detach item</English>
<German>Gegenstand entfernen</German>
<Spanish>Quitar objeto</Spanish>
<Polish>Odczep przedmiot</Polish>
<French>Détacher l'objet</French>
<Czech>Odepnout předmět</Czech>
<Portuguese>Separar item</Portuguese>
<Italian>Stacca l'oggetto</Italian>
<Hungarian>Tárgy lecsatolása</Hungarian>
<Russian>Отсоединить</Russian>
</Key>
<Key ID="STR_ACE_Attach_IrStrobe_Attached">
<English>IR Strobe Attached</English>
<German>IR-Stroboskop befestigt</German>
<Spanish>Marcador IR acoplado</Spanish>
<Polish>Przyczepiono stroboskop IR</Polish>
<French>Strobe IR attaché</French>
<Czech>IR Značkovač připnutý</Czech>
<Portuguese>Marcador IV Acoplado</Portuguese>
<Italian>Strobo IR attaccata</Italian>
<Hungarian>Infravörös jeladó hozzácsatolva</Hungarian>
<Russian>ИК-маяк присоединён</Russian>
</Key>
<Key ID="STR_ACE_Attach_IrStrobe_Detached">
<English>IR Strobe Detached</English>
<German>IR-Stroboskop entfernt</German>
<Spanish>Marcador IR quitado</Spanish>
<Polish>Odczepiono stroboskop IR</Polish>
<French>Strobe IR détaché</French>
<Czech>IR Značkovač odepnutý</Czech>
<Portuguese>Marcador IV Separado</Portuguese>
<Italian>Strobo IR staccata</Italian>
<Hungarian>Infravörös jeladó lecsatolva</Hungarian>
<Russian>ИК-маяк отсоединён</Russian>
</Key>
<Key ID="STR_ACE_Attach_IrGrenade_Attached">
<English>IR Grenade Attached</English>
<German>IR-Granate befestigt</German>
<Spanish>Granada IR acoplada</Spanish>
<Polish>Przyczepiono granat IR</Polish>
<French>Grenade IR attachée</French>
<Czech>IR Granát připnutý</Czech>
<Portuguese>Granada IV Acoplada</Portuguese>
<Italian>Granata IR attaccata</Italian>
<Hungarian>Infravörös gránát hozzácsatolva</Hungarian>
<Russian>ИК-граната присоединена</Russian>
</Key>
<Key ID="STR_ACE_Attach_IrGrenade_Detached">
<English>IR Grenade Detached</English>
<German>IR-Granate entfernt</German>
<Spanish>Granada IR quitada</Spanish>
<Polish>Odczepiono granat IR</Polish>
<French>Grenade IR détachée</French>
<Czech>IR Granát odepnutý</Czech>
<Portuguese>Granada IV Separada</Portuguese>
<Italian>Granata IR staccata</Italian>
<Hungarian>Infravörös gránát lecsatolva</Hungarian>
<Russian>ИК-граната отсоединена</Russian>
</Key>
<Key ID="STR_ACE_Attach_Chemlight_Attached">
<English>Chemlight Attached</English>
<German>Leuchtstab befestigt</German>
<Spanish>Barra de luz acoplada</Spanish>
<Polish>Przyczepiono światło chemiczne</Polish>
<French>Chemlight attachée</French>
<Czech>Chemické světlo připnuto</Czech>
<Portuguese>Chemlight Acoplada</Portuguese>
<Italian>Chemlight attaccata</Italian>
<Hungarian>Chemlight hozzácsatolva</Hungarian>
<Russian>Химсвет присоединён</Russian>
</Key>
<Key ID="STR_ACE_Attach_Chemlight_Detached">
<English>Chemlight Detached</English>
<German>Leuchtstab entfernt</German>
<Spanish>Barra de luz quitada</Spanish>
<Polish>Odczepiono światło chemiczne</Polish>
<French>Chemlight détachée</French>
<Czech>Chemické světlo odepnuto</Czech>
<Portuguese>Chemlight Separada</Portuguese>
<Italian>Chemlight staccata</Italian>
<Hungarian>Chemlight hozzácsatolva</Hungarian>
<Russian>Химсвет отсоединён</Russian>
</Key>
<Key ID="STR_ACE_Attach_Inventory_Full">
<English>No inventory space</English>
<German>Kein Platz im Inventar</German>
<Spanish>Sin espacio en inventario</Spanish>
<Polish>Brak miejsca w ekwipunku</Polish>
<French>Pas de place dans l'inventaire</French>
<Czech>Není místo v inventáři</Czech>
<Portuguese>Sem espaço no inventário</Portuguese>
<Italian>Non hai più spazio</Italian>
<Hungarian>Nincs több hely</Hungarian>
<Russian>В инвентаре нет места</Russian>
</Key>
<Key ID="STR_ACE_IrStrobe_Name">
<English>IR Strobe</English>
<German>IR-Stroboskop</German>
<Spanish>Marcador IR</Spanish>
<Polish>Stroboskop IR</Polish>
<French>Strobe IR</French>
<Czech>IR Značkovač</Czech>
<Portuguese>Marcador IV</Portuguese>
<Italian>Strobo IR</Italian>
<Hungarian>Infravörös jeladó</Hungarian>
<Russian>ИК-маяк</Russian>
</Key>
<Key ID="STR_ACE_IrStrobe_Description">
<English>IR Strobe allows you to signal your position through a pulsating beacon only visible with NVGs.</English>
<German>Das IR-Stroboskop erlaubt es dir deine Position mit einem blinkenden Leuchtfeuer zu signalisieren, welches nur mit Nachtsichtgerät zu erkennen ist.</German>
<Polish>Stroboskop światła podczerwieni umożliwia oznaczenie swojej pozycji pulsacyjnym światłem widocznym tylko przez optykę noktowizyjną i gogle noktowizyjne.</Polish>
<Spanish>El Marcador IR permite señalizar su posisición a través de una baliza visible solo a través de dispositivos de visión nocturna. </Spanish>
<French>Le Strobe IR permet de signaler votre position grace à un clignotement visible par des JVN.</French>
<Czech>IR Značkovač je Infračerveně zářící stroboskop umožňující signalizaci vaší pozice díky blikajícímu světlu, které je vidět pouze při užití noktovizoru.</Czech>
<Portuguese>O Marcador IV permite que você sinalize sua posição através de um pulso visível somente com equipamento de visão noturna.</Portuguese>
<Italian>La Strobo IR è una luce stroboscopica che ti permette di segnalare la tua posizione grazie all'emissione di impulsi ad infrarossi visibili solo con i visori notturni.</Italian>
<Hungarian>Az infravörös jeladóval megjelölheted a helyzetedet úgy, hogy annak pulzáló fénye csak éjjellátó készülékkel látható.</Hungarian>
<Russian>ИК-маяк позволяет сигнализировать о своём местоположении через пульсирующий свет, видимый только через ПНВ.</Russian>
</Key>
<Key ID="STR_ACE_Attach_PlaceAction">
<English>Place</English>
<German>Platzieren</German>
<Spanish>Colocar</Spanish>
<Polish>Umieść</Polish>
<French>Placer</French>
<Czech>Položit</Czech>
<Portuguese>Colocar</Portuguese>
<Italian>Posiziona</Italian>
<Hungarian>Elhelyez</Hungarian>
<Russian>Установить</Russian>
</Key>
<Key ID="STR_ACE_Attach_CancelAction">
<English>Cancel</English>
<German>Abbrechen</German>
<Spanish>Cancelar</Spanish>
<Polish>Anuluj</Polish>
<French>Annuler</French>
<Czech>Zrušit</Czech>
<Portuguese>Cancelar</Portuguese>
<Italian>Annulla</Italian>
<Hungarian>Mégse</Hungarian>
<Russian>Отмена</Russian>
</Key>
<Key ID="STR_ACE_Attach_Failed">
<English>Attach Failed</English>
<French>Impossible d'attacher</French>
<German>Befestigen fehlgeschlagen</German>
<Russian>Не удалось присоединить</Russian>
<Spanish>Error al acoplar</Spanish>
<Czech>Připnutí selhalo</Czech>
<Polish>Przyczepianie nie powiodło się</Polish>
</Key>
<Key ID="STR_ACE_Attach_Item_Attached">
<English>%1&lt;br/&gt;Attached</English>
<German>%1&lt;br/&gt;befestigt</German>
<Spanish>%1&lt;br/&gt;acoplada</Spanish>
<Polish>%1&lt;br/&gt;Przyczepiono</Polish>
<French>%1&lt;br/&gt;attachée</French>
<Czech>%1&lt;br/&gt;Připnutý</Czech>
<Portuguese>%1&lt;br/&gt;Acoplada</Portuguese>
<Italian>%1&lt;br/&gt;attaccata</Italian>
<Hungarian>%1&lt;br/&gt;hozzácsatolva</Hungarian>
<Russian>%1&lt;br/&gt;присоединена</Russian>
</Key>
<Key ID="STR_ACE_Attach_Item_Detached">
<English>%1&lt;br/&gt;Detached</English>
<German>%1&lt;br/&gt;entfernt</German>
<Spanish>%1&lt;br/&gt;quitada</Spanish>
<Polish>%1&lt;br/&gt;Odczepiono</Polish>
<French>%1&lt;br/&gt;détachée</French>
<Czech>%1&lt;br/&gt;Odepnutý</Czech>
<Portuguese>%1&lt;br/&gt;Separada</Portuguese>
<Italian>%1&lt;br/&gt;staccata</Italian>
<Hungarian>%1&lt;br/&gt;lecsatolva</Hungarian>
<Russian>%1&lt;br/&gt;отсоединена</Russian>
</Key>
</Package>
</Project>

View File

@ -90,7 +90,8 @@ class CfgAmmo {
ACE_muzzleVelocities[]={780, 880, 920};
ACE_barrelLengths[]={10, 16.3, 20};
};
class ACE_545x39_Ball_7T3M : B_556x45_Ball_Tracer_Red {
class B_556x45_Ball_Tracer_Yellow;
class ACE_545x39_Ball_7T3M : B_556x45_Ball_Tracer_Yellow {
airFriction=-0.001162;
caliber=0.5;
deflecting=18;
@ -122,9 +123,24 @@ class CfgAmmo {
ACE_barrelLengths[]={10, 16, 20, 24, 26, 30};
};
class B_65x39_Case_yellow;
class ACE_B_65x39_Caseless_Tracer_Dim : B_65x39_Case_yellow {
class ACE_65x39_Caseless_Tracer_Dim : B_65x39_Case_yellow {
nvgOnly = 1;
};
class ACE_65x47_Ball_Scenar: B_65x39_Caseless
{
airFriction=-0.00078;
typicalSpeed=820 ;
ACE_caliber=0.264;
ACE_bulletLength=1.364;
ACE_bulletMass=139;
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
ACE_ballisticCoefficients[]={0.290};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=7;
ACE_muzzleVelocities[]={760, 790, 820, 830};
ACE_barrelLengths[]={16, 20, 24, 26};
};
class B_762x51_Ball : BulletBase {
airFriction=-0.001035;
typicalSpeed=833;
@ -140,8 +156,8 @@ class CfgAmmo {
ACE_muzzleVelocities[]={700, 800, 820, 833, 845};
ACE_barrelLengths[]={10, 16, 20, 24, 26};
};
class B_762x51_Tracer_Red;
class ACE_B_762x51_Tracer_Dim: B_762x51_Tracer_Red {
class B_762x51_Tracer_Yellow;
class ACE_B_762x51_Tracer_Dim: B_762x51_Tracer_Yellow {
nvgOnly = 1;
};
class ACE_762x51_Ball_M118LR : B_762x51_Ball {
@ -160,6 +176,57 @@ class CfgAmmo {
ACE_muzzleVelocities[]={750, 780, 790, 794};
ACE_barrelLengths[]={16, 20, 24, 26};
};
class ACE_762x67_Ball_Mk248_Mod_0 : B_762x51_Ball
{
airFriction=-0.000830;
caliber=1.08;
hit=17;
typicalSpeed=900;
ACE_caliber=0.308;
ACE_bulletLength=1.353;
ACE_bulletMass=190;
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
ACE_ballisticCoefficients[]={0.268};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=7;
ACE_muzzleVelocities[]={865, 900, 924};
ACE_barrelLengths[]={20, 24, 26};
};
class ACE_762x67_Ball_Mk248_Mod_1 : B_762x51_Ball
{
airFriction=-0.000815;
caliber=1.12;
hit=18;
typicalSpeed=867;
ACE_caliber=0.308;
ACE_bulletLength=1.489;
ACE_bulletMass=220;
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
ACE_ballisticCoefficients[]={0.310};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=7;
ACE_muzzleVelocities[]={847, 867, 877};
ACE_barrelLengths[]={20, 24, 26};
};
class ACE_762x67_Ball_Berger_Hybrid_OTM : B_762x51_Ball
{
airFriction=-0.00076;
caliber=1.15;
hit=19;
typicalSpeed=853;
ACE_caliber=0.308;
ACE_bulletLength=1.602;
ACE_bulletMass=230;
ACE_ammoTempMuzzleVelocityShifts[]={-26.55, -25.47, -22.85, -20.12, -16.98, -12.80, -7.64, -1.53, 5.96, 15.17, 26.19};
ACE_ballisticCoefficients[]={0.368};
ACE_velocityBoundaries[]={};
ACE_standardAtmosphere="ICAO";
ACE_dragModel=7;
ACE_muzzleVelocities[]={800, 853, 884};
ACE_barrelLengths[]={20, 24, 26};
};
class ACE_762x51_Ball_Subsonic : B_762x51_Ball {
airFriction=-0.000535;
caliber=0.5;
@ -204,7 +271,8 @@ class CfgAmmo {
ACE_muzzleVelocities[]={700, 800, 820, 833};
ACE_barrelLengths[]={16, 20, 24, 26};
};
class ACE_762x54_Ball_7T2 : B_762x51_Tracer_Red {
class B_762x54_Tracer_Green;
class ACE_762x54_Ball_7T2 : B_762x54_Tracer_Green {
airFriction=-0.001023;
caliber=0.9;
hit=15;
@ -251,7 +319,7 @@ class CfgAmmo {
ACE_muzzleVelocities[]={650, 716, 750};
ACE_barrelLengths[]={10, 16.3, 20};
};
class ACE_762x39_Ball_57N231P : B_762x51_Tracer_Red {
class ACE_762x39_Ball_57N231P : B_762x51_Tracer_Yellow {
airFriction=-0.0015168;
hit=12;
typicalSpeed=716;

View File

@ -11,22 +11,54 @@ class CfgMagazines {
class 100Rnd_65x39_caseless_mag_Tracer: 100Rnd_65x39_caseless_mag {
initSpeed = 760;
};
class ACE_100Rnd_65x39_caseless_mag_Tracer_Dim: 100Rnd_65x39_caseless_mag_Tracer {
author = "$STR_ACE_Common_ACETeam";
ammo = "ACE_65x39_Caseless_Tracer_Dim";
displayName = "$STR_ACE_100Rnd_65x39_caseless_mag_Tracer_DimName";
displayNameShort = "$STR_ACE_100Rnd_65x39_caseless_mag_Tracer_DimNameShort";
descriptionShort = "$STR_ACE_100Rnd_65x39_caseless_mag_Tracer_DimDescription";
picture = "\A3\weapons_f\data\ui\m_100rnd_65x39_yellow_ca.paa";
};
class 200Rnd_65x39_cased_Box: 100Rnd_65x39_caseless_mag {
initSpeed = 760;
};
class ACE_200Rnd_65x39_cased_Box_Tracer_Dim: 200Rnd_65x39_cased_Box {
author = "$STR_ACE_Common_ACETeam";
ammo = "ACE_65x39_Caseless_Tracer_Dim";
displayName = "$STR_ACE_200Rnd_65x39_cased_Box_Tracer_DimName";
displayNameShort = "$STR_ACE_200Rnd_65x39_cased_Box_Tracer_DimNameShort";
descriptionShort = "$STR_ACE_200Rnd_65x39_cased_Box_Tracer_DimDescription";
picture = "\A3\weapons_f\data\ui\m_200rnd_65x39_yellow_ca.paa";
};
class 30Rnd_65x39_caseless_mag_Tracer: 30Rnd_65x39_caseless_mag {
};
class ACE_30Rnd_65x39_caseless_mag_Tracer_Dim: 30Rnd_65x39_caseless_mag_Tracer {
author = "$STR_ACE_Common_ACETeam";
ammo = "ACE_B_65x39_Caseless_Tracer_Dim";
ammo = "ACE_65x39_Caseless_Tracer_Dim";
displayName = "$STR_ACE_30Rnd_65x39_caseless_mag_Tracer_DimName";
displayNameShort = "$STR_ACE_30Rnd_65x39_caseless_mag_Tracer_DimNameShort";
descriptionShort = "$STR_ACE_30Rnd_65x39_caseless_mag_Tracer_DimDescription";
picture = "\A3\weapons_f\data\ui\m_30stanag_caseless_yellow_CA.paa";
picture = "\A3\weapons_f\data\ui\m_30stanag_caseless_yellow_ca.paa";
};
class 30Rnd_556x45_Stanag: CA_Magazine {
};
class ACE_30Rnd_556x45_Stanag_Mk262_mag: 30Rnd_556x45_Stanag {
author = "$STR_ACE_Common_ACETeam";
ammo = "ACE_556x45_Ball_Mk262";
displayName = "$STR_ACE_30Rnd_556x45_Stanag_Mk262_mag_Name";
displayNameShort = "$STR_ACE_30Rnd_556x45_Stanag_Mk262_mag_NameShort";
descriptionShort = "$STR_ACE_30Rnd_556x45_Stanag_Mk262_mag_Description";
initSpeed = 832;
};
class ACE_30Rnd_556x45_Stanag_Mk318_mag: 30Rnd_556x45_Stanag {
author = "$STR_ACE_Common_ACETeam";
ammo = "ACE_556x45_Ball_Mk318";
displayName = "$STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_Name";
displayNameShort = "$STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_NameShort";
descriptionShort = "$STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_Description";
initSpeed = 922;
};
class 30Rnd_556x45_Stanag_Tracer_Red: 30Rnd_556x45_Stanag {
};
class ACE_30Rnd_556x45_Stanag_Tracer_Dim: 30Rnd_556x45_Stanag_Tracer_Red {
@ -35,7 +67,7 @@ class CfgMagazines {
displayName = "$STR_ACE_30Rnd_556x45_mag_Tracer_DimName";
displayNameShort = "$STR_ACE_30Rnd_556x45_mag_Tracer_DimNameShort";
descriptionShort = "$STR_ACE_30Rnd_556x45_mag_Tracer_DimDescription";
picture = "\A3\weapons_f\data\ui\m_30stanag_yellow_ca.paa";
picture = "\A3\weapons_f\data\ui\m_20stanag_red_ca.paa";
};
class 20Rnd_762x51_Mag: CA_Magazine {
@ -50,7 +82,7 @@ class CfgMagazines {
class 150Rnd_762x51_Box_Tracer: 150Rnd_762x51_Box {
initSpeed = 833;
};
class ACE_20Rnd_762x51_Mag_Tracer: 20Rnd_762x51_Mag { //@todo Green tracers for opfor and yellow tracers for independent
class ACE_20Rnd_762x51_Mag_Tracer: 20Rnd_762x51_Mag {
author = "$STR_ACE_Common_ACETeam";
ammo = "B_762x51_Tracer_Red";
displayName = "$STR_ACE_20Rnd_762x51_mag_TracerName";
@ -76,6 +108,61 @@ class CfgMagazines {
initSpeed = 325;
};
class ACE_10Rnd_762x51_M118LR_Mag: 10Rnd_762x51_Mag
{
author = "$STR_ACE_Common_ACETeam";
ammo = "ACE_762x51_Ball_M118LR";
count=10;
displayName = "$STR_ACE_10Rnd_762x51_M118LR_Mag_Name";
displayNameShort = "$STR_ACE_10Rnd_762x51_M118LR_Mag_NameShort";
descriptionShort = "$STR_ACE_10Rnd_762x51_M118LR_Mag_Description";
initSpeed = 780;
};
class ACE_20Rnd_762x51_M118LR_Mag: 20Rnd_762x51_Mag
{
author = "$STR_ACE_Common_ACETeam";
ammo = "ACE_762x51_Ball_M118LR";
displayName = "$STR_ACE_20Rnd_762x51_M118LR_Mag_Name";
displayNameShort = "$STR_ACE_20Rnd_762x51_M118LR_Mag_NameShort";
descriptionShort = "$STR_ACE_20Rnd_762x51_M118LR_Mag_Description";
initSpeed = 780;
};
class ACE_20Rnd_762x67_Mk248_Mod_0_Mag: 20Rnd_762x51_Mag
{
author = "$STR_ACE_Common_ACETeam";
ammo = "ACE_762x67_Ball_Mk248_Mod_0";
displayName = "$STR_ACE_20Rnd_762x67_Mk248_Mod_0_Mag_Name";
displayNameShort = "$STR_ACE_20Rnd_762x67_Mk248_Mod_0_Mag_NameShort";
descriptionShort = "$STR_ACE_20Rnd_762x67_Mk248_Mod_0_Mag_Description";
initSpeed = 865;
};
class ACE_20Rnd_762x67_Mk248_Mod_1_Mag: 20Rnd_762x51_Mag
{
author = "$STR_ACE_Common_ACETeam";
ammo = "ACE_762x67_Ball_Mk248_Mod_1";
displayName = "$STR_ACE_20Rnd_762x67_Mk248_Mod_1_Mag_Name";
displayNameShort = "$STR_ACE_20Rnd_762x67_Mk248_Mod_1_Mag_NameShort";
descriptionShort = "$STR_ACE_20Rnd_762x67_Mk248_Mod_1_Mag_Description";
initSpeed = 847;
};
class ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag: 20Rnd_762x51_Mag
{
author = "$STR_ACE_Common_ACETeam";
ammo = "ACE_762x67_Ball_Berger_Hybrid_OTM";
displayName = "$STR_ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag_Name";
displayNameShort = "$STR_ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag_NameShort";
descriptionShort = "$STR_ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag_Description";
initSpeed = 800;
};
class ACE_30Rnd_65x47_Scenar_mag: 30Rnd_65x39_caseless_mag
{
author = "$STR_ACE_Common_ACETeam";
ammo = "ACE_65x47_Ball_Scenar";
count=30;
displayName = "30rnd 6.5mm Mag (HPBT Scenar)";
descriptionshort = "Caliber: 65x47 mm (HPBT Scenar)<br />Rounds: 30<br />Used in: MXM";
};
class 30Rnd_9x21_Mag: CA_Magazine {
initSpeed = 450;
};
@ -123,6 +210,14 @@ class CfgMagazines {
class 10Rnd_762x54_Mag: 10Rnd_762x51_Mag {
initSpeed = 800;
};
class ACE_10Rnd_762x54_Tracer_mag: 16Rnd_9x21_Mag {
author = "$STR_ACE_Common_ACETeam";
ammo = "ACE_762x54_Ball_7T2";
displayName = "$STR_ACE_10Rnd_762x54_Tracer_mag_Name";
displayNameShort = "$STR_ACE_10Rnd_762x54_Tracer_mag_NameShort";
descriptionShort = "$STR_ACE_10Rnd_762x54_Tracer_mag_Description";
initSpeed = 800;
};
class 150Rnd_762x54_Box: 150Rnd_762x51_Box {
initSpeed = 750;

View File

@ -9,4 +9,154 @@ class CfgVehicles {
//hitPart = "systemChat str _this";
};
};
class NATO_Box_Base;
class Box_NATO_Wps_F: NATO_Box_Base {
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4);
};
};
class Box_NATO_WpsSpecial_F: NATO_Box_Base {
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_30Rnd_65x39_caseless_mag_Tracer_Dim,4);
MACRO_ADDMAGAZINE(ACE_100Rnd_65x39_caseless_mag_Tracer_Dim,4);
MACRO_ADDMAGAZINE(ACE_200Rnd_65x39_cased_Box_Tracer_Dim,4);
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Tracer_Dim,1);
};
};
class Box_NATO_Ammo_F: NATO_Box_Base {
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_M118LR_Mag,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_M118LR_Mag,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4);
};
};
class Box_NATO_Support_F: NATO_Box_Base {
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_M118LR_Mag,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_M118LR_Mag,6);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_SD,3);
};
};
class ReammoBox_F;
class B_supplyCrate_F: ReammoBox_F {
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_762x51_M118LR_Mag,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_M118LR_Mag,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4);
};
};
class EAST_Box_Base;
class Box_East_Wps_F: EAST_Box_Base {
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_762x54_Tracer_mag,4);
};
};
class Box_East_WpsSpecial_F: EAST_Box_Base {
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Tracer_Dim,1);
MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_762x54_Tracer_mag,4);
};
};
class Box_East_Ammo_F: EAST_Box_Base {
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_762x54_Tracer_mag,4);
};
};
class Box_East_Support_F: EAST_Box_Base {
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,6);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_SD,3);
MACRO_ADDMAGAZINE(ACE_10Rnd_762x54_Tracer_mag,4);
};
};
class IND_Box_Base;
class Box_IND_Wps_F: IND_Box_Base {
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk262_mag,4);
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk318_mag,4);
};
};
class Box_IND_WpsSpecial_F: IND_Box_Base {
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Tracer_Dim,4);
};
};
class Box_IND_Ammo_F: IND_Box_Base {
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk262_mag,4);
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk318_mag,4);
};
};
class FIA_Box_Base_F;
class Box_FIA_Wps_F: FIA_Box_Base_F {
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk262_mag,4);
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk318_mag,4);
};
};
class Box_FIA_Ammo_F: FIA_Box_Base_F {
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk262_mag,4);
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk318_mag,4);
};
};
class I_supplyCrate_F: B_supplyCrate_F {
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk262_mag,4);
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk318_mag,4);
};
};
class IG_supplyCrate_F: ReammoBox_F {
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk262_mag,4);
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk318_mag,4);
};
};
class C_supplyCrate_F: ReammoBox_F {
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4);
};
};
class ACE_Box_Misc: Box_NATO_Support_F {
class TransportMagazines {
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_SD,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_M118LR_Mag,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x67_Mk248_Mod_0_Mag,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x67_Mk248_Mod_1_Mag,4);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag,4);
MACRO_ADDMAGAZINE(ACE_10Rnd_762x54_Tracer_mag,4);
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk262_mag,4);
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Mk318_mag,4);
MACRO_ADDMAGAZINE(ACE_30Rnd_556x45_Stanag_Tracer_Dim,4);
MACRO_ADDMAGAZINE(ACE_30Rnd_65x39_caseless_mag_Tracer_Dim,4);
MACRO_ADDMAGAZINE(ACE_100Rnd_65x39_caseless_mag_Tracer_Dim,4);
MACRO_ADDMAGAZINE(ACE_200Rnd_65x39_cased_Box_Tracer_Dim,4);
MACRO_ADDMAGAZINE(ACE_30Rnd_65x47_Scenar_mag,4);
};
};
};

View File

@ -56,6 +56,14 @@ class CfgWeapons {
};
};
class arifle_MX_SW_F: arifle_MX_Base_F {
magazines[] = {
"100Rnd_65x39_caseless_mag_Tracer",
"100Rnd_65x39_caseless_mag",
"30Rnd_65x39_caseless_mag",
"30Rnd_65x39_caseless_mag_Tracer",
"ACE_100Rnd_65x39_caseless_mag_Tracer_Dim",
"ACE_30Rnd_65x39_caseless_mag_Tracer_Dim"
};
initSpeed = -1.0;
ACE_barrelTwist=9;
ACE_barrelLength=16.0;
@ -76,6 +84,12 @@ class CfgWeapons {
};
};
class arifle_MXM_F: arifle_MX_Base_F {
magazines[] = {
"30Rnd_65x39_caseless_mag",
"30Rnd_65x39_caseless_mag_Tracer",
"ACE_30Rnd_65x39_caseless_mag_Tracer_Dim",
"ACE_30Rnd_65x47_Scenar_mag"
};
initSpeed = -1.018;
ACE_barrelTwist=9;
ACE_barrelLength=18;
@ -111,6 +125,11 @@ class CfgWeapons {
/* Other */
class LMG_Mk200_F: Rifle_Long_Base_F {
magazines[] = {
"200Rnd_65x39_cased_Box",
"200Rnd_65x39_cased_Box_Tracer",
"ACE_200Rnd_65x39_cased_Box_Tracer_Dim"
};
initSpeed = -0.9763;
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
@ -180,7 +199,7 @@ class CfgWeapons {
/* SMGs */
class SDAR_base_F: Rifle_Base_F {
initSpeed = -0.9723;
initSpeed = -0.989;
class Single: Mode_SemiAuto {
dispersion = 0.0008727; // radians. Equal to 3 MOA, about the limit of mass-produced M855 plus
// some extra because Kel-Tec.
@ -284,26 +303,51 @@ class CfgWeapons {
ACE_barrelLength=7;
};
class arifle_Katiba_F: arifle_katiba_Base_F {
initSpeed = -1.09;
magazines[] = {
"30Rnd_65x39_caseless_mag",
"30Rnd_65x39_caseless_mag_Tracer",
"ACE_30Rnd_65x39_caseless_mag_Tracer_Dim"
};
initSpeed = -1.08;
ACE_barrelTwist=8;
ACE_barrelLength=28.7;
};
class arifle_Katiba_C_F: arifle_katiba_Base_F {
magazines[] = {
"30Rnd_65x39_caseless_mag",
"30Rnd_65x39_caseless_mag_Tracer",
"ACE_30Rnd_65x39_caseless_mag_Tracer_Dim"
};
initSpeed = -1.07;
ACE_barrelTwist=8;
ACE_barrelLength=26.8;
};
class arifle_Katiba_GL_F: arifle_katiba_Base_F {
initSpeed = -1.09;
magazines[] = {
"30Rnd_65x39_caseless_mag",
"30Rnd_65x39_caseless_mag_Tracer",
"ACE_30Rnd_65x39_caseless_mag_Tracer_Dim"
};
initSpeed = -1.08;
ACE_barrelTwist=8;
ACE_barrelLength=28.7;
};
class arifle_MX_F: arifle_MX_Base_F {
magazines[] = {
"30Rnd_65x39_caseless_mag",
"30Rnd_65x39_caseless_mag_Tracer",
"ACE_30Rnd_65x39_caseless_mag_Tracer_Dim"
};
initSpeed = -0.99;
ACE_barrelTwist=9;
ACE_barrelLength=14.5;
};
class arifle_MX_GL_F: arifle_MX_Base_F {
magazines[] = {
"30Rnd_65x39_caseless_mag",
"30Rnd_65x39_caseless_mag_Tracer",
"ACE_30Rnd_65x39_caseless_mag_Tracer_Dim"
};
initSpeed = -0.99;
ACE_barrelTwist=9;
ACE_barrelLength=14.5;
@ -315,6 +359,11 @@ class CfgWeapons {
};
*/
class arifle_MXC_F: arifle_MX_Base_F {
magazines[] = {
"30Rnd_65x39_caseless_mag",
"30Rnd_65x39_caseless_mag_Tracer",
"ACE_30Rnd_65x39_caseless_mag_Tracer_Dim"
};
initSpeed = -0.965;
ACE_barrelTwist=8;
ACE_barrelLength=10.5;
@ -326,7 +375,17 @@ class CfgWeapons {
};
*/
class arifle_SDAR_F: SDAR_base_F {
initSpeed = -0.9723;
magazines[] = {
"20Rnd_556x45_UW_mag",
"30Rnd_556x45_Stanag",
"30Rnd_556x45_Stanag_Tracer_Red",
"30Rnd_556x45_Stanag_Tracer_Green",
"30Rnd_556x45_Stanag_Tracer_Yellow",
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
"ACE_30Rnd_556x45_Stanag_Tracer_Dim"
};
initSpeed = -0.989;
ACE_barrelTwist=11.25;
ACE_barrelLength=18;
};
@ -336,16 +395,43 @@ class CfgWeapons {
ACE_barrelLength=7.7;
};
class arifle_TRG20_F: Tavor_base_F {
magazines[] = {
"30Rnd_556x45_Stanag",
"30Rnd_556x45_Stanag_Tracer_Red",
"30Rnd_556x45_Stanag_Tracer_Green",
"30Rnd_556x45_Stanag_Tracer_Yellow",
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
"ACE_30Rnd_556x45_Stanag_Tracer_Dim"
};
initSpeed = -0.95;
ACE_barrelTwist=7;
ACE_barrelLength=15;
};
class arifle_TRG21_F: Tavor_base_F {
magazines[] = {
"30Rnd_556x45_Stanag",
"30Rnd_556x45_Stanag_Tracer_Red",
"30Rnd_556x45_Stanag_Tracer_Green",
"30Rnd_556x45_Stanag_Tracer_Yellow",
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
"ACE_30Rnd_556x45_Stanag_Tracer_Dim"
};
initSpeed = -0.989;
ACE_barrelTwist=7;
ACE_barrelLength=18.1;
};
class arifle_TRG21_GL_F: Tavor_base_F {
magazines[] = {
"30Rnd_556x45_Stanag",
"30Rnd_556x45_Stanag_Tracer_Red",
"30Rnd_556x45_Stanag_Tracer_Green",
"30Rnd_556x45_Stanag_Tracer_Yellow",
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
"ACE_30Rnd_556x45_Stanag_Tracer_Dim"
};
initSpeed = -0.989;
ACE_barrelTwist=7;
ACE_barrelLength=18.1;
@ -357,16 +443,43 @@ class CfgWeapons {
};
*/
class arifle_Mk20_F: mk20_base_F {
magazines[] = {
"30Rnd_556x45_Stanag",
"30Rnd_556x45_Stanag_Tracer_Red",
"30Rnd_556x45_Stanag_Tracer_Green",
"30Rnd_556x45_Stanag_Tracer_Yellow",
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
"ACE_30Rnd_556x45_Stanag_Tracer_Dim"
};
initSpeed = -0.98;
ACE_barrelTwist=7;
ACE_barrelLength=17.4;
};
class arifle_Mk20C_F: mk20_base_F {
magazines[] = {
"30Rnd_556x45_Stanag",
"30Rnd_556x45_Stanag_Tracer_Red",
"30Rnd_556x45_Stanag_Tracer_Green",
"30Rnd_556x45_Stanag_Tracer_Yellow",
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
"ACE_30Rnd_556x45_Stanag_Tracer_Dim"
};
initSpeed = -0.956;
ACE_barrelTwist=7;
ACE_barrelLength=16;
};
class arifle_Mk20_GL_F: mk20_base_F {
magazines[] = {
"30Rnd_556x45_Stanag",
"30Rnd_556x45_Stanag_Tracer_Red",
"30Rnd_556x45_Stanag_Tracer_Green",
"30Rnd_556x45_Stanag_Tracer_Yellow",
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
"ACE_30Rnd_556x45_Stanag_Tracer_Dim"
};
initSpeed = -0.956;
ACE_barrelTwist=7;
ACE_barrelLength=16;
@ -377,11 +490,21 @@ class CfgWeapons {
ACE_barrelLength=5.5;
};
class srifle_DMR_01_F: DMR_01_base_F {
magazines[] = {
"10Rnd_762x54_Mag",
"ACE_10Rnd_762x54_Tracer_mag"
};
initSpeed = -1.025;
ACE_barrelTwist=9.5;
ACE_barrelLength=24;
};
class srifle_EBR_F: EBR_base_F {
magazines[] = {
"20Rnd_762x51_Mag",
"ACE_20Rnd_762x51_Mag_Tracer_Dim",
"ACE_20Rnd_762x51_M118LR_Mag",
"ACE_20Rnd_762x51_Mag_SD"
};
initSpeed = -0.9724;
ACE_barrelTwist=12;
ACE_barrelLength=18;
@ -409,6 +532,12 @@ class CfgWeapons {
ACE_barrelLength=26;
};
class srifle_DMR_03_F: DMR_03_base_F {
magazines[] = {
"20Rnd_762x51_Mag",
"ACE_20Rnd_762x51_Mag_Tracer_Dim",
"ACE_20Rnd_762x51_M118LR_Mag",
"ACE_20Rnd_762x51_Mag_SD"
};
initSpeed = -0.9843;
ACE_barrelTwist=10;
ACE_barrelLength=20;
@ -424,6 +553,12 @@ class CfgWeapons {
ACE_barrelLength=24.41;
};
class srifle_DMR_06_camo_F: DMR_06_base_F {
magazines[] = {
"20Rnd_762x51_Mag",
"ACE_20Rnd_762x51_Mag_Tracer_Dim",
"ACE_20Rnd_762x51_M118LR_Mag",
"ACE_20Rnd_762x51_Mag_SD"
};
initSpeed = -0.9916;
ACE_barrelTwist=12;
ACE_barrelLength=22;

View File

@ -257,42 +257,6 @@
<Italian>Calibro: 5.56x45 mm Traccianti IR-DIM&lt;br /&gt;Munizioni: 30&lt;br /&gt;In uso su: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Italian>
<Russian>Калибр: 5.56x45 мм трассирующие под ПНВ&lt;br /&gt;Патронов: 30&lt;br /&gt;Применимы в: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Russian>
</Key>
<Key ID="STR_ACE_30Rnd_556x45_mag_SDName">
<English>5.56mm 30Rnd SD Mag</English>
<Hungarian>5,56 mm Hangtompítós 30-as Tár</Hungarian>
<German>5,56 mm 30-Schuss-Magazin SD</German>
<Spanish>Cargador de 30 balas SD de 5,56 mm</Spanish>
<French>Ch. 5,56mm 30Cps SD</French>
<Polish>Magazynek 5,56mm 30rd SD</Polish>
<Czech>5.56mm 30ks SD Zásobník</Czech>
<Portuguese>Carregador de 30 projéteis SD de 5,56mm</Portuguese>
<Italian>Caricatore 5.56mm 30Rnd Sil.</Italian>
<Russian>Магазин из 30-ти 5.56 мм дозвуковых</Russian>
</Key>
<Key ID="STR_ACE_30Rnd_556x45_mag_SDNameShort">
<English>5.56mm SD</English>
<Hungarian>5,56 mm Hangtompítós</Hungarian>
<German>5,56mm SD</German>
<Spanish>5,56 mm SD</Spanish>
<French>5,56mm SD</French>
<Polish>5,56mm SD</Polish>
<Czech>5.56mm SD</Czech>
<Portuguese>5,56mm SD</Portuguese>
<Italian>5.56 Sil.</Italian>
<Russian>5.56 мм дозвуковые</Russian>
</Key>
<Key ID="STR_ACE_30Rnd_556x45_mag_SDDescription">
<English>Caliber: 5.56x45 mm SD&lt;br /&gt;Rounds: 30&lt;br /&gt;Used in: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</English>
<Hungarian>Kaliber: 5,56x45 mm Hangtompítós&lt;br /&gt;Lőszerek: 30&lt;br /&gt;Használható: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Hungarian>
<German>Kaliber: 5,56x45 mm SD&lt;br /&gt;Patronen: 30&lt;br /&gt;Eingesetzt von: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</German>
<Spanish>Calibre: 5,56x45 mm SD&lt;br /&gt;Balas: 30&lt;br /&gt;Se usa en: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Spanish>
<French>Calibre: 5.56x45 mm SD&lt;br /&gt;Cartouches: 30&lt;br /&gt;Utilisé dans: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</French>
<Polish>Kaliber: 5,56 x 45 mm SD&lt;br /&gt;Pociski: 30&lt;br /&gt;Używane w: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Polish>
<Czech>Ráže: 5.56x45 mm SD&lt;br /&gt;Munice: 30&lt;br /&gt;Použití: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Czech>
<Portuguese>Calibre: 5,56x45 mm SD&lt;br /&gt;Projéteis: 30&lt;br /&gt;Usado em: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Portuguese>
<Italian>Calibro: 5.56x45 mm Sil.&lt;br /&gt;Munizioni: 30&lt;br /&gt;In uso su: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Italian>
<Russian>Калибр: 5.56x45 мм дозвуковые&lt;br /&gt;Патронов: 30&lt;br /&gt;Применимы в: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</Russian>
</Key>
<Key ID="STR_ACE_30Rnd_556x45_mag_APName">
<English>5.56mm 30Rnd AP Mag</English>
<Hungarian>5,56 mm Páncéltörő 30-as Tár</Hungarian>
@ -474,52 +438,7 @@
<Italian>Calibro: 7.62x51 mm AP&lt;br /&gt;Munizioni: 20&lt;br /&gt;In uso su: Mk18 ABR</Italian>
<Russian>Калибр: 7.62x51 мм дозвуковые&lt;br /&gt;Патронов: 20&lt;br /&gt;Применимы в: Mk18 ABR</Russian>
</Key>
<Key ID="STR_ACE_20Rnd_762x51_mag_LRDescription">
<English>Caliber: 7.62x51mm M118LR&lt;br /&gt;Rounds: 20&lt;br /&gt;Type: M14</English>
<Hungarian>Kaliber: 7,62x51 mm M118LR&lt;br /&gt;Lőszerek: 20&lt;br /&gt;Típus: M14</Hungarian>
<German>Kaliber: 7,62x51mm M118LR&lt;br /&gt;Schuss: 20&lt;br /&gt;Typ: M14</German>
<Spanish>Calibre: 7,62x51mm M118LR&lt;br /&gt;Balas: 20&lt;br /&gt;Tipo: M14</Spanish>
<Polish>Kaliber: 7,62 x 51 mm M118LR&lt;br /&gt;Pociski: 20&lt;br /&gt;Typ: M14</Polish>
<Czech>Kalibr: 7.62x51mm M118LR&lt;br /&gt;Náboje: 20&lt;br /&gt;Typ: M14</Czech>
<French>Calibre : 7,62x51mm M118LR&lt;br /&gt;Cartouches: 20&lt;br /&gt;Type: M14</French>
<Portuguese>Calibre: 7,62x51mm M118LR&lt;br /&gt;Projéteis: 20&lt;br /&gt;Tipo: M14</Portuguese>
<Russian>Калибр: 7.62x51mm M118LR&lt;br /&gt;Патронов: 20&lt;br /&gt;Тип: M14</Russian>
<Italian>Calibro: 7.62x51mm M118LR&lt;br /&gt;Munizioni:20&lt;br /&gt;In uso su: M14</Italian>
</Key>
<!-- .338 Lapua Magnum -->
<Key ID="STR_ACE_10Rnd_338_Mag_TracerName">
<English>.338 LM 10Rnd Tracer Mag</English>
<German>.338 LM 10-Schuss-Magazin Leuchtspur</German>
<Polish>Magazynek .338 LM 10rd Smugacz</Polish>
<Czech>.338 LM 10Rnd Svítící Zásobník</Czech>
</Key>
<Key ID="STR_ACE_10Rnd_338_Mag_TracerNameShort">
<English>.338 LM Tracer</English>
<German>.338 LM Leuchtspur</German>
<Polish>.338 LM Smugacz</Polish>
<Czech>.338 LM Svítící</Czech>
</Key>
<Key ID="STR_ACE_10Rnd_338_Mag_TracerDescription">
<English>Caliber: .338 Lapua Magnum Tracer&lt;br /&gt;Rounds: 10&lt;br /&gt;Used in: MAR-10</English>
<German>Kaliber: .338 Lapua Magnum Leuchtspur&lt;br /&gt;Schuss: 10&lt;br /&gt;Verwendet für: MAR-10</German>
<Polish>Kaliber: .338 Lapua Magnum Smugacz&lt;br /&gt;Pociski: 10&lt;br /&gt;Używane w: MAR-10</Polish>
</Key>
<Key ID="STR_ACE_10Rnd_388_Mag_Tracer_DimName">
<English>.338 LM 10Rnd IR-DIM Mag</English>
<German>.338 LM 10-Schuss-Magazin Leuchtspur IR-DIM</German>
<Polish>Magazynek .338 LM 10rd IR-DIM</Polish>
</Key>
<Key ID="STR_ACE_10Rnd_338_Mag_Tracer_DimNameShort">
<English>.338 LM IR-DIM</English>
<German>.338 LM IR-DIM</German>
<Polish>.338 LM IR-DIM</Polish>
<Czech>.338 LM IR-DIM</Czech>
</Key>
<Key ID="STR_ACE_10Rnd_338_Mag_Tracer_DimDescription">
<English>Caliber: .338 Lapua Magnum Tracer IR-DIM&lt;br /&gt;Rounds: 10&lt;br /&gt;Used in: MAR-10</English>
<German>Kaliber: .338 Lapua Magnum Leuchtspur IR-DIM&lt;br /&gt;Schuss: 10&lt;br /&gt;Verwendet für: MAR-10</German>
<Polish>Kaliber: .338 Lapua Magnum Smugacz IR-DIM&lt;br /&gt;Pociski: 10&lt;br /&gt;Używane w: MAR-10</Polish>
</Key>
<Key ID="STR_ACE_10Rnd_338_Mag_APName">
<English>.338 LM 10Rnd AP Mag</English>
<German>.338 LM 10-Schuss-Magazin Hartkern</German>
@ -536,22 +455,6 @@
<German>Kaliber: .338 Lapua Magnum Hartkern&lt;br /&gt;Schuss: 10&lt;br /&gt;Verwendet für: MAR-10</German>
<Polish>Kaliber: .338 Lapua Magnum AP&lt;br /&gt;Pociski: 10&lt;br /&gt;Używany w: MAR-10</Polish>
</Key>
<Key ID="STR_ACE_10Rnd_338_Mag_SDName">
<English>.338 LM 10Rnd SD Mag</English>
<German>.338 LM 10-Schuss-Magazin Unterschall</German>
<Polish>Magazynek .338 LM 10rd SD</Polish>
</Key>
<Key ID="STR_ACE_10Rnd_338_Mag_SDNameShort">
<English>.338 LM SD</English>
<German>.338 LM SD</German>
<Polish>.338 LM SD</Polish>
<Czech>.338 LM SD</Czech>
</Key>
<Key ID="STR_ACE_10Rnd_338_Mag_SDDescription">
<English>Caliber: .338 Lapua Magnum SD&lt;br /&gt;Rounds: 10&lt;br /&gt;Used in: MAR-10</English>
<German>Kaliber: .338 Lapua Magnum Unterschall&lt;br /&gt;Schuss: 10&lt;br /&gt;Verwendet für: MAR-10</German>
<Polish>Kaliber: .338 Lapua Magnum SD&lt;br /&gt;Pociski: 10&lt;br /&gt;Używany w: MAR-10</Polish>
</Key>
<!-- .338 Norma Magnum -->
<Key ID="STR_ACE_130Rnd_338_Mag_TracerName">
<English>.338 NM 130Rnd Tracer Belt</English>
@ -650,22 +553,6 @@
<German>Kaliber: 9,3x64mm Hartkern&lt;br /&gt;Schuss: 10&lt;br /&gt;Verwendet für: Cyrus</German>
<Polish>Kaliber: 9,3 x 64 mm AP&lt;br /&gt;Pociski: 10&lt;br /&gt;Używany w: Cyrus</Polish>
</Key>
<Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_SDName">
<English>9.3mm 10Rnd SD Mag</English>
<German>9,3mm 10-Schuss-Magazin Unterschall</German>
<Polish>Magazynek 9,3mm 10rd SD</Polish>
</Key>
<Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_SDNameShort">
<English>9.3mm SD</English>
<German>9,3mm SD</German>
<Polish>9,3mm SD</Polish>
<Czech>9.3mm SD</Czech>
</Key>
<Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_SDDescription">
<English>Caliber: 9.3x64mm SD&lt;br /&gt;Rounds: 10&lt;br /&gt;Used in: Cyrus</English>
<German>Kaliber: 9,3x64mm Unterschall&lt;br /&gt;Schuss: 10&lt;br /&gt;Verwendet für: Cyrus</German>
<Polish>Kaliber: 9,3 x 64 mm SD&lt;br /&gt;Pociski: 10&lt;br /&gt;Używany w: Cyrus</Polish>
</Key>
<!-- 9.3x64mm 150Rnd Belt-->
<Key ID="STR_ACE_150Rnd_93x64_Mag_TracerName">
<English>9.3mm 150Rnd Tracer Belt</English>
@ -716,16 +603,112 @@
<Polish>Kaliber: 9,3 x 64 mm AP&lt;br /&gt;Pociski: 150&lt;br /&gt;Używane w: Navid</Polish>
</Key>
<Key ID="STR_ACE_16Rnd_9x19_mag_Name">
<English>9x19mm 16Rnd Mag</English>
</Key>
<Key ID="STR_ACE_16Rnd_9x19_mag_NameShort">
<English>9x19mm</English>
</Key>
<Key ID="STR_ACE_16Rnd_9x19_mag_Description">
<English>9x19mm 16Rnd Mag</English>
</Key>
<Key ID="STR_ACE_30Rnd_9x19_mag_Name">
<English>9x19mm 30Rnd Mag</English>
</Key>
<Key ID="STR_ACE_30Rnd_9x19_mag_NameShort">
<English>9x19mm</English>
</Key>
<Key ID="STR_ACE_30Rnd_9x19_mag_Description">
<English>9x19mm 30Rnd Mag</English>
</Key>
<Key ID="STR_ACE_10Rnd_762x54_Tracer_mag_Name">
<English>7.62x54mm 10Rnd Tracer IR-DIM Mag</English>
</Key>
<Key ID="STR_ACE_10Rnd_762x54_Tracer_mag_NameShort">
<English>7.62mm IR-DIM</English>
</Key>
<Key ID="STR_ACE_10Rnd_762x54_Tracer_mag_Description">
<English>7.62x54mm 10Rnd Tracer IR-DIM Mag</English>
</Key>
<Key ID="STR_ACE_100Rnd_65x39_caseless_mag_Tracer_DimName">
<English>6.5mm 100Rnd Tracer IR-DIM Mag</English>
</Key>
<Key ID="STR_ACE_100Rnd_65x39_caseless_mag_Tracer_DimNameShort">
<English>6.5mm IR-DIM</English>
</Key>
<Key ID="STR_ACE_100Rnd_65x39_caseless_mag_Tracer_DimDescription">
<English>6.5mm 100Rnd Tracer IR-DIM Mag</English>
</Key>
<Key ID="STR_ACE_200Rnd_65x39_cased_Box_Tracer_DimName">
<English>6.5mm 200Rnd Tracer IR-DIM Belt</English>
</Key>
<Key ID="STR_ACE_200Rnd_65x39_cased_Box_Tracer_DimNameShort">
<English>6.5mm IR-DIM</English>
</Key>
<Key ID="STR_ACE_200Rnd_65x39_cased_Box_Tracer_DimDescription">
<English>6.5mm 200Rnd Tracer IR-DIM Belt</English>
</Key>
<Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk262_mag_Name">
<English>5.56mm 30Rnd Mag (Mk262)</English>
</Key>
<Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk262_mag_NameShort">
<English>5.56mm (Mk262)</English>
</Key>
<Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk262_mag_Description">
<English>Caliber: 5.56x45 mm NATO (Mk262)&lt;br /&gt;Rounds: 30</English>
</Key>
<Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_Name">
<English>5.56mm 30Rnd Mag (Mk318)</English>
</Key>
<Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_NameShort">
<English>5.56mm (Mk318)</English>
</Key>
<Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_Description">
<English>Caliber: 5.56x45 mm NATO (Mk318)&lt;br /&gt;Rounds: 30</English>
</Key>
<Key ID="STR_ACE_10Rnd_762x51_M118LR_Mag_Name">
<English>7.62mm 10Rnd Mag (M118LR)</English>
</Key>
<Key ID="STR_ACE_10Rnd_762x51_M118LR_Mag_NameShort">
<English>7.62mm (M118LR)</English>
</Key>
<Key ID="STR_ACE_10Rnd_762x51_M118LR_Mag_Description">
<English>Caliber: 7.62x51 mm NATO (M118LR)&lt;br /&gt;Rounds: 10</English>
</Key>
<Key ID="STR_ACE_20Rnd_762x51_M118LR_Mag_Name">
<English>7.62mm 20Rnd Mag (M118LR)</English>
</Key>
<Key ID="STR_ACE_20Rnd_762x51_M118LR_Mag_NameShort">
<English>7.62mm (M118LR)</English>
</Key>
<Key ID="STR_ACE_20Rnd_762x51_M118LR_Mag_Description">
<English>Caliber: 7.62x51 mm NATO (M118LR)&lt;br /&gt;Rounds: 20</English>
</Key>
<Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_0_Mag_Name">
<English>7.62mm 20Rnd Mag (Mk248 Mod 0)</English>
</Key>
<Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_0_Mag_NameShort">
<English>7.62mm (Mk248 Mod 0)</English>
</Key>
<Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_0_Mag_Description">
<English>Caliber: 7.62x67 mm NATO (Mk248 Mod 0)&lt;br /&gt;Rounds: 20</English>
</Key>
<Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_1_Mag_Name">
<English>7.62mm 20Rnd Mag (Mk248 Mod 1)</English>
</Key>
<Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_1_Mag_NameShort">
<English>7.62mm (Mk248 Mod 1)</English>
</Key>
<Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_1_Mag_Description">
<English>Caliber: 7.62x67 mm NATO (Mk248 Mod 1)&lt;br /&gt;Rounds: 20</English>
</Key>
<Key ID="STR_ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag_Name">
<English>7.62mm 20Rnd Mag (Berger Hybrid OTM)</English>
</Key>
<Key ID="STR_ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag_NameShort">
<English>7.62mm (OTM)</English>
</Key>
<Key ID="STR_ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag_Description">
<English>Caliber: 7.62x67 mm NATO (Berger Hybrid OTM)&lt;br /&gt;Rounds: 20</English>
</Key>
</Package>
</Project>

View File

@ -1,178 +1,178 @@
<?xml version="1.0" encoding="utf-8"?>
<Project name="ACE">
<Package name="Captives">
<Key ID="STR_ACE_Captives_SetCaptive">
<English>Take Prisoner</English>
<German>Gefangen nehmen</German>
<Spanish>Tomar prisionero</Spanish>
<French>Capturer le prisonnier</French>
<Polish>Weź więźnia</Polish>
<Czech>Zajmout Osobu</Czech>
<Italian>Arresta il Prigioniero</Italian>
<Portuguese>Tomar Prisioneiro</Portuguese>
<Hungarian>Foglyul ejtés</Hungarian>
<Russian>Взять в плен</Russian>
</Key>
<Key ID="STR_ACE_Captives_ReleaseCaptive">
<English>Free Prisoner</English>
<German>Gefangenen freilassen</German>
<Spanish>Liberar prisionero</Spanish>
<Polish>Wypuść więźnia</Polish>
<French>Libérer le prisonnier</French>
<Czech>Osvobodit Zajatce</Czech>
<Italian>Libera il Prigioniero</Italian>
<Portuguese>Libertar Prisioneiro</Portuguese>
<Hungarian>Fogoly szabadon elengedése</Hungarian>
<Russian>Освободить пленника</Russian>
</Key>
<Key ID="STR_ACE_Captives_EscortCaptive">
<English>Escort Prisoner</English>
<German>Gefangenen eskortieren</German>
<Spanish>Escoltar prisionero</Spanish>
<Polish>Eskortuj więźnia</Polish>
<French>Escorter le prisonnier</French>
<Czech>Eskortovat Zajatce</Czech>
<Italian>Scorta il Prigioniero</Italian>
<Portuguese>Escoltar Prisioneiro</Portuguese>
<Hungarian>Fogoly kísérése</Hungarian>
<Russian>Конвоировать пленника</Russian>
</Key>
<Key ID="STR_ACE_Captives_StopEscorting">
<English>Release Prisoner</English>
<German>Gefangenen loslassen</German>
<Spanish>Soltar prisionero</Spanish>
<Polish>Anuluj eskortowanie</Polish>
<French>Relâcher le prisonnier</French>
<Czech>Uvolnit Zajatce</Czech>
<Italian>Rilascia il Prigioniero</Italian>
<Portuguese>Largar Prisioneiro</Portuguese>
<Hungarian>Fogoly elengedése</Hungarian>
<Russian>Прекратить конвоирование</Russian>
</Key>
<Key ID="STR_ACE_Captives_NoCaptive">
<English>You need to take him as prisoner first!</English>
<German>Du musst ihn zuerst gefangen nehmen.</German>
<Spanish>Necesitas hacerle prisionero primero!</Spanish>
<Polish>Najpierw musisz wziąć go jako więźnia!</Polish>
<French>Vous devez d'abord le capturer!</French>
<Czech>Musíš ho nejdříve zajmout!</Czech>
<Italian>Prima devi arrestarlo!</Italian>
<Portuguese>Você deve tomá-lo como prisioneiro primeiro!</Portuguese>
<Hungarian>Először foglyul kell ejtened!</Hungarian>
<Russian>Вы должны сначала взять его в плен!</Russian>
</Key>
<Key ID="STR_ACE_Captives_LoadCaptive">
<English>Load Captive</English>
<German>Gefangenen einladen</German>
<Spanish>Cargar prisionero</Spanish>
<French>Embarquer le prisonnier</French>
<Polish>Załaduj więźnia</Polish>
<Czech>Naložit zajatce</Czech>
<Hungarian>Fogoly berakása</Hungarian>
<Russian>Загрузить пленного</Russian>
<Portuguese>Embarcar Prisioneiro</Portuguese>
</Key>
<Key ID="STR_ACE_Captives_UnloadCaptive">
<English>Unload Captive</English>
<German>Gefangenen ausladen</German>
<Spanish>Descargar prisionero</Spanish>
<French>Débarquer le prisonnier</French>
<Polish>Wyładuj więźnia</Polish>
<Czech>Vyložit zajatce</Czech>
<Hungarian>Fogoly kivevése</Hungarian>
<Russian>Выгрузить пленного</Russian>
<Portuguese>Desembarcar Prisioneiro</Portuguese>
</Key>
<Key ID="STR_ACE_Captives_CableTie">
<English>Cable Tie</English>
<German>Kabelbinder</German>
<Polish>Opaska zaciskowa</Polish>
<Spanish>Precinto</Spanish>
<French>Serflex</French>
<Czech>Stahovací Pásek</Czech>
<Portuguese>Algema Plástica</Portuguese>
<Italian>Fascietta</Italian>
<Hungarian>Gyorskötöző</Hungarian>
<Russian>Кабельная стяжка</Russian>
</Key>
<Key ID="STR_ACE_Captives_CableTieDescription">
<English>Cable ties that allow you to restrain prisoners.</English>
<German>Kabelbinder ermöglichen es, Gefangene zu fesseln.</German>
<Polish>Opaska zaciskowa pozwala na skrępowanie dłoni u więźnia.</Polish>
<Spanish>Los precintos permiten maniatar prisioneros</Spanish>
<French>Les Serflex permettent de menotter les prisonniers.</French>
<Czech>Stahovací pásky vám umožní zadržet vězně.</Czech>
<Portuguese>A algema plástica permite que você contenha prisioneiros.</Portuguese>
<Italian>Fascietta che ti consente di arrestare i prigionieri.</Italian>
<Hungarian>Gyorskötöző emberek fogjulejtéséhez.</Hungarian>
<Russian>Кабельные стяжки позволяют связывать пленников.</Russian>
</Key>
<Key ID="STR_ACE_Captives_FriskMenuHeader">
<English>Inventory of frisked person</English>
<German>Inventar der durchsuchten Person</German>
<French>Inventaire de la fouille</French>
<Spanish>Inventario de la persona cacheada</Spanish>
<Hungarian>Motozott személy felszerelése</Hungarian>
<Czech>Inventář prohledávané osoby</Czech>
<Polish>Ekwipunek rewidowanej osoby</Polish>
<Russian>Инвентарь обысканных лиц</Russian>
<Portuguese>Inventário da pessoa revistada</Portuguese>
</Key>
<Key ID="STR_ACE_Captives_FriskPerson">
<English>Frisk person</English>
<German>Person durchsuchen</German>
<French>Fouiller</French>
<Spanish>Cachear</Spanish>
<Czech>Prohledávaná osoba</Czech>
<Polish>Rewiduj osobę</Polish>
<Hungarian>Motozás</Hungarian>
<Russian>Обыскать человека</Russian>
<Portuguese>Revistar</Portuguese>
</Key>
<Key ID="STR_ACE_Captives_StartSurrendering">
<English>Surrender</English>
<French>Se rendre</French>
<German>Kapitulieren</German>
<Spanish>Rendirse</Spanish>
<Czech>Vzdát se</Czech>
<Polish>Poddaj się</Polish>
<Russian>Сдаться в плен</Russian>
</Key>
<Key ID="STR_ACE_Captives_StopSurrendering">
<English>Stop Surrendering</English>
<French>Arrêt de se rendre</French>
<German>Den Kampf erneut aufnehmen</German>
<Spanish>Dejar de rendirse</Spanish>
<Czech>Přestat se vzdávat</Czech>
<Polish>Podejmij walkę ponownie</Polish>
<Russian>Отменить сдачу в плен</Russian>
</Key>
<Key ID="STR_ACE_Captives_Zeus_OnlyAlive">
<English>Only use on alive units</English>
<French>Utilisation uniquement sur les unités en vie</French>
<German>Nur bei lebenden Einheiten verwendbar</German>
<Spanish>Utilizar solo en unidades vivas</Spanish>
<Czech>Použitelné jen na živé jednotky</Czech>
<Polish>Używaj tylko na żywych jednostkach</Polish>
<Russian>Применимо только к живым юнитам</Russian>
</Key>
<Key ID="STR_ACE_Captives_Zeus_OnlyInfantry">
<English>Only use on dismounted inf</English>
<French>Utilisation uniquement sur les infanteries</French>
<German>Nur bei abgesessener Infanterie verwendbar</German>
<Spanish>Utilizar solo en infanteria desmontada</Spanish>
<Czech>Použitelné jen na pěsích jednotkách</Czech>
<Polish>Używaj tylko na piechocie poza wszelkimi pojazdami</Polish>
<Russian>Применимо только к пехоте вне техники</Russian>
</Key>
<Key ID="STR_ACE_Captives_Zeus_NothingSelected">
<English>Nothing under mouse</English>
<French>Rien sous la souris</French>
<German>Es wurde nichts ausgewählt</German>
<Spanish>Nada bajo el ratón</Spanish>
<Czech>Nic není vybráno</Czech>
<Polish>Nie ma nic pod kursorem</Polish>
<Russian>Ничего не выделено</Russian>
</Key>
</Package>
<Package name="Captives">
<Key ID="STR_ACE_Captives_SetCaptive">
<English>Take Prisoner</English>
<German>Gefangen nehmen</German>
<Spanish>Tomar prisionero</Spanish>
<French>Capturer le prisonnier</French>
<Polish>Weź więźnia</Polish>
<Czech>Zajmout Osobu</Czech>
<Italian>Arresta il Prigioniero</Italian>
<Portuguese>Tomar Prisioneiro</Portuguese>
<Hungarian>Foglyul ejtés</Hungarian>
<Russian>Взять в плен</Russian>
</Key>
<Key ID="STR_ACE_Captives_ReleaseCaptive">
<English>Free Prisoner</English>
<German>Gefangenen freilassen</German>
<Spanish>Liberar prisionero</Spanish>
<Polish>Wypuść więźnia</Polish>
<French>Libérer le prisonnier</French>
<Czech>Osvobodit Zajatce</Czech>
<Italian>Libera il Prigioniero</Italian>
<Portuguese>Libertar Prisioneiro</Portuguese>
<Hungarian>Fogoly szabadon elengedése</Hungarian>
<Russian>Освободить пленника</Russian>
</Key>
<Key ID="STR_ACE_Captives_EscortCaptive">
<English>Escort Prisoner</English>
<German>Gefangenen eskortieren</German>
<Spanish>Escoltar prisionero</Spanish>
<Polish>Eskortuj więźnia</Polish>
<French>Escorter le prisonnier</French>
<Czech>Eskortovat Zajatce</Czech>
<Italian>Scorta il Prigioniero</Italian>
<Portuguese>Escoltar Prisioneiro</Portuguese>
<Hungarian>Fogoly kísérése</Hungarian>
<Russian>Конвоировать пленника</Russian>
</Key>
<Key ID="STR_ACE_Captives_StopEscorting">
<English>Release Prisoner</English>
<German>Gefangenen loslassen</German>
<Spanish>Soltar prisionero</Spanish>
<Polish>Anuluj eskortowanie</Polish>
<French>Relâcher le prisonnier</French>
<Czech>Uvolnit Zajatce</Czech>
<Italian>Rilascia il Prigioniero</Italian>
<Portuguese>Largar Prisioneiro</Portuguese>
<Hungarian>Fogoly elengedése</Hungarian>
<Russian>Прекратить конвоирование</Russian>
</Key>
<Key ID="STR_ACE_Captives_NoCaptive">
<English>You need to take him as prisoner first!</English>
<German>Du musst ihn zuerst gefangen nehmen.</German>
<Spanish>Necesitas hacerle prisionero primero!</Spanish>
<Polish>Najpierw musisz wziąć go jako więźnia!</Polish>
<French>Vous devez d'abord le capturer!</French>
<Czech>Musíš ho nejdříve zajmout!</Czech>
<Italian>Prima devi arrestarlo!</Italian>
<Portuguese>Você deve tomá-lo como prisioneiro primeiro!</Portuguese>
<Hungarian>Először foglyul kell ejtened!</Hungarian>
<Russian>Вы должны сначала взять его в плен!</Russian>
</Key>
<Key ID="STR_ACE_Captives_LoadCaptive">
<English>Load Captive</English>
<German>Gefangenen einladen</German>
<Spanish>Cargar prisionero</Spanish>
<French>Embarquer le prisonnier</French>
<Polish>Załaduj więźnia</Polish>
<Czech>Naložit zajatce</Czech>
<Hungarian>Fogoly berakása</Hungarian>
<Russian>Загрузить пленного</Russian>
<Portuguese>Embarcar Prisioneiro</Portuguese>
</Key>
<Key ID="STR_ACE_Captives_UnloadCaptive">
<English>Unload Captive</English>
<German>Gefangenen ausladen</German>
<Spanish>Descargar prisionero</Spanish>
<French>Débarquer le prisonnier</French>
<Polish>Wyładuj więźnia</Polish>
<Czech>Vyložit zajatce</Czech>
<Hungarian>Fogoly kivevése</Hungarian>
<Russian>Выгрузить пленного</Russian>
<Portuguese>Desembarcar Prisioneiro</Portuguese>
</Key>
<Key ID="STR_ACE_Captives_CableTie">
<English>Cable Tie</English>
<German>Kabelbinder</German>
<Polish>Opaska zaciskowa</Polish>
<Spanish>Precinto</Spanish>
<French>Serflex</French>
<Czech>Stahovací Pásek</Czech>
<Portuguese>Algema Plástica</Portuguese>
<Italian>Fascietta</Italian>
<Hungarian>Gyorskötöző</Hungarian>
<Russian>Кабельная стяжка</Russian>
</Key>
<Key ID="STR_ACE_Captives_CableTieDescription">
<English>Cable ties that allow you to restrain prisoners.</English>
<German>Kabelbinder ermöglichen es, Gefangene zu fesseln.</German>
<Polish>Opaska zaciskowa pozwala na skrępowanie dłoni u więźnia.</Polish>
<Spanish>Los precintos permiten maniatar prisioneros</Spanish>
<French>Les Serflex permettent de menotter les prisonniers.</French>
<Czech>Stahovací pásky vám umožní zadržet vězně.</Czech>
<Portuguese>A algema plástica permite que você contenha prisioneiros.</Portuguese>
<Italian>Fascietta che ti consente di arrestare i prigionieri.</Italian>
<Hungarian>Gyorskötöző emberek fogjulejtéséhez.</Hungarian>
<Russian>Кабельные стяжки позволяют связывать пленников.</Russian>
</Key>
<Key ID="STR_ACE_Captives_FriskMenuHeader">
<English>Inventory of frisked person</English>
<German>Inventar der durchsuchten Person</German>
<French>Inventaire de la fouille</French>
<Spanish>Inventario de la persona cacheada</Spanish>
<Hungarian>Motozott személy felszerelése</Hungarian>
<Czech>Inventář prohledávané osoby</Czech>
<Polish>Ekwipunek rewidowanej osoby</Polish>
<Russian>Инвентарь обысканных лиц</Russian>
<Portuguese>Inventário da pessoa revistada</Portuguese>
</Key>
<Key ID="STR_ACE_Captives_FriskPerson">
<English>Frisk person</English>
<German>Person durchsuchen</German>
<French>Fouiller</French>
<Spanish>Cachear</Spanish>
<Czech>Prohledávaná osoba</Czech>
<Polish>Rewiduj osobę</Polish>
<Hungarian>Motozás</Hungarian>
<Russian>Обыскать человека</Russian>
<Portuguese>Revistar</Portuguese>
</Key>
<Key ID="STR_ACE_Captives_StartSurrendering">
<English>Surrender</English>
<French>Capituler</French>
<German>Kapitulieren</German>
<Spanish>Rendirse</Spanish>
<Czech>Vzdát se</Czech>
<Polish>Poddaj się</Polish>
<Russian>Сдаться в плен</Russian>
</Key>
<Key ID="STR_ACE_Captives_StopSurrendering">
<English>Stop Surrendering</English>
<French>Annuler la capitulation</French>
<German>Den Kampf erneut aufnehmen</German>
<Spanish>Dejar de rendirse</Spanish>
<Czech>Přestat se vzdávat</Czech>
<Polish>Podejmij walkę ponownie</Polish>
<Russian>Отменить сдачу в плен</Russian>
</Key>
<Key ID="STR_ACE_Captives_Zeus_OnlyAlive">
<English>Only use on alive units</English>
<French>Utiliser uniquement sur unité vivante</French>
<German>Nur bei lebenden Einheiten verwendbar</German>
<Spanish>Utilizar solo en unidades vivas</Spanish>
<Czech>Použitelné jen na živé jednotky</Czech>
<Polish>Używaj tylko na żywych jednostkach</Polish>
<Russian>Применимо только к живым юнитам</Russian>
</Key>
<Key ID="STR_ACE_Captives_Zeus_OnlyInfantry">
<English>Only use on dismounted inf</English>
<French>Utiliser uniquement sur personnel à pied</French>
<German>Nur bei abgesessener Infanterie verwendbar</German>
<Spanish>Utilizar solo en infanteria desmontada</Spanish>
<Czech>Použitelné jen na pěsích jednotkách</Czech>
<Polish>Używaj tylko na piechocie poza wszelkimi pojazdami</Polish>
<Russian>Применимо только к пехоте вне техники</Russian>
</Key>
<Key ID="STR_ACE_Captives_Zeus_NothingSelected">
<English>Nothing under mouse</English>
<French>Rien sous la souris</French>
<German>Es wurde nichts ausgewählt</German>
<Spanish>Nada bajo el ratón</Spanish>
<Czech>Nic není vybráno</Czech>
<Polish>Nie ma nic pod kursorem</Polish>
<Russian>Ничего не выделено</Russian>
</Key>
</Package>
</Project>

View File

@ -69,9 +69,9 @@ class ACE_Settings {
* force = 0;
*
* Does it appear on the options menu?
* isClientSetable = 1;
* isClientSettable = 1;
*
* The following settings only apply when isClientSetable == 1
* The following settings only apply when isClientSettable == 1
* Stringtable entry with the setting name
* displayName = "$STR_ACE_Common_SettingName";
*
@ -90,14 +90,14 @@ class ACE_Settings {
/*class GVAR(enableNumberHotkeys) {
value = 1;
typeName = "BOOL";
isClientSetable = 1;
isClientSettable = 1;
displayName = "$STR_ACE_Common_EnableNumberHotkeys";
};*/
class GVAR(settingFeedbackIcons) {
value = 1;
typeName = "SCALAR";
force = 0;
isClientSetable = 1;
isClientSettable = 1;
displayName = "$STR_ACE_Common_SettingFeedbackIconsName";
description = "$STR_ACE_Common_SettingFeedbackIconsDesc";
values[] = {"Hide", "Top right, downwards", "Top right, to the left", "Top left, downwards", "Top left, to the right"};
@ -106,7 +106,7 @@ class ACE_Settings {
value = 0;
typeName = "SCALAR";
force = 0;
isClientSetable = 1;
isClientSettable = 1;
displayName = "$STR_ACE_Common_SettingProgressbarLocationName";
description = "$STR_ACE_Common_SettingProgressbarLocationDesc";
values[] = {"Top", "Bottom"};
@ -114,14 +114,14 @@ class ACE_Settings {
class GVAR(displayTextColor) {
value[] = {0,0,0,0.1};
typeName = "COLOR";
isClientSetable = 1;
isClientSettable = 1;
displayName = "$STR_ACE_Common_SettingDisplayTextColorName";
description = "$STR_ACE_Common_SettingDisplayTextColorDesc";
};
class GVAR(displayTextFontColor) {
value[] = {1,1,1,1};
typeName = "COLOR";
isClientSetable = 1;
isClientSettable = 1;
displayName = "$STR_ACE_Common_SettingDisplayTextFontColorName";
description = "$STR_ACE_Common_SettingDisplayTextFontColorDesc";
};

View File

@ -52,4 +52,4 @@ _lowestVolume = 1;
// Set Radio mod variables.
player setVariable ["tf_globalVolume", _lowestVolume];
player setVariable ["acre_sys_core_globalVolume", _lowestVolume];
if (!isNil "acre_api_fnc_setGlobalVolume") then { [_lowestVolume^0.33] call acre_api_fnc_setGlobalVolume; };

View File

@ -58,7 +58,7 @@ if (isNil _name) then {
/*_settingData = [
_name,
_typeName,
_isClientSetable,
_isClientSettable,
_localizedName,
_localizedDescription,
_possibleValues,
@ -68,7 +68,7 @@ if (isNil _name) then {
_settingData = [
_name,
_typeName,
(getNumber (_optionEntry >> "isClientSetable")) > 0,
(getNumber (_optionEntry >> "isClientSettable")) > 0,
getText (_optionEntry >> "displayName"),
getText (_optionEntry >> "description"),
getArray (_optionEntry >> "values"),

View File

@ -27,8 +27,8 @@ if (_setVolume) then {
player setVariable ["tf_unable_to_use_radio", false];
// ACRE2
[NORMAL_LEVEL] call acre_api_fnc_setGlobalVolume;
player setVariable ["acre_sys_core_isDisabled", false, true];
if (!isNil "acre_api_fnc_setGlobalVolume") then { [NORMAL_LEVEL^0.33] call acre_api_fnc_setGlobalVolume; };
player setVariable ["acre_sys_core_isDisabled", false, true];
} else {
// Vanilla Game
@ -40,7 +40,7 @@ if (_setVolume) then {
player setVariable ["tf_unable_to_use_radio", true];
// ACRE2
[MUTED_LEVEL] call acre_api_fnc_setGlobalVolume;
if (!isNil "acre_api_fnc_setGlobalVolume") then { [MUTED_LEVEL^0.33] call acre_api_fnc_setGlobalVolume; };
player setVariable ["acre_sys_core_isDisabled", true, true];
};

View File

@ -43,7 +43,7 @@
<Spanish>Opciones ACE</Spanish>
<Polish>Ustawienia ACE</Polish>
<Czech>Nastavení ACE</Czech>
<French>ACE Options</French>
<French>Options ACE</French>
<Russian>ACE Настройки</Russian>
<Portuguese>Opções do ACE</Portuguese>
<Hungarian>ACE Opciók</Hungarian>
@ -297,6 +297,7 @@
<Russian>Без голоса</Russian>
<Hungarian>Nincs hang</Hungarian>
<Italian>Senza voce</Italian>
<French>Pas de voix</French>
</Key>
<Key ID="STR_ACE_ACTION_ACCEPT_REQUEST_KEY_TITLE">
<English>Accept Requests</English>
@ -305,7 +306,7 @@
<Polish>Akceptuj prośby</Polish>
<Czech>Přijmout žádost</Czech>
<Italian>Accetta Richieste</Italian>
<Russian>Подтвердить запросы</Russian>
<French>Accepter requête</French>
<Russian>Принять запросы</Russian>
</Key>
<Key ID="STR_ACE_ACTION_DECLINE_REQUEST_KEY_TITLE">
@ -316,6 +317,7 @@
<Czech>Zamítnout žádost</Czech>
<Italian>Rifiuta Richieste</Italian>
<Russian>Отклонить запросы</Russian>
<French>Rejeter requête</French>
</Key>
<Key ID="STR_ACE_ACTION_ACCEPT_REQUEST_KEY_TOOLTIP">
<English>Accept Requests send by other players. These can be requests to use / share equipment, perform certain actions.</English>
@ -326,6 +328,7 @@
<Russian>Подтвердить запросы, посланные другими игроками. Это могут быть просьбы о передаче снаряжения или выполнении определённых действий.</Russian>
<Czech>Přijimutí žádosti poslané jinými hráči. Mohou to být žádosti k použítí/sdílení vybavení nebo k vykonání určité činnosti.</Czech>
<Russian>Принять запросы, отправленные другими игроками. Например, запросы на использование/совместное использование снаряжения, выполнение определенных действий</Russian>
<French>Accepter les requêtes d'autres joueurs. Comme l'utilisation / l'échange d'équipement, la réalistion d'actions.</French>
</Key>
<Key ID="STR_ACE_ACTION_DECLINE_REQUEST_KEY_TOOLTIP">
<English>Decline Requests send by other players. These can be requests to use / share equipment, perform certain actions.</English>
@ -336,6 +339,7 @@
<Russian>Отклонить запросы, посланные другими игроками. Это могут быть просьбы о передаче снаряжения или выполнении определённых действий.</Russian>
<Czech>Zamítnutí žádostii poslané jinými hráči. Mohou to být žádosti k použítí/sdílení vybavení nebo k vykonání určité činnosti.</Czech>
<Russian>Отклонить запросы, отправленные другими игроками. Например, запросы на использование/совместное использование снаряжения, выполнение определенных действий</Russian>
<French>Rejeter les requêtes d'autres joueurs. Comme l'utilisation / l'échange d'équipement, la réalistion d'actions.</French>
</Key>
<Key ID="STR_ACE_Common_SettingFeedbackIconsName">
<English>Feedback icons</English>
@ -344,7 +348,7 @@
<Italian>Icone informative</Italian>
<Russian>Иконки состояний</Russian>
<Polish>Ikony pomocnicze</Polish>
<French>Icônes de Feedback</French>
<French>Icones d'information</French>
<Czech>Pomocné ikony</Czech>
</Key>
<Key ID="STR_ACE_Common_SettingFeedbackIconsDesc">
@ -354,7 +358,7 @@
<Italian>Seleziona la posizione o disabilita le icone informative sul tuo schermo. Queste saranno mostrate per fornire informazioni aggiuntive sullo stato o sulle azioni del giocatore.</Italian>
<Russian>Выберите положение или или отключите отображение иконок состояний на Вашем экране. Эти иконки предоставят дополнительную информацию о состоянии персонажа и выполняемых действиях.</Russian>
<Polish>Ustaw pozycję lub wyłącz całkowicie ikony pomocnicze na ekranie. Te ikony dostarczają dodatkowych informacji na temat statusu Twojej postaci i wykonywanych przez nią akcji.</Polish>
<French>Sélectionner la position de ou désactiver les îcones de feedback sur votre écran. Ces îcones sont là pour vous fournir un feedback du statut votre personnage et les actions à effectuer.</French>
<French>Sélection de la position ou la désactivation des icones de feedback. Ces icones vous apportent des informations complémentaires sur votre status et sur les actions en cours.</French>
<Czech>Nastavuje pozici nebo vypíná pomocné ikony. Tyto ikony ukazují extra informace ke stavu postavy a vykonávaných činností.</Czech>
</Key>
<Key ID="STR_ACE_Common_SettingProgressbarLocationName">
@ -364,17 +368,17 @@
<Italian>Posizione della barra di avanzamento</Italian>
<Russian>Положение прогресс-бара</Russian>
<Polish>Lokalizacja paska postępu</Polish>
<French>Localisation de la barre de progression</French>
<French>Position de la barre de progression</French>
<Czech>Pozice ukazetele průběhu činnosti</Czech>
</Key>
<Key ID="STR_ACE_Common_SettingProgressbarLocationDesc">
<English>Set the desired location of the progress bar on your screen.</English>
<German>Setze die gewünschte Position der Fortschrittsanzeige fest</German>
<German>Setze die gewünschte Position der Fortschrittsanzeige fest.</German>
<Spanish>Seleccionar la ubicación deseada de la barra de progreso en tu pantalla</Spanish>
<Italian>Modifica la posizione su schermo della barra di avanzamento.</Italian>
<Russian>Установите желаемое положение строки состояния на экране.</Russian>
<Polish>Ustaw pożądaną lokalizację paska postępu na ekranie</Polish>
<French>Définisez l'endroit que vous désirez pour faire appraître la barre de progression.</French>
<French>Appliquer la postion de la barre de progression sur l'écran</French>
<Czech>Nastavuje pozici ukazetele průběhu činnosti na vaší obrazovce.</Czech>
</Key>
<Key ID="STR_ACE_Common_SettingDisplayTextColorName">
@ -384,7 +388,7 @@
<Italian>Sfondo dei Suggerimenti</Italian>
<Russian>Цвет фона всплывающих подсказок</Russian>
<Polish>Kolor tła powiadomień</Polish>
<French>Couleur de fond des astuces</French>
<French>Notification: couleur de l'arrière plan</French>
<Czech>Barva pozadí nápovědy</Czech>
</Key>
<Key ID="STR_ACE_Common_SettingDisplayTextColorDesc">
@ -394,7 +398,7 @@
<Italian>Il colore di sfondo dei suggerimenti dell'ACE.</Italian>
<Russian>Цвет фона всплывающий подсказок АСЕ.</Russian>
<Polish>Kolor tła dla powiadomień ACE</Polish>
<French>Définisez la couleur de fond pour les astuces fournies par ACE.</French>
<French>Notifications ACE: couleur de l'arrière plan</French>
<Czech>Barva pozadí ACE nápověd.</Czech>
</Key>
<Key ID="STR_ACE_Common_SettingDisplayTextFontColorName">
@ -404,17 +408,17 @@
<Italian>Testo dei Suggerimenti</Italian>
<Russian>Цвет шрифта всплывающих подсказок</Russian>
<Polish>Kolor tekstu powiadomień</Polish>
<French>Couleur du texte des astuces</French>
<French>Notification: couleur du texte</French>
<Czech>Barva fontu nápověd.</Czech>
</Key>
<Key ID="STR_ACE_Common_SettingDisplayTextFontColorDesc">
<English>The color of the text font from the ACE hints. This color is the default color for all text displayed through the ACE Hint system, if the hint text has no other color specified.</English>
<German>Wähle die Textfarbe für ACE-Hinweise. </German>
<German>Wähle die Textfarbe für ACE-Hinweise. Die gewählte Farbe wird als Standartfarbe der Hinweise angezeigt, wenn der Hinweis selbst keine spezifische Farbe hat. </German>
<Spanish>El color del texto de las notificaciones del ACE. Este es el color predeterminado para todo el texto que se muestra a través del sistema de notificaciones del ACE, si el texto de notificación no tiene otro color especificado.</Spanish>
<Italian>Il colore del testo dei suggerimenti dell'ACE. Questo è il colore standard per tutti i caratteri mostrati dal sistema di suggerimenti dell'ACE, se questo non è altrimenti specificato.</Italian>
<Russian>Цвет шрифта текста всплывающих подсказок АСЕ. Этот цвет является стандартным для всего текста, транслирующегося через систему подсказок АСЕ, если не установлено другого цвета для текста подсказок.</Russian>
<Polish>Kolor tekstu dla powiadomień ACE. Ten kolor jest domyślnym dla wszystkich tekstów wyświetlanych poprzez System Powiadomień ACE, jeżeli dla powiadomienia nie określono innego koloru.</Polish>
<French>Définisez la couleur du texte des astuces fournies par ACE. La couleur est celle par défaut affichée à travers toutes les astuces de ACE seulement si aucune couleur n'est défnie.</French>
<French>Notification ACE: couleur du texte. C'est la couleur par défaut de tout texte afficher dans les notifications ACE, si aucune couleur n'est spécifiée pour les notifications</French>
<Czech>Barva fontu ACE nápověd. Toto je standardní barva pro všechen text zobrazovaný ACE nápovědami, pokud nemá nápověda žádnou specifikanou barvu.</Czech>
</Key>
<Key ID="STR_ACE_Common_bananaDisplayName">
@ -435,7 +439,11 @@
<Italian>Una banana è un frutto commestibile, nello specifico una bacca cuoiosa, prodotto da un gran numero di grandi pianti erbacee dotate di fiori, della famiglia delle Musaceae.</Italian>
<Russian>Банан - это съедобный фрукт, ягода с ботанической точки зрения, произрастающий на нескольких видах травянистых растениях рода Банан (Musa).</Russian>
<Polish>Rodzaj roślin z rodziny bananowatych, obejmujący około 80 gatunków.&lt;br /&gt;Przedstawiciele są typowymi przedstawicielami flory międzyzwrotnikowej Azji, Afryki i Australii.&lt;br /&gt;Część gatunków dostarcza jadalnych owoców. Słowo banan pochodzi prawdopodobnie od arabskiego słowa banan, co oznacza palec, lub afrykańskiego języka wolof, w którym rośliny te określa się mianem banaana.</Polish>
<French>Une banane est un fruit comestible, botaniquement une baie, produite par plusieurs types de grandes plantes herbacées à fleurs dans le genre Musa.</French>
<French>Une banane est un fruit qui, d'un point de vue botanique, fait partie du groupe des baies. Produite par plusieurs sortes de grandes plantes à fleurs herbacées du type Musa.</French>
</Key>
</Package>
</Project>
<German>Die Bananen (Musa) sind eine Pflanzengattung in der Familie der Bananengewächse (Musaceae) innerhalb der Einkeimblättrigen Pflanzen (Monokotyledonen).</German>
</Key>
</Package>
</Project>

View File

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler. -->
<Project name="ACE">
<Package name="Disarming">
<Key ID="STR_ACE_Disarming_OpenInventory">
<English>Open Inventory</English>
<German>Öffne Inventar</German>
<Polish>Otwórz ekwipunek</Polish>
<Czech>Otevřít inventář</Czech>
</Key>
</Package>
</Project>
</Project>

View File

@ -1,53 +1,53 @@
<?xml version="1.0" encoding="utf-8"?>
<Project name="ACE">
<Package name="Dragging">
<Key ID="STR_ACE_Dragging_Drag">
<English>Drag</English>
<Russian>Тащить</Russian>
<Spanish>Arrastrar</Spanish>
<Polish>Ciągnij</Polish>
<Czech>Táhnout</Czech>
<French>Tracter</French>
<German>Ziehen</German>
<Portuguese>Arrastar</Portuguese>
<Italian>Trascina</Italian>
<Hungarian>Húzás</Hungarian>
</Key>
<Key ID="STR_ACE_Dragging_Drop">
<English>Release</English>
<Russian>Отпустить</Russian>
<Spanish>Soltar</Spanish>
<Polish>Puść</Polish>
<Czech>Položit</Czech>
<French>Lâcher</French>
<German>Loslassen</German>
<Portuguese>Largar</Portuguese>
<Italian>Lascia</Italian>
<Hungarian>Elengedés</Hungarian>
</Key>
<Key ID="STR_ACE_Dragging_UnableToDrag">
<English>Item to heavy</English>
<German>Gegenstand ist zu schwer</German>
<Spanish>Articulo demasiado pesado</Spanish>
<Polish>Przedmiot zbyt ciężki</Polish>
<French>Objet trop lourd</French>
<Portuguese>Não é possível carregar o item devido a seu peso</Portuguese>
<Italian>Non è possibile trascinare l'oggetto a causa del suo peso</Italian>
<Hungarian>Túl nehéz ahhoz, hogy elhúzd</Hungarian>
<Russian>Слишком тяжело</Russian>
<Czech>Moc težké</Czech>
</Key>
<Key ID="STR_ACE_Dragging_Carry">
<English>Carry</English>
<German>Tragen</German>
<Spanish>Portar</Spanish>
<Polish>Nieś</Polish>
<French>Porter</French>
<Czech>Nést</Czech>
<Portuguese>Carregar</Portuguese>
<Italian>Trascina</Italian>
<Hungarian>Felvesz</Hungarian>
<Russian>Нести</Russian>
</Key>
</Package>
<Package name="Dragging">
<Key ID="STR_ACE_Dragging_Drag">
<English>Drag</English>
<Russian>Тащить</Russian>
<Spanish>Arrastrar</Spanish>
<Polish>Ciągnij</Polish>
<Czech>Táhnout</Czech>
<French>Tracter</French>
<German>Ziehen</German>
<Portuguese>Arrastar</Portuguese>
<Italian>Trascina</Italian>
<Hungarian>Húzás</Hungarian>
</Key>
<Key ID="STR_ACE_Dragging_Drop">
<English>Release</English>
<Russian>Отпустить</Russian>
<Spanish>Soltar</Spanish>
<Polish>Puść</Polish>
<Czech>Položit</Czech>
<French>Lâcher</French>
<German>Loslassen</German>
<Portuguese>Largar</Portuguese>
<Italian>Lascia</Italian>
<Hungarian>Elengedés</Hungarian>
</Key>
<Key ID="STR_ACE_Dragging_UnableToDrag">
<English>Item to heavy</English>
<German>Gegenstand ist zu schwer</German>
<Spanish>Articulo demasiado pesado</Spanish>
<Polish>Przedmiot zbyt ciężki</Polish>
<French>Objet trop lourd</French>
<Portuguese>Não é possível carregar o item devido a seu peso</Portuguese>
<Italian>Non è possibile trascinare l'oggetto a causa del suo peso</Italian>
<Hungarian>Túl nehéz ahhoz, hogy elhúzd</Hungarian>
<Russian>Слишком тяжело</Russian>
<Czech>Moc težké</Czech>
</Key>
<Key ID="STR_ACE_Dragging_Carry">
<English>Carry</English>
<German>Tragen</German>
<Spanish>Portar</Spanish>
<Polish>Nieś</Polish>
<French>Porter</French>
<Czech>Nést</Czech>
<Portuguese>Carregar</Portuguese>
<Italian>Trascina</Italian>
<Hungarian>Felvesz</Hungarian>
<Russian>Нести</Russian>
</Key>
</Package>
</Project>

View File

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler. -->
<Project name="ACE">
<Package name="Explosives">
<Key ID="STR_ACE_Explosives_Menu">
@ -331,7 +330,7 @@
<German>Zeitzünder</German>
<Spanish>Temporizador</Spanish>
<Polish>Czasomierz</Polish>
<French>Retard</French>
<French>Minuteur</French>
<Czech>Časovač</Czech>
<Italian>Cronometro</Italian>
<Hungarian>Időzített</Hungarian>
@ -355,7 +354,7 @@
<German>Zeit einstellen</German>
<Spanish>Configurar tiempo</Spanish>
<Polish>Ustaw czas</Polish>
<French>Régler retard</French>
<French>Régler minuteur</French>
<Czech>Nastavit Čas</Czech>
<Italian>Modifica il conto alla rovescia</Italian>
<Hungarian>Idő állítása</Hungarian>
@ -403,7 +402,7 @@
<Polish>Linka naciągu</Polish>
<Spanish>Cable trampa</Spanish>
<German>Stolperdraht</German>
<French>Fil de butée</French>
<French>Fil de détente</French>
<Czech>Nástražný drát</Czech>
<Italian>Filo a Inciampo</Italian>
<Hungarian>Botlódrót</Hungarian>
@ -496,7 +495,7 @@
<Spanish>Recoger</Spanish>
<Czech>Sebrat</Czech>
<Polish>Podnieś</Polish>
<French>Prendre</French>
<French>Ramasser</French>
</Key>
</Package>
</Project>
</Project>

View File

@ -1,13 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<Project name="ACE">
<Package name="Frag">
<Key ID="STR_DN_ACE_FRAG">
<English>Disable Fragmentation</English>
<German>Keine Schrapnelle</German>
<Czech>Zakázat fragmentaci granátů</Czech>
<Spanish>Desactivar fragmentación</Spanish>
<Polish>Wyłącz fragmentację odłamków</Polish>
<Russian>Выключить разлёт осколков</Russian>
</Key>
</Package>
<Package name="Frag">
<Key ID="STR_DN_ACE_FRAG">
<English>Disable Fragmentation</English>
<German>Keine Schrapnelle</German>
<Czech>Zakázat fragmentaci granátů</Czech>
<Spanish>Desactivar fragmentación</Spanish>
<Polish>Wyłącz fragmentację odłamków</Polish>
<Russian>Выключить разлёт осколков</Russian>
<French>Désactive la fragmentation</French>
</Key>
</Package>
</Project>

View File

@ -247,7 +247,7 @@ class ACE_Settings {
class GVAR(showInThirdPerson) {
value = 0;
typeName = "BOOL";
isClientSetable = 1;
isClientSettable = 1;
displayName = "$STR_ACE_Goggles_ShowInThirdPerson";
};
};

View File

@ -38,7 +38,7 @@ class ACE_Settings {
class GVAR(DisableEarRinging) {
value = 0;
typeName = "BOOL";
isClientSetable = 1;
isClientSettable = 1;
displayName = "$STR_ACE_Hearing_DisableEarRinging";
};
};

View File

@ -56,7 +56,7 @@ if (!(missionNameSpace getVariable [QGVAR(disableVolumeUpdate), false])) then {
0.1 fadeSound _volume;
0.1 fadeSpeech _volume;
ACE_player setVariable ["tf_globalVolume", _volume];
if (!isNil "acre_api_fnc_setGlobalVolume") then {[_volume] call acre_api_fnc_setGlobalVolume;};
if (!isNil "acre_api_fnc_setGlobalVolume") then {[_volume^(0.33)] call acre_api_fnc_setGlobalVolume;};
};
//hintSilent format ["GVAR(currentDeafness), _Volume = %1, %2", GVAR(currentDeafness), _volume];

View File

@ -1,110 +1,110 @@
<?xml version="1.0" encoding="utf-8"?>
<Project name="ACE">
<Package name="Hearing">
<Key ID="STR_ACE_Hearing_EarPlugs_Name">
<English>Ear Plugs</English>
<German>Ohrenstöpsel</German>
<Spanish>Tapones para los oídos</Spanish>
<Polish>Stopery do uszu</Polish>
<Czech>Špunty</Czech>
<Russian>Беруши</Russian>
<French>Bouchons Anti-Bruits</French>
<Hungarian>Füldugó</Hungarian>
<Portuguese>Protetor auricular</Portuguese>
<Italian>Tappi auricolari</Italian>
</Key>
<Key ID="STR_ACE_Hearing_EarPlugs_Description">
<English>Protective Ear Plugs allow the wearer to be near loud weaponry without damage to his hearing.</English>
<German>Schützende Ohrenstöpsel, die es dem Träger ermöglichen, sich in der Nähe lauter Waffen aufzuhalten.</German>
<Spanish>Los tapones para los oídos permiten al usuario operar armamento ruidoso sin sufrir pérdida de audición.</Spanish>
<Polish>Stopery do uszu umożliwiają użytkownikowi przebywać w pobliżu głośnej broni bez poniesienia konsekwencji jaką jest utrata słuchu.</Polish>
<Czech>Ochranné špunty umožňují uživateli, aby neutrpěl zranění jeho sluchu v blízkosti hlasitých zbraní.</Czech>
<Russian>Беруши позволяют избежать потери слуха при близкой громкой стрельбе.</Russian>
<French>Bouchons Anti-Bruits pour la prévention des traumatismes sonores aigus.</French>
<Hungarian>Erősebb hanghatásoktól védő füldugó, megakadályozza a nagy hanggal járó fegyverzettől való halláskárosodást.</Hungarian>
<Portuguese>Protetor para ouvidos permitem que o usuário esteja próximo a ruídos sem danificar sua audição.</Portuguese>
<Italian>Proteggono l'apparato uditivo, permettendo a chi li indossa di resistere ai suoni particolarmente forti senza alcun danno.</Italian>
</Key>
<Key ID="STR_ACE_Hearing_EarPlugs_On">
<English>Earplugs in</English>
<German>Ohrenstöpsel drinnen</German>
<Spanish>Poner tapones</Spanish>
<Polish>Włóż stopery</Polish>
<Czech>Dát špunty do uší</Czech>
<Russian>Беруши надеты</Russian>
<French>Bouchons mis</French>
<Hungarian>Füldugó berakva</Hungarian>
<Portuguese>Protetores colocados</Portuguese>
<Italian>Indossa i tappi auricolari</Italian>
</Key>
<Key ID="STR_ACE_Hearing_EarPlugs_Off">
<English>Earplugs out</English>
<German>Ohrenstöpsel raus</German>
<Spanish>Quitar tapones</Spanish>
<Polish>Wyjmij stopery</Polish>
<Czech>Vyndat špunty z uší</Czech>
<Russian>Беруши сняты</Russian>
<French>Bouchons enlevés</French>
<Hungarian>Füldugó kivéve</Hungarian>
<Portuguese>Protetores retirados</Portuguese>
<Italian>Levati i tappi auricolari</Italian>
</Key>
<Key ID="STR_ACE_Hearing_EarPlugs_Are_On">
<English>Earplugs in</English>
<German>Ohrenstöpsel drinnen</German>
<Spanish>Tapones puestos</Spanish>
<Polish>Stopery włożone</Polish>
<Czech>Špunty v uších</Czech>
<Russian>Беруши надеты</Russian>
<French>Bouchons mis</French>
<Hungarian>Füldugó berakva</Hungarian>
<Portuguese>Protetores colocados</Portuguese>
<Italian>Indossa i tappi auricolari</Italian>
</Key>
<Key ID="STR_ACE_Hearing_EarPlugs_Are_Off">
<English>Earplugs out</English>
<German>Ohrenstöpsel raus</German>
<Spanish>Tapones quitados</Spanish>
<Polish>Stopery wyjęte</Polish>
<Czech>Špunty venku z uší</Czech>
<Russian>Беруши сняты</Russian>
<French>Bouchons enlevés</French>
<Hungarian>Füldugó kivéve</Hungarian>
<Portuguese>Protetores retirados</Portuguese>
<Italian>Levati i tappi auricolari</Italian>
</Key>
<Key ID="STR_ACE_Hearing_NoPlugs">
<English>You have no ear plugs</English>
<German>Keine Ohrenstöpsel im Inventar</German>
<Spanish>No tienes tapones para los oídos</Spanish>
<Polish>Nie masz stoperów</Polish>
<Czech>Nemáš žádné špunty</Czech>
<Russian>У вас нет беруш</Russian>
<French>Vous n'avez pas de Bouchons Anti-Bruits</French>
<Hungarian>Nincs füldugód</Hungarian>
<Portuguese>Você não possui protetores auriculares</Portuguese>
<Italian>Non hai i tappi auricolari</Italian>
</Key>
<Key ID="STR_ACE_Hearing_Inventory_Full">
<English>No inventory space</English>
<German>Kein Platz im Inventar</German>
<Spanish>Sin espacio en el inventario</Spanish>
<Polish>Brak miejsca w ekwipunku</Polish>
<French>Pas de place dans l'inventaire</French>
<Czech>Není místo v inventáři</Czech>
<Italian>Non hai abbastanza spazio</Italian>
<Portuguese>Não há espaço no inventário</Portuguese>
<Hungarian>Nincs több hely</Hungarian>
<Russian>Нет места в инвентаре</Russian>
</Key>
<Key ID="STR_ACE_Hearing_DisableEarRinging">
<English>Disable ear ringing</English>
<French>Désactiver les tintements d'oreille</French>
<Spanish>Desactivar zumbido de oídos</Spanish>
<Russian>Отключить эффект баротравмы</Russian>
<German>Knalltrauma deaktivieren</German>
<Czech>Vypnout pískání v uších</Czech>
<Polish>Wyłącz dzwonienie w uszach</Polish>
</Key>
</Package>
<Package name="Hearing">
<Key ID="STR_ACE_Hearing_EarPlugs_Name">
<English>Ear Plugs</English>
<German>Ohrenstöpsel</German>
<Spanish>Tapones para los oídos</Spanish>
<Polish>Stopery do uszu</Polish>
<Czech>Špunty</Czech>
<Russian>Беруши</Russian>
<French>Bouchons Anti-Bruits</French>
<Hungarian>Füldugó</Hungarian>
<Portuguese>Protetor auricular</Portuguese>
<Italian>Tappi auricolari</Italian>
</Key>
<Key ID="STR_ACE_Hearing_EarPlugs_Description">
<English>Protective Ear Plugs allow the wearer to be near loud weaponry without damage to his hearing.</English>
<German>Schützende Ohrenstöpsel, die es dem Träger ermöglichen, sich in der Nähe lauter Waffen aufzuhalten ohne Gehörschäden davonzutragen..</German>
<Spanish>Los tapones para los oídos permiten al usuario operar armamento ruidoso sin sufrir pérdida de audición.</Spanish>
<Polish>Stopery do uszu umożliwiają użytkownikowi przebywać w pobliżu głośnej broni bez poniesienia konsekwencji jaką jest utrata słuchu.</Polish>
<Czech>Ochranné špunty umožňují uživateli, aby neutrpěl zranění jeho sluchu v blízkosti hlasitých zbraní.</Czech>
<Russian>Беруши позволяют избежать потери слуха при близкой громкой стрельбе.</Russian>
<French>Bouchons Anti-Bruits pour la prévention des traumatismes sonores aigus.</French>
<Hungarian>Erősebb hanghatásoktól védő füldugó, megakadályozza a nagy hanggal járó fegyverzettől való halláskárosodást.</Hungarian>
<Portuguese>Protetor para ouvidos permitem que o usuário esteja próximo a ruídos sem danificar sua audição.</Portuguese>
<Italian>Proteggono l'apparato uditivo, permettendo a chi li indossa di resistere ai suoni particolarmente forti senza alcun danno.</Italian>
</Key>
<Key ID="STR_ACE_Hearing_EarPlugs_On">
<English>Earplugs in</English>
<German>Ohrenstöpsel rein</German>
<Spanish>Poner tapones</Spanish>
<Polish>Włóż stopery</Polish>
<Czech>Dát špunty do uší</Czech>
<Russian>Беруши надеты</Russian>
<French>Bouchons mis</French>
<Hungarian>Füldugó berakva</Hungarian>
<Portuguese>Protetores colocados</Portuguese>
<Italian>Indossa i tappi auricolari</Italian>
</Key>
<Key ID="STR_ACE_Hearing_EarPlugs_Off">
<English>Earplugs out</English>
<German>Ohrenstöpsel raus</German>
<Spanish>Quitar tapones</Spanish>
<Polish>Wyjmij stopery</Polish>
<Czech>Vyndat špunty z uší</Czech>
<Russian>Беруши сняты</Russian>
<French>Bouchons enlevés</French>
<Hungarian>Füldugó kivéve</Hungarian>
<Portuguese>Protetores retirados</Portuguese>
<Italian>Levati i tappi auricolari</Italian>
</Key>
<Key ID="STR_ACE_Hearing_EarPlugs_Are_On">
<English>Earplugs in</English>
<German>Ohrenstöpsel drinnen</German>
<Spanish>Tapones puestos</Spanish>
<Polish>Stopery włożone</Polish>
<Czech>Špunty v uších</Czech>
<Russian>Беруши надеты</Russian>
<French>Bouchons mis</French>
<Hungarian>Füldugó berakva</Hungarian>
<Portuguese>Protetores colocados</Portuguese>
<Italian>Indossa i tappi auricolari</Italian>
</Key>
<Key ID="STR_ACE_Hearing_EarPlugs_Are_Off">
<English>Earplugs out</English>
<German>Ohrenstöpsel raus</German>
<Spanish>Tapones quitados</Spanish>
<Polish>Stopery wyjęte</Polish>
<Czech>Špunty venku z uší</Czech>
<Russian>Беруши сняты</Russian>
<French>Bouchons enlevés</French>
<Hungarian>Füldugó kivéve</Hungarian>
<Portuguese>Protetores retirados</Portuguese>
<Italian>Levati i tappi auricolari</Italian>
</Key>
<Key ID="STR_ACE_Hearing_NoPlugs">
<English>You have no ear plugs</English>
<German>Keine Ohrenstöpsel im Inventar</German>
<Spanish>No tienes tapones para los oídos</Spanish>
<Polish>Nie masz stoperów</Polish>
<Czech>Nemáš žádné špunty</Czech>
<Russian>У вас нет беруш</Russian>
<French>Vous n'avez pas de Bouchons Anti-Bruits</French>
<Hungarian>Nincs füldugód</Hungarian>
<Portuguese>Você não possui protetores auriculares</Portuguese>
<Italian>Non hai i tappi auricolari</Italian>
</Key>
<Key ID="STR_ACE_Hearing_Inventory_Full">
<English>No inventory space</English>
<German>Kein Platz im Inventar</German>
<Spanish>Sin espacio en el inventario</Spanish>
<Polish>Brak miejsca w ekwipunku</Polish>
<French>Pas de place dans l'inventaire</French>
<Czech>Není místo v inventáři</Czech>
<Italian>Non hai abbastanza spazio</Italian>
<Portuguese>Não há espaço no inventário</Portuguese>
<Hungarian>Nincs több hely</Hungarian>
<Russian>Нет места в инвентаре</Russian>
</Key>
<Key ID="STR_ACE_Hearing_DisableEarRinging">
<English>Disable ear ringing</English>
<French>Désactiver le bourdonnement</French>
<Spanish>Desactivar zumbido de oídos</Spanish>
<Russian>Отключить эффект баротравмы</Russian>
<German>Knalltrauma deaktivieren</German>
<Czech>Vypnout pískání v uších</Czech>
<Polish>Wyłącz dzwonienie w uszach</Polish>
</Key>
</Package>
</Project>

View File

@ -20,7 +20,7 @@ class ACE_Settings {
class GVAR(AlwaysUseCursorSelfInteraction) {
value = 0;
typeName = "BOOL";
isClientSetable = 1;
isClientSettable = 1;
displayName = "$STR_ACE_Interact_Menu_AlwaysUseCursorSelfInteraction";
};
};

View File

@ -1,50 +1,51 @@
<?xml version="1.0" encoding="utf-8"?>
<Project name="ACE">
<Package name="Interact_Menu">
<Key ID="STR_ACE_Interact_Menu_AlwaysUseCursorSelfInteraction">
<English>Always display cursor for self interaction</English>
<German>Immer den Cursor für Selbst-Interaktionen anzeigen.</German>
<Spanish>Mostrar siempre el cursor para la interacción propia</Spanish>
<Russian>Всегда показывать курсор для взаимодействия с собой</Russian>
<Czech>Zobrazit kurzor v menu pro vlastní interakci</Czech>
<Polish>Zawsze wyświetlaj kursor dla własnej interakcji</Polish>
<French>Toujours afficher le curseur pour les interactions sur soi-même</French>
</Key>
<Key ID="STR_ACE_Interact_Menu_InteractKey">
<English>Interact Key</English>
<German>Fremdinteraktionsmenü-Taste</German>
<Spanish>Tecla de interacción</Spanish>
<Russian>Клавиша взаимодействия</Russian>
<Czech>Klávesa pro interakci</Czech>
<Polish>Klawisz interakcji</Polish>
<French>Touche d'interaction</French>
</Key>
<Key ID="STR_ACE_Interact_Menu_SelfInteractKey">
<English>Self Interaction Key</English>
<German>Eigeninteraktionsmenü-Taste</German>
<Spanish>Tecla de interacción propia</Spanish>
<Russian>Клавиша взаимодействия (с собой)</Russian>
<Czech>Klávesa pro vlastní interakci</Czech>
<Polish>Klawisz własnej interakcji</Polish>
<French>Touche d'Interaction sur soi-même</French>
</Key>
<Key ID="STR_ACE_Interact_Menu_SelfActionsRoot">
<English>Self Actions</English>
<German>Selbst-Aktionen</German>
<Spanish>Acciones propias</Spanish>
<Russian>Действия с собой</Russian>
<Czech>Vlastní akce</Czech>
<Polish>Własne akcje</Polish>
<French>Actions sur soi-même</French>
</Key>
<Key ID="STR_ACE_Interact_Menu_VehicleActionsRoot">
<English>Vehicle Actions</English>
<German>Fahrzeug-Aktionen</German>
<Spanish>Acciones de vehículo</Spanish>
<Russian>Действия на транспорте</Russian>
<Czech>Interakce s vozidly</Czech>
<Polish>Akcje pojazdu</Polish>
<French>Actions sur les véhicules</French>
</Key>
</Package>
<Package name="Interact_Menu">
<Key ID="STR_ACE_Interact_Menu_AlwaysUseCursorSelfInteraction">
<English>Always display cursor for self interaction</English>
<French>Toujours afficher le curseur pour l'interaction personnelle</French>
<German>Immer den Cursor für Selbst-Interaktionen anzeigen.</German>
<Spanish>Mostrar siempre el cursor para la interacción propia</Spanish>
<Russian>Всегда показывать курсор для взаимодействия с собой</Russian>
<Czech>Zobrazit kurzor v menu pro vlastní interakci</Czech>
<Polish>Zawsze wyświetlaj kursor dla własnej interakcji</Polish>
<French>Toujours afficher le curseur pour les interactions sur soi-même</French>
</Key>
<Key ID="STR_ACE_Interact_Menu_InteractKey">
<English>Interact Key</English>
<German>Fremdinteraktionsmenü-Taste</German>
<Spanish>Tecla de interacción</Spanish>
<Russian>Клавиша взаимодействия</Russian>
<Czech>Klávesa pro interakci</Czech>
<Polish>Klawisz interakcji</Polish>
<French>Touche d'interaction</French>
</Key>
<Key ID="STR_ACE_Interact_Menu_SelfInteractKey">
<English>Self Interaction Key</English>
<German>Eigeninteraktionsmenü-Taste</German>
<Spanish>Tecla de interacción propia</Spanish>
<Russian>Клавиша взаимодействия (с собой)</Russian>
<Czech>Klávesa pro vlastní interakci</Czech>
<Polish>Klawisz własnej interakcji</Polish>
<French>Touche d'interaction personnelle</French>
</Key>
<Key ID="STR_ACE_Interact_Menu_SelfActionsRoot">
<English>Self Actions</English>
<German>Selbst-Aktionen</German>
<Spanish>Acciones propias</Spanish>
<Russian>Действия с собой</Russian>
<Czech>Vlastní akce</Czech>
<Polish>Własne akcje</Polish>
<French>Interaction personnelle</French>
</Key>
<Key ID="STR_ACE_Interact_Menu_VehicleActionsRoot">
<English>Vehicle Actions</English>
<German>Fahrzeug-Aktionen</German>
<Spanish>Acciones de vehículo</Spanish>
<Russian>Действия на транспорте</Russian>
<Czech>Interakce s vozidly</Czech>
<Polish>Akcje pojazdu</Polish>
<French>Interaction véhicule</French>
</Key>
</Package>
</Project>

File diff suppressed because it is too large Load Diff

View File

@ -18,7 +18,7 @@ class ACE_Settings {
class GVAR(inventoryDisplaySize) {
value = 0;
typeName = "SCALAR";
isClientSetable = 1;
isClientSettable = 1;
displayName = "$STR_ACE_Inventory_SettingName";
description = "$STR_ACE_Inventory_SettingDescription";
values[] = {"Normal (Default Size)", "Medium", "Bigger"};

View File

@ -1,23 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<Project name="ACE">
<Package name="Inventory">
<Key ID="STR_ACE_Inventory_SettingName">
<English>Make Inventory Display Bigger</English>
<German>Erhöhe die angezeigte Inventargröße</German>
<Spanish>Hacer la pantalla de inventario mas grande</Spanish>
<Russian>Сделать окно инвентаря больше</Russian>
<Czech>Zvětšit zobrazení inventáře</Czech>
<Polish>Powiększ UI ekwipunku</Polish>
<French>Augmente la taille d'affichage de l'inventaire</French>
</Key>
<Key ID="STR_ACE_Inventory_SettingDescription">
<English>Normally inventory display is scaled by UI size. This allows scaling the Inventory UI size up, but doesn't increase font size allowing more rows displayed.</English>
<German>Im Regelfall wird die Inventargröße durch die Größe der Nutzeroberfläche bestimmt. Diese Einstellung erlaubt es das Inventar unter Ausschluss der Schriftgröße zu vergrößern. Dadurch können mehr Gegenstände angezeigt werden.</German>
<Spanish>Normalmente la pantalla de inventario se escala por el tamaño de la interfaz de usuario. Esto permite ampliar el tamaño de la interfaz de usuario de inventario, pero no aumenta el tamaño de fuente, permitiendo mostrar más filas.</Spanish>
<Russian>Обычно, окно инвентаря зависит от размеров пользовательского интерфейса. Эта настройка позволяет увеличить размер окна инвентаря в пользовательском интерфейсе, не увеличивая размера шрифтов, так что отображется большее количество строк.</Russian>
<Czech>Normálně se velikost invetáře škáluje s velikostí UI. Toto nastavení dovoluje škálování velikost inventáře ale nežvětšuje velikost fontu. To dovoluje zobrazení více řad v inventáři.</Czech>
<Polish>Ekwipunek skalowany jest poprzez rozmiar UI. Ta opcja pozwala powiększyć rozmiar UI ekwipunku, lecz nie zwiększa rozmiaru fontu pozwalając na wyświetlanie większej ilości wierszy.</Polish>
<French>Normalement, l'inventaire est automatiquement mesuré par la taille de l'interface de l'utilisateur. Cette option vous permet d'augmenter la taille d'affichage de l'inventaire, cependant, cette option n'augmente pas la police d'écriture et le nombre de place.</French>
</Key>
</Package>
<Package name="Inventory">
<Key ID="STR_ACE_Inventory_SettingName">
<English>Make Inventory Display Bigger</English>
<German>Erhöhe die angezeigte Inventargröße</German>
<Spanish>Hacer la pantalla de inventario mas grande</Spanish>
<Russian>Сделать окно инвентаря больше</Russian>
<Czech>Zvětšit zobrazení inventáře</Czech>
<Polish>Powiększ UI ekwipunku</Polish>
<French>Agrandir la taille d'affichage de l'inventaire</French>
</Key>
<Key ID="STR_ACE_Inventory_SettingDescription">
<English>Normally inventory display is scaled by UI size. This allows scaling the Inventory UI size up, but doesn't increase font size allowing more rows displayed.</English>
<German>Im Regelfall wird die Inventargröße durch die Größe der Nutzeroberfläche bestimmt. Diese Einstellung erlaubt es das Inventar unter Ausschluss der Schriftgröße zu vergrößern. Dadurch können mehr Gegenstände angezeigt werden.</German>
<Spanish>Normalmente la pantalla de inventario se escala por el tamaño de la interfaz de usuario. Esto permite ampliar el tamaño de la interfaz de usuario de inventario, pero no aumenta el tamaño de fuente, permitiendo mostrar más filas.</Spanish>
<Russian>Обычно, окно инвентаря зависит от размеров пользовательского интерфейса. Эта настройка позволяет увеличить размер окна инвентаря в пользовательском интерфейсе, не увеличивая размера шрифтов, так что отображется большее количество строк.</Russian>
<Czech>Normálně se velikost invetáře škáluje s velikostí UI. Toto nastavení dovoluje škálování velikost inventáře ale nežvětšuje velikost fontu. To dovoluje zobrazení více řad v inventáři.</Czech>
<Polish>Ekwipunek skalowany jest poprzez rozmiar UI. Ta opcja pozwala powiększyć rozmiar UI ekwipunku, lecz nie zwiększa rozmiaru fontu pozwalając na wyświetlanie większej ilości wierszy.</Polish>
<French>L'inventaire est normalement affiché en fonction de la taille de l'UI. Cette option permet d'agrandir l'affichage de l'inventaire, mais n'a aucun effet sur la taille des polices permettant d'afficher plus de ligne</French>
</Key>
</Package>
</Project>

View File

@ -12,20 +12,10 @@ class RscLine;
class RscInGameUI {
class ACE_RscOptics_javelin {
idd = 300;
controls[] = { "ACE_javelin_elements_group", "CA_Distance", "ACE_Targeting" }; //, "ACE_TargetingConstrains", "ACE_TargetingGate", "ACE_TargetingLines"};
controls[] = { "ACE_javelin_elements_group", "ACE_Targeting" }; //, "ACE_TargetingConstrains", "ACE_TargetingGate", "ACE_TargetingLines"};
onLoad = QUOTE(_this call FUNC(onOpticLoad));
onUnload = "uiNameSpace setVariable ['ACE_RscOptics_javelin',nil];uiNameSpace setVariable ['ACE_RscOptics_javelin_PFH',nil];";
class CA_Distance: RscOpticsValue {
idc = 151;
sizeEx = "0";
colorText[] = {0,0,0,0};
x = 0;
y = 0;
w = 0;
h = 0;
};
class ACE_javelin_elements_group: RscControlsGroup
{
x = "SafezoneX";
@ -45,6 +35,16 @@ class RscInGameUI {
height = 0.001;
};
class Controls {
class CA_Distance: RscOpticsValue {
idc = 151;
sizeEx = "0";
colorText[] = {0,0,0,0};
x = 0;
y = 0;
w = 0;
h = 0;
};
class ACE_javelin_Day_mode_off: RscPicture {
idc = 1001;
x = "(SafezoneX+(SafezoneW -SafezoneH*3/4)/2)+ (0.03/4)*3*SafezoneH - SafezoneX";
@ -58,7 +58,7 @@ class RscInGameUI {
idc = 160;
colorText[] = {0.2941,0.8745,0.2157,1};
};
class ACE_javelin_WFOV_mode_off: ACE_javelin_Day_mode_off {
class CA_Javelin_WFOV_mode_off : ACE_javelin_Day_mode_off {
idc = 1004;
x = "(SafezoneX+(SafezoneW -SafezoneH*3/4)/2)+ (0.307/4)*3*SafezoneH - SafezoneX";
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\wfov_co.paa";
@ -81,13 +81,6 @@ class RscInGameUI {
height = 0.001;
};
class Controls {
class ACE_javelin_WFOV_mode: ACE_javelin_WFOV_mode_off {
idc = -1;
y = "0.031*SafezoneH - SafezoneY";
x = "((SafezoneW -SafezoneH*3/4)/2)+ (0.307/4)*3*SafezoneH - SafezoneX";
colorText[] = {0.2941,0.8745,0.2157,1};
};
/*
class StadiaL: RscLine {
x = "0.4899*SafezoneW - SafezoneX";
y = "0.171*SafezoneH - SafezoneY";
@ -130,10 +123,10 @@ class RscInGameUI {
h = 0;
colorText[] = {0.2941,0.8745,0.2157,1};
};
*/
};
};
class ACE_javelin_NFOV_mode_off: ACE_javelin_Day_mode_off {
class CA_Javelin_NFOV_mode_off: ACE_javelin_Day_mode_off {
idc = 1003;
x = "(SafezoneX+(SafezoneW -SafezoneH*3/4)/2)+ (0.586/4)*3*SafezoneH - SafezoneX";
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\nfov_co.paa";
@ -156,13 +149,6 @@ class RscInGameUI {
height = 0.001;
};
class Controls {
class ACE_javelin_NFOV_mode: ACE_javelin_NFOV_mode_off {
idc = 699003;
x = "((SafezoneW -SafezoneH*3/4)/2)+ (0.586/4)*3*SafezoneH - SafezoneX";
y = "0.031*SafezoneH - SafezoneY";
colorText[] = {0.2941,0.8745,0.2157,1};
};
/*
class StadiaL: RscLine {
x = "0.4788*SafezoneW - SafezoneX";
y = "0.171*SafezoneH - SafezoneY";
@ -205,7 +191,7 @@ class RscInGameUI {
h = "0.1895*SafezoneH";
colorText[] = {0.2941,0.8745,0.2157,1};
};
*/
};
};

View File

@ -4,10 +4,10 @@ TRACE_1("enter", _this);
private["_player", "_currentFireMode"];
_currentFireMode = ACE_player getVariable["ace_missileguidance_attackProfile", "TOP"];
if(_currentFireMode == "LIN") then {
_currentFireMode = "TOP";
_currentFireMode = ACE_player getVariable["ace_missileguidance_attackProfile", "JAV_TOP"];
if(_currentFireMode == "JAV_DIR") then {
_currentFireMode = "JAV_TOP";
} else {
_currentFireMode = "LIN";
_currentFireMode = "JAV_DIR";
};
ACE_player setVariable["ace_missileguidance_attackProfile", _currentFireMode, false];

View File

@ -3,9 +3,8 @@
TRACE_1("enter", _this);
#define __TRACKINTERVAL 0 // how frequent the check should be.
#define __LOCKONTIME 3.0 // Lock on won't occur sooner
#define __LOCKONTIMERANDOM 0.3 // Deviation in lock on time
#define __SENSORSQUARE 1 // Locking on sensor square side in angles
#define __LOCKONTIME 3 // Lock on won't occur sooner
#define __OffsetX ((ctrlPosition __JavelinIGUITargetingLineV) select 0) - 0.5
#define __OffsetY ((ctrlPosition __JavelinIGUITargetingLineH) select 1) - 0.5
@ -40,6 +39,7 @@ _currentTarget = _args select 1;
_runTime = _args select 2;
_lockTime = _args select 3;
_soundTime = _args select 4;
_randomLockInterval = _args select 5;
// Find a target within the optic range
_newTarget = objNull;
@ -52,10 +52,16 @@ if ((velocity ACE_player) distance [0,0,0] > 0.5 && {cameraView == "GUNNER"} &&
// Refresh the firemode
[] call FUNC(showFireMode);
// bail on not loaded
if (ACE_player ammo (currentWeapon ACE_player) == 0) exitWith { };
_range = parseNumber (ctrlText __JavelinIGUIRangefinder);
TRACE_1("Viewing range", _range);
if (_range > 50 && {_range < 2500}) then {
_pos = positionCameraToWorld [0,0,_range];
_targetArray = _pos nearEntities ["AllVehicles", _range/25];
TRACE_1("Searching at range", _targetArray);
if (count (_targetArray) > 0) then {
_newTarget = _targetArray select 0;
};
@ -77,22 +83,45 @@ _offsetY = __OffsetY;
__JavelinIGUITargeting ctrlShow true;
__JavelinIGUITargetingConstrains ctrlShow true;
_zamerny = if (_currentTarget isKindOf "CAManBase") then {_currentTarget selectionPosition "body"} else {_currentTarget selectionPosition "zamerny"};
_randomPosWithinBounds = [(_zamerny select 0) + 1 - (random 2.0),(_zamerny select 1) + 1 - (random 2.0),(_zamerny select 2) + 0.5 - (random 1.0)];
_apos = worldToScreen (_currentTarget modelToWorld _randomPosWithinBounds);
_aposX = 0;
_aposY = 0;
if (count _apos < 2) then {
_aposX = 1;
_aposY = 0;
} else {
_aposX = (_apos select 0) + _offsetX;
_aposY = (_apos select 1) + _offsetY;
};
if((call CBA_fnc_getFoV) select 1 > 9) then {
__JavelinIGUINFOV ctrlSetTextColor __ColorGreen;
__JavelinIGUIWFOV ctrlSetTextColor __ColorGray;
} else {
__JavelinIGUINFOV ctrlSetTextColor __ColorGray;
__JavelinIGUIWFOV ctrlSetTextColor __ColorGreen;
};
if (isNull _newTarget) then {
// No targets found
_currentTarget = objNull;
_lockTime = 0;
__JavelinIGUISeek ctrlSetTextColor __ColorGray;
__JavelinIGUINFOV ctrlSetTextColor __ColorGreen;
__JavelinIGUITargeting ctrlShow false;
__JavelinIGUITargetingGate ctrlShow false;
__JavelinIGUITargetingLines ctrlShow false;
__JavelinIGUITargetingConstraints ctrlShow false;
ACE_player setVariable ["ace_missileguidance_target",nil, false];
ACE_player setVariable ["ace_missileguidance_target",nil, false];
// Disallow fire
//if (ACE_player ammo "Javelin" > 0 || {ACE_player ammo "ACE_Javelin_Direct" > 0}) then {ACE_player setWeaponReloadingTime //[player, "Javelin", 0.2];};
if (ACE_player ammo (currentWeapon ACE_player) > 0) then { ACE_player setWeaponReloadingTime [player, (currentWeapon ACE_player), 0.2]; };
} else {
if (_newTarget distance ACE_player < 2500
&& {(call CBA_fnc_getFoV) select 1 > 9}
@ -107,36 +136,20 @@ if (isNull _newTarget) then {
playSound "ACE_Javelin_Locking";
} else {
if(diag_tickTime - _lockTime > __LOCKONTIME) then {
if(diag_tickTime - _lockTime > __LOCKONTIME + _randomLockInterval) then {
TRACE_2("LOCKED!", _currentTarget, _lockTime);
__JavelinIGUISeek ctrlSetTextColor __ColorGreen;
__JavelinIGUINFOV ctrlSetTextColor __ColorNull;
__JavelinIGUITargeting ctrlShow true;
__JavelinIGUITargetingConstrains ctrlShow false;
__JavelinIGUITargetingGate ctrlShow true;
__JavelinIGUITargetingLines ctrlShow true;
_zamerny = if (_currentTarget isKindOf "CAManBase") then {_currentTarget selectionPosition "body"} else {_currentTarget selectionPosition "zamerny"};
_randomPosWithinBounds = [(_zamerny select 0) + 1 - (random 2.0),(_zamerny select 1) + 1 - (random 2.0),(_zamerny select 2) + 0.5 - (random 1.0)];
_apos = worldToScreen (_currentTarget modelToWorld _randomPosWithinBounds);
_aposX = 0;
_aposY = 0;
if (count _apos < 2) then {
_aposX = 1;
_aposY = 0;
} else {
_aposX = (_apos select 0) + _offsetX;
_aposY = (_apos select 1) + _offsetY;
};
// Move target marker to coords.
__JavelinIGUITargetingLineV ctrlSetPosition [_aposX,ctrlPosition __JavelinIGUITargetingLineV select 1];
__JavelinIGUITargetingLineH ctrlSetPosition [ctrlPosition __JavelinIGUITargetingLineH select 0,_aposY];
{_x ctrlCommit __TRACKINTERVAL} forEach [__JavelinIGUITargetingLineH,__JavelinIGUITargetingLineV];
//__JavelinIGUITargetingLineV ctrlSetPosition [_aposX,ctrlPosition __JavelinIGUITargetingLineV select 1];
//__JavelinIGUITargetingLineH ctrlSetPosition [ctrlPosition __JavelinIGUITargetingLineH select 0,_aposY];
//{_x ctrlCommit __TRACKINTERVAL} forEach [__JavelinIGUITargetingLineH,__JavelinIGUITargetingLineV];
_boundsInput = if (_currentTarget isKindOf "CAManBase") then {
[_currentTarget,[-1,-1,-2],_currentTarget selectionPosition "body"];
@ -162,6 +175,9 @@ if (isNull _newTarget) then {
ACE_player setVariable["ace_missileguidance_target", _currentTarget, false];
// Allow fire
ACE_player setWeaponReloadingTime [player, (currentWeapon ACE_player), 0];
if(diag_tickTime > _soundTime) then {
playSound "ACE_Javelin_Locked";
_soundTime = diag_tickTime + 0.25;
@ -169,6 +185,7 @@ if (isNull _newTarget) then {
} else {
__JavelinIGUITargeting ctrlShow true;
__JavelinIGUITargetingGate ctrlShow true;
__JavelinIGUITargetingConstrains ctrlShow true;
__JavelinIGUITargetingLines ctrlShow false;
ACE_player setVariable["ace_missileguidance_target", nil, false];
@ -186,6 +203,8 @@ if (isNull _newTarget) then {
_maxX = ((_bpos select 2) + _offsetX) min (_constraintRight - 0.025*(3/4)*SafezoneH);
_maxY = ((_bpos select 3) + _offsetY) min (_constraintBottom - 0.025*SafezoneH);
TRACE_4("", _boundsInput, _bpos, _minX, _minY);
__JavelinIGUITargetingGateTL ctrlSetPosition [_minX,_minY];
__JavelinIGUITargetingGateTR ctrlSetPosition [_maxX,_minY];
__JavelinIGUITargetingGateBL ctrlSetPosition [_minX,_maxY];
@ -197,22 +216,26 @@ if (isNull _newTarget) then {
playSound "ACE_Javelin_Locking";
_soundTime = diag_tickTime + 0.25;
};
// Disallow fire
if (ACE_player ammo (currentWeapon ACE_player) > 0) then { ACE_player setWeaponReloadingTime [player, (currentWeapon ACE_player), 0.2]; };
};
};
} else {
// Something is wrong with our seek
// No targets found
_currentTarget = objNull;
ACE_player setVariable["ace_missileguidance_target", nil, false];
_lockTime = 0;
__JavelinIGUISeek ctrlSetTextColor __ColorGray;
__JavelinIGUINFOV ctrlSetTextColor __ColorGray;
__JavelinIGUITargeting ctrlShow false;
__JavelinIGUITargetingGate ctrlShow false;
__JavelinIGUITargetingLines ctrlShow false;
__JavelinIGUITargetingConstraints ctrlShow false;
ACE_player setVariable ["ace_missileguidance_target",nil, false];
};
// Disallow fire
if (ACE_player ammo (currentWeapon ACE_player) > 0) then { ACE_player setWeaponReloadingTime [player, (currentWeapon ACE_player), 0.2]; };
};
};
//TRACE_2("", _newTarget, _currentTarget);

View File

@ -2,6 +2,8 @@
#include "script_component.hpp"
TRACE_1("enter", _this);
#define __LOCKONTIMERANDOM 2 // Deviation in lock on time
if((count _this) > 0) then {
uiNameSpace setVariable ['ACE_RscOptics_javelin',_this select 0];
};
@ -22,10 +24,13 @@ uiNameSpace setVariable [QGVAR(arguments),
objNull, // currentTargetObject
0, // Run Time
0, // Lock Time
0 // Sound timer
0, // Sound timer
(random __LOCKONTIMERANDOM) // random lock time addition
]
];
_pfh_handle = uiNamespace getVariable ["ACE_RscOptics_javelin_PFH", nil];
if(isNil "_pfh_handle") then {
_pfh_handle = [FUNC(onOpticDraw), 0, []] call CBA_fnc_addPerFrameHandler;

View File

@ -24,7 +24,9 @@
#define __JavelinIGUISeek (__JavelinIGUI displayCtrl 699000)
#define __JavelinIGUITop (__JavelinIGUI displayCtrl 699001)
#define __JavelinIGUIDir (__JavelinIGUI displayCtrl 699002)
#define __JavelinIGUINFOV (__JavelinIGUI displayCtrl 699003)
#define __JavelinIGUINFOV (__JavelinIGUI displayCtrl 1003)
#define __JavelinIGUIWFOV (__JavelinIGUI displayCtrl 1004)
#define __JavelinIGUIRangefinder (__JavelinIGUI displayCtrl 151)
// Constrains
#define __JavelinIGUITargetingConstrains (__JavelinIGUI displayCtrl 699100)

View File

@ -1,21 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<Project name="ACE">
<Package name="WEP_JAVELIN">
<Key ID="STR_ACE_JAVELIN_LockTarget">
<English>Lock Target (Hold)</English>
<German>Ziel aufschalten</German>
<Russian>Захватить цель (удерживать)</Russian>
<Czech>Zamknout cíl(držet)</Czech>
<Polish>Namierz cel (przytrzymaj)</Polish>
<French>Vérouiller la Cible (Maintenir)</French>
</Key>
<Key ID="STR_ACE_JAVELIN_CycleFireMode">
<English>Cycle Fire Mode</English>
<German>Wechsle Feuermodus</German>
<Russian>Переключение режимов огня</Russian>
<Czech>Cyklování režimů palby</Czech>
<Polish>Przełącz tryb ognia</Polish>
<French>Mode de Tir (Cycle)</French>
</Key>
</Package>
<Package name="WEP_JAVELIN">
<Key ID="STR_ACE_JAVELIN_LockTarget">
<English>Lock Target (Hold)</English>
<German>Ziel aufschalten</German>
<Russian>Захватить цель (удерживать)</Russian>
<Czech>Zamknout cíl(držet)</Czech>
<Polish>Namierz cel (przytrzymaj)</Polish>
<French>Verrouiller cible (maintenir)</French>
</Key>
<Key ID="STR_ACE_JAVELIN_CycleFireMode">
<English>Cycle Fire Mode</English>
<German>Wechsle Feuermodus</German>
<Russian>Переключение режимов огня</Russian>
<Czech>Cyklování režimů palby</Czech>
<Polish>Przełącz tryb ognia</Polish>
<French>Cycle mode de tir</French>
</Key>
</Package>
</Project>

View File

@ -1 +0,0 @@
#define GET_TEMPERATURE_AT_HEIGHT(h) (EGVAR(weather,currentTemperature) - 0.0065 * (h))

View File

@ -13,7 +13,6 @@
* Public: No
*/
#include "script_component.hpp"
#include "defines.h"
private ["_playerDir", "_windSpeed", "_windDir", "_crosswind", "_headwind", "_humidity", "_temperature", "_humidity", "_barometricPressure", "_altitude"];
@ -40,7 +39,7 @@ if (GVAR(MinAvgMaxMode) == 1) then {
{
GVAR(ENTRIES) set [_x, (GVAR(ENTRIES) select _x) + 1];
} forEach [1, 2, 3];
// Wind SPD
_windSpeed = call FUNC(measureWindSpeed);
GVAR(MIN) set [1, (GVAR(MIN) select 1) min abs(_windSpeed)];

View File

@ -13,7 +13,6 @@
* Public: No
*/
#include "script_component.hpp"
#include "defines.h"
private ["_playerDir", "_textTop", "_textCenterBig", "_textCenterLine1Left", "_textCenterLine2Left", "_textCenterLine3Left", "_textCenterLine1Right", "_textCenterLine2Right", "_textCenterLine3Right", "_textInfoLine1", "_textInfoLine2", "_temperature", "_humidity", "_windSpeed", "_windDir", "_newWindSpeed", "_windSource", "_height"];
@ -57,7 +56,7 @@ switch (GVAR(Menu)) do {
_textCenterLine3Left = "Max";
_textCenterLine1Right = "N/A";
_textCenterLine2Right = "N/A";
_textCenterLine3Right = "N/A";
_textCenterLine3Right = "N/A";
};
};
case 1: { // Wind SPD

View File

@ -13,7 +13,6 @@
* Public: No
*/
#include "script_component.hpp"
#include "defines.h"
private ["_playerDir", "_windSpeed", "_windDir"];

View File

@ -9,4 +9,6 @@
#define DEBUG_SETTINGS DEBUG_SETTINGS_KESTREL4500
#endif
#include "\z\ace\addons\main\script_macros.hpp"
#include "\z\ace\addons\main\script_macros.hpp"
#define GET_TEMPERATURE_AT_HEIGHT(h) (EGVAR(weather,currentTemperature) - 0.0065 * (h))

View File

@ -1,35 +1,42 @@
<?xml version="1.0" encoding="utf-8" ?>
<Project name="ACE">
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler. -->
<Project name="ACE">
<Package name="Kestrel4500">
<Key ID="STR_ACE_Kestrel_Name">
<English>Kestrel 4500NV</English>
<German>Kestrel 4500NV</German>
<Spanish>Kestrel 4500NV</Spanish>
<French>Kestrel 4500NV</French>
<Polish>Kestrel 4500NV</Polish>
<Czech>Kestrel 4500NV</Czech>
<Italian>Kestrel 4500NV</Italian>
<Hungarian>Kestrel 4500NV</Hungarian>
<Portuguese>Kestrel 4500NV</Portuguese>
<Russian>Kestrel 4500NV</Russian>
<English>Kestrel 4500NV</English>
<German>Kestrel 4500NV</German>
<Spanish>Kestrel 4500NV</Spanish>
<French>Kestrel 4500NV</French>
<Polish>Kestrel 4500NV</Polish>
<Czech>Kestrel 4500NV</Czech>
<Italian>Kestrel 4500NV</Italian>
<Hungarian>Kestrel 4500NV</Hungarian>
<Portuguese>Kestrel 4500NV</Portuguese>
<Russian>Kestrel 4500NV</Russian>
</Key>
<Key ID="STR_ACE_Kestrel_Description">
<English>Kestrel 4500 Pocket Weather Tracker</English>
<English>Kestrel 4500 Pocket Weather Tracker</English>
<Polish>Anemomentr skrzydełkowy Kestrel 4500</Polish>
</Key>
<Key ID="STR_ACE_Kestrel4500_OpenKestrel">
<English>Open Kestrel 4500</English>
<English>Open Kestrel 4500</English>
<Polish>Otwórz Kestrel 4500</Polish>
</Key>
<Key ID="STR_ACE_Kestrel4500_ShowKestrel">
<English>Show Kestrel 4500</English>
<English>Show Kestrel 4500</English>
<Polish>Pokaż Kestrel 4500</Polish>
</Key>
<Key ID="STR_ACE_Kestrel4500_HideKestrel">
<English>Hide Kestrel 4500</English>
<English>Hide Kestrel 4500</English>
<Polish>Ukryj Kestrel 4500</Polish>
</Key>
<Key ID="STR_ACE_Kestrel4500_KestrelDialogKey">
<English>Open Kestrel 4500</English>
<English>Open Kestrel 4500</English>
<Polish>Otwórz Kestrel 4500</Polish>
</Key>
<Key ID="STR_ACE_Kestrel4500_DisplayKestrelKey">
<English>Show Kestrel 4500</English>
<English>Show Kestrel 4500</English>
<Polish>Pokaż Kestrel 4500</Polish>
</Key>
</Package>
</Project>
</Package>
</Project>

View File

@ -4,8 +4,10 @@
*
* Arguments:
* 0: Position of seeker (ASL) <position>
* 1: Seeker wavelength sensitivity range, [1550,1550] is common eye safe. <array>
* 2: Seeker laser code. <number>
* 1: Direction vector (will be normalized) <vector>
* 2: Seeker FOV in degrees <number>
* 3: Seeker wavelength sensitivity range, [1550,1550] is common eye safe. <array>
* 4: Seeker laser code. <number>
*
* Return value:
* Array, [Strongest compatible laser spot ASL pos, owner object] Nil array values if nothing found.
@ -17,9 +19,14 @@ private ["_pos", "_seekerWavelengths", "_seekerCode", "_spots", "_buckets", "_ex
"_emitterWavelength", "_laserCode", "_divergence", "_laser", "_laserPos", "_laserDir", "_res", "_bucketPos", "_bucketList", "_c", "_forEachIndex", "_index",
"_testPos", "_finalBuckets", "_largest", "_largestIndex", "_finalBucket", "_owners", "_avgX", "_avgY", "_avgZ", "_count", "_maxOwner", "_maxOwnerIndex", "_finalOwner"];
_pos = _this select 0;
_seekerWavelengths = _this select 1;
_seekerCode = _this select 2;
_pos = _this select 0;
_dir = vectorNormalized (_this select 1);
_seekerFov = _this select 2;
_seekerWavelengths = _this select 3;
_seekerCode = _this select 4;
_seekerCos = cos _seekerFov;
_spots = [];
_buckets = [];
@ -57,8 +64,13 @@ _finalOwner = nil;
_laserPos = _laser select 0;
_laserDir = _laser select 1;
_res = [_laserPos, _laserDir, _divergence] call FUNC(shootCone);
{
_spots pushBack [_x select 0, _owner];
{
_testPoint = _x select 0;
_testPointVector = vectorNormalized (_testPoint vectorDiff _pos);
_testDotProduct = _dir vectorDotProduct _testPointVector;
if(_testDotProduct > _seekerCos) then {
_spots pushBack [_testPoint, _owner];
};
} forEach (_res select 2);
};
} forEach (GVAR(laserEmitters) select 1);

View File

@ -22,4 +22,9 @@ if( (count _this) > 2) then {
GVAR(active) = false;
if(!isNil QGVAR(selfDesignateHandle)) then {
[GVAR(selfDesignateHandle)] call CBA_fnc_removePerFrameHandler;
GVAR(selfDesignateHandle) = nil;
};
true

View File

@ -83,7 +83,7 @@ if(!GVAR(active)) then {
// @TODO: Nou gets to field all tickets about missing lasers.
//_localLaserTarget = "LaserTargetW" createVehicleLocal (getpos ACE_player);
_handle = [FUNC(laserHudDesignatePFH), 0.1, [ACE_player, _laserUuid, nil]] call cba_fnc_addPerFrameHandler;
GVAR(selfDesignateHandle) = [FUNC(laserHudDesignatePFH), 0.1, [ACE_player, _laserUuid, nil]] call cba_fnc_addPerFrameHandler;
} else {
[] call FUNC(laserHudDesignateOff);
[] call FUNC(laserHudDesignateOn);

View File

@ -1,23 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<Project name="ACE">
<Package name="Laser_SelfDesignate">
<Key ID="STR_ACE_Laser_SelfDesignate_DesignatorOn">
<English>Laser&lt;br/&gt;Designator On</English>
<German>Lasermarkierer&lt;br/&gt;an</German>
<Spanish>Laser&lt;br/&gt;Designador encendido</Spanish>
<Russian>ЛЦУ&lt;br/&gt;ВКЛ</Russian>
<Czech>Laserový&lt;br/&gt;značkovač zapnut</Czech>
<Polish>Desygnator&lt;br/&gt;laserowy wł.</Polish>
<French>Désignateur&lt;br/&gt;Laser Allumé</French>
</Key>
<Key ID="STR_ACE_Laser_SelfDesignate_DesignatorOff">
<English>Laser&lt;br/&gt;Designator Off</English>
<German>Lasermarkierer&lt;br/&gt;aus</German>
<Spanish>Laser&lt;br/&gt;Designador apagado</Spanish>
<Russian>ЛЦУ&lt;br/&gt;ВЫКЛ</Russian>
<Czech>Laserový&lt;br/&gt;značkovat vypnut</Czech>
<Polish>Desygnator&lt;br/&gt;laserowy wył.</Polish>
<French>Désignateur&lt;br/&gt;Laser Éteint</French>
</Key>
</Package>
<Package name="Laser_SelfDesignate">
<Key ID="STR_ACE_Laser_SelfDesignate_DesignatorOn">
<English>Laser&lt;br/&gt;Designator On</English>
<German>Lasermarkierer&lt;br/&gt;an</German>
<Spanish>Laser&lt;br/&gt;Designador encendido</Spanish>
<Russian>ЛЦУ&lt;br/&gt;ВКЛ</Russian>
<Czech>Laserový&lt;br/&gt;značkovač zapnut</Czech>
<Polish>Desygnator&lt;br/&gt;laserowy wł.</Polish>
<French>Désignateur&lt;br/&gt;Laser Allumé</French>
</Key>
<Key ID="STR_ACE_Laser_SelfDesignate_DesignatorOff">
<English>Laser&lt;br/&gt;Designator Off</English>
<German>Lasermarkierer&lt;br/&gt;aus</German>
<Spanish>Laser&lt;br/&gt;Designador apagado</Spanish>
<Russian>ЛЦУ&lt;br/&gt;ВЫКЛ</Russian>
<Czech>Laserový&lt;br/&gt;značkovat vypnut</Czech>
<Polish>Desygnator&lt;br/&gt;laserowy wył.</Polish>
<French>Désignateur&lt;br/&gt;Laser Éteint</French>
</Key>
</Package>
</Project>

View File

@ -2,7 +2,7 @@ class CfgVehicles {
class NATO_Box_Base;
class Box_NATO_Support_F: NATO_Box_Base {
class TransportItems {
MACRO_ADDITEM(ACE_acc_pointer_red,4);
MACRO_ADDITEM(ACE_acc_pointer_green,4);
};
};
@ -23,13 +23,12 @@ class CfgVehicles {
class FIA_Box_Base_F;
class Box_FIA_Support_F: FIA_Box_Base_F {
class TransportItems {
MACRO_ADDITEM(ACE_acc_pointer_red,4);
MACRO_ADDITEM(ACE_acc_pointer_green,4);
};
};
class ACE_Box_Misc: Box_NATO_Support_F {
class TransportItems {
MACRO_ADDITEM(ACE_acc_pointer_red,4);
MACRO_ADDITEM(ACE_acc_pointer_green,4);
};
};

View File

@ -1,17 +1,28 @@
class SlotInfo;
class PointerSlot: SlotInfo {
compatibleItems[] += {"ACE_acc_pointer_red","ACE_acc_pointer_green"};
compatibleItems[] += {"ACE_acc_pointer_red","ACE_acc_pointer_green_IR","ACE_acc_pointer_green"};
};
class CfgWeapons {
class ItemCore;
class InventoryFlashLightItem_Base_F;
class acc_pointer_IR: ItemCore {
ACE_nextModeClass = "ACE_acc_pointer_red";
ACE_modeDescription = "$STR_ACE_Laserpointer_IRLaser";
displayName = "$STR_ACE_Laserpointer_red";
descriptionUse = "$STR_ACE_Laserpointer_useLaser";
};
class ACE_acc_pointer_red: ItemCore {
ACE_nextModeClass = "acc_pointer_IR";
ACE_modeDescription = "$STR_ACE_Laserpointer_Laser";
author = "$STR_ACE_Common_ACETeam";
_generalMacro = "ACE_acc_pointer_red";
scope = 2;
scope = 1;
displayName = "$STR_ACE_Laserpointer_red";
descriptionUse = "$STR_ACE_Laserpointer_useLaser";
picture = "\A3\weapons_F\Data\UI\gear_accv_pointer_CA.paa";
@ -54,9 +65,23 @@ class CfgWeapons {
inertia = 0.1;
};
class ACE_acc_pointer_green: ACE_acc_pointer_red {
class ACE_acc_pointer_green_IR: acc_pointer_IR {
ACE_nextModeClass = "ACE_acc_pointer_green";
ACE_modeDescription = "$STR_ACE_Laserpointer_IRLaser";
author = "$STR_ACE_Common_ACETeam";
_generalMacro = "ACE_acc_pointer_green";
scope = 1;
displayName = "$STR_ACE_Laserpointer_green";
};
class ACE_acc_pointer_green: ACE_acc_pointer_red {
ACE_nextModeClass = "ACE_acc_pointer_green_IR";
ACE_modeDescription = "$STR_ACE_Laserpointer_Laser";
author = "$STR_ACE_Common_ACETeam";
_generalMacro = "ACE_acc_pointer_green";
scope = 2;
displayName = "$STR_ACE_Laserpointer_green";
};
};

View File

@ -11,11 +11,16 @@ GVAR(nearUnits) = [];
// @todo. Maybe move to common?
[{
private "_nearUnits";
_nearUnits = nearestObjects [positionCameraToWorld [0,0,0], ["CAManBase"], 50];
_nearUnits = [];
if (count _nearUnits > 10) then {
_nearUnits resize 10;
};
{
_nearUnits append crew _x;
if (count _nearUnits > 10) exitWith {
_nearUnits resize 10;
};
} forEach nearestObjects [positionCameraToWorld [0,0,0], ["AllVehicles"], 50]; // when moving this, search also for units inside vehicles. currently breaks the laser in FFV
GVAR(nearUnits) = _nearUnits;
@ -24,3 +29,5 @@ GVAR(nearUnits) = [];
addMissionEventHandler ["Draw3D", {
call FUNC(onDraw);
}];
#include "initKeybinds.sqf"

View File

@ -4,5 +4,6 @@ ADDON = false;
PREP(drawLaserpoint);
PREP(onDraw);
PREP(switchLaserLightMode);
ADDON = true;

View File

@ -3,7 +3,7 @@
class CfgPatches {
class ADDON {
units[] = {};
weapons[] = {"ACE_acc_pointer_red","ACE_acc_pointer_green"};
weapons[] = {"ACE_acc_pointer_red","ACE_acc_pointer_green","ACE_acc_pointer_green_IR"};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_common"};
author[] = {"commy2"};

View File

@ -1,6 +1,19 @@
// by commy2 and esteldunedain
#include "script_component.hpp"
// init object
/*if (isNil QGVAR(laserdot)) then {
_light = "#lightpoint" createVehicleLocal [0,0,0];
_light setLightBrightness 10;
_light setLightColor [1,0,0];
_light setLightAmbient [1,0,0];
_light setLightDayLight true;
//_light lightAttachObject [GVAR(laserdot), [0,0,0]];
_light setLightAttenuation [0.04,4,4,0,0.04,0.08];
GVAR(laserdot) = _light;
};*/
EXPLODE_3_PVT(_this,_unit,_range,_isGreen);
_p0Pos = _unit modelToWorldVisual (_unit selectionPosition "righthand");
@ -97,13 +110,15 @@ if (!surfaceIsWater _pL) then {
_pL = ASLtoATL _pL;
};
/*
drawLine3D [
_p0Pos,
_pL,
[[1,0,0,1], [0,1,0,1]] select _isGreen
];
*/
_size = 2 * (_range - (positionCameraToWorld [0,0,0] distance _pL)) / _range;
_size = 2 * (_range - (positionCameraToWorld [0,0,0] vectorDistance _pL)) / _range;
_camPos = positionCameraToWorld [0,0,0.2];
if (count ([_unit, "FIRE"] intersect [_camPos, _pL]) > 0) exitWith {};
@ -114,6 +129,8 @@ if (!surfaceIsWater _camPos) then { _camPos = ATLtoASL _camPos; };
if ( terrainIntersectASL [_camPos, _pL2]) exitWith {};
if ( lineIntersects [_camPos, _pL2]) exitWith {};
//GVAR(laserdot) setPos _pL;
drawIcon3D [
format ["\a3\weapons_f\acc\data\collimdot_%1_ca.paa", ["red", "green"] select _isGreen],
[[1,0.25,0.25,0.5*_brightness], [0.25,1,0.25,0.5*_brightness]] select _isGreen,

View File

@ -28,7 +28,7 @@ _isIR = _isIR == 1;
_laserID = ["ACE_acc_pointer_red", "ACE_acc_pointer_green"] find _laser;
if (_laserID > -1 && {_x isFlashlightOn _weapon}) then {
[_x, 30, _laserID == 1 || _isIR] call FUNC(drawLaserpoint);
[_x, 50, _laserID == 1 || _isIR] call FUNC(drawLaserpoint);
};
} forEach GVAR(nearUnits);

View File

@ -0,0 +1,58 @@
// by commy2
#include "script_component.hpp"
private ["_unit", "_weapon"];
_unit = _this select 0;
_weapon = _this select 1;
// 1 = primary, 2 = secondary, 3 = handgun
private "_currentWeaponType";
_currentWeaponType = 0;
private "_pointer";
_pointer = switch (_weapon) do {
case (primaryWeapon _unit): {
_currentWeaponType = 1;
primaryWeaponItems _unit select 1
};
case (secondaryWeapon _unit): {
_currentWeaponType = 2;
secondaryWeaponItems _unit select 1
};
case (handgunWeapon _unit): {
_currentWeaponType = 3;
handgunItems _unit select 1
};
default {""};
};
if (_pointer == "") exitWith {};
private "_nextPointer";
_nextPointer = getText (configFile >> "CfgWeapons" >> _pointer >> "ACE_nextModeClass");
if (_nextPointer == "") exitWith {};
private ["_description", "_picture"];
_description = getText (configFile >> "CfgWeapons" >> _nextPointer >> "ACE_modeDescription");
_picture = getText (configFile >> "CfgWeapons" >> _nextPointer >> "picture");
switch (_currentWeaponType) do {
case 1: {
_unit removePrimaryWeaponItem _pointer;
_unit addPrimaryWeaponItem _nextPointer;
};
case 2: {
_unit removeSecondaryWeaponItem _pointer;
_unit addSecondaryWeaponItem _nextPointer;
};
case 3: {
_unit removeHandgunItem _pointer;
_unit addHandgunItem _nextPointer;
};
};
[_description, _picture] call EFUNC(common,displayTextPicture);
playSound "ACE_Sound_Click";

View File

@ -0,0 +1,13 @@
// by commy2
["ACE3", QGVAR(switchLaserLightMode), localize "STR_ACE_Laserpointer_switchLaserLight",
{
// Conditions: canInteract
if !([ACE_player, objNull, ["isNotInside"]] call EFUNC(common,canInteractWith)) exitWith {false};
// Conditions: specific
if !([ACE_player] call EFUNC(common,canUseWeapon)) exitWith {false};
[ACE_player, currentWeapon ACE_player] call FUNC(switchLaserLightMode);
true
},
{false}, [38, [false, true, false]], false] call CBA_fnc_addKeybind;

View File

@ -1,40 +1,52 @@
<?xml version="1.0" encoding="utf-8"?>
<Project name="ACE">
<Package name="Laserpointer">
<Key ID="STR_ACE_Laserpointer_red">
<English>Laser Pointer (red)</English>
<French>Pointeur laser (rouge)</French>
<German>Laserpointer (rot)</German>
<Russian>Лазерный прицел (красный)</Russian>
<Czech>Laserové ukazovátko (červené)</Czech>
<Polish>Wskaźnik laserowy (czerwony)</Polish>
</Key>
<Key ID="STR_ACE_Laserpointer_green">
<English>Laser Pointer (green)</English>
<French>Pointeur laser (vert)</French>
<German>Laserpointer (grün)</German>
<Russian>Лазерный прицел (зелёный)</Russian>
<Czech>Laserové ukazovátko (zelené)</Czech>
<Polish>Wskaźnik laserowy (zielony)</Polish>
</Key>
<Key ID="STR_ACE_Laserpointer_Description">
<English>Emits visible light. </English>
<French>Diffuse un rayon lumineux visible.</French>
<German>Strahlt sichtbares Licht aus. </German>
<Russian>Испускает узкий пучок видимого света.</Russian>
<Czech>Vyzařuje viditelné světlo.</Czech>
<Polish>Wydziela widzialne światło.</Polish>
</Key>
<Key ID="STR_ACE_Laserpointer_useLaser">
<English>&lt;t color='#9cf953'&gt;Use: &lt;/t&gt;Turn Laser ON/OFF</English>
<Czech>&lt;t color='#9cf953'&gt;Použití: &lt;/t&gt;Zapnout/vypnout laser</Czech>
<French>&lt;t color='#9cf953'&gt;Utiliser : &lt;/t&gt;laser allumé/éteint</French>
<German>&lt;t color='#9cf953'&gt;Benutzen: &lt;/t&gt;Laser EIN/AUS</German>
<Italian>&lt;t color='#9cf953'&gt;Uso: &lt;/t&gt;Laser ON/OFF</Italian>
<Polish>&lt;t color='#9cf953'&gt;Użyj: &lt;/t&gt;wł./wył. laser</Polish>
<Portuguese>&lt;t color='#9cf953'&gt;Uso: &lt;/t&gt;Ativar/Desativar laser</Portuguese>
<Russian>&lt;t color='#9cf953'&gt;Использовать: &lt;/t&gt;вкл/выкл лазер</Russian>
<Spanish>&lt;t color='#9cf953'&gt;Usar: &lt;/t&gt;encender/apagar láser</Spanish>
</Key>
</Package>
<Package name="Laserpointer">
<Key ID="STR_ACE_Laserpointer_red">
<English>Laser Pointer (red)</English>
<French>Pointeur laser (rouge)</French>
<German>Laserpointer (rot)</German>
<Russian>Лазерный прицел (красный)</Russian>
<Czech>Laserové ukazovátko (červené)</Czech>
<Polish>Wskaźnik laserowy (czerwony)</Polish>
</Key>
<Key ID="STR_ACE_Laserpointer_green">
<English>Laser Pointer (green)</English>
<French>Pointeur laser (vert)</French>
<German>Laserpointer (grün)</German>
<Russian>Лазерный прицел (зелёный)</Russian>
<Czech>Laserové ukazovátko (zelené)</Czech>
<Polish>Wskaźnik laserowy (zielony)</Polish>
</Key>
<Key ID="STR_ACE_Laserpointer_Description">
<English>Emits visible light. </English>
<French>Emettre de la lumière visible</French>
<German>Strahlt sichtbares Licht aus. </German>
<Russian>Испускает узкий пучок видимого света.</Russian>
<Czech>Vyzařuje viditelné světlo.</Czech>
<Polish>Wydziela widzialne światło.</Polish>
</Key>
<Key ID="STR_ACE_Laserpointer_useLaser">
<English>&lt;t color='#9cf953'&gt;Use: &lt;/t&gt;Turn Laser ON/OFF</English>
<Czech>&lt;t color='#9cf953'&gt;Použití: &lt;/t&gt;Zapnout/vypnout laser</Czech>
<French>&lt;t color='#9cf953'&gt;Utiliser : &lt;/t&gt;laser allumé/éteint</French>
<German>&lt;t color='#9cf953'&gt;Benutzen: &lt;/t&gt;Laser EIN/AUS</German>
<Italian>&lt;t color='#9cf953'&gt;Uso: &lt;/t&gt;Laser ON/OFF</Italian>
<Polish>&lt;t color='#9cf953'&gt;Użyj: &lt;/t&gt;wł./wył. laser</Polish>
<Portuguese>&lt;t color='#9cf953'&gt;Uso: &lt;/t&gt;Ativar/Desativar laser</Portuguese>
<Russian>&lt;t color='#9cf953'&gt;Использовать: &lt;/t&gt;вкл/выкл лазер</Russian>
<Spanish>&lt;t color='#9cf953'&gt;Usar: &lt;/t&gt;encender/apagar láser</Spanish>
</Key>
<Key ID="STR_ACE_Laserpointer_Laser">
<English>Laser</English>
<German>Laser</German>
</Key>
<Key ID="STR_ACE_Laserpointer_IRLaser">
<English>IR Laser</English>
<German>IR-Laser</German>
</Key>
<Key ID="STR_ACE_Laserpointer_switchLaserLight">
<English>Switch Laser / IR Laser</English>
<German>Umschalten Laser / IR-Laser</German>
</Key>
</Package>
</Project>

View File

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler. -->
<Project name="ACE">
<Package name="logistics_uavbattery">
<Key ID="STR_ACE_logistics_uavbattery_Full">
@ -18,7 +17,7 @@
<English>You need a UAV Battery</English>
<German>Du brauchst eine UAV-Batterie</German>
<Spanish>Necesitas una batería para VANT</Spanish>
<French>Pas de batterie UAV</French>
<French>L'UAV nécessite une batterie</French>
<Polish>Potrzebujesz baterii UAV</Polish>
<Hungarian>Szükséged van egy UAV akkumulátorra</Hungarian>
<Czech>Potřebuješ UAV baterii</Czech>
@ -52,7 +51,7 @@
</Key>
<Key ID="STR_ACE_logistics_uavbattery_Battery_Description">
<English>Used to refuel Carried UAV's</English>
<German>Verwendet zum Aufladen von tragbaren UAV's</German>
<German>Verwendet zum Aufladen von tragbaren UAVs</German>
<Spanish>Usada para reabastecer el VANT</Spanish>
<French>Utilisée pour recharger l'UAV</French>
<Polish>Używana do naładowania baterii przenośnego UAV</Polish>
@ -75,4 +74,4 @@
<Russian>Заряжается ...</Russian>
</Key>
</Package>
</Project>
</Project>

View File

@ -1,10 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler. -->
<Project name="ACE">
<Package name="Wirecutter">
<Key ID="STR_ACE_logistics_wirecutter_wirecutterName">
<English>Wirecutter</English>
<French>Coupe clôture</French>
<French>Pince coupante</French>
<German>Drahtschneider</German>
<Spanish>Cortador de cables</Spanish>
<Russian>Клещи-кусачки</Russian>
@ -18,7 +17,7 @@
<Russian>Позволяют быстро перекусывать сеточные конструкции.</Russian>
<Czech>Štípačky</Czech>
<Polish>Służą do cięcia drutu i płotów</Polish>
<French>Coupe clôture</French>
<French>Pince coupante</French>
</Key>
<Key ID="STR_ACE_logistics_wirecutter_CutFence">
<English>Cut Fence</English>
@ -57,4 +56,4 @@
<Russian>Забор разрезан</Russian>
</Key>
</Package>
</Project>
</Project>

View File

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler. -->
<Project name="ACE">
<Package name="MagazineRepack">
<Key ID="STR_ACE_MagazineRepack_RepackMagazines">
@ -76,7 +75,7 @@
</Key>
<Key ID="STR_ACE_MagazineRepack_RepackComplete">
<English>Repacking Finished</English>
<French>Réorganisation terminé</French>
<French>Réorganisation terminée</French>
<German>Wiederverpacken Fertig</German>
<Spanish>Reembalaje finalizado</Spanish>
<Russian>Перепаковка завершена</Russian>
@ -85,7 +84,7 @@
</Key>
<Key ID="STR_ACE_MagazineRepack_RepackInterrupted">
<English>Repacking Interrupted</English>
<French>Réorganisation Interrompue</French>
<French>Réorganisation interrompue</French>
<German>Umpacken Unterbrochen</German>
<Spanish>Reembalaje interrumpido</Spanish>
<Russian>Перепаковка прервана</Russian>
@ -94,7 +93,7 @@
</Key>
<Key ID="STR_ACE_MagazineRepack_RepackedMagazinesCount">
<English>%1 Full and %2 Partial</English>
<French>%1 Complet et %2 Partiellement</French>
<French>%1 plein(s) et %2 partiel(s)</French>
<German>%1 Vollständigen und %2 Teilweisen</German>
<Spanish>%1 Total y %2 Parcial</Spanish>
<Russian>%1 полных и %2 неполных</Russian>
@ -102,4 +101,4 @@
<Polish>Pełnych: %1.&lt;br /&gt;Częściowo pełnych: %2.</Polish>
</Key>
</Package>
</Project>
</Project>

View File

@ -1,35 +0,0 @@
#include "script_dialog_defines.hpp"
class ACE_ABOUT_DLG {
idd = 114137;
movingEnable = 0;
onLoad = "with uiNameSpace do { ACE_ABOUT_DLG = _this select 0; };";
onKeyDown = "if((_this select 1) == 1) then {ACE_ABOUT_STP = true;};";
class controlsBackground {
class Contents : RscStructuredText {
idc = 1141371;
colorBackground[] = { 0, 0, 0, 0 };
__SX(0.45);
__SY(0.25);
__SW(0.45);
__SH(0.6);
size = "0.025 * SafeZoneH";
class Attributes {
font = "TahomaB";
color = "#C8C8C8";
align = "left";
valign = "middle";
shadow = true;
shadowColor = "#191970";
size = "1";
};
};
class ACE_ABOUT_NEXT : ACE_ABOUT_CTRL { //dummy visible
idc = 1141372;
__SX(0.065);
__SW(0.03);
text = "";
action = "";
};
}; //controlsBackground
};

View File

@ -1,8 +1,8 @@
class CfgFactionClasses {
class NO_CATEGORY;
class ACE: NO_CATEGORY {
displayName = "ACE";
priority = 2;
side = 7;
};
};
class CfgFactionClasses {
class NO_CATEGORY;
class ACE: NO_CATEGORY {
displayName = "ACE";
priority = 2;
side = 7;
};
};

View File

@ -1,210 +0,0 @@
#include "script_component.hpp"
#include "\z\ace\addons\main\script_common.hpp"
if (!isNil "ACE_ABOUT_RUN") exitWith {ACE_ABOUT_RUN = false;};
ACE_ABOUT_RUN = true;
disableSerialization;
PARAMS_2(_menu,_data);
private ["_pcredits", "_pkeynam", "_shift", "_ctrl", "_alt", "_keys", "_key", "_keystrg", "_mod", "_knaml", "_knam", "_k", "_pkeys", "_pary", "_tpages", "_cEvents", "_i", "_cSys", "_tSys", "_aSys", "_tS", "_j", "_c", "_tC", "_keyn", "_fadet", "_page1", "_color", "_bcolor", "_newpages", "_pstart", "_pcount", "_pnext", "_display", "_control", "_pnames", "_pnam", "_page", "_pages", "_run", "_disp", "_next", "_input", "_nesc", "_unset", "_p", "_text", "_curPage", "_time", "_faded"];
_pcredits = [
"",
"<t align='center' color='#CC1100'>Advanced Combat Environment 2</t>",
"<t align='center' color='#566D7E'>http://dev-heaven.net/projects/ace-mod2</t>",
"",
__cr_managers,
"",
__cr_devs,
"",
__cr_testers,
"",
"For a full list of acknowledgements, please visit our Wiki:",
"<t color='#566D7E'>http://ace.dev-heaven.net</t>"
];
_pkeynam = { //local function
_shift = if (_shift > 0) then {42} else {0};
_ctrl = if (_ctrl > 0) then {56} else {0};
_alt = if (_alt > 0) then {29} else {0};
_keys = [_shift,_ctrl,_alt,_key];
_keystrg = "^";
{
_mod = _x in [42,56,29];
_knaml = call compile format["format['%2',%1]",(keyName _x),"%1"];
_knaml = [_knaml, " "] call CBA_fnc_split;
_knam = "^";
{_k = _x; if (!_mod || (_k != (localize "STR_ACE_KN_LEFT") && _k != (localize "STR_ACE_KN_RIGHT"))) then {_knam = _knam + " " + _k}} forEach _knaml;
_knam = [_knam, "^ ", ""] call CBA_fnc_replace;
_keystrg = _keystrg + "-" + _knam;
} forEach _keys;
_keystrg = [_keystrg, "^ ", ""] call CBA_fnc_replace;
_keystrg = [_keystrg, "^-", ""] call CBA_fnc_replace;
_keystrg = [_keystrg, "^", "None"] call CBA_fnc_replace;
_keystrg
};
_pkeys = {
_pary = [];
_tpages = [];
_cEvents = configFile/"CfgSettings"/"CBA"/"events";
for "_i" from 0 to (count _cEvents) - 1 do {
_cSys = _cEvents select _i;
_tSys = configName _cSys;
if (isNumber ((_cSys select 0)/"key")) then {
//format system name
_aSys = [_tSys, "_"] call CBA_fnc_split;
_tS = "^";
{if (_x != "ace" && _x != "sys") then {_tS = _tS + " " + _x}} forEach _aSys;
_tS = [_tS, "^ ", ""] call CBA_fnc_replace;
_tS = format["<t color='#99cccc'>%1:</t>",_tS];
PUSH(_pary,_tS);
for "_j" from 0 to (count _cSys) - 1 do {
_c = _cSys select _j;
_tC = configName _c;
_tC = [_tC, "_", " "] call CBA_fnc_replace;
//key
_key = getNumber (_c/"key");
_shift = getNumber (_c/"shift");
_ctrl = getNumber (_c/"ctrl");
_alt = getNumber (_c/"alt");
_keyn = [_key,_shift,_ctrl,_alt] call _pkeynam;
_tC = format[" %1: %2",_tC,_keyn];
PUSH(_pary,_tC);
};
};
if (count _pary > 20) then { //split full page
PUSH(_tpages,_pary);
_pary = [];
};
};
if (count _pary > 0) then { //partial page
PUSH(_tpages,_pary);
_pary = [];
};
_tpages
};
//pages (make sure each will fit within 24 lines, word wrap is on)
switch(_menu) do {
case "MAIN": { //note: not all scripting commands available on main menu (not compiled yet?)
_fadet = 13;
_page1 = _pcredits;
};
case "SING": {
_fadet = 20; //fade time
_color = [1,1,1,1];
//_bcolor = [0,0,0,0.3];
_page1 = _pcredits;
_newpages = [] call _pkeys;
_pstart = 2;
_pcount = count _newpages;
_pnext = _pstart + _pcount;
};
case "MULT": {
_fadet = 20;
_color = [1,1,1,1];
//_bcolor = [0,0,0,0.3];
_page1 = _pcredits;
_newpages = [] call _pkeys;
_pstart = 2;
_pcount = count _newpages;
_pnext = _pstart + _pcount;
};
default {};
};
//main menu display
if (typeName(_data select 0) == "DISPLAY") then {
_display = _data select 0;
};
if (typeName(_data select 0) == "CONTROL") then {
_control = _data select 0;
_display = ctrlParent _control;
};
//dynamic pages
_pnames = [];
for "_x" from _pstart to _pnext - 1 do {
_pnam = format ["_page%1",_x];
PUSH(_pnames,_pnam);
};
private _pnames;
for "_x" from 0 to _pcount - 1 do {
call compile format ["%1 = %2", _pnames select _x, _newpages select _x];
};
//get num pages
_pages = 0;
_run = true;
while {_run} do {
INC(_pages);
if (isNil format ["_page%1", _pages]) exitWith {_pages = _pages - 1; _run = false};
};
if (_pages > 0) then {
//Dialog
createDialog "ACE_ABOUT_DLG";
_disp = uiNamespace getVariable "ACE_ABOUT_DLG";
_ctrl = _disp displayCtrl 1141371;
_next = _disp displayCtrl 1141372;
if (_pages > 1) then {_next ctrlSetText "Next"};
_ctrl ctrlSetFade 1;
_ctrl ctrlCommit 0;
_ctrl ctrlSetFade 0;
_ctrl ctrlCommit 3;
ACE_ABOUT_INC = 0;
_input = { //local function
_nesc = isNil "ACE_ABOUT_STP";
if (_pages == 1) then {ACE_ABOUT_INC = 0}; //ignore special control
_unset = (ACE_ABOUT_INC == 0) && ACE_ABOUT_RUN;
if (_unset && _nesc) then {false} else {_fadet = _fadet + 5; true};
};
//by default cycle
for "_p" from 1 to _pages do {
_text = "";
_page = call compile format["_page%1",_p];
_curPage = _p;
{
_text = _text + _x + "<br />";
_ctrl ctrlSetStructuredText parseText _text;
if (call _input) exitWith {_p = _pages};
if (_x != "") then {uisleep 0.8};
} forEach _page;
};
_run = true;
while {if (isNil "ACE_ABOUT_STP") then {_run} else {false}} do {
_ctrl ctrlSetFade 0;
_ctrl ctrlCommit 0;
if (!isNil "_color") then {_ctrl ctrlSetTextColor _color};
if (!isNil "_bcolor") then {_ctrl ctrlSetBackgroundColor _bcolor};
_curPage = _curPage + ACE_ABOUT_INC;
if (_curPage > _pages) then {_curPage = 1};
if (_curPage <= 0) then {_curPage = 1};
ACE_ABOUT_INC = 0;
if (!ACE_ABOUT_RUN) then {ACE_ABOUT_RUN = true};
_text = "";
_page = call compile format ["_page%1",_curPage];
{_text = _text + _x + "<br />"} forEach _page;
_ctrl ctrlSetStructuredText parseText _text;
_ctrl ctrlSetFade 1;
_ctrl ctrlCommit _fadet;
_time = time + _fadet + 2;
waitUntil{uisleep 1; _run = call _input; _faded = time > _time; (_run || _faded)};
}; //while RUN
};
ACE_ABOUT_STP = Nil;
ACE_ABOUT_RUN = Nil;
closeDialog 0;

View File

@ -1,92 +0,0 @@
License (short)
===============
You are free:
- to Share — to copy, distribute and transmit the work
Under the following conditions:
- Attribution — You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work).
- Noncommercial — You may not use this work for commercial purposes.
- No Derivative Works — You may not alter, transform, or build upon this work.
With the understanding that:
Waiver — Any of the above conditions can be waived if you get permission from the copyright holder.
Public Domain — Where the work or any of its elements is in the public domain under applicable law, that status is in no way affected by the license.
Other Rights — In no way are any of the following rights affected by the license:
- Your fair dealing or fair use rights, or other applicable copyright exceptions and limitations;
- The author's moral rights;
- Rights other persons may have either in the work itself or in how the work is used, such as publicity or privacy rights.
Notice — For any reuse or distribution, you must make clear to others the license terms of this work. The best way to do this is with a link to this web page.
Full license text
=================
THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.
1. Definitions
"Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License.
"Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License.
"Distribute" means to make available to the public the original and copies of the Work through sale or other transfer of ownership.
"Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License.
"Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast.
"Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work.
"You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation.
"Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images.
"Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium.
2. Fair Dealing Rights.
Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws.
3. License Grant.
Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below:
to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; and, to Distribute and Publicly Perform the Work including as incorporated in Collections.
The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats, but otherwise you have no rights to make Adaptations. Subject to 8(f), all rights not expressly granted by Licensor are hereby reserved, including but not limited to the rights set forth in Section 4(d).
4. Restrictions.
The license granted in Section 3 above is expressly made subject to and limited by the following restrictions:
You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested.
You may not exercise any of the rights granted to You in Section 3 above in any manner that is primarily intended for or directed toward commercial advantage or private monetary compensation. The exchange of the Work for other copyrighted works by means of digital file-sharing or otherwise shall not be considered to be intended for or directed toward commercial advantage or private monetary compensation, provided there is no payment of any monetary compensation in connection with the exchange of copyrighted works.
If You Distribute, or Publicly Perform the Work or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work. The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Collection, at a minimum such credit will appear, if a credit for all contributing authors of Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties.
For the avoidance of doubt:
Non-waivable Compulsory License Schemes.
In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License;
Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License if Your exercise of such rights is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b) and otherwise waives the right to collect royalties through any statutory or compulsory licensing scheme; and,
Voluntary License Schemes. The Licensor reserves the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License that is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b).
Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation.
5. Representations, Warranties and Disclaimer.
UNLESS OTHERWISE MUTUALLY AGREED BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.
6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
7. Termination.
This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License.
Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work).
Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above.
8. Miscellaneous.
Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License.
If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent.
This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You.
The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law.

View File

@ -1,92 +0,0 @@
License (short)
===============
You are free:
- to Share — to copy, distribute and transmit the work
Under the following conditions:
- Attribution — You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work).
- Noncommercial — You may not use this work for commercial purposes.
- No Derivative Works — You may not alter, transform, or build upon this work.
With the understanding that:
Waiver — Any of the above conditions can be waived if you get permission from the copyright holder.
Public Domain — Where the work or any of its elements is in the public domain under applicable law, that status is in no way affected by the license.
Other Rights — In no way are any of the following rights affected by the license:
- Your fair dealing or fair use rights, or other applicable copyright exceptions and limitations;
- The author's moral rights;
- Rights other persons may have either in the work itself or in how the work is used, such as publicity or privacy rights.
Notice — For any reuse or distribution, you must make clear to others the license terms of this work. The best way to do this is with a link to this web page.
Full license text
=================
THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.
1. Definitions
"Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License.
"Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License.
"Distribute" means to make available to the public the original and copies of the Work through sale or other transfer of ownership.
"Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License.
"Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast.
"Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work.
"You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation.
"Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images.
"Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium.
2. Fair Dealing Rights.
Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws.
3. License Grant.
Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below:
to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; and, to Distribute and Publicly Perform the Work including as incorporated in Collections.
The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats, but otherwise you have no rights to make Adaptations. Subject to 8(f), all rights not expressly granted by Licensor are hereby reserved, including but not limited to the rights set forth in Section 4(d).
4. Restrictions.
The license granted in Section 3 above is expressly made subject to and limited by the following restrictions:
You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested.
You may not exercise any of the rights granted to You in Section 3 above in any manner that is primarily intended for or directed toward commercial advantage or private monetary compensation. The exchange of the Work for other copyrighted works by means of digital file-sharing or otherwise shall not be considered to be intended for or directed toward commercial advantage or private monetary compensation, provided there is no payment of any monetary compensation in connection with the exchange of copyrighted works.
If You Distribute, or Publicly Perform the Work or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work. The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Collection, at a minimum such credit will appear, if a credit for all contributing authors of Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties.
For the avoidance of doubt:
Non-waivable Compulsory License Schemes.
In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License;
Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License if Your exercise of such rights is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b) and otherwise waives the right to collect royalties through any statutory or compulsory licensing scheme; and,
Voluntary License Schemes. The Licensor reserves the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License that is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b).
Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation.
5. Representations, Warranties and Disclaimer.
UNLESS OTHERWISE MUTUALLY AGREED BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.
6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
7. Termination.
This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License.
Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work).
Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above.
8. Miscellaneous.
Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License.
If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.
No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent.
This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You.
The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law.

View File

@ -1,3 +0,0 @@
#define __cr_managers "Manager: "
#define __cr_devs "Developer:"
#define __cr_testers "Contributor: "

View File

@ -1,43 +0,0 @@
#define true 1
#define false 0
#define private 0
#define protected 1
#define public 2
#define TEast 0
#define TWest 1
#define TGuerrila 2
#define TCivilian 3
#define TSideUnknown 4
#define TEnemy 5
#define TFriendly 6
#define TLogic 7
#define VSoft 0
#define VArmor 1
#define VAir 2
#define LockNo 0
#define LockCadet 1
#define LockYes 2
#define ReadAndWrite 0
#define ReadAndCreate 1
#define ReadOnly 2
#define ReadOnlyVerified 3
#define WeaponNoSlot 0 // dummy weapons
#define WeaponSlotPrimary 1 // primary weapons
#define WeaponSlotSecondary 16 // secondary weapons
#define WeaponSlotItem 256 // items
#define WeaponSlotBinocular 4096 // binocular
#define WeaponHardMounted 65536
#define CanSeeRadar 1
#define CanSeeRye 2
#define CanSeeOptics 4
#define CanSeeEar 4
#define CanSeeCompass 16
#define CanSeeRadarC CanSeeRadar+CanSeeCompass
#define CanSeeAll 31

View File

@ -4,171 +4,6 @@
// Default versioning level
#define DEFAULT_VERSIONING_LEVEL 2
// RGB Colors
#define RGB_GREEN 0, 0.5, 0, 1
#define RGB_BLUE 0, 0, 1, 1
#define RGB_ORANGE 0.5, 0.5, 0, 1
#define RGB_RED 1, 0, 0, 1
#define RGB_YELLOW 1, 1, 0, 1
#define RGB_WHITE 1, 1, 1, 1
#define RGB_GRAY 0.5, 0.5, 0.5, 1
#define RGB_BLACK 0, 0, 0, 1
#define RGB_MAROON 0.5, 0, 0, 1
#define RGB_OLIVE 0.5, 0.5, 0, 1
#define RGB_NAVY 0, 0, 0.5, 1
#define RGB_PURPLE 0.5, 0, 0.5, 1
#define RGB_FUCHSIA 1, 0, 1, 1
#define RGB_AQUA 0, 1, 1, 1
#define RGB_TEAL 0, 0.5, 0.5, 1
#define RGB_LIME 0, 1, 0, 1
#define RGB_SILVER 0.75, 0.75, 0.75, 1
#include "script_macros_menudef.hpp"
#define ACE_NOARMORY class Armory { disabled = 1; }
#define ACE_ARMORY class Armory { disabled = 0; }
#define ACE_ACEARMORY class Armory { disabled = 0; author = "A.C.E."; }
// Weapon defaults
// NOTE !!!! - Do not forget to dummy-update the configs that use these defines, or the changes won't activate due to binarization!
#define ACE_DEFAULT_WEAPONS "Throw", "Put"
// Item defaults
// NOTE !!!! - Do not forget to dummy-update the configs that use these defines, or the changes won't activate due to binarization!
#define ACE_ITEMS_TEAMLEADER_B "ItemMap","ItemCompass","ItemWatch","ItemRadio"
#define ACE_ITEMS_SQUADLEADER_B "ItemMap","ItemCompass","ItemWatch","ItemRadio","ACE_DAGR"
#define ACE_ITEMS_SPECIAL "ItemMap","ItemCompass","ItemWatch","ItemRadio"
#define ACE_ITEMS "ItemWatch","ItemRadio"
#define ACE_ITEMS_CIVILIAN "ItemWatch"
#define ACE_DEFAULT_SLOTS "1 + 4 + 12* 256 + 2* 4096 + 2 + 8* 16 + 12*131072"
#define ACE_NOGRIP handAnim[] = {}
#define ACE_DISTANCE_DEFAULT distanceZoomMin = 300; distanceZoomMax = 300
// #include "script_macros_optics.hpp" //ToDo
#define ACE_NOZEROING discreteDistance[] = {}; \
discreteDistanceInitIndex = 0; \
weaponInfoType = "RscWeaponEmpty"
#define ACE_NOTURRETZEROING discreteDistance[] = {}; \
discreteDistanceInitIndex = 0; \
turretInfoType = "RscWeaponEmpty"
#define ACE_LASER irLaserPos = "laser pos"; \
irLaserEnd = "laser dir"; \
irDistance = 300
#define ACE_LASER_DISTANCE_VANILLA irDistance = 300
#define ACE_NOLASER irLaserPos = "laser pos"; \
irLaserEnd = "laser dir"; \
irDistance = 0
#define ACE_SUPPRESSED ace_suppressed = 1; \
fireLightDuration = 0; \
fireLightIntensity = 0
// TODO: Cleanup in all the configs around
#define ACE_M_MAG(x,y) class _xx_##x {magazine = ##x; count = ##y;}
#define ACE_M_WEP(x,y) class _xx_##x {weapon = ##x; count = ##y;}
#define ACE_M_ITEM(x,y) class _xx_##x {name = ##x; count = ##y;}
#define ACE_M_BAG(x,y) class _xx_##x {backpack = ##x; count = ##y;}
// Vehicle defines
// ACE_canBeLoad = This vehicle acts as transporter, i.e you can load stuff into it
// ACE_canBeCargo = This vehicle acts as cargo, i.e you can load this item into other vehicles
#define ACE_CARGO_FRONT ACE_canBeLoad = false; ACE_canBeCargo = true; ACE_canGear = false; ACE_canLoadFront = true
#define ACE_CARGO_ONLY ACE_canBeLoad = false; ACE_canBeCargo = true; ACE_canGear = false; ACE_canLoadFront = false
#define ACE_LOAD_ONLY ACE_canBeLoad = true; ACE_canBeCargo = false; ACE_canGear = false; ACE_canLoadFront = false
#define ACE_GEAR_ONLY ACE_canBeLoad = true; ACE_canBeCargo = false; ACE_canGear = true; ACE_canLoadFront = false
#define ACE_NOCARGOLOAD ACE_canBeLoad = false; ACE_canBeCargo = false; ACE_canGear = false; ACE_canLoadFront = false
// Increased FOV for tank driver
// Increased Default US Tank driver optic
#define ACE_DRIVEROPTIC_TANK_US driverOpticsModel = "\z\ace\addons\m_veh_optics\driver\optika_tank_driver_west.p3d"
// Increased Default RU Tank driver optic
#define ACE_DRIVEROPTIC_TANK_RU driverOpticsModel = "\z\ace\addons\m_veh_optics\driver\optika_tank_driver_east.p3d"
// Increased Default NON Specified driver optic
#define ACE_DRIVEROPTIC_TANK driverOpticsModel = "\z\ace\addons\m_veh_optics\driver\optika_tank_driver.p3d"
// Increased Default EP1 NON Specified driver optic
// Default black border thing needs finish
#define ACE_DRIVEROPTIC_TANK_EP1 driverOpticsModel = "\z\ace\addons\m_veh_optics\driver\optika_tank_driver.p3d"
#define ACE_BWC ace_bwc = 1
// SCRIPTING MACROS
// Items
#define inITEMS(x,y) (##x in (y call ACE_fnc_getGear))
#define remITEMS(x,y) ([##x,y] call ACE_fnc_removeItem)
//#define addITEMS(x,y) (y addItem ##x)
// Interaction/ Put anims
#define canANIM(x) (x call ACE_fnc_CanPutDown)
#define playANIM(x) (if (x call ACE_fnc_CanPutDown) then { x call ACE_fnc_PutDown })
// In vehicle or on foot
#define ONFOOT(x) (x == vehicle x)
#define INVEHICLE(x) (x != vehicle x)
// FX
#define COUGH ace_common_fx_fnc_cough
#define BLURRY ace_common_fx_fnc_blurry
#define BLIND ace_common_fx_fnc_blind_view
#define DEAF ace_common_fx_fnc_deaf
#define DIZZY ace_common_fx_fnc_dizzy
#define FLASH ace_common_fx_fnc_flash
#define KICK ace_common_fx_fnc_kick
#define KNOCKOUT ace_common_fx_fnc_knockout
#define RING ace_common_fx_fnc_ring
// Stamina
#define INC_MASS ace_stamina_fnc_inc_mass
// Does this work, due to BWC_CONFIG(NAME) ?
#undef BWC_CONFIG
#define BWC_CONFIG(NAME) class NAME { \
units[] = {}; \
weapons[] = {}; \
requiredVersion = REQUIRED_VERSION; \
requiredAddons[] = {}; \
version = VERSION; \
ACE_BWC; \
}
#define ACE_FLASHLIGHT class FlashLight { \
color[] = {0.9, 0.9, 0.7, 0.9}; \
ambient[] = {0.1, 0.1, 0.1, 1.0}; \
position = "flash dir"; \
direction = "flash"; \
angle = 30; \
scale[] = {1, 1, 0.5}; \
brightness = 0.1; \
}
#define ACE_SMALL_FLASHLIGHT class FlashLight { \
color[] = {0.9, 0.9, 0.7, 0.9}; \
ambient[] = {0.1, 0.1, 0.1, 1.0}; \
position = "flash dir"; \
direction = "flash"; \
angle = 20; \
scale[] = {0.9, 0.9, 0.4}; \
brightness = 0.09; \
}
// Addaction defines for colored text
#define ACE_TEXT_ORANGE(Text) ("<t color='#ffa500'>" + ##Text + "</t>")
#define ACE_TEXT_RED(Text) ("<t color='#FF0000'>" + ##Text + "</t>")
#define ACE_TEXT_GREEN(Text) ("<t color='#00FF00'>" + ##Text + "</t>")
#define ACE_TEXT_YELLOW(Text) ("<t color='#FFFF00'>" + ##Text + "</t>")
#define EGVAR(module,var) TRIPLES(PREFIX,module,var)
#define QEGVAR(module,var) QUOTE(EGVAR(module,var))

View File

@ -1,27 +0,0 @@
// ACE Self Interaction Conditions
// Self Interaction Menu not available if player is unconscious
#define ACE_INTERACT_ALIVE (alive player)
#define ACE_INTERACT_UNCON (player call ace_wounds_fnc_isUncon)
// Player is Player Vehicle
#define ACE_INTERACT_PLAYER (player == vehicle player || (player != vehicle player && player in assignedCargo vehicle player))
// Player is climbing up a ladder
#define ACE_INTERACT_LADDER (animationState player in ["ladderriflestatic","laddercivilstatic"])
// Possible = Self interaction opens only if player is alive and conscious (can be in a vehicle)
#define ACE_SELFINTERACTION_POSSIBLE (!ACE_INTERACT_LADDER && {ACE_INTERACT_ALIVE} && {!ACE_INTERACT_UNCON})
// Restricted = Self interaction opens only if player is alive and conscious (can NOT be in a vehicle, i.e Groundmarker, explosives ...)
#define ACE_SELFINTERACTION_RESTRICTED (ACE_SELFINTERACTION_POSSIBLE && {ACE_INTERACT_PLAYER})
// Close interaction menu if unconscious
#define ACE_INTERACT_FNC_EXIT if (ACE_INTERACT_UNCON) exitWith {}
#define ACE_ASSEMBLE (getNumber(configFile >> "CfgActions" >> "Assemble" >> "show") == 0)
#define ACE_DISASSEMBLE (getNumber(configFile >> "CfgActions" >> "DisAssemble" >> "show") == 0)
#define ACE_PIPEDEFAULT (getNumber(configFile >> "CfgMagazines" >> "PipeBomb" >> "useAction") == 0)
#define ACE_IDENTITYDEFAULT (isClass(configFile >> "CfgPatches" >> "ace_combatdeaf"))
#define ACE_RUCKDEFAULT (isClass(configFile >> "CfgPatches" >> "ace_stamina"))
#define ACE_KNOWN2PLAYER (if (name _target in (player getVariable ["ace_recognize_knownnames",[]])) then { name _target } else { " " })

View File

@ -15,41 +15,3 @@
// MINIMAL required version for the Mod. Components can specify others..
#define REQUIRED_VERSION 0.5
/*
#define DEBUG_ENABLED_ADDONS
#define DEBUG_ENABLED_ATTACHMENTS
#define DEBUG_ENABLED_weapons_backblast
#define DEBUG_ENABLED_BLOOD
#define DEBUG_ENABLED_CARTRIDGES
#define DEBUG_ENABLED_CRATERS
#define DEBUG_ENABLED_CREWPROTECTION
#define DEBUG_ENABLED_DUMMIES
#define DEBUG_ENABLED_EJECT
#define DEBUG_ENABLED_EXPLOSIVES
#define DEBUG_ENABLED_FLARES
#define DEBUG_ENABLED_FLASHBANG
#define DEBUG_ENABLED_GRENADETHROW
#define DEBUG_ENABLED_HUNTIR
#define DEBUG_ENABLED_INTERACTION
#define DEBUG_ENABLED_IRSTROBE
#define DEBUG_ENABLED_MULTI_BARREL
#define DEBUG_ENABLED_MUZZLEBLAST
#define DEBUG_ENABLED_NVG
#define DEBUG_ENABLED_weapons_overheating
#define DEBUG_ENABLED_RECOILDUST
#define DEBUG_ENABLED_ROCKET_BALLISTICS
#define DEBUG_ENABLED_SANDBAG
#define DEBUG_ENABLED_SHOTGUN
#define DEBUG_ENABLED_SIGHT_ADJUSTMENT_AT
#define DEBUG_ENABLED_SIGHT_ADJUSTMENT_GL
#define DEBUG_ENABLED_SIGHT_ADJUSTMENT_RIFLE
#define DEBUG_ENABLED_SMAW_SPOTTINGRIFLE
#define DEBUG_ENABLED_TRACERS
#define DEBUG_ENABLED_TRACKING
#define DEBUG_ENABLED_VIEWBLOCK
#define DEBUG_ENABLED_VEHICLE
#define DEBUG_ENABLED_vehicle_damage
#define DEBUG_ENABLED_WEAPONREST
#define DEBUG_ENABLED_WOUNDS
*/

View File

@ -18,7 +18,7 @@
<Spanish>Las herramientas de mapa permiten medir distancias y ángulos en el mapa.</Spanish>
<French>Les outils de navigation permettent de mesurer des distances et des angles sur la carte.</French>
<Polish>Narzędzia nawigacyjne pozwalają na mierzenie odległości i kątów na mapie.</Polish>
<German>Das Kartenwerkzeug erlaubt es dir, Distanzen und Winkel zu messen.</German>
<German>Das Kartenwerkzeug ermöglicht es dir, Distanzen und Winkel zu messen.</German>
<Czech>Pomůcky k mapě slouží k měření vzdáleností a úhlů na mapě.</Czech>
<Italian>Gli Strumenti Cartografici ti consentono di misurare distanze ed angoli sulla mappa.</Italian>
<Portuguese>As Ferramentas de Mapa permitem que você meça distâncias e ângulos no mapa.</Portuguese>

View File

@ -7,7 +7,7 @@ class ACE_Head {
icon = PATHTOF(UI\icons\medical_cross.paa);
distance = MEDICAL_ACTION_DISTANCE;
class Bandage {
displayName = "$STR_ACE_Medical_Bandage_HitHead";
displayName = "$STR_ACE_Medical_Bandage";
distance = 2.0;
condition = QUOTE([ARR_4(_player, _target, 'head', 'Bandage')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'head', 'Bandage')] call DFUNC(treatment));
@ -78,7 +78,7 @@ class ACE_Torso {
icon = PATHTOF(UI\icons\medical_cross.paa);
distance = MEDICAL_ACTION_DISTANCE;
class Bandage {
displayName = "$STR_ACE_Medical_Bandage_HitBody";
displayName = "$STR_ACE_Medical_Bandage";
distance = 2.0;
condition = QUOTE([ARR_4(_player, _target, 'body', 'Bandage')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'body', 'Bandage')] call DFUNC(treatment));
@ -178,7 +178,7 @@ class ACE_ArmLeft {
distance = MEDICAL_ACTION_DISTANCE;
class Bandage {
displayName = "$STR_ACE_Medical_Bandage_HitLeftArm";
displayName = "$STR_ACE_Medical_Bandage";
distance = 2.0;
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'Bandage')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'Bandage')] call DFUNC(treatment));
@ -334,7 +334,7 @@ class ACE_ArmRight {
distance = MEDICAL_ACTION_DISTANCE;
class Bandage {
displayName = "$STR_ACE_Medical_Bandage_HitRightArm";
displayName = "$STR_ACE_Medical_Bandage";
distance = 2.0;
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'Bandage')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Bandage')] call DFUNC(treatment));
@ -487,7 +487,7 @@ class ACE_LegLeft {
distance = MEDICAL_ACTION_DISTANCE;
class Bandage {
displayName = "$STR_ACE_Medical_Bandage_HitLeftLeg";
displayName = "$STR_ACE_Medical_Bandage";
distance = 2.0;
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'Bandage')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Bandage')] call DFUNC(treatment));
@ -628,7 +628,7 @@ class ACE_LegRight {
distance = MEDICAL_ACTION_DISTANCE;
class Bandage {
displayName = "$STR_ACE_Medical_Bandage_HitRightLeg";
displayName = "$STR_ACE_Medical_Bandage";
distance = 2.0;
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'Bandage')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Bandage')] call DFUNC(treatment));

View File

@ -14,7 +14,7 @@ class Medical {
runOnHover = 1;
class Bandage {
displayName = "$STR_ACE_Medical_Bandage_HitHead";
displayName = "$STR_ACE_Medical_Bandage";
distance = 2.0;
condition = QUOTE([ARR_4(_player, _target, 'head', 'Bandage')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"};
@ -84,7 +84,7 @@ class Medical {
icon = PATHTOF(UI\icons\medical_cross.paa);
class Bandage {
displayName = "$STR_ACE_Medical_Bandage_HitBody";
displayName = "$STR_ACE_Medical_Bandage";
distance = 2.0;
condition = QUOTE([ARR_4(_player, _target, 'body', 'Bandage')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"};
@ -149,7 +149,7 @@ class Medical {
icon = PATHTOF(UI\icons\medical_cross.paa);
class Bandage {
displayName = "$STR_ACE_Medical_Bandage_HitLeftArm";
displayName = "$STR_ACE_Medical_Bandage";
distance = 2.0;
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'Bandage')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"};
@ -249,7 +249,7 @@ class Medical {
icon = PATHTOF(UI\icons\medical_cross.paa);
class Bandage {
displayName = "$STR_ACE_Medical_Bandage_HitRightArm";
displayName = "$STR_ACE_Medical_Bandage";
distance = 2.0;
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'Bandage')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"};
@ -345,7 +345,7 @@ class Medical {
icon = PATHTOF(UI\icons\medical_cross.paa);
class Bandage {
displayName = "$STR_ACE_Medical_Bandage_HitLeftLeg";
displayName = "$STR_ACE_Medical_Bandage";
distance = 2.0;
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'Bandage')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"};
@ -430,7 +430,7 @@ class Medical {
icon = PATHTOF(UI\icons\medical_cross.paa);
class Bandage {
displayName = "$STR_ACE_Medical_Bandage_HitRightLeg";
displayName = "$STR_ACE_Medical_Bandage";
distance = 2.0;
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'Bandage')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"};
@ -506,4 +506,4 @@ class Medical {
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'RemoveTourniquet')] call DFUNC(treatment));
};
};
};
};

View File

@ -55,15 +55,6 @@ class ACE_Medical_Actions {
animationCaller = "AinvPknlMstpSnonWnonDnon_medic1";
litter[] = {};
};
class Tourniquet: Bandage {
displayName = "$STR_ACE_Medical_Apply_Tourniquet";
displayNameProgress = "$STR_ACE_Medical_Applying_Tourniquet";
items[] = {"ACE_tourniquet"};
treatmentTime = 6;
callbackSuccess = QUOTE(DFUNC(treatmentTourniquet));
condition = QUOTE(!([ARR_2(_this select 1, _this select 2)] call FUNC(hasTourniquetAppliedTo)));
litter[] = {};
};
class BodyBag: Bandage {
displayName = "$STR_ACE_MEDICAL_PlaceInBodyBag";
displayNameProgress = "$STR_ACE_MEDICAL_PlacingInBodyBag";
@ -80,6 +71,27 @@ class ACE_Medical_Actions {
itemConsumed = 1;
litter[] = {};
};
class CheckPulse: Bandage {
displayName = "";
displayNameProgress = "";
treatmentLocations[] = {"All"};
requiredMedic = 0;
treatmentTime = 2;
items[] = {};
callbackSuccess = QUOTE(DFUNC(actionCheckPulse));
callbackFailure = "";
callbackProgress = "";
animationPatient = "";
animationCaller = ""; // TODO
itemConsumed = 0;
litter[] = {};
};
class CheckBloodPressure: CheckPulse {
callbackSuccess = QUOTE(DFUNC(actionCheckBloodPressure));
};
class CheckResponse: CheckPulse {
callbackSuccess = QUOTE(DFUNC(actionCheckResponse));
};
};
class Advanced {

View File

@ -117,4 +117,11 @@ class ACE_Settings {
typeName = "BOOL";
value = 1;
};
class GVAR(painEffectType) {
displayName = "$STR_ACE_Medical_painEffectType";
typeName = "SCALAR";
value = 0;
values[] = {"$STR_ACE_Medical_painEffect_Flash", "$STR_ACE_Medical_painEffect_Chroma"};
isClientSettable = 1;
};
};

View File

@ -47,11 +47,3 @@ class Extended_Local_EventHandlers {
};
};
};
class Extended_Take_EventHandlers {
class CAManBase {
class ADDON {
take = QUOTE(call FUNC(itemCheck));
};
};
};

View File

@ -645,7 +645,7 @@ class CfgVehicles {
EGVAR(dragging,dragPosition[]) = {0,1.2,0};
EGVAR(dragging,dragDirection) = 0;
class ACE_Actions {
class ACE_MainActions {
class ACE_MainActions {
displayName = "$STR_ACE_Interaction_MainAction";
distance = 5;
condition = QUOTE(true);
@ -696,10 +696,8 @@ class CfgVehicles {
displayName = $STR_ACE_MEDICAL_BANDAGE_BASIC_DISPLAY;
author = "$STR_ACE_Common_ACETeam";
vehicleClass = "Items";
class TransportItems
{
class ACE_fieldDressing
{
class TransportItems {
class ACE_fieldDressing {
name = "ACE_fieldDressing";
count = 1;
};
@ -711,10 +709,8 @@ class CfgVehicles {
displayName = $STR_ACE_MEDICAL_PACKING_BANDAGE_DISPLAY;
author = "$STR_ACE_Common_ACETeam";
vehicleClass = "Items";
class TransportItems
{
class ACE_packingBandage
{
class TransportItems {
class ACE_packingBandage {
name = "ACE_packingBandage";
count = 1;
};
@ -726,10 +722,8 @@ class CfgVehicles {
displayName = $STR_ACE_MEDICAL_BANDAGE_ELASTIC_DISPLAY;
author = "$STR_ACE_Common_ACETeam";
vehicleClass = "Items";
class TransportItems
{
class ACE_elasticBandage
{
class TransportItems {
class ACE_elasticBandage {
name = "ACE_elasticBandage";
count = 1;
};
@ -741,10 +735,8 @@ class CfgVehicles {
displayName = $STR_ACE_MEDICAL_TOURNIQUET_DISPLAY;
author = "$STR_ACE_Common_ACETeam";
vehicleClass = "Items";
class TransportItems
{
class ACE_tourniquet
{
class TransportItems {
class ACE_tourniquet {
name = "ACE_tourniquet";
count = 1;
};
@ -756,10 +748,8 @@ class CfgVehicles {
displayName = $STR_ACE_MEDICAL_MORPHINE_DISPLAY;
author = "$STR_ACE_Common_ACETeam";
vehicleClass = "Items";
class TransportItems
{
class ACE_morphine
{
class TransportItems {
class ACE_morphine {
name = "ACE_morphine";
count = 1;
};
@ -771,10 +761,8 @@ class CfgVehicles {
displayName = $STR_ACE_MEDICAL_ATROPINE_DISPLAY;
author = "$STR_ACE_Common_ACETeam";
vehicleClass = "Items";
class TransportItems
{
class ACE_atropine
{
class TransportItems {
class ACE_atropine {
name = "ACE_atropine";
count = 1;
};
@ -786,10 +774,8 @@ class CfgVehicles {
displayName = $STR_ACE_MEDICAL_EPINEPHRINE_DISPLAY;
author = "$STR_ACE_Common_ACETeam";
vehicleClass = "Items";
class TransportItems
{
class ACE_epinephrine
{
class TransportItems {
class ACE_epinephrine {
name = "ACE_epinephrine";
count = 1;
};
@ -801,10 +787,8 @@ class CfgVehicles {
displayName = $STR_ACE_MEDICAL_PLASMA_IV;
author = "$STR_ACE_Common_ACETeam";
vehicleClass = "Items";
class TransportItems
{
class ACE_plasmaIV
{
class TransportItems {
class ACE_plasmaIV {
name = "ACE_plasmaIV";
count = 1;
};
@ -817,10 +801,8 @@ class CfgVehicles {
displayName = $STR_ACE_MEDICAL_BLOOD_IV;
author = "$STR_ACE_Common_ACETeam";
vehicleClass = "Items";
class TransportItems
{
class ACE_bloodIV
{
class TransportItems {
class ACE_bloodIV {
name = "ACE_bloodIV";
count = 1;
};
@ -832,10 +814,8 @@ class CfgVehicles {
displayName = $STR_ACE_MEDICAL_SALINE_IV;
author = "$STR_ACE_Common_ACETeam";
vehicleClass = "Items";
class TransportItems
{
class ACE_salineIV
{
class TransportItems {
class ACE_salineIV {
name = "ACE_salineIV";
count = 1;
};
@ -847,10 +827,8 @@ class CfgVehicles {
displayName = $STR_ACE_MEDICAL_QUIKCLOT_DISPLAY;
author = "$STR_ACE_Common_ACETeam";
vehicleClass = "Items";
class TransportItems
{
class ACE_quikClot
{
class TransportItems {
class ACE_quikClot {
name = "ACE_quikclot";
count = 1;
};
@ -862,10 +840,8 @@ class CfgVehicles {
displayName = $STR_ACE_MEDICAL_AID_KIT_DISPLAY;
author = "$STR_ACE_Common_ACETeam";
vehicleClass = "Items";
class TransportItems
{
class ACE_personalAidKit
{
class TransportItems {
class ACE_personalAidKit {
name = "ACE_personalAidKit";
count = 1;
};
@ -877,10 +853,8 @@ class CfgVehicles {
displayName = $STR_ACE_MEDICAL_SURGICALKIT_DISPLAY;
author = "$STR_ACE_Common_ACETeam";
vehicleClass = "Items";
class TransportItems
{
class ACE_surgicalKit
{
class TransportItems {
class ACE_surgicalKit {
name = "ACE_surgicalKit";
count = 1;
};
@ -892,10 +866,8 @@ class CfgVehicles {
displayName = $STR_ACE_MEDICAL_BODYBAG_DISPLAY;
author = "$STR_ACE_Common_ACETeam";
vehicleClass = "Items";
class TransportItems
{
class ACE_bodyBag
{
class TransportItems {
class ACE_bodyBag {
name = "ACE_bodyBag";
count = 1;
};
@ -906,9 +878,42 @@ class CfgVehicles {
class ACE_medicalSupplyCrate: NATO_Box_Base {
scope = 2;
accuracy = 1000;
displayName = "[ACE] Medical Supply Crate";
displayName = "[ACE] Medical Supply Crate (Basic)";
model = PATHTOF(data\ace_medcrate.p3d);
author = "$STR_ACE_Common_ACETeam";
class TransportItems {
class ACE_fieldDressing {
name = "ACE_fieldDressing";
count = 50;
};
class ACE_morphine {
name = "ACE_morphine";
count = 25;
};
class ACE_epinephrine {
name = "ACE_epinephrine";
count = 25;
};
class ACE_bloodIV {
name = "ACE_bloodIV";
count = 15;
};
class ACE_bloodIV_500 {
name = "ACE_bloodIV_500";
count = 15;
};
class ACE_bloodIV_250 {
name = "ACE_bloodIV_250";
count = 15;
};
class ACE_bodyBag {
name = "ACE_bodyBag";
count = 10;
};
};
};
class ACE_medicalSupplyCrate_advanced: ACE_medicalSupplyCrate {
displayName = "[ACE] Medical Supply Crate (Advanced)";
class TransportItems {
class ACE_fieldDressing {
name = "ACE_fieldDressing";

View File

@ -19,7 +19,6 @@ class CfgWeapons {
};
};
// @todo localize
class ACE_ItemCore;
class ACE_fieldDressing: ACE_ItemCore {
scope = 2;

View File

@ -21,14 +21,14 @@ GVAR(heartBeatSounds_Slow) = ["ACE_heartbeat_slow_1", "ACE_heartbeat_slow_2"];
_unit setVariable ["tf_unable_to_use_radio", true, true];
_unit setVariable ["acre_sys_core_isDisabled", true, true];
_unit setVariable ["acre_sys_core_globalVolume", 0.4];
if (!isNil "acre_api_fnc_setGlobalVolume") then { [0.4] call acre_api_fnc_setGlobalVolume; };
} else {
_unit setVariable ["tf_globalVolume", 1];
_unit setVariable ["tf_voiceVolume", 1, true];
_unit setVariable ["tf_unable_to_use_radio", false, true];
_unit setVariable ["acre_sys_core_isDisabled", false, true];
_unit setVariable ["acre_sys_core_globalVolume", 1];
if (!isNil "acre_api_fnc_setGlobalVolume") then { [1] call acre_api_fnc_setGlobalVolume; };
};
};
}] call ace_common_fnc_addEventHandler;
@ -153,11 +153,6 @@ GVAR(effectTimeBlood) = time;
GVAR(lastHeartBeat) = time;
GVAR(lastHeartBeatSound) = time;
// @todo, remove once parameters are set up
if (isNil QGVAR(level)) then {
GVAR(level) = 0;
};
// HEARTRATE BASED EFFECTS
[{
_heartRate = ACE_player getVariable [QGVAR(heartRate), 70];
@ -172,8 +167,7 @@ if (isNil QGVAR(level)) then {
// Pain effect
_strength = ACE_player getVariable [QGVAR(pain), 0];
// _strength = _strength * (ACE_player getVariable [QGVAR(coefPain), GVAR(coefPain)]); @todo
GVAR(alternativePainEffect) = false; // @todo
if (GVAR(alternativePainEffect)) then {
if (GVAR(painEffectType) == 1) then {
GVAR(effectPainCC) ppEffectEnable false;
if ((ACE_player getVariable [QGVAR(pain), 0]) > 0 && {alive ACE_player}) then {
_strength = _strength * 0.15;
@ -198,7 +192,7 @@ if (isNil QGVAR(level)) then {
} else {
GVAR(effectPainCA) ppEffectEnable false;
if ((ACE_player getVariable [QGVAR(pain), 0]) > 0 && {alive ACE_player}) then {
_strength = _strength * 0.6;
_strength = _strength * 0.9;
GVAR(effectPainCC) ppEffectEnable true;
GVAR(effectPainCC) ppEffectAdjust [1,1,0, [1,1,1,1], [0,0,0,0], [1,1,1,1], [1 - _strength,1 - _strength,0,0,0,0.2,2]];
GVAR(effectPainCC) ppEffectCommit 0.01;
@ -266,3 +260,8 @@ if (USE_WOUND_EVENT_SYNC) then {
// Prevent all types of interaction while unconscious
// @todo: probably remove this when CBA keybind hold key works properly
["isNotUnconscious", {!((_this select 0) getVariable ["ACE_isUnconscious", false])}] call EFUNC(common,addCanInteractWithCondition);
// Item Event Handler
["playerInventoryChanged", {
[ACE_player] call FUNC(itemCheck);
}] call EFUNC(common,addEventHandler);

View File

@ -47,8 +47,10 @@ if (_show) then {
_allInjuryTexts = [];
_genericMessages = [];
_partText = ["STR_ACE_Interaction_Head", "STR_ACE_Interaction_Torso", "STR_ACE_Interaction_ArmLeft" ,"STR_ACE_Interaction_ArmRight" ,"STR_ACE_Interaction_LegLeft", "STR_ACE_Interaction_LegRight"] select _selectionN;
_genericMessages pushback [localize _partText, [1, 1, 1, 1]];
if (GVAR(level) >= 2) then {
_partText = ["STR_ACE_Interaction_Head", "STR_ACE_Interaction_Torso", "STR_ACE_Interaction_ArmLeft" ,"STR_ACE_Interaction_ArmRight" ,"STR_ACE_Interaction_LegLeft", "STR_ACE_Interaction_LegRight"] select _selectionN;
_genericMessages pushback [localize _partText, [1, 1, 1, 1]];
};
if (_target getvariable[QGVAR(isBleeding), false]) then {
_genericMessages pushback [localize "STR_ACE_MEDICAL_STATUS_BLEEDING", [1, 0.1, 0.1, 1]];
@ -126,12 +128,22 @@ if (_show) then {
{
_selectionBloodLoss set [_forEachIndex, _target getHitPointDamage _x];
if (_target getHitPointDamage _x > 0.1 && {_forEachIndex == _selectionN}) then {
// @todo localize
_allInjuryTexts pushBack [format ["%1 %2",
["Lightly wounded", "Heavily wounded"] select (_target getHitPointDamage _x > 0.5),
["head", "torso", "left arm", "right arm", "left leg", "right leg"] select _forEachIndex
], [1,1,1,1]];
if (_target getHitPointDamage _x > 0 && {_forEachIndex == _selectionN}) then {
_pointDamage = _target getHitPointDamage _x;
_severity = switch (true) do {
case (_pointDamage > 0.5): {localize "STR_ACE_Medical_HeavilyWounded"};
case (_pointDamage > 0.1): {localize "STR_ACE_Medical_LightlyWounded"};
default {localize "STR_ACE_Medical_VeryLightlyWounded"};
};
_part = localize ([
"STR_ACE_Medical_Head",
"STR_ACE_Medical_Torso",
"STR_ACE_Medical_LeftArm",
"STR_ACE_Medical_RightArm",
"STR_ACE_Medical_LeftLeg",
"STR_ACE_Medical_RightLeg"
] select _forEachIndex);
_allInjuryTexts pushBack [format ["%1 %2", _severity, toLower _part], [1,1,1,1]];
};
} forEach ["HitHead", "HitBody", "HitLeftArm", "HitRightArm", "HitLeftLeg", "HitRightLeg"];
};

View File

@ -13,7 +13,7 @@
#include "script_component.hpp"
#define BLOODLOSSRATE_BASIC 0.4
#define BLOODLOSSRATE_BASIC 0.2
private ["_totalBloodLoss","_tourniquets","_openWounds", "_value", "_cardiacOutput", "_internalWounds"];
// TODO Only use this calculation if medium or higher, otherwise use vanilla calculations (for basic medical).

View File

@ -28,9 +28,8 @@ if (_syncValues) then {
};
_bloodVolume = (_unit getvariable [QGVAR(bloodVolume), 0]) + ([_unit] call FUNC(getBloodVolumeChange));
if (_bloodVolume <= 0) then {
_bloodVolume = 0;
};
_bloodVolume = _bloodVolume max 0;
_unit setvariable [QGVAR(bloodVolume), _bloodVolume, _syncValues];
// Set variables for synchronizing information across the net
@ -78,15 +77,11 @@ if (GVAR(level) == 1) then {
// bleeding
_blood = _unit getVariable [QGVAR(bloodVolume), 100];
_blood = (_blood - 0.4 * (damage _unit) * _interval) max 0;
if (_blood != (_unit getVariable [QGVAR(bloodVolume), 100])) then {
_unit setVariable [QGVAR(bloodVolume), _blood, _syncValues];
if (_blood <= 35 and !(_unit getVariable ["ACE_isUnconscious", false])) then {
[_unit, true] call FUNC(setUnconscious);
};
if (_blood == 0) then {
[_unit] call FUNC(setDead);
};
if (_blood <= 35 and !(_unit getVariable ["ACE_isUnconscious", false])) then {
[_unit, true] call FUNC(setUnconscious);
};
if (_blood == 0) then {
[_unit] call FUNC(setDead);
};
};

View File

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler. -->
<Project name="ACE">
<Package name="Medical">
<Key ID="STR_ACE_Medical_Inject_Atropine">
@ -50,6 +49,7 @@
</Key>
<Key ID="STR_ACE_Medical_Transfuse_Plasma">
<English>Transfuse Plasma</English>
<French>Plasma</French>
<German>Plasmatransfusion</German>
<Spanish>Transfundir plasma</Spanish>
<Czech>Transfúze plazmy</Czech>
@ -59,6 +59,7 @@
</Key>
<Key ID="STR_ACE_Medical_Transfuse_Saline">
<English>Transfuse Saline</English>
<French>Solution Saline</French>
<German>Salzlösungtransfusion</German>
<Spanish>Transfundir salino</Spanish>
<Czech>Transfúze fyziologický roztoku</Czech>
@ -68,6 +69,7 @@
</Key>
<Key ID="STR_ACE_Medical_Apply_Tourniquet">
<English>Apply Tourniquet</English>
<French>Garrot</French>
<German>Aderpresse anwenden</German>
<Spanish>Aplicar torniquete</Spanish>
<Czech>Aplikovat škrtidlo</Czech>
@ -184,6 +186,7 @@
</Key>
<Key ID="STR_ACE_Medical_Injecting_Atropine">
<English>Injecting Atropine ...</English>
<French>Injection d'Atropine ...</French>
<German>Atropin injizieren ...</German>
<Spanish>Inyectando Atropina ...</Spanish>
<Czech>Aplikuji atropin ...</Czech>
@ -205,6 +208,7 @@
</Key>
<Key ID="STR_ACE_Medical_Transfusing_Saline">
<English>Transfusing Saline ...</English>
<French>Transfusion de Solution Saline</French>
<German>Sallösungtransfusion ...</German>
<Spanish>Transfusión de salino ...</Spanish>
<Czech>Probíha transfúze fyziologický roztoku ...</Czech>
@ -214,6 +218,7 @@
</Key>
<Key ID="STR_ACE_Medical_Transfusing_Plasma">
<English>Transfusing Plasma ...</English>
<French>Transfusion de Plasma</French>
<German>Plasmatransfusion ...</German>
<Spanish>Transfusión de plasma ...</Spanish>
<Czech>Probíha transfúze plazmy ...</Czech>
@ -239,7 +244,7 @@
<Spanish>Aplicando torniquete ...</Spanish>
<Czech>Aplikuji škrtidlo</Czech>
<Polish>Zakładanie stazy ...</Polish>
<French>Mise en place du garrot</French>
<French>Mise en place du Garrot ...</French>
<Russian>Наложение жгута...</Russian>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIONS_Medical">
@ -276,7 +281,7 @@
<Russian>Давящая повязка</Russian>
<Czech>Elastické obinadlo</Czech>
<Polish>Bandaż elastyczny</Polish>
<French>Bandage Élastique</French>
<French>Pansement élastique</French>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIONS_QuikClot">
<English>QuikClot</English>
@ -285,9 +290,11 @@
<Russian>QuickClot</Russian>
<Polish>Opatrunek QuikClot</Polish>
<Czech>QuikClot</Czech>
<French>Hémostatique</French>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIONS_CheckPulse">
<English>Check Pulse</English>
<French>Vérification du Pouls</French>
<German>Puls überprüfen</German>
<Spanish>Comprobar pulso</Spanish>
<Russian>Проверить пульс</Russian>
@ -302,7 +309,7 @@
<Russian>Проверить давление</Russian>
<Czech>Zkontrolovat krevní tlak</Czech>
<Polish>Sprawdź ciśnienie krwi</Polish>
<French>Vérifier la pression sanguine</French>
<French>Vérification de la Tension</French>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIONS_TriageCard">
<English>Triage Card</English>
@ -311,6 +318,7 @@
<Russian>Медкарта</Russian>
<Polish>Karta segregacyjna</Polish>
<Czech>Karta Triage</Czech>
<French>Carte de Triage</French>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIONS_Tourniquet">
<English>Tourniquet</English>
@ -328,7 +336,7 @@
<Russian>Снять жгут</Russian>
<Czech>Sundat škrtidlo</Czech>
<Polish>Zdejmij stazę</Polish>
<French>Enlever le garrot</French>
<French>Enlever le Garrot</French>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIONS_Blood4_1000">
<English>Give Blood IV (1000ml)</English>
@ -336,7 +344,7 @@
<Spanish>Dar Sangre IV (1000ml)</Spanish>
<Russian>Дать кровь для в/в вливания (1000 мл)</Russian>
<Polish>Podaj krew IV (1000ml)</Polish>
<French>Mettre une poche de Sang IV (1000ml)</French>
<French>Administrer du Sang en IV (1000ml)</French>
<Czech>Podat krev. transfúzi (1000ml)</Czech>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIONS_Blood4_500">
@ -345,7 +353,7 @@
<Spanish>Dar Sangre IV (500ml)</Spanish>
<Russian>Дать кровь для в/в вливания (500 мл)</Russian>
<Polish>Podaj krew IV (500ml)</Polish>
<French>Mettre une poche de Sang IV (500ml)</French>
<French>Administrer du Sang en IV (500ml)</French>
<Czech>Podat krev. transfúzi (500ml) </Czech>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIONS_Blood4_250">
@ -354,7 +362,7 @@
<Spanish>Dar Sangre IV (250ml)</Spanish>
<Russian>Дать кровь для в/в вливания (250 мл)</Russian>
<Polish>Podaj krew IV (250ml)</Polish>
<French>Mettre une poche de Sang IV (250ml)</French>
<French>Administrer du Sang en IV (250ml)</French>
<Czech>Podat krev. transfúzi (250ml)</Czech>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIONS_Plasma4_1000">
@ -363,7 +371,7 @@
<Spanish>Dar Plasma IV (1000ml)</Spanish>
<Russian>Дать плазму для в/в вливания (1000 мл)</Russian>
<Polish>Podaj osocze IV (1000ml)</Polish>
<French>Mettre une poche de Plasma IV (1000ml)</French>
<French>Administrer du Plasma en IV (1000ml)</French>
<Czech>Podat plazmu (1000ml)</Czech>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIONS_Plasma4_500">
@ -372,7 +380,7 @@
<Spanish>Dar Plasma IV (500ml)</Spanish>
<Russian>Дать плазму для в/в вливания (500 мл)</Russian>
<Polish>Podaj osocze IV (500ml)</Polish>
<French>Mettre une poche de Plasma IV (500ml)</French>
<French>Administrer du Plasma en IV (500ml)</French>
<Czech>Podat plazmu (500ml)</Czech>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIONS_Plasma4_250">
@ -381,7 +389,7 @@
<Spanish>Dar Plasma IV (250ml)</Spanish>
<Russian>Дать плазму для в/в вливания (250 мл)</Russian>
<Polish>Podaj osocze IV (250ml)</Polish>
<French>Mettre une poche de Plasma IV (250ml)</French>
<French>Administrer du Plasma en IV (250ml)</French>
<Czech>Podat plazmu (250ml)</Czech>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIONS_Saline4_1000">
@ -390,7 +398,7 @@
<Spanish>Dar Salino IV (1000ml)</Spanish>
<Russian>Дать физраствор для в/в вливания (1000 мл)</Russian>
<Polish>Podaj solankę IV (1000ml)</Polish>
<French>Mettre une poche de Saline IV (1000ml)</French>
<French>Administrer de la Solution Saline en IV (1000ml)</French>
<Czech>Podaz fyz. roztok (1000ml)</Czech>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIONS_Saline4_500">
@ -399,7 +407,7 @@
<Spanish>Dar Salino IV (500ml)</Spanish>
<Russian>Дать физраствор для в/в вливания (500 мл)</Russian>
<Polish>Podaj solankę IV (500ml)</Polish>
<French>Mettre une poche de Saline IV (500ml)</French>
<French>Administrer de la Solution Saline en IV (500ml)</French>
<Czech>Podaz fyz. roztok (500ml)</Czech>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIONS_Saline4_250">
@ -408,11 +416,12 @@
<Spanish>Dar Salino IV (250ml)</Spanish>
<Russian>Дать физраствор для в/в вливания (250 мл)</Russian>
<Polish>Podaj solankę IV (250ml)</Polish>
<French>Mettre une poche de Saline IV (250ml)</French>
<French>Administrer de la Solution Saline en IV (250ml)</French>
<Czech>Podaz fyz. roztok (250ml)</Czech>
</Key>
<Key ID="STR_ACE_MEDICAL_TRIAGE_STATUS_MINOR">
<English>Minor</English>
<French>Blessé léger</French>
<German>Gering</German>
<Spanish>Menor</Spanish>
<Russian>Незначительная</Russian>
@ -425,7 +434,7 @@
<Spanish>Retrasado</Spanish>
<Russian>Груз 300</Russian>
<Polish>Opóźniony</Polish>
<French>Délayé</French>
<French>Différé</French>
<German>Verzögert</German>
<Czech>Odložitelný</Czech>
</Key>
@ -434,7 +443,7 @@
<Spanish>Inmediato</Spanish>
<Russian>Помощь отложена</Russian>
<Polish>Natychmiastowy</Polish>
<French>Immédiat</French>
<French>Urgence Immédiate</French>
<German>Sofort</German>
<Czech>Okamžiý</Czech>
</Key>
@ -470,7 +479,7 @@
<German>Keine Atmung</German>
<Russian>Дыхание отсутствует</Russian>
<Spanish>No respira</Spanish>
<French>Apnée</French>
<French>Aucune Respiration</French>
<Polish>Brak oddechu</Polish>
<Czech>Nedýchá</Czech>
</Key>
@ -497,7 +506,7 @@
<German>Blutet</German>
<Russian>Кровотечение</Russian>
<Spanish>Sangrando</Spanish>
<French>Seignement</French>
<French>Saignement</French>
<Polish>Krwawienie zewnętrzne</Polish>
<Czech>Krvácí</Czech>
</Key>
@ -506,7 +515,7 @@
<German>Hat Schmerzen</German>
<Russian>Испытывает боль</Russian>
<Spanish>Con dolor</Spanish>
<French>A De La Douleur</French>
<French>Ressent de la Douleur</French>
<Polish>W bólu</Polish>
<Czech>V bolestech</Czech>
</Key>
@ -524,7 +533,7 @@
<German>Aderpresse [CAT]</German>
<Russian>Жгут</Russian>
<Spanish>Torniquete [CAT]</Spanish>
<French>Garot [CAT]</French>
<French>Garrot [CAT]</French>
<Polish>Staza [typ. CAT]</Polish>
<Czech>Škrtidlo [CAT]</Czech>
</Key>
@ -534,7 +543,7 @@
<Spanish>Reciviendo IV [%1ml]</Spanish>
<Russian>Принимается переливание [%1 мл]</Russian>
<Polish>Otrzymywanie IV [%1ml]</Polish>
<French>Réception IV [%1ml]</French>
<French>Transfusion en IV [%1ml]</French>
<Czech>Přijímání transfúze [%1ml]</Czech>
</Key>
<Key ID="STR_ACE_MEDICAL_BANDAGE_BASIC_DISPLAY">
@ -559,7 +568,7 @@
<German>Ein Verband, der aus einem besonderen Material besteht um die Wunde zu schützen, nachdem die Blutung gestoppt wurde.</German>
<Russian>Повязка, накладываемая поверх раны после остановки кровотечения.</Russian>
<Spanish>Un apósito, material específico utilizado para cubrir una herida, se aplica sobre la herida una vez ha dejado de sangrar.</Spanish>
<French>C'est un bandage, qui est fait d'un matériel spécial utiliser pour couvrir une blessure, qui peut etre appliquer des que le seignement as ete stopper.</French>
<French>Bandage fait d'un matériel spécial utilisé pour couvrir une blessure, qui peut etre appliqué dès que le saignement a été stoppé.</French>
<Polish>Opatrunek materiałowy, używany do przykrywania ran, zakładany na ranę po zatamowaniu krwawienia.</Polish>
</Key>
<Key ID="STR_ACE_MEDICAL_PACKING_BANDAGE_DISPLAY">
@ -575,14 +584,14 @@
<German>Verwendet, um mittlere bis große Wunden abzudecken und Blutungen zu stoppen</German>
<Russian>Для тампонирования ран среднего и большого размера и остановки кровотечения.</Russian>
<Spanish>Se utiliza para vendar heridas medianas o grandes y detener el sangrado</Spanish>
<French>Utiliser pour remplire la cavité créé dans une blessure moyenne et grande.</French>
<French>Utilisé pour remplir la cavité créée dans une blessure de taille moyenne à grande.</French>
<Polish>Używany w celu opatrywania średnich i dużych ran oraz tamowania krwawienia.</Polish>
</Key>
<Key ID="STR_ACE_MEDICAL_PACKING_BANDAGE_DESC_USE">
<English>A bandage used to pack the wound to stem bleeding and facilitate wound healing. Packing a wound is an option in large polytrauma injuries.</English>
<Russian>Повязка для тампонирования раны, остановки кровотечения и лучшего заживления. При тяжелых сочетанных ранениях возможно тампонирование раны.</Russian>
<Spanish>Se utiliza para detener la hemorragia de una herida y favorecer su cicatrización. Se usa en grandes lesiones o politraumatismos.</Spanish>
<French>Un bandage servent a etre inseré dans les blessure pour éponger le seignement et faciliter la guerrison. Ce bandage est une option pour soigner les lession de politrauma.</French>
<French>Bandage pouvant être inseré dans les blessures pour éponger le saignement et faciliter la guerrison. Ce bandage est optionnel pour soigner les lésions polytraumatique.</French>
<Polish>Opatrunek stosowany w celu zatrzymania krwawienia i osłony większych ran.</Polish>
</Key>
<Key ID="STR_ACE_MEDICAL_BANDAGE_ELASTIC_DISPLAY">
@ -606,7 +615,7 @@
<English>Allows an even compression and extra support to the injured area.</English>
<German></German>
<Russian>Давящая повязка обеспечивает равномерное сжатие и дополнительную поддержку поврежденной области</Russian>
<French>Ce bandage peut etre utiliser pour compresser la plaie afin de ralentire le seignement et assurer la tenue du bandage lors de mouvment.</French>
<French>Ce bandage peut être utilisé pour compresser la plaie afin de ralentir le saignement et assurer la tenue du bandage lors de mouvement.</French>
<Polish>Elastyczna opaska podtrzymująca opatrunek oraz usztywniająca okolice stawów.</Polish>
<Spanish>Brinda una compresión uniforme y ofrece soporte extra a una zona lesionada</Spanish>
</Key>
@ -615,7 +624,7 @@
<German>Aderpresse (CAT)</German>
<Russian>Жгут</Russian>
<Spanish>Torniquete (CAT)</Spanish>
<French>Garot (CAT)</French>
<French>Garrot (CAT)</French>
<Polish>Staza (typ. CAT)</Polish>
<Czech>Škrtidlo (CAT)</Czech>
</Key>
@ -623,7 +632,7 @@
<English>Slows down blood loss when bleeding</English>
<Russian>Замедляет кровопотерю при кровотечении</Russian>
<Spanish>Reduce la velocidad de pérdida de sangre</Spanish>
<French>Ralentit le seignement</French>
<French>Ralentit le saignement</French>
<Polish>Zmniejsza ubytek krwi z kończyn w przypadku krwawienia.</Polish>
<German>Verringert den Blutverlust während einer Blutung</German>
</Key>
@ -631,7 +640,7 @@
<English>A constricting device used to compress venous and arterial circulation in effect inhibiting or slowing blood flow and therefore decreasing loss of blood.</English>
<Russian>Жгут используется для прижатия сосудов к костным выступам, которое приводит к остановке или значительному уменьшению кровотечения</Russian>
<Spanish>Dispositivo utilizado para eliminar el pulso distal y de ese modo controlar la pérdida de sangre</Spanish>
<French>Un appareil servent a compresser les artères et veines afin de reduire la perte de sang.</French>
<French>Un dispositif permettant de compresser les artères et veines afin de réduire la perte de sang.</French>
<Polish>Opaska uciskowa CAT służy do tamowanie krwotoków w sytuacji zranienia kończyn z masywnym krwawieniem tętniczym lub żylnym.</Polish>
<German>Ein Gerät, das Druck auf Venen und Arterien ausübt und so den Blutfluss verringert.</German>
</Key>
@ -649,14 +658,14 @@
<German>Wird verwendet um moderate bis starke Schmärzen zu lindern.</German>
<Russian>Для снятия средних и сильных болевых ощущений</Russian>
<Spanish>Usado para combatir los estados dolorosos de moderados a severos</Spanish>
<French>Utiliser pour contrer les douleurs modéré à severes.</French>
<French>Utilisé pour réduire les douleurs modérées à sévères.</French>
<Polish>Morfina. Ma silne działanie przeciwbólowe.</Polish>
</Key>
<Key ID="STR_ACE_MEDICAL_MORPHINE_DESC_USE">
<English>An analgesic used to combat moderate to severe pain experiences.</English>
<Russian>Обезболивающее для снятия средних и сильных болевых ощущений.</Russian>
<Spanish>Analgésico usado para combatir los estados dolorosos de moderados a severos.</Spanish>
<French>Un Analgésique puissant servant a contrer les douleur modéré a severe.</French>
<French>Un Analgésique puissant servant à réduire les douleurs modérées à sévères.</French>
<Polish>Organiczny związek chemiczny z grupy alkaloidów. Ma silne działanie przeciwbólowe.</Polish>
<German>Ein Schmerzmittel um mäßige bis starke Schmerzen zu behandeln</German>
</Key>
@ -673,7 +682,7 @@
<English>Used in NBC scenarios</English>
<Russian>Применяется для защиты от ОМП</Russian>
<Spanish>Usado en escenarios NBQ</Spanish>
<French>Utiliser en cas d'attaque CBRN</French>
<French>Utilisé en cas d'attaque CBRN</French>
<Polish>Atropina. Stosowana jako lek rozkurczowy i środek rozszerzający źrenice.</Polish>
<German>Verwendet bei ABC Kontamination</German>
</Key>
@ -698,7 +707,7 @@
<English>Increase heart rate and counter effects given by allergic reactions</English>
<Russian>Стимулирует работу сердца и купирует аллергические реакции</Russian>
<Spanish>Aumenta la frecuencia cardiaca y contraresta los efectos de las reacciones alérgicas</Spanish>
<French>Augmente la Fréquance cadiaque et contré les effet d'une reaction Anaphylactique</French>
<French>Augmente la fréquence cadiaque et annule les effets d'une réaction anaphylactique</French>
<Polish>Adrenalina. Zwiększa puls i przeciwdziała efektom wywołanym przez reakcje alergiczne</Polish>
<German>Steigert die Herzfrequenz, um den Effekt von allergischen Reaktionen zu bekämpfen</German>
</Key>
@ -706,7 +715,7 @@
<English>A drug that works on a sympathetic response to dilate the bronchi, increase heart rate and counter such effects given by allergic reactions (anaphylaxis). Used in sudden cardiac arrest scenarios with decreasing positive outcomes.</English>
<Russian>Препарат, вызывающий симпатическую реакцию, приводящую к расширению бронхов, увеличению частоты сердечных сокращений и купированию аллергических реакций (анафилактического шока). Применяется при остановке сердца с уменьшенной вероятностью благоприятного исхода.</Russian>
<Spanish>Medicamento que dilata los bronquios, aumenta la frecuencia cardiaca y contrarresta los efectos de las reacciones alérgicas (anafilaxis). Se utiliza en caso de paros cardiacos repentinos.</Spanish>
<French>Un medicament qui fonctione sur le systeme sympatique créan une dilatation des bronches, augmente la fréquance cardiaque et contre les effet d'une reaction alergique (anaphylaxie). Utiliser lors d'arret cardio-respiratoire pour augmenté les chances retrouver un ryhtme.</French>
<French>Medicament qui fonctionne sur le système nerveux sympathique créant une dilatation des bronches, augmente la fréquence cardiaque et annule les effets d'une réaction allergique (anaphylaxie). Utilisé lors d'arrêt cardio-respiratoire pour augmenter les chances de retrouver un pouls.</French>
<Polish>EpiPen z adrenaliną ma działanie sympatykomimetyczne, tj. pobudza receptory alfa- i beta-adrenergiczne. Pobudzenie układu współczulnego prowadzi do zwiększenia częstotliwości pracy serca, zwiększenia pojemności wyrzutowej serca i przyśpieszenia krążenia wieńcowego. Pobudzenie oskrzelowych receptorów beta-adrenergicznych wywołuje rozkurcz mięśni gładkich oskrzeli, co w efekcie zmniejsza towarzyszące oddychaniu świsty i duszności.</Polish>
</Key>
<Key ID="STR_ACE_MEDICAL_PLASMA_IV">
@ -721,14 +730,14 @@
<English>A volume-expanding blood supplement.</English>
<Russian>Дополнительный препарат, применяемый при возмещении объема крови.</Russian>
<Spanish>Suplemento para expandir el volumen sanguíneo.</Spanish>
<French>Supplement visant a remplacer les volume sanguin</French>
<French>Supplément visant à remplacer les volumes sanguin</French>
<Polish>Składnik krwi, używany do zwiększenia jej objętości.</Polish>
</Key>
<Key ID="STR_ACE_MEDICAL_PLASMA_IV_DESC_USE">
<English>A volume-expanding blood supplement.</English>
<Russian>Дополнительный препарат, применяемый при возмещении объема крови.</Russian>
<Spanish>Suplemento para expandir el volumen sanguíneo.</Spanish>
<French>Supplement visant a remplacer le volume sanguin et remplace les plaquettes.</French>
<French>Supplément visant à remplacer le volume sanguin et remplace les plaquettes.</French>
<Polish>Składnik krwi, używany do zwiększenia jej objętości.</Polish>
</Key>
<Key ID="STR_ACE_MEDICAL_PLASMA_IV_500">
@ -759,13 +768,12 @@
<English>Blood IV, for restoring a patients blood (keep cold)</English>
<Russian>Пакет крови для возмещения объема потерянной крови (хранить в холодильнике)</Russian>
<Spanish>Sangre intravenosa, para restarurar el volumen sanguíneo (mantener frío)</Spanish>
<French>Cullot Sanguin IV, pour remplacer le volume sanguin (garder Réfrigeré)</French>
<French>Cullot Sanguin O- ,utiliser seulement lors de perte sanguine majeur afin de remplacer le volume sanguin perdu. Habituelment utiliser lors du transport ou dans un etablisement de soin. </French>
<Polish>Krew IV, używana do uzupełnienia krwi u pacjenta, trzymać w warunkach chłodniczych</Polish>
</Key>
<Key ID="STR_ACE_MEDICAL_BLOOD_IV_DESC_USE">
<English>O Negative infusion blood used in strict and rare events to replenish blood supply usually conducted in the transport phase of medical care.</English>
<Russian>Кровь I группы, резус-отрицательная, применяется по жизненным показаниям для возмещения объема потерянной крови на догоспитальном этапе оказания медицинской помощи.</Russian>
<French>Cullot Sanguin O- ,utiliser seulement lors de perte sanguine majeur afin de remplacer le volume sanguin perdu. Habituelment utiliser lors du transport ou dans un etablisement de soin. </French>
<Polish>Krew 0 Rh-, używana w rzadkich i szczególnych przypadkach do uzupełnienia krwi u pacjenta, zazwyczaj w trakcie fazie transportu rannej osoby do szpitala.</Polish>
<Spanish>Utilice sólo durante gran pérdida de sangre para reemplazar el volumen de sangre perdida. Uso habitual durante el transporte de heridos.</Spanish>
</Key>
@ -789,7 +797,7 @@
<English>Saline IV (1000ml)</English>
<Russian>Физраствор для в/в вливания (1000 мл)</Russian>
<Spanish>Solución Salina IV (1000ml)</Spanish>
<French>solution Saline 0.9% IV (1000ml)</French>
<French>Solution Saline 0.9% IV (1000ml)</French>
<Polish>Solanka 0,9% IV (1000ml)</Polish>
<German>Kochsalzlösung (1000ml)</German>
</Key>
@ -797,14 +805,14 @@
<English>Saline IV, for restoring a patients blood</English>
<Russian>Пакет физраствора для возмещения объема потерянной крови</Russian>
<Spanish>Solución salina intravenosa, para restaurar el volumen sanguíneo</Spanish>
<French>Solution Saline 0.9% IV, pour retablir temporairement la tention arteriel</French>
<French>Solution Saline 0.9% IV, pour rétablir temporairement la tension artérielle</French>
<Polish>Solanka 0,9%, podawana dożylnie (IV), używana w celu uzupełnienia krwi u pacjenta</Polish>
</Key>
<Key ID="STR_ACE_MEDICAL_SALINE_IV_DESC_USE">
<English>A medical volume-replenishing agent introduced into the blood system through an IV infusion.</English>
<Russian>Пакет физиологического раствора для возмещения объема потерянной крови путем внутривенного вливания</Russian>
<Spanish>Suero fisiológico inoculado al torrente sanguíneo de forma intravenosa.</Spanish>
<French>Un remplacment temporaire pour rétablir la tention artériel lors de perte sanguine, étant ajouter par intraveineuse</French>
<French>Un remplacement temporaire pour rétablir la tension artérielle lors de perte sanguine, administré par intra-veineuse</French>
<Polish>Używany w medycynie w formie płynu infuzyjnego jako środek nawadniający i uzupełniający niedobór elektrolitów, podawany dożylnie (IV).</Polish>
</Key>
<Key ID="STR_ACE_MEDICAL_SALINE_IV_500">
@ -842,7 +850,7 @@
<Key ID="STR_ACE_MEDICAL_QUIKCLOT_DESC_USE">
<English>Hemostatic bandage with coagulant that stops bleeding.</English>
<Russian>Медицинский коагулянт для экстренной остановки кровотечения</Russian>
<French>Un bandage servant a coaguler les seignements mineur à moyen.</French>
<French>Un bandage aidant à coaguler les saignements mineurs à moyens.</French>
<Polish>Proszkowy opatrunek adsorpcyjny przeznaczony do tamowania zagrażających życiu krwawień średniej i dużej intensywności.</Polish>
<Spanish>Vendaje hemostático con coagulante que detiene el sangrado.</Spanish>
<German>Verband mit Gerinnungsmittel, um starke Blutung zu behandeln.</German>
@ -851,7 +859,7 @@
<English>Personal Aid Kit</English>
<Russian>Аптечка</Russian>
<Spanish>Botiquín de primeros auxilios</Spanish>
<French>Équipement de support Vitale</French>
<French>Équipement de support vital</French>
<Polish>Apteczka osobista</Polish>
<German>Persönliches Verbandpäckchen</German>
</Key>
@ -859,7 +867,7 @@
<English>Includes various treatment kit needed for stitching or advanced treatment</English>
<Russian>Содержит различные материалы и инструменты для зашивания ран и оказания специальной медпомощи.</Russian>
<Spanish>Incluye material médico para tratamientos avanzados</Spanish>
<French>Inclue du matériel medical pour les traitement avancé, tel les point de suture.</French>
<French>Inclue du matériel medical pour les traitements avancés, tel les points de suture.</French>
<Polish>Zestaw środków medycznych do opatrywania ran i dodatkowego leczenia po-urazowego</Polish>
<German>Beinhaltet medizinisches Material für fortgeschrittene Behandlung und zum Nähen.</German>
</Key>
@ -872,7 +880,7 @@
</Key>
<Key ID="STR_ACE_MEDICAL_SURGICALKIT_DISPLAY">
<English>Surgical Kit</English>
<French>Kit de chirurgien</French>
<French>Trousse chirurgicale</French>
<Russian>Хирургический набор</Russian>
<Spanish>Kit quirúrgico</Spanish>
<Polish>Zestaw do szycia ran</Polish>
@ -880,7 +888,7 @@
</Key>
<Key ID="STR_ACE_MEDICAL_SURGICALKIT_DESC_SHORT">
<English>Surgical Kit for in field advanced medical treatment</English>
<French>Kit de chirurgien pour les soins avancés sur le terrain</French>
<French>Trousse chirurgicale pour le traitement sur le terrain</French>
<Russian>Набор для хирургической помощи в полевых условиях</Russian>
<Spanish>Kit quirúrgico para el tratamiento avanzado en el campo de batalla</Spanish>
<Polish>Zestaw pozwalający na zszywanie ran w polu</Polish>
@ -892,18 +900,20 @@
<Spanish>Kit quirúrgico para el tratamiento avanzado en el campo de batalla</Spanish>
<Polish>Zestaw pozwalający na zszywanie ran w polu</Polish>
<German>Operationsset für fortgeschrittene medizinische Feldversorgung</German>
<French>Trousse chirurgicale pour le traitement sur le terrain</French>
</Key>
<Key ID="STR_ACE_MEDICAL_BODYBAG_DISPLAY">
<English>Bodybag</English>
<French>Sac à corps</French>
<Russian>Мешок для трупов</Russian>
<French>Housse mortuaire</French>
<Spanish>Bolsa para cadáveres</Spanish>
<Polish>Worek na zwłoki</Polish>
<German>Leichensack</German>
</Key>
<Key ID="STR_ACE_MEDICAL_BODYBAG_DESC_SHORT">
<English>A bodybag for dead bodies</English>
<French>Un sac pour les cadavres</French>
<French>Housse de transport des corps</French>
<Russian>Мешок для упаковки трупов</Russian>
<Spanish>Una bolsa para cadáveres</Spanish>
<Polish>Worek do pakowania zwłok</Polish>
@ -911,7 +921,7 @@
</Key>
<Key ID="STR_ACE_MEDICAL_BODYBAG_DESC_USE">
<English>A bodybag for dead bodies</English>
<French>Un sac pour les cadavres</French>
<French>Housse de transport des corps</French>
<Russian>Мешок для упаковки трупов</Russian>
<Spanish>Una bolsa para cadáveres</Spanish>
<Polish>Worek do pakowania zwłok</Polish>
@ -919,7 +929,7 @@
</Key>
<Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE">
<English>Blood Pressure</English>
<French>Pression sanguine</French>
<French>Tension artérielle</French>
<Russian>Артериальное давление</Russian>
<Spanish>Presión arterial</Spanish>
<Polish>Ciśnienie krwi</Polish>
@ -927,7 +937,7 @@
</Key>
<Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_CONTENT">
<English>Checking Blood Pressure..</English>
<French>Vérification de la pression sanguine</French>
<French>Mesure de la tension ...</French>
<Russian>Проверка артериального давления...</Russian>
<Spanish>Comprobando presión arterial...</Spanish>
<Polish>Sprawdzanie ciśnienia krwi...</Polish>
@ -937,21 +947,20 @@
<English>You checked %1</English>
<French>Vous diagnostiquez %1</French>
<Russian>Вы осмотрели раненого %1</Russian>
<French>Vous examinez %1</French>
<Spanish>Examinando a %1</Spanish>
<Polish>Zbadałeś %1</Polish>
<German>Kontrolliert %1</German>
</Key>
<Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_OUTPUT_1">
<English>You find a blood pressure of %2/%3</English>
<French>Vous pris une pression sanguine de %2/%3</French>
<French>Vous avez trouvé une tension de %2/%3</French>
<Russian>Артериальное давление %2/%3</Russian>
<Spanish>La presión arterial es %2/%3</Spanish>
<Polish>Ciśnienie krwi wynosi %2/%3</Polish>
<German>Blutdruck ist %2/%3</German>
<Spanish>La Presión Arterial es %2/%3</Spanish>
</Key>
<Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_OUTPUT_2">
<English>You find a low blood pressure</English>
<French>Vous avez trouvé une pression sanguine base</French>
<French>Tension basse</French>
<Russian>Давление низкое</Russian>
<Spanish>La presión arterial es baja</Spanish>
<Polish>Wyczuwasz niskie ciśnienie krwi</Polish>
@ -959,7 +968,7 @@
</Key>
<Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_OUTPUT_3">
<English>You find a normal blood pressure</English>
<French>Vous avez trouvé une pression sanguine normale</French>
<French>Tension normale</French>
<Russian>Давление нормальное</Russian>
<Spanish>La presión arterial es normal</Spanish>
<Polish>Wyczuwasz normalne ciśnienie krwi</Polish>
@ -967,7 +976,7 @@
</Key>
<Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_OUTPUT_4">
<English>You find a high blood pressure</English>
<French>Vous avez trouvé une forte pression sanguine</French>
<French>Tension haute</French>
<Russian>Давление высокое</Russian>
<Spanish>La presión arterial es alta</Spanish>
<Polish>Wyczuwasz wysokie ciśnienie krwi</Polish>
@ -975,7 +984,7 @@
</Key>
<Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_OUTPUT_5">
<English>You find no blood pressure</English>
<French>Vous n'avez pas trouvé de pression sanguine</French>
<French>Pas de tension</French>
<Russian>Давления нет</Russian>
<Spanish>No hay presión arterial</Spanish>
<Polish>Nie wyczuwasz ciśnienia krwi</Polish>
@ -983,7 +992,7 @@
</Key>
<Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_OUTPUT_6">
<English>You fail to find a blood pressure</English>
<French>Vous avez raté le diagnostique de la pression sanguine</French>
<French>Vous n'avez pas pu mesurer de tension</French>
<Russian>Артериальное давление не определяется</Russian>
<Spanish>No puedes encontrar presión arterial</Spanish>
<Polish>Nie udało Ci się sprawdzić ciśnienia krwi</Polish>
@ -993,13 +1002,14 @@
<English>Pulse</English>
<French>Pulsations</French>
<Russian>Пульс</Russian>
<French>Pouls</French>
<Spanish>Pulso</Spanish>
<Polish>Tętno</Polish>
<German>Puls</German>
</Key>
<Key ID="STR_ACE_MEDICAL_CHECK_PULSE_CONTENT">
<English>Checking Heart Rate..</English>
<French>Diagnostique de la fréquence cardiaque</French>
<French>Vérification du rythme cardiaque ...</French>
<Russian>Проверка пульса...</Russian>
<Spanish>Comprobando ritmo cardíaco...</Spanish>
<Polish>Sprawdzanie tętna...</Polish>
@ -1009,13 +1019,14 @@
<English>You checked %1</English>
<French>Vous avez Diagnostiqué %1</French>
<Russian>Вы осмотрели раненого %1</Russian>
<French>Vous examinez %1</French>
<Spanish>Examinando a %1</Spanish>
<Polish>Zbadałeś %1</Polish>
<German>Kontrolliertt %1</German>
</Key>
<Key ID="STR_ACE_MEDICAL_CHECK_PULSE_OUTPUT_1">
<English>You find a Heart Rate of %2</English>
<French>Vous avez trouvé une fréquence cardiaque de %2</French>
<French>Rythme carquiaque de %2</French>
<Russian>Пульс %2 уд./мин.</Russian>
<Spanish>El ritmo cardíaco es de %2</Spanish>
<Polish>Wyczuwasz tętno o wartości %2</Polish>
@ -1023,7 +1034,7 @@
</Key>
<Key ID="STR_ACE_MEDICAL_CHECK_PULSE_OUTPUT_2">
<English>You find a weak Heart Rate</English>
<French>Vous avez trouvé une faible fréquence cardiaque</French>
<French>Rythme cardiaque faible</French>
<Russian>Пульс слабый</Russian>
<Spanish>El ritmo cardíaco es débil</Spanish>
<Polish>Wyczuwasz słabe tętno</Polish>
@ -1031,7 +1042,7 @@
</Key>
<Key ID="STR_ACE_MEDICAL_CHECK_PULSE_OUTPUT_3">
<English>You find a strong Heart Rate</English>
<French>Vous avez trouvé une forte fréquence cardiaque</French>
<French>Rythme cardiaque élevé</French>
<Russian>Пульс учащенный</Russian>
<Spanish>El ritmo cardíaco está acelerado</Spanish>
<Polish>Wyczuwasz silne tętno</Polish>
@ -1039,7 +1050,7 @@
</Key>
<Key ID="STR_ACE_MEDICAL_CHECK_PULSE_OUTPUT_4">
<English>You find a normal Heart Rate</English>
<French>Vous avez trouvé une fréquence cardiaque normale</French>
<French>Rythme cardiaque normal</French>
<Russian>Пульс в норме</Russian>
<Spanish>El ritmo cardíaco es bueno</Spanish>
<Polish>Wyczuwasz normalne tętno</Polish>
@ -1047,7 +1058,7 @@
</Key>
<Key ID="STR_ACE_MEDICAL_CHECK_PULSE_OUTPUT_5">
<English>You find no Heart Rate</English>
<French>Vous n'avez trouvé de fréquence cardiaque</French>
<French>Pas de rythme cardiaque</French>
<Russian>Пульс не прощупывается</Russian>
<Spanish>No tiene ritmo cardíaco</Spanish>
<Polish>Wyczuwasz brak tętna</Polish>
@ -1055,7 +1066,7 @@
</Key>
<Key ID="STR_ACE_MEDICAL_CHECK_RESPONSE">
<English>Response</English>
<French>Réponse</French>
<French>Etat de Conscience</French>
<Russian>Реакция</Russian>
<Spanish>Respuesta</Spanish>
<Polish>Przytomność</Polish>
@ -1065,6 +1076,7 @@
<English>You check response of patient</English>
<French>Vous vérifiez la réponse du patient</French>
<Russian>Вы проверяете реакцию раненого</Russian>
<French>Vérification de l'état de conscience du patient</French>
<Spanish>Compruebas si el paciente reacciona</Spanish>
<Polish>Sprawdzasz przytomność pacjenta</Polish>
<German>Du prüfst ob der Patient ansprechbar ist</German>
@ -1073,6 +1085,7 @@
<English>%1 is responsive</English>
<French>%1 est conscient</French>
<Russian>%1 реагирует на раздражители</Russian>
<French>%1 est conscient</French>
<Spanish>%1 ha reaccionado</Spanish>
<Polish>%1 jest przytomny</Polish>
<German>%1 ist anprechbar</German>
@ -1081,6 +1094,7 @@
<English>%1 is not responsive</English>
<French>%1 n'est pas conscient</French>
<Russian>%1 не реагирует</Russian>
<French>%1 est inconscient</French>
<Spanish>%1 no reacciona</Spanish>
<Polish>%1 jest nieprzytomny</Polish>
<German>%1 ist nicht ansprechbar</German>
@ -1089,6 +1103,7 @@
<English>You checked %1</English>
<French>Vous diagnostiqué %1</French>
<Russian>Вы осмотрели раненого %1</Russian>
<French>Vous avez examiné %1</French>
<Spanish>Examinas a %1</Spanish>
<Polish>Zbadałeś %1</Polish>
<German>Du versucht %1 anzusprechen</German>
@ -1097,6 +1112,7 @@
<English>Bandaged</English>
<French>Bandé</French>
<Russian>Повязка наложена</Russian>
<French>Pansement appliqué</French>
<Spanish>Vendado</Spanish>
<Polish>Zabandażowano</Polish>
</Key>
@ -1104,6 +1120,7 @@
<English>You bandage %1 (%2)</English>
<French>Vous bandez %1 (%2)</French>
<Russian>Вы перевязали раненого %1 (%2)</Russian>
<French>Vous avez pansé %1 (%2)</French>
<Spanish>Aplicas vendaje a %1 en %2</Spanish>
<Polish>Bandażujesz %1 (%2)</Polish>
</Key>
@ -1111,24 +1128,28 @@
<English>%1 is bandaging you</English>
<French>%1 vous bande</French>
<Russian>%1 перевязывает вас</Russian>
<French>%1 vous applique un pansement</French>
<Spanish>%1 te está vendando</Spanish>
<Polish>%1 bandażuje Ciebie</Polish>
</Key>
<Key ID="STR_ACE_MEDICAL_START_STITCHING_INJURIES">
<English>You start stitching injures from %1 (%2)</English>
<Russian>Вы зашиваете ранения от %1 (%2)</Russian>
<French>Vous suturez %1 (%2)</French>
<Spanish>Estás suturando heridas de %1 en %2</Spanish>
<Polish>Zszywasz rany %1 (%2)</Polish>
</Key>
<Key ID="STR_ACE_MEDICAL_STITCHING">
<English>Stitching</English>
<Russian>Наложение швов</Russian>
<French>Sutures</French>
<Spanish>Suturando</Spanish>
<Polish>Szycie</Polish>
</Key>
<Key ID="STR_ACE_MEDICAL_YOU_TREAT_AIRWAY">
<English>You treat the airway of %1</English>
<Russian>Вы интубируете раненого %1</Russian>
<French>Vous traitez les voies respiratoires de %1</French>
<Spanish>Estás intubando a %1</Spanish>
<Polish>Udrażniasz drogi oddechowe %1</Polish>
</Key>
@ -1138,10 +1159,12 @@
<Spanish>Vías aéreas</Spanish>
<Polish>Drogi oddechowe</Polish>
<German>Atemwege</German>
<French>Voies respiratoires</French>
</Key>
<Key ID="STR_ACE_MEDICAL_IS_TREATING_YOUR_AIRWAY">
<English>%1 is treating your airway</English>
<Russian>%1 проводит вам интубацию</Russian>
<French>%1 traite vos voies respiratoires</French>
<Spanish>%1 te está intubando</Spanish>
<Polish>%1 udrażnia Twoje drogi oddechowe</Polish>
</Key>
@ -1152,7 +1175,7 @@
<Polish>Ciągnij</Polish>
<Czech>Táhnout</Czech>
<Russian>Тащить</Russian>
<French>Tracter</French>
<French>Trainer</French>
<Hungarian>Húzás</Hungarian>
<Portuguese>Arrastar</Portuguese>
<Italian>Trascina</Italian>
@ -1210,35 +1233,35 @@
<Spanish>Descargar el paciente</Spanish>
<Russian>Выгрузить пациента</Russian>
<Polish>Wyładuj pacjenta</Polish>
<French>charger le patient</French>
<French>barquer le Patient</French>
</Key>
<Key ID="STR_ACE_Medical_LoadPatient">
<English>Load patient</English>
<Spanish>Cargar el paciente en</Spanish>
<Russian>Погрузить пациента</Russian>
<Polish>Załaduj pacjenta</Polish>
<French>Charger le patient</French>
<French>Embarquer le Patient</French>
</Key>
<Key ID="STR_ACE_MEDICAL_PlaceInBodyBag">
<English>Place body in bodybag</English>
<Spanish>Colocar cuerpo en bolsa para cadáveres</Spanish>
<Russian>Поместить тело в мешок для трупов</Russian>
<Polish>Zapakuj ciało do worka na zwłoki</Polish>
<French>Placer le corps dans le sac à cadavre</French>
<French>Mettre le corps dans la housse mortuaire</French>
</Key>
<Key ID="STR_ACE_MEDICAL_PlacingInBodyBag">
<English>Placing body in bodybag</English>
<Spanish>Colocando cuerpo en bolsa para cadáveres</Spanish>
<Russian>Упаковка тела</Russian>
<Polish>Pakowanie ciała do worka na zwłoki</Polish>
<French>Mise en sac du corps dans le sac à cadavre</French>
<French>Placement du corps dans la housse</French>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIVITY_bandagedPatient">
<English>%1 has bandaged patient</English>
<Spanish>%1 has vendado al paciente</Spanish>
<Russian>%1 перевязал пациента</Russian>
<Polish>%1 zabandażował pacjenta</Polish>
<French>%1 à bandé un patient</French>
<French>%1 a pansé le patient</French>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIVITY_usedItem">
<English>%1 used %2</English>
@ -1252,14 +1275,62 @@
<Spanish>%1 has puesto una IV</Spanish>
<Russian>%1 провел переливание</Russian>
<Polish>%1 podał IV</Polish>
<French>%1 à donné un IV</French>
<French>%1 a administré une IV</French>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIVITY_appliedTourniquet">
<English>%1 applied a tourniquet</English>
<Spanish>%1 aplicado torniquete</Spanish>
<Russian>%1 наложил жгут</Russian>
<Polish>%1 założył stazę</Polish>
<French>%1 à appliqué un garrot</French>
<French>%1 a appliqué un garrot</French>
</Key>
<Key ID="STR_ACE_Medical_HeavilyWounded">
<English>Heavily wounded</English>
<German>Schwer verwundet:</German>
</Key>
<Key ID="STR_ACE_Medical_LightlyWounded">
<English>Lightly wounded</English>
<German>Leicht verwundet:</German>
</Key>
<Key ID="STR_ACE_Medical_VeryLightlyWounded">
<English>Very lightly wounded</English>
<German>Sehr leicht verwundet:</German>
</Key>
<Key ID="STR_ACE_Medical_Head">
<English>Head</English>
<German>Kopf</German>
</Key>
<Key ID="STR_ACE_Medical_Torso">
<English>Torso</English>
<German>Torso</German>
</Key>
<Key ID="STR_ACE_Medical_LeftArm">
<English>Left Arm</English>
<German>Linker Arm</German>
</Key>
<Key ID="STR_ACE_Medical_RightArm">
<English>Right Arm</English>
<German>Rechter Arm</German>
</Key>
<Key ID="STR_ACE_Medical_LeftLeg">
<English>Left Leg</English>
<German>Linkes Bein</German>
</Key>
<Key ID="STR_ACE_Medical_RightLeg">
<English>Right Leg</English>
<German>Rechtes Bein</German>
</Key>
<Key ID="STR_ACE_Medical_painEffectType">
<English>Pain Effect Type</English>
<German>Schmerzeffekt-Typ</German>
</Key>
<Key ID="STR_ACE_Medical_painEffect_Flash">
<English>Colour Flashing</English>
<German>Farbblinken</German>
</Key>
<Key ID="STR_ACE_Medical_painEffect_Chroma">
<English>Chromatic Aberration</English>
<German>Chromatische Aberration</German>
</Key>
</Package>
</Project>

View File

@ -21,6 +21,6 @@ class ACE_Settings {
class GVAR(MapDataAvailable) {
value = 2;
typeName = "SCALAR";
isClientSetable = 0;
isClientSettable = 0;
};
};

View File

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler. -->
<Project name="ACE">
<Package name="microdagr">
<Key ID="STR_ACE_microdagr_itemName">
@ -9,15 +8,15 @@
<Russian>MicroDAGR GPS</Russian>
<Czech>MicroDAGR GPS</Czech>
<Polish>MicroDAGR GPS</Polish>
<French>GPS MicroDAGR</French>
<French>MicroDAGR GPS</French>
</Key>
<Key ID="STR_ACE_microdagr_itemDescription">
<English>MicroDAGR advanced GPS receiver</English>
<German>MicroDAGR verbesserter GPS Empfänger</German>
<German>MicroDAGR - Fortgeschrittener GPS-Empfänger</German>
<Spanish>Receptor avanzado GPS MicroDAGR</Spanish>
<Russian>Многофункциональный GPS-приёмник.</Russian>
<Polish>Zaawansowany odbiornik GPS MicroDAGR</Polish>
<French>MicroDAGR un GPS avancé</French>
<French>Récepteur GPS MicroDAGR</French>
<Czech>MicroDAGR pokročílá GPS příjímač</Czech>
</Key>
<Key ID="STR_ACE_microdagr_settingUseMils">
@ -25,13 +24,13 @@
<Spanish>Unidad angular:</Spanish>
<Russian>Угловые единицы:</Russian>
<Polish>Jednostka kątowa:</Polish>
<French>Unité angulaire:</French>
<French>Unité angulaire</French>
<German>Winkeleinheit:</German>
<Czech>Úhlová jednotka:</Czech>
</Key>
<Key ID="STR_ACE_microdagr_settingMils">
<English>Mils</English>
<German>Mils</German>
<German>Mil</German>
<Spanish>Mils</Spanish>
<Russian>Тысячные</Russian>
<Polish>Tysiączne</Polish>
@ -44,7 +43,7 @@
<Spanish>Mostrar puntos de ruta en el mapa:</Spanish>
<Russian>Показывать маршрутные точки на карте:</Russian>
<Polish>Pokaż PT na mapie:</Polish>
<French>Afficher les points de passage sur la carte :</French>
<French>Montrer points de passage sur la carte</French>
<Czech>Ukázat waypointy na mapě:</Czech>
</Key>
<Key ID="STR_ACE_microdagr_settingDegrees">
@ -59,7 +58,7 @@
<Key ID="STR_ACE_microdagr_settingOn">
<English>On</English>
<Czech>Zapnuto</Czech>
<French>Oui</French>
<French>Allumé</French>
<German>Ein</German>
<Italian></Italian>
<Polish>Wł.</Polish>
@ -70,7 +69,7 @@
<Key ID="STR_ACE_microdagr_settingOff">
<English>Off</English>
<Czech>Vypnuto</Czech>
<French>Non</French>
<French>Eteint</French>
<German>Aus</German>
<Italian>No</Italian>
<Polish>Wył.</Polish>
@ -83,7 +82,7 @@
<Spanish>Introducir coordenadas de cuadrícula:</Spanish>
<Russian>Введите координаты:</Russian>
<Polish>Wprowadź współrzędne:</Polish>
<French>Entrer Grid Cords :</French>
<French>Entrer coordonnées</French>
<German>Koordinaten eingeben:</German>
<Czech>Napiš souřadnice:</Czech>
</Key>
@ -93,16 +92,16 @@
<Spanish>Nombre de [%1]</Spanish>
<Russian>Название [%1]</Russian>
<Polish>Nazwa [%1]</Polish>
<French>Nom de [%1]</French>
<French>Nom de %1</French>
<Czech>Název [%1]</Czech>
</Key>
<Key ID="STR_ACE_microdagr_controlMGRS">
<English>MGRS-New</English>
<German>MGRS-NEU</German>
<German>UTMREF-NEU</German>
<Spanish>Nuevo-MGRS</Spanish>
<Russian>MGRS-Новая</Russian>
<Polish>MGRS-Nowy</Polish>
<French>Nouveau MGRS</French>
<French>Info-MGRS</French>
<Czech>MGRS-Nový</Czech>
</Key>
<Key ID="STR_ACE_microdagr_controlWGD">
@ -120,7 +119,7 @@
<German>Reichweite:</German>
<Russian>Дистанция:</Russian>
<Polish>Dystans:</Polish>
<French>Distance :</French>
<French>Distance:</French>
<Czech>Vzdálenost:</Czech>
</Key>
<Key ID="STR_ACE_microdagr_compasDirection">
@ -129,7 +128,7 @@
<Spanish>Dirección de la brújula</Spanish>
<Russian>Азимут</Russian>
<Polish>Azymut</Polish>
<French>Direction de la boussole</French>
<French>Azimut</French>
<Czech>Azimut:</Czech>
</Key>
<Key ID="STR_ACE_microdagr_menuMark">
@ -138,7 +137,7 @@
<Spanish>Marca</Spanish>
<Russian>Отметка</Russian>
<Polish>Oznacz</Polish>
<French>Marqueur</French>
<French>Marque</French>
<Czech>Označit</Czech>
</Key>
<Key ID="STR_ACE_microdagr_menuWaypoints">
@ -157,7 +156,7 @@
<German>Verbinde zu</German>
<Czech>Připojit k</Czech>
<Polish>Podłącz do</Polish>
<French>Connexion à</French>
<French>Connecter</French>
</Key>
<Key ID="STR_ACE_microdagr_menuSettings">
<English>Settings</English>
@ -175,6 +174,7 @@
<Russian>Установить МТ</Russian>
<Czech>Nastavit WP</Czech>
<Polish>UstawPT</Polish>
<French>Définir point de passage</French>
</Key>
<Key ID="STR_ACE_microdagr_waypointsAdd">
<English>Add</English>
@ -198,11 +198,11 @@
</Key>
<Key ID="STR_ACE_microdagr_toggleUnit">
<English>Toggle MicroDAGR Display Mode</English>
<German>MicoDAGR Anzeigemodus wählen</German>
<German>MicoDAGR Anzeigemodus Wechseln</German>
<Spanish>Conmutar modo de pantalla del MicroDAGR</Spanish>
<Russian>Сменить режим показа MicroDAGR</Russian>
<Polish>Przełącz tryb wyświetlania MicroDAGR</Polish>
<French>Basculer sur l'affichage du MicroDAGR</French>
<French>Basculer le mode d'affichage MicroDAGR</French>
<Czech>Přepnout zobrazení MircroDAGRu</Czech>
</Key>
<Key ID="STR_ACE_microdagr_show">
@ -212,16 +212,16 @@
<Russian>Показать MicroDAGR</Russian>
<Czech>Ukázat MicroDAGR GPS</Czech>
<Polish>Pokaż MicroDAGR</Polish>
<French>Afficher le MicroDAGR</French>
<French>Afficher MicroDAGR</French>
</Key>
<Key ID="STR_ACE_microdagr_configure">
<English>Configure MicroDAGR</English>
<German>Konfiguriere MicroDAGR</German>
<German>MicroDAGR Konfiguriere</German>
<Spanish>Configurar MicroDAGR</Spanish>
<Russian>Настроить MicroDAGR</Russian>
<Czech>Konfigurovat MicroDAGR GPS</Czech>
<Polish>Konfiguruj MicroDAGR</Polish>
<French>Configurer le MicroDAGR</French>
<French>Configurer MicroDAGR</French>
</Key>
<Key ID="STR_ACE_microdagr_closeUnit">
<English>Close MicroDAGR</English>
@ -230,7 +230,7 @@
<Russian>Закрыть MicroDAGR</Russian>
<Czech>Zavřít MicroDAGR GPS</Czech>
<Polish>Zamknij MicroDAGR</Polish>
<French>Fermer le MicroDAGR</French>
<French>Fermer MicroDAGR</French>
</Key>
</Package>
</Project>
</Project>

View File

@ -27,19 +27,19 @@ class GVAR(AttackProfiles) {
functionName = QFUNC(attackProfile_HI);
};
class TOP {
class JAV_DIR {
name = "";
visualName = "";
description = "";
functionName = QFUNC(attackProfile_TOP);
functionName = QFUNC(attackProfile_JAV_DIR);
};
class PYM {
class JAV_TOP {
name = "";
visualName = "";
description = "";
functionName = QFUNC(attackProfile_PYM);
functionName = QFUNC(attackProfile_JAV_TOP);
};
};

View File

@ -40,12 +40,12 @@ class CfgAmmo {
trackLead = 0;
// Begin ACE guidance Configs
class ACE_MissileGuidance {
class ADDON {
enabled = 1;
minDeflection = 0.005; // Minium flap deflection for guidance
maxDeflection = 0.025; // Maximum flap deflection for guidance
incDeflection = 0.005; // The incrmeent in which deflection adjusts.
minDeflection = 0.00025; // Minium flap deflection for guidance
maxDeflection = 0.001; // Maximum flap deflection for guidance
incDeflection = 0.0005; // The incrmeent in which deflection adjusts.
//minDeflection = 0.005;
//maxDeflection = 0.5;
//incDeflection = 0.005;
@ -65,7 +65,7 @@ class CfgAmmo {
// Attack profile type selection
defaultAttackProfile = "LIN";
attackProfiles[] = { "LIN", "DIR", "MID", "HI", "TOP", "PYM" };
attackProfiles[] = { "LIN", "DIR", "MID", "HI" };
};
};
@ -110,12 +110,12 @@ class CfgAmmo {
//trackLead = 0;
// Begin ACE guidance Configs
class ACE_MissileGuidance {
class ADDON {
enabled = 1;
minDeflection = 0.005; // Minium flap deflection for guidance
maxDeflection = 0.25; // Maximum flap deflection for guidance
incDeflection = 0.005; // The incrmeent in which deflection adjusts.
minDeflection = 0.00005; // Minium flap deflection for guidance
maxDeflection = 0.025; // Maximum flap deflection for guidance
incDeflection = 0.00005; // The incrmeent in which deflection adjusts.
//minDeflection = 0.005;
//maxDeflection = 0.5;
//incDeflection = 0.005;
@ -127,15 +127,15 @@ class CfgAmmo {
defaultSeekerLockMode = "LOBL";
seekerLockModes[] = { "LOBL" };
seekerAngle = 90; // Angle in front of the missile which can be searched
seekerAngle = 180; // Angle in front of the missile which can be searched
seekerAccuracy = 1; // seeker accuracy multiplier
seekerMinRange = 1;
seekerMinRange = 0;
seekerMaxRange = 2500; // Range from the missile which the seeker can visually search
// Attack profile type selection
defaultAttackProfile = "LIN";
attackProfiles[] = { "TOP", "LIN" };
defaultAttackProfile = "JAV_TOP";
attackProfiles[] = { "JAV_TOP", "JAV_DIR" };
};
};
};

View File

@ -2,6 +2,7 @@
PREP(rotateVectLineGetMap);
PREP(rotateVectLine);
PREP(changeMissileDirection);
PREP(checkSeekerAngle);
PREP(checkLos);
@ -17,10 +18,12 @@ PREP(attackProfile_LIN);
PREP(attackProfile_DIR);
PREP(attackProfile_MID);
PREP(attackProfile_HI);
PREP(attackProfile_TOP);
PREP(attackprofile_PYM);
PREP(attackProfile_AIR);
// Javelin profiles
PREP(attackProfile_JAV_DIR);
PREP(attackProfile_JAV_TOP);
// Seeker search functions
PREP(seekerType_SALH);
PREP(seekerType_Optic);

View File

@ -1,54 +1,4 @@
//#define DEBUG_MODE_FULL
#include "script_component.hpp"
EXPLODE_7_PVT(((_this select 1) select 0),_shooter,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile);
private["_targetPos", "_projectilePos", "_target", "_seekerTargetPos", "_launchParams", "_targetLaunchParams"];
private["_distanceToTarget", "_distanceToShooter", "_addHeight", "_returnTargetPos"];
_seekerTargetPos = _this select 0;
_launchParams = _this select 1;
_target = _launchParams select 0;
_targetLaunchParams = _launchParams select 1;
_shooterPos = getPosASL _shooter;
_projectilePos = getPosASL _projectile;
_distanceToTarget = _projectilePos vectorDistance _seekerTargetPos;
_distanceToShooter = _projectilePos vectorDistance _shooterPos;
TRACE_2("", _distanceToTarget, _distanceToShooter);
// Add height depending on distance for compensate
_addHeight = [0,0,0];
// Always climb an arc on initial launch if we are close to the round
if( ((ASLtoATL _projectilePos) select 2) < 5 && _distanceToShooter < 15) then {
_addHeight = _addHeight vectorAdd [0,0,_distanceToTarget];
} else {
// If we are below the target, increase the climbing arc
if((_projectilePos select 2) < (_seekerTargetPos select 2) && _distanceToTarget > 100) then {
_addHeight = _addHeight vectorAdd [0,0, ((_seekerTargetPos select 2) - (_projectilePos select 2))];
};
};
// Handle arcing terminal low for high decent
if( (_projectilePos select 2) > (_seekerTargetPos select 2) && _distanceToTarget < 100) then {
_addHeight = _addHeight vectorDiff [0,0, ((_projectilePos select 2) - (_seekerTargetPos select 2))];
} else {
if((_projectilePos select 2) > (_seekerTargetPos select 2) && _distanceToTarget > 100) then {
_addHeight = _addHeight vectorAdd [0,0, _distanceToTarget];
};
};
TRACE_3("", _distanceToTarget,_distanceToShooter,_addHeight);
_returnTargetPos = _seekerTargetPos vectorAdd _addHeight;
#ifdef DEBUG_MODE_FULL
drawLine3D [(ASLtoATL _returnTargetPos) vectorAdd _addHeight, ASLtoATL _returnTargetPos, [0,1,0,1]];
#endif
TRACE_1("Adjusted target position", _returnTargetPos);
_returnTargetPos;
_this call FUNC(attackProfile_LIN);

View File

@ -0,0 +1,69 @@
//#define DEBUG_MODE_FULL
#include "script_component.hpp"
#define STAGE_LAUNCH 1
#define STAGE_CLIMB 2
#define STAGE_COAST 3
#define STAGE_TERMINAL 4
EXPLODE_7_PVT(((_this select 1) select 0),_shooter,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile);
private["_targetPos", "_projectilePos", "_target", "_seekerTargetPos", "_launchParams", "_targetLaunchParams"];
private["_distanceToTarget", "_distanceToShooter", "_addHeight", "_returnTargetPos", "_state"];
_seekerTargetPos = _this select 0;
_launchParams = _this select 1;
_target = _launchParams select 0;
_targetLaunchParams = _launchParams select 1;
_state = _this select 2;
if( (count _state) < 1) then {
_state set[0, STAGE_LAUNCH];
};
_shooterPos = getPosASL _shooter;
_projectilePos = getPosASL _projectile;
_distanceToTarget = _projectilePos vectorDistance _seekerTargetPos;
_distanceToShooter = _projectilePos vectorDistance _shooterPos;
_distanceShooterToTarget = _shooterPos vectorDistance _seekerTargetPos;
TRACE_2("", _distanceToTarget, _distanceToShooter);
// Add height depending on distance for compensate
_returnTargetPos = _seekerTargetPos;
switch( (_state select 0) ) do {
case STAGE_LAUNCH: {
TRACE_1("STAGE_LAUNCH","");
if(_distanceToShooter < 10) then {
_returnTargetPos = _seekerTargetPos vectorAdd [0,0,_distanceToTarget*2];
} else {
_state set[0, STAGE_CLIMB];
};
};
case STAGE_CLIMB: {
TRACE_1("STAGE_CLIMB","");
_cruisAlt = 60;
if(_distanceShooterToTarget < w) then {
_cruisAlt = 60 * (_distanceShooterToTarget/2000);
TRACE_1("_cruisAlt", _cruisAlt);
};
if( ((ASLToATL _projectilePos) select 2) - ((ASLToATL _seekerTargetPos) select 2) >= _cruisAlt) then {
_state set[0, STAGE_TERMINAL];
} else {
_returnTargetPos = _seekerTargetPos vectorAdd [0,0,_distanceToTarget*2];
};
};
case STAGE_TERMINAL: {
TRACE_1("STAGE_TERMINAL","");
//_returnTargetPos = _seekerTargetPos vectorAdd [0,0,_distanceToTarget * 0.02];
};
};
#ifdef DEBUG_MODE_FULL
drawLine3D [(ASLtoATL _returnTargetPos), (ASLtoATL _seekerTargetPos), [0,1,0,1]];
#endif
TRACE_1("Adjusted target position", _returnTargetPos);
_returnTargetPos;

View File

@ -0,0 +1,76 @@
//#define DEBUG_MODE_FULL
#include "script_component.hpp"
#define STAGE_LAUNCH 1
#define STAGE_CLIMB 2
#define STAGE_COAST 3
#define STAGE_TERMINAL 4
EXPLODE_7_PVT(((_this select 1) select 0),_shooter,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile);
private["_targetPos", "_projectilePos", "_target", "_seekerTargetPos", "_launchParams", "_targetLaunchParams"];
private["_distanceToTarget", "_distanceToShooter", "_addHeight", "_returnTargetPos", "_state"];
_seekerTargetPos = _this select 0;
_launchParams = _this select 1;
_target = _launchParams select 0;
_targetLaunchParams = _launchParams select 1;
_state = _this select 2;
if( (count _state) < 1) then {
_state set[0, STAGE_LAUNCH];
};
_shooterPos = getPosASL _shooter;
_projectilePos = getPosASL _projectile;
_distanceToTarget = _projectilePos vectorDistance _seekerTargetPos;
_distanceToShooter = _projectilePos vectorDistance _shooterPos;
_distanceShooterToTarget = _shooterPos vectorDistance _seekerTargetPos;
TRACE_2("", _distanceToTarget, _distanceToShooter);
// Add height depending on distance for compensate
_returnTargetPos = _seekerTargetPos;
switch( (_state select 0) ) do {
case STAGE_LAUNCH: {
TRACE_1("STAGE_LAUNCH","");
if(_distanceToShooter < 10) then {
_returnTargetPos = _seekerTargetPos vectorAdd [0,0,_distanceToTarget*2];
} else {
_state set[0, STAGE_CLIMB];
};
};
case STAGE_CLIMB: {
TRACE_1("STAGE_CLIMB","");
_cruisAlt = 140;
if(_distanceShooterToTarget < 1250) then {
_cruisAlt = 140 * (_distanceShooterToTarget/1250);
TRACE_1("_cruisAlt", _cruisAlt);
};
if( ((ASLToATL _projectilePos) select 2) - ((ASLToATL _seekerTargetPos) select 2) >= _cruisAlt) then {
_state set[0, STAGE_COAST];
} else {
_returnTargetPos = _seekerTargetPos vectorAdd [0,0,_distanceToTarget*2];
};
};
case STAGE_COAST: {
TRACE_1("STAGE_COAST","");
if(_distanceShooterToTarget < 1250 || _distanceToTarget < ( ((ASLToATL _projectilePos) select 2) - (( ASLToATL _seekerTargetPos) select 2) )) then {
_state set[0, STAGE_TERMINAL];
};
_returnTargetPos = _seekerTargetPos vectorAdd [0,0,(_projectilePos select 2)];
};
case STAGE_TERMINAL: {
TRACE_1("STAGE_TERMINAL","");
//_returnTargetPos = _seekerTargetPos vectorAdd [0,0,_distanceToTarget * 0.02];
};
};
#ifdef DEBUG_MODE_FULL
drawLine3D [(ASLtoATL _returnTargetPos), (ASLtoATL _seekerTargetPos), [0,1,0,1]];
#endif
TRACE_1("Adjusted target position", _returnTargetPos);
_returnTargetPos;

View File

@ -16,7 +16,7 @@ _projectilePos = getPosASL _projectile;
_distanceToTarget = _projectilePos vectorDistance _seekerTargetPos;
_distanceToShooter = _projectilePos vectorDistance _shooterPos;
TRACE_2("", _distanceToTarget, _distanceToShooter);
TRACE_3("", _distanceToTarget, _distanceToShooter, _seekerTargetPos);
// Add height depending on distance for compensate
_addHeight = [0,0,0];
@ -40,11 +40,7 @@ if( (_projectilePos select 2) > (_seekerTargetPos select 2) && _distanceToTarget
};
};
TRACE_3("", _distanceToTarget,_distanceToShooter,_addHeight);
_returnTargetPos = _seekerTargetPos vectorAdd _addHeight;
_returnTargetPos = _seekerTargetPos vectorAdd _addHeight;
#ifdef DEBUG_MODE_FULL
drawLine3D [(ASLtoATL _returnTargetPos) vectorAdd _addHeight, ASLtoATL _returnTargetPos, [0,1,0,1]];

View File

@ -1,4 +0,0 @@
//#define DEBUG_MODE_FULL
#include "script_component.hpp"
_this call FUNC(attackProfile_LIN);

View File

@ -1,52 +0,0 @@
//#define DEBUG_MODE_FULL
#include "script_component.hpp"
EXPLODE_7_PVT(((_this select 1) select 0),_shooter,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile);
private["_targetPos", "_projectilePos", "_target", "_seekerTargetPos", "_launchParams", "_targetLaunchParams"];
private["_distanceToTarget", "_distanceToShooter", "_addHeight", "_returnTargetPos"];
_seekerTargetPos = _this select 0;
_launchParams = _this select 1;
_target = _launchParams select 0;
_targetLaunchParams = _launchParams select 1;
_shooterPos = getPosASL _shooter;
_projectilePos = getPosASL _projectile;
_distanceToTarget = _projectilePos vectorDistance _seekerTargetPos;
_distanceToShooter = _projectilePos vectorDistance _shooterPos;
TRACE_2("", _distanceToTarget, _distanceToShooter);
// Add height depending on distance for compensate
_addHeight = [0,0,0];
// Always climb an arc on initial launch if we are close to the round
if( ((ASLtoATL _projectilePos) select 2) < 140 && _distanceToShooter < 50) then {
_addHeight = _addHeight vectorAdd [0,0,_distanceToTarget];
} else {
// If we are below the target, increase the climbing arc
if((_projectilePos select 2) < (_seekerTargetPos select 2) + 140 && _distanceToTarget > 100) then {
_addHeight = _addHeight vectorAdd [0,0, ((_seekerTargetPos select 2) - (_projectilePos select 2))+50];
};
};
// Handle arcing terminal low for high decent
if( (_projectilePos select 2) > (_seekerTargetPos select 2) && _distanceToTarget < 140) then {
_addHeight = _addHeight vectorDiff [0,0, ((_projectilePos select 2) - (_seekerTargetPos select 2)) * 0.5];
} else {
if((_projectilePos select 2) > (_seekerTargetPos select 2) && _distanceToTarget > 140) then {
_addHeight = _addHeight vectorAdd [0,0, ((_projectilePos select 2) - (_seekerTargetPos select 2)) * 0.02];
};
};
TRACE_3("", _distanceToTarget,_distanceToShooter,_addHeight);
_returnTargetPos = _seekerTargetPos vectorAdd _addHeight;
#ifdef DEBUG_MODE_FULL
drawLine3D [(ASLtoATL _returnTargetPos) vectorAdd _addHeight, ASLtoATL _returnTargetPos, [0,1,0,1]];
#endif
TRACE_1("Adjusted target position", _returnTargetPos);
_returnTargetPos;

View File

@ -0,0 +1,11 @@
#include "script_component.hpp"
private ["_projectile", "_v", "_l", "_r"];
_projectile = _this select 0;
_v = _this select 1;
_l = sqrt ((_v select 0) ^ 2 + (_v select 1) ^ 2);
_r = -(_v select 2) / _l;
_projectile setVectorDirAndUp [ _v, [(_v select 0) * _r,(_v select 1) * _r, _l] ];
_projectile setVelocity (_v vectorMultiply (vectorMagnitude (velocity _projectile)));

View File

@ -11,39 +11,20 @@
* Return value:
* Boolean
*/
#define DEBUG_MODE_FULL
#include "script_component.hpp"
private["_seeker", "_targetPos", "_seekerMaxAngle", "_vectorTo", "_sensorPos", "_vertOk", "_horzOk", "_dir", "_headingPitch"];
private["_seeker", "_targetPos", "_seekerMaxAngle", "_sensorPos", "_testPointVector", "_testDotProduct"];
_seeker = _this select 0;
_targetPos = _this select 1;
_seekerMaxAngle = _this select 2;
_vertOk = false;
_horzOk = false;
_sensorPos = getPosASL _seeker;
_vectorTo = _sensorPos vectorFromTo _targetPos;
_headingPitch = (vectorDir _seeker) call CBA_fnc_vect2polar;
_polarTo = _vectorTo call CBA_fnc_vect2polar;
_testPointVector = vectorNormalized (_targetPos vectorDiff _sensorPos);
_testDotProduct = (vectorNormalized (velocity _seeker)) vectorDotProduct _testPointVector;
_dir = _polarTo select 1;
_dir = _dir - (_headingPitch select 1);
if (_dir < 0) then {_dir = _dir + 360};
if (_dir > 360) then {_dir = _dir - 360};
_vertOk = false;
_horzOk = false;
if(_dir < _angleFov || {_dir > (360-_angleFov)}) then {
_horzOk = true;
};
if(abs((abs(_polarTo select 2))-(abs(_headingPitch select 2))) < _angleFov) then {
_vertOk = true;
};
if(!_vertOk || !_horzOk ) exitWith {
if(_testDotProduct < (cos _seekerMaxAngle)) exitWith {
false
};

View File

@ -13,7 +13,7 @@ PARAMS_7(_shooter,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile);
// Bail on not missile
if(! (_ammo isKindOf "MissileBase") ) exitWith { false };
_config = configFile >> "CfgAmmo" >> _ammo >> "ACE_MissileGuidance";
_config = configFile >> "CfgAmmo" >> _ammo >> QUOTE(ADDON);
_enabled = getNumber ( _config >> "enabled");
// Bail if guidance is not enabled
@ -68,7 +68,7 @@ TRACE_4("Beginning ACE guidance system",_target,_ammo,_seekerType,_attackProfile
getNumber ( _config >> "seekerAccuracy" ),
getNumber ( _config >> "seekerMaxRange" )
],
[ diag_tickTime ]
[ diag_tickTime, [], [] ]
]
] call cba_fnc_addPerFrameHandler;

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