how do I merge

This commit is contained in:
commy2 2015-04-13 19:23:42 +02:00
commit bd168981e2
167 changed files with 6022 additions and 4372 deletions

View File

@ -30,6 +30,7 @@ ACCtomeek <tomeek99@gmail.com>
Adanteh Adanteh
aeroson aeroson
Aggr094 <bastards4glory@gmail.com> Aggr094 <bastards4glory@gmail.com>
Anthariel <Contact@storm-simulation.com>
BlackQwar BlackQwar
Brakoviejo Brakoviejo
Codingboy Codingboy
@ -51,6 +52,7 @@ havena <silveredenis@gmail.com>
Hawkins Hawkins
jokoho48 jokoho48
Jonpas <jonpas33@gmail.com> Jonpas <jonpas33@gmail.com>
Kllrt <kllrtik@gmail.com>
Legolasindar "Viper" <legolasindar@gmail.com> Legolasindar "Viper" <legolasindar@gmail.com>
licht-im-Norden87 <lichtimnorden87@gmail.com> licht-im-Norden87 <lichtimnorden87@gmail.com>
MarcBook MarcBook
@ -69,3 +71,6 @@ Tourorist <tourorist@gmail.com>
Valentin Torikian <valentin.torikian@gmail.com> Valentin Torikian <valentin.torikian@gmail.com>
zGuba zGuba
Aleksey EpMAK Yermakov <epmak777@gmail.com> Aleksey EpMAK Yermakov <epmak777@gmail.com>
ruPaladin <happyworm24@rambler.ru>
BlackPixxel
Asgar Serran <piechottaf@web.de>

View File

@ -574,4 +574,198 @@ class CfgWeapons {
maxRange = 1200; //1000; 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;
};
}; };

View File

@ -40,7 +40,7 @@
<English>Close Cargo Door</English> <English>Close Cargo Door</English>
<German>Laderampe schließen</German> <German>Laderampe schließen</German>
<Spanish>Cerrar compuerta de carga</Spanish> <Spanish>Cerrar compuerta de carga</Spanish>
<French>Fermer Rampe Cargo</French> <French>Fermer la Rampe du Cargo</French>
<Polish>Zamknij drzwi ładowni</Polish> <Polish>Zamknij drzwi ładowni</Polish>
<Czech>Zavřít nákladní prostor</Czech> <Czech>Zavřít nákladní prostor</Czech>
<Hungarian>Rámpát zárni</Hungarian> <Hungarian>Rámpát zárni</Hungarian>

View File

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2015-04-10 -->
<Project name="ACE"> <Project name="ACE">
<Package name="Attach"> <Package name="Attach">
<Key ID="STR_ACE_Attach_AttachDetach"> <Key ID="STR_ACE_Attach_AttachDetach">
@ -44,7 +43,7 @@
<Spanish>Marcador IR acoplado</Spanish> <Spanish>Marcador IR acoplado</Spanish>
<Polish>Przyczepiono stroboskop IR</Polish> <Polish>Przyczepiono stroboskop IR</Polish>
<French>Strobe IR attaché</French> <French>Strobe IR attaché</French>
<Czech>IR Značkovač Připnutý</Czech> <Czech>IR Značkovač připnutý</Czech>
<Portuguese>Marcador IV Acoplado</Portuguese> <Portuguese>Marcador IV Acoplado</Portuguese>
<Italian>Strobo IR attaccata</Italian> <Italian>Strobo IR attaccata</Italian>
<Hungarian>Infravörös jeladó hozzácsatolva</Hungarian> <Hungarian>Infravörös jeladó hozzácsatolva</Hungarian>
@ -56,7 +55,7 @@
<Spanish>Marcador IR quitado</Spanish> <Spanish>Marcador IR quitado</Spanish>
<Polish>Odczepiono stroboskop IR</Polish> <Polish>Odczepiono stroboskop IR</Polish>
<French>Strobe IR détaché</French> <French>Strobe IR détaché</French>
<Czech>IR Značkovač Odepnutý</Czech> <Czech>IR Značkovač odepnutý</Czech>
<Portuguese>Marcador IV Separado</Portuguese> <Portuguese>Marcador IV Separado</Portuguese>
<Italian>Strobo IR staccata</Italian> <Italian>Strobo IR staccata</Italian>
<Hungarian>Infravörös jeladó lecsatolva</Hungarian> <Hungarian>Infravörös jeladó lecsatolva</Hungarian>
@ -68,7 +67,7 @@
<Spanish>Granada IR acoplada</Spanish> <Spanish>Granada IR acoplada</Spanish>
<Polish>Przyczepiono granat IR</Polish> <Polish>Przyczepiono granat IR</Polish>
<French>Grenade IR attachée</French> <French>Grenade IR attachée</French>
<Czech>IR Granát Připnutý</Czech> <Czech>IR Granát připnutý</Czech>
<Portuguese>Granada IV Acoplada</Portuguese> <Portuguese>Granada IV Acoplada</Portuguese>
<Italian>Granata IR attaccata</Italian> <Italian>Granata IR attaccata</Italian>
<Hungarian>Infravörös gránát hozzácsatolva</Hungarian> <Hungarian>Infravörös gránát hozzácsatolva</Hungarian>
@ -80,7 +79,7 @@
<Spanish>Granada IR quitada</Spanish> <Spanish>Granada IR quitada</Spanish>
<Polish>Odczepiono granat IR</Polish> <Polish>Odczepiono granat IR</Polish>
<French>Grenade IR détachée</French> <French>Grenade IR détachée</French>
<Czech>IR Granát Odepnutý</Czech> <Czech>IR Granát odepnutý</Czech>
<Portuguese>Granada IV Separada</Portuguese> <Portuguese>Granada IV Separada</Portuguese>
<Italian>Granata IR staccata</Italian> <Italian>Granata IR staccata</Italian>
<Hungarian>Infravörös gránát lecsatolva</Hungarian> <Hungarian>Infravörös gránát lecsatolva</Hungarian>
@ -92,7 +91,7 @@
<Spanish>Barra de luz acoplada</Spanish> <Spanish>Barra de luz acoplada</Spanish>
<Polish>Przyczepiono światło chemiczne</Polish> <Polish>Przyczepiono światło chemiczne</Polish>
<French>Chemlight attaché</French> <French>Chemlight attaché</French>
<Czech>Chemické světlo Připnuto</Czech> <Czech>Chemické světlo připnuto</Czech>
<Portuguese>Chemlight Acoplada</Portuguese> <Portuguese>Chemlight Acoplada</Portuguese>
<Italian>Chemlight attaccata</Italian> <Italian>Chemlight attaccata</Italian>
<Hungarian>Chemlight hozzácsatolva</Hungarian> <Hungarian>Chemlight hozzácsatolva</Hungarian>
@ -104,7 +103,7 @@
<Spanish>Barra de luz quitada</Spanish> <Spanish>Barra de luz quitada</Spanish>
<Polish>Odczepiono światło chemiczne</Polish> <Polish>Odczepiono światło chemiczne</Polish>
<French>Chemlight détaché</French> <French>Chemlight détaché</French>
<Czech>Chemické světlo Odepnuto</Czech> <Czech>Chemické světlo odepnuto</Czech>
<Portuguese>Chemlight Separada</Portuguese> <Portuguese>Chemlight Separada</Portuguese>
<Italian>Chemlight staccata</Italian> <Italian>Chemlight staccata</Italian>
<Hungarian>Chemlight hozzácsatolva</Hungarian> <Hungarian>Chemlight hozzácsatolva</Hungarian>
@ -172,10 +171,12 @@
</Key> </Key>
<Key ID="STR_ACE_Attach_Failed"> <Key ID="STR_ACE_Attach_Failed">
<English>Attach Failed</English> <English>Attach Failed</English>
<French>Échec du Attacher</French> <French>Échec de l'attachement</French>
<German>Befestigen fehlgeschlagen</German> <German>Befestigen fehlgeschlagen</German>
<Russian>Соединение прервано</Russian> <Russian>Соединение прервано</Russian>
<Spanish>Error al acoplar</Spanish> <Spanish>Error al acoplar</Spanish>
<Czech>Připnutí selhalo</Czech>
<Polish>Przyczepianie nie powiodło się</Polish>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -18,6 +18,8 @@
PARAMS_2(_unit,_newSurrenderState); PARAMS_2(_unit,_newSurrenderState);
if (currentWeapon _unit != "") exitWith {false};
private "_returnValue"; private "_returnValue";
_returnValue = if (_newSurrenderState) then { _returnValue = if (_newSurrenderState) then {

View File

@ -54,7 +54,7 @@ if (_state) then {
PARAMS_2(_unit,_newAnimation); PARAMS_2(_unit,_newAnimation);
if ((_newAnimation != "ACE_AmovPercMstpSsurWnonDnon") && {!(_unit getVariable ["ACE_isUnconscious", false])}) then { if ((_newAnimation != "ACE_AmovPercMstpSsurWnonDnon") && {!(_unit getVariable ["ACE_isUnconscious", false])}) then {
ERROR("Handcuff animation interrupted"); 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); [_unit, "ACE_AmovPercMstpScapWnonDnon", 1] call EFUNC(common,doAnimation);
}; };
}]; }];

View File

@ -52,7 +52,7 @@ if (_state) then {
PARAMS_2(_unit,_newAnimation); PARAMS_2(_unit,_newAnimation);
if ((_newAnimation != "ACE_AmovPercMstpSsurWnonDnon") && {!(_unit getVariable ["ACE_isUnconscious", false])}) then { if ((_newAnimation != "ACE_AmovPercMstpSsurWnonDnon") && {!(_unit getVariable ["ACE_isUnconscious", false])}) then {
ERROR("Surrender animation interrupted"); 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); [_unit, "ACE_AmovPercMstpSsurWnonDnon", 1] call EFUNC(common,doAnimation);
}; };
}]; }];

View File

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2015-04-10 -->
<Project name="ACE"> <Project name="ACE">
<Package name="Captives"> <Package name="Captives">
<Key ID="STR_ACE_Captives_SetCaptive"> <Key ID="STR_ACE_Captives_SetCaptive">
@ -132,33 +131,48 @@
</Key> </Key>
<Key ID="STR_ACE_Captives_StartSurrendering"> <Key ID="STR_ACE_Captives_StartSurrendering">
<English>Surrender</English> <English>Surrender</English>
<French>Se rendre</French>
<German>Kapitulieren</German> <German>Kapitulieren</German>
<Spanish>Rendirse</Spanish> <Spanish>Rendirse</Spanish>
<Russian>Сдаться</Russian> <Russian>Сдаться</Russian>
<Czech>Vzdát se</Czech>
<Polish>Poddaj się</Polish>
</Key> </Key>
<Key ID="STR_ACE_Captives_StopSurrendering"> <Key ID="STR_ACE_Captives_StopSurrendering">
<English>Stop Surrendering</English> <English>Stop Surrendering</English>
<French>Arrêt de se rendre</French>
<German>Den Kampf erneut aufnehmen</German> <German>Den Kampf erneut aufnehmen</German>
<Spanish>Dejar de rendirse</Spanish> <Spanish>Dejar de rendirse</Spanish>
<Russian>Остановить сдачу</Russian> <Russian>Остановить сдачу</Russian>
<Czech>Přestat se vzdávat</Czech>
<Polish>Podejmij walkę ponownie</Polish>
</Key> </Key>
<Key ID="STR_ACE_Captives_Zeus_OnlyAlive"> <Key ID="STR_ACE_Captives_Zeus_OnlyAlive">
<English>Only use on alive units</English> <English>Only use on alive units</English>
<French>Utilisation uniquement sur les unités en vie</French>
<German>Nur bei lebenden Einheiten verwendbar</German> <German>Nur bei lebenden Einheiten verwendbar</German>
<Spanish>Utilizar solo en unidades vivas</Spanish> <Spanish>Utilizar solo en unidades vivas</Spanish>
<Russian>Только для живых юнитов</Russian> <Russian>Только для живых юнитов</Russian>
<Czech>Použitelné jen na živé jednotky</Czech>
<Polish>Używaj tylko na żywych jednostkach</Polish>
</Key> </Key>
<Key ID="STR_ACE_Captives_Zeus_OnlyInfantry"> <Key ID="STR_ACE_Captives_Zeus_OnlyInfantry">
<English>Only use on dismounted inf</English> <English>Only use on dismounted inf</English>
<French>Utilisation uniquement sur les infanteries</French>
<German>Nur bei abgesessener Infanterie verwendbar</German> <German>Nur bei abgesessener Infanterie verwendbar</German>
<Spanish>Utilizar solo en infanteria desmontada</Spanish> <Spanish>Utilizar solo en infanteria desmontada</Spanish>
<Russian>Только для спеш. солдат</Russian> <Russian>Только для спеш. солдат</Russian>
<Czech>Použitelné jen na pěsích jednotkách</Czech>
<Polish>Używaj tylko na piechocie poza wszelkimi pojazdami</Polish>
</Key> </Key>
<Key ID="STR_ACE_Captives_Zeus_NothingSelected"> <Key ID="STR_ACE_Captives_Zeus_NothingSelected">
<English>Nothing under mouse</English> <English>Nothing under mouse</English>
<French>Rien sous la souris</French>
<German>Es wurde nichts ausgewählt</German> <German>Es wurde nichts ausgewählt</German>
<Spanish>Nada bajo el ratón</Spanish> <Spanish>Nada bajo el ratón</Spanish>
<Russian>Объекты под мышью отсутствуют</Russian> <Russian>Объекты под мышью отсутствуют</Russian>
<Czech>Nic není vybráno</Czech>
<Polish>Nie ma nic pod kursorem</Polish>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -26,6 +26,9 @@ class Extended_InitPost_EventHandlers {
class GVAR(forceWalk) { class GVAR(forceWalk) {
init = QUOTE(if (local (_this select 0)) then {_this call FUNC(applyForceWalkStatus);};); 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)); respawn = QUOTE(_this call FUNC(resetAllDefaults));
}; };
}; };
class CAManBase {
class GVAR(muteUnit) {
respawn = QUOTE(_this call FUNC(muteUnitHandleRespawn));
};
};
}; };

View File

@ -35,6 +35,7 @@ if (hasInterface) then {
["setDir", {(_this select 0) setDir (_this select 1)}] call FUNC(addEventhandler); ["setDir", {(_this select 0) setDir (_this select 1)}] call FUNC(addEventhandler);
["setFuel", {(_this select 0) setFuel (_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 // hack to get PFH to work in briefing
[QGVAR(onBriefingPFH), "onEachFrame", { [QGVAR(onBriefingPFH), "onEachFrame", {

View File

@ -124,6 +124,8 @@ PREP(moduleCheckPBOs);
PREP(moduleLSDVehicles); PREP(moduleLSDVehicles);
PREP(moveToTempGroup); PREP(moveToTempGroup);
PREP(muteUnit); PREP(muteUnit);
PREP(muteUnitHandleInitPost);
PREP(muteUnitHandleRespawn);
PREP(numberToDigits); PREP(numberToDigits);
PREP(numberToDigitsString); PREP(numberToDigitsString);
PREP(numberToString); PREP(numberToString);

View File

@ -4,9 +4,10 @@
* or places it in a weaponHolder if no space. * or places it in a weaponHolder if no space.
* *
* Arguments: * Arguments:
* 0: Unit (OBJECT) * 0: Unit <OBJECT>
* 1: Classname (String) * 1: Classname <STRING>
* 2: Container (String, Optional) uniform, vest, backpack * 2: Container (uniform, vest, backpack) <STRING><OPTIONAL>
* 3: Magazine Ammo Count <NUMBER><OPTIONAL>
* *
* Return Value: * Return Value:
* Array: * Array:
@ -19,37 +20,29 @@
#include "script_component.hpp" #include "script_component.hpp"
EXPLODE_2_PVT(_this,_unit,_classname); EXPLODE_2_PVT(_this,_unit,_classname);
DEFAULT_PARAM(2,_container,"");
DEFAULT_PARAM(3,_ammoCount,-1);
private "_addedToPlayer"; private "_addedToPlayer";
private "_container";
private "_canAdd"; private "_canAdd";
private "_type"; private "_type";
_canAdd = false; _canAdd = false;
_addedToPlayer = true; _addedToPlayer = true;
if((count _this) > 2) then {
_container = _this select 2;
} else {
_container = nil;
};
_type = [_classname] call EFUNC(common,getItemType); _type = [_classname] call EFUNC(common,getItemType);
if(!isNil "_container") then { switch (_container) do {
switch (_container) do { case "vest": { _canAdd = _unit canAddItemToVest _classname; };
case "vest": { _canAdd = _unit canAddItemToVest _classname; }; case "backpack": { _canAdd = _unit canAddItemToBackpack _classname; };
case "backpack": { _canAdd = _unit canAddItemToBackpack _classname; }; case "uniform": { _canAdd = _unit canAddItemToUniform _classname; };
case "uniform": { _canAdd = _unit canAddItemToUniform _classname; }; default {_canAdd = _unit canAdd _classname;};
};
} else {
_container = "";
_canAdd = _unit canAdd _classname;
}; };
switch ((_type select 0)) do { switch ((_type select 0)) do {
case "weapon": { case "weapon": {
if (_canAdd) then { if (_canAdd) then {
switch (_container) do { switch (_container) do {
case "vest": { (vestContainer _unit) addWeaponCargoGlobal [_classname, 1]; }; case "vest": { (vestContainer _unit) addWeaponCargoGlobal [_classname, 1]; };
case "backpack": { (backpackContainer _unit) addWeaponCargoGlobal [_classname, 1]; }; case "backpack": { (backpackContainer _unit) addWeaponCargoGlobal [_classname, 1]; };
case "uniform": { (uniformContainer _unit) addWeaponCargoGlobal [_classname, 1]; }; case "uniform": { (uniformContainer _unit) addWeaponCargoGlobal [_classname, 1]; };
@ -64,24 +57,25 @@ switch ((_type select 0)) do {
}; };
}; };
case "magazine": { case "magazine": {
if (_ammoCount == -1) then {_ammoCount = getNumber (configFile >> "CfgMagazines" >> _classname >> "count");};
if (_canAdd) then { if (_canAdd) then {
switch (_container) do { switch (_container) do {
case "vest": { (vestContainer _unit) addMagazineCargoGlobal [_classname, 1]; }; case "vest": { (vestContainer _unit) addMagazineCargoGlobal [_classname, _ammoCount]; };
case "backpack": { (backpackContainer _unit) addMagazineCargoGlobal [_classname, 1]; }; case "backpack": { (backpackContainer _unit) addMagazineCargoGlobal [_classname, _ammoCount]; };
case "uniform": { (uniformContainer _unit) addMagazineCargoGlobal [_classname, 1]; }; case "uniform": { (uniformContainer _unit) addMagazineCargoGlobal [_classname, _ammoCount]; };
default { _unit addMagazineGlobal _classname; }; default {_unit addMagazine [_classname, _ammoCount]; };
}; };
} else { } else {
_addedToPlayer = false; _addedToPlayer = false;
_pos = _unit modelToWorldVisual [0,1,0.05]; _pos = _unit modelToWorldVisual [0,1,0.05];
_unit = createVehicle ["WeaponHolder_Single_F",_pos,[],0,"NONE"]; _unit = createVehicle ["WeaponHolder_Single_F",_pos,[],0,"NONE"];
_unit addMagazineCargoGlobal [_classname, 1]; _unit addMagazineCargoGlobal [_classname, _ammoCount];
_unit setPosATL _pos; _unit setPosATL _pos;
}; };
}; };
case "item": { case "item": {
if (_canAdd) then { if (_canAdd) then {
switch (_container) do { switch (_container) do {
case "vest": { _unit addItemToVest _classname; }; case "vest": { _unit addItemToVest _classname; };
case "backpack": { _unit addItemToBackpack _classname; }; case "backpack": { _unit addItemToBackpack _classname; };
case "uniform": { _unit addItemToUniform _classname; }; case "uniform": { _unit addItemToUniform _classname; };

View File

@ -5,21 +5,34 @@
* *
* Argument: * Argument:
* 0: Unit (Object) * 0: Unit (Object)
* 1: Reason to mute the unit (String)
* *
* Return value: * Return value:
* Nothing * Nothing
*/ */
#include "script_component.hpp" #include "script_component.hpp"
private ["_unit", "_speaker"]; private ["_unit", "_reason"];
_unit = _this select 0; _unit = _this select 0;
_reason = _this select 1;
if (isNull _unit) exitWith {}; 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; _speaker = speaker _unit;
if (_speaker == "ACE_NoVoice") exitWith {}; 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]; _unit setVariable ["ACE_OriginalSpeaker", _speaker, true];

View File

@ -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);
};

View File

@ -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);

View File

@ -23,6 +23,3 @@ _respawnVariables pushBack "ACE_PersistentFunctions";
{ {
_unit setVariable [_x, _unit getVariable _x, true]; _unit setVariable [_x, _unit getVariable _x, true];
} forEach _respawnVariables; } forEach _respawnVariables;
// fix speaker after respawn
[_unit, format ["{_this setSpeaker '%1'}", speaker _unit], 2] call FUNC(execRemoteFnc);

View File

@ -1,23 +1,39 @@
/* /*
* Author: commy2 * Author: commy2
* *
* Unmutes the unit. * Unmutes the unit. Only unmutes if the last reason was removed.
* *
* Argument: * Argument:
* 0: Unit (Object) * 0: Unit (Object)
* 1: Reason to unmute the unit. (String)
* *
* Return value: * Return value:
* Nothing * Nothing
*/ */
#include "script_component.hpp" #include "script_component.hpp"
private ["_unit", "_speaker"]; private ["_unit", "_reason"];
_unit = _this select 0; _unit = _this select 0;
_reason = _this select 1;
if (isNull _unit) exitWith {}; 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", ""]; _speaker = _unit getVariable ["ACE_OriginalSpeaker", ""];
if (_speaker == "") exitWith {}; if (_speaker == "") exitWith {};
[0, format ["{(_this select 1) setSpeaker '%1'}", _speaker], _unit, "ACE_Speaker"] call FUNC(execPersistentFnc); ["setSpeaker", _unit, [_unit, _speaker]] call FUNC(targetEvent);

View File

@ -42,8 +42,8 @@
<English>ACE Options</English> <English>ACE Options</English>
<German>ACE Optionen</German> <German>ACE Optionen</German>
<Spanish>Opciones ACE</Spanish> <Spanish>Opciones ACE</Spanish>
<Polish>Opcje ACE</Polish> <Polish>Ustawienia ACE</Polish>
<Czech>ACE Nastavení</Czech> <Czech>Nastavení ACE</Czech>
<French>ACE Options</French> <French>ACE Options</French>
<Russian>ACE Настройки</Russian> <Russian>ACE Настройки</Russian>
<Portuguese>Opções do ACE</Portuguese> <Portuguese>Opções do ACE</Portuguese>
@ -248,7 +248,7 @@
<German>Aktion abgebrochen.</German> <German>Aktion abgebrochen.</German>
<Spanish>Acción cancelada.</Spanish> <Spanish>Acción cancelada.</Spanish>
<Polish>Przerwano czynność</Polish> <Polish>Przerwano czynność</Polish>
<Czech>Akce přerušena</Czech> <Czech>Akce přerušena.</Czech>
<French>Action annulée.</French> <French>Action annulée.</French>
<Russian>Действие отменено.</Russian> <Russian>Действие отменено.</Russian>
<Portuguese>Ação cancelada.</Portuguese> <Portuguese>Ação cancelada.</Portuguese>
@ -304,6 +304,7 @@
<German>Anfrage akzeptieren</German> <German>Anfrage akzeptieren</German>
<Spanish>Aceptar peticiones</Spanish> <Spanish>Aceptar peticiones</Spanish>
<Polish>Akceptuj prośby</Polish> <Polish>Akceptuj prośby</Polish>
<Czech>Přijmout žádost</Czech>
<Italian>Accetta Richieste</Italian> <Italian>Accetta Richieste</Italian>
<Russian>Подтвердить запросы</Russian> <Russian>Подтвердить запросы</Russian>
</Key> </Key>
@ -312,6 +313,7 @@
<German>Anfrage ablehnen</German> <German>Anfrage ablehnen</German>
<Spanish>Rechazar peticiones</Spanish> <Spanish>Rechazar peticiones</Spanish>
<Polish>Ignoruj prośby</Polish> <Polish>Ignoruj prośby</Polish>
<Czech>Zamítnout žádost</Czech>
<Italian>Rifiuta Richieste</Italian> <Italian>Rifiuta Richieste</Italian>
<Russian>Отклонить запросы</Russian> <Russian>Отклонить запросы</Russian>
</Key> </Key>
@ -337,6 +339,8 @@
<Spanish>Iconos de respuesta</Spanish> <Spanish>Iconos de respuesta</Spanish>
<Italian>Icone informative</Italian> <Italian>Icone informative</Italian>
<Russian>Иконки состояний</Russian> <Russian>Иконки состояний</Russian>
<Polish>Ikony pomocnicze</Polish>
<French>Icônes de Feedback</French>
</Key> </Key>
<Key ID="STR_ACE_Common_SettingFeedbackIconsDesc"> <Key ID="STR_ACE_Common_SettingFeedbackIconsDesc">
<English>Select the position of or disable the feedback icons on your screen. These icons will show to provide extra feedback on your character status and actions performed.</English> <English>Select the position of or disable the feedback icons on your screen. These icons will show to provide extra feedback on your character status and actions performed.</English>
@ -344,6 +348,8 @@
<Spanish>Seleccionar la posición de o desactivar los íconos de respuesta en la pantalla. Estos iconos se mostrarán para proporcionar información adicional sobre el estado de su personaje y las acciones a realizar.</Spanish> <Spanish>Seleccionar la posición de o desactivar los íconos de respuesta en la pantalla. Estos iconos se mostrarán para proporcionar información adicional sobre el estado de su personaje y las acciones a realizar.</Spanish>
<Italian>Seleziona la posizione o disabilita le icone informative sul tuo schermo. Queste saranno mostrate per fornire informazioni aggiuntive sullo stato o sulle azioni del giocatore.</Italian> <Italian>Seleziona la posizione o disabilita le icone informative sul tuo schermo. Queste saranno mostrate per fornire informazioni aggiuntive sullo stato o sulle azioni del giocatore.</Italian>
<Russian>Выберите положение или или отключите отображение иконок состояний на Вашем экране. Эти иконки предоставят дополнительную информацию о состоянии персонажа и выполняемых действиях.</Russian> <Russian>Выберите положение или или отключите отображение иконок состояний на Вашем экране. Эти иконки предоставят дополнительную информацию о состоянии персонажа и выполняемых действиях.</Russian>
<Polish>Ustaw pozycję lub wyłącz całkowicie ikony pomocnicze na ekranie. Te ikony dostarczają dodatkowych informacji na temat statusu Twojej postaci i wykonywanych przez nią akcji.</Polish>
<French>Sélectionner la position de ou désactiver les îcones de feedback sur votre écran. Ces îcones sont là pour vous fournir un feedback du statut votre personnage et les actions à effectuer.</French>
</Key> </Key>
<Key ID="STR_ACE_Common_SettingProgressbarLocationName"> <Key ID="STR_ACE_Common_SettingProgressbarLocationName">
<English>Progress bar location</English> <English>Progress bar location</English>
@ -351,6 +357,8 @@
<Spanish>Ubicación de la barra de progreso</Spanish> <Spanish>Ubicación de la barra de progreso</Spanish>
<Italian>Posizione della barra di avanzamento</Italian> <Italian>Posizione della barra di avanzamento</Italian>
<Russian>Положение прогресс-бара</Russian> <Russian>Положение прогресс-бара</Russian>
<Polish>Lokalizacja paska postępu</Polish>
<French>Localisation de la barre de progression</French>
</Key> </Key>
<Key ID="STR_ACE_Common_SettingProgressbarLocationDesc"> <Key ID="STR_ACE_Common_SettingProgressbarLocationDesc">
<English>Set the desired location of the progress bar on your screen.</English> <English>Set the desired location of the progress bar on your screen.</English>
@ -358,6 +366,8 @@
<Spanish>Seleccionar la ubicación deseada de la barra de progreso en tu pantalla</Spanish> <Spanish>Seleccionar la ubicación deseada de la barra de progreso en tu pantalla</Spanish>
<Italian>Modifica la posizione su schermo della barra di avanzamento.</Italian> <Italian>Modifica la posizione su schermo della barra di avanzamento.</Italian>
<Russian>Установите желаемое положение строки состояния на экране.</Russian> <Russian>Установите желаемое положение строки состояния на экране.</Russian>
<Polish>Ustaw pożądaną lokalizację paska postępu na ekranie</Polish>
<French>Définisez l'endroit que vous désirez pour faire appraître la barre de progression.</French>
</Key> </Key>
<Key ID="STR_ACE_Common_SettingDisplayTextColorName"> <Key ID="STR_ACE_Common_SettingDisplayTextColorName">
<English>Hint Background color</English> <English>Hint Background color</English>
@ -365,6 +375,8 @@
<Spanish>Color de fondo de las notificaciones</Spanish> <Spanish>Color de fondo de las notificaciones</Spanish>
<Italian>Sfondo dei Suggerimenti</Italian> <Italian>Sfondo dei Suggerimenti</Italian>
<Russian>Цвет фона всплывающих подсказок</Russian> <Russian>Цвет фона всплывающих подсказок</Russian>
<Polish>Kolor tła powiadomień</Polish>
<French>Couleur de fond des astuces</French>
</Key> </Key>
<Key ID="STR_ACE_Common_SettingDisplayTextColorDesc"> <Key ID="STR_ACE_Common_SettingDisplayTextColorDesc">
<English>The color of the background from the ACE hints.</English> <English>The color of the background from the ACE hints.</English>
@ -372,6 +384,8 @@
<Spanish>El color de fondo de las notificaciones del ACE</Spanish> <Spanish>El color de fondo de las notificaciones del ACE</Spanish>
<Italian>Il colore di sfondo dei suggerimenti dell'ACE.</Italian> <Italian>Il colore di sfondo dei suggerimenti dell'ACE.</Italian>
<Russian>Цвет фона всплывающий подсказок АСЕ.</Russian> <Russian>Цвет фона всплывающий подсказок АСЕ.</Russian>
<Polish>Kolor tła dla powiadomień ACE</Polish>
<French>Définisez la couleur de fond pour les astuces fournies par ACE.</French>
</Key> </Key>
<Key ID="STR_ACE_Common_SettingDisplayTextFontColorName"> <Key ID="STR_ACE_Common_SettingDisplayTextFontColorName">
<English>Hint text font color</English> <English>Hint text font color</English>
@ -379,6 +393,8 @@
<Spanish>Color del texto de las notificaciones</Spanish> <Spanish>Color del texto de las notificaciones</Spanish>
<Italian>Testo dei Suggerimenti</Italian> <Italian>Testo dei Suggerimenti</Italian>
<Russian>Цвет шрифта всплывающих подсказок</Russian> <Russian>Цвет шрифта всплывающих подсказок</Russian>
<Polish>Kolor tekstu powiadomień</Polish>
<French>Couleur du texte des astuces</French>
</Key> </Key>
<Key ID="STR_ACE_Common_SettingDisplayTextFontColorDesc"> <Key ID="STR_ACE_Common_SettingDisplayTextFontColorDesc">
<English>The color of the text font from the ACE hints. This color is the default color for all text displayed through the ACE Hint system, if the hint text has no other color specified.</English> <English>The color of the text font from the ACE hints. This color is the default color for all text displayed through the ACE Hint system, if the hint text has no other color specified.</English>
@ -386,20 +402,28 @@
<Spanish>El color del texto de las notificaciones del ACE. Este es el color predeterminado para todo el texto que se muestra a través del sistema de notificaciones del ACE, si el texto de notificación no tiene otro color especificado.</Spanish> <Spanish>El color del texto de las notificaciones del ACE. Este es el color predeterminado para todo el texto que se muestra a través del sistema de notificaciones del ACE, si el texto de notificación no tiene otro color especificado.</Spanish>
<Italian>Il colore del testo dei suggerimenti dell'ACE. Questo è il colore standard per tutti i caratteri mostrati dal sistema di suggerimenti dell'ACE, se questo non è altrimenti specificato.</Italian> <Italian>Il colore del testo dei suggerimenti dell'ACE. Questo è il colore standard per tutti i caratteri mostrati dal sistema di suggerimenti dell'ACE, se questo non è altrimenti specificato.</Italian>
<Russian>Цвет шрифта текста всплывающих подсказок АСЕ. Этот цвет является стандартным для всего текста, транслирующегося через систему подсказок АСЕ, если не установлено другого цвета для текста подсказок.</Russian> <Russian>Цвет шрифта текста всплывающих подсказок АСЕ. Этот цвет является стандартным для всего текста, транслирующегося через систему подсказок АСЕ, если не установлено другого цвета для текста подсказок.</Russian>
<Polish>Kolor tekstu dla powiadomień ACE. Ten kolor jest domyślnym dla wszystkich tekstów wyświetlanych poprzez System Powiadomień ACE, jeżeli dla powiadomienia nie określono innego koloru.</Polish>
<French>Définisez la couleur du texte des astuces fournies par ACE. La couleur est celle par défaut affichée à travers toutes les astuces de ACE seulement si aucune couleur n'est défnie.</French>
</Key> </Key>
<Key ID="STR_ACE_Common_bananaDisplayName"> <Key ID="STR_ACE_Common_bananaDisplayName">
<English>Banana</English> <English>Banana</English>
<German>Banane</German> <German>Banane</German>
<Spanish>Banana</Spanish> <Spanish>Banana</Spanish>
<Czech>Banán</Czech>
<Italian>Banana</Italian> <Italian>Banana</Italian>
<Russian>Банан</Russian> <Russian>Банан</Russian>
<Polish>Banan</Polish>
<French>Banane</French>
</Key> </Key>
<Key ID="STR_ACE_Common_bananaDescr"> <Key ID="STR_ACE_Common_bananaDescr">
<English>A banana is an edible fruit, botanically a berry, produced by several kinds of large herbaceous flowering plants in the genus Musa.</English> <English>A banana is an edible fruit, botanically a berry, produced by several kinds of large herbaceous flowering plants in the genus Musa.</English>
<German>Die Banane ist eine essbare Frucht, biologisch betrachtet jedoch eine Beere. Sie wächst an unterschiedlichen, krautartigen Gewächsen aus der Familie der Musa.</German> <German>Die Banane ist eine essbare Frucht, biologisch betrachtet jedoch eine Beere. Sie wächst an unterschiedlichen, krautartigen Gewächsen aus der Familie der Musa.</German>
<Spanish>Una banana es una fruta comestible, botanicamente una baya, producida por varios tipos de grandes plantas herbáceas del género Musa.</Spanish> <Spanish>Una banana es una fruta comestible, botanicamente una baya, producida por varios tipos de grandes plantas herbáceas del género Musa.</Spanish>
<Czech>Banán je protáhlé ovoce a plod banánovníku (epigeická bobule).</Czech>
<Italian>Una banana è un frutto commestibile, nello specifico una bacca cuoiosa, prodotto da un gran numero di grandi pianti erbacee dotate di fiori, della famiglia delle Musaceae.</Italian> <Italian>Una banana è un frutto commestibile, nello specifico una bacca cuoiosa, prodotto da un gran numero di grandi pianti erbacee dotate di fiori, della famiglia delle Musaceae.</Italian>
<Russian>Банан - это съедобный фрукт, ягода с ботанической точки зрения, произрастающий на нескольких видах травянистых растениях рода Банан (Musa).</Russian> <Russian>Банан - это съедобный фрукт, ягода с ботанической точки зрения, произрастающий на нескольких видах травянистых растениях рода Банан (Musa).</Russian>
<Polish>Rodzaj roślin z rodziny bananowatych, obejmujący około 80 gatunków.&lt;br /&gt;Przedstawiciele są typowymi przedstawicielami flory międzyzwrotnikowej Azji, Afryki i Australii.&lt;br /&gt;Część gatunków dostarcza jadalnych owoców. Słowo banan pochodzi prawdopodobnie od arabskiego słowa banan, co oznacza palec, lub afrykańskiego języka wolof, w którym rośliny te określa się mianem banaana.</Polish>
<French>Une banane est un fruit comestible, botaniquement une baie, produite par plusieurs types de grandes plantes herbacées à fleurs dans le genre Musa.</French>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -8,7 +8,7 @@ class CfgVehicles {
distance = 3.5; distance = 3.5;
condition = QUOTE([ARR_2(_player,_target)] call FUNC(canPlayerDisarmUnit)); condition = QUOTE([ARR_2(_player,_target)] call FUNC(canPlayerDisarmUnit));
statement = QUOTE([ARR_2(_player,_target)] call FUNC(openDisarmDialog)); statement = QUOTE([ARR_2(_player,_target)] call FUNC(openDisarmDialog));
icon = "\a3\Modules_F_Curator\Data\portraitRespawnInventory_ca.paa"; icon = PATHTOF(UI\disarm.paa);
exceptions[] = {}; exceptions[] = {};
}; };
}; };

Binary file not shown.

View File

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

View File

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2014-12-16 -->
<Project name="ACE"> <Project name="ACE">
<Package name="Disposable"> <Package name="Disposable">
<Key ID="STR_ACE_Disposable_UsedTube"> <Key ID="STR_ACE_Disposable_UsedTube">
@ -7,7 +6,7 @@
<German>Benutze Einwegwaffe</German> <German>Benutze Einwegwaffe</German>
<French>Tube utilisé</French> <French>Tube utilisé</French>
<Czech>Použitý odpalovač</Czech> <Czech>Použitý odpalovač</Czech>
<Polish>Zużyta tuba</Polish> <Polish>Zużyta rura</Polish>
<Spanish>Lanzador utilizado</Spanish> <Spanish>Lanzador utilizado</Spanish>
<Hungarian>Használt cső</Hungarian> <Hungarian>Használt cső</Hungarian>
<Russian>Отстрелянная труба</Russian> <Russian>Отстрелянная труба</Russian>
@ -17,7 +16,7 @@
<German>Benutzter Einweg-Raketenwerfer</German> <German>Benutzter Einweg-Raketenwerfer</German>
<French>Lance-roquette à usage unique utilisé</French> <French>Lance-roquette à usage unique utilisé</French>
<Czech>Použitý raketomet</Czech> <Czech>Použitý raketomet</Czech>
<Polish>Zużyta tuba granatnika jednorazowego użytku</Polish> <Polish>Zużyta rura granatnika jednorazowego użytku</Polish>
<Spanish>Lanzador desechable utilizado</Spanish> <Spanish>Lanzador desechable utilizado</Spanish>
<Hungarian>Használt rakétavető</Hungarian> <Hungarian>Használt rakétavető</Hungarian>
<Russian>Отстрелянная одноразовая пусковая установка</Russian> <Russian>Отстрелянная одноразовая пусковая установка</Russian>
@ -25,9 +24,9 @@
<Key ID="STR_ACE_Disposable_PreloadedMissileDummy"> <Key ID="STR_ACE_Disposable_PreloadedMissileDummy">
<English>Preloaded Missile Dummy</English> <English>Preloaded Missile Dummy</English>
<German>Vorgeladene Racketennachbildung</German> <German>Vorgeladene Racketennachbildung</German>
<French>Preloaded Missile Dummy</French> <French>Missile préchargé Dummy</French>
<Czech>Preloaded Missile Dummy</Czech> <Czech>Přednabitá dummy střela</Czech>
<Polish>Preloaded Missile Dummy</Polish> <Polish>Wstępnie załadowana atrapa pocisku</Polish>
<Spanish>Preloaded Missile Dummy</Spanish> <Spanish>Preloaded Missile Dummy</Spanish>
<Hungarian>Preloaded Missile Dummy</Hungarian> <Hungarian>Preloaded Missile Dummy</Hungarian>
<Russian>Заряженная ракетная пустышка</Russian> <Russian>Заряженная ракетная пустышка</Russian>

View File

@ -29,17 +29,13 @@
<English>Item to heavy</English> <English>Item to heavy</English>
<German>Gegenstand ist zu schwer</German> <German>Gegenstand ist zu schwer</German>
<Spanish>Articulo demasiado pesado</Spanish> <Spanish>Articulo demasiado pesado</Spanish>
<!-- <English>Unable to drag item due to weight</English> <Polish>Przedmiot zbyt ciężki</Polish>
<Russian>Слишком тяжелый предмет</Russian> <French>Objet trop lourd</French>
<Spanish>No se puede arrastrar el objeto debido a su peso</Spanish>
<Polish>Nie można ciągnąć tego przedmiotu z powodu jego wagi</Polish>
<Czech>Předmět je příliž těžký!</Czech>
<French>Trop lourd pour être tracté</French>
<German>Dieser Gegenstand kann nicht gezogen werden, da er zu schwer ist.</German>
<Portuguese>Não é possível carregar o item devido a seu peso</Portuguese> <Portuguese>Não é possível carregar o item devido a seu peso</Portuguese>
<Italian>Non è possibile trascinare l'oggetto a causa del suo peso</Italian> <Italian>Non è possibile trascinare l'oggetto a causa del suo peso</Italian>
<Hungarian>Túl nehéz ahhoz, hogy elhúzd</Hungarian> --> <Hungarian>Túl nehéz ahhoz, hogy elhúzd</Hungarian>
<Russian>Слишком тяжело</Russian> <Russian>Слишком тяжело</Russian>
<Czech>Moc težké</Czech>
</Key> </Key>
<Key ID="STR_ACE_Dragging_Carry"> <Key ID="STR_ACE_Dragging_Carry">
<English>Carry</English> <English>Carry</English>

View File

@ -1,498 +1,502 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler. -->
<Project name="ACE"> <Project name="ACE">
<Package name="Explosives"> <Package name="Explosives">
<Key ID="STR_ACE_Explosives_Menu"> <Key ID="STR_ACE_Explosives_Menu">
<English>Explosives</English> <English>Explosives</English>
<German>Sprengstoffe</German> <German>Sprengstoffe</German>
<Spanish>Explosivos</Spanish> <Spanish>Explosivos</Spanish>
<Polish>Ładunki wybuchowe</Polish> <Polish>Ładunki wybuchowe</Polish>
<French>Explosifs</French> <French>Explosifs</French>
<Czech>Výbušniny</Czech> <Czech>Výbušniny</Czech>
<Italian>Esplosivi</Italian> <Italian>Esplosivi</Italian>
<Hungarian>Robbanóanyagok</Hungarian> <Hungarian>Robbanóanyagok</Hungarian>
<Portuguese>Explosivos</Portuguese> <Portuguese>Explosivos</Portuguese>
<Russian>Взрывчатка</Russian> <Russian>Взрывчатка</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_Place"> <Key ID="STR_ACE_Explosives_Place">
<English>Place &gt;&gt;</English> <English>Place &gt;&gt;</English>
<German>Platzieren &gt;&gt;</German> <German>Platzieren &gt;&gt;</German>
<Spanish>Colocar &gt;&gt;</Spanish> <Spanish>Colocar &gt;&gt;</Spanish>
<Polish>Umieść &gt;&gt;</Polish> <Polish>Umieść &gt;&gt;</Polish>
<French>Placer &gt;&gt;</French> <French>Placer &gt;&gt;</French>
<Czech>Položit &gt;&gt;</Czech> <Czech>Položit &gt;&gt;</Czech>
<Italian>Piazza &gt;&gt;</Italian> <Italian>Piazza &gt;&gt;</Italian>
<Hungarian>Lerakás &gt;&gt;</Hungarian> <Hungarian>Lerakás &gt;&gt;</Hungarian>
<Portuguese>Colocar &gt;&gt;</Portuguese> <Portuguese>Colocar &gt;&gt;</Portuguese>
<Russian>Установить &gt;&gt;</Russian> <Russian>Установить &gt;&gt;</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_Detonate"> <Key ID="STR_ACE_Explosives_Detonate">
<English>Detonate &gt;&gt;</English> <English>Detonate &gt;&gt;</English>
<German>Zünden &gt;&gt;</German> <German>Zünden &gt;&gt;</German>
<Spanish>Detonar &gt;&gt;</Spanish> <Spanish>Detonar &gt;&gt;</Spanish>
<Polish>Detonuj &gt;&gt;</Polish> <Polish>Detonuj &gt;&gt;</Polish>
<French>Mise à feu &gt;&gt;</French> <French>Mise à feu &gt;&gt;</French>
<Czech>Odpálit &gt;&gt;</Czech> <Czech>Odpálit &gt;&gt;</Czech>
<Italian>Detona &gt;&gt;</Italian> <Italian>Detona &gt;&gt;</Italian>
<Hungarian>Robbantás &gt;&gt;</Hungarian> <Hungarian>Robbantás &gt;&gt;</Hungarian>
<Portuguese>Detonar &gt;&gt;</Portuguese> <Portuguese>Detonar &gt;&gt;</Portuguese>
<Russian>Подрыв &gt;&gt;</Russian> <Russian>Подрыв &gt;&gt;</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_DetonateCode"> <Key ID="STR_ACE_Explosives_DetonateCode">
<English>Explosive code: %1</English> <English>Explosive code: %1</English>
<German>Sprengstoffcode: %1</German> <German>Sprengstoffcode: %1</German>
<Spanish>Código del explosivo: %1</Spanish> <Spanish>Código del explosivo: %1</Spanish>
<Polish>Kod ładunku: %1</Polish> <Polish>Kod ładunku: %1</Polish>
<French>Code explosif: %1</French> <French>Code explosif: %1</French>
<Czech>Kód výbušniny: %1</Czech> <Czech>Kód výbušniny: %1</Czech>
<Italian>Codice dell'esplosivo : %1</Italian> <Italian>Codice dell'esplosivo : %1</Italian>
<Hungarian>Robbanóanyag kódja: %1</Hungarian> <Hungarian>Robbanóanyag kódja: %1</Hungarian>
<Portuguese>Código do explosivo: %1</Portuguese> <Portuguese>Código do explosivo: %1</Portuguese>
<Russian>Код подрыва: %1</Russian> <Russian>Код подрыва: %1</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_PlaceAction"> <Key ID="STR_ACE_Explosives_PlaceAction">
<English>Place</English> <English>Place</English>
<German>Platzieren</German> <German>Platzieren</German>
<Spanish>Colocar</Spanish> <Spanish>Colocar</Spanish>
<Polish>Umieść</Polish> <Polish>Umieść</Polish>
<French>Placer</French> <French>Placer</French>
<Czech>Položit</Czech> <Czech>Položit</Czech>
<Italian>Piazza</Italian> <Italian>Piazza</Italian>
<Hungarian>Elhelyezés</Hungarian> <Hungarian>Elhelyezés</Hungarian>
<Portuguese>Colocar</Portuguese> <Portuguese>Colocar</Portuguese>
<Russian>Установить</Russian> <Russian>Установить</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_CancelAction"> <Key ID="STR_ACE_Explosives_CancelAction">
<English>Cancel</English> <English>Cancel</English>
<German>Abbrechen</German> <German>Abbrechen</German>
<Spanish>Cancelar</Spanish> <Spanish>Cancelar</Spanish>
<Polish>Anuluj</Polish> <Polish>Anuluj</Polish>
<French>Annuler</French> <French>Annuler</French>
<Czech>Zrušit</Czech> <Czech>Zrušit</Czech>
<Italian>Annulla</Italian> <Italian>Annulla</Italian>
<Hungarian>Mégsem</Hungarian> <Hungarian>Mégsem</Hungarian>
<Portuguese>Cancelar</Portuguese> <Portuguese>Cancelar</Portuguese>
<Russian>Отмена</Russian> <Russian>Отмена</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_ScrollAction"> <Key ID="STR_ACE_Explosives_ScrollAction">
<English>+ Modifier, rotates</English> <English>+ Modifier, rotates</English>
<German>+ Modifikator, drehen</German> <German>+ Modifikator, drehen</German>
<Spanish>+ Modificador, girar</Spanish> <Spanish>+ Modificador, girar</Spanish>
<French>+ Modificateur, tourner</French> <French>+ Modificateur, tourner</French>
<Italian>+ Modificatore, rotazione</Italian> <Italian>+ Modificatore, rotazione</Italian>
<Czech>+ Otočit</Czech> <Czech>+ Modifikátor, otočit</Czech>
<Hungarian>+ Változtatás, forgatás</Hungarian> <Hungarian>+ Változtatás, forgatás</Hungarian>
<Polish>+ modyfikator, obracanie</Polish> <Polish>+ Modyfikator, obrót</Polish>
<Portuguese>+ Modificador, rotaciona</Portuguese> <Portuguese>+ Modificador, rotaciona</Portuguese>
<Russian>+ Bращать</Russian> <Russian>+ Bращать</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_Jammer_TurnOn"> <Key ID="STR_ACE_Explosives_Jammer_TurnOn">
<English>Turn On Thor III</English> <English>Turn On Thor III</English>
<German>Thor III aktivieren</German> <German>Thor III aktivieren</German>
<Spanish>Encender Thor III</Spanish> <Spanish>Encender Thor III</Spanish>
<Polish>Włącz Thor III</Polish> <Polish>Włącz Thor III</Polish>
<French>Allumer Thor III</French> <French>Allumer Thor III</French>
<Czech>Zapnout Thor III</Czech> <Czech>Zapnout Thor III</Czech>
<Italian>Accendi Thor III</Italian> <Italian>Accendi Thor III</Italian>
<Hungarian>Thor III bekapcsolása</Hungarian> <Hungarian>Thor III bekapcsolása</Hungarian>
<Portuguese>Ativar Thor III</Portuguese> <Portuguese>Ativar Thor III</Portuguese>
<Russian>Активировать Thor III</Russian> <Russian>Активировать Thor III</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_Jammer_TurnOff"> <Key ID="STR_ACE_Explosives_Jammer_TurnOff">
<English>Turn Off Thor III</English> <English>Turn Off Thor III</English>
<German>Thor III deaktivieren</German> <German>Thor III deaktivieren</German>
<Spanish>Apagar Thor III</Spanish> <Spanish>Apagar Thor III</Spanish>
<Polish>Wyłącz Thor III</Polish> <Polish>Wyłącz Thor III</Polish>
<French>Éteindre Thor III</French> <French>Éteindre Thor III</French>
<Czech>Vypnout Thor III</Czech> <Czech>Vypnout Thor III</Czech>
<Italian>Spegni Thor III</Italian> <Italian>Spegni Thor III</Italian>
<Hungarian>Thor III kikapcsolása</Hungarian> <Hungarian>Thor III kikapcsolása</Hungarian>
<Portuguese>Desativar Thor III</Portuguese> <Portuguese>Desativar Thor III</Portuguese>
<Russian>Деактивировать Thor III</Russian> <Russian>Деактивировать Thor III</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_cellphone_displayName"> <Key ID="STR_ACE_Explosives_cellphone_displayName">
<English>Cellphone</English> <English>Cellphone</English>
<German>Mobiltelefon</German> <German>Mobiltelefon</German>
<Spanish>Télefono móvil</Spanish> <Spanish>Télefono móvil</Spanish>
<Polish>Telefon komórkowy</Polish> <Polish>Telefon komórkowy</Polish>
<French>Téléphone Portable</French> <French>Téléphone Portable</French>
<Czech>Telefon</Czech> <Czech>Telefon</Czech>
<Italian>Cellulare</Italian> <Italian>Cellulare</Italian>
<Hungarian>Mobil</Hungarian> <Hungarian>Mobil</Hungarian>
<Portuguese>Celular</Portuguese> <Portuguese>Celular</Portuguese>
<Russian>Сотовый телефон</Russian> <Russian>Сотовый телефон</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_cellphone_description"> <Key ID="STR_ACE_Explosives_cellphone_description">
<English>Used to remotely trigger explosives</English> <English>Used to remotely trigger explosives</English>
<German>Wird benutzt um Sprengstoffe fernzuzünden</German> <German>Wird benutzt um Sprengstoffe fernzuzünden</German>
<Spanish>Usado para detonar remotamente explosivos</Spanish> <Spanish>Usado para detonar remotamente explosivos</Spanish>
<Polish>Używany do zdalnego detonowania ładunków wybuchowych</Polish> <Polish>Używany do zdalnego detonowania ładunków wybuchowych</Polish>
<French>Utilisé pour déclencher des explosifs à distance</French> <French>Utilisé pour déclencher des explosifs à distance</French>
<Czech>Používaný ke vzdálenému odpalování výbušnin</Czech> <Czech>Používaný ke vzdálenému odpalování výbušnin</Czech>
<Italian>Usato per l'attivazione a distanza degli esplosivi</Italian> <Italian>Usato per l'attivazione a distanza degli esplosivi</Italian>
<Hungarian>Robbanóanyagok távoli robbantásához</Hungarian> <Hungarian>Robbanóanyagok távoli robbantásához</Hungarian>
<Portuguese>Usado para acionar explosivos remotamente</Portuguese> <Portuguese>Usado para acionar explosivos remotamente</Portuguese>
<Russian>Используется для удаленной детонации СВУ</Russian> <Russian>Используется для удаленной детонации СВУ</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_clacker_displayName"> <Key ID="STR_ACE_Explosives_clacker_displayName">
<English>M57 Firing Device</English> <English>M57 Firing Device</English>
<German>M57 Zündvorrichtung</German> <German>M57 Zündvorrichtung</German>
<Spanish>Dispositivo de detonación M57</Spanish> <Spanish>Dispositivo de detonación M57</Spanish>
<Polish>Zapalnik M57</Polish> <Polish>Zapalnik M57</Polish>
<French>M57 Dispositif de mise à feu</French> <French>M57 Dispositif de mise à feu</French>
<Czech>M57 Odpalovací Zařízení</Czech> <Czech>Odpalovací zařízení M57</Czech>
<Italian>Detonatore M57</Italian> <Italian>Detonatore M57</Italian>
<Hungarian>M57 Detonátor</Hungarian> <Hungarian>M57 Detonátor</Hungarian>
<Portuguese>M57 Dispositivo de Detonação</Portuguese> <Portuguese>M57 Dispositivo de Detonação</Portuguese>
<Russian>Взрыватель M57</Russian> <Russian>Взрыватель M57</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_clacker_description"> <Key ID="STR_ACE_Explosives_clacker_description">
<English>Used to remotely trigger explosives</English> <English>Used to remotely trigger explosives</English>
<German>Wird benutzt um Sprengstoffe fernzuzünden</German> <German>Wird benutzt um Sprengstoffe fernzuzünden</German>
<Spanish>Usado para detonar remotamente explosivos</Spanish> <Spanish>Usado para detonar remotamente explosivos</Spanish>
<Polish>Używany do zdalnego detonowania ładunków wybuchowych</Polish> <Polish>Używany do zdalnego detonowania ładunków wybuchowych</Polish>
<French>Utilisé pour déclencher des explosifs à distance</French> <French>Utilisé pour déclencher des explosifs à distance</French>
<Czech>Použévané ke vzdálenému odpalování výbušnin</Czech> <Czech>Používané ke vzdálenému odpalování výbušnin</Czech>
<Italian>Usato per l'attivazione a distanza degli esplosivi</Italian> <Italian>Usato per l'attivazione a distanza degli esplosivi</Italian>
<Hungarian>Robbanóanyagok távoli robbantásához</Hungarian> <Hungarian>Robbanóanyagok távoli robbantásához</Hungarian>
<Portuguese>Usado para acionar explosivos remotamente</Portuguese> <Portuguese>Usado para acionar explosivos remotamente</Portuguese>
<Russian>Используется для удаленной детонации зарядов</Russian> <Russian>Используется для удаленной детонации зарядов</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_M26_displayName"> <Key ID="STR_ACE_Explosives_M26_displayName">
<English>M26 Firing Device</English> <English>M26 Firing Device</English>
<German>M26 Zündvorrichtung</German> <German>M26 Zündvorrichtung</German>
<Spanish>Dispositivo de detonación MK26</Spanish> <Spanish>Dispositivo de detonación MK26</Spanish>
<Polish>Zapalnik M26</Polish> <Polish>Zapalnik M26</Polish>
<French>M26 Dispositif de mise à feu</French> <French>M26 Dispositif de mise à feu</French>
<Czech>M26 Odpalovací Zařízení</Czech> <Czech>Odpalovací zařízení M26</Czech>
<Italian>Detonatore M26</Italian> <Italian>Detonatore M26</Italian>
<Hungarian>M26 Detonátor</Hungarian> <Hungarian>M26 Detonátor</Hungarian>
<Portuguese>M26 Dispositivo de Detonação</Portuguese> <Portuguese>M26 Dispositivo de Detonação</Portuguese>
<Russian>Взрыватель M26</Russian> <Russian>Взрыватель M26</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_MK16_displayName"> <Key ID="STR_ACE_Explosives_MK16_displayName">
<English>M152 RAMS</English> <English>M152 RAMS</English>
<German>M152 RAMS</German> <German>M152 RAMS</German>
<Czech>M152 RAMS</Czech> <Czech>M152 RAMS</Czech>
<French>M152 RAMS</French> <French>M152 RAMS</French>
<Hungarian>M152 RAMS</Hungarian> <Hungarian>M152 RAMS</Hungarian>
<Polish>M152 RAMS</Polish> <Polish>M152 RAMS</Polish>
<Portuguese>M152 RAMS</Portuguese> <Portuguese>M152 RAMS</Portuguese>
<Russian>M152 RAMS</Russian> <Russian>M152 RAMS</Russian>
<Spanish>M152 RAMS</Spanish> <Spanish>M152 RAMS</Spanish>
<Italian>M152 RAMS</Italian> <Italian>M152 RAMS</Italian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_DefusalKit_displayName"> <Key ID="STR_ACE_Explosives_DefusalKit_displayName">
<English>Defusal Kit</English> <English>Defusal Kit</English>
<German>Entschärfungskit</German> <German>Entschärfungskit</German>
<Spanish>Kit de desactivación</Spanish> <Spanish>Kit de desactivación</Spanish>
<Polish>Zestaw do rozbrajania</Polish> <Polish>Zestaw do rozbrajania</Polish>
<French>Kit de désamorçage</French> <French>Kit de désamorçage</French>
<Czech>Zneškodňovací sada</Czech> <Czech>Zneškodňovací sada</Czech>
<Italian>Kit E.O.D.</Italian> <Italian>Kit E.O.D.</Italian>
<Hungarian>Hatástalanító felszerelés</Hungarian> <Hungarian>Hatástalanító felszerelés</Hungarian>
<Portuguese>Kit de desarme</Portuguese> <Portuguese>Kit de desarme</Portuguese>
<Russian>Комплект разминирования</Russian> <Russian>Комплект разминирования</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_DefusalKit_description"> <Key ID="STR_ACE_Explosives_DefusalKit_description">
<English>Allows defusing of explosives</English> <English>Allows defusing of explosives</English>
<German>Erlaubt die Entschärfung von Sprengstoffen</German> <German>Erlaubt die Entschärfung von Sprengstoffen</German>
<Spanish>Permite desactivar explosivos</Spanish> <Spanish>Permite desactivar explosivos</Spanish>
<Polish>Umożliwia rozbrajanie ładunków wybuchowych</Polish> <Polish>Umożliwia rozbrajanie ładunków wybuchowych</Polish>
<French>Permet de désamorçer des explosifs</French> <French>Permet de désamorçer des explosifs</French>
<Czech>Dovoluje zneškodňování výbušnin</Czech> <Czech>Dovoluje zneškodňování výbušnin</Czech>
<Italian>Consente la disattivazione degli ordigni esplosivi</Italian> <Italian>Consente la disattivazione degli ordigni esplosivi</Italian>
<Hungarian>Robbanóanyagok hatástalanításához</Hungarian> <Hungarian>Robbanóanyagok hatástalanításához</Hungarian>
<Portuguese>Permite o desarme de explosivos</Portuguese> <Portuguese>Permite o desarme de explosivos</Portuguese>
<Russian>Позволяет обезвреживать ВУ</Russian> <Russian>Позволяет обезвреживать ВУ</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_Phone_AddToSpeedDial"> <Key ID="STR_ACE_Explosives_Phone_AddToSpeedDial">
<English>Add to Speed Dial</English> <English>Add to Speed Dial</English>
<German>Zur Schnellauswahl hinzufügen</German> <German>Zur Schnellauswahl hinzufügen</German>
<Spanish>Agregar a marcado rápido</Spanish> <Spanish>Agregar a marcado rápido</Spanish>
<Polish>Dodaj do szybkiego wybierania</Polish> <Polish>Dodaj do szybkiego wybierania</Polish>
<French>Ajouter à la composition rapide</French> <French>Ajouter à la composition rapide</French>
<Czech>Přidat jako rychlou volbu</Czech> <Czech>Přidat jako rychlou volbu</Czech>
<Italian>Aggiungi alla selezione rapida</Italian> <Italian>Aggiungi alla selezione rapida</Italian>
<Hungarian>Hozzáadás gyorshíváshoz</Hungarian> <Hungarian>Hozzáadás gyorshíváshoz</Hungarian>
<Portuguese>Adicionar à ligação rápida</Portuguese> <Portuguese>Adicionar à ligação rápida</Portuguese>
<Russian>Добавить в ускоренный набор</Russian> <Russian>Добавить в ускоренный набор</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_Clear"> <Key ID="STR_ACE_Explosives_Clear">
<English>Clear</English> <English>Clear</English>
<German>Löschen</German> <German>Löschen</German>
<Spanish>Borrar</Spanish> <Spanish>Borrar</Spanish>
<Polish>Usuń</Polish> <Polish>Usuń</Polish>
<French>Désamorçé</French> <French>Désamorçé</French>
<Czech>Čistý</Czech> <Czech>Čistý</Czech>
<Italian>Libera</Italian> <Italian>Libera</Italian>
<Hungarian>Törlés</Hungarian> <Hungarian>Törlés</Hungarian>
<Portuguese>Limpar</Portuguese> <Portuguese>Limpar</Portuguese>
<Russian>Очистить</Russian> <Russian>Очистить</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_Phone_Dial"> <Key ID="STR_ACE_Explosives_Phone_Dial">
<English>Dial</English> <English>Dial</English>
<German>Wählen</German> <German>Wählen</German>
<Spanish>Marcar</Spanish> <Spanish>Marcar</Spanish>
<Polish>Wybierz mumer</Polish> <Polish>Wybierz mumer</Polish>
<French>Composer</French> <French>Composer</French>
<Czech>Vytočit</Czech> <Czech>Vytočit</Czech>
<Italian>Composizione numero</Italian> <Italian>Composizione numero</Italian>
<Hungarian>Tárcsázás</Hungarian> <Hungarian>Tárcsázás</Hungarian>
<Portuguese>Discar</Portuguese> <Portuguese>Discar</Portuguese>
<Russian>Hабрать</Russian> <Russian>Hабрать</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_Phone_Up"> <Key ID="STR_ACE_Explosives_Phone_Up">
<English>Up</English> <English>Up</English>
<German>Hoch</German> <German>Hoch</German>
<Spanish>Arriba</Spanish> <Spanish>Arriba</Spanish>
<Polish>W górę</Polish> <Polish>W górę</Polish>
<French>Haut</French> <French>Haut</French>
<Czech>Nahoru</Czech> <Czech>Nahoru</Czech>
<Italian>Sopra</Italian> <Italian>Sopra</Italian>
<Hungarian>Fel</Hungarian> <Hungarian>Fel</Hungarian>
<Portuguese>Cima</Portuguese> <Portuguese>Cima</Portuguese>
<Russian>Вызов</Russian> <Russian>Вызов</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_Phone_Down"> <Key ID="STR_ACE_Explosives_Phone_Down">
<English>Down</English> <English>Down</English>
<German>Runter</German> <German>Runter</German>
<Spanish>Abajo</Spanish> <Spanish>Abajo</Spanish>
<Polish>W dół</Polish> <Polish>W dół</Polish>
<French>Bas</French> <French>Bas</French>
<Czech>Dolu</Czech> <Czech>Dolu</Czech>
<Italian>Sotto</Italian> <Italian>Sotto</Italian>
<Hungarian>Le</Hungarian> <Hungarian>Le</Hungarian>
<Portuguese>Baixo</Portuguese> <Portuguese>Baixo</Portuguese>
<Russian>Сброс</Russian> <Russian>Сброс</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_Cancel"> <Key ID="STR_ACE_Explosives_Cancel">
<English>Cancel</English> <English>Cancel</English>
<German>Abbrechen</German> <German>Abbrechen</German>
<Spanish>Cancelar</Spanish> <Spanish>Cancelar</Spanish>
<Polish>Anuluj</Polish> <Polish>Anuluj</Polish>
<French>Annuler</French> <French>Annuler</French>
<Czech>Zrušit</Czech> <Czech>Zrušit</Czech>
<Italian>Annulla</Italian> <Italian>Annulla</Italian>
<Hungarian>Mégsem</Hungarian> <Hungarian>Mégsem</Hungarian>
<Portuguese>Cancelar</Portuguese> <Portuguese>Cancelar</Portuguese>
<Russian>Отмена</Russian> <Russian>Отмена</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_DetonateMenu"> <Key ID="STR_ACE_Explosives_DetonateMenu">
<English>Detonate Menu</English> <English>Detonate Menu</English>
<German>"Zünden"-Menü</German> <German>"Zünden"-Menü</German>
<Spanish>Menú de detonación</Spanish> <Spanish>Menú de detonación</Spanish>
<Polish>Menu detonowania</Polish> <Polish>Menu detonowania</Polish>
<French>Menu de mise à feu</French> <French>Menu de mise à feu</French>
<Czech>Menu Detonace</Czech> <Czech>Menu Detonace</Czech>
<Italian>Menù di detonazione</Italian> <Italian>Menù di detonazione</Italian>
<Hungarian>Robbantás menü</Hungarian> <Hungarian>Robbantás menü</Hungarian>
<Portuguese>Menu de detonação</Portuguese> <Portuguese>Menu de detonação</Portuguese>
<Russian>Меню подрыва</Russian> <Russian>Меню подрыва</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_PlaceMenu"> <Key ID="STR_ACE_Explosives_PlaceMenu">
<English>Place Menu</English> <English>Place Menu</English>
<German>"Platzieren"-Menü</German> <German>"Platzieren"-Menü</German>
<Spanish>Menú de colocación</Spanish> <Spanish>Menú de colocación</Spanish>
<Polish>Menu umieszczania</Polish> <Polish>Menu umieszczania</Polish>
<French>Menu Placement</French> <French>Menu Placement</French>
<Czech>Menu Umístění</Czech> <Czech>Menu Umístění</Czech>
<Italian>Menù di collocamento</Italian> <Italian>Menù di collocamento</Italian>
<Hungarian>Lerakás menü</Hungarian> <Hungarian>Lerakás menü</Hungarian>
<Portuguese>Menu de posicionamento</Portuguese> <Portuguese>Menu de posicionamento</Portuguese>
<Russian>Меню детонации</Russian> <Russian>Меню детонации</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_Defuse"> <Key ID="STR_ACE_Explosives_Defuse">
<English>Defuse</English> <English>Defuse</English>
<German>Entschärfen</German> <German>Entschärfen</German>
<Spanish>Desactivar</Spanish> <Spanish>Desactivar</Spanish>
<Polish>Rozbrój</Polish> <Polish>Rozbrój</Polish>
<French>Désamorçer</French> <French>Désamorçer</French>
<Czech>Zneškodnit</Czech> <Czech>Zneškodnit</Czech>
<Italian>Disinnesca</Italian> <Italian>Disinnesca</Italian>
<Hungarian>Hatástalanítás</Hungarian> <Hungarian>Hatástalanítás</Hungarian>
<Portuguese>Desarmar</Portuguese> <Portuguese>Desarmar</Portuguese>
<Russian>Обезвредить</Russian> <Russian>Обезвредить</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_DefusingExplosive"> <Key ID="STR_ACE_Explosives_DefusingExplosive">
<English>Defusing Explosive...</English> <English>Defusing Explosive...</English>
<German>Entschärfe Sprengstoff...</German> <German>Entschärfe Sprengstoff...</German>
<Spanish>Desactivando explosivo...</Spanish> <Spanish>Desactivando explosivo...</Spanish>
<Polish>Rozbrajanie ładunku...</Polish> <Polish>Rozbrajanie ładunku...</Polish>
<French>Désamorçage des explosifs...</French> <French>Désamorçage des explosifs...</French>
<Czech>Zneškodňuji Výbušninu...</Czech> <Czech>Zneškodňuji Výbušninu...</Czech>
<Italian>Esposivo in fase di disattivazione...</Italian> <Italian>Esposivo in fase di disattivazione...</Italian>
<Hungarian>Robbanóanyag hatástalaníása...</Hungarian> <Hungarian>Robbanóanyag hatástalaníása...</Hungarian>
<Portuguese>Desarmando Explosivo...</Portuguese> <Portuguese>Desarmando Explosivo...</Portuguese>
<Russian>Обезвреживание...</Russian> <Russian>Обезвреживание...</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_timerName"> <Key ID="STR_ACE_Explosives_timerName">
<English>Timer</English> <English>Timer</English>
<German>Zeitzünder</German> <German>Zeitzünder</German>
<Spanish>Temporizador</Spanish> <Spanish>Temporizador</Spanish>
<Polish>Czasomierz</Polish> <Polish>Czasomierz</Polish>
<French>Retard</French> <French>Retard</French>
<Czech>Časovač</Czech> <Czech>Časovač</Czech>
<Italian>Cronometro</Italian> <Italian>Cronometro</Italian>
<Hungarian>Időzített</Hungarian> <Hungarian>Időzített</Hungarian>
<Portuguese>Timer</Portuguese> <Portuguese>Timer</Portuguese>
<Russian>Таймер</Russian> <Russian>Таймер</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_TimerMenu"> <Key ID="STR_ACE_Explosives_TimerMenu">
<English>Time: %1m %2s</English> <English>Time: %1m %2s</English>
<German>Zeit: %1m %2s</German> <German>Zeit: %1m %2s</German>
<Spanish>Tiempo: %1m %2s</Spanish> <Spanish>Tiempo: %1m %2s</Spanish>
<Polish>Czas: %1m %2s</Polish> <Polish>Czas: %1m %2s</Polish>
<French>Temps : %1m %2s</French> <French>Temps : %1m %2s</French>
<Czech>Čas: %1m %2s</Czech> <Czech>Čas: %1m %2s</Czech>
<Italian>Tempo : %1m %2s</Italian> <Italian>Tempo : %1m %2s</Italian>
<Hungarian>Idő: %1m %2s</Hungarian> <Hungarian>Idő: %1m %2s</Hungarian>
<Portuguese>Tempo: %1m %2s</Portuguese> <Portuguese>Tempo: %1m %2s</Portuguese>
<Russian>Время: %1m %2c</Russian> <Russian>Время: %1m %2c</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_SetTime"> <Key ID="STR_ACE_Explosives_SetTime">
<English>Set Time</English> <English>Set Time</English>
<German>Zeit einstellen</German> <German>Zeit einstellen</German>
<Spanish>Configurar tiempo</Spanish> <Spanish>Configurar tiempo</Spanish>
<Polish>Ustaw czas</Polish> <Polish>Ustaw czas</Polish>
<French>Régler retard</French> <French>Régler retard</French>
<Czech>Nastavit Čas</Czech> <Czech>Nastavit Čas</Czech>
<Italian>Modifica il conto alla rovescia</Italian> <Italian>Modifica il conto alla rovescia</Italian>
<Hungarian>Idő állítása</Hungarian> <Hungarian>Idő állítása</Hungarian>
<Portuguese>Configurar Tempo</Portuguese> <Portuguese>Configurar Tempo</Portuguese>
<Russian>Установить время</Russian> <Russian>Установить время</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_TriggerMenu"> <Key ID="STR_ACE_Explosives_TriggerMenu">
<English>Select a Trigger</English> <English>Select a Trigger</English>
<German>Wähle einen Zünder</German> <German>Wähle einen Zünder</German>
<Spanish>Seleccionar un disparador</Spanish> <Spanish>Seleccionar un disparador</Spanish>
<Polish>Wybierz zapalnik</Polish> <Polish>Wybierz zapalnik</Polish>
<French>Sélectionner une mise à feu</French> <French>Sélectionner une mise à feu</French>
<Czech>Zvolit Detonátor</Czech> <Czech>Zvolit Detonátor</Czech>
<Italian>Seleziona un Attivatore</Italian> <Italian>Seleziona un Attivatore</Italian>
<Hungarian>Detonátor kiválasztása</Hungarian> <Hungarian>Detonátor kiválasztása</Hungarian>
<Portuguese>Selecionar um Gatilho</Portuguese> <Portuguese>Selecionar um Gatilho</Portuguese>
<Russian>Выберите детонатор</Russian> <Russian>Выберите детонатор</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_SelectTrigger"> <Key ID="STR_ACE_Explosives_SelectTrigger">
<English>Select</English> <English>Select</English>
<German>Wählen</German> <German>Wählen</German>
<Spanish>Seleccionar</Spanish> <Spanish>Seleccionar</Spanish>
<Polish>Wybierz</Polish> <Polish>Wybierz</Polish>
<French>Sélectionner</French> <French>Sélectionner</French>
<Czech>Zvolit</Czech> <Czech>Zvolit</Czech>
<Italian>Seleziona</Italian> <Italian>Seleziona</Italian>
<Hungarian>Kiválasztás</Hungarian> <Hungarian>Kiválasztás</Hungarian>
<Portuguese>Selecionar</Portuguese> <Portuguese>Selecionar</Portuguese>
<Russian>Выбрать</Russian> <Russian>Выбрать</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_PressurePlate"> <Key ID="STR_ACE_Explosives_PressurePlate">
<English>Pressure Plate</English> <English>Pressure Plate</English>
<Polish>Płyta naciskowa</Polish> <Polish>Płyta naciskowa</Polish>
<Spanish>Placa de presión</Spanish> <Spanish>Placa de presión</Spanish>
<German>Druckplatte</German> <German>Druckplatte</German>
<French>Plaque de pression</French> <French>Plaque de pression</French>
<Czech>Nášlapná nástraha</Czech> <Czech>Nášlapná nástraha</Czech>
<Italian>Piastra a Pressione</Italian> <Italian>Piastra a Pressione</Italian>
<Hungarian>Nyomólap</Hungarian> <Hungarian>Nyomólap</Hungarian>
<Portuguese>Placa de pressão</Portuguese> <Portuguese>Placa de pressão</Portuguese>
<Russian>Давление</Russian> <Russian>Давление</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_TripWire"> <Key ID="STR_ACE_Explosives_TripWire">
<English>Tripwire</English> <English>Tripwire</English>
<Polish>Linka naciągu</Polish> <Polish>Linka naciągu</Polish>
<Spanish>Cable trampa</Spanish> <Spanish>Cable trampa</Spanish>
<German>Stolperdraht</German> <German>Stolperdraht</German>
<French>Fil de butée</French> <French>Fil de butée</French>
<Czech>Nástražný drát</Czech> <Czech>Nástražný drát</Czech>
<Italian>Filo a Inciampo</Italian> <Italian>Filo a Inciampo</Italian>
<Hungarian>Botlódrót</Hungarian> <Hungarian>Botlódrót</Hungarian>
<Portuguese>Linha de tração</Portuguese> <Portuguese>Linha de tração</Portuguese>
<Russian>Растяжка</Russian> <Russian>Растяжка</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_IRSensor"> <Key ID="STR_ACE_Explosives_IRSensor">
<English>IR Sensor</English> <English>IR Sensor</English>
<Polish>Czujnik podczerwieni</Polish> <Polish>Czujnik podczerwieni</Polish>
<Spanish>Sensor IR</Spanish> <Spanish>Sensor IR</Spanish>
<German>Infrarotsensor</German> <German>Infrarotsensor</German>
<French>Capteur IR</French> <French>Capteur IR</French>
<Czech>IR Značkovač</Czech> <Czech>IR Značkovač</Czech>
<Italian>Sensore IR</Italian> <Italian>Sensore IR</Italian>
<Hungarian>IR szenzor</Hungarian> <Hungarian>IR szenzor</Hungarian>
<Portuguese>Sensor IV</Portuguese> <Portuguese>Sensor IV</Portuguese>
<Russian>ИК сенсор</Russian> <Russian>ИК сенсор</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_NoTriggersAvailable"> <Key ID="STR_ACE_Explosives_NoTriggersAvailable">
<English>No triggers available for %1</English> <English>No triggers available for %1</English>
<Polish>Brak dostępnych zapalników dla %1</Polish> <Polish>Brak dostępnych zapalników dla %1</Polish>
<Spanish>No hay detonadores disponibles para %1</Spanish> <Spanish>No hay detonadores disponibles para %1</Spanish>
<German>Keine Auslöser vorhanden für %1</German> <German>Keine Auslöser vorhanden für %1</German>
<French>Pas de mise à feu disponible pour %1</French> <French>Pas de mise à feu disponible pour %1</French>
<Czech>Žádný detonátor k dispozici pro %1</Czech> <Czech>Žádný detonátor k dispozici pro %1</Czech>
<Italian>Nessun attivatore disponibile per %1</Italian> <Italian>Nessun attivatore disponibile per %1</Italian>
<Hungarian>Nincs detonátor a %1</Hungarian> <Hungarian>Nincs detonátor a %1</Hungarian>
<Portuguese>Nenhum gatilho disponível para %1</Portuguese> <Portuguese>Nenhum gatilho disponível para %1</Portuguese>
<Russian>Нет доступных взрывателей для %1</Russian> <Russian>Нет доступных взрывателей для %1</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_SLAME_IRSensor"> <Key ID="STR_ACE_Explosives_SLAME_IRSensor">
<English>IR Sensor (Side Attack)</English> <English>IR Sensor (Side Attack)</English>
<Polish>Czujnik podczerwieni (wybuch na bok)</Polish> <Polish>Czujnik podczerwieni (wybuch na bok)</Polish>
<Spanish>Sensor IR (ataque lateral)</Spanish> <Spanish>Sensor IR (ataque lateral)</Spanish>
<German>Infrarotsensor (Seitenangriff)</German> <German>Infrarotsensor (Seitenangriff)</German>
<French>Capteur IR (de flanc)</French> <French>Capteur IR (de flanc)</French>
<Czech>IR Značkovač (Výbuch stranou)</Czech> <Czech>IR Značkovač (Výbuch stranou)</Czech>
<Italian>Sensore IR (Attacco laterale)</Italian> <Italian>Sensore IR (Attacco laterale)</Italian>
<Hungarian>IR Sensor (Side Attack)</Hungarian> <Hungarian>IR Sensor (Side Attack)</Hungarian>
<Portuguese>Sensor infravermelho (ataque lateral)</Portuguese> <Portuguese>Sensor infravermelho (ataque lateral)</Portuguese>
<Russian>ИК (детонация вбок)</Russian> <Russian>ИК (детонация вбок)</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_SLAME_Magnetic"> <Key ID="STR_ACE_Explosives_SLAME_Magnetic">
<English>Magnetic Influence Sensor (Bottom Attack)</English> <English>Magnetic Influence Sensor (Bottom Attack)</English>
<Polish>Czujnik magnetyczny (wybuch w górę)</Polish> <Polish>Czujnik magnetyczny (wybuch w górę)</Polish>
<Spanish>Sensor IM (ataque inferior)</Spanish> <Spanish>Sensor IM (ataque inferior)</Spanish>
<German>Magnetfeldsensor (Bodenangriff)</German> <German>Magnetfeldsensor (Bodenangriff)</German>
<French>Capteur Magnétique (par le bas)</French> <French>Capteur Magnétique (par le bas)</French>
<Czech>Magnetický Senzor (Výbuch ze spoda)</Czech> <Czech>Magnetický Senzor (Výbuch ze spoda)</Czech>
<Italian>Sensore Magnetico di Prossimità (Attacco inferiore)</Italian> <Italian>Sensore Magnetico di Prossimità (Attacco inferiore)</Italian>
<Hungarian>Mágneses (Bottom Attack)</Hungarian> <Hungarian>Mágneses (Bottom Attack)</Hungarian>
<Portuguese>Influência magnética (ataque inferior)</Portuguese> <Portuguese>Influência magnética (ataque inferior)</Portuguese>
<Russian>Магнитный (детонация вверх)</Russian> <Russian>Магнитный (детонация вверх)</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_NoExplosivesAvailable"> <Key ID="STR_ACE_Explosives_NoExplosivesAvailable">
<English>No explosives on trigger.</English> <English>No explosives on trigger.</English>
<German>Keine Sprengladungen auf diesem Auslöser.</German> <German>Keine Sprengladungen auf diesem Auslöser.</German>
<Spanish>Ningún explosivo en el detonador.</Spanish> <Spanish>Ningún explosivo en el detonador.</Spanish>
<French>Pas d'explosif à mettre à feu.</French> <French>Pas d'explosif à mettre à feu.</French>
<Italian>Nessun esplosivo sul sensore.</Italian> <Italian>Nessun esplosivo sul sensore.</Italian>
<Czech>Žádná výbušnina k odpálení.</Czech> <Czech>Žádná výbušnina k odpálení.</Czech>
<Hungarian>Nincs robbanóanyag a detonátorhoz.</Hungarian> <Hungarian>Nincs robbanóanyag a detonátorhoz.</Hungarian>
<Polish>Brak ładunków na zapalnik.</Polish> <Polish>Brak ładunków na zapalnik.</Polish>
<Portuguese>Nenhum explosivo no gatilho.</Portuguese> <Portuguese>Nenhum explosivo no gatilho.</Portuguese>
<Russian>Нет доступных ВУ для взрывателя.</Russian> <Russian>Нет доступных ВУ для взрывателя.</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_DeadManSwitch_displayName"> <Key ID="STR_ACE_Explosives_DeadManSwitch_displayName">
<English>Dead Man's Switch</English> <English>Dead Man's Switch</English>
<German>Totmannschalter</German> <German>Totmannschalter</German>
<French>Mise à feu par relâchement de pression</French> <French>Mise à feu par relâchement de pression</French>
<Czech>Spínač mrtvého muže</Czech> <Czech>Spínač mrtvého muže</Czech>
<Polish>Czuwak</Polish> <Polish>Czuwak</Polish>
<Spanish>Detonador de hombre muerto</Spanish> <Spanish>Detonador de hombre muerto</Spanish>
<Hungarian>Dead Man's Switch</Hungarian> <Hungarian>Dead Man's Switch</Hungarian>
<Russian>Ловушка мертвеца</Russian> <Russian>Ловушка мертвеца</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_DeadManSwitch_description"> <Key ID="STR_ACE_Explosives_DeadManSwitch_description">
<English>Used to remotely trigger explosives when released.</English> <English>Used to remotely trigger explosives when released.</English>
<German>Zündet Sprengladungen wenn losgelassen.</German> <German>Zündet Sprengladungen wenn losgelassen.</German>
<French>Déclenche la mise à feu d'un explosif lorsqu'il est libéré.</French> <French>Déclenche la mise à feu d'un explosif lorsqu'il est libéré.</French>
<Czech>Používaný k vzdálenému odpálení, při uvolnění odpálí výbušniny</Czech> <Czech>Používaný k vzdálenému odpálení, při uvolnění odpálí výbušniny</Czech>
<Polish>Używany w celu zdalnej detonacji ładunków kiedy jego operator zostanie zabity.</Polish> <Polish>Używany w celu zdalnej detonacji ładunków kiedy jego operator zostanie zabity.</Polish>
<Spanish>Utilizado para detonar explosivos remotamente al soltarlo.</Spanish> <Spanish>Utilizado para detonar explosivos remotamente al soltarlo.</Spanish>
<Hungarian>Robbanóanyagok távoli robbantásához</Hungarian> <Hungarian>Robbanóanyagok távoli robbantásához</Hungarian>
<Russian>Используется для дистанционного подрыва, после смерти оператора.</Russian> <Russian>Используется для дистанционного подрыва, после смерти оператора.</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_Pickup"> <Key ID="STR_ACE_Explosives_Pickup">
<English>Pick up</English> <English>Pick up</English>
<German>Aufheben</German> <German>Aufheben</German>
<Spanish>Recoger</Spanish> <Spanish>Recoger</Spanish>
</Key> <Czech>Sebrat</Czech>
</Package> <Polish>Podnieś</Polish>
</Project> <French>Prendre</French>
</Key>
</Package>
</Project>

View File

@ -4,6 +4,8 @@ GVAR(enabled) = false;
GVAR(time) = 0; GVAR(time) = 0;
GVAR(position) = [0,0,0]; GVAR(position) = [0,0,0];
if (!hasInterface) exitWith {};
#include "initKeybinds.sqf" #include "initKeybinds.sqf"
["infoDisplayChanged", { ["infoDisplayChanged", {

View File

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

View File

@ -1,90 +1,90 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2014-12-15 --> <!-- Edited with tabler. -->
<Project name="ACE"> <Project name="ACE">
<Package name="FlashSuppressors"> <Package name="FlashSuppressors">
<Key ID="STR_ACE_muzzle_mzls_H"> <Key ID="STR_ACE_muzzle_mzls_H">
<English>Flash Suppressor (6.5 mm)</English> <English>Flash Suppressor (6.5 mm)</English>
<Hungarian>Lángrejtő (6,5 mm)</Hungarian> <Hungarian>Lángrejtő (6,5 mm)</Hungarian>
<German>Mündungsfeuerdämpfer (6,5 mm)</German> <German>Mündungsfeuerdämpfer (6,5 mm)</German>
<Italian>Soppressore di fiamma (6.5mm)</Italian> <Italian>Soppressore di fiamma (6.5mm)</Italian>
<Portuguese>Supressor de Clarão (6,5mm)</Portuguese> <Portuguese>Supressor de Clarão (6,5mm)</Portuguese>
<Polish>Tłumik płomieni (6,5 mm)</Polish> <Polish>Tłumik płomienia (6,5 mm)</Polish>
<Czech>Tlumič záblesku (6,5 mm)</Czech> <Czech>Tlumič plamene (6,5 mm)</Czech>
<French>Cache-flamme (6,5 mm)</French> <French>Cache-flamme (6,5 mm)</French>
<Russian>Пламегаситель (6,5 мм)</Russian> <Russian>Пламегаситель (6,5 мм)</Russian>
<Spanish>Supresor (6,5 mm)</Spanish> <Spanish>Supresor (6,5 mm)</Spanish>
</Key> </Key>
<Key ID="STR_ACE_muzzle_mzls_B"> <Key ID="STR_ACE_muzzle_mzls_B">
<English>Flash Suppressor (7.62 mm)</English> <English>Flash Suppressor (7.62 mm)</English>
<Hungarian>Lángrejtő (7,62 mm)</Hungarian> <Hungarian>Lángrejtő (7,62 mm)</Hungarian>
<German>Mündungsfeuerdämpfer (7,62 mm)</German> <German>Mündungsfeuerdämpfer (7,62 mm)</German>
<Italian>Soppressore di fiamma (7.62mm)</Italian> <Italian>Soppressore di fiamma (7.62mm)</Italian>
<Portuguese>Supressor de Clarão (7,62mm)</Portuguese> <Portuguese>Supressor de Clarão (7,62mm)</Portuguese>
<Polish>Tłumik płomieni (7,62 mm)</Polish> <Polish>Tłumik płomienia (7,62 mm)</Polish>
<Czech>Tlumič záblesku (7,62 mm)</Czech> <Czech>Tlumič plamene (7,62 mm)</Czech>
<French>Cache-flamme (7,62 mm)</French> <French>Cache-flamme (7,62 mm)</French>
<Russian>Пламегаситель (7,62 мм)</Russian> <Russian>Пламегаситель (7,62 мм)</Russian>
<Spanish>Supresor (7,62 mm)</Spanish> <Spanish>Supresor (7,62 mm)</Spanish>
</Key> </Key>
<Key ID="STR_ACE_muzzle_mzls_L"> <Key ID="STR_ACE_muzzle_mzls_L">
<English>Flash Suppressor (5.56 mm)</English> <English>Flash Suppressor (5.56 mm)</English>
<Hungarian>Lángrejtő (5,56 mm)</Hungarian> <Hungarian>Lángrejtő (5,56 mm)</Hungarian>
<German>Mündungsfeuerdämpfer (5,56 mm)</German> <German>Mündungsfeuerdämpfer (5,56 mm)</German>
<Italian>Soppressore di fiamma (5.56mm)</Italian> <Italian>Soppressore di fiamma (5.56mm)</Italian>
<Portuguese>Supressor de Clarão (5,56mm)</Portuguese> <Portuguese>Supressor de Clarão (5,56mm)</Portuguese>
<Polish>Tłumik płomieni (5,56 mm)</Polish> <Polish>Tłumik płomienia (5,56 mm)</Polish>
<Czech>Tlumič záblesku (5,56 mm)</Czech> <Czech>Tlumič plamene (5,56 mm)</Czech>
<French>Cache-flamme (5,56 mm)</French> <French>Cache-flamme (5,56 mm)</French>
<Russian>Пламегаситель (5,56 мм)</Russian> <Russian>Пламегаситель (5,56 мм)</Russian>
<Spanish>Supresor (5,56 mm)</Spanish> <Spanish>Supresor (5,56 mm)</Spanish>
</Key> </Key>
<Key ID="STR_ACE_muzzle_mzls_smg_01"> <Key ID="STR_ACE_muzzle_mzls_smg_01">
<English>Flash Suppressor (.45 ACP)</English> <English>Flash Suppressor (.45 ACP)</English>
<Hungarian>Lángrejtő (.45 ACP)</Hungarian> <Hungarian>Lángrejtő (.45 ACP)</Hungarian>
<German>Mündungsfeuerdämpfer (.45 ACP)</German> <German>Mündungsfeuerdämpfer (.45 ACP)</German>
<Italian>Soppressore di fiamma (.45 ACP)</Italian> <Italian>Soppressore di fiamma (.45 ACP)</Italian>
<Portuguese>Supressor de Clarão (.45 ACP)</Portuguese> <Portuguese>Supressor de Clarão (.45 ACP)</Portuguese>
<Polish>Tłumik płomieni (.45 ACP)</Polish> <Polish>Tłumik płomienia (.45 ACP)</Polish>
<Czech>Tlumič záblesku (.45 ACP)</Czech> <Czech>Tlumič plamene (.45 ACP)</Czech>
<French>Cache-flamme (.45 ACP)</French> <French>Cache-flamme (.45 ACP)</French>
<Russian>Пламегаситель (.45 ACP)</Russian> <Russian>Пламегаситель (.45 ACP)</Russian>
<Spanish>Supresor (.45 ACP)</Spanish> <Spanish>Supresor (.45 ACP)</Spanish>
</Key> </Key>
<Key ID="STR_ACE_muzzle_mzls_smg_02"> <Key ID="STR_ACE_muzzle_mzls_smg_02">
<English>Flash Suppressor (9 mm)</English> <English>Flash Suppressor (9 mm)</English>
<Hungarian>Lángrejtő (9 mm)</Hungarian> <Hungarian>Lángrejtő (9 mm)</Hungarian>
<German>Mündungsfeuerdämpfer (9 mm)</German> <German>Mündungsfeuerdämpfer (9 mm)</German>
<Italian>Soppressore di fiamma (9 mm)</Italian> <Italian>Soppressore di fiamma (9 mm)</Italian>
<Portuguese>Supressor de Clarão (9mm)</Portuguese> <Portuguese>Supressor de Clarão (9mm)</Portuguese>
<Polish>Tłumik płomieni (9 mm)</Polish> <Polish>Tłumik płomienia (9 mm)</Polish>
<Czech>Tlumič záblesku (9 mm)</Czech> <Czech>Tlumič plamene (9 mm)</Czech>
<French>Cache-flamme (9 mm)</French> <French>Cache-flamme (9 mm)</French>
<Russian>Пламегаситель (9 мм)</Russian> <Russian>Пламегаситель (9 мм)</Russian>
<Spanish>Supresor (9 mm)</Spanish> <Spanish>Supresor (9 mm)</Spanish>
</Key> </Key>
<Key ID="STR_ACE_muzzle_mzls_338"> <Key ID="STR_ACE_muzzle_mzls_338">
<English>Flash Suppressor (.338)</English> <English>Flash Suppressor (.338)</English>
<Hungarian>Lángrejtő (.338)</Hungarian> <Hungarian>Lángrejtő (.338)</Hungarian>
<German>Mündungsfeuerdämpfer (.338)</German> <German>Mündungsfeuerdämpfer (.338)</German>
<Italian>Soppressore di fiamma (.338)</Italian> <Italian>Soppressore di fiamma (.338)</Italian>
<Portuguese>Supressor de Clarão (.338)</Portuguese> <Portuguese>Supressor de Clarão (.338)</Portuguese>
<Polish>Tłumik płomieni (.338)</Polish> <Polish>Tłumik płomienia (.338)</Polish>
<Czech>Tlumič záblesku (.338)</Czech> <Czech>Tlumič záblesku (.338)</Czech>
<French>Cache-flamme (.338)</French> <French>Cache-flamme (.338)</French>
<Russian>Пламегаситель (.338)</Russian> <Russian>Пламегаситель (.338)</Russian>
<Spanish>Supresor (.338)</Spanish> <Spanish>Supresor (.338)</Spanish>
</Key> </Key>
<Key ID="STR_ACE_muzzle_mzls_93mmg"> <Key ID="STR_ACE_muzzle_mzls_93mmg">
<English>Flash Suppressor (9.3 mm)</English> <English>Flash Suppressor (9.3 mm)</English>
<Hungarian>Lángrejtő (9,3 mm)</Hungarian> <Hungarian>Lángrejtő (9,3 mm)</Hungarian>
<German>Mündungsfeuerdämpfer (9,3 mm)</German> <German>Mündungsfeuerdämpfer (9,3 mm)</German>
<Italian>Soppressore di fiamma (9.3mm)</Italian> <Italian>Soppressore di fiamma (9.3mm)</Italian>
<Portuguese>Supressor de Clarão (9,3mm)</Portuguese> <Portuguese>Supressor de Clarão (9,3mm)</Portuguese>
<Polish>Tłumik płomieni (9,3 mm)</Polish> <Polish>Tłumik płomienia (9,3 mm)</Polish>
<Czech>Tlumič záblesku (9,3 mm)</Czech> <Czech>Tlumič záblesku (9,3 mm)</Czech>
<French>Cache-flamme (9,3 mm)</French> <French>Cache-flamme (9,3 mm)</French>
<Russian>Пламегаситель (9,3 мм)</Russian> <Russian>Пламегаситель (9,3 мм)</Russian>
<Spanish>Supresor (9,3 mm)</Spanish> <Spanish>Supresor (9,3 mm)</Spanish>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project name="ACE"> <Project name="ACE">
<Package name="Frag"> <Package name="Frag">
<Key ID="STR_DN_ACE_FRAG"> <Key ID="STR_DN_ACE_FRAG">
@ -6,7 +6,7 @@
<German>Keine Schrapnelle</German> <German>Keine Schrapnelle</German>
<Czech>Zakázat fragmentaci granátů</Czech> <Czech>Zakázat fragmentaci granátů</Czech>
<Spanish>Desactivar fragmentación</Spanish> <Spanish>Desactivar fragmentación</Spanish>
<Polish>Wyłącz głowice fragmentacyjne</Polish> <Polish>Wyłącz fragmentację odłamków</Polish>
<Russian>Выключить разлёт осколков</Russian> <Russian>Выключить разлёт осколков</Russian>
</Key> </Key>
</Package> </Package>

View File

@ -1,12 +1,11 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2015-04-10 -->
<Project name="ACE"> <Project name="ACE">
<Package name="Goggles"> <Package name="Goggles">
<Key ID="STR_ACE_Goggles_ShowInThirdPerson"> <Key ID="STR_ACE_Goggles_ShowInThirdPerson">
<English>Show Goggle Effects in Third Person</English> <English>Show Goggle Effects in Third Person</English>
<German>Brilleneffekt in dritter Person anzeigen</German> <German>Brilleneffekt in dritter Person anzeigen</German>
<Spanish>Mostrar efectos de las gafas en tercera persona</Spanish> <Spanish>Mostrar efectos de las gafas en tercera persona</Spanish>
<Czech>Zobrazit účinky brýlí v třetí osobě</Czech> <Czech>Zobrazit efekt brýlí v třetí osobě</Czech>
<French>Effets de lunettes à la 3ème personne</French> <French>Effets de lunettes à la 3ème personne</French>
<Russian>Отображать эффект очков от третьего лица</Russian> <Russian>Отображать эффект очков от третьего лица</Russian>
<Hungarian>Szemüveg effekt mutatása külső nézetből</Hungarian> <Hungarian>Szemüveg effekt mutatása külső nézetből</Hungarian>
@ -27,4 +26,4 @@
<Italian>Pulisci gli occhiali</Italian> <Italian>Pulisci gli occhiali</Italian>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -1,246 +1,246 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2015-04-10 --> <!-- Edited with tabler. -->
<Project name="ACE"> <Project name="ACE">
<Package name="Grenades"> <Package name="Grenades">
<Key ID="STR_ACE_Grenades_SwitchGrenadeMode"> <Key ID="STR_ACE_Grenades_SwitchGrenadeMode">
<English>Switch Grenade Mode</English> <English>Switch Grenade Mode</English>
<German>Granaten-Modus wechseln</German> <German>Granaten-Modus wechseln</German>
<Spanish>Cambiar modo de granada</Spanish> <Spanish>Cambiar modo de granada</Spanish>
<Polish>Tryb rzutu granatem</Polish> <Polish>Przełącz sposób rzutu granatem</Polish>
<Czech>Změnit styl hodu granátu</Czech> <Czech>Změnit styl hodu granátu</Czech>
<French>Changer type de lancer de grenade</French> <French>Changer type de lancer de grenade</French>
<Russian>Сменить режим броска гранаты</Russian> <Russian>Сменить режим броска гранаты</Russian>
<Hungarian>Gránátdobás mód váltás</Hungarian> <Hungarian>Gránátdobás mód váltás</Hungarian>
<Italian>Cambia tipo di granata</Italian> <Italian>Cambia tipo di granata</Italian>
<Portuguese>Alternar Modo de Granada</Portuguese> <Portuguese>Alternar Modo de Granada</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Grenades_NormalThrow"> <Key ID="STR_ACE_Grenades_NormalThrow">
<English>Normal Throw</English> <English>Normal Throw</English>
<German>Normaler Wurf</German> <German>Normaler Wurf</German>
<Spanish>Lanzamiento normal</Spanish> <Spanish>Lanzamiento normal</Spanish>
<Polish>Normalny rzut</Polish> <Polish>Normalny rzut</Polish>
<Czech>Normální</Czech> <Czech>Normální hod</Czech>
<French>Lancer Normal</French> <French>Lancer Normal</French>
<Russian>Нормальный бросок</Russian> <Russian>Нормальный бросок</Russian>
<Hungarian>Normál dobás</Hungarian> <Hungarian>Normál dobás</Hungarian>
<Italian>Lancio normale</Italian> <Italian>Lancio normale</Italian>
<Portuguese>Arremesso Normal</Portuguese> <Portuguese>Arremesso Normal</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Grenades_HighThrow"> <Key ID="STR_ACE_Grenades_HighThrow">
<English>High Throw</English> <English>High Throw</English>
<German>Hoher Wurf</German> <German>Hoher Wurf</German>
<Spanish>Lanzamiento alto</Spanish> <Spanish>Lanzamiento alto</Spanish>
<Polish>Rzut lobem</Polish> <Polish>Wysoki rzut</Polish>
<Czech>Vysoko</Czech> <Czech>Vysoký hod</Czech>
<French>Lancer Haut</French> <French>Lancer Haut</French>
<Russian>Высокий бросок</Russian> <Russian>Высокий бросок</Russian>
<Hungarian>Magas dobás</Hungarian> <Hungarian>Magas dobás</Hungarian>
<Italian>Lancio verso l'alto</Italian> <Italian>Lancio verso l'alto</Italian>
<Portuguese>Arremesso Alto</Portuguese> <Portuguese>Arremesso Alto</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Grenades_PreciseThrow"> <Key ID="STR_ACE_Grenades_PreciseThrow">
<English>Precise Throw</English> <English>Precise Throw</English>
<German>Präziser Wurf</German> <German>Präziser Wurf</German>
<Spanish>Lanzamiento preciso</Spanish> <Spanish>Lanzamiento preciso</Spanish>
<Polish>Precyzyjny rzut</Polish> <Polish>Precyzyjny rzut</Polish>
<Czech>Přesně</Czech> <Czech>Přesný hod</Czech>
<French>Lancer Précis</French> <French>Lancer Précis</French>
<Russian>Точный бросок</Russian> <Russian>Точный бросок</Russian>
<Hungarian>Pontos dobás</Hungarian> <Hungarian>Pontos dobás</Hungarian>
<Italian>Lancio preciso</Italian> <Italian>Lancio preciso</Italian>
<Portuguese>Arremesso Preciso</Portuguese> <Portuguese>Arremesso Preciso</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Grenades_RollGrenade"> <Key ID="STR_ACE_Grenades_RollGrenade">
<English>Roll Grenade</English> <English>Roll Grenade</English>
<German>Granate rollen</German> <German>Granate rollen</German>
<Spanish>Rodar granada</Spanish> <Spanish>Rodar granada</Spanish>
<Polish>Po ziemi</Polish> <Polish>Po ziemi</Polish>
<Czech>Po zemi</Czech> <Czech>Po zemi</Czech>
<French>Lancer Roulé</French> <French>Lancer Roulé</French>
<Russian>Катить гранату</Russian> <Russian>Катить гранату</Russian>
<Hungarian>Gurítás</Hungarian> <Hungarian>Gurítás</Hungarian>
<Italian>Fai rotolare la granata</Italian> <Italian>Fai rotolare la granata</Italian>
<Portuguese>Rolar Granada</Portuguese> <Portuguese>Rolar Granada</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Grenades_DropGrenade"> <Key ID="STR_ACE_Grenades_DropGrenade">
<English>Drop Grenade</English> <English>Drop Grenade</English>
<German>Granate fallenlassen</German> <German>Granate fallenlassen</German>
<Spanish>Soltar granada</Spanish> <Spanish>Soltar granada</Spanish>
<Polish>Upuść granat</Polish> <Polish>Upuść granat</Polish>
<Czech>Upustit granát</Czech> <Czech>Upustit granát</Czech>
<French>Lâcher la grenade</French> <French>Lâcher la grenade</French>
<Russian>Бросить себе под ноги</Russian> <Russian>Бросить себе под ноги</Russian>
<Hungarian>Ejtés</Hungarian> <Hungarian>Ejtés</Hungarian>
<Italian>Lascia la granata</Italian> <Italian>Lascia la granata</Italian>
<Portuguese>Largar Granada</Portuguese> <Portuguese>Largar Granada</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Grenades_M84_Name"> <Key ID="STR_ACE_Grenades_M84_Name">
<English>M84 Stun Grenade</English> <English>M84 Stun Grenade</English>
<German>M84 Blendgranate</German> <German>M84 Blendgranate</German>
<Spanish>Granada aturdidora M84</Spanish> <Spanish>Granada aturdidora M84</Spanish>
<French>M84 Grenade Incapacitante</French> <French>M84 Grenade Incapacitante</French>
<Polish>Granat hukowy M84</Polish> <Polish>Granat hukowy M84</Polish>
<Czech>M84 Omračující granát</Czech> <Czech>Omračující granát M84</Czech>
<Russian>M84 светозвуковая граната</Russian> <Russian>M84 светозвуковая граната</Russian>
<Hungarian>M84 Villanógránát</Hungarian> <Hungarian>M84 Villanógránát</Hungarian>
<Italian>Granata Stordente M84</Italian> <Italian>Granata Stordente M84</Italian>
<Portuguese>M84 granada de atordoamento</Portuguese> <Portuguese>M84 granada de atordoamento</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Grenades_M84_Description"> <Key ID="STR_ACE_Grenades_M84_Description">
<English>Also known as flashbang. Causes immediate flash blindness, deafness, tinnitus, and inner ear disturbance.</English> <English>Also known as flashbang. Causes immediate flash blindness, deafness, tinnitus, and inner ear disturbance.</English>
<German>Verursacht temporäre Blind- und Taubheit.</German> <German>Verursacht temporäre Blind- und Taubheit.</German>
<Spanish>Produce de manera inmediata ceguera, sordera, tinitus y afecta el oído interior.</Spanish> <Spanish>Produce de manera inmediata ceguera, sordera, tinitus y afecta el oído interior.</Spanish>
<French>Les grenades incapacitantes servent à désorienter ou distraire une menace pendant quelques secondes.</French> <French>Les grenades incapacitantes servent à désorienter ou distraire une menace pendant quelques secondes.</French>
<Polish>Granat ogłusza, nie zabijając przeciwnika. Detonacja daje efekt oślepiającego błysku i głośnego huku.</Polish> <Polish>Znany też jako flashbang. Powoduje natychmiastową tymczasową ślepotę, głuchotę, dzwonienie w uszach i inne zaburzenia ucha wewnętrznego.</Polish>
<Czech>Omračující granát je taktická nesmrtící zbraň používaná při záchraně rukojmí a zvládání davu.</Czech> <Czech>Omračující granát je taktická nesmrtící zbraň používaná při záchraně rukojmí a zvládání davu.</Czech>
<Russian>XM84 (M84) - граната нелетального действия, и предназначена для отвлечения и временного вывода из строя, либо дезориентации противника. Основное использование нашла при освобождении заложников, захвате преступников и террористов, а также проведении диверсионных миссий.</Russian> <Russian>XM84 (M84) - граната нелетального действия, и предназначена для отвлечения и временного вывода из строя, либо дезориентации противника. Основное использование нашла при освобождении заложников, захвате преступников и террористов, а также проведении диверсионных миссий.</Russian>
<Hungarian>Eldobás után felrobban és éles hang, valamint fényhatással zavarja össze a környezetében tartózkodókat.</Hungarian> <Hungarian>Eldobás után felrobban és éles hang, valamint fényhatással zavarja össze a környezetében tartózkodókat.</Hungarian>
<Italian>Anche conosciuta come flashbang. Causa accecamento immediato, sensazioni di sposatezza, mancanza d'equilibrio e disturbi al timpano.</Italian> <Italian>Anche conosciuta come flashbang. Causa accecamento immediato, sensazioni di sposatezza, mancanza d'equilibrio e disturbi al timpano.</Italian>
<Portuguese>Um tipo de granada não-letal destinado a confundir, desorientar e distrair uma potencial ameaça.</Portuguese> <Portuguese>Um tipo de granada não-letal destinado a confundir, desorientar e distrair uma potencial ameaça.</Portuguese>
</Key> </Key>
<Key ID="STR_ACE_Grenades_M127A1_White_Name"> <Key ID="STR_ACE_Grenades_M127A1_White_Name">
<English>M127A1 Hand Held Signal (White)</English> <English>M127A1 Hand Held Signal (White)</English>
<German>M127A1 Leuchtmittel (Weiß)</German> <German>M127A1 Leuchtmittel (Weiß)</German>
<Czech> M127A1 Světlice (Bílá)</Czech> <Czech>Světlice M127A1 (Bílá)</Czech>
<Hungarian>M127A1 Jelzőrakéta (Fehér)</Hungarian> <Hungarian>M127A1 Jelzőrakéta (Fehér)</Hungarian>
<Italian>M127A1 Bengala (Bianco)</Italian> <Italian>M127A1 Bengala (Bianco)</Italian>
<Polish>Flara ręczna sygnałowa M127A1 (biała)</Polish> <Polish>Flara ręczna sygnałowa M127A1 (biała)</Polish>
<Portuguese>M127A1 Sinalizador (Branco)</Portuguese> <Portuguese>M127A1 Sinalizador (Branco)</Portuguese>
<Russian>M127A1 Фальшфейер (Белый)</Russian> <Russian>M127A1 Фальшфейер (Белый)</Russian>
<Spanish>Bengala M127A1 (Blanca)</Spanish> <Spanish>Bengala M127A1 (Blanca)</Spanish>
<French>M127A1 Feux à main (Blanc)</French> <French>M127A1 Feux à main (Blanc)</French>
</Key> </Key>
<Key ID="STR_ACE_Grenades_M127A1_Red_Name"> <Key ID="STR_ACE_Grenades_M127A1_Red_Name">
<English>M127A1 Hand Held Signal (Red)</English> <English>M127A1 Hand Held Signal (Red)</English>
<German>M127A1 Leuchtmittel (Rot)</German> <German>M127A1 Leuchtmittel (Rot)</German>
<Czech>M127A1 Světlice (Červená)</Czech> <Czech>Světlice M127A1 (Červená)</Czech>
<Hungarian>M127A1 Jelzőrakéta (Piros)</Hungarian> <Hungarian>M127A1 Jelzőrakéta (Piros)</Hungarian>
<Italian>M127A1 Bengala (Rosso)</Italian> <Italian>M127A1 Bengala (Rosso)</Italian>
<Polish>Flara ręczna sygnałowa M127A1 (czerwona)</Polish> <Polish>Flara ręczna sygnałowa M127A1 (czerwona)</Polish>
<Portuguese>M127A1 Sinalizador (Vermelho)</Portuguese> <Portuguese>M127A1 Sinalizador (Vermelho)</Portuguese>
<Russian>M127A1 Фальшфейер (Красный)</Russian> <Russian>M127A1 Фальшфейер (Красный)</Russian>
<Spanish>Bengala M127A1 (Roja)</Spanish> <Spanish>Bengala M127A1 (Roja)</Spanish>
<French>M127A1 Feux à main (Rouge)</French> <French>M127A1 Feux à main (Rouge)</French>
</Key> </Key>
<Key ID="STR_ACE_Grenades_M127A1_Green_Name"> <Key ID="STR_ACE_Grenades_M127A1_Green_Name">
<English>M127A1 Hand Held Signal (Green)</English> <English>M127A1 Hand Held Signal (Green)</English>
<German>M127A1 Leuchtmittel (Grün)</German> <German>M127A1 Leuchtmittel (Grün)</German>
<Czech>M127A1 Světlice (Zelená)</Czech> <Czech>Světlice M127A1 (Zelená)</Czech>
<Hungarian>M127A1 Jelzőrakéta (Zöld)</Hungarian> <Hungarian>M127A1 Jelzőrakéta (Zöld)</Hungarian>
<Italian>M127A1 Bengala (Verde)</Italian> <Italian>M127A1 Bengala (Verde)</Italian>
<Polish>Flara ręczna sygnałowa M127A1 (zielona)</Polish> <Polish>Flara ręczna sygnałowa M127A1 (zielona)</Polish>
<Portuguese>M127A1 Sinalizador (Verde)</Portuguese> <Portuguese>M127A1 Sinalizador (Verde)</Portuguese>
<Russian>M127A1 Фальшфейер (Зелёный)</Russian> <Russian>M127A1 Фальшфейер (Зелёный)</Russian>
<Spanish>Bengala M127A1 (Verde)</Spanish> <Spanish>Bengala M127A1 (Verde)</Spanish>
<French>M127A1 Feux à main (Vert)</French> <French>M127A1 Feux à main (Vert)</French>
</Key> </Key>
<Key ID="STR_ACE_Grenades_M127A1_Yellow_Name"> <Key ID="STR_ACE_Grenades_M127A1_Yellow_Name">
<English>M127A1 Hand Held Signal (Yellow)</English> <English>M127A1 Hand Held Signal (Yellow)</English>
<German>M127A1 Leuchtmittel (Gelb)</German> <German>M127A1 Leuchtmittel (Gelb)</German>
<Czech>M127A1 Světlice (Žlutá)</Czech> <Czech>Světlice M127A1 (Žlutá)</Czech>
<Hungarian>M127A1 Jelzőrakéta (Sárga)</Hungarian> <Hungarian>M127A1 Jelzőrakéta (Sárga)</Hungarian>
<Italian>M127A1 Bengala (Giallo)</Italian> <Italian>M127A1 Bengala (Giallo)</Italian>
<Polish>Flara ręczna sygnałowa M127A1 (żółta)</Polish> <Polish>Flara ręczna sygnałowa M127A1 (żółta)</Polish>
<Portuguese>M127A1 Sinalizador (Amarelo)</Portuguese> <Portuguese>M127A1 Sinalizador (Amarelo)</Portuguese>
<Russian>M127A1 Фальшфейер (Жёлтые)</Russian> <Russian>M127A1 Фальшфейер (Жёлтые)</Russian>
<Spanish>Bengala M127A1 (Amarilla)</Spanish> <Spanish>Bengala M127A1 (Amarilla)</Spanish>
<French>M127A1 Feux à main (Jaune)</French> <French>M127A1 Feux à main (Jaune)</French>
</Key> </Key>
<Key ID="STR_ACE_Grenades_M127A1_White_Description"> <Key ID="STR_ACE_Grenades_M127A1_White_Description">
<English>White Hand Flare</English> <English>White Hand Flare</English>
<German>Weiße Leuchtkugel, wird wie eine Granate geworfen.</German> <German>Weiße Leuchtkugel, wird wie eine Granate geworfen.</German>
<Czech>Světlice (Bílá)</Czech> <Czech>Světlice (Bílá)</Czech>
<Hungarian>Jelzőrakéta (Fehér)</Hungarian> <Hungarian>Jelzőrakéta (Fehér)</Hungarian>
<Italian>Bengala (Bianco)</Italian> <Italian>Bengala (Bianco)</Italian>
<Polish>Flara ręczna (biała)</Polish> <Polish>Flara ręczna (biała)</Polish>
<Portuguese>Sinalizador (Branco)</Portuguese> <Portuguese>Sinalizador (Branco)</Portuguese>
<Russian>Фальшфейер (Белый)</Russian> <Russian>Фальшфейер (Белый)</Russian>
<Spanish>Bengala (Blanca)</Spanish> <Spanish>Bengala (Blanca)</Spanish>
<French>Feux à main (Blanc)</French> <French>Feux à main (Blanc)</French>
</Key> </Key>
<Key ID="STR_ACE_Grenades_M127A1_Red_Description"> <Key ID="STR_ACE_Grenades_M127A1_Red_Description">
<English>Red Hand Flare</English> <English>Red Hand Flare</English>
<German>Rote Leuchtkugel, wird wie eine Granate geworfen.</German> <German>Rote Leuchtkugel, wird wie eine Granate geworfen.</German>
<Czech>Světlice (Červená)</Czech> <Czech>Světlice (Červená)</Czech>
<Hungarian>Jelzőrakéta (Piros)</Hungarian> <Hungarian>Jelzőrakéta (Piros)</Hungarian>
<Italian>Bengala (Rosso)</Italian> <Italian>Bengala (Rosso)</Italian>
<Polish>Flara ręczna (czerwona)</Polish> <Polish>Flara ręczna (czerwona)</Polish>
<Portuguese>Sinalizador (Vermelho)</Portuguese> <Portuguese>Sinalizador (Vermelho)</Portuguese>
<Russian>Фальшфейер (Красный)</Russian> <Russian>Фальшфейер (Красный)</Russian>
<Spanish>Bengala (Roja)</Spanish> <Spanish>Bengala (Roja)</Spanish>
<French>Feux à main (Rouge)</French> <French>Feux à main (Rouge)</French>
</Key> </Key>
<Key ID="STR_ACE_Grenades_M127A1_Green_Description"> <Key ID="STR_ACE_Grenades_M127A1_Green_Description">
<English>Green Hand Flare</English> <English>Green Hand Flare</English>
<German>Grüne Leuchtkugel, wird wie eine Granate geworfen.</German> <German>Grüne Leuchtkugel, wird wie eine Granate geworfen.</German>
<Czech>Světlice (Zelená)</Czech> <Czech>Světlice (Zelená)</Czech>
<Hungarian>Jelzőrakéta (Zöld)</Hungarian> <Hungarian>Jelzőrakéta (Zöld)</Hungarian>
<Italian>Bengala (Verde)</Italian> <Italian>Bengala (Verde)</Italian>
<Polish>Flara ręczna (zielona)</Polish> <Polish>Flara ręczna (zielona)</Polish>
<Portuguese>Sinalizador (Verde)</Portuguese> <Portuguese>Sinalizador (Verde)</Portuguese>
<Russian>Фальшфейер (Зелёный)</Russian> <Russian>Фальшфейер (Зелёный)</Russian>
<Spanish>Bengala (Verde)</Spanish> <Spanish>Bengala (Verde)</Spanish>
<French>Feux à main (Vert)</French> <French>Feux à main (Vert)</French>
</Key> </Key>
<Key ID="STR_ACE_Grenades_M127A1_Yellow_Description"> <Key ID="STR_ACE_Grenades_M127A1_Yellow_Description">
<English>Yellow Hand Flare</English> <English>Yellow Hand Flare</English>
<German>Gelbe Leuchtkugel, wird wie eine Granate geworfen.</German> <German>Gelbe Leuchtkugel, wird wie eine Granate geworfen.</German>
<Czech>Světlice Žlutá</Czech> <Czech>Světlice (Žlutá)</Czech>
<Hungarian>Jelzőrakéta (Sárga)</Hungarian> <Hungarian>Jelzőrakéta (Sárga)</Hungarian>
<Italian>Bengala (Giallo)</Italian> <Italian>Bengala (Giallo)</Italian>
<Polish>Flara ręczna (żółta)</Polish> <Polish>Flara ręczna (żółta)</Polish>
<Portuguese>Sinalizador (Amarelo)</Portuguese> <Portuguese>Sinalizador (Amarelo)</Portuguese>
<Russian>Фальшфейер (Жёлтые)</Russian> <Russian>Фальшфейер (Жёлтые)</Russian>
<Spanish>Bengala (Amarilla)</Spanish> <Spanish>Bengala (Amarilla)</Spanish>
<French>Feux à main (Jaune)</French> <French>Feux à main (Jaune)</French>
</Key> </Key>
<Key ID="STR_ACE_Grenades_M127A1_White_NameShort"> <Key ID="STR_ACE_Grenades_M127A1_White_NameShort">
<English>M127A1 (White)</English> <English>M127A1 (White)</English>
<German>M127A1 (Weiß)</German> <German>M127A1 (Weiß)</German>
<Czech>M127A1 (Bílá)</Czech> <Czech>M127A1 (Bílá)</Czech>
<French>M127A1 (Blanc)</French> <French>M127A1 (Blanc)</French>
<Hungarian>M127A1 (Fehér)</Hungarian> <Hungarian>M127A1 (Fehér)</Hungarian>
<Italian>M127A1 (Bianco)</Italian> <Italian>M127A1 (Bianco)</Italian>
<Polish>M127A1 (biała)</Polish> <Polish>M127A1 (biała)</Polish>
<Portuguese>M127A1 (Branco)</Portuguese> <Portuguese>M127A1 (Branco)</Portuguese>
<Russian>M127A1 (Белый)</Russian> <Russian>M127A1 (Белый)</Russian>
<Spanish>M127A1 (Blanca)</Spanish> <Spanish>M127A1 (Blanca)</Spanish>
</Key> </Key>
<Key ID="STR_ACE_Grenades_M127A1_Red_NameShort"> <Key ID="STR_ACE_Grenades_M127A1_Red_NameShort">
<English>M127A1 (Red)</English> <English>M127A1 (Red)</English>
<German>M127A1 (Rot)</German> <German>M127A1 (Rot)</German>
<Czech>M127A1 (Červená)</Czech> <Czech>M127A1 (Červená)</Czech>
<French>M127A1 (Rouge)</French> <French>M127A1 (Rouge)</French>
<Hungarian>M127A1 (Piros)</Hungarian> <Hungarian>M127A1 (Piros)</Hungarian>
<Italian>M127A1 (Rosso)</Italian> <Italian>M127A1 (Rosso)</Italian>
<Polish>M127A1 (czerwona)</Polish> <Polish>M127A1 (czerwona)</Polish>
<Portuguese>M127A1 (Vermelho)</Portuguese> <Portuguese>M127A1 (Vermelho)</Portuguese>
<Russian>M127A1 (Красный)</Russian> <Russian>M127A1 (Красный)</Russian>
<Spanish>M127A1 (Roja)</Spanish> <Spanish>M127A1 (Roja)</Spanish>
</Key> </Key>
<Key ID="STR_ACE_Grenades_M127A1_Green_NameShort"> <Key ID="STR_ACE_Grenades_M127A1_Green_NameShort">
<English>M127A1 (Green)</English> <English>M127A1 (Green)</English>
<German>M127A1 (Grün)</German> <German>M127A1 (Grün)</German>
<Czech>M127A1 (Zelená)</Czech> <Czech>M127A1 (Zelená)</Czech>
<French>M127A1 (Vert)</French> <French>M127A1 (Vert)</French>
<Hungarian>M127A1 (Zöld)</Hungarian> <Hungarian>M127A1 (Zöld)</Hungarian>
<Italian>M127A1 (Verde)</Italian> <Italian>M127A1 (Verde)</Italian>
<Polish>M127A1 (zielona)</Polish> <Polish>M127A1 (zielona)</Polish>
<Portuguese>M127A1 (Verde)</Portuguese> <Portuguese>M127A1 (Verde)</Portuguese>
<Russian>M127A1 (Зелёный)</Russian> <Russian>M127A1 (Зелёный)</Russian>
<Spanish>M127A1 (Verde)</Spanish> <Spanish>M127A1 (Verde)</Spanish>
</Key> </Key>
<Key ID="STR_ACE_Grenades_M127A1_Yellow_NameShort"> <Key ID="STR_ACE_Grenades_M127A1_Yellow_NameShort">
<English>M127A1 (Yellow)</English> <English>M127A1 (Yellow)</English>
<German>M127A1 (Gelb)</German> <German>M127A1 (Gelb)</German>
<Czech>M127A1 (Žlutá)</Czech> <Czech>M127A1 (Žlutá)</Czech>
<French>M127A1 (Jaune)</French> <French>M127A1 (Jaune)</French>
<Hungarian>M127A1 (Sárga)</Hungarian> <Hungarian>M127A1 (Sárga)</Hungarian>
<Italian>M127A1 (Giallo)</Italian> <Italian>M127A1 (Giallo)</Italian>
<Polish>M127A1 (żółta)</Polish> <Polish>M127A1 (żółta)</Polish>
<Portuguese>M127A1 (Amarelo)</Portuguese> <Portuguese>M127A1 (Amarelo)</Portuguese>
<Russian>M127A1 (Жёлтые)</Russian> <Russian>M127A1 (Жёлтые)</Russian>
<Spanish>M127A1 (Amarilla)</Spanish> <Spanish>M127A1 (Amarilla)</Spanish>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2015-04-10 -->
<Project name="ACE"> <Project name="ACE">
<Package name="Hearing"> <Package name="Hearing">
<Key ID="STR_ACE_Hearing_EarPlugs_Name"> <Key ID="STR_ACE_Hearing_EarPlugs_Name">
@ -30,7 +29,7 @@
<English>Earplugs in</English> <English>Earplugs in</English>
<German>Ohrenstöpsel drinnen</German> <German>Ohrenstöpsel drinnen</German>
<Spanish>Poner tapones</Spanish> <Spanish>Poner tapones</Spanish>
<Polish>Załóż stopery</Polish> <Polish>Włóż stopery</Polish>
<Czech>Dát špunty do uší</Czech> <Czech>Dát špunty do uší</Czech>
<Russian>Беруши надеты</Russian> <Russian>Беруши надеты</Russian>
<French>Bouchons mis</French> <French>Bouchons mis</French>
@ -42,7 +41,7 @@
<English>Earplugs out</English> <English>Earplugs out</English>
<German>Ohrenstöpsel raus</German> <German>Ohrenstöpsel raus</German>
<Spanish>Quitar tapones</Spanish> <Spanish>Quitar tapones</Spanish>
<Polish>Zdejmij stopery</Polish> <Polish>Wyjmij stopery</Polish>
<Czech>Vyndat špunty z uší</Czech> <Czech>Vyndat špunty z uší</Czech>
<Russian>Беруши сняты</Russian> <Russian>Беруши сняты</Russian>
<French>Bouchons enlevés</French> <French>Bouchons enlevés</French>
@ -54,7 +53,7 @@
<English>Earplugs in</English> <English>Earplugs in</English>
<German>Ohrenstöpsel drinnen</German> <German>Ohrenstöpsel drinnen</German>
<Spanish>Tapones puestos</Spanish> <Spanish>Tapones puestos</Spanish>
<Polish>Stopery założone</Polish> <Polish>Stopery włożone</Polish>
<Czech>Špunty v uších</Czech> <Czech>Špunty v uších</Czech>
<Russian>Беруши надеты</Russian> <Russian>Беруши надеты</Russian>
<French>Bouchons mis</French> <French>Bouchons mis</French>
@ -66,7 +65,7 @@
<English>Earplugs out</English> <English>Earplugs out</English>
<German>Ohrenstöpsel raus</German> <German>Ohrenstöpsel raus</German>
<Spanish>Tapones quitados</Spanish> <Spanish>Tapones quitados</Spanish>
<Polish>Stopery zdjęte</Polish> <Polish>Stopery wyjęte</Polish>
<Czech>Špunty venku z uší</Czech> <Czech>Špunty venku z uší</Czech>
<Russian>Беруши сняты</Russian> <Russian>Беруши сняты</Russian>
<French>Bouchons enlevés</French> <French>Bouchons enlevés</French>
@ -100,9 +99,12 @@
</Key> </Key>
<Key ID="STR_ACE_Hearing_DisableEarRinging"> <Key ID="STR_ACE_Hearing_DisableEarRinging">
<English>Disable ear ringing</English> <English>Disable ear ringing</English>
<German>Deaktiviere Ohrfiepen</German> <French>Désactiver les tintements d'oreille</French>
<Spanish>Desactivar zumbido de oídos</Spanish> <Spanish>Desactivar zumbido de oídos</Spanish>
<Russian>Отключить эффект баротравмы</Russian> <Russian>Отключить эффект баротравмы</Russian>
<German>Knalltrauma deaktivieren</German>
<Czech>Vypnout pískání v uších</Czech>
<Polish>Wyłącz dzwonienie w uszach</Polish>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

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

View File

@ -1,27 +1,11 @@
class Extended_PreInit_EventHandlers { class Extended_PreInit_EventHandlers {
class ADDON { class ADDON {
init = QUOTE( call COMPILE_FILE(XEH_preInit) ); init = QUOTE( call COMPILE_FILE(XEH_preInit) );
}; };
}; };
class Extended_PostInit_EventHandlers { class Extended_PostInit_EventHandlers {
class ADDON { class ADDON {
clientInit = QUOTE( call COMPILE_FILE(XEH_clientInit) ); init = QUOTE(call COMPILE_FILE(XEH_postInit));
};
};
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 Extended_GetOut_EventHandlers {
class All {
class ADDONnu {
clientGetOut = QUOTE( if (_this select 2 == ACE_player && {!isNull (findDisplay 1713999)}) then {(findDisplay 1713999) closeDisplay 1});
};
};
}; };

View File

@ -260,12 +260,11 @@ class CfgVehicles {
icon = PATHTOF(UI\team\team_white_ca.paa); icon = PATHTOF(UI\team\team_white_ca.paa);
hotkey = "N"; hotkey = "N";
}; };
class ACE_BecomeLeader { class ACE_BecomeLeader {
displayName = "$STR_ACE_Interaction_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"}; 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; showDisabled = 1;
priority = 1.0; priority = 1.0;
icon = PATHTOF(UI\team\team_white_ca.paa); icon = PATHTOF(UI\team\team_white_ca.paa);

View File

@ -4,6 +4,12 @@
ACE_Modifier = 0; 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 {}; if (!hasInterface) exitWith {};
GVAR(isOpeningDoor) = false; GVAR(isOpeningDoor) = false;

View File

@ -6,8 +6,10 @@ PREP(addPassengerActions);
PREP(addPassengersActions); PREP(addPassengersActions);
PREP(addSelectableItem); PREP(addSelectableItem);
PREP(applyButtons); PREP(applyButtons);
PREP(canBecomeLeader);
PREP(canInteractWithCivilian); PREP(canInteractWithCivilian);
PREP(canTapShoulder); PREP(canTapShoulder);
PREP(doBecomeLeader);
PREP(getDoor); PREP(getDoor);
PREP(getDoorAnimations); PREP(getDoorAnimations);
PREP(getDown); PREP(getDown);

View File

@ -0,0 +1,21 @@
/*
* Author: PabstMirror
* Test if can Become Leader of group
*
* Arguments:
* 0: target <OBJECT>
* 1: player <OBJECT>
*
* Return Value:
* <BOOL>
*
* 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}

View File

@ -0,0 +1,21 @@
/*
* Author: PabstMirror
* Become Leader of group
*
* Arguments:
* 0: target <OBJECT>
* 1: player <OBJECT>
*
* 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);

View File

@ -5,41 +5,65 @@
<English>Interactions</English> <English>Interactions</English>
<German>Interaktionen</German> <German>Interaktionen</German>
<Spanish>Interacciones</Spanish> <Spanish>Interacciones</Spanish>
<Czech>Interakce</Czech>
<Polish>Interakcje</Polish>
<French>Interactions</French>
</Key> </Key>
<Key ID="STR_ACE_Interaction_Torso"> <Key ID="STR_ACE_Interaction_Torso">
<English>Torso</English> <English>Torso</English>
<German>Torso</German> <German>Torso</German>
<Spanish>Torso</Spanish> <Spanish>Torso</Spanish>
<Czech>Trup</Czech>
<Polish>Tors</Polish>
<French>Torse</French>
</Key> </Key>
<Key ID="STR_ACE_Interaction_Head"> <Key ID="STR_ACE_Interaction_Head">
<English>Head</English> <English>Head</English>
<German>Kopf</German> <German>Kopf</German>
<Spanish>Cabeza</Spanish> <Spanish>Cabeza</Spanish>
<Czech>Hlava</Czech>
<Polish>Głowa</Polish>
<French>Tête</French>
</Key> </Key>
<Key ID="STR_ACE_Interaction_ArmLeft"> <Key ID="STR_ACE_Interaction_ArmLeft">
<English>Left Arm</English> <English>Left Arm</English>
<German>Linker Arm</German> <German>Linker Arm</German>
<Spanish>Brazo izquierdo</Spanish> <Spanish>Brazo izquierdo</Spanish>
<Czech>Levá paže</Czech>
<Polish>Lewe ramię</Polish>
<French>Bras Gauche</French>
</Key> </Key>
<Key ID="STR_ACE_Interaction_ArmRight"> <Key ID="STR_ACE_Interaction_ArmRight">
<English>Right Arm</English> <English>Right Arm</English>
<German>Rechter Arm</German> <German>Rechter Arm</German>
<Spanish>Brazo derecho</Spanish> <Spanish>Brazo derecho</Spanish>
<Czech>Pravá paže</Czech>
<Polish>Prawe ramię</Polish>
<French>Bras Droit</French>
</Key> </Key>
<Key ID="STR_ACE_Interaction_LegLeft"> <Key ID="STR_ACE_Interaction_LegLeft">
<English>Left Leg</English> <English>Left Leg</English>
<German>Linkes Bein</German> <German>Linkes Bein</German>
<Spanish>Pierna izquierda</Spanish> <Spanish>Pierna izquierda</Spanish>
<Czech>Levá noha</Czech>
<Polish>Lewa noga</Polish>
<French>Jambe Gauche</French>
</Key> </Key>
<Key ID="STR_ACE_Interaction_LegRight"> <Key ID="STR_ACE_Interaction_LegRight">
<English>Right Leg</English> <English>Right Leg</English>
<German>Rechtes Bein</German> <German>Rechtes Bein</German>
<Spanish>Pierna derecha</Spanish> <Spanish>Pierna derecha</Spanish>
<Czech>Pravá hona</Czech>
<Polish>Prawa noga</Polish>
<French>Jambe Droite</French>
</Key> </Key>
<Key ID="STR_ACE_Interaction_Weapon"> <Key ID="STR_ACE_Interaction_Weapon">
<English>Weapon</English> <English>Weapon</English>
<German>Waffe</German> <German>Waffe</German>
<Spanish>Arma</Spanish> <Spanish>Arma</Spanish>
<Czech>Zbraň</Czech>
<Polish>Broń</Polish>
<French>Arme</French>
</Key> </Key>
<Key ID="STR_ACE_Interaction_InteractionMenu"> <Key ID="STR_ACE_Interaction_InteractionMenu">
<English>Interaction Menu</English> <English>Interaction Menu</English>
@ -57,7 +81,7 @@
<English>Interaction Menu (Self)</English> <English>Interaction Menu (Self)</English>
<German>Interaktionsmenü (Selbst)</German> <German>Interaktionsmenü (Selbst)</German>
<Spanish>Menú de interacción (Propia)</Spanish> <Spanish>Menú de interacción (Propia)</Spanish>
<Polish>Menu interakcji (na siebie)</Polish> <Polish>Menu interakcji (własne)</Polish>
<Czech>Menu interakce (vlastní)</Czech> <Czech>Menu interakce (vlastní)</Czech>
<French>Menu d'interaction (Perso)</French> <French>Menu d'interaction (Perso)</French>
<Russian>Меню взаимодействия (с собой)</Russian> <Russian>Меню взаимодействия (с собой)</Russian>
@ -142,7 +166,7 @@
<German>Gruppe verlassen</German> <German>Gruppe verlassen</German>
<Spanish>Dejar grupo</Spanish> <Spanish>Dejar grupo</Spanish>
<Polish>Opuść grupę</Polish> <Polish>Opuść grupę</Polish>
<Czech>Odejít ze skupiny</Czech> <Czech>Opustit skupinu</Czech>
<French>Quitter Groupe</French> <French>Quitter Groupe</French>
<Russian>Выйти из группы</Russian> <Russian>Выйти из группы</Russian>
<Hungarian>Csoport elhagyása</Hungarian> <Hungarian>Csoport elhagyása</Hungarian>
@ -202,7 +226,7 @@
<German>Gesten</German> <German>Gesten</German>
<Spanish>Gestos</Spanish> <Spanish>Gestos</Spanish>
<Polish>Gesty</Polish> <Polish>Gesty</Polish>
<Czech>Gesta</Czech> <Czech>Posunky</Czech>
<French>Signaux</French> <French>Signaux</French>
<Russian>Жесты</Russian> <Russian>Жесты</Russian>
<Hungarian>Kézjelek</Hungarian> <Hungarian>Kézjelek</Hungarian>
@ -384,7 +408,7 @@
<French>On te tape sur l'épaule</French> <French>On te tape sur l'épaule</French>
<Polish>Zostałeś klepnięty po ramieniu</Polish> <Polish>Zostałeś klepnięty po ramieniu</Polish>
<Hungarian>Vállonveregettek</Hungarian> <Hungarian>Vállonveregettek</Hungarian>
<Czech>Někdo tě poklepal na rameno</Czech> <Czech>Někdo tě poklepal na PRAVÉ rameno</Czech>
<Russian>Вас похлопали по плечу</Russian> <Russian>Вас похлопали по плечу</Russian>
<Portuguese>Você foi tocado no ombro</Portuguese> <Portuguese>Você foi tocado no ombro</Portuguese>
<Italian>Ti è stato dato un colpetto sulla spalla</Italian> <Italian>Ti è stato dato un colpetto sulla spalla</Italian>
@ -396,7 +420,7 @@
<French>On te tape sur l'épaule.</French> <French>On te tape sur l'épaule.</French>
<Polish>Zostałeś klepnięty po ramieniu</Polish> <Polish>Zostałeś klepnięty po ramieniu</Polish>
<Hungarian>Vállonveregettek</Hungarian> <Hungarian>Vállonveregettek</Hungarian>
<Czech>Někdo tě poklepal na rameno.</Czech> <Czech>Někdo tě poklepal na LEVÉ rameno</Czech>
<Russian>Вас похлопали по плечу</Russian> <Russian>Вас похлопали по плечу</Russian>
<Portuguese>Você foi tocado no ombro.</Portuguese> <Portuguese>Você foi tocado no ombro.</Portuguese>
<Italian>Ti è stato dato un colpetto sulla spalla</Italian> <Italian>Ti è stato dato un colpetto sulla spalla</Italian>
@ -515,7 +539,7 @@
<Spanish>Unirse al&lt;br/&gt;equipo rojo</Spanish> <Spanish>Unirse al&lt;br/&gt;equipo rojo</Spanish>
<French>Rejoindre&lt;br/&gt;Rouge</French> <French>Rejoindre&lt;br/&gt;Rouge</French>
<Polish>Dołącz do drużyny&lt;br/&gt;czerwonej</Polish> <Polish>Dołącz do drużyny&lt;br/&gt;czerwonej</Polish>
<Czech>Připojit do&lt;br/&gt;Červeného Týmu</Czech> <Czech>Připojit do&lt;br/&gt;Červeného týmu</Czech>
<Russian>Присоединиться&lt;br/&gt;к красной группе</Russian> <Russian>Присоединиться&lt;br/&gt;к красной группе</Russian>
<Portuguese>Unir-se à&lt;br/&gt;Equipe Vermelha</Portuguese> <Portuguese>Unir-se à&lt;br/&gt;Equipe Vermelha</Portuguese>
<Italian>Entra nella&lt;br/&gt;Squadra Rossa</Italian> <Italian>Entra nella&lt;br/&gt;Squadra Rossa</Italian>
@ -527,7 +551,7 @@
<Spanish>Unirse al&lt;br/&gt;equipo verde</Spanish> <Spanish>Unirse al&lt;br/&gt;equipo verde</Spanish>
<French>Rejoindre&lt;br/&gt;Verte</French> <French>Rejoindre&lt;br/&gt;Verte</French>
<Polish>Dołącz do&lt;br/&gt;drużyny zielonej</Polish> <Polish>Dołącz do&lt;br/&gt;drużyny zielonej</Polish>
<Czech>Připojit do&lt;br/&gt;Zeleného Týmu</Czech> <Czech>Připojit do&lt;br/&gt;Zeleného týmu</Czech>
<Russian>Присоединиться&lt;br/&gt;к зеленой группе</Russian> <Russian>Присоединиться&lt;br/&gt;к зеленой группе</Russian>
<Portuguese>Unir-se à&lt;br/&gt;Equipe Verde</Portuguese> <Portuguese>Unir-se à&lt;br/&gt;Equipe Verde</Portuguese>
<Italian>Entra nella&lt;br/&gt;Squadra Verde</Italian> <Italian>Entra nella&lt;br/&gt;Squadra Verde</Italian>
@ -539,7 +563,7 @@
<Spanish>Unirse al&lt;br/&gt;equipo azul</Spanish> <Spanish>Unirse al&lt;br/&gt;equipo azul</Spanish>
<French>Rejoindre&lt;br/&gt;Bleue</French> <French>Rejoindre&lt;br/&gt;Bleue</French>
<Polish>Dołącz do&lt;br/&gt;drużyny niebieskiej</Polish> <Polish>Dołącz do&lt;br/&gt;drużyny niebieskiej</Polish>
<Czech>Připojit do&lt;br/&gt;Modrého Týmu</Czech> <Czech>Připojit do&lt;br/&gt;Modrého týmu</Czech>
<Russian>Присоединиться&lt;br/&gt;к синей группе</Russian> <Russian>Присоединиться&lt;br/&gt;к синей группе</Russian>
<Portuguese>Unir-se à&lt;br/&gt;Equipe Azul</Portuguese> <Portuguese>Unir-se à&lt;br/&gt;Equipe Azul</Portuguese>
<Italian>Entra nella&lt;br/&gt;Squadra Blu</Italian> <Italian>Entra nella&lt;br/&gt;Squadra Blu</Italian>
@ -551,7 +575,7 @@
<Spanish>Unirse al&lt;br/&gt;equipo amarillo</Spanish> <Spanish>Unirse al&lt;br/&gt;equipo amarillo</Spanish>
<French>Rejoindre&lt;br/&gt;Jaune</French> <French>Rejoindre&lt;br/&gt;Jaune</French>
<Polish>Dołącz do&lt;br/&gt;drużyny żółtej</Polish> <Polish>Dołącz do&lt;br/&gt;drużyny żółtej</Polish>
<Czech>Připojit do&lt;br/&gt;Žlutého Týmu</Czech> <Czech>Připojit do&lt;br/&gt;Žlutého týmu</Czech>
<Russian>Присоединиться&lt;br/&gt;к желтой группе</Russian> <Russian>Присоединиться&lt;br/&gt;к желтой группе</Russian>
<Portuguese>Unir-se à&lt;br/&gt;Equipe Amarela</Portuguese> <Portuguese>Unir-se à&lt;br/&gt;Equipe Amarela</Portuguese>
<Italian>Entra nella&lt;br/&gt;Squadra Gialla</Italian> <Italian>Entra nella&lt;br/&gt;Squadra Gialla</Italian>
@ -563,7 +587,7 @@
<Spanish>Te has unido al equipo %1</Spanish> <Spanish>Te has unido al equipo %1</Spanish>
<French>Tu as rejoint l'équipe %1</French> <French>Tu as rejoint l'équipe %1</French>
<Polish>Dołączyłeś do drużyny %1</Polish> <Polish>Dołączyłeś do drużyny %1</Polish>
<Czech>Připojil ses do Týmu %1</Czech> <Czech>Připojil ses do %1 týmu</Czech>
<Russian>Вы присоединились к группе %1</Russian> <Russian>Вы присоединились к группе %1</Russian>
<Portuguese>Você uniu-se à Equipe %1</Portuguese> <Portuguese>Você uniu-se à Equipe %1</Portuguese>
<Italian>Sei entrato nella Squadra %1</Italian> <Italian>Sei entrato nella Squadra %1</Italian>
@ -662,6 +686,7 @@
</Key> </Key>
<Key ID="STR_ACE_Interaction_Interact"> <Key ID="STR_ACE_Interaction_Interact">
<English>Interact</English> <English>Interact</English>
<French>Interagir</French>
<German>Interagiere</German> <German>Interagiere</German>
<Czech>Interakce</Czech> <Czech>Interakce</Czech>
<Russian>Взаимодействовать</Russian> <Russian>Взаимодействовать</Russian>
@ -673,6 +698,9 @@
<German>Fahrzeuginsassen</German> <German>Fahrzeuginsassen</German>
<Spanish>Pasajeros</Spanish> <Spanish>Pasajeros</Spanish>
<Russian>Пассажиры</Russian> <Russian>Пассажиры</Russian>
<Czech>Pasažéři</Czech>
<Polish>Pasażerowie</Polish>
<French>Passagers</French>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

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

View File

@ -6,7 +6,8 @@ class CfgWeapons {
class launch_Titan_base : Launcher_Base_F { class launch_Titan_base : Launcher_Base_F {
weaponInfoType = "ACE_RscOptics_javelin"; weaponInfoType = "ACE_RscOptics_javelin";
modelOptics = PATHTOF(data\reticle_titan.p3d);
lockingTargetSound[] = {"",0,1}; lockingTargetSound[] = {"",0,1};
lockedTargetSound[] = {"",0,1}; lockedTargetSound[] = {"",0,1};
}; };

View File

@ -14,7 +14,7 @@ class RscInGameUI {
idd = 300; idd = 300;
controls[] = { "ACE_javelin_elements_group", "CA_Distance", "ACE_Targeting" }; //, "ACE_TargetingConstrains", "ACE_TargetingGate", "ACE_TargetingLines"}; controls[] = { "ACE_javelin_elements_group", "CA_Distance", "ACE_Targeting" }; //, "ACE_TargetingConstrains", "ACE_TargetingGate", "ACE_TargetingLines"};
onLoad = QUOTE(_this call FUNC(onOpticLoad)); 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 { class CA_Distance: RscOpticsValue {
idc = 151; idc = 151;
@ -45,13 +45,6 @@ class RscInGameUI {
height = 0.001; height = 0.001;
}; };
class Controls { class Controls {
class JavelinLocking : RscMapControl {
onDraw = QUOTE(_this call FUNC(onOpticDraw));
idc = -1;
w = 0;
h = 0;
};
class ACE_javelin_Day_mode_off: RscPicture { class ACE_javelin_Day_mode_off: RscPicture {
idc = 1001; idc = 1001;
x = "(SafezoneX+(SafezoneW -SafezoneH*3/4)/2)+ (0.03/4)*3*SafezoneH - SafezoneX"; x = "(SafezoneX+(SafezoneW -SafezoneH*3/4)/2)+ (0.03/4)*3*SafezoneH - SafezoneX";

View File

@ -1,3 +1,5 @@
#include "script_component.hpp" #include "script_component.hpp"
if (!hasInterface) exitWith {};
#include "initKeybinds.sqf" #include "initKeybinds.sqf"

Binary file not shown.

View File

@ -1,6 +1,6 @@
//#define DEBUG_MODE_FULL //#define DEBUG_MODE_FULL
#include "script_component.hpp" #include "script_component.hpp"
//TRACE_1("enter", _this); TRACE_1("enter", _this);
#define __TRACKINTERVAL 0 // how frequent the check should be. #define __TRACKINTERVAL 0 // how frequent the check should be.
#define __LOCKONTIME 3.0 // Lock on won't occur sooner #define __LOCKONTIME 3.0 // Lock on won't occur sooner
@ -10,7 +10,19 @@
#define __OffsetX ((ctrlPosition __JavelinIGUITargetingLineV) select 0) - 0.5 #define __OffsetX ((ctrlPosition __JavelinIGUITargetingLineV) select 0) - 0.5
#define __OffsetY ((ctrlPosition __JavelinIGUITargetingLineH) select 1) - 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 // Reset arguments if we havnt rendered in over a second
_args = uiNamespace getVariable[QGVAR(arguments), [] ]; _args = uiNamespace getVariable[QGVAR(arguments), [] ];
@ -21,6 +33,8 @@ if( (count _args) > 0) then {
}; };
}; };
TRACE_1("Running", "Running");
// Pull the arguments // Pull the arguments
_currentTarget = _args select 1; _currentTarget = _args select 1;
_runTime = _args select 2; _runTime = _args select 2;
@ -37,9 +51,6 @@ if ((velocity ACE_player) distance [0,0,0] > 0.5 && {cameraView == "GUNNER"} &&
// Refresh the firemode // Refresh the firemode
[] call FUNC(showFireMode); [] call FUNC(showFireMode);
// Only start locking on holding tab
if(!GVAR(isLockKeyDown)) exitWith { false };
_range = parseNumber (ctrlText __JavelinIGUIRangefinder); _range = parseNumber (ctrlText __JavelinIGUIRangefinder);
if (_range > 50 && {_range < 2500}) then { if (_range > 50 && {_range < 2500}) then {
@ -73,8 +84,10 @@ if (isNull _newTarget) then {
__JavelinIGUISeek ctrlSetTextColor __ColorGray; __JavelinIGUISeek ctrlSetTextColor __ColorGray;
__JavelinIGUINFOV ctrlSetTextColor __ColorGreen; __JavelinIGUINFOV ctrlSetTextColor __ColorGreen;
__JavelinIGUITargeting ctrlShow false;
__JavelinIGUITargetingGate ctrlShow false; __JavelinIGUITargetingGate ctrlShow false;
__JavelinIGUITargetingLines ctrlShow false; __JavelinIGUITargetingLines ctrlShow false;
__JavelinIGUITargetingConstraints ctrlShow false;
ACE_player setVariable ["ace_missileguidance_target",nil, 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];}; //if (ACE_player ammo "Javelin" > 0 || {ACE_player ammo "ACE_Javelin_Direct" > 0}) then {ACE_player setWeaponReloadingTime //[player, "Javelin", 0.2];};
} else { } else {
if (_newTarget distance ACE_player < 2500 if (_newTarget distance ACE_player < 2500
// && {(call CBA_fnc_getFoV) select 1 > 7} && {(call CBA_fnc_getFoV) select 1 > 9}
// && { (currentVisionMode ACE_player == 2)} && { (currentVisionMode ACE_player == 2)}
&& GVAR(isLockKeyDown)
) then { ) then {
// Lock on after 3 seconds // Lock on after 3 seconds
if(_currentTarget != _newTarget) then { if(_currentTarget != _newTarget) then {
@ -98,8 +112,9 @@ if (isNull _newTarget) then {
__JavelinIGUISeek ctrlSetTextColor __ColorGreen; __JavelinIGUISeek ctrlSetTextColor __ColorGreen;
__JavelinIGUINFOV ctrlSetTextColor __ColorNull; __JavelinIGUINFOV ctrlSetTextColor __ColorNull;
__JavelinIGUITargeting ctrlShow true; __JavelinIGUITargeting ctrlShow true;
__JavelinIGUITargetingConstrains ctrlShow true; __JavelinIGUITargetingConstrains ctrlShow false;
__JavelinIGUITargetingGate ctrlShow true; __JavelinIGUITargetingGate ctrlShow true;
__JavelinIGUITargetingLines ctrlShow true; __JavelinIGUITargetingLines ctrlShow true;
@ -187,10 +202,11 @@ if (isNull _newTarget) then {
} else { } else {
// Something is wrong with our seek // Something is wrong with our seek
_currentTarget = objNull; _currentTarget = objNull;
ACE_player setVariable["ace_missileguidance_target", nil, false];
__JavelinIGUISeek ctrlSetTextColor __ColorGray; __JavelinIGUISeek ctrlSetTextColor __ColorGray;
__JavelinIGUINFOV ctrlSetTextColor __ColorGray; __JavelinIGUINFOV ctrlSetTextColor __ColorGray;
__JavelinIGUITargetingConstrains ctrlShow false; __JavelinIGUITargeting ctrlShow false;
__JavelinIGUITargetingGate ctrlShow false; __JavelinIGUITargetingGate ctrlShow false;
__JavelinIGUITargetingLines ctrlShow false; __JavelinIGUITargetingLines ctrlShow false;

View File

@ -24,4 +24,10 @@ uiNameSpace setVariable [QGVAR(arguments),
0, // Lock Time 0, // Lock Time
0 // Sound timer 0 // Sound timer
] ]
]; ];
_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];
};

View File

@ -27,4 +27,4 @@
[ACE_player] call FUNC(cycleFireMode); [ACE_player] call FUNC(cycleFireMode);
false false
}, },
[15, [false, true, false]], false] call cba_fnc_addKeybind; //Shift+Tab Key [15, [false, true, false]], false] call cba_fnc_addKeybind; //Ctrl+Tab Key

View File

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

View File

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2015-04-10 -->
<Project name="ACE"> <Project name="ACE">
<Package name="Wind"> <Package name="Wind">
<Key ID="STR_ACE_Wind_ApproximateTemp"> <Key ID="STR_ACE_Wind_ApproximateTemp">
@ -30,7 +29,7 @@
<Spanish>Anemómetro balístico</Spanish> <Spanish>Anemómetro balístico</Spanish>
<French>Applied Ballistics Meter</French> <French>Applied Ballistics Meter</French>
<Polish>Urządzenie do monitorowania pogody</Polish> <Polish>Urządzenie do monitorowania pogody</Polish>
<Czech>Zařízení pro měření vítru</Czech> <Czech>Zařízení pro měření větru</Czech>
<Italian>Monitoraggio Balistico Attivo</Italian> <Italian>Monitoraggio Balistico Attivo</Italian>
<Hungarian>Applied Ballistics Meter</Hungarian> <Hungarian>Applied Ballistics Meter</Hungarian>
<Portuguese>Medidor Balístico Ativo</Portuguese> <Portuguese>Medidor Balístico Ativo</Portuguese>
@ -61,4 +60,4 @@
<Russian>Закрыть Kestrel</Russian> <Russian>Закрыть Kestrel</Russian>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -2,8 +2,32 @@ class CfgVehicles {
class All; class All;
class LaserTarget: 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 { class EventHandlers {
init = QUOTE(_this call FUNC(laser_init)); 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";
}; };
}; };

View File

@ -0,0 +1,8 @@
class CfgWeapons {
class Binocular;
class Laserdesignator : Binocular {
visionMode[] = {"Normal","NVG"};
};
};

View File

@ -0,0 +1 @@
// TODO: RscOptics_LaserDesignator for laser code designation

View File

@ -1,3 +1,4 @@
#include "script_component.hpp" #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);

View File

@ -6,15 +6,28 @@ PREP(shootRay);
PREP(shootCone); PREP(shootCone);
PREP(checkLos); PREP(checkLos);
PREP(findLaserDesignator);
PREP(findStrongestRay); PREP(findStrongestRay);
PREP(translateToModelSpace); PREP(translateToModelSpace);
PREP(translateToWeaponSpace); PREP(translateToWeaponSpace);
PREP(laser_init); PREP(seekerFindLaserSpot);
PREP(laserOn);
PREP(laserOff);
PREP(handleLaserOn);
PREP(handleLaserOff);
PREP(drawVisibleLaserTargets);
PREP(laser_init);
PREP(vanillaLaserSeekerHandler);
PREP(laserTargetPFH); PREP(laserTargetPFH);
ACE_LASERS = []; GVAR(VanillaLasers) = [];
ACE_DEFAULT_LASER_CODE = 1001;
// Laser default variables
ACE_DEFAULT_LASER_CODE = 1001;
ACE_DEFAULT_LASER_WAVELENGTH = 1550;
ACE_DEFAULT_LASER_BEAMSPREAD = 1;
GVAR(laserEmitters) = HASH_CREATE;

View File

@ -11,4 +11,5 @@ class CfgPatches {
}; };
#include "CfgEventhandlers.hpp" #include "CfgEventhandlers.hpp"
#include "CfgVehicles.hpp" #include "CfgVehicles.hpp"
#include "CfgWeapons.hpp"

View File

@ -0,0 +1 @@
// @TODO: This is to draw the actual LaserTarget positions to utilize for laser shooting.

View File

@ -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]

View File

@ -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);
};

View File

@ -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);

View File

@ -0,0 +1,16 @@
/*
* Author: Nou
* Turn a laser designator off.
*
* Arguments:
* 0: UUID (from laserOn) <string>
*
* Return value:
* None
*/
#include "script_component.hpp"
private ["_uuid"];
_uuid = _this select 0;
["laser_laserOff", [_uuid]] call EFUNC(common,globalEvent);

View File

@ -0,0 +1,23 @@
/*
* Author: Nou
* Turn a laser designator on.
*
* Arguments:
* 0: Emitter <object>
* 1: Owner <object>
* 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) <number>
* 4: Laser code <number>
* 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;

View File

@ -1,20 +1,25 @@
//#define DEBUG_MODE_FULL
#include "script_component.hpp" #include "script_component.hpp"
TRACE_1("enter", _this);
private["_args", "_laserTarget"]; private["_args", "_laserTarget"];
//TRACE_1("enter", _this); //TRACE_1("enter", _this);
_args = _this select 0; _args = _this select 0;
_laserTarget = _args 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; [(_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 #ifdef DEBUG_MODE_FULL
// Iconize the location of the actual laserTarget // 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"]; 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"];
{ {

View File

@ -1,25 +1,32 @@
//#define DEBUG_MODE_FULL
#include "script_component.hpp" #include "script_component.hpp"
PARAMS_1(_laserTarget);
TRACE_1("enter", _this); TRACE_1("enter", _this);
PARAMS_1(_laserTarget);
// Add the target to the global targets array // Add the target to the global targets array
// Everyone tracks them // Everyone tracks them
// Add the laser localized to the laser array, and give it the default localized code // 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 // 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 // Clean the lasers of any null objects while we are here
REM(ACE_LASERS, objNull); REM(GVAR(VanillaLasers), objNull);
if(!(local _laserTarget)) exitWith { }; if(!(local _laserTarget)) exitWith { };
// The target is local, so its on this client // The target is local, so its on this client
if(!isDedicated) then { if(!isDedicated) then {
_laserTarget setVariable ["ACE_LASERTARGET_SHOOTER", ACE_player, true]; // @TODO: Get ownership variables and set them on the vehicle
[FUNC(laserTargetPFH), 0, [_laserTarget, ACE_player]] call cba_fnc_addPerFrameHandler; _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 { } else {
// server side ownership of laser // server side ownership of laser
//_laserTarget setVariable ["ACE_LASERTARGET_SHOOTER", nil, false]; _laserTarget setVariable [QGVAR(owner), nil, true];
}; };

View File

@ -32,7 +32,5 @@ if (_d != 0) then {
}; };
/* Inverse of step 1 */ /* Inverse of step 1 */
_q1 set[0, (_q2 select 0) + (_p1 select 0)]; _q1 = _q2 vectorAdd _p1;
_q1 set[1, (_q2 select 1) + (_p1 select 1)];
_q1 set[2, (_q2 select 2) + (_p1 select 2)];
_q1; _q1;

View File

@ -5,19 +5,12 @@ _p = _this select 0;
_p1 = _this select 1; _p1 = _this select 1;
_p2 = _this select 2; _p2 = _this select 2;
_q1 = [];
_q2 = []; _q2 = [];
_u = [];
/* Step 1 */ /* Step 1 */
_q1 set[0, (_p select 0) - (_p1 select 0)]; _q1 = _p vectorDiff _p1;
_q1 set[1, (_p select 1) - (_p1 select 1)]; _u = _p2 vectorDiff _p1;
_q1 set[2, (_p select 2) - (_p1 select 2)]; _u = vectorNormalized _u;
_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;
_d = sqrt((_u select 1)*(_u select 1) + (_u select 2)*(_u select 2)); _d = sqrt((_u select 1)*(_u select 1) + (_u select 2)*(_u select 2));
/* Step 2 */ /* Step 2 */

View File

@ -0,0 +1,143 @@
/*
* Author: Nou
* Turn a laser designator on.
*
* Arguments:
* 0: Position of seeker (ASL) <position>
* 1: Seeker wavelength sensitivity range, [1550,1550] is common eye safe. <array>
* 2: Seeker laser code. <number>
*
* 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];

View File

@ -1,8 +1,17 @@
#include "script_component.hpp" #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; _divergence = 0.3;
_pos = _this select 0; _pos = _this select 0;
_vec = _this select 1; _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; _longestReturn = -1000000000;
_shortestReturn = 1000000000; _shortestReturn = 1000000000;
_resultPositions = []; _resultPositions = [];
@ -10,7 +19,7 @@ _p1 = [0,0,0];
_p2 = +_vec; _p2 = +_vec;
_p = (_vec call CBA_fnc_vect2polar); _p = (_vec call CBA_fnc_vect2polar);
_v = [(_p select 0), (_p select 1), (_p select 2)+90] call CBA_fnc_polar2vect; _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); _vecRotateMap = [_cp, _p1, _p2] call FUNC(rotateVectLineGetMap);
@ -24,28 +33,21 @@ if(!isNil "_resultPos") then {
if(_distance > _longestReturn) then { if(_distance > _longestReturn) then {
_longestReturn = _distance; _longestReturn = _distance;
}; };
_resultPositions set[(count _resultPositions), _result]; _resultPositions pushBack _result;
#ifdef DEBUG_MODE_FULL #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 #endif
}; };
_count = 8;
_pos2 = [
(_pos select 0)+((_vec select 0)*1000), _pos2 = _pos vectorAdd (_vec vectorMultiply 1000);
(_pos select 1)+((_vec select 1)*1000),
(_pos select 2)+((_vec select 2)*1000)
];
{ {
for "_i" from 0 to ceil(_count*_x) do { for "_i" from 0 to ceil(_count*_x) do {
_radOffset = random 360; _radOffset = random 360;
_offset = [_vecRotateMap, (((360/_count)*_i)+_radOffset) mod 360] call FUNC(rotateVectLine); _offset = [_vecRotateMap, (((360/_count)*_i)+_radOffset) mod 360] call FUNC(rotateVectLine);
_offsetPos = [ _offsetPos = _pos2 vectorAdd (_offset vectorMultiply (_divergence*_x));
(_pos2 select 0)+((_offset select 0)*(_divergence*_x)), _offsetVector = _pos vectorFromTo _offsetPos;
(_pos2 select 1)+((_offset select 1)*(_divergence*_x)),
(_pos2 select 2)+((_offset select 2)*(_divergence*_x))
];
_offsetVector = [_pos, _offsetPos] call BIS_fnc_vectorFromXtoY;
_result = [_pos, _offsetVector] call FUNC(shootRay); _result = [_pos, _offsetVector] call FUNC(shootRay);
_resultPos = _result select 0; _resultPos = _result select 0;
if(!isNil "_resultPos") then { if(!isNil "_resultPos") then {
@ -56,9 +58,10 @@ _pos2 = [
if(_distance > _longestReturn) then { if(_distance > _longestReturn) then {
_longestReturn = _distance; _longestReturn = _distance;
}; };
_resultPositions set[(count _resultPositions), _result]; _resultPositions pushBack _result;
#ifdef DEBUG_MODE_FULL #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 #endif
}; };
}; };

View File

@ -11,13 +11,8 @@ _lastPos = +_pos;
{ {
scopeName "mainSearch"; scopeName "mainSearch";
for "_i" from 1 to 10 do { for "_i" from 1 to 10 do {
_nextPos = [ _nextPos = _lastPos vectorAdd (_vec vectorMultiply _x);
(_lastPos select 0)+((_vec select 0)*_x), if(terrainIntersectASL [_lastPos, _nextPos] || {lineIntersects [_lastPos, _nextPos]}) then {
(_lastPos select 1)+((_vec select 1)*_x),
(_lastPos select 2)+((_vec select 2)*_x)
];
if(lineIntersects [_lastPos, _nextPos] || terrainIntersectASL [_lastPos, _nextPos]) then {
_resultPos = _lastPos; _resultPos = _lastPos;
breakTo "mainSearch"; breakTo "mainSearch";
} else { } else {
@ -25,6 +20,5 @@ _lastPos = +_pos;
_lastPos = _nextPos; _lastPos = _nextPos;
}; };
}; };
} forEach _fidelity; } forEach _fidelity;
[_resultPos, _distance]; [_resultPos, _distance];

View File

@ -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]

View File

@ -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
{
};
*/

View File

@ -8,12 +8,6 @@ class CfgVehicles {
class Turrets { class Turrets {
class MainTurret; class MainTurret;
}; };
// TODO: move these to a different HUD addon
// commanderCanSee = 2+32;
// gunnerCanSee = 2+32;
// driverCanSee = 2+32;
}; };
class Helicopter_Base_F: Helicopter {}; class Helicopter_Base_F: Helicopter {};

View File

@ -5,7 +5,8 @@ PREP(laserHudDesignateOn);
PREP(laserHudDesignateOff); PREP(laserHudDesignateOff);
PREP(unitTurretHasDesignator); PREP(unitTurretHasDesignator);
GVAR(laser) = nil; PREP(findLaserSource);
GVAR(active) = false; GVAR(active) = false;
FUNC(getPosASL) = {visiblePositionASL (_this select 0)}; FUNC(getPosASL) = {visiblePositionASL (_this select 0)};

View File

@ -10,8 +10,6 @@ class CfgPatches {
}; };
}; };
#include "CfgUI.hpp"
#include "CfgEventhandlers.hpp" #include "CfgEventhandlers.hpp"
#include "CfgWeapons.hpp" #include "CfgWeapons.hpp"
#include "CfgVehicles.hpp" #include "CfgVehicles.hpp"

View File

@ -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]

View File

@ -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" #include "script_component.hpp"
if( (count _this) > 2) then { if( (count _this) > 2) then {
EXPLODE_3_PVT(_this,_vehicle,_shooter,_laserTarget); EXPLODE_3_PVT(_this,_shooter,_laserUuid, _localLaserTarget);
// We got the optional vehicle list, clear the parameters
_vehicle setVariable[QGVAR(currentTarget), [], true]; [_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; GVAR(active) = false;
true true

View File

@ -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" #include "script_component.hpp"
TRACE_1("enter", _this); TRACE_1("enter", _this);
@ -6,102 +16,74 @@ TRACE_1("enter", _this);
#define FCS_UPDATE_DELAY 1 #define FCS_UPDATE_DELAY 1
FUNC(laserHudDesignatePFH) = { 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; _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 { _shooter = _args select 0;
[_vehicle, _shooter, _laserTarget] call FUNC(laserHudDesignateOff); _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 { if(!([_shooter] call FUNC(unitTurretHasDesignator)) ) exitWith {
[_vehicle, _shooter, _laserTarget] call FUNC(laserHudDesignateOff); _args call FUNC(laserHudDesignateOff);
}; };
if( (count _args) < 3) then { if( (count _args) < 4) then {
_args set[2, diag_tickTime + FCS_UPDATE_DELAY]; _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; _gunnerInfo = [_vehicle, (currentWeapon _vehicle)] call CBA_fnc_getFirer;
_weapon = currentWeapon _vehicle;
// Retrieve the gunner and turret memory point information
_gunnerInfo = [_vehicle, _weapon] call CBA_fnc_getFirer;
_turretInfo = [_vehicle, _gunnerInfo select 1] call EFUNC(common,getTurretDirection); _turretInfo = [_vehicle, _gunnerInfo select 1] call EFUNC(common,getTurretDirection);
_povPos = _turretInfo select 0; _povPos = _turretInfo select 0;
_povDir = _turretInfo select 1;
_targetInfo = _vehicle getVariable[QGVAR(currentTarget), [] ]; _laserCode = (vehicle ACE_player) getVariable[QGVAR(currentCode), ACE_DEFAULT_LASER_CODE];
if( (count _targetInfo) > 0) then { _waveLength = (vehicle ACE_player) getVariable[QGVAR(currentWaveLength), ACE_DEFAULT_LASER_WAVELENGTH];
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];
};
_result = [_povPos, _povDir] call EFUNC(laser,shootCone); _laserResult = [_povPos, [_waveLength,_waveLength], _laserCode] call EFUNC(laser,seekerFindLaserSpot);
if((count _result) > 0) then { _laserResultPosition = _laserResult select 0;
_resultPositions = _result select 2; TRACE_1("Search", _laserResult);
if((count _resultPositions) > 0) then { if((count _laserResult) > 0) then {
_strongestResultPos = [_resultPositions, _povPos] call EFUNC(laser,findStrongestRay); // @TODO: Nou gets to field all tickets about missing lasers.
//_localLaserTarget setPosASL _laserResultPosition;
// 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(diag_tickTime > _forceUpdateTime) then { if(diag_tickTime > _forceUpdateTime) then {
TRACE_1("FCS Update", ""); ["ace_fcs_forceUpdate", []] call ace_common_fnc_localEvent;
["ace_fcs_forceUpdate", []] call ace_common_fnc_localEvent; _args set[3, diag_tickTime + FCS_UPDATE_DELAY];
};
//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
};
}; };
_this set[0, _args]; _this set[0, _args];
}; };
private ["_laserTarget", "_handle", "_vehicle"]; private ["_laserTarget", "_handle", "_vehicle", "_laserUuid", "_waveLength", "_beamSpread", "_laserCode"];
if(isNil QGVAR(laser)) then { if(!GVAR(active)) then {
_laserTarget = "LaserTargetW" createVehicle (getpos ACE_player);
GVAR(active) = true; GVAR(active) = true;
_handle = [FUNC(laserHudDesignatePFH), 0.1, [_laserTarget, ACE_player]] call cba_fnc_addPerFrameHandler; TRACE_1("Activating laser", "");
_laserTarget setVariable ["ACE_PFH_HANDLE", _handle, false];
// Clear the vehicle parameters // Get the self-designation variables, or use defaults
_vehicle setVariable[QGVAR(currentTarget), [], true]; _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 { } else {
[] call FUNC(laserHudDesignateOff); [] call FUNC(laserHudDesignateOff);
[] call FUNC(laserHudDesignateOn); [] call FUNC(laserHudDesignateOn);

View File

@ -6,12 +6,18 @@
<German>Lasermarkierer&lt;br/&gt;an</German> <German>Lasermarkierer&lt;br/&gt;an</German>
<Spanish>Laser&lt;br/&gt;Designador encendido</Spanish> <Spanish>Laser&lt;br/&gt;Designador encendido</Spanish>
<Russian>ЛЦУ&lt;br/&gt;ВКЛ</Russian> <Russian>ЛЦУ&lt;br/&gt;ВКЛ</Russian>
<Czech>Laserový&lt;br/&gt;značkovač zapnut</Czech>
<Polish>Desygnator&lt;br/&gt;laserowy wł.</Polish>
<French>Désignateur&lt;br/&gt;Laser Allumé</French>
</Key> </Key>
<Key ID="STR_ACE_Laser_SelfDesignate_DesignatorOff"> <Key ID="STR_ACE_Laser_SelfDesignate_DesignatorOff">
<English>Laser&lt;br/&gt;Designator Off</English> <English>Laser&lt;br/&gt;Designator Off</English>
<German>Lasermarkierer&lt;br/&gt;aus</German> <German>Lasermarkierer&lt;br/&gt;aus</German>
<Spanish>Laser&lt;br/&gt;Designador apagado</Spanish> <Spanish>Laser&lt;br/&gt;Designador apagado</Spanish>
<Russian>ЛЦУ&lt;br/&gt;ВЫКЛ</Russian> <Russian>ЛЦУ&lt;br/&gt;ВЫКЛ</Russian>
<Czech>Laserový&lt;br/&gt;značkovat vypnut</Czech>
<Polish>Desygnator&lt;br/&gt;laserowy wył.</Polish>
<French>Désignateur&lt;br/&gt;Laser Éteint</French>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

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

View File

@ -1,78 +1,78 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2015-04-10 --> <!-- Edited with tabler. -->
<Project name="ACE"> <Project name="ACE">
<Package name="logistics_uavbattery"> <Package name="logistics_uavbattery">
<Key ID="STR_ACE_logistics_uavbattery_Full"> <Key ID="STR_ACE_logistics_uavbattery_Full">
<English>Drone is full</English> <English>Drone is full</English>
<German>Drohne ist voll</German> <German>Drohne ist voll</German>
<Spanish>El VANT está lleno</Spanish> <Spanish>El VANT está lleno</Spanish>
<French>L'UAV est chargé</French> <French>L'UAV est chargé</French>
<Polish>Dron jest naładowany</Polish> <Polish>Dron jest naładowany</Polish>
<Hungarian>A drón fel van töltve</Hungarian> <Hungarian>A drón fel van töltve</Hungarian>
<Czech>Dron je nabitý</Czech> <Czech>Dron je nabitý</Czech>
<Portuguese>O VANT está cheio</Portuguese> <Portuguese>O VANT está cheio</Portuguese>
<Italian>Il drone è pieno</Italian> <Italian>Il drone è pieno</Italian>
<Russian>БПЛА заполнен</Russian> <Russian>БПЛА заполнен</Russian>
</Key> </Key>
<Key ID="STR_ACE_logistics_uavbattery_NoBattery"> <Key ID="STR_ACE_logistics_uavbattery_NoBattery">
<English>You need a UAV Battery</English> <English>You need a UAV Battery</English>
<German>Du brauchst eine UAV-Batterie</German> <German>Du brauchst eine UAV-Batterie</German>
<Spanish>Necesitas una batería para VANT</Spanish> <Spanish>Necesitas una batería para VANT</Spanish>
<French>Pas de batterie UAV</French> <French>Pas de batterie UAV</French>
<Polish>Potrzebujesz baterii UAV</Polish> <Polish>Potrzebujesz baterii UAV</Polish>
<Hungarian>Szükséged van egy UAV akkumulátorra</Hungarian> <Hungarian>Szükséged van egy UAV akkumulátorra</Hungarian>
<Czech>Potřebuješ UAV-Baterii</Czech> <Czech>Potřebuješ UAV baterii</Czech>
<Portuguese>Você precisa de uma Bateria para VANT</Portuguese> <Portuguese>Você precisa de uma Bateria para VANT</Portuguese>
<Italian>Hai bisogno di una Batteria UAV</Italian> <Italian>Hai bisogno di una Batteria UAV</Italian>
<Russian>Требуется аккумулятор для БПЛА</Russian> <Russian>Требуется аккумулятор для БПЛА</Russian>
</Key> </Key>
<Key ID="STR_ACE_logistics_uavbattery_Recharge"> <Key ID="STR_ACE_logistics_uavbattery_Recharge">
<English>Recharge</English> <English>Recharge</English>
<German>Aufladen</German> <German>Aufladen</German>
<Spanish>Recargar</Spanish> <Spanish>Recargar</Spanish>
<French>Recharger</French> <French>Recharger</French>
<Polish>Naładuj</Polish> <Polish>Naładuj</Polish>
<Hungarian>Feltöltés</Hungarian> <Hungarian>Feltöltés</Hungarian>
<Czech>Dobít</Czech> <Czech>Dobít</Czech>
<Portuguese>Recarregar</Portuguese> <Portuguese>Recarregar</Portuguese>
<Italian>Ricarica</Italian> <Italian>Ricarica</Italian>
<Russian>Зарядить</Russian> <Russian>Зарядить</Russian>
</Key> </Key>
<Key ID="STR_ACE_logistics_uavbattery_Battery_Name"> <Key ID="STR_ACE_logistics_uavbattery_Battery_Name">
<English>UAV Battery</English> <English>UAV Battery</English>
<German>UAV-Batterie</German> <German>UAV-Batterie</German>
<Spanish>Batería para VANT</Spanish> <Spanish>Batería para VANT</Spanish>
<French>Batterie UAV</French> <French>Batterie UAV</French>
<Polish>Bateria UAV</Polish> <Polish>Bateria UAV</Polish>
<Hungarian>UAV akkumulátor</Hungarian> <Hungarian>UAV akkumulátor</Hungarian>
<Czech>UAV-Baterie</Czech> <Czech>UAV baterie</Czech>
<Portuguese>Bateria para VANT</Portuguese> <Portuguese>Bateria para VANT</Portuguese>
<Italian>Batteria UAV</Italian> <Italian>Batteria UAV</Italian>
<Russian>Аккумулятор БПЛА</Russian> <Russian>Аккумулятор БПЛА</Russian>
</Key> </Key>
<Key ID="STR_ACE_logistics_uavbattery_Battery_Description"> <Key ID="STR_ACE_logistics_uavbattery_Battery_Description">
<English>Used to refuel Carried UAV's</English> <English>Used to refuel Carried UAV's</English>
<German>Verwendet zum Aufladen von tragbaren UAV's</German> <German>Verwendet zum Aufladen von tragbaren UAV's</German>
<Spanish>Usada para reabastecer el VANT</Spanish> <Spanish>Usada para reabastecer el VANT</Spanish>
<French>Utilisée pour recharger l'UAV</French> <French>Utilisée pour recharger l'UAV</French>
<Polish>Używana do naładowania UAV</Polish> <Polish>Używana do naładowania baterii przenośnego UAV</Polish>
<Hungarian>Hordozható UAV-ok működéséhez való akkumulátor</Hungarian> <Hungarian>Hordozható UAV-ok működéséhez való akkumulátor</Hungarian>
<Czech>Používané k dobíjení UAV</Czech> <Czech>Používané k dobíjení UAV</Czech>
<Portuguese>Usada para reabastecer VANT</Portuguese> <Portuguese>Usada para reabastecer VANT</Portuguese>
<Italian>Usata per ricaricare la Batteria dell'UAV</Italian> <Italian>Usata per ricaricare la Batteria dell'UAV</Italian>
<Russian>Используется для зарядки БПЛА</Russian> <Russian>Используется для зарядки БПЛА</Russian>
</Key> </Key>
<Key ID="STR_ACE_logistics_uavbattery_Battery_Recharge"> <Key ID="STR_ACE_logistics_uavbattery_Battery_Recharge">
<English>Recharging ...</English> <English>Recharging ...</English>
<German>Aufladen ...</German> <German>Aufladen ...</German>
<Spanish>Recargando ...</Spanish> <Spanish>Recargando ...</Spanish>
<French>Rechargement ...</French> <French>Rechargement ...</French>
<Polish>Ładowanie ...</Polish> <Polish>Ładowanie ...</Polish>
<Hungarian>Akku feltöltése ...</Hungarian> <Hungarian>Akku feltöltése ...</Hungarian>
<Czech>Dobíjení ...</Czech> <Czech>Dobíjení ...</Czech>
<Portuguese>Recarregando ...</Portuguese> <Portuguese>Recarregando ...</Portuguese>
<Italian>In ricarica ...</Italian> <Italian>In ricarica ...</Italian>
<Russian>Заряжается ...</Russian> <Russian>Заряжается ...</Russian>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -1,53 +1,60 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler. -->
<Project name="ACE"> <Project name="ACE">
<Package name="Wirecutter"> <Package name="Wirecutter">
<Key ID="STR_ACE_logistics_wirecutter_wirecutterName"> <Key ID="STR_ACE_logistics_wirecutter_wirecutterName">
<English>Wirecutter</English> <English>Wirecutter</English>
<German>Drahtschneider</German> <French>Coupe clôture</French>
<Spanish>Cortador de cables</Spanish> <German>Drahtschneider</German>
<Russian>Клещи-кусачки</Russian> <Spanish>Cortador de cables</Spanish>
</Key> <Russian>Клещи-кусачки</Russian>
<Key ID="STR_ACE_logistics_wirecutter_wirecutterDescription"> <Czech>Štípací kleště</Czech>
<English>Wirecutter</English> <Polish>Nożyce do cięcia drutu</Polish>
<German>Schneidet Draht.</German> </Key>
<Spanish>Cortador de cables</Spanish> <Key ID="STR_ACE_logistics_wirecutter_wirecutterDescription">
<Russian>Позволяют быстро перекусывать сеточные конструкции.</Russian> <English>Wirecutter</English>
</Key> <German>Schneidet Draht.</German>
<Key ID="STR_ACE_logistics_wirecutter_CutFence"> <Spanish>Cortador de cables</Spanish>
<English>Cut Fence</English> <Russian>Позволяют быстро перекусывать сеточные конструкции.</Russian>
<German>Zaun schneiden</German> <Czech>Štípačky</Czech>
<Spanish>Cortar alambrado</Spanish> <Polish>Służą do cięcia drutu i płotów</Polish>
<Polish>Przetnij płot</Polish> <French>Coupe clôture</French>
<Czech>Přestřihnout plot</Czech> </Key>
<French>Cisailler Clôture</French> <Key ID="STR_ACE_logistics_wirecutter_CutFence">
<Portuguese>Cortar Cerca</Portuguese> <English>Cut Fence</English>
<Italian>Taglia</Italian> <German>Zaun schneiden</German>
<Hungarian>Drótkerítés átvágása</Hungarian> <Spanish>Cortar alambrado</Spanish>
<Russian>Разрезать забор</Russian> <Polish>Przetnij płot</Polish>
</Key> <Czech>Přestřihnout plot</Czech>
<Key ID="STR_ACE_logistics_wirecutter_CuttingFence"> <French>Cisailler Clôture</French>
<English>Cutting Fences / Wires ...</English> <Portuguese>Cortar Cerca</Portuguese>
<German>Zaun / Draht schneiden ...</German> <Italian>Taglia</Italian>
<Spanish>Cortando alambrado / cables ...</Spanish> <Hungarian>Drótkerítés átvágása</Hungarian>
<Polish>Przecinanie płotu / drutów ...</Polish> <Russian>Разрезать забор</Russian>
<Czech>Přestřihnout plot / dráty ...</Czech> </Key>
<French>Cisaille l'obstacle ...</French> <Key ID="STR_ACE_logistics_wirecutter_CuttingFence">
<Portuguese>Cortando Cerca / Arame ...</Portuguese> <English>Cutting Fences / Wires ...</English>
<Italian>Sto tagliando ...</Italian> <German>Zaun / Draht schneiden ...</German>
<Hungarian>Drótok elvágása ...</Hungarian> <Spanish>Cortando alambrado / cables ...</Spanish>
<Russian>Разрезаем забор / провода ...</Russian> <Polish>Przecinanie płotu / drutów ...</Polish>
</Key> <Czech>Přestřihnout plot / dráty ...</Czech>
<Key ID="STR_ACE_logistics_wirecutter_FenceCut"> <French>Cisaille l'obstacle ...</French>
<English>Fence cut</English> <Portuguese>Cortando Cerca / Arame ...</Portuguese>
<German>Zaun geschnitten</German> <Italian>Sto tagliando ...</Italian>
<Spanish>Alambrado cortado</Spanish> <Hungarian>Drótok elvágása ...</Hungarian>
<Polish>Płot przecięty</Polish> <Russian>Разрезаем забор / провода ...</Russian>
<Czech>Plot přestřižen</Czech> </Key>
<French>Clôture cisaillée</French> <Key ID="STR_ACE_logistics_wirecutter_FenceCut">
<Portuguese>Cerca cortada</Portuguese> <English>Fence cut</English>
<Italian>Fatto!</Italian> <German>Zaun geschnitten</German>
<Hungarian>Drótkerítés átvágva</Hungarian> <Spanish>Alambrado cortado</Spanish>
<Russian>Забор разрезан</Russian> <Polish>Płot przecięty</Polish>
</Key> <Czech>Plot přestřižen</Czech>
</Package> <French>Clôture cisaillée</French>
</Project> <Portuguese>Cerca cortada</Portuguese>
<Italian>Fatto!</Italian>
<Hungarian>Drótkerítés átvágva</Hungarian>
<Russian>Забор разрезан</Russian>
</Key>
</Package>
</Project>

View File

@ -1,95 +1,105 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler. -->
<Project name="ACE"> <Project name="ACE">
<Package name="MagazineRepack"> <Package name="MagazineRepack">
<Key ID="STR_ACE_MagazineRepack_RepackMagazines"> <Key ID="STR_ACE_MagazineRepack_RepackMagazines">
<English>Repack&lt;br/&gt;Magazines</English> <English>Repack&lt;br/&gt;Magazines</English>
<German>Magazine&lt;br/&gt;umpacken</German> <German>Magazine&lt;br/&gt;umpacken</German>
<Spanish>Reorganizar&lt;br/&gt;cargadores</Spanish> <Spanish>Reorganizar&lt;br/&gt;cargadores</Spanish>
<French>Réorganiser&lt;br/&gt;chargeurs</French> <French>Réorganiser&lt;br/&gt;chargeurs</French>
<Polish>Przepakuj&lt;br/&gt;magazynki</Polish> <Polish>Przepakuj&lt;br/&gt;magazynki</Polish>
<Czech>Přepáskovat&lt;br/&gt;Zásobníky</Czech> <Czech>Přepáskovat&lt;br/&gt;Zásobníky</Czech>
<Italian>Ricarica&lt;br/&gt;Caricatori</Italian> <Italian>Ricarica&lt;br/&gt;Caricatori</Italian>
<Portuguese>Reorganizar&lt;br/&gt;Carregadores</Portuguese> <Portuguese>Reorganizar&lt;br/&gt;Carregadores</Portuguese>
<Hungarian>Újratárazás&lt;br/&gt;</Hungarian> <Hungarian>Újratárazás&lt;br/&gt;</Hungarian>
<Russian>Перепаковать&lt;br/&gt;магазины</Russian> <Russian>Перепаковать&lt;br/&gt;магазины</Russian>
</Key> </Key>
<Key ID="STR_ACE_MagazineRepack_SelectMagazineMenu"> <Key ID="STR_ACE_MagazineRepack_SelectMagazineMenu">
<English>Select Magazine Menu</English> <English>Select Magazine Menu</English>
<German>Magazinauswahlmenü</German> <German>Magazinauswahlmenü</German>
<Spanish>Menú de selección de cargador</Spanish> <Spanish>Menú de selección de cargador</Spanish>
<French>Sélectionner menu des chargeurs</French> <French>Sélectionner menu des chargeurs</French>
<Polish>Menu wyboru magazynków</Polish> <Polish>Menu wyboru magazynków</Polish>
<Czech>Zvolit Menu Zásobníků</Czech> <Czech>Zvolit Menu zásobníků</Czech>
<Italian>Seleziona Menù di Ricarica</Italian> <Italian>Seleziona Menù di Ricarica</Italian>
<Portuguese>Menu de Seleção de Carregador</Portuguese> <Portuguese>Menu de Seleção de Carregador</Portuguese>
<Hungarian>Fegyvertár menü kiválasztás</Hungarian> <Hungarian>Fegyvertár menü kiválasztás</Hungarian>
<Russian>Меню выбора магазинов</Russian> <Russian>Меню выбора магазинов</Russian>
</Key> </Key>
<Key ID="STR_ACE_MagazineRepack_SelectMagazine"> <Key ID="STR_ACE_MagazineRepack_SelectMagazine">
<English>Select Mag</English> <English>Select Mag</English>
<German>Magazin auswählen</German> <German>Magazin auswählen</German>
<Spanish>Seleccionar cargador</Spanish> <Spanish>Seleccionar cargador</Spanish>
<French>Sélectionner chargeur</French> <French>Sélectionner chargeur</French>
<Polish>Wybierz magazynek</Polish> <Polish>Wybierz magazynek</Polish>
<Czech>Zvolit Zásobník</Czech> <Czech>Zvolit zásobník</Czech>
<Italian>Seleziona Caricatore</Italian> <Italian>Seleziona Caricatore</Italian>
<Portuguese>Selecionar Carregador</Portuguese> <Portuguese>Selecionar Carregador</Portuguese>
<Hungarian>Tár kiválasztása</Hungarian> <Hungarian>Tár kiválasztása</Hungarian>
<Russian>Выбрать магазин</Russian> <Russian>Выбрать магазин</Russian>
</Key> </Key>
<Key ID="STR_ACE_MagazineRepack_RepackingMagazine"> <Key ID="STR_ACE_MagazineRepack_RepackingMagazine">
<English>Repacking Magazines ...</English> <English>Repacking Magazines ...</English>
<German>Magazine umpacken ...</German> <German>Magazine umpacken ...</German>
<Spanish>Reorganizando cargadores ...</Spanish> <Spanish>Reorganizando cargadores ...</Spanish>
<French>Réorganisation des chargeurs ...</French> <French>Réorganisation des chargeurs ...</French>
<Polish>Przepakowywanie magazynków ...</Polish> <Polish>Przepakowywanie magazynków ...</Polish>
<Czech>Páskuji Zásobníky ...</Czech> <Czech>Páskuji zásobníky ...</Czech>
<Italian>Sto ricaricando le munizioni ...</Italian> <Italian>Sto ricaricando le munizioni ...</Italian>
<Portuguese>Reorganizando Carregadores ...</Portuguese> <Portuguese>Reorganizando Carregadores ...</Portuguese>
<Hungarian>Újratárazás ...</Hungarian> <Hungarian>Újratárazás ...</Hungarian>
<Russian>Перепаковка магазинов ...</Russian> <Russian>Перепаковка магазинов ...</Russian>
</Key> </Key>
<Key ID="STR_ACE_MagazineRepack_RepackedMagazines"> <Key ID="STR_ACE_MagazineRepack_RepackedMagazines">
<English>Repacked Magazines</English> <English>Repacked Magazines</English>
<German>Magazine umgepackt</German> <German>Magazine umgepackt</German>
<Spanish>Cargadores reorganizados</Spanish> <Spanish>Cargadores reorganizados</Spanish>
<French>Chargeurs réorganisés</French> <French>Chargeurs réorganisés</French>
<Polish>Magazynki przepakowane</Polish> <Polish>Magazynki przepakowane</Polish>
<Czech>Přepáskované Zásobníky</Czech> <Czech>Přepáskované zásobníky</Czech>
<Italian>Caricatore ricaricato</Italian> <Italian>Caricatore ricaricato</Italian>
<Portuguese>Carregadores Reorganizados</Portuguese> <Portuguese>Carregadores Reorganizados</Portuguese>
<Hungarian>Újratárazott tárak</Hungarian> <Hungarian>Újratárazott tárak</Hungarian>
<Russian>Магазины перепакованы</Russian> <Russian>Магазины перепакованы</Russian>
</Key> </Key>
<Key ID="STR_ACE_MagazineRepack_RepackedMagazinesDetail"> <Key ID="STR_ACE_MagazineRepack_RepackedMagazinesDetail">
<English>%1 full mag(s) and %2 extra round(s)</English> <English>%1 full mag(s) and %2 extra round(s)</English>
<German>%1 volle(s) Magazin(e) und %2 übrig gebliebene Patrone(n)</German> <German>%1 volle(s) Magazin(e) und %2 übrig gebliebene Patrone(n)</German>
<Spanish>%1 cargador(es) completo(s) y %2 bala(s) extra(s)</Spanish> <Spanish>%1 cargador(es) completo(s) y %2 bala(s) extra(s)</Spanish>
<French>%1 chargeur(s) plein(s) et %2 cartouche(s) en rab</French> <French>%1 chargeur(s) plein(s) et %2 cartouche(s) en rab</French>
<Polish>%1 pełnych magazynków i %2 dodatkowych naboi</Polish> <Polish>Pełnych magazynków: %1.&lt;br /&gt; Dodatkowych naboi: %2.</Polish>
<Czech>%1 plný zásobník(y) a %2 munice navíc</Czech> <Czech>%1 plný zásobník(y) a %2 munice navíc</Czech>
<Italian>%1 caricatore/i pieno e %2 munizioni extra</Italian> <Italian>%1 caricatore/i pieno e %2 munizioni extra</Italian>
<Portuguese>%1 carregador(es) cheio(s) e %2 disparo(s) a mais</Portuguese> <Portuguese>%1 carregador(es) cheio(s) e %2 disparo(s) a mais</Portuguese>
<Hungarian>%1 tejles tár és %2 extra lőszer.</Hungarian> <Hungarian>%1 tejles tár és %2 extra lőszer.</Hungarian>
<Russian>%1 полных магазина(ов) и %2 патрона(ов)</Russian> <Russian>%1 полных магазина(ов) и %2 патрона(ов)</Russian>
</Key> </Key>
<Key ID="STR_ACE_MagazineRepack_RepackComplete"> <Key ID="STR_ACE_MagazineRepack_RepackComplete">
<English>Repacking Finished</English> <English>Repacking Finished</English>
<German>Wiederverpacken Fertig</German> <French>Réorganisation terminé</French>
<Spanish>Reembalaje finalizado</Spanish> <German>Wiederverpacken Fertig</German>
<Russian>Перепаковка завершена</Russian> <Spanish>Reembalaje finalizado</Spanish>
</Key> <Russian>Перепаковка завершена</Russian>
<Key ID="STR_ACE_MagazineRepack_RepackInterrupted"> <Czech>Páskování dokončeno</Czech>
<English>Repacking Interrupted</English> <Polish>Przepakowywanie zakończone</Polish>
<German>Umpacken Unterbrochen</German> </Key>
<Spanish>Reembalaje interrumpido</Spanish> <Key ID="STR_ACE_MagazineRepack_RepackInterrupted">
<Russian>Перепаковка прервана</Russian> <English>Repacking Interrupted</English>
</Key> <French>Réorganisation Interrompue</French>
<Key ID="STR_ACE_MagazineRepack_RepackedMagazinesCount"> <German>Umpacken Unterbrochen</German>
<English>%1 Full and %2 Partial</English> <Spanish>Reembalaje interrumpido</Spanish>
<German>%1 Vollständigen und %2 Teilweisen</German> <Russian>Перепаковка прервана</Russian>
<Spanish>%1 Total y %2 Parcial</Spanish> <Czech>Páskování přerušeno</Czech>
<Russian>%1 полных и %2 неполных</Russian> <Polish>Przepakowywanie przerwane</Polish>
</Key> </Key>
</Package> <Key ID="STR_ACE_MagazineRepack_RepackedMagazinesCount">
</Project> <English>%1 Full and %2 Partial</English>
<French>%1 Complet et %2 Partiellement</French>
<German>%1 Vollständigen und %2 Teilweisen</German>
<Spanish>%1 Total y %2 Parcial</Spanish>
<Russian>%1 полных и %2 неполных</Russian>
<Czech>%1 plný a %2 částečně</Czech>
<Polish>Pełnych: %1.&lt;br /&gt;Częściowo pełnych: %2.</Polish>
</Key>
</Package>
</Project>

View File

@ -107,4 +107,71 @@ class CfgAmmo {
//typicalspeed = 792; //typicalspeed = 792;
//airfriction = -0.0008577; //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;
};
}; };

View File

@ -136,4 +136,131 @@ class CfgMagazines {
displayNameShort = "$STR_ACE_20Rnd_762x51_mag_APNameShort"; displayNameShort = "$STR_ACE_20Rnd_762x51_mag_APNameShort";
descriptionShort = "$STR_ACE_20Rnd_762x51_mag_APDescription"; 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";
};
}; };

View File

@ -153,6 +153,20 @@ class CfgVehicles {
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,2); MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_Tracer_Dim,2);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_SD,2); MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_SD,2);
MACRO_ADDMAGAZINE(ACE_20Rnd_762x51_Mag_AP,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);
}; };
}; };
}; };

View File

@ -30,7 +30,7 @@ class CfgWeapons {
/* Katiba */ /* Katiba */
class Rifle_Long_Base_F;
class arifle_katiba_Base_F: Rifle_Base_F { class arifle_katiba_Base_F: Rifle_Base_F {
magazines[] += { magazines[] += {
"ACE_30Rnd_65x39_caseless_green_mag_Tracer_Dim", "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 */ /* Assault Rifles */

View File

@ -18,6 +18,16 @@ ACE_B_762x51_Ball_SD
ACE_B_762x51_Ball_AP ACE_B_762x51_Ball_AP
ACE_B_762x51_M118LR 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 // CFGMagazines
@ -37,3 +47,21 @@ ACE_20Rnd_762x51_Mag_Tracer
ACE_20Rnd_762x51_Mag_Tracer_Dim ACE_20Rnd_762x51_Mag_Tracer_Dim
ACE_20Rnd_762x51_Mag_SD ACE_20Rnd_762x51_Mag_SD
ACE_20Rnd_762x51_Mag_AP 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

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2015-04-10 -->
<Project name="ACE"> <Project name="ACE">
<Package name="Map"> <Package name="Map">
<Key ID="STR_ACE_MapTools_Name"> <Key ID="STR_ACE_MapTools_Name">
@ -8,7 +7,7 @@
<French>Outils de navigation</French> <French>Outils de navigation</French>
<Polish>Narzędzia nawigacyjne</Polish> <Polish>Narzędzia nawigacyjne</Polish>
<German>Kartenwerkzeug</German> <German>Kartenwerkzeug</German>
<Czech>Pomůcky k Mapě</Czech> <Czech>Pomůcky k mapě</Czech>
<Italian>Strumenti Cartografici</Italian> <Italian>Strumenti Cartografici</Italian>
<Portuguese>Ferramentas de Mapa</Portuguese> <Portuguese>Ferramentas de Mapa</Portuguese>
<Hungarian>Térképészeti eszközök</Hungarian> <Hungarian>Térképészeti eszközök</Hungarian>
@ -32,7 +31,7 @@
<French>Outils de navigation</French> <French>Outils de navigation</French>
<Polish>Narzędzia nawigacyjne</Polish> <Polish>Narzędzia nawigacyjne</Polish>
<German>Kartenwerkzeug</German> <German>Kartenwerkzeug</German>
<Czech>Pomůcky k Mapě</Czech> <Czech>Pomůcky k mapě</Czech>
<Italian>Strumenti Cartografici</Italian> <Italian>Strumenti Cartografici</Italian>
<Portuguese>Ferramentas de Mapa</Portuguese> <Portuguese>Ferramentas de Mapa</Portuguese>
<Hungarian>Térképészeti eszközök</Hungarian> <Hungarian>Térképészeti eszközök</Hungarian>
@ -145,4 +144,4 @@
<Russian>Направление: %1°</Russian> <Russian>Направление: %1°</Russian>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -102,4 +102,7 @@ GVAR(IVBags) = [];
call FUNC(parseConfigForInjuries); 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; ADDON = true;

View File

@ -17,7 +17,7 @@
#include "script_component.hpp" #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; _unit = _this select 0;
_selection = _this select 1; _selection = _this select 1;
_damage = _this select 2; _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. // 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 (GVAR(SELECTIONS) + [""])) exitWith {0};
if !(_selection in (_hitSelections + [""])) exitWith {0};
_damageReturn = _damage; _damageReturn = _damage;
if (GVAR(level) < 2) then { if (GVAR(level) < 2) then {
@ -46,8 +45,7 @@ if (GVAR(level) >= 2) then {
// lets use basic for the time being.. // lets use basic for the time being..
_damageReturn = _this call FUNC(handleDamage_basic); _damageReturn = _this call FUNC(handleDamage_basic);
}; };
_newDamage = _this call FUNC(handleDamage_caching);
[_unit, _selection, _damage, _source, _projectile] call FUNC(handleDamage_caching);
if (_damageReturn > 0.9) then { if (_damageReturn > 0.9) then {
@ -59,12 +57,6 @@ if (GVAR(level) >= 2) then {
_minLethalDamage = GVAR(minLethalDamages) select _typeIndex; _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 ((_minLethalDamage <= _newDamage) && {[_unit, [_selection] call FUNC(selectionNameToNumber), _newDamage] call FUNC(determineIfFatal)} && {_selection in ["", "head", "body"]}) then {
if ([_unit] call FUNC(setDead)) then { if ([_unit] call FUNC(setDead)) then {
_damageReturn = 1; _damageReturn = 1;

View File

@ -25,21 +25,21 @@ _selectionName = _this select 1;
_amountOfDamage = _this select 2; _amountOfDamage = _this select 2;
_sourceOfDamage = _this select 3; _sourceOfDamage = _this select 3;
_typeOfProjectile = _this select 4; _typeOfProjectile = _this select 4;
_newDamage = _this select 5;
// Most likely taking exessive fire damage. Lets exit. // 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 0
}; };
_typeOfDamage = [_typeOfProjectile] call FUNC(getTypeOfDamage); _typeOfDamage = [_typeOfProjectile] call FUNC(getTypeOfDamage);
_part = [_selectionName] call FUNC(selectionNameToNumber); _part = [_selectionName] call FUNC(selectionNameToNumber);
_hitPoints = ["HitHead", "HitBody", "HitLeftArm", "HitRightArm", "HitLeftLeg", "HitRightLeg"]; _hitPoints = ["HitHead", "HitBody", "HitLeftArm", "HitRightArm", "HitLeftLeg", "HitRightLeg"];
// Sorting out the damage // Sorting out the damage
_damageBodyParts = _unit getvariable [QGVAR(bodyPartStatus), [0,0,0,0,0,0]]; _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]; _damageBodyParts set [_part, (_damageBodyParts select _part) + _newDamage];
_unit setvariable [QGVAR(bodyPartStatus), _damageBodyParts, true]; _unit setvariable [QGVAR(bodyPartStatus), _damageBodyParts, true];
[_unit] call FUNC(handleDamage_advancedSetDamage); [_unit] call FUNC(handleDamage_advancedSetDamage);
[_unit, _selectionName, _newDamage, _typeOfProjectile, _typeOfDamage] call FUNC(handleDamage_wounds); [_unit, _selectionName, _newDamage, _typeOfProjectile, _typeOfDamage] call FUNC(handleDamage_wounds);

View File

@ -16,9 +16,7 @@
private ["_unit", "_bodyStatus", "_headDamage", "_torsoDamage", "_handsDamage", "_legsDamage"]; private ["_unit", "_bodyStatus", "_headDamage", "_torsoDamage", "_handsDamage", "_legsDamage"];
_unit = _this select 0; _unit = _this select 0;
if (!local _unit) exitwith { if (!local _unit) exitwith {};
// execute only local
};
_bodyStatus = _unit getvariable [QGVAR(bodyPartStatus),[0,0,0,0,0,0]]; _bodyStatus = _unit getvariable [QGVAR(bodyPartStatus),[0,0,0,0,0,0]];
// ["head", "body", "hand_l", "hand_r", "leg_l", "leg_r"] // ["head", "body", "hand_l", "hand_r", "leg_l", "leg_r"]

View File

@ -42,15 +42,25 @@ if (diag_frameno > (_unit getVariable [QGVAR(frameNo), -3]) + 2) then {
_unit setVariable [QGVAR(damages), []]; _unit setVariable [QGVAR(damages), []];
_unit setVariable [QGVAR(structDamage), 0]; _unit setVariable [QGVAR(structDamage), 0];
_unit setVariable [QGVAR(preventDeath), false]; _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); _newDamage = _damage - (damage _unit);
if (_selectionName in _hitSelections) then { if (_selectionName in GVAR(SELECTIONS)) then {
_newDamage = _damage - (_unit getHitPointDamage (_hitPoints select (_hitSelections find _selectionName))); _newDamage = _damage - (_unit getHitPointDamage (GVAR(HITPOINTS) select (GVAR(SELECTIONS) find _selectionName)));
}; };
_damage = _damage - _newDamage; _damage = _damage - _newDamage;
@ -61,7 +71,7 @@ if (((velocity _unit) select 2 < -5) and (vehicle _unit == _unit)) then {
_unit setVariable [QGVAR(isFalling), true]; _unit setVariable [QGVAR(isFalling), true];
}; };
if (_unit getVariable [QGVAR(isFalling), false] and !(_selectionName in ["", "leg_l", "leg_r"])) exitWith { 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 { if (_unit getVariable [QGVAR(isFalling), false]) then {
_newDamage = _newDamage * 0.7; _newDamage = _newDamage * 0.7;
@ -85,12 +95,12 @@ if (_selectionName != "" and !(_unit getVariable QGVAR(isFalling))) then {
// Make entry unfindable // Make entry unfindable
_cache_projectiles set [_index, objNull]; _cache_projectiles set [_index, objNull];
_cache_projectiles pushBack _projectile; _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; _cache_damages pushBack _newDamage;
}; };
} else { } else {
_cache_projectiles pushBack _projectile; _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; _cache_damages pushBack _newDamage;
}; };
_unit setVariable [QGVAR(projectiles), _cache_projectiles]; _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 { if (_selectionName == "") then {
_damage = _damage + (_unit getVariable QGVAR(structDamage)); _damage = _damage + (_unit getVariable QGVAR(structDamage));
} else { } else {
_damage = _damage + _newDamage; _damage = _damage + _newDamage;
}; };
// Leg Damage // Leg Damage
_legdamage = (_unit getHitPointDamage "HitLeftLeg") + (_unit getHitPointDamage "HitRightLeg"); _legdamage = (_unit getHitPointDamage "HitLeftLeg") + (_unit getHitPointDamage "HitRightLeg");
if (_selectionName == "leg_l") then { if (_selectionName == "leg_l") then {
@ -143,9 +135,9 @@ if (_selectionName == "leg_r") then {
}; };
if (_legdamage >= LEGDAMAGETRESHOLD1) then { if (_legdamage >= LEGDAMAGETRESHOLD1) then {
if (_unit getHitPointDamage "HitLegs" != 1) then {_unit setHitPointDamage ["HitLegs", 1]}; _unit setHitPointDamage ["HitLegs", 1];
} else { } else {
if (_unit getHitPointDamage "HitLegs" != 0) then {_unit setHitPointDamage ["HitLegs", 0]}; _unit setHitPointDamage ["HitLegs", 0];
}; };
// @todo: force prone for completely fucked up legs. // @todo: force prone for completely fucked up legs.
@ -160,9 +152,9 @@ if (_selectionName == "hand_r") then {
}; };
if (_armdamage >= ARMDAMAGETRESHOLD1) then { if (_armdamage >= ARMDAMAGETRESHOLD1) then {
if (_unit getHitPointDamage "HitHands" != 1) then {_unit setHitPointDamage ["HitHands", 1]}; _unit setHitPointDamage ["HitHands", 1];
} else { } else {
if (_unit getHitPointDamage "HitHands" != 0) then {_unit setHitPointDamage ["HitHands", 0]}; _unit setHitPointDamage ["HitHands", 0];
}; };
// @todo: Drop weapon for full damage. // @todo: Drop weapon for full damage.
@ -174,7 +166,6 @@ if (_selectionName == "") then {
_unit setVariable [QGVAR(pain), _pain min 1, true]; _unit setVariable [QGVAR(pain), _pain min 1, true];
}; };
// Unconsciousness // Unconsciousness
if (_selectionName == "" and if (_selectionName == "" and
_damage >= UNCONSCIOUSNESSTRESHOLD and _damage >= UNCONSCIOUSNESSTRESHOLD and

View File

@ -25,8 +25,8 @@ _damage = _this select 2;
_source = _this select 3; _source = _this select 3;
_projectile = _this select 4; _projectile = _this select 4;
_hitSelections = ["head", "body", "hand_l", "hand_r", "leg_l", "leg_r"]; _hitSelections = GVAR(SELECTIONS);
_hitPoints = ["HitHead", "HitBody", "HitLeftArm", "HitRightArm", "HitLeftLeg", "HitRightLeg"]; _hitPoints = GVAR(HITPOINTS);
// Calculate change in damage. // Calculate change in damage.
_newDamage = _damage - (damage _unit); _newDamage = _damage - (damage _unit);
@ -34,18 +34,10 @@ if (_selectionName in _hitSelections) then {
_newDamage = _damage - (_unit getHitPointDamage (_hitPoints select (_hitSelections find _selectionName))); _newDamage = _damage - (_unit getHitPointDamage (_hitPoints select (_hitSelections find _selectionName)));
}; };
//_damage = _damage + _newDamage;
// 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;
// Check for vehicle crash // 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 { if (missionNamespace getvariable [QGVAR(allowVehicleCrashDamage), true]) then {
_selectionName = _hitSelections select (floor(random(count _hitSelections))); _selectionName = _hitSelections select (floor(random(count _hitSelections)));
_projectile = "vehiclecrash"; _projectile = "vehiclecrash";
@ -54,10 +46,11 @@ if (vehicle _unit != _unit && !(vehicle _unit isKindOf "StaticWeapon") && {isNul
// From AGM medical: // From AGM medical:
// Exclude falling damage to everything other than legs; reduce structural damage. // 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]; _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 { if (_unit getVariable [QGVAR(isFalling), false]) then {
_newDamage = _newDamage * 0.7; _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 // handle the cached damages 3 frames later
[{ [{
private ["_args","_unit","_frameNo"]; private ["_args", "_params"];
_args = _this select 0; _args = _this select 0;
_unit = _args select 0;
_frameNo = _args select 1;
if (diag_frameno > _frameNo + 2) then { if (diag_frameno > (_args select 1) + 2) then {
_cache_projectiles = _unit getVariable [QGVAR(cachedProjectiles), []]; _cache_params = (_args select 0) getVariable [QGVAR(cachedHandleDamageParams), []];
_cache_hitpoints = _unit getVariable [QGVAR(cachedHitPoints), []]; _cache_damages = (_args select 0) getVariable QGVAR(cachedDamages);
_cache_damages = _unit getVariable [QGVAR(cachedDamages), []];
_cache_params = _unit getVariable [QGVAR(cachedHandleDamageParams), []];
{ {
if (typeName _x == typeName "") then { _params = _x + [_cache_damages select _foreachIndex];
(_cache_params select _foreachIndex) call FUNC(handleDamage_advanced); _params call FUNC(handleDamage_advanced);
}; }foreach _cache_params;
}foreach _cache_projectiles;
[(_this select 1)] call cba_fnc_removePerFrameHandler; [(_this select 1)] call cba_fnc_removePerFrameHandler;
}; };
}, 0, [_unit, diag_frameno] ] call CBA_fnc_addPerFrameHandler; }, 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), []]; _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 // Caching of the damage events
if (_selectionName != "") then { 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 // Check if the current projectile has already been handled once
if (_projectile in _cache_projectiles) then { if (_index >= 0) exitwith {
private ["_index","_otherDamage"]; _cache_damages = _unit getVariable QGVAR(cachedDamages);
// if it has been handled, find the index in the cache
_index = _cache_projectiles find _projectile;
// Find the previous damage this projectile has done // Find the previous damage this projectile has done
_otherDamage = (_cache_damages select _index); _otherDamage = (_cache_damages select _index);
// Take the highest damage of the two // Take the highest damage of the two
if (_otherDamage > _newDamage) then { if (_newDamage > _otherDamage) then {
_newDamage = 0; _cache_params = _unit getVariable QGVAR(cachedHandleDamageParams);
} else { _cache_hitpoints = _unit getVariable QGVAR(cachedHitPoints);
private ["_hitPoint", "_restore"]; private ["_hitPoint", "_restore"];
// Restore the damage before the previous damage was processed // Restore the damage before the previous damage was processed
_hitPoint = _cache_hitpoints select _index; _hitPoint = _cache_hitpoints select _index;
_restore = ((_unit getHitPointDamage _hitPoint) - _otherDamage) max 0; _restore = ((_unit getHitPointDamage _hitPoint) - _otherDamage) max 0;
_unit setHitPointDamage [_hitPoint, _restore]; _unit setHitPointDamage [_hitPoint, _restore];
// Make entry unfindable and add the new damage cache _cache_hitpoints set [_index, (_hitPoints select (_hitSelections find _selectionName))];
_cache_projectiles set [_index, objNull]; _cache_damages set [_index, _newDamage];
_cache_projectiles pushBack _projectile; _cache_params set[_index, _this];
_cache_hitpoints pushBack (_hitPoints select (_hitSelections find _selectionName));
_cache_damages pushBack _newDamage; _unit setVariable [QGVAR(cachedProjectiles), _cache_projectiles];
_cache_params pushBack [_unit, _selectionName, _damage, _source, _projectile]; _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 _newDamage;
_unit setVariable [QGVAR(cachedProjectiles), _cache_projectiles];
_unit setVariable [QGVAR(cachedHitPoints), _cache_hitpoints];
_unit setVariable [QGVAR(cachedDamages), _cache_damages];
_unit setVariable [QGVAR(cachedHandleDamageParams), _cache_params];

View File

@ -52,10 +52,10 @@ _allPossibleInjuries = [];
// Check if the damage is higher as the min damage for the specific injury // Check if the damage is higher as the min damage for the specific injury
if (_damage >= _minDamage && {_damage <= _maxDamage || _maxDamage < 0}) then { if (_damage >= _minDamage && {_damage <= _maxDamage || _maxDamage < 0}) then {
_classType = _x select 0; //_classType = _x select 0;
_selections = _x select 1; _selections = _x select 1;
_bloodLoss = _x select 2; //_bloodLoss = _x select 2;
_pain = _x select 3; //_pain = _x select 3;
// Check if the injury can be applied to the given selection name // Check if the injury can be applied to the given selection name
if ("All" in _selections || _selectionName in _selections) then { if ("All" in _selections || _selectionName in _selections) then {
@ -73,9 +73,7 @@ _allPossibleInjuries = [];
}foreach _allInjuriesForDamageType; }foreach _allInjuriesForDamageType;
// No possible wounds available for this damage type or damage amount. // 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 // Administration for open wounds and ids
_openWounds = _unit getvariable[QGVAR(openWounds), []]; _openWounds = _unit getvariable[QGVAR(openWounds), []];
@ -125,7 +123,7 @@ _woundsCreated = [];
_painToAdd = _painToAdd + (_toAddInjury select 3); _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]; _unit setvariable [QGVAR(openWounds), _openWounds, !USE_WOUND_EVENT_SYNC];

View File

@ -52,7 +52,7 @@ if (animationState _unit in ["ladderriflestatic","laddercivilstatic"]) then {
}; };
if (vehicle _unit == _unit) then { if (vehicle _unit == _unit) then {
if (primaryWeapon _unit == "") then { if (primaryWeapon _unit == "") then {
_unit addWeapon "ACE_fakeWeapon"; _unit addWeapon "ACE_FakePrimaryWeapon";
}; };
_unit selectWeapon (primaryWeapon _unit); _unit selectWeapon (primaryWeapon _unit);
_unit switchMove ""; _unit switchMove "";
@ -67,7 +67,8 @@ _unit setUnitPos "DOWN";
[_unit, true] call EFUNC(common,disableAI); [_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. // 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, QGVAR(unconscious), true] call EFUNC(common,setCaptivityStatus);
[_unit, [_unit] call EFUNC(common,getDeathAnim), 1, true] call EFUNC(common,doAnimation); [_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); [_unit, QGVAR(unconscious), false] call EFUNC(common,setCaptivityStatus);
// Swhich the unit back to its original group // 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, false] call EFUNC(common,disableAI);
_unit setUnitPos _originalPos; // This is not position but stance (DOWN, MIDDLE, UP) _unit setUnitPos _originalPos; // This is not position but stance (DOWN, MIDDLE, UP)

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
/* /*
* Author: PabstMirror * Author: PabstMirror
* Updates the display (several times a second) called from the pfeh * Updates the display (several times a second) called from the pfeh
* *
@ -53,7 +53,7 @@ case (APP_MODE_INFODISPLAY): {
_compassAngleText = if (GVAR(settingUseMils)) then { _compassAngleText = if (GVAR(settingUseMils)) then {
[(floor ((6400 / 360) * (getDir ace_player))), 4, 0] call CBA_fnc_formatNumber; [(floor ((6400 / 360) * (getDir ace_player))), 4, 0] call CBA_fnc_formatNumber;
} else { } 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; (_display displayCtrl IDC_MODEDISPLAY_HEADINGNUM) ctrlSetText _compassAngleText;
@ -92,7 +92,7 @@ case (APP_MODE_INFODISPLAY): {
_bearingText = if (GVAR(settingUseMils)) then { _bearingText = if (GVAR(settingUseMils)) then {
[(floor ((6400 / 360) * (_bearing))), 4, 0] call CBA_fnc_formatNumber; [(floor ((6400 / 360) * (_bearing))), 4, 0] call CBA_fnc_formatNumber;
} else { } 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; _2dDistanceKm = ((GVAR(gpsPositionASL) select [0,2]) distance (_targetPosLocationASL select [0,2])) / 1000;
_rangeText = format ["%1km", ([_2dDistanceKm, 1, 1] call CBA_fnc_formatNumber)]; _rangeText = format ["%1km", ([_2dDistanceKm, 1, 1] call CBA_fnc_formatNumber)];
@ -112,7 +112,7 @@ case (APP_MODE_COMPASS): {
_compassAngleText = if (GVAR(settingUseMils)) then { _compassAngleText = if (GVAR(settingUseMils)) then {
[(floor ((6400 / 360) * (getDir ace_player))), 4, 0] call CBA_fnc_formatNumber; [(floor ((6400 / 360) * (getDir ace_player))), 4, 0] call CBA_fnc_formatNumber;
} else { } 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; (_display displayCtrl IDC_MODECOMPASS_HEADING) ctrlSetText _compassAngleText;
@ -149,7 +149,7 @@ case (APP_MODE_COMPASS): {
_bearingText = if (GVAR(settingUseMils)) then { _bearingText = if (GVAR(settingUseMils)) then {
[(floor ((6400 / 360) * (_bearing))), 4, 0] call CBA_fnc_formatNumber; [(floor ((6400 / 360) * (_bearing))), 4, 0] call CBA_fnc_formatNumber;
} else { } 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; _2dDistanceKm = ((GVAR(gpsPositionASL) select [0,2]) distance (_targetPosLocationASL select [0,2])) / 1000;
_rangeText = format ["%1km", ([_2dDistanceKm, 1, 1] call CBA_fnc_formatNumber)]; _rangeText = format ["%1km", ([_2dDistanceKm, 1, 1] call CBA_fnc_formatNumber)];

View File

@ -1,168 +1,223 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler. -->
<Project name="ACE"> <Project name="ACE">
<Package name="microdagr"> <Package name="microdagr">
<Key ID="STR_ACE_microdagr_itemName"> <Key ID="STR_ACE_microdagr_itemName">
<English>MicroDAGR GPS</English> <English>MicroDAGR GPS</English>
<German>MicroDAGR GPS</German> <German>MicroDAGR GPS</German>
<Spanish>GPS MicroDAGR</Spanish> <Spanish>GPS MicroDAGR</Spanish>
<Russian>MicroDAGR GPS</Russian> <Russian>MicroDAGR GPS</Russian>
</Key> <Czech>MicroDAGR GPS</Czech>
<Key ID="STR_ACE_microdagr_itemDescription"> <Polish>MicroDAGR GPS</Polish>
<English>MicroDAGR advanced GPS receiver</English> <French>GPS MicroDAGR</French>
<German>MicroDAGR - Fortgeschrittener GPS-Empfänger</German> </Key>
<Spanish>Receptor avanzado GPS MicroDAGR</Spanish> <Key ID="STR_ACE_microdagr_itemDescription">
<Russian>Многофункциональный GPS-приёмник.</Russian> <English>MicroDAGR advanced GPS receiver</English>
</Key> <German>MicroDAGR verbesserter GPS Empfänger</German>
<Key ID="STR_ACE_microdagr_settingUseMils"> <Spanish>Receptor avanzado GPS MicroDAGR</Spanish>
<English>Angular Unit:</English> <Russian>Многофункциональный GPS-приёмник.</Russian>
<Spanish>Unidad angular:</Spanish> <Polish>Zaawansowany odbiornik GPS MicroDAGR</Polish>
<Russian>Угловые единицы:</Russian> <French>MicroDAGR un GPS avancé</French>
</Key> </Key>
<Key ID="STR_ACE_microdagr_settingMils"> <Key ID="STR_ACE_microdagr_settingUseMils">
<English>Mils</English> <English>Angular Unit:</English>
<German>Mils</German> <Spanish>Unidad angular:</Spanish>
<Spanish>Mils</Spanish> <Russian>Угловые единицы:</Russian>
<Russian>Тысячные</Russian> <Polish>Jednostka kątowa:</Polish>
</Key> <French>Unité angulaire:</French>
<Key ID="STR_ACE_microdagr_settingShowWP"> <German>Winkeleinheit:</German>
<English>Show Waypoints On Map:</English> </Key>
<German>Zeige Wegpunkte auf Karte</German> <Key ID="STR_ACE_microdagr_settingMils">
<Spanish>Mostrar puntos de ruta en el mapa:</Spanish> <English>Mils</English>
<Russian>Показывать маршрутные точки на карте:</Russian> <German>Mils</German>
</Key> <Spanish>Mils</Spanish>
<Key ID="STR_ACE_microdagr_settingDegrees"> <Russian>Тысячные</Russian>
<English>Degrees</English> <Polish>Tysiączne</Polish>
<German>Grad</German> <French>Mils</French>
<Spanish>Grados</Spanish> </Key>
<Russian>Градусы</Russian> <Key ID="STR_ACE_microdagr_settingShowWP">
</Key> <English>Show Waypoints On Map:</English>
<Key ID="STR_ACE_microdagr_settingOn"> <German>Zeige Wegpunkte auf Karte</German>
<English>On</English> <Spanish>Mostrar puntos de ruta en el mapa:</Spanish>
<Czech>Zapnuto</Czech> <Russian>Показывать маршрутные точки на карте:</Russian>
<French>Oui</French> <Polish>Pokaż PT na mapie:</Polish>
<German>Ein</German> <French>Afficher les points de passage sur la carte :</French>
<Italian></Italian> </Key>
<Polish>Wł.</Polish> <Key ID="STR_ACE_microdagr_settingDegrees">
<Portuguese>Ativar</Portuguese> <English>Degrees</English>
<Russian>Вкл.</Russian> <German>Grad</German>
<Spanish>Encendido</Spanish> <Spanish>Grados</Spanish>
</Key> <Russian>Градусы</Russian>
<Key ID="STR_ACE_microdagr_settingOff"> <Polish>Stopnie</Polish>
<English>Off</English> <French>Degrés</French>
<Czech>Vypnuto</Czech> </Key>
<French>Non</French> <Key ID="STR_ACE_microdagr_settingOn">
<German>Aus</German> <English>On</English>
<Italian>No</Italian> <Czech>Zapnuto</Czech>
<Polish>Wył.</Polish> <French>Oui</French>
<Portuguese>Desativar</Portuguese> <German>Ein</German>
<Russian>Выкл.</Russian> <Italian></Italian>
<Spanish>Apagado</Spanish> <Polish>Wł.</Polish>
</Key> <Portuguese>Ativar</Portuguese>
<Key ID="STR_ACE_microdagr_wpEnterCords"> <Russian>Вкл.</Russian>
<English>Enter Grid Cords:</English> <Spanish>Encendido</Spanish>
<Spanish>Introducir coordenadas de cuadrícula:</Spanish> </Key>
<Russian>Введите координаты:</Russian> <Key ID="STR_ACE_microdagr_settingOff">
</Key> <English>Off</English>
<Key ID="STR_ACE_microdagr_wpEnterName"> <Czech>Vypnuto</Czech>
<English>Name of [%1]</English> <French>Non</French>
<German>Name von [%1]</German> <German>Aus</German>
<Spanish>Nombre de [%1]</Spanish> <Italian>No</Italian>
<Russian>Название [%1]</Russian> <Polish>Wył.</Polish>
</Key> <Portuguese>Desativar</Portuguese>
<Key ID="STR_ACE_microdagr_controlMGRS"> <Russian>Выкл.</Russian>
<English>MGRS-New</English> <Spanish>Apagado</Spanish>
<German>MGRS-NEU</German> </Key>
<Spanish>Nuevo-MGRS</Spanish> <Key ID="STR_ACE_microdagr_wpEnterCords">
<Russian>MGRS-Новая</Russian> <English>Enter Grid Cords:</English>
</Key> <Spanish>Introducir coordenadas de cuadrícula:</Spanish>
<Key ID="STR_ACE_microdagr_controlWGD"> <Russian>Введите координаты:</Russian>
<English>WGD</English> <Polish>Wprowadź współrzędne:</Polish>
<German>WGD</German> <French>Entrer Grid Cords :</French>
<Spanish>WGD</Spanish> <German>Koordinaten eingeben:</German>
<Russian>WGD</Russian> </Key>
</Key> <Key ID="STR_ACE_microdagr_wpEnterName">
<Key ID="STR_ACE_microdagr_controlRange"> <English>Name of [%1]</English>
<English>Range:</English> <German>Name von [%1]</German>
<Spanish>Distancia</Spanish> <Spanish>Nombre de [%1]</Spanish>
<German>Reichweite:</German> <Russian>Название [%1]</Russian>
<Russian>Дистанция:</Russian> <Polish>Nazwa [%1]</Polish>
</Key> <French>Nom de [%1]</French>
<Key ID="STR_ACE_microdagr_compasDirection"> </Key>
<English>Compass Direction</English> <Key ID="STR_ACE_microdagr_controlMGRS">
<German>Kompass Richtung</German> <English>MGRS-New</English>
<Spanish>Dirección de la brújula</Spanish> <German>MGRS-NEU</German>
<Russian>Азимут</Russian> <Spanish>Nuevo-MGRS</Spanish>
</Key> <Russian>MGRS-Новая</Russian>
<Key ID="STR_ACE_microdagr_menuMark"> <Polish>MGRS-Nowy</Polish>
<English>Mark</English> <French>Nouveau MGRS</French>
<German>Markiere</German> </Key>
<Spanish>Marca</Spanish> <Key ID="STR_ACE_microdagr_controlWGD">
<Russian>Отметка</Russian> <English>WGD</English>
</Key> <German>WGD</German>
<Key ID="STR_ACE_microdagr_menuWaypoints"> <Spanish>WGD</Spanish>
<English>Waypoints</English> <Russian>WGD</Russian>
<Spanish>Puntos de ruta</Spanish> <Polish>WGD</Polish>
<German>Wegpunkte</German> <French>WGD</French>
<Russian>Машрутные точки</Russian> </Key>
</Key> <Key ID="STR_ACE_microdagr_controlRange">
<Key ID="STR_ACE_microdagr_menuConnectTo"> <English>Range:</English>
<English>Connect To</English> <Spanish>Distancia:</Spanish>
<Spanish>Conectar a</Spanish> <German>Reichweite:</German>
<Russian>Соединиться с </Russian> <Russian>Дистанция:</Russian>
<German>Verbinde zu</German> <Polish>Dystans:</Polish>
</Key> <French>Distance :</French>
<Key ID="STR_ACE_microdagr_menuSettings"> </Key>
<English>Settings</English> <Key ID="STR_ACE_microdagr_compasDirection">
<German>Einstellungen</German> <English>Compass Direction</English>
<Spanish>Configuración</Spanish> <German>Kompass Richtung</German>
<Russian>Настройки</Russian> <Spanish>Dirección de la brújula</Spanish>
</Key> <Russian>Азимут</Russian>
<Key ID="STR_ACE_microdagr_waypointsSet"> <Polish>Azymut</Polish>
<English>SetWP</English> <French>Direction de la boussole</French>
<German>SetzeWP</German> </Key>
<Spanish>Establecer PR</Spanish> <Key ID="STR_ACE_microdagr_menuMark">
<Russian>Установить МТ</Russian> <English>Mark</English>
</Key> <German>Markieren</German>
<Key ID="STR_ACE_microdagr_waypointsAdd"> <Spanish>Marca</Spanish>
<English>Add</English> <Russian>Отметка</Russian>
<German>Hinzufügen</German> <Polish>Oznacz</Polish>
<Spanish>Añadir</Spanish> <French>Marqueur</French>
<Russian>Добавить</Russian> </Key>
</Key> <Key ID="STR_ACE_microdagr_menuWaypoints">
<Key ID="STR_ACE_microdagr_waypointsDelete"> <English>Waypoints</English>
<English>Delete</English> <Spanish>Puntos de ruta</Spanish>
<Czech>Smazat</Czech> <German>Wegpunkte</German>
<French>Supprimer</French> <Russian>Машрутные точки</Russian>
<German>Löschen</German> <Czech>Waypointy</Czech>
<Italian>Elimina</Italian> <Polish>Punkty trasy</Polish>
<Polish>Usuń</Polish> <French>Point de passage</French>
<Portuguese>Excluir</Portuguese> </Key>
<Russian>Удалить</Russian> <Key ID="STR_ACE_microdagr_menuConnectTo">
<Spanish>Borrar</Spanish> <English>Connect To</English>
</Key> <Spanish>Conectar a</Spanish>
<Key ID="STR_ACE_microdagr_toggleUnit"> <Russian>Соединиться с </Russian>
<English>Toggle MicroDAGR Display Mode</English> <German>Verbinde zu</German>
<German>Wechsle MircoDAGR Bildschirmmodus</German> <Czech>Připojit k</Czech>
<Spanish>Conmutar modo de pantalla del MicroDAGR</Spanish> <Polish>Podłącz do</Polish>
<Russian>Сменить режим показа MicroDAGR</Russian> <French>Connexion à</French>
</Key> </Key>
<Key ID="STR_ACE_microdagr_show"> <Key ID="STR_ACE_microdagr_menuSettings">
<English>Show MicoDAGR</English> <English>Settings</English>
<German>Zeige MicroDAGR</German> <French>Paramètres</French>
<Spanish>Mostrar MicroDAGR</Spanish> <German>Einstellungen</German>
<Russian>Показать MicroDAGR</Russian> <Spanish>Configuración</Spanish>
</Key> <Russian>Настройки</Russian>
<Key ID="STR_ACE_microdagr_configure"> <Czech>Nastavení</Czech>
<English>Configure MicroDAGR</English> <Polish>Ustawienia</Polish>
<German>Stelle MicroDAGR ein</German> </Key>
<Spanish>Configurar MicroDAGR</Spanish> <Key ID="STR_ACE_microdagr_waypointsSet">
<Russian>Настроить MicroDAGR</Russian> <English>SetWP</English>
</Key> <German>WP setzen</German>
<Key ID="STR_ACE_microdagr_closeUnit"> <Spanish>Establecer PR</Spanish>
<English>Close MicroDAGR</English> <Russian>Установить МТ</Russian>
<German>Schließe MicroDAGR</German> <Czech>Nastavit WP</Czech>
<Spanish>Cerrar MicroDAGR</Spanish> <Polish>UstawPT</Polish>
<Russian>Закрыть MicroDAGR</Russian> </Key>
</Key> <Key ID="STR_ACE_microdagr_waypointsAdd">
</Package> <English>Add</English>
</Project> <German>Hinzufügen</German>
<Spanish>Añadir</Spanish>
<Russian>Добавить</Russian>
<Czech>Přidat</Czech>
<Polish>Dodaj</Polish>
<French>Ajouter</French>
</Key>
<Key ID="STR_ACE_microdagr_waypointsDelete">
<English>Delete</English>
<Czech>Smazat</Czech>
<French>Supprimer</French>
<German>Löschen</German>
<Italian>Elimina</Italian>
<Polish>Usuń</Polish>
<Portuguese>Excluir</Portuguese>
<Russian>Удалить</Russian>
<Spanish>Borrar</Spanish>
</Key>
<Key ID="STR_ACE_microdagr_toggleUnit">
<English>Toggle MicroDAGR Display Mode</English>
<German>MicoDAGR Anzeigemodus wählen</German>
<Spanish>Conmutar modo de pantalla del MicroDAGR</Spanish>
<Russian>Сменить режим показа MicroDAGR</Russian>
<Polish>Przełącz tryb wyświetlania MicroDAGR</Polish>
<French>Basculer sur l'affichage du MicroDAGR</French>
</Key>
<Key ID="STR_ACE_microdagr_show">
<English>Show MicoDAGR</English>
<German>Zeige MicroDAGR</German>
<Spanish>Mostrar MicroDAGR</Spanish>
<Russian>Показать MicroDAGR</Russian>
<Czech>Ukázat MicroDAGR GPS</Czech>
<Polish>Pokaż MicroDAGR</Polish>
<French>Afficher le MicroDAGR</French>
</Key>
<Key ID="STR_ACE_microdagr_configure">
<English>Configure MicroDAGR</English>
<German>Konfiguriere MicroDAGR</German>
<Spanish>Configurar MicroDAGR</Spanish>
<Russian>Настроить MicroDAGR</Russian>
<Czech>Konfigurovat MicroDAGR GPS</Czech>
<Polish>Konfiguruj MicroDAGR</Polish>
<French>Configurer le MicroDAGR</French>
</Key>
<Key ID="STR_ACE_microdagr_closeUnit">
<English>Close MicroDAGR</English>
<German>Schließe MicroDAGR</German>
<Spanish>Cerrar MicroDAGR</Spanish>
<Russian>Закрыть MicroDAGR</Russian>
<Czech>Zavřít MicroDAGR GPS</Czech>
<Polish>Zamknij MicroDAGR</Polish>
<French>Fermer le MicroDAGR</French>
</Key>
</Package>
</Project>

View File

@ -1,19 +1,29 @@
class CfgVehicles { 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 Turrets {
class MainTurret; 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 { class ACE_Comanche_Test : B_Heli_Attack_01_F {
displayName = "ACE_Comanche_Test"; displayName = "ACE_Comanche_Test";
author = "ACE Team"; author = "ACE Team";
class Library class Library {
{ libTextDesc = "ACE_Comanche_Test";
libTextDesc = "ACE_Comanche_Test"; };
};
class Turrets: Turrets { class Turrets: Turrets {
class MainTurret: MainTurret { class MainTurret: MainTurret {
magazines[] = {"ACE_500Rnd_20mm_shells_Comanche", "24Rnd_ACE_Hellfire_AGM114K"}; magazines[] = {"ACE_500Rnd_20mm_shells_Comanche", "24Rnd_ACE_Hellfire_AGM114K"};
@ -21,4 +31,3 @@ class CfgVehicles {
}; };
}; };
}; };

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