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

This commit is contained in:
commy2 2015-04-12 09:15:45 +02:00
commit 018854a7c3
119 changed files with 3994 additions and 2544 deletions

View File

@ -26,7 +26,7 @@ Walter Pearce <jaynus@gmail.com>
# CONTRIBUTORS
11RDP-LoupVert <loupvert@11rdp.fr>
[BIG]Bull
ACCtomeek
ACCtomeek <tomeek99@gmail.com>
Adanteh
aeroson
Aggr094 <bastards4glory@gmail.com>
@ -40,9 +40,10 @@ Falke75
Ferenczi
Ferenzi
Filip Basara <filip.basara93@googlemail.com> (Logo)
FreeZbe <freeseb@gmail.com>
geraldbolso1899
Ghost
gienkov
GieNkoV <gienkov.grzegorz@gmail.com>
gpgpgpgp
Grzegorz
Hamburger SV
@ -51,7 +52,7 @@ Hawkins
jokoho48
Jonpas <jonpas33@gmail.com>
Legolasindar "Viper" <legolasindar@gmail.com>
licht-im-Norden87
licht-im-Norden87 <lichtimnorden87@gmail.com>
MarcBook
Michail Nikolaev
nic547 <nic547@outlook.com>
@ -66,3 +67,5 @@ Sniperwolf572 <tenga6@gmail.com>
Tonic
Tourorist <tourorist@gmail.com>
Valentin Torikian <valentin.torikian@gmail.com>
zGuba
Aleksey EpMAK Yermakov <epmak777@gmail.com>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2015-04-07 -->
<!-- Edited with tabler - 2015-04-10 -->
<Project name="ACE">
<Package name="Attach">
<Key ID="STR_ACE_Attach_AttachDetach">
@ -48,7 +48,7 @@
<Portuguese>Marcador IV Acoplado</Portuguese>
<Italian>Strobo IR attaccata</Italian>
<Hungarian>Infravörös jeladó hozzácsatolva</Hungarian>
<Russian>ИК строб присоединён</Russian>
<Russian>ИК-маяк присоединён</Russian>
</Key>
<Key ID="STR_ACE_Attach_IrStrobe_Detached">
<English>IR Strobe Detached</English>
@ -60,7 +60,7 @@
<Portuguese>Marcador IV Separado</Portuguese>
<Italian>Strobo IR staccata</Italian>
<Hungarian>Infravörös jeladó lecsatolva</Hungarian>
<Russian>ИК строб отсоединён</Russian>
<Russian>ИК-маяк отсоединён</Russian>
</Key>
<Key ID="STR_ACE_Attach_IrGrenade_Attached">
<English>IR Grenade Attached</English>
@ -72,7 +72,7 @@
<Portuguese>Granada IV Acoplada</Portuguese>
<Italian>Granata IR attaccata</Italian>
<Hungarian>Infravörös gránát hozzácsatolva</Hungarian>
<Russian>ИК граната присоединена</Russian>
<Russian>ИК-граната присоединена</Russian>
</Key>
<Key ID="STR_ACE_Attach_IrGrenade_Detached">
<English>IR Grenade Detached</English>
@ -84,7 +84,7 @@
<Portuguese>Granada IV Separada</Portuguese>
<Italian>Granata IR staccata</Italian>
<Hungarian>Infravörös gránát lecsatolva</Hungarian>
<Russian>ИК граната отсоединена</Russian>
<Russian>ИК-граната отсоединена</Russian>
</Key>
<Key ID="STR_ACE_Attach_Chemlight_Attached">
<English>Chemlight Attached</English>
@ -132,7 +132,7 @@
<Portuguese>Marcador IV</Portuguese>
<Italian>Strobo IR</Italian>
<Hungarian>Infravörös jeladó</Hungarian>
<Russian>ИК строб</Russian>
<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>
@ -144,7 +144,7 @@
<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>
<Russian>ИК-маяк позволяет сигнализировать о своём местоположении через пульсирующий свет, видимый только через ПНВ.</Russian>
</Key>
<Key ID="STR_ACE_Attach_PlaceAction">
<English>Place</English>
@ -156,6 +156,7 @@
<Portuguese>Colocar</Portuguese>
<Italian>Posiziona</Italian>
<Hungarian>Elhelyez</Hungarian>
<Russian>Установить</Russian>
</Key>
<Key ID="STR_ACE_Attach_CancelAction">
<English>Cancel</English>
@ -167,13 +168,14 @@
<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 du Attacher</French>
<German>Befestigen fehlgeschlagen</German>
<Russian>Присоединить Ошибка</Russian>
<Russian>Соединение прервано</Russian>
<Spanish>Error al acoplar</Spanish>
</Key>
</Package>
</Project>
</Project>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2015-04-07 -->
<!-- Edited with tabler - 2015-04-10 -->
<Project name="ACE">
<Package name="Captives">
<Key ID="STR_ACE_Captives_SetCaptive">
@ -134,26 +134,31 @@
<English>Surrender</English>
<German>Kapitulieren</German>
<Spanish>Rendirse</Spanish>
<Russian>Сдаться</Russian>
</Key>
<Key ID="STR_ACE_Captives_StopSurrendering">
<English>Stop Surrendering</English>
<German>Den Kampf erneut aufnehmen</German>
<Spanish>Dejar de rendirse</Spanish>
<Russian>Остановить сдачу</Russian>
</Key>
<Key ID="STR_ACE_Captives_Zeus_OnlyAlive">
<English>Only use on alive units</English>
<German>Nur bei lebenden Einheiten verwendbar</German>
<Spanish>Utilizar solo en unidades vivas</Spanish>
<Russian>Только для живых юнитов</Russian>
</Key>
<Key ID="STR_ACE_Captives_Zeus_OnlyInfantry">
<English>Only use on dismounted inf</English>
<German>Nur bei abgesessener Infanterie verwendbar</German>
<Spanish>Utilizar solo en infanteria desmontada</Spanish>
<Russian>Только для спеш. солдат</Russian>
</Key>
<Key ID="STR_ACE_Captives_Zeus_NothingSelected">
<English>Nothing under mouse</English>
<German>Es wurde nichts ausgewählt</German>
<Spanish>Nada bajo el ratón</Spanish>
<Russian>Объекты под мышью отсутствуют</Russian>
</Key>
</Package>
</Project>
</Project>

View File

@ -39,6 +39,7 @@ PREP(displayText);
PREP(displayTextPicture);
PREP(displayTextStructured);
PREP(doAnimation);
PREP(dropBackpack);
PREP(endRadioTransmission);
PREP(eraseCache);
PREP(execNextFrame);
@ -181,6 +182,9 @@ PREP(waitAndExecute);
PREP(translateToWeaponSpace);
PREP(translateToModelSpace);
// Model and drawing helpers
PREP(worldToScreenBounds);
// config items
PREP(getConfigType);
PREP(getItemType);

View File

@ -0,0 +1,34 @@
/*
* Author: commy2
*
* Drops a backback. Also returns the ground wepaon holder object of the dropped backpack.
*
* Argument:
* 0: Unit that has a backpack (Object)
*
* Return value:
* Ground wepaon holder with backpack (Object)
*
*/
#include "script_component.hpp"
private "_unit";
_unit = _this select 0;
private "_backpackObject";
_backpackObject = backpackContainer _unit;
_unit addBackpack "Bag_Base";
removeBackpack _unit;
private "_holder";
_holder = objNull;
{
if (_backpackObject in everyBackpack _x) exitWith {
_holder = _x;
};
} forEach (position _unit nearObjects ["WeaponHolder", 5]);
_holder

View File

@ -14,10 +14,10 @@
// ACRE
if (isClass (configFile >> "CfgPatches" >> "acre_main")) then {
[-1] call acre_core_fnc_handleMultiPttKeyPressUp;
[0] call acre_core_fnc_handleMultiPttKeyPressUp;
[1] call acre_core_fnc_handleMultiPttKeyPressUp;
[2] call acre_core_fnc_handleMultiPttKeyPressUp;
[-1] call acre_sys_core_fnc_handleMultiPttKeyPressUp;
[0] call acre_sys_core_fnc_handleMultiPttKeyPressUp;
[1] call acre_sys_core_fnc_handleMultiPttKeyPressUp;
[2] call acre_sys_core_fnc_handleMultiPttKeyPressUp;
};
// TFAR

View File

@ -27,7 +27,7 @@ if (_setVolume) then {
player setVariable ["tf_unable_to_use_radio", false];
// ACRE2
player setVariable ["acre_sys_core_globalVolume", NORMAL_LEVEL];
[NORMAL_LEVEL] call acre_api_fnc_setGlobalVolume;
player setVariable ["acre_sys_core_isDisabled", false, true];
} else {
@ -40,7 +40,7 @@ if (_setVolume) then {
player setVariable ["tf_unable_to_use_radio", true];
// ACRE2
player setVariable ["acre_sys_core_globalVolume", MUTED_LEVEL];
[MUTED_LEVEL] call acre_api_fnc_setGlobalVolume;
player setVariable ["acre_sys_core_isDisabled", true, true];
};

View File

@ -0,0 +1,52 @@
// (c) zGuba 2011
// Function helper for framing objects on screen.
// Input: [_object,_margins3D,_offset3D] (object, 3 * float array, 3 * float array)
// Output: [_minX,_minY,_minY,_maxY] (4 * float)
#include "script_component.hpp"
private ["_minX","_minY","_maxX","_maxY"];
PARAMS_3(_object,_margins,_offsets);
_minX = 10;
_minY = 10;
_maxX = -10;
_maxY = -10;
if (true) then {
_bounds = boundingBox _object;
_boundsMin = _bounds select 0;
_boundsMinX = (_boundsMin select 0) - (_margins select 0) + (_offsets select 0);
_boundsMinY = (_boundsMin select 1) - (_margins select 1) + (_offsets select 1);
_boundsMinZ = (_boundsMin select 2) - (_margins select 2) + (_offsets select 2);
_boundsMax = _bounds select 1;
_boundsMaxX = (_boundsMax select 0) + (_margins select 0) + (_offsets select 0);
_boundsMaxY = (_boundsMax select 1) + (_margins select 1) + (_offsets select 1);
_boundsMaxZ = (_boundsMax select 2) + (_margins select 2) + (_offsets select 2);
_boundsCorners = [
[_boundsMinX,_boundsMinY,_boundsMinZ],
[_boundsMinX,_boundsMinY,_boundsMaxZ],
[_boundsMinX,_boundsMaxY,_boundsMinZ],
[_boundsMinX,_boundsMaxY,_boundsMaxZ],
[_boundsMaxX,_boundsMinY,_boundsMinZ],
[_boundsMaxX,_boundsMinY,_boundsMaxZ],
[_boundsMaxX,_boundsMaxY,_boundsMinZ],
[_boundsMaxX,_boundsMaxY,_boundsMaxZ]
];
{
_ppos = worldToScreen (_object modelToWorld _x);
_pposX = _ppos select 0;
_pposY = _ppos select 1;
if (_pposX < _minX) then {_minX = _pposX};
if (_pposX > _maxX) then {_maxX = _pposX};
if (_pposY < _minY) then {_minY = _pposY};
if (_pposY > _maxY) then {_maxY = _pposY};
} forEach _boundsCorners;
};
[_minX,_minY,_maxX,_maxY]

View File

@ -1,373 +1,405 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2015-04-07 -->
<!-- Edited with tabler. -->
<Project name="ACE">
<Package name="Common">
<Key ID="STR_ACE_Common_ACETeam">
<English>ACE-Team</English>
<German>ACE-Team</German>
<Spanish>ACE-Team</Spanish>
<Polish>ACE-Team</Polish>
<Czech>ACE-Team</Czech>
<French>ACE-Team</French>
<Russian>Команда ACE</Russian>
<Portuguese>ACE-Team</Portuguese>
<Hungarian>ACE-Team</Hungarian>
<Italian>ACE-Team</Italian>
</Key>
<Key ID="STR_ACE_Common_Save">
<English>Save</English>
<German>Speichern</German>
<Spanish>Guardar</Spanish>
<Polish>Zapisz</Polish>
<Czech>Uložit</Czech>
<French>Sauvegarder</French>
<Russian>Сохранить</Russian>
<Portuguese>Salvar</Portuguese>
<Hungarian>Mentés</Hungarian>
<Italian>Salva</Italian>
</Key>
<Key ID="STR_ACE_Common_Cancel">
<English>Cancel</English>
<German>Abbrechen</German>
<Spanish>Cancelar</Spanish>
<Polish>Anuluj</Polish>
<Czech>Zrušit</Czech>
<French>Annuler</French>
<Russian>Отмена</Russian>
<Portuguese>Cancelar</Portuguese>
<Hungarian>Mégse</Hungarian>
<Italian>Annulla</Italian>
</Key>
<Key ID="STR_ACE_Common_Options">
<English>ACE Options</English>
<German>ACE Optionen</German>
<Spanish>Opciones ACE</Spanish>
<Polish>Opcje ACE</Polish>
<Czech>ACE Nastavení</Czech>
<French>ACE Options</French>
<Russian>ACE Настройки</Russian>
<Portuguese>Opções do ACE</Portuguese>
<Hungarian>ACE Opciók</Hungarian>
<Italian>Opzioni ACE</Italian>
</Key>
<!-- These are cardinal directions, in case you didn't guess. -->
<Key ID="STR_ACE_Common_N">
<English>N</English>
<German>N</German>
<Spanish>N</Spanish>
<Polish>N</Polish>
<Czech>S</Czech>
<French>N</French>
<Russian>С</Russian>
<Portuguese>N</Portuguese>
<Hungarian>É</Hungarian>
<Italian>N</Italian>
</Key>
<Key ID="STR_ACE_Common_NNE">
<English>NNE</English>
<German>NNO</German>
<Spanish>NNE</Spanish>
<Polish>NNE</Polish>
<Czech>SSV</Czech>
<French>NNE</French>
<Russian>ССВ</Russian>
<Portuguese>NNE</Portuguese>
<Hungarian>ÉÉK</Hungarian>
<Italian>NNE</Italian>
</Key>
<Key ID="STR_ACE_Common_NE">
<English>NE</English>
<German>NO</German>
<Spanish>NE</Spanish>
<Polish>NE</Polish>
<Czech>SV</Czech>
<French>NE</French>
<Russian>СВ</Russian>
<Portuguese>NE</Portuguese>
<Hungarian>ÉK</Hungarian>
<Italian>NE</Italian>
</Key>
<Key ID="STR_ACE_Common_ENE">
<English>ENE</English>
<German>ONO</German>
<Spanish>ENE</Spanish>
<Polish>ENE</Polish>
<Czech>VSV</Czech>
<French>ENE</French>
<Russian>ВСВ</Russian>
<Portuguese>LNE</Portuguese>
<Hungarian>KÉK</Hungarian>
<Italian>ENE</Italian>
</Key>
<Key ID="STR_ACE_Common_E">
<English>E</English>
<German>O</German>
<Spanish>E</Spanish>
<Polish>E</Polish>
<Czech>V</Czech>
<French>E</French>
<Russian>В</Russian>
<Portuguese>L</Portuguese>
<Hungarian>K</Hungarian>
<Italian>E</Italian>
</Key>
<Key ID="STR_ACE_Common_ESE">
<English>ESE</English>
<German>OSO</German>
<Spanish>ESE</Spanish>
<Polish>ESE</Polish>
<Czech>VJV</Czech>
<French>ESE</French>
<Russian>ВЮВ</Russian>
<Portuguese>LSE</Portuguese>
<Hungarian>KDK</Hungarian>
<Italian>ESE</Italian>
</Key>
<Key ID="STR_ACE_Common_SE">
<English>SE</English>
<German>SO</German>
<Spanish>SE</Spanish>
<Polish>SE</Polish>
<Czech>JV</Czech>
<French>SE</French>
<Russian>ЮВ</Russian>
<Portuguese>SE</Portuguese>
<Hungarian>DK</Hungarian>
<Italian>SE</Italian>
</Key>
<Key ID="STR_ACE_Common_SSE">
<English>SSE</English>
<German>SSO</German>
<Spanish>SSE</Spanish>
<Polish>SSE</Polish>
<Czech>JJV</Czech>
<French>SSE</French>
<Russian>ЮЮВ</Russian>
<Portuguese>SSE</Portuguese>
<Hungarian>DDK</Hungarian>
<Italian>SSE</Italian>
</Key>
<Key ID="STR_ACE_Common_S">
<English>S</English>
<German>S</German>
<Spanish>S</Spanish>
<Polish>S</Polish>
<Czech>J</Czech>
<French>S</French>
<Russian>Ю</Russian>
<Portuguese>S</Portuguese>
<Hungarian>D</Hungarian>
<Italian>S</Italian>
</Key>
<Key ID="STR_ACE_Common_SSW">
<English>SSW</English>
<German>SSW</German>
<Spanish>SSO</Spanish>
<Polish>SSW</Polish>
<Czech>JJZ</Czech>
<French>SSO</French>
<Russian>ЮЮЗ</Russian>
<Portuguese>SSO</Portuguese>
<Hungarian>DDNy</Hungarian>
<Italian>SSO</Italian>
</Key>
<Key ID="STR_ACE_Common_SW">
<English>SW</English>
<German>SW</German>
<Spanish>SO</Spanish>
<Polish>SW</Polish>
<Czech>JZ</Czech>
<French>SO</French>
<Russian>ЮЗ</Russian>
<Portuguese>SO</Portuguese>
<Hungarian>DNy</Hungarian>
<Italian>SO</Italian>
</Key>
<Key ID="STR_ACE_Common_WSW">
<English>WSW</English>
<German>WSW</German>
<Spanish>OSO</Spanish>
<Polish>WSW</Polish>
<Czech>ZJZ</Czech>
<French>OSO</French>
<Russian>ЗЮЗ</Russian>
<Portuguese>OSO</Portuguese>
<Hungarian>NyDNy</Hungarian>
<Italian>OSO</Italian>
</Key>
<Key ID="STR_ACE_Common_W">
<English>W</English>
<German>W</German>
<Spanish>O</Spanish>
<Polish>W</Polish>
<Czech>Z</Czech>
<French>O</French>
<Russian>З</Russian>
<Portuguese>O</Portuguese>
<Hungarian>Ny</Hungarian>
<Italian>O</Italian>
</Key>
<Key ID="STR_ACE_Common_WNW">
<English>WNW</English>
<German>WNW</German>
<Spanish>ONO</Spanish>
<Polish>WNW</Polish>
<Czech>ZSZ</Czech>
<French>ONO</French>
<Russian>ЗСЗ</Russian>
<Portuguese>ONO</Portuguese>
<Hungarian>NyÉNy</Hungarian>
<Italian>ONO</Italian>
</Key>
<Key ID="STR_ACE_Common_NW">
<English>NW</English>
<German>NW</German>
<Spanish>NO</Spanish>
<Polish>NW</Polish>
<Czech>SZ</Czech>
<French>NO</French>
<Russian>СЗ</Russian>
<Portuguese>NO</Portuguese>
<Hungarian>ÉNy</Hungarian>
<Italian>NO</Italian>
</Key>
<Key ID="STR_ACE_Common_NNW">
<English>NNW</English>
<German>NNW</German>
<Spanish>NNO</Spanish>
<Polish>NNW</Polish>
<Czech>SSZ</Czech>
<French>NNO</French>
<Russian>ССЗ</Russian>
<Portuguese>NNO</Portuguese>
<Hungarian>ÉÉNy</Hungarian>
<Italian>NNO</Italian>
</Key>
<Key ID="STR_ACE_Common_ActionAborted">
<English>Action cancelled.</English>
<German>Aktion abgebrochen.</German>
<Spanish>Acción cancelada.</Spanish>
<Polish>Przerwano czynność</Polish>
<Czech>Akce přerušena</Czech>
<French>Action annulée.</French>
<Russian>Действие отменено.</Russian>
<Portuguese>Ação cancelada.</Portuguese>
<Hungarian>Művelet megszakítva.</Hungarian>
<Italian>Azione cancellata.</Italian>
</Key>
<Key ID="STR_ACE_Common_MiscItems">
<English>[ACE] Miscellaneous Items</English>
<German>[ACE] Verschiedenes</German>
<Spanish>[ACE] Objetos varios</Spanish>
<Polish>[ACE] Różne przedmioty</Polish>
<Czech>[ACE] Ostatní předměty</Czech>
<French>[ACE] Objets divers</French>
<Russian>[ACE] Различные предметы</Russian>
<Portuguese>[ACE] Itens diversos</Portuguese>
<Hungarian>[ACE] Egyéb tárgyak</Hungarian>
<Italian>[ACE] Oggetti vari</Italian>
</Key>
<Key ID="STR_ACE_Common_EnableNumberHotkeys">
<English>Disable Command Menu</English>
<German>Befehlsmenü ausschalten</German>
<Spanish>Desactivar menú de mando</Spanish>
<Polish>Wyłącz menu dowodzenia</Polish>
<Czech>Vypnout velící menu</Czech>
<French>Désactiver Menu Commande</French>
<Russian>Выключить командное меню</Russian>
<Hungarian>Parancsnoki menü kikapcsolása</Hungarian>
</Key>
<Key ID="STR_ACE_Common_Unknown">
<English>Unknown</English>
<German>Unbekannt</German>
<Spanish>Desconocido</Spanish>
<Polish>Nieznany</Polish>
<Czech>Neznámý</Czech>
<Russian>Неизвестно</Russian>
<Hungarian>Ismeretlen</Hungarian>
</Key>
<Key ID="STR_ACE_Common_NoVoice">
<English>No Voice</English>
<German>Keine Stimme</German>
<Spanish>Sin voz</Spanish>
<Polish>Brak głosu</Polish>
<Czech>Žádný hlas</Czech>
<Russian>Без голоса</Russian>
<Hungarian>Nincs hang</Hungarian>
</Key>
<Key ID="STR_ACE_ACTION_ACCEPT_REQUEST_KEY_TITLE">
<English>Accept Requests</English>
<German>Anfrage annehmen</German>
<Spanish>Aceptar peticiones</Spanish>
<Polish>Akceptuj prośby</Polish>
</Key>
<Key ID="STR_ACE_ACTION_DECLINE_REQUEST_KEY_TITLE">
<English>Decline Requests</English>
<German>Anfrage ablehnen</German>
<Spanish>Rechazar peticiones</Spanish>
<Polish>Ignoruj prośby</Polish>
</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>
<German>Anfragen anderer Spieler annehmen. Diese Anfragen können sich auf das Benutzen / Teilen von Equipment beziehen oder das Ausführen bestimmter Aktionen.</German>
<Spanish>Acepta peticiones de otros jugadores. Pueden ser solicitudes para usar / compartir equipamiento, realizar ciertas acciones.</Spanish>
<Polish>Akceptuj prośby wysłane przez innych graczy. Akceptacji wymagają między innymi akcje używania / współdzielenia wyposażenia, wykonywania określonych czynności.</Polish>
</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>
<German>Anfragen anderer Spieler ablehnen. Diese Anfragen können sich auf das Benutzen / Teilen von Equipment beziehen oder das Ausführen bestimmter Aktionen.</German>
<Spanish>Rechazar peticiones de otros jugadores. Pueden ser solicitudes para usar / compartir equipamiento, realizar ciertas acciones.</Spanish>
<Polish>Ignoruj prośby wysłane przez innych graczy. Akceptacji wymagają między innymi akcje używania / współdzielenia wyposażenia, wykonywania określonych czynności.</Polish>
</Key>
<Key ID="STR_ACE_Common_SettingFeedbackIconsName">
<English>Feedback icons</English>
<German>Feedback-Icons</German>
<Spanish>Iconos de respuesta</Spanish>
</Key>
<Key ID="STR_ACE_Common_SettingFeedbackIconsDesc">
<English>Select the position of or disable the feedback icons on your screen. These icons will show to provide extra feedback on your character status and actions performed.</English>
<German>Wähle die Position der Feedback-Icons aus oder deaktiviere Sie. Die Feedback-Icons zeigen den Status deiner Einheit an, oder die ausgeführte Aktion.</German>
<Spanish>Seleccionar la posición de o desactivar los íconos de respuesta en la pantalla. Estos iconos se mostrarán para proporcionar información adicional sobre el estado de su personaje y las acciones a realizar.</Spanish>
</Key>
<Key ID="STR_ACE_Common_SettingProgressbarLocationName">
<English>Progress bar location</English>
<German>Position des Fortschrittsanzeige</German>
<Spanish>Ubicación de la barra de progreso</Spanish>
</Key>
<Key ID="STR_ACE_Common_SettingProgressbarLocationDesc">
<English>Set the desired location of the progress bar on your screen.</English>
<German>Wähle die Position der Fortschrittsanzeige.</German>
<Spanish>Seleccionar la ubicación deseada de la barra de progreso en tu pantalla</Spanish>
</Key>
<Key ID="STR_ACE_Common_SettingDisplayTextColorName">
<English>Hint Background color</English>
<German>Hinweis Hintergrundfarbe</German>
<Spanish>Color de fondo de las notificaciones</Spanish>
</Key>
<Key ID="STR_ACE_Common_SettingDisplayTextColorDesc">
<English>The color of the background from the ACE hints.</English>
<German>Wähle die Hintergrundfarbe für ACE-Hinweise.</German>
<Spanish>El color de fondo de las notificaciones del ACE</Spanish>
</Key>
<Key ID="STR_ACE_Common_SettingDisplayTextFontColorName">
<English>Hint text font color</English>
<German>Hinweis Textfarbe</German>
<Spanish>Color del texto de las notificaciones</Spanish>
</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>
<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>
</Key>
<Key ID="STR_ACE_Common_bananaDisplayName">
<English>Banana</English>
<German>Banane</German>
<Spanish>Banana</Spanish>
</Key>
<Key ID="STR_ACE_Common_bananaDescr">
<English>A banana is an edible fruit, botanically a berry, produced by several kinds of large herbaceous flowering plants in the genus Musa.</English>
<German>Die Bananen (Musa) sind eine Pflanzengattung in der Familie der Bananengewächse (Musaceae) innerhalb der Einkeimblättrigen Pflanzen (Monokotyledonen).</German>
<Spanish>Una banana es una fruta comestible, botanicamente una baya, producida por varios tipos de grandes plantas herbáceas del género Musa.</Spanish>
</Key>
</Package>
</Project>
<Package name="Common">
<Key ID="STR_ACE_Common_ACETeam">
<English>ACE-Team</English>
<German>ACE-Team</German>
<Spanish>ACE-Team</Spanish>
<Polish>ACE-Team</Polish>
<Czech>ACE-Team</Czech>
<French>ACE-Team</French>
<Russian>Команда ACE</Russian>
<Portuguese>ACE-Team</Portuguese>
<Hungarian>ACE-Team</Hungarian>
<Italian>ACE-Team</Italian>
</Key>
<Key ID="STR_ACE_Common_Save">
<English>Save</English>
<German>Speichern</German>
<Spanish>Guardar</Spanish>
<Polish>Zapisz</Polish>
<Czech>Uložit</Czech>
<French>Sauvegarder</French>
<Russian>Сохранить</Russian>
<Portuguese>Salvar</Portuguese>
<Hungarian>Mentés</Hungarian>
<Italian>Salva</Italian>
</Key>
<Key ID="STR_ACE_Common_Cancel">
<English>Cancel</English>
<German>Abbrechen</German>
<Spanish>Cancelar</Spanish>
<Polish>Anuluj</Polish>
<Czech>Zrušit</Czech>
<French>Annuler</French>
<Russian>Отмена</Russian>
<Portuguese>Cancelar</Portuguese>
<Hungarian>Mégse</Hungarian>
<Italian>Annulla</Italian>
</Key>
<Key ID="STR_ACE_Common_Options">
<English>ACE Options</English>
<German>ACE Optionen</German>
<Spanish>Opciones ACE</Spanish>
<Polish>Opcje ACE</Polish>
<Czech>ACE Nastavení</Czech>
<French>ACE Options</French>
<Russian>ACE Настройки</Russian>
<Portuguese>Opções do ACE</Portuguese>
<Hungarian>ACE Opciók</Hungarian>
<Italian>Opzioni ACE</Italian>
</Key>
<!-- These are cardinal directions, in case you didn't guess. -->
<Key ID="STR_ACE_Common_N">
<English>N</English>
<German>N</German>
<Spanish>N</Spanish>
<Polish>N</Polish>
<Czech>S</Czech>
<French>N</French>
<Russian>С</Russian>
<Portuguese>N</Portuguese>
<Hungarian>É</Hungarian>
<Italian>N</Italian>
</Key>
<Key ID="STR_ACE_Common_NNE">
<English>NNE</English>
<German>NNO</German>
<Spanish>NNE</Spanish>
<Polish>NNE</Polish>
<Czech>SSV</Czech>
<French>NNE</French>
<Russian>ССВ</Russian>
<Portuguese>NNE</Portuguese>
<Hungarian>ÉÉK</Hungarian>
<Italian>NNE</Italian>
</Key>
<Key ID="STR_ACE_Common_NE">
<English>NE</English>
<German>NO</German>
<Spanish>NE</Spanish>
<Polish>NE</Polish>
<Czech>SV</Czech>
<French>NE</French>
<Russian>СВ</Russian>
<Portuguese>NE</Portuguese>
<Hungarian>ÉK</Hungarian>
<Italian>NE</Italian>
</Key>
<Key ID="STR_ACE_Common_ENE">
<English>ENE</English>
<German>ONO</German>
<Spanish>ENE</Spanish>
<Polish>ENE</Polish>
<Czech>VSV</Czech>
<French>ENE</French>
<Russian>ВСВ</Russian>
<Portuguese>LNE</Portuguese>
<Hungarian>KÉK</Hungarian>
<Italian>ENE</Italian>
</Key>
<Key ID="STR_ACE_Common_E">
<English>E</English>
<German>O</German>
<Spanish>E</Spanish>
<Polish>E</Polish>
<Czech>V</Czech>
<French>E</French>
<Russian>В</Russian>
<Portuguese>L</Portuguese>
<Hungarian>K</Hungarian>
<Italian>E</Italian>
</Key>
<Key ID="STR_ACE_Common_ESE">
<English>ESE</English>
<German>OSO</German>
<Spanish>ESE</Spanish>
<Polish>ESE</Polish>
<Czech>VJV</Czech>
<French>ESE</French>
<Russian>ВЮВ</Russian>
<Portuguese>LSE</Portuguese>
<Hungarian>KDK</Hungarian>
<Italian>ESE</Italian>
</Key>
<Key ID="STR_ACE_Common_SE">
<English>SE</English>
<German>SO</German>
<Spanish>SE</Spanish>
<Polish>SE</Polish>
<Czech>JV</Czech>
<French>SE</French>
<Russian>ЮВ</Russian>
<Portuguese>SE</Portuguese>
<Hungarian>DK</Hungarian>
<Italian>SE</Italian>
</Key>
<Key ID="STR_ACE_Common_SSE">
<English>SSE</English>
<German>SSO</German>
<Spanish>SSE</Spanish>
<Polish>SSE</Polish>
<Czech>JJV</Czech>
<French>SSE</French>
<Russian>ЮЮВ</Russian>
<Portuguese>SSE</Portuguese>
<Hungarian>DDK</Hungarian>
<Italian>SSE</Italian>
</Key>
<Key ID="STR_ACE_Common_S">
<English>S</English>
<German>S</German>
<Spanish>S</Spanish>
<Polish>S</Polish>
<Czech>J</Czech>
<French>S</French>
<Russian>Ю</Russian>
<Portuguese>S</Portuguese>
<Hungarian>D</Hungarian>
<Italian>S</Italian>
</Key>
<Key ID="STR_ACE_Common_SSW">
<English>SSW</English>
<German>SSW</German>
<Spanish>SSO</Spanish>
<Polish>SSW</Polish>
<Czech>JJZ</Czech>
<French>SSO</French>
<Russian>ЮЮЗ</Russian>
<Portuguese>SSO</Portuguese>
<Hungarian>DDNy</Hungarian>
<Italian>SSO</Italian>
</Key>
<Key ID="STR_ACE_Common_SW">
<English>SW</English>
<German>SW</German>
<Spanish>SO</Spanish>
<Polish>SW</Polish>
<Czech>JZ</Czech>
<French>SO</French>
<Russian>ЮЗ</Russian>
<Portuguese>SO</Portuguese>
<Hungarian>DNy</Hungarian>
<Italian>SO</Italian>
</Key>
<Key ID="STR_ACE_Common_WSW">
<English>WSW</English>
<German>WSW</German>
<Spanish>OSO</Spanish>
<Polish>WSW</Polish>
<Czech>ZJZ</Czech>
<French>OSO</French>
<Russian>ЗЮЗ</Russian>
<Portuguese>OSO</Portuguese>
<Hungarian>NyDNy</Hungarian>
<Italian>OSO</Italian>
</Key>
<Key ID="STR_ACE_Common_W">
<English>W</English>
<German>W</German>
<Spanish>O</Spanish>
<Polish>W</Polish>
<Czech>Z</Czech>
<French>O</French>
<Russian>З</Russian>
<Portuguese>O</Portuguese>
<Hungarian>Ny</Hungarian>
<Italian>O</Italian>
</Key>
<Key ID="STR_ACE_Common_WNW">
<English>WNW</English>
<German>WNW</German>
<Spanish>ONO</Spanish>
<Polish>WNW</Polish>
<Czech>ZSZ</Czech>
<French>ONO</French>
<Russian>ЗСЗ</Russian>
<Portuguese>ONO</Portuguese>
<Hungarian>NyÉNy</Hungarian>
<Italian>ONO</Italian>
</Key>
<Key ID="STR_ACE_Common_NW">
<English>NW</English>
<German>NW</German>
<Spanish>NO</Spanish>
<Polish>NW</Polish>
<Czech>SZ</Czech>
<French>NO</French>
<Russian>СЗ</Russian>
<Portuguese>NO</Portuguese>
<Hungarian>ÉNy</Hungarian>
<Italian>NO</Italian>
</Key>
<Key ID="STR_ACE_Common_NNW">
<English>NNW</English>
<German>NNW</German>
<Spanish>NNO</Spanish>
<Polish>NNW</Polish>
<Czech>SSZ</Czech>
<French>NNO</French>
<Russian>ССЗ</Russian>
<Portuguese>NNO</Portuguese>
<Hungarian>ÉÉNy</Hungarian>
<Italian>NNO</Italian>
</Key>
<Key ID="STR_ACE_Common_ActionAborted">
<English>Action cancelled.</English>
<German>Aktion abgebrochen.</German>
<Spanish>Acción cancelada.</Spanish>
<Polish>Przerwano czynność</Polish>
<Czech>Akce přerušena</Czech>
<French>Action annulée.</French>
<Russian>Действие отменено.</Russian>
<Portuguese>Ação cancelada.</Portuguese>
<Hungarian>Művelet megszakítva.</Hungarian>
<Italian>Azione cancellata.</Italian>
</Key>
<Key ID="STR_ACE_Common_MiscItems">
<English>[ACE] Miscellaneous Items</English>
<German>[ACE] Verschiedenes</German>
<Spanish>[ACE] Objetos varios</Spanish>
<Polish>[ACE] Różne przedmioty</Polish>
<Czech>[ACE] Ostatní předměty</Czech>
<French>[ACE] Objets divers</French>
<Russian>[ACE] Различные предметы</Russian>
<Portuguese>[ACE] Itens diversos</Portuguese>
<Hungarian>[ACE] Egyéb tárgyak</Hungarian>
<Italian>[ACE] Oggetti vari</Italian>
</Key>
<Key ID="STR_ACE_Common_EnableNumberHotkeys">
<English>Disable Command Menu</English>
<German>Befehlsmenü ausschalten</German>
<Spanish>Desactivar menú de mando</Spanish>
<Polish>Wyłącz menu dowodzenia</Polish>
<Czech>Vypnout velící menu</Czech>
<French>Désactiver Menu Commande</French>
<Russian>Выключить командное меню</Russian>
<Hungarian>Parancsnoki menü kikapcsolása</Hungarian>
<Italian>Disabilita Menù di comando</Italian>
</Key>
<Key ID="STR_ACE_Common_Unknown">
<English>Unknown</English>
<German>Unbekannt</German>
<Spanish>Desconocido</Spanish>
<Polish>Nieznany</Polish>
<Czech>Neznámý</Czech>
<Russian>Неизвестно</Russian>
<Hungarian>Ismeretlen</Hungarian>
<Italian>Sconosciuto</Italian>
<French>Inconnu</French>
</Key>
<Key ID="STR_ACE_Common_NoVoice">
<English>No Voice</English>
<German>Keine Stimme</German>
<Spanish>Sin voz</Spanish>
<Polish>Brak głosu</Polish>
<Czech>Žádný hlas</Czech>
<Russian>Без голоса</Russian>
<Hungarian>Nincs hang</Hungarian>
<Italian>Senza voce</Italian>
</Key>
<Key ID="STR_ACE_ACTION_ACCEPT_REQUEST_KEY_TITLE">
<English>Accept Requests</English>
<German>Anfrage akzeptieren</German>
<Spanish>Aceptar peticiones</Spanish>
<Polish>Akceptuj prośby</Polish>
<Italian>Accetta Richieste</Italian>
<Russian>Подтвердить запросы</Russian>
</Key>
<Key ID="STR_ACE_ACTION_DECLINE_REQUEST_KEY_TITLE">
<English>Decline Requests</English>
<German>Anfrage ablehnen</German>
<Spanish>Rechazar peticiones</Spanish>
<Polish>Ignoruj prośby</Polish>
<Italian>Rifiuta Richieste</Italian>
<Russian>Отклонить запросы</Russian>
</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>
<German>Anfragen werden von anderen Mitspielen gestellt. Diese können Anfragen u.a. zum Teilen/Verwenden von Ausrüstungsgegenständen, oder auch zum Ausführen von Handlungen sein. </German>
<Spanish>Acepta peticiones de otros jugadores. Pueden ser solicitudes para usar / compartir equipamiento, realizar ciertas acciones.</Spanish>
<Polish>Akceptuj prośby wysłane przez innych graczy. Akceptacji wymagają między innymi akcje używania / współdzielenia wyposażenia, wykonywania określonych czynności.</Polish>
<Italian>Accetta le richieste degli altri giocatori. Queste possono riguardare l'uso o la condivisione dell'equipaggiamento, o di determinate azioni.</Italian>
<Russian>Подтвердить запросы, посланные другими игроками. Это могут быть просьбы о передаче снаряжения или выполнении определённых действий.</Russian>
</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>
<German>Anfragen werden von anderen Mitspielen gestellt. Diese können Anfragen u.a. zum Teilen/Verwenden von Ausrüstungsgegenständen, oder auch zum Ausführen von Handlungen sein. </German>
<Spanish>Rechazar peticiones de otros jugadores. Pueden ser solicitudes para usar / compartir equipamiento, realizar ciertas acciones.</Spanish>
<Polish>Ignoruj prośby wysłane przez innych graczy. Akceptacji wymagają między innymi akcje używania / współdzielenia wyposażenia, wykonywania określonych czynności.</Polish>
<Italian>Rifiuta le richieste degli altri giocatori. Queste possono riguardare l'uso o la condivisione dell'equipaggiamento, o di determinate azioni.</Italian>
<Russian>Отклонить запросы, посланные другими игроками. Это могут быть просьбы о передаче снаряжения или выполнении определённых действий.</Russian>
</Key>
<Key ID="STR_ACE_Common_SettingFeedbackIconsName">
<English>Feedback icons</English>
<German>Rückmeldungssymbole</German>
<Spanish>Iconos de respuesta</Spanish>
<Italian>Icone informative</Italian>
<Russian>Иконки состояний</Russian>
</Key>
<Key ID="STR_ACE_Common_SettingFeedbackIconsDesc">
<English>Select the position of or disable the feedback icons on your screen. These icons will show to provide extra feedback on your character status and actions performed.</English>
<German>Wähle die Position der Rückmeldungssymbole, oder deaktiviere sie. Diese Symbole stellen eine zusätzliche Rückmeldung über die Lage und Handlungen deines Soldaten dar.</German>
<Spanish>Seleccionar la posición de o desactivar los íconos de respuesta en la pantalla. Estos iconos se mostrarán para proporcionar información adicional sobre el estado de su personaje y las acciones a realizar.</Spanish>
<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>
</Key>
<Key ID="STR_ACE_Common_SettingProgressbarLocationName">
<English>Progress bar location</English>
<German>Position der Fortschrittsanzeige</German>
<Spanish>Ubicación de la barra de progreso</Spanish>
<Italian>Posizione della barra di avanzamento</Italian>
<Russian>Положение прогресс-бара</Russian>
</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>
<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>
</Key>
<Key ID="STR_ACE_Common_SettingDisplayTextColorName">
<English>Hint Background color</English>
<German>Hintergrundfarbe der Hinweise</German>
<Spanish>Color de fondo de las notificaciones</Spanish>
<Italian>Sfondo dei Suggerimenti</Italian>
<Russian>Цвет фона всплывающих подсказок</Russian>
</Key>
<Key ID="STR_ACE_Common_SettingDisplayTextColorDesc">
<English>The color of the background from the ACE hints.</English>
<German>Die Hintergrundfarbe der ACE-Hinweise.</German>
<Spanish>El color de fondo de las notificaciones del ACE</Spanish>
<Italian>Il colore di sfondo dei suggerimenti dell'ACE.</Italian>
<Russian>Цвет фона всплывающий подсказок АСЕ.</Russian>
</Key>
<Key ID="STR_ACE_Common_SettingDisplayTextFontColorName">
<English>Hint text font color</English>
<German>Textfarbe der Hinweise</German>
<Spanish>Color del texto de las notificaciones</Spanish>
<Italian>Testo dei Suggerimenti</Italian>
<Russian>Цвет шрифта всплывающих подсказок</Russian>
</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>
<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>
</Key>
<Key ID="STR_ACE_Common_bananaDisplayName">
<English>Banana</English>
<German>Banane</German>
<Spanish>Banana</Spanish>
<Italian>Banana</Italian>
<Russian>Банан</Russian>
</Key>
<Key ID="STR_ACE_Common_bananaDescr">
<English>A banana is an edible fruit, botanically a berry, produced by several kinds of large herbaceous flowering plants in the genus Musa.</English>
<German>Die Banane ist eine essbare Frucht, biologisch betrachtet jedoch eine Beere. Sie wächst an unterschiedlichen, krautartigen Gewächsen aus der Familie der Musa.</German>
<Spanish>Una banana es una fruta comestible, botanicamente una baya, producida por varios tipos de grandes plantas herbáceas del género Musa.</Spanish>
<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>
</Key>
</Package>
</Project>

View File

@ -0,0 +1 @@
z\ace\addons\disarming

View File

@ -0,0 +1,11 @@
class Extended_PreInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_preInit));
};
};
class Extended_PostInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_postInit));
};
};

View File

@ -0,0 +1,17 @@
class CfgVehicles {
class Man;
class CAManBase: Man {
class ACE_Actions {
class ACE_MainActions {
class ACE_DisarmInventory {
displayName = "$STR_ACE_Disarming_OpenInventory";
distance = 3.5;
condition = QUOTE([ARR_2(_player,_target)] call FUNC(canPlayerDisarmUnit));
statement = QUOTE([ARR_2(_player,_target)] call FUNC(openDisarmDialog));
icon = "\a3\Modules_F_Curator\Data\portraitRespawnInventory_ca.paa";
exceptions[] = {};
};
};
};
};
};

View File

@ -0,0 +1,14 @@
class CfgWeapons {
class ACE_ItemCore;
class InventoryItem_Base_F;
class ACE_DebugPotato: ACE_ItemCore {
displayName = "ACE Potato (debug)";
descriptionShort = "Glorious Potato<br/>If you see this in game it means someone fucked up";
picture = QUOTE(PATHTOF(UI\potato_ca.paa));
scope = 1;
class ItemInfo: InventoryItem_Base_F {
mass = 1;
};
};
};

View File

@ -0,0 +1,11 @@
ace_disarming
============
Adds ability to make units drop items/weapons/magazines.
## Maintainers
The people responsible for merging changes to this component or answering potential questions.
- [PabstMirror](https://github.com/PabstMirror)

Binary file not shown.

View File

@ -0,0 +1,4 @@
#include "script_component.hpp"
["DisarmDropItems", {_this call FUNC(eventTargetStart)}] call EFUNC(common,addEventHandler);
["DisarmDebugCallback", {_this call FUNC(eventCallerFinish)}] call EFUNC(common,addEventHandler);

View File

@ -0,0 +1,17 @@
#include "script_component.hpp"
ADDON = false;
PREP(canBeDisarmed);
PREP(canPlayerDisarmUnit);
PREP(disarmDropItems);
PREP(eventCallerFinish);
PREP(eventTargetFinish);
PREP(eventTargetStart);
PREP(getAllGearContainer);
PREP(getAllGearUnit);
PREP(openDisarmDialog);
PREP(showItemsInListbox);
PREP(verifyMagazinesMoved);
ADDON = true;

View File

@ -0,0 +1,19 @@
#include "script_component.hpp"
class CfgPatches {
class ADDON {
units[] = {};
weapons[] = {"ACE_DebugPotato"};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ACE_Interaction"};
author[] = {"PabstMirror"};
authorUrl = "https://github.com/PabstMirror/";
VERSION_CONFIG;
};
};
#include "CfgEventHandlers.hpp"
#include "CfgVehicles.hpp"
#include "CfgWeapons.hpp"
#include "gui_disarm.hpp"

View File

@ -0,0 +1,34 @@
/*
* Author: PabstMirror
* Checks the conditions for being able to disarm a unit
*
* Arguments:
* 0: Target <OBJECT>
*
* Return Value:
* Can Be Disarmed <BOOL>
*
* Example:
* [cursorTarget] call ace_disarming_fnc_canBeDisarmed
*
* Public: No
*/
#include "script_component.hpp"
PARAMS_1(_target);
//Check animationState for putDown anim
//This ensures the unit doesn't have to actualy do any animation to drop something
//This should always be true for the 3 possible status effects that allow disarming
_animationStateCfgMoves = getText (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState _target) >> "actions");
if (_animationStateCfgMoves == "") exitWith {false};
_putDownAnim = getText (configFile >> "CfgMovesBasic" >> "Actions" >> _animationStateCfgMoves >> "PutDown");
if (_putDownAnim != "") exitWith {false};
(alive _target) &&
{(abs (speed _target)) < 1} &&
{(vehicle _target) == _target} &&
{(_target getVariable ["ACE_isUnconscious", false]) ||
{_target getVariable [QEGVAR(captives,isHandcuffed), false]} ||
{_target getVariable [QEGVAR(captives,isSurrendering), false]}}

View File

@ -0,0 +1,22 @@
/*
* Author: PabstMirror
* Checks the conditions for being able to disarm a unit
*
* Arguments:
* 0: Player <OBJECT>
* 1: Target <OBJECT>
*
* Return Value:
* Can Be Disarm Target <BOOL>
*
* Example:
* [player, cursorTarget] call ace_disarming_fnc_canPlayerDisarmUnit
*
* Public: No
*/
#include "script_component.hpp"
PARAMS_2(_player,_target);
([_target] call FUNC(canBeDisarmed)) &&
{([_player, _target, []] call EFUNC(common,canInteractWith))}

View File

@ -0,0 +1,252 @@
/*
* Author: PabstMirror
* Makes a unit drop items
*
* Arguments:
* 0: caller (player) <OBJECT>
* 1: target <OBJECT>
* 2: classnamess <ARRAY>
* 3: Do Not Drop Ammo <BOOL><OPTIONAL>
*
* Return Value:
* Nothing
*
* Example:
* [player, cursorTarget, ["ace_bandage"]] call ace_disarming_fnc_disarmDropItems
*
* Public: No
*/
#include "script_component.hpp"
#define TIME_MAX_WAIT 5
PARAMS_3(_caller,_target,_listOfItemsToRemove);
DEFAULT_PARAM(3,_doNotDropAmmo,false); //By default units drop all weapon mags when dropping a weapon
_fncSumArray = {
_return = 0;
{_return = _return + _x;} forEach (_this select 0);
_return
};
//Sanity Checks
if (!([_target] call FUNC(canBeDisarmed))) exitWith {
[_caller, _target, "Debug: Cannot disarm target"] call FUNC(eventTargetFinish);
};
if (_doNotDropAmmo && {({_x in _listOfItemsToRemove} count (magazines _target)) > 0}) exitWith {
[_caller, _target, "Debug: Trying to drop magazine with _doNotDropAmmo flag"] call FUNC(eventTargetFinish);
};
_holder = objNull;
//If not dropping ammo, don't use an existing container
if (!_doNotDropAmmo) then {
{
if ((_x getVariable [QGVAR(disarmUnit), objNull]) == _target) exitWith {
_holder = _x;
};
} forEach ((getpos _target) nearObjects [DISARM_CONTAINER, 3]);
};
//Create a new weapon holder
if (isNull _holder) then {
_dropPos = _target modelToWorld [0.4, 0.75, 0]; //offset someone unconscious isn't lying over it
_dropPos set [2, ((getPosASL _target) select 2)];
_holder = createVehicle [DISARM_CONTAINER, _dropPos, [], 0, "CAN_COLLIDE"];
_holder setPosASL _dropPos;
_holder setVariable [QGVAR(disarmUnit), _target, true];
};
//Verify holder created
if (isNull _holder) exitWith {
[_caller, _target, "Debug: Null Holder"] call FUNC(eventTargetFinish);
};
//Make sure only one drop operation at a time (using PFEH system as a queue)
if (_holder getVariable [QGVAR(holderInUse), false]) exitWith {
[{
_this call FUNC(disarmDropItems);
}, _this, 0, 0] call EFUNC(common,waitAndExecute);
};
_holder setVariable [QGVAR(holderInUse), true];
//Remove Magazines
_targetMagazinesStart = magazinesAmmo _target;
_holderMagazinesStart = magazinesAmmoCargo _holder;
{
EXPLODE_2_PVT(_x,_xClassname,_xAmmo);
if ((_xClassname in _listOfItemsToRemove) && {!(_xClassname in UNIQUE_MAGAZINES)}) then {
_holder addMagazineAmmoCargo [_xClassname, 1, _xAmmo];
_target removeMagazine _xClassname;
};
} forEach _targetMagazinesStart;
_targetMagazinesEnd = magazinesAmmo _target;
_holderMagazinesEnd = magazinesAmmoCargo _holder;
//Verify Mags dropped from unit:
if ( ({((_x select 0) in _listOfItemsToRemove) && {!((_x select 0) in UNIQUE_MAGAZINES)}} count _targetMagazinesEnd) != 0) exitWith {
_holder setVariable [QGVAR(holderInUse), false];
[_caller, _target, "Debug: Didn't Remove Magazines"] call FUNC(eventTargetFinish);
};
//Verify holder has mags unit had
if (!([_targetMagazinesStart, _targetMagazinesEnd, _holderMagazinesStart, _holderMagazinesEnd] call FUNC(verifyMagazinesMoved))) then {
ERR = [_targetMagazinesStart, _targetMagazinesEnd, _holderMagazinesStart, _holderMagazinesEnd];
_holder setVariable [QGVAR(holderInUse), false];
[_caller, _target, "Debug: Crate Magazines not in holder"] call FUNC(eventTargetFinish);
};
//Remove Items, Assigned Items and NVG
_holderItemsStart = getitemCargo _holder;
_targetItemsStart = (assignedItems _target) + (items _target);
if ((headgear _target) != "") then {_targetItemsStart pushBack (headgear _target);};
if ((goggles _target) != "") then {_targetItemsStart pushBack (goggles _target);};
_addToCrateClassnames = [];
_addToCrateCount = [];
{
if (_x in _listOfItemsToRemove) then {
if (_x in (items _target)) then {
_target removeItem _x;
} else {
_target unlinkItem _x;
};
_index = _addToCrateClassnames find _x;
if (_index != -1) then {
_addToCrateCount set [_index, ((_addToCrateCount select _index) + 1)];
} else {
_addToCrateClassnames pushBack _x;
_addToCrateCount pushBack 1;
};
};
} forEach _targetItemsStart;
//Add the items to the holder (combined to reduce addItemCargoGlobal calls)
{
_holder addItemCargoGlobal [(_addToCrateClassnames select _forEachIndex), (_addToCrateCount select _forEachIndex)];
} forEach _addToCrateClassnames;
_holderItemsEnd = getitemCargo _holder;
_targetItemsEnd = (assignedItems _target) + (items _target);
if ((headgear _target) != "") then {_targetItemsEnd pushBack (headgear _target);};
if ((goggles _target) != "") then {_targetItemsEnd pushBack (goggles _target);};
//Verify Items Added
if (((count _targetItemsStart) - (count _targetItemsEnd)) != ([_addToCrateCount] call _fncSumArray)) exitWith {
_holder setVariable [QGVAR(holderInUse), false];
[_caller, _target, "Debug: Items Not Removed From Player"] call FUNC(eventTargetFinish);
};
if ((([_holderItemsEnd select 1] call _fncSumArray) - ([_holderItemsStart select 1] call _fncSumArray)) != ([_addToCrateCount] call _fncSumArray)) exitWith {
_holder setVariable [QGVAR(holderInUse), false];
[_caller, _target, "Debug: Items Not Added to Holder"] call FUNC(eventTargetFinish);
};
//If holder is still empty, it will be 'garbage collected' while we wait for the drop 'action' to take place
//So add a dummy item and just remove at the end
_holderIsEmpty = ([_holder] call FUNC(getAllGearContainer)) isEqualTo [[],[]];
if (_holderIsEmpty) then {
TRACE_1("Debug: adding dummy item to holder",_holder);
_holder addItemCargoGlobal [DUMMY_ITEM, 1];
};
//Start the PFEH to do the actions (which could take >1 frame)
[{
PARAMS_2(_args,_pfID);
EXPLODE_8_PVT(_args,_caller,_target,_listOfItemsToRemove,_holder,_holderIsEmpty,_maxWaitTime,_doNotDropAmmo,_startingMagazines);
_needToRemoveWeapon = ({_x in _listOfItemsToRemove} count (weapons _target)) > 0;
_needToRemoveMagazines = ({_x in _listOfItemsToRemove} count (magazines _target)) > 0;
_needToRemoveBackpack = ((backPack _target) != "") && {(backPack _target) in _listOfItemsToRemove};
_needToRemoveVest = ((vest _target) != "") && {(vest _target) in _listOfItemsToRemove};
_needToRemoveUniform = ((uniform _target) != "") && {(uniform _target) in _listOfItemsToRemove};
if ((time < _maxWaitTime) && {[_target] call FUNC(canBeDisarmed)} && {_needToRemoveWeapon || _needToRemoveMagazines || _needToRemoveBackpack}) then {
//action drop weapons (keeps loaded magazine and attachements)
{
if (_x in _listOfItemsToRemove) then {
_target action ["DropWeapon", _holder, _x];
};
} forEach (weapons _target);
//Drop magazine (keeps unique ID)
{
if (_x in _listOfItemsToRemove) then {
_target action ["DropMagazine", _holder, _x];
};
} forEach (magazines _target);
//Drop backpack (Keeps variables for ACRE/TFR)
if (_needToRemoveBackpack) then {_target action ["DropBag", _holder, (backPack _target)];};
} else {
[_pfID] call CBA_fnc_removePerFrameHandler;
if (_doNotDropAmmo) then {
_error = false;
_magsToPickup = +_startingMagazines;
{
_index = _magsToPickup find _x;
if (_index == -1) exitWith {_error = true; ERROR("More mags than when we started?")};
_magsToPickup deleteAt _index;
} forEach (magazinesAmmo _target);
_magazinesInHolder = magazinesAmmoCargo _holder;
{
_index = _magazinesInHolder find _x;
if (_index == -1) exitWith {_error = true; ERROR("Missing mag not in holder")};
_magazinesInHolder deleteAt _index;
} forEach _magsToPickup;
//No Error (all the ammo in the container is ammo we should have);
if ((!_error) && {_magazinesInHolder isEqualTo []}) then {
{
_target addMagazine _x;
} forEach (magazinesAmmoCargo _holder);
clearMagazineCargoGlobal _holder;
};
};
//If we added a dummy item, remove it now
if (_holderIsEmpty && {!((getItemCargo _holder) isEqualTo [[DUMMY_ITEM],[1]])}) exitWith {
_holder setVariable [QGVAR(holderInUse), false];
[_caller, _target, "Debug: Holder should only have dummy item"] call FUNC(eventTargetFinish);
};
if (_holderIsEmpty) then {
TRACE_1("Debug: removing dummy item from holder",_holder);
clearItemCargoGlobal _holder;
};
//Verify we didn't timeout waiting on drop action
if (time >= _maxWaitTime) exitWith {
_holder setVariable [QGVAR(holderInUse), false];
[_caller, _target, "Debug: Drop Actions Timeout"] call FUNC(eventTargetFinish);
};
//If target lost disarm status:
if (!([_target] call FUNC(canBeDisarmed))) exitWith {
_holder setVariable [QGVAR(holderInUse), false];
[_caller, _target, "Debug: Target cannot be disarmed"] call FUNC(eventTargetFinish);
};
if (_needToRemoveVest && {!((vestItems _target) isEqualTo [])}) exitWith {
_holder setVariable [QGVAR(holderInUse), false];
[_caller, _target, "Debug: Vest Not Empty"] call FUNC(eventTargetFinish);
};
if (_needToRemoveVest) then {
_holder addItemCargoGlobal [(vest _target), 1];
removeVest _target;
};
if (_needToRemoveUniform && {!((uniformItems _target) isEqualTo [])}) exitWith {
_holder setVariable [QGVAR(holderInUse), false];
[_caller, _target, "Debug: Uniform Not Empty"] call FUNC(eventTargetFinish);
};
if (_needToRemoveUniform) then {
_holder addItemCargoGlobal [(uniform _target), 1];
removeUniform _target;
};
_holder setVariable [QGVAR(holderInUse), false];
[_caller, _target, ""] call FUNC(eventTargetFinish);
};
}, 0.0, [_caller,_target, _listOfItemsToRemove, _holder, _holderIsEmpty, (time + TIME_MAX_WAIT), _doNotDropAmmo, _targetMagazinesEnd]] call CBA_fnc_addPerFrameHandler;

View File

@ -0,0 +1,25 @@
/*
* Author: PabstMirror
* Recieves a possible error code from FUNC(eventTargetFinish)
*
* Arguments:
* 0: caller (player) <OBJECT>
* 1: target <OBJECT>
* 2: error message <STRING>
*
* Return Value:
* None
*
* Example:
* [player1, player2, "Someting fucked up"] call ace_disarming_fnc_eventCallerFinish
*
* Public: No
*/
#include "script_component.hpp"
PARAMS_3(_caller,_target,_errorMsg);
if (_caller != ACE_player) exitWith {};
systemChat format ["Debug-Caller: Disarm finished from [%1] with code [%2]", _target, _errorMsg];
diag_log text format ["[ACE_Disarming] %1 - eventCallerFinish: %2", time, _this];

View File

@ -0,0 +1,26 @@
/*
* Author: PabstMirror
* After FUNC(disarmDropItems) has completed, passing a possible error code.
* Passes that error back to orginal caller.
*
* Arguments:
* 0: caller <OBJECT>
* 1: target <OBJECT>
* 2: errorMsg <STRING>
*
* Return Value:
* Nothing
*
* Example:
* [player1, player2, "Someting fucked up"] call ace_disarming_fnc_eventTargetFinish
*
* Public: No
*/
#include "script_component.hpp"
PARAMS_3(_caller,_target,_errorMsg);
if (_errorMsg != "") then {
diag_log text format ["[ACE_Disarming] %1 - eventTargetFinish: %2", time, _this];
["DisarmDebugCallback", [_caller], [_caller, _target, _errorMsg]] call EFUNC(common,targetEvent);
};

View File

@ -0,0 +1,39 @@
/*
* Author: PabstMirror
* Disarm Event Handler, Starting func, called on the target.
* If target has to remove uniform/vest, this will add all uniform/vest items to the drop list.
*
* Arguments:
* 0: caller (player) <OBJECT>
* 1: target <OBJECT>
* 2: type of disarm <STRING>
*
* Return Value:
* Nothing
*
* Example:
* eventTargetStart
*
* Public: No
*/
#include "script_component.hpp"
PARAMS_3(_caller,_target,_listOfObjectsToRemove);
_itemsToAdd = [];
{
if (_x == (uniform _target)) then {
_itemsToAdd = _itemsToAdd + (uniformItems _target);
};
if (_x == (vest _target)) then {
_itemsToAdd = _itemsToAdd + (vestItems _target);
};
} forEach _listOfObjectsToRemove;
{
if (!(_x in _listOfObjectsToRemove)) then {
_listOfObjectsToRemove pushBack _x;
};
} forEach _itemsToAdd;
[_caller, _target, _listOfObjectsToRemove] call FUNC(disarmDropItems);

View File

@ -0,0 +1,29 @@
/*
* Author: PabstMirror
* Helper function to get all gear of a container
*
* Arguments:
* 0: Container <OBJECT>
*
* Return Value:
* Array of 2 arrays, classnames and count<ARRAY>
*
* Example:
* [["ace_bandage"],[2]] = [box] call ace_disarming_fnc_getAllGearContainer
*
* Public: No
*/
#include "script_component.hpp"
PARAMS_1(_target);
private ["_allGear"];
_allGear = [[],[]];
{
(_allGear select 0) append (_x select 0);
(_allGear select 1) append (_x select 1);
} forEach [(getWeaponCargo _target), (getItemCargo _target), (getMagazineCargo _target), (getBackpackCargo _target)];
_allGear

View File

@ -0,0 +1,52 @@
/*
* Author: PabstMirror
* Helper function to get all gear of a unit.
*
* Arguments:
* 0: Target <OBJECT>
*
* Return Value:
* Array of 2 arrays, classnames and count<ARRAY>
*
* Example:
* [["ace_bandage"],[2]] = [bob] call ace_disarming_fnc_getAllGearUnit
*
* Public: No
*/
#include "script_component.hpp"
PARAMS_1(_target);
_allItems = ((weapons _target) + (magazines _target) + (items _target) + (assignedItems _target));
if ((backpack _target) != "") then {
_allItems pushBack (backpack _target);
};
if ((vest _target) != "") then {
_allItems pushBack (vest _target);
};
if ((uniform _target) != "") then {
_allItems pushBack (uniform _target);
};
if ((headgear _target) != "") then {
_allItems pushBack (headgear _target);
};
//What kind of asshole takes a man's glasses?
if ((goggles _target) != "") then {
_allItems pushBack (goggles _target);
};
_uniqueClassnames = [];
_classnamesCount = [];
//Filter unique and count
{
_index = _uniqueClassnames find _x;
if (_index != -1) then {
_classnamesCount set [_index, ((_classnamesCount select _index) + 1)];
} else {
_uniqueClassnames pushBack _x;
_classnamesCount pushBack 1;
};
} forEach _allItems;
[_uniqueClassnames, _classnamesCount]

View File

@ -0,0 +1,106 @@
/*
* Author: PabstMirror
* Opens the disarm dialog (allowing a person to remove items)
*
* Arguments:
* 0: Caller (player) <OBJECT>
* 1: Target <OBJECT>
*
* Return Value:
* None
*
* Example:
* [player, bob] call ace_disarming_fnc_openDisarmDialog
*
* Public: No
*/
#include "script_component.hpp"
#define TEXTURES_RANKS [ \
"", \
"\A3\Ui_f\data\GUI\Cfg\Ranks\private_gs.paa", \
"\A3\Ui_f\data\GUI\Cfg\Ranks\corporal_gs.paa", \
"\A3\Ui_f\data\GUI\Cfg\Ranks\sergeant_gs.paa", \
"\A3\Ui_f\data\GUI\Cfg\Ranks\lieutenant_gs.paa", \
"\A3\Ui_f\data\GUI\Cfg\Ranks\captain_gs.paa", \
"\A3\Ui_f\data\GUI\Cfg\Ranks\major_gs.paa", \
"\A3\Ui_f\data\GUI\Cfg\Ranks\colonel_gs.paa" \
]
PARAMS_2(_caller,_target);
//Sanity Checks
if (_caller != ACE_player) exitwith {ERROR("Player isn't caller?");};
if (!([_player, _target] call FUNC(canPlayerDisarmUnit))) exitWith {ERROR("Can't Disarm Unit");};
if (dialog) then {ERROR("Dialog open when trying to open disarm dialog"); closeDialog 0;};
disableSerialization;
createDialog QGVAR(remoteInventory);
_display = uiNamespace getVariable ["ACE_remoteInventory", displayNull];
if (isNull _display) exitWith {ERROR("Display is Null");};
GVAR(disarmTarget) = _target;
//Setup Drop Event (on right pannel)
(_display displayCtrl 632) ctrlAddEventHandler ["LBDrop", {
if (isNull GVAR(disarmTarget)) exitWith {};
PARAMS_5(_ctrl,_xPos,_yPos,_idc,_itemInfo);
EXPLODE_3_PVT((_itemInfo select 0),_displayText,_value,_data);
if (isNull GVAR(disarmTarget)) exitWith {ERROR("disarmTarget is null");};
TRACE_2("Debug: Droping %1 from %2",_data,GVAR(disarmTarget));
["DisarmDropItems", [GVAR(disarmTarget)], [ACE_player, GVAR(disarmTarget), [_data]]] call EFUNC(common,targetEvent);
false //not sure what this does
}];
//Setup PFEH
[{
disableSerialization;
EXPLODE_2_PVT(_this,_args,_pfID);
EXPLODE_3_PVT(_args,_player,_target,_display);
if ((!([_player, _target] call FUNC(canPlayerDisarmUnit))) ||
{isNull _display} ||
{_player != ACE_player}) then {
[_pfID] call CBA_fnc_removePerFrameHandler;
GVAR(disarmTarget) = objNull;
if (!isNull _display) then {closeDialog 0;}; //close dialog if still open
} else {
_groundContainer = _display displayCtrl 632;
_targetContainer = _display displayCtrl 633;
_playerName = _display displayCtrl 111;
_rankPicture = _display displayCtrl 1203;
//Show rank and name (just like BIS's inventory)
_rankIndex = ((["PRIVATE", "CORPORAL", "SERGEANT", "LIEUTENANT", "CAPTAIN", "MAJOR", "COLONEL"] find (rank _target)) + 1);
_rankPicture ctrlSetText (TEXTURES_RANKS select _rankIndex);
_playerName ctrlSetText ([GVAR(disarmTarget)] call EFUNC(common,getName));
//Clear both inventory lists:
lbClear _groundContainer;
lbClear _targetContainer;
//Show the items in the ground disarmTarget's inventory
_targetUniqueItems = [GVAR(disarmTarget)] call FUNC(getAllGearUnit);
[_targetContainer, _targetUniqueItems] call FUNC(showItemsInListbox);
//Try to find a holder that the target is using to drop items into:
_holder = objNull;
{
if ((_x getVariable [QGVAR(disarmUnit), objNull]) == _target) exitWith {
_holder = _x;
};
} forEach ((getpos _target) nearObjects [DISARM_CONTAINER, 3]);
//If a holder exists, show it's inventory
if (!isNull _holder) then {
_holderUniqueItems = [_holder] call FUNC(getAllGearContainer);
[_groundContainer, _holderUniqueItems] call FUNC(showItemsInListbox);
};
};
}, 0, [_caller, _target, _display]] call CBA_fnc_addPerFrameHandler;

View File

@ -0,0 +1,60 @@
/*
* Author: PabstMirror
* Shows a list of inventory items in a listBox control.
*
* Arguments:
* 0: RscListBox <CONTROL>
* 1: ItemArray [["itemClassnames"],[counts]] <ARRAY>
*
* Return Value:
* Nothing
*
* Example:
* [theListBox, [["ace_bandage"],[2]]] call ace_disarming_fnc_showItemsInListbox
*
* Public: No
*/
#include "script_component.hpp"
disableSerialization;
PARAMS_2(_listBoxCtrl,_itemsCountArray);
private "_classname";
{
_displayName = "";
_picture = "";
_classname = _x;
_count = (_itemsCountArray select 1) select _forEachIndex;
if (_classname != DUMMY_ITEM) then { //Don't show the dummy potato
switch (true) do {
case (isClass (configFile >> "CfgWeapons" >> _classname)): {
_displayName = getText (configFile >> "CfgWeapons" >> _classname >> "displayName");
_picture = getText (configFile >> "CfgWeapons" >> _classname >> "picture");
};
case (isClass (configFile >> "CfgMagazines" >> _classname)): {
_displayName = getText (configFile >> "CfgMagazines" >> _classname >> "displayName");
_picture = getText (configFile >> "CfgMagazines" >> _classname >> "picture");
};
case (isClass (configFile >> "CfgVehicles" >> _classname)): {
_displayName = getText (configFile >> "CfgVehicles" >> _classname >> "displayName");
_picture = getText (configFile >> "CfgVehicles" >> _classname >> "picture");
};
case (isClass (configFile >> "CfgGlasses" >> _classname)): {
_displayName = getText (configFile >> "CfgGlasses" >> _classname >> "displayName");
_picture = getText (configFile >> "CfgGlasses" >> _classname >> "picture");
};
default {
ERROR(format ["[%1] - bad classname", _classname]);
};
};
_listBoxCtrl lbAdd format ["%1", _displayName];
_listBoxCtrl lbSetData [_forEachIndex, _classname];
_listBoxCtrl lbSetPicture [_forEachIndex, _picture];
_listBoxCtrl lbSetTextRight [_forEachIndex, str _count];
};
} forEach (_itemsCountArray select 0);

View File

@ -0,0 +1,41 @@
/*
* Author: PabstMirror
* Verifies magazines moved with exact ammo counts preserved.
* Arrays will be in format from magazinesAmmo/magazinesAmmoCargo
* e.g.: [["30Rnd_65x39_caseless_mag",15], ["30Rnd_65x39_caseless_mag",30]]
*
* Arguments:
* 0: Start on container A <ARRAY>
* 1: End on container A <ARRAY>
* 2: Start on container B <ARRAY>
* 3: End on container B <ARRAY>
*
* Return Value:
* Verified Good <BOOL>
*
* Example:
* [stuff] call ace_disarming_fnc_verifyMagazinesMoved
*
* Public: No
*/
#include "script_component.hpp"
private ["_problem", "_beginingArray"];
PARAMS_4(_startA,_endA,_startB,_endB);
//Quick Lazy Count Check
if (((count _startA) + (count _startB)) != ((count _endA) + (count _endB))) exitWith {
false
};
_beginingArray = (_startA + _startB);
_problem = false;
{
_index = _beginingArray find _x;
if (_index == -1) exitWith {_problem = true;};
_beginingArray deleteAt _index;
} forEach (_endA + _endB);
(!_problem) && {_beginingArray isEqualTo []}

View File

@ -0,0 +1 @@
#include "\z\ace\addons\disarming\script_component.hpp"

View File

@ -0,0 +1,162 @@
//The disarming dialog
//Meant to mimic the real BIS inventory (so people understand how to use it)
class RscText;
class RscPicture;
class RscActiveText;
class RscListBox;
//Use the definese from
#define X_BIS(num) (num * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2))
#define Y_BIS(num) (num * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2))
#define W_BIS(num) (num * (((safezoneW / safezoneH) min 1.2) / 40))
#define H_BIS(num) (num * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25))
#define X_MAKEITBIGGA(num) (num * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2))
#define Y_MAKEITBIGGA(num) (num * (safeZoneH / 30) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2))
#define W_MAKEITBIGGA(num) (num * (safeZoneH / 40))
#define H_MAKEITBIGGA(num) (num * (safeZoneH / 30))
#define X_PART(num) QUOTE(linearConversion [ARR_5(0, 2, (missionNamespace getVariable [ARR_2(QUOTE(QEGVAR(inventory,inventoryDisplaySize)), 0)]), X_BIS(num), X_MAKEITBIGGA(num))])
#define Y_PART(num) QUOTE(linearConversion [ARR_5(0, 2, (missionNamespace getVariable [ARR_2(QUOTE(QEGVAR(inventory,inventoryDisplaySize)), 0)]), Y_BIS(num), Y_MAKEITBIGGA(num))])
#define W_PART(num) QUOTE(linearConversion [ARR_5(0, 2, (missionNamespace getVariable [ARR_2(QUOTE(QEGVAR(inventory,inventoryDisplaySize)), 0)]), W_BIS(num), W_MAKEITBIGGA(num))])
#define H_PART(num) QUOTE(linearConversion [ARR_5(0, 2, (missionNamespace getVariable [ARR_2(QUOTE(QEGVAR(inventory,inventoryDisplaySize)), 0)]), H_BIS(num), H_MAKEITBIGGA(num))])
class GVAR(remoteInventory) {
idd = -1;
movingEnable = 0;
enableSimulation = 1;
enableDisplay = 1;
onLoad = "uiNamespace setVariable ['ACE_remoteInventory', _this select 0];";
duration = 2147483647;
fadein = 0;
fadeout = 0;
class Colors {
dragValidBgr[] = {"(profilenamespace getvariable ['IGUI_TEXT_RGB_R',0])","(profilenamespace getvariable ['IGUI_TEXT_RGB_G',1])","(profilenamespace getvariable ['IGUI_TEXT_RGB_B',1])",0.5};
dragInvalidBgr[] = {"(profilenamespace getvariable ['IGUI_ERROR_RGB_R',0.8])","(profilenamespace getvariable ['IGUI_ERROR_RGB_G',0.0])","(profilenamespace getvariable ['IGUI_ERROR_RGB_B',0.0])",0.5};
dragValidBar[] = {"(profilenamespace getvariable ['IGUI_WARNING_RGB_R',0.8])","(profilenamespace getvariable ['IGUI_WARNING_RGB_G',0.5])","(profilenamespace getvariable ['IGUI_WARNING_RGB_B',0.0])",0.5};
dragInvalidBar[] = {"(profilenamespace getvariable ['IGUI_ERROR_RGB_R',0.8])","(profilenamespace getvariable ['IGUI_ERROR_RGB_G',0.0])","(profilenamespace getvariable ['IGUI_ERROR_RGB_B',0.0])",0.5};
progressBar[] = {"(profilenamespace getvariable ['IGUI_TEXT_RGB_R',0])","(profilenamespace getvariable ['IGUI_TEXT_RGB_G',1])","(profilenamespace getvariable ['IGUI_TEXT_RGB_B',1])",1};
progressBarBgr[] = {"(profilenamespace getvariable ['IGUI_BCG_RGB_R',0])","(profilenamespace getvariable ['IGUI_BCG_RGB_G',1])","(profilenamespace getvariable ['IGUI_BCG_RGB_B',1])",0.75};
highlight[] = {"(profilenamespace getvariable ['IGUI_TEXT_RGB_R',0])","(profilenamespace getvariable ['IGUI_TEXT_RGB_G',1])","(profilenamespace getvariable ['IGUI_TEXT_RGB_B',1])",0.5};
};
class controlsBackground {};
class controls {
class CA_ContainerBackground: RscText {
idc = -1;
x = X_PART(1);
y = Y_PART(1);
w = W_PART(12);
h = H_PART(22.5);
colorBackground[] = {0.05,0.05,0.05,0.7};
};
class CA_PlayerBackground: RscText {
idc = -1;
x = X_PART(14.6);
y = Y_PART(2);
w = W_PART(24.4);
h = H_PART(21.5);
colorBackground[] = {0.05,0.05,0.05,0.7};
};
class TitleBackground: RscText {
idc = -1;
x = X_PART(14.6);
y = Y_PART(1);
w = W_PART(24.4);
h = H_PART(1);
colorBackground[] = {0.1,0.1,0.1,1};
};
class PlayersName: RscText {
idc = 111;
// text = "Player name here:";
x = X_PART(15.6);
y = Y_PART(1);
w = W_PART(19.8);
h = H_PART(1);
};
class RankBackground: RscText {
idc = -1;
x = X_PART(15.1);
y = Y_PART(1.25);
w = W_PART(0.6);
h = H_PART(0.6);
colorBackground[] = {1,1,1,0.2};
};
class RankPicture: RscPicture {
idc = 1203;
// text = "\A3\Ui_f\data\GUI\Cfg\Ranks\corporal_gs.paa";
x = X_PART(15.1);
y = Y_PART(1.25);
w = W_PART(0.6);
h = H_PART(0.6);
};
class ButtonBack: RscActiveText {
idc = -1;
style = 48;
color[] = {1,1,1,0.7};
text = "\A3\Ui_f\data\GUI\Rsc\RscDisplayArcadeMap\icon_exit_cross_ca.paa";
x = X_PART(38);
y = Y_PART(1);
w = W_PART(1);
h = H_PART(1);
colorText[] = {1,1,1,0.7};
colorActive[] = {1,1,1,1};
tooltip = "$STR_DISP_OPT_CLOSE";
onButtonClick = "closeDialog 0";
};
class ExternalContainerBackground: RscPicture {
colorText[] = {1,1,1,0.1};
idc = -1;
x = X_PART(1.5);
y = Y_PART(3.7);
w = W_PART(11);
h = H_PART(18.4);
};
class PlayerContainerBackground: ExternalContainerBackground {
idc = -1;
x = X_PART(15.1);
y = Y_PART(6);
w = W_PART(11);
h = H_PART(14);
};
class GroundTitleBackground: RscText {
idc = -1;
x = X_PART(1);
y = Y_PART(1);
w = W_PART(12);
h = H_PART(1);
colorBackground[] = {0.1,0.1,0.1,1};
};
class GroundName: RscText {
idc = -1;
text = "$STR_cfgVehicles_WeaponHolder0"; //"ground"
x = X_PART(1);
y = Y_PART(1);
w = W_PART(12);
h = H_PART(1);
};
class GroundContainer: RscListBox {
idc = 632;
sizeEx = "0.8 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
sizeEx2 = "0.8 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
rowHeight = "1.75 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
canDrag = 0;
colorText[] = {1,1,1,1};
colorBackground[] = {0,0,0,0};
itemBackground[] = {1,1,1,0.2};
itemSpacing = 0.001;
x = X_PART(1.5);
y = Y_PART(2.5);
w = W_PART(11);
h = H_PART(21);
};
class UniformContainer: GroundContainer {
idc = 633;
canDrag = 1;
x = X_PART(15.1);
};
};
};

View File

@ -0,0 +1,16 @@
#define COMPONENT disarming
#include "\z\ace\addons\main\script_mod.hpp"
#ifdef DEBUG_ENABLED_DISARMING
#define DEBUG_MODE_FULL
#endif
#ifdef DEBUG_SETTINGS_DISARMING
#define DEBUG_SETTINGS DEBUG_SETTINGS_DISARMING
#endif
#include "\z\ace\addons\main\script_macros.hpp"
#define DISARM_CONTAINER "GroundWeaponHolder"
#define DUMMY_ITEM "ACE_DebugPotato"
#define UNIQUE_MAGAZINES ["ACE_key_customKeyMagazine"]

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2015-03-17 -->
<Project name="ACE">
<Package name="Disarming">
<Key ID="STR_ACE_Disarming_OpenInventory">
<English>Open Inventory</English>
</Key>
</Package>
</Project>

View File

@ -24,7 +24,7 @@
</Key>
<Key ID="STR_ACE_Disposable_PreloadedMissileDummy">
<English>Preloaded Missile Dummy</English>
<German>Preloaded Missile Dummy</German>
<German>Vorgeladene Racketennachbildung</German>
<French>Preloaded Missile Dummy</French>
<Czech>Preloaded Missile Dummy</Czech>
<Polish>Preloaded Missile Dummy</Polish>
@ -33,4 +33,4 @@
<Russian>Заряженная ракетная пустышка</Russian>
</Key>
</Package>
</Project>
</Project>

View File

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2014-12-21 -->
<?xml version="1.0" encoding="utf-8"?>
<Project name="ACE">
<Package name="Dragging">
<Key ID="STR_ACE_Dragging_Drag">
@ -28,7 +27,7 @@
</Key>
<Key ID="STR_ACE_Dragging_UnableToDrag">
<English>Item to heavy</English>
<German>Gegenstand zu schwer</German>
<German>Gegenstand ist zu schwer</German>
<Spanish>Articulo demasiado pesado</Spanish>
<!-- <English>Unable to drag item due to weight</English>
<Russian>Слишком тяжелый предмет</Russian>
@ -40,6 +39,7 @@
<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>
</Key>
<Key ID="STR_ACE_Dragging_Carry">
<English>Carry</English>

View File

@ -1,10 +1,10 @@
class CfgACE_Triggers {
class ACE_Triggers {
/* onPlace parameters:
0: OBJECT - unit placing
1: OBJECT - Placed explosive
2: STRING - Magazine classname
3: ARRAY - vars
Last Index: CfgACE_Triggers config of trigger type.
Last Index: ACE_Triggers config of trigger type.
onSetup parameters:
0: STRING - Magazine Classname
*/

View File

@ -18,7 +18,8 @@ class CfgPatches {
#include "CfgMagazines.hpp"
#include "CfgWeapons.hpp"
#include "CfgVehicles.hpp"
#include "CfgACE_Triggers.hpp"
#include "ACE_Triggers.hpp"
#include "ExplosivesUI.hpp"
class CfgActions {

View File

@ -12,7 +12,7 @@
* None
*
* Example:
* [player, _explosive, "SatchelCharge_Remote_Mag", [ConfigFile >> "CfgACE_Triggers" >> "Command"]] call ACE_Explosives_fnc_addClacker;
* [player, _explosive, "SatchelCharge_Remote_Mag", [ConfigFile >> "ACE_Triggers" >> "Command"]] call ACE_Explosives_fnc_addClacker;
*
* Public: Yes
*/

View File

@ -24,7 +24,7 @@ _result = [_unit] call FUNC(getPlacedExplosives);
_children = [];
{
if (!isNull(_x select 0)) then {
_required = getArray (ConfigFile >> "CfgACE_Triggers" >> (_x select 4) >> "requires");
_required = getArray (ConfigFile >> "ACE_Triggers" >> (_x select 4) >> "requires");
if (_detonator in _required) then {
_item = ConfigFile >> "CfgMagazines" >> (_x select 3);

View File

@ -20,7 +20,7 @@ private ["_unit", "_clackerList", "_adjustedList", "_list", "_filter"];
_unit = _this select 0;
_filter = nil;
if (count _this > 1) then {
_filter = ConfigFile >> "CfgACE_Triggers" >> (_this select 1);
_filter = ConfigFile >> "ACE_Triggers" >> (_this select 1);
};
_clackerList = [];
_adjustedList = false;
@ -31,7 +31,7 @@ _list = [];
_clackerList set [_foreachIndex, "X"];
_adjustedList = true;
} else {
if (isNil "_filter" || {(ConfigFile >> "CfgACE_Triggers" >> (_x select 4)) == _filter}) then {
if (isNil "_filter" || {(ConfigFile >> "ACE_Triggers" >> (_x select 4)) == _filter}) then {
_list pushBack _x;
};
};

View File

@ -33,7 +33,7 @@ if (isNil "_triggerConfig") exitWith {
};
_magazineTrigger = ConfigFile >> "CfgMagazines" >> _magazineClass >> "ACE_Triggers" >> _triggerConfig;
_triggerConfig = ConfigFile >> "CfgACE_Triggers" >> _triggerConfig;
_triggerConfig = ConfigFile >> "ACE_Triggers" >> _triggerConfig;
if (isNil "_triggerConfig") exitWith {
diag_log format ["ACE_Explosives: Error config not found in PlaceExplosive: %1", _this];

View File

@ -19,7 +19,7 @@
private ["_config"];
EXPLODE_3_PVT(_this,_explosive,_magazine,_trigger);
_config = ConfigFile >> "CfgACE_Triggers" >> _trigger;
_config = ConfigFile >> "ACE_Triggers" >> _trigger;
// If the onSetup function returns true, it is handled elsewhere
if (isText(_config >> "onSetup") && {[_explosive,_magazine] call compile getText (_config >> "onSetup")}) exitWith {};

View File

@ -6,7 +6,7 @@
* 0: Explosive magazine <STRING>
*
* Return Value:
* Supported triggers as CfgACE_Triggers config entries <ARRAY>
* Supported triggers as ACE_Triggers config entries <ARRAY>
*
* Example:
* _supports = ["SatchelCharge_Remote_Mag"] call ACE_Explosives_fnc_TriggerType
@ -20,6 +20,6 @@ _config = getArray (ConfigFile >> "CfgMagazines" >> (_this select 0) >> "ACE_Tri
_count = count _config;
for "_index" from 0 to (_count - 1) do {
_result set [_index, ConfigFile >> "CfgACE_Triggers" >> (_config select _index)];
_result set [_index, ConfigFile >> "ACE_Triggers" >> (_config select _index)];
};
_result

View File

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2015-04-07 -->
<Project name="ACE">
<Package name="Explosives">
<Key ID="STR_ACE_Explosives_Menu">
@ -48,7 +47,7 @@
<Italian>Codice dell'esplosivo : %1</Italian>
<Hungarian>Robbanóanyag kódja: %1</Hungarian>
<Portuguese>Código do explosivo: %1</Portuguese>
<Russian>Взрывная код: %1</Russian>
<Russian>Код подрыва: %1</Russian>
</Key>
<Key ID="STR_ACE_Explosives_PlaceAction">
<English>Place</English>
@ -60,7 +59,7 @@
<Italian>Piazza</Italian>
<Hungarian>Elhelyezés</Hungarian>
<Portuguese>Colocar</Portuguese>
<Russian>Положить</Russian>
<Russian>Установить</Russian>
</Key>
<Key ID="STR_ACE_Explosives_CancelAction">
<English>Cancel</English>
@ -132,7 +131,7 @@
<Italian>Usato per l'attivazione a distanza degli esplosivi</Italian>
<Hungarian>Robbanóanyagok távoli robbantásához</Hungarian>
<Portuguese>Usado para acionar explosivos remotamente</Portuguese>
<Russian>Используется для удаленного запуска взрывчатку</Russian>
<Russian>Используется для удаленной детонации СВУ</Russian>
</Key>
<Key ID="STR_ACE_Explosives_clacker_displayName">
<English>M57 Firing Device</English>
@ -156,7 +155,7 @@
<Italian>Usato per l'attivazione a distanza degli esplosivi</Italian>
<Hungarian>Robbanóanyagok távoli robbantásához</Hungarian>
<Portuguese>Usado para acionar explosivos remotamente</Portuguese>
<Russian>Используется для удаленного запуска взрывчатку</Russian>
<Russian>Используется для удаленной детонации зарядов</Russian>
</Key>
<Key ID="STR_ACE_Explosives_M26_displayName">
<English>M26 Firing Device</English>
@ -192,7 +191,7 @@
<Italian>Kit E.O.D.</Italian>
<Hungarian>Hatástalanító felszerelés</Hungarian>
<Portuguese>Kit de desarme</Portuguese>
<Russian>Разминирование комплект</Russian>
<Russian>Комплект разминирования</Russian>
</Key>
<Key ID="STR_ACE_Explosives_DefusalKit_description">
<English>Allows defusing of explosives</English>
@ -204,7 +203,7 @@
<Italian>Consente la disattivazione degli ordigni esplosivi</Italian>
<Hungarian>Robbanóanyagok hatástalanításához</Hungarian>
<Portuguese>Permite o desarme de explosivos</Portuguese>
<Russian>Allows defusing of explosives</Russian>
<Russian>Позволяет обезвреживать ВУ</Russian>
</Key>
<Key ID="STR_ACE_Explosives_Phone_AddToSpeedDial">
<English>Add to Speed Dial</English>
@ -228,7 +227,7 @@
<Italian>Libera</Italian>
<Hungarian>Törlés</Hungarian>
<Portuguese>Limpar</Portuguese>
<Russian>Pассеиваться</Russian>
<Russian>Очистить</Russian>
</Key>
<Key ID="STR_ACE_Explosives_Phone_Dial">
<English>Dial</English>
@ -252,7 +251,7 @@
<Italian>Sopra</Italian>
<Hungarian>Fel</Hungarian>
<Portuguese>Cima</Portuguese>
<Russian>Поднять</Russian>
<Russian>Вызов</Russian>
</Key>
<Key ID="STR_ACE_Explosives_Phone_Down">
<English>Down</English>
@ -264,7 +263,7 @@
<Italian>Sotto</Italian>
<Hungarian>Le</Hungarian>
<Portuguese>Baixo</Portuguese>
<Russian>Опустить</Russian>
<Russian>Сброс</Russian>
</Key>
<Key ID="STR_ACE_Explosives_Cancel">
<English>Cancel</English>
@ -288,7 +287,7 @@
<Italian>Menù di detonazione</Italian>
<Hungarian>Robbantás menü</Hungarian>
<Portuguese>Menu de detonação</Portuguese>
<Russian>Меню Подрыв</Russian>
<Russian>Меню подрыва</Russian>
</Key>
<Key ID="STR_ACE_Explosives_PlaceMenu">
<English>Place Menu</English>
@ -300,7 +299,7 @@
<Italian>Menù di collocamento</Italian>
<Hungarian>Lerakás menü</Hungarian>
<Portuguese>Menu de posicionamento</Portuguese>
<Russian>Меню Установить</Russian>
<Russian>Меню детонации</Russian>
</Key>
<Key ID="STR_ACE_Explosives_Defuse">
<English>Defuse</English>
@ -336,7 +335,7 @@
<Italian>Cronometro</Italian>
<Hungarian>Időzített</Hungarian>
<Portuguese>Timer</Portuguese>
<Russian>Временной</Russian>
<Russian>Таймер</Russian>
</Key>
<Key ID="STR_ACE_Explosives_TimerMenu">
<English>Time: %1m %2s</English>
@ -348,7 +347,7 @@
<Italian>Tempo : %1m %2s</Italian>
<Hungarian>Idő: %1m %2s</Hungarian>
<Portuguese>Tempo: %1m %2s</Portuguese>
<Russian>Tемп: %1m %2c</Russian>
<Russian>Время: %1m %2c</Russian>
</Key>
<Key ID="STR_ACE_Explosives_SetTime">
<English>Set Time</English>
@ -360,7 +359,7 @@
<Italian>Modifica il conto alla rovescia</Italian>
<Hungarian>Idő állítása</Hungarian>
<Portuguese>Configurar Tempo</Portuguese>
<Russian>Xронометр</Russian>
<Russian>Установить время</Russian>
</Key>
<Key ID="STR_ACE_Explosives_TriggerMenu">
<English>Select a Trigger</English>
@ -372,7 +371,7 @@
<Italian>Seleziona un Attivatore</Italian>
<Hungarian>Detonátor kiválasztása</Hungarian>
<Portuguese>Selecionar um Gatilho</Portuguese>
<Russian>Выберите</Russian>
<Russian>Выберите детонатор</Russian>
</Key>
<Key ID="STR_ACE_Explosives_SelectTrigger">
<English>Select</English>
@ -384,7 +383,7 @@
<Italian>Seleziona</Italian>
<Hungarian>Kiválasztás</Hungarian>
<Portuguese>Selecionar</Portuguese>
<Russian>Выбрать защелка</Russian>
<Russian>Выбрать</Russian>
</Key>
<Key ID="STR_ACE_Explosives_PressurePlate">
<English>Pressure Plate</English>
@ -408,7 +407,7 @@
<Italian>Filo a Inciampo</Italian>
<Hungarian>Botlódrót</Hungarian>
<Portuguese>Linha de tração</Portuguese>
<Russian>Натяжной</Russian>
<Russian>Растяжка</Russian>
</Key>
<Key ID="STR_ACE_Explosives_IRSensor">
<English>IR Sensor</English>
@ -420,7 +419,7 @@
<Italian>Sensore IR</Italian>
<Hungarian>IR szenzor</Hungarian>
<Portuguese>Sensor IV</Portuguese>
<Russian>ИК</Russian>
<Russian>ИК сенсор</Russian>
</Key>
<Key ID="STR_ACE_Explosives_NoTriggersAvailable">
<English>No triggers available for %1</English>
@ -432,7 +431,7 @@
<Italian>Nessun attivatore disponibile per %1</Italian>
<Hungarian>Nincs detonátor a %1</Hungarian>
<Portuguese>Nenhum gatilho disponível para %1</Portuguese>
<Russian>Нет защелка доступны для %1</Russian>
<Russian>Нет доступных взрывателей для %1</Russian>
</Key>
<Key ID="STR_ACE_Explosives_SLAME_IRSensor">
<English>IR Sensor (Side Attack)</English>
@ -444,7 +443,7 @@
<Italian>Sensore IR (Attacco laterale)</Italian>
<Hungarian>IR Sensor (Side Attack)</Hungarian>
<Portuguese>Sensor infravermelho (ataque lateral)</Portuguese>
<Russian>ИК (боковая атака)</Russian>
<Russian>ИК (детонация вбок)</Russian>
</Key>
<Key ID="STR_ACE_Explosives_SLAME_Magnetic">
<English>Magnetic Influence Sensor (Bottom Attack)</English>
@ -456,7 +455,7 @@
<Italian>Sensore Magnetico di Prossimità (Attacco inferiore)</Italian>
<Hungarian>Mágneses (Bottom Attack)</Hungarian>
<Portuguese>Influência magnética (ataque inferior)</Portuguese>
<Russian>Магнитный (дно атака)</Russian>
<Russian>Магнитный (детонация вверх)</Russian>
</Key>
<Key ID="STR_ACE_Explosives_NoExplosivesAvailable">
<English>No explosives on trigger.</English>
@ -468,7 +467,7 @@
<Hungarian>Nincs robbanóanyag a detonátorhoz.</Hungarian>
<Polish>Brak ładunków na zapalnik.</Polish>
<Portuguese>Nenhum explosivo no gatilho.</Portuguese>
<Russian>Нет взрывчатки на курок.</Russian>
<Russian>Нет доступных ВУ для взрывателя.</Russian>
</Key>
<Key ID="STR_ACE_Explosives_DeadManSwitch_displayName">
<English>Dead Man's Switch</English>
@ -478,7 +477,7 @@
<Polish>Czuwak</Polish>
<Spanish>Detonador de hombre muerto</Spanish>
<Hungarian>Dead Man's Switch</Hungarian>
<Russian>Кнопка мертвеца</Russian>
<Russian>Ловушка мертвеца</Russian>
</Key>
<Key ID="STR_ACE_Explosives_DeadManSwitch_description">
<English>Used to remotely trigger explosives when released.</English>
@ -492,7 +491,7 @@
</Key>
<Key ID="STR_ACE_Explosives_Pickup">
<English>Pick up</English>
<German>Aufnehmen</German>
<German>Aufheben</German>
<Spanish>Recoger</Spanish>
</Key>
</Package>

View File

@ -1,81 +1,81 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2014-12-19 -->
<!-- Edited with tabler - 2015-04-10 -->
<Project name="ACE">
<Package name="FCS">
<Key ID="STR_ACE_FCS_LaseTarget">
<English>Lase Target / Measure Distance</English>
<German>Ziel anlasern / Entfernung Messen</German>
<French>Télémétrer la cible</French>
<Polish>Naświetl cel / Zmierz odległość</Polish>
<Czech>Označit cíl / Změřit vzdálenost</Czech>
<Spanish>Iluminar objetivo / Medir distancia</Spanish>
<!-- Outdated
<Package name="FCS">
<Key ID="STR_ACE_FCS_LaseTarget">
<English>Lase Target / Measure Distance</English>
<German>Ziel anlasern / Entfernung Messen</German>
<French>Télémétrer la cible</French>
<Polish>Naświetl cel / Zmierz odległość</Polish>
<Czech>Označit cíl / Změřit vzdálenost</Czech>
<Spanish>Iluminar objetivo / Medir distancia</Spanish>
<!-- Outdated
<Russian>Установить зероинг</Russian>
<Hungarian>Lézeres célmegjelölés</Hungarian>
<Portuguese>Marcar Alvo</Portuguese>
<Italian>Designatore Laser</Italian>
-->
<Russian>Подсветить цель / Измерить расстояние</Russian>
</Key>
<Key ID="STR_ACE_FCS_ZeroedTo">
<English>Zeroed To</English>
<German>Haltepunkt</German>
<Spanish>Fijado a</Spanish>
<Polish>Wyzerowany na</Polish>
<Czech>Nastaveno na</Czech>
<French>Zéroté à</French>
<Russian>Зероинг</Russian>
<Hungarian>Nullázás</Hungarian>
<Portuguese>Fixado em</Portuguese>
<Italian>Azzeramento a</Italian>
</Key>
<Key ID="STR_ACE_FCS_AdjustRangeUp">
<English>Adjust FCS Range (Up)</English>
<German>Entfernung des FLS erhöhen</German>
<Polish>Zwiększ zasięg FCS</Polish>
<Spanish>Ajustar distancia del FCS (arriba)</Spanish>
<Czech>Nastavit FCS Náměr (nahoru)</Czech>
<French>Augmenter la distance du SCT</French>
<Hungarian>FCS tartomány állítása (Fel)</Hungarian>
<Portuguese>Ajustar distância do FCS (Acima)</Portuguese>
<Italian>Aumentare la distanza dell'FCS</Italian>
<Russian>Диапазон СУО (Выше)</Russian>
</Key>
<Key ID="STR_ACE_FCS_AdjustRangeDown">
<English>Adjust FCS Range (Down)</English>
<German>Entfernung des FLS verringern</German>
<Polish>Zmniejsz zasięg FCS</Polish>
<Spanish>Ajustar distancia del FCS (abajo)</Spanish>
<Czech>Nastavit FCS Náměr (dolů)</Czech>
<French>Réduire la distance du SCT</French>
<Hungarian>FCS tartomány állítása (Le)</Hungarian>
<Portuguese>Ajustar distância do FCS (Abaixo)</Portuguese>
<Italian>Ridurre la distanza dell'FCS</Italian>
<Russian>Диапазон СУО (Ниже)</Russian>
</Key>
<Key ID="STR_ACE_FCS_ResetFCS">
<English>Reset FCS</English>
<German>FLS zurücksetzen</German>
<Spanish>Reiniciar FCS</Spanish>
<French>Réinitialiser le SCT</French>
<Polish>Resetuj FCS</Polish>
<Czech>Resetovat FCS</Czech>
<Hungarian>FCS visszaállítása</Hungarian>
<Portuguese>Reiniciar FCS</Portuguese>
<Italian>Azzeramento dell'FCS</Italian>
<Russian>Обнулить СУО</Russian>
</Key>
<Key ID="STR_ACE_FCS_HasBeenReset">
<English>FCS has been reset.</English>
<German>FLS wurde zurückgesetzt.</German>
<Spanish>FCS reiniciado</Spanish>
<French>SCT réinitialisé.</French>
<Polish>FCS został zresetowany.</Polish>
<Czech>FCS byl resetován.</Czech>
<Hungarian>Az FCS visszaállítva</Hungarian>
<Portuguese>FCS reiniciado.</Portuguese>
<Italian>L'FCS è stato azzerato</Italian>
<Russian>СУО обнулен</Russian>
</Key>
</Package>
</Project>
<Russian>Подсветить цель / Замерить расстояние</Russian>
</Key>
<Key ID="STR_ACE_FCS_ZeroedTo">
<English>Zeroed To</English>
<German>Haltepunkt</German>
<Spanish>Fijado a</Spanish>
<Polish>Wyzerowany na</Polish>
<Czech>Nastaveno na</Czech>
<French>Zéroté à</French>
<Russian>Выставлено на</Russian>
<Hungarian>Nullázás</Hungarian>
<Portuguese>Fixado em</Portuguese>
<Italian>Azzeramento a</Italian>
</Key>
<Key ID="STR_ACE_FCS_AdjustRangeUp">
<English>Adjust FCS Range (Up)</English>
<German>Entfernung des FLS erhöhen</German>
<Polish>Zwiększ zasięg FCS</Polish>
<Spanish>Ajustar distancia del FCS (arriba)</Spanish>
<Czech>Nastavit FCS Náměr (nahoru)</Czech>
<French>Augmenter la distance du SCT</French>
<Hungarian>FCS tartomány állítása (Fel)</Hungarian>
<Portuguese>Ajustar distância do FCS (Acima)</Portuguese>
<Italian>Aumentare la distanza dell'FCS</Italian>
<Russian>Диапазон СУО (Выше)</Russian>
</Key>
<Key ID="STR_ACE_FCS_AdjustRangeDown">
<English>Adjust FCS Range (Down)</English>
<German>Entfernung des FLS verringern</German>
<Polish>Zmniejsz zasięg FCS</Polish>
<Spanish>Ajustar distancia del FCS (abajo)</Spanish>
<Czech>Nastavit FCS Náměr (dolů)</Czech>
<French>Réduire la distance du SCT</French>
<Hungarian>FCS tartomány állítása (Le)</Hungarian>
<Portuguese>Ajustar distância do FCS (Abaixo)</Portuguese>
<Italian>Ridurre la distanza dell'FCS</Italian>
<Russian>Диапазон СУО (Ниже)</Russian>
</Key>
<Key ID="STR_ACE_FCS_ResetFCS">
<English>Reset FCS</English>
<German>FLS zurücksetzen</German>
<Spanish>Reiniciar FCS</Spanish>
<French>Réinitialiser le SCT</French>
<Polish>Resetuj FCS</Polish>
<Czech>Resetovat FCS</Czech>
<Hungarian>FCS visszaállítása</Hungarian>
<Portuguese>Reiniciar FCS</Portuguese>
<Italian>Azzeramento dell'FCS</Italian>
<Russian>Обнулить СУО</Russian>
</Key>
<Key ID="STR_ACE_FCS_HasBeenReset">
<English>FCS has been reset.</English>
<German>FLS wurde zurückgesetzt.</German>
<Spanish>FCS reiniciado</Spanish>
<French>SCT réinitialisé.</French>
<Polish>FCS został zresetowany.</Polish>
<Czech>FCS byl resetován.</Czech>
<Hungarian>Az FCS visszaállítva</Hungarian>
<Portuguese>FCS reiniciado.</Portuguese>
<Italian>L'FCS è stato azzerato</Italian>
<Russian>СУО обнулен.</Russian>
</Key>
</Package>
</Project>

View File

@ -7,6 +7,8 @@ class CfgVehicles {
MACRO_ADDITEM(ACE_muzzle_mzls_B,5);
MACRO_ADDITEM(ACE_muzzle_mzls_smg_01,5);
MACRO_ADDITEM(ACE_muzzle_mzls_smg_02,5);
MACRO_ADDITEM(ACE_muzzle_mzls_338,5);
MACRO_ADDITEM(ACE_muzzle_mzls_93mmg,5);
};
};
@ -17,6 +19,8 @@ class CfgVehicles {
MACRO_ADDITEM(ACE_muzzle_mzls_B,5);
MACRO_ADDITEM(ACE_muzzle_mzls_smg_01,5);
MACRO_ADDITEM(ACE_muzzle_mzls_smg_02,5);
MACRO_ADDITEM(ACE_muzzle_mzls_338,5);
MACRO_ADDITEM(ACE_muzzle_mzls_93mmg,5);
};
};
@ -28,6 +32,8 @@ class CfgVehicles {
MACRO_ADDITEM(ACE_muzzle_mzls_L,5);
MACRO_ADDITEM(ACE_muzzle_mzls_smg_01,5);
MACRO_ADDITEM(ACE_muzzle_mzls_smg_02,5);
MACRO_ADDITEM(ACE_muzzle_mzls_338,5);
MACRO_ADDITEM(ACE_muzzle_mzls_93mmg,5);
};
};
@ -38,6 +44,8 @@ class CfgVehicles {
MACRO_ADDITEM(ACE_muzzle_mzls_L,2);
MACRO_ADDITEM(ACE_muzzle_mzls_smg_01,2);
MACRO_ADDITEM(ACE_muzzle_mzls_smg_02,2);
MACRO_ADDITEM(ACE_muzzle_mzls_338,5);
MACRO_ADDITEM(ACE_muzzle_mzls_93mmg,5);
};
};
};

View File

@ -1,5 +1,231 @@
class MuzzleSlot;
class CfgWeapons {
/* MX */
class Rifle;
class Rifle_Base_F: Rifle {
class WeaponSlotsInfo;
};
class arifle_MX_Base_F: Rifle_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
compatibleItems[] += {"ACE_muzzle_mzls_H"};
};
};
};
class arifle_MX_SW_F: arifle_MX_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
// Shit is broken again
//compatibleItems[] += {"ACE_muzzle_mzls_H"};
compatibleItems[] = {"muzzle_snds_H","muzzle_snds_H_SW","ACE_muzzle_mzls_H"};
};
};
};
/* Katiba */
class arifle_katiba_Base_F: Rifle_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
compatibleItems[] += {"ACE_muzzle_mzls_H"};
};
};
};
/* Other */
class Rifle_Long_Base_F: Rifle_Base_F {
class WeaponSlotsInfo;
};
class EBR_base_F: Rifle_Long_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
compatibleItems[] += {"ACE_muzzle_mzls_B"};
};
};
};
class DMR_01_base_F: Rifle_Long_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
compatibleItems[] += {"ACE_muzzle_mzls_B"};
};
};
};
class DMR_02_base_F: Rifle_Long_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
compatibleItems[] += {"ACE_muzzle_mzls_338"};
};
};
};
class DMR_03_base_F: Rifle_Long_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
compatibleItems[] += {"ACE_muzzle_mzls_B"};
};
};
};
class DMR_05_base_F: Rifle_Long_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
compatibleItems[] += {"ACE_muzzle_mzls_93mmg"};
};
};
};
class DMR_06_base_F: Rifle_Long_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
compatibleItems[] += {"ACE_muzzle_mzls_B"};
};
};
};
class MMG_01_base_F: Rifle_Long_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
compatibleItems[] += {"ACE_muzzle_mzls_93mmg"};
};
};
};
class MMG_02_base_F: Rifle_Long_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
compatibleItems[] += {"ACE_muzzle_mzls_338"};
};
};
};
class LMG_Mk200_F: Rifle_Long_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
compatibleItems[] += {"ACE_muzzle_mzls_H"};
};
};
};
class LMG_Zafir_F: Rifle_Long_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
compatibleItems[] += {"ACE_muzzle_mzls_B"};
};
};
};
/* Assault Rifles */
class Tavor_base_F: Rifle_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
compatibleItems[] += {"ACE_muzzle_mzls_L"};
};
};
};
class mk20_base_F: Rifle_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
compatibleItems[] += {"ACE_muzzle_mzls_L"};
};
};
};
/* SMGs */
class pdw2000_base_F: Rifle_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
compatibleItems[] += {"ACE_muzzle_mzls_smg_02"};
};
};
};
class SMG_01_Base: Rifle_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
compatibleItems[] += {"ACE_muzzle_mzls_smg_01"};
};
};
};
class SMG_02_base_F: Rifle_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
compatibleItems[] += {"ACE_muzzle_mzls_smg_02"};
};
};
};
/* Pistols */
class Pistol;
class Pistol_Base_F: Pistol {
class WeaponSlotsInfo;
};
class hgun_P07_F: Pistol_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
linkProxy = "\A3\data_f\proxies\weapon_slots\MUZZLE";
compatibleItems[] += {"ACE_muzzle_mzls_smg_02"};
};
};
};
class hgun_Rook40_F: Pistol_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
linkProxy = "\A3\data_f\proxies\weapon_slots\MUZZLE";
compatibleItems[] += {"ACE_muzzle_mzls_smg_02"};
};
};
};
class hgun_ACPC2_F: Pistol_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
compatibleItems[] += {"ACE_muzzle_mzls_smg_01"};
};
};
};
class hgun_Pistol_heavy_01_F: Pistol_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
compatibleItems[] += {"ACE_muzzle_mzls_smg_01"};
};
};
};
/*class hgun_Pistol_heavy_02_F: Pistol_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot {
linkProxy = "\A3\data_f\proxies\weapon_slots\MUZZLE";
compatibleItems[] += {"ACE_muzzle_mzls_smg_01"};
};
};
};*/
/* Flashsuppressors */
class ItemCore;
class InventoryMuzzleItem_Base_F;
@ -239,4 +465,96 @@ class CfgWeapons {
inertia = 0.1;
};
class ACE_muzzle_mzls_338: ACE_muzzle_mzls_H {
author = "$STR_ACE_Common_ACETeam";
_generalMacro = "ACE_muzzle_mzls_338";
displayName = "$STR_ACE_muzzle_mzls_338";
picture = "\A3\weapons_F\Data\UI\gear_acca_mzls_h_ca.paa";
model = "\A3\weapons_f\acc\acca_mzls_H_F";
class ItemInfo: ItemInfo {
mass = 8;
soundTypeIndex = 0;
muzzleEnd = "zaslehPoint";
alternativeFire = "Zasleh2";
class MagazineCoef {
initSpeed = 1.0;
};
class AmmoCoef {
hit = 1.0;
visibleFire = 0.5;
audibleFire = 1.0;
visibleFireTime = 0.5;
audibleFireTime = 1.0;
cost = 1.0;
typicalSpeed = 1.0;
airFriction = 1.0;
};
class MuzzleCoef {
dispersionCoef = "0.9f";
artilleryDispersionCoef = "1.0f";
fireLightCoef = "0.5f";
recoilCoef = "1.0f";
recoilProneCoef = "1.0f";
minRangeCoef = "1.0f";
minRangeProbabCoef = "1.0f";
midRangeCoef = "1.0f";
midRangeProbabCoef = "1.0f";
maxRangeCoef = "1.0f";
maxRangeProbabCoef = "1.0f";
};
};
inertia = 0.2;
};
class ACE_muzzle_mzls_93mmg: ACE_muzzle_mzls_H {
author = "$STR_ACE_Common_ACETeam";
_generalMacro = "ACE_muzzle_mzls_93mmg";
displayName = "$STR_ACE_muzzle_mzls_93mmg";
picture = "\A3\weapons_F\Data\UI\gear_acca_mzls_h_ca.paa";
model = "\A3\weapons_f\acc\acca_mzls_H_F";
class ItemInfo: ItemInfo {
mass = 8;
soundTypeIndex = 0;
muzzleEnd = "zaslehPoint";
alternativeFire = "Zasleh2";
class MagazineCoef {
initSpeed = 1.0;
};
class AmmoCoef {
hit = 1.0;
visibleFire = 0.5;
audibleFire = 1.0;
visibleFireTime = 0.5;
audibleFireTime = 1.0;
cost = 1.0;
typicalSpeed = 1.0;
airFriction = 1.0;
};
class MuzzleCoef {
dispersionCoef = "0.9f";
artilleryDispersionCoef = "1.0f";
fireLightCoef = "0.5f";
recoilCoef = "1.0f";
recoilProneCoef = "1.0f";
minRangeCoef = "1.0f";
minRangeProbabCoef = "1.0f";
midRangeCoef = "1.0f";
midRangeProbabCoef = "1.0f";
maxRangeCoef = "1.0f";
maxRangeProbabCoef = "1.0f";
};
};
inertia = 0.2;
};
};

View File

@ -3,7 +3,15 @@
class CfgPatches {
class ADDON {
units[] = {};
weapons[] = {"ACE_muzzle_mzls_H","ACE_muzzle_mzls_B","ACE_muzzle_mzls_L","ACE_muzzle_mzls_smg_01","ACE_muzzle_mzls_smg_02"};
weapons[] = {
"ACE_muzzle_mzls_H",
"ACE_muzzle_mzls_B",
"ACE_muzzle_mzls_L",
"ACE_muzzle_mzls_smg_01",
"ACE_muzzle_mzls_smg_02",
"ACE_muzzle_mzls_338",
"ACE_muzzle_mzls_93mmg"
};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_common"};
author[] = {"commy2"};

View File

@ -4,3 +4,5 @@ ACE_muzzle_mzls_B
ACE_muzzle_mzls_L
ACE_muzzle_mzls_smg_01
ACE_muzzle_mzls_smg_02
ACE_muzzle_mzls_338
ACE_muzzle_mzls_93mmg

View File

@ -62,5 +62,29 @@
<Russian>Пламегаситель (9 мм)</Russian>
<Spanish>Supresor (9 mm)</Spanish>
</Key>
<Key ID="STR_ACE_muzzle_mzls_338">
<English>Flash Suppressor (.338)</English>
<Hungarian>Lángrejtő (.338)</Hungarian>
<German>Mündungsfeuerdämpfer (.338)</German>
<Italian>Soppressore di fiamma (.338)</Italian>
<Portuguese>Supressor de Clarão (.338)</Portuguese>
<Polish>Tłumik płomieni (.338)</Polish>
<Czech>Tlumič záblesku (.338)</Czech>
<French>Cache-flamme (.338)</French>
<Russian>Пламегаситель (.338)</Russian>
<Spanish>Supresor (.338)</Spanish>
</Key>
<Key ID="STR_ACE_muzzle_mzls_93mmg">
<English>Flash Suppressor (9.3 mm)</English>
<Hungarian>Lángrejtő (9,3 mm)</Hungarian>
<German>Mündungsfeuerdämpfer (9,3 mm)</German>
<Italian>Soppressore di fiamma (9.3mm)</Italian>
<Portuguese>Supressor de Clarão (9,3mm)</Portuguese>
<Polish>Tłumik płomieni (9,3 mm)</Polish>
<Czech>Tlumič záblesku (9,3 mm)</Czech>
<French>Cache-flamme (9,3 mm)</French>
<Russian>Пламегаситель (9,3 мм)</Russian>
<Spanish>Supresor (9,3 mm)</Spanish>
</Key>
</Package>
</Project>

View File

@ -1,16 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2015-04-07 -->
<Project name="Arma2">
<Package name="ACE2">
<Container name="frag">
<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>
<German>Weapons: Keine Schrapnelle</German>
<Spanish>Desactivar fragmentación</Spanish>
<Polish>Wyłącz głowice fragmentacyjne</Polish>
<Russian>Выключить разлёт осколков</Russian>
</Key>
</Container>
</Package>
</Project>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2014-12-19 -->
<!-- Edited with tabler - 2015-04-10 -->
<Project name="ACE">
<Package name="Goggles">
<Key ID="STR_ACE_Goggles_ShowInThirdPerson">
@ -8,7 +8,7 @@
<Spanish>Mostrar efectos de las gafas en tercera persona</Spanish>
<Czech>Zobrazit účinky brýlí v třetí osobě</Czech>
<French>Effets de lunettes à la 3ème personne</French>
<Russian>Отображать эффект очков в третьем лице</Russian>
<Russian>Отображать эффект очков от третьего лица</Russian>
<Hungarian>Szemüveg effekt mutatása külső nézetből</Hungarian>
<Polish>Włącz efekty gogli w trzeciej osobie</Polish>
<Portuguese>Mostrar efeitos de óculos em Terceira Pessoa</Portuguese>
@ -27,4 +27,4 @@
<Italian>Pulisci gli occhiali</Italian>
</Key>
</Package>
</Project>
</Project>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2014-09-11 -->
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2015-04-10 -->
<Project name="ACE">
<Package name="Grenades">
<Key ID="STR_ACE_Grenades_SwitchGrenadeMode">
@ -93,7 +93,7 @@
<French>Les grenades incapacitantes servent à désorienter ou distraire une menace pendant quelques secondes.</French>
<Polish>Granat ogłusza, nie zabijając przeciwnika. Detonacja daje efekt oślepiającego błysku i głośnego huku.</Polish>
<Czech>Omračující granát je taktická nesmrtící zbraň používaná při záchraně rukojmí a zvládání davu.</Czech>
<Russian>Граната XM84 (M84) - не летального действия, и предназначена для отвлечения и временного вывода из строя, либо дезориентации противника. Основное использование нашла при освобождении заложников, захвате преступников и террористов, а также проведении диверсионных миссий.</Russian>
<Russian>XM84 (M84) - граната нелетального действия, и предназначена для отвлечения и временного вывода из строя, либо дезориентации противника. Основное использование нашла при освобождении заложников, захвате преступников и террористов, а также проведении диверсионных миссий.</Russian>
<Hungarian>Eldobás után felrobban és éles hang, valamint fényhatással zavarja össze a környezetében tartózkodókat.</Hungarian>
<Italian>Anche conosciuta come flashbang. Causa accecamento immediato, sensazioni di sposatezza, mancanza d'equilibrio e disturbi al timpano.</Italian>
<Portuguese>Um tipo de granada não-letal destinado a confundir, desorientar e distrair uma potencial ameaça.</Portuguese>
@ -243,4 +243,4 @@
<Spanish>M127A1 (Amarilla)</Spanish>
</Key>
</Package>
</Project>
</Project>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2015-04-07 -->
<!-- Edited with tabler - 2015-04-10 -->
<Project name="ACE">
<Package name="Hearing">
<Key ID="STR_ACE_Hearing_EarPlugs_Name">
@ -100,8 +100,9 @@
</Key>
<Key ID="STR_ACE_Hearing_DisableEarRinging">
<English>Disable ear ringing</English>
<German>Deaktiviere Ohrfiepen</German>
<Spanish>Desactivar zumbido de oídos</Spanish>
<German>Knalltrauma deaktivieren</German>
<Russian>Отключить эффект баротравмы</Russian>
</Key>
</Package>
</Project>
</Project>

View File

@ -32,7 +32,7 @@ GVAR(openedMenuType) = _menuType;
GVAR(useCursorMenu) = (vehicle ACE_player != ACE_player) ||
visibleMap ||
{(_menuType == 1) && {(isWeaponDeployed ACE_player) || GVAR(AlwaysUseCursorSelfInteraction)}};
{(_menuType == 1) && {(isWeaponDeployed ACE_player) || GVAR(AlwaysUseCursorSelfInteraction) || {cameraView == "GUNNER"}}};
if (GVAR(useCursorMenu)) then {
createDialog QGVAR(cursorMenu);
// The dialog sets:

View File

@ -23,7 +23,7 @@ _fnc_renderNearbyActions = {
#define MAXINTERACTOBJECTS 3
_numInteractObjects = 0;
_nearestObjects = nearestObjects [(getPos ACE_player), ["All"], 15];
_nearestObjects = nearestObjects [ACE_player, ["All"], 15];
{
_target = _x;

View File

@ -1,31 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2015-04-07 -->
<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>
</Key>
<Key ID="STR_ACE_Interact_Menu_InteractKey">
<English>Interact Key</English>
<German>Interaktionstaste</German>
<German>Fremdinteraktionsmenü-Taste</German>
<Spanish>Tecla de interacción</Spanish>
<Russian>Клавиша взаимодействия</Russian>
</Key>
<Key ID="STR_ACE_Interact_Menu_SelfInteractKey">
<English>Self Interaction Key</English>
<German>Selbst-Interaktionstaste</German>
<German>Eigeninteraktionsmenü-Taste</German>
<Spanish>Tecla de interacción propia</Spanish>
<Russian>Клавиша взаимодействия (с собой)</Russian>
</Key>
<Key ID="STR_ACE_Interact_Menu_SelfActionsRoot">
<English>Self Actions</English>
<German>Selbst-Interaktion</German>
<German>Selbst-Aktionen</German>
<Spanish>Acciones propias</Spanish>
<Russian>Действия с собой</Russian>
</Key>
<Key ID="STR_ACE_Interact_Menu_VehicleActionsRoot">
<English>Vehicle Actions</English>
<German>Fahrzeug-Interaktion</German>
<German>Fahrzeug-Aktionen</German>
<Spanish>Acciones de vehículo</Spanish>
<Russian>Действия на транспорте</Russian>
</Key>
</Package>
</Project>

View File

@ -1,10 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2015-04-07 -->
<Project name="ACE">
<Package name="Interaction">
<Key ID="STR_ACE_Interaction_MainAction">
<English>Interactions</English>
<German>Interaktion</German>
<German>Interaktionen</German>
<Spanish>Interacciones</Spanish>
</Key>
<Key ID="STR_ACE_Interaction_Torso">
@ -19,22 +18,22 @@
</Key>
<Key ID="STR_ACE_Interaction_ArmLeft">
<English>Left Arm</English>
<German>Arm links</German>
<German>Linker Arm</German>
<Spanish>Brazo izquierdo</Spanish>
</Key>
<Key ID="STR_ACE_Interaction_ArmRight">
<English>Right Arm</English>
<German>Arm rechts</German>
<German>Rechter Arm</German>
<Spanish>Brazo derecho</Spanish>
</Key>
<Key ID="STR_ACE_Interaction_LegLeft">
<English>Left Leg</English>
<German>Bein links</German>
<German>Linkes Bein</German>
<Spanish>Pierna izquierda</Spanish>
</Key>
<Key ID="STR_ACE_Interaction_LegRight">
<English>Right Leg</English>
<German>Bein rechts</German>
<German>Rechtes Bein</German>
<Spanish>Pierna derecha</Spanish>
</Key>
<Key ID="STR_ACE_Interaction_Weapon">
@ -624,7 +623,7 @@
<Polish>Modyfikator</Polish>
<French>Modifier la touche</French>
<Spanish>Tecla modificadora</Spanish>
<Russian>клавиша-модификатор</Russian>
<Russian>Клавиша-модификатор</Russian>
<Portuguese>Tecla Modificadora</Portuguese>
<Italian>Modifica Tasto</Italian>
<Hungarian>Módosító billentyű</Hungarian>
@ -671,8 +670,9 @@
</Key>
<Key ID="STR_ACE_Interaction_Passengers">
<English>Passengers</English>
<German>Passagiere</German>
<German>Fahrzeuginsassen</German>
<Spanish>Pasajeros</Spanish>
<Russian>Пассажиры</Russian>
</Key>
</Package>
</Project>

View File

@ -1,16 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2015-04-07 -->
<Project name="ACE">
<Package name="Inventory">
<Key ID="STR_ACE_Inventory_SettingName">
<English>Make Inventory Display Bigger</English>
<German>Die Anzeige des Inventar vergrößern.</German>
<German>Erhöhe die angezeigte Inventargröße</German>
<Spanish>Hacer la pantalla de inventario mas grande</Spanish>
<Russian>Сделать окно инвентаря больше</Russian>
</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>Normalerweise wird die Größe des Inventars mit der Größe der UI skaliert. Diese Einstellung allerdings vergrößert das Inventar bei gleichbleibender Schriftgröße, so dass mehr Einträge angzeigt werden können.</German>
<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>
</Key>
</Package>
</Project>

View File

@ -0,0 +1 @@
z\ace\addons\javelin

View File

@ -0,0 +1,13 @@
class CfgWeapons {
class Launcher;
class Launcher_Base_F : Launcher {
class WeaponSlotsInfo;
};
class launch_Titan_base : Launcher_Base_F {
weaponInfoType = "ACE_RscOptics_javelin";
lockingTargetSound[] = {"",0,1};
lockedTargetSound[] = {"",0,1};
};
};

View File

@ -1,4 +1,4 @@
ace_wep_javelin
ace_javelin
===============
Adds the Javelin AT launcher.
@ -9,4 +9,3 @@ Adds the Javelin AT launcher.
The people responsible for merging changes to this component or answering potential questions.
- [jaynus](https://github.com/walterpearce)
- [NouberNou](https://github.com/NouberNou)

View File

@ -10,9 +10,9 @@ class RscLine;
// Taken from AGM for optics management.
class RscInGameUI {
class RscOptics_titan {
class ACE_RscOptics_javelin {
idd = 300;
controls[] = {"ACE_javelin_elements_group"};
controls[] = { "ACE_javelin_elements_group", "CA_Distance", "ACE_Targeting" }; //, "ACE_TargetingConstrains", "ACE_TargetingGate", "ACE_TargetingLines"};
onLoad = QUOTE(_this call FUNC(onOpticLoad));
onUnload = "uiNameSpace setVariable ['ACE_RscOptics_javelin',nil];";
@ -94,6 +94,7 @@ class RscInGameUI {
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";
@ -136,6 +137,7 @@ class RscInGameUI {
h = 0;
colorText[] = {0.2941,0.8745,0.2157,1};
};
*/
};
};
class ACE_javelin_NFOV_mode_off: ACE_javelin_Day_mode_off {
@ -167,6 +169,7 @@ class RscInGameUI {
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";
@ -209,15 +212,83 @@ class RscInGameUI {
h = "0.1895*SafezoneH";
colorText[] = {0.2941,0.8745,0.2157,1};
};
*/
};
};
/*
class TargetingConstrains: RscControlsGroup {
idc = 699100;
class ACE_javelin_SEEK_off: ACE_javelin_Day_mode_off {
idc = 699000;
x = "(SafezoneX+(SafezoneW -SafezoneH*3/4)/2)+ (0.863/4)*3*SafezoneH - SafezoneX";
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\seek_co.paa";
};
class ACE_javelin_SEEK: ACE_javelin_SEEK_off {
idc = 166;
colorText[] = {0.2941,0.8745,0.2157,0};
};
class ACE_javelin_Missle_off: ACE_javelin_Day_mode_off {
idc = 1032;
x = "(SafezoneX+(SafezoneW -SafezoneH*3/4)/2)+ (-0.134/4)*3*SafezoneH - SafezoneX";
y = "(SafezoneY + 0.208*SafezoneH) - SafezoneY";
colorText[] = {0.2941,0.2941,0.2941,1};
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\missle_co.paa";
};
class ACE_javelin_Missle: ACE_javelin_Missle_off {
idc = 167;
colorText[] = {0.9255,0.5216,0.1216,0};
};
class ACE_javelin_CLU_off: ACE_javelin_Missle_off {
idc = 1027;
y = "(SafezoneY + 0.436*SafezoneH) - SafezoneY";
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\clu_co.paa";
};
class ACE_javelin_HangFire_off: ACE_javelin_Missle_off {
idc = 1028;
y = "(SafezoneY + 0.669*SafezoneH) - SafezoneY";
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\hangfire_co.paa";
};
class ACE_javelin_TOP_off: ACE_javelin_Day_mode_off {
idc = 699001;
x = "(SafezoneX+(SafezoneW -SafezoneH*3/4)/2)+ (1.023/4)*3*SafezoneH - SafezoneX";
y = "(SafezoneY + 0.208*SafezoneH) - SafezoneY";
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\top_co.paa";
colorText[] = {0.2941,0.8745,0.2157,1};
};
class ACE_javelin_DIR: ACE_javelin_Day_mode {
idc = 699002;
x = "(SafezoneX+(SafezoneW -SafezoneH*3/4)/2)+ (1.023/4)*3*SafezoneH - SafezoneX";
y = "(SafezoneY + 0.436*SafezoneH) - SafezoneY";
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\dir_co.paa";
colorText[] = {0.2941,0.2941,0.2941,1};
};
class ACE_javelin_FLTR_mode_off: ACE_javelin_Day_mode_off {
idc = 1002;
x = "(SafezoneX+(SafezoneW -SafezoneH*3/4)/2)+ (1.023/4)*3*SafezoneH - SafezoneX";
y = "(SafezoneY + 0.669*SafezoneH) - SafezoneY";
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\fltr_co.paa";
};
class ACE_javelin_FLTR_mode: ACE_javelin_FLTR_mode_off {
idc = 161;
colorText[] = {0.2941,0.8745,0.2157,1};
};
};
};
class ACE_Targeting : RscControlsGroup {
idc = 6999;
x = "SafezoneX";
y = "SafezoneY";
w = "SafezoneW";
h = "SafezoneH";
enabled = 0;
class Controls {
class ACE_TargetingConstrains: RscControlsGroup {
x = "SafezoneX";
y = "SafezoneY";
w = "SafezoneW-SafezoneX";
h = "SafezoneH-SafezoneY";
enabled = 0;
class VScrollbar {
autoScrollSpeed = -1;
autoScrollDelay = 5;
@ -258,18 +329,18 @@ class RscInGameUI {
idc = 699105;
text = PATHTOF(data\javelin_ui_border_ca.paa);
colorText[] = {0,0,0,1};
x = "((SafezoneW -(3/4)*SafezoneH)/2) - SafezoneX";
x = "((SafezoneW -(3.1/4)*SafezoneH)/2) - SafezoneX";
y = "0.15*SafezoneH-SafezoneY";
w = "(3/4)*SafezoneH";
w = "(3.1/4)*SafezoneH";
h = "0.7*SafezoneH";
};
};
};
class TargetingGate: TargetingConstrains {
class ACE_TargetingGate : ACE_TargetingConstrains {
idc = 699200;
class Controls {
class TargetingGateTL: TargetingConstrains {
class TargetingGateTL: ACE_TargetingConstrains {
x = "((SafezoneW -(3/4)*SafezoneH)/2) - SafezoneX";
y = "0.15*SafezoneH - SafezoneY";
idc = 699201;
@ -351,8 +422,9 @@ class RscInGameUI {
};
};
};
class TargetingLines: TargetingConstrains {
class ACE_TargetingLines: ACE_TargetingConstrains {
idc = 699300;
class Controls {
class LineH: RscLine {
@ -373,62 +445,6 @@ class RscInGameUI {
};
};
};
*/
class ACE_javelin_SEEK_off: ACE_javelin_Day_mode_off {
idc = 699000;
x = "(SafezoneX+(SafezoneW -SafezoneH*3/4)/2)+ (0.863/4)*3*SafezoneH - SafezoneX";
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\seek_co.paa";
};
class ACE_javelin_SEEK: ACE_javelin_SEEK_off {
idc = 166;
colorText[] = {0.2941,0.8745,0.2157,0};
};
class ACE_javelin_Missle_off: ACE_javelin_Day_mode_off {
idc = 1032;
x = "(SafezoneX+(SafezoneW -SafezoneH*3/4)/2)+ (-0.134/4)*3*SafezoneH - SafezoneX";
y = "(SafezoneY + 0.208*SafezoneH) - SafezoneY";
colorText[] = {0.2941,0.2941,0.2941,1};
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\missle_co.paa";
};
class ACE_javelin_Missle: ACE_javelin_Missle_off {
idc = 167;
colorText[] = {0.9255,0.5216,0.1216,0};
};
class ACE_javelin_CLU_off: ACE_javelin_Missle_off {
idc = 1027;
y = "(SafezoneY + 0.436*SafezoneH) - SafezoneY";
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\clu_co.paa";
};
class ACE_javelin_HangFire_off: ACE_javelin_Missle_off {
idc = 1028;
y = "(SafezoneY + 0.669*SafezoneH) - SafezoneY";
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\hangfire_co.paa";
};
class ACE_javelin_TOP_off: ACE_javelin_Day_mode_off {
idc = 699001;
x = "(SafezoneX+(SafezoneW -SafezoneH*3/4)/2)+ (1.023/4)*3*SafezoneH - SafezoneX";
y = "(SafezoneY + 0.208*SafezoneH) - SafezoneY";
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\top_co.paa";
colorText[] = {0.2941,0.8745,0.2157,1};
};
class ACE_javelin_DIR: ACE_javelin_Day_mode {
idc = 699002;
x = "(SafezoneX+(SafezoneW -SafezoneH*3/4)/2)+ (1.023/4)*3*SafezoneH - SafezoneX";
y = "(SafezoneY + 0.436*SafezoneH) - SafezoneY";
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\dir_co.paa";
colorText[] = {0.2941,0.2941,0.2941,1};
};
class ACE_javelin_FLTR_mode_off: ACE_javelin_Day_mode_off {
idc = 1002;
x = "(SafezoneX+(SafezoneW -SafezoneH*3/4)/2)+ (1.023/4)*3*SafezoneH - SafezoneX";
y = "(SafezoneY + 0.669*SafezoneH) - SafezoneY";
text = "\A3\ui_f\data\igui\rscingameui\rscoptics_titan\fltr_co.paa";
};
class ACE_javelin_FLTR_mode: ACE_javelin_FLTR_mode_off {
idc = 161;
colorText[] = {0.2941,0.8745,0.2157,1};
};
};
};
};

View File

@ -1,8 +1,5 @@
#include "script_component.hpp"
PREP(translateToWeaponSpace);
PREP(translateToModelSpace);
PREP(lockKeyDown);
PREP(lockKeyUp);

View File

@ -12,4 +12,5 @@ class CfgPatches {
#include "CfgEventhandlers.hpp"
#include "RscInGameUI.hpp"
#include "CfgSounds.hpp"
#include "CfgSounds.hpp"
#include "CfgWeapons.hpp"

View File

@ -0,0 +1,211 @@
//#define DEBUG_MODE_FULL
#include "script_component.hpp"
//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 __OffsetX ((ctrlPosition __JavelinIGUITargetingLineV) select 0) - 0.5
#define __OffsetY ((ctrlPosition __JavelinIGUITargetingLineH) select 1) - 0.5
private["_args", "_lastTick", "_runTime", "_soundTime", "_lockTime", "_newTarget", "_currentTarget", "_range", "_pos", "_targetArray"];
// Reset arguments if we havnt rendered in over a second
_args = uiNamespace getVariable[QGVAR(arguments), [] ];
if( (count _args) > 0) then {
_lastTick = _args select 0;
if(diag_tickTime - _lastTick > 1) then {
[] call FUNC(onOpticLoad);
};
};
// Pull the arguments
_currentTarget = _args select 1;
_runTime = _args select 2;
_lockTime = _args select 3;
_soundTime = _args select 4;
// Find a target within the optic range
_newTarget = objNull;
// Bail on fast movement
if ((velocity ACE_player) distance [0,0,0] > 0.5 && {cameraView == "GUNNER"} && {cameraOn == ACE_player}) exitWith { // keep it steady.
ACE_player switchCamera "INTERNAL";
};
// Refresh the firemode
[] call FUNC(showFireMode);
// Only start locking on holding tab
if(!GVAR(isLockKeyDown)) exitWith { false };
_range = parseNumber (ctrlText __JavelinIGUIRangefinder);
if (_range > 50 && {_range < 2500}) then {
_pos = positionCameraToWorld [0,0,_range];
_targetArray = _pos nearEntities ["AllVehicles", _range/25];
if (count (_targetArray) > 0) then {
_newTarget = _targetArray select 0;
};
};
if (isNull _newTarget) then {
_newTarget = cursorTarget;
};
// Create constants
_constraintTop = __ConstraintTop;
_constraintLeft = __ConstraintLeft;
_constraintBottom = __ConstraintBottom;
_constraintRight = __ConstraintRight;
_offsetX = __OffsetX;
_offsetY = __OffsetY;
__JavelinIGUITargeting ctrlShow true;
__JavelinIGUITargetingConstrains ctrlShow true;
if (isNull _newTarget) then {
// No targets found
_currentTarget = objNull;
_lockTime = 0;
__JavelinIGUISeek ctrlSetTextColor __ColorGray;
__JavelinIGUINFOV ctrlSetTextColor __ColorGreen;
__JavelinIGUITargetingGate ctrlShow false;
__JavelinIGUITargetingLines ctrlShow 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];};
} else {
if (_newTarget distance ACE_player < 2500
// && {(call CBA_fnc_getFoV) select 1 > 7}
// && { (currentVisionMode ACE_player == 2)}
) then {
// Lock on after 3 seconds
if(_currentTarget != _newTarget) then {
TRACE_1("New Target, reseting locking", _newTarget);
_lockTime = diag_tickTime;
_currentTarget = _newTarget;
playSound "ACE_Javelin_Locking";
} else {
if(diag_tickTime - _lockTime > __LOCKONTIME) then {
TRACE_2("LOCKED!", _currentTarget, _lockTime);
__JavelinIGUISeek ctrlSetTextColor __ColorGreen;
__JavelinIGUINFOV ctrlSetTextColor __ColorNull;
__JavelinIGUITargeting ctrlShow true;
__JavelinIGUITargetingConstrains ctrlShow true;
__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];
_boundsInput = if (_currentTarget isKindOf "CAManBase") then {
[_currentTarget,[-1,-1,-2],_currentTarget selectionPosition "body"];
} else {
[_currentTarget,[-1,-1,-2],_currentTarget selectionPosition "zamerny"];
};
_bpos = _boundsInput call EFUNC(common,worldToScreenBounds);
_minX = ((_bpos select 0) + _offsetX) max _constraintLeft;
_minY = ((_bpos select 1) + _offsetY) max _constraintTop;
_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];
__JavelinIGUITargetingGateBR ctrlSetPosition [_maxX,_maxY];
{_x ctrlCommit __TRACKINTERVAL} forEach [__JavelinIGUITargetingGateTL,__JavelinIGUITargetingGateTR,__JavelinIGUITargetingGateBL,__JavelinIGUITargetingGateBR];
ACE_player setVariable["ace_missileguidance_target", _currentTarget, false];
if(diag_tickTime > _soundTime) then {
playSound "ACE_Javelin_Locked";
_soundTime = diag_tickTime + 0.25;
};
} else {
__JavelinIGUITargeting ctrlShow true;
__JavelinIGUITargetingGate ctrlShow true;
__JavelinIGUITargetingLines ctrlShow false;
ACE_player setVariable["ace_missileguidance_target", nil, false];
_boundsInput = if (_currentTarget isKindOf "CAManBase") then {
[_newTarget,[-1,-1,-2],_currentTarget selectionPosition "body"];
} else {
[_newTarget,[-1,-1,-1],_currentTarget selectionPosition "zamerny"];
};
_bpos = _boundsInput call EFUNC(common,worldToScreenBounds);
_minX = ((_bpos select 0) + _offsetX) max _constraintLeft;
_minY = ((_bpos select 1) + _offsetY) max _constraintTop;
_maxX = ((_bpos select 2) + _offsetX) min (_constraintRight - 0.025*(3/4)*SafezoneH);
_maxY = ((_bpos select 3) + _offsetY) min (_constraintBottom - 0.025*SafezoneH);
__JavelinIGUITargetingGateTL ctrlSetPosition [_minX,_minY];
__JavelinIGUITargetingGateTR ctrlSetPosition [_maxX,_minY];
__JavelinIGUITargetingGateBL ctrlSetPosition [_minX,_maxY];
__JavelinIGUITargetingGateBR ctrlSetPosition [_maxX,_maxY];
{_x ctrlCommit __TRACKINTERVAL} forEach [__JavelinIGUITargetingGateTL,__JavelinIGUITargetingGateTR,__JavelinIGUITargetingGateBL,__JavelinIGUITargetingGateBR];
if(diag_tickTime > _soundTime) then {
playSound "ACE_Javelin_Locking";
_soundTime = diag_tickTime + 0.25;
};
};
};
} else {
// Something is wrong with our seek
_currentTarget = objNull;
__JavelinIGUISeek ctrlSetTextColor __ColorGray;
__JavelinIGUINFOV ctrlSetTextColor __ColorGray;
__JavelinIGUITargetingConstrains ctrlShow false;
__JavelinIGUITargetingGate ctrlShow false;
__JavelinIGUITargetingLines ctrlShow false;
ACE_player setVariable ["ace_missileguidance_target",nil, false];
};
};
//TRACE_2("", _newTarget, _currentTarget);
// Save arguments for next run
_args set[0, diag_tickTime];
_args set[1, _currentTarget];
_args set[2, _runTime];
_args set[3, _lockTime];
_args set[4, _soundTime];
uiNamespace setVariable[QGVAR(arguments), _args ];

View File

@ -11,6 +11,11 @@ ACE_player setVariable ["ace_missileguidance_target",nil, false];
__JavelinIGUISeek ctrlSetTextColor __ColorGray;
__JavelinIGUINFOV ctrlSetTextColor __ColorGray;
__JavelinIGUITargeting ctrlShow false;
__JavelinIGUITargetingConstrains ctrlShow false;
__JavelinIGUITargetingGate ctrlShow false;
__JavelinIGUITargetingLines ctrlShow false;
uiNameSpace setVariable [QGVAR(arguments),
[
0, // Last runtime

View File

@ -0,0 +1 @@
#include "\z\ace\addons\javelin\script_component.hpp"

View File

@ -1,6 +1,6 @@
// by commy2
["ACE3", QGVAR(lockTarget), localize "STR_ACE_WEP_JAVELIN_LockTarget",
["ACE3", QGVAR(lockTarget), localize "STR_ACE_JAVELIN_LockTarget",
{
if (GETGVAR(isLockKeyDown,false)) exitWith {false};
@ -21,7 +21,7 @@
},
[15, [false, false, false]], false] call cba_fnc_addKeybind; //Tab Key
["ACE3", QGVAR(cycleFireMode), localize "STR_ACE_WEP_JAVELIN_CycleFireMode",
["ACE3", QGVAR(cycleFireMode), localize "STR_ACE_JAVELIN_CycleFireMode",
{ false },
{
[ACE_player] call FUNC(cycleFireMode);

View File

@ -1,12 +1,12 @@
#define COMPONENT wep_javelin
#define COMPONENT javelin
#include "\z\ace\Addons\main\script_mod.hpp"
#ifdef DEBUG_ENABLED_WEP_JAVELIN
#ifdef DEBUG_ENABLED_JAVELIN
#define DEBUG_MODE_FULL
#endif
#ifdef DEBUG_SETTINGS_WEP_JAVELIN
#define DEBUG_SETTINGS DEBUG_SETTINGS_WEP_JAVELIN
#ifdef DEBUG_SETTINGS_JAVELIN
#define DEBUG_SETTINGS DEBUG_SETTINGS_JAVELIN
#endif
#include "\z\ace\Addons\main\script_macros.hpp"
@ -19,6 +19,8 @@
#define __JavelinIGUI (uinamespace getVariable "ACE_RscOptics_javelin")
// Custom controls
#define __JavelinIGUITargeting (__JavelinIGUI displayCtrl 6999)
#define __JavelinIGUISeek (__JavelinIGUI displayCtrl 699000)
#define __JavelinIGUITop (__JavelinIGUI displayCtrl 699001)
#define __JavelinIGUIDir (__JavelinIGUI displayCtrl 699002)
@ -51,10 +53,6 @@
#define __ConstraintLeft (((ctrlPosition __JavelinIGUITargetingConstrainLeft) select 0) + ((ctrlPosition (__JavelinIGUITargetingConstrainLeft)) select 2))
#define __ConstraintRight ((ctrlPosition __JavelinIGUITargetingConstrainRight) select 0)
#define __OffsetX ((ctrlPosition __JavelinIGUITargetingLineV) select 0) - 0.5
#define __OffsetY ((ctrlPosition __JavelinIGUITargetingLineH) select 1) - 0.5
// Colors for controls
#define __ColorOrange [0.9255,0.5216,0.1216,1]
#define __ColorGreen [0.2941,0.8745,0.2157,1]

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<Project name="ACE">
<Package name="WEP_JAVELIN">
<Key ID="STR_ACE_WEP_JAVELIN_LockTarget">
<English>Lock Target (Hold)</English>
<German>Ziel aufschalten</German>
<Russian>Захватить цель (удерживать)</Russian>
</Key>
<Key ID="STR_ACE_WEP_JAVELIN_CycleFireMode">
<English>Cycle Fire Mode</English>
<German>Wechsle Feuermodus</German>
<Russian>Переключение режимов огня</Russian>
</Key>
</Package>
</Project>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2014-12-11 -->
<!-- Edited with tabler - 2015-04-10 -->
<Project name="ACE">
<Package name="Wind">
<Key ID="STR_ACE_Wind_ApproximateTemp">
@ -34,7 +34,7 @@
<Italian>Monitoraggio Balistico Attivo</Italian>
<Hungarian>Applied Ballistics Meter</Hungarian>
<Portuguese>Medidor Balístico Ativo</Portuguese>
<Russian>метеостанция</Russian>
<Russian>Метеостанция</Russian>
</Key>
<Key ID="STR_ACE_Wind_OpenKestrel">
<English>Open Kestrel</English>

View File

@ -1,16 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2015-04-07 -->
<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>
</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>
</Key>
</Package>
</Project>

View File

@ -1,21 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2015-04-10 -->
<Project name="ACE">
<Package name="Laserpointer">
<Key ID="STR_ACE_Laserpointer_red">
<English>Laser Pointer (red)</English>
<German>Laserpointer (rot)</German>
<Russian>Лазерный прицел (красный)</Russian>
</Key>
<Key ID="STR_ACE_Laserpointer_green">
<English>Laser Pointer (green)</English>
<German>Laserpointer (grün)</German>
<Russian>Лазерный прицел (зелёный)</Russian>
</Key>
<Key ID="STR_ACE_Laserpointer_Description">
<English>Emits visible light. </English>
<German>Strahlt sichtbares Licht aus. </German>
<Russian>Испускает узкий пучок видимого света.</Russian>
</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>
@ -27,6 +28,5 @@
<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>
</Project>
</Project>

View File

@ -1,29 +1,29 @@
class CfgVehicles {
class Helicopter_Base_F;
class UAV_01_base_F: Helicopter_Base_F {
class ACE_Actions {
class ACE_MainActions {
class GVAR(RefuelUAV) {
displayName = "$STR_ACE_logistics_uavbattery_Recharge";
distance = 4;
condition = QUOTE([ARR_2(_player, _target)] call FUNC(canRefuelUAV));
statement = QUOTE([ARR_2(_player, _target)] call FUNC(refuelUAV));
showDisabled = 0; \
priority = 1.245; \
icon = QUOTE(PATHTOF(ui\UAV_battery.paa));
class Helicopter_Base_F;
class UAV_01_base_F: Helicopter_Base_F {
class ACE_Actions {
class ACE_MainActions {
class GVAR(RefuelUAV) {
displayName = "$STR_ACE_logistics_uavbattery_Recharge";
distance = 4;
condition = QUOTE([ARR_2(_player, _target)] call FUNC(canRefuelUAV));
statement = QUOTE([ARR_2(_player, _target)] call FUNC(refuelUAV));
showDisabled = 0; \
priority = 1.245; \
icon = QUOTE(PATHTOF(ui\UAV_battery_ca.paa));
};
};
};
};
};
};
// Misc box content
class Box_NATO_Support_F;
class ACE_Box_Misc: Box_NATO_Support_F {
class TransportItems {
class _xx_ACE_UAVBattery {
count = 6;
name = "ACE_UAVBattery";
};
// Misc box content
class Box_NATO_Support_F;
class ACE_Box_Misc: Box_NATO_Support_F {
class TransportItems {
class _xx_ACE_UAVBattery {
count = 6;
name = "ACE_UAVBattery";
};
};
};
};
};

View File

@ -1,15 +1,15 @@
class CfgWeapons {
class InventoryItem_Base_F;
class ACE_ItemCore;
class InventoryItem_Base_F;
class ACE_ItemCore;
class ACE_UAVBattery: ACE_ItemCore {
scope = 2;
displayName = "$STR_ACE_logistics_uavbattery_Battery_Name";
descriptionShort = "$STR_ACE_logistics_uavbattery_Battery_Description";
model = QUOTE(PATHTOF(models\ace_battery.p3d));
picture = QUOTE(PATHTOF(ui\UAV_battery.paa));
class ItemInfo: InventoryItem_Base_F {
mass = 20;
class ACE_UAVBattery: ACE_ItemCore {
scope = 2;
displayName = "$STR_ACE_logistics_uavbattery_Battery_Name";
descriptionShort = "$STR_ACE_logistics_uavbattery_Battery_Description";
model = QUOTE(PATHTOF(models\ace_battery.p3d));
picture = QUOTE(PATHTOF(ui\UAV_battery_ca.paa));
class ItemInfo: InventoryItem_Base_F {
mass = 20;
};
};
};
};

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2014-12-21 -->
<!-- Edited with tabler - 2015-04-10 -->
<Project name="ACE">
<Package name="logistics_uavbattery">
<Key ID="STR_ACE_logistics_uavbattery_Full">
@ -24,7 +24,7 @@
<Czech>Potřebuješ UAV-Baterii</Czech>
<Portuguese>Você precisa de uma Bateria para VANT</Portuguese>
<Italian>Hai bisogno di una Batteria UAV</Italian>
<Russian>Требуется аккумулятор БПЛА</Russian>
<Russian>Требуется аккумулятор для БПЛА</Russian>
</Key>
<Key ID="STR_ACE_logistics_uavbattery_Recharge">
<English>Recharge</English>
@ -36,7 +36,7 @@
<Czech>Dobít</Czech>
<Portuguese>Recarregar</Portuguese>
<Italian>Ricarica</Italian>
<Russian>Подзарядить</Russian>
<Russian>Зарядить</Russian>
</Key>
<Key ID="STR_ACE_logistics_uavbattery_Battery_Name">
<English>UAV Battery</English>
@ -60,7 +60,7 @@
<Czech>Používané k dobíjení UAV</Czech>
<Portuguese>Usada para reabastecer VANT</Portuguese>
<Italian>Usata per ricaricare la Batteria dell'UAV</Italian>
<Russian>Используется для подзарядки БПЛА</Russian>
<Russian>Используется для зарядки БПЛА</Russian>
</Key>
<Key ID="STR_ACE_logistics_uavbattery_Battery_Recharge">
<English>Recharging ...</English>
@ -72,7 +72,7 @@
<Czech>Dobíjení ...</Czech>
<Portuguese>Recarregando ...</Portuguese>
<Italian>In ricarica ...</Italian>
<Russian>Подзаряжаем ...</Russian>
<Russian>Заряжается ...</Russian>
</Key>
</Package>
</Project>

Binary file not shown.

View File

@ -1,16 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2015-04-07 -->
<Project name="ACE">
<Package name="Wirecutter">
<Key ID="STR_ACE_logistics_wirecutter_wirecutterName">
<English>Wirecutter</English>
<German>Drahtschneider</German>
<Spanish>Cortador de cables</Spanish>
<Russian>Клещи-кусачки</Russian>
</Key>
<Key ID="STR_ACE_logistics_wirecutter_wirecutterDescription">
<English>Wirecutter</English>
<German>Schneidet Draht.</German>
<Spanish>Cortador de cables</Spanish>
<Russian>Позволяют быстро перекусывать сеточные конструкции.</Russian>
</Key>
<Key ID="STR_ACE_logistics_wirecutter_CutFence">
<English>Cut Fence</English>
@ -22,7 +23,7 @@
<Portuguese>Cortar Cerca</Portuguese>
<Italian>Taglia</Italian>
<Hungarian>Drótkerítés átvágása</Hungarian>
<Russian>Вырезать забор</Russian>
<Russian>Разрезать забор</Russian>
</Key>
<Key ID="STR_ACE_logistics_wirecutter_CuttingFence">
<English>Cutting Fences / Wires ...</English>
@ -34,7 +35,7 @@
<Portuguese>Cortando Cerca / Arame ...</Portuguese>
<Italian>Sto tagliando ...</Italian>
<Hungarian>Drótok elvágása ...</Hungarian>
<Russian>Вырезаем забор / провода ...</Russian>
<Russian>Разрезаем забор / провода ...</Russian>
</Key>
<Key ID="STR_ACE_logistics_wirecutter_FenceCut">
<English>Fence cut</English>
@ -46,7 +47,7 @@
<Portuguese>Cerca cortada</Portuguese>
<Italian>Fatto!</Italian>
<Hungarian>Drótkerítés átvágva</Hungarian>
<Russian>Забор вырезан</Russian>
<Russian>Забор разрезан</Russian>
</Key>
</Package>
</Project>

View File

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2015-02-08 -->
<Project name="ACE">
<Package name="MagazineRepack">
<Key ID="STR_ACE_MagazineRepack_RepackMagazines">
@ -78,16 +77,19 @@
<English>Repacking Finished</English>
<German>Wiederverpacken Fertig</German>
<Spanish>Reembalaje finalizado</Spanish>
<Russian>Перепаковка завершена</Russian>
</Key>
<Key ID="STR_ACE_MagazineRepack_RepackInterrupted">
<English>Repacking Interrupted</English>
<German>Umpacken Unterbrochen</German>
<Spanish>Reembalaje interrumpido</Spanish>
<Russian>Перепаковка прервана</Russian>
</Key>
<Key ID="STR_ACE_MagazineRepack_RepackedMagazinesCount">
<English>%1 Full and %2 Partial</English>
<German>%1 Vollständigen und %2 Teilweisen</German>
<Spanish>%1 Total y %2 Parcial</Spanish>
<Russian>%1 полных и %2 неполных</Russian>
</Key>
</Package>
</Project>

View File

@ -1,15 +1,9 @@
class SlotInfo;
class MuzzleSlot;
class CfgWeapons {
/* MX */
class Rifle;
class Rifle_Base_F: Rifle {
class WeaponSlotsInfo;
};
class Rifle_Base_F;
class arifle_MX_Base_F: Rifle_Base_F {
magazines[] += {
"ACE_30Rnd_65x39_caseless_mag_Tracer_Dim",
@ -18,12 +12,6 @@ class CfgWeapons {
"100Rnd_65x39_caseless_mag",
"100Rnd_65x39_caseless_mag_Tracer"
};
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
compatibleItems[] += {"ACE_muzzle_mzls_H"};
};
};
};
class arifle_MX_SW_F: arifle_MX_Base_F {
@ -31,14 +19,6 @@ class CfgWeapons {
"30Rnd_65x39_caseless_mag",
"30Rnd_65x39_caseless_mag_Tracer"
};
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
// Shit is broken again
//compatibleItems[] += {"ACE_muzzle_mzls_H"};
compatibleItems[] = {"muzzle_snds_H","muzzle_snds_H_SW","ACE_muzzle_mzls_H"};
};
};
};
class arifle_MXM_F: arifle_MX_Base_F {
@ -57,51 +37,6 @@ class CfgWeapons {
"ACE_30Rnd_65x39_caseless_green_mag_SD",
"ACE_30Rnd_65x39_caseless_green_mag_AP"
};
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
compatibleItems[] += {"ACE_muzzle_mzls_H"};
};
};
};
/* Other */
class Rifle_Long_Base_F: Rifle_Base_F {
class WeaponSlotsInfo;
};
class EBR_base_F: Rifle_Long_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
compatibleItems[] += {"ACE_muzzle_mzls_B"};
};
};
};
class DMR_01_base_F: Rifle_Long_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
compatibleItems[] += {"ACE_muzzle_mzls_B"};
};
};
};
class LMG_Mk200_F: Rifle_Long_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
compatibleItems[] += {"ACE_muzzle_mzls_H"};
};
};
};
class LMG_Zafir_F: Rifle_Long_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
compatibleItems[] += {"ACE_muzzle_mzls_B"};
};
};
};
@ -113,12 +48,6 @@ class CfgWeapons {
"ACE_30Rnd_556x45_Stanag_SD",
"ACE_30Rnd_556x45_Stanag_AP"
};
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
compatibleItems[] += {"ACE_muzzle_mzls_L"};
};
};
};
class mk20_base_F: Rifle_Base_F {
@ -127,12 +56,6 @@ class CfgWeapons {
"ACE_30Rnd_556x45_Stanag_SD",
"ACE_30Rnd_556x45_Stanag_AP"
};
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
compatibleItems[] += {"ACE_muzzle_mzls_L"};
};
};
};
@ -146,81 +69,6 @@ class CfgWeapons {
};
};
class pdw2000_base_F: Rifle_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
compatibleItems[] += {"ACE_muzzle_mzls_smg_02"};
};
};
};
class SMG_01_Base: Rifle_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
compatibleItems[] += {"ACE_muzzle_mzls_smg_01"};
};
};
};
class SMG_02_base_F: Rifle_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
compatibleItems[] += {"ACE_muzzle_mzls_smg_02"};
};
};
};
/* Pistols */
class Pistol;
class Pistol_Base_F: Pistol {
class WeaponSlotsInfo;
};
class hgun_P07_F: Pistol_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
linkProxy = "\A3\data_f\proxies\weapon_slots\MUZZLE";
compatibleItems[] += {"ACE_muzzle_mzls_smg_02"};
};
};
};
class hgun_Rook40_F: Pistol_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
linkProxy = "\A3\data_f\proxies\weapon_slots\MUZZLE";
compatibleItems[] += {"ACE_muzzle_mzls_smg_02"};
};
};
};
class hgun_ACPC2_F: Pistol_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
compatibleItems[] += {"ACE_muzzle_mzls_smg_01"};
};
};
};
class hgun_Pistol_heavy_01_F: Pistol_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot: MuzzleSlot {
compatibleItems[] += {"ACE_muzzle_mzls_smg_01"};
};
};
};
/*class hgun_Pistol_heavy_02_F: Pistol_Base_F {
class WeaponSlotsInfo: WeaponSlotsInfo {
class MuzzleSlot {
linkProxy = "\A3\data_f\proxies\weapon_slots\MUZZLE";
compatibleItems[] += {"ACE_muzzle_mzls_smg_01"};
};
};
};*/
/* Silencers */

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2014-12-15 -->
<!-- Edited with tabler - 2015-04-10 -->
<Project name="ACE">
<Package name="Magazines">
<!-- MX -->
@ -13,7 +13,7 @@
<Czech>6.5mm 30ks Svítící IR-DIM Zásobník</Czech>
<Portuguese>Carregador de 30 projéteis traçantes IR-DIM de 6,5mm</Portuguese>
<Italian>Caricatore 6.5mm 30Rnd Traccianti IR-DIM</Italian>
<Russian>Магазин из 30-и 6.5 мм трассирующих под ПНВ</Russian>
<Russian>Магазин из 30-ти 6.5 мм трассирующих под ПНВ</Russian>
</Key>
<Key ID="STR_ACE_30Rnd_65x39_caseless_mag_Tracer_DimNameShort">
<English>6.5mm IR-DIM</English>
@ -25,7 +25,7 @@
<Czech>6.5mm IR-DIM</Czech>
<Portuguese>6,5mm IR-DIM</Portuguese>
<Italian>6.5 IR-DIM</Italian>
<Russian>6.5 мм трассирущие под ПНВ</Russian>
<Russian>6.5 мм ИК-трассирующие</Russian>
</Key>
<Key ID="STR_ACE_30Rnd_65x39_caseless_mag_Tracer_DimDescription">
<English>Caliber: 6.5x39 mm Tracer IR-DIM&lt;br /&gt;Rounds: 30&lt;br /&gt;Used in: MX/C/M/SW/3GL</English>
@ -49,7 +49,7 @@
<Czech>6.5mm 30ks SD Zásobník</Czech>
<Portuguese>Carregador de 30 projéteis SD de 6,5mm</Portuguese>
<Italian>Caricatore 6.5mm 30Rnd Sil.</Italian>
<Russian>Магазин из 30-и 6.5 мм дозвуковых</Russian>
<Russian>Магазин из 30-ти 6.5 мм дозвуковых</Russian>
</Key>
<Key ID="STR_ACE_30Rnd_65x39_caseless_mag_SDNameShort">
<English>6.5mm SD</English>
@ -85,7 +85,7 @@
<Czech>6.5mm 30ks AP Zásobník</Czech>
<Portuguese>Carregador de 30 projéteis AP de 6,5mm</Portuguese>
<Italian>Caricatore 6.5mm 30Rnd AP</Italian>
<Russian>Магазин из 30-и 6.5 мм бронебойных</Russian>
<Russian>Магазин из 30-ти 6.5 мм бронебойных</Russian>
</Key>
<Key ID="STR_ACE_30Rnd_65x39_caseless_mag_APNameShort">
<English>6.5mm AP</English>
@ -122,7 +122,7 @@
<Czech>6.5mm 30ks Svítící IR-DIM Zásobník</Czech>
<Portuguese>Carregador de 30 projéteis traçantes IR-DIM de 6,5mm</Portuguese>
<Italian>Caricatore 6.5mm 30Rnd Traccianti IR-DIM</Italian>
<Russian>Магазин из 30-и 6.5 мм трассирующих под ПНВ</Russian>
<Russian>Магазин из 30-ти 6.5 мм трассирующих под ПНВ</Russian>
</Key>
<Key ID="STR_ACE_30Rnd_65x39_caseless_green_mag_Tracer_DimNameShort">
<English>6.5mm IR-DIM</English>
@ -134,7 +134,7 @@
<Czech>6.5mm IR-DIM</Czech>
<Portuguese>6,5mm IR-DIM</Portuguese>
<Italian>6.5mm IR-DIM</Italian>
<Russian>6.5 мм трассирущие под ПНВ</Russian>
<Russian>6.5 мм ИК-трассирующие</Russian>
</Key>
<Key ID="STR_ACE_30Rnd_65x39_caseless_green_mag_Tracer_DimDescription">
<English>Caliber: 6.5x39 mm Tracer IR-DIM&lt;br /&gt;Rounds: 30&lt;br /&gt;Used in: Katiba</English>
@ -158,7 +158,7 @@
<Czech>6.5mm 30ks SD Zásobník</Czech>
<Portuguese>Carregador de 30 projéteis SD de 6,5mm</Portuguese>
<Italian>Caricatore 6.5mm 30Rnd Sil.</Italian>
<Russian>Магазин из 30-и 6.5 мм дозвуковых</Russian>
<Russian>Магазин из 30-ти 6.5 мм дозвуковых</Russian>
</Key>
<Key ID="STR_ACE_30Rnd_65x39_caseless_green_mag_SDNameShort">
<English>6.5mm SD</English>
@ -194,7 +194,7 @@
<Czech>6.5mm 30ks AP Zásobník</Czech>
<Portuguese>Carregador de 30 projéteis AP de 6,5mm</Portuguese>
<Italian>Caricatore 6.5mm 30Rnd AP</Italian>
<Russian>Магазин из 30-и 6.5 мм бронебойных</Russian>
<Russian>Магазин из 30-ти 6.5 мм бронебойных</Russian>
</Key>
<Key ID="STR_ACE_30Rnd_65x39_caseless_green_mag_APNameShort">
<English>6.5mm AP</English>
@ -231,7 +231,7 @@
<Czech>5.56mm 30ks Svítící IR-DIM Zásobník</Czech>
<Portuguese>Carregador de 30 projéteis traçantes IR-DIM de 5,56mm</Portuguese>
<Italian>Caricatore 5.56mm 30rnd Traccianti IR-DIM</Italian>
<Russian>Магазин из 30-и 5.56 мм трассирующих под ПНВ</Russian>
<Russian>Магазин из 30-ти 5.56 мм трассирующих под ПНВ</Russian>
</Key>
<Key ID="STR_ACE_30Rnd_556x45_mag_Tracer_DimNameShort">
<English>5.56mm IR-DIM</English>
@ -243,7 +243,7 @@
<Czech>5.56mm IR-DIM</Czech>
<Portuguese>5,56mm IR-DIM</Portuguese>
<Italian>5.56mm IR-DIM</Italian>
<Russian>5.56 мм трассирущие под ПНВ</Russian>
<Russian>5.56 мм ИК-трассирующие</Russian>
</Key>
<Key ID="STR_ACE_30Rnd_556x45_mag_Tracer_DimDescription">
<English>Caliber: 5.56x45 mm Tracer IR-DIM&lt;br /&gt;Rounds: 30&lt;br /&gt;Used in: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR</English>
@ -267,7 +267,7 @@
<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>
<Russian>Магазин из 30-ти 5.56 мм дозвуковых</Russian>
</Key>
<Key ID="STR_ACE_30Rnd_556x45_mag_SDNameShort">
<English>5.56mm SD</English>
@ -303,7 +303,7 @@
<Czech>5.56mm 30ks AP Zásobník</Czech>
<Portuguese>Carregador de 30 projéteis AP de 5,56mm</Portuguese>
<Italian>Caricatore 5.56mm 30Rnd AP</Italian>
<Russian>Магазин из 30-и 5.56 мм бронебойных</Russian>
<Russian>Магазин из 30-ти 5.56 мм бронебойных</Russian>
</Key>
<Key ID="STR_ACE_30Rnd_556x45_mag_APNameShort">
<English>5.56mm AP</English>
@ -340,7 +340,7 @@
<Czech>7.62mm 20ks Svítící Zásobník</Czech>
<Portuguese>Carregador de 20 projéteis traçantes de 7,62mm</Portuguese>
<Italian>Caricatore 7.62mm 20Rnd Traccianti</Italian>
<Russian>Магазин из 20-и 7.62 мм трассирующих</Russian>
<Russian>Магазин из 20-ти 7.62 мм трассирующих</Russian>
</Key>
<Key ID="STR_ACE_20Rnd_762x51_mag_TracerNameShort">
<English>7.62mm Tracer</English>
@ -376,7 +376,7 @@
<Czech>7.62mm 20ks Svítící IR-DIM Zásobník</Czech>
<Portuguese>Carregador de 20 projéteis IR-DIM de 7,62mm</Portuguese>
<Italian>Caricatore 7.62mm 20rnd Traccianti IR-DIM</Italian>
<Russian>Магазин из 20-и 7.62 мм трассирующих под ПНВ</Russian>
<Russian>Магазин из 20-ти 7.62 мм трассирующих под ПНВ</Russian>
</Key>
<Key ID="STR_ACE_20Rnd_762x51_mag_Tracer_DimNameShort">
<English>7.62mm IR-DIM</English>
@ -388,7 +388,7 @@
<Czech>7.62mm IR-DIM</Czech>
<Portuguese>7,62mm IR-DIM</Portuguese>
<Italian>7.62mm IR-DIM</Italian>
<Russian>7.62 мм трассирущие под ПНВ</Russian>
<Russian>7.62 мм ИК-трассирующие</Russian>
</Key>
<Key ID="STR_ACE_20Rnd_762x51_mag_Tracer_DimDescription">
<English>Caliber: 7.62x51 mm Tracer IR-DIM&lt;br /&gt;Rounds: 20&lt;br /&gt;Used in: Mk18 ABR</English>
@ -412,7 +412,7 @@
<Czech>7.62mm 20ks SD Zásobník</Czech>
<Portuguese>Carregador de 20 projéteis SD de 7,62mm</Portuguese>
<Italian>Caricatore 7.62mm 20Rnd Sil.</Italian>
<Russian>Магазин из 20-и 7.62 мм дозвуковых</Russian>
<Russian>Магазин из 20-ти 7.62 мм дозвуковых</Russian>
</Key>
<Key ID="STR_ACE_20Rnd_762x51_mag_SDNameShort">
<English>7.62mm SD</English>
@ -448,7 +448,7 @@
<Czech>7.62mm 20ks AP Zásobník</Czech>
<Portuguese>Carregador de 20 projéteis AP de 7,62mm</Portuguese>
<Italian>Caricatore 7.62mm 20Rnd AP</Italian>
<Russian>Магазин из 20-и 7.62 мм бронебойных</Russian>
<Russian>Магазин из 20-ти 7.62 мм бронебойных</Russian>
</Key>
<Key ID="STR_ACE_20Rnd_762x51_mag_APNameShort">
<English>7.62mm AP</English>
@ -487,4 +487,4 @@
<Italian>Calibro: 7.62x51mm M118LR&lt;br /&gt;Munizioni:20&lt;br /&gt;In uso su: M14</Italian>
</Key>
</Package>
</Project>
</Project>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2014-12-22 -->
<!-- Edited with tabler - 2015-04-10 -->
<Project name="ACE">
<Package name="Map">
<Key ID="STR_ACE_MapTools_Name">
@ -142,7 +142,7 @@
<Polish>Kierunek: %1°</Polish>
<Spanish>Dirección: %1°</Spanish>
<Hungarian>Irány: %1</Hungarian>
<Russian>Направление:%1</Russian>
<Russian>Направление: %1°</Russian>
</Key>
</Package>
</Project>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2014-12-22 -->
<!-- Edited with tabler - 2015-04-10 -->
<Project name="ACE">
<Package name="Markers">
<Key ID="STR_ACE_Markers_MarkerDirection">
@ -9,7 +9,7 @@
<Czech>Směr: %1°</Czech>
<Polish>Kierunek: %1°</Polish>
<Spanish>Dirección: %1°</Spanish>
<Russian>Направление: %1</Russian>
<Russian>Направление: %1°</Russian>
</Key>
</Package>
</Project>

View File

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2015-04-07 -->
<Project name="ACE">
<Package name="Medical">
<Key ID="STR_ACE_Medical_Inject_Atropine">
<English>Inject Atropine</English>
<German>Atropin</German>
<German>Atropin injizieren</German>
<Spanish>Inyectar atropina</Spanish>
<Russian>Ввести атропин</Russian>
</Key>
<Key ID="STR_ACE_Medical_Inject_Epinephrine">
<English>Inject Epinephrine</English>
@ -47,16 +47,19 @@
<English>Transfuse Plasma</English>
<German>Plasmatransfusion</German>
<Spanish>Transfundir plasma</Spanish>
<Russian>Перелить плазму</Russian>
</Key>
<Key ID="STR_ACE_Medical_Transfuse_Saline">
<English>Transfuse Saline</English>
<German>Salzlösungtransfusion</German>
<Spanish>Transfundir salina</Spanish>
<Russian>Влить физраствор</Russian>
</Key>
<Key ID="STR_ACE_Medical_Apply_Tourniquet">
<English>Apply Tourniquet</English>
<German>Aderpresse anwenden</German>
<Spanish>Aplicar torniquete</Spanish>
<Russian>Наложить жгут</Russian>
</Key>
<Key ID="STR_ACE_Medical_Bandage">
<English>Bandage</English>
@ -160,7 +163,7 @@
<Spanish>Inyectando Epinefrina ...</Spanish>
<Polish>Wstrzykiwanie adrenaliny ...</Polish>
<Czech>Aplikuju Adrenalin ...</Czech>
<Russian>Введение андреналина</Russian>
<Russian>Введение андреналина ...</Russian>
<French>Injection d'Adrénaline ...</French>
<Hungarian>Adrenalin beadása...</Hungarian>
<Portuguese>Injetando Epinefrina ...</Portuguese>
@ -169,6 +172,7 @@
<Key ID="STR_ACE_Medical_Injecting_Atropine">
<English>Injecting Atropine ...</English>
<German>Atropin injizieren ...</German>
<Russian>Введение атропина ...</Russian>
</Key>
<Key ID="STR_ACE_Medical_Transfusing_Blood">
<English>Transfusing Blood ...</English>
@ -186,11 +190,13 @@
<English>Transfusing Saline ...</English>
<German>Sallösungtransfusion ...</German>
<Spanish>Transfusión de salina ...</Spanish>
<Russian>Вливание физраствора ...</Russian>
</Key>
<Key ID="STR_ACE_Medical_Transfusing_Plasma">
<English>Transfusing Plasma ...</English>
<German>Plasmatransfusion ...</German>
<Spanish>Transfusión de plasma ...</Spanish>
<Russian>Переливание плзмы ...</Russian>
</Key>
<Key ID="STR_ACE_Medical_Bandaging">
<English>Bandaging ...</English>
@ -202,12 +208,13 @@
<Italian>Sto applicando la benda ...</Italian>
<Hungarian>Bekötözés...</Hungarian>
<Portuguese>Atando ...</Portuguese>
<Russian>Перевязывание....</Russian>
<Russian>Перевязывание ...</Russian>
</Key>
<Key ID="STR_ACE_Medical_Applying_Tourniquet">
<English>Applying Tourniquet ...</English>
<German>Aderpresse ...</German>
<German>Setze Aderpresse an ...</German>
<Spanish>Aplicando torniquete ...</Spanish>
<Russian>Наложение жгута ...</Russian>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIONS_Medical">
<English>Medical</English>
@ -222,104 +229,138 @@
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIONS_FieldDressing">
<English>Field Dressing</English>
<German>Notverband</German>
<Spanish>Compresa de campaña</Spanish>
<Russian>Бинтовая повязка</Russian>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIONS_PackingBandage">
<English>Packing Bandage</English>
<German>Verband</German>
<Spanish>Vendaje compresivo</Spanish>
<Russian>Компресионный пакет</Russian>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIONS_ElasticBandage">
<English>Elastic Bandage</English>
<German>Elastische Binde</German>
<Spanish>Vendaje elástico</Spanish>
<Russian>Давящая повязка</Russian>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIONS_QuikClot">
<English>QuikClot</English>
<German>QuikClot</German>
<Spanish>QuikClot</Spanish>
<Russian>QuickClot</Russian>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIONS_CheckPulse">
<English>Check Pulse</English>
<German>Puls überprüfen</German>
<Spanish>Comprobar pulso</Spanish>
<Russian>Проверить пульс</Russian>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIONS_CheckBloodPressure">
<English>Check Blood Pressure</English>
<German>Blutdruck messen</German>
<German>Blutdruck überprüfen</German>
<Spanish>Comprobar presión arterial</Spanish>
<Russian>Проверить кровяное давление</Russian>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIONS_TriageCard">
<English>Triage Card</English>
<German>Triage Karte</German>
<German>Verletztenanhängekarte</German>
<Spanish>Tarjeta de triaje</Spanish>
<Russian>Медкарта</Russian>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIONS_Tourniquet">
<English>Tourniquet</English>
<German>Tourniquet</German>
<German>Aderpresse</German>
<Spanish>Torniquete</Spanish>
<Russian>Жгут</Russian>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIONS_RemoveTourniquet">
<English>Remove Tourniquet</English>
<German>Entferne Tourniquet</German>
<German>Entferne Aderpresse</German>
<Spanish>Quitar torniquete</Spanish>
<Russian>Снять жгут</Russian>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIONS_Blood4_1000">
<English>Give Blood IV (1000ml)</English>
<German>Gebe Blut IV (1000ml)</German>
<Spanish>Dar Sangre IV (1000ml)</Spanish>
<Russian>Дать кровь для в/в вливания (1000 мл)</Russian>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIONS_Blood4_500">
<English>Give Blood IV (500ml)</English>
<German>Gebe Blut IV (500ml)</German>
<Spanish>Dar Sangre IV (500ml)</Spanish>
<Russian>Дать кровь для в/в вливания (500 мл)</Russian>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIONS_Blood4_250">
<English>Give Blood IV (250ml)</English>
<German>Gebe Blut IV (250ml)</German>
<Spanish>Dar Sangre IV (250ml)</Spanish>
<Russian>Дать кровь для в/в вливания (250 мл)</Russian>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIONS_Plasma4_1000">
<English>Give Plasma IV (1000ml)</English>
<German>Gebe Plasma IV (1000ml)</German>
<Spanish>Dar Plasma IV (1000ml)</Spanish>
<Russian>Дать плазму для в/в вливания (1000 мл)</Russian>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIONS_Plasma4_500">
<English>Give Plasma IV (500ml)</English>
<German>Gebe Plasma IV (500ml)</German>
<Spanish>Dar Plasma IV (500ml)</Spanish>
<Russian>Дать плазму для в/в вливания (500 мл)</Russian>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIONS_Plasma4_250">
<English>Give Plasma IV (250ml)</English>
<German>Gebe Plasma IV (250ml)</German>
<Spanish>Dar Plasma IV (250ml)</Spanish>
<Russian>Дать плазму для в/в вливания (250 мл)</Russian>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIONS_Saline4_1000">
<English>Give Saline IV (1000ml)</English>
<Spanish>Dar Salino IV (1000ml)</Spanish>
<Russian>Дать физраствор для в/в вливания (1000 мл)</Russian>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIONS_Saline4_500">
<English>Give Saline IV (500ml)</English>
<Spanish>Dar Salino IV (500ml)</Spanish>
<Russian>Дать физраствор для в/в вливания (500 мл)</Russian>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIONS_Saline4_250">
<English>Give Saline IV (250ml)</English>
<Spanish>Dar Salino IV (250ml)</Spanish>
<Russian>Дать физраствор для в/в вливания (250 мл)</Russian>
</Key>
<Key ID="STR_ACE_MEDICAL_TRIAGE_STATUS_MINOR">
<English>Minor</English>
<German>Gering</German>
<Spanish>Menor</Spanish>
<Russian>Незначительные травмы</Russian>
</Key>
<Key ID="STR_ACE_MEDICAL_TRIAGE_STATUS_DELAYED">
<English>Delayed</English>
<Spanish>Retrasado</Spanish>
<Russian>Груз 300</Russian>
</Key>
<Key ID="STR_ACE_MEDICAL_TRIAGE_STATUS_IMMEDIATE">
<English>Immediate</English>
<Spanish>Inmediato</Spanish>
<Russian>Помощь отложена</Russian>
</Key>
<Key ID="STR_ACE_MEDICAL_TRIAGE_STATUS_DECEASED">
<English>Deceased</English>
<Spanish>Fallecido</Spanish>
<Russian>Груз 200</Russian>
</Key>
<Key ID="STR_ACE_MEDICAL_TRIAGE_STATUS_NONE">
<English>None</English>
<Spanish>Ninguno</Spanish>
<Russian>Нет</Russian>
</Key>
<Key ID="STR_ACE_MEDICAL_NORMAL_BREATHING">
<English>Normal breathing</English>
<German>Normales Atmen</German>
<Russian>Дыхание в норме</Russian>
<Spanish>Respiración normal</Spanish>
<French>Respiration Normale</French>
@ -327,6 +368,7 @@
</Key>
<Key ID="STR_ACE_MEDICAL_NO_BREATHING">
<English>No breathing</English>
<German>Atmet nicht</German>
<Russian>Дыхания нет</Russian>
<Spanish>No respira</Spanish>
<French>Apnée</French>
@ -334,6 +376,7 @@
</Key>
<Key ID="STR_ACE_MEDICAL_DIFFICULT_BREATHING">
<English>Difficult breathing</English>
<German>Schweres Atmen</German>
<Russian>Дыхание затруднено</Russian>
<Spanish>Dificultad para respirar</Spanish>
<French>Difficultée Respiratoire</French>
@ -341,6 +384,7 @@
</Key>
<Key ID="STR_ACE_MEDICAL_ALMOST_NO_BREATHING">
<English>Almost no breathing</English>
<German>Atmet beinahe nicht</German>
<Russian>Дыхания почти нет</Russian>
<Spanish>Casi sin respiración</Spanish>
<French>Respiration Faible</French>
@ -348,6 +392,7 @@
</Key>
<Key ID="STR_ACE_MEDICAL_STATUS_BLEEDING">
<English>Bleeding</English>
<German>Blutet</German>
<Russian>Кровотечение</Russian>
<Spanish>Sangrando</Spanish>
<French>Seignement</French>
@ -355,6 +400,7 @@
</Key>
<Key ID="STR_ACE_MEDICAL_STATUS_PAIN">
<English>In Pain</English>
<German>Unter Schmerzen</German>
<Russian>Испытывает боль</Russian>
<Spanish>Con Dolor</Spanish>
<French>A De La Douleur</French>
@ -362,6 +408,7 @@
</Key>
<Key ID="STR_ACE_MEDICAL_STATUS_LOST_BLOOD">
<English>Lost a lot of Blood</English>
<German>Hat eine große Menge Blut verloren</German>
<Russian>Большая кровопотеря</Russian>
<Spanish>Mucha Sangre perdida</Spanish>
<French>A Perdu Bcp de Sang</French>
@ -369,6 +416,7 @@
</Key>
<Key ID="STR_ACE_MEDICAL_STATUS_TOURNIQUET_APPLIED">
<English>Tourniquet [CAT]</English>
<German>Aderpresse [CAT]</German>
<Russian>Жгут</Russian>
<Spanish>Torniquete [CAT]</Spanish>
<French>Garot [CAT]</French>
@ -376,11 +424,13 @@
</Key>
<Key ID="STR_ACE_MEDICAL_receivingIvVolume">
<English>Receiving IV [%1ml]</English>
<German>Wiederbeleben IV [%1ml]</German>
<Spanish>Reciviendo IV [%1ml]</Spanish>
<Russian>Принимается переливание [%1 мл]</Russian>
</Key>
<Key ID="STR_ACE_MEDICAL_BANDAGE_BASIC_DISPLAY">
<English>Bandage (Basic)</English>
<German>Verband (Basis)</German>
<Russian>Повязка (обычная)</Russian>
<Spanish>Vendaje (Básico)</Spanish>
<French>Bandage (Standard)</French>
@ -388,27 +438,23 @@
</Key>
<Key ID="STR_ACE_MEDICAL_BANDAGE_BASIC_DESC_SHORT">
<English>Used to cover a wound</English>
<German>Verwendet um die Wunde zu schützen</German>
<Russian>Для перевязки ран</Russian>
<Spanish>Utilizado para cubrir una herida</Spanish>
<French>Utilisé Pour Couvrir Une Blessure</French>
<Polish>Używany w celu przykrycia i ochrony miejsca zranienia</Polish>
</Key>
<Key ID="STR_ACE_MEDICAL_BANDAGE_BASIC_DESC_USE">
<English>A dressing, that is a particular material used to cover a wound, which is applied over the wound
once bleeding has been stemmed.
</English>
<English>A dressing, that is a particular material used to cover a wound, which is applied over the wound once bleeding has been stemmed.</English>
<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>
<Polish>Opatrunek materiałowy, używany do przykrywania ran, zakładany na ranę po zatamowaniu krwawienia.
</Polish>
<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>
<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">
<English>Packing Bandage</English>
<German>Verband</German>
<Russian>Тампонирующая повязка</Russian>
<Spanish>Vendaje Compresivo</Spanish>
<French>Bandage Mèche</French>
@ -416,28 +462,22 @@
</Key>
<Key ID="STR_ACE_MEDICAL_PACKING_BANDAGE_DESC_SHORT">
<English>Used to pack medium to large wounds and stem the bleeding</English>
<German>Wird verwendet, um mittel bis große Wunden zu verbinden und die Blutung zu stoppen</German>
<Russian>Для тампонирования ран среднего и большого размера и остановки кровотечения.</Russian>
<Spanish>Se utiliza para vendar heridas medianas y grandes y detener el sangrado</Spanish>
<French>Utiliser pour remplire la cavité créé dans une blessure moyenne et 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>
<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>
<Polish>Opatrunek stosowany w celu zatrzymania krwawienia i osłony większych ran.</Polish>
</Key>
<Key ID="STR_ACE_MEDICAL_BANDAGE_ELASTIC_DISPLAY">
<English>Bandage (Elastic)</English>
<German>Verband (Elastisch)</German>
<Russian>Повязка (давящая)</Russian>
<Spanish>Vendaje (Elástico)</Spanish>
<French>Bandage (Élastique)</French>
@ -445,6 +485,7 @@
</Key>
<Key ID="STR_ACE_MEDICAL_BANDAGE_ELASTIC_DESC_SHORT">
<English>Bandage kit, Elastic</English>
<German>Verbandssatz, Elastisch</German>
<Russian>Давящая повязка</Russian>
<Spanish>Vendaje (Elástico)</Spanish>
<French>Bandage Compressif Élastique</French>
@ -452,15 +493,15 @@
</Key>
<Key ID="STR_ACE_MEDICAL_BANDAGE_ELASTIC_DESC_USE">
<English></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 etre utiliser pour compresser la plaie afin de ralentire le seignement et assurer la tenue du bandage lors de mouvment.</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>
<Key ID="STR_ACE_MEDICAL_TOURNIQUET_DISPLAY">
<English>Tourniquet (CAT)</English>
<German>Aderpresse (CAT)</German>
<Russian>Жгут</Russian>
<Spanish>Torniquete (CAT)</Spanish>
<French>Garot (CAT)</French>
@ -468,34 +509,30 @@
</Key>
<Key ID="STR_ACE_MEDICAL_TOURNIQUET_DESC_SHORT">
<English>Slows down blood loss when bleeding</English>
<German>Veringert den Blutverlust</German>
<Russian>Уменьшает кровопотерю при кровотечении.</Russian>
<Spanish>Reduce la velocidad de pérdida de sangre</Spanish>
<French>Ralentit le seignement</French>
<Polish>Zmniejsza ubytek krwi z kończyn w przypadku krwawienia.</Polish>
</Key>
<Key ID="STR_ACE_MEDICAL_TOURNIQUET_DESC_USE">
<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>
<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>
<Polish>Opaska zaciskowa CAT służy do tamowanie krwotoków w sytuacji zranienia kończyn z masywnym
krwawieniem tętniczym lub żylnym.
</Polish>
<Polish>Opaska zaciskowa CAT służy do tamowanie krwotoków w sytuacji zranienia kończyn z masywnym krwawieniem tętniczym lub żylnym.</Polish>
</Key>
<Key ID="STR_ACE_MEDICAL_MORPHINE_DISPLAY">
<English>Morphine autoinjector</English>
<Russian>Морфин в автоматическом шприце</Russian>
<German>Morphin Autoinjector</German>
<Russian>Морфин в пневмошприце</Russian>
<Spanish>Morfina auto-inyectable</Spanish>
<French>Auto-injecteur de Morphine</French>
<Polish>Autostrzykawka z morfiną</Polish>
</Key>
<Key ID="STR_ACE_MEDICAL_MORPHINE_DESC_SHORT">
<English>Used to combat moderate to severe pain experiences</English>
<German>Wird verwendet um moderate bis starke Schmärzen zu lindern.</German>
<Russian>Для снятия средних и сильных болевых ощущений.</Russian>
<Spanish>Usado para combatir los estados dolorosos moderados a severos</Spanish>
<French>Utiliser pour contrer les douleurs modéré à severes.</French>
@ -510,7 +547,7 @@
</Key>
<Key ID="STR_ACE_MEDICAL_ATROPINE_DISPLAY">
<English>Atropin autoinjector</English>
<Russian>Атропин в автоматическом шприце</Russian>
<Russian>Атропин в пневмошприце</Russian>
<Spanish>Atropina auto-inyectable</Spanish>
<French>Auto-injecteur d'Atropine</French>
<Polish>Autostrzykawka AtroPen</Polish>
@ -527,13 +564,11 @@
<Russian>Препарат, используемый в войсках для защиты от оружия массового поражения.</Russian>
<Spanish>Medicamento usado por Militares en escenarios NBQ</Spanish>
<French>Médicament utilisé par l'armée en cas d'attaque CBRN</French>
<Polish>Atropina. Stosowana jako lek rozkurczowy i środek rozszerzający źrenice. Środek stosowany w
przypadku zagrożeń NBC.
</Polish>
<Polish>Atropina. Stosowana jako lek rozkurczowy i środek rozszerzający źrenice. Środek stosowany w przypadku zagrożeń NBC.</Polish>
</Key>
<Key ID="STR_ACE_MEDICAL_EPINEPHRINE_DISPLAY">
<English>Epinephrine autoinjector</English>
<Russian>Адреналин в автоматическом шприце</Russian>
<Russian>Адреналин в пневмошприце</Russian>
<Spanish>Epinefrina auto-inyectable</Spanish>
<French>Auto-injecteur d'épinéphrine</French>
<Polish>Autostrzykawka EpiPen</Polish>
@ -550,23 +585,10 @@
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>
<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>
<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>
<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">
<English>Plasma IV (1000ml)</English>
@ -618,21 +640,11 @@
<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 perdido. Uso
habitual durante el transporte de heridos.
</Spanish>
<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 perdido. Uso habitual durante el transporte de heridos.</Spanish>
</Key>
<Key ID="STR_ACE_MEDICAL_BLOOD_IV_500">
<English>Blood IV (500ml)</English>
@ -663,18 +675,11 @@
<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>
<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>
<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>
<French>Un remplacment temporaire pour rétablir la tention artériel lors de perte sanguine, étant ajouter par intraveineuse</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">
<English>Saline IV (500ml)</English>
@ -708,9 +713,7 @@
<English></English>
<Russian></Russian>
<French>Un bandage servant a coaguler les seignements mineur à moyen.</French>
<Polish>Proszkowy opatrunek adsorbcyjny przeznaczony do tamowania zagrażających życiu krwawień średniej i
dużej intensywności.
</Polish>
<Polish>Proszkowy opatrunek adsorbcyjny 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>
</Key>
<Key ID="STR_ACE_MEDICAL_AID_KIT_DISPLAY">
@ -722,8 +725,7 @@
</Key>
<Key ID="STR_ACE_MEDICAL_AID_KIT_DESC_SHORT">
<English>Includes various treatment kit needed for stitching or advanced treatment</English>
<Russian>Содержит различные материалы и инструменты для зашивания ран и оказания специальной медпомощи.
</Russian>
<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>
<Polish>Zestaw środków medycznych do opatrywania ran i dodatkowego leczenia po-urazowego</Polish>
@ -764,7 +766,6 @@
<Russian>Мешок для упаковки трупов</Russian>
<Spanish>Bolsa para cadáveres</Spanish>
</Key>
<Key ID="STR_ACE_MEDICAL_CHECK_BLOODPRESSURE">
<English>Blood Pressure</English>
<Russian>Артериальное давление</Russian>
@ -978,35 +979,42 @@
<Key ID="STR_ACE_Medical_UnloadPatient">
<English>Unload patient</English>
<Spanish>Descargar el paciente</Spanish>
<Russian>Выгрузить пациента</Russian>
</Key>
<Key ID="STR_ACE_Medical_LoadPatient">
<English>Load patient</English>
<Spanish>Cargar el paciente en</Spanish>
<Russian>Погрузить пациента</Russian>
</Key>
<Key ID="STR_ACE_MEDICAL_PlaceInBodyBag">
<English>Place body in bodybag</English>
<Spanish>Colocar cuerpo en bolsa para cadáveres</Spanish>
<Russian>Поместить тело в мешок</Russian>
</Key>
<Key ID="STR_ACE_MEDICAL_PlacingInBodyBag">
<English>Placing body in bodybag</English>
<Spanish>Colocando cuerpo en bolsa para cadáveres</Spanish>
<Russian>Помещение тела в мешок ...</Russian>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIVITY_bandagedPatient">
<English>%1 has bandaged patient</English>
<Spanish>%1 has vendado al paciente</Spanish>
<Russian>%1 перевязал пациента</Russian>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIVITY_usedItem">
<English>%1 used %2</English>
<Spanish>%1 usó %2</Spanish>
<Russian>%1 применил %2</Russian>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIVITY_gaveIV">
<English>%1 has given an IV</English>
<Spanish>%1 has puesto una IV</Spanish>
<Russian>%1 провел переливание</Russian>
</Key>
<Key ID="STR_ACE_MEDICAL_ACTIVITY_appliedTourniquet">
<English>%1 applied a tourniquet</English>
<Spanish>%1 aplicado torniquete</Spanish>
<Russian>%1 наложил жгут</Russian>
</Key>
</Package>
</Project>

View File

@ -1,30 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2015-03-24 -->
<Project name="ACE">
<Package name="microdagr">
<Key ID="STR_ACE_microdagr_itemName">
<English>MicroDAGR GPS</English>
<German>MicroDAGR GPS</German>
<Spanish>GPS MicroDAGR</Spanish>
<Russian>MicroDAGR GPS</Russian>
</Key>
<Key ID="STR_ACE_microdagr_itemDescription">
<English>MicroDAGR advanced GPS receiver</English>
<German>MicroDAGR - Fortgeschrittener GPS-Empfänger</German>
<Spanish>Receptor avanzado GPS MicroDAGR</Spanish>
<Russian>Многофункциональный GPS-приёмник.</Russian>
</Key>
<Key ID="STR_ACE_microdagr_settingUseMils">
<English>Angular Unit:</English>
<Spanish>Unidad angular:</Spanish>
<Russian>Угловые единицы:</Russian>
</Key>
<Key ID="STR_ACE_microdagr_settingMils">
<English>Mils</English>
<German>Mils</German>
<Spanish>Mils</Spanish>
<Russian>Тысячные</Russian>
</Key>
<Key ID="STR_ACE_microdagr_settingShowWP">
<English>Show Waypoints On Map:</English>
<German>Zeige Wegpunkte auf Karte</German>
<Spanish>Mostrar puntos de ruta en el mapa:</Spanish>
<Russian>Показывать маршрутные точки на карте:</Russian>
</Key>
<Key ID="STR_ACE_microdagr_settingDegrees">
<English>Degrees</English>
<German>Grad</German>
<Spanish>Grados</Spanish>
<Russian>Градусы</Russian>
</Key>
<Key ID="STR_ACE_microdagr_settingOn">
<English>On</English>
@ -51,53 +61,73 @@
<Key ID="STR_ACE_microdagr_wpEnterCords">
<English>Enter Grid Cords:</English>
<Spanish>Introducir coordenadas de cuadrícula:</Spanish>
<Russian>Введите координаты:</Russian>
</Key>
<Key ID="STR_ACE_microdagr_wpEnterName">
<English>Name of [%1]</English>
<German>Name von [%1]</German>
<Spanish>Nombre de [%1]</Spanish>
<Russian>Название [%1]</Russian>
</Key>
<Key ID="STR_ACE_microdagr_controlMGRS">
<English>MGRS-New</English>
<German>MGRS-NEU</German>
<Spanish>Nuevo-MGRS</Spanish>
<Russian>MGRS-Новая</Russian>
</Key>
<Key ID="STR_ACE_microdagr_controlWGD">
<English>WGD</English>
<German>WGD</German>
<Spanish>WGD</Spanish>
<Russian>WGD</Russian>
</Key>
<Key ID="STR_ACE_microdagr_controlRange">
<English>Range:</English>
<Spanish>Distancia</Spanish>
<German>Reichweite:</German>
<Russian>Дистанция:</Russian>
</Key>
<Key ID="STR_ACE_microdagr_compasDirection">
<English>Compass Direction</English>
<German>Kompass Richtung</German>
<Spanish>Dirección de la brújula</Spanish>
<Russian>Азимут</Russian>
</Key>
<Key ID="STR_ACE_microdagr_menuMark">
<English>Mark</English>
<German>Markiere</German>
<Spanish>Marca</Spanish>
<Russian>Отметка</Russian>
</Key>
<Key ID="STR_ACE_microdagr_menuWaypoints">
<English>Waypoints</English>
<Spanish>Puntos de ruta</Spanish>
<German>Wegpunkte</German>
<Russian>Машрутные точки</Russian>
</Key>
<Key ID="STR_ACE_microdagr_menuConnectTo">
<English>Connect To</English>
<Spanish>Conectar a</Spanish>
<Russian>Соединиться с </Russian>
<German>Verbinde zu</German>
</Key>
<Key ID="STR_ACE_microdagr_menuSettings">
<English>Settings</English>
<German>Einstellungen</German>
<Spanish>Configuración</Spanish>
<Russian>Настройки</Russian>
</Key>
<Key ID="STR_ACE_microdagr_waypointsSet">
<English>SetWP</English>
<German>SetzeWP</German>
<Spanish>Establecer PR</Spanish>
<Russian>Установить МТ</Russian>
</Key>
<Key ID="STR_ACE_microdagr_waypointsAdd">
<English>Add</English>
<German>Hinzufügen</German>
<Spanish>Añadir</Spanish>
<Russian>Добавить</Russian>
</Key>
<Key ID="STR_ACE_microdagr_waypointsDelete">
<English>Delete</English>
@ -112,19 +142,27 @@
</Key>
<Key ID="STR_ACE_microdagr_toggleUnit">
<English>Toggle MicroDAGR Display Mode</English>
<German>Wechsle MircoDAGR Bildschirmmodus</German>
<Spanish>Conmutar modo de pantalla del MicroDAGR</Spanish>
<Russian>Сменить режим показа MicroDAGR</Russian>
</Key>
<Key ID="STR_ACE_microdagr_show">
<English>Show MicoDAGR</English>
<German>Zeige MicroDAGR</German>
<Spanish>Mostrar MicroDAGR</Spanish>
<Russian>Показать MicroDAGR</Russian>
</Key>
<Key ID="STR_ACE_microdagr_configure">
<English>Configure MicroDAGR</English>
<German>Stelle MicroDAGR ein</German>
<Spanish>Configurar MicroDAGR</Spanish>
<Russian>Настроить MicroDAGR</Russian>
</Key>
<Key ID="STR_ACE_microdagr_closeUnit">
<English>Close MicroDAGR</English>
<German>Schließe MicroDAGR</German>
<Spanish>Cerrar MicroDAGR</Spanish>
<Russian>Закрыть MicroDAGR</Russian>
</Key>
</Package>
</Project>

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