diff --git a/AUTHORS.txt b/AUTHORS.txt index 7e8e919682..d57fcf2d23 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -30,6 +30,7 @@ ACCtomeek Adanteh aeroson Aggr094 +Anthariel BlackQwar Brakoviejo Codingboy @@ -51,6 +52,7 @@ havena Hawkins jokoho48 Jonpas +Kllrt Legolasindar "Viper" licht-im-Norden87 MarcBook @@ -69,3 +71,6 @@ Tourorist Valentin Torikian zGuba Aleksey EpMAK Yermakov +ruPaladin +BlackPixxel +Asgar Serran diff --git a/addons/ai/CfgWeapons.hpp b/addons/ai/CfgWeapons.hpp index 22e8f703fc..be3245cce3 100644 --- a/addons/ai/CfgWeapons.hpp +++ b/addons/ai/CfgWeapons.hpp @@ -574,4 +574,198 @@ class CfgWeapons { maxRange = 1200; //1000; }; }; + + // marksmen marksmen + class DMR_03_base_F: Rifle_Long_Base_F { + modes[] += {"ACE_Burst_far"}; + + class Single: Mode_SemiAuto { + minRange = 120; // 2; + minRangeProbab = 0.7; // 0.3; + midRangeProbab = 0.3; // 0.7; + }; + + class FullAuto; + + class single_close_optics1: Single { + minRange = 120; // 2; + minRangeProbab = 0.8; // 0.05; + midRangeProbab = 0.05; // 0.8; + }; + + class single_medium_optics1: single_close_optics1 { + minRangeProbab = 0.7; // 0.05; + midRangeProbab = 0.05; // 0.7; + }; + + class single_far_optics1: single_medium_optics1 { + minRange = 400; // 300; + minRangeProbab = 0.5; // 0.05; + midRangeProbab = 0.05; // 0.5; + }; + + class fullauto_medium: FullAuto { + minRange = 20; // 2; + maxRange = 150; // 100; + burst = "3 + round random 5"; // 3; + }; + + class ACE_Burst_far: fullauto_medium { + aiRateOfFire = 2.0; + aiRateOfFireDistance = 500; + minRange = 400; + minRangeProbab = 0.1; + midRange = 500; + midRangeProbab = 0.2; + maxRange = 600; + maxRangeProbab = 0.2; + burst = "2 + round random 3"; + }; + }; + + class DMR_05_base_F: Rifle_Long_Base_F { + modes[] += {"ACE_Burst_far"}; + + class Single: Mode_SemiAuto { + minRange = 120; // 2; + minRangeProbab = 0.7; // 0.3; + midRangeProbab = 0.3; // 0.7; + }; + + class FullAuto; + + class single_close_optics1: Single { + minRange = 120; // 2; + minRangeProbab = 0.8; // 0.05; + midRangeProbab = 0.05; // 0.8; + }; + + class single_medium_optics1: single_close_optics1 { + minRangeProbab = 0.7; // 0.05; + midRangeProbab = 0.05; // 0.7; + }; + + class single_far_optics1: single_medium_optics1 { + minRange = 400; // 300; + minRangeProbab = 0.5; // 0.05; + midRangeProbab = 0.05; // 0.5; + }; + + class fullauto_medium: FullAuto { + minRange = 20; // 2; + maxRange = 150; // 100; + burst = "3 + round random 5"; // 3; + }; + + class ACE_Burst_far: fullauto_medium { + aiRateOfFire = 2.0; + aiRateOfFireDistance = 500; + minRange = 400; + minRangeProbab = 0.1; + midRange = 500; + midRangeProbab = 0.2; + maxRange = 600; + maxRangeProbab = 0.2; + burst = "2 + round random 3"; + }; + }; + + class DMR_06_base_F: Rifle_Long_Base_F { + modes[] += {"ACE_Burst_far"}; + + class Single: Mode_SemiAuto { + minRange = 120; // 2; + minRangeProbab = 0.7; // 0.3; + midRangeProbab = 0.3; // 0.7; + }; + + class FullAuto; + + class single_close_optics1: Single { + minRange = 120; // 2; + minRangeProbab = 0.8; // 0.05; + midRangeProbab = 0.05; // 0.8; + }; + + class single_medium_optics1: single_close_optics1 { + minRangeProbab = 0.7; // 0.05; + midRangeProbab = 0.05; // 0.7; + }; + + class single_far_optics1: single_medium_optics1 { + minRange = 400; // 300; + minRangeProbab = 0.5; // 0.05; + midRangeProbab = 0.05; // 0.5; + }; + + class fullauto_medium: FullAuto { + minRange = 20; // 2; + maxRange = 150; // 100; + burst = "3 + round random 5"; // 3; + }; + + class ACE_Burst_far: fullauto_medium { + aiRateOfFire = 2.0; + aiRateOfFireDistance = 500; + minRange = 400; + minRangeProbab = 0.1; + midRange = 500; + midRangeProbab = 0.2; + maxRange = 600; + maxRangeProbab = 0.2; + burst = "2 + round random 3"; + }; + }; + + // marksmen medium mg + class MMG_01_base_F: Rifle_Long_Base_F { + aiDispersionCoefY = 25.0; + aiDispersionCoefX = 20.0; + modes[] += {"ACE_Burst_far"}; + + class manual; + class burst; + class close; + class short; + class medium; + class ACE_Burst_far: medium { + aiRateOfFire = 6.0; + aiRateOfFireDistance = 900; + minRange = 700; + minRangeProbab = 0.1; + midRange = 900; + midRangeProbab = 0.2; + maxRange = 1100; + maxRangeProbab = 0.2; + burst = "3 + round random 5"; + }; + + class far_optic1; + class far_optic2; + }; + + class MMG_02_base_F: Rifle_Long_Base_F { + aiDispersionCoefY = 20.0; + aiDispersionCoefX = 15.0; + modes[] += {"ACE_Burst_far"}; + + class manual; + class close; + class short; + class medium; + class ACE_Burst_far: medium { + aiRateOfFire = 6.0; + aiRateOfFireDistance = 900; + minRange = 700; + minRangeProbab = 0.1; + midRange = 900; + midRangeProbab = 0.2; + maxRange = 1100; + maxRangeProbab = 0.2; + burst = "3 + round random 5"; + }; + + class far_optic1; + class far_optic2; + }; }; diff --git a/addons/aircraft/stringtable.xml b/addons/aircraft/stringtable.xml index 4d1c49fff6..c0966ddcfb 100644 --- a/addons/aircraft/stringtable.xml +++ b/addons/aircraft/stringtable.xml @@ -40,7 +40,7 @@ Close Cargo Door Laderampe schließen Cerrar compuerta de carga - Fermer Rampe Cargo + Fermer la Rampe du Cargo Zamknij drzwi ładowni Zavřít nákladní prostor Rámpát zárni diff --git a/addons/attach/stringtable.xml b/addons/attach/stringtable.xml index 839ac2e168..7aa3f0d6ee 100644 --- a/addons/attach/stringtable.xml +++ b/addons/attach/stringtable.xml @@ -1,5 +1,4 @@  - @@ -44,7 +43,7 @@ Marcador IR acoplado Przyczepiono stroboskop IR Strobe IR attaché - IR Značkovač Připnutý + IR Značkovač připnutý Marcador IV Acoplado Strobo IR attaccata Infravörös jeladó hozzácsatolva @@ -56,7 +55,7 @@ Marcador IR quitado Odczepiono stroboskop IR Strobe IR détaché - IR Značkovač Odepnutý + IR Značkovač odepnutý Marcador IV Separado Strobo IR staccata Infravörös jeladó lecsatolva @@ -68,7 +67,7 @@ Granada IR acoplada Przyczepiono granat IR Grenade IR attachée - IR Granát Připnutý + IR Granát připnutý Granada IV Acoplada Granata IR attaccata Infravörös gránát hozzácsatolva @@ -80,7 +79,7 @@ Granada IR quitada Odczepiono granat IR Grenade IR détachée - IR Granát Odepnutý + IR Granát odepnutý Granada IV Separada Granata IR staccata Infravörös gránát lecsatolva @@ -92,7 +91,7 @@ Barra de luz acoplada Przyczepiono światło chemiczne Chemlight attaché - Chemické světlo Připnuto + Chemické světlo připnuto Chemlight Acoplada Chemlight attaccata Chemlight hozzácsatolva @@ -104,7 +103,7 @@ Barra de luz quitada Odczepiono światło chemiczne Chemlight détaché - Chemické světlo Odepnuto + Chemické světlo odepnuto Chemlight Separada Chemlight staccata Chemlight hozzácsatolva @@ -172,10 +171,12 @@ Attach Failed - Échec du Attacher + Échec de l'attachement Befestigen fehlgeschlagen Соединение прервано Error al acoplar + Připnutí selhalo + Przyczepianie nie powiodło się - \ No newline at end of file + diff --git a/addons/captives/functions/fnc_canSurrender.sqf b/addons/captives/functions/fnc_canSurrender.sqf index 3ee687cfc1..3b810a0c5c 100644 --- a/addons/captives/functions/fnc_canSurrender.sqf +++ b/addons/captives/functions/fnc_canSurrender.sqf @@ -18,6 +18,8 @@ PARAMS_2(_unit,_newSurrenderState); +if (currentWeapon _unit != "") exitWith {false}; + private "_returnValue"; _returnValue = if (_newSurrenderState) then { diff --git a/addons/captives/functions/fnc_setHandcuffed.sqf b/addons/captives/functions/fnc_setHandcuffed.sqf index 5917532874..e992339186 100644 --- a/addons/captives/functions/fnc_setHandcuffed.sqf +++ b/addons/captives/functions/fnc_setHandcuffed.sqf @@ -54,7 +54,7 @@ if (_state) then { PARAMS_2(_unit,_newAnimation); if ((_newAnimation != "ACE_AmovPercMstpSsurWnonDnon") && {!(_unit getVariable ["ACE_isUnconscious", false])}) then { ERROR("Handcuff animation interrupted"); - systemChat format ["debug %2: new %1", _newAnimation, time]; + // systemChat format ["debug %2: new %1", _newAnimation, time]; [_unit, "ACE_AmovPercMstpScapWnonDnon", 1] call EFUNC(common,doAnimation); }; }]; diff --git a/addons/captives/functions/fnc_setSurrendered.sqf b/addons/captives/functions/fnc_setSurrendered.sqf index 73451863dd..30f9105511 100644 --- a/addons/captives/functions/fnc_setSurrendered.sqf +++ b/addons/captives/functions/fnc_setSurrendered.sqf @@ -52,7 +52,7 @@ if (_state) then { PARAMS_2(_unit,_newAnimation); if ((_newAnimation != "ACE_AmovPercMstpSsurWnonDnon") && {!(_unit getVariable ["ACE_isUnconscious", false])}) then { ERROR("Surrender animation interrupted"); - systemChat format ["debug %2: new %1", _newAnimation, time]; + // systemChat format ["debug %2: new %1", _newAnimation, time]; [_unit, "ACE_AmovPercMstpSsurWnonDnon", 1] call EFUNC(common,doAnimation); }; }]; diff --git a/addons/captives/stringtable.xml b/addons/captives/stringtable.xml index bc9cff1572..294cf1d68c 100644 --- a/addons/captives/stringtable.xml +++ b/addons/captives/stringtable.xml @@ -1,5 +1,4 @@  - @@ -132,33 +131,48 @@ Surrender + Se rendre Kapitulieren Rendirse Сдаться + Vzdát se + Poddaj się Stop Surrendering + Arrêt de se rendre Den Kampf erneut aufnehmen Dejar de rendirse Остановить сдачу + Přestat se vzdávat + Podejmij walkę ponownie Only use on alive units + Utilisation uniquement sur les unités en vie Nur bei lebenden Einheiten verwendbar Utilizar solo en unidades vivas Только для живых юнитов + Použitelné jen na živé jednotky + Używaj tylko na żywych jednostkach Only use on dismounted inf + Utilisation uniquement sur les infanteries Nur bei abgesessener Infanterie verwendbar Utilizar solo en infanteria desmontada Только для спеш. солдат + Použitelné jen na pěsích jednotkách + Używaj tylko na piechocie poza wszelkimi pojazdami Nothing under mouse + Rien sous la souris Es wurde nichts ausgewählt Nada bajo el ratón Объекты под мышью отсутствуют + Nic není vybráno + Nie ma nic pod kursorem - \ No newline at end of file + diff --git a/addons/common/CfgEventHandlers.hpp b/addons/common/CfgEventHandlers.hpp index eef90451ae..ce0938f063 100644 --- a/addons/common/CfgEventHandlers.hpp +++ b/addons/common/CfgEventHandlers.hpp @@ -26,6 +26,9 @@ class Extended_InitPost_EventHandlers { class GVAR(forceWalk) { init = QUOTE(if (local (_this select 0)) then {_this call FUNC(applyForceWalkStatus);};); }; + class GVAR(muteUnit) { + init = QUOTE(_this call FUNC(muteUnitHandleInitPost)); + }; }; }; @@ -41,4 +44,9 @@ class Extended_Respawn_EventHandlers { respawn = QUOTE(_this call FUNC(resetAllDefaults)); }; }; + class CAManBase { + class GVAR(muteUnit) { + respawn = QUOTE(_this call FUNC(muteUnitHandleRespawn)); + }; + }; }; diff --git a/addons/common/XEH_postInit.sqf b/addons/common/XEH_postInit.sqf index f09dae0eb3..e470e91c95 100644 --- a/addons/common/XEH_postInit.sqf +++ b/addons/common/XEH_postInit.sqf @@ -35,6 +35,7 @@ if (hasInterface) then { ["setDir", {(_this select 0) setDir (_this select 1)}] call FUNC(addEventhandler); ["setFuel", {(_this select 0) setFuel (_this select 1)}] call FUNC(addEventhandler); +["setSpeaker", {(_this select 0) setSpeaker (_this select 1)}] call FUNC(addEventhandler); // hack to get PFH to work in briefing [QGVAR(onBriefingPFH), "onEachFrame", { diff --git a/addons/common/XEH_preInit.sqf b/addons/common/XEH_preInit.sqf index 8d62e9df70..b5382d0b5e 100644 --- a/addons/common/XEH_preInit.sqf +++ b/addons/common/XEH_preInit.sqf @@ -124,6 +124,8 @@ PREP(moduleCheckPBOs); PREP(moduleLSDVehicles); PREP(moveToTempGroup); PREP(muteUnit); +PREP(muteUnitHandleInitPost); +PREP(muteUnitHandleRespawn); PREP(numberToDigits); PREP(numberToDigitsString); PREP(numberToString); diff --git a/addons/common/functions/fnc_addToInventory.sqf b/addons/common/functions/fnc_addToInventory.sqf index b28d864df8..339055487b 100644 --- a/addons/common/functions/fnc_addToInventory.sqf +++ b/addons/common/functions/fnc_addToInventory.sqf @@ -4,9 +4,10 @@ * or places it in a weaponHolder if no space. * * Arguments: - * 0: Unit (OBJECT) - * 1: Classname (String) - * 2: Container (String, Optional) uniform, vest, backpack + * 0: Unit + * 1: Classname + * 2: Container (uniform, vest, backpack) + * 3: Magazine Ammo Count * * Return Value: * Array: @@ -19,37 +20,29 @@ #include "script_component.hpp" EXPLODE_2_PVT(_this,_unit,_classname); +DEFAULT_PARAM(2,_container,""); +DEFAULT_PARAM(3,_ammoCount,-1); + private "_addedToPlayer"; -private "_container"; private "_canAdd"; private "_type"; _canAdd = false; _addedToPlayer = true; -if((count _this) > 2) then { - _container = _this select 2; -} else { - _container = nil; -}; - _type = [_classname] call EFUNC(common,getItemType); -if(!isNil "_container") then { - switch (_container) do { - case "vest": { _canAdd = _unit canAddItemToVest _classname; }; - case "backpack": { _canAdd = _unit canAddItemToBackpack _classname; }; - case "uniform": { _canAdd = _unit canAddItemToUniform _classname; }; - }; -} else { - _container = ""; - _canAdd = _unit canAdd _classname; +switch (_container) do { + case "vest": { _canAdd = _unit canAddItemToVest _classname; }; + case "backpack": { _canAdd = _unit canAddItemToBackpack _classname; }; + case "uniform": { _canAdd = _unit canAddItemToUniform _classname; }; + default {_canAdd = _unit canAdd _classname;}; }; switch ((_type select 0)) do { case "weapon": { if (_canAdd) then { - switch (_container) do { + switch (_container) do { case "vest": { (vestContainer _unit) addWeaponCargoGlobal [_classname, 1]; }; case "backpack": { (backpackContainer _unit) addWeaponCargoGlobal [_classname, 1]; }; case "uniform": { (uniformContainer _unit) addWeaponCargoGlobal [_classname, 1]; }; @@ -64,24 +57,25 @@ switch ((_type select 0)) do { }; }; case "magazine": { + if (_ammoCount == -1) then {_ammoCount = getNumber (configFile >> "CfgMagazines" >> _classname >> "count");}; if (_canAdd) then { switch (_container) do { - case "vest": { (vestContainer _unit) addMagazineCargoGlobal [_classname, 1]; }; - case "backpack": { (backpackContainer _unit) addMagazineCargoGlobal [_classname, 1]; }; - case "uniform": { (uniformContainer _unit) addMagazineCargoGlobal [_classname, 1]; }; - default { _unit addMagazineGlobal _classname; }; + case "vest": { (vestContainer _unit) addMagazineCargoGlobal [_classname, _ammoCount]; }; + case "backpack": { (backpackContainer _unit) addMagazineCargoGlobal [_classname, _ammoCount]; }; + case "uniform": { (uniformContainer _unit) addMagazineCargoGlobal [_classname, _ammoCount]; }; + default {_unit addMagazine [_classname, _ammoCount]; }; }; } else { _addedToPlayer = false; _pos = _unit modelToWorldVisual [0,1,0.05]; _unit = createVehicle ["WeaponHolder_Single_F",_pos,[],0,"NONE"]; - _unit addMagazineCargoGlobal [_classname, 1]; + _unit addMagazineCargoGlobal [_classname, _ammoCount]; _unit setPosATL _pos; }; }; case "item": { if (_canAdd) then { - switch (_container) do { + switch (_container) do { case "vest": { _unit addItemToVest _classname; }; case "backpack": { _unit addItemToBackpack _classname; }; case "uniform": { _unit addItemToUniform _classname; }; diff --git a/addons/common/functions/fnc_muteUnit.sqf b/addons/common/functions/fnc_muteUnit.sqf index 8edf9df391..5c496ea58e 100644 --- a/addons/common/functions/fnc_muteUnit.sqf +++ b/addons/common/functions/fnc_muteUnit.sqf @@ -5,21 +5,34 @@ * * Argument: * 0: Unit (Object) + * 1: Reason to mute the unit (String) * * Return value: * Nothing */ #include "script_component.hpp" -private ["_unit", "_speaker"]; +private ["_unit", "_reason"]; _unit = _this select 0; +_reason = _this select 1; if (isNull _unit) exitWith {}; +// add reason to mute to the unit +private "_muteUnitReasons"; +_muteUnitReasons = _unit getVariable [QGVAR(muteUnitReasons), []]; + +if !(_reason in _muteUnitReasons) then { + _muteUnitReasons pushBack _reason; + _unit setVariable [QGVAR(muteUnitReasons), _muteUnitReasons, true]; +}; + +private "_speaker"; _speaker = speaker _unit; + if (_speaker == "ACE_NoVoice") exitWith {}; -[0, "{(_this select 1) setSpeaker 'ACE_NoVoice'}", _unit, "ACE_Speaker"] call FUNC(execPersistentFnc); +["setSpeaker", [_unit, "ACE_NoVoice"]] call FUNC(globalEvent); _unit setVariable ["ACE_OriginalSpeaker", _speaker, true]; diff --git a/addons/common/functions/fnc_muteUnitHandleInitPost.sqf b/addons/common/functions/fnc_muteUnitHandleInitPost.sqf new file mode 100644 index 0000000000..f0abcfcf01 --- /dev/null +++ b/addons/common/functions/fnc_muteUnitHandleInitPost.sqf @@ -0,0 +1,11 @@ +// by commy2 +#include "script_component.hpp" + +private "_unit"; + +_unit = _this select 0; + +// setSpeaker gets overwritten after init on remote units; if unit is muted, setSpeaker again +if (count (_unit getVariable [QGVAR(muteUnitReasons), []]) > 0) then { + ["setSpeaker", [_unit, "ACE_NoVoice"]] call FUNC(localEvent); +}; diff --git a/addons/common/functions/fnc_muteUnitHandleRespawn.sqf b/addons/common/functions/fnc_muteUnitHandleRespawn.sqf new file mode 100644 index 0000000000..021b083bfd --- /dev/null +++ b/addons/common/functions/fnc_muteUnitHandleRespawn.sqf @@ -0,0 +1,12 @@ +// by commy2 +#include "script_component.hpp" + +private "_unit"; + +_unit = _this select 0; + +// setVariable is broken on JIP after respawn +_unit setVariable [QGVAR(muteUnitReasons), _unit getVariable [QGVAR(muteUnitReasons), []], true]; + +// fix mp issues with respawning and the speaker +["setSpeaker", [_unit, speaker _unit]] call FUNC(globalEvent); diff --git a/addons/common/functions/fnc_restoreVariablesJIP.sqf b/addons/common/functions/fnc_restoreVariablesJIP.sqf index 2c173a054c..ca185082cb 100644 --- a/addons/common/functions/fnc_restoreVariablesJIP.sqf +++ b/addons/common/functions/fnc_restoreVariablesJIP.sqf @@ -23,6 +23,3 @@ _respawnVariables pushBack "ACE_PersistentFunctions"; { _unit setVariable [_x, _unit getVariable _x, true]; } forEach _respawnVariables; - -// fix speaker after respawn -[_unit, format ["{_this setSpeaker '%1'}", speaker _unit], 2] call FUNC(execRemoteFnc); diff --git a/addons/common/functions/fnc_unmuteUnit.sqf b/addons/common/functions/fnc_unmuteUnit.sqf index 8de7708d4b..94ba72f5a4 100644 --- a/addons/common/functions/fnc_unmuteUnit.sqf +++ b/addons/common/functions/fnc_unmuteUnit.sqf @@ -1,23 +1,39 @@ /* * Author: commy2 * - * Unmutes the unit. + * Unmutes the unit. Only unmutes if the last reason was removed. * * Argument: * 0: Unit (Object) + * 1: Reason to unmute the unit. (String) * * Return value: * Nothing */ #include "script_component.hpp" -private ["_unit", "_speaker"]; +private ["_unit", "_reason"]; _unit = _this select 0; +_reason = _this select 1; if (isNull _unit) exitWith {}; +// remove reason to mute to the unit +private "_muteUnitReasons"; +_muteUnitReasons = _unit getVariable [QGVAR(muteUnitReasons), []]; + +if (_reason in _muteUnitReasons) then { + _muteUnitReasons deleteAt (_muteUnitReasons find _reason); + _unit setVariable [QGVAR(muteUnitReasons), _muteUnitReasons, true]; +}; + +// don't unmute if there is another mute reason! +if (count _muteUnitReasons > 0) exitWith {}; + +private "_speaker"; _speaker = _unit getVariable ["ACE_OriginalSpeaker", ""]; + if (_speaker == "") exitWith {}; -[0, format ["{(_this select 1) setSpeaker '%1'}", _speaker], _unit, "ACE_Speaker"] call FUNC(execPersistentFnc); +["setSpeaker", _unit, [_unit, _speaker]] call FUNC(targetEvent); diff --git a/addons/common/stringtable.xml b/addons/common/stringtable.xml index c66cc22992..35d3a62220 100644 --- a/addons/common/stringtable.xml +++ b/addons/common/stringtable.xml @@ -42,8 +42,8 @@ ACE Options ACE Optionen Opciones ACE - Opcje ACE - ACE Nastavení + Ustawienia ACE + Nastavení ACE ACE Options ACE Настройки Opções do ACE @@ -248,7 +248,7 @@ Aktion abgebrochen. Acción cancelada. Przerwano czynność - Akce přerušena + Akce přerušena. Action annulée. Действие отменено. Ação cancelada. @@ -304,6 +304,7 @@ Anfrage akzeptieren Aceptar peticiones Akceptuj prośby + Přijmout žádost Accetta Richieste Подтвердить запросы @@ -312,6 +313,7 @@ Anfrage ablehnen Rechazar peticiones Ignoruj prośby + Zamítnout žádost Rifiuta Richieste Отклонить запросы @@ -337,6 +339,8 @@ Iconos de respuesta Icone informative Иконки состояний + Ikony pomocnicze + Icônes de Feedback 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. @@ -344,6 +348,8 @@ 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. 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. Выберите положение или или отключите отображение иконок состояний на Вашем экране. Эти иконки предоставят дополнительную информацию о состоянии персонажа и выполняемых действиях. + Ustaw pozycję lub wyłącz całkowicie ikony pomocnicze na ekranie. Te ikony dostarczają dodatkowych informacji na temat statusu Twojej postaci i wykonywanych przez nią akcji. + Sélectionner la position de ou désactiver les îcones de feedback sur votre écran. Ces îcones sont là pour vous fournir un feedback du statut votre personnage et les actions à effectuer. Progress bar location @@ -351,6 +357,8 @@ Ubicación de la barra de progreso Posizione della barra di avanzamento Положение прогресс-бара + Lokalizacja paska postępu + Localisation de la barre de progression Set the desired location of the progress bar on your screen. @@ -358,6 +366,8 @@ Seleccionar la ubicación deseada de la barra de progreso en tu pantalla Modifica la posizione su schermo della barra di avanzamento. Установите желаемое положение строки состояния на экране. + Ustaw pożądaną lokalizację paska postępu na ekranie + Définisez l'endroit que vous désirez pour faire appraître la barre de progression. Hint Background color @@ -365,6 +375,8 @@ Color de fondo de las notificaciones Sfondo dei Suggerimenti Цвет фона всплывающих подсказок + Kolor tła powiadomień + Couleur de fond des astuces The color of the background from the ACE hints. @@ -372,6 +384,8 @@ El color de fondo de las notificaciones del ACE Il colore di sfondo dei suggerimenti dell'ACE. Цвет фона всплывающий подсказок АСЕ. + Kolor tła dla powiadomień ACE + Définisez la couleur de fond pour les astuces fournies par ACE. Hint text font color @@ -379,6 +393,8 @@ Color del texto de las notificaciones Testo dei Suggerimenti Цвет шрифта всплывающих подсказок + Kolor tekstu powiadomień + Couleur du texte des astuces 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. @@ -386,20 +402,28 @@ 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. 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. Цвет шрифта текста всплывающих подсказок АСЕ. Этот цвет является стандартным для всего текста, транслирующегося через систему подсказок АСЕ, если не установлено другого цвета для текста подсказок. + Kolor tekstu dla powiadomień ACE. Ten kolor jest domyślnym dla wszystkich tekstów wyświetlanych poprzez System Powiadomień ACE, jeżeli dla powiadomienia nie określono innego koloru. + Définisez la couleur du texte des astuces fournies par ACE. La couleur est celle par défaut affichée à travers toutes les astuces de ACE seulement si aucune couleur n'est défnie. Banana Banane Banana + Banán Banana Банан + Banan + Banane A banana is an edible fruit, botanically a berry, produced by several kinds of large herbaceous flowering plants in the genus Musa. Die Banane ist eine essbare Frucht, biologisch betrachtet jedoch eine Beere. Sie wächst an unterschiedlichen, krautartigen Gewächsen aus der Familie der Musa. Una banana es una fruta comestible, botanicamente una baya, producida por varios tipos de grandes plantas herbáceas del género Musa. + Banán je protáhlé ovoce a plod banánovníku (epigeická bobule). 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. Банан - это съедобный фрукт, ягода с ботанической точки зрения, произрастающий на нескольких видах травянистых растениях рода Банан (Musa). + Rodzaj roślin z rodziny bananowatych, obejmujący około 80 gatunków.<br />Przedstawiciele są typowymi przedstawicielami flory międzyzwrotnikowej Azji, Afryki i Australii.<br />Część gatunków dostarcza jadalnych owoców. Słowo banan pochodzi prawdopodobnie od arabskiego słowa banan, co oznacza palec, lub afrykańskiego języka wolof, w którym rośliny te określa się mianem banaana. + Une banane est un fruit comestible, botaniquement une baie, produite par plusieurs types de grandes plantes herbacées à fleurs dans le genre Musa. \ No newline at end of file diff --git a/addons/disarming/CfgVehicles.hpp b/addons/disarming/CfgVehicles.hpp index 5a85dc1287..381aaed93e 100644 --- a/addons/disarming/CfgVehicles.hpp +++ b/addons/disarming/CfgVehicles.hpp @@ -8,7 +8,7 @@ class CfgVehicles { 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"; + icon = PATHTOF(UI\disarm.paa); exceptions[] = {}; }; }; diff --git a/addons/disarming/UI/disarm.paa b/addons/disarming/UI/disarm.paa new file mode 100644 index 0000000000..d13f38daee Binary files /dev/null and b/addons/disarming/UI/disarm.paa differ diff --git a/addons/disarming/stringtable.xml b/addons/disarming/stringtable.xml index 845d0c286e..7bc381a64e 100644 --- a/addons/disarming/stringtable.xml +++ b/addons/disarming/stringtable.xml @@ -1,9 +1,10 @@  - + - - - Open Inventory - - + + + Open Inventory + Otwórz ekwipunek + + \ No newline at end of file diff --git a/addons/disposable/stringtable.xml b/addons/disposable/stringtable.xml index b89bda8644..86c4b2d8e8 100644 --- a/addons/disposable/stringtable.xml +++ b/addons/disposable/stringtable.xml @@ -1,5 +1,4 @@  - @@ -7,7 +6,7 @@ Benutze Einwegwaffe Tube utilisé Použitý odpalovač - Zużyta tuba + Zużyta rura Lanzador utilizado Használt cső Отстрелянная труба @@ -17,7 +16,7 @@ Benutzter Einweg-Raketenwerfer Lance-roquette à usage unique utilisé Použitý raketomet - Zużyta tuba granatnika jednorazowego użytku + Zużyta rura granatnika jednorazowego użytku Lanzador desechable utilizado Használt rakétavető Отстрелянная одноразовая пусковая установка @@ -25,9 +24,9 @@ Preloaded Missile Dummy Vorgeladene Racketennachbildung - Preloaded Missile Dummy - Preloaded Missile Dummy - Preloaded Missile Dummy + Missile préchargé Dummy + Přednabitá dummy střela + Wstępnie załadowana atrapa pocisku Preloaded Missile Dummy Preloaded Missile Dummy Заряженная ракетная пустышка diff --git a/addons/dragging/stringtable.xml b/addons/dragging/stringtable.xml index 1874d7caac..51fcf43c0b 100644 --- a/addons/dragging/stringtable.xml +++ b/addons/dragging/stringtable.xml @@ -29,17 +29,13 @@ Item to heavy Gegenstand ist zu schwer Articulo demasiado pesado - + Túl nehéz ahhoz, hogy elhúzd Слишком тяжело + Moc težké Carry diff --git a/addons/explosives/stringtable.xml b/addons/explosives/stringtable.xml index 25c5a87885..f0df907f16 100644 --- a/addons/explosives/stringtable.xml +++ b/addons/explosives/stringtable.xml @@ -1,498 +1,502 @@  + - - - Explosives - Sprengstoffe - Explosivos - Ładunki wybuchowe - Explosifs - Výbušniny - Esplosivi - Robbanóanyagok - Explosivos - Взрывчатка - - - Place >> - Platzieren >> - Colocar >> - Umieść >> - Placer >> - Položit >> - Piazza >> - Lerakás >> - Colocar >> - Установить >> - - - Detonate >> - Zünden >> - Detonar >> - Detonuj >> - Mise à feu >> - Odpálit >> - Detona >> - Robbantás >> - Detonar >> - Подрыв >> - - - Explosive code: %1 - Sprengstoffcode: %1 - Código del explosivo: %1 - Kod ładunku: %1 - Code explosif: %1 - Kód výbušniny: %1 - Codice dell'esplosivo : %1 - Robbanóanyag kódja: %1 - Código do explosivo: %1 - Код подрыва: %1 - - - Place - Platzieren - Colocar - Umieść - Placer - Položit - Piazza - Elhelyezés - Colocar - Установить - - - Cancel - Abbrechen - Cancelar - Anuluj - Annuler - Zrušit - Annulla - Mégsem - Cancelar - Отмена - - - + Modifier, rotates - + Modifikator, drehen - + Modificador, girar - + Modificateur, tourner - + Modificatore, rotazione - + Otočit - + Változtatás, forgatás - + modyfikator, obracanie - + Modificador, rotaciona - + Bращать - - - Turn On Thor III - Thor III aktivieren - Encender Thor III - Włącz Thor III - Allumer Thor III - Zapnout Thor III - Accendi Thor III - Thor III bekapcsolása - Ativar Thor III - Активировать Thor III - - - Turn Off Thor III - Thor III deaktivieren - Apagar Thor III - Wyłącz Thor III - Éteindre Thor III - Vypnout Thor III - Spegni Thor III - Thor III kikapcsolása - Desativar Thor III - Деактивировать Thor III - - - Cellphone - Mobiltelefon - Télefono móvil - Telefon komórkowy - Téléphone Portable - Telefon - Cellulare - Mobil - Celular - Сотовый телефон - - - Used to remotely trigger explosives - Wird benutzt um Sprengstoffe fernzuzünden - Usado para detonar remotamente explosivos - Używany do zdalnego detonowania ładunków wybuchowych - Utilisé pour déclencher des explosifs à distance - Používaný ke vzdálenému odpalování výbušnin - Usato per l'attivazione a distanza degli esplosivi - Robbanóanyagok távoli robbantásához - Usado para acionar explosivos remotamente - Используется для удаленной детонации СВУ - - - M57 Firing Device - M57 Zündvorrichtung - Dispositivo de detonación M57 - Zapalnik M57 - M57 Dispositif de mise à feu - M57 Odpalovací Zařízení - Detonatore M57 - M57 Detonátor - M57 Dispositivo de Detonação - Взрыватель M57 - - - Used to remotely trigger explosives - Wird benutzt um Sprengstoffe fernzuzünden - Usado para detonar remotamente explosivos - Używany do zdalnego detonowania ładunków wybuchowych - Utilisé pour déclencher des explosifs à distance - Použévané ke vzdálenému odpalování výbušnin - Usato per l'attivazione a distanza degli esplosivi - Robbanóanyagok távoli robbantásához - Usado para acionar explosivos remotamente - Используется для удаленной детонации зарядов - - - M26 Firing Device - M26 Zündvorrichtung - Dispositivo de detonación MK26 - Zapalnik M26 - M26 Dispositif de mise à feu - M26 Odpalovací Zařízení - Detonatore M26 - M26 Detonátor - M26 Dispositivo de Detonação - Взрыватель M26 - - - M152 RAMS - M152 RAMS - M152 RAMS - M152 RAMS - M152 RAMS - M152 RAMS - M152 RAMS - M152 RAMS - M152 RAMS - M152 RAMS - - - Defusal Kit - Entschärfungskit - Kit de desactivación - Zestaw do rozbrajania - Kit de désamorçage - Zneškodňovací sada - Kit E.O.D. - Hatástalanító felszerelés - Kit de desarme - Комплект разминирования - - - Allows defusing of explosives - Erlaubt die Entschärfung von Sprengstoffen - Permite desactivar explosivos - Umożliwia rozbrajanie ładunków wybuchowych - Permet de désamorçer des explosifs - Dovoluje zneškodňování výbušnin - Consente la disattivazione degli ordigni esplosivi - Robbanóanyagok hatástalanításához - Permite o desarme de explosivos - Позволяет обезвреживать ВУ - - - Add to Speed Dial - Zur Schnellauswahl hinzufügen - Agregar a marcado rápido - Dodaj do szybkiego wybierania - Ajouter à la composition rapide - Přidat jako rychlou volbu - Aggiungi alla selezione rapida - Hozzáadás gyorshíváshoz - Adicionar à ligação rápida - Добавить в ускоренный набор - - - Clear - Löschen - Borrar - Usuń - Désamorçé - Čistý - Libera - Törlés - Limpar - Очистить - - - Dial - Wählen - Marcar - Wybierz mumer - Composer - Vytočit - Composizione numero - Tárcsázás - Discar - Hабрать - - - Up - Hoch - Arriba - W górę - Haut - Nahoru - Sopra - Fel - Cima - Вызов - - - Down - Runter - Abajo - W dół - Bas - Dolu - Sotto - Le - Baixo - Сброс - - - Cancel - Abbrechen - Cancelar - Anuluj - Annuler - Zrušit - Annulla - Mégsem - Cancelar - Отмена - - - Detonate Menu - "Zünden"-Menü - Menú de detonación - Menu detonowania - Menu de mise à feu - Menu Detonace - Menù di detonazione - Robbantás menü - Menu de detonação - Меню подрыва - - - Place Menu - "Platzieren"-Menü - Menú de colocación - Menu umieszczania - Menu Placement - Menu Umístění - Menù di collocamento - Lerakás menü - Menu de posicionamento - Меню детонации - - - Defuse - Entschärfen - Desactivar - Rozbrój - Désamorçer - Zneškodnit - Disinnesca - Hatástalanítás - Desarmar - Обезвредить - - - Defusing Explosive... - Entschärfe Sprengstoff... - Desactivando explosivo... - Rozbrajanie ładunku... - Désamorçage des explosifs... - Zneškodňuji Výbušninu... - Esposivo in fase di disattivazione... - Robbanóanyag hatástalaníása... - Desarmando Explosivo... - Обезвреживание... - - - Timer - Zeitzünder - Temporizador - Czasomierz - Retard - Časovač - Cronometro - Időzített - Timer - Таймер - - - Time: %1m %2s - Zeit: %1m %2s - Tiempo: %1m %2s - Czas: %1m %2s - Temps : %1m %2s - Čas: %1m %2s - Tempo : %1m %2s - Idő: %1m %2s - Tempo: %1m %2s - Время: %1m %2c - - - Set Time - Zeit einstellen - Configurar tiempo - Ustaw czas - Régler retard - Nastavit Čas - Modifica il conto alla rovescia - Idő állítása - Configurar Tempo - Установить время - - - Select a Trigger - Wähle einen Zünder - Seleccionar un disparador - Wybierz zapalnik - Sélectionner une mise à feu - Zvolit Detonátor - Seleziona un Attivatore - Detonátor kiválasztása - Selecionar um Gatilho - Выберите детонатор - - - Select - Wählen - Seleccionar - Wybierz - Sélectionner - Zvolit - Seleziona - Kiválasztás - Selecionar - Выбрать - - - Pressure Plate - Płyta naciskowa - Placa de presión - Druckplatte - Plaque de pression - Nášlapná nástraha - Piastra a Pressione - Nyomólap - Placa de pressão - Давление - - - Tripwire - Linka naciągu - Cable trampa - Stolperdraht - Fil de butée - Nástražný drát - Filo a Inciampo - Botlódrót - Linha de tração - Растяжка - - - IR Sensor - Czujnik podczerwieni - Sensor IR - Infrarotsensor - Capteur IR - IR Značkovač - Sensore IR - IR szenzor - Sensor IV - ИК сенсор - - - No triggers available for %1 - Brak dostępnych zapalników dla %1 - No hay detonadores disponibles para %1 - Keine Auslöser vorhanden für %1 - Pas de mise à feu disponible pour %1 - Žádný detonátor k dispozici pro %1 - Nessun attivatore disponibile per %1 - Nincs detonátor a %1 - Nenhum gatilho disponível para %1 - Нет доступных взрывателей для %1 - - - IR Sensor (Side Attack) - Czujnik podczerwieni (wybuch na bok) - Sensor IR (ataque lateral) - Infrarotsensor (Seitenangriff) - Capteur IR (de flanc) - IR Značkovač (Výbuch stranou) - Sensore IR (Attacco laterale) - IR Sensor (Side Attack) - Sensor infravermelho (ataque lateral) - ИК (детонация вбок) - - - Magnetic Influence Sensor (Bottom Attack) - Czujnik magnetyczny (wybuch w górę) - Sensor IM (ataque inferior) - Magnetfeldsensor (Bodenangriff) - Capteur Magnétique (par le bas) - Magnetický Senzor (Výbuch ze spoda) - Sensore Magnetico di Prossimità (Attacco inferiore) - Mágneses (Bottom Attack) - Influência magnética (ataque inferior) - Магнитный (детонация вверх) - - - No explosives on trigger. - Keine Sprengladungen auf diesem Auslöser. - Ningún explosivo en el detonador. - Pas d'explosif à mettre à feu. - Nessun esplosivo sul sensore. - Žádná výbušnina k odpálení. - Nincs robbanóanyag a detonátorhoz. - Brak ładunków na zapalnik. - Nenhum explosivo no gatilho. - Нет доступных ВУ для взрывателя. - - - Dead Man's Switch - Totmannschalter - Mise à feu par relâchement de pression - Spínač mrtvého muže - Czuwak - Detonador de hombre muerto - Dead Man's Switch - Ловушка мертвеца - - - Used to remotely trigger explosives when released. - Zündet Sprengladungen wenn losgelassen. - Déclenche la mise à feu d'un explosif lorsqu'il est libéré. - Používaný k vzdálenému odpálení, při uvolnění odpálí výbušniny - Używany w celu zdalnej detonacji ładunków kiedy jego operator zostanie zabity. - Utilizado para detonar explosivos remotamente al soltarlo. - Robbanóanyagok távoli robbantásához - Используется для дистанционного подрыва, после смерти оператора. - - - Pick up - Aufheben - Recoger - - - + + + Explosives + Sprengstoffe + Explosivos + Ładunki wybuchowe + Explosifs + Výbušniny + Esplosivi + Robbanóanyagok + Explosivos + Взрывчатка + + + Place >> + Platzieren >> + Colocar >> + Umieść >> + Placer >> + Položit >> + Piazza >> + Lerakás >> + Colocar >> + Установить >> + + + Detonate >> + Zünden >> + Detonar >> + Detonuj >> + Mise à feu >> + Odpálit >> + Detona >> + Robbantás >> + Detonar >> + Подрыв >> + + + Explosive code: %1 + Sprengstoffcode: %1 + Código del explosivo: %1 + Kod ładunku: %1 + Code explosif: %1 + Kód výbušniny: %1 + Codice dell'esplosivo : %1 + Robbanóanyag kódja: %1 + Código do explosivo: %1 + Код подрыва: %1 + + + Place + Platzieren + Colocar + Umieść + Placer + Položit + Piazza + Elhelyezés + Colocar + Установить + + + Cancel + Abbrechen + Cancelar + Anuluj + Annuler + Zrušit + Annulla + Mégsem + Cancelar + Отмена + + + + Modifier, rotates + + Modifikator, drehen + + Modificador, girar + + Modificateur, tourner + + Modificatore, rotazione + + Modifikátor, otočit + + Változtatás, forgatás + + Modyfikator, obrót + + Modificador, rotaciona + + Bращать + + + Turn On Thor III + Thor III aktivieren + Encender Thor III + Włącz Thor III + Allumer Thor III + Zapnout Thor III + Accendi Thor III + Thor III bekapcsolása + Ativar Thor III + Активировать Thor III + + + Turn Off Thor III + Thor III deaktivieren + Apagar Thor III + Wyłącz Thor III + Éteindre Thor III + Vypnout Thor III + Spegni Thor III + Thor III kikapcsolása + Desativar Thor III + Деактивировать Thor III + + + Cellphone + Mobiltelefon + Télefono móvil + Telefon komórkowy + Téléphone Portable + Telefon + Cellulare + Mobil + Celular + Сотовый телефон + + + Used to remotely trigger explosives + Wird benutzt um Sprengstoffe fernzuzünden + Usado para detonar remotamente explosivos + Używany do zdalnego detonowania ładunków wybuchowych + Utilisé pour déclencher des explosifs à distance + Používaný ke vzdálenému odpalování výbušnin + Usato per l'attivazione a distanza degli esplosivi + Robbanóanyagok távoli robbantásához + Usado para acionar explosivos remotamente + Используется для удаленной детонации СВУ + + + M57 Firing Device + M57 Zündvorrichtung + Dispositivo de detonación M57 + Zapalnik M57 + M57 Dispositif de mise à feu + Odpalovací zařízení M57 + Detonatore M57 + M57 Detonátor + M57 Dispositivo de Detonação + Взрыватель M57 + + + Used to remotely trigger explosives + Wird benutzt um Sprengstoffe fernzuzünden + Usado para detonar remotamente explosivos + Używany do zdalnego detonowania ładunków wybuchowych + Utilisé pour déclencher des explosifs à distance + Používané ke vzdálenému odpalování výbušnin + Usato per l'attivazione a distanza degli esplosivi + Robbanóanyagok távoli robbantásához + Usado para acionar explosivos remotamente + Используется для удаленной детонации зарядов + + + M26 Firing Device + M26 Zündvorrichtung + Dispositivo de detonación MK26 + Zapalnik M26 + M26 Dispositif de mise à feu + Odpalovací zařízení M26 + Detonatore M26 + M26 Detonátor + M26 Dispositivo de Detonação + Взрыватель M26 + + + M152 RAMS + M152 RAMS + M152 RAMS + M152 RAMS + M152 RAMS + M152 RAMS + M152 RAMS + M152 RAMS + M152 RAMS + M152 RAMS + + + Defusal Kit + Entschärfungskit + Kit de desactivación + Zestaw do rozbrajania + Kit de désamorçage + Zneškodňovací sada + Kit E.O.D. + Hatástalanító felszerelés + Kit de desarme + Комплект разминирования + + + Allows defusing of explosives + Erlaubt die Entschärfung von Sprengstoffen + Permite desactivar explosivos + Umożliwia rozbrajanie ładunków wybuchowych + Permet de désamorçer des explosifs + Dovoluje zneškodňování výbušnin + Consente la disattivazione degli ordigni esplosivi + Robbanóanyagok hatástalanításához + Permite o desarme de explosivos + Позволяет обезвреживать ВУ + + + Add to Speed Dial + Zur Schnellauswahl hinzufügen + Agregar a marcado rápido + Dodaj do szybkiego wybierania + Ajouter à la composition rapide + Přidat jako rychlou volbu + Aggiungi alla selezione rapida + Hozzáadás gyorshíváshoz + Adicionar à ligação rápida + Добавить в ускоренный набор + + + Clear + Löschen + Borrar + Usuń + Désamorçé + Čistý + Libera + Törlés + Limpar + Очистить + + + Dial + Wählen + Marcar + Wybierz mumer + Composer + Vytočit + Composizione numero + Tárcsázás + Discar + Hабрать + + + Up + Hoch + Arriba + W górę + Haut + Nahoru + Sopra + Fel + Cima + Вызов + + + Down + Runter + Abajo + W dół + Bas + Dolu + Sotto + Le + Baixo + Сброс + + + Cancel + Abbrechen + Cancelar + Anuluj + Annuler + Zrušit + Annulla + Mégsem + Cancelar + Отмена + + + Detonate Menu + "Zünden"-Menü + Menú de detonación + Menu detonowania + Menu de mise à feu + Menu Detonace + Menù di detonazione + Robbantás menü + Menu de detonação + Меню подрыва + + + Place Menu + "Platzieren"-Menü + Menú de colocación + Menu umieszczania + Menu Placement + Menu Umístění + Menù di collocamento + Lerakás menü + Menu de posicionamento + Меню детонации + + + Defuse + Entschärfen + Desactivar + Rozbrój + Désamorçer + Zneškodnit + Disinnesca + Hatástalanítás + Desarmar + Обезвредить + + + Defusing Explosive... + Entschärfe Sprengstoff... + Desactivando explosivo... + Rozbrajanie ładunku... + Désamorçage des explosifs... + Zneškodňuji Výbušninu... + Esposivo in fase di disattivazione... + Robbanóanyag hatástalaníása... + Desarmando Explosivo... + Обезвреживание... + + + Timer + Zeitzünder + Temporizador + Czasomierz + Retard + Časovač + Cronometro + Időzített + Timer + Таймер + + + Time: %1m %2s + Zeit: %1m %2s + Tiempo: %1m %2s + Czas: %1m %2s + Temps : %1m %2s + Čas: %1m %2s + Tempo : %1m %2s + Idő: %1m %2s + Tempo: %1m %2s + Время: %1m %2c + + + Set Time + Zeit einstellen + Configurar tiempo + Ustaw czas + Régler retard + Nastavit Čas + Modifica il conto alla rovescia + Idő állítása + Configurar Tempo + Установить время + + + Select a Trigger + Wähle einen Zünder + Seleccionar un disparador + Wybierz zapalnik + Sélectionner une mise à feu + Zvolit Detonátor + Seleziona un Attivatore + Detonátor kiválasztása + Selecionar um Gatilho + Выберите детонатор + + + Select + Wählen + Seleccionar + Wybierz + Sélectionner + Zvolit + Seleziona + Kiválasztás + Selecionar + Выбрать + + + Pressure Plate + Płyta naciskowa + Placa de presión + Druckplatte + Plaque de pression + Nášlapná nástraha + Piastra a Pressione + Nyomólap + Placa de pressão + Давление + + + Tripwire + Linka naciągu + Cable trampa + Stolperdraht + Fil de butée + Nástražný drát + Filo a Inciampo + Botlódrót + Linha de tração + Растяжка + + + IR Sensor + Czujnik podczerwieni + Sensor IR + Infrarotsensor + Capteur IR + IR Značkovač + Sensore IR + IR szenzor + Sensor IV + ИК сенсор + + + No triggers available for %1 + Brak dostępnych zapalników dla %1 + No hay detonadores disponibles para %1 + Keine Auslöser vorhanden für %1 + Pas de mise à feu disponible pour %1 + Žádný detonátor k dispozici pro %1 + Nessun attivatore disponibile per %1 + Nincs detonátor a %1 + Nenhum gatilho disponível para %1 + Нет доступных взрывателей для %1 + + + IR Sensor (Side Attack) + Czujnik podczerwieni (wybuch na bok) + Sensor IR (ataque lateral) + Infrarotsensor (Seitenangriff) + Capteur IR (de flanc) + IR Značkovač (Výbuch stranou) + Sensore IR (Attacco laterale) + IR Sensor (Side Attack) + Sensor infravermelho (ataque lateral) + ИК (детонация вбок) + + + Magnetic Influence Sensor (Bottom Attack) + Czujnik magnetyczny (wybuch w górę) + Sensor IM (ataque inferior) + Magnetfeldsensor (Bodenangriff) + Capteur Magnétique (par le bas) + Magnetický Senzor (Výbuch ze spoda) + Sensore Magnetico di Prossimità (Attacco inferiore) + Mágneses (Bottom Attack) + Influência magnética (ataque inferior) + Магнитный (детонация вверх) + + + No explosives on trigger. + Keine Sprengladungen auf diesem Auslöser. + Ningún explosivo en el detonador. + Pas d'explosif à mettre à feu. + Nessun esplosivo sul sensore. + Žádná výbušnina k odpálení. + Nincs robbanóanyag a detonátorhoz. + Brak ładunków na zapalnik. + Nenhum explosivo no gatilho. + Нет доступных ВУ для взрывателя. + + + Dead Man's Switch + Totmannschalter + Mise à feu par relâchement de pression + Spínač mrtvého muže + Czuwak + Detonador de hombre muerto + Dead Man's Switch + Ловушка мертвеца + + + Used to remotely trigger explosives when released. + Zündet Sprengladungen wenn losgelassen. + Déclenche la mise à feu d'un explosif lorsqu'il est libéré. + Používaný k vzdálenému odpálení, při uvolnění odpálí výbušniny + Używany w celu zdalnej detonacji ładunków kiedy jego operator zostanie zabity. + Utilizado para detonar explosivos remotamente al soltarlo. + Robbanóanyagok távoli robbantásához + Используется для дистанционного подрыва, после смерти оператора. + + + Pick up + Aufheben + Recoger + Sebrat + Podnieś + Prendre + + + \ No newline at end of file diff --git a/addons/fcs/XEH_clientInit.sqf b/addons/fcs/XEH_clientInit.sqf index d3605d87a7..3338e739e1 100644 --- a/addons/fcs/XEH_clientInit.sqf +++ b/addons/fcs/XEH_clientInit.sqf @@ -4,6 +4,8 @@ GVAR(enabled) = false; GVAR(time) = 0; GVAR(position) = [0,0,0]; +if (!hasInterface) exitWith {}; + #include "initKeybinds.sqf" ["infoDisplayChanged", { diff --git a/addons/fcs/stringtable.xml b/addons/fcs/stringtable.xml index 0911bbdb57..1f1b0d3acf 100644 --- a/addons/fcs/stringtable.xml +++ b/addons/fcs/stringtable.xml @@ -1,81 +1,74 @@  - - - - Lase Target / Measure Distance - Ziel anlasern / Entfernung Messen - Télémétrer la cible - Naświetl cel / Zmierz odległość - Označit cíl / Změřit vzdálenost - Iluminar objetivo / Medir distancia - - Подсветить цель / Замерить расстояние - - - Zeroed To - Haltepunkt - Fijado a - Wyzerowany na - Nastaveno na - Zéroté à - Выставлено на - Nullázás - Fixado em - Azzeramento a - - - Adjust FCS Range (Up) - Entfernung des FLS erhöhen - Zwiększ zasięg FCS - Ajustar distancia del FCS (arriba) - Nastavit FCS Náměr (nahoru) - Augmenter la distance du SCT - FCS tartomány állítása (Fel) - Ajustar distância do FCS (Acima) - Aumentare la distanza dell'FCS - Диапазон СУО (Выше) - - - Adjust FCS Range (Down) - Entfernung des FLS verringern - Zmniejsz zasięg FCS - Ajustar distancia del FCS (abajo) - Nastavit FCS Náměr (dolů) - Réduire la distance du SCT - FCS tartomány állítása (Le) - Ajustar distância do FCS (Abaixo) - Ridurre la distanza dell'FCS - Диапазон СУО (Ниже) - - - Reset FCS - FLS zurücksetzen - Reiniciar FCS - Réinitialiser le SCT - Resetuj FCS - Resetovat FCS - FCS visszaállítása - Reiniciar FCS - Azzeramento dell'FCS - Обнулить СУО - - - FCS has been reset. - FLS wurde zurückgesetzt. - FCS reiniciado - SCT réinitialisé. - FCS został zresetowany. - FCS byl resetován. - Az FCS visszaállítva - FCS reiniciado. - L'FCS è stato azzerato - СУО обнулен. - - - \ No newline at end of file + + + Lase Target / Measure Distance + Ziel anlasern / Entfernung Messen + Télémétrer la cible + Naświetl cel / Zmierz odległość + Označit cíl / Změřit vzdálenost + Iluminar objetivo / Medir distancia + Подсветить цель / Замерить расстояние + + + Zeroed To + Haltepunkt + Fijado a + Wyzerowany na + Nastaveno na + Zéroté à + Выставлено на + Nullázás + Fixado em + Azzeramento a + + + Adjust FCS Range (Up) + Entfernung des FLS erhöhen + Zwiększ zasięg SKO + Ajustar distancia del FCS (arriba) + Nastavit FCS Náměr (nahoru) + Augmenter la distance du SCT + FCS tartomány állítása (Fel) + Ajustar distância do FCS (Acima) + Aumentare la distanza dell'FCS + Диапазон СУО (Выше) + + + Adjust FCS Range (Down) + Entfernung des FLS verringern + Zmniejsz zasięg SKO + Ajustar distancia del FCS (abajo) + Nastavit FCS Náměr (dolů) + Réduire la distance du SCT + FCS tartomány állítása (Le) + Ajustar distância do FCS (Abaixo) + Ridurre la distanza dell'FCS + Диапазон СУО (Ниже) + + + Reset FCS + FLS zurücksetzen + Reiniciar FCS + Réinitialiser le SCT + Resetuj SKO + Resetovat FCS + FCS visszaállítása + Reiniciar FCS + Azzeramento dell'FCS + Обнулить СУО + + + FCS has been reset. + FLS wurde zurückgesetzt. + FCS reiniciado + SCT réinitialisé. + SKO został zresetowany. + FCS byl resetován. + Az FCS visszaállítva + FCS reiniciado. + L'FCS è stato azzerato + СУО обнулен. + + + diff --git a/addons/flashsuppressors/stringtable.xml b/addons/flashsuppressors/stringtable.xml index 7490ce42a6..d3185fc2b0 100644 --- a/addons/flashsuppressors/stringtable.xml +++ b/addons/flashsuppressors/stringtable.xml @@ -1,90 +1,90 @@  - + - - - Flash Suppressor (6.5 mm) - Lángrejtő (6,5 mm) - Mündungsfeuerdämpfer (6,5 mm) - Soppressore di fiamma (6.5mm) - Supressor de Clarão (6,5mm) - Tłumik płomieni (6,5 mm) - Tlumič záblesku (6,5 mm) - Cache-flamme (6,5 mm) - Пламегаситель (6,5 мм) - Supresor (6,5 mm) - - - Flash Suppressor (7.62 mm) - Lángrejtő (7,62 mm) - Mündungsfeuerdämpfer (7,62 mm) - Soppressore di fiamma (7.62mm) - Supressor de Clarão (7,62mm) - Tłumik płomieni (7,62 mm) - Tlumič záblesku (7,62 mm) - Cache-flamme (7,62 mm) - Пламегаситель (7,62 мм) - Supresor (7,62 mm) - - - Flash Suppressor (5.56 mm) - Lángrejtő (5,56 mm) - Mündungsfeuerdämpfer (5,56 mm) - Soppressore di fiamma (5.56mm) - Supressor de Clarão (5,56mm) - Tłumik płomieni (5,56 mm) - Tlumič záblesku (5,56 mm) - Cache-flamme (5,56 mm) - Пламегаситель (5,56 мм) - Supresor (5,56 mm) - - - Flash Suppressor (.45 ACP) - Lángrejtő (.45 ACP) - Mündungsfeuerdämpfer (.45 ACP) - Soppressore di fiamma (.45 ACP) - Supressor de Clarão (.45 ACP) - Tłumik płomieni (.45 ACP) - Tlumič záblesku (.45 ACP) - Cache-flamme (.45 ACP) - Пламегаситель (.45 ACP) - Supresor (.45 ACP) - - - Flash Suppressor (9 mm) - Lángrejtő (9 mm) - Mündungsfeuerdämpfer (9 mm) - Soppressore di fiamma (9 mm) - Supressor de Clarão (9mm) - Tłumik płomieni (9 mm) - Tlumič záblesku (9 mm) - Cache-flamme (9 mm) - Пламегаситель (9 мм) - Supresor (9 mm) - - - Flash Suppressor (.338) - Lángrejtő (.338) - Mündungsfeuerdämpfer (.338) - Soppressore di fiamma (.338) - Supressor de Clarão (.338) - Tłumik płomieni (.338) - Tlumič záblesku (.338) - Cache-flamme (.338) - Пламегаситель (.338) - Supresor (.338) - - - Flash Suppressor (9.3 mm) - Lángrejtő (9,3 mm) - Mündungsfeuerdämpfer (9,3 mm) - Soppressore di fiamma (9.3mm) - Supressor de Clarão (9,3mm) - Tłumik płomieni (9,3 mm) - Tlumič záblesku (9,3 mm) - Cache-flamme (9,3 mm) - Пламегаситель (9,3 мм) - Supresor (9,3 mm) - - - + + + Flash Suppressor (6.5 mm) + Lángrejtő (6,5 mm) + Mündungsfeuerdämpfer (6,5 mm) + Soppressore di fiamma (6.5mm) + Supressor de Clarão (6,5mm) + Tłumik płomienia (6,5 mm) + Tlumič plamene (6,5 mm) + Cache-flamme (6,5 mm) + Пламегаситель (6,5 мм) + Supresor (6,5 mm) + + + Flash Suppressor (7.62 mm) + Lángrejtő (7,62 mm) + Mündungsfeuerdämpfer (7,62 mm) + Soppressore di fiamma (7.62mm) + Supressor de Clarão (7,62mm) + Tłumik płomienia (7,62 mm) + Tlumič plamene (7,62 mm) + Cache-flamme (7,62 mm) + Пламегаситель (7,62 мм) + Supresor (7,62 mm) + + + Flash Suppressor (5.56 mm) + Lángrejtő (5,56 mm) + Mündungsfeuerdämpfer (5,56 mm) + Soppressore di fiamma (5.56mm) + Supressor de Clarão (5,56mm) + Tłumik płomienia (5,56 mm) + Tlumič plamene (5,56 mm) + Cache-flamme (5,56 mm) + Пламегаситель (5,56 мм) + Supresor (5,56 mm) + + + Flash Suppressor (.45 ACP) + Lángrejtő (.45 ACP) + Mündungsfeuerdämpfer (.45 ACP) + Soppressore di fiamma (.45 ACP) + Supressor de Clarão (.45 ACP) + Tłumik płomienia (.45 ACP) + Tlumič plamene (.45 ACP) + Cache-flamme (.45 ACP) + Пламегаситель (.45 ACP) + Supresor (.45 ACP) + + + Flash Suppressor (9 mm) + Lángrejtő (9 mm) + Mündungsfeuerdämpfer (9 mm) + Soppressore di fiamma (9 mm) + Supressor de Clarão (9mm) + Tłumik płomienia (9 mm) + Tlumič plamene (9 mm) + Cache-flamme (9 mm) + Пламегаситель (9 мм) + Supresor (9 mm) + + + Flash Suppressor (.338) + Lángrejtő (.338) + Mündungsfeuerdämpfer (.338) + Soppressore di fiamma (.338) + Supressor de Clarão (.338) + Tłumik płomienia (.338) + Tlumič záblesku (.338) + Cache-flamme (.338) + Пламегаситель (.338) + Supresor (.338) + + + Flash Suppressor (9.3 mm) + Lángrejtő (9,3 mm) + Mündungsfeuerdämpfer (9,3 mm) + Soppressore di fiamma (9.3mm) + Supressor de Clarão (9,3mm) + Tłumik płomienia (9,3 mm) + Tlumič záblesku (9,3 mm) + Cache-flamme (9,3 mm) + Пламегаситель (9,3 мм) + Supresor (9,3 mm) + + + \ No newline at end of file diff --git a/addons/frag/stringtable.xml b/addons/frag/stringtable.xml index e2477347ce..443646424a 100644 --- a/addons/frag/stringtable.xml +++ b/addons/frag/stringtable.xml @@ -1,4 +1,4 @@ - + @@ -6,7 +6,7 @@ Keine Schrapnelle Zakázat fragmentaci granátů Desactivar fragmentación - Wyłącz głowice fragmentacyjne + Wyłącz fragmentację odłamków Выключить разлёт осколков diff --git a/addons/goggles/stringtable.xml b/addons/goggles/stringtable.xml index 9b2e6fba12..952a1320a0 100644 --- a/addons/goggles/stringtable.xml +++ b/addons/goggles/stringtable.xml @@ -1,12 +1,11 @@  - Show Goggle Effects in Third Person Brilleneffekt in dritter Person anzeigen Mostrar efectos de las gafas en tercera persona - Zobrazit účinky brýlí v třetí osobě + Zobrazit efekt brýlí v třetí osobě Effets de lunettes à la 3ème personne Отображать эффект очков от третьего лица Szemüveg effekt mutatása külső nézetből @@ -27,4 +26,4 @@ Pulisci gli occhiali - \ No newline at end of file + diff --git a/addons/grenades/stringtable.xml b/addons/grenades/stringtable.xml index 803aa0a220..41c699af5f 100644 --- a/addons/grenades/stringtable.xml +++ b/addons/grenades/stringtable.xml @@ -1,246 +1,246 @@  - + - - - Switch Grenade Mode - Granaten-Modus wechseln - Cambiar modo de granada - Tryb rzutu granatem - Změnit styl hodu granátu - Changer type de lancer de grenade - Сменить режим броска гранаты - Gránátdobás mód váltás - Cambia tipo di granata - Alternar Modo de Granada - - - Normal Throw - Normaler Wurf - Lanzamiento normal - Normalny rzut - Normální - Lancer Normal - Нормальный бросок - Normál dobás - Lancio normale - Arremesso Normal - - - High Throw - Hoher Wurf - Lanzamiento alto - Rzut lobem - Vysoko - Lancer Haut - Высокий бросок - Magas dobás - Lancio verso l'alto - Arremesso Alto - - - Precise Throw - Präziser Wurf - Lanzamiento preciso - Precyzyjny rzut - Přesně - Lancer Précis - Точный бросок - Pontos dobás - Lancio preciso - Arremesso Preciso - - - Roll Grenade - Granate rollen - Rodar granada - Po ziemi - Po zemi - Lancer Roulé - Катить гранату - Gurítás - Fai rotolare la granata - Rolar Granada - - - Drop Grenade - Granate fallenlassen - Soltar granada - Upuść granat - Upustit granát - Lâcher la grenade - Бросить себе под ноги - Ejtés - Lascia la granata - Largar Granada - - - M84 Stun Grenade - M84 Blendgranate - Granada aturdidora M84 - M84 Grenade Incapacitante - Granat hukowy M84 - M84 Omračující granát - M84 светозвуковая граната - M84 Villanógránát - Granata Stordente M84 - M84 granada de atordoamento - - - Also known as flashbang. Causes immediate flash blindness, deafness, tinnitus, and inner ear disturbance. - Verursacht temporäre Blind- und Taubheit. - Produce de manera inmediata ceguera, sordera, tinitus y afecta el oído interior. - Les grenades incapacitantes servent à désorienter ou distraire une menace pendant quelques secondes. - Granat ogłusza, nie zabijając przeciwnika. Detonacja daje efekt oślepiającego błysku i głośnego huku. - Omračující granát je taktická nesmrtící zbraň používaná při záchraně rukojmí a zvládání davu. - XM84 (M84) - граната нелетального действия, и предназначена для отвлечения и временного вывода из строя, либо дезориентации противника. Основное использование нашла при освобождении заложников, захвате преступников и террористов, а также проведении диверсионных миссий. - Eldobás után felrobban és éles hang, valamint fényhatással zavarja össze a környezetében tartózkodókat. - Anche conosciuta come flashbang. Causa accecamento immediato, sensazioni di sposatezza, mancanza d'equilibrio e disturbi al timpano. - Um tipo de granada não-letal destinado a confundir, desorientar e distrair uma potencial ameaça. - - - M127A1 Hand Held Signal (White) - M127A1 Leuchtmittel (Weiß) - M127A1 Světlice (Bílá) - M127A1 Jelzőrakéta (Fehér) - M127A1 Bengala (Bianco) - Flara ręczna sygnałowa M127A1 (biała) - M127A1 Sinalizador (Branco) - M127A1 Фальшфейер (Белый) - Bengala M127A1 (Blanca) - M127A1 Feux à main (Blanc) - - - M127A1 Hand Held Signal (Red) - M127A1 Leuchtmittel (Rot) - M127A1 Světlice (Červená) - M127A1 Jelzőrakéta (Piros) - M127A1 Bengala (Rosso) - Flara ręczna sygnałowa M127A1 (czerwona) - M127A1 Sinalizador (Vermelho) - M127A1 Фальшфейер (Красный) - Bengala M127A1 (Roja) - M127A1 Feux à main (Rouge) - - - M127A1 Hand Held Signal (Green) - M127A1 Leuchtmittel (Grün) - M127A1 Světlice (Zelená) - M127A1 Jelzőrakéta (Zöld) - M127A1 Bengala (Verde) - Flara ręczna sygnałowa M127A1 (zielona) - M127A1 Sinalizador (Verde) - M127A1 Фальшфейер (Зелёный) - Bengala M127A1 (Verde) - M127A1 Feux à main (Vert) - - - M127A1 Hand Held Signal (Yellow) - M127A1 Leuchtmittel (Gelb) - M127A1 Světlice (Žlutá) - M127A1 Jelzőrakéta (Sárga) - M127A1 Bengala (Giallo) - Flara ręczna sygnałowa M127A1 (żółta) - M127A1 Sinalizador (Amarelo) - M127A1 Фальшфейер (Жёлтые) - Bengala M127A1 (Amarilla) - M127A1 Feux à main (Jaune) - - - White Hand Flare - Weiße Leuchtkugel, wird wie eine Granate geworfen. - Světlice (Bílá) - Jelzőrakéta (Fehér) - Bengala (Bianco) - Flara ręczna (biała) - Sinalizador (Branco) - Фальшфейер (Белый) - Bengala (Blanca) - Feux à main (Blanc) - - - Red Hand Flare - Rote Leuchtkugel, wird wie eine Granate geworfen. - Světlice (Červená) - Jelzőrakéta (Piros) - Bengala (Rosso) - Flara ręczna (czerwona) - Sinalizador (Vermelho) - Фальшфейер (Красный) - Bengala (Roja) - Feux à main (Rouge) - - - Green Hand Flare - Grüne Leuchtkugel, wird wie eine Granate geworfen. - Světlice (Zelená) - Jelzőrakéta (Zöld) - Bengala (Verde) - Flara ręczna (zielona) - Sinalizador (Verde) - Фальшфейер (Зелёный) - Bengala (Verde) - Feux à main (Vert) - - - Yellow Hand Flare - Gelbe Leuchtkugel, wird wie eine Granate geworfen. - Světlice Žlutá - Jelzőrakéta (Sárga) - Bengala (Giallo) - Flara ręczna (żółta) - Sinalizador (Amarelo) - Фальшфейер (Жёлтые) - Bengala (Amarilla) - Feux à main (Jaune) - - - M127A1 (White) - M127A1 (Weiß) - M127A1 (Bílá) - M127A1 (Blanc) - M127A1 (Fehér) - M127A1 (Bianco) - M127A1 (biała) - M127A1 (Branco) - M127A1 (Белый) - M127A1 (Blanca) - - - M127A1 (Red) - M127A1 (Rot) - M127A1 (Červená) - M127A1 (Rouge) - M127A1 (Piros) - M127A1 (Rosso) - M127A1 (czerwona) - M127A1 (Vermelho) - M127A1 (Красный) - M127A1 (Roja) - - - M127A1 (Green) - M127A1 (Grün) - M127A1 (Zelená) - M127A1 (Vert) - M127A1 (Zöld) - M127A1 (Verde) - M127A1 (zielona) - M127A1 (Verde) - M127A1 (Зелёный) - M127A1 (Verde) - - - M127A1 (Yellow) - M127A1 (Gelb) - M127A1 (Žlutá) - M127A1 (Jaune) - M127A1 (Sárga) - M127A1 (Giallo) - M127A1 (żółta) - M127A1 (Amarelo) - M127A1 (Жёлтые) - M127A1 (Amarilla) - - + + + Switch Grenade Mode + Granaten-Modus wechseln + Cambiar modo de granada + Przełącz sposób rzutu granatem + Změnit styl hodu granátu + Changer type de lancer de grenade + Сменить режим броска гранаты + Gránátdobás mód váltás + Cambia tipo di granata + Alternar Modo de Granada + + + Normal Throw + Normaler Wurf + Lanzamiento normal + Normalny rzut + Normální hod + Lancer Normal + Нормальный бросок + Normál dobás + Lancio normale + Arremesso Normal + + + High Throw + Hoher Wurf + Lanzamiento alto + Wysoki rzut + Vysoký hod + Lancer Haut + Высокий бросок + Magas dobás + Lancio verso l'alto + Arremesso Alto + + + Precise Throw + Präziser Wurf + Lanzamiento preciso + Precyzyjny rzut + Přesný hod + Lancer Précis + Точный бросок + Pontos dobás + Lancio preciso + Arremesso Preciso + + + Roll Grenade + Granate rollen + Rodar granada + Po ziemi + Po zemi + Lancer Roulé + Катить гранату + Gurítás + Fai rotolare la granata + Rolar Granada + + + Drop Grenade + Granate fallenlassen + Soltar granada + Upuść granat + Upustit granát + Lâcher la grenade + Бросить себе под ноги + Ejtés + Lascia la granata + Largar Granada + + + M84 Stun Grenade + M84 Blendgranate + Granada aturdidora M84 + M84 Grenade Incapacitante + Granat hukowy M84 + Omračující granát M84 + M84 светозвуковая граната + M84 Villanógránát + Granata Stordente M84 + M84 granada de atordoamento + + + Also known as flashbang. Causes immediate flash blindness, deafness, tinnitus, and inner ear disturbance. + Verursacht temporäre Blind- und Taubheit. + Produce de manera inmediata ceguera, sordera, tinitus y afecta el oído interior. + Les grenades incapacitantes servent à désorienter ou distraire une menace pendant quelques secondes. + Znany też jako flashbang. Powoduje natychmiastową tymczasową ślepotę, głuchotę, dzwonienie w uszach i inne zaburzenia ucha wewnętrznego. + Omračující granát je taktická nesmrtící zbraň používaná při záchraně rukojmí a zvládání davu. + XM84 (M84) - граната нелетального действия, и предназначена для отвлечения и временного вывода из строя, либо дезориентации противника. Основное использование нашла при освобождении заложников, захвате преступников и террористов, а также проведении диверсионных миссий. + Eldobás után felrobban és éles hang, valamint fényhatással zavarja össze a környezetében tartózkodókat. + Anche conosciuta come flashbang. Causa accecamento immediato, sensazioni di sposatezza, mancanza d'equilibrio e disturbi al timpano. + Um tipo de granada não-letal destinado a confundir, desorientar e distrair uma potencial ameaça. + + + M127A1 Hand Held Signal (White) + M127A1 Leuchtmittel (Weiß) + Světlice M127A1 (Bílá) + M127A1 Jelzőrakéta (Fehér) + M127A1 Bengala (Bianco) + Flara ręczna sygnałowa M127A1 (biała) + M127A1 Sinalizador (Branco) + M127A1 Фальшфейер (Белый) + Bengala M127A1 (Blanca) + M127A1 Feux à main (Blanc) + + + M127A1 Hand Held Signal (Red) + M127A1 Leuchtmittel (Rot) + Světlice M127A1 (Červená) + M127A1 Jelzőrakéta (Piros) + M127A1 Bengala (Rosso) + Flara ręczna sygnałowa M127A1 (czerwona) + M127A1 Sinalizador (Vermelho) + M127A1 Фальшфейер (Красный) + Bengala M127A1 (Roja) + M127A1 Feux à main (Rouge) + + + M127A1 Hand Held Signal (Green) + M127A1 Leuchtmittel (Grün) + Světlice M127A1 (Zelená) + M127A1 Jelzőrakéta (Zöld) + M127A1 Bengala (Verde) + Flara ręczna sygnałowa M127A1 (zielona) + M127A1 Sinalizador (Verde) + M127A1 Фальшфейер (Зелёный) + Bengala M127A1 (Verde) + M127A1 Feux à main (Vert) + + + M127A1 Hand Held Signal (Yellow) + M127A1 Leuchtmittel (Gelb) + Světlice M127A1 (Žlutá) + M127A1 Jelzőrakéta (Sárga) + M127A1 Bengala (Giallo) + Flara ręczna sygnałowa M127A1 (żółta) + M127A1 Sinalizador (Amarelo) + M127A1 Фальшфейер (Жёлтые) + Bengala M127A1 (Amarilla) + M127A1 Feux à main (Jaune) + + + White Hand Flare + Weiße Leuchtkugel, wird wie eine Granate geworfen. + Světlice (Bílá) + Jelzőrakéta (Fehér) + Bengala (Bianco) + Flara ręczna (biała) + Sinalizador (Branco) + Фальшфейер (Белый) + Bengala (Blanca) + Feux à main (Blanc) + + + Red Hand Flare + Rote Leuchtkugel, wird wie eine Granate geworfen. + Světlice (Červená) + Jelzőrakéta (Piros) + Bengala (Rosso) + Flara ręczna (czerwona) + Sinalizador (Vermelho) + Фальшфейер (Красный) + Bengala (Roja) + Feux à main (Rouge) + + + Green Hand Flare + Grüne Leuchtkugel, wird wie eine Granate geworfen. + Světlice (Zelená) + Jelzőrakéta (Zöld) + Bengala (Verde) + Flara ręczna (zielona) + Sinalizador (Verde) + Фальшфейер (Зелёный) + Bengala (Verde) + Feux à main (Vert) + + + Yellow Hand Flare + Gelbe Leuchtkugel, wird wie eine Granate geworfen. + Světlice (Žlutá) + Jelzőrakéta (Sárga) + Bengala (Giallo) + Flara ręczna (żółta) + Sinalizador (Amarelo) + Фальшфейер (Жёлтые) + Bengala (Amarilla) + Feux à main (Jaune) + + + M127A1 (White) + M127A1 (Weiß) + M127A1 (Bílá) + M127A1 (Blanc) + M127A1 (Fehér) + M127A1 (Bianco) + M127A1 (biała) + M127A1 (Branco) + M127A1 (Белый) + M127A1 (Blanca) + + + M127A1 (Red) + M127A1 (Rot) + M127A1 (Červená) + M127A1 (Rouge) + M127A1 (Piros) + M127A1 (Rosso) + M127A1 (czerwona) + M127A1 (Vermelho) + M127A1 (Красный) + M127A1 (Roja) + + + M127A1 (Green) + M127A1 (Grün) + M127A1 (Zelená) + M127A1 (Vert) + M127A1 (Zöld) + M127A1 (Verde) + M127A1 (zielona) + M127A1 (Verde) + M127A1 (Зелёный) + M127A1 (Verde) + + + M127A1 (Yellow) + M127A1 (Gelb) + M127A1 (Žlutá) + M127A1 (Jaune) + M127A1 (Sárga) + M127A1 (Giallo) + M127A1 (żółta) + M127A1 (Amarelo) + M127A1 (Жёлтые) + M127A1 (Amarilla) + + \ No newline at end of file diff --git a/addons/hearing/stringtable.xml b/addons/hearing/stringtable.xml index 577d041236..9c6a107466 100644 --- a/addons/hearing/stringtable.xml +++ b/addons/hearing/stringtable.xml @@ -1,5 +1,4 @@  - @@ -30,7 +29,7 @@ Earplugs in Ohrenstöpsel drinnen Poner tapones - Załóż stopery + Włóż stopery Dát špunty do uší Беруши надеты Bouchons mis @@ -42,7 +41,7 @@ Earplugs out Ohrenstöpsel raus Quitar tapones - Zdejmij stopery + Wyjmij stopery Vyndat špunty z uší Беруши сняты Bouchons enlevés @@ -54,7 +53,7 @@ Earplugs in Ohrenstöpsel drinnen Tapones puestos - Stopery założone + Stopery włożone Špunty v uších Беруши надеты Bouchons mis @@ -66,7 +65,7 @@ Earplugs out Ohrenstöpsel raus Tapones quitados - Stopery zdjęte + Stopery wyjęte Špunty venku z uší Беруши сняты Bouchons enlevés @@ -100,9 +99,12 @@ Disable ear ringing - Deaktiviere Ohrfiepen + Désactiver les tintements d'oreille Desactivar zumbido de oídos Отключить эффект баротравмы + Knalltrauma deaktivieren + Vypnout pískání v uších + Wyłącz dzwonienie w uszach diff --git a/addons/interact_menu/stringtable.xml b/addons/interact_menu/stringtable.xml index f039dcd806..0f718ded19 100644 --- a/addons/interact_menu/stringtable.xml +++ b/addons/interact_menu/stringtable.xml @@ -6,30 +6,45 @@ Immer den Cursor für Selbst-Interaktionen anzeigen. Mostrar siempre el cursor para la interacción propia Всегда показывать курсор для взаимодействия с собой + Zobrazit kurzor v menu pro vlastní interakci + Zawsze wyświetlaj kursor dla własnej interakcji + Toujours afficher le curseur pour les interactions sur soi-même Interact Key Fremdinteraktionsmenü-Taste Tecla de interacción Клавиша взаимодействия + Klávesa pro interakci + Klawisz interakcji + Touche d'interaction Self Interaction Key Eigeninteraktionsmenü-Taste Tecla de interacción propia Клавиша взаимодействия (с собой) + Klávesa pro vlastní interakci + Klawisz własnej interakcji + Touche d'Interaction sur soi-même Self Actions Selbst-Aktionen Acciones propias Действия с собой + Vlastní akce + Własne akcje + Actions sur soi-même Vehicle Actions Fahrzeug-Aktionen Acciones de vehículo Действия на транспорте + Interakce s vozidly + Akcje pojazdu + Actions sur les véhicules diff --git a/addons/interaction/CfgEventHandlers.hpp b/addons/interaction/CfgEventHandlers.hpp index 17200056b8..7b003bbe8c 100644 --- a/addons/interaction/CfgEventHandlers.hpp +++ b/addons/interaction/CfgEventHandlers.hpp @@ -1,27 +1,11 @@ class Extended_PreInit_EventHandlers { - class ADDON { - init = QUOTE( call COMPILE_FILE(XEH_preInit) ); - }; + class ADDON { + init = QUOTE( call COMPILE_FILE(XEH_preInit) ); + }; }; class Extended_PostInit_EventHandlers { - class ADDON { - clientInit = QUOTE( call COMPILE_FILE(XEH_clientInit) ); - }; -}; - -class Extended_GetIn_EventHandlers { - class All { - class ADDONnu { - clientGetIn = QUOTE( if (_this select 2 == ACE_player && {!isNull (findDisplay 1713999)}) then {(findDisplay 1713999) closeDisplay 1}); + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_postInit)); }; - }; -}; - -class Extended_GetOut_EventHandlers { - class All { - class ADDONnu { - clientGetOut = QUOTE( if (_this select 2 == ACE_player && {!isNull (findDisplay 1713999)}) then {(findDisplay 1713999) closeDisplay 1}); - }; - }; }; diff --git a/addons/interaction/CfgVehicles.hpp b/addons/interaction/CfgVehicles.hpp index e85300f301..bd36f42703 100644 --- a/addons/interaction/CfgVehicles.hpp +++ b/addons/interaction/CfgVehicles.hpp @@ -260,12 +260,11 @@ class CfgVehicles { icon = PATHTOF(UI\team\team_white_ca.paa); hotkey = "N"; }; - class ACE_BecomeLeader { displayName = "$STR_ACE_Interaction_BecomeLeader"; - condition = QUOTE(count (units group _player) > 1 && {leader group _player != _player}); + condition = QUOTE(_this call FUNC(canBecomeLeader)); exceptions[] = {"isNotInside"}; - statement = QUOTE(_newGroup = createGroup side group _player; (units group _player) joinSilent _newGroup; _newGroup selectLeader _player;); + statement = QUOTE(_this call FUNC(doBecomeLeader)); showDisabled = 1; priority = 1.0; icon = PATHTOF(UI\team\team_white_ca.paa); diff --git a/addons/interaction/XEH_clientInit.sqf b/addons/interaction/XEH_postInit.sqf similarity index 91% rename from addons/interaction/XEH_clientInit.sqf rename to addons/interaction/XEH_postInit.sqf index 1ed3883f02..98b1cc1523 100644 --- a/addons/interaction/XEH_clientInit.sqf +++ b/addons/interaction/XEH_postInit.sqf @@ -4,6 +4,12 @@ ACE_Modifier = 0; +//SelectLeader Event Handler for BecomeLeader action: +[QGVAR(selectLeader), { + PARAMS_2(_group,_leader); + _group selectLeader _leader; +}] call EFUNC(common,addEventHandler); + if (!hasInterface) exitWith {}; GVAR(isOpeningDoor) = false; diff --git a/addons/interaction/XEH_preInit.sqf b/addons/interaction/XEH_preInit.sqf index 671535c36d..6f10a4e834 100644 --- a/addons/interaction/XEH_preInit.sqf +++ b/addons/interaction/XEH_preInit.sqf @@ -6,8 +6,10 @@ PREP(addPassengerActions); PREP(addPassengersActions); PREP(addSelectableItem); PREP(applyButtons); +PREP(canBecomeLeader); PREP(canInteractWithCivilian); PREP(canTapShoulder); +PREP(doBecomeLeader); PREP(getDoor); PREP(getDoorAnimations); PREP(getDown); diff --git a/addons/interaction/functions/fnc_canBecomeLeader.sqf b/addons/interaction/functions/fnc_canBecomeLeader.sqf new file mode 100644 index 0000000000..11234ad6d7 --- /dev/null +++ b/addons/interaction/functions/fnc_canBecomeLeader.sqf @@ -0,0 +1,21 @@ +/* + * Author: PabstMirror + * Test if can Become Leader of group + * + * Arguments: + * 0: target + * 1: player + * + * Return Value: + * + * + * Example: + * [player, player] call ace_interaction_fnc_canBecomeLeader + * + * Public: No + */ +#include "script_component.hpp" + +PARAMS_2(_target,_player); + +(count (units group _player) > 1) && {leader group _player != _player} diff --git a/addons/interaction/functions/fnc_doBecomeLeader.sqf b/addons/interaction/functions/fnc_doBecomeLeader.sqf new file mode 100644 index 0000000000..24bfa66c11 --- /dev/null +++ b/addons/interaction/functions/fnc_doBecomeLeader.sqf @@ -0,0 +1,21 @@ + /* + * Author: PabstMirror + * Become Leader of group + * + * Arguments: + * 0: target + * 1: player + * + * Return Value: + * None + * + * Example: + * [player, player] call ace_interaction_fnc_doBecomeLeader + * + * Public: No + */ +#include "script_component.hpp" + +PARAMS_2(_target,_player); + +[QGVAR(selectLeader), (units group _player), [(group _player), _player]] call EFUNC(common,targetEvent); diff --git a/addons/interaction/stringtable.xml b/addons/interaction/stringtable.xml index e1837865ae..cf0349af5c 100644 --- a/addons/interaction/stringtable.xml +++ b/addons/interaction/stringtable.xml @@ -5,41 +5,65 @@ Interactions Interaktionen Interacciones + Interakce + Interakcje + Interactions Torso Torso Torso + Trup + Tors + Torse Head Kopf Cabeza + Hlava + Głowa + Tête Left Arm Linker Arm Brazo izquierdo + Levá paže + Lewe ramię + Bras Gauche Right Arm Rechter Arm Brazo derecho + Pravá paže + Prawe ramię + Bras Droit Left Leg Linkes Bein Pierna izquierda + Levá noha + Lewa noga + Jambe Gauche Right Leg Rechtes Bein Pierna derecha + Pravá hona + Prawa noga + Jambe Droite Weapon Waffe Arma + Zbraň + Broń + Arme Interaction Menu @@ -57,7 +81,7 @@ Interaction Menu (Self) Interaktionsmenü (Selbst) Menú de interacción (Propia) - Menu interakcji (na siebie) + Menu interakcji (własne) Menu interakce (vlastní) Menu d'interaction (Perso) Меню взаимодействия (с собой) @@ -142,7 +166,7 @@ Gruppe verlassen Dejar grupo Opuść grupę - Odejít ze skupiny + Opustit skupinu Quitter Groupe Выйти из группы Csoport elhagyása @@ -202,7 +226,7 @@ Gesten Gestos Gesty - Gesta + Posunky Signaux Жесты Kézjelek @@ -384,7 +408,7 @@ On te tape sur l'épaule Zostałeś klepnięty po ramieniu Vállonveregettek - Někdo tě poklepal na rameno + Někdo tě poklepal na PRAVÉ rameno Вас похлопали по плечу Você foi tocado no ombro Ti è stato dato un colpetto sulla spalla @@ -396,7 +420,7 @@ On te tape sur l'épaule. Zostałeś klepnięty po ramieniu Vállonveregettek - Někdo tě poklepal na rameno. + Někdo tě poklepal na LEVÉ rameno Вас похлопали по плечу Você foi tocado no ombro. Ti è stato dato un colpetto sulla spalla @@ -515,7 +539,7 @@ Unirse al<br/>equipo rojo Rejoindre<br/>Rouge Dołącz do drużyny<br/>czerwonej - Připojit do<br/>Červeného Týmu + Připojit do<br/>Červeného týmu Присоединиться<br/>к красной группе Unir-se à<br/>Equipe Vermelha Entra nella<br/>Squadra Rossa @@ -527,7 +551,7 @@ Unirse al<br/>equipo verde Rejoindre<br/>Verte Dołącz do<br/>drużyny zielonej - Připojit do<br/>Zeleného Týmu + Připojit do<br/>Zeleného týmu Присоединиться<br/>к зеленой группе Unir-se à<br/>Equipe Verde Entra nella<br/>Squadra Verde @@ -539,7 +563,7 @@ Unirse al<br/>equipo azul Rejoindre<br/>Bleue Dołącz do<br/>drużyny niebieskiej - Připojit do<br/>Modrého Týmu + Připojit do<br/>Modrého týmu Присоединиться<br/>к синей группе Unir-se à<br/>Equipe Azul Entra nella<br/>Squadra Blu @@ -551,7 +575,7 @@ Unirse al<br/>equipo amarillo Rejoindre<br/>Jaune Dołącz do<br/>drużyny żółtej - Připojit do<br/>Žlutého Týmu + Připojit do<br/>Žlutého týmu Присоединиться<br/>к желтой группе Unir-se à<br/>Equipe Amarela Entra nella<br/>Squadra Gialla @@ -563,7 +587,7 @@ Te has unido al equipo %1 Tu as rejoint l'équipe %1 Dołączyłeś do drużyny %1 - Připojil ses do Týmu %1 + Připojil ses do %1 týmu Вы присоединились к группе %1 Você uniu-se à Equipe %1 Sei entrato nella Squadra %1 @@ -662,6 +686,7 @@ Interact + Interagir Interagiere Interakce Взаимодействовать @@ -673,6 +698,9 @@ Fahrzeuginsassen Pasajeros Пассажиры + Pasažéři + Pasażerowie + Passagers diff --git a/addons/inventory/stringtable.xml b/addons/inventory/stringtable.xml index 3c3e1dff24..5505d6b505 100644 --- a/addons/inventory/stringtable.xml +++ b/addons/inventory/stringtable.xml @@ -6,12 +6,18 @@ Erhöhe die angezeigte Inventargröße Hacer la pantalla de inventario mas grande Сделать окно инвентаря больше + Zvětšit zobrazení inventáře + Powiększ UI ekwipunku + Augmente la taille d'affichage de l'inventaire 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. 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. 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. Обычно, окно инвентаря зависит от размеров пользовательского интерфейса. Эта настройка позволяет увеличить размер окна инвентаря в пользовательском интерфейсе, не увеличивая размера шрифтов, так что отображется большее количество строк. + Normálně se velikost invetáře škáluje s velikostí UI. Toto nastavení dovoluje škálování velikost inventáře ale nežvětšuje velikost fontu. To dovoluje zobrazení více řad v inventáři. + Ekwipunek skalowany jest poprzez rozmiar UI. Ta opcja pozwala powiększyć rozmiar UI ekwipunku, lecz nie zwiększa rozmiaru fontu pozwalając na wyświetlanie większej ilości wierszy. + Normalement, l'inventaire est automatiquement mesuré par la taille de l'interface de l'utilisateur. Cette option vous permet d'augmenter la taille d'affichage de l'inventaire, cependant, cette option n'augmente pas la police d'écriture et le nombre de place. diff --git a/addons/javelin/CfgWeapons.hpp b/addons/javelin/CfgWeapons.hpp index eccdd30623..cef967e32e 100644 --- a/addons/javelin/CfgWeapons.hpp +++ b/addons/javelin/CfgWeapons.hpp @@ -6,7 +6,8 @@ class CfgWeapons { class launch_Titan_base : Launcher_Base_F { weaponInfoType = "ACE_RscOptics_javelin"; - + modelOptics = PATHTOF(data\reticle_titan.p3d); + lockingTargetSound[] = {"",0,1}; lockedTargetSound[] = {"",0,1}; }; diff --git a/addons/javelin/RscInGameUI.hpp b/addons/javelin/RscInGameUI.hpp index e208e18834..8c73f3d8d1 100644 --- a/addons/javelin/RscInGameUI.hpp +++ b/addons/javelin/RscInGameUI.hpp @@ -14,7 +14,7 @@ class RscInGameUI { idd = 300; 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];"; + onUnload = "uiNameSpace setVariable ['ACE_RscOptics_javelin',nil];uiNameSpace setVariable ['ACE_RscOptics_javelin_PFH',nil];"; class CA_Distance: RscOpticsValue { idc = 151; @@ -45,13 +45,6 @@ class RscInGameUI { height = 0.001; }; class Controls { - class JavelinLocking : RscMapControl { - onDraw = QUOTE(_this call FUNC(onOpticDraw)); - idc = -1; - w = 0; - h = 0; - }; - class ACE_javelin_Day_mode_off: RscPicture { idc = 1001; x = "(SafezoneX+(SafezoneW -SafezoneH*3/4)/2)+ (0.03/4)*3*SafezoneH - SafezoneX"; diff --git a/addons/javelin/XEH_clientInit.sqf b/addons/javelin/XEH_clientInit.sqf index 1d3b546e39..38b006ca24 100644 --- a/addons/javelin/XEH_clientInit.sqf +++ b/addons/javelin/XEH_clientInit.sqf @@ -1,3 +1,5 @@ #include "script_component.hpp" +if (!hasInterface) exitWith {}; + #include "initKeybinds.sqf" \ No newline at end of file diff --git a/addons/javelin/data/reticle_titan.p3d b/addons/javelin/data/reticle_titan.p3d new file mode 100644 index 0000000000..682296f0c8 Binary files /dev/null and b/addons/javelin/data/reticle_titan.p3d differ diff --git a/addons/javelin/functions/fnc_onOpticDraw.sqf b/addons/javelin/functions/fnc_onOpticDraw.sqf index a319c61de5..2412c2d5a1 100644 --- a/addons/javelin/functions/fnc_onOpticDraw.sqf +++ b/addons/javelin/functions/fnc_onOpticDraw.sqf @@ -1,6 +1,6 @@ //#define DEBUG_MODE_FULL #include "script_component.hpp" -//TRACE_1("enter", _this); +TRACE_1("enter", _this); #define __TRACKINTERVAL 0 // how frequent the check should be. #define __LOCKONTIME 3.0 // Lock on won't occur sooner @@ -10,7 +10,19 @@ #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"]; +private["_isJavelin", "_args", "_lastTick", "_runTime", "_soundTime", "_lockTime", "_newTarget", "_currentTarget", "_range", "_pos", "_targetArray"]; + +if( ! ([ (configFile >> "CfgWeapons" >> (currentWeapon (vehicle ACE_player)) ), "launch_Titan_base"] call EFUNC(common,inheritsFrom)) + || { (vehicle ACE_player) != ACE_player } + ) exitWith { + __JavelinIGUITargeting ctrlShow false; + __JavelinIGUITargetingGate ctrlShow false; + __JavelinIGUITargetingLines ctrlShow false; + __JavelinIGUITargetingConstraints ctrlShow false; + + [(_this select 1)] call cba_fnc_removePerFrameHandler; + uiNamespace setVariable["ACE_RscOptics_javelin_PFH", nil]; +}; // Reset arguments if we havnt rendered in over a second _args = uiNamespace getVariable[QGVAR(arguments), [] ]; @@ -21,6 +33,8 @@ if( (count _args) > 0) then { }; }; +TRACE_1("Running", "Running"); + // Pull the arguments _currentTarget = _args select 1; _runTime = _args select 2; @@ -37,9 +51,6 @@ if ((velocity ACE_player) distance [0,0,0] > 0.5 && {cameraView == "GUNNER"} && // 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 { @@ -73,8 +84,10 @@ if (isNull _newTarget) then { __JavelinIGUISeek ctrlSetTextColor __ColorGray; __JavelinIGUINFOV ctrlSetTextColor __ColorGreen; + __JavelinIGUITargeting ctrlShow false; __JavelinIGUITargetingGate ctrlShow false; __JavelinIGUITargetingLines ctrlShow false; + __JavelinIGUITargetingConstraints ctrlShow false; ACE_player setVariable ["ace_missileguidance_target",nil, false]; @@ -82,8 +95,9 @@ if (isNull _newTarget) then { //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)} + && {(call CBA_fnc_getFoV) select 1 > 9} + && { (currentVisionMode ACE_player == 2)} + && GVAR(isLockKeyDown) ) then { // Lock on after 3 seconds if(_currentTarget != _newTarget) then { @@ -98,8 +112,9 @@ if (isNull _newTarget) then { __JavelinIGUISeek ctrlSetTextColor __ColorGreen; __JavelinIGUINFOV ctrlSetTextColor __ColorNull; + __JavelinIGUITargeting ctrlShow true; - __JavelinIGUITargetingConstrains ctrlShow true; + __JavelinIGUITargetingConstrains ctrlShow false; __JavelinIGUITargetingGate ctrlShow true; __JavelinIGUITargetingLines ctrlShow true; @@ -187,10 +202,11 @@ if (isNull _newTarget) then { } else { // Something is wrong with our seek _currentTarget = objNull; - + ACE_player setVariable["ace_missileguidance_target", nil, false]; + __JavelinIGUISeek ctrlSetTextColor __ColorGray; __JavelinIGUINFOV ctrlSetTextColor __ColorGray; - __JavelinIGUITargetingConstrains ctrlShow false; + __JavelinIGUITargeting ctrlShow false; __JavelinIGUITargetingGate ctrlShow false; __JavelinIGUITargetingLines ctrlShow false; diff --git a/addons/javelin/functions/fnc_onOpticLoad.sqf b/addons/javelin/functions/fnc_onOpticLoad.sqf index 49e9a25e61..a12d0ef176 100644 --- a/addons/javelin/functions/fnc_onOpticLoad.sqf +++ b/addons/javelin/functions/fnc_onOpticLoad.sqf @@ -24,4 +24,10 @@ uiNameSpace setVariable [QGVAR(arguments), 0, // Lock Time 0 // Sound timer ] -]; \ No newline at end of file +]; + +_pfh_handle = uiNamespace getVariable ["ACE_RscOptics_javelin_PFH", nil]; +if(isNil "_pfh_handle") then { + _pfh_handle = [FUNC(onOpticDraw), 0, []] call CBA_fnc_addPerFrameHandler; + uiNamespace setVariable["ACE_RscOptics_javelin_PFH", _pfh_handle]; +}; \ No newline at end of file diff --git a/addons/javelin/initKeybinds.sqf b/addons/javelin/initKeybinds.sqf index 6634b1f623..ecce40bbf0 100644 --- a/addons/javelin/initKeybinds.sqf +++ b/addons/javelin/initKeybinds.sqf @@ -27,4 +27,4 @@ [ACE_player] call FUNC(cycleFireMode); false }, -[15, [false, true, false]], false] call cba_fnc_addKeybind; //Shift+Tab Key \ No newline at end of file +[15, [false, true, false]], false] call cba_fnc_addKeybind; //Ctrl+Tab Key \ No newline at end of file diff --git a/addons/javelin/stringtable.xml b/addons/javelin/stringtable.xml index 3859fccf2b..bd8f59c41c 100644 --- a/addons/javelin/stringtable.xml +++ b/addons/javelin/stringtable.xml @@ -1,15 +1,21 @@  - + Lock Target (Hold) Ziel aufschalten Захватить цель (удерживать) + Zamknout cíl(držet) + Namierz cel (przytrzymaj) + Vérouiller la Cible (Maintenir) - + Cycle Fire Mode Wechsle Feuermodus Переключение режимов огня + Cyklování režimů palby + Przełącz tryb ognia + Mode de Tir (Cycle) diff --git a/addons/kestrel/stringtable.xml b/addons/kestrel/stringtable.xml index baae118891..c811633f75 100644 --- a/addons/kestrel/stringtable.xml +++ b/addons/kestrel/stringtable.xml @@ -1,5 +1,4 @@  - @@ -30,7 +29,7 @@ Anemómetro balístico Applied Ballistics Meter Urządzenie do monitorowania pogody - Zařízení pro měření vítru + Zařízení pro měření větru Monitoraggio Balistico Attivo Applied Ballistics Meter Medidor Balístico Ativo @@ -61,4 +60,4 @@ Закрыть Kestrel - \ No newline at end of file + diff --git a/addons/laser/CfgVehicles.hpp b/addons/laser/CfgVehicles.hpp index 07b8055f0e..f4e2ed42ab 100644 --- a/addons/laser/CfgVehicles.hpp +++ b/addons/laser/CfgVehicles.hpp @@ -2,8 +2,32 @@ class CfgVehicles { class All; class LaserTarget: All { + // @TODO: Changing the model and simulation hides it, but THEN IT DOESNT SPAWN WTF!? + model = "\A3\Weapons_F\empty.p3d"; + simulation = "nvmarker"; + nvTarget = 1; + //simulation = "laserTarget"; + //threat[] = {0,0,0}; class EventHandlers { init = QUOTE(_this call FUNC(laser_init)); }; + + diffuse[] = {0,0,0}; + ambient[] = {0,0,0}; + brightness = 0; + name = "pozicni blik"; + drawLight = 0; + drawLightSize = 0; + drawLightCenterSize = 0; + activeLight = 0; + blinking = 0; + dayLight = 0; + onlyInNvg = 0; + useFlare = 0; + }; + + // Visual laserTarget override + class ACE_LaserTarget_Visual : LaserTarget { + //model = "\A3\Weapons_f\laserTgt.p3d"; }; }; \ No newline at end of file diff --git a/addons/laser/CfgWeapons.hpp b/addons/laser/CfgWeapons.hpp new file mode 100644 index 0000000000..70a25e6f85 --- /dev/null +++ b/addons/laser/CfgWeapons.hpp @@ -0,0 +1,8 @@ + +class CfgWeapons { + class Binocular; + + class Laserdesignator : Binocular { + visionMode[] = {"Normal","NVG"}; + }; +}; diff --git a/addons/laser/RscInGameUI.hpp b/addons/laser/RscInGameUI.hpp new file mode 100644 index 0000000000..457d320520 --- /dev/null +++ b/addons/laser/RscInGameUI.hpp @@ -0,0 +1 @@ +// TODO: RscOptics_LaserDesignator for laser code designation \ No newline at end of file diff --git a/addons/laser/XEH_post_init.sqf b/addons/laser/XEH_post_init.sqf index 6904ee6c47..fb189d5041 100644 --- a/addons/laser/XEH_post_init.sqf +++ b/addons/laser/XEH_post_init.sqf @@ -1,3 +1,4 @@ #include "script_component.hpp" -NO_DEDICATED; +["laser_laserOn", {_this call DFUNC(handleLaserOn)}] call EFUNC(common,addEventHandler); +["laser_laserOff", {_this call DFUNC(handleLaserOff)}] call EFUNC(common,addEventHandler); diff --git a/addons/laser/XEH_pre_init.sqf b/addons/laser/XEH_pre_init.sqf index 4e4a39e8bf..e160a533f2 100644 --- a/addons/laser/XEH_pre_init.sqf +++ b/addons/laser/XEH_pre_init.sqf @@ -6,15 +6,28 @@ PREP(shootRay); PREP(shootCone); PREP(checkLos); -PREP(findLaserDesignator); PREP(findStrongestRay); PREP(translateToModelSpace); PREP(translateToWeaponSpace); -PREP(laser_init); +PREP(seekerFindLaserSpot); +PREP(laserOn); +PREP(laserOff); +PREP(handleLaserOn); +PREP(handleLaserOff); +PREP(drawVisibleLaserTargets); + +PREP(laser_init); +PREP(vanillaLaserSeekerHandler); PREP(laserTargetPFH); -ACE_LASERS = []; -ACE_DEFAULT_LASER_CODE = 1001; \ No newline at end of file +GVAR(VanillaLasers) = []; + +// Laser default variables +ACE_DEFAULT_LASER_CODE = 1001; +ACE_DEFAULT_LASER_WAVELENGTH = 1550; +ACE_DEFAULT_LASER_BEAMSPREAD = 1; + +GVAR(laserEmitters) = HASH_CREATE; \ No newline at end of file diff --git a/addons/laser/config.cpp b/addons/laser/config.cpp index 4b209b866e..3f430619ef 100644 --- a/addons/laser/config.cpp +++ b/addons/laser/config.cpp @@ -11,4 +11,5 @@ class CfgPatches { }; #include "CfgEventhandlers.hpp" -#include "CfgVehicles.hpp" \ No newline at end of file +#include "CfgVehicles.hpp" +#include "CfgWeapons.hpp" \ No newline at end of file diff --git a/addons/laser/functions/fnc_drawVisibleLaserTargets.sqf b/addons/laser/functions/fnc_drawVisibleLaserTargets.sqf new file mode 100644 index 0000000000..161364c0f2 --- /dev/null +++ b/addons/laser/functions/fnc_drawVisibleLaserTargets.sqf @@ -0,0 +1 @@ +// @TODO: This is to draw the actual LaserTarget positions to utilize for laser shooting. \ No newline at end of file diff --git a/addons/laser/functions/fnc_findLaserDesignator.sqf b/addons/laser/functions/fnc_findLaserDesignator.sqf deleted file mode 100644 index 902775ebd5..0000000000 --- a/addons/laser/functions/fnc_findLaserDesignator.sqf +++ /dev/null @@ -1,74 +0,0 @@ -//#define DEBUG_MODE_FULL -#include "script_component.hpp" - -private ["_seeker", "_headingPitch", "_found", "_vectorTo", "_polarTo", "_dir", "_vertOk", "_horzOk", "_fov", - "_closestDistance", "_pos1", "_pos2", "_disCheck", "_currentTarget", "_potentialTargets", "_offset", "_vector"]; - -_seeker = _this select 0; -_laserCode = _this select 1; -_fov = if (count _this > 2) then {_this select 2} else {75}; -_vector = if (count _this > 3) then {_this select 3} else {vectorDir _seeker}; -_offset = if (count _this > 4) then {_this select 4} else {[0,0,0]}; - -_headingPitch = _vector call CBA_fnc_vect2polar; -_currentTarget = nil; -_found = false; - -_getPosASL = {visiblePositionASL (_this select 0)}; - -LOG("Searching lasers"); -if(!(isNil "ACE_LASERS")) then { - _potentialTargets = []; - TRACE_1("", ACE_LASERS); - - { - if(!(isNull _x)) then { - _sensorPos = ATLtoASL(_seeker modelToWorldVisual _offset); - _vectorTo = [_sensorPos, ([_x] call _getPosASL)] call BIS_fnc_vectorFromXToY; - _polarTo = _vectorTo call CBA_fnc_vect2polar; - _dir = _polarTo select 1; - _dir = _dir - (_headingPitch select 1); - - TRACE_4("Calc", _sensorPos, _vectorTo, _polarTo, _dir); - - if (_dir < 0) then {_dir = _dir + 360}; - if (_dir > 360) then {_dir = _dir - 360}; - _vertOk = false; - _horzOk = false; - if(_dir < _fov || {_dir > (360-_fov)}) then { - _horzOk = true; - }; - if(abs((abs(_polarTo select 2))-(abs(_headingPitch select 2))) < _fov) then { - _vertOk = true; - }; - - TRACE_2("Results", _vertOk, _horzOk); - - if(_vertOk && {_horzOk}) then { - // Does the laser currently have our current code, if we have one? - _targetCode = _x getVariable ["ACE_LASER_CODE", ACE_DEFAULT_LASER_CODE]; - TRACE_1("Target in sight, checking code", _targetCode, _laserCode); - if(_targetCode == _laserCode) then { - _potentialTargets set[(count _potentialTargets), _x]; - }; - }; - }; - - } forEach ACE_LASERS; - - TRACE_1("", _potentialTargets); - - _closestDistance = 100000; - { - _pos1 = (getPosASL _seeker); - _pos2 = ([_x] call _getPosASL); - _disCheck = _pos1 distance _pos2; - // shouldn't this bail out when a valid target is found instead of iterating over all potential targets ? - if(_disCheck < _closestDistance && {[_pos1, _pos2, _x, _seeker] call FUNC(checkLos)}) then { - _found = true; - _currentTarget = _x; - _closestDistance = _disCheck; - }; - } forEach _potentialTargets; -}; -[_found, _currentTarget] \ No newline at end of file diff --git a/addons/laser/functions/fnc_handleLaserOff.sqf b/addons/laser/functions/fnc_handleLaserOff.sqf new file mode 100644 index 0000000000..573bd8197b --- /dev/null +++ b/addons/laser/functions/fnc_handleLaserOff.sqf @@ -0,0 +1,8 @@ +//fnc_handleLaserOff.sqf +#include "script_component.hpp" + +private ["_uuid"]; +_uuid = _this select 0; +if(HASH_HASKEY(GVAR(laserEmitters), _uuid)) then { + HASH_REM(GVAR(laserEmitters), _uuid); +}; diff --git a/addons/laser/functions/fnc_handleLaserOn.sqf b/addons/laser/functions/fnc_handleLaserOn.sqf new file mode 100644 index 0000000000..bac53a8957 --- /dev/null +++ b/addons/laser/functions/fnc_handleLaserOn.sqf @@ -0,0 +1,7 @@ +//fnc_handleLaserOn.sqf +#include "script_component.hpp" + +private ["_uuid", "_args"]; +_uuid = _this select 0; +_args = _this select 1; +HASH_SET(GVAR(laserEmitters), _uuid, _args); diff --git a/addons/laser/functions/fnc_laserOff.sqf b/addons/laser/functions/fnc_laserOff.sqf new file mode 100644 index 0000000000..84613cd988 --- /dev/null +++ b/addons/laser/functions/fnc_laserOff.sqf @@ -0,0 +1,16 @@ +/* + * Author: Nou + * Turn a laser designator off. + * + * Arguments: + * 0: UUID (from laserOn) + * + * Return value: + * None + */ + +#include "script_component.hpp" + +private ["_uuid"]; +_uuid = _this select 0; +["laser_laserOff", [_uuid]] call EFUNC(common,globalEvent); diff --git a/addons/laser/functions/fnc_laserOn.sqf b/addons/laser/functions/fnc_laserOn.sqf new file mode 100644 index 0000000000..9b5faa3859 --- /dev/null +++ b/addons/laser/functions/fnc_laserOn.sqf @@ -0,0 +1,23 @@ +/* + * Author: Nou + * Turn a laser designator on. + * + * Arguments: + * 0: Emitter + * 1: Owner + * 2: Method, can be code, which emitter and owner are passed to, a string function name, an array with a position memory point and weapon name, or an array with a position memory point, a vector begining memory point, and vector ending memory point. + * 3: Wavelength (1550nm is common eye safe) + * 4: Laser code + * 5: Beam divergence (in mils off beam center). + * + * Return value: + * String, UUID for sending to laserOff function. + */ + +#include "script_component.hpp" + +private ["_uuid", "_args"]; +_uuid = format["%1%2%3", floor diag_tickTime, floor random 1000, floor random 10000]; +_args = [_uuid, _this]; +["laser_laserOn", _args] call EFUNC(common,globalEvent); +_uuid; diff --git a/addons/laser/functions/fnc_laserTargetPFH.sqf b/addons/laser/functions/fnc_laserTargetPFH.sqf index bdab413685..d73d9f070a 100644 --- a/addons/laser/functions/fnc_laserTargetPFH.sqf +++ b/addons/laser/functions/fnc_laserTargetPFH.sqf @@ -1,20 +1,25 @@ +//#define DEBUG_MODE_FULL #include "script_component.hpp" +TRACE_1("enter", _this); private["_args", "_laserTarget"]; //TRACE_1("enter", _this); _args = _this select 0; _laserTarget = _args select 0; +_shooter = _args select 1; +_uuid = _args select 2; -if(isNull _laserTarget || !alive player) exitWith { +if(isNull _laserTarget || !alive _shooter) exitWith { [(_this select 1)] call cba_fnc_removePerFrameHandler; - REM(ACE_LASERS, _laserTarget); + REM(GVAR(VanillaLasers), _laserTarget); + + // Remove laseron + [_uuid] call FUNC(laserOff); }; -_end = diag_tickTime; - #ifdef DEBUG_MODE_FULL // Iconize the location of the actual laserTarget -_pos = [_laserTarget] call FUNC(getPosASL); +_pos = getPosASL _laserTarget; drawIcon3D ["\a3\ui_f\data\IGUI\Cfg\Cursors\select_target_ca.paa", [1,0,0,1], (ASLtoATL _pos), 0.75, 0.75, 0, "", 0.5, 0.025, "TahomaB"]; { diff --git a/addons/laser/functions/fnc_laser_init.sqf b/addons/laser/functions/fnc_laser_init.sqf index 2790459724..378ee38407 100644 --- a/addons/laser/functions/fnc_laser_init.sqf +++ b/addons/laser/functions/fnc_laser_init.sqf @@ -1,25 +1,32 @@ +//#define DEBUG_MODE_FULL #include "script_component.hpp" -PARAMS_1(_laserTarget); - TRACE_1("enter", _this); +PARAMS_1(_laserTarget); + // Add the target to the global targets array // Everyone tracks them - // Add the laser localized to the laser array, and give it the default localized code -PUSH(ACE_LASERS, _laserTarget); +PUSH(GVAR(VanillaLasers), _laserTarget); + // Check the vehicle, otherwise use the default -_laserTarget setVariable ["ACE_LASER_CODE", ACE_DEFAULT_LASER_CODE, false]; +_laserTarget setVariable [QGVAR(code), ACE_DEFAULT_LASER_CODE, false]; +_laserTarget setVariable [QGVAR(beamSpread), ACE_DEFAULT_LASER_BEAMSPREAD, false]; +_laserTarget setVariable [QGVAR(waveLength), ACE_DEFAULT_LASER_WAVELENGTH, false]; + // Clean the lasers of any null objects while we are here -REM(ACE_LASERS, objNull); +REM(GVAR(VanillaLasers), objNull); if(!(local _laserTarget)) exitWith { }; + // The target is local, so its on this client if(!isDedicated) then { - _laserTarget setVariable ["ACE_LASERTARGET_SHOOTER", ACE_player, true]; - - [FUNC(laserTargetPFH), 0, [_laserTarget, ACE_player]] call cba_fnc_addPerFrameHandler; + // @TODO: Get ownership variables and set them on the vehicle + + _uuid = [(vehicle ACE_player), ACE_player, QFUNC(vanillaLaserSeekerHandler), ACE_DEFAULT_LASER_WAVELENGTH, ACE_DEFAULT_LASER_CODE, ACE_DEFAULT_LASER_BEAMSPREAD] call FUNC(laserOn); + _laserTarget setVariable [QGVAR(uuid), _uuid, false]; + [FUNC(laserTargetPFH), 0, [_laserTarget, ACE_player, _uuid]] call cba_fnc_addPerFrameHandler; } else { // server side ownership of laser - //_laserTarget setVariable ["ACE_LASERTARGET_SHOOTER", nil, false]; + _laserTarget setVariable [QGVAR(owner), nil, true]; }; diff --git a/addons/laser/functions/fnc_rotateVectLine.sqf b/addons/laser/functions/fnc_rotateVectLine.sqf index b0360cc330..ec85a83cb7 100644 --- a/addons/laser/functions/fnc_rotateVectLine.sqf +++ b/addons/laser/functions/fnc_rotateVectLine.sqf @@ -32,7 +32,5 @@ if (_d != 0) then { }; /* Inverse of step 1 */ -_q1 set[0, (_q2 select 0) + (_p1 select 0)]; -_q1 set[1, (_q2 select 1) + (_p1 select 1)]; -_q1 set[2, (_q2 select 2) + (_p1 select 2)]; +_q1 = _q2 vectorAdd _p1; _q1; \ No newline at end of file diff --git a/addons/laser/functions/fnc_rotateVectLineGetMap.sqf b/addons/laser/functions/fnc_rotateVectLineGetMap.sqf index fdbd6533ef..dc4b1b54c3 100644 --- a/addons/laser/functions/fnc_rotateVectLineGetMap.sqf +++ b/addons/laser/functions/fnc_rotateVectLineGetMap.sqf @@ -5,19 +5,12 @@ _p = _this select 0; _p1 = _this select 1; _p2 = _this select 2; -_q1 = []; _q2 = []; -_u = []; /* Step 1 */ -_q1 set[0, (_p select 0) - (_p1 select 0)]; -_q1 set[1, (_p select 1) - (_p1 select 1)]; -_q1 set[2, (_p select 2) - (_p1 select 2)]; - -_u set[0, (_p2 select 0) - (_p1 select 0)]; -_u set[1, (_p2 select 1) - (_p1 select 1)]; -_u set[2, (_p2 select 2) - (_p1 select 2)]; -_u = _u call BIS_fnc_unitVector; +_q1 = _p vectorDiff _p1; +_u = _p2 vectorDiff _p1; +_u = vectorNormalized _u; _d = sqrt((_u select 1)*(_u select 1) + (_u select 2)*(_u select 2)); /* Step 2 */ diff --git a/addons/laser/functions/fnc_seekerFindLaserSpot.sqf b/addons/laser/functions/fnc_seekerFindLaserSpot.sqf new file mode 100644 index 0000000000..421748a681 --- /dev/null +++ b/addons/laser/functions/fnc_seekerFindLaserSpot.sqf @@ -0,0 +1,143 @@ +/* + * Author: Nou + * Turn a laser designator on. + * + * Arguments: + * 0: Position of seeker (ASL) + * 1: Seeker wavelength sensitivity range, [1550,1550] is common eye safe. + * 2: Seeker laser code. + * + * Return value: + * Array, [Strongest compatible laser spot ASL pos, owner object] Nil array values if nothing found. + */ + +#include "script_component.hpp" + +private ["_pos", "_seekerWavelengths", "_seekerCode", "_spots", "_buckets", "_excludes", "_bucketIndex", "_finalPos", "_owner", "_obj", "_x", "_method", + "_emitterWavelength", "_laserCode", "_divergence", "_laser", "_laserPos", "_laserDir", "_res", "_bucketPos", "_bucketList", "_c", "_forEachIndex", "_index", + "_testPos", "_finalBuckets", "_largest", "_largestIndex", "_finalBucket", "_owners", "_avgX", "_avgY", "_avgZ", "_count", "_maxOwner", "_maxOwnerIndex", "_finalOwner"]; + +_pos = _this select 0; +_seekerWavelengths = _this select 1; +_seekerCode = _this select 2; + +_spots = []; +_buckets = []; +_excludes = []; +_bucketIndex = 0; +_finalPos = nil; +_finalOwner = nil; + +{ + _obj = _x select 0; + _owner = _x select 1; + _method = _x select 2; + _emitterWavelength = _x select 3; + _laserCode = _x select 4; + _divergence = _x select 5; + if(alive _obj && {_emitterWavelength >= (_seekerWavelengths select 0)} && {_emitterWavelength <= (_seekerWavelengths select 1)} && {_laserCode == _seekerCode}) then { + _laser = []; + if(IS_CODE(_method)) then { + _laser = _x call _method; + } else { + if(IS_STRING(_method)) then { + _laser = _x call (missionNamespace getVariable [_method, {}]); + } else { + if(IS_ARRAY(_method)) then { + if(count _method == 2) then { + _laser = [ATLtoASL (_obj modelToWorldVisual (_method select 0)), _obj weaponDirection (_method select 1)]; + } else { + if(count _method == 3) then { + _laser = [ATLtoASL (_obj modelToWorldVisual (_method select 0)), (ATLtoASL (_obj modelToWorldVisual (_method select 1))) vectorFromTo (ATLtoASL (_obj modelToWorldVisual (_method select 2)))]; + }; + }; + }; + }; + }; + _laserPos = _laser select 0; + _laserDir = _laser select 1; + _res = [_laserPos, _laserDir, _divergence] call FUNC(shootCone); + { + _spots pushBack [_x select 0, _owner]; + } forEach (_res select 2); + }; +} forEach (GVAR(laserEmitters) select 1); + +if((count _spots) > 0) then { + _bucketPos = nil; + _bucketList = nil; + _c = 0; + while { count(_spots) != count(_excludes) && _c < (count _spots) } do { + scopeName "mainSearch"; + { + if(!(_forEachIndex in _excludes)) then { + _index = _buckets pushBack [_x, [_x]]; + _excludes pushBack _forEachIndex; + _bucketPos = _x select 0; + _bucketList = (_buckets select _index) select 1; + breakTo "mainSearch"; + }; + } forEach _spots; + { + if(!(_forEachIndex in _excludes)) then { + _testPos = (_x select 0); + if(_testPos vectorDistanceSqr _bucketPos <= 100) then { + _bucketList pushBack _x; + _excludes pushBack _forEachIndex; + }; + }; + } forEach _spots; + _c = _c + 1; + }; + _finalBuckets = []; + _largest = -1; + _largestIndex = 0; + { + _index = _finalBuckets pushBack []; + _bucketList = _finalBuckets select _index; + { + _testPos = (_x select 0); + if(!terrainIntersectASL [_pos, _testPos] && {!lineIntersects [_pos, _testPos]}) then { + _bucketList pushBack _x; + }; + } forEach (_x select 1); + if((count _bucketList) > _largest) then { + _largest = (count _bucketList); + _largestIndex = _index; + }; + } forEach _buckets; + + _finalBucket = _finalBuckets select _largestIndex; + _owners = HASH_CREATE; + + if(count _finalBucket > 0) then { + _avgX = 0; + _avgY = 0; + _avgZ = 0; + { + player sideChat format["x: %1", _x]; + _avgX = _avgX + ((_x select 0) select 0); + _avgY = _avgY + ((_x select 0) select 1); + _avgZ = _avgZ + ((_x select 0) select 2); + _owner = _x select 1; + if(HASH_HASKEY(_owners, _owner)) then { + _count = HASH_GET(_owners, _owner); + HASH_SET(_owners, _owner, _count+1); + } else { + HASH_SET(_owners, _owner, 1); + }; + } forEach _finalBucket; + _count = count _finalBucket; + _finalPos = [_avgX/_count, _avgY/_count, _avgZ/_count]; + _maxOwner = -1; + _maxOwnerIndex = 0; + { + if((_owners select 1) select _forEachIndex > _maxOwner) then { + _maxOwner = (_owners select 1) select _forEachIndex; + _maxOwnerIndex = _forEachIndex; + }; + } forEach (_owners select 0); + _finalOwner = (_owners select 0) select _maxOwnerIndex; + }; +}; +[_finalPos, _owner]; diff --git a/addons/laser/functions/fnc_shootCone.sqf b/addons/laser/functions/fnc_shootCone.sqf index e33edd10bc..801353d4f7 100644 --- a/addons/laser/functions/fnc_shootCone.sqf +++ b/addons/laser/functions/fnc_shootCone.sqf @@ -1,8 +1,17 @@ #include "script_component.hpp" - +//#define DEBUG_MODE_FULL +private ["_divergence","_pos","_vec","_longestReturn","_shortestReturn","_resultPositions","_p1","_p2","_p","_v","_cp","_vecRotateMap","_result", + "_resultPos","_distance","_count","_pos2","_radOffset","_offset","_offsetPos","_offsetVector"]; _divergence = 0.3; _pos = _this select 0; _vec = _this select 1; +if(count _this > 2) then { + _divergence = _this select 2; +}; +_count = 3; +if(count _this > 3) then { + _count = _this select 3; +}; _longestReturn = -1000000000; _shortestReturn = 1000000000; _resultPositions = []; @@ -10,7 +19,7 @@ _p1 = [0,0,0]; _p2 = +_vec; _p = (_vec call CBA_fnc_vect2polar); _v = [(_p select 0), (_p select 1), (_p select 2)+90] call CBA_fnc_polar2vect; -_cp = [_vec, _v] call BIS_fnc_crossProduct; +_cp = _vec vectorCrossProduct _v; _vecRotateMap = [_cp, _p1, _p2] call FUNC(rotateVectLineGetMap); @@ -24,28 +33,21 @@ if(!isNil "_resultPos") then { if(_distance > _longestReturn) then { _longestReturn = _distance; }; - _resultPositions set[(count _resultPositions), _result]; + _resultPositions pushBack _result; #ifdef DEBUG_MODE_FULL - DRAW_LINES set[(count DRAW_LINES), [_pos, _resultPos, [0, 1, 0, 1]]]; + // DRAW_LINES set[(count DRAW_LINES), [_pos, _resultPos, [0, 1, 0, 1]]]; + drawLine3D [ASLtoATL _pos, ASLtoATL _resultPos, [1,0,0,1]]; #endif }; -_count = 8; -_pos2 = [ - (_pos select 0)+((_vec select 0)*1000), - (_pos select 1)+((_vec select 1)*1000), - (_pos select 2)+((_vec select 2)*1000) - ]; + +_pos2 = _pos vectorAdd (_vec vectorMultiply 1000); { for "_i" from 0 to ceil(_count*_x) do { _radOffset = random 360; _offset = [_vecRotateMap, (((360/_count)*_i)+_radOffset) mod 360] call FUNC(rotateVectLine); - _offsetPos = [ - (_pos2 select 0)+((_offset select 0)*(_divergence*_x)), - (_pos2 select 1)+((_offset select 1)*(_divergence*_x)), - (_pos2 select 2)+((_offset select 2)*(_divergence*_x)) - ]; - _offsetVector = [_pos, _offsetPos] call BIS_fnc_vectorFromXtoY; + _offsetPos = _pos2 vectorAdd (_offset vectorMultiply (_divergence*_x)); + _offsetVector = _pos vectorFromTo _offsetPos; _result = [_pos, _offsetVector] call FUNC(shootRay); _resultPos = _result select 0; if(!isNil "_resultPos") then { @@ -56,9 +58,10 @@ _pos2 = [ if(_distance > _longestReturn) then { _longestReturn = _distance; }; - _resultPositions set[(count _resultPositions), _result]; + _resultPositions pushBack _result; #ifdef DEBUG_MODE_FULL - DRAW_LINES set[(count DRAW_LINES), [_pos, _resultPos, [0, 1, 0, 1]]]; + // DRAW_LINES set[(count DRAW_LINES), [_pos, _resultPos, [0, 1, 0, 1]]]; + drawLine3D [ASLtoATL _pos, ASLtoATL _resultPos, [1,0,0,1]]; #endif }; }; diff --git a/addons/laser/functions/fnc_shootRay.sqf b/addons/laser/functions/fnc_shootRay.sqf index 62847d16b6..83b257ed7b 100644 --- a/addons/laser/functions/fnc_shootRay.sqf +++ b/addons/laser/functions/fnc_shootRay.sqf @@ -11,13 +11,8 @@ _lastPos = +_pos; { scopeName "mainSearch"; for "_i" from 1 to 10 do { - _nextPos = [ - (_lastPos select 0)+((_vec select 0)*_x), - (_lastPos select 1)+((_vec select 1)*_x), - (_lastPos select 2)+((_vec select 2)*_x) - ]; - - if(lineIntersects [_lastPos, _nextPos] || terrainIntersectASL [_lastPos, _nextPos]) then { + _nextPos = _lastPos vectorAdd (_vec vectorMultiply _x); + if(terrainIntersectASL [_lastPos, _nextPos] || {lineIntersects [_lastPos, _nextPos]}) then { _resultPos = _lastPos; breakTo "mainSearch"; } else { @@ -25,6 +20,5 @@ _lastPos = +_pos; _lastPos = _nextPos; }; }; - } forEach _fidelity; [_resultPos, _distance]; \ No newline at end of file diff --git a/addons/laser/functions/fnc_vanillaLaserSeekerHandler.sqf b/addons/laser/functions/fnc_vanillaLaserSeekerHandler.sqf new file mode 100644 index 0000000000..38cd1839f9 --- /dev/null +++ b/addons/laser/functions/fnc_vanillaLaserSeekerHandler.sqf @@ -0,0 +1,26 @@ +/* + * Author: jaynus + * Handler function for laser network code. + * + * Argument: + * 0: Emitter + * 1: Owner + * + * Return value: + * [position, direction] + */ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" + +private["_emitter", "_owner", "_gunnerInfo", "_turretInfo", "_povPos", "_povDir"]; + +_emmiter = _this select 0; +_owner = _this select 1; + +// Not in a vehicle.... +// @TODO: handle lasering from turrets +if( (vehicle _emmiter) == _emmiter && alive _emmiter && (currentWeapon _emmiter) == "LaserDesignator") exitWith { + [(eyePos _emmiter), (eyeDirection _emmiter)] +}; + +[-1,-1] \ No newline at end of file diff --git a/addons/laser_selfdesignate/CfgUI.hpp b/addons/laser_selfdesignate/CfgUI.hpp deleted file mode 100644 index e8823e04f8..0000000000 --- a/addons/laser_selfdesignate/CfgUI.hpp +++ /dev/null @@ -1,32 +0,0 @@ -class RscPicture; -class RscText; -class RscControlsGroupNoScrollbars; -/* This disables air radar. We need to make this a seperate HUD addon -class RscInGameUI -{ - class RscUnitInfo - { - class CA_Radar: RscControlsGroupNoScrollbars - { - class controls - { - class CA_RadarBackground: RscPicture { - colorText[] = {0,0,0,0}; - text = ""; - }; - class CA_RadarIcon: RscPicture { - colorText[] = {0,0,0,0}; - }; - class CA_Heading: RscText { - colorText[] = {0,0,0,0}; - }; - }; - }; - }; -}; -class CfgInGameUI -{ - -}; - -*/ \ No newline at end of file diff --git a/addons/laser_selfdesignate/CfgVehicles.hpp b/addons/laser_selfdesignate/CfgVehicles.hpp index b29d8a4394..02d8b32b3d 100644 --- a/addons/laser_selfdesignate/CfgVehicles.hpp +++ b/addons/laser_selfdesignate/CfgVehicles.hpp @@ -8,12 +8,6 @@ class CfgVehicles { class Turrets { class MainTurret; }; - - // TODO: move these to a different HUD addon - // commanderCanSee = 2+32; - // gunnerCanSee = 2+32; - // driverCanSee = 2+32; - }; class Helicopter_Base_F: Helicopter {}; diff --git a/addons/laser_selfdesignate/XEH_pre_init.sqf b/addons/laser_selfdesignate/XEH_pre_init.sqf index dd971b9539..3f8c92e4db 100644 --- a/addons/laser_selfdesignate/XEH_pre_init.sqf +++ b/addons/laser_selfdesignate/XEH_pre_init.sqf @@ -5,7 +5,8 @@ PREP(laserHudDesignateOn); PREP(laserHudDesignateOff); PREP(unitTurretHasDesignator); -GVAR(laser) = nil; +PREP(findLaserSource); + GVAR(active) = false; FUNC(getPosASL) = {visiblePositionASL (_this select 0)}; diff --git a/addons/laser_selfdesignate/config.cpp b/addons/laser_selfdesignate/config.cpp index 33c31ba7e5..19ec28063b 100644 --- a/addons/laser_selfdesignate/config.cpp +++ b/addons/laser_selfdesignate/config.cpp @@ -10,8 +10,6 @@ class CfgPatches { }; }; -#include "CfgUI.hpp" - #include "CfgEventhandlers.hpp" #include "CfgWeapons.hpp" #include "CfgVehicles.hpp" diff --git a/addons/laser_selfdesignate/functions/fnc_findLaserSource.sqf b/addons/laser_selfdesignate/functions/fnc_findLaserSource.sqf new file mode 100644 index 0000000000..ac1ae7e438 --- /dev/null +++ b/addons/laser_selfdesignate/functions/fnc_findLaserSource.sqf @@ -0,0 +1,30 @@ +/* + * Author: jaynus + * Handler function for laser network code. + * + * Argument: + * 0: Emitter + * 1: Owner + * + * Return value: + * [position, direction] + */ + //findLaserSource.sqf +//#define DEBUG_MODE_FULL +#include "script_component.hpp" + +private["_emitter", "_owner", "_gunnerInfo", "_turretInfo", "_povPos", "_povDir"]; + +_emmiter = _this select 0; +_owner = _this select 1; + +_gunnerInfo = [_emmiter, (currentWeapon _emmiter)] call CBA_fnc_getFirer; +_turretInfo = [_emmiter, _gunnerInfo select 1] call EFUNC(common,getTurretDirection); +_povPos = _turretInfo select 0; +_povDir = _turretInfo select 1; + +if(!isNil "_povPos" && !isNil "_povDir") exitWith { + [_povPos, _povDir] +}; + +[-1,-1] \ No newline at end of file diff --git a/addons/laser_selfdesignate/functions/fnc_laserHudDesignateOff.sqf b/addons/laser_selfdesignate/functions/fnc_laserHudDesignateOff.sqf index 02ea7e6e70..17e7fcb76e 100644 --- a/addons/laser_selfdesignate/functions/fnc_laserHudDesignateOff.sqf +++ b/addons/laser_selfdesignate/functions/fnc_laserHudDesignateOff.sqf @@ -1,28 +1,25 @@ +/* + * Author: jaynus + * Turns off passed laser self designation. + * + * Argument: + * 0: Shooter, player shooting the laser + * 1: LaserUUID, the UUID of the laser returned by EFUNC(laser,laserOn) + * 2: Local laser target, unused. + * + * Return value: + * true + */ #include "script_component.hpp" if( (count _this) > 2) then { - EXPLODE_3_PVT(_this,_vehicle,_shooter,_laserTarget); - // We got the optional vehicle list, clear the parameters - _vehicle setVariable[QGVAR(currentTarget), [], true]; + EXPLODE_3_PVT(_this,_shooter,_laserUuid, _localLaserTarget); + + [_laserUuid] call EFUNC(laser,laserOff); + // @TODO: Nou gets to field all tickets about missing lasers. + //deleteVehicle _localLaserTarget; }; -if(isNil QGVAR(laser)) exitWith { - false -}; -if(!local GVAR(laser)) then { - false -}; - -_handle = GVAR(laser) getVariable ["ACE_PFH_HANDLE", nil]; -if(!isNil "_handle") then { - [_handle] call cba_fnc_removePerFrameHandler; -}; - -REM(ACE_LASERS, GVAR(laser)); -deleteVehicle GVAR(laser); -GVAR(laser) = nil; GVAR(active) = false; - - true \ No newline at end of file diff --git a/addons/laser_selfdesignate/functions/fnc_laserHudDesignateOn.sqf b/addons/laser_selfdesignate/functions/fnc_laserHudDesignateOn.sqf index a6c8fc2295..c480c051bb 100644 --- a/addons/laser_selfdesignate/functions/fnc_laserHudDesignateOn.sqf +++ b/addons/laser_selfdesignate/functions/fnc_laserHudDesignateOn.sqf @@ -1,4 +1,14 @@ -//#define DEBUG_MODE_FULL +/* + * Author: jaynus + * Turns on laser self designation from this vehicle based on the turret. + * There are no arguments, because it is all strictly based on the users vehicle. + * + * Argument: + * + * Return value: + * N/A + */ + //#define DEBUG_MODE_FULL #include "script_component.hpp" TRACE_1("enter", _this); @@ -6,102 +16,74 @@ TRACE_1("enter", _this); #define FCS_UPDATE_DELAY 1 FUNC(laserHudDesignatePFH) = { - private["_strongestResultPos", "_args", "_laserTarget", "_shooter", "_vehicle", "_weapon", "_gunnerInfo", "_turret", "_pov", "_gunBeg", "_gunEnd", "_povPos", "_povDir", "_result", "_resultPositions", "_firstResult", "_forceUpdateTime"]; + private["_strongestResultPos", "_args", "_localLaserTarget", "_laserResultPosition", "_laserResult", "_shooter", "_vehicle", "_weapon", "_gunnerInfo", "_turretInfo", "_pov", "_gunBeg", "_gunEnd", "_povPos", "_povDir", "_result", "_resultPositions", "_firstResult", "_forceUpdateTime"]; _args = _this select 0; - _laserTarget = _args select 0; - _shooter = _args select 1; - - TRACE_1("", _args, (_laserTarget getVariable["ACE_LASER_CODE"])); - if((vehicle ACE_player) != _shooter || !alive _shooter || isNull _vehicle || isNull _laserTarget || !GVAR(active) ) exitWith { - [_vehicle, _shooter, _laserTarget] call FUNC(laserHudDesignateOff); + _shooter = _args select 0; + _localLaserTarget = _args select 2; + _vehicle = vehicle _shooter; + TRACE_1("", _args); + + if((vehicle _shooter) == _shooter || {!alive _shooter} || {isNull _vehicle} || {!GVAR(active)} ) exitWith { + _args call FUNC(laserHudDesignateOff); }; if(!([_shooter] call FUNC(unitTurretHasDesignator)) ) exitWith { - [_vehicle, _shooter, _laserTarget] call FUNC(laserHudDesignateOff); + _args call FUNC(laserHudDesignateOff); }; - if( (count _args) < 3) then { - _args set[2, diag_tickTime + FCS_UPDATE_DELAY]; + if( (count _args) < 4) then { + _args set[3, diag_tickTime + FCS_UPDATE_DELAY]; }; - _forceUpdateTime = _args select 2; + _forceUpdateTime = _args select 3; + + // @TODO: We don't have anything here we need to do the calculations for right now + /* - _vehicle = vehicle _shooter; - _weapon = currentWeapon _vehicle; - - // Retrieve the gunner and turret memory point information - _gunnerInfo = [_vehicle, _weapon] call CBA_fnc_getFirer; + _gunnerInfo = [_vehicle, (currentWeapon _vehicle)] call CBA_fnc_getFirer; _turretInfo = [_vehicle, _gunnerInfo select 1] call EFUNC(common,getTurretDirection); _povPos = _turretInfo select 0; - _povDir = _turretInfo select 1; - _targetInfo = _vehicle getVariable[QGVAR(currentTarget), [] ]; - if( (count _targetInfo) > 0) then { - if(_laserTarget != (_targetInfo select 0) ) then { - _targetInfo = [] - }; - }; - if( (count _targetInfo) < 1) then { - _targetInfo = [_laserTarget, 1001]; // TODO: set laser code - _vehicle setVariable[QGVAR(currentTarget), _targetInfo, true]; - _laserTarget setVariable[QGVAR(owner), _vehicle, true]; - }; + _laserCode = (vehicle ACE_player) getVariable[QGVAR(currentCode), ACE_DEFAULT_LASER_CODE]; + _waveLength = (vehicle ACE_player) getVariable[QGVAR(currentWaveLength), ACE_DEFAULT_LASER_WAVELENGTH]; - _result = [_povPos, _povDir] call EFUNC(laser,shootCone); - if((count _result) > 0) then { - _resultPositions = _result select 2; + _laserResult = [_povPos, [_waveLength,_waveLength], _laserCode] call EFUNC(laser,seekerFindLaserSpot); + _laserResultPosition = _laserResult select 0; + TRACE_1("Search", _laserResult); - if((count _resultPositions) > 0) then { - _strongestResultPos = [_resultPositions, _povPos] call EFUNC(laser,findStrongestRay); - - // If the laser has moved less than a half meter, then dont move it. - // Just regular use of lasers will commonly make them move this much, - // but not across multiple close frames. - // This loses accuracy a little, but saves position updates per frame. - TRACE_5("", diag_tickTime, _forceUpdateTime, getPosASL _laserTarget, _strongestResultPos, ((getPosASL _laserTarget) distance _pos)); + if((count _laserResult) > 0) then { + // @TODO: Nou gets to field all tickets about missing lasers. + //_localLaserTarget setPosASL _laserResultPosition; + }; + */ - if(diag_tickTime > _forceUpdateTime) then { - TRACE_1("FCS Update", ""); - ["ace_fcs_forceUpdate", []] call ace_common_fnc_localEvent; - }; - - //if( (_laserTarget distance _strongestResultPos) > 0.1) then { - TRACE_1("LaserPos Update", ""); - _laserTarget setPosATL (ASLToATL _strongestResultPos); - //}; - - if(diag_tickTime > _forceUpdateTime) then { - _args set[2, diag_tickTime + FCS_UPDATE_DELAY]; - }; -#ifdef DEBUG_MODE_FULL - drawIcon3D ["\a3\ui_f\data\IGUI\Cfg\Cursors\selectover_ca.paa", [1,0,0,1], (getPosATL _laserTarget), 0.75, 0.75, 0, "", 0.5, 0.025, "TahomaB"]; - - { - private["_position"]; - _position = _x select 0; - drawLine3d [ASLToATL _povPos, ASLToATL _position, [0,0,1,1] ]; - } forEach _resultPositions; -#endif - }; + if(diag_tickTime > _forceUpdateTime) then { + ["ace_fcs_forceUpdate", []] call ace_common_fnc_localEvent; + _args set[3, diag_tickTime + FCS_UPDATE_DELAY]; }; _this set[0, _args]; }; -private ["_laserTarget", "_handle", "_vehicle"]; +private ["_laserTarget", "_handle", "_vehicle", "_laserUuid", "_waveLength", "_beamSpread", "_laserCode"]; -if(isNil QGVAR(laser)) then { - _laserTarget = "LaserTargetW" createVehicle (getpos ACE_player); - +if(!GVAR(active)) then { GVAR(active) = true; - _handle = [FUNC(laserHudDesignatePFH), 0.1, [_laserTarget, ACE_player]] call cba_fnc_addPerFrameHandler; - _laserTarget setVariable ["ACE_PFH_HANDLE", _handle, false]; + TRACE_1("Activating laser", ""); - // Clear the vehicle parameters - _vehicle setVariable[QGVAR(currentTarget), [], true]; + // Get the self-designation variables, or use defaults + _laserCode = (vehicle ACE_player) getVariable[QGVAR(currentCode), ACE_DEFAULT_LASER_CODE]; + _waveLength = (vehicle ACE_player) getVariable[QGVAR(currentWaveLength), ACE_DEFAULT_LASER_WAVELENGTH]; + _beamSpread = (vehicle ACE_player) getVariable[QGVAR(currentBeamSpread), ACE_DEFAULT_LASER_BEAMSPREAD]; - GVAR(laser) = _laserTarget; + _laserUuid = [(vehicle ACE_player), ACE_player, QFUNC(findLaserSource), _waveLength, _laserCode, _beamSpread] call EFUNC(laser,laserOn); + + // @TODO: Create the local target for the players side + // @TODO: Nou gets to field all tickets about missing lasers. + //_localLaserTarget = "LaserTargetW" createVehicleLocal (getpos ACE_player); + + _handle = [FUNC(laserHudDesignatePFH), 0.1, [ACE_player, _laserUuid, nil]] call cba_fnc_addPerFrameHandler; } else { [] call FUNC(laserHudDesignateOff); [] call FUNC(laserHudDesignateOn); diff --git a/addons/laser_selfdesignate/stringtable.xml b/addons/laser_selfdesignate/stringtable.xml index 421280d33f..8b2c528871 100644 --- a/addons/laser_selfdesignate/stringtable.xml +++ b/addons/laser_selfdesignate/stringtable.xml @@ -6,12 +6,18 @@ Lasermarkierer<br/>an Laser<br/>Designador encendido ЛЦУ<br/>ВКЛ + Laserový<br/>značkovač zapnut + Desygnator<br/>laserowy wł. + Désignateur<br/>Laser Allumé Laser<br/>Designator Off Lasermarkierer<br/>aus Laser<br/>Designador apagado ЛЦУ<br/>ВЫКЛ + Laserový<br/>značkovat vypnut + Desygnator<br/>laserowy wył. + Désignateur<br/>Laser Éteint diff --git a/addons/laserpointer/stringtable.xml b/addons/laserpointer/stringtable.xml index 279fdeb5e8..a5a153aca4 100644 --- a/addons/laserpointer/stringtable.xml +++ b/addons/laserpointer/stringtable.xml @@ -1,32 +1,40 @@  - Laser Pointer (red) + Pointeur laser (rouge) Laserpointer (rot) Лазерный прицел (красный) + Laserové ukazovátko (červené) + Wskaźnik laserowy (czerwony) Laser Pointer (green) + Pointeur laser (vert) Laserpointer (grün) Лазерный прицел (зелёный) + Laserové ukazovátko (zelené) + Wskaźnik laserowy (zielony) Emits visible light. + Diffuse un rayon lumineux visible. Strahlt sichtbares Licht aus. Испускает узкий пучок видимого света. + Vyzařuje viditelné světlo. + Wydziela widzialne światło. <t color='#9cf953'>Use: </t>Turn Laser ON/OFF <t color='#9cf953'>Použití: </t>Zapnout/vypnout laser - <t color='#9cf953'>Utiliser : </t>laser on/off + <t color='#9cf953'>Utiliser : </t>laser allumé/éteint <t color='#9cf953'>Benutzen: </t>Laser EIN/AUS <t color='#9cf953'>Uso: </t>Laser ON/OFF - <t color='#9cf953'>Użyj: </t>wł./wył. lasera + <t color='#9cf953'>Użyj: </t>wł./wył. laser <t color='#9cf953'>Uso: </t>Ativar/Desativar laser <t color='#9cf953'>Использовать: </t>вкл/выкл лазер <t color='#9cf953'>Usar: </t>encender/apagar láser - \ No newline at end of file + diff --git a/addons/logistics_uavbattery/stringtable.xml b/addons/logistics_uavbattery/stringtable.xml index 3a8d958709..feca4d07ec 100644 --- a/addons/logistics_uavbattery/stringtable.xml +++ b/addons/logistics_uavbattery/stringtable.xml @@ -1,78 +1,78 @@  - + - - - Drone is full - Drohne ist voll - El VANT está lleno - L'UAV est chargé - Dron jest naładowany - A drón fel van töltve - Dron je nabitý - O VANT está cheio - Il drone è pieno - БПЛА заполнен - - - You need a UAV Battery - Du brauchst eine UAV-Batterie - Necesitas una batería para VANT - Pas de batterie UAV - Potrzebujesz baterii UAV - Szükséged van egy UAV akkumulátorra - Potřebuješ UAV-Baterii - Você precisa de uma Bateria para VANT - Hai bisogno di una Batteria UAV - Требуется аккумулятор для БПЛА - - - Recharge - Aufladen - Recargar - Recharger - Naładuj - Feltöltés - Dobít - Recarregar - Ricarica - Зарядить - - - UAV Battery - UAV-Batterie - Batería para VANT - Batterie UAV - Bateria UAV - UAV akkumulátor - UAV-Baterie - Bateria para VANT - Batteria UAV - Аккумулятор БПЛА - - - Used to refuel Carried UAV's - Verwendet zum Aufladen von tragbaren UAV's - Usada para reabastecer el VANT - Utilisée pour recharger l'UAV - Używana do naładowania UAV - Hordozható UAV-ok működéséhez való akkumulátor - Používané k dobíjení UAV - Usada para reabastecer VANT - Usata per ricaricare la Batteria dell'UAV - Используется для зарядки БПЛА - - - Recharging ... - Aufladen ... - Recargando ... - Rechargement ... - Ładowanie ... - Akku feltöltése ... - Dobíjení ... - Recarregando ... - In ricarica ... - Заряжается ... - - + + + Drone is full + Drohne ist voll + El VANT está lleno + L'UAV est chargé + Dron jest naładowany + A drón fel van töltve + Dron je nabitý + O VANT está cheio + Il drone è pieno + БПЛА заполнен + + + You need a UAV Battery + Du brauchst eine UAV-Batterie + Necesitas una batería para VANT + Pas de batterie UAV + Potrzebujesz baterii UAV + Szükséged van egy UAV akkumulátorra + Potřebuješ UAV baterii + Você precisa de uma Bateria para VANT + Hai bisogno di una Batteria UAV + Требуется аккумулятор для БПЛА + + + Recharge + Aufladen + Recargar + Recharger + Naładuj + Feltöltés + Dobít + Recarregar + Ricarica + Зарядить + + + UAV Battery + UAV-Batterie + Batería para VANT + Batterie UAV + Bateria UAV + UAV akkumulátor + UAV baterie + Bateria para VANT + Batteria UAV + Аккумулятор БПЛА + + + Used to refuel Carried UAV's + Verwendet zum Aufladen von tragbaren UAV's + Usada para reabastecer el VANT + Utilisée pour recharger l'UAV + Używana do naładowania baterii przenośnego UAV + Hordozható UAV-ok működéséhez való akkumulátor + Používané k dobíjení UAV + Usada para reabastecer VANT + Usata per ricaricare la Batteria dell'UAV + Используется для зарядки БПЛА + + + Recharging ... + Aufladen ... + Recargando ... + Rechargement ... + Ładowanie ... + Akku feltöltése ... + Dobíjení ... + Recarregando ... + In ricarica ... + Заряжается ... + + \ No newline at end of file diff --git a/addons/logistics_wirecutter/stringtable.xml b/addons/logistics_wirecutter/stringtable.xml index ce823240d5..01bd6b99f3 100644 --- a/addons/logistics_wirecutter/stringtable.xml +++ b/addons/logistics_wirecutter/stringtable.xml @@ -1,53 +1,60 @@  + - - - Wirecutter - Drahtschneider - Cortador de cables - Клещи-кусачки - - - Wirecutter - Schneidet Draht. - Cortador de cables - Позволяют быстро перекусывать сеточные конструкции. - - - Cut Fence - Zaun schneiden - Cortar alambrado - Przetnij płot - Přestřihnout plot - Cisailler Clôture - Cortar Cerca - Taglia - Drótkerítés átvágása - Разрезать забор - - - Cutting Fences / Wires ... - Zaun / Draht schneiden ... - Cortando alambrado / cables ... - Przecinanie płotu / drutów ... - Přestřihnout plot / dráty ... - Cisaille l'obstacle ... - Cortando Cerca / Arame ... - Sto tagliando ... - Drótok elvágása ... - Разрезаем забор / провода ... - - - Fence cut - Zaun geschnitten - Alambrado cortado - Płot przecięty - Plot přestřižen - Clôture cisaillée - Cerca cortada - Fatto! - Drótkerítés átvágva - Забор разрезан - - - + + + Wirecutter + Coupe clôture + Drahtschneider + Cortador de cables + Клещи-кусачки + Štípací kleště + Nożyce do cięcia drutu + + + Wirecutter + Schneidet Draht. + Cortador de cables + Позволяют быстро перекусывать сеточные конструкции. + Štípačky + Służą do cięcia drutu i płotów + Coupe clôture + + + Cut Fence + Zaun schneiden + Cortar alambrado + Przetnij płot + Přestřihnout plot + Cisailler Clôture + Cortar Cerca + Taglia + Drótkerítés átvágása + Разрезать забор + + + Cutting Fences / Wires ... + Zaun / Draht schneiden ... + Cortando alambrado / cables ... + Przecinanie płotu / drutów ... + Přestřihnout plot / dráty ... + Cisaille l'obstacle ... + Cortando Cerca / Arame ... + Sto tagliando ... + Drótok elvágása ... + Разрезаем забор / провода ... + + + Fence cut + Zaun geschnitten + Alambrado cortado + Płot przecięty + Plot přestřižen + Clôture cisaillée + Cerca cortada + Fatto! + Drótkerítés átvágva + Забор разрезан + + + \ No newline at end of file diff --git a/addons/magazinerepack/stringtable.xml b/addons/magazinerepack/stringtable.xml index 06742ac283..35531452d2 100644 --- a/addons/magazinerepack/stringtable.xml +++ b/addons/magazinerepack/stringtable.xml @@ -1,95 +1,105 @@  + - - - Repack<br/>Magazines - Magazine<br/>umpacken - Reorganizar<br/>cargadores - Réorganiser<br/>chargeurs - Przepakuj<br/>magazynki - Přepáskovat<br/>Zásobníky - Ricarica<br/>Caricatori - Reorganizar<br/>Carregadores - Újratárazás<br/> - Перепаковать<br/>магазины - - - Select Magazine Menu - Magazinauswahlmenü - Menú de selección de cargador - Sélectionner menu des chargeurs - Menu wyboru magazynków - Zvolit Menu Zásobníků - Seleziona Menù di Ricarica - Menu de Seleção de Carregador - Fegyvertár menü kiválasztás - Меню выбора магазинов - - - Select Mag - Magazin auswählen - Seleccionar cargador - Sélectionner chargeur - Wybierz magazynek - Zvolit Zásobník - Seleziona Caricatore - Selecionar Carregador - Tár kiválasztása - Выбрать магазин - - - Repacking Magazines ... - Magazine umpacken ... - Reorganizando cargadores ... - Réorganisation des chargeurs ... - Przepakowywanie magazynków ... - Páskuji Zásobníky ... - Sto ricaricando le munizioni ... - Reorganizando Carregadores ... - Újratárazás ... - Перепаковка магазинов ... - - - Repacked Magazines - Magazine umgepackt - Cargadores reorganizados - Chargeurs réorganisés - Magazynki przepakowane - Přepáskované Zásobníky - Caricatore ricaricato - Carregadores Reorganizados - Újratárazott tárak - Магазины перепакованы - - - %1 full mag(s) and %2 extra round(s) - %1 volle(s) Magazin(e) und %2 übrig gebliebene Patrone(n) - %1 cargador(es) completo(s) y %2 bala(s) extra(s) - %1 chargeur(s) plein(s) et %2 cartouche(s) en rab - %1 pełnych magazynków i %2 dodatkowych naboi - %1 plný zásobník(y) a %2 munice navíc - %1 caricatore/i pieno e %2 munizioni extra - %1 carregador(es) cheio(s) e %2 disparo(s) a mais - %1 tejles tár és %2 extra lőszer. - %1 полных магазина(ов) и %2 патрона(ов) - - - Repacking Finished - Wiederverpacken Fertig - Reembalaje finalizado - Перепаковка завершена - - - Repacking Interrupted - Umpacken Unterbrochen - Reembalaje interrumpido - Перепаковка прервана - - - %1 Full and %2 Partial - %1 Vollständigen und %2 Teilweisen - %1 Total y %2 Parcial - %1 полных и %2 неполных - - - + + + Repack<br/>Magazines + Magazine<br/>umpacken + Reorganizar<br/>cargadores + Réorganiser<br/>chargeurs + Przepakuj<br/>magazynki + Přepáskovat<br/>Zásobníky + Ricarica<br/>Caricatori + Reorganizar<br/>Carregadores + Újratárazás<br/> + Перепаковать<br/>магазины + + + Select Magazine Menu + Magazinauswahlmenü + Menú de selección de cargador + Sélectionner menu des chargeurs + Menu wyboru magazynków + Zvolit Menu zásobníků + Seleziona Menù di Ricarica + Menu de Seleção de Carregador + Fegyvertár menü kiválasztás + Меню выбора магазинов + + + Select Mag + Magazin auswählen + Seleccionar cargador + Sélectionner chargeur + Wybierz magazynek + Zvolit zásobník + Seleziona Caricatore + Selecionar Carregador + Tár kiválasztása + Выбрать магазин + + + Repacking Magazines ... + Magazine umpacken ... + Reorganizando cargadores ... + Réorganisation des chargeurs ... + Przepakowywanie magazynków ... + Páskuji zásobníky ... + Sto ricaricando le munizioni ... + Reorganizando Carregadores ... + Újratárazás ... + Перепаковка магазинов ... + + + Repacked Magazines + Magazine umgepackt + Cargadores reorganizados + Chargeurs réorganisés + Magazynki przepakowane + Přepáskované zásobníky + Caricatore ricaricato + Carregadores Reorganizados + Újratárazott tárak + Магазины перепакованы + + + %1 full mag(s) and %2 extra round(s) + %1 volle(s) Magazin(e) und %2 übrig gebliebene Patrone(n) + %1 cargador(es) completo(s) y %2 bala(s) extra(s) + %1 chargeur(s) plein(s) et %2 cartouche(s) en rab + Pełnych magazynków: %1.<br /> Dodatkowych naboi: %2. + %1 plný zásobník(y) a %2 munice navíc + %1 caricatore/i pieno e %2 munizioni extra + %1 carregador(es) cheio(s) e %2 disparo(s) a mais + %1 tejles tár és %2 extra lőszer. + %1 полных магазина(ов) и %2 патрона(ов) + + + Repacking Finished + Réorganisation terminé + Wiederverpacken Fertig + Reembalaje finalizado + Перепаковка завершена + Páskování dokončeno + Przepakowywanie zakończone + + + Repacking Interrupted + Réorganisation Interrompue + Umpacken Unterbrochen + Reembalaje interrumpido + Перепаковка прервана + Páskování přerušeno + Przepakowywanie przerwane + + + %1 Full and %2 Partial + %1 Complet et %2 Partiellement + %1 Vollständigen und %2 Teilweisen + %1 Total y %2 Parcial + %1 полных и %2 неполных + %1 plný a %2 částečně + Pełnych: %1.<br />Częściowo pełnych: %2. + + + \ No newline at end of file diff --git a/addons/magazines/CfgAmmo.hpp b/addons/magazines/CfgAmmo.hpp index 2e1e9fceea..8a9a3ec209 100644 --- a/addons/magazines/CfgAmmo.hpp +++ b/addons/magazines/CfgAmmo.hpp @@ -107,4 +107,71 @@ class CfgAmmo { //typicalspeed = 792; //airfriction = -0.0008577; }; + + + /* .338 Lapua Magnum */ + + // IR Dim + class B_338_Ball; + class ACE_B_338_Ball_Tracer_Dim: B_338_Ball { + nvgOnly = 1; + }; + + //AP + class ACE_B_338_Ball_AP: B_338_Ball { + caliber = 3.6; + hit = 18.9; + }; + + //SD + class ACE_B_338_Ball_SD: B_338_Ball { + airFriction = -0.00036; + hit = 15.75; + supersonicCrackFar[] = {}; + supersonicCrackNear[] = {}; + typicalSpeed = 320; + audibleFire = 1.2; + visibleFire = 4.0; + }; + + + /* .338 Norma Magnum */ + + //IR Dim + class B_338_NM_Ball; + class ACE_B_338_NM_Ball_Tracer_Dim: B_338_NM_Ball { + nvgOnly = 1; + }; + + //AP + class ACE_B_338_NM_Ball_AP: B_338_NM_Ball { + caliber = 3.2; + hit = 16.8; + }; + + + /* 9.3x64mm */ + + //IR Dim + class B_93x64_Ball; + class ACE_B_93x64_Ball_Tracer_Dim: B_93x64_Ball { + nvgOnly = 1; + }; + + //AP + class ACE_B_93x64_Ball_AP: B_93x64_Ball { + caliber = 4.0; + hit = 21; + }; + + //SD + class ACE_B_93x64_Ball_SD: B_93x64_Ball { + airFriction = -0.00042; + hit = 17.5; + supersonicCrackFar[] = {}; + supersonicCrackNear[] = {}; + typicalSpeed = 320; + audibleFire = 1.2; + visibleFire = 4.0; + }; }; diff --git a/addons/magazines/CfgMagazines.hpp b/addons/magazines/CfgMagazines.hpp index 86cb6d9e1b..cea8c31004 100644 --- a/addons/magazines/CfgMagazines.hpp +++ b/addons/magazines/CfgMagazines.hpp @@ -136,4 +136,131 @@ class CfgMagazines { displayNameShort = "$STR_ACE_20Rnd_762x51_mag_APNameShort"; descriptionShort = "$STR_ACE_20Rnd_762x51_mag_APDescription"; }; + + + /* 338 Lapua Magnum */ + class 10Rnd_338_Mag; + class ACE_10Rnd_338_Mag_Tracer: 10Rnd_338_Mag { + author = "$STR_ACE_Common_ACETeam"; + displayName = "$STR_ACE_10Rnd_338_Mag_TracerName"; + displayNameShort = "$STR_ACE_10Rnd_338_Mag_TracerNameShort"; + descriptionShort = "$STR_ACE_10Rnd_338_Mag_TracerDescription"; + tracersEvery = 1; + }; + + class ACE_10Rnd_338_Mag_Tracer_Dim: ACE_10Rnd_338_Mag_Tracer { + author = "$STR_ACE_Common_ACETeam"; + ammo = "ACE_B_338_Ball_Tracer_Dim"; + displayName = "$STR_ACE_10Rnd_388_Mag_Tracer_DimName"; + displayNameShort = "$STR_ACE_10Rnd_338_Mag_Tracer_DimNameShort"; + descriptionShort = "$STR_ACE_10Rnd_338_Mag_Tracer_DimDescription"; + }; + + class ACE_10Rnd_338_Mag_AP: 10Rnd_338_Mag { + author = "$STR_ACE_Common_ACETeam"; + ammo ="ACE_B_338_Ball_AP"; + displayName = "$STR_ACE_10Rnd_338_Mag_APName"; + displayNameShort = "$STR_ACE_10Rnd_338_Mag_APNameShort"; + descriptionShort = "$STR_ACE_10Rnd_338_Mag_APDescription"; + }; + + class ACE_10Rnd_338_Mag_SD: 10Rnd_338_Mag { + author = "$STR_ACE_Common_ACETeam"; + ammo = "ACE_B_338_Ball_SD"; + displayName = "$STR_ACE_10Rnd_338_Mag_SDName"; + displayNameShort = "$STR_ACE_10Rnd_338_Mag_SDNameShort"; + descriptionShort = "$STR_ACE_10Rnd_338_Mag_SDDescription"; + initSpeed = 320; + }; + + + /* .333 Norma Magnum */ + + class 130Rnd_338_Mag; + class ACE_130Rnd_338_Mag_Tracer: 130Rnd_338_Mag { + author = "$STR_ACE_Common_ACETeam"; + displayName = "$STR_ACE_130Rnd_338_Mag_TracerName"; + displayNameShort = "$STR_ACE_130Rnd_338_Mag_TracerNameShort"; + descriptionShort = "$STR_ACE_130Rnd_338_Mag_TracerDescription"; + tracersEvery = 1; + }; + + class ACE_130Rnd_338_Mag_Tracer_Dim: ACE_130Rnd_338_Mag_Tracer { + author = "$STR_ACE_Common_ACETeam"; + ammo = "ACE_B_338_NM_Ball_Tracer_Dim"; + displayName = "$STR_ACE_130Rnd_338_Mag_Tracer_DimName"; + displayNameShort = "$STR_ACE_130Rnd_338_Mag_Tracer_DimNameShort"; + descriptionShort = "$STR_ACE_130Rnd_338_Mag_Tracer_DimDescription"; + }; + + class ACE_130Rnd_338_Mag_AP: 130Rnd_338_Mag { + author = "$STR_ACE_Common_ACETeam"; + ammo = "ACE_B_338_NM_Ball_AP"; + displayName = "$STR_ACE_130Rnd_338_Mag_APName"; + displayNameShort = "$STR_ACE_130Rnd_338_Mag_APNameShort"; + descriptionShort = "$STR_ACE_130Rnd_338_Mag_APDescription"; + }; + + + /* 9.3x64mm */ + //10Rnd Mags + + class 10Rnd_93x64_DMR_05_Mag; + class ACE_10Rnd_93x64_DMR_05_Mag_Tracer: 10Rnd_93x64_DMR_05_Mag { + author = "$STR_ACE_Common_ACEETeam"; + displayName = "$STR_ACE_10Rnd_93x64_DMR_05_Mag_TracerName"; + displayNameShort = "$STR_ACE_10Rnd_93x64_DMR_05_Mag_TracerNameShort"; + descriptionShort = "$STR_ACE_10Rnd_93x64_DMR_05_Mag_TracerDescription"; + tracersEvery = 1; + }; + + class ACE_10Rnd_93x64_DMR_05_Mag_Tracer_Dim: ACE_10Rnd_93x64_DMR_05_Mag_Tracer { + author = "$STR_ACE_Common_ACEETeam"; + ammo ="ACE_B_93x64_Ball_Tracer_Dim"; + displayName = "$STR_ACE_10Rnd_93x64_DMR_05_Mag_Tracer_DimName"; + displayNameShort = "$STR_ACE_10Rnd_93x64_DMR_05_Mag_Tracer_DimNameShort"; + descriptionShort = "$STR_ACE_10Rnd_93x64_DMR_05_Mag_Tracer_DimDescription"; + }; + + class ACE_10Rnd_93x64_DMR_05_Mag_AP: 10Rnd_93x64_DMR_05_Mag { + author = "$STR_ACE_Common_ACEETeam"; + ammo = "ACE_B_93x64_Ball_AP"; + displayName = "$STR_ACE_10Rnd_93x64_DMR_05_Mag_APName"; + displayNameShort = "$STR_ACE_10Rnd_93x64_DMR_05_Mag_APNameShort"; + descriptionShort = "$STR_ACE_10Rnd_93x64_DMR_05_Mag_APDescription"; + }; + + class ACE_10Rnd_93x64_DMR_05_Mag_SD: 10Rnd_93x64_DMR_05_Mag { + author = "$STR_ACE_Common_ACEETeam"; + ammo = "ACE_B_93x64_Ball_SD"; + displayName = "$STR_ACE_10Rnd_93x64_DMR_05_Mag_SDName"; + displayNameShort = "$STR_ACE_10Rnd_93x64_DMR_05_Mag_SDNameShort"; + descriptionShort = "$STR_ACE_10Rnd_93x64_DMR_05_Mag_SDDescription"; + initSpeed = 320; + }; + //150Rnd Belt + class 150Rnd_93x64_Mag; + class ACE_150Rnd_93x64_Mag_Tracer: 150Rnd_93x64_Mag { + author = "$STR_ACE_Common_ACEETeam"; + displayName = "$STR_ACE_150Rnd_93x64_Mag_TracerName"; + displayNameShort = "$STR_ACE_150Rnd_93x64_Mag_TracerNameShort"; + descriptionShort = "$STR_ACE_150Rnd_93x64_Mag_TracerDescription"; + tracersEvery = 1; + }; + + class ACE_150Rnd_93x64_Mag_Tracer_Dim: ACE_150Rnd_93x64_Mag_Tracer { + author = "$STR_ACE_Common_ACEETeam"; + ammo ="ACE_B_93x64_Ball_Tracer_Dim"; + displayName = "$STR_ACE_150Rnd_93x64_Mag_Tracer_DimName"; + displayNameShort = "$STR_ACE_150Rnd_93x64_Mag_Tracer_DimNameShort"; + descriptionShort = "$STR_ACE_150Rnd_93x64_Mag_Tracer_DimDescription"; + }; + + class ACE_150Rnd_93x64_Mag_AP: 150Rnd_93x64_Mag { + author = "$STR_ACE_Common_ACEETeam"; + ammo = "ACE_B_93x64_Ball_AP"; + displayName = "$STR_ACE_150Rnd_93x64_Mag_APName"; + displayNameShort = "$STR_ACE_150Rnd_93x64_Mag_APNameShort"; + descriptionShort = "$STR_ACE_150Rnd_93x64_Mag_APDescription"; + }; }; diff --git a/addons/magazines/CfgVehicles.hpp b/addons/magazines/CfgVehicles.hpp index a7c2654d71..66e63cfa09 100644 --- a/addons/magazines/CfgVehicles.hpp +++ b/addons/magazines/CfgVehicles.hpp @@ -153,6 +153,20 @@ class CfgVehicles { MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,2); MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_SD,2); MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_AP,2);*/ + MACRO_ADDMAGAZINE(ACE_10Rnd_338_Mag_Tracer,2); + MACRO_ADDMAGAZINE(ACE_10Rnd_338_Mag_Tracer_Dim,2); + MACRO_ADDMAGAZINE(ACE_10Rnd_338_Mag_AP,2); + MACRO_ADDMAGAZINE(ACE_10Rnd_338_Mag_SD,2); + MACRO_ADDMAGAZINE(ACE_130Rnd_338_Mag_Tracer,2); + MACRO_ADDMAGAZINE(ACE_130Rnd_338_Mag_Tracer_Dim,2); + MACRO_ADDMAGAZINE(ACE_130Rnd_338_Mag_AP,2); + MACRO_ADDMAGAZINE(ACE_10Rnd_93x64_DMR_05_Mag_Tracer,2); + MACRO_ADDMAGAZINE(ACE_10Rnd_93x64_DMR_05_Mag_Tracer_Dim,2); + MACRO_ADDMAGAZINE(ACE_10Rnd_93x64_DMR_05_Mag_AP,2); + MACRO_ADDMAGAZINE(ACE_10Rnd_93x64_DMR_05_Mag_SD,2); + MACRO_ADDMAGAZINE(ACE_150Rnd_93x64_Mag_Tracer,2); + MACRO_ADDMAGAZINE(ACE_150Rnd_93x64_Mag_Tracer_Dim,2); + MACRO_ADDMAGAZINE(ACE_150Rnd_93x64_Mag_AP,2); }; }; }; diff --git a/addons/magazines/CfgWeapons.hpp b/addons/magazines/CfgWeapons.hpp index e51a708590..787867070e 100644 --- a/addons/magazines/CfgWeapons.hpp +++ b/addons/magazines/CfgWeapons.hpp @@ -30,7 +30,7 @@ class CfgWeapons { /* Katiba */ - + class Rifle_Long_Base_F; class arifle_katiba_Base_F: Rifle_Base_F { magazines[] += { "ACE_30Rnd_65x39_caseless_green_mag_Tracer_Dim", @@ -39,6 +39,40 @@ class CfgWeapons { }; }; + class DMR_02_base_F: Rifle_Long_Base_F { + magazines[] += { + "ACE_10Rnd_338_Mag_Tracer", + "ACE_10Rnd_338_Mag_Tracer_Dim", + "ACE_10Rnd_338_Mag_AP", + "ACE_10Rnd_338_Mag_SD" + }; + }; + + class MMG_02_base_F: Rifle_Long_Base_F { + magazines[] += { + "ACE_130Rnd_338_Mag_Tracer", + "ACE_130Rnd_338_Mag_Tracer_Dim", + "ACE_130Rnd_338_Mag_AP" + }; + }; + + class DMR_05_base_F: Rifle_Long_Base_F { + magazines[] += { + "ACE_10Rnd_93x64_DMR_05_Mag_Tracer", + "ACE_10Rnd_93x64_DMR_05_Mag_Tracer_Dim", + "ACE_10Rnd_93x64_DMR_05_Mag_AP", + "ACE_10Rnd_93x64_DMR_05_Mag_SD" + }; + }; + + class MMG_01_base_F: Rifle_Long_Base_F { + magazines[] += { + "ACE_150Rnd_93x64_Mag_Tracer", + "ACE_150Rnd_93x64_Mag_Tracer_Dim", + "ACE_150Rnd_93x64_Mag_AP" + }; + }; + /* Assault Rifles */ diff --git a/addons/magazines/newclasses.txt b/addons/magazines/newclasses.txt index 1a711e8c37..0c40a1b904 100644 --- a/addons/magazines/newclasses.txt +++ b/addons/magazines/newclasses.txt @@ -18,6 +18,16 @@ ACE_B_762x51_Ball_SD ACE_B_762x51_Ball_AP ACE_B_762x51_M118LR +ACE_B_338_Ball_Tracer_Dim +ACE_B_338_Ball_AP +ACE_B_338_Ball_SD + +ACE_B_338_NM_Ball_Tracer_Dim +ACE_B_338_NM_Ball_AP + +ACE_B_93x64_Ball_Tracer_Dim +ACE_B_93x64_Ball_AP +ACE_B_93x64_Ball_SD // CFGMagazines @@ -37,3 +47,21 @@ ACE_20Rnd_762x51_Mag_Tracer ACE_20Rnd_762x51_Mag_Tracer_Dim ACE_20Rnd_762x51_Mag_SD ACE_20Rnd_762x51_Mag_AP + +ACE_10Rnd_338_Mag_Tracer +ACE_10Rnd_338_Mag_Tracer_Dim +ACE_10Rnd_338_Mag_AP +ACE_10Rnd_338_Mag_SD + +ACE_130Rnd_338_Mag_Tracer +ACE_130Rnd_338_Mag_Tracer_Dim +ACE_130Rnd_338_Mag_AP + +ACE_10Rnd_93x64_DMR_05_Mag_Tracer +ACE_10Rnd_93x64_DMR_05_Mag_Tracer_Dim +ACE_10Rnd_93x64_DMR_05_Mag_AP +ACE_10Rnd_93x64_DMR_05_Mag_SD + +ACE_150Rnd_93x64_Mag_Tracer +ACE_150Rnd_93x64_Mag_Tracer_Dim +ACE_150Rnd_93x64_Mag_AP \ No newline at end of file diff --git a/addons/magazines/stringtable.xml b/addons/magazines/stringtable.xml index db637f8064..e1646814ab 100644 --- a/addons/magazines/stringtable.xml +++ b/addons/magazines/stringtable.xml @@ -1,490 +1,704 @@  - + - - - - 6.5mm 30Rnd Tracer IR-DIM Mag - 6,5 mm Nyomjelző IR-DIM 30-as Tár - 6,5 mm 30-Schuss-Magazin Leuchtspur IR-DIM - Cargador de 30 balas trazadoras IR-DIM de 6,5mm - Ch. 6,5mm 30Cps Traçantes IR-DIM - Magazynek 6,5mm 30rd Smugacz IR-DIM - 6.5mm 30ks Svítící IR-DIM Zásobník - Carregador de 30 projéteis traçantes IR-DIM de 6,5mm - Caricatore 6.5mm 30Rnd Traccianti IR-DIM - Магазин из 30-ти 6.5 мм трассирующих под ПНВ - - - 6.5mm IR-DIM - 6,5 mm IR-DIM - 6,5mm IR-DIM - 6,5mm IR-DIM - 6,5mm IR-DIM - 6,5mm IR-DIM - 6.5mm IR-DIM - 6,5mm IR-DIM - 6.5 IR-DIM - 6.5 мм ИК-трассирующие - - - Caliber: 6.5x39 mm Tracer IR-DIM<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL - Kaliber: 6,5x39 mm Nyomjelző IR-DIM<br />Lőszerek: 30<br />Használható: MX/C/M/SW/3GL - Kaliber: 6,5x39 mm Leuchtspur IR-DIM<br />Patronen: 30<br />Eingesetzt von: MX/C/M/SW/3GL - Calibre: 6,5x39 mm Trazadoras IR-DIM<br />Balas: 30<br />Se usa en: MX/C/M/SW/3GL - Calibre: 6,5x39 mm Traçantes IR-DIM<br />Cartouches: 30<br />Utilisé dans: MX/C/M/SW/3GL - Kaliber: 6,5 x 39 mm Smugowy IR-DIM<br />Pociski: 30<br />Używane w: MX/C/M/SW/3GL - Ráže: 6.5x39 mm Svítící IR-DIM<br />Munice: 30<br />Použití: MX/C/M/SW/3GL - Calibre: 6,5x39 mm Traçante IR-DIM<br />Projéteis: 30<br />Usado em: MX/C/M/SW/3GL - Calibro: 6.5x39 mm Traccianti IR-DIM <br />Munizioni: 30<br />In uso su: MX/C/M/SW/3GL - Калибр: 6.5x39 мм трассирующие под ПНВ<br />Патронов: 30<br />Применимы в: MX/C/M/SW/3GL - - - 6.5mm 30Rnd SD Mag - 6,5 mm Hangtompítós 30-as Tár - 6,5 mm 30-Schuss-Magazin SD - Cargador de 30 balas SD de 6,5mm - Ch. 6,5mm 30Cps SD - Magazynek 6,5mm 30rd SD - 6.5mm 30ks SD Zásobník - Carregador de 30 projéteis SD de 6,5mm - Caricatore 6.5mm 30Rnd Sil. - Магазин из 30-ти 6.5 мм дозвуковых - - - 6.5mm SD - 6,5 mm Hangtompítós - 6,5mm SD - 6,5mm SD - 6,5mm SD - 6,5mm SD - 6.5mm SD - 6,5mm SD - 6.5mm Sil. - 6.5 мм дозвуковые - - - Caliber: 6.5x39 mm SD<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL - Kaliber: 6,5x39 mm Hangtompítós<br />Lőszerek: 30<br />Használható: MX/C/M/SW/3GL - Kaliber: 6,5x39 mm SD<br />Patronen: 30<br />Eingesetzt von: MX/C/M/SW/3GL - Calibre: 6,5x39 mm SD<br />Balas: 30<br />Se usa en: MX/C/M/SW/3GL - Calibre: 6,5x39 mm SD<br />Cartouches: 30<br />Utilisé dans: MX/C/M/SW/3GL - Kaliber: 6,5 x 39 mm SD<br />Pociski: 30<br />Używane w: MX/C/M/SW/3GL - Ráže: 6.5x39 mm SD<br />Munice: 30<br />Použití: MX/C/M/SW/3GL - Calibre: 6,5x39 mm SD<br />Projéteis: 30<br />Usado em: MX/C/M/SW/3GL - Calibro: 6.5x39 mm Sil.<br />Munizioni: 30<br />In uso su: MX/C/M/SW/3GL - Калибр: 6.5x39 мм дозвуковые<br />Патронов: 30<br />Применимы в: MX/C/M/SW/3GL - - - 6.5mm 30Rnd AP Mag - 6,5 mm Páncéltörő 30-as Tár - 6,5 mm 30-Schuss-Magazin AP - Cargador de 30 balas AP de 6,5mm - Ch. 6,5mm 30Cps AP - Magazynek 6,5mm 30rd AP - 6.5mm 30ks AP Zásobník - Carregador de 30 projéteis AP de 6,5mm - Caricatore 6.5mm 30Rnd AP - Магазин из 30-ти 6.5 мм бронебойных - - - 6.5mm AP - 6,5 mm Páncéltörő - 6,5mm AP - 6,5mm AP - 6,5mm AP - 6,5mm AP - 6.5mm AP - 6,5mm AP - 6.5mm AP - 6.5 мм бронебойные - - - Caliber: 6.5x39 mm AP<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL - Kaliber: 6,5x39 mm Páncéltörő<br />Lőszerek: 30<br />Használható: MX/C/M/SW/3GL - Kaliber: 6,5x39 mm AP<br />Patronen: 30<br />Eingesetzt von: MX/C/M/SW/3GL - Calibre: 6,5x39 mm AP<br />Balas: 30<br />Se usa en: MX/C/M/SW/3GL - Calibre: 6,5x39 mm AP<br />Cartouches: 30<br />Utilisé dans: MX/C/M/SW/3GL - Kaliber: 6,5 x 39 mm AP<br />Pociski: 30<br />Używane w: MX/C/M/SW/3GL - Ráže: 6.5x39 mm AP<br />Munice: 30<br />Použití: MX/C/M/SW/3GL - Calibre: 6,5x39 mm AP<br />Projéteis: 30<br />Usado em: MX/C/M/SW/3GL - Calibro: 6.5x39 mm AP<br />Munizioni: 30<br />In uso su: MX/C/M/SW/3GL - Калибр: 6.5x39 мм бронебойные<br />Патронов: 30<br />Применимы в: MX/C/M/SW/3GL - - - - 6.5mm 30Rnd Tracer IR-DIM Mag - 6,5mm IR-DIM Nyomjelző 30-as Tár - 6,5 mm 30-Schuss-Magazin Leuchtspur IR-DIM - Cargador de 30 balas trazadoras IR-DIM de 6,5mm - Ch. 6,5mm 30Cps Traçantes IR-DIM - Magazynek 6,5mm 30rd Smugacz IR-DIM - 6.5mm 30ks Svítící IR-DIM Zásobník - Carregador de 30 projéteis traçantes IR-DIM de 6,5mm - Caricatore 6.5mm 30Rnd Traccianti IR-DIM - Магазин из 30-ти 6.5 мм трассирующих под ПНВ - - - 6.5mm IR-DIM - 6,5mm IR-DIM - 6,5mm IR-DIM - 6,5mm IR-DIM - 6,5mm IR-DIM - 6,5mm IR-DIM - 6.5mm IR-DIM - 6,5mm IR-DIM - 6.5mm IR-DIM - 6.5 мм ИК-трассирующие - - - Caliber: 6.5x39 mm Tracer IR-DIM<br />Rounds: 30<br />Used in: Katiba - Kaliber: 6,5x39 mm Nyomjelző IR-DIM<br />Lőszerek: 30<br />Használható: Katiba - Kaliber: 6,5x39 mm Leuchtspur IR-DIM<br />Patronen: 30<br />Eingesetzt von: Katiba - Calibre: 6,5x39 mm Trazadoras IR-DIM<br />Balas: 30<br />Se usa en: Katiba - Calibre: 6,5x39 mm Traçantes IR-DIM<br />Cartouches: 30<br />Utilisé dans: Katiba - Kaliber: 6,5x39 mm Smugowy IR-DIM<br />Pociski: 30<br />Używane w: Katiba - Ráže: 6.5x39 mm Svítící IR-DIM<br />Munice: 30<br />Použití: Katiba - Calibre: 6,5x39 mm Traçante IR-DIM<br />Projéteis: 30<br />Usado em: Katiba - Calibro: 6.5x39 mm Tracciant IR-DIM<br />Munizioni: 30<br />In uso su: Katiba - Калибр: 6.5x39 мм трассирующие под ПНВ<br />Патронов: 30<br />Применимы в: Katiba - - - 6.5mm 30Rnd SD Mag - 6,5 mm Hangtompítós 30-as Tár - 6,5 mm 30-Schuss-Magazin SD - Cargador de 30 balas SD de 6,5mm - Ch. 6,5mm 30Cps SD - Magazynek 6,5mm 30rd SD - 6.5mm 30ks SD Zásobník - Carregador de 30 projéteis SD de 6,5mm - Caricatore 6.5mm 30Rnd Sil. - Магазин из 30-ти 6.5 мм дозвуковых - - - 6.5mm SD - 6,5 mm Hangtompítós - 6,5mm SD - 6,5mm SD - 6,5mm SD - 6,5mm SD - 6.5mm SD - 6,5mm SD - 6.5mm Sil. - 6.5 мм дозвуковые - - - Caliber: 6.5x39 mm SD<br />Rounds: 30<br />Used in: Katiba - Kaliber: 6,5x39 mm Hangtompítós<br />Lőszerek: 30<br />Használható: Katiba - Kaliber: 6,5x39 mm SD<br />Patronen: 30<br />Eingesetzt von: Katiba - Calibre: 6,5x39 mm SD<br />Balas: 30<br />Se usa en: Katiba - Calibre: 6,5x39 mm SD<br />Cartouches: 30<br />Utilisé dans: Katiba - Kaliber: 6,5 x 39 mm SD<br />Naboje: 30<br />Używane w: Katiba - Ráže: 6.5x39 mm SD<br />Munice: 30<br />Použití: Katiba - Calibre: 6,5x39 mm SD<br />Projéteis: 30<br />Usado em: Katiba - Calibro: 6.5x39 mm Sil.<br />Munizioni: 30<br />In uso su: Katiba - Калибр: 6.5x39 мм дозвуковые<br />Патронов: 30<br />Применимы в: Katiba - - - 6.5mm 30Rnd AP Mag - 6,5 mm Páncéltörő 30-as Tár - 6,5 mm 30-Schuss-Magazin AP - Cargador de 30 balas AP de 6,5mm - Ch. 6,5mm 30Cps AP - Magazynek 6,5mm 30rd AP - 6.5mm 30ks AP Zásobník - Carregador de 30 projéteis AP de 6,5mm - Caricatore 6.5mm 30Rnd AP - Магазин из 30-ти 6.5 мм бронебойных - - - 6.5mm AP - 6,5 mm Páncéltörő - 6,5mm AP - 6,5mm AP - 6,5mm AP - 6,5mm AP - 6.5mm AP - 6,5mm AP - 6.5mm AP - 6.5 мм бронебойные - - - Caliber: 6.5x39 mm AP<br />Rounds: 30<br />Used in: Katiba - Kaliber: 6,5x39 mm Páncéltörő<br />Lőszerek: 30<br />Használható: Katiba - Kaliber: 6,5x39 mm AP<br />Patronen: 30<br />Eingesetzt von: Katiba - Calibre: 6,5x39 mm AP<br />Balas: 30<br />Se usa en: Katiba - Calibre: 6,5x39 mm AP<br />Cartouches: 30<br />Utilisé dans: Katiba - Kaliber: 6,5 x 39 mm AP<br />Pociski: 30<br />Używane w: Katiba - Ráže: 6.5x39 mm AP<br />Munice: 30<br />Použití: Katiba - Calibre: 6,5x39 mm AP<br />Projéteis: 30<br />Usado em: Katiba - Calibro: 6.5x39 mm AP<br />Munizioni: 30<br />In uso su: Katiba - Калибр: 6.5x39 мм бронебойные<br />Патронов: 30<br />Применимы в: Katiba - - - - 5.56mm 30rnd Tracer IR-DIM Mag - 5,56 mm Nyomjelző IR-DIM 30-as Tár - 5,56 mm 30-Schuss-Magazin Leuchtspur IR-DIM - Cargador de 30 balas trazadoras IR-DIM de 5,56mm - Ch. 5,56mm 30Cps Traçantes IR-DIM - Magazynek 5,56mm 30rd Smugacz IR-DIM - 5.56mm 30ks Svítící IR-DIM Zásobník - Carregador de 30 projéteis traçantes IR-DIM de 5,56mm - Caricatore 5.56mm 30rnd Traccianti IR-DIM - Магазин из 30-ти 5.56 мм трассирующих под ПНВ - - - 5.56mm IR-DIM - 5,56 mm IR-DIM - 5,56mm IR-DIM - 5,56mm IR-DIM - 5,56mm IR-DIM - 5,56mm IR-DIM - 5.56mm IR-DIM - 5,56mm IR-DIM - 5.56mm IR-DIM - 5.56 мм ИК-трассирующие - - - Caliber: 5.56x45 mm Tracer IR-DIM<br />Rounds: 30<br />Used in: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - Kaliber: 5,56x45 mm Nyomjelző IR-DIM<br />Lőszerek: 30<br />Használható: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - Kaliber: 5,56x45 mm Leuchtspur IR-DIM<br />Patronen: 30<br />Eingesetzt von: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - Calibre: 5,56x45 mm Trazadoras IR-DIM<br />Balas: 30<br />Se usa en: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - Calibre: 5,56x45 mm Traçantes IR-DIM<br />Cartouches: 30<br />Utilisé dans: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - Kaliber: 5,56 x 45 mm Smugowy IR-DIM<br />Pociski: 30<br />Używane w: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - Ráže: 5.56x45 mm Svítící IR-DIM<br />Munice: 30<br />Použití: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - Calibre: 5,56x45 mm Traçante IR-DIM<br />Projéteis: 30<br />Usado em: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - Calibro: 5.56x45 mm Traccianti IR-DIM<br />Munizioni: 30<br />In uso su: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - Калибр: 5.56x45 мм трассирующие под ПНВ<br />Патронов: 30<br />Применимы в: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - - - 5.56mm 30Rnd SD Mag - 5,56 mm Hangtompítós 30-as Tár - 5,56 mm 30-Schuss-Magazin SD - Cargador de 30 balas SD de 5,56 mm - Ch. 5,56mm 30Cps SD - Magazynek 5,56mm 30rd SD - 5.56mm 30ks SD Zásobník - Carregador de 30 projéteis SD de 5,56mm - Caricatore 5.56mm 30Rnd Sil. - Магазин из 30-ти 5.56 мм дозвуковых - - - 5.56mm SD - 5,56 mm Hangtompítós - 5,56mm SD - 5,56 mm SD - 5,56mm SD - 5,56mm SD - 5.56mm SD - 5,56mm SD - 5.56 Sil. - 5.56 мм дозвуковые - - - Caliber: 5.56x45 mm SD<br />Rounds: 30<br />Used in: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - Kaliber: 5,56x45 mm Hangtompítós<br />Lőszerek: 30<br />Használható: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - Kaliber: 5,56x45 mm SD<br />Patronen: 30<br />Eingesetzt von: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - Calibre: 5,56x45 mm SD<br />Balas: 30<br />Se usa en: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - Calibre: 5.56x45 mm SD<br />Cartouches: 30<br />Utilisé dans: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - Kaliber: 5,56 x 45 mm SD<br />Pociski: 30<br />Używane w: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - Ráže: 5.56x45 mm SD<br />Munice: 30<br />Použití: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - Calibre: 5,56x45 mm SD<br />Projéteis: 30<br />Usado em: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - Calibro: 5.56x45 mm Sil.<br />Munizioni: 30<br />In uso su: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - Калибр: 5.56x45 мм дозвуковые<br />Патронов: 30<br />Применимы в: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - - - 5.56mm 30Rnd AP Mag - 5,56 mm Páncéltörő 30-as Tár - 5,56 mm 30-Schuss-Magazin AP - Cargador de 30 balas AP de 5,56mm - Ch. 5,56mm 30Cps AP - Magazynek 5,56mm 30rd AP - 5.56mm 30ks AP Zásobník - Carregador de 30 projéteis AP de 5,56mm - Caricatore 5.56mm 30Rnd AP - Магазин из 30-ти 5.56 мм бронебойных - - - 5.56mm AP - 5,56 mm Páncéltörő - 5,56mm AP - 5,56mm AP - 5,56mm AP - 5,56mm AP - 5.56mm AP - 5,56mm AP - 5.56mm AP - 5.56 мм бронебойные - - - Caliber: 5.56x45 mm AP<br />Rounds: 30<br />Used in: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - Kaliber: 5,56x45 mm Páncéltörő<br />Lőszerek: 30<br />Használható: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - Kaliber: 5,56x45 mm AP<br />Patronen: 30<br />Eingesetzt von: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - Calibre: 5,56x45 mm AP<br />Balas: 30<br />Se usa en: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - Calibre: 5,56x45 mm AP<br />Cartouches: 30<br />Utilisé dans: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - Kaliber: 5,56 x 45 mm AP<br />Pociski: 30<br />Używane w: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - Ráže: 5.56x45 mm AP<br />Munice: 30<br />Použití: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - Calibre: 5,56x45 mm AP<br />Projéteis: 30<br />Usado em: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - Calibro: 5.56x45 mm AP<br />Munizioni: 30<br />In uso su: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - Калибр: 5.56x45 мм бронебойные<br />Патронов: 30<br />Применимы в: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR - - - - 7.62mm 20rnd Tracer Mag - 7,62 mm Nyomjelző IR-DIM 20-as Tár - 7,62 mm 20-Schuss-Magazin Leuchtspur - Cargador de 20 balas trazadores de 7,62mm - Ch. 7,62mm 20Cps Traçantes - Magazynek 7,62mm 20rd Smugacz - 7.62mm 20ks Svítící Zásobník - Carregador de 20 projéteis traçantes de 7,62mm - Caricatore 7.62mm 20Rnd Traccianti - Магазин из 20-ти 7.62 мм трассирующих - - - 7.62mm Tracer - 7,62 mm Nyomjelző - 7,62mm Leuchtspur - 7,62mm Trazadora - 7,62mm Traçantes - 7,62mm Smugacz - 7.62mm Svítící - 7,62mm Traçante - 7.62mm Traccianti - 7.62 мм трассирущие - - - Caliber: 7.62x51 mm Tracer<br />Rounds: 20<br />Used in: Mk18 ABR - Kaliber: 7,62x51 mm Nyomjelző<br />Lőszerek: 20<br />Használható: Mk18 ABR - Kaliber: 7,62x51 mm Leuchtspur<br />Patronen: 20<br />Eingesetzt von: EBR - Calibre: 7,62x51 mm Trazadora<br />Balas: 20<br />Se usa en: Mk18 ABR - Calibre: 7,62x51 mm Traçantes<br />Cartouches: 20<br />Utilisé dans: EBR - Kaliber: 7,62 x 51 mm Smugacz<br />Pociski: 20<br />Używane w: Mk18 ABR - Ráže: 7.62x51 mm Svítící<br />Munice: 20<br />Použití: Mk18 ABR - Calibre: 7,62x51 mm Traçante<br />Projéteis: 20<br />Usado em: Mk18 ABR - Calibro: 7.62x51 mm Traccianti<br />Munizioni: 20<br />In uso su: Mk18 ABR - Калибр: 7.62x51 мм трассирующие<br />Патронов: 20<br />Применимы в: Mk18 ABR - - - 7.62mm 20rnd Tracer IR-DIM Mag - 7,62 mm Nyomjelző IR-DIM 20-as Tár - 7,62 mm 20-Schuss-Magazin Leuchtspur IR-DIM - Cargador de 20 balas IR-DIM de 7,62mm - Ch. 7,62mm 20Cps Traçantes IR-DIM - Magazynek 7,62mm 20rd Smugacz IR-DIM - 7.62mm 20ks Svítící IR-DIM Zásobník - Carregador de 20 projéteis IR-DIM de 7,62mm - Caricatore 7.62mm 20rnd Traccianti IR-DIM - Магазин из 20-ти 7.62 мм трассирующих под ПНВ - - - 7.62mm IR-DIM - 7,62 mm IR-DIM - 7,62mm IR-DIM - 7,62mm IR-DIM - 7,62mm IR-DIM - 7,62mm IR-DIM - 7.62mm IR-DIM - 7,62mm IR-DIM - 7.62mm IR-DIM - 7.62 мм ИК-трассирующие - - - Caliber: 7.62x51 mm Tracer IR-DIM<br />Rounds: 20<br />Used in: Mk18 ABR - Kaliber: 7,62x51 mm Nyomjelző IR-DIM<br />Lőszerek: 20<br />Használható: Mk18 ABR - Kaliber: 7,62x51 mm Leuchtspur IR-DIM<br />Patronen: 20<br />Eingesetzt von: EBR - Calibre: 7,62x51 mm Trazadoras IR-DIM<br />Balas: 20<br />Se usa en: Mk18 ABR - Calibre: 7,62x51 mm Traçantes IR-DIM<br />Cartouches: 20<br />Utilisé dans: EBR - Kaliber: 7,62 x 51 mm Smugacz IR-DIM<br />Pociski: 20<br />Używane w: Mk18 ABR - Ráže: 7.62x51 mm Svítící IR-DIM<br />Munice: 20<br />Použití: Mk18 ABR - Calibre: 7,62x51 mm Traçante IR-DIM<br />Projéteis: 20<br />Usado em: Mk18 ABR - Calibro: 7.62x51 mm Traccianti IR-DIM<br />Munizioni: 20<br />In uso su: Mk18 ABR - Калибр: 7.62x51 мм трассирующие под ПНВ<br />Патронов: 20<br />Применимы в: Mk18 ABR - - - 7.62mm 20Rnd SD Mag - 7,62 mm Hangtompítós 20-as Tár - 7,62 mm 20-Schuss-Magazin SD - Cargador de 20 balas SD de 7,62mm - Ch. 7,62mm 20Cps SD - Magazynek 7,62mm 20rd SD - 7.62mm 20ks SD Zásobník - Carregador de 20 projéteis SD de 7,62mm - Caricatore 7.62mm 20Rnd Sil. - Магазин из 20-ти 7.62 мм дозвуковых - - - 7.62mm SD - 7,62 mm Hangtompítós - 7,62mm SD - 7,62mm SD - 7,62mm SD - 7,62mm SD - 7.62mm SD - 7,62mm SD - 7.62mm Sil. - 7.62 мм дозвуковые - - - Caliber: 7.62x51 mm SD<br />Rounds: 20<br />Used in: Mk18 ABR - Kaliber: 7,62x51 mm Hangtompítós<br />Lőszerek: 20<br />Használható: Mk18 ABR - Kaliber: 7,62x51 mm SD<br />Patronen: 20<br />Eingesetzt von: EBR - Calibre: 7,62x51 mm SD<br />Balas: 20<br />Se usa en: Mk18 ABR - Calibre: 7,62x51 mm SD<br />Cartouches: 20<br />Utilisé dans: EBR - Kaliber: 7,62 x 51 mm SD<br />Pociski: 20<br />Używane w: Mk18 ABR - Ráže: 7.62x51 mm SD<br />Munice: 20<br />Použití: Mk18 ABR - Calibre: 7,62x51 mm SD<br />Projéteis: 20<br />Usado em: Mk18 ABR - Calibro: 7.62x51 mm Sil.<br />Munizioni: 20<br />In uso su: Mk18 ABR - Калибр: 7.62x51 мм дозвуковые<br />Патронов: 20<br />Применимы в: Mk18 ABR - - - 7.62mm 20Rnd AP Mag - 7,62 mm Páncéltörő 20-as Tár - 7,62 mm 20-Schuss-Magazin AP - Cargador de 20 balas AP de 7,62mm - Ch. 7,62mm 20Cps AP - Magazynek 7,62mm 20rd AP - 7.62mm 20ks AP Zásobník - Carregador de 20 projéteis AP de 7,62mm - Caricatore 7.62mm 20Rnd AP - Магазин из 20-ти 7.62 мм бронебойных - - - 7.62mm AP - 7,62 mm Páncéltörő - 7,62mm AP - 7,62mm AP - 7,62mm AP - 7,62mm AP - 7.62mm AP - 7,62mm AP - 7.62mm AP - 7.62 мм бронебойные - - - Caliber: 7.62x51 mm AP<br />Rounds: 20<br />Used in: Mk18 ABR - Kaliber: 7,62x51 mm Páncéltörő<br />Lőszerek: 20<br />Használható: Mk18 ABR - Kaliber: 7,62x51 mm AP<br />Patronen: 20<br />Eingesetzt von: EBR - Calibre: 7,62x51 mm AP<br />Balas: 20<br />Se usa en: Mk18 ABR - Calibre: 7,62x51 mm AP<br />Cartouches: 20<br />Utilisé dans: EBR - Kaliber: 7,62 x 51 mm AP<br />Pociski: 20<br />Używane w: Mk18 ABR - Ráže: 7.62x51 mm AP<br />Munice: 20<br />Použití: Mk18 ABR - Calibre: 7,62x51 mm AP<br />Projéteis: 20<br />Usado em: Mk18 ABR - Calibro: 7.62x51 mm AP<br />Munizioni: 20<br />In uso su: Mk18 ABR - Калибр: 7.62x51 мм дозвуковые<br />Патронов: 20<br />Применимы в: Mk18 ABR - - - Caliber: 7.62x51mm M118LR<br />Rounds: 20<br />Type: M14 - Kaliber: 7,62x51 mm M118LR<br />Lőszerek: 20<br />Típus: M14 - Kaliber: 7,62x51mm M118LR<br />Schuss: 20<br />Typ: M14 - Calibre: 7,62x51mm M118LR<br />Balas: 20<br />Tipo: M14 - Kaliber: 7,62 x 51 mm M118LR<br />Pociski: 20<br />Typ: M14 - Kalibr: 7.62x51mm M118LR<br />Náboje: 20<br />Typ: M14 - Calibre : 7,62x51mm M118LR<br />Cartouches: 20<br />Type: M14 - Calibre: 7,62x51mm M118LR<br />Projéteis: 20<br />Tipo: M14 - Калибр: 7.62x51mm M118LR<br />Патронов: 20<br />Тип: M14 - Calibro: 7.62x51mm M118LR<br />Munizioni:20<br />In uso su: M14 - - + + + + 6.5mm 30Rnd Tracer IR-DIM Mag + 6,5 mm Nyomjelző IR-DIM 30-as Tár + 6,5 mm 30-Schuss-Magazin Leuchtspur IR-DIM + Cargador de 30 balas trazadoras IR-DIM de 6,5mm + Ch. 6,5mm 30Cps Traçantes IR-DIM + Magazynek 6,5mm 30rd Smugacz IR-DIM + 6.5mm 30ks Svítící IR-DIM Zásobník + Carregador de 30 projéteis traçantes IR-DIM de 6,5mm + Caricatore 6.5mm 30Rnd Traccianti IR-DIM + Магазин из 30-ти 6.5 мм трассирующих под ПНВ + + + 6.5mm IR-DIM + 6,5 mm IR-DIM + 6,5mm IR-DIM + 6,5mm IR-DIM + 6,5mm IR-DIM + 6,5mm IR-DIM + 6.5mm IR-DIM + 6,5mm IR-DIM + 6.5 IR-DIM + 6.5 мм ИК-трассирующие + + + Caliber: 6.5x39 mm Tracer IR-DIM<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL + Kaliber: 6,5x39 mm Nyomjelző IR-DIM<br />Lőszerek: 30<br />Használható: MX/C/M/SW/3GL + Kaliber: 6,5x39 mm Leuchtspur IR-DIM<br />Patronen: 30<br />Eingesetzt von: MX/C/M/SW/3GL + Calibre: 6,5x39 mm Trazadoras IR-DIM<br />Balas: 30<br />Se usa en: MX/C/M/SW/3GL + Calibre: 6,5x39 mm Traçantes IR-DIM<br />Cartouches: 30<br />Utilisé dans: MX/C/M/SW/3GL + Kaliber: 6,5 x 39 mm Smugowy IR-DIM<br />Pociski: 30<br />Używane w: MX/C/M/SW/3GL + Ráže: 6.5x39 mm Svítící IR-DIM<br />Munice: 30<br />Použití: MX/C/M/SW/3GL + Calibre: 6,5x39 mm Traçante IR-DIM<br />Projéteis: 30<br />Usado em: MX/C/M/SW/3GL + Calibro: 6.5x39 mm Traccianti IR-DIM <br />Munizioni: 30<br />In uso su: MX/C/M/SW/3GL + Калибр: 6.5x39 мм трассирующие под ПНВ<br />Патронов: 30<br />Применимы в: MX/C/M/SW/3GL + + + 6.5mm 30Rnd SD Mag + 6,5 mm Hangtompítós 30-as Tár + 6,5 mm 30-Schuss-Magazin SD + Cargador de 30 balas SD de 6,5mm + Ch. 6,5mm 30Cps SD + Magazynek 6,5mm 30rd SD + 6.5mm 30ks SD Zásobník + Carregador de 30 projéteis SD de 6,5mm + Caricatore 6.5mm 30Rnd Sil. + Магазин из 30-ти 6.5 мм дозвуковых + + + 6.5mm SD + 6,5 mm Hangtompítós + 6,5mm SD + 6,5mm SD + 6,5mm SD + 6,5mm SD + 6.5mm SD + 6,5mm SD + 6.5mm Sil. + 6.5 мм дозвуковые + + + Caliber: 6.5x39 mm SD<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL + Kaliber: 6,5x39 mm Hangtompítós<br />Lőszerek: 30<br />Használható: MX/C/M/SW/3GL + Kaliber: 6,5x39 mm SD<br />Patronen: 30<br />Eingesetzt von: MX/C/M/SW/3GL + Calibre: 6,5x39 mm SD<br />Balas: 30<br />Se usa en: MX/C/M/SW/3GL + Calibre: 6,5x39 mm SD<br />Cartouches: 30<br />Utilisé dans: MX/C/M/SW/3GL + Kaliber: 6,5 x 39 mm SD<br />Pociski: 30<br />Używane w: MX/C/M/SW/3GL + Ráže: 6.5x39 mm SD<br />Munice: 30<br />Použití: MX/C/M/SW/3GL + Calibre: 6,5x39 mm SD<br />Projéteis: 30<br />Usado em: MX/C/M/SW/3GL + Calibro: 6.5x39 mm Sil.<br />Munizioni: 30<br />In uso su: MX/C/M/SW/3GL + Калибр: 6.5x39 мм дозвуковые<br />Патронов: 30<br />Применимы в: MX/C/M/SW/3GL + + + 6.5mm 30Rnd AP Mag + 6,5 mm Páncéltörő 30-as Tár + 6,5 mm 30-Schuss-Magazin AP + Cargador de 30 balas AP de 6,5mm + Ch. 6,5mm 30Cps AP + Magazynek 6,5mm 30rd AP + 6.5mm 30ks AP Zásobník + Carregador de 30 projéteis AP de 6,5mm + Caricatore 6.5mm 30Rnd AP + Магазин из 30-ти 6.5 мм бронебойных + + + 6.5mm AP + 6,5 mm Páncéltörő + 6,5mm AP + 6,5mm AP + 6,5mm AP + 6,5mm AP + 6.5mm AP + 6,5mm AP + 6.5mm AP + 6.5 мм бронебойные + + + Caliber: 6.5x39 mm AP<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL + Kaliber: 6,5x39 mm Páncéltörő<br />Lőszerek: 30<br />Használható: MX/C/M/SW/3GL + Kaliber: 6,5x39 mm AP<br />Patronen: 30<br />Eingesetzt von: MX/C/M/SW/3GL + Calibre: 6,5x39 mm AP<br />Balas: 30<br />Se usa en: MX/C/M/SW/3GL + Calibre: 6,5x39 mm AP<br />Cartouches: 30<br />Utilisé dans: MX/C/M/SW/3GL + Kaliber: 6,5 x 39 mm AP<br />Pociski: 30<br />Używane w: MX/C/M/SW/3GL + Ráže: 6.5x39 mm AP<br />Munice: 30<br />Použití: MX/C/M/SW/3GL + Calibre: 6,5x39 mm AP<br />Projéteis: 30<br />Usado em: MX/C/M/SW/3GL + Calibro: 6.5x39 mm AP<br />Munizioni: 30<br />In uso su: MX/C/M/SW/3GL + Калибр: 6.5x39 мм бронебойные<br />Патронов: 30<br />Применимы в: MX/C/M/SW/3GL + + + + 6.5mm 30Rnd Tracer IR-DIM Mag + 6,5mm IR-DIM Nyomjelző 30-as Tár + 6,5 mm 30-Schuss-Magazin Leuchtspur IR-DIM + Cargador de 30 balas trazadoras IR-DIM de 6,5mm + Ch. 6,5mm 30Cps Traçantes IR-DIM + Magazynek 6,5mm 30rd Smugacz IR-DIM + 6.5mm 30ks Svítící IR-DIM Zásobník + Carregador de 30 projéteis traçantes IR-DIM de 6,5mm + Caricatore 6.5mm 30Rnd Traccianti IR-DIM + Магазин из 30-ти 6.5 мм трассирующих под ПНВ + + + 6.5mm IR-DIM + 6,5mm IR-DIM + 6,5mm IR-DIM + 6,5mm IR-DIM + 6,5mm IR-DIM + 6,5mm IR-DIM + 6.5mm IR-DIM + 6,5mm IR-DIM + 6.5mm IR-DIM + 6.5 мм ИК-трассирующие + + + Caliber: 6.5x39 mm Tracer IR-DIM<br />Rounds: 30<br />Used in: Katiba + Kaliber: 6,5x39 mm Nyomjelző IR-DIM<br />Lőszerek: 30<br />Használható: Katiba + Kaliber: 6,5x39 mm Leuchtspur IR-DIM<br />Patronen: 30<br />Eingesetzt von: Katiba + Calibre: 6,5x39 mm Trazadoras IR-DIM<br />Balas: 30<br />Se usa en: Katiba + Calibre: 6,5x39 mm Traçantes IR-DIM<br />Cartouches: 30<br />Utilisé dans: Katiba + Kaliber: 6,5x39 mm Smugowy IR-DIM<br />Pociski: 30<br />Używane w: Katiba + Ráže: 6.5x39 mm Svítící IR-DIM<br />Munice: 30<br />Použití: Katiba + Calibre: 6,5x39 mm Traçante IR-DIM<br />Projéteis: 30<br />Usado em: Katiba + Calibro: 6.5x39 mm Tracciant IR-DIM<br />Munizioni: 30<br />In uso su: Katiba + Калибр: 6.5x39 мм трассирующие под ПНВ<br />Патронов: 30<br />Применимы в: Katiba + + + 6.5mm 30Rnd SD Mag + 6,5 mm Hangtompítós 30-as Tár + 6,5 mm 30-Schuss-Magazin SD + Cargador de 30 balas SD de 6,5mm + Ch. 6,5mm 30Cps SD + Magazynek 6,5mm 30rd SD + 6.5mm 30ks SD Zásobník + Carregador de 30 projéteis SD de 6,5mm + Caricatore 6.5mm 30Rnd Sil. + Магазин из 30-ти 6.5 мм дозвуковых + + + 6.5mm SD + 6,5 mm Hangtompítós + 6,5mm SD + 6,5mm SD + 6,5mm SD + 6,5mm SD + 6.5mm SD + 6,5mm SD + 6.5mm Sil. + 6.5 мм дозвуковые + + + Caliber: 6.5x39 mm SD<br />Rounds: 30<br />Used in: Katiba + Kaliber: 6,5x39 mm Hangtompítós<br />Lőszerek: 30<br />Használható: Katiba + Kaliber: 6,5x39 mm SD<br />Patronen: 30<br />Eingesetzt von: Katiba + Calibre: 6,5x39 mm SD<br />Balas: 30<br />Se usa en: Katiba + Calibre: 6,5x39 mm SD<br />Cartouches: 30<br />Utilisé dans: Katiba + Kaliber: 6,5 x 39 mm SD<br />Naboje: 30<br />Używane w: Katiba + Ráže: 6.5x39 mm SD<br />Munice: 30<br />Použití: Katiba + Calibre: 6,5x39 mm SD<br />Projéteis: 30<br />Usado em: Katiba + Calibro: 6.5x39 mm Sil.<br />Munizioni: 30<br />In uso su: Katiba + Калибр: 6.5x39 мм дозвуковые<br />Патронов: 30<br />Применимы в: Katiba + + + 6.5mm 30Rnd AP Mag + 6,5 mm Páncéltörő 30-as Tár + 6,5 mm 30-Schuss-Magazin AP + Cargador de 30 balas AP de 6,5mm + Ch. 6,5mm 30Cps AP + Magazynek 6,5mm 30rd AP + 6.5mm 30ks AP Zásobník + Carregador de 30 projéteis AP de 6,5mm + Caricatore 6.5mm 30Rnd AP + Магазин из 30-ти 6.5 мм бронебойных + + + 6.5mm AP + 6,5 mm Páncéltörő + 6,5mm AP + 6,5mm AP + 6,5mm AP + 6,5mm AP + 6.5mm AP + 6,5mm AP + 6.5mm AP + 6.5 мм бронебойные + + + Caliber: 6.5x39 mm AP<br />Rounds: 30<br />Used in: Katiba + Kaliber: 6,5x39 mm Páncéltörő<br />Lőszerek: 30<br />Használható: Katiba + Kaliber: 6,5x39 mm AP<br />Patronen: 30<br />Eingesetzt von: Katiba + Calibre: 6,5x39 mm AP<br />Balas: 30<br />Se usa en: Katiba + Calibre: 6,5x39 mm AP<br />Cartouches: 30<br />Utilisé dans: Katiba + Kaliber: 6,5 x 39 mm AP<br />Pociski: 30<br />Używane w: Katiba + Ráže: 6.5x39 mm AP<br />Munice: 30<br />Použití: Katiba + Calibre: 6,5x39 mm AP<br />Projéteis: 30<br />Usado em: Katiba + Calibro: 6.5x39 mm AP<br />Munizioni: 30<br />In uso su: Katiba + Калибр: 6.5x39 мм бронебойные<br />Патронов: 30<br />Применимы в: Katiba + + + + 5.56mm 30rnd Tracer IR-DIM Mag + 5,56 mm Nyomjelző IR-DIM 30-as Tár + 5,56 mm 30-Schuss-Magazin Leuchtspur IR-DIM + Cargador de 30 balas trazadoras IR-DIM de 5,56mm + Ch. 5,56mm 30Cps Traçantes IR-DIM + Magazynek 5,56mm 30rd Smugacz IR-DIM + 5.56mm 30ks Svítící IR-DIM Zásobník + Carregador de 30 projéteis traçantes IR-DIM de 5,56mm + Caricatore 5.56mm 30rnd Traccianti IR-DIM + Магазин из 30-ти 5.56 мм трассирующих под ПНВ + + + 5.56mm IR-DIM + 5,56 mm IR-DIM + 5,56mm IR-DIM + 5,56mm IR-DIM + 5,56mm IR-DIM + 5,56mm IR-DIM + 5.56mm IR-DIM + 5,56mm IR-DIM + 5.56mm IR-DIM + 5.56 мм ИК-трассирующие + + + Caliber: 5.56x45 mm Tracer IR-DIM<br />Rounds: 30<br />Used in: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Kaliber: 5,56x45 mm Nyomjelző IR-DIM<br />Lőszerek: 30<br />Használható: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Kaliber: 5,56x45 mm Leuchtspur IR-DIM<br />Patronen: 30<br />Eingesetzt von: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Calibre: 5,56x45 mm Trazadoras IR-DIM<br />Balas: 30<br />Se usa en: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Calibre: 5,56x45 mm Traçantes IR-DIM<br />Cartouches: 30<br />Utilisé dans: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Kaliber: 5,56 x 45 mm Smugowy IR-DIM<br />Pociski: 30<br />Używane w: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Ráže: 5.56x45 mm Svítící IR-DIM<br />Munice: 30<br />Použití: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Calibre: 5,56x45 mm Traçante IR-DIM<br />Projéteis: 30<br />Usado em: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Calibro: 5.56x45 mm Traccianti IR-DIM<br />Munizioni: 30<br />In uso su: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Калибр: 5.56x45 мм трассирующие под ПНВ<br />Патронов: 30<br />Применимы в: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + + + 5.56mm 30Rnd SD Mag + 5,56 mm Hangtompítós 30-as Tár + 5,56 mm 30-Schuss-Magazin SD + Cargador de 30 balas SD de 5,56 mm + Ch. 5,56mm 30Cps SD + Magazynek 5,56mm 30rd SD + 5.56mm 30ks SD Zásobník + Carregador de 30 projéteis SD de 5,56mm + Caricatore 5.56mm 30Rnd Sil. + Магазин из 30-ти 5.56 мм дозвуковых + + + 5.56mm SD + 5,56 mm Hangtompítós + 5,56mm SD + 5,56 mm SD + 5,56mm SD + 5,56mm SD + 5.56mm SD + 5,56mm SD + 5.56 Sil. + 5.56 мм дозвуковые + + + Caliber: 5.56x45 mm SD<br />Rounds: 30<br />Used in: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Kaliber: 5,56x45 mm Hangtompítós<br />Lőszerek: 30<br />Használható: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Kaliber: 5,56x45 mm SD<br />Patronen: 30<br />Eingesetzt von: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Calibre: 5,56x45 mm SD<br />Balas: 30<br />Se usa en: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Calibre: 5.56x45 mm SD<br />Cartouches: 30<br />Utilisé dans: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Kaliber: 5,56 x 45 mm SD<br />Pociski: 30<br />Używane w: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Ráže: 5.56x45 mm SD<br />Munice: 30<br />Použití: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Calibre: 5,56x45 mm SD<br />Projéteis: 30<br />Usado em: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Calibro: 5.56x45 mm Sil.<br />Munizioni: 30<br />In uso su: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Калибр: 5.56x45 мм дозвуковые<br />Патронов: 30<br />Применимы в: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + + + 5.56mm 30Rnd AP Mag + 5,56 mm Páncéltörő 30-as Tár + 5,56 mm 30-Schuss-Magazin AP + Cargador de 30 balas AP de 5,56mm + Ch. 5,56mm 30Cps AP + Magazynek 5,56mm 30rd AP + 5.56mm 30ks AP Zásobník + Carregador de 30 projéteis AP de 5,56mm + Caricatore 5.56mm 30Rnd AP + Магазин из 30-ти 5.56 мм бронебойных + + + 5.56mm AP + 5,56 mm Páncéltörő + 5,56mm AP + 5,56mm AP + 5,56mm AP + 5,56mm AP + 5.56mm AP + 5,56mm AP + 5.56mm AP + 5.56 мм бронебойные + + + Caliber: 5.56x45 mm AP<br />Rounds: 30<br />Used in: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Kaliber: 5,56x45 mm Páncéltörő<br />Lőszerek: 30<br />Használható: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Kaliber: 5,56x45 mm AP<br />Patronen: 30<br />Eingesetzt von: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Calibre: 5,56x45 mm AP<br />Balas: 30<br />Se usa en: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Calibre: 5,56x45 mm AP<br />Cartouches: 30<br />Utilisé dans: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Kaliber: 5,56 x 45 mm AP<br />Pociski: 30<br />Używane w: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Ráže: 5.56x45 mm AP<br />Munice: 30<br />Použití: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Calibre: 5,56x45 mm AP<br />Projéteis: 30<br />Usado em: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Calibro: 5.56x45 mm AP<br />Munizioni: 30<br />In uso su: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Калибр: 5.56x45 мм бронебойные<br />Патронов: 30<br />Применимы в: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + + + + 7.62mm 20rnd Tracer Mag + 7,62 mm Nyomjelző IR-DIM 20-as Tár + 7,62 mm 20-Schuss-Magazin Leuchtspur + Cargador de 20 balas trazadores de 7,62mm + Ch. 7,62mm 20Cps Traçantes + Magazynek 7,62mm 20rd Smugacz + 7.62mm 20ks Svítící Zásobník + Carregador de 20 projéteis traçantes de 7,62mm + Caricatore 7.62mm 20Rnd Traccianti + Магазин из 20-ти 7.62 мм трассирующих + + + 7.62mm Tracer + 7,62 mm Nyomjelző + 7,62mm Leuchtspur + 7,62mm Trazadora + 7,62mm Traçantes + 7,62mm Smugacz + 7.62mm Svítící + 7,62mm Traçante + 7.62mm Traccianti + 7.62 мм трассирущие + + + Caliber: 7.62x51 mm Tracer<br />Rounds: 20<br />Used in: Mk18 ABR + Kaliber: 7,62x51 mm Nyomjelző<br />Lőszerek: 20<br />Használható: Mk18 ABR + Kaliber: 7,62x51 mm Leuchtspur<br />Patronen: 20<br />Eingesetzt von: EBR + Calibre: 7,62x51 mm Trazadora<br />Balas: 20<br />Se usa en: Mk18 ABR + Calibre: 7,62x51 mm Traçantes<br />Cartouches: 20<br />Utilisé dans: EBR + Kaliber: 7,62 x 51 mm Smugacz<br />Pociski: 20<br />Używane w: Mk18 ABR + Ráže: 7.62x51 mm Svítící<br />Munice: 20<br />Použití: Mk18 ABR + Calibre: 7,62x51 mm Traçante<br />Projéteis: 20<br />Usado em: Mk18 ABR + Calibro: 7.62x51 mm Traccianti<br />Munizioni: 20<br />In uso su: Mk18 ABR + Калибр: 7.62x51 мм трассирующие<br />Патронов: 20<br />Применимы в: Mk18 ABR + + + 7.62mm 20rnd Tracer IR-DIM Mag + 7,62 mm Nyomjelző IR-DIM 20-as Tár + 7,62 mm 20-Schuss-Magazin Leuchtspur IR-DIM + Cargador de 20 balas IR-DIM de 7,62mm + Ch. 7,62mm 20Cps Traçantes IR-DIM + Magazynek 7,62mm 20rd Smugacz IR-DIM + 7.62mm 20ks Svítící IR-DIM Zásobník + Carregador de 20 projéteis IR-DIM de 7,62mm + Caricatore 7.62mm 20rnd Traccianti IR-DIM + Магазин из 20-ти 7.62 мм трассирующих под ПНВ + + + 7.62mm IR-DIM + 7,62 mm IR-DIM + 7,62mm IR-DIM + 7,62mm IR-DIM + 7,62mm IR-DIM + 7,62mm IR-DIM + 7.62mm IR-DIM + 7,62mm IR-DIM + 7.62mm IR-DIM + 7.62 мм ИК-трассирующие + + + Caliber: 7.62x51 mm Tracer IR-DIM<br />Rounds: 20<br />Used in: Mk18 ABR + Kaliber: 7,62x51 mm Nyomjelző IR-DIM<br />Lőszerek: 20<br />Használható: Mk18 ABR + Kaliber: 7,62x51 mm Leuchtspur IR-DIM<br />Patronen: 20<br />Eingesetzt von: EBR + Calibre: 7,62x51 mm Trazadoras IR-DIM<br />Balas: 20<br />Se usa en: Mk18 ABR + Calibre: 7,62x51 mm Traçantes IR-DIM<br />Cartouches: 20<br />Utilisé dans: EBR + Kaliber: 7,62 x 51 mm Smugacz IR-DIM<br />Pociski: 20<br />Używane w: Mk18 ABR + Ráže: 7.62x51 mm Svítící IR-DIM<br />Munice: 20<br />Použití: Mk18 ABR + Calibre: 7,62x51 mm Traçante IR-DIM<br />Projéteis: 20<br />Usado em: Mk18 ABR + Calibro: 7.62x51 mm Traccianti IR-DIM<br />Munizioni: 20<br />In uso su: Mk18 ABR + Калибр: 7.62x51 мм трассирующие под ПНВ<br />Патронов: 20<br />Применимы в: Mk18 ABR + + + 7.62mm 20Rnd SD Mag + 7,62 mm Hangtompítós 20-as Tár + 7,62 mm 20-Schuss-Magazin SD + Cargador de 20 balas SD de 7,62mm + Ch. 7,62mm 20Cps SD + Magazynek 7,62mm 20rd SD + 7.62mm 20ks SD Zásobník + Carregador de 20 projéteis SD de 7,62mm + Caricatore 7.62mm 20Rnd Sil. + Магазин из 20-ти 7.62 мм дозвуковых + + + 7.62mm SD + 7,62 mm Hangtompítós + 7,62mm SD + 7,62mm SD + 7,62mm SD + 7,62mm SD + 7.62mm SD + 7,62mm SD + 7.62mm Sil. + 7.62 мм дозвуковые + + + Caliber: 7.62x51 mm SD<br />Rounds: 20<br />Used in: Mk18 ABR + Kaliber: 7,62x51 mm Hangtompítós<br />Lőszerek: 20<br />Használható: Mk18 ABR + Kaliber: 7,62x51 mm SD<br />Patronen: 20<br />Eingesetzt von: EBR + Calibre: 7,62x51 mm SD<br />Balas: 20<br />Se usa en: Mk18 ABR + Calibre: 7,62x51 mm SD<br />Cartouches: 20<br />Utilisé dans: EBR + Kaliber: 7,62 x 51 mm SD<br />Pociski: 20<br />Używane w: Mk18 ABR + Ráže: 7.62x51 mm SD<br />Munice: 20<br />Použití: Mk18 ABR + Calibre: 7,62x51 mm SD<br />Projéteis: 20<br />Usado em: Mk18 ABR + Calibro: 7.62x51 mm Sil.<br />Munizioni: 20<br />In uso su: Mk18 ABR + Калибр: 7.62x51 мм дозвуковые<br />Патронов: 20<br />Применимы в: Mk18 ABR + + + 7.62mm 20Rnd AP Mag + 7,62 mm Páncéltörő 20-as Tár + 7,62 mm 20-Schuss-Magazin AP + Cargador de 20 balas AP de 7,62mm + Ch. 7,62mm 20Cps AP + Magazynek 7,62mm 20rd AP + 7.62mm 20ks AP Zásobník + Carregador de 20 projéteis AP de 7,62mm + Caricatore 7.62mm 20Rnd AP + Магазин из 20-ти 7.62 мм бронебойных + + + 7.62mm AP + 7,62 mm Páncéltörő + 7,62mm AP + 7,62mm AP + 7,62mm AP + 7,62mm AP + 7.62mm AP + 7,62mm AP + 7.62mm AP + 7.62 мм бронебойные + + + Caliber: 7.62x51 mm AP<br />Rounds: 20<br />Used in: Mk18 ABR + Kaliber: 7,62x51 mm Páncéltörő<br />Lőszerek: 20<br />Használható: Mk18 ABR + Kaliber: 7,62x51 mm AP<br />Patronen: 20<br />Eingesetzt von: EBR + Calibre: 7,62x51 mm AP<br />Balas: 20<br />Se usa en: Mk18 ABR + Calibre: 7,62x51 mm AP<br />Cartouches: 20<br />Utilisé dans: EBR + Kaliber: 7,62 x 51 mm AP<br />Pociski: 20<br />Używane w: Mk18 ABR + Ráže: 7.62x51 mm AP<br />Munice: 20<br />Použití: Mk18 ABR + Calibre: 7,62x51 mm AP<br />Projéteis: 20<br />Usado em: Mk18 ABR + Calibro: 7.62x51 mm AP<br />Munizioni: 20<br />In uso su: Mk18 ABR + Калибр: 7.62x51 мм дозвуковые<br />Патронов: 20<br />Применимы в: Mk18 ABR + + + Caliber: 7.62x51mm M118LR<br />Rounds: 20<br />Type: M14 + Kaliber: 7,62x51 mm M118LR<br />Lőszerek: 20<br />Típus: M14 + Kaliber: 7,62x51mm M118LR<br />Schuss: 20<br />Typ: M14 + Calibre: 7,62x51mm M118LR<br />Balas: 20<br />Tipo: M14 + Kaliber: 7,62 x 51 mm M118LR<br />Pociski: 20<br />Typ: M14 + Kalibr: 7.62x51mm M118LR<br />Náboje: 20<br />Typ: M14 + Calibre : 7,62x51mm M118LR<br />Cartouches: 20<br />Type: M14 + Calibre: 7,62x51mm M118LR<br />Projéteis: 20<br />Tipo: M14 + Калибр: 7.62x51mm M118LR<br />Патронов: 20<br />Тип: M14 + Calibro: 7.62x51mm M118LR<br />Munizioni:20<br />In uso su: M14 + + + + .338 LM 10Rnd Tracer Mag + .338 LM 10-Schuss-Magazin Leuchtspur + Magazynek .338 LM 10rd Smugacz + + + .338 LM Tracer + .338 LM Leuchtspur + .338 LM Smugacz + + + Caliber: .338 Lapua Magnum Tracer<br />Rounds: 10<br />Used in: MAR-10 + Kaliber: .338 Lapua Magnum Leuchtspur<br />Schuss: 10<br />Verwendet für: MAR-10 + Kaliber: .338 Lapua Magnum Smugacz<br />Pociski: 10<br />Używane w: MAR-10 + + + .338 LM 10Rnd IR-DIM Mag + .338 LM 10-Schuss-Magazin Leuchtspur IR-DIM + Magazynek .338 LM 10rd IR-DIM + + + .338 LM IR-DIM + .338 LM IR-DIM + .338 LM IR-DIM + + + Caliber: .338 Lapua Magnum Tracer IR-DIM<br />Rounds: 10<br />Used in: MAR-10 + Kaliber: .338 Lapua Magnum Leuchtspur IR-DIM<br />Schuss: 10<br />Verwendet für: MAR-10 + Kaliber: .338 Lapua Magnum Smugacz IR-DIM<br />Pociski: 10<br />Używane w: MAR-10 + + + .338 LM 10Rnd AP Mag + .338 LM 10-Schuss-Magazin Hartkern + Magazynek .338 LM 10rd AP + + + .338 LM AP + .338 LM AP + .338 LM AP + + + Caliber: .338 Lapua Magnum AP<br />Rounds: 10<br />Used in: MAR-10 + Kaliber: .338 Lapua Magnum Hartkern<br />Schuss: 10<br />Verwendet für: MAR-10 + Kaliber: .338 Lapua Magnum AP<br />Pociski: 10<br />Używany w: MAR-10 + + + .338 LM 10Rnd SD Mag + .338 LM 10-Schuss-Magazin Unterschall + Magazynek .338 LM 10rd SD + + + .338 LM SD + .338 LM SD + .338 LM SD + + + Caliber: .338 Lapua Magnum SD<br />Rounds: 10<br />Used in: MAR-10 + Kaliber: .338 Lapua Magnum Unterschall<br />Schuss: 10<br />Verwendet für: MAR-10 + Kaliber: .338 Lapua Magnum SD<br />Pociski: 10<br />Używany w: MAR-10 + + + + .338 NM 130Rnd Tracer Belt + .338 NM 130-Schuss-Gurt Leuchtspur + Taśma .338 NM 130rd Smugacz + + + .338 NM Tracer + .338 NM Leuchtspur + .338 NM Tracer + + + Caliber: .338 Norma Magnum Tracer<br />Rounds: 130<br />Used in: SPMG + Kaliber: .338 Norma Magnum Leuchtspur<br />Schuss: 130<br />Verwendet für: SPMG + Kaliber: .338 Norma Magnum Smugacz<br />Pociski: 130<br />Używany w: SPMG + + + .338 NM 130Rnd IR-DIM Belt + .338 NM 130-Schuss-Gurt Leuchtspur IR-DIM + Taśma .338 NM 130rd IR-DIM + + + .338 NM IR-DIM + .338 LM IR-DIM + .338 NM IR-DIM + + + Caliber: .338 Norma Magnum Tracer IR-DIM<br />Rounds: 130<br />Used in: SPMG + Kaliber: .338 Norma Magnum Leuchtspur IR-DIM<br />Schuss: 130<br />Verwendet für: SPMG + Kaliber: .338 Norma Magnum Smugacz IR-DIM<br />Pociski: 130<br />Używany w: SPMG + + + .338 NM 130Rnd AP Belt + .338 NM 130-Schuss-Gurt Hartkern + Taśma .338 NM 130rd AP + + + .338 NM AP + .338 NM AP + .338 NM AP + + + Caliber: .338 Norma Magnum AP<br />Rounds: 130<br />Used in: SPMG + Kaliber: .338 Norma Magnum Hartkern<br />Schuss: 130<br />Verwendet für: SPMG + Kaliber: .338 Norma Magnum AP<br />Pociski: 130<br />Używane w: SPMG + + + + 9.3mm 10Rnd Tracer Mag + 9,3mm 10-Schuss-Magazin Leuchtspur + Magazynek 9.3mm 10rd Smugacz + + + 9.3mm Tracer + 9,3mm Leuchtspur + 9,3mm Smugacz + + + Caliber: 9.3x64mm Tracer<br />Rounds: 10<br />Used in: Cyrus + Kaliber: 9,3x64mm Leuchtspur<br />Schuss: 10<br />Verwendet für: Cyrus + Kaliber: 9,3 x 64 mm Smugacz<br />Pociski: 10<br />Używany w: Cyrus + + + 9.3mm 10Rnd Tracer IR-DIM Mag + 9,3mm 10-Schuss-Magazin Leuchtspur IR-DIM + Magazynek 9,3mm 10rd Smugacz IR-DIM + + + 9.3mm IR-DIM + 9,3mm IR-DIM + 9,3mm IR-DIM + + + Caliber: 9.3x64mm Tracer IR-DIM<br />Rounds: 10<br />Used in: Cyrus + Kaliber: 9,3x64mm Leuchtspur IR-DIM<br />Schuss: 10<br />Verwendet für: Cyrus + Kaliber: 9,3 x 64 mm Smugacz IR-DIM<br />Pociski: 10<br />Używany w: Cyrus + + + 9.3mm 10Rnd AP Mag + 9,3mm 10-Schuss-Magazin Hartkern + Magazynek 9,3mm 10rd AP + + + 9.3mm AP + 9,3mm AP + 9,3mm AP + + + Caliber: 9.3x64mm AP<br />Rounds: 10<br />Used in: Cyrus + Kaliber: 9,3x64mm Hartkern<br />Schuss: 10<br />Verwendet für: Cyrus + Kaliber: 9,3 x 64 mm AP<br />Pociski: 10<br />Używany w: Cyrus + + + 9.3mm 10Rnd SD Mag + 9,3mm 10-Schuss-Magazin Unterschall + Magazynek 9,3mm 10rd SD + + + 9.3mm SD + 9,3mm SD + 9,3mm SD + + + Caliber: 9.3x64mm SD<br />Rounds: 10<br />Used in: Cyrus + Kaliber: 9,3x64mm Unterschall<br />Schuss: 10<br />Verwendet für: Cyrus + Kaliber: 9,3 x 64 mm SD<br />Pociski: 10<br />Używany w: Cyrus + + + + 9.3mm 150Rnd Tracer Belt + 9,3mm 150-Schuss-Gurt Leuchtspur + Taśma 9,3mm 150rd Smugacz + + + 9.3mm Tracer + 9,3mm Leuchtspur + 9,3mm Smugacz + + + Caliber: 9.3x64mm Tracer<br />Rounds: 150<br />Used in: Navid + Kaliber: 9,3x64mm Leuchtspur<br />Schuss: 150<br />Verwendet für: Navid + Kaliber: 9,3 x 64 mm Smugacz<br />Pociski: 150<br />Używane w: Navid + + + 9.3mm 150Rnd Tracer IR-DIM Belt + 9,3mm 150-Schuss-Gurt Leuchtspur IR-DIM + Taśma 9,3mm 150rd Smugacz IR-DIM + + + 9.3mm IR-DIM + 9,3mm IR-DIM + 9,3mm IR-DIM + + + Caliber: 9.3x64mm Tracer IR-DIM<br />Rounds: 150<br />Used in: Navid + Kaliber: 9,3x64mm Leuchtspur IR-DIM<br />Schuss: 150<br />Verwendet für: Navid + Kaliber: 9,3 x 64 mm Smugacz IR-DIM<br />Pociski: 150<br />Używane w: Navid + + + 9.3mm 150Rnd AP Belt + 9,3mm 150-Schuss-Gurt Hartkern + Taśma 9,3mm 150rd AP + + + 9.3mm AP + 9,3mm AP + 9,3mm AP + + + Caliber: 9.3x64mm AP<br />Rounds: 150<br />Used in: Navid + Kaliber: 9,3x64mm Hartkern<br />Schuss: 150<br />Verwendet für: Navid + Kaliber: 9,3 x 64 mm AP<br />Pociski: 150<br />Używane w: Navid + + \ No newline at end of file diff --git a/addons/maptools/stringtable.xml b/addons/maptools/stringtable.xml index 2e5fee49ab..bc35651ba9 100644 --- a/addons/maptools/stringtable.xml +++ b/addons/maptools/stringtable.xml @@ -1,5 +1,4 @@  - @@ -8,7 +7,7 @@ Outils de navigation Narzędzia nawigacyjne Kartenwerkzeug - Pomůcky k Mapě + Pomůcky k mapě Strumenti Cartografici Ferramentas de Mapa Térképészeti eszközök @@ -32,7 +31,7 @@ Outils de navigation Narzędzia nawigacyjne Kartenwerkzeug - Pomůcky k Mapě + Pomůcky k mapě Strumenti Cartografici Ferramentas de Mapa Térképészeti eszközök @@ -145,4 +144,4 @@ Направление: %1° - \ No newline at end of file + diff --git a/addons/medical/XEH_preInit.sqf b/addons/medical/XEH_preInit.sqf index c18a116e31..8e1fd5856f 100644 --- a/addons/medical/XEH_preInit.sqf +++ b/addons/medical/XEH_preInit.sqf @@ -102,4 +102,7 @@ GVAR(IVBags) = []; call FUNC(parseConfigForInjuries); +GVAR(HITPOINTS) = ["HitHead", "HitBody", "HitLeftArm", "HitRightArm", "HitLeftLeg", "HitRightLeg"]; +GVAR(SELECTIONS) = ["head", "body", "hand_l", "hand_r", "leg_l", "leg_r"]; + ADDON = true; diff --git a/addons/medical/functions/fnc_handleDamage.sqf b/addons/medical/functions/fnc_handleDamage.sqf index 074f8c41fa..1632a8f55b 100644 --- a/addons/medical/functions/fnc_handleDamage.sqf +++ b/addons/medical/functions/fnc_handleDamage.sqf @@ -17,7 +17,7 @@ #include "script_component.hpp" -private ["_unit", "_selection", "_damage", "_shooter", "_projectile", "_damageReturn", "_hitPoints", "_typeOfDamage"]; +private ["_unit", "_selection", "_damage", "_shooter", "_projectile", "_damageReturn", "_typeOfDamage"]; _unit = _this select 0; _selection = _this select 1; _damage = _this select 2; @@ -32,8 +32,7 @@ if (typeName _projectile == "OBJECT") then { }; // If the damage is being weird, we just tell it to fuck off. -_hitSelections = ["head", "body", "hand_l", "hand_r", "leg_l", "leg_r"]; -if !(_selection in (_hitSelections + [""])) exitWith {0}; +if !(_selection in (GVAR(SELECTIONS) + [""])) exitWith {0}; _damageReturn = _damage; if (GVAR(level) < 2) then { @@ -46,8 +45,7 @@ if (GVAR(level) >= 2) then { // lets use basic for the time being.. _damageReturn = _this call FUNC(handleDamage_basic); }; - - [_unit, _selection, _damage, _source, _projectile] call FUNC(handleDamage_caching); + _newDamage = _this call FUNC(handleDamage_caching); if (_damageReturn > 0.9) then { @@ -59,12 +57,6 @@ if (GVAR(level) >= 2) then { _minLethalDamage = GVAR(minLethalDamages) select _typeIndex; }; - _hitPoints = ["HitHead", "HitBody", "HitLeftArm", "HitRightArm", "HitLeftLeg", "HitRightLeg"]; - _newDamage = _damage - (damage _unit); - if (_selection in _hitSelections) then { - _newDamage = _damage - (_unit getHitPointDamage (_hitPoints select (_hitSelections find _selection))); - }; - if ((_minLethalDamage <= _newDamage) && {[_unit, [_selection] call FUNC(selectionNameToNumber), _newDamage] call FUNC(determineIfFatal)} && {_selection in ["", "head", "body"]}) then { if ([_unit] call FUNC(setDead)) then { _damageReturn = 1; diff --git a/addons/medical/functions/fnc_handleDamage_advanced.sqf b/addons/medical/functions/fnc_handleDamage_advanced.sqf index 751896be44..ba0eb8af24 100644 --- a/addons/medical/functions/fnc_handleDamage_advanced.sqf +++ b/addons/medical/functions/fnc_handleDamage_advanced.sqf @@ -25,21 +25,21 @@ _selectionName = _this select 1; _amountOfDamage = _this select 2; _sourceOfDamage = _this select 3; _typeOfProjectile = _this select 4; +_newDamage = _this select 5; // Most likely taking exessive fire damage. Lets exit. -if (isNull _sourceOfDamage && (_selectionName == "head" || isBurning _unit) && _typeOfProjectile == "" && vehicle _unit == _unit) exitwith { +if (isNull _sourceOfDamage && {_typeOfProjectile == ""} && {vehicle _unit == _unit} && {(_selectionName == "head" || isBurning _unit)}) exitwith { 0 }; - _typeOfDamage = [_typeOfProjectile] call FUNC(getTypeOfDamage); _part = [_selectionName] call FUNC(selectionNameToNumber); _hitPoints = ["HitHead", "HitBody", "HitLeftArm", "HitRightArm", "HitLeftLeg", "HitRightLeg"]; // Sorting out the damage _damageBodyParts = _unit getvariable [QGVAR(bodyPartStatus), [0,0,0,0,0,0]]; -_newDamage = _amountOfDamage - (_unit getHitPointDamage (_hitPoints select _part)); _damageBodyParts set [_part, (_damageBodyParts select _part) + _newDamage]; _unit setvariable [QGVAR(bodyPartStatus), _damageBodyParts, true]; + [_unit] call FUNC(handleDamage_advancedSetDamage); [_unit, _selectionName, _newDamage, _typeOfProjectile, _typeOfDamage] call FUNC(handleDamage_wounds); diff --git a/addons/medical/functions/fnc_handleDamage_advancedSetDamage.sqf b/addons/medical/functions/fnc_handleDamage_advancedSetDamage.sqf index 74db6029d2..f464ef5a94 100644 --- a/addons/medical/functions/fnc_handleDamage_advancedSetDamage.sqf +++ b/addons/medical/functions/fnc_handleDamage_advancedSetDamage.sqf @@ -16,9 +16,7 @@ private ["_unit", "_bodyStatus", "_headDamage", "_torsoDamage", "_handsDamage", "_legsDamage"]; _unit = _this select 0; -if (!local _unit) exitwith { - // execute only local -}; +if (!local _unit) exitwith {}; _bodyStatus = _unit getvariable [QGVAR(bodyPartStatus),[0,0,0,0,0,0]]; // ["head", "body", "hand_l", "hand_r", "leg_l", "leg_r"] diff --git a/addons/medical/functions/fnc_handleDamage_basic.sqf b/addons/medical/functions/fnc_handleDamage_basic.sqf index 2986e1b2f7..aa9c2f61df 100644 --- a/addons/medical/functions/fnc_handleDamage_basic.sqf +++ b/addons/medical/functions/fnc_handleDamage_basic.sqf @@ -42,15 +42,25 @@ if (diag_frameno > (_unit getVariable [QGVAR(frameNo), -3]) + 2) then { _unit setVariable [QGVAR(damages), []]; _unit setVariable [QGVAR(structDamage), 0]; _unit setVariable [QGVAR(preventDeath), false]; + // Assign orphan structural damage to torso + [{ + private ["_unit", "_damagesum"]; + _unit = _this select 0; + _damagesum = (_unit getHitPointDamage "HitHead") + + (_unit getHitPointDamage "HitBody") + + (_unit getHitPointDamage "HitLeftArm") + + (_unit getHitPointDamage "HitRightArm") + + (_unit getHitPointDamage "HitLeftLeg") + + (_unit getHitPointDamage "HitRightLeg"); + if (_damagesum < 0.06 and damage _unit > 0.06 and alive _unit) then { + _unit setHitPointDamage ["HitBody", damage _unit]; + }; + }, [_unit], 2, 0.1] call EFUNC(common,waitAndExecute); }; - -_hitSelections = ["head", "body", "hand_l", "hand_r", "leg_l", "leg_r"]; -_hitPoints = ["HitHead", "HitBody", "HitLeftArm", "HitRightArm", "HitLeftLeg", "HitRightLeg"]; - _newDamage = _damage - (damage _unit); -if (_selectionName in _hitSelections) then { - _newDamage = _damage - (_unit getHitPointDamage (_hitPoints select (_hitSelections find _selectionName))); +if (_selectionName in GVAR(SELECTIONS)) then { + _newDamage = _damage - (_unit getHitPointDamage (GVAR(HITPOINTS) select (GVAR(SELECTIONS) find _selectionName))); }; _damage = _damage - _newDamage; @@ -61,7 +71,7 @@ if (((velocity _unit) select 2 < -5) and (vehicle _unit == _unit)) then { _unit setVariable [QGVAR(isFalling), true]; }; if (_unit getVariable [QGVAR(isFalling), false] and !(_selectionName in ["", "leg_l", "leg_r"])) exitWith { - (_unit getHitPointDamage (_hitPoints select (_hitSelections find _selectionName))) max 0.01; + (_unit getHitPointDamage (GVAR(HITPOINTS) select (GVAR(SELECTIONS) find _selectionName))) max 0.01; }; if (_unit getVariable [QGVAR(isFalling), false]) then { _newDamage = _newDamage * 0.7; @@ -85,12 +95,12 @@ if (_selectionName != "" and !(_unit getVariable QGVAR(isFalling))) then { // Make entry unfindable _cache_projectiles set [_index, objNull]; _cache_projectiles pushBack _projectile; - _cache_hitpoints pushBack (_hitPoints select (_hitSelections find _selectionName)); + _cache_hitpoints pushBack (GVAR(HITPOINTS) select (GVAR(SELECTIONS) find _selectionName)); _cache_damages pushBack _newDamage; }; } else { _cache_projectiles pushBack _projectile; - _cache_hitpoints pushBack (_hitPoints select (_hitSelections find _selectionName)); + _cache_hitpoints pushBack (GVAR(HITPOINTS) select (GVAR(SELECTIONS) find _selectionName)); _cache_damages pushBack _newDamage; }; _unit setVariable [QGVAR(projectiles), _cache_projectiles]; @@ -109,30 +119,12 @@ if (_selectionName == "") then { }; }; - -// Assign orphan structural damage to torso -[{ - private ["_unit", "_damagesum"]; - _unit = _this select 0; - _damagesum = (_unit getHitPointDamage "HitHead") + - (_unit getHitPointDamage "HitBody") + - (_unit getHitPointDamage "HitLeftArm") + - (_unit getHitPointDamage "HitRightArm") + - (_unit getHitPointDamage "HitLeftLeg") + - (_unit getHitPointDamage "HitRightLeg"); - if (_damagesum < 0.06 and damage _unit > 0.06 and alive _unit) then { - _unit setHitPointDamage ["HitBody", damage _unit]; - }; -}, [_unit], 2, 0.1] call EFUNC(common,waitAndExecute); - - if (_selectionName == "") then { _damage = _damage + (_unit getVariable QGVAR(structDamage)); } else { _damage = _damage + _newDamage; }; - // Leg Damage _legdamage = (_unit getHitPointDamage "HitLeftLeg") + (_unit getHitPointDamage "HitRightLeg"); if (_selectionName == "leg_l") then { @@ -143,9 +135,9 @@ if (_selectionName == "leg_r") then { }; if (_legdamage >= LEGDAMAGETRESHOLD1) then { - if (_unit getHitPointDamage "HitLegs" != 1) then {_unit setHitPointDamage ["HitLegs", 1]}; + _unit setHitPointDamage ["HitLegs", 1]; } else { - if (_unit getHitPointDamage "HitLegs" != 0) then {_unit setHitPointDamage ["HitLegs", 0]}; + _unit setHitPointDamage ["HitLegs", 0]; }; // @todo: force prone for completely fucked up legs. @@ -160,9 +152,9 @@ if (_selectionName == "hand_r") then { }; if (_armdamage >= ARMDAMAGETRESHOLD1) then { - if (_unit getHitPointDamage "HitHands" != 1) then {_unit setHitPointDamage ["HitHands", 1]}; + _unit setHitPointDamage ["HitHands", 1]; } else { - if (_unit getHitPointDamage "HitHands" != 0) then {_unit setHitPointDamage ["HitHands", 0]}; + _unit setHitPointDamage ["HitHands", 0]; }; // @todo: Drop weapon for full damage. @@ -174,7 +166,6 @@ if (_selectionName == "") then { _unit setVariable [QGVAR(pain), _pain min 1, true]; }; - // Unconsciousness if (_selectionName == "" and _damage >= UNCONSCIOUSNESSTRESHOLD and diff --git a/addons/medical/functions/fnc_handleDamage_caching.sqf b/addons/medical/functions/fnc_handleDamage_caching.sqf index ddd0b6c920..98b2373c74 100644 --- a/addons/medical/functions/fnc_handleDamage_caching.sqf +++ b/addons/medical/functions/fnc_handleDamage_caching.sqf @@ -25,8 +25,8 @@ _damage = _this select 2; _source = _this select 3; _projectile = _this select 4; -_hitSelections = ["head", "body", "hand_l", "hand_r", "leg_l", "leg_r"]; -_hitPoints = ["HitHead", "HitBody", "HitLeftArm", "HitRightArm", "HitLeftLeg", "HitRightLeg"]; +_hitSelections = GVAR(SELECTIONS); +_hitPoints = GVAR(HITPOINTS); // Calculate change in damage. _newDamage = _damage - (damage _unit); @@ -34,18 +34,10 @@ if (_selectionName in _hitSelections) then { _newDamage = _damage - (_unit getHitPointDamage (_hitPoints select (_hitSelections find _selectionName))); }; - -// we want to move damage to another selection; have to do it ourselves. -// this is only the case for limbs, so this will not impact the killed EH. -if (_selectionName != (_this select 1)) then { - _unit setHitPointDamage [_hitPoints select (_hitSelections find _selectionName), _damage + _newDamage]; - _newDamage = 0; -}; -// ?????? -_damage = _damage + _newDamage; +//_damage = _damage + _newDamage; // Check for vehicle crash -if (vehicle _unit != _unit && !(vehicle _unit isKindOf "StaticWeapon") && {isNull _source} && {_projectile == ""} && {_selectionName == ""}) then { +if (vehicle _unit != _unit && {!(vehicle _unit isKindOf "StaticWeapon")} && {isNull _source} && {_projectile == ""} && {_selectionName == ""}) then { if (missionNamespace getvariable [QGVAR(allowVehicleCrashDamage), true]) then { _selectionName = _hitSelections select (floor(random(count _hitSelections))); _projectile = "vehiclecrash"; @@ -54,10 +46,11 @@ if (vehicle _unit != _unit && !(vehicle _unit isKindOf "StaticWeapon") && {isNul // From AGM medical: // Exclude falling damage to everything other than legs; reduce structural damage. -if (((velocity _unit) select 2 < -5) && (vehicle _unit == _unit)) then { +if (((velocity _unit) select 2 < -5) && {(vehicle _unit == _unit)}) then { _unit setVariable [QGVAR(isFalling), True]; }; -if (_unit getVariable [QGVAR(isFalling), false] && !(_selectionName in ["", "leg_l", "leg_r"])) exitWith {}; + +if (_unit getVariable [QGVAR(isFalling), false] && {!(_selectionName in ["", "leg_l", "leg_r"])}) exitWith {}; if (_unit getVariable [QGVAR(isFalling), false]) then { _newDamage = _newDamage * 0.7; }; @@ -69,21 +62,16 @@ if (diag_frameno > (_unit getVariable [QGVAR(frameNo_damageCaching), -3]) + 2) t // handle the cached damages 3 frames later [{ - private ["_args","_unit","_frameNo"]; + private ["_args", "_params"]; _args = _this select 0; - _unit = _args select 0; - _frameNo = _args select 1; - if (diag_frameno > _frameNo + 2) then { - _cache_projectiles = _unit getVariable [QGVAR(cachedProjectiles), []]; - _cache_hitpoints = _unit getVariable [QGVAR(cachedHitPoints), []]; - _cache_damages = _unit getVariable [QGVAR(cachedDamages), []]; - _cache_params = _unit getVariable [QGVAR(cachedHandleDamageParams), []]; + if (diag_frameno > (_args select 1) + 2) then { + _cache_params = (_args select 0) getVariable [QGVAR(cachedHandleDamageParams), []]; + _cache_damages = (_args select 0) getVariable QGVAR(cachedDamages); { - if (typeName _x == typeName "") then { - (_cache_params select _foreachIndex) call FUNC(handleDamage_advanced); - }; - }foreach _cache_projectiles; + _params = _x + [_cache_damages select _foreachIndex]; + _params call FUNC(handleDamage_advanced); + }foreach _cache_params; [(_this select 1)] call cba_fnc_removePerFrameHandler; }; }, 0, [_unit, diag_frameno] ] call CBA_fnc_addPerFrameHandler; @@ -94,52 +82,54 @@ if (diag_frameno > (_unit getVariable [QGVAR(frameNo_damageCaching), -3]) + 2) t _unit setVariable [QGVAR(cachedHandleDamageParams), []]; }; -// Make sure there's only one damaged selection per projectile per frame. -_cache_projectiles = _unit getVariable QGVAR(cachedProjectiles); -_cache_hitpoints = _unit getVariable QGVAR(cachedHitPoints); -_cache_damages = _unit getVariable QGVAR(cachedDamages); -_cache_params = _unit getVariable QGVAR(cachedHandleDamageParams); - // Caching of the damage events if (_selectionName != "") then { - + _cache_projectiles = _unit getVariable QGVAR(cachedProjectiles); + private ["_index","_otherDamage"]; + _index = _cache_projectiles find _projectile; // Check if the current projectile has already been handled once - if (_projectile in _cache_projectiles) then { - private ["_index","_otherDamage"]; - // if it has been handled, find the index in the cache - _index = _cache_projectiles find _projectile; - + if (_index >= 0) exitwith { + _cache_damages = _unit getVariable QGVAR(cachedDamages); // Find the previous damage this projectile has done _otherDamage = (_cache_damages select _index); // Take the highest damage of the two - if (_otherDamage > _newDamage) then { - _newDamage = 0; - } else { + if (_newDamage > _otherDamage) then { + _cache_params = _unit getVariable QGVAR(cachedHandleDamageParams); + _cache_hitpoints = _unit getVariable QGVAR(cachedHitPoints); + private ["_hitPoint", "_restore"]; // Restore the damage before the previous damage was processed _hitPoint = _cache_hitpoints select _index; _restore = ((_unit getHitPointDamage _hitPoint) - _otherDamage) max 0; _unit setHitPointDamage [_hitPoint, _restore]; - // Make entry unfindable and add the new damage cache - _cache_projectiles set [_index, objNull]; - _cache_projectiles pushBack _projectile; - _cache_hitpoints pushBack (_hitPoints select (_hitSelections find _selectionName)); - _cache_damages pushBack _newDamage; - _cache_params pushBack [_unit, _selectionName, _damage, _source, _projectile]; + _cache_hitpoints set [_index, (_hitPoints select (_hitSelections find _selectionName))]; + _cache_damages set [_index, _newDamage]; + _cache_params set[_index, _this]; + + _unit setVariable [QGVAR(cachedProjectiles), _cache_projectiles]; + _unit setVariable [QGVAR(cachedHitPoints), _cache_hitpoints]; + _unit setVariable [QGVAR(cachedDamages), _cache_damages]; + _unit setVariable [QGVAR(cachedHandleDamageParams), _cache_params]; }; - } else { - // This is an unhandled projectile - _cache_projectiles pushBack _projectile; - _cache_hitpoints pushBack (_hitPoints select (_hitSelections find _selectionName)); - _cache_damages pushBack _newDamage; - _cache_params pushBack [_unit, _selectionName, _damage, _source, _projectile]; }; + + _cache_hitpoints = _unit getVariable QGVAR(cachedHitPoints); + _cache_damages = _unit getVariable QGVAR(cachedDamages); + _cache_params = _unit getVariable QGVAR(cachedHandleDamageParams); + + // This is an unhandled projectile + _cache_projectiles pushBack _projectile; + _cache_hitpoints pushBack (_hitPoints select (_hitSelections find _selectionName)); + _cache_damages pushBack _newDamage; + _cache_params pushBack _this; + + // Store the new cached values + _unit setVariable [QGVAR(cachedProjectiles), _cache_projectiles]; + _unit setVariable [QGVAR(cachedHitPoints), _cache_hitpoints]; + _unit setVariable [QGVAR(cachedDamages), _cache_damages]; + _unit setVariable [QGVAR(cachedHandleDamageParams), _cache_params]; }; -// Store the new cached values -_unit setVariable [QGVAR(cachedProjectiles), _cache_projectiles]; -_unit setVariable [QGVAR(cachedHitPoints), _cache_hitpoints]; -_unit setVariable [QGVAR(cachedDamages), _cache_damages]; -_unit setVariable [QGVAR(cachedHandleDamageParams), _cache_params]; +_newDamage; diff --git a/addons/medical/functions/fnc_handleDamage_wounds.sqf b/addons/medical/functions/fnc_handleDamage_wounds.sqf index 1eebe038cd..5933651e57 100644 --- a/addons/medical/functions/fnc_handleDamage_wounds.sqf +++ b/addons/medical/functions/fnc_handleDamage_wounds.sqf @@ -52,10 +52,10 @@ _allPossibleInjuries = []; // Check if the damage is higher as the min damage for the specific injury if (_damage >= _minDamage && {_damage <= _maxDamage || _maxDamage < 0}) then { - _classType = _x select 0; + //_classType = _x select 0; _selections = _x select 1; - _bloodLoss = _x select 2; - _pain = _x select 3; + //_bloodLoss = _x select 2; + //_pain = _x select 3; // Check if the injury can be applied to the given selection name if ("All" in _selections || _selectionName in _selections) then { @@ -73,9 +73,7 @@ _allPossibleInjuries = []; }foreach _allInjuriesForDamageType; // No possible wounds available for this damage type or damage amount. -if (_highestPossibleSpot < 0) exitwith { - -}; +if (_highestPossibleSpot < 0) exitwith {}; // Administration for open wounds and ids _openWounds = _unit getvariable[QGVAR(openWounds), []]; @@ -125,7 +123,7 @@ _woundsCreated = []; _painToAdd = _painToAdd + (_toAddInjury select 3); }; }; -}foreach (_injuryTypeInfo select 0); +}foreach (_injuryTypeInfo select 0); // foreach damage thresholds _unit setvariable [QGVAR(openWounds), _openWounds, !USE_WOUND_EVENT_SYNC]; diff --git a/addons/medical/functions/fnc_setUnconscious.sqf b/addons/medical/functions/fnc_setUnconscious.sqf index e373901610..89ab5ee3b3 100644 --- a/addons/medical/functions/fnc_setUnconscious.sqf +++ b/addons/medical/functions/fnc_setUnconscious.sqf @@ -52,7 +52,7 @@ if (animationState _unit in ["ladderriflestatic","laddercivilstatic"]) then { }; if (vehicle _unit == _unit) then { if (primaryWeapon _unit == "") then { - _unit addWeapon "ACE_fakeWeapon"; + _unit addWeapon "ACE_FakePrimaryWeapon"; }; _unit selectWeapon (primaryWeapon _unit); _unit switchMove ""; @@ -67,7 +67,8 @@ _unit setUnitPos "DOWN"; [_unit, true] call EFUNC(common,disableAI); // So the AI does not get stuck, we are moving the unit to a temp group on its own. -[_unit, true, "ACE_isUnconscious", side group _unit] call EFUNC(common,switchToGroupSide); +//Unconscious units shouldn't be put in another group #527: +// [_unit, true, "ACE_isUnconscious", side group _unit] call EFUNC(common,switchToGroupSide); [_unit, QGVAR(unconscious), true] call EFUNC(common,setCaptivityStatus); [_unit, [_unit] call EFUNC(common,getDeathAnim), 1, true] call EFUNC(common,doAnimation); @@ -114,7 +115,8 @@ _startingTime = time; [_unit, QGVAR(unconscious), false] call EFUNC(common,setCaptivityStatus); // Swhich the unit back to its original group - [_unit, false, "ACE_isUnconscious", side group _unit] call EFUNC(common,switchToGroupSide); + //Unconscious units shouldn't be put in another group #527: + // [_unit, false, "ACE_isUnconscious", side group _unit] call EFUNC(common,switchToGroupSide); [_unit, false] call EFUNC(common,disableAI); _unit setUnitPos _originalPos; // This is not position but stance (DOWN, MIDDLE, UP) diff --git a/addons/medical/stringtable.xml b/addons/medical/stringtable.xml index bb31db88bb..f1ceccb1cb 100644 --- a/addons/medical/stringtable.xml +++ b/addons/medical/stringtable.xml @@ -4,17 +4,20 @@ Inject Atropine Atropin injizieren - Inyectar atropina + Inyectar Atropina Ввести атропин + Aplikovat atropin + Wstrzyknij atropinę + Injecter de l'atropine Inject Epinephrine Epinephrine injizieren Inyectar Epinefrina - Wtrzyknij adrenalinę - Aplikovat Adrenalin + Wstrzyknij adrenalinę + Aplikovat adrenalin Ввести андреналил - Adrénaline + Injecter de l'épinéphrine Adrenalin Injetar Epinefrina Inietta Epinefrina @@ -24,7 +27,7 @@ Morphin injizieren Inyectar Morfina Wstrzyknij morfinę - Aplikovat Morfin + Aplikovat morfin Ввести морфин Morphine Morfium @@ -48,18 +51,27 @@ Plasmatransfusion Transfundir plasma Перелить плазму + Transfúze plazmy + Przetocz osocze + Transfuser du Plasma Transfuse Saline Salzlösungtransfusion - Transfundir salina + Transfundir salino Влить физраствор + Transfúze fyziologický roztoku + Przetocz solankę + Transfuser de la Saline Apply Tourniquet Aderpresse anwenden Aplicar torniquete Наложить жгут + Aplikovat škrtidlo + Załóż stazę + Appliquer un garrot Bandage @@ -150,7 +162,7 @@ Morphin injizieren ... Inyectando Morfina ... Wstrzykiwanie morfiny ... - Aplikuju Morfin ... + Aplikuji morfin ... Введение морфина... Injection de Morphine... Morfium beadása... @@ -162,7 +174,7 @@ Epinephrin injizieren ... Inyectando Epinefrina ... Wstrzykiwanie adrenaliny ... - Aplikuju Adrenalin ... + Aplikuji adrenalin ... Введение андреналина ... Injection d'Adrénaline ... Adrenalin beadása... @@ -172,12 +184,16 @@ Injecting Atropine ... Atropin injizieren ... + Inyectando Atropina ... Введение атропина ... + Aplikuji atropin ... + Wstrzykiwanie atropiny ... + Injection d'Atropine ... Transfusing Blood ... Bluttransfusion ... - Realizando transfusión ... + Transfusión de sangre ... Przetaczanie krwi ... Probíhá transfúze krve ... Переливание крови... @@ -189,14 +205,20 @@ Transfusing Saline ... Sallösungtransfusion ... - Transfusión de salina ... + Transfusión de salino ... Вливание физраствора ... + Probíha transfúze fyziologický roztoku ... + Przetaczanie solanki ... + Transfusion de saline ... Transfusing Plasma ... Plasmatransfusion ... Transfusión de plasma ... Переливание плзмы ... + Probíha transfúze plazmy ... + Przetaczanie osocza ... + Transfusion de Plasma ... Bandaging ... @@ -208,13 +230,16 @@ Sto applicando la benda ... Bekötözés... Atando ... - Перевязывание ... + Перевязывание.... Applying Tourniquet ... Setze Aderpresse an ... Aplicando torniquete ... Наложение жгута ... + Aplikuji škrtidlo + Zakładanie stazy ... + Mise en place du garrot Medical @@ -229,146 +254,202 @@ Field Dressing - Notverband + Verbandpäckchen Compresa de campaña Бинтовая повязка + Obinadlo + Bandaż jałowy + Bandage rapide Packing Bandage - Verband + Mullbinde Vendaje compresivo Компресионный пакет + Bandaż uciskowy Elastic Bandage - Elastische Binde + Elastischer Verband Vendaje elástico Давящая повязка + Elastické obinadlo + Bandaż elastyczny + Bandage Élastique QuikClot QuikClot QuikClot QuickClot + Opatrunek QuikClot Check Pulse Puls überprüfen Comprobar pulso Проверить пульс + Zkontrolovat pulz + Sprawdź tętno + Vérifier les pulsations Check Blood Pressure Blutdruck überprüfen Comprobar presión arterial Проверить кровяное давление + Zkontrolovat krevní tlak + Sprawdź ciśnienie krwi + Vérifier la pression sanguine Triage Card Verletztenanhängekarte Tarjeta de triaje Медкарта + Karta segregacyjna Tourniquet Aderpresse Torniquete Жгут + Škrtidlo + Staza + Garrot Remove Tourniquet - Entferne Aderpresse + Aderpresse entfernen Quitar torniquete Снять жгут + Sundat škrtidlo + Zdejmij stazę + Enlever le garrot Give Blood IV (1000ml) - Gebe Blut IV (1000ml) + Bluttransfusion IV (1000ml) Dar Sangre IV (1000ml) Дать кровь для в/в вливания (1000 мл) + Podaj krew IV (1000ml) + Mettre une poche de Sang IV (1000ml) Give Blood IV (500ml) - Gebe Blut IV (500ml) + Bluttransfusion IV (500ml) Dar Sangre IV (500ml) Дать кровь для в/в вливания (500 мл) + Podaj krew IV (500ml) + Mettre une poche de Sang IV (500ml) Give Blood IV (250ml) - Gebe Blut IV (250ml) + Bluttransfusion IV (250ml) Dar Sangre IV (250ml) Дать кровь для в/в вливания (250 мл) + Podaj krew IV (250ml) + Mettre une poche de Sang IV (250ml) Give Plasma IV (1000ml) - Gebe Plasma IV (1000ml) + Plasmatransfusion IV (1000ml) Dar Plasma IV (1000ml) Дать плазму для в/в вливания (1000 мл) + Podaj osocze IV (1000ml) + Mettre une poche de Plasma IV (1000ml) Give Plasma IV (500ml) - Gebe Plasma IV (500ml) + Plasmatransfusion IV (500ml) Dar Plasma IV (500ml) Дать плазму для в/в вливания (500 мл) + Podaj osocze IV (500ml) + Mettre une poche de Plasma IV (500ml) Give Plasma IV (250ml) - Gebe Plasma IV (250ml) + Plasmatransfusion IV (250ml) Dar Plasma IV (250ml) Дать плазму для в/в вливания (250 мл) + Podaj osocze IV (250ml) + Mettre une poche de Plasma IV (250ml) Give Saline IV (1000ml) + Kochsaltzlösung IV (1000ml) Dar Salino IV (1000ml) Дать физраствор для в/в вливания (1000 мл) + Podaj solankę IV (1000ml) + Mettre une poche de Saline IV (1000ml) Give Saline IV (500ml) + Kochsaltzlösung IV (500ml) Dar Salino IV (500ml) Дать физраствор для в/в вливания (500 мл) + Podaj solankę IV (500ml) + Mettre une poche de Saline IV (500ml) Give Saline IV (250ml) + Kochsaltzlösung IV (250ml) Dar Salino IV (250ml) Дать физраствор для в/в вливания (250 мл) + Podaj solankę IV (250ml) + Mettre une poche de Saline IV (250ml) Minor Gering Menor Незначительные травмы + Normalny + Mineur Delayed Retrasado Груз 300 + Opóźniony + Délayé + Verzögert Immediate Inmediato Помощь отложена + Natychmiastowy + Immédiat + Sofort Deceased Fallecido Груз 200 + Nie żyje + Décédé + Verstorben None Ninguno Нет + Brak + Aucun + Keine Normal breathing - Normales Atmen Дыхание в норме Respiración normal Respiration Normale Normalny oddech + Normale Atmung No breathing - Atmet nicht + Keine Atmung Дыхания нет No respira Apnée @@ -376,15 +457,15 @@ Difficult breathing - Schweres Atmen Дыхание затруднено Dificultad para respirar Difficultée Respiratoire Trudności z oddychaniem + Schwere Atmung Almost no breathing - Atmet beinahe nicht + Fast keine Atmung Дыхания почти нет Casi sin respiración Respiration Faible @@ -400,9 +481,9 @@ In Pain - Unter Schmerzen + Hat Schmerzen Испытывает боль - Con Dolor + Con dolor A De La Douleur W bólu @@ -410,7 +491,7 @@ Lost a lot of Blood Hat eine große Menge Blut verloren Большая кровопотеря - Mucha Sangre perdida + Mucha sangre perdida A Perdu Bcp de Sang Stracił dużo krwi @@ -420,17 +501,19 @@ Жгут Torniquete [CAT] Garot [CAT] - Opaska uciskowa [CAT] + Staza [typ. CAT] Receiving IV [%1ml] - Wiederbeleben IV [%1ml] + Erhalte IV [%1ml] Reciviendo IV [%1ml] Принимается переливание [%1 мл] + Otrzymywanie IV [%1ml] + Réception IV [%1ml] Bandage (Basic) - Verband (Basis) + Bandage (Standard) Повязка (обычная) Vendaje (Básico) Bandage (Standard) @@ -438,11 +521,11 @@ Used to cover a wound - Verwendet um die Wunde zu schützen Для перевязки ран Utilizado para cubrir una herida Utilisé Pour Couvrir Une Blessure Używany w celu przykrycia i ochrony miejsca zranienia + Verwendet, um Wunden abzudecken A dressing, that is a particular material used to cover a wound, which is applied over the wound once bleeding has been stemmed. @@ -454,17 +537,17 @@ Packing Bandage - Verband + Mullbinde Тампонирующая повязка - Vendaje Compresivo + Vendaje compresivo Bandage Mèche Bandaż (uciskowy) Used to pack medium to large wounds and stem the bleeding - Wird verwendet, um mittel bis große Wunden zu verbinden und die Blutung zu stoppen + Verwendet, um mittlere bis große Wunden abzudecken und Blutungen zu stoppen Для тампонирования ран среднего и большого размера и остановки кровотечения. - Se utiliza para vendar heridas medianas y grandes y detener el sangrado + Se utiliza para vendar heridas medianas o grandes y detener el sangrado Utiliser pour remplire la cavité créé dans une blessure moyenne et grande. Używany w celu opatrywania średnich i dużych ran oraz tamowania krwawienia. @@ -477,7 +560,7 @@ Bandage (Elastic) - Verband (Elastisch) + Bandage (Elastisch) Повязка (давящая) Vendaje (Elástico) Bandage (Élastique) @@ -485,14 +568,14 @@ Bandage kit, Elastic - Verbandssatz, Elastisch + Elastische Binde (Kompressionsbinde) Давящая повязка - Vendaje (Elástico) + Kit de vendaje (Elástico) Bandage Compressif Élastique Zestaw bandaży elastycznych. - + Allows an even compression and extra support to the injured area. Ce bandage peut etre utiliser pour compresser la plaie afin de ralentire le seignement et assurer la tenue du bandage lors de mouvment. @@ -509,22 +592,23 @@ Slows down blood loss when bleeding - Veringert den Blutverlust Уменьшает кровопотерю при кровотечении. Reduce la velocidad de pérdida de sangre Ralentit le seignement Zmniejsza ubytek krwi z kończyn w przypadku krwawienia. + Verringert den Blutverlust während einer Blutung A constricting device used to compress venous and arterial circulation in effect inhibiting or slowing blood flow and therefore decreasing loss of blood. Жгут используется для прижатия сосудов, приводящего к остановке или значительному уменьшению кровотечения и сокращению кровопотери. Dispositivo utilizado para eliminar el pulso distal y de ese modo controlar la pérdida de sangre Un appareil servent a compresser les artères et veines afin de reduire la perte de sang. - Opaska zaciskowa CAT służy do tamowanie krwotoków w sytuacji zranienia kończyn z masywnym krwawieniem tętniczym lub żylnym. + Opaska uciskowa CAT służy do tamowanie krwotoków w sytuacji zranienia kończyn z masywnym krwawieniem tętniczym lub żylnym. + Ein Gerät, das Druck auf Venen und Arterien ausübt und so den Blutfluss verringert. Morphine autoinjector - Morphin Autoinjector + Morphium Autoinjektor Морфин в пневмошприце Morfina auto-inyectable Auto-injecteur de Morphine @@ -534,16 +618,17 @@ Used to combat moderate to severe pain experiences Wird verwendet um moderate bis starke Schmärzen zu lindern. Для снятия средних и сильных болевых ощущений. - Usado para combatir los estados dolorosos moderados a severos + Usado para combatir los estados dolorosos de moderados a severos Utiliser pour contrer les douleurs modéré à severes. Morfina. Ma silne działanie przeciwbólowe. An analgesic used to combat moderate to severe pain experiences. Анальгетик для снятия средних и сильных болевых ощущений. - Analgésico usado para combatir los estados dolorosos de moderado a severo. + Analgésico usado para combatir los estados dolorosos de moderados a severos. Un Analgésique puissant servant a contrer les douleur modéré a severe. Organiczny związek chemiczny z grupy alkaloidów. Ma silne działanie przeciwbólowe. + Ein Schmerzmittel um mäßige bis starke Schmerzen zu behandeln Atropin autoinjector @@ -551,6 +636,7 @@ Atropina auto-inyectable Auto-injecteur d'Atropine Autostrzykawka AtroPen + Atropin Autoinjektor Used in NBC scenarios @@ -558,13 +644,15 @@ Usado en escenarios NBQ Utiliser en cas d'attaque CBRN Atropina. Stosowana jako lek rozkurczowy i środek rozszerzający źrenice. + Verwendet bei ABC Kontamination A drug used by the Military in NBC scenarios. Препарат, используемый в войсках для защиты от оружия массового поражения. - Medicamento usado por Militares en escenarios NBQ + Medicamento usado por militares en escenarios NBQ Médicament utilisé par l'armée en cas d'attaque CBRN Atropina. Stosowana jako lek rozkurczowy i środek rozszerzający źrenice. Środek stosowany w przypadku zagrożeń NBC. + Ein Medikament, das vom Militär bei ABC Kontamination verwendet wird. Epinephrine autoinjector @@ -572,6 +660,7 @@ Epinefrina auto-inyectable Auto-injecteur d'épinéphrine Autostrzykawka EpiPen + Epiniphrin Autoinjektor Increase heart rate and counter effects given by allergic reactions @@ -579,12 +668,10 @@ Aumenta la frecuencia cardiaca y contraresta los efectos de las reacciones alérgicas Augmente la Fréquance cadiaque et contré les effet d'une reaction Anaphylactique Adrenalina. Zwiększa puls i przeciwdziała efektom wywołanym przez reakcje alergiczne + Steigert die Herzfrequenz, um den Effekt von allergischen Reaktionen zu bekämpfen - A drug that works on a sympathetic response to dilate the bronchi, increase heart rate and counter - such effects given by allergic reactions (anaphylaxis). Used in sudden cardiac arrest scenarios with - decreasing positive outcomes. - + A drug that works on a sympathetic response to dilate the bronchi, increase heart rate and counter such effects given by allergic reactions (anaphylaxis). Used in sudden cardiac arrest scenarios with decreasing positive outcomes. Препарат, вызывающий симпатическую реакцию, приводящую к расширению бронхов, увеличению частоты сердечных сокращений и купированию аллергических реакций (анафилактического шока). Применяется при остановке сердца с уменьшением вероятности благоприятного исхода. 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. 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. @@ -593,9 +680,10 @@ Plasma IV (1000ml) Плазма для в/в вливания (1000 мл) - Plasma Intravenoso (1000ml) + Plasma IV (1000ml) Plasma Sanguin IV (1000ml) Osocze IV (1000ml) + Plasma IV (1000ml) A volume-expanding blood supplement. @@ -614,63 +702,69 @@ Plasma IV (500ml) Плазма для в/в вливания (500 мл) - Plasma Intravenoso (500ml) + Plasma IV (500ml) Plasma Sanguin IV (500ml) Osocze IV (500ml) + Plasma IV (500ml) Plasma IV (250ml) Плазма для в/в вливания (250 мл) - Plasma Intravenoso (250ml) + Plasma IV (250ml) Plasma Sanguin (250ml) Osocze IV (250ml) + Plasma IV (250ml) Blood IV (1000ml) Кровь для переливания (1000 мл) - Sangre Intravenosa (1000ml) + Sangre IV (1000ml) Cullot Sanguin IV (1000ml) Krew IV (1000ml) + Blut IV (1000ml) Blood IV, for restoring a patients blood (keep cold) Пакет крови для возмещения объема потерянной крови (хранить в холодильнике) - Sangre Intravenosa, para restarurar el volumen sanguíneo (mantener frío) + Sangre intravenosa, para restarurar el volumen sanguíneo (mantener frío) Cullot Sanguin IV, pour remplacer le volume sanguin (garder Réfrigeré) Krew IV, używana do uzupełnienia krwi u pacjenta, trzymać w warunkach chłodniczych O Negative infusion blood used in strict and rare events to replenish blood supply usually conducted in the transport phase of medical care. Кровь I группы, резус-отрицательная, применяется по жизненным показаниям для возмещения объема потерянной крови на догоспитальном этапе оказания медицинской помощи. - 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. + 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. 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. - Utilice sólo durante gran pérdida de sangre para reemplazar el volumen de sangre perdido. Uso habitual durante el transporte de heridos. + Utilice sólo durante gran pérdida de sangre para reemplazar el volumen de sangre perdida. Uso habitual durante el transporte de heridos. Blood IV (500ml) Кровь для переливания (500 мл) - Sangre Intravenosa (500ml) + Sangre IV (500ml) Cullot Sanguin IV (500ml) Krew IV (500ml) + Blut IV (500ml) Blood IV (250ml) Кровь для переливания (250 мл) - Sangre Intravenosa (250ml) + Sangre IV (250ml) Cullot Sanguin IV (250ml) Krew IV (250ml) + Blut IV (250ml) Saline IV (1000ml) Физраствор для в/в вливания (1000 мл) - Solución Salina Intravenosa (1000ml) + Solución Salina IV (1000ml) solution Saline 0.9% IV (1000ml) Solanka 0,9% IV (1000ml) + Kochsalzlösung (1000ml) Saline IV, for restoring a patients blood Пакет физраствора для возмещения объема потерянной крови - Solución Salina Intravenosa, para restaurar el volumen sanguíneo + Solución salina intravenosa, para restaurar el volumen sanguíneo Solution Saline 0.9% IV, pour retablir temporairement la tention arteriel Solanka 0,9%, podawana dożylnie (IV), używana w celu uzupełnienia krwi u pacjenta @@ -684,44 +778,50 @@ Saline IV (500ml) Физраствор для в/в вливания (500 мл) - Solución Salina Intravenosa (500ml) + Salino IV (500ml) Solution Saline 0.9% IV (500ml) Solanka 0,9% IV (500ml) + Kochsalzlösung (500ml) Saline IV (250ml) Физраствор для в/в вливания (250 мл) - Solución Salina Intravenosa (250ml) + Salino IV (250ml) Solution Saline 0.9% IV (250ml) Solanka 0,9% IV (250ml) + Kochsalzlösung (250ml) Basic Field Dressing (QuikClot) Первичный перевязочный пакет (QuikClot) - Vendaje Básico (Coagulante) + Vendaje básico (QuickClot) Bandage Regulier (Coagulant) - Opatrunek QuikClot + Podstawowy pakiet opatrunkowy (QuikClot) + Verbandpäckchen(Gerinnungsmittel) QuikClot bandage Гемостатический пакет QuikClot - Venda Coagulante + Vendaje QuikClot Bandage coagulant - Podstawowy opatrunek stosowany na rany + Hemostatyczny pakiet QuikClot. Podstawowy opatrunek stosowany na rany. + Bandage mit Gerinnungsmittel - + Hemostatic bandage with coagulant that stops bleeding. Un bandage servant a coaguler les seignements mineur à moyen. - Proszkowy opatrunek adsorbcyjny przeznaczony do tamowania zagrażających życiu krwawień średniej i dużej intensywności. - Vendaje Hemostático con coagulante que detiene el sangrado. + Proszkowy opatrunek adsorpcyjny przeznaczony do tamowania zagrażających życiu krwawień średniej i dużej intensywności. + Vendaje hemostático con coagulante que detiene el sangrado. + Verband mit Gerinnungsmittel, um starke Blutung zu behandeln. Personal Aid Kit Аптечка - Kit de Soporte Vital Avanzado + Botiquín de primeros auxilios Équipement de support Vitale Apteczka osobista + Persönliches Verbandpäckchen Includes various treatment kit needed for stitching or advanced treatment @@ -729,192 +829,289 @@ Incluye material médico para tratamientos avanzados Inclue du matériel medical pour les traitement avancé, tel les point de suture. Zestaw środków medycznych do opatrywania ran i dodatkowego leczenia po-urazowego + Beinhaltet medizinisches Material für fortgeschrittene Behandlung und zum Nähen. + W znacznym stopniu poprawia stan pacjenta Surgical Kit + Kit de chirurgien Хирургический набор - Kit Quirúrgico + Kit quirúrgico + Zestaw do szycia ran + Operationsset Surgical Kit for in field advanced medical treatment + Kit de chirurgien pour les soins avancés sur le terrain Набор для хирургической помощи в полевых условиях - Kit Quirúrgico para el tratamiento avanzado en el campo de batalla + Kit quirúrgico para el tratamiento avanzado en el campo de batalla + Zestaw pozwalający na zszywanie ran w polu + Operationsset für fortgeschrittene medizinische Feldversorgung Surgical Kit for in field advanced medical treatment Набор для хирургической помощи в полевых условиях - Kit Quirúrgico para el tratamiento avanzado en el campo de batalla + Kit quirúrgico para el tratamiento avanzado en el campo de batalla + Zestaw pozwalający na zszywanie ran w polu + Operationsset für fortgeschrittene medizinische Feldversorgung Bodybag + Sac à corps Мешок для трупов Bolsa para cadáveres + Worek na zwłoki + Leichensack A bodybag for dead bodies + Un sac pour les cadavres Мешок для упаковки трупов - Bolsa para cadáveres + Una bolsa para cadáveres + Worek do pakowania zwłok + Ein Leichensack für Tote A bodybag for dead bodies + Un sac pour les cadavres Мешок для упаковки трупов - Bolsa para cadáveres + Una bolsa para cadáveres + Worek do pakowania zwłok + Ein Leichensack für Tote Blood Pressure + Pression sanguine Артериальное давление - Presión Arterial + Presión arterial + Ciśnienie krwi + Blutdruck Checking Blood Pressure.. + Vérification de la pression sanguine Проверка артериального давления... - Comprobando Presión Arterial... + Comprobando presión arterial... + Sprawdzanie ciśnienia krwi... + Blutdruck kontrollieren... You checked %1 + Vous diagnostiquez %1 Вы осмотрели раненого %1 Examinando a %1 + Zbadałeś %1 + Kontrolliert %1 You find a blood pressure of %2/%3 + Vous pris une pression sanguine de %2/%3 Артериальное давление %2/%3 - La Presión Arterial es %2/%3 + La presión arterial es %2/%3 + Ciśnienie krwi wynosi %2/%3 + Blutdruck ist %2/%3 You find a low blood pressure + Vous avez trouvé une pression sanguine base Давление низкое - La Presión Arterial es baja + La presión arterial es baja + Wyczuwasz niskie ciśnienie krwi + Blutdruck ist niedrig You find a normal blood pressure + Vous avez trouvé une pression sanguine normale Давление нормальное - La Presión Arterial es normal + La presión arterial es normal + Wyczuwasz normalne ciśnienie krwi + Blutdruck ist normal You find a high blood pressure + Vous avez trouvé une forte pression sanguine Давление высокое - La Presión Arterial es alta + La presión arterial es alta + Wyczuwasz wysokie ciśnienie krwi + Blutdruck ist hoch You find no blood pressure + Vous n'avez pas trouvé de pression sanguine Давления нет - No hay Presión Arterial + No hay presión arterial + Nie wyczuwasz ciśnienia krwi + Patient hat keinen Blutdruck You fail to find a blood pressure + Vous avez raté le diagnostique de la pression sanguine Артериальное давление не определяется - No puedes encontrar Presión Arterial + No puedes encontrar presión arterial + Nie udało Ci się sprawdzić ciśnienia krwi + Blutdruck konnte nicht gefunden werden Pulse + Pulsations Пульс Pulso + Tętno + Puls Checking Heart Rate.. + Diagnostique de la fréquence cardiaque Проверка пульса... - Comprobando Pulso... + Comprobando ritmo cardíaco... + Sprawdzanie tętna... + Kontrolliere Herzfrequenz You checked %1 + Vous avez Diagnostiqué %1 Вы осмотрели раненого %1 Examinando a %1 + Zbadałeś %1 + Kontrolliertt %1 You find a Heart Rate of %2 + Vous avez trouvé une fréquence cardiaque de %2 Пульс %2 уд./мин. - El Pulso es %2 + El ritmo cardíaco es de %2 + Wyczuwasz tętno o wartości %2 + Herzfrequenz ist %2 You find a weak Heart Rate + Vous avez trouvé une faible fréquence cardiaque Пульс слабый - El Pulso es débil + El ritmo cardíaco es débil + Wyczuwasz słabe tętno + Schwacher Puls You find a strong Heart Rate + Vous avez trouvé une forte fréquence cardiaque Пульс учащенный - El Pulso está acelerado + El ritmo cardíaco está acelerado + Wyczuwasz silne tętno + Starker Puls You find a normal Heart Rate + Vous avez trouvé une fréquence cardiaque normale Пульс в норме - El Pulso es bueno + El ritmo cardíaco es bueno + Wyczuwasz normalne tętno + Normaler Puls You find no Heart Rate + Vous n'avez trouvé de fréquence cardiaque Пульс не прощупывается - No tiene Pulso + No tiene ritmo cardíaco + Wyczuwasz brak tętna + Kein Puls gefunden Response + Réponse Реакция - Reacciona + Respuesta + Przytomność + Ansprechbarkeit You check response of patient + Vous vérifiez la réponse du patient Вы проверяете реакцию раненого Compruebas si el paciente reacciona + Sprawdzasz przytomność pacjenta + Du prüfst ob der Patient ansprechbar ist %1 is responsive + %1 est conscient %1 реагирует на раздражители %1 ha reaccionado + %1 jest przytomny + %1 ist anprechbar %1 is not responsive + %1 n'est pas conscient %1 не реагирует %1 no reacciona + %1 jest nieprzytomny + %1 ist nicht ansprechbar You checked %1 + Vous diagnostiqué %1 Вы осмотрели раненого %1 Examinas a %1 + Zbadałeś %1 + Du versucht %1 anzusprechen Bandaged + Bandé Повязка наложена Vendado + Zabandażowano You bandage %1 (%2) + Vous bandez %1 (%2) Вы перевязали раненого %1 (%2) Aplicas vendaje a %1 en %2 + Bandażujesz %1 (%2) %1 is bandaging you + %1 vous bande %1 перевязывает вас %1 te está vendando + %1 bandażuje Ciebie You start stitching injures from %1 (%2) Вы зашиваете ранения от %1 (%2) Estás suturando heridas de %1 en %2 + Zszywasz rany %1 (%2) Stitching Наложение швов Suturando + Szycie You treat the airway of %1 Вы интубируете раненого %1 Estás intubando a %1 + Udrażniasz drogi oddechowe %1 Airway Дыхательные пути - Vías Aéreas + Vías aéreas + Drogi oddechowe + Atemwege %1 is treating your airway %1 проводит вам интубацию %1 te está intubando + %1 udrażnia Twoje drogi oddechowe Drag @@ -980,41 +1177,57 @@ Unload patient Descargar el paciente Выгрузить пациента + Wyładuj pacjenta + Décharger le patient Load patient Cargar el paciente en Погрузить пациента + Załaduj pacjenta + Charger le patient Place body in bodybag Colocar cuerpo en bolsa para cadáveres Поместить тело в мешок + Zapakuj ciało do worka na zwłoki + Placer le corps dans le sac à cadavre Placing body in bodybag Colocando cuerpo en bolsa para cadáveres Помещение тела в мешок ... + Pakowanie ciała do worka na zwłoki + Mise en sac du corps dans le sac à cadavre %1 has bandaged patient %1 has vendado al paciente %1 перевязал пациента + %1 zabandażował pacjenta + %1 à bandé un patient %1 used %2 %1 usó %2 %1 применил %2 + %1 użył %2 + %1 utilise %2 %1 has given an IV %1 has puesto una IV %1 провел переливание + %1 podał IV + %1 à donné un IV %1 applied a tourniquet %1 aplicado torniquete %1 наложил жгут + %1 założył stazę + %1 à appliqué un garrot diff --git a/addons/microdagr/functions/fnc_updateDisplay.sqf b/addons/microdagr/functions/fnc_updateDisplay.sqf index af577049a0..2a5f34a12c 100644 --- a/addons/microdagr/functions/fnc_updateDisplay.sqf +++ b/addons/microdagr/functions/fnc_updateDisplay.sqf @@ -1,4 +1,4 @@ -/* +/* * Author: PabstMirror * Updates the display (several times a second) called from the pfeh * @@ -53,7 +53,7 @@ case (APP_MODE_INFODISPLAY): { _compassAngleText = if (GVAR(settingUseMils)) then { [(floor ((6400 / 360) * (getDir ace_player))), 4, 0] call CBA_fnc_formatNumber; } else { - ([(floor (getDir ace_player)), 3, 1] call CBA_fnc_formatNumber) + "" //degree symbol is in UTF-8 + ([(floor (getDir ace_player)), 3, 1] call CBA_fnc_formatNumber) + "°" //degree symbol is in UTF-8 }; (_display displayCtrl IDC_MODEDISPLAY_HEADINGNUM) ctrlSetText _compassAngleText; @@ -92,7 +92,7 @@ case (APP_MODE_INFODISPLAY): { _bearingText = if (GVAR(settingUseMils)) then { [(floor ((6400 / 360) * (_bearing))), 4, 0] call CBA_fnc_formatNumber; } else { - ([(floor (_bearing)), 3, 1] call CBA_fnc_formatNumber) + "" //degree symbol is in UTF-8 + ([(floor (_bearing)), 3, 1] call CBA_fnc_formatNumber) + "°" //degree symbol is in UTF-8 }; _2dDistanceKm = ((GVAR(gpsPositionASL) select [0,2]) distance (_targetPosLocationASL select [0,2])) / 1000; _rangeText = format ["%1km", ([_2dDistanceKm, 1, 1] call CBA_fnc_formatNumber)]; @@ -112,7 +112,7 @@ case (APP_MODE_COMPASS): { _compassAngleText = if (GVAR(settingUseMils)) then { [(floor ((6400 / 360) * (getDir ace_player))), 4, 0] call CBA_fnc_formatNumber; } else { - ([(floor (getDir ace_player)), 3, 1] call CBA_fnc_formatNumber) + "M" //degree symbol is in UTF-8 + ([(floor (getDir ace_player)), 3, 1] call CBA_fnc_formatNumber) + "°" //degree symbol is in UTF-8 }; (_display displayCtrl IDC_MODECOMPASS_HEADING) ctrlSetText _compassAngleText; @@ -149,7 +149,7 @@ case (APP_MODE_COMPASS): { _bearingText = if (GVAR(settingUseMils)) then { [(floor ((6400 / 360) * (_bearing))), 4, 0] call CBA_fnc_formatNumber; } else { - ([(floor (_bearing)), 3, 1] call CBA_fnc_formatNumber) + "M" //degree symbol is in UTF-8 + ([(floor (_bearing)), 3, 1] call CBA_fnc_formatNumber) + "°" //degree symbol is in UTF-8 }; _2dDistanceKm = ((GVAR(gpsPositionASL) select [0,2]) distance (_targetPosLocationASL select [0,2])) / 1000; _rangeText = format ["%1km", ([_2dDistanceKm, 1, 1] call CBA_fnc_formatNumber)]; diff --git a/addons/microdagr/stringtable.xml b/addons/microdagr/stringtable.xml index 2ede1316b4..68bec58765 100644 --- a/addons/microdagr/stringtable.xml +++ b/addons/microdagr/stringtable.xml @@ -1,168 +1,223 @@  + - - - MicroDAGR GPS - MicroDAGR GPS - GPS MicroDAGR - MicroDAGR GPS - - - MicroDAGR advanced GPS receiver - MicroDAGR - Fortgeschrittener GPS-Empfänger - Receptor avanzado GPS MicroDAGR - Многофункциональный GPS-приёмник. - - - Angular Unit: - Unidad angular: - Угловые единицы: - - - Mils - Mils - Mils - Тысячные - - - Show Waypoints On Map: - Zeige Wegpunkte auf Karte - Mostrar puntos de ruta en el mapa: - Показывать маршрутные точки на карте: - - - Degrees - Grad - Grados - Градусы - - - On - Zapnuto - Oui - Ein - - Wł. - Ativar - Вкл. - Encendido - - - Off - Vypnuto - Non - Aus - No - Wył. - Desativar - Выкл. - Apagado - - - Enter Grid Cords: - Introducir coordenadas de cuadrícula: - Введите координаты: - - - Name of [%1] - Name von [%1] - Nombre de [%1] - Название [%1] - - - MGRS-New - MGRS-NEU - Nuevo-MGRS - MGRS-Новая - - - WGD - WGD - WGD - WGD - - - Range: - Distancia - Reichweite: - Дистанция: - - - Compass Direction - Kompass Richtung - Dirección de la brújula - Азимут - - - Mark - Markiere - Marca - Отметка - - - Waypoints - Puntos de ruta - Wegpunkte - Машрутные точки - - - Connect To - Conectar a - Соединиться с - Verbinde zu - - - Settings - Einstellungen - Configuración - Настройки - - - SetWP - SetzeWP - Establecer PR - Установить МТ - - - Add - Hinzufügen - Añadir - Добавить - - - Delete - Smazat - Supprimer - Löschen - Elimina - Usuń - Excluir - Удалить - Borrar - - - Toggle MicroDAGR Display Mode - Wechsle MircoDAGR Bildschirmmodus - Conmutar modo de pantalla del MicroDAGR - Сменить режим показа MicroDAGR - - - Show MicoDAGR - Zeige MicroDAGR - Mostrar MicroDAGR - Показать MicroDAGR - - - Configure MicroDAGR - Stelle MicroDAGR ein - Configurar MicroDAGR - Настроить MicroDAGR - - - Close MicroDAGR - Schließe MicroDAGR - Cerrar MicroDAGR - Закрыть MicroDAGR - - - + + + MicroDAGR GPS + MicroDAGR GPS + GPS MicroDAGR + MicroDAGR GPS + MicroDAGR GPS + MicroDAGR GPS + GPS MicroDAGR + + + MicroDAGR advanced GPS receiver + MicroDAGR verbesserter GPS Empfänger + Receptor avanzado GPS MicroDAGR + Многофункциональный GPS-приёмник. + Zaawansowany odbiornik GPS MicroDAGR + MicroDAGR un GPS avancé + + + Angular Unit: + Unidad angular: + Угловые единицы: + Jednostka kątowa: + Unité angulaire: + Winkeleinheit: + + + Mils + Mils + Mils + Тысячные + Tysiączne + Mils + + + Show Waypoints On Map: + Zeige Wegpunkte auf Karte + Mostrar puntos de ruta en el mapa: + Показывать маршрутные точки на карте: + Pokaż PT na mapie: + Afficher les points de passage sur la carte : + + + Degrees + Grad + Grados + Градусы + Stopnie + Degrés + + + On + Zapnuto + Oui + Ein + + Wł. + Ativar + Вкл. + Encendido + + + Off + Vypnuto + Non + Aus + No + Wył. + Desativar + Выкл. + Apagado + + + Enter Grid Cords: + Introducir coordenadas de cuadrícula: + Введите координаты: + Wprowadź współrzędne: + Entrer Grid Cords : + Koordinaten eingeben: + + + Name of [%1] + Name von [%1] + Nombre de [%1] + Название [%1] + Nazwa [%1] + Nom de [%1] + + + MGRS-New + MGRS-NEU + Nuevo-MGRS + MGRS-Новая + MGRS-Nowy + Nouveau MGRS + + + WGD + WGD + WGD + WGD + WGD + WGD + + + Range: + Distancia: + Reichweite: + Дистанция: + Dystans: + Distance : + + + Compass Direction + Kompass Richtung + Dirección de la brújula + Азимут + Azymut + Direction de la boussole + + + Mark + Markieren + Marca + Отметка + Oznacz + Marqueur + + + Waypoints + Puntos de ruta + Wegpunkte + Машрутные точки + Waypointy + Punkty trasy + Point de passage + + + Connect To + Conectar a + Соединиться с + Verbinde zu + Připojit k + Podłącz do + Connexion à + + + Settings + Paramètres + Einstellungen + Configuración + Настройки + Nastavení + Ustawienia + + + SetWP + WP setzen + Establecer PR + Установить МТ + Nastavit WP + UstawPT + + + Add + Hinzufügen + Añadir + Добавить + Přidat + Dodaj + Ajouter + + + Delete + Smazat + Supprimer + Löschen + Elimina + Usuń + Excluir + Удалить + Borrar + + + Toggle MicroDAGR Display Mode + MicoDAGR Anzeigemodus wählen + Conmutar modo de pantalla del MicroDAGR + Сменить режим показа MicroDAGR + Przełącz tryb wyświetlania MicroDAGR + Basculer sur l'affichage du MicroDAGR + + + Show MicoDAGR + Zeige MicroDAGR + Mostrar MicroDAGR + Показать MicroDAGR + Ukázat MicroDAGR GPS + Pokaż MicroDAGR + Afficher le MicroDAGR + + + Configure MicroDAGR + Konfiguriere MicroDAGR + Configurar MicroDAGR + Настроить MicroDAGR + Konfigurovat MicroDAGR GPS + Konfiguruj MicroDAGR + Configurer le MicroDAGR + + + Close MicroDAGR + Schließe MicroDAGR + Cerrar MicroDAGR + Закрыть MicroDAGR + Zavřít MicroDAGR GPS + Zamknij MicroDAGR + Fermer le MicroDAGR + + + \ No newline at end of file diff --git a/addons/missileguidance/CfgVehicles.hpp b/addons/missileguidance/CfgVehicles.hpp index ec07cd96c1..7707717c9e 100644 --- a/addons/missileguidance/CfgVehicles.hpp +++ b/addons/missileguidance/CfgVehicles.hpp @@ -1,19 +1,29 @@ class CfgVehicles { - class Heli_Attack_01_base_F; - class B_Heli_Attack_01_F : Heli_Attack_01_base_F { + class AllVehicles; + class Air: AllVehicles { + class Turrets; + }; + + class Helicopter: Air { class Turrets { class MainTurret; }; }; + class Helicopter_Base_F: Helicopter {}; + class Heli_Attack_01_base_F: Helicopter_Base_F {}; + class B_Heli_Attack_01_F : Heli_Attack_01_base_F { + class Turrets: Turrets { + class MainTurret; + }; + }; class ACE_Comanche_Test : B_Heli_Attack_01_F { - displayName = "ACE_Comanche_Test"; + displayName = "ACE_Comanche_Test"; author = "ACE Team"; - class Library - { - libTextDesc = "ACE_Comanche_Test"; - }; + class Library { + libTextDesc = "ACE_Comanche_Test"; + }; class Turrets: Turrets { class MainTurret: MainTurret { magazines[] = {"ACE_500Rnd_20mm_shells_Comanche", "24Rnd_ACE_Hellfire_AGM114K"}; @@ -21,4 +31,3 @@ class CfgVehicles { }; }; }; - diff --git a/addons/missileguidance/XEH_pre_init.sqf b/addons/missileguidance/XEH_pre_init.sqf index 873715fef8..403d6245ca 100644 --- a/addons/missileguidance/XEH_pre_init.sqf +++ b/addons/missileguidance/XEH_pre_init.sqf @@ -3,6 +3,9 @@ PREP(rotateVectLineGetMap); PREP(rotateVectLine); +PREP(checkSeekerAngle); +PREP(checkLos); + PREP(fired); PREP(guidancePFH); diff --git a/addons/missileguidance/functions/fnc_checkLos.sqf b/addons/missileguidance/functions/fnc_checkLos.sqf new file mode 100644 index 0000000000..f21a841367 --- /dev/null +++ b/addons/missileguidance/functions/fnc_checkLos.sqf @@ -0,0 +1,29 @@ +/* + * Author: jaynus + * Returns whether the seeker object can see the target position with lineIntersect + * + * Argument: + * 0: Seeker [Object] + * 1: Target [Object] + * + * Return value: + * Boolean + */ +#include "script_component.hpp" +private["_seeker", "_seekerPos", "_target", "_targetPos", "_return", "_vectorTo", "_searchPos"]; +_seeker = _this select 0; +_target = _this select 1; + +_targetPos = getPosASL _target; +_seekerPos = getPosASL _seeker; +_return = true; + +if(!(terrainIntersectASL [ _seekerPos, _targetPos])) then { + if(lineIntersects [_seekerPos, _targetPos, _seeker, _target]) then { + _return = false; + }; +} else { + _return = false; +}; + +_return; \ No newline at end of file diff --git a/addons/missileguidance/functions/fnc_checkSeekerAngle.sqf b/addons/missileguidance/functions/fnc_checkSeekerAngle.sqf new file mode 100644 index 0000000000..7308ce1723 --- /dev/null +++ b/addons/missileguidance/functions/fnc_checkSeekerAngle.sqf @@ -0,0 +1,50 @@ +/* + * Author: jaynus + * Returns whether the target position is within the maximum angle FOV of the provided seeker + * objects current direction. + * + * Argument: + * 0: Seeker [Object] + * 1: Target [Position] + * 2: Max Angle [Degrees] + * + * Return value: + * Boolean + */ + + #define DEBUG_MODE_FULL +#include "script_component.hpp" +private["_seeker", "_targetPos", "_seekerMaxAngle", "_vectorTo", "_sensorPos", "_vertOk", "_horzOk", "_dir", "_headingPitch"]; + +_seeker = _this select 0; +_targetPos = _this select 1; +_seekerMaxAngle = _this select 2; + +_vertOk = false; +_horzOk = false; + +_sensorPos = getPosASL _seeker; +_vectorTo = _sensorPos vectorFromTo _targetPos; + +_headingPitch = (vectorDir _seeker) call CBA_fnc_vect2polar; +_polarTo = _vectorTo call CBA_fnc_vect2polar; + +_dir = _polarTo select 1; +_dir = _dir - (_headingPitch select 1); + +if (_dir < 0) then {_dir = _dir + 360}; +if (_dir > 360) then {_dir = _dir - 360}; + _vertOk = false; + _horzOk = false; +if(_dir < _angleFov || {_dir > (360-_angleFov)}) then { + _horzOk = true; +}; +if(abs((abs(_polarTo select 2))-(abs(_headingPitch select 2))) < _angleFov) then { + _vertOk = true; +}; + +if(!_vertOk || !_horzOk ) exitWith { + false +}; + +true \ No newline at end of file diff --git a/addons/missileguidance/functions/fnc_seekerType_Optic.sqf b/addons/missileguidance/functions/fnc_seekerType_Optic.sqf index 3ce123d89c..9539c2c8f6 100644 --- a/addons/missileguidance/functions/fnc_seekerType_Optic.sqf +++ b/addons/missileguidance/functions/fnc_seekerType_Optic.sqf @@ -19,14 +19,31 @@ if(!isNil "_target") then { _foundTargetPos = getPosASL _target; }; -TRACE_2("", _target, _foundTargetPos); +/* @TODO: This is seeker LOS and angle checks for LOAL only; LOBL does not need visual +_angleFov = _seekerParams select 0; +_angleOkay = [_projectile, _foundTargetPos, _angleFov] call FUNC(checkSeekerAngle); -_projectileSpeed = (vectorMagnitude velocity _projectile); -_distanceToTarget = (getPosASL _projectile) vectorDistance _foundTargetPos; +_losOkay = false; +if(_angleOkay) then { + _losOkay = [_projectile, _target] call FUNC(checkSeekerLos); +}; +TRACE_2("", _angleOkay, _losOkay); -_eta = _distanceToTarget / _projectileSpeed; +// If we got here, it was an invalid target, just return a spot 5m in front of the missile +if(!_angleOkay || !_losOkay) then { + _foundTargetPos = _sensorPos vectorAdd ((velocity _projectile) vectorMultiply 5); +} else { + TRACE_2("", _target, _foundTargetPos); -_adjustVelocity = (velocity _target) vectorMultiply _eta; -_foundTargetPos = _foundTargetPos vectorAdd _adjustVelocity; + // @TODO: Configurable lead for seekers + _projectileSpeed = (vectorMagnitude velocity _projectile); + _distanceToTarget = (getPosASL _projectile) vectorDistance _foundTargetPos; + _eta = _distanceToTarget / _projectileSpeed; + + _adjustVelocity = (velocity _target) vectorMultiply _eta; + _foundTargetPos = _foundTargetPos vectorAdd _adjustVelocity; +}; + +*/ _foundTargetPos; \ No newline at end of file diff --git a/addons/missileguidance/functions/fnc_seekerType_SALH.sqf b/addons/missileguidance/functions/fnc_seekerType_SALH.sqf index f4d36285d8..828550aeeb 100644 --- a/addons/missileguidance/functions/fnc_seekerType_SALH.sqf +++ b/addons/missileguidance/functions/fnc_seekerType_SALH.sqf @@ -2,16 +2,25 @@ #include "script_component.hpp" EXPLODE_7_PVT(((_this select 1) select 0),_shooter,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile); -private["_targets", "_foundTargetPos", "_launchParams", "_seekerParams", "_targetLaunchParams"]; - _seekerTargetPos = _this select 0; _launchParams = _this select 1; _seekerParams = _launchParams select 3; -// TODO: this needs to be shootCone/findStrongestRay after testing -_targets = [_projectile, ACE_DEFAULT_LASER_CODE, (_seekerParams select 0)] call ace_laser_fnc_findLaserDesignator; -_foundTargetPos = getPosASL (_targets select 1); +_laserResult = [(getPosASL _projectile), [ACE_DEFAULT_LASER_WAVELENGTH,ACE_DEFAULT_LASER_WAVELENGTH], ACE_DEFAULT_LASER_CODE] call EFUNC(laser,seekerFindLaserSpot); +_foundTargetPos = _laserResult select 0; +TRACE_1("Search", _laserResult); + + +if(!isNil "_foundTargetPos") then { + _angleFov = _seekerParams select 0; + _canSeeTarget = [_projectile, _foundTargetPos, _angleFov] call FUNC(checkSeekerAngle); + + // If we got here, it was an invalid target, just return a spot 5m in front of the missile + if(!_canSeeTarget) then { + _foundTargetPos = _sensorPos vectorAdd ((velocity _projectile) vectorMultiply 5); + }; + +}; -TRACE_1("Seeker return target pos", _foundTargetPos); _foundTargetPos; \ No newline at end of file diff --git a/addons/missileguidance/stringtable.xml b/addons/missileguidance/stringtable.xml index fc17de4722..e0edd79308 100644 --- a/addons/missileguidance/stringtable.xml +++ b/addons/missileguidance/stringtable.xml @@ -1,107 +1,102 @@  - + - - - Advanced Missile Guidance - Avanzada Misiles Orientación - Avancée Missile orientation - Asystent Missile - Erweiterte Missile Guidance - Advanced Missile Guidance - Avanzato Missile Guidance - Avançado Missile Guidance - Részletes rakéta irányító - Расширенный ракетой - - - Enables advanced guidance mechanics and selection for different missiles and fire modes. - - - - - - - - - - - - /* Weapons */ - - Hydra-70 DAGR Missile - - - - - - - - - - - - DAGR - - - - - - - - - - - - Hydra-70 DAGR Laser Guided Missile - - - - - - - - - - - - /* Weapons */ - - Hellfire II AGM-114K Missile - - - - - - - - - - - - AGM-114K - - - - - - - - - - - - Hellfire II AGM-114K Laser Guided Missile - - - - - - - - - - - - - \ No newline at end of file + + + Advanced Missile Guidance + Avanzada Misiles Orientación + Avancée Missile orientation + Zaawansowane naprowadzanie rakiet + Erweiterte Missile Guidance + Pokročilé řízení střel + Avanzato Missile Guidance + Avançado Missile Guidance + Részletes rakéta irányító + Расширенный ракетой + + + Enables advanced guidance mechanics and selection for different missiles and fire modes. + + + Włącza zaawansowaną mechanikę i wybór dla różnych rakiet i trybów strzału. + + Povoluje pokročilou mechaniku řízení střel. + + + + + + + Hydra-70 DAGR Missile + + + Hydra-70 DAGR + + Hydra-70 DAGR + + + + + + + DAGR + + + DAGR + + DAGR + + + + + + + Hydra-70 DAGR Laser Guided Missile + + + Laserowo naprowadzana rakieta Hydra-70 DAGR + + Hydra-70 DAGR laserem naváděná střela + + + + + + + Hellfire II AGM-114K Missile + + + Hellfire II AGM-114K + + Hellfire II AGM-114K + + + + + + + AGM-114K + + + AGM-114K + + AGM-114K + + + + + + + Hellfire II AGM-114K Laser Guided Missile + + + Laserowo naprowadzana rakieta Hellfire II AGM-114K + + Hellfire II AGM-114K laserem naváděná střela + + + + + + + diff --git a/addons/movement/XEH_postInit.sqf b/addons/movement/XEH_postInit.sqf index 310b689e15..224cd93273 100644 --- a/addons/movement/XEH_postInit.sqf +++ b/addons/movement/XEH_postInit.sqf @@ -1,6 +1,8 @@ //by commy2 #include "script_component.hpp" +if (!hasInterface) exitWith {}; + ["inventoryDisplayLoaded", { [{ diff --git a/addons/movement/stringtable.xml b/addons/movement/stringtable.xml index d31896acaa..8265c25074 100644 --- a/addons/movement/stringtable.xml +++ b/addons/movement/stringtable.xml @@ -1,5 +1,5 @@  - + @@ -8,7 +8,7 @@ Mostrar peso en libras Afficher le poids en lb Pokaż ciężar w funtach - Zobrazit váhu v lb + Zobrazit váhu v librách Mostra peso in libbre Mostrar peso em libras Súly megjelenítése fontban. @@ -28,6 +28,7 @@ Climb + Monter Klettern Wspinaczka Trepar @@ -36,6 +37,7 @@ Can't climb here + je ne peux pas monter ici Kann hier nicht klettern Nie możesz wspiąć się tutaj No se puede trepar aquí @@ -43,4 +45,4 @@ Не можете подняться здесь - \ No newline at end of file + diff --git a/addons/nametags/stringtable.xml b/addons/nametags/stringtable.xml index 67c3b37aa8..7275ab3da9 100644 --- a/addons/nametags/stringtable.xml +++ b/addons/nametags/stringtable.xml @@ -7,7 +7,7 @@ Mostrar nombres Afficher noms Zobrazit jména - Pokaż nazwy + Pokaż imiona Nevek mutatása Показать имена @@ -15,7 +15,7 @@ Show player names Spielernamen anzeigen Mostrar nombres de jugadores - Pokaż nazwy graczy + Pokaż imiona graczy Afficher nom des joueurs Játékosnevek mutatása Zobrazit jména hráčů @@ -25,7 +25,7 @@ Show player name only on cursor (requires player names) - Pokaż nazwę gracza tylko pod kursorem + Pokaż imiona graczy tylko pod kursorem (wymagana opcja Pokaż imiona graczy) Mostrar nombres solo en el cursor (requiere Mostrar nombres de jugadores) Zeige Spielernamen nur an, wenn die Maus auf sie gerrichtet ist (benötigt Spielernamen) Noms uniquement sous le curseur (si noms affichés) @@ -41,14 +41,14 @@ Mostrar nombres solo al pulsar (requiere Mostrar nombres de jugadores) Noms uniquement sur pression de la touche (si noms affichés) Zobrazit jména hráčů jen na klávesu (vyžaduje jména hráčů) - Pokaż nazwę gracza tylko po przytrzymaniu klawisza + Pokaż imiona graczy tylko po przytrzymaniu klawisza (wymagana opcja Pokaż imiona graczy) Játékosnevek mutatása gombnyomásra(névcíme szükséges) Показать имена игроков только по нажатию клавиши (требует имен игроков) Show player ranks (requires player names) Spielerränge anzeigen (benötig Spielernamen) - Pokaż rangi graczy (wymaga nazw graczy) + Pokaż rangi graczy (wymagana opcja Pokaż imiona graczy) Mostrar rango de los jugadores (requiere Mostrar nombres de jugadores) Grade des joueurs (si noms affichés) Zobrazit hodnosti hráčů (vyžaduje jména hráčů) @@ -59,29 +59,38 @@ Show vehicle crew info + Afficher les informations de l'équipage du véhicule Zeige Fahrzeugbesatzung Mostrar tripulantes - Pokaż informacje o załodze pojazdu + Pokaż załogę pojazdu Zobrazit info o posádce vozidla Показать экипаж Show name tags for AI units - Zeige KI-Namen + Zeige Namen für KI Einheiten Mostrar etiquetas de nombre para unidades IA Показывать именые метки ИИ + Zobrazit jména AI + Wyświetl imiona jednostek AI + Afficher les noms pour les unités IA Show SoundWaves (requires player names) Zeigen Schallwellen (benötigt Spielernamen) Mostrar onda sonora (requiere Mostrar nombres de jugadores) Показывать звуковые волны (требует имен игроков) + Zobrazit SoundWaves (vyžaduje jména hráčů) + Pokaż fale dźwiękowe (wymagana opcja Pokaż imiona graczy) + Afficher l'ondulation audio (requiert les noms des joueurs) Default Nametag Color (Non Group Members) Voreingestellte Namenfarbe (Spieler außerhalb der Gruppe) Цвет меток игроков (не членов групп) Color de etiquetas de nombre por defecto (No miembros de grupo) + Domyślny kolor imion (członkowie spoza grupy) + Couleur par défaut pour les noms (unités non groupées) diff --git a/addons/nightvision/stringtable.xml b/addons/nightvision/stringtable.xml index 16ead016da..2dad02e3bd 100644 --- a/addons/nightvision/stringtable.xml +++ b/addons/nightvision/stringtable.xml @@ -1,5 +1,5 @@  - + @@ -84,7 +84,7 @@ NS-Brille (Weitwinkel) Sistema de visión nocturna (Panorámicas) Gogle noktowizyjne (panoramiczne) - Noktovizor (Široký) + Noktovizor (Širokoúhlý) ПНВ (Широкий) @@ -92,7 +92,7 @@ Helligkeit: %1 Brillo: %1 Czułość: %1 - Zvýšení: %1 + Jas: %1 Luminosité : %1 Контраст: Fényerő: %1 @@ -124,4 +124,4 @@ Riduci la luminosità dell'NVG - + \ No newline at end of file diff --git a/addons/noradio/XEH_post_initClient.sqf b/addons/noradio/XEH_post_initClient.sqf index e192a101f8..4f35a1ced9 100644 --- a/addons/noradio/XEH_post_initClient.sqf +++ b/addons/noradio/XEH_post_initClient.sqf @@ -1,31 +1,29 @@ // by commy2 - #include "script_component.hpp" +/* _setupPlayer = { - if (!isNull ACE_player) then { - [(_this select 1)] call cba_fnc_removePerFrameHandler; + if (!isNull ACE_player) then { + [(_this select 1)] call cba_fnc_removePerFrameHandler; - [ACE_player] call EFUNC(common,muteUnit); - ACE_player setVariable [QGVAR(isMuted), true, true]; - }; + [ACE_player, "isPlayer"] call EFUNC(common,muteUnit); + }; }; [_setupPlayer, 0, []] call CBA_fnc_addPerFrameHandler; +*/ + +if (!hasInterface) exitWith {}; // Mutes/unmutes units when the player changes ["playerChanged", { - EXPLODE_2_PVT(_this,_newPlayer,_oldPlayer); + EXPLODE_2_PVT(_this,_newPlayer,_oldPlayer); - // On player change mute the new player - [_newPlayer] call EFUNC(common,muteUnit); - _newPlayer setVariable [QGVAR(isMuted), true, true]; - - // Unmute the old player - //@todo: sort interaction with medical system - if (!(_oldPlayer getVariable ["ACE_isUnconscious", false]) && {alive _oldPlayer}) then { - [_oldPlayer] call EFUNC(common,unMuteUnit); - }; - _oldPlayer setVariable [QGVAR(isMuted), false, true]; + // On player change mute the new player + [_newPlayer, "isPlayer"] call EFUNC(common,muteUnit); + // Unmute the old player + if (alive _oldPlayer) then { + [_oldPlayer, "isPlayer"] call EFUNC(common,unmuteUnit); + }; }] call EFUNC(common,addEventhandler); diff --git a/addons/noradio/XEH_post_initServer.sqf b/addons/noradio/XEH_post_initServer.sqf index 90b7473144..ae2dc16ec1 100644 --- a/addons/noradio/XEH_post_initServer.sqf +++ b/addons/noradio/XEH_post_initServer.sqf @@ -1,10 +1,6 @@ // by commy2 - #include "script_component.hpp" addMissionEventHandler ["HandleDisconnect", { - if !((_this select 0) getVariable ["ACE_isUnconscious", false]) then { //@ToDo: ai waking up will be silent? - _this call EFUNC(common,unMuteUnit); - }; - (_this select 0) setVariable [QGVAR(isMuted), false, true]; + [_this select 0, "isPlayer"] call EFUNC(common,unmuteUnit); }]; diff --git a/addons/optics/CfgWeapons.hpp b/addons/optics/CfgWeapons.hpp index 29a3ff8c98..e42ae3780f 100644 --- a/addons/optics/CfgWeapons.hpp +++ b/addons/optics/CfgWeapons.hpp @@ -2,6 +2,23 @@ class CfgWeapons { class ItemCore; class InventoryOpticsItem_Base_F; + class Default; + + class Binocular: Default { + forceOptics = 0; // Allow using compass with Binocular + opticsZoomMin = 0.056889; // 5.25x power + opticsZoomMax = 0.056889; // 9 px/mil + modelOptics = "\z\ace\addons\optics\models\NWD_M22_5x"; // 7 horizontal field of view + visionMode[] = {"Normal"}; // Can't use nvgs with binoculars any more than you can with scopes + // Fix AI using Binocs on short range - #18737 + // minRange = 300; // 300 = uses Rangefinder often (runs a few meters, stops, uses RF, repeats) + minRange = 500; //500 = seem almost never use it..? + minRangeProbab = 0.001; + midRange = 1000; + midRangeProbab = 0.01; + maxRange = 5000; + maxRangeProbab = 0.01; + }; // zooming reticle scopes class optic_DMS: ItemCore { diff --git a/addons/optics/models/NWD_M22_5x.p3d b/addons/optics/models/NWD_M22_5x.p3d new file mode 100644 index 0000000000..b6df76e30b Binary files /dev/null and b/addons/optics/models/NWD_M22_5x.p3d differ diff --git a/addons/optics/reticles/4x_M22.paa b/addons/optics/reticles/4x_M22.paa new file mode 100644 index 0000000000..c685763a99 Binary files /dev/null and b/addons/optics/reticles/4x_M22.paa differ diff --git a/addons/optics/reticles/M22_font.paa b/addons/optics/reticles/M22_font.paa new file mode 100644 index 0000000000..539907d61f Binary files /dev/null and b/addons/optics/reticles/M22_font.paa differ diff --git a/addons/optics/reticles/bino_dirt.paa b/addons/optics/reticles/bino_dirt.paa new file mode 100644 index 0000000000..ea08efa3a7 Binary files /dev/null and b/addons/optics/reticles/bino_dirt.paa differ diff --git a/addons/optics/reticles/bino_ring.paa b/addons/optics/reticles/bino_ring.paa new file mode 100644 index 0000000000..53499af7ce Binary files /dev/null and b/addons/optics/reticles/bino_ring.paa differ diff --git a/addons/optionsmenu/stringtable.xml b/addons/optionsmenu/stringtable.xml index 3e311b92ae..79db8a06f8 100644 --- a/addons/optionsmenu/stringtable.xml +++ b/addons/optionsmenu/stringtable.xml @@ -1,143 +1,185 @@  + - - - ACE Options - ACE Optionen - Opciones ACE - Opcje ACE - ACE Nastavení - ACE Options - ACE Настройки - Opções do ACE - ACE Opciók - Opzioni ACE - - - Fix Animation - Behebe Animation - Arreglar animación - Фикс анимации - - - Reset All - Alles Zurücksetzen - Reiniciar todo - Полный сброс - - - Colors - Farben - Colores - Цвета - - - Options - Optionen - Opciones - Opcje - Nastavení - Options - Настройки - Opções - Opciók - Opzioni - - - Values - Valores - Значения - - - Yes - Ja - Si - Tak - Ano - Oui - Да - Igen - Sim - Si - - - No - Nein - No - Nie - Ne - Non - Нет - Nem - Não - No - - - Setting: - Nastavení: - Einstellung: - Установки: - Ajuste: - - - Export - Exportieren - Exportar - Экспорт - - - Open Export Menu - Öffne Exportmenü - Abrir menu d'exportación - Открыть меню экспорта - - - String input. - String input. - Introducir frase - Строчный ввод. - - - Array. Seperate elements by using ,. - Array. Teile unterschiedliche Elemente mit ,. - Matriz. Separa elementos usando ,. - Массив. Разделяйте элемены, используя запятую. - - - Number - Nummer - Numero - Число - - - Uknown input type - Unbekannter Eingabetyp - Tipo de entrada desconocida - Неизвестный тип ввода - - - Save input - Speichere Eingabe - Guardar entrada - Сохранить ввод - - - Include Client Settings - Beinhalte Client-Einstellungen - Incluir configuración de cliente - Включить настройки клиента - - - Exclude Client Settings - Schließe Client-Einstellungen aus - Excluir configuración de cliente - Исключить настройки клиента - - - Settings exported to clipboard - Einstellungen in die Zwischenablage exportiert - Configuración exportada al portapapeles - Настройки экспортированы в буфер обмена - - - + + + ACE Options + ACE Optionen + Opciones ACE + Ustawienia ACE + ACE Nastavení + ACE Options + ACE Настройки + Opções do ACE + ACE Opciók + Opzioni ACE + + + Fix Animation + Behebe Animation + Arreglar animación + Фикс анимации + Opravit animace + Napraw animację + Corriger l'Animation + + + Reset All + Alles Zurücksetzen + Reiniciar todo + Полный сброс + Vyresetovat vše + Resetuj wszystko + Par défaut + + + Colors + Couleurs + Farben + Colores + Цвета + Barvy + Kolory + + + Options + Optionen + Opciones + Opcje + Nastavení + Options + Настройки + Opções + Opciók + Opzioni + + + Values + Valores + Значения + Hodnoty + Wartości + Valeurs + Werte + + + Yes + Ja + Si + Tak + Ano + Oui + Да + Igen + Sim + Si + + + No + Nein + No + Nie + Ne + Non + Нет + Nem + Não + No + + + Setting: + Nastavení: + Einstellung: + Установки: + Ajuste: + Ustawienie: + + + Export + Exportieren + Exportar + Экспорт + Exportovat + Eksport + Exporter + + + Open Export Menu + Öffne Exportmenü + Abrir menu d'exportación + Открыть меню экспорта + Otevřít exportovací menu + Otwórz menu eksportowania + Ouvrir le menu d'exportation + + + String input. + String input. + Introducir frase + Строчный ввод. + Wpisywanie tekstu. + + + Array. Seperate elements by using ,. + Array. Teile unterschiedliche Elemente mit ,. + Matriz. Separa elementos usando ,. + Массив. Разделяйте элемены, используя запятую. + Tablica. Oddziel elementy używając ,. + Array. Séparer les élements en utilisant ,. + + + Number + Nummer + Numero + Число + Číslo + Cyfra + Nombre + + + Uknown input type + Unbekannter Eingabetyp + Tipo de entrada desconocida + Неизвестный тип ввода + Neznámý vstup + Nieznany rodzaj danych + Input inconnue + + + Save input + Speichere Eingabe + Guardar entrada + Сохранить ввод + Uložit vstup + Zapisz dane + Sauvegarder les inputs + + + Include Client Settings + Beinhalte Client-Einstellungen + Incluir configuración de cliente + Включить настройки клиента + Zahrnout nastavení klienta + Zawrzyj ustawienia klienta + Inclure les paramètres de client + + + Exclude Client Settings + Schließe Client-Einstellungen aus + Excluir configuración de cliente + Исключить настройки клиента + Nezahrnout nastavení klienta + Wyklucz ustawienia klienta + Exclure les paramètres de client + + + Settings exported to clipboard + Einstellungen in die Zwischenablage exportiert + Configuración exportada al portapapeles + Настройки экспортированы в буфер обмена + Nastevení exportována do schránky + Ustawienia wyeksportowano do schowka + Paramètres exportés dans le presse-papier + + + \ No newline at end of file diff --git a/addons/overheating/stringtable.xml b/addons/overheating/stringtable.xml index aab3ebac6d..afafd44d55 100644 --- a/addons/overheating/stringtable.xml +++ b/addons/overheating/stringtable.xml @@ -1,153 +1,161 @@  + - - - Display text on jam - Zeige Text bei Ladehemmung - Mostrar texto al encasquillar - Показывать текст, когда клинит оружие - - - Display a notification whenever your weapon gets jammed - Zeige einen Hinweis wenn die Waffe eine Ladehemmung hat - Mostrar notificación cada vez que el arma se encasquille - Демонстровать уведомление, каждый раз, когда клинит Ваше оружие. - - - Spare barrel - Ersatzlauf - Cañón de repuesto - Zapasowa lufa - Náhradní hlaveň - Deuxième canon - Запасной ствол - Tartalék cső - Cano Reserva - Canna di ricambio - - - Use to swap barrel. - Benutzen, um Lauf zu wechseln. - Permite intercambiar el cañón - Umożliwia wymianę lufy - Používané k výměně hlavně - Utilisé pour changer de canon. - Используется для смены ствола. - Cső kicseréléséhez. - Use para trocar o cano/estriamento. - Usata per cambiare la canna. - - - Weapon jammed! - Ladehemmung! - Arma encasquillada! - Broń się zacięła! - Zbraň se zasekla! - Arme enrayée - Оружие заклинило! - Elakadt a fegyver! - Arma travada! - Arma inceppata! - - - Clear jam - Ladehemmung beheben - Desencasquillar el arma - Usuń zacięcie - Uvolnit zbraň - Désenrayer l'arme - Исправить клин оружия. - Hárítsd el az akadályt! - Destravar arma - Ripulisci l'arma - - - Jam cleared - Ladehemmung behoben - Arma desencasquillada - Zacięcie usunięte - Zbraň uvolněna - Arme désenrayée - Оружие исправлено - Akadály elhárítva! - Arma destravada - Arma pronta al fuoco - - - Swap barrel - Lauf wechseln - Cambiar el cañón - Wymień lufę - Vyměnit hlaveň - Changer de canon - Сменить ствол - Cserélj csövet! - Substituir cano - Sostiuisci la canna - - - Swapping barrel... - Lauf wird gewechselt... - Cambiando el cañón... - Wymienianie lufy... - Vyměňuji hlaveň ... - Changement du canon... - Смена ствола... - Cső cserélése... - Substituindo cano... - Sto sostituendo la canna ... - - - Swapped barrel - Lauf gewechselt - Cañón cambiado - Lufa wymieniona - Hlaveň vyměněna - Canon changé - Ствол сменен - Cső kicserélve! - Cano substituído - Canna sostituita - - - Check weapons temperature - Temperatur der Waffe prüfen - Verificar temperatura del arma - Sprawdź temperaturę broni - Vérifier la température de l'arme - Hőmérséklet ellenőrzése - Zjistit teplotu zbraně - Conferir temperatura da arma - Controlla la temperatura della canna - Проверить температуру оружия - - - Check weapon<br/>temperature - Verificar temperatura<br/>del arma - - - Checking temperature ... - Prüfe Temperatur ... - Verificando temperatura ... - Sprawdzanie temperatury ... - Vérification de la température ... - Hőmérséklet ellenőrzése... - Zjišťuju teplotu ... - Conferindo temperatura ... - Sto controllando la temperatura ... - Проверка температуры ... - - - Temperature - Temperatur - Temperatura - Temperatura - Température - Hőmérséklet - Teplota - Temperatura - Temperatura - Температура - - - + + + Display text on jam + Zeige Text bei Ladehemmung + Mostrar texto al encasquillar + Показывать текст, когда клинит оружие + Zobrazit upozornění při zaseknutí + Wyświetl tekst przy zacięciu broni + Afficher un texte à la surchauffe + + + Display a notification whenever your weapon gets jammed + Zeige einen Hinweis wenn die Waffe eine Ladehemmung hat + Mostrar notificación cada vez que el arma se encasquille + Демонстровать уведомление, каждый раз, когда клинит Ваше оружие. + Zobrazí upozornění při zaseknutí zbraně + Wyświetl powiadomienie za każdym razem, kiedy Twoja broń ulegnie zacięciu + Afficher un texte quand votre arme surchauffe + + + Spare barrel + Ersatzlauf + Cañón de repuesto + Zapasowa lufa + Náhradní hlaveň + Deuxième canon + Запасной ствол + Tartalék cső + Cano Reserva + Canna di ricambio + + + Use to swap barrel. + Benutzen, um Lauf zu wechseln. + Permite intercambiar el cañón + Umożliwia wymianę lufy + Používané k výměně hlavně + Utilisé pour changer de canon. + Используется для смены ствола. + Cső kicseréléséhez. + Use para trocar o cano/estriamento. + Usata per cambiare la canna. + + + Weapon jammed! + Ladehemmung! + Arma encasquillada! + Zacięcie! + Zbraň se zasekla! + Arme enrayée + Оружие заклинило! + Elakadt a fegyver! + Arma travada! + Arma inceppata! + + + Clear jam + Ladehemmung beheben + Desencasquillar el arma + Usuń zacięcie + Uvolnit zbraň + Désenrayer l'arme + Исправить клин оружия. + Hárítsd el az akadályt! + Destravar arma + Ripulisci l'arma + + + Jam cleared + Ladehemmung behoben + Arma desencasquillada + Zacięcie usunięte + Zbraň uvolněna + Arme désenrayée + Оружие исправлено + Akadály elhárítva! + Arma destravada + Arma pronta al fuoco + + + Swap barrel + Lauf wechseln + Cambiar el cañón + Wymień lufę + Vyměnit hlaveň + Changer de canon + Сменить ствол + Cserélj csövet! + Substituir cano + Sostiuisci la canna + + + Swapping barrel... + Lauf wird gewechselt... + Cambiando el cañón... + Wymienianie lufy... + Vyměňuji hlaveň ... + Changement du canon... + Смена ствола... + Cső cserélése... + Substituindo cano... + Sto sostituendo la canna ... + + + Swapped barrel + Lauf gewechselt + Cañón cambiado + Lufa wymieniona + Hlaveň vyměněna + Canon changé + Ствол сменен + Cső kicserélve! + Cano substituído + Canna sostituita + + + Check weapons temperature + Temperatur der Waffe prüfen + Verificar temperatura del arma + Sprawdź temperaturę broni + Vérifier la température de l'arme + Hőmérséklet ellenőrzése + Zjistit teplotu zbraně + Conferir temperatura da arma + Controlla la temperatura della canna + Проверить температуру оружия + + + Check weapon<br/>temperature + Verificar temperatura<br/>del arma + Sprawdź temperaturę<br/>broni + + + Checking temperature ... + Prüfe Temperatur ... + Verificando temperatura ... + Sprawdzanie temperatury ... + Vérification de la température ... + Hőmérséklet ellenőrzése... + Zjišťuju teplotu ... + Conferindo temperatura ... + Sto controllando la temperatura ... + Проверка температуры ... + + + Temperature + Temperatur + Temperatura + Temperatura + Température + Hőmérséklet + Teplota + Temperatura + Temperatura + Температура + + + \ No newline at end of file diff --git a/addons/realisticnames/stringtable.xml b/addons/realisticnames/stringtable.xml index 29fb5a736b..a743525707 100644 --- a/addons/realisticnames/stringtable.xml +++ b/addons/realisticnames/stringtable.xml @@ -1,1302 +1,1378 @@  - - - - XM312 - XM312 - XM312 - XM312 - XM312 - XM312 - XM312 - XM312 - XM312 - XM312A - - - XM312A - XM312A - XM312 - XM312A - XM312A - XM312A - XM312A - XM312A - XM312A - XM312A - - - XM312 (High) - XM312 (Hoch) - XM312 (Alto) - XM312 (Haut) - XM312 (Vysoký) - XM312 (Wysoki) - XM312 (Высокий) - XM312 (Alta) - XM312 (Magasított) - XM312 (Alta) - - - XM307 - XM307 - XM307 - XM307 - XM307 - XM307 - XM307 - XM307 - XM307 - XM307 - - - XM307A - XM307A - XM307A - XM307A - XM307A - XM307A - XM307A - XM307A - XM307A - XM307A - - - XM307 (High) - XM307 (Hoch) - XM307 (Alto) - XM307 (Haut) - XM307 (Vysoký) - XM307 (Wysoki) - XM307 (Высокий) - XM307 (Alta) - XM307 (Magasított) - XM307 (Alta) - - - Mini-Spike Launcher (AT) - Mini-Spike Lenkflugkörper (AT) - Lanzador Mini-Spike (AT) - Poste de tir Mini-Spike (AC) - Mini-Spike Odpalovač (AT) - Wyrzutnia Mini-Spike (AT) - Mini-Spike Пусковое устройство (ПТРК) - Lança-mísseis Mini-Spike (AC) - Mini-Spike rakétarendszer (páncéltörő) - Lanciatore Mini-Spike (AC) - - - Mini-Spike Launcher (AA) - Mini-Spike Lenkflugkörper (AA) - Lanzador Mini-Spike (AA) - Poste de tir Mini-Spike (AA) - Mini-Spike Odpalovač (AA) - Wyrzutnia Mini-Spike (AA) - Mini-Spike Пусковое устройство (ВВ) - Lança-mísseis Mini-Spike (AA) - Mini-Spike rakétarendszer (légvédelmi) - Lanciatore Mini-Spike (AA) - - - YABHON-R3 - YABHON-R3 - YABHON-R3 - YABHON-R3 - YABHON-R3 - YABHON-R3 - YABHON-R3 - YABHON-R3 - YABHON-R3 - YABHON-R3 - - - YABHON-R3 (CAS) - YABHON-R3 (Luftnahunterstützung) - YABHON-R3 (CAS) - YABHON-R3 (CAS) - YABHON-R3 (CAS) - YABHON-R3 (штурмовик) - - - M-ATV - M-ATV - M-ATV - M-ATV - M-ATV - M-ATV - M-ATV - M-ATV - M-ATV - M-ATV - - - M-ATV (HMG) - M-ATV (SMG) - M-ATV (HMG) - M-ATV (CKM) - M-ATV (TK) - M-ATV (HMG) - M-ATV (Пулемет) - M-ATV (HMG) - M-ATV (HMG) - M-ATV (HMG) - - - M-ATV (GMG) - M-ATV (GMW) - M-ATV (GMG) - M-ATV (GMG) - M-ATV (Granátomet) - M-ATV (GMG) - M-ATV (Гранатомет) - M-ATV (GMG) - M-ATV (GMG) - M-ATV (GMG) - - - Merkava Mk IV M - Merkava Mk IV M - Merkava Mk IV M - Merkawa Mk IV M - Merkava Mk IV M - Merkava Mk IV M - Меркава Mk IV M - Merkava Mk IV M - Merkava Mk IV M - Merkava Mk IV M - - - Merkava Mk IV LIC - Merkava Mk IV LIC - Merkava Mk IV LIC - Merkawa Mk IV LIC - Merkava Mk IV LIC - Merkava Mk IV LIC - Меркава Mk IV LIC - Merkava Mk IV LIC - Merkava Mk IV LIC - Merkava Mk IV LIC - - - Sholef - Sholef - Sholef - Sholef - Sholef - Sholef - Шолеф - Sholef - Sholef - Sholef - - - Seara - Seara - Seara - Seara - Seara - Seara - Seara - Seara - Seara - Seara - - - Namer - Namer - Namer - Namer - Namer - Namer - Намер - Namer - Namer - Namer - - - Bardelas - Bardelas - Bardelas - Bardelas - Bardelas - Bardelas - Bardelas - Bardelas - Bardelas - Bardelas - - - Patria AMV - Patria AMV - Patria AMV - Patria AMV - Patria AMV - Patria AMV - Patria AMV - Patria AMV - Patria AMV - Patria AMV - - - Nemmera - Nemmera - Nemmera - Nemmera - Nemmera - Nemmera - Nemmera - Nemmera - Nemmera - Nemmera - - - HEMTT Transport - HEMTT Transport - HEMTT de transporte - HEMTT Transportowy - HEMTT Valník - HEMTT Transport - HEMTT Транспортный - HEMTT Transporte - HEMTT szállítójármű - HEMTT da trasporto - - - HEMTT Transport (covered) - HEMTT Transport (bedeckt) - HEMTT de transporte (cubierto) - HEMTT Transportowy (zakryty) - HEMTT Valník (krytý) - HEMTT Transport (bâché) - HEMTT Транспортный (крытый) - HEMTT Transporte (coberto) - HEMTT szállítójármű (ponyvás) - HEMTT da trasporto (coperto) - - - HEMTT - HEMTT - HEMTT - HEMTT - HEMTT - HEMTT Tracteur - HEMTT - HEMTT - HEMTT - HEMTT - - - HEMTT Container - HEMTT Container - HEMTT de contenedor - HEMTT Kontener - HEMTT Skříňový - HEMTT Conteneur - HEMTT Контейнер - HEMTT Contêiner - HEMTT Konténer - HEMTT portacontainer - - - HEMTT Medical - HEMTT Sanitäter - HEMTT médico - HEMTT Medyczny - HEMTT Zdravotnický - HEMTT Sanitaire - HEMTT Медицинский - HEMTT Médico - HEMTT (egészségügyi) - HEMTT Medico - - - HEMTT Ammo - HEMTT Munition - HEMTT de munición - HEMTT Amunicyjny - HEMTT Muniční - HEMTT Munitions - HEMTT Боеприпасы - HEMTT Munições - HEMTT (lőszerszállító) - HEMTT di rifornimento munizioni - - - HEMTT Fuel - HEMTT Treibstoff - HEMTT de combustible - HEMTT Cysterna - HEMTT Cisterna - HEMTT Citerne - HEMTT Заправщик - HEMTT Combustível - HEMTT (üzemanyag-szállító) - HEMTT di rifornimento carburante - - - HEMTT Repair - HEMTT Instandsetzung - HEMTT de reparación - HEMTT Naprawczy - HEMTT Opravárenský - HEMTT Réparation - HEMTT Ремонтный - HEMTT Reparador - HEMTT (szerelő-jármű) - HEMTT Riparatore - - - Fennek - Fennek - Fennek - Fennek - Fennek - Fennek - Феннек - Fennek - Fennek - Fennek - - - Fennek (HMG) - Fennek (SMG) - Fennek (HMG) - Fennek (CKM) - Fennek (TK) - Fennek (HMG) - Феннек (Пулемет) - Fennek (HMG) - Fennek (HMG) - Fennek (HMG) - - - Fennek (GMG) - Fennek (GMW) - Fennek (GMG) - Fennek (GMG) - Fennek (granátomet) - Fennek (GMG) - Феннек (Гранатомет) - Fennek (GMG) - Fennek (GMG) - Fennek (GMG) - - - Leopard 2SG - Leopard 2SG - Leopard 2SG - Leopard 2SG - Leopard 2SG - Leopard 2SG - Леопард 2SG - Leopard 2SG - Leopard 2SG - Leopard 2SG - - - FV510 Warrior - FV510 Warrior - FV510 Warrior - FV510 Warrior - FV510 Warrior - FV510 Warrior - FV510 Уорриор - FV510 Warrior - FV510 Warrior - FV510 Warrior - - - Pandur II - Pandur II - Pandur II - Pandur II - Pandur II - Pandur II - Pandur II - Pandur II - Pandur II - Pandur II - - - KamAZ Transport - KamAZ Transport - KamAZ de transporte - KamAZ transportowy - KAMAZ Valník - KamAZ Transport - КамАЗ Траспортный - KamAZ Transporte - KamAZ szállítójármű - KamAZ da trasporto - - - KamAZ Transport (covered) - KamAZ Transport (bedeckt) - KamAZ de transporte (cubierto) - KamAZ Transportowy (zakryty) - KAMAZ Valník (krytý) - KamAZ Transport (bâché) - КамАЗ Траспортный (Крытый) - KamAZ Transporte (coberto) - KamAZ szállítójármű (ponyvás) - KamAZ da trasporto (coperto) - - - KamAZ Ammo - KamAZ Munition - KamAZ de munición - KamAZ Amunicyjny - KAMAZ Muniční - KamAZ Munitions - КамАЗ Боеприпасы - KamAZ Munições - KamAZ (lőszerszállító) - KamAZ di rifornimento munizioni - - - KamAZ Fuel - KamAZ Treibstoff - KamAZ de combustible - KamAZ cysterna - KAMAZ Cisterna - KamAZ Citerne - КамАЗ Заправщик - KamAZ Combustível - KamAZ (üzemanyag-szállító) - KamAZ di rifornimento carburante - - - KamAZ Repair - KamAZ Instandsetzung - KamAZ de reparación - KamAZ Naprawczy - KAMAZ Opravárenský - KamAZ Réparation - КамАЗ Ремонтный - KamAZ Reparador - KamAZ (szerelő-jármű) - KamAZ riparatore - - - KamAZ Medical - KamAZ Sanitäter - KamAZ médico - KamAZ Medyczny - KAMAZ Zdravotnický - KamAZ Sanitaire - КамАЗ Медицинский - KamAZ Médico - KamAZ (egészségügyi) - KamAZ Medico - - - Punisher - Punisher - Punisher - Punisher - Punisher - Punisher - Kаратель - Punisher - Punisher - Punisher - - - Punisher (HMG) - Punisher (SMG) - Punisher (HMG) - Punisher (CKM) - Punisher (TK) - Punisher (HMG) - Kаратель (Пулемет) - Punisher (HMG) - Punisher (HMG) - Punisher (HMG) - - - Punisher (GMG) - Punisher (GMW) - Punisher (GMG) - Punisher (CKM) - Punisher (granátomet) - Punisher (GMG) - Kаратель (Гранатомет) - Punisher (GMG) - Punisher (GMG) - Punisher (GMG) - - - T100 Black Eagle - T100 Black Eagle - T100 Black Eagle - T100 Black Eagle - T100 Black Eagle - T100 Black Eagle - T100 Черный Орел - T100 Black Eagle - T100 Black Eagle - T100 Black Eagle - - - 2S9 Sochor - 2S9 Sochor - 2S9 Sochor - 259 Sochor - 2S9 Sochor - 2S9 Sochor - 2S9 Сокор - 2S9 Sochor - 2S9 Sochor - 2S9 Sochor - - - BM-2T Stalker - BM-2T Stalker - BM-2T Stalker - BM-2T Stalker - BM-2T Stalker - BM-2T Stalker - БМ-2Т Сталкер - BM-2T Stalker - BM-2T Stalker - BM-2T Stalker - - - ZSU-35 Tigris - ZSU-35 Tigris - ZSU-35 Tigris - ZSU-35 Tigris - ZSU-35 Tigris - ZSU-35 Tigris - ЗСУ-35 Tigris - ZSU-35 Tigris - ZSU-35 Tigris - ZSU-35 Tigris - - - Otokar ARMA - Otokar ARMA - Otokar ARMA - Otokar ARMA - Otokar ARMA - Otokar ARMA - Otokar ARMA - Otokar ARMA - Otokar ARMA - Otokar ARMA - - - Typhoon Transport - Typhoon Transport - Typhoon de transporte - Typhoon Transportowy - Typhoon Valník - Typhoon Transport - Тайфун Транспортный - Typhoon Transporte - Typhoon szállítójármű - Typhoon da trasporto - - - Typhoon Transport (covered) - Typhoon Transport (bedeckt) - Typhoon de transporte (cubierto) - Typhoon Transportowy (przykryty) - Typhoon Valník (krytý) - Typhoon Transport (bâché) - Тайфун Транспортный (kрытый) - Typhoon Transporte (coberto) - Typhoon szállítójármű (ponyvás) - Typhoon da trasporto (coperto) - - - Typhoon Device - Typhoon Gerät - Typhoon de dispositivo - Typhoon Urządzenie - Typhoon Zařízení - Typhoon Dispositif - Тайфун Устройство - Typhoon Dispositivo - Typhoon (szerkezet) - Typhoon per dispositivo - - - Typhoon Ammo - Typhoon Munition - Typhoon de munición - Typhoon Amunicyjny - Typhoon Muniční - Typhoon Munitions - Тайфун Боеприпасы - Typhoon Munições - Typhoon (lőszerszállító) - Typhoon di rifornimento munizioni - - - Typhoon Fuel - Typhoon Treibstoff - Typhoon de combustible - Typhoon Cysterna - Typhoon Cisterna - Typhoon Citerne - Тайфун Заправщик - Typhoon Combustível - Typhoon (üzemanyag-szállító) - Typhoon di rifornimento carburante - - - Typhoon Repair - Typhoon Instandsetzung - Typhoon de reparación - Typhoon Naprawczy - Typhoon Opravárenský - Typhoon Réparation - Тайфун Ремонтный - Typhoon Reparador - Typhoon (szerelő-jármű) - Typhoon riparatore - - - Typhoon Medical - Typhoon Sanitäter - Typhoon médico - Typhoon Medyczny - Typhoon Zdravotnický - Typhoon Sanitaire - Тайфун Медицинский - Typhoon Médico - Typhoon (egészségügyi) - Typhoon medico - - - RAH-66 Comanche - RAH-66 Comanche - RAH-66 Comanche - RAH-66 Comanche - RAH-66 Comanche - RAH-66 Commanche - RAH-66 Команч - RAH-66 Comanche - RAH-66 Comanche - RAH-66 Comanche - - - MH-6 Little Bird - MH-6 Little Bird - MH-6 Litte Bird - MH-6 Little Bird - MH-6 Little Bird - MH-6 Little Bird - MH-6 Little Bird - MH-6 Little Bird - MH-6 Little Bird - MH-6 Little Bird - - - AH-6 Little Bird - AH-6 Little Bird - AH-6 Little Bird - AH-6 Little Bird - AH-6 Little Bird - AH-6 Little Bird - AH-6 Little Bird - AH-6 Little Bird - AH-6 Little Bird - AH-6 Little Bird - - - CH-47I Chinook - CH-47I Chinook - CH-47I Chinook - CH-47I Chinook - CH-47I Chinook - CH-47I Chinook - CH-47I Chinook - CH-47I Chinook - CH-47I Chinook - CH-47I Chinook - - - CH-47I Chinook (unarmed) - CH-47I Chinook (unbewaffnet) - CH-47I Chinnok (Desarmado) - CH-47I Chinook (nieuzbrojony) - CH-47I Chinook (невооруженный) - CH-47I Chinook (Neozbrojený) - - - A-10D Thunderbolt II - A-10D Thunderbolt II - A-10D Thunderbolt II - A-10D Thunderbolt II - A-10D Thunderbolt II - A-10D Thunderbolt II - A-10D Тандерболт II - A-10D Thunderbolt II - A-10D Thunderbolt II - A-10D Thunderbolt II - - - AW159 Wildcat - AW159 Wildcat - AW159 Wildcat - AW159 Wildcat - AW159 Wildcat - AW159 Wildcat - AW159 Wildcat - AW159 Wildcat - AW159 Wildcat - AW159 Wildcat - - - AW159 Wildcat (unarmed) - AW159 Wildcat (unbewaffnet) - AW159 Wildcat (desarmado) - AW159 Wildcat (nieuzbrojony) - AW159 Wildcat (neozbrojený) - AW159 Wildcat (non-armé) - AW159 Wildcat (невооруженный) - AW159 Wildcat (desarmado) - AW159 Wildcat (fegyvertelen) - AW159 Wildcat (disarmato) - - - AW101 Merlin - AW101 Merlin - AW101 Merlin - AW101 Merlin - AW101 Merlin - AW101 Merlin - AW101 Мерлин - AW101 Merlin - AW101 Merlin - AW101 Merlin - - - L-159 ALCA (CAS) - L-159 ALCA (CAS) - L-159 ALCA (CAS) - L-159 ALCA (CAS) - L-159 ALCA (CAS) - L-159 ALCA (CAS) - L-159 Альбатрос (CAS) - L-159 ALCA (CAS) - L-159 ALCA (CAS) - L-159 ALCA (CAS) - - - L-159 ALCA (AA) - L-159 ALCA (AA) - L-159 ALCA (AA) - L-159 ALCA (AA) - L-159 ALCA (AA) - L-159 ALCA (AA) - L-159 Альбатрос (AA) - L-159 ALCA (ВВ) - L-159 ALCA (AA) - L-159 ALCA (AA) - - - Ka-60 Kasatka - Ka-60 Kasatka - Ka-60 Kasatka - Ka-60 Kasatka - Ka-60 Kasatka - Ka-60 Kasatka - Ka-60 Касатка - Ka-60 Kasatka - Ka-60 Kasatka - Ka-60 Kasatka - - - Ka-60 Kasatka (unarmed) - Ka-60 Kasatka (unbewaffnet) - Ka-60 Kasatka (desarmado) - Ka-60 Kasatka (nieuzbrojony) - Ka-60 Kasatka (neozbrojená) - Ka-60 Kasatka (non-armé) - Ka-60 Касатка (невооруженный) - Ka-60 Kasatka (desarmado) - Ka-60 Kasatka (fegyvertelen) - Ka-60 Kasatka (disarmato) - - - Yak-130 - Yak-130 - Yak-130 - Jak-130 - Jak-130 - Yak-130 - Як-130 - Yak-130 - Jak-130 - Yak-130 - - - MD 500 - MD 500 - MD 500 - MD 500 - MD 500 - MD 500 - MD 500 - MD 500 - MD 500 - MD 500 - - - M4A1 SLAM - M4A1 SLAM - M4A1 SLAM - M4A1 SLAM - M4A1 SLAM - M4A1 SLAM - M4A1 SLAM - M4A1 SLAM - M4A1 SLAM - M4A1 SLAM - - - M18A1 Claymore - M18A1 Claymore - M18A1 Claymore - Mina kierunkowa M18A1 Claymore - M18A1 Mina Claymore - M18A1 Claymore Mine antipersonnel à effet dirigé - M18A1 Клеймор - M18A1 Claymore - M18A1 Claymore akna - M18A1 Claymore Mina antiuomo - - - M183 Demolition Charge Assembly - M183 Geballte Sprengladung - Conjunto de carga de demolición M183 - Ładunek burzący M183 - M183 Demoliční nálož - M183 Charge de Démolition - M183 Комплектный подрывной заряд - M183 Sacola de Demolição - M183 romboló töltet - M183 Demolition Charge Assembly - - - M112 Demolition Block - M112 Sprengladung - Bloque de demolición M112 - Ładunek burzący M112 - M112 Výbušná nálož - Pétard M112 - M112 подрывной заряд - M112 Carga de Demolição - M112 romboló töltet - M112 Demolition Block - - - M67 Fragmentation Grenade - M67 Splittergranate - Granada de fragmentación M67 - Granat obronny M67 - M67 Granát - M67 Grenade à fragmentation - M67 ручная осколочная граната - M67 Granada de fragmentação - M67 repeszgránát - M67 Granata a frammentazione - - - M83 Smoke Grenade (White) - M83 Rauchgranate (Weiss) - Granada de humo M83 (Blanco) - Granat dymny M83 (Biały) - M83 Kouřový Granát (Bílý) - M83 Grenade fumigène (Blanche) - M83 дымовая граната (Белый) - M83 Granada de fumaça (Branca) - M83 füstgránát (Fehér) - M83 Granata fumogena (Bianco) - - - M18 Smoke Grenade (Blue) - M18 Rauchgranate (Blau) - Granada de humo M18 (Azul) - Granat dymny M18 (Niebieski) - M18 Kouřový Granát (Modrý) - M18 Grenade fumigène (Bleue) - M18 дымовая граната (Синий) - M18 Granada de fumaça (Azul) - M18 füstgránát (Kék) - M18 Granata fumogena (Blu) - - - M18 Smoke Grenade (Green) - M18 Rauchgranate (Grün) - Granada de humo M18 (Verde) - Granat dymny M18 (Zielony) - M18 Kouřový Granát (Zelený) - M18 Grenade fumigène (Verte) - M18 дымовая граната (Зелёный) - M18 Granada de fumaça (Verde) - M18 füstgránát (Zöld) - M18 Granata fumogena (Verde) - - - M18 Smoke Grenade (Orange) - M18 Rauchgranate (Orange) - Granada de humo M18 (Naranja) - Granat dymny M18 (Pomarańczowy) - M18 Kouřový Granát (Oranžový) - M18 Grenade fumigène (Orange) - M18 дымовая граната (Оранжевый) - M18 Granada de fumaça (Laranja) - M18 füstgránát (Narancssárga) - M18 Granata fumogena (Arancione) - - - M18 Smoke Grenade (Purple) - M18 Rauchgranate (Violett) - Granada de humo M18 (Púrpura) - Granat dymny M18 (Fioletowy) - M18 Kouřový Granát (Fialový) - M18 Grenade fumigène (Pourpre) - M18 дымовая граната (Пурпурный) - M18 Granada de fumaça (Roxa) - M18 füstgránát (Lila) - M18 Granata fumogena (Viola) - - - M18 Smoke Grenade (Red) - M18 Rauchgranate (Rot) - Granada de humo M18 (Rojo) - Granat dymny M18 (Czerwony) - M18 Kouřový Granát (Červený) - M18 Grenade fumigène (Rouge) - M18 дымовая граната (Красный) - M18 Granada de fumaça (Vermelha) - M18 füstgránát (Piros) - M18 Granata fumogena (Rosso) - - - M18 Smoke Grenade (Yellow) - M18 Rauchgranate (Gelb) - Granada de humo M18 (Amarillo) - Granat dymny M18 (Żółty) - M18 Kouřový Granát (Žlutý) - M18 Grenade fumigène (Jaune) - M183 дымовая граната (Жёлтые) - M18 Granada de fumaça (Amarela) - M18 füstgránát (Sárga) - M18 Granata fumogena (Giallo) - - - M15 Anti-Tank Mine - M15 Panzerabwehrmine - Mina antitanque M15 - Mina przeciwpancerna M15 - M15 Protitanková Mina - M15 Mine antichar - M15 противотанковая мина - M15 Mina anticarro - M15 harckocsiakna - M15 Mine anticarro - - - VS-50 Anti-Personnel Mine - VS-50 Antipersonenmine - Mina antipersona VS-50 - Mina przeciwpiechotna VS-50 - VS-50 Protipěchotní Mina - VS-50 Mine antipersonnel à pression - VS-50 Противопехотная мина - VS-50 Mina antipessoal - VS-50 gyalogsági taposóakna - VS-50 Mine antiuomo - - - M26 Anti-Personnel Bounding Mine - M26 Antipersonensprungmine - Mina antipersona M26 - Mina przeciwpiechotna M26 - M26 Šrapnelová Mina - M26 Mine antipersonnel bondissante - M26 Противопехотная мина - M26 Mina saltadora antipessoal - M26 gyalogsági ugróakna - M26 Mine saltanti antiuomo - - - PMR-3 Anti-Personnel Tripwire Mine - PMR-3 Antipersonenstolperdrahtmine - Mina antipersona de alambre PMR-3 - Mina przeciwpiechotna PMR-3 - PMR-3 Nástražná Mina - PMR-3 Mine antipersonnel à traction - PMR-3 Противопехотная мина - PMR-3 Mina antipessoal (armadilha) - PMR-3 botlódrótos gyalogsági akna - PMR-3 Mine antiuomo - - - P99 - P99 - - - MP-443 Grach - MP-443 Grach - - - ACP-C2 - ACP-C2 - - - FNX-45 Tactical - FNX-45 Tactical - - - Chiappa Rhino 60DS - Chiappa Rhino 60DS - - - Taurus Judge - Taurus Judge - - - NLAW - NLAW - - - RPG-32 - RPG-32 - - - Mini-Spike (AA) - Mini-Spike (AA) - - - Mini-Spike (AT) - Mini-Spike (AT) - - - MX - MX - - - MX (Black) - MX (Black) - - - MXC - MXC - - - MXC (Black) - MXC (Black) - - - MX 3GL - MX 3GL - - - MX 3GL (Black) - MX 3GL (Black) - - - MX LSW - MX LSW - - - MX LSW (Black) - MX LSW (Black) - - - MXM - MXM - - - MXM (Black) - MXM (Black) - - - KT2002 Katiba - KT2002 Katiba - - - KT2002C Katiba - KT2002C Katiba - - - KT2002 Katiba KGL - KT2002 Katiba KGL - - - F2000 (Camo) - F2000 (Camo) - - - F2000 - F2000 - - - F2000 Tactical (Camo) - F2000 Tactical (Camo) - - - F2000 Tactical - F2000 Tactical - - - F2000 EGLM (Camo) - F2000 EGLM (Camo) - - - F2000 EGLM - F2000 EGLM - - - TAR-21 - TAR-21 - - - CTAR-21 - CTAR-21 - - - TAR-21 EGLM - TAR-21 EGLM - - - Vector SMG - Vector SMG - - - Scorpion Evo 3 A1 - Scorpion Evo 3 A1 - - - CPW - CPW - - - RFB SDAR - RFB SDAR - - - Stoner 99 LMG - Stoner 99 LMG - - - Negev NG7 - Negev NG7 - - - Mk14 Mod 1 EBR - Mk14 Mod 1 EBR - - - GM6 Lynx - GM6 Lynx - - - GM6 Lynx (Camo) - GM6 Lynx (Camo) - - - M200 Intervention - M200 Intervention - - - M200 Intervention (Camo) - M200 Intervention (Camo) - - - VS-121 - VS-121 - - - TODO: MAR-10 .338 - - - TODO: MAR-10 .338 (Black) - - - TODO: MAR-10 .338 (Camo) - - - TODO: MAR-10 .338 (Sand) - - - TODO: Mk-I EMR 7.62 mm - - - TODO: Mk-I EMR 7.62 mm (Black) - - - TODO: Mk-I EMR 7.62 mm (Khaki) - - - TODO: Mk-I EMR 7.62 mm (Sand) - - - TODO: Mk-I EMR 7.62 mm (Camo) - - - TODO: Mk-I EMR 7.62 mm (Woodland) - - - TODO: NATO DMR (provisional) spotter - - - TODO: ASP-1 Kir 12.7 mm - - - TODO: ASP-1 Kir 12.7 mm (Black) - - - TODO: ASP-1 Kir 12.7 mm (Tan) - - - TODO: Cyrus 9.3 mm - - - TODO: Cyrus 9.3 mm (Black) - - - TODO: Cyrus 9.3 mm (Hex) - - - TODO: Cyrus 9.3 mm (Tan) - - - TODO: Mk14 7.62 mm - - - TODO: Mk14 7.62 mm (Camo) - - - TODO: Mk14 7.62 mm (Olive) - - - TODO: Navid 9.3 mm - - - TODO: Navid 9.3 mm (Hex) - - - TODO: Navid 9.3 mm (Tan) - - - TODO: SPMG .338 - - - TODO: SPMG .338 (MTP) - - - TODO: SPMG .338 (Black) - - - TODO: SPMG .338 (Sand) - - - \ No newline at end of file + + + XM312 + XM312 + XM312 + XM312 + XM312 + XM312 + XM312 + XM312 + XM312 + XM312A + + + XM312A + XM312A + XM312 + XM312A + XM312A + XM312A + XM312A + XM312A + XM312A + XM312A + + + XM312 (High) + XM312 (Hoch) + XM312 (Alto) + XM312 (Haut) + XM312 (Vysoký) + XM312 (Wysoki) + XM312 (Высокий) + XM312 (Alta) + XM312 (Magasított) + XM312 (Alta) + + + XM307 + XM307 + XM307 + XM307 + XM307 + XM307 + XM307 + XM307 + XM307 + XM307 + + + XM307A + XM307A + XM307A + XM307A + XM307A + XM307A + XM307A + XM307A + XM307A + XM307A + + + XM307 (High) + XM307 (Hoch) + XM307 (Alto) + XM307 (Haut) + XM307 (Vysoký) + XM307 (Wysoki) + XM307 (Высокий) + XM307 (Alta) + XM307 (Magasított) + XM307 (Alta) + + + Mini-Spike Launcher (AT) + Mini-Spike Lenkflugkörper (AT) + Lanzador Mini-Spike (AT) + Poste de tir Mini-Spike (AC) + Mini-Spike Odpalovač (AT) + Wyrzutnia Mini-Spike (AT) + Mini-Spike Пусковое устройство (ПТРК) + Lança-mísseis Mini-Spike (AC) + Mini-Spike rakétarendszer (páncéltörő) + Lanciatore Mini-Spike (AC) + + + Mini-Spike Launcher (AA) + Mini-Spike Lenkflugkörper (AA) + Lanzador Mini-Spike (AA) + Poste de tir Mini-Spike (AA) + Mini-Spike Odpalovač (AA) + Wyrzutnia Mini-Spike (AA) + Mini-Spike Пусковое устройство (ВВ) + Lança-mísseis Mini-Spike (AA) + Mini-Spike rakétarendszer (légvédelmi) + Lanciatore Mini-Spike (AA) + + + YABHON-R3 + YABHON-R3 + YABHON-R3 + YABHON-R3 + YABHON-R3 + YABHON-R3 + YABHON-R3 + YABHON-R3 + YABHON-R3 + YABHON-R3 + + + YABHON-R3 (CAS) + YABHON-R3 (Luftnahunterstützung) + YABHON-R3 (CAS) + YABHON-R3 (CAS) + YABHON-R3 (CAS) + YABHON-R3 (штурмовик) + + + M-ATV + M-ATV + M-ATV + M-ATV + M-ATV + M-ATV + M-ATV + M-ATV + M-ATV + M-ATV + + + M-ATV (HMG) + M-ATV (SMG) + M-ATV (HMG) + M-ATV (CKM) + M-ATV (TK) + M-ATV (HMG) + M-ATV (Пулемет) + M-ATV (HMG) + M-ATV (HMG) + M-ATV (HMG) + + + M-ATV (GMG) + M-ATV (GMW) + M-ATV (GMG) + M-ATV (GMG) + M-ATV (Granátomet) + M-ATV (GMG) + M-ATV (Гранатомет) + M-ATV (GMG) + M-ATV (GMG) + M-ATV (GMG) + + + Merkava Mk IV M + Merkava Mk IV M + Merkava Mk IV M + Merkawa Mk IV M + Merkava Mk IV M + Merkava Mk IV M + Меркава Mk IV M + Merkava Mk IV M + Merkava Mk IV M + Merkava Mk IV M + + + Merkava Mk IV LIC + Merkava Mk IV LIC + Merkava Mk IV LIC + Merkawa Mk IV LIC + Merkava Mk IV LIC + Merkava Mk IV LIC + Меркава Mk IV LIC + Merkava Mk IV LIC + Merkava Mk IV LIC + Merkava Mk IV LIC + + + Sholef + Sholef + Sholef + Sholef + Sholef + Sholef + Шолеф + Sholef + Sholef + Sholef + + + Seara + Seara + Seara + Seara + Seara + Seara + Seara + Seara + Seara + Seara + + + Namer + Namer + Namer + Namer + Namer + Namer + Намер + Namer + Namer + Namer + + + Bardelas + Bardelas + Bardelas + Bardelas + Bardelas + Bardelas + Bardelas + Bardelas + Bardelas + Bardelas + + + Patria AMV + Patria AMV + Patria AMV + Patria AMV + Patria AMV + Patria AMV + Patria AMV + Patria AMV + Patria AMV + Patria AMV + + + Nemmera + Nemmera + Nemmera + Nemmera + Nemmera + Nemmera + Nemmera + Nemmera + Nemmera + Nemmera + + + HEMTT Transport + HEMTT Transport + HEMTT de transporte + HEMTT Transportowy + HEMTT Valník + HEMTT Transport + HEMTT Транспортный + HEMTT Transporte + HEMTT szállítójármű + HEMTT da trasporto + + + HEMTT Transport (covered) + HEMTT Transport (bedeckt) + HEMTT de transporte (cubierto) + HEMTT Transportowy (zakryty) + HEMTT Valník (krytý) + HEMTT Transport (bâché) + HEMTT Транспортный (крытый) + HEMTT Transporte (coberto) + HEMTT szállítójármű (ponyvás) + HEMTT da trasporto (coperto) + + + HEMTT + HEMTT + HEMTT + HEMTT + HEMTT + HEMTT Tracteur + HEMTT + HEMTT + HEMTT + HEMTT + + + HEMTT Container + HEMTT Container + HEMTT de contenedor + HEMTT Kontener + HEMTT Skříňový + HEMTT Conteneur + HEMTT Контейнер + HEMTT Contêiner + HEMTT Konténer + HEMTT portacontainer + + + HEMTT Medical + HEMTT Sanitäter + HEMTT médico + HEMTT Medyczny + HEMTT Zdravotnický + HEMTT Sanitaire + HEMTT Медицинский + HEMTT Médico + HEMTT (egészségügyi) + HEMTT Medico + + + HEMTT Ammo + HEMTT Munition + HEMTT de munición + HEMTT Amunicyjny + HEMTT Muniční + HEMTT Munitions + HEMTT Боеприпасы + HEMTT Munições + HEMTT (lőszerszállító) + HEMTT di rifornimento munizioni + + + HEMTT Fuel + HEMTT Treibstoff + HEMTT de combustible + HEMTT Cysterna + HEMTT Cisterna + HEMTT Citerne + HEMTT Заправщик + HEMTT Combustível + HEMTT (üzemanyag-szállító) + HEMTT di rifornimento carburante + + + HEMTT Repair + HEMTT Instandsetzung + HEMTT de reparación + HEMTT Naprawczy + HEMTT Opravárenský + HEMTT Réparation + HEMTT Ремонтный + HEMTT Reparador + HEMTT (szerelő-jármű) + HEMTT Riparatore + + + Fennek + Fennek + Fennek + Fennek + Fennek + Fennek + Феннек + Fennek + Fennek + Fennek + + + Fennek (HMG) + Fennek (SMG) + Fennek (HMG) + Fennek (CKM) + Fennek (TK) + Fennek (HMG) + Феннек (Пулемет) + Fennek (HMG) + Fennek (HMG) + Fennek (HMG) + + + Fennek (GMG) + Fennek (GMW) + Fennek (GMG) + Fennek (GMG) + Fennek (granátomet) + Fennek (GMG) + Феннек (Гранатомет) + Fennek (GMG) + Fennek (GMG) + Fennek (GMG) + + + Leopard 2SG + Leopard 2SG + Leopard 2SG + Leopard 2SG + Leopard 2SG + Leopard 2SG + Леопард 2SG + Leopard 2SG + Leopard 2SG + Leopard 2SG + + + FV510 Warrior + FV510 Warrior + FV510 Warrior + FV510 Warrior + FV510 Warrior + FV510 Warrior + FV510 Уорриор + FV510 Warrior + FV510 Warrior + FV510 Warrior + + + Pandur II + Pandur II + Pandur II + Pandur II + Pandur II + Pandur II + Pandur II + Pandur II + Pandur II + Pandur II + + + KamAZ Transport + KamAZ Transport + KamAZ de transporte + KamAZ transportowy + KAMAZ Valník + KamAZ Transport + КамАЗ Траспортный + KamAZ Transporte + KamAZ szállítójármű + KamAZ da trasporto + + + KamAZ Transport (covered) + KamAZ Transport (bedeckt) + KamAZ de transporte (cubierto) + KamAZ Transportowy (zakryty) + KAMAZ Valník (krytý) + KamAZ Transport (bâché) + КамАЗ Траспортный (Крытый) + KamAZ Transporte (coberto) + KamAZ szállítójármű (ponyvás) + KamAZ da trasporto (coperto) + + + KamAZ Ammo + KamAZ Munition + KamAZ de munición + KamAZ Amunicyjny + KAMAZ Muniční + KamAZ Munitions + КамАЗ Боеприпасы + KamAZ Munições + KamAZ (lőszerszállító) + KamAZ di rifornimento munizioni + + + KamAZ Fuel + KamAZ Treibstoff + KamAZ de combustible + KamAZ cysterna + KAMAZ Cisterna + KamAZ Citerne + КамАЗ Заправщик + KamAZ Combustível + KamAZ (üzemanyag-szállító) + KamAZ di rifornimento carburante + + + KamAZ Repair + KamAZ Instandsetzung + KamAZ de reparación + KamAZ Naprawczy + KAMAZ Opravárenský + KamAZ Réparation + КамАЗ Ремонтный + KamAZ Reparador + KamAZ (szerelő-jármű) + KamAZ riparatore + + + KamAZ Medical + KamAZ Sanitäter + KamAZ médico + KamAZ Medyczny + KAMAZ Zdravotnický + KamAZ Sanitaire + КамАЗ Медицинский + KamAZ Médico + KamAZ (egészségügyi) + KamAZ Medico + + + Punisher + Punisher + Punisher + Punisher + Punisher + Punisher + Kаратель + Punisher + Punisher + Punisher + + + Punisher (HMG) + Punisher (SMG) + Punisher (HMG) + Punisher (CKM) + Punisher (TK) + Punisher (HMG) + Kаратель (Пулемет) + Punisher (HMG) + Punisher (HMG) + Punisher (HMG) + + + Punisher (GMG) + Punisher (GMW) + Punisher (GMG) + Punisher (CKM) + Punisher (granátomet) + Punisher (GMG) + Kаратель (Гранатомет) + Punisher (GMG) + Punisher (GMG) + Punisher (GMG) + + + T100 Black Eagle + T100 Black Eagle + T100 Black Eagle + T100 Black Eagle + T100 Black Eagle + T100 Black Eagle + T100 Черный Орел + T100 Black Eagle + T100 Black Eagle + T100 Black Eagle + + + 2S9 Sochor + 2S9 Sochor + 2S9 Sochor + 259 Sochor + 2S9 Sochor + 2S9 Sochor + 2S9 Сокор + 2S9 Sochor + 2S9 Sochor + 2S9 Sochor + + + BM-2T Stalker + BM-2T Stalker + BM-2T Stalker + BM-2T Stalker + BM-2T Stalker + BM-2T Stalker + БМ-2Т Сталкер + BM-2T Stalker + BM-2T Stalker + BM-2T Stalker + + + ZSU-35 Tigris + ZSU-35 Tigris + ZSU-35 Tigris + ZSU-35 Tigris + ZSU-35 Tigris + ZSU-35 Tigris + ЗСУ-35 Tigris + ZSU-35 Tigris + ZSU-35 Tigris + ZSU-35 Tigris + + + Otokar ARMA + Otokar ARMA + Otokar ARMA + Otokar ARMA + Otokar ARMA + Otokar ARMA + Otokar ARMA + Otokar ARMA + Otokar ARMA + Otokar ARMA + + + Typhoon Transport + Typhoon Transport + Typhoon de transporte + Typhoon Transportowy + Typhoon valník + Typhoon Transport + Тайфун Транспортный + Typhoon Transporte + Typhoon szállítójármű + Typhoon da trasporto + + + Typhoon Transport (covered) + Typhoon Transport (bedeckt) + Typhoon de transporte (cubierto) + Typhoon Transportowy (przykryty) + Typhoon valník (krytý) + Typhoon Transport (bâché) + Тайфун Транспортный (kрытый) + Typhoon Transporte (coberto) + Typhoon szállítójármű (ponyvás) + Typhoon da trasporto (coperto) + + + Typhoon Device + Typhoon Gerät + Typhoon de dispositivo + Typhoon Urządzenie + Typhoon zařízení + Typhoon Dispositif + Тайфун Устройство + Typhoon Dispositivo + Typhoon (szerkezet) + Typhoon per dispositivo + + + Typhoon Ammo + Typhoon Munition + Typhoon de munición + Typhoon Amunicyjny + Typhoon muniční + Typhoon Munitions + Тайфун Боеприпасы + Typhoon Munições + Typhoon (lőszerszállító) + Typhoon di rifornimento munizioni + + + Typhoon Fuel + Typhoon Treibstoff + Typhoon de combustible + Typhoon Cysterna + Typhoon cisterna + Typhoon Citerne + Тайфун Заправщик + Typhoon Combustível + Typhoon (üzemanyag-szállító) + Typhoon di rifornimento carburante + + + Typhoon Repair + Typhoon Instandsetzung + Typhoon de reparación + Typhoon Naprawczy + Typhoon opravárenský + Typhoon Réparation + Тайфун Ремонтный + Typhoon Reparador + Typhoon (szerelő-jármű) + Typhoon riparatore + + + Typhoon Medical + Typhoon Sanitäter + Typhoon médico + Typhoon Medyczny + Typhoon zdravotnický + Typhoon Sanitaire + Тайфун Медицинский + Typhoon Médico + Typhoon (egészségügyi) + Typhoon medico + + + RAH-66 Comanche + RAH-66 Comanche + RAH-66 Comanche + RAH-66 Comanche + RAH-66 Comanche + RAH-66 Commanche + RAH-66 Команч + RAH-66 Comanche + RAH-66 Comanche + RAH-66 Comanche + + + MH-6 Little Bird + MH-6 Little Bird + MH-6 Litte Bird + MH-6 Little Bird + MH-6 Little Bird + MH-6 Little Bird + MH-6 Little Bird + MH-6 Little Bird + MH-6 Little Bird + MH-6 Little Bird + + + AH-6 Little Bird + AH-6 Little Bird + AH-6 Little Bird + AH-6 Little Bird + AH-6 Little Bird + AH-6 Little Bird + AH-6 Little Bird + AH-6 Little Bird + AH-6 Little Bird + AH-6 Little Bird + + + CH-47I Chinook + CH-47I Chinook + CH-47I Chinook + CH-47I Chinook + CH-47I Chinook + CH-47I Chinook + CH-47I Chinook + CH-47I Chinook + CH-47I Chinook + CH-47I Chinook + + + CH-47I Chinook (unarmed) + CH-47I Chinook (unbewaffnet) + CH-47I Chinnok (Desarmado) + CH-47I Chinook (nieuzbrojony) + CH-47I Chinook (невооруженный) + CH-47I Chinook (neozbrojený) + + + A-10D Thunderbolt II + A-10D Thunderbolt II + A-10D Thunderbolt II + A-10D Thunderbolt II + A-10D Thunderbolt II + A-10D Thunderbolt II + A-10D Тандерболт II + A-10D Thunderbolt II + A-10D Thunderbolt II + A-10D Thunderbolt II + + + AW159 Wildcat + AW159 Wildcat + AW159 Wildcat + AW159 Wildcat + AW159 Wildcat + AW159 Wildcat + AW159 Wildcat + AW159 Wildcat + AW159 Wildcat + AW159 Wildcat + + + AW159 Wildcat (unarmed) + AW159 Wildcat (unbewaffnet) + AW159 Wildcat (desarmado) + AW159 Wildcat (nieuzbrojony) + AW159 Wildcat (neozbrojený) + AW159 Wildcat (non-armé) + AW159 Wildcat (невооруженный) + AW159 Wildcat (desarmado) + AW159 Wildcat (fegyvertelen) + AW159 Wildcat (disarmato) + + + AW101 Merlin + AW101 Merlin + AW101 Merlin + AW101 Merlin + AW101 Merlin + AW101 Merlin + AW101 Мерлин + AW101 Merlin + AW101 Merlin + AW101 Merlin + + + L-159 ALCA (CAS) + L-159 ALCA (CAS) + L-159 ALCA (CAS) + L-159 ALCA (CAS) + L-159 ALCA (CAS) + L-159 ALCA (CAS) + L-159 Альбатрос (CAS) + L-159 ALCA (CAS) + L-159 ALCA (CAS) + L-159 ALCA (CAS) + + + L-159 ALCA (AA) + L-159 ALCA (AA) + L-159 ALCA (AA) + L-159 ALCA (AA) + L-159 ALCA (AA) + L-159 ALCA (AA) + L-159 Альбатрос (AA) + L-159 ALCA (ВВ) + L-159 ALCA (AA) + L-159 ALCA (AA) + + + Ka-60 Kasatka + Ka-60 Kasatka + Ka-60 Kasatka + Ka-60 Kasatka + Ka-60 Kasatka + Ka-60 Kasatka + Ka-60 Касатка + Ka-60 Kasatka + Ka-60 Kasatka + Ka-60 Kasatka + + + Ka-60 Kasatka (unarmed) + Ka-60 Kasatka (unbewaffnet) + Ka-60 Kasatka (desarmado) + Ka-60 Kasatka (nieuzbrojony) + Ka-60 Kasatka (neozbrojená) + Ka-60 Kasatka (non-armé) + Ka-60 Касатка (невооруженный) + Ka-60 Kasatka (desarmado) + Ka-60 Kasatka (fegyvertelen) + Ka-60 Kasatka (disarmato) + + + Yak-130 + Yak-130 + Yak-130 + Jak-130 + Jak-130 + Yak-130 + Як-130 + Yak-130 + Jak-130 + Yak-130 + + + MD 500 + MD 500 + MD 500 + MD 500 + MD 500 + MD 500 + MD 500 + MD 500 + MD 500 + MD 500 + + + M4A1 SLAM + M4A1 SLAM + M4A1 SLAM + M4A1 SLAM + M4A1 SLAM + M4A1 SLAM + M4A1 SLAM + M4A1 SLAM + M4A1 SLAM + M4A1 SLAM + + + M18A1 Claymore + M18A1 Claymore + M18A1 Claymore + Mina kierunkowa M18A1 Claymore + Mina Claymore M18A1 + M18A1 Claymore Mine antipersonnel à effet dirigé + M18A1 Клеймор + M18A1 Claymore + M18A1 Claymore akna + M18A1 Claymore Mina antiuomo + + + M183 Demolition Charge Assembly + M183 Geballte Sprengladung + Conjunto de carga de demolición M183 + Ładunek burzący M183 + Demoliční nálož M183 + M183 Charge de Démolition + M183 Комплектный подрывной заряд + M183 Sacola de Demolição + M183 romboló töltet + M183 Demolition Charge Assembly + + + M112 Demolition Block + M112 Sprengladung + Bloque de demolición M112 + Ładunek burzący M112 + Výbušná nálož M112 + Pétard M112 + M112 подрывной заряд + M112 Carga de Demolição + M112 romboló töltet + M112 Demolition Block + + + M67 Fragmentation Grenade + M67 Splittergranate + Granada de fragmentación M67 + Granat obronny M67 + Granát M67 + M67 Grenade à fragmentation + M67 ручная осколочная граната + M67 Granada de fragmentação + M67 repeszgránát + M67 Granata a frammentazione + + + M83 Smoke Grenade (White) + M83 Rauchgranate (Weiss) + Granada de humo M83 (Blanco) + Granat dymny M83 (Biały) + M83 Kouřový Granát (bílý) + M83 Grenade fumigène (Blanche) + M83 дымовая граната (Белый) + M83 Granada de fumaça (Branca) + M83 füstgránát (Fehér) + M83 Granata fumogena (Bianco) + + + M18 Smoke Grenade (Blue) + M18 Rauchgranate (Blau) + Granada de humo M18 (Azul) + Granat dymny M18 (Niebieski) + M18 Kouřový Granát (modrý) + M18 Grenade fumigène (Bleue) + M18 дымовая граната (Синий) + M18 Granada de fumaça (Azul) + M18 füstgránát (Kék) + M18 Granata fumogena (Blu) + + + M18 Smoke Grenade (Green) + M18 Rauchgranate (Grün) + Granada de humo M18 (Verde) + Granat dymny M18 (Zielony) + M18 Kouřový Granát (zelený) + M18 Grenade fumigène (Verte) + M18 дымовая граната (Зелёный) + M18 Granada de fumaça (Verde) + M18 füstgránát (Zöld) + M18 Granata fumogena (Verde) + + + M18 Smoke Grenade (Orange) + M18 Rauchgranate (Orange) + Granada de humo M18 (Naranja) + Granat dymny M18 (Pomarańczowy) + M18 Kouřový Granát (oranžový) + M18 Grenade fumigène (Orange) + M18 дымовая граната (Оранжевый) + M18 Granada de fumaça (Laranja) + M18 füstgránát (Narancssárga) + M18 Granata fumogena (Arancione) + + + M18 Smoke Grenade (Purple) + M18 Rauchgranate (Violett) + Granada de humo M18 (Púrpura) + Granat dymny M18 (Fioletowy) + M18 Kouřový Granát (fialový) + M18 Grenade fumigène (Pourpre) + M18 дымовая граната (Пурпурный) + M18 Granada de fumaça (Roxa) + M18 füstgránát (Lila) + M18 Granata fumogena (Viola) + + + M18 Smoke Grenade (Red) + M18 Rauchgranate (Rot) + Granada de humo M18 (Rojo) + Granat dymny M18 (Czerwony) + M18 Kouřový Granát (červený) + M18 Grenade fumigène (Rouge) + M18 дымовая граната (Красный) + M18 Granada de fumaça (Vermelha) + M18 füstgránát (Piros) + M18 Granata fumogena (Rosso) + + + M18 Smoke Grenade (Yellow) + M18 Rauchgranate (Gelb) + Granada de humo M18 (Amarillo) + Granat dymny M18 (Żółty) + M18 Kouřový Granát (žlutý) + M18 Grenade fumigène (Jaune) + M183 дымовая граната (Жёлтые) + M18 Granada de fumaça (Amarela) + M18 füstgránát (Sárga) + M18 Granata fumogena (Giallo) + + + M15 Anti-Tank Mine + M15 Panzerabwehrmine + Mina antitanque M15 + Mina przeciwpancerna M15 + Protitanková mina M15 + M15 Mine antichar + M15 противотанковая мина + M15 Mina anticarro + M15 harckocsiakna + M15 Mine anticarro + + + VS-50 Anti-Personnel Mine + VS-50 Antipersonenmine + Mina antipersona VS-50 + Mina przeciwpiechotna VS-50 + Protipěchotní mina VS-50 + VS-50 Mine antipersonnel à pression + VS-50 Противопехотная мина + VS-50 Mina antipessoal + VS-50 gyalogsági taposóakna + VS-50 Mine antiuomo + + + M26 Anti-Personnel Bounding Mine + M26 Antipersonensprungmine + Mina antipersona M26 + Mina przeciwpiechotna M26 + Šrapnelová mina M26 + M26 Mine antipersonnel bondissante + M26 Противопехотная мина + M26 Mina saltadora antipessoal + M26 gyalogsági ugróakna + M26 Mine saltanti antiuomo + + + PMR-3 Anti-Personnel Tripwire Mine + PMR-3 Antipersonenstolperdrahtmine + Mina antipersona de alambre PMR-3 + Mina przeciwpiechotna PMR-3 + Nástražná mina PMR-3 + PMR-3 Mine antipersonnel à traction + PMR-3 Противопехотная мина + PMR-3 Mina antipessoal (armadilha) + PMR-3 botlódrótos gyalogsági akna + PMR-3 Mine antiuomo + + + P99 + P99 + P99 + + + MP-443 Grach + MP-443 Grach + MP-443 Grach + MP-443 Grach + + + ACP-C2 + ACP-C2 + ACP-C2 + ACP-C2 + + + FNX-45 Tactical + FNX-45 Tactical + FNX-45 Tactical + FNX-45 Tactical + + + Chiappa Rhino 60DS + Chiappa Rhino 60DS + Chiappa Rhino 60DS + Chiappa Rhino 60DS + + + Taurus Judge + Taurus Judge + Taurus Judge + Taurus Judge + + + NLAW + NLAW + NLAW + NLAW + + + RPG-32 + RPG-32 + RPG-32 + RPG-32 + + + Mini-Spike (AA) + Mini-Spike (AA) + Mini-Spike (PL) + Mini-Spike (AA) + + + Mini-Spike (AT) + Mini-Spike (AT) + Mini-Spike (PT) + Mini-Spike (AA) + + + MX + MX + MX + MX + + + MX (Black) + MX (Black) + MX (Czarny) + + + MXC + MXC + MXC + MXC + + + MXC (Black) + MXC (Black) + MXC (Czarny) + + + MX 3GL + MX 3GL + MX 3GL + MX 3GL + + + MX 3GL (Black) + MX 3GL (Black) + MX 3GL (Czarny) + + + MX LSW + MX LSW + MX LSW + MX LSW + + + MX LSW (Black) + MX LSW (Black) + MX LSW (Czarny) + + + MXM + MXM + MXM + MXM + + + MXM (Black) + MXM (Black) + MXM (Czarny) + + + KT2002 Katiba + KT2002 Katiba + KT2002 Katiba + KT2002 Katiba + + + KT2002C Katiba + KT2002C Katiba + KT2002C Katiba + KT2002C Katiba + + + KT2002 Katiba KGL + KT2002 Katiba KGL + KT2002 Katiba KGL + KT2002 Katiba KGL + + + F2000 (Camo) + F2000 (Camo) + F2000 (kamuflaż) + + + F2000 + F2000 + F2000 + F2000 + + + F2000 Tactical (Camo) + F2000 Tactical (Camo) + F2000 Tactical (kamuflaż) + + + F2000 Tactical + F2000 Tactical + F2000 Tactical + F2000 Tactical + + + F2000 EGLM (Camo) + F2000 EGLM (Camo) + F2000 EGLM (kamuflaż) + + + F2000 EGLM + F2000 EGLM + F2000 EGLM + F2000 EGLM + + + TAR-21 + TAR-21 + TAR-21 + TAR-21 + + + CTAR-21 + CTAR-21 + CTAR-21 + CTAR-21 + + + TAR-21 EGLM + TAR-21 EGLM + TAR-21 EGLM + TAR-21 EGLM + + + Vector SMG + Vector SMG + Vector SMG + Vector SMG + + + Scorpion Evo 3 A1 + Scorpion Evo 3 A1 + Scorpion Evo 3 A1 + Scorpion Evo 3 A1 + + + CPW + CPW + CPW + CPW + + + RFB SDAR + RFB SDAR + RFB SDAR + RFB SDAR + + + Stoner 99 LMG + Stoner 99 LMG + Stoner 99 LMG + Stoner 99 LMG + + + Negev NG7 + Negev NG7 + Negev NG7 + Negev NG7 + + + Mk14 Mod 1 EBR + Mk14 Mod 1 EBR + Mk14 Mod 1 EBR + Mk14 Mod 1 EBR + + + GM6 Lynx + GM6 Lynx + GM6 Lynx + GM6 Lynx + + + GM6 Lynx (Camo) + GM6 Lynx (Camo) + GM6 Lynx (kamuflaż) + + + M200 Intervention + M200 Intervention + M200 Intervention + M200 Intervention + + + M200 Intervention (Camo) + M200 Intervention (Camo) + M200 Intervention (kamuflaż) + + + VS-121 + VS-121 + VS-121 + VS-121 + + + TODO: MAR-10 .338 + + + TODO: MAR-10 .338 (Black) + + + TODO: MAR-10 .338 (Camo) + + + TODO: MAR-10 .338 (Sand) + + + TODO: Mk-I EMR 7.62 mm + + + TODO: Mk-I EMR 7.62 mm (Black) + + + TODO: Mk-I EMR 7.62 mm (Khaki) + + + TODO: Mk-I EMR 7.62 mm (Sand) + + + TODO: Mk-I EMR 7.62 mm (Camo) + + + TODO: Mk-I EMR 7.62 mm (Woodland) + + + TODO: NATO DMR (provisional) spotter + + + TODO: ASP-1 Kir 12.7 mm + + + TODO: ASP-1 Kir 12.7 mm (Black) + + + TODO: ASP-1 Kir 12.7 mm (Tan) + + + TODO: Cyrus 9.3 mm + + + TODO: Cyrus 9.3 mm (Black) + + + TODO: Cyrus 9.3 mm (Hex) + + + TODO: Cyrus 9.3 mm (Tan) + + + TODO: Mk14 7.62 mm + + + TODO: Mk14 7.62 mm (Camo) + + + TODO: Mk14 7.62 mm (Olive) + + + TODO: Navid 9.3 mm + + + TODO: Navid 9.3 mm (Hex) + + + TODO: Navid 9.3 mm (Tan) + + + TODO: SPMG .338 + + + TODO: SPMG .338 (MTP) + + + TODO: SPMG .338 (Black) + + + TODO: SPMG .338 (Sand) + + + diff --git a/addons/reload/stringtable.xml b/addons/reload/stringtable.xml index 50ec5beee6..8911c288ea 100644 --- a/addons/reload/stringtable.xml +++ b/addons/reload/stringtable.xml @@ -4,16 +4,20 @@ Check ammo on weapon reload Prüfe Munition beim Nachladen - Vérifier munitions au rechargement Comprovar munición al recargar el arma Проверять боезапас при перезарядке + Zkontrolovat munici při nabití + Sprawdź stan amunicji przy przeładowaniu broni + Vérifier les munitions pendant le rechargement d'une arme Check the ammo in your new magazine on magazine reload. Prüfe nachgeladenes Magazin - Vérifie les munitions disponibles dans le nouveau chargeur Comprueva la munición del nuevo cargador al recargar. Проверяет количество патронов в новом магазине при перезарядке. + Kontroluje munice při nabití nového zásobníku. + Pokaż stan amunicji w nowym magazynku przy przeładowaniu broni + Vérifier les munitions dans votre nouveau chargeur au rechargement de vos chargeurs. Check Ammo @@ -41,17 +45,21 @@ Link belt - Gurt herstellen Attacher bande Enlazar cinta Сцепить ленты + Spojit pás munice + Podłącz taśmę + Gurt anhängen Linking belt... - Stelle Gurt her.... - Attachement de la bande .. + Attachement de la bande ... Enlazando cinta... Сцепка лент ... + Spojuji pás... + Podłączanie taśmy... + Gurt anhängen ... diff --git a/addons/reloadlaunchers/stringtable.xml b/addons/reloadlaunchers/stringtable.xml index 814e3c960a..a7be29cc96 100644 --- a/addons/reloadlaunchers/stringtable.xml +++ b/addons/reloadlaunchers/stringtable.xml @@ -6,24 +6,35 @@ Panzerabwehr laden Cargar lanzador Зарядить ПУ + Nabít odpalovač + Załaduj wyrzutnię Loading launcher ... + Chargement du tube ... Panzerabwehr wird geladen ... Cargando lanzador ... Зарядка ПУ ... + Nabíjím odpalovač ... + Ładowanie wyrzutni ... Launcher loaded + Tube chargé Panzerabwehr geladen Lanzador cargado ПУ заряжено + Odpalovač nabit + Wyrzutnia załadowana Load %1 + Chargé %1 Lade %1 Cargar %1 Загрузка %1 + Nabít %1 + Załadowano %1 diff --git a/addons/respawn/stringtable.xml b/addons/respawn/stringtable.xml index 705ca05ecf..6a506f5c70 100644 --- a/addons/respawn/stringtable.xml +++ b/addons/respawn/stringtable.xml @@ -3,27 +3,35 @@ Deploy in 5 seconds ... + Déploiement dans 5 secondes ... Wird in 5 Sekunden errichtet ... Desplegando en 5 segundos ... Возрождение через 5 секунд ... + Rozmieszczenie za 5 sekund ... Rallypoint deployed + Point de ralliement déployé Rallypoint errichtet Punto de reunión desplegado Точка сбора установлена + Punkt zbiórki rozmieszczony Teleported to Base + Téléporté à la base Zur Basis teleportiert Teletransportado a base Телепорт на базу + Przeteleportowano do bazy Teleported to Rallypoint + Téléporté au point de ralliement Zum Rallypoint teleportiert Teletransportado al punto de reunión Телепорт на точку сбора + Przeteleportowano do punktu zbiórki diff --git a/addons/safemode/XEH_postInit.sqf b/addons/safemode/XEH_postInit.sqf index ff6a76d834..aa13029547 100644 --- a/addons/safemode/XEH_postInit.sqf +++ b/addons/safemode/XEH_postInit.sqf @@ -1,6 +1,8 @@ // by esteldunedain #include "script_component.hpp" +if (!hasInterface) exitWith {}; + //["Soldier", {_player = ACE_player; if (currentWeapon _player in (_player getVariable [QGVAR(safedWeapons), []])) then {[false] call FUNC(setSafeModeVisual)}] call EFUNC(common,addInfoDisplayEventHandler); //@todo addEventHandler infoDisplayChanged with select 1 == "Soldier" diff --git a/addons/safemode/stringtable.xml b/addons/safemode/stringtable.xml index 9684babfdf..cb74ef060e 100644 --- a/addons/safemode/stringtable.xml +++ b/addons/safemode/stringtable.xml @@ -4,6 +4,7 @@ Safe Mode + Mode de sécurité Waffe sichern Seguro puesto Bezpiecznik @@ -13,6 +14,7 @@ Take off Safety + Retirer le cran de sureté Waffe entsichern Quitar seguro Zwolnij bezpiecznik @@ -22,6 +24,7 @@ Put on Safety + Mettre le cran de sureté Waffe gesichert Poner seguro Zabezpiecz broń @@ -31,6 +34,7 @@ Took off Safety + Enlever le cran de sureté Waffe entsichert Seguro quitado Odbezpieczono broń @@ -39,4 +43,4 @@ Снят с предохранителя - \ No newline at end of file + diff --git a/addons/switchunits/stringtable.xml b/addons/switchunits/stringtable.xml index 81cde4b007..007b37b24f 100644 --- a/addons/switchunits/stringtable.xml +++ b/addons/switchunits/stringtable.xml @@ -4,6 +4,7 @@ Switched unit + Unité à transférer Einheit gewechselt Юнит переключен Prohozená jednotka @@ -12,6 +13,7 @@ This unit is too close to the enemy. + Cette unité est trop près d'un ennemi. Diese Einheit ist zu nah am Feind. Юнит слишком близок к противнику. Tato jednotka je moc blízko k nepříteli. diff --git a/addons/vector/XEH_postInit.sqf b/addons/vector/XEH_postInit.sqf index 7e1d0eac27..12f643ece3 100644 --- a/addons/vector/XEH_postInit.sqf +++ b/addons/vector/XEH_postInit.sqf @@ -1,6 +1,8 @@ // by commy2 #include "script_component.hpp" +if (!hasInterface) exitWith {}; + GVAR(holdKeyHandler) = -1; GVAR(isKeyDownAzimuth) = false; GVAR(isKeyDownDistance) = false; diff --git a/addons/vector/stringtable.xml b/addons/vector/stringtable.xml index 7a27cf272e..05289d189f 100644 --- a/addons/vector/stringtable.xml +++ b/addons/vector/stringtable.xml @@ -1,54 +1,54 @@  - + - - - Vector IV - Vector IV - Vector IV - Vector IV - Vector IV - Vector IV - Vector IV - Vector IV - Vector IV - Vector IV - - - Rangefinder - Laserentfernungsmesser - Telémetro - Télémètre - Dalmierz - Dálkoměr - Telemetro - Távolságmérő - Telêmetro - Дальномер - - - Vector - Azimuth Key - Vector - Azimuth-Taste - Vector - Tecla de acimut - Vector - Touche Azimuth - Vector - Azymut - Vector - Zobrazit Azimut - Vector - Tasto Azimuth - Vector - Tecla de Azimute - Vector - Irányszög gomb - Vector – Азимут - - - Vector - Distance Key - Vector - Entfernungs-Taste - Vector - Tecla de distancia - Vector - Touche Distance - Vector - Odległość - Vector - Zobrazit vzdálenost - Vecto - Tasto Distanza - Vector - Tecla de Distância - Vector - Távolság gomb - Vector – Расстояние - - + + + Vector IV + Vector IV + Vector IV + Vector IV + Vector IV + Vector IV + Vector IV + Vector IV + Vector IV + Vector IV + + + Rangefinder + Laserentfernungsmesser + Telémetro + Télémètre + Dalmierz laserowy + Dálkoměr + Telemetro + Távolságmérő + Telêmetro + Дальномер + + + Vector - Azimuth Key + Vector - Azimuth-Taste + Vector - Tecla de acimut + Vector - Touche Azimuth + Vector - Azymut + Vector - Zobrazit azimut + Vector - Tasto Azimuth + Vector - Tecla de Azimute + Vector - Irányszög gomb + Vector – Азимут + + + Vector - Distance Key + Vector - Entfernungs-Taste + Vector - Tecla de distancia + Vector - Touche Distance + Vector - Odległość + Vector - Zobrazit vzdálenost + Vecto - Tasto Distanza + Vector - Tecla de Distância + Vector - Távolság gomb + Vector – Расстояние + + \ No newline at end of file diff --git a/addons/vehiclelock/stringtable.xml b/addons/vehiclelock/stringtable.xml index 580283dcab..d2dcde42e9 100644 --- a/addons/vehiclelock/stringtable.xml +++ b/addons/vehiclelock/stringtable.xml @@ -1,116 +1,116 @@  - + - - - Unlock Vehicle - Fahrzeug aufschließen - Vehículo abierto - Déverrouiller le véhicule - Odblokuj pojazd - Odemknout vozidlo - Jármű nyitása - Открыть машину - - - Lock Vehicle - Fahrzeug abschließen - Vehículo cerrado - Verrouiller le véhicule - Zablokuj pojazd - Zamknout vozidlo - Jármű zárása - Закрыть машину - - - Lockpick Vehicle - Fahrzeug knacken - Forzar vehículo - Crocheter le véhicule - Otwórz zamek - Vypáčit vozidlo - Jármű feltörése - Взломать замок - - - Picking Lock.... - Schloss knacken... - Forzando cierre... - Crochetage... - Otwieranie zamka... - Páčim vozidlo... - Feltörés... - Взламываем замок... - - - A custom key that will open a specific vehicle. - Ein Schlüssel der ein bestimmtes Fahrzeug aufschließt. - Una llave concreta abrirá un vehículo concreto. - Une clé propre à un seul véhicule. - Unikatowy klucz który otworzy konkretny pojazd. - Vlastní klíč, který otevře konkrétní vozidlo. - Kulcs egy járműhez - Ключ от конкретной машины. - - - A Master Key will open any lock, no matter what! - Ein Generalschlüssel der jedes Schloss öffnet... - Una llave maestra abrirá cualquier cierre, no importa cual! - Un passe-partout qui ouvrira n'importe quelle serrure. - Uniwersalny klucz który otworzy każdy zamek. - Hlavní klíč otevře libovolný zámek, bez vyjímek! - Általános kulcs minden járműhez - Универсальный ключ, открывающий любой замок. - - - A lockpick set that can pick the locks of most vehicles. - Ein Dietrich der die meisten Fahrzeugschlösser knacken kann... - Un set de ganzúas puede abrir la mayoría de cerraduras de vehículos. - Un crochet qui ouvrira la plupart des véhicules. - Zestaw wytrychów dzięki któremu można otworzyć zamki w większości pojazdów. - Sada paklíčů, která dokáže odemknout zámky u většiny vozidel. - Álkulcs melyik minden járműt nyitni tud - Набор отмычек, которым можно взломать почти любую машину. - - - A key that should open most WEST vehicles. - Ein Schlüssel der die meisten westlichen Fahrzeuge öffnen sollte... - Una llave que puede abrir la mayoría de vehículos occidentales. - Une clé qui ouvrira la plupart des véhicules WEST. - Klucz który powinien otworzyć większość pojazdów ZACHODU. - Klíč který by měl otevřít většinou Západních vozidel. - Általános kulcs WEST járművekhez - Ключ для открытия большинства машин Запада. - - - A key that should open most EAST vehicle. - Ein Schlüssel der die meisten östlichen Fahrzeuge öffnen sollte... - Una llave que puede abrir la mayoría de vehículos orientales. - Une clé qui ouvrira la plupart des véhicules EAST. - Klucz który powinien otworzyć większość pojazdów WSCHODU. - Általános kulcs EAST járművekhez - Klíč který by měl otevřít vetšinu Východních vozidel. - Ключ для открытия большинства машин Востока. - - - A key that should open most INDEP vehicle. - Ein Schlüssel der die meisten Fahrzeuge der Aufständischen öffnen sollte... - Una llave que puede abrir la mayoría de vehículos independientes. - Une clé qui ouvrira la plupart des véhicules INDEP. - Klucz który powinien otworzyć większość pojazdów INDFOR. - Általános kulcs INDEPENDENT járművekhez - Klíč který by měl otevřít většinu Nezávislých vozidel. - Ключ для открытия большинства машин Независимых. - - - A key that should open most CIV vehicle. - Ein Schlüssel der die meisten zivilen Fahrzeuge öffnen sollte... - Una llave que puede abrir la mayoría de vehículos civiles. - Une clé qui ouvrira la plupart des véhicules CIV. - Klucz który powinien otworzyć większość pojazdów CYWILNYCH. - Klíč který by měl otevřít většinu Civilních vozidel. - Általános kulcs CIVILIAN járművekhez - Ключ для открытия большинства машин Гражданских. - - + + + Unlock Vehicle + Fahrzeug aufschließen + Vehículo abierto + Déverrouiller le véhicule + Odblokuj pojazd + Odemknout vozidlo + Jármű nyitása + Открыть машину + + + Lock Vehicle + Fahrzeug abschließen + Vehículo cerrado + Verrouiller le véhicule + Zablokuj pojazd + Zamknout vozidlo + Jármű zárása + Закрыть машину + + + Lockpick Vehicle + Fahrzeug knacken + Forzar vehículo + Crocheter le véhicule + Otwórz zamek + Vypáčit vozidlo + Jármű feltörése + Взломать замок + + + Picking Lock.... + Schloss knacken... + Forzando cierre... + Crochetage... + Otwieranie zamka... + Páčim vozidlo... + Feltörés... + Взламываем замок... + + + A custom key that will open a specific vehicle. + Ein Schlüssel der ein bestimmtes Fahrzeug aufschließt. + Una llave concreta abrirá un vehículo concreto. + Une clé propre à un seul véhicule. + Unikatowy klucz, który otworzy konkretny pojazd. + Vlastní klíč, který otevře konkrétní vozidlo. + Kulcs egy járműhez + Ключ от конкретной машины. + + + A Master Key will open any lock, no matter what! + Ein Generalschlüssel der jedes Schloss öffnet... + Una llave maestra abrirá cualquier cierre, no importa cual! + Un passe-partout qui ouvrira n'importe quelle serrure. + Uniwersalny klucz, który otworzy każdy zamek. + Hlavní klíč otevře libovolný zámek, bez vyjímek! + Általános kulcs minden járműhez + Универсальный ключ, открывающий любой замок. + + + A lockpick set that can pick the locks of most vehicles. + Ein Dietrich der die meisten Fahrzeugschlösser knacken kann... + Un set de ganzúas puede abrir la mayoría de cerraduras de vehículos. + Un crochet qui ouvrira la plupart des véhicules. + Zestaw wytrychów, dzięki któremu można otworzyć zamki w większości pojazdów. + Sada paklíčů, která dokáže odemknout zámky u většiny vozidel. + Álkulcs melyik minden járműt nyitni tud + Набор отмычек, которым можно взломать почти любую машину. + + + A key that should open most WEST vehicles. + Ein Schlüssel der die meisten westlichen Fahrzeuge öffnen sollte... + Una llave que puede abrir la mayoría de vehículos occidentales. + Une clé qui ouvrira la plupart des véhicules WEST. + Klucz, który powinien otworzyć większość pojazdów ZACHODU. + Klíč který by měl otevřít většinou Západních vozidel. + Általános kulcs WEST járművekhez + Ключ для открытия большинства машин Запада. + + + A key that should open most EAST vehicle. + Ein Schlüssel der die meisten östlichen Fahrzeuge öffnen sollte... + Una llave que puede abrir la mayoría de vehículos orientales. + Une clé qui ouvrira la plupart des véhicules EAST. + Klucz, który powinien otworzyć większość pojazdów WSCHODU. + Általános kulcs EAST járművekhez + Klíč který by měl otevřít vetšinu Východních vozidel. + Ключ для открытия большинства машин Востока. + + + A key that should open most INDEP vehicle. + Ein Schlüssel der die meisten Fahrzeuge der Aufständischen öffnen sollte... + Una llave que puede abrir la mayoría de vehículos independientes. + Une clé qui ouvrira la plupart des véhicules INDEP. + Klucz, który powinien otworzyć większość pojazdów INDFOR. + Általános kulcs INDEPENDENT járművekhez + Klíč který by měl otevřít většinu Nezávislých vozidel. + Ключ для открытия большинства машин Независимых. + + + A key that should open most CIV vehicle. + Ein Schlüssel der die meisten zivilen Fahrzeuge öffnen sollte... + Una llave que puede abrir la mayoría de vehículos civiles. + Une clé qui ouvrira la plupart des véhicules CIV. + Klucz, który powinien otworzyć większość pojazdów CYWILNYCH. + Klíč který by měl otevřít většinu Civilních vozidel. + Általános kulcs CIVILIAN járművekhez + Ключ для открытия большинства машин Гражданских. + + \ No newline at end of file diff --git a/addons/weaponselect/stringtable.xml b/addons/weaponselect/stringtable.xml index 56182fcb74..bdac2fbc65 100644 --- a/addons/weaponselect/stringtable.xml +++ b/addons/weaponselect/stringtable.xml @@ -6,12 +6,16 @@ Zeige Text beim Granatwurf Mostrar texto al lanzar granada Показывать текст при броске + Zobrazí text při hodu granátem + Wyświetl tekst przy rzucie granatem Display a hint or text on grenade throw. Zeige Hinweis oder Text beim Granatwurf Muestra una notificación o texto al lanzar granada Показывать текст или подсказку при броске гранаты. + Zobrazí upozornění nebo text při hodu granátem. + Wyświetla powiadomienie lub tekst przy rzucie granatem. Select Pistol @@ -147,6 +151,7 @@ Grenade %1 + Grenade %1 Granate %1 Granada %1 Granat %1 @@ -156,6 +161,7 @@ Ready Grenade + Grenade Prête Granate nehmen Granada lista Przygotuj granat @@ -168,7 +174,7 @@ Explosive Granate auswählen Seleccionar granada de fragmenación Wybierz granat odłamkowy - Sélectionner grenade à fragmentation + Sélectionner une grenade à fragmentation Repeszgránát Kiválasztása Zvolit Výbušný Granát Selecionar Granada de Fragmentação diff --git a/addons/winddeflection/stringtable.xml b/addons/winddeflection/stringtable.xml index a6ae43ae33..59a07bd33b 100644 --- a/addons/winddeflection/stringtable.xml +++ b/addons/winddeflection/stringtable.xml @@ -7,30 +7,45 @@ Informacje o wietrze Información del viento Ветер + Informace o větru + Informations sur le Vent + Windinformationen Direction: %1 Kierunek: %1 Dirección: %1 Направление: %1 + Směr: %1 + Direction : %1 + Richtung: %1 Speed: %1 m/s Prędkość: %1 Velocidad: %1 m/s Скорость: %1 м/с + Rychlost: %1 m/s + Vitesse : %1 m/s + Geschwindigkeit: %1m/s Weather Information Informacje o pogodzie Información Meteorológica Погода + Informace o počasí + Informations sur la Météo + Wetterinformationen Humidity: %1% Wilgotność: %1 Humedad: %1% Влажность: %1% + Vlhkost: %1% + Humidité : %1 + Feuchtigkeit: %1% diff --git a/documentation/development/ace3-config-entries.md b/documentation/development/ace3-config-entries.md index f56285052d..cc0104a8b1 100644 --- a/documentation/development/ace3-config-entries.md +++ b/documentation/development/ace3-config-entries.md @@ -1,7 +1,7 @@ --- layout: wiki title: ACE3 Config Entries -group: dev +group: development parent: wiki order: 2 --- diff --git a/documentation/development/ace3-events-system.md b/documentation/development/ace3-events-system.md index 6b708b01dd..d7c99e558e 100644 --- a/documentation/development/ace3-events-system.md +++ b/documentation/development/ace3-events-system.md @@ -1,7 +1,7 @@ --- layout: wiki title: ACE3 Events System -group: dev +group: development parent: wiki order: 3 --- diff --git a/documentation/development/arma-3-issues.md b/documentation/development/arma-3-issues.md index 46b68a0447..3b4a6f036b 100644 --- a/documentation/development/arma-3-issues.md +++ b/documentation/development/arma-3-issues.md @@ -1,7 +1,7 @@ --- layout: wiki title: Arma 3 Issues -group: dev +group: development parent: wiki order: 6 --- @@ -19,6 +19,7 @@ Keeping track of Arma 3 issues that need to be fixed. If you want to support us * [commy2: 0022671: setVariable is not always JIP persistent](http://feedback.arma3.com/view.php?id=22671) * [CorruptedHeart: 0022318: Can no longer use "MenuBack" shortcut in AddAction](http://feedback.arma3.com/view.php?id=22318) * [James2464: 0023725: All Environment Rocks Should Have PhysX LODs](http://feedback.arma3.com/view.php?id=23725) +* [Jaynus: 0023679: Display event handler return values for mouse buttons should be respected](http://feedback.arma3.com/view.php?id=23679) **Resolved:** diff --git a/documentation/development/arma-3-scheduler-and-our-practices.md b/documentation/development/arma-3-scheduler-and-our-practices.md index 90646b3b4a..bef0224819 100644 --- a/documentation/development/arma-3-scheduler-and-our-practices.md +++ b/documentation/development/arma-3-scheduler-and-our-practices.md @@ -1,7 +1,7 @@ --- layout: wiki title: Arma 3 Scheduler And Our Practices -group: dev +group: development parent: wiki order: 8 --- diff --git a/documentation/development/coding-guidelines.md b/documentation/development/coding-guidelines.md index c3517dec1d..f72263eeaa 100644 --- a/documentation/development/coding-guidelines.md +++ b/documentation/development/coding-guidelines.md @@ -1,7 +1,7 @@ --- layout: wiki title: Coding Guidelines -group: dev +group: development parent: wiki order: 1 --- diff --git a/documentation/development/extension-guidelines.md b/documentation/development/extension-guidelines.md index b56349e82b..0558d49d5e 100644 --- a/documentation/development/extension-guidelines.md +++ b/documentation/development/extension-guidelines.md @@ -1,7 +1,7 @@ --- layout: wiki title: Extension Guidelines -group: dev +group: development parent: wiki order: 9 --- diff --git a/documentation/development/fragmentation-configuration.md b/documentation/development/fragmentation-configuration.md index ab0baa0612..17ff36fa13 100644 --- a/documentation/development/fragmentation-configuration.md +++ b/documentation/development/fragmentation-configuration.md @@ -1,7 +1,7 @@ --- layout: wiki title: Fragmentation Configuration -group: dev +group: development parent: wiki order: 7 --- diff --git a/documentation/development/how-to-translate-ace3.md b/documentation/development/how-to-translate-ace3.md index a6f81c3b30..b7e23fa575 100644 --- a/documentation/development/how-to-translate-ace3.md +++ b/documentation/development/how-to-translate-ace3.md @@ -1,7 +1,7 @@ --- layout: wiki title: How to translate ACE3 -group: dev +group: development parent: wiki order: 20 --- diff --git a/documentation/development/merging-pull-requests.md b/documentation/development/merging-pull-requests.md index 2e754efe93..6bc34464f0 100644 --- a/documentation/development/merging-pull-requests.md +++ b/documentation/development/merging-pull-requests.md @@ -1,7 +1,7 @@ --- layout: wiki title: Merging Pull Requests -group: dev +group: development parent: wiki order: 5 --- @@ -33,4 +33,4 @@ Non-trivial pull requests remain open for a minimum of 48 hours, to give all oth If a pull request adds a new addon, or changes something else, like the README, everyone has 72 hours to comment on the changes. After that, one of the team leads ([NouberNou](https://github.com/NouberNou), [KoffeinFlummi](https://github.com/KoffeinFlummi), [Glowbal](https://github.com/Glowbal)) will merge it. -Trivial changes such as spelling fixes can be merged immediately by any contributor. \ No newline at end of file +Trivial changes such as spelling fixes can be merged immediately by any contributor. diff --git a/documentation/development/modularity-and-pbo-structure.md b/documentation/development/modularity-and-pbo-structure.md index b992455db7..ad1194e39c 100644 --- a/documentation/development/modularity-and-pbo-structure.md +++ b/documentation/development/modularity-and-pbo-structure.md @@ -1,7 +1,7 @@ --- layout: wiki title: Modularity And PBO Structure -group: dev +group: development parent: wiki order: 4 --- diff --git a/documentation/development/setting-up-the-development-environment.md b/documentation/development/setting-up-the-development-environment.md index 3d0f0b1937..0fbc0793f2 100644 --- a/documentation/development/setting-up-the-development-environment.md +++ b/documentation/development/setting-up-the-development-environment.md @@ -1,7 +1,7 @@ --- layout: wiki title: Setting Up The Development Environment -group: dev +group: development parent: wiki order: 0 --- diff --git a/documentation/missionmaker/modules.md b/documentation/missionmaker/modules.md index 1ea5b6c4eb..0b0f13f8d6 100644 --- a/documentation/missionmaker/modules.md +++ b/documentation/missionmaker/modules.md @@ -1,7 +1,7 @@ --- layout: wiki title: Modules -group: missionMaker +group: missionmaker order: 5 parent: wiki --- diff --git a/extras/assets/icons/Icons_Actions.psd b/extras/assets/icons/Icons_Actions.psd new file mode 100644 index 0000000000..616ab7a7fa Binary files /dev/null and b/extras/assets/icons/Icons_Actions.psd differ diff --git a/extras/assets/icons/png/Icon_Actions/disarm.png b/extras/assets/icons/png/Icon_Actions/disarm.png new file mode 100644 index 0000000000..1bf8de1548 Binary files /dev/null and b/extras/assets/icons/png/Icon_Actions/disarm.png differ diff --git a/extras/assets/icons/png/Icon_Module_Ambient_Sounds_ca.png b/extras/assets/icons/png/Icon_Module/Icon_Module_Ambient_Sounds_ca.png similarity index 100% rename from extras/assets/icons/png/Icon_Module_Ambient_Sounds_ca.png rename to extras/assets/icons/png/Icon_Module/Icon_Module_Ambient_Sounds_ca.png diff --git a/extras/assets/icons/png/Icon_Module_BFTracking_ca.png b/extras/assets/icons/png/Icon_Module/Icon_Module_BFTracking_ca.png similarity index 100% rename from extras/assets/icons/png/Icon_Module_BFTracking_ca.png rename to extras/assets/icons/png/Icon_Module/Icon_Module_BFTracking_ca.png diff --git a/extras/assets/icons/png/Icon_Module_CheckPBO_ca.png b/extras/assets/icons/png/Icon_Module/Icon_Module_CheckPBO_ca.png similarity index 100% rename from extras/assets/icons/png/Icon_Module_CheckPBO_ca.png rename to extras/assets/icons/png/Icon_Module/Icon_Module_CheckPBO_ca.png diff --git a/extras/assets/icons/png/Icon_Module_Explosives_ca.png b/extras/assets/icons/png/Icon_Module/Icon_Module_Explosives_ca.png similarity index 100% rename from extras/assets/icons/png/Icon_Module_Explosives_ca.png rename to extras/assets/icons/png/Icon_Module/Icon_Module_Explosives_ca.png diff --git a/extras/assets/icons/png/Icon_Module_FriendlyFire_ca.png b/extras/assets/icons/png/Icon_Module/Icon_Module_FriendlyFire_ca.png similarity index 100% rename from extras/assets/icons/png/Icon_Module_FriendlyFire_ca.png rename to extras/assets/icons/png/Icon_Module/Icon_Module_FriendlyFire_ca.png diff --git a/extras/assets/icons/png/Icon_Module_Hearing_ca.png b/extras/assets/icons/png/Icon_Module/Icon_Module_Hearing_ca.png similarity index 100% rename from extras/assets/icons/png/Icon_Module_Hearing_ca.png rename to extras/assets/icons/png/Icon_Module/Icon_Module_Hearing_ca.png diff --git a/extras/assets/icons/png/Icon_Module_Interaction_ca.png b/extras/assets/icons/png/Icon_Module/Icon_Module_Interaction_ca.png similarity index 100% rename from extras/assets/icons/png/Icon_Module_Interaction_ca.png rename to extras/assets/icons/png/Icon_Module/Icon_Module_Interaction_ca.png diff --git a/extras/assets/icons/png/Icon_Module_LSD_ca.png b/extras/assets/icons/png/Icon_Module/Icon_Module_LSD_ca.png similarity index 100% rename from extras/assets/icons/png/Icon_Module_LSD_ca.png rename to extras/assets/icons/png/Icon_Module/Icon_Module_LSD_ca.png diff --git a/extras/assets/icons/png/Icon_Module_Make_Unit_Surrender_ca.png b/extras/assets/icons/png/Icon_Module/Icon_Module_Make_Unit_Surrender_ca.png similarity index 100% rename from extras/assets/icons/png/Icon_Module_Make_Unit_Surrender_ca.png rename to extras/assets/icons/png/Icon_Module/Icon_Module_Make_Unit_Surrender_ca.png diff --git a/extras/assets/icons/png/Icon_Module_Map_ca.png b/extras/assets/icons/png/Icon_Module/Icon_Module_Map_ca.png similarity index 100% rename from extras/assets/icons/png/Icon_Module_Map_ca.png rename to extras/assets/icons/png/Icon_Module/Icon_Module_Map_ca.png diff --git a/extras/assets/icons/png/Icon_Module_Medical_ca.png b/extras/assets/icons/png/Icon_Module/Icon_Module_Medical_ca.png similarity index 100% rename from extras/assets/icons/png/Icon_Module_Medical_ca.png rename to extras/assets/icons/png/Icon_Module/Icon_Module_Medical_ca.png diff --git a/extras/assets/icons/png/Icon_Module_NameTags_ca.png b/extras/assets/icons/png/Icon_Module/Icon_Module_NameTags_ca.png similarity index 100% rename from extras/assets/icons/png/Icon_Module_NameTags_ca.png rename to extras/assets/icons/png/Icon_Module/Icon_Module_NameTags_ca.png diff --git a/extras/assets/icons/png/Icon_Module_Rallypoint_ca.png b/extras/assets/icons/png/Icon_Module/Icon_Module_Rallypoint_ca.png similarity index 100% rename from extras/assets/icons/png/Icon_Module_Rallypoint_ca.png rename to extras/assets/icons/png/Icon_Module/Icon_Module_Rallypoint_ca.png diff --git a/extras/assets/icons/png/Icon_Module_Respawn_ca.png b/extras/assets/icons/png/Icon_Module/Icon_Module_Respawn_ca.png similarity index 100% rename from extras/assets/icons/png/Icon_Module_Respawn_ca.png rename to extras/assets/icons/png/Icon_Module/Icon_Module_Respawn_ca.png diff --git a/extras/assets/icons/png/Icon_Module_SwitchUnits_ca.png b/extras/assets/icons/png/Icon_Module/Icon_Module_SwitchUnits_ca.png similarity index 100% rename from extras/assets/icons/png/Icon_Module_SwitchUnits_ca.png rename to extras/assets/icons/png/Icon_Module/Icon_Module_SwitchUnits_ca.png diff --git a/extras/assets/icons/png/Icon_Module_VehicleKey_ca.png b/extras/assets/icons/png/Icon_Module/Icon_Module_VehicleKey_ca.png similarity index 100% rename from extras/assets/icons/png/Icon_Module_VehicleKey_ca.png rename to extras/assets/icons/png/Icon_Module/Icon_Module_VehicleKey_ca.png diff --git a/extras/assets/icons/png/Icon_Module_VehicleLock_ca.png b/extras/assets/icons/png/Icon_Module/Icon_Module_VehicleLock_ca.png similarity index 100% rename from extras/assets/icons/png/Icon_Module_VehicleLock_ca.png rename to extras/assets/icons/png/Icon_Module/Icon_Module_VehicleLock_ca.png diff --git a/extras/assets/icons/png/Icon_Module_Wind_ca.png b/extras/assets/icons/png/Icon_Module/Icon_Module_Wind_ca.png similarity index 100% rename from extras/assets/icons/png/Icon_Module_Wind_ca.png rename to extras/assets/icons/png/Icon_Module/Icon_Module_Wind_ca.png diff --git a/extras/assets/icons/png/Icon_Module_microDAGR_ca.png b/extras/assets/icons/png/Icon_Module/Icon_Module_microDAGR_ca.png similarity index 100% rename from extras/assets/icons/png/Icon_Module_microDAGR_ca.png rename to extras/assets/icons/png/Icon_Module/Icon_Module_microDAGR_ca.png diff --git a/tools/make.py b/tools/make.py index cdd2de22ed..6222932727 100644 --- a/tools/make.py +++ b/tools/make.py @@ -606,14 +606,17 @@ See the make.cfg file for additional build options. cmd = [os.path.join(arma3tools_path, "CfgConvert", "CfgConvert.exe"), "-bin", "-dst", os.path.join(work_drive, prefix, module, "config.bin"), os.path.join(work_drive, prefix, module, "config.cpp")] ret = subprocess.call(cmd) if ret != 0: - print_error("CfgConvert -bin return code == " + str(ret)) - input("Press Enter to continue...") + print_error("CfgConvert -bin return code == " + str(ret) + ". Usually means there is a syntax error within the config.cpp file.") + os.remove(os.path.join(work_drive, prefix, module, "config.cpp")) + shutil.copyfile(os.path.join(work_drive, prefix, module, "config.backup"), os.path.join(work_drive, prefix, module, "config.cpp")) cmd = [os.path.join(arma3tools_path, "CfgConvert", "CfgConvert.exe"), "-txt", "-dst", os.path.join(work_drive, prefix, module, "config.cpp"), os.path.join(work_drive, prefix, module, "config.bin")] ret = subprocess.call(cmd) if ret != 0: - print_error("CfgConvert -txt) return code == " + str(ret)) - input("Press Enter to continue...") + print_error("CfgConvert -txt return code == " + str(ret) + ". Usually means there is a syntax error within the config.cpp file.") + os.remove(os.path.join(work_drive, prefix, module, "config.cpp")) + shutil.copyfile(os.path.join(work_drive, prefix, module, "config.backup"), os.path.join(work_drive, prefix, module, "config.cpp")) + # Include build number try: @@ -622,13 +625,16 @@ See the make.cfg file for additional build options. configtext = f.read() f.close() - patchestext = re.search(r"class CfgPatches\n\{(.*?)\n\}", configtext, re.DOTALL).group(1) - patchestext = re.sub(r'version(.*?)="(.*?)"', r'version\1="\2-{}"'.format(commit_id), patchestext) - configtext = re.sub(r"class CfgPatches\n\{(.*?)\n\}", "class CfgPatches\n{"+patchestext+"\n}", configtext, flags=re.DOTALL) - - f = open(configpath, "w") - f.write(configtext) - f.close() + if configtext: + patchestext = re.search(r"class CfgPatches\n\{(.*?)\n\}", configtext, re.DOTALL).group(1) + patchestext = re.sub(r'version(.*?)="(.*?)"', r'version\1="\2-{}"'.format(commit_id), patchestext) + configtext = re.sub(r"class CfgPatches\n\{(.*?)\n\}", "class CfgPatches\n{"+patchestext+"\n}", configtext, flags=re.DOTALL) + f = open(configpath, "w") + f.write(configtext) + f.close() + else: + os.remove(os.path.join(work_drive, prefix, module, "config.cpp")) + os.rename(os.path.join(work_drive, prefix, module, "config.backup"), os.path.join(work_drive, prefix, module, "config.cpp")) except: raise print_error("Failed to include build number") @@ -675,7 +681,6 @@ See the make.cfg file for additional build options. if not build_successful: print_error("pboProject return code == " + str(ret)) print_error("Module not successfully built/signed.") - input("Press Enter to continue...") print ("Resuming build...") continue diff --git a/tools/make64.py b/tools/make64.py index 61dee96310..24f8ea2b0b 100644 --- a/tools/make64.py +++ b/tools/make64.py @@ -606,14 +606,17 @@ See the make.cfg file for additional build options. cmd = [os.path.join(arma3tools_path, "CfgConvert", "CfgConvert.exe"), "-bin", "-dst", os.path.join(work_drive, prefix, module, "config.bin"), os.path.join(work_drive, prefix, module, "config.cpp")] ret = subprocess.call(cmd) if ret != 0: - print_error("CfgConvert -bin return code == " + str(ret)) - input("Press Enter to continue...") + print_error("CfgConvert -bin return code == " + str(ret) + ". Usually means there is a syntax error within the config.cpp file.") + os.remove(os.path.join(work_drive, prefix, module, "config.cpp")) + shutil.copyfile(os.path.join(work_drive, prefix, module, "config.backup"), os.path.join(work_drive, prefix, module, "config.cpp")) cmd = [os.path.join(arma3tools_path, "CfgConvert", "CfgConvert.exe"), "-txt", "-dst", os.path.join(work_drive, prefix, module, "config.cpp"), os.path.join(work_drive, prefix, module, "config.bin")] ret = subprocess.call(cmd) if ret != 0: - print_error("CfgConvert -txt) return code == " + str(ret)) - input("Press Enter to continue...") + print_error("CfgConvert -txt return code == " + str(ret) + ". Usually means there is a syntax error within the config.cpp file.") + os.remove(os.path.join(work_drive, prefix, module, "config.cpp")) + shutil.copyfile(os.path.join(work_drive, prefix, module, "config.backup"), os.path.join(work_drive, prefix, module, "config.cpp")) + # Include build number try: @@ -622,13 +625,16 @@ See the make.cfg file for additional build options. configtext = f.read() f.close() - patchestext = re.search(r"class CfgPatches\n\{(.*?)\n\}", configtext, re.DOTALL).group(1) - patchestext = re.sub(r'version(.*?)="(.*?)"', r'version\1="\2-{}"'.format(commit_id), patchestext) - configtext = re.sub(r"class CfgPatches\n\{(.*?)\n\}", "class CfgPatches\n{"+patchestext+"\n}", configtext, flags=re.DOTALL) - - f = open(configpath, "w") - f.write(configtext) - f.close() + if configtext: + patchestext = re.search(r"class CfgPatches\n\{(.*?)\n\}", configtext, re.DOTALL).group(1) + patchestext = re.sub(r'version(.*?)="(.*?)"', r'version\1="\2-{}"'.format(commit_id), patchestext) + configtext = re.sub(r"class CfgPatches\n\{(.*?)\n\}", "class CfgPatches\n{"+patchestext+"\n}", configtext, flags=re.DOTALL) + f = open(configpath, "w") + f.write(configtext) + f.close() + else: + os.remove(os.path.join(work_drive, prefix, module, "config.cpp")) + os.rename(os.path.join(work_drive, prefix, module, "config.backup"), os.path.join(work_drive, prefix, module, "config.cpp")) except: raise print_error("Failed to include build number") @@ -675,7 +681,6 @@ See the make.cfg file for additional build options. if not build_successful: print_error("pboProject return code == " + str(ret)) print_error("Module not successfully built/signed.") - input("Press Enter to continue...") print ("Resuming build...") continue