Merge branch 'acemod:master' into master

This commit is contained in:
lambdatiger 2024-04-04 18:49:18 -05:00 committed by GitHub
commit 6c53fff47c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
150 changed files with 615 additions and 455 deletions

View File

@ -16,9 +16,8 @@ GVAR(ammoMagLookup) = call CBA_fnc_createNamespace;
{ {
private _ammo = getText (configFile >> "CfgMagazines" >> _x >> "ammo"); private _ammo = getText (configFile >> "CfgMagazines" >> _x >> "ammo");
if (_ammo != "") then { GVAR(ammoMagLookup) setVariable [_ammo, _x]; }; if (_ammo != "") then { GVAR(ammoMagLookup) setVariable [_ammo, _x]; };
} count (getArray (configFile >> "CfgWeapons" >> "Throw" >> _x >> "magazines")); } forEach (getArray (configFile >> "CfgWeapons" >> "Throw" >> _x >> "magazines"));
nil } forEach getArray (configFile >> "CfgWeapons" >> "Throw" >> "muzzles");
} count getArray (configFile >> "CfgWeapons" >> "Throw" >> "muzzles");
// Add keybinds // Add keybinds

View File

@ -44,8 +44,7 @@
_addedPickUpHelpers pushBack _pickUpHelper; _addedPickUpHelpers pushBack _pickUpHelper;
_throwablesHelped pushBack _x; _throwablesHelped pushBack _x;
}; };
nil } forEach _nearThrowables;
} count _nearThrowables;
_args set [0, getPosASL ACE_player]; _args set [0, getPosASL ACE_player];
_args set [3, _nearThrowables]; _args set [3, _nearThrowables];
@ -56,11 +55,10 @@
{ {
// Only handling with attachTo works nicely // Only handling with attachTo works nicely
_x attachTo [_x getVariable [QGVAR(throwable), objNull], [0, 0, 0]]; _x attachTo [_x getVariable [QGVAR(throwable), objNull], [0, 0, 0]];
nil } forEach _addedPickUpHelpers;
} count _addedPickUpHelpers;
} else { } else {
TRACE_1("Cleaning Pick Up Helpers",count _addedPickUpHelpers); TRACE_1("Cleaning Pick Up Helpers",count _addedPickUpHelpers);
{deleteVehicle _x} count _addedPickUpHelpers; {deleteVehicle _x} forEach _addedPickUpHelpers;
[_idPFH] call CBA_fnc_removePerFrameHandler; [_idPFH] call CBA_fnc_removePerFrameHandler;
}; };
}, 0, [(getPosASL ACE_player) vectorAdd [-100, 0, 0], [], [], []]] call CBA_fnc_addPerFrameHandler; }, 0, [(getPosASL ACE_player) vectorAdd [-100, 0, 0], [], [], []]] call CBA_fnc_addPerFrameHandler;

View File

@ -191,6 +191,7 @@
<Italian>Mostra informazioni sul vento temporaneamente</Italian> <Italian>Mostra informazioni sul vento temporaneamente</Italian>
<Japanese>一時的に風の情報を表示</Japanese> <Japanese>一時的に風の情報を表示</Japanese>
<Korean>바람 정보 임시로 표시</Korean> <Korean>바람 정보 임시로 표시</Korean>
<French>Afficher temporairement les informations sur le vent</French>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Throwing_EnableTempWindInfo_Description"> <Key ID="STR_ACE_Advanced_Throwing_EnableTempWindInfo_Description">
<English>Temporarily display Wind Info while throwing, to aid in placing smoke grenades effectively.</English> <English>Temporarily display Wind Info while throwing, to aid in placing smoke grenades effectively.</English>
@ -198,6 +199,7 @@
<Italian>Mostra le informazioni sul vento durante il lancio di granate, facilitando il piazzamento ottimale di fumogeni.</Italian> <Italian>Mostra le informazioni sul vento durante il lancio di granate, facilitando il piazzamento ottimale di fumogeni.</Italian>
<Japanese>投擲行動中に風向きの情報を一時的に表示し、発煙手榴弾の煙幕を効果的に展開しやすくします。</Japanese> <Japanese>投擲行動中に風向きの情報を一時的に表示し、発煙手榴弾の煙幕を効果的に展開しやすくします。</Japanese>
<Korean>연막탄을 효과적으로 배치하는 데 도움이 되도록 투척하는 동안 일시적으로 바람 정보를 표시합니다.</Korean> <Korean>연막탄을 효과적으로 배치하는 데 도움이 되도록 투척하는 동안 일시적으로 바람 정보를 표시합니다.</Korean>
<French>Affiche les informations sur le vent pendant le lancement pour placer les grenades fumigènes plus efficacement.</French>
</Key> </Key>
<Key ID="STR_ACE_Advanced_Throwing_Prepare"> <Key ID="STR_ACE_Advanced_Throwing_Prepare">
<English>Prepare/Change Throwable</English> <English>Prepare/Change Throwable</English>

View File

@ -30,6 +30,6 @@ _vehicle == vehicle _unit
if (_unit == _x select FULLCREW_UNIT) exitWith { if (_unit == _x select FULLCREW_UNIT) exitWith {
_ejectVarName = format [QGVAR(ejectAction_%1_%2), _x select FULLCREW_ROLE, _x select FULLCREW_TURRETPATH]; _ejectVarName = format [QGVAR(ejectAction_%1_%2), _x select FULLCREW_ROLE, _x select FULLCREW_TURRETPATH];
}; };
} count fullCrew _vehicle; } forEach fullCrew _vehicle;
_vehicle getVariable [_ejectVarName, false] _vehicle getVariable [_ejectVarName, false]
} }

View File

@ -26,6 +26,14 @@ private _cfgWeapons = configfile >> "CfgWeapons";
private _config = _cfgWeapons >> _item; private _config = _cfgWeapons >> _item;
_item = configName _config; _item = configName _config;
// If the switch config entries are inherited, ignore
if (
(inheritsFrom (_config >> "MRT_SwitchItemNextClass") isNotEqualTo (_config >> "MRT_SwitchItemNextClass")) ||
{inheritsFrom (_config >> "MRT_SwitchItemPrevClass") isNotEqualTo (_config >> "MRT_SwitchItemPrevClass")}
) exitWith {
_item // return
};
while { while {
_config = _cfgWeapons >> getText (_config >> "MRT_SwitchItemNextClass"); _config = _cfgWeapons >> getText (_config >> "MRT_SwitchItemNextClass");
isClass _config && {_switchableClasses pushBackUnique configName _config != -1} isClass _config && {_switchableClasses pushBackUnique configName _config != -1}

View File

@ -22,6 +22,10 @@ private _extendedInfo = createHashMap;
// Check if the provided loadout is a CBA extended loadout // Check if the provided loadout is a CBA extended loadout
if (count _loadout == 2) then { if (count _loadout == 2) then {
_extendedInfo = +(_loadout select 1); // Copy the hashmap to prevent events from modifiyng the profileNamespace extendedInfo _extendedInfo = +(_loadout select 1); // Copy the hashmap to prevent events from modifiyng the profileNamespace extendedInfo
if (_extendedInfo isEqualType []) then { // Hashmaps are serialized as arrays, convert back to hashmap
_extendedInfo = createHashMapFromArray _extendedInfo;
_loadout set [1, _extendedInfo]; // Also fix source variable, technically not needed but doesn't hurt
};
_loadout = _loadout select 0; _loadout = _loadout select 0;
}; };

View File

@ -1244,6 +1244,7 @@
<Japanese>熱画像装置内蔵</Japanese> <Japanese>熱画像装置内蔵</Japanese>
<Russian>Интегрирован тепловизор.</Russian> <Russian>Интегрирован тепловизор.</Russian>
<Korean>열화상 내장</Korean> <Korean>열화상 내장</Korean>
<French>Thermique intégrée</French>
</Key> </Key>
<Key ID="STR_ACE_Arsenal_statVisionMode_intPrimTi"> <Key ID="STR_ACE_Arsenal_statVisionMode_intPrimTi">
<English>Thermal &amp; Primary integrated</English> <English>Thermal &amp; Primary integrated</English>
@ -1251,6 +1252,7 @@
<Japanese>熱画像装置内蔵・プライマリに内蔵</Japanese> <Japanese>熱画像装置内蔵・プライマリに内蔵</Japanese>
<Russian>Интегрирован тепловизор и осн.прицел.</Russian> <Russian>Интегрирован тепловизор и осн.прицел.</Russian>
<Korean>열화상과 주무기 내장</Korean> <Korean>열화상과 주무기 내장</Korean>
<French>Thermique et primaire intégrés</French>
</Key> </Key>
<Key ID="STR_ACE_Arsenal_statVisionMode_NoSup"> <Key ID="STR_ACE_Arsenal_statVisionMode_NoSup">
<English>Not Supported</English> <English>Not Supported</English>
@ -1718,6 +1720,7 @@
<Japanese>検索\nCTRL + クリックで検索結果の即時表示を有効化</Japanese> <Japanese>検索\nCTRL + クリックで検索結果の即時表示を有効化</Japanese>
<Korean>검색\nCtrl + 클릭으로 실시간 검색 결과를 활성화</Korean> <Korean>검색\nCtrl + 클릭으로 실시간 검색 결과를 활성화</Korean>
<Russian>Поиск\nCtrl + Click для включения результатов в реальном времени</Russian> <Russian>Поиск\nCtrl + Click для включения результатов в реальном времени</Russian>
<French>Recherche\nCTRL + clic pour modifier les résultats tout en écrivant</French>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -22,11 +22,11 @@ private _type = typeOf _vehicle;
private _config = configOf _vehicle; private _config = configOf _vehicle;
// If vehicle had space given to it via eden/public, then override config hasCargo setting // If vehicle had space given to it via eden/public, then override config hasCargo setting
private _hasCargoPublic = _item getVariable QGVAR(hasCargo); private _hasCargoPublic = _vehicle getVariable QGVAR(hasCargo);
private _hasCargoPublicDefined = !isNil "_canLoadPublic"; private _hasCargoPublicDefined = !isNil "_canLoadPublic";
if (_hasCargoPublicDefined && {!(_hasCargoPublic isEqualType false)}) then { if (_hasCargoPublicDefined && {!(_hasCargoPublic isEqualType false)}) then {
WARNING_4("%1[%2] - Variable %3 is %4 - Should be bool",_item,_type,QGVAR(hasCargo),_hasCargoPublic); WARNING_4("%1[%2] - Variable %3 is %4 - Should be bool",_vehicle,_type,QGVAR(hasCargo),_hasCargoPublic);
}; };
private _hasCargoConfig = getNumber (_config >> QGVAR(hasCargo)) == 1; private _hasCargoConfig = getNumber (_config >> QGVAR(hasCargo)) == 1;

View File

@ -39,6 +39,7 @@
<Russian>Разместить</Russian> <Russian>Разместить</Russian>
<Japanese>配置する</Japanese> <Japanese>配置する</Japanese>
<Korean>배치하기</Korean> <Korean>배치하기</Korean>
<French>Déployer</French>
</Key> </Key>
<Key ID="STR_ACE_Cargo_ScrollAction"> <Key ID="STR_ACE_Cargo_ScrollAction">
<English>Raise/Lower | (Ctrl + Scroll) Rotate</English> <English>Raise/Lower | (Ctrl + Scroll) Rotate</English>
@ -285,6 +286,7 @@
<Japanese>%1 を %2 に積み込んでいます・・・</Japanese> <Japanese>%1 を %2 に積み込んでいます・・・</Japanese>
<Russian>Загружаем %1 в %2...</Russian> <Russian>Загружаем %1 в %2...</Russian>
<Korean>%1을(를) %2에 싣는 중...</Korean> <Korean>%1을(를) %2에 싣는 중...</Korean>
<French>Chargement %1 dans %2...</French>
</Key> </Key>
<Key ID="STR_ACE_Cargo_UnloadingItem"> <Key ID="STR_ACE_Cargo_UnloadingItem">
<English>Unloading %1 from %2...</English> <English>Unloading %1 from %2...</English>
@ -293,6 +295,7 @@
<Japanese>%1 を %2 から降ろしています・・・</Japanese> <Japanese>%1 を %2 から降ろしています・・・</Japanese>
<Russian>Выгружаем %1 из %2...</Russian> <Russian>Выгружаем %1 из %2...</Russian>
<Korean>%1을(를) %2(으)로부터 내리는 중...</Korean> <Korean>%1을(를) %2(으)로부터 내리는 중...</Korean>
<French>Déchargement %1 de %2...</French>
</Key> </Key>
<Key ID="STR_ACE_Cargo_LoadingFailed"> <Key ID="STR_ACE_Cargo_LoadingFailed">
<English>%1&lt;br/&gt;could not be loaded</English> <English>%1&lt;br/&gt;could not be loaded</English>
@ -580,6 +583,7 @@
<Russian>Включить размещение</Russian> <Russian>Включить размещение</Russian>
<Japanese>配置機能を有効化</Japanese> <Japanese>配置機能を有効化</Japanese>
<Korean>배치 활성화</Korean> <Korean>배치 활성화</Korean>
<French>Permettre le placement</French>
</Key> </Key>
<Key ID="STR_ACE_Cargo_enableDeploy_description"> <Key ID="STR_ACE_Cargo_enableDeploy_description">
<English>Controls whether cargo items can be unloaded via the deploy method.</English> <English>Controls whether cargo items can be unloaded via the deploy method.</English>
@ -587,6 +591,7 @@
<Russian>Определяет, можно ли выгружать грузы с помощью метода размещения.</Russian> <Russian>Определяет, можно ли выгружать грузы с помощью метода размещения.</Russian>
<Japanese>配置機能を介して貨物アイテムを降ろすことが出来るかどうかを制御します。</Japanese> <Japanese>配置機能を介して貨物アイテムを降ろすことが出来るかどうかを制御します。</Japanese>
<Korean>배치 방법을 통해 화물 아이템을 내릴 수 있는지 여부를 제어합니다.</Korean> <Korean>배치 방법을 통해 화물 아이템을 내릴 수 있는지 여부를 제어합니다.</Korean>
<French>Contrôler si les éléments de cargaison peuvent être déchargés via la méthode de déploiement.</French>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -40,6 +40,8 @@ if (isNil "_modelPath") then {
case "FxCartridge_12Gauge_Slug_lxWS": { "lxWS\weapons_1_f_lxws\Ammo\cartridge_slug_lxws.p3d" }; case "FxCartridge_12Gauge_Slug_lxWS": { "lxWS\weapons_1_f_lxws\Ammo\cartridge_slug_lxws.p3d" };
case "FxCartridge_12Gauge_Smoke_lxWS": { "lxWS\weapons_1_f_lxws\Ammo\cartridge_smoke_lxws.p3d" }; case "FxCartridge_12Gauge_Smoke_lxWS": { "lxWS\weapons_1_f_lxws\Ammo\cartridge_smoke_lxws.p3d" };
case "FxCartridge_12Gauge_Pellet_lxWS": { "lxWS\weapons_1_f_lxws\Ammo\cartridge_pellet_lxws.p3d" }; case "FxCartridge_12Gauge_Pellet_lxWS": { "lxWS\weapons_1_f_lxws\Ammo\cartridge_pellet_lxws.p3d" };
case "CUP_FxCartridge_545": { "CUP\Weapons\CUP_Weapons_Ammunition\magazines\cartridge545.p3d" };
case "CUP_FxCartridge_939": { "CUP\Weapons\CUP_Weapons_Ammunition\magazines\cartridge939.p3d" };
case "": { "" }; case "": { "" };
default { "A3\Weapons_f\ammo\cartridge.p3d" }; default { "A3\Weapons_f\ammo\cartridge.p3d" };
}; };

View File

@ -145,8 +145,7 @@ if (isServer) then {
INFO_3("[%1] DC - Was Zeus [%2] while controlling unit [%3] - manually clearing `bis_fnc_moduleRemoteControl_owner`",[_x] call FUNC(getName),_dcPlayer,_x); INFO_3("[%1] DC - Was Zeus [%2] while controlling unit [%3] - manually clearing `bis_fnc_moduleRemoteControl_owner`",[_x] call FUNC(getName),_dcPlayer,_x);
_x setVariable ["bis_fnc_moduleRemoteControl_owner", nil, true]; _x setVariable ["bis_fnc_moduleRemoteControl_owner", nil, true];
}; };
nil } forEach (curatorEditableObjects _zeusLogic);
} count (curatorEditableObjects _zeusLogic);
}; };
}]; }];
}; };

View File

@ -43,8 +43,7 @@ if (isServer) then {
{ {
_x params ["", "_eventArgs","_ttl"]; _x params ["", "_eventArgs","_ttl"];
[_eventName, _eventArgs, _ttl] call FUNC(_handleSyncedEvent); [_eventName, _eventArgs, _ttl] call FUNC(_handleSyncedEvent);
false } forEach _eventLog;
} count _eventLog;
INFO_1("[%1] synchronized",_eventName); INFO_1("[%1] synchronized",_eventName);
}; };

View File

@ -1,7 +1,7 @@
#include "..\script_component.hpp" #include "..\script_component.hpp"
/* /*
* Author: Garth 'L-H' de Wet * Author: Garth 'L-H' de Wet
* Adds an item, weapon, or magazine to the unit's inventory or places it in a weaponHolder if no space. * Adds an item, weapon, or magazine to the unit's inventory or places it in a weapon holder if no space.
* *
* Arguments: * Arguments:
* 0: Unit <OBJECT> * 0: Unit <OBJECT>
@ -11,10 +11,10 @@
* *
* Return Value: * Return Value:
* 0: Added to player <BOOL> * 0: Added to player <BOOL>
* 1: weaponholder <OBJECT> * 1: Weapon holder item was placed in <OBJECT>
* *
* Example: * Example:
* [bob, "classname", "", 5] call ace_common_fnc_addToInventory * [player, "30Rnd_65x39_caseless_mag", "", 5] call ace_common_fnc_addToInventory
* *
* Public: Yes * Public: Yes
*/ */
@ -26,6 +26,7 @@ private _type = _classname call FUNC(getItemType);
private _canAdd = false; private _canAdd = false;
private _canFitWeaponSlot = false; private _canFitWeaponSlot = false;
private _addedToUnit = false; private _addedToUnit = false;
private _weaponHolder = _unit;
switch (_container) do { switch (_container) do {
case "vest": { case "vest": {
@ -94,11 +95,13 @@ switch (_type select 0) do {
} else { } else {
_addedToUnit = false; _addedToUnit = false;
private _pos = _unit modelToWorldVisual [0,1,0.05]; _weaponHolder = nearestObject [_unit, "WeaponHolder"];
_unit = createVehicle ["WeaponHolder_Single_F", _pos, [], 0, "NONE"]; if (isNull _weaponHolder || {_unit distance _weaponHolder > 2}) then {
_unit addWeaponCargoGlobal [_classname, 1]; _weaponHolder = createVehicle ["GroundWeaponHolder", _unit, [], 0, "CAN_COLLIDE"];
_unit setPosATL _pos; };
_weaponHolder addWeaponCargoGlobal [_classname, 1];
}; };
}; };
@ -127,11 +130,13 @@ switch (_type select 0) do {
} else { } else {
_addedToUnit = false; _addedToUnit = false;
private _pos = _unit modelToWorldVisual [0,1,0.05]; _weaponHolder = nearestObject [_unit, "WeaponHolder"];
_unit = createVehicle ["WeaponHolder_Single_F", _pos, [], 0, "NONE"]; if (isNull _weaponHolder || {_unit distance _weaponHolder > 2}) then {
_unit addMagazineAmmoCargo [_classname, 1, _ammoCount]; _weaponHolder = createVehicle ["GroundWeaponHolder", _unit, [], 0, "CAN_COLLIDE"];
_unit setPosATL _pos; };
_weaponHolder addMagazineAmmoCargo [_classname, 1, _ammoCount];
}; };
}; };
@ -156,11 +161,13 @@ switch (_type select 0) do {
} else { } else {
_addedToUnit = false; _addedToUnit = false;
private _pos = _unit modelToWorldVisual [0,1,0.05]; _weaponHolder = nearestObject [_unit, "WeaponHolder"];
_unit = createVehicle ["WeaponHolder_Single_F", _pos, [], 0, "NONE"]; if (isNull _weaponHolder || {_unit distance _weaponHolder > 2}) then {
_unit addItemCargoGlobal [_classname, 1]; _weaponHolder = createVehicle ["GroundWeaponHolder", _unit, [], 0, "CAN_COLLIDE"];
_unit setPosATL _pos; };
_weaponHolder addItemCargoGlobal [_classname, 1];
}; };
}; };
@ -170,4 +177,4 @@ switch (_type select 0) do {
}; };
}; };
[_addedToUnit, _unit] [_addedToUnit, _weaponHolder]

View File

@ -28,9 +28,7 @@ if (_list isEqualType "") then {
}; };
{ {
if (!isNil "_x") then { if (!isNil "_x" && {_x isEqualType objNull} && {local _x}) then {
if (_x isEqualType objNull) then {
if (local _x) then {
if (_vehicle) then { if (_vehicle) then {
(vehicle _x) setVariable [_variable, _setting, _global]; (vehicle _x) setVariable [_variable, _setting, _global];
TRACE_6("Set variable vehicle",_x,vehicle _x,typeOf (vehicle _x),_variable,_setting,_global); TRACE_6("Set variable vehicle",_x,vehicle _x,typeOf (vehicle _x),_variable,_setting,_global);
@ -39,7 +37,4 @@ if (_list isEqualType "") then {
TRACE_5("Set variable",_x,typeOf _x,_variable,_setting,_global); TRACE_5("Set variable",_x,typeOf _x,_variable,_setting,_global);
}; };
}; };
}; } forEach _list;
};
false
} count _list;

View File

@ -66,8 +66,7 @@ GVAR(settingsMovedToSQF) = [];
INFO_1("%1 delayed functions running.",count GVAR(runAtSettingsInitialized)); INFO_1("%1 delayed functions running.",count GVAR(runAtSettingsInitialized));
{ {
(_x select 1) call (_x select 0); (_x select 1) call (_x select 0);
false } forEach GVAR(runAtSettingsInitialized);
} count GVAR(runAtSettingsInitialized);
GVAR(runAtSettingsInitialized) = nil; //cleanup GVAR(runAtSettingsInitialized) = nil; //cleanup
#ifdef DEBUG_MODE_FULL #ifdef DEBUG_MODE_FULL

View File

@ -53,8 +53,7 @@ private _refresh = {
{ {
ctrlDelete _x; ctrlDelete _x;
false } forEach _allControls;
} count _allControls;
_allControls = []; _allControls = [];
@ -80,7 +79,6 @@ private _refresh = {
_ctrl ctrlSetTextColor _xcolor; _ctrl ctrlSetTextColor _xcolor;
_ctrl ctrlCommit 0; _ctrl ctrlCommit 0;
_allControls pushBack _ctrl; _allControls pushBack _ctrl;
false
} forEach (missionNamespace getVariable [QGVAR(displayIconList),[]]); } forEach (missionNamespace getVariable [QGVAR(displayIconList),[]]);
}; };
@ -116,8 +114,7 @@ if (_show) then {
if (_x select 0 != _iconId) then { if (_x select 0 != _iconId) then {
_newList pushBack _x; _newList pushBack _x;
}; };
false } forEach _list;
} count _list;
missionNamespace setVariable [QGVAR(displayIconList), _newList]; missionNamespace setVariable [QGVAR(displayIconList), _newList];
call _refresh; call _refresh;

View File

@ -34,8 +34,7 @@ if (IS_ARRAY(_var)) then {
{ {
[_x, _depth] call FUNC(dumpArray); [_x, _depth] call FUNC(dumpArray);
false } forEach _var;
} count _var;
diag_log text format ["%1],", _pad]; diag_log text format ["%1],", _pad];
}; };

View File

@ -25,8 +25,7 @@ if (!isNil "ACE_PFH_COUNTER") then {
private _isActive = ["ACTIVE", "REMOVED"] select isNil {CBA_common_PFHhandles select (_pfh select 0)}; private _isActive = ["ACTIVE", "REMOVED"] select isNil {CBA_common_PFHhandles select (_pfh select 0)};
diag_log text format ["Registered PFH: id=%1 [%2, delay %3], %4:%5", _pfh select 0, _isActive, _parameters select 1, _pfh select 1, _pfh select 2]; diag_log text format ["Registered PFH: id=%1 [%2, delay %3], %4:%5", _pfh select 0, _isActive, _parameters select 1, _pfh select 1, _pfh select 2];
false } forEach ACE_PFH_COUNTER;
} count ACE_PFH_COUNTER;
}; };
diag_log text format ["ACE COUNTER RESULTS"]; diag_log text format ["ACE COUNTER RESULTS"];
@ -50,8 +49,7 @@ diag_log text format ["-------------------------------------------"];
}; };
_iter = _iter + 1; _iter = _iter + 1;
false } forEach _counterEntry;
} count _counterEntry;
// results // results
_averageResult = (_total / _count) * 1000; _averageResult = (_total / _count) * 1000;
@ -61,8 +59,7 @@ diag_log text format ["-------------------------------------------"];
} else { } else {
diag_log text format ["%1: No results", _counterEntry select 0]; diag_log text format ["%1: No results", _counterEntry select 0];
}; };
false } forEach ACE_COUNTERS;
} count ACE_COUNTERS;
/* /*
// Dump PFH Trackers // Dump PFH Trackers

View File

@ -50,8 +50,7 @@ if (_unit isKindOf "CAManBase") then {
_gunner = _unit turretUnit _x; _gunner = _unit turretUnit _x;
_turret = _x; _turret = _x;
}; };
false } forEach allTurrets [_unit, true];
} count allTurrets [_unit, true];
// Ensure that at least the pilot is returned if there is no gunner // Ensure that at least the pilot is returned if there is no gunner
if (isManualFire _unit && {isNull _gunner}) then { if (isManualFire _unit && {isNull _gunner}) then {
_gunner = effectiveCommander _unit; _gunner = effectiveCommander _unit;

View File

@ -35,7 +35,6 @@ private _return = [];
_return pushBack [_x select 0, typeName _val, _val, _x select 2, _x select 5]; _return pushBack [_x select 0, typeName _val, _val, _x select 2, _x select 5];
}; };
}; };
false } forEach GVAR(OBJECT_VARIABLES_STORAGE);
} count GVAR(OBJECT_VARIABLES_STORAGE);
_return _return

View File

@ -29,7 +29,6 @@ private _doorTurrets = [];
if (((getNumber (_config >> "isCopilot")) == 0) && {count getArray (_config >> "weapons") > 0}) then { if (((getNumber (_config >> "isCopilot")) == 0) && {count getArray (_config >> "weapons") > 0}) then {
_doorTurrets pushBack _x; _doorTurrets pushBack _x;
}; };
false } forEach _turrets;
} count _turrets;
_doorTurrets _doorTurrets

View File

@ -28,8 +28,7 @@ private _gunner = objNull;
if (_weapon in (_vehicle weaponsTurret _x)) exitWith { if (_weapon in (_vehicle weaponsTurret _x)) exitWith {
_gunner = _vehicle turretUnit _x; _gunner = _vehicle turretUnit _x;
}; };
false } forEach allTurrets [_vehicle, true];
} count allTurrets [_vehicle, true];
// ensure that at least the pilot is returned if there is no gunner // ensure that at least the pilot is returned if there is no gunner
if (isManualFire _vehicle && {isNull _gunner}) then { if (isManualFire _vehicle && {isNull _gunner}) then {

View File

@ -38,8 +38,7 @@ private _enemiesInVehicle = false; //Possible Side Restriction
{ {
if (side _unit getFriend side _x < 0.6) exitWith {_enemiesInVehicle = true}; if (side _unit getFriend side _x < 0.6) exitWith {_enemiesInVehicle = true};
false } forEach crew _vehicle;
} count crew _vehicle;
switch (_position) do { switch (_position) do {
case "driver" : { case "driver" : {

View File

@ -38,8 +38,7 @@ private _stepY = 1e10;
_stepX = getNumber (_x >> "stepX"); _stepX = getNumber (_x >> "stepX");
_stepY = getNumber (_x >> "stepY"); _stepY = getNumber (_x >> "stepY");
}; };
false } forEach configProperties [_cfgGrid, "isClass _x", false];
} count configProperties [_cfgGrid, "isClass _x", false];
private _letterGrid = false; private _letterGrid = false;

View File

@ -25,8 +25,7 @@ if (_unit isKindOf "CAManBase") then {
} else { } else {
{ {
_return = _return + ({_x == _magazine} count magazines _x); _return = _return + ({_x == _magazine} count magazines _x);
false } forEach crew _unit;
} count crew _unit;
(getMagazineCargo _unit) params [["_magNames", []], ["_magCount", []]]; (getMagazineCargo _unit) params [["_magNames", []], ["_magCount", []]];
{ {

View File

@ -24,7 +24,6 @@ scopeName "main";
{ {
if (_unit == (_vehicle turretUnit _x)) then {_x breakOut "main"}; if (_unit == (_vehicle turretUnit _x)) then {_x breakOut "main"};
nil } forEach allTurrets [_vehicle, true];
} count allTurrets [_vehicle, true];
[] []

View File

@ -33,7 +33,6 @@ private _crew = [];
_crew pushBack (_x select 0); _crew pushBack (_x select 0);
}; };
}; };
false } forEach fullCrew _vehicle;
} count fullCrew _vehicle;
_crew _crew

View File

@ -29,7 +29,6 @@ private _modes = [];
if (_x == "this") then { if (_x == "this") then {
_modes pushBack _weapon; _modes pushBack _weapon;
}; };
false } forEach getArray (_config >> "modes");
} count getArray (_config >> "modes");
_modes _modes

View File

@ -42,7 +42,6 @@ private _ammo = _muzzles apply {0};
_ammo set [_index, _x select 1]; _ammo set [_index, _x select 1];
}; };
}; };
false } forEach magazinesAmmoFull _unit;
} count magazinesAmmoFull _unit;
[_attachments, _muzzles, _magazines, _ammo]; [_attachments, _muzzles, _magazines, _ammo];

View File

@ -28,8 +28,7 @@ if (isNil QGVAR(LSD_Vehicles)) then {
if (_hSCount > 0) then { if (_hSCount > 0) then {
GVAR(LSD_Vehicles) pushBack [_x, _hSCount]; GVAR(LSD_Vehicles) pushBack [_x, _hSCount];
}; };
nil } forEach _units;
} count _units;
if (isNil QGVAR(LSD_Colors)) then { if (isNil QGVAR(LSD_Colors)) then {
GVAR(LSD_Colors) = [ GVAR(LSD_Colors) = [
@ -51,8 +50,7 @@ if (isNil QGVAR(LSD_PFH)) then {
for "_i" from 0 to (_hSCount - 1) do { for "_i" from 0 to (_hSCount - 1) do {
_vehicle setObjectTexture [_i, GVAR(LSD_Colors) select _index]; _vehicle setObjectTexture [_i, GVAR(LSD_Colors) select _index];
}; };
nil } forEach GVAR(LSD_Vehicles);
} count GVAR(LSD_Vehicles);
_index = ((_index + 1) % 7) mod count GVAR(LSD_Colors); _index = ((_index + 1) % 7) mod count GVAR(LSD_Colors);
(_this select 0) set [0, _index]; (_this select 0) set [0, _index];

View File

@ -32,8 +32,7 @@ private _whitespaceList = [];
} else { } else {
_whitespaceList pushBack ([_x] call CBA_fnc_trim); _whitespaceList pushBack ([_x] call CBA_fnc_trim);
}; };
false } forEach _list;
} count _list;
_list = _whitespaceList; _list = _whitespaceList;
TRACE_1("Whitespace List",_list); TRACE_1("Whitespace List",_list);
@ -46,8 +45,7 @@ if (_checkNil) then {
if (!isNil _x) then { if (!isNil _x) then {
_nilCheckedList pushBack (missionNamespace getVariable _x); _nilCheckedList pushBack (missionNamespace getVariable _x);
}; };
false } forEach _list;
} count _list;
_list = _nilCheckedList; _list = _nilCheckedList;
}; };

View File

@ -27,8 +27,7 @@ if (isPlayer _unit) then {
// clear all disable user input // clear all disable user input
{ {
[_x, false] call FUNC(setDisableUserInputStatus); [_x, false] call FUNC(setDisableUserInputStatus);
false } forEach GVAR(DISABLE_USER_INPUT_COLLECTION);
} count GVAR(DISABLE_USER_INPUT_COLLECTION);
}; };
}; };
@ -36,5 +35,4 @@ if (isPlayer _unit) then {
if !(_x select 4) then { if !(_x select 4) then {
_unit setVariable [_x select 0, nil, _x select 3]; _unit setVariable [_x select 0, nil, _x select 3];
}; };
false } forEach ([_unit] call FUNC(getAllDefinedSetVariables));
} count ([_unit] call FUNC(getAllDefinedSetVariables));

View File

@ -24,6 +24,4 @@ _respawnVariables pushBack "ACE_PersistentFunctions";
{ {
_unit setVariable [_x, _unit getVariable _x, true]; _unit setVariable [_x, _unit getVariable _x, true];
false } forEach _respawnVariables;
} count _respawnVariables;
nil

View File

@ -47,7 +47,6 @@ private _array = [];
_array pushBack _x; _array pushBack _x;
}; };
}; };
false } forEach toArray _string;
} count toArray _string;
toString _array // return toString _array // return

View File

@ -29,8 +29,7 @@ if (isNil QGVAR(publishSchedId)) then {
{ {
_x params ["_unit", "_varName"]; _x params ["_unit", "_varName"];
_unit setVariable [_varName, _unit getVariable _varName, true]; _unit setVariable [_varName, _unit getVariable _varName, true];
false } forEach GVAR(publishVarNames);
} count GVAR(publishVarNames);
GVAR(publishVarNames) = []; GVAR(publishVarNames) = [];
GVAR(publishNextTime) = 1e7; GVAR(publishNextTime) = 1e7;

View File

@ -1832,16 +1832,19 @@
<English>Weapon Sway</English> <English>Weapon Sway</English>
<Japanese>手ぶれ</Japanese> <Japanese>手ぶれ</Japanese>
<Korean>무기 흔들림</Korean> <Korean>무기 흔들림</Korean>
<French>Oscillation de l'arme</French>
</Key> </Key>
<Key ID="STR_ACE_Common_EnableSway"> <Key ID="STR_ACE_Common_EnableSway">
<English>Enable Weapon Sway</English> <English>Enable Weapon Sway</English>
<Japanese>手ぶれを有効化</Japanese> <Japanese>手ぶれを有効化</Japanese>
<Korean>무기 흔들림 추가</Korean> <Korean>무기 흔들림 추가</Korean>
<French>Activer l'oscillation de l'arme</French>
</Key> </Key>
<Key ID="STR_ACE_Common_EnableSway_Description"> <Key ID="STR_ACE_Common_EnableSway_Description">
<English>Enables weapon sway influenced by sway factors, such as stance, fatigue and medical condition.\nDisabling this setting will defer sway to vanilla or other mods.</English> <English>Enables weapon sway influenced by sway factors, such as stance, fatigue and medical condition.\nDisabling this setting will defer sway to vanilla or other mods.</English>
<Japanese>姿勢、疲労、負傷状態などの手ぶれ要因に影響を受ける武器照準の揺れを有効にします。\nこの設定を無効にすると、手ぶれの揺れはバニラまたは他のMODの処理に任されます。</Japanese> <Japanese>姿勢、疲労、負傷状態などの手ぶれ要因に影響を受ける武器照準の揺れを有効にします。\nこの設定を無効にすると、手ぶれの揺れはバニラまたは他のMODの処理に任されます。</Japanese>
<Korean>흔들림 계수, 자세, 피로도, 건강 상태 등의 요인에 영향을 받는 무기 흔들림을 활성화합니다.\n이 설정을 비활성화하면 바닐라 또는 다른 모드의 흔들림으로 대체됩니다.</Korean> <Korean>흔들림 계수, 자세, 피로도, 건강 상태 등의 요인에 영향을 받는 무기 흔들림을 활성화합니다.\n이 설정을 비활성화하면 바닐라 또는 다른 모드의 흔들림으로 대체됩니다.</Korean>
<French>Active l'oscillation de l'arme influencé par les facteurs d'oscillation, tels que la position, la fatigue et l'état de santé.\nLa désactivation de ce paramètre reportera l'oscillation à vanilla ou à d'autres mods.</French>
</Key> </Key>
<Key ID="STR_ACE_Common_SwayFactor"> <Key ID="STR_ACE_Common_SwayFactor">
<English>Sway factor</English> <English>Sway factor</English>

View File

@ -1,3 +0,0 @@
[tools]
pboProject_noBinConfig = true
sqfvm_skipConfigChecks = true

View File

@ -1,15 +1,6 @@
#include "script_component.hpp" #include "script_component.hpp"
#include "\z\ace\addons\refuel\defines.hpp" #include "\z\ace\addons\refuel\defines.hpp"
// Remove after next cup release
#pragma hemtt flag pe23_ignore_has_include
#if __has_include("\cup\CUP_Terrains_ACE_compat\config.bin")
#define PATCH_SKIP "CUP_Terrains_ACE_compat"
#endif
#ifdef PATCH_SKIP
ACE_PATCH_NOT_LOADED(ADDON,PATCH_SKIP)
#else
class CfgPatches { class CfgPatches {
class ADDON { class ADDON {
name = COMPONENT_NAME; name = COMPONENT_NAME;
@ -34,5 +25,3 @@ class CfgPatches {
#include "CfgVehicles.hpp" #include "CfgVehicles.hpp"
#include "CfgEventHandlers.hpp" #include "CfgEventHandlers.hpp"
#endif

View File

@ -1,3 +0,0 @@
[tools]
pboProject_noBinConfig = true
sqfvm_skipConfigChecks = true

View File

@ -1,14 +1,5 @@
#include "script_component.hpp" #include "script_component.hpp"
// Remove after next cup release
#pragma hemtt flag pe23_ignore_has_include
#if __has_include("\cup\CUP_Vehicles_ACE_compat\config.bin")
#define PATCH_SKIP "CUP_Vehicles_ACE_compat"
#endif
#ifdef PATCH_SKIP
ACE_PATCH_NOT_LOADED(ADDON,PATCH_SKIP)
#else
class CfgPatches { class CfgPatches {
class ADDON { class ADDON {
name = COMPONENT_NAME; name = COMPONENT_NAME;
@ -29,5 +20,3 @@ class CfgPatches {
#include "CfgEventHandlers.hpp" #include "CfgEventHandlers.hpp"
#include "CfgVehicles.hpp" #include "CfgVehicles.hpp"
#endif

View File

@ -1,3 +0,0 @@
[tools]
pboProject_noBinConfig = true
sqfvm_skipConfigChecks = true

View File

@ -15,7 +15,7 @@ class CfgWeapons {
deployTime = 20; deployTime = 20;
pickupTime = 25; pickupTime = 25;
class assembleTo { class assembleTo {
ace_csw_mortarBaseplate = "CUP_O_2b14_82mm_RU"; ace_csw_mortarBaseplate = "CUP_I_2b14_82mm_AAF";
}; };
}; };
class WeaponSlotsInfo: WeaponSlotsInfo { class WeaponSlotsInfo: WeaponSlotsInfo {
@ -31,7 +31,7 @@ class CfgWeapons {
picture = "\CUP\Weapons\CUP_Weapons_StaticWeapons\M252\data\ui\icomap_mortar_m251_ca.paa"; picture = "\CUP\Weapons\CUP_Weapons_StaticWeapons\M252\data\ui\icomap_mortar_m251_ca.paa";
class ace_csw: ace_csw { class ace_csw: ace_csw {
class assembleTo { class assembleTo {
ace_csw_mortarBaseplate = "CUP_B_M252_US"; ace_csw_mortarBaseplate = "CUP_I_M252_AAF";
}; };
}; };
}; };
@ -42,7 +42,7 @@ class CfgWeapons {
picture = "\CUP\Weapons\CUP_Weapons_StaticWeapons\M252\data\ui\icomap_mortar_m251_ca.paa"; picture = "\CUP\Weapons\CUP_Weapons_StaticWeapons\M252\data\ui\icomap_mortar_m251_ca.paa";
class ace_csw: ace_csw { class ace_csw: ace_csw {
class assembleTo { class assembleTo {
ace_csw_mortarBaseplate = "CUP_B_L16A2_BAF_MPT"; ace_csw_mortarBaseplate = "CUP_I_L16A2_AAF";
}; };
}; };
}; };
@ -58,8 +58,8 @@ class CfgWeapons {
deployTime = 4; deployTime = 4;
pickupTime = 4; pickupTime = 4;
class assembleTo { class assembleTo {
ace_csw_m3Tripod = "CUP_B_M2StaticMG_US"; ace_csw_m3Tripod = "CUP_I_M2StaticMG_AAF";
ace_csw_m3TripodLow = "CUP_B_M2StaticMG_MiniTripod_US"; ace_csw_m3TripodLow = "CUP_I_M2StaticMG_MiniTripod_AAF";
}; };
}; };
class WeaponSlotsInfo: WeaponSlotsInfo { class WeaponSlotsInfo: WeaponSlotsInfo {
@ -81,8 +81,8 @@ class CfgWeapons {
deployTime = 4; deployTime = 4;
pickupTime = 4; pickupTime = 4;
class assembleTo { class assembleTo {
ace_csw_kordTripod = "CUP_O_DSHKM_ChDKZ"; ace_csw_kordTripod = "CUP_I_DSHKM_AAF";
ace_csw_kordTripodLow = "CUP_O_DSHkM_MiniTriPod_ChDKZ"; ace_csw_kordTripodLow = "CUP_I_DSHKM_MiniTriPod_AAF";
}; };
}; };
class WeaponSlotsInfo: WeaponSlotsInfo { class WeaponSlotsInfo: WeaponSlotsInfo {
@ -104,8 +104,8 @@ class CfgWeapons {
deployTime = 4; deployTime = 4;
pickupTime = 4; pickupTime = 4;
class assembleTo { class assembleTo {
ace_csw_kordTripod = "CUP_O_KORD_high_RU"; ace_csw_kordTripod = "CUP_I_KORD_high_AAF";
ace_csw_kordTripodLow = "CUP_O_KORD_RU"; ace_csw_kordTripodLow = "CUP_I_KORD_AAF";
}; };
}; };
class WeaponSlotsInfo: WeaponSlotsInfo { class WeaponSlotsInfo: WeaponSlotsInfo {
@ -127,7 +127,7 @@ class CfgWeapons {
deployTime = 4; deployTime = 4;
pickupTime = 4; pickupTime = 4;
class assembleTo { class assembleTo {
ace_csw_sag30Tripod = "CUP_O_AGS_RU"; ace_csw_sag30Tripod = "CUP_I_AGS_AAF";
}; };
}; };
class WeaponSlotsInfo: WeaponSlotsInfo { class WeaponSlotsInfo: WeaponSlotsInfo {
@ -149,7 +149,7 @@ class CfgWeapons {
deployTime = 4; deployTime = 4;
pickupTime = 4; pickupTime = 4;
class assembleTo { class assembleTo {
ace_csw_m3TripodLow = "CUP_B_MK19_TriPod_US"; ace_csw_m3TripodLow = "CUP_I_MK19_TriPod_AAF";
}; };
}; };
class WeaponSlotsInfo: WeaponSlotsInfo { class WeaponSlotsInfo: WeaponSlotsInfo {
@ -168,7 +168,7 @@ class CfgWeapons {
type = "mount"; type = "mount";
deployTime = 4; deployTime = 4;
pickupTime = 4; pickupTime = 4;
deploy = "CUP_O_Metis_RU"; deploy = "CUP_I_Metis_AAF";
}; };
class WeaponSlotsInfo: WeaponSlotsInfo { class WeaponSlotsInfo: WeaponSlotsInfo {
mass = 300; mass = 300;
@ -186,7 +186,7 @@ class CfgWeapons {
deployTime = 4; deployTime = 4;
pickupTime = 4; pickupTime = 4;
class assembleTo { class assembleTo {
ace_csw_m220Tripod = "CUP_B_TOW_TriPod_US"; ace_csw_m220Tripod = "CUP_I_TOW_TriPod_AAF";
}; };
}; };
class WeaponSlotsInfo: WeaponSlotsInfo { class WeaponSlotsInfo: WeaponSlotsInfo {
@ -200,7 +200,7 @@ class CfgWeapons {
class CUP_TOW2_carry: CUP_TOW_carry { class CUP_TOW2_carry: CUP_TOW_carry {
class ace_csw: ace_csw { class ace_csw: ace_csw {
class assembleTo { class assembleTo {
ace_csw_m220Tripod = "CUP_B_TOW2_TriPod_US"; ace_csw_m220Tripod = "CUP_I_TOW2_TriPod_AAF";
}; };
}; };
}; };
@ -216,7 +216,7 @@ class CfgWeapons {
deployTime = 4; deployTime = 4;
pickupTime = 4; pickupTime = 4;
class assembleTo { class assembleTo {
ace_csw_spg9Tripod = "CUP_B_SPG9_CDF"; ace_csw_spg9Tripod = "CUP_I_SPG9_AAF";
}; };
}; };
class WeaponSlotsInfo: WeaponSlotsInfo { class WeaponSlotsInfo: WeaponSlotsInfo {
@ -287,4 +287,3 @@ class CfgWeapons {
magazineReloadTime = 0.5; magazineReloadTime = 0.5;
}; };
}; };

View File

@ -42,66 +42,77 @@
<Japanese>[CSW] M1 榴弾</Japanese> <Japanese>[CSW] M1 榴弾</Japanese>
<Russian>[CSW] M1 HE</Russian> <Russian>[CSW] M1 HE</Russian>
<Korean>[CSW] M1 고폭탄</Korean> <Korean>[CSW] M1 고폭탄</Korean>
<French>[CSW] M1 HE</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_M84Smoke_displayName"> <Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_M84Smoke_displayName">
<English>[CSW] M84 Smoke</English> <English>[CSW] M84 Smoke</English>
<Japanese>[CSW] M84 白煙弾</Japanese> <Japanese>[CSW] M84 白煙弾</Japanese>
<Russian>[CSW] M84 Дымовая</Russian> <Russian>[CSW] M84 Дымовая</Russian>
<Korean>[CSW] M84 연막탄</Korean> <Korean>[CSW] M84 연막탄</Korean>
<French>[CSW] M84 Fumigène</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_M60A2_displayName"> <Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_M60A2_displayName">
<English>[CSW] M60A2 WP</English> <English>[CSW] M60A2 WP</English>
<Japanese>[CSW] M60A2 白リン弾</Japanese> <Japanese>[CSW] M60A2 白リン弾</Japanese>
<Russian>[CSW] M60A2 WP</Russian> <Russian>[CSW] M60A2 WP</Russian>
<Korean>[CSW] M60A2 백린연막탄</Korean> <Korean>[CSW] M60A2 백린연막탄</Korean>
<French>[CSW] M60A2 WP</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_M67AT_displayName"> <Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_M67AT_displayName">
<English>[CSW] M67 AT Laser Guided</English> <English>[CSW] M67 AT Laser Guided</English>
<Japanese>[CSW] M67 対戦車レーザー誘導弾</Japanese> <Japanese>[CSW] M67 対戦車レーザー誘導弾</Japanese>
<Russian>[CSW] M67 AT Laser Guided</Russian> <Russian>[CSW] M67 AT Laser Guided</Russian>
<Korean>[CSW] M67 레이저유도 대전차탄</Korean> <Korean>[CSW] M67 레이저유도 대전차탄</Korean>
<French>[CSW] M67 AT Guidé laser</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_M314Illum_displayName"> <Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_M314Illum_displayName">
<English>[CSW] M314 Illumination</English> <English>[CSW] M314 Illumination</English>
<Japanese>[CSW] M314 照明弾</Japanese> <Japanese>[CSW] M314 照明弾</Japanese>
<Russian>[CSW] M314 Осветительная</Russian> <Russian>[CSW] M314 Осветительная</Russian>
<Korean>[CSW] M314 조명탄</Korean> <Korean>[CSW] M314 조명탄</Korean>
<French>[CSW] M314 Illumination</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_3OF56_displayName"> <Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_3OF56_displayName">
<English>[CSW] 3OF56 HE</English> <English>[CSW] 3OF56 HE</English>
<Japanese>[CSW] 3OF56 榴弾</Japanese> <Japanese>[CSW] 3OF56 榴弾</Japanese>
<Russian>[CSW] 3OF56 HE</Russian> <Russian>[CSW] 3OF56 HE</Russian>
<Korean>[CSW] 3OF56 고폭탄</Korean> <Korean>[CSW] 3OF56 고폭탄</Korean>
<French>[CSW] 3OF56 HE</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_3OF69M_displayName"> <Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_3OF69M_displayName">
<English>[CSW] 3OF69M Laser Guided</English> <English>[CSW] 3OF69M Laser Guided</English>
<Japanese>[CSW] 3OF69M レーザー誘導弾</Japanese> <Japanese>[CSW] 3OF69M レーザー誘導弾</Japanese>
<Russian>[CSW] 3OF69M Laser Guided</Russian> <Russian>[CSW] 3OF69M Laser Guided</Russian>
<Korean>[CSW] 3OF69M 레이저유도탄</Korean> <Korean>[CSW] 3OF69M 레이저유도탄</Korean>
<French>[CSW] 3OF69M Guidé laser</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_122mmWP_displayName"> <Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_122mmWP_displayName">
<English>[CSW] 122mm WP</English> <English>[CSW] 122mm WP</English>
<Japanese>[CSW] 122mm 白リン弾</Japanese> <Japanese>[CSW] 122mm 白リン弾</Japanese>
<Russian>[CSW] 122mm WP</Russian> <Russian>[CSW] 122mm WP</Russian>
<Korean>[CSW] 122mm 백린탄</Korean> <Korean>[CSW] 122mm 백린탄</Korean>
<French>[CSW] 122mm WP</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_122mmSmoke_displayName"> <Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_122mmSmoke_displayName">
<English>[CSW] D-462 Smoke</English> <English>[CSW] D-462 Smoke</English>
<Japanese>[CSW] D-462 白煙弾</Japanese> <Japanese>[CSW] D-462 白煙弾</Japanese>
<Russian>[CSW] D-462 Дымовая</Russian> <Russian>[CSW] D-462 Дымовая</Russian>
<Korean>[CSW] D-462 연막탄</Korean> <Korean>[CSW] D-462 연막탄</Korean>
<French>[CSW] D-462 Fumigène</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_122mmIllum_displayName"> <Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_122mmIllum_displayName">
<English>[CSW] S-463 Illumination</English> <English>[CSW] S-463 Illumination</English>
<Japanese>[CSW] S-463 照明弾</Japanese> <Japanese>[CSW] S-463 照明弾</Japanese>
<Russian>[CSW] S-463 Осветительная</Russian> <Russian>[CSW] S-463 Осветительная</Russian>
<Korean>[CSW] S-463 조명탄</Korean> <Korean>[CSW] S-463 조명탄</Korean>
<French>[CSW] S-463 Eclairante</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_122mmAT_displayName"> <Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_122mmAT_displayName">
<English>[CSW] BK-6M HEAT</English> <English>[CSW] BK-6M HEAT</English>
<Japanese>[CSW] BK-6M HEAT弾</Japanese> <Japanese>[CSW] BK-6M HEAT弾</Japanese>
<Russian>[CSW] BK-6M HEAT</Russian> <Russian>[CSW] BK-6M HEAT</Russian>
<Korean>[CSW] BK-6M 대전차고폭탄</Korean> <Korean>[CSW] BK-6M 대전차고폭탄</Korean>
<French>[CSW] BK-6M HEAT</French>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -46,6 +46,7 @@
<Japanese>AN/PVS-15 (冬季迷彩, WP)</Japanese> <Japanese>AN/PVS-15 (冬季迷彩, WP)</Japanese>
<Korean>AN/PVS-15 (설상, 백색광)</Korean> <Korean>AN/PVS-15 (설상, 백색광)</Korean>
<Russian>AN/PVS-15 (Белый, БФ)</Russian> <Russian>AN/PVS-15 (Белый, БФ)</Russian>
<French>AN/PVS-15 (Blanc, WP)</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_CUP_Weapons_nightvision_CUP_NVG_GPNVG_black_WP"> <Key ID="STR_ACE_Compat_CUP_Weapons_nightvision_CUP_NVG_GPNVG_black_WP">
<English>GPNVG (Black, WP)</English> <English>GPNVG (Black, WP)</English>
@ -82,6 +83,7 @@
<Japanese>GPNVG (冬季迷彩, WP)</Japanese> <Japanese>GPNVG (冬季迷彩, WP)</Japanese>
<Korean>GPNVG (설상, 백색광)</Korean> <Korean>GPNVG (설상, 백색광)</Korean>
<Russian>AN/PVS-15 (Белый, БФ)</Russian> <Russian>AN/PVS-15 (Белый, БФ)</Russian>
<French>GPNVG (Blanc, WP)</French>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -1,14 +1,5 @@
#include "script_component.hpp" #include "script_component.hpp"
// Remove after next cup release
#pragma hemtt flag pe23_ignore_has_include
#if __has_include("\cup\CUP_Weapons_ACE_compat\config.bin")
#define PATCH_SKIP "CUP_Weapons_ACE_compat"
#endif
#ifdef PATCH_SKIP
ACE_PATCH_NOT_LOADED(ADDON,PATCH_SKIP)
#else
class CfgPatches { class CfgPatches {
class ADDON { class ADDON {
name = COMPONENT_NAME; name = COMPONENT_NAME;
@ -27,5 +18,3 @@ class CfgPatches {
#include "CfgMagazines.hpp" #include "CfgMagazines.hpp"
#include "CfgWeapons.hpp" #include "CfgWeapons.hpp"
#include "CfgEventHandlers.hpp" #include "CfgEventHandlers.hpp"
#endif

View File

@ -5,7 +5,6 @@ class CfgVehicles {
class StaticGrenadeLauncher; class StaticGrenadeLauncher;
class rhs_SPG9_base: AT_01_base_F { class rhs_SPG9_base: AT_01_base_F {
// ENABLE_CSW_ATTRIBUTE;
class ACE_CSW { class ACE_CSW {
enabled = 1; enabled = 1;
proxyWeapon = QGVAR(rhs_weap_SPG9); proxyWeapon = QGVAR(rhs_weap_SPG9);
@ -26,7 +25,6 @@ class CfgVehicles {
}; };
class rhs_Kornet_Base: AT_01_base_F { class rhs_Kornet_Base: AT_01_base_F {
// ENABLE_CSW_ATTRIBUTE;
class ACE_CSW { class ACE_CSW {
enabled = 1; enabled = 1;
proxyWeapon = QGVAR(rhs_weap_9K133_launcher); proxyWeapon = QGVAR(rhs_weap_9K133_launcher);
@ -40,7 +38,6 @@ class CfgVehicles {
}; };
class rhs_Metis_Base: AT_01_base_F { class rhs_Metis_Base: AT_01_base_F {
// ENABLE_CSW_ATTRIBUTE;
class ACE_CSW { class ACE_CSW {
enabled = 1; enabled = 1;
proxyWeapon = QGVAR(rhs_weap_9K115_2_launcher); proxyWeapon = QGVAR(rhs_weap_9K115_2_launcher);
@ -54,7 +51,6 @@ class CfgVehicles {
}; };
class rhs_2b14_82mm_Base: StaticMortar { class rhs_2b14_82mm_Base: StaticMortar {
// ENABLE_CSW_ATTRIBUTE;
class ACE_CSW { class ACE_CSW {
enabled = 1; enabled = 1;
magazineLocation = ""; magazineLocation = "";
@ -99,7 +95,6 @@ class CfgVehicles {
}; };
class RHS_AGS30_TriPod_base: StaticGrenadeLauncher { class RHS_AGS30_TriPod_base: StaticGrenadeLauncher {
// ENABLE_CSW_ATTRIBUTE;
class ACE_CSW { class ACE_CSW {
enabled = 1; enabled = 1;
proxyWeapon = QGVAR(rhs_weap_AGS30); proxyWeapon = QGVAR(rhs_weap_AGS30);

View File

@ -1,7 +1,6 @@
class CfgVehicles { class CfgVehicles {
class StaticMGWeapon; class StaticMGWeapon;
class rhs_DSHKM_base: StaticMGWeapon { class rhs_DSHKM_base: StaticMGWeapon {
// ENABLE_CSW_ATTRIBUTE;
class ACE_CSW { class ACE_CSW {
enabled = 1; enabled = 1;
proxyWeapon = QGVAR(rhs_weap_DSHKM); proxyWeapon = QGVAR(rhs_weap_DSHKM);

View File

@ -10,6 +10,7 @@
<Spanish>[CSW] BGM-71A TOW</Spanish> <Spanish>[CSW] BGM-71A TOW</Spanish>
<German>[CSW] BGM-71A TOW</German> <German>[CSW] BGM-71A TOW</German>
<Italian>[CSW] BGM-71A TOW</Italian> <Italian>[CSW] BGM-71A TOW</Italian>
<French>[CSW] BGM-71A TOW</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_RHS_USF3_CSW_mag_TOWB_displayName"> <Key ID="STR_ACE_Compat_RHS_USF3_CSW_mag_TOWB_displayName">
<English>[CSW] BGM-71B TOW</English> <English>[CSW] BGM-71B TOW</English>
@ -20,6 +21,7 @@
<Spanish>[CSW] BGM-71B TOW</Spanish> <Spanish>[CSW] BGM-71B TOW</Spanish>
<German>[CSW] BGM-71B TOW</German> <German>[CSW] BGM-71B TOW</German>
<Italian>[CSW] BGM-71B TOW</Italian> <Italian>[CSW] BGM-71B TOW</Italian>
<French>[CSW] BGM-71B TOW</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_RHS_USF3_CSW_mag_ITOW_displayName"> <Key ID="STR_ACE_Compat_RHS_USF3_CSW_mag_ITOW_displayName">
<English>[CSW] BGM-71C ITOW</English> <English>[CSW] BGM-71C ITOW</English>
@ -30,6 +32,7 @@
<Spanish>[CSW] BGM-71C ITOW</Spanish> <Spanish>[CSW] BGM-71C ITOW</Spanish>
<German>[CSW] BGM-71C ITOW</German> <German>[CSW] BGM-71C ITOW</German>
<Italian>[CSW] BGM-71C ITOW</Italian> <Italian>[CSW] BGM-71C ITOW</Italian>
<French>[CSW] BGM-71C ITOW</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_RHS_USF3_CSW_mag_TOW2_displayName"> <Key ID="STR_ACE_Compat_RHS_USF3_CSW_mag_TOW2_displayName">
<English>[CSW] BGM-71D TOW-2</English> <English>[CSW] BGM-71D TOW-2</English>
@ -40,6 +43,7 @@
<Spanish>[CSW] BGM-71D TOW-2</Spanish> <Spanish>[CSW] BGM-71D TOW-2</Spanish>
<German>[CSW] BGM-71D TOW-2</German> <German>[CSW] BGM-71D TOW-2</German>
<Italian>[CSW] BGM-71D TOW-2</Italian> <Italian>[CSW] BGM-71D TOW-2</Italian>
<French>[CSW] BGM-71D TOW-2</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_RHS_USF3_CSW_mag_TOW2A_displayName"> <Key ID="STR_ACE_Compat_RHS_USF3_CSW_mag_TOW2A_displayName">
<English>[CSW] BGM-71E TOW-2A</English> <English>[CSW] BGM-71E TOW-2A</English>
@ -50,6 +54,7 @@
<Spanish>[CSW] BGM-71E TOW-2A</Spanish> <Spanish>[CSW] BGM-71E TOW-2A</Spanish>
<German>[CSW] BGM-71E TOW-2A</German> <German>[CSW] BGM-71E TOW-2A</German>
<Italian>[CSW] BGM-71E TOW-2A</Italian> <Italian>[CSW] BGM-71E TOW-2A</Italian>
<French>[CSW] BGM-71E TOW-2A</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_RHS_USF3_CSW_mag_TOW2b_displayName"> <Key ID="STR_ACE_Compat_RHS_USF3_CSW_mag_TOW2b_displayName">
<English>[CSW] BGM-71F TOW-2B</English> <English>[CSW] BGM-71F TOW-2B</English>
@ -60,6 +65,7 @@
<Spanish>[CSW] BGM-71F TOW-2B</Spanish> <Spanish>[CSW] BGM-71F TOW-2B</Spanish>
<German>[CSW] BGM-71F TOW-2B</German> <German>[CSW] BGM-71F TOW-2B</German>
<Italian>[CSW] BGM-71F TOW-2B</Italian> <Italian>[CSW] BGM-71F TOW-2B</Italian>
<French>[CSW] BGM-71F TOW-2B</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_RHS_USF3_CSW_mag_TOW2b_aero_displayName"> <Key ID="STR_ACE_Compat_RHS_USF3_CSW_mag_TOW2b_aero_displayName">
<English>[CSW] BGM-71F-3 TOW-2B AERO</English> <English>[CSW] BGM-71F-3 TOW-2B AERO</English>
@ -70,6 +76,7 @@
<Spanish>[CSW] BGM-71F-3 TOW-2B AERO</Spanish> <Spanish>[CSW] BGM-71F-3 TOW-2B AERO</Spanish>
<German>[CSW] BGM-71F-3 TOW-2B AERO</German> <German>[CSW] BGM-71F-3 TOW-2B AERO</German>
<Italian>[CSW] BGM-71F-3 TOW-2B AERO</Italian> <Italian>[CSW] BGM-71F-3 TOW-2B AERO</Italian>
<French>[CSW] BGM-71F-3 TOW-2B AERO</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_RHS_USF3_CSW_mag_TOW2bb_displayName"> <Key ID="STR_ACE_Compat_RHS_USF3_CSW_mag_TOW2bb_displayName">
<English>[CSW] BGM-71H Bunker Buster</English> <English>[CSW] BGM-71H Bunker Buster</English>
@ -80,6 +87,7 @@
<Spanish>[CSW] BGM-71H Anti-Búnquer</Spanish> <Spanish>[CSW] BGM-71H Anti-Búnquer</Spanish>
<German>[CSW] BGM-71H Bunker Buster</German> <German>[CSW] BGM-71H Bunker Buster</German>
<Italian>[CSW] BGM-71H Anti-Bunker</Italian> <Italian>[CSW] BGM-71H Anti-Bunker</Italian>
<French>[CSW] BGM-71H Bunker Buster</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_RHS_USF3_CSW_48Rnd_40mm_MK19_displayName"> <Key ID="STR_ACE_Compat_RHS_USF3_CSW_48Rnd_40mm_MK19_displayName">
<English>[CSW] Mk. 19 40mm M384 HE</English> <English>[CSW] Mk. 19 40mm M384 HE</English>
@ -90,6 +98,7 @@
<Spanish>[CSW] Mk. 19 40mm M384 HE</Spanish> <Spanish>[CSW] Mk. 19 40mm M384 HE</Spanish>
<German>[CSW] Mk. 19 40mm M384 HE</German> <German>[CSW] Mk. 19 40mm M384 HE</German>
<Italian>[CSW] Mk. 19 40mm M384 HE</Italian> <Italian>[CSW] Mk. 19 40mm M384 HE</Italian>
<French>[CSW] Mk. 19 40mm M384 HE</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_RHS_USF3_CSW_48Rnd_40mm_MK19_M430I_displayName"> <Key ID="STR_ACE_Compat_RHS_USF3_CSW_48Rnd_40mm_MK19_M430I_displayName">
<English>[CSW] Mk. 19 40mm M430I HEDP</English> <English>[CSW] Mk. 19 40mm M430I HEDP</English>
@ -100,6 +109,7 @@
<Spanish>[CSW] Mk. 19 40mm M430I HEDP</Spanish> <Spanish>[CSW] Mk. 19 40mm M430I HEDP</Spanish>
<German>[CSW] Mk. 19 40mm M430I HEDP</German> <German>[CSW] Mk. 19 40mm M430I HEDP</German>
<Italian>[CSW] Mk. 19 40mm M430I HEDP</Italian> <Italian>[CSW] Mk. 19 40mm M430I HEDP</Italian>
<French>[CSW] Mk. 19 40mm M430I HEDP</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_RHS_USF3_CSW_48Rnd_40mm_MK19_M430A1_displayName"> <Key ID="STR_ACE_Compat_RHS_USF3_CSW_48Rnd_40mm_MK19_M430A1_displayName">
<English>[CSW] Mk. 19 40mm M430A1 HEDP</English> <English>[CSW] Mk. 19 40mm M430A1 HEDP</English>
@ -110,6 +120,7 @@
<Spanish>[CSW] Mk. 19 40mm M430A1 HEDP</Spanish> <Spanish>[CSW] Mk. 19 40mm M430A1 HEDP</Spanish>
<German>[CSW] Mk. 19 40mm M430A1 HEDP</German> <German>[CSW] Mk. 19 40mm M430A1 HEDP</German>
<Italian>[CSW] Mk. 19 40mm M430A1 HEDP</Italian> <Italian>[CSW] Mk. 19 40mm M430A1 HEDP</Italian>
<French>[CSW] Mk. 19 40mm M430A1 HEDP</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_RHS_USF3_CSW_48Rnd_40mm_MK19_M1001_displayName"> <Key ID="STR_ACE_Compat_RHS_USF3_CSW_48Rnd_40mm_MK19_M1001_displayName">
<English>[CSW] Mk. 19 40mm M1001 Canister</English> <English>[CSW] Mk. 19 40mm M1001 Canister</English>
@ -120,6 +131,7 @@
<Spanish>[CSW] Mk. 19 40mm M1001 Bote de metralla</Spanish> <Spanish>[CSW] Mk. 19 40mm M1001 Bote de metralla</Spanish>
<German>[CSW] Mk. 19 40mm M1001 Kanister</German> <German>[CSW] Mk. 19 40mm M1001 Kanister</German>
<Italian>[CSW] Mk. 19 40mm M1001 Pallettoni</Italian> <Italian>[CSW] Mk. 19 40mm M1001 Pallettoni</Italian>
<French>[CSW] Mk. 19 40 mm M1001 Chevrotine</French>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -12,6 +12,7 @@
<Russian>Закопать</Russian> <Russian>Закопать</Russian>
<Spanish>Enterrarse</Spanish> <Spanish>Enterrarse</Spanish>
<Portuguese>Escavar</Portuguese> <Portuguese>Escavar</Portuguese>
<French>Creuser</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_Magazine_60mm_HE"> <Key ID="STR_ACE_Compat_SOG_Magazine_60mm_HE">
<English>M49A2 60mm HE</English> <English>M49A2 60mm HE</English>
@ -24,6 +25,7 @@
<Russian>M49A2 60 мм ОФ</Russian> <Russian>M49A2 60 мм ОФ</Russian>
<Spanish>M49A2 60mm HE</Spanish> <Spanish>M49A2 60mm HE</Spanish>
<Portuguese>M49A2 60mm HE</Portuguese> <Portuguese>M49A2 60mm HE</Portuguese>
<French>M49A2 60mm HE</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_Magazine_60mm_WP"> <Key ID="STR_ACE_Compat_SOG_Magazine_60mm_WP">
<English>M302 60mm WP</English> <English>M302 60mm WP</English>
@ -36,6 +38,7 @@
<Russian>M302 60 мм Фосфорная</Russian> <Russian>M302 60 мм Фосфорная</Russian>
<Spanish>M302 60mm WP</Spanish> <Spanish>M302 60mm WP</Spanish>
<Portuguese>M302 60mm WP</Portuguese> <Portuguese>M302 60mm WP</Portuguese>
<French>M302 60mm Phosphore Blanc</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_Magazine_60mm_Lume"> <Key ID="STR_ACE_Compat_SOG_Magazine_60mm_Lume">
<English>M83 60mm Lume</English> <English>M83 60mm Lume</English>
@ -48,6 +51,7 @@
<Russian>M83 60 мм Осветительная</Russian> <Russian>M83 60 мм Осветительная</Russian>
<Spanish>M83 60mm Iluminación</Spanish> <Spanish>M83 60mm Iluminación</Spanish>
<Portuguese>M83 60mm Iluminação</Portuguese> <Portuguese>M83 60mm Iluminação</Portuguese>
<French>M83 60 mm Eclairant</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_Magazine_81mm_HE"> <Key ID="STR_ACE_Compat_SOG_Magazine_81mm_HE">
<English>M374 81mm HE</English> <English>M374 81mm HE</English>
@ -60,6 +64,7 @@
<Russian>M374 81 мм ОФ</Russian> <Russian>M374 81 мм ОФ</Russian>
<Spanish>M374 81mm HE</Spanish> <Spanish>M374 81mm HE</Spanish>
<Portuguese>M374 81mm HE</Portuguese> <Portuguese>M374 81mm HE</Portuguese>
<French>M374 81mm HE</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_Magazine_81mm_WP"> <Key ID="STR_ACE_Compat_SOG_Magazine_81mm_WP">
<English>M375 81mm WP</English> <English>M375 81mm WP</English>
@ -72,6 +77,7 @@
<Russian>M375 81 мм Фосфорная</Russian> <Russian>M375 81 мм Фосфорная</Russian>
<Spanish>M375 81mm WP</Spanish> <Spanish>M375 81mm WP</Spanish>
<Portuguese>M375 81mm WP</Portuguese> <Portuguese>M375 81mm WP</Portuguese>
<French>M375 81mm Phosphore Blanc</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_Magazine_81mm_Lume"> <Key ID="STR_ACE_Compat_SOG_Magazine_81mm_Lume">
<English>M301A3 81mm Lume</English> <English>M301A3 81mm Lume</English>
@ -84,6 +90,7 @@
<Russian>M301A3 81 мм Осветительная</Russian> <Russian>M301A3 81 мм Осветительная</Russian>
<Spanish>M301A3 81mm Iluminación</Spanish> <Spanish>M301A3 81mm Iluminación</Spanish>
<Portuguese>M301A3 81mm Iluminação</Portuguese> <Portuguese>M301A3 81mm Iluminação</Portuguese>
<French>M301A3 81mm Eclairant</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_Magazine_81mm_Smoke"> <Key ID="STR_ACE_Compat_SOG_Magazine_81mm_Smoke">
<English>M57 81mm Smoke</English> <English>M57 81mm Smoke</English>
@ -96,6 +103,7 @@
<Russian>M57 81 мм Дымовая</Russian> <Russian>M57 81 мм Дымовая</Russian>
<Spanish>M57 81mm Smoke</Spanish> <Spanish>M57 81mm Smoke</Spanish>
<Portuguese>M57 81mm Fumígena</Portuguese> <Portuguese>M57 81mm Fumígena</Portuguese>
<French>M57 81mm Fumigène</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_Magazine_82mm_HE"> <Key ID="STR_ACE_Compat_SOG_Magazine_82mm_HE">
<English>O-832D 82mm HE</English> <English>O-832D 82mm HE</English>
@ -108,6 +116,7 @@
<Russian>О-832Д 82 мм ОФ</Russian> <Russian>О-832Д 82 мм ОФ</Russian>
<Spanish>O-832D 82mm HE</Spanish> <Spanish>O-832D 82mm HE</Spanish>
<Portuguese>O-832D 82mm HE</Portuguese> <Portuguese>O-832D 82mm HE</Portuguese>
<French>O-832D 82mm HE</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_Magazine_82mm_WP"> <Key ID="STR_ACE_Compat_SOG_Magazine_82mm_WP">
<English>D-832 82mm WP</English> <English>D-832 82mm WP</English>
@ -120,6 +129,7 @@
<Russian>Д-832 82 мм Фосфорная</Russian> <Russian>Д-832 82 мм Фосфорная</Russian>
<Spanish>D-832 82mm WP</Spanish> <Spanish>D-832 82mm WP</Spanish>
<Portuguese>D-832 82mm WP</Portuguese> <Portuguese>D-832 82mm WP</Portuguese>
<French>D-832 82mm Phosphore Blanc</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_Magazine_82mm_Lume"> <Key ID="STR_ACE_Compat_SOG_Magazine_82mm_Lume">
<English>S-832S 82mm Lume</English> <English>S-832S 82mm Lume</English>
@ -132,6 +142,7 @@
<Russian>С-832С 82 мм Осветительная</Russian> <Russian>С-832С 82 мм Осветительная</Russian>
<Spanish>S-832S 82mm Iluminación</Spanish> <Spanish>S-832S 82mm Iluminación</Spanish>
<Portuguese>S-832S 82mm Iluminação</Portuguese> <Portuguese>S-832S 82mm Iluminação</Portuguese>
<French>S-832S 82mm Eclairant</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_Box_60mm_HE"> <Key ID="STR_ACE_Compat_SOG_Box_60mm_HE">
<English>[ACE] M49A2 60mm HE Box</English> <English>[ACE] M49A2 60mm HE Box</English>
@ -144,6 +155,7 @@
<Russian>[ACE] Коробка M49A2 60 мм ОФ</Russian> <Russian>[ACE] Коробка M49A2 60 мм ОФ</Russian>
<Spanish>[ACE] M49A2 60mm Caja de HE</Spanish> <Spanish>[ACE] M49A2 60mm Caja de HE</Spanish>
<Portuguese>[ACE] M49A2 60mm Caixa de HE</Portuguese> <Portuguese>[ACE] M49A2 60mm Caixa de HE</Portuguese>
<French>[ACE] Scatola M49A2 60mm HE</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_Box_60mm_WP"> <Key ID="STR_ACE_Compat_SOG_Box_60mm_WP">
<English>[ACE] M302 60mm WP Box</English> <English>[ACE] M302 60mm WP Box</English>
@ -156,6 +168,7 @@
<Russian>[ACE] Коробка M302 60 мм Фосфорных</Russian> <Russian>[ACE] Коробка M302 60 мм Фосфорных</Russian>
<Spanish>[ACE] M302 60mm Caja de WP</Spanish> <Spanish>[ACE] M302 60mm Caja de WP</Spanish>
<Portuguese>[ACE] M302 60mm Caixa de WP</Portuguese> <Portuguese>[ACE] M302 60mm Caixa de WP</Portuguese>
<French>[ACE] M302 60mm Phosphore Blanc Box</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_Box_60mm_Lume"> <Key ID="STR_ACE_Compat_SOG_Box_60mm_Lume">
<English>[ACE] M83 60mm Lume Box</English> <English>[ACE] M83 60mm Lume Box</English>
@ -168,6 +181,7 @@
<Russian>[ACE] Коробка M83 60 мм Осветительных</Russian> <Russian>[ACE] Коробка M83 60 мм Осветительных</Russian>
<Spanish>[ACE] M83 60mm Caja de Iluminación</Spanish> <Spanish>[ACE] M83 60mm Caja de Iluminación</Spanish>
<Portuguese>[ACE] M83 60mm Caixa de Iluminação</Portuguese> <Portuguese>[ACE] M83 60mm Caixa de Iluminação</Portuguese>
<French>[ACE] M83 60mm Eclairant Box</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_Box_81mm_HE"> <Key ID="STR_ACE_Compat_SOG_Box_81mm_HE">
<English>[ACE] M374 81mm HE Box</English> <English>[ACE] M374 81mm HE Box</English>
@ -180,6 +194,7 @@
<Russian>[ACE] Коробка M374 81 мм ОФ</Russian> <Russian>[ACE] Коробка M374 81 мм ОФ</Russian>
<Spanish>[ACE] M374 81mm Caja de HE</Spanish> <Spanish>[ACE] M374 81mm Caja de HE</Spanish>
<Portuguese>[ACE] M374 81mm Caixa de HE</Portuguese> <Portuguese>[ACE] M374 81mm Caixa de HE</Portuguese>
<French>[ACE] Scatola M374 81mm HE</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_Box_81mm_WP"> <Key ID="STR_ACE_Compat_SOG_Box_81mm_WP">
<English>[ACE] M375 81mm WP Box</English> <English>[ACE] M375 81mm WP Box</English>
@ -192,6 +207,7 @@
<Russian>[ACE] Коробка M375 81 мм Фосфорных</Russian> <Russian>[ACE] Коробка M375 81 мм Фосфорных</Russian>
<Spanish>[ACE] M375 81mm Caja de WP</Spanish> <Spanish>[ACE] M375 81mm Caja de WP</Spanish>
<Portuguese>[ACE] M375 81mm Caixa de WP</Portuguese> <Portuguese>[ACE] M375 81mm Caixa de WP</Portuguese>
<French>[ACE] M375 81mm Phosphore Blanc Box</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_Box_81mm_Lume"> <Key ID="STR_ACE_Compat_SOG_Box_81mm_Lume">
<English>[ACE] M301A3 81mm Lume Box</English> <English>[ACE] M301A3 81mm Lume Box</English>
@ -204,6 +220,7 @@
<Russian>[ACE] Коробка M301A3 81 мм Осветительных</Russian> <Russian>[ACE] Коробка M301A3 81 мм Осветительных</Russian>
<Spanish>[ACE] M301A3 81mm Caja de Iluminación</Spanish> <Spanish>[ACE] M301A3 81mm Caja de Iluminación</Spanish>
<Portuguese>[ACE] M301A3 81mm Caixa de Iluminação</Portuguese> <Portuguese>[ACE] M301A3 81mm Caixa de Iluminação</Portuguese>
<French>[ACE] M301A3 81mm Eclairant Box</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_Box_81mm_Smoke"> <Key ID="STR_ACE_Compat_SOG_Box_81mm_Smoke">
<English>[ACE] M57 81mm Smoke Box</English> <English>[ACE] M57 81mm Smoke Box</English>
@ -216,6 +233,7 @@
<Russian>[ACE] Коробка M57 81 мм Дымовых</Russian> <Russian>[ACE] Коробка M57 81 мм Дымовых</Russian>
<Spanish>[ACE] M57 81mm Caja de Humo</Spanish> <Spanish>[ACE] M57 81mm Caja de Humo</Spanish>
<Portuguese>[ACE] M57 81mm Caixa de Fumígena</Portuguese> <Portuguese>[ACE] M57 81mm Caixa de Fumígena</Portuguese>
<French>[ACE] M57 81mm Fumigène Box</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_Box_82mm_HE"> <Key ID="STR_ACE_Compat_SOG_Box_82mm_HE">
<English>[ACE] O-832D 82mm HE Box</English> <English>[ACE] O-832D 82mm HE Box</English>
@ -228,6 +246,7 @@
<Russian>[ACE] Коробка О-832Д 82 мм ОФ</Russian> <Russian>[ACE] Коробка О-832Д 82 мм ОФ</Russian>
<Spanish>[ACE] O-832D 82mm Caja de HE</Spanish> <Spanish>[ACE] O-832D 82mm Caja de HE</Spanish>
<Portuguese>[ACE] O-832D 82mm Caixa de HE</Portuguese> <Portuguese>[ACE] O-832D 82mm Caixa de HE</Portuguese>
<French>[ACE] Scatola O-832D 82mm HE</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_Box_82mm_WP"> <Key ID="STR_ACE_Compat_SOG_Box_82mm_WP">
<English>[ACE] D-832 82mm WP Box</English> <English>[ACE] D-832 82mm WP Box</English>
@ -240,6 +259,7 @@
<Russian>[ACE] Коробка Д-832 82 мм Фосфорных</Russian> <Russian>[ACE] Коробка Д-832 82 мм Фосфорных</Russian>
<Spanish>[ACE] D-832 82mm Caja de WP</Spanish> <Spanish>[ACE] D-832 82mm Caja de WP</Spanish>
<Portuguese>[ACE] D-832 82mm Caixa de WP</Portuguese> <Portuguese>[ACE] D-832 82mm Caixa de WP</Portuguese>
<French>[ACE] D-832 82mm Phosphore Blanc Box</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_Box_82mm_Lume"> <Key ID="STR_ACE_Compat_SOG_Box_82mm_Lume">
<English>[ACE] S-832S 82mm Lume Box</English> <English>[ACE] S-832S 82mm Lume Box</English>
@ -252,6 +272,7 @@
<Russian>[ACE] Коробка С-832С 82 мм Осветительных</Russian> <Russian>[ACE] Коробка С-832С 82 мм Осветительных</Russian>
<Spanish>[ACE] S-832S 82mm Caja de Iluminación</Spanish> <Spanish>[ACE] S-832S 82mm Caja de Iluminación</Spanish>
<Portuguese>[ACE] S-832S 82mm Caixa de Iluminação</Portuguese> <Portuguese>[ACE] S-832S 82mm Caixa de Iluminação</Portuguese>
<French>[ACE] S-832S 82mm Eclairant Box</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_Action_DigSpiderhole"> <Key ID="STR_ACE_Compat_SOG_Action_DigSpiderhole">
<English>Dig Spiderhole</English> <English>Dig Spiderhole</English>
@ -264,6 +285,7 @@
<Russian>Выкопать паучью дыру</Russian> <Russian>Выкопать паучью дыру</Russian>
<Spanish>Excavar Agujero de araña</Spanish> <Spanish>Excavar Agujero de araña</Spanish>
<Portuguese>Escavar buraco de aranha</Portuguese> <Portuguese>Escavar buraco de aranha</Portuguese>
<French>Creuser un trou d'araignée</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_Action_DigSpiderholeAngled"> <Key ID="STR_ACE_Compat_SOG_Action_DigSpiderholeAngled">
<English>Dig Spiderhole (Angled Cover)</English> <English>Dig Spiderhole (Angled Cover)</English>
@ -276,6 +298,7 @@
<Russian>Выкопать крытую паучью дыру</Russian> <Russian>Выкопать крытую паучью дыру</Russian>
<Spanish>Excavar Agujero de araña (Cubierta inclinada)</Spanish> <Spanish>Excavar Agujero de araña (Cubierta inclinada)</Spanish>
<Portuguese>Escavar buraco de aranha (Cobertura inclinada)</Portuguese> <Portuguese>Escavar buraco de aranha (Cobertura inclinada)</Portuguese>
<French>Creuser un trou d'araignée (couverture d'angle)</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_Action_DigSpiderholeDual"> <Key ID="STR_ACE_Compat_SOG_Action_DigSpiderholeDual">
<English>Dig Spiderhole (Dual)</English> <English>Dig Spiderhole (Dual)</English>
@ -288,6 +311,7 @@
<Russian>Выкопать двойную паучью дыру</Russian> <Russian>Выкопать двойную паучью дыру</Russian>
<Spanish>Excavar Agujero de araña (Doble)</Spanish> <Spanish>Excavar Agujero de araña (Doble)</Spanish>
<Portuguese>Escavar buraco de aranha (Duplo)</Portuguese> <Portuguese>Escavar buraco de aranha (Duplo)</Portuguese>
<French>Creuser un trou d'araignée (double)</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_CSW_M1919A4"> <Key ID="STR_ACE_Compat_SOG_CSW_M1919A4">
<English>[CSW] M1919A4 Gun Bag</English> <English>[CSW] M1919A4 Gun Bag</English>
@ -300,6 +324,7 @@
<Russian>[CSW] Сумка с M1919A4</Russian> <Russian>[CSW] Сумка с M1919A4</Russian>
<Spanish>[CSW] M1919A4 Bolsa para arma</Spanish> <Spanish>[CSW] M1919A4 Bolsa para arma</Spanish>
<Portuguese>[CSW] Bolsa para M1919A4</Portuguese> <Portuguese>[CSW] Bolsa para M1919A4</Portuguese>
<French>[CSW] M1919A4 Gun Bag</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_CSW_M1919A6"> <Key ID="STR_ACE_Compat_SOG_CSW_M1919A6">
<English>[CSW] M1919A6 Gun Bag</English> <English>[CSW] M1919A6 Gun Bag</English>
@ -312,6 +337,7 @@
<Russian>[CSW] Сумка с M1919A6</Russian> <Russian>[CSW] Сумка с M1919A6</Russian>
<Spanish>[CSW] M1919A6 Bolsa para arma</Spanish> <Spanish>[CSW] M1919A6 Bolsa para arma</Spanish>
<Portuguese>[CSW] Bolsa para M1919A6</Portuguese> <Portuguese>[CSW] Bolsa para M1919A6</Portuguese>
<French>[CSW] M1919A6 Gun Bag</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_CSW_M60"> <Key ID="STR_ACE_Compat_SOG_CSW_M60">
<English>[CSW] M60 Gun Bag</English> <English>[CSW] M60 Gun Bag</English>
@ -324,6 +350,7 @@
<Russian>[CSW] Сумка с M60</Russian> <Russian>[CSW] Сумка с M60</Russian>
<Spanish>[CSW] M60 Bolsa para arma</Spanish> <Spanish>[CSW] M60 Bolsa para arma</Spanish>
<Portuguese>[CSW] Bolsa para M60</Portuguese> <Portuguese>[CSW] Bolsa para M60</Portuguese>
<French>[CSW] M60 Gun Bag</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_CSW_DSHKM_Shield"> <Key ID="STR_ACE_Compat_SOG_CSW_DSHKM_Shield">
<English>[CSW] DShK (Shield) Gun Bag</English> <English>[CSW] DShK (Shield) Gun Bag</English>
@ -336,6 +363,7 @@
<Russian>[CSW] Сумка с ДШК (со щитом)</Russian> <Russian>[CSW] Сумка с ДШК (со щитом)</Russian>
<Spanish>[CSW] DShK (Apantallada) Bolsa para arma</Spanish> <Spanish>[CSW] DShK (Apantallada) Bolsa para arma</Spanish>
<Portuguese>[CSW] Bolsa para DShK (Escudo)</Portuguese> <Portuguese>[CSW] Bolsa para DShK (Escudo)</Portuguese>
<French>[CSW] DShK (Shield) Gun Bag</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_CSW_DSHKM_AA"> <Key ID="STR_ACE_Compat_SOG_CSW_DSHKM_AA">
<English>[CSW] DShK (AA) Gun Bag</English> <English>[CSW] DShK (AA) Gun Bag</English>
@ -348,6 +376,7 @@
<Russian>[CSW] Сумка с ДШК (зенитный)</Russian> <Russian>[CSW] Сумка с ДШК (зенитный)</Russian>
<Spanish>[CSW] DShK (AA) Bolsa para arma</Spanish> <Spanish>[CSW] DShK (AA) Bolsa para arma</Spanish>
<Portuguese>[CSW] Bolsa para DShK (AA)</Portuguese> <Portuguese>[CSW] Bolsa para DShK (AA)</Portuguese>
<French>[CSW] DShK (AA) Gun Bag</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_CSW_RPD"> <Key ID="STR_ACE_Compat_SOG_CSW_RPD">
<English>[CSW] RPD Gun Bag</English> <English>[CSW] RPD Gun Bag</English>
@ -360,6 +389,7 @@
<Russian>[CSW] Сумка с РПД</Russian> <Russian>[CSW] Сумка с РПД</Russian>
<Spanish>[CSW] RPD Bolsa para arma</Spanish> <Spanish>[CSW] RPD Bolsa para arma</Spanish>
<Portuguese>[CSW] Bolsa para RPD</Portuguese> <Portuguese>[CSW] Bolsa para RPD</Portuguese>
<French>[CSW] RPD Gun Bag</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_CSW_PK"> <Key ID="STR_ACE_Compat_SOG_CSW_PK">
<English>[CSW] PK Gun Bag</English> <English>[CSW] PK Gun Bag</English>
@ -372,6 +402,7 @@
<Russian>[CSW] Сумка с ПК</Russian> <Russian>[CSW] Сумка с ПК</Russian>
<Spanish>[CSW] PK Bolsa para arma</Spanish> <Spanish>[CSW] PK Bolsa para arma</Spanish>
<Portuguese>[CSW] Bolsa para PK</Portuguese> <Portuguese>[CSW] Bolsa para PK</Portuguese>
<French>[CSW] PK Sac d'armes</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_CSW_MG42"> <Key ID="STR_ACE_Compat_SOG_CSW_MG42">
<English>[CSW] MG42 Gun Bag</English> <English>[CSW] MG42 Gun Bag</English>
@ -384,6 +415,7 @@
<Russian>[CSW] Сумка с MG42</Russian> <Russian>[CSW] Сумка с MG42</Russian>
<Spanish>[CSW] MG42 Bolsa para arma</Spanish> <Spanish>[CSW] MG42 Bolsa para arma</Spanish>
<Portuguese>[CSW] Bolsa para MG42</Portuguese> <Portuguese>[CSW] Bolsa para MG42</Portuguese>
<French>[CSW] MG42 Sac d'armes</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_CSW_SGM"> <Key ID="STR_ACE_Compat_SOG_CSW_SGM">
<English>[CSW] SGM Gun Bag</English> <English>[CSW] SGM Gun Bag</English>
@ -396,6 +428,7 @@
<Russian>[CSW] Сумка с СГМ</Russian> <Russian>[CSW] Сумка с СГМ</Russian>
<Spanish>[CSW] SGM Bolsa para arma</Spanish> <Spanish>[CSW] SGM Bolsa para arma</Spanish>
<Portuguese>[CSW] Bolsa para SGM</Portuguese> <Portuguese>[CSW] Bolsa para SGM</Portuguese>
<French>[CSW] SGM Sac d'armes</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_CSW_SGM_Shield"> <Key ID="STR_ACE_Compat_SOG_CSW_SGM_Shield">
<English>[CSW] SGM (Shield) Gun Bag</English> <English>[CSW] SGM (Shield) Gun Bag</English>
@ -408,6 +441,7 @@
<Russian>[CSW] Сумка с СГМ (со щитом)</Russian> <Russian>[CSW] Сумка с СГМ (со щитом)</Russian>
<Spanish>[CSW] SGM (Apantallada) Bolsa para arma</Spanish> <Spanish>[CSW] SGM (Apantallada) Bolsa para arma</Spanish>
<Portuguese>[CSW] Bolsa para SGM (Escudo)</Portuguese> <Portuguese>[CSW] Bolsa para SGM (Escudo)</Portuguese>
<French>[CSW] SGM Sac d'armes (avec bouclier)</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_CSW_Mk18"> <Key ID="STR_ACE_Compat_SOG_CSW_Mk18">
<English>[CSW] Mk18 Gun Bag</English> <English>[CSW] Mk18 Gun Bag</English>
@ -420,6 +454,7 @@
<Russian>[CSW] Сумка с Mk18</Russian> <Russian>[CSW] Сумка с Mk18</Russian>
<Spanish>[CSW] Mk18 Bolsa para arma</Spanish> <Spanish>[CSW] Mk18 Bolsa para arma</Spanish>
<Portuguese>[CSW] Bolsa para Mk18</Portuguese> <Portuguese>[CSW] Bolsa para Mk18</Portuguese>
<French>[CSW] Mk18 Sac d'armes</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_CSW_M29"> <Key ID="STR_ACE_Compat_SOG_CSW_M29">
<English>[CSW] M29 Mortar Tube</English> <English>[CSW] M29 Mortar Tube</English>
@ -432,6 +467,7 @@
<Russian>[CSW] Сумка с миномётом M29</Russian> <Russian>[CSW] Сумка с миномётом M29</Russian>
<Spanish>[CSW] M29 Tubo de Mortero</Spanish> <Spanish>[CSW] M29 Tubo de Mortero</Spanish>
<Portuguese>[CSW] M29 Tubo de Morteiro</Portuguese> <Portuguese>[CSW] M29 Tubo de Morteiro</Portuguese>
<French>[CSW] Tube de mortier M29</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_CSW_M2"> <Key ID="STR_ACE_Compat_SOG_CSW_M2">
<English>[CSW] M2 Mortar Tube</English> <English>[CSW] M2 Mortar Tube</English>
@ -444,6 +480,7 @@
<Russian>[CSW] Сумка с миномётом M2</Russian> <Russian>[CSW] Сумка с миномётом M2</Russian>
<Spanish>[CSW] M2 Tubo de mortero</Spanish> <Spanish>[CSW] M2 Tubo de mortero</Spanish>
<Portuguese>[CSW] M2 Tubo de Morteiro</Portuguese> <Portuguese>[CSW] M2 Tubo de Morteiro</Portuguese>
<French>[CSW] Tube de mortier M2 </French>
</Key> </Key>
<Key ID="STR_ACE_Compat_SOG_CSW_Type53"> <Key ID="STR_ACE_Compat_SOG_CSW_Type53">
<English>[CSW] Type 53 Mortar Tube</English> <English>[CSW] Type 53 Mortar Tube</English>
@ -456,6 +493,7 @@
<Russian>[CSW] Сумка с миномётом Type 53</Russian> <Russian>[CSW] Сумка с миномётом Type 53</Russian>
<Spanish>[CSW] Type 53 Tubo de mortero</Spanish> <Spanish>[CSW] Type 53 Tubo de mortero</Spanish>
<Portuguese>[CSW] Type 53 Tubo de Morteiro</Portuguese> <Portuguese>[CSW] Type 53 Tubo de Morteiro</Portuguese>
<French>[CSW] Tube de mortier Type 53</French>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -8,6 +8,7 @@
<Italian>AA12</Italian> <Italian>AA12</Italian>
<Japanese>AA12</Japanese> <Japanese>AA12</Japanese>
<Russian>AA12</Russian> <Russian>AA12</Russian>
<French>AA12</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_WS_RealisticNames_AA40_Tan_Name"> <Key ID="STR_ACE_Compat_WS_RealisticNames_AA40_Tan_Name">
<English>AA12 (Sand)</English> <English>AA12 (Sand)</English>
@ -16,6 +17,7 @@
<Italian>AA12 (Sabbia)</Italian> <Italian>AA12 (Sabbia)</Italian>
<Japanese>AA12 (サンド)</Japanese> <Japanese>AA12 (サンド)</Japanese>
<Russian>AA12 (Песочный)</Russian> <Russian>AA12 (Песочный)</Russian>
<French>AA12 (Sable)</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_WS_RealisticNames_AA40_Snake_Name"> <Key ID="STR_ACE_Compat_WS_RealisticNames_AA40_Snake_Name">
<English>AA12 (Snake)</English> <English>AA12 (Snake)</English>
@ -32,6 +34,7 @@
<Italian>Galil ARM</Italian> <Italian>Galil ARM</Italian>
<Japanese>ガリル ARM</Japanese> <Japanese>ガリル ARM</Japanese>
<Russian>Galil ARM</Russian> <Russian>Galil ARM</Russian>
<French>Galil ARM</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_WS_RealisticNames_Galat_Old_Name"> <Key ID="STR_ACE_Compat_WS_RealisticNames_Galat_Old_Name">
<English>Galil ARM (Old)</English> <English>Galil ARM (Old)</English>
@ -40,6 +43,7 @@
<Italian>Galil ARM (Vecchio)</Italian> <Italian>Galil ARM (Vecchio)</Italian>
<Japanese>ガリル ARM (使い古し)</Japanese> <Japanese>ガリル ARM (使い古し)</Japanese>
<Russian>Galil ARM (Старый)</Russian> <Russian>Galil ARM (Старый)</Russian>
<French>Galil ARM (Ancien)</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_WS_RealisticNames_GLX_Name"> <Key ID="STR_ACE_Compat_WS_RealisticNames_GLX_Name">
<English>GLX 160</English> <English>GLX 160</English>
@ -48,6 +52,7 @@
<Italian>GLX-160</Italian> <Italian>GLX-160</Italian>
<Japanese>GLX 160</Japanese> <Japanese>GLX 160</Japanese>
<Russian>GLX 160</Russian> <Russian>GLX 160</Russian>
<French>GLX 160</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_WS_RealisticNames_GLX_Snake_Name"> <Key ID="STR_ACE_Compat_WS_RealisticNames_GLX_Snake_Name">
<English>GLX 160 (Snake)</English> <English>GLX 160 (Snake)</English>
@ -64,6 +69,7 @@
<Italian>GLX-160 (Hex)</Italian> <Italian>GLX-160 (Hex)</Italian>
<Japanese>GLX 160 (六角形迷彩)</Japanese> <Japanese>GLX 160 (六角形迷彩)</Japanese>
<Russian>GLX 160 (Гекс)</Russian> <Russian>GLX 160 (Гекс)</Russian>
<French>GLX 160 (Hex)</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_WS_RealisticNames_GLX_GreenHex_Name"> <Key ID="STR_ACE_Compat_WS_RealisticNames_GLX_GreenHex_Name">
<English>GLX 160 (Green Hex)</English> <English>GLX 160 (Green Hex)</English>
@ -72,6 +78,7 @@
<Italian>GLX-160 (Hex Verde)</Italian> <Italian>GLX-160 (Hex Verde)</Italian>
<Japanese>GLX 160 (緑六角形迷彩)</Japanese> <Japanese>GLX 160 (緑六角形迷彩)</Japanese>
<Russian>GLX 160 (Зеленый Гекс)</Russian> <Russian>GLX 160 (Зеленый Гекс)</Russian>
<French>GLX 160 (Vert Hex)</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_WS_RealisticNames_GLX_Camo_Name"> <Key ID="STR_ACE_Compat_WS_RealisticNames_GLX_Camo_Name">
<English>GLX 160 (Camo)</English> <English>GLX 160 (Camo)</English>
@ -80,6 +87,7 @@
<Italian>GLX-160 (Mimetica)</Italian> <Italian>GLX-160 (Mimetica)</Italian>
<Japanese>GLX 160 (迷彩)</Japanese> <Japanese>GLX 160 (迷彩)</Japanese>
<Russian>GLX 160 (Камуфляж)</Russian> <Russian>GLX 160 (Камуфляж)</Russian>
<French>GLX 160 (Camo)</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_WS_RealisticNames_GLX_Tan_Name"> <Key ID="STR_ACE_Compat_WS_RealisticNames_GLX_Tan_Name">
<English>GLX 160 (Sand)</English> <English>GLX 160 (Sand)</English>
@ -88,6 +96,7 @@
<Italian>GLX-160 (Sabbia)</Italian> <Italian>GLX-160 (Sabbia)</Italian>
<Japanese>GLX 160 (サンド)</Japanese> <Japanese>GLX 160 (サンド)</Japanese>
<Russian>GLX 160 (Песочный)</Russian> <Russian>GLX 160 (Песочный)</Russian>
<French>GLX 160 (Sable)</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_WS_RealisticNames_EBR_Black_Name"> <Key ID="STR_ACE_Compat_WS_RealisticNames_EBR_Black_Name">
<English>Mk14 Mod 1 EBR (Black)</English> <English>Mk14 Mod 1 EBR (Black)</English>
@ -96,6 +105,7 @@
<Italian>Mk14 Mod 1 EBR (Nero)</Italian> <Italian>Mk14 Mod 1 EBR (Nero)</Italian>
<Japanese>Mk14 Mod 1 EBR (ブラック)</Japanese> <Japanese>Mk14 Mod 1 EBR (ブラック)</Japanese>
<Russian>Mk14 Mod 1 EBR (Черный)</Russian> <Russian>Mk14 Mod 1 EBR (Черный)</Russian>
<French>Mk14 Mod 1 EBR (Noir)</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_WS_RealisticNames_EBR_Snake_Name"> <Key ID="STR_ACE_Compat_WS_RealisticNames_EBR_Snake_Name">
<English>Mk14 Mod 1 EBR (Snake)</English> <English>Mk14 Mod 1 EBR (Snake)</English>
@ -111,6 +121,7 @@
<German>Vektor SS-77</German> <German>Vektor SS-77</German>
<Japanese>ヴェクター SS-77</Japanese> <Japanese>ヴェクター SS-77</Japanese>
<Russian>Vektor SS-77</Russian> <Russian>Vektor SS-77</Russian>
<French>Vektor SS-77</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_WS_RealisticNames_S77_AAF_Name"> <Key ID="STR_ACE_Compat_WS_RealisticNames_S77_AAF_Name">
<English>Vektor SS-77 (Camo)</English> <English>Vektor SS-77 (Camo)</English>
@ -119,6 +130,7 @@
<Italian>Vektor SS-77 (Mimetica)</Italian> <Italian>Vektor SS-77 (Mimetica)</Italian>
<Japanese>ヴェクター SS-77 (迷彩)</Japanese> <Japanese>ヴェクター SS-77 (迷彩)</Japanese>
<Russian>Vektor SS-77 (Камуфляж)</Russian> <Russian>Vektor SS-77 (Камуфляж)</Russian>
<French>Vektor SS-77 (Camo)</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_WS_RealisticNames_S77_Hex_Name"> <Key ID="STR_ACE_Compat_WS_RealisticNames_S77_Hex_Name">
<English>Vektor SS-77 (Hex)</English> <English>Vektor SS-77 (Hex)</English>
@ -127,6 +139,7 @@
<Italian>Vektor SS-77 (Hex)</Italian> <Italian>Vektor SS-77 (Hex)</Italian>
<Japanese>ヴェクター SS-77 (六角形迷彩)</Japanese> <Japanese>ヴェクター SS-77 (六角形迷彩)</Japanese>
<Russian>Vektor SS-77 (гекс)</Russian> <Russian>Vektor SS-77 (гекс)</Russian>
<French>Vektor SS-77 (Hex)</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_WS_RealisticNames_S77_GreenHex_Name"> <Key ID="STR_ACE_Compat_WS_RealisticNames_S77_GreenHex_Name">
<English>Vektor SS-77 (Green Hex)</English> <English>Vektor SS-77 (Green Hex)</English>
@ -135,6 +148,7 @@
<Italian>Vektor SS-77 (Hex Verde)</Italian> <Italian>Vektor SS-77 (Hex Verde)</Italian>
<Japanese>ヴェクター SS-77 (緑六角形迷彩)</Japanese> <Japanese>ヴェクター SS-77 (緑六角形迷彩)</Japanese>
<Russian>Vektor SS-77 (зеленый гекс)</Russian> <Russian>Vektor SS-77 (зеленый гекс)</Russian>
<French>Vektor SS-77 (VertHex)</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_WS_RealisticNames_S77_Desert_Name"> <Key ID="STR_ACE_Compat_WS_RealisticNames_S77_Desert_Name">
<English>Vektor SS-77 (Desert)</English> <English>Vektor SS-77 (Desert)</English>
@ -143,6 +157,7 @@
<Italian>Vektor SS-77 (Deserto)</Italian> <Italian>Vektor SS-77 (Deserto)</Italian>
<Japanese>ヴェクター SS-77 (砂漠迷彩)</Japanese> <Japanese>ヴェクター SS-77 (砂漠迷彩)</Japanese>
<Russian>Vektor SS-77 (песочныйt)</Russian> <Russian>Vektor SS-77 (песочныйt)</Russian>
<French>Vektor SS-77 (Désert)</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_WS_RealisticNames_S77_Compact_Name"> <Key ID="STR_ACE_Compat_WS_RealisticNames_S77_Compact_Name">
<English>Vektor SS-77 Compact</English> <English>Vektor SS-77 Compact</English>
@ -151,6 +166,7 @@
<Italian>Vektor SS-77 Compatto</Italian> <Italian>Vektor SS-77 Compatto</Italian>
<Japanese>ヴェクター SS-77 コンパクト</Japanese> <Japanese>ヴェクター SS-77 コンパクト</Japanese>
<Russian>Vektor SS-77 Compact</Russian> <Russian>Vektor SS-77 Compact</Russian>
<French>Vektor SS-77 Compacte</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_WS_RealisticNames_S77_Compact_Snake_Name"> <Key ID="STR_ACE_Compat_WS_RealisticNames_S77_Compact_Snake_Name">
<English>Vektor SS-77 Compact (Snake)</English> <English>Vektor SS-77 Compact (Snake)</English>
@ -167,6 +183,7 @@
<Italian>FN FAL 50.00 (Legno)</Italian> <Italian>FN FAL 50.00 (Legno)</Italian>
<Japanese>FN FAL 50.00 (森林迷彩)</Japanese> <Japanese>FN FAL 50.00 (森林迷彩)</Japanese>
<Russian>FN FAL 50.00 (лесной)</Russian> <Russian>FN FAL 50.00 (лесной)</Russian>
<French>FN FAL 50.00 (Bois)</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_WS_RealisticNames_SLR_GL_Wood_Name"> <Key ID="STR_ACE_Compat_WS_RealisticNames_SLR_GL_Wood_Name">
<English>FN FAL 50.00 GL (Wood)</English> <English>FN FAL 50.00 GL (Wood)</English>
@ -175,6 +192,7 @@
<Italian>FN FAL 50.00 GL (Legno)</Italian> <Italian>FN FAL 50.00 GL (Legno)</Italian>
<Japanese>FN FAL 50.00 GL (森林迷彩)</Japanese> <Japanese>FN FAL 50.00 GL (森林迷彩)</Japanese>
<Russian>FN FAL 50.00 GL (лесной)</Russian> <Russian>FN FAL 50.00 GL (лесной)</Russian>
<French>FN FAL 50.00 GL (Bois)</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_WS_RealisticNames_SLR_Name"> <Key ID="STR_ACE_Compat_WS_RealisticNames_SLR_Name">
<English>FN FAL 50.00</English> <English>FN FAL 50.00</English>
@ -183,6 +201,7 @@
<Italian>FN FAL 50.00</Italian> <Italian>FN FAL 50.00</Italian>
<Japanese>FN FAL 50.00</Japanese> <Japanese>FN FAL 50.00</Japanese>
<Russian>FN FAL 50.00</Russian> <Russian>FN FAL 50.00</Russian>
<French>FN FAL 50.00</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_WS_RealisticNames_SLR_GL_Name"> <Key ID="STR_ACE_Compat_WS_RealisticNames_SLR_GL_Name">
<English>FN FAL 50.00 GL</English> <English>FN FAL 50.00 GL</English>
@ -191,6 +210,7 @@
<Italian>FN FAL 50.00 GL</Italian> <Italian>FN FAL 50.00 GL</Italian>
<Japanese>FN FAL 50.00 GL</Japanese> <Japanese>FN FAL 50.00 GL</Japanese>
<Russian>FN FAL 50.00 GL</Russian> <Russian>FN FAL 50.00 GL</Russian>
<French>FN FAL 50.00 GL</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_WS_RealisticNames_SLR_Desert_Name"> <Key ID="STR_ACE_Compat_WS_RealisticNames_SLR_Desert_Name">
<English>FN FAL 50.00 (Desert)</English> <English>FN FAL 50.00 (Desert)</English>
@ -199,6 +219,7 @@
<Italian>FN FAL 50.00 (Deserto)</Italian> <Italian>FN FAL 50.00 (Deserto)</Italian>
<Japanese>FN FAL 50.00 (砂漠迷彩)</Japanese> <Japanese>FN FAL 50.00 (砂漠迷彩)</Japanese>
<Russian>FN FAL 50.00 (песочный)</Russian> <Russian>FN FAL 50.00 (песочный)</Russian>
<French>FN FAL 50.00 (Désert)</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_WS_RealisticNames_SLR_Camo_Name"> <Key ID="STR_ACE_Compat_WS_RealisticNames_SLR_Camo_Name">
<English>FN FAL 50.00 (Jungle)</English> <English>FN FAL 50.00 (Jungle)</English>
@ -207,6 +228,7 @@
<Italian>FN FAL 50,00 (Giungla)</Italian> <Italian>FN FAL 50,00 (Giungla)</Italian>
<Japanese>FN FAL 50.00 (熱帯迷彩)</Japanese> <Japanese>FN FAL 50.00 (熱帯迷彩)</Japanese>
<Russian>FN FAL 50.00 (джунгли)</Russian> <Russian>FN FAL 50.00 (джунгли)</Russian>
<French>FN FAL 50.00 (Jungle)</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_WS_RealisticNames_Velko_R4_Name"> <Key ID="STR_ACE_Compat_WS_RealisticNames_Velko_R4_Name">
<English>Vektor R4</English> <English>Vektor R4</English>
@ -215,6 +237,7 @@
<Italian>Vektor R4</Italian> <Italian>Vektor R4</Italian>
<Japanese>ヴェクター R5</Japanese> <Japanese>ヴェクター R5</Japanese>
<Russian>Vektor R4</Russian> <Russian>Vektor R4</Russian>
<French>Vektor R4</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_WS_RealisticNames_Velko_R5_Name"> <Key ID="STR_ACE_Compat_WS_RealisticNames_Velko_R5_Name">
<English>Vektor R5 Carbine</English> <English>Vektor R5 Carbine</English>
@ -223,6 +246,7 @@
<Italian>Vektor R5 Carabina</Italian> <Italian>Vektor R5 Carabina</Italian>
<Japanese>ヴェクター R5 カービン</Japanese> <Japanese>ヴェクター R5 カービン</Japanese>
<Russian>Vektor R5 Carbine</Russian> <Russian>Vektor R5 Carbine</Russian>
<French>Vektor R5 Carbine</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_WS_RealisticNames_Velko_R5_GL_Name"> <Key ID="STR_ACE_Compat_WS_RealisticNames_Velko_R5_GL_Name">
<English>Vektor R5 Carbine GL</English> <English>Vektor R5 Carbine GL</English>
@ -231,6 +255,7 @@
<Italian>Vektor R5 Carabina GL</Italian> <Italian>Vektor R5 Carabina GL</Italian>
<Japanese>ヴェクター R5 カービン GL</Japanese> <Japanese>ヴェクター R5 カービン GL</Japanese>
<Russian>Vektor R5 Carbine GL</Russian> <Russian>Vektor R5 Carbine GL</Russian>
<French>Vektor R5 Carbine GL</French>
</Key> </Key>
<Key ID="STR_ACE_Compat_WS_RealisticNames_Velko_R5_Snake_Name"> <Key ID="STR_ACE_Compat_WS_RealisticNames_Velko_R5_Snake_Name">
<English>Vektor R5 Carbine (Snake)</English> <English>Vektor R5 Carbine (Snake)</English>

View File

@ -22,7 +22,7 @@ params ["_wirecoil", "_unit"];
private _wireNoGeo = "ACE_ConcertinaWireNoGeo" createVehicle [0,0,0]; private _wireNoGeo = "ACE_ConcertinaWireNoGeo" createVehicle [0,0,0];
{ {
_wireNoGeo animate [_x, 1]; _wireNoGeo animate [_x, 1];
} count WIRE_FAST; } forEach WIRE_FAST;
GVAR(placer) = _unit; GVAR(placer) = _unit;
private _dir = getDir _unit; private _dir = getDir _unit;
@ -51,7 +51,7 @@ GVAR(deployPFH) = [{
private _wire = "ACE_ConcertinaWire" createvehicle [0, 0, 0]; private _wire = "ACE_ConcertinaWire" createvehicle [0, 0, 0];
{ {
_wire animate [_x, _anim]; _wire animate [_x, _anim];
} count WIRE_FAST; } forEach WIRE_FAST;
[{ [{
params ["_args", "_idPFH"]; params ["_args", "_idPFH"];
@ -74,7 +74,7 @@ GVAR(deployPFH) = [{
_wireNoGeo setDir _dir; _wireNoGeo setDir _dir;
{ {
_wireNoGeo animate [_x, _anim]; _wireNoGeo animate [_x, _anim];
} count WIRE_FAST; } forEach WIRE_FAST;
}, 0, [_wireNoGeo, _wireNoGeoPos, _unit]] call CBA_fnc_addPerFrameHandler; }, 0, [_wireNoGeo, _wireNoGeoPos, _unit]] call CBA_fnc_addPerFrameHandler;
[LLSTRING(RollWire), "", ""] call EFUNC(interaction,showMouseHint); [LLSTRING(RollWire), "", ""] call EFUNC(interaction,showMouseHint);

View File

@ -20,7 +20,7 @@ params ["_wire"];
{ {
_wire animate [_x, 1]; _wire animate [_x, 1];
} count WIRE_FAST; } forEach WIRE_FAST;
[{ [{
params ["_args", "_idPFH"]; params ["_args", "_idPFH"];

View File

@ -1,43 +0,0 @@
class ctrlCombo;
class Cfg3DEN {
class Attributes {
class Default;
class Title: Default {
class Controls {
class Title;
};
};
class Combo: Title {
class Controls: Controls {
class Title: Title {};
class Value;
};
};
class GVAR(assemblyModeControl): Combo {
class Controls: Controls {
class Title: Title {};
class Value: Value {
class Items {
class Disable {
text = "$STR_DISABLED";
value = 0;
};
class Enable {
text = "$STR_CONFIG_JOYSTICK_ENABLED";
value = 1;
};
class EnableAndEmpty {
text = CSTRING(eden_enableAndEmpty);
value = 2;
};
class Default {
text = "$STR_VEHICLE_DEFAULT";
value = 3;
default = 1;
};
};
};
};
};
};
};

View File

@ -138,7 +138,6 @@ class CfgVehicles {
class StaticMGWeapon: StaticWeapon {}; class StaticMGWeapon: StaticWeapon {};
class HMG_01_base_F: StaticMGWeapon { class HMG_01_base_F: StaticMGWeapon {
// ENABLE_CSW_ATTRIBUTE;
class ADDON { class ADDON {
enabled = 1; enabled = 1;
proxyWeapon = QGVAR(HMG_Static); proxyWeapon = QGVAR(HMG_Static);
@ -198,7 +197,6 @@ class CfgVehicles {
class GMG_TriPod; class GMG_TriPod;
class GMG_01_base_F: GMG_TriPod { class GMG_01_base_F: GMG_TriPod {
// ENABLE_CSW_ATTRIBUTE;
class ADDON { class ADDON {
enabled = 1; enabled = 1;
proxyWeapon = QGVAR(GMG_20mm); // Weapon Proxy (Shorter Reload Time) [CfgWeapons] proxyWeapon = QGVAR(GMG_20mm); // Weapon Proxy (Shorter Reload Time) [CfgWeapons]
@ -232,7 +230,6 @@ class CfgVehicles {
class AT_01_base_F: StaticMGWeapon { class AT_01_base_F: StaticMGWeapon {
// ENABLE_CSW_ATTRIBUTE;
class ADDON { class ADDON {
enabled = 1; enabled = 1;
proxyWeapon = QGVAR(Titan_AT_Static); proxyWeapon = QGVAR(Titan_AT_Static);
@ -246,7 +243,6 @@ class CfgVehicles {
}; };
class AA_01_base_F: StaticMGWeapon { class AA_01_base_F: StaticMGWeapon {
// ENABLE_CSW_ATTRIBUTE;
class ADDON { class ADDON {
enabled = 1; enabled = 1;
proxyWeapon = QGVAR(Titan_AA_Static); // Weapon Proxy (Shorter Reload Time) [CfgWeapons] proxyWeapon = QGVAR(Titan_AA_Static); // Weapon Proxy (Shorter Reload Time) [CfgWeapons]
@ -262,7 +258,6 @@ class CfgVehicles {
class StaticMortar: StaticWeapon {}; class StaticMortar: StaticWeapon {};
class Mortar_01_base_F: StaticMortar { class Mortar_01_base_F: StaticMortar {
// ENABLE_CSW_ATTRIBUTE;
class ADDON { class ADDON {
enabled = 1; enabled = 1;
magazineLocation = ""; magazineLocation = "";

View File

@ -15,7 +15,6 @@ class CfgPatches {
}; };
}; };
#include "Cfg3den.hpp"
#include "CfgEventHandlers.hpp" #include "CfgEventHandlers.hpp"
#include "CfgVehicles.hpp" #include "CfgVehicles.hpp"
#include "CfgWeapons.hpp" #include "CfgWeapons.hpp"

View File

@ -40,7 +40,7 @@ private _nearSupplies = [_gunner] + ((_staticWeapon nearSupplies 10) select {
} forEach ((magazineCargo _xSource) select {isClass (_cfgMagGroups >> _x)}); } forEach ((magazineCargo _xSource) select {isClass (_cfgMagGroups >> _x)});
TRACE_2("",_xSource,_cswMagazines); TRACE_2("",_xSource,_cswMagazines);
private _compatibleMags = [_weapon] call CBA_fnc_compatibleMagazines; private _compatibleMags = compatibleMagazines _weapon;
if (_magazine != "") then { if (_magazine != "") then {
_compatibleMags insert [0, [_magazine]]; _compatibleMags insert [0, [_magazine]];
}; };

View File

@ -22,4 +22,4 @@ private _assemblyMode = [false, true, true, GVAR(defaultAssemblyMode)] select (_
private _notCrewed = (crew _staticWeapon) isEqualTo []; private _notCrewed = (crew _staticWeapon) isEqualTo [];
private _deadCrew = !(alive (gunner _staticWeapon)); // need to eject body??? private _deadCrew = !(alive (gunner _staticWeapon)); // need to eject body???
_assemblyMode && {_notCrewed || _deadCrew} _assemblyMode && {alive _staticWeapon} && {_notCrewed || _deadCrew}

View File

@ -23,7 +23,7 @@
private _secondaryWeaponClassname = secondaryWeapon _player; private _secondaryWeaponClassname = secondaryWeapon _player;
// handle loaded launchers which can become csw like CUP Metis // handle loaded launchers which can become csw like CUP Metis
private _secondaryWeaponMagazine = secondaryWeaponMagazine _player param [0, ""]; private _secondaryWeaponMagazine = secondaryWeaponMagazine _player param [0, ""];
_player removeWeaponGlobal (secondaryWeapon _player); _player removeWeaponGlobal _secondaryWeaponClassname;
private _onFinish = { private _onFinish = {
params ["_args"]; params ["_args"];
@ -75,5 +75,5 @@
}; };
private _deployTime = getNumber(configFile >> "CfgWeapons" >> _secondaryWeaponClassname >> QUOTE(ADDON) >> "deployTime"); private _deployTime = getNumber(configFile >> "CfgWeapons" >> _secondaryWeaponClassname >> QUOTE(ADDON) >> "deployTime");
[TIME_PROGRESSBAR(_deployTime), [_player, _secondaryWeaponClassname, _secondaryWeaponMagazine], _onFinish, _onFailure, localize LSTRING(PlaceTripod_progressBar)] call EFUNC(common,progressBar); [TIME_PROGRESSBAR(_deployTime), [_player, _secondaryWeaponClassname, _secondaryWeaponMagazine], _onFinish, _onFailure, LLSTRING(PlaceTripod_progressBar)] call EFUNC(common,progressBar);
}, _this] call CBA_fnc_execNextFrame; }, _this] call CBA_fnc_execNextFrame;

View File

@ -23,10 +23,13 @@
private _tripodClassname = typeOf _tripod; private _tripodClassname = typeOf _tripod;
_player removeWeaponGlobal _carryWeaponClassname; _player removeWeaponGlobal _carryWeaponClassname;
private _assembledClassname = getText(configfile >> "CfgWeapons" >> _carryWeaponClassname >> QUOTE(ADDON) >> "assembleTo" >> _tripodClassname); private _weaponConfig = configfile >> "CfgWeapons" >> _carryWeaponClassname >> QUOTE(ADDON);
private _deployTime = getNumber(configfile >> "CfgWeapons" >> _carryWeaponClassname >> QUOTE(ADDON) >> "deployTime"); private _assembledClassname = getText (_weaponConfig >> "assembleTo" >> _tripodClassname);
if (!isClass (configFile >> "CfgVehicles" >> _assembledClassname)) exitWith {ERROR_1("bad static classname [%1]",_assembledClassname);}; if (!isClass (configFile >> "CfgVehicles" >> _assembledClassname)) exitWith {ERROR_1("bad static classname [%1]",_assembledClassname);};
private _deployTime = getNumber (_weaponConfig >> "deployTime");
TRACE_4("",_carryWeaponClassname,_tripodClassname,_assembledClassname,_deployTime); TRACE_4("",_carryWeaponClassname,_tripodClassname,_assembledClassname,_deployTime);
private _onFinish = { private _onFinish = {
@ -69,8 +72,9 @@
private _codeCheck = { private _codeCheck = {
params ["_args"]; params ["_args"];
_args params ["_tripod"]; _args params ["_tripod"];
!isNull _tripod;
alive _tripod
}; };
[TIME_PROGRESSBAR(_deployTime), [_tripod, _player, _assembledClassname, _carryWeaponClassname], _onFinish, _onFailure, localize LSTRING(AssembleCSW_progressBar), _codeCheck] call EFUNC(common,progressBar); [TIME_PROGRESSBAR(_deployTime), [_tripod, _player, _assembledClassname, _carryWeaponClassname], _onFinish, _onFailure, LLSTRING(AssembleCSW_progressBar), _codeCheck] call EFUNC(common,progressBar);
}, _this] call CBA_fnc_execNextFrame; }, _this] call CBA_fnc_execNextFrame;

View File

@ -37,10 +37,9 @@
params ["_args"]; params ["_args"];
_args params ["_tripod", "_player"]; _args params ["_tripod", "_player"];
!(isNull _tripod) && { (secondaryWeapon _player) isEqualTo "" } (alive _tripod) && {secondaryWeapon _player == ""}
}; };
TRACE_3("",_pickupTime,typeOf _tripod,_tripodClassname); TRACE_3("",_pickupTime,typeOf _tripod,_tripodClassname);
[TIME_PROGRESSBAR(_pickupTime), [_tripod, _player, _tripodClassname], _onFinish, {}, localize LSTRING(PickupTripod_progressBar), _condition] call EFUNC(common,progressBar); [TIME_PROGRESSBAR(_pickupTime), [_tripod, _player, _tripodClassname], _onFinish, {}, LLSTRING(PickupTripod_progressBar), _condition] call EFUNC(common,progressBar);
}, _this] call CBA_fnc_execNextFrame; }, _this] call CBA_fnc_execNextFrame;

View File

@ -19,14 +19,24 @@
params ["_staticWeapon", "_player"]; params ["_staticWeapon", "_player"];
TRACE_2("assemble_pickupWeapon",_staticWeapon,_player); TRACE_2("assemble_pickupWeapon",_staticWeapon,_player);
private _onDisassembleFunc = getText(configOf _staticWeapon >> QUOTE(ADDON) >> "disassembleFunc"); private _weaponConfig = configOf _staticWeapon >> QUOTE(ADDON);
private _carryWeaponClassname = getText(configOf _staticWeapon >> QUOTE(ADDON) >> "disassembleWeapon"); private _carryWeaponClassname = getText (_weaponConfig >> "disassembleWeapon");
private _turretClassname = getText(configOf _staticWeapon >> QUOTE(ADDON) >> "disassembleTurret");
if (!isClass (configFile >> "CfgWeapons" >> _carryWeaponClassname)) exitWith {
ERROR_1("bad weapon classname [%1]",_carryWeaponClassname);
};
private _turretClassname = getText (_weaponConfig >> "disassembleTurret");
// Turret classname can equal nothing if the deploy bag is the "whole" weapon. e.g Kornet, Metis, other ATGMs
if ((_turretClassname != "") && {!isClass (configFile >> "CfgVehicles" >> _turretClassname)}) exitWith {
ERROR_1("bad turret classname [%1]",_turretClassname);
};
private _onDisassembleFunc = getText (_weaponConfig >> "disassembleFunc");
private _pickupTime = getNumber (configFile >> "CfgWeapons" >> _carryWeaponClassname >> QUOTE(ADDON) >> "pickupTime"); private _pickupTime = getNumber (configFile >> "CfgWeapons" >> _carryWeaponClassname >> QUOTE(ADDON) >> "pickupTime");
TRACE_4("",typeOf _staticWeapon,_carryWeaponClassname,_turretClassname,_pickupTime); TRACE_4("",typeOf _staticWeapon,_carryWeaponClassname,_turretClassname,_pickupTime);
if (!isClass (configFile >> "CfgWeapons" >> _carryWeaponClassname)) exitWith {ERROR_1("bad weapon classname [%1]",_carryWeaponClassname);};
// Turret classname can equal nothing if the deploy bag is the "whole" weapon. e.g Kornet, Metis, other ATGMs
if ((_turretClassname isNotEqualTo "") && {!isClass (configFile >> "CfgVehicles" >> _turretClassname)}) exitWith {ERROR_1("bad turret classname [%1]",_turretClassname);};
private _onFinish = { private _onFinish = {
params ["_args"]; params ["_args"];
@ -38,14 +48,14 @@
private _weaponDir = getDir _staticWeapon; private _weaponDir = getDir _staticWeapon;
private _carryWeaponMag = ""; private _carryWeaponMag = "";
private _carryWeaponMags = getArray (configFile >> "CfgWeapons" >> _carryWeaponClassname >> "magazines") apply {toLowerANSI _x}; private _carryWeaponMags = compatibleMagazines _carryWeaponClassname;
LOG("remove ammo"); LOG("remove ammo");
{ {
_x params ["_xMag", "", "_xAmmo"]; _x params ["_xMag", "", "_xAmmo"];
if (_xAmmo == 0) then {continue}; if (_xAmmo == 0) then {continue};
private _carryMag = _xMag call FUNC(getCarryMagazine); private _carryMag = _xMag call FUNC(getCarryMagazine);
if (_carryWeaponMag isEqualTo "" && {toLowerANSI _carryMag in _carryWeaponMags}) then { if (_carryWeaponMag == "" && {_carryMag in _carryWeaponMags}) then {
TRACE_3("Adding mag to secondary weapon",_xMag,_xAmmo,_carryMag); TRACE_3("Adding mag to secondary weapon",_xMag,_xAmmo,_carryMag);
_carryWeaponMag = _carryMag; _carryWeaponMag = _carryMag;
DEC(_xAmmo); DEC(_xAmmo);
@ -100,5 +110,5 @@
((crew _staticWeapon) isEqualTo []) && (alive _staticWeapon) ((crew _staticWeapon) isEqualTo []) && (alive _staticWeapon)
}; };
[TIME_PROGRESSBAR(_pickupTime), [_staticWeapon, _player, _carryWeaponClassname, _turretClassname, _onDisassembleFunc], _onFinish, {}, localize LSTRING(DisassembleCSW_progressBar), _condition] call EFUNC(common,progressBar); [TIME_PROGRESSBAR(_pickupTime), [_staticWeapon, _player, _carryWeaponClassname, _turretClassname, _onDisassembleFunc], _onFinish, {}, LLSTRING(DisassembleCSW_progressBar), _condition] call EFUNC(common,progressBar);
}, _this] call CBA_fnc_execNextFrame; }, _this] call CBA_fnc_execNextFrame;

View File

@ -44,9 +44,9 @@ private _actions = [];
private _displayName = getText (_cfgMagazines >> _carryMag >> "displayName"); private _displayName = getText (_cfgMagazines >> _carryMag >> "displayName");
private _picture = getText (_cfgMagazines >> _carryMag >> "picture"); private _picture = getText (_cfgMagazines >> _carryMag >> "picture");
private _text = if (_isBeltLinking) then { private _text = if (_isBeltLinking) then {
format [localize LSTRING(actionLink), _displayName]; format [LLSTRING(actionLink), _displayName];
} else { } else {
format [localize LSTRING(loadX), _displayName]; format [LLSTRING(loadX), _displayName];
}; };
private _action = [format ["load_%1", _forEachIndex], _text, _picture, _statement, _condition, {}, _x] call EFUNC(interact_menu,createAction); private _action = [format ["load_%1", _forEachIndex], _text, _picture, _statement, _condition, {}, _x] call EFUNC(interact_menu,createAction);

View File

@ -23,8 +23,9 @@ private _statement = {
TRACE_5("starting unload",_target,_turretPath,_player,_carryMag,_vehMag); TRACE_5("starting unload",_target,_turretPath,_player,_carryMag,_vehMag);
private _timeToUnload = 1; private _timeToUnload = 1;
if (!isNull (configOf _target >> QUOTE(ADDON) >> "ammoUnloadTime")) then { private _config = configOf _target >> QUOTE(ADDON) >> "ammoUnloadTime";
_timeToUnload = getNumber (configOf _target >> QUOTE(ADDON) >> "ammoUnloadTime"); if (!isNull _config) then {
_timeToUnload = getNumber _config;
}; };
[ [
@ -36,7 +37,7 @@ private _statement = {
[QGVAR(removeTurretMag), [_target, _turretPath, _carryMag, _vehMag, _player]] call CBA_fnc_globalEvent; [QGVAR(removeTurretMag), [_target, _turretPath, _carryMag, _vehMag, _player]] call CBA_fnc_globalEvent;
}, },
{TRACE_1("unload progressBar fail",_this);}, {TRACE_1("unload progressBar fail",_this);},
format [localize LSTRING(unloadX), getText (configFile >> "CfgMagazines" >> _carryMag >> "displayName")], format [LLSTRING(unloadX), getText (configFile >> "CfgMagazines" >> _carryMag >> "displayName")],
{(_this select 0) call FUNC(reload_canUnloadMagazine)}, {(_this select 0) call FUNC(reload_canUnloadMagazine)},
["isNotInside"] ["isNotInside"]
] call EFUNC(common,progressBar); ] call EFUNC(common,progressBar);

View File

@ -66,7 +66,7 @@ if (hasInterface && {!(_typeOf in GVAR(initializedStaticTypes))}) then {
TRACE_1("Adding Actions",_typeOf); TRACE_1("Adding Actions",_typeOf);
if (_assemblyConfig) then { if (_assemblyConfig) then {
private _disassembleAction = [QGVAR(disassemble), localize LSTRING(DisassembleCSW_displayName), "", {call FUNC(assemble_pickupWeapon)}, {call FUNC(assemble_canPickupWeapon)}] call EFUNC(interact_menu,createAction); private _disassembleAction = [QGVAR(disassemble), LLSTRING(DisassembleCSW_displayName), "", LINKFUNC(assemble_pickupWeapon), LINKFUNC(assemble_canPickupWeapon)] call EFUNC(interact_menu,createAction);
[_typeOf, 0, ["ACE_MainActions"], _disassembleAction] call EFUNC(interact_menu,addActionToClass); [_typeOf, 0, ["ACE_MainActions"], _disassembleAction] call EFUNC(interact_menu,addActionToClass);
}; };
@ -86,17 +86,17 @@ if (hasInterface && {!(_typeOf in GVAR(initializedStaticTypes))}) then {
}; };
if (_configEnabled && {_magazineLocation != ""}) then { if (_configEnabled && {_magazineLocation != ""}) then {
private _positionCode = compile _magazineLocation; private _positionCode = compile _magazineLocation;
private _ammoAction = [QGVAR(magazine), localize LSTRING(AmmoHandling_displayName), "", {}, _condition, _childenCode, [], _positionCode, 4] call EFUNC(interact_menu,createAction); private _ammoAction = [QGVAR(magazine), LLSTRING(AmmoHandling_displayName), "", {}, _condition, _childenCode, [], _positionCode, 4] call EFUNC(interact_menu,createAction);
_ammoActionPath = [_typeOf, 0, [], _ammoAction] call EFUNC(interact_menu,addActionToClass); _ammoActionPath = [_typeOf, 0, [], _ammoAction] call EFUNC(interact_menu,addActionToClass);
} else { } else {
private _ammoAction = [QGVAR(magazine), localize LSTRING(AmmoHandling_displayName), "", {}, _condition, _childenCode] call EFUNC(interact_menu,createAction); private _ammoAction = [QGVAR(magazine), LLSTRING(AmmoHandling_displayName), "", {}, _condition, _childenCode] call EFUNC(interact_menu,createAction);
_ammoActionPath = [_typeOf, 0, ["ACE_MainActions"], _ammoAction] call EFUNC(interact_menu,addActionToClass); _ammoActionPath = [_typeOf, 0, ["ACE_MainActions"], _ammoAction] call EFUNC(interact_menu,addActionToClass);
}; };
if (["ace_reload"] call EFUNC(common,isModLoaded)) then { if (["ace_reload"] call EFUNC(common,isModLoaded)) then {
// move reload's check ammo action to the ammo handling point (remove and re-add) // move reload's check ammo action to the ammo handling point (remove and re-add)
[_typeOf, 0, ["ACE_MainActions", QEGVAR(reload,CheckAmmo)]] call EFUNC(interact_menu,removeActionFromClass); [_typeOf, 0, ["ACE_MainActions", QEGVAR(reload,CheckAmmo)]] call EFUNC(interact_menu,removeActionFromClass);
private _checkAmmoAction = [QGVAR(checkAmmo), localize ELSTRING(reload,checkAmmo), "", EFUNC(reload,checkAmmo), EFUNC(reload,canCheckAmmo)] call EFUNC(interact_menu,createAction); private _checkAmmoAction = [QGVAR(checkAmmo), LELSTRING(reload,checkAmmo), "", EFUNC(reload,checkAmmo), EFUNC(reload,canCheckAmmo)] call EFUNC(interact_menu,createAction);
[_typeOf, 0, _ammoActionPath, _checkAmmoAction] call EFUNC(interact_menu,addActionToClass); [_typeOf, 0, _ammoActionPath, _checkAmmoAction] call EFUNC(interact_menu,addActionToClass);
}; };
}; };

View File

@ -70,7 +70,7 @@ private _return = [];
) exitWith { ) exitWith {
_return pushBack [_carryMag, _turretPath, _loadInfo, _magSource]; _return pushBack [_carryMag, _turretPath, _loadInfo, _magSource];
}; };
} forEach ([_weapon] call CBA_fnc_compatibleMagazines); } forEach (compatibleMagazines _weapon);
} forEach _availableMagazines; } forEach _availableMagazines;
} forEach (_vehicle weaponsTurret _turretPath); } forEach (_vehicle weaponsTurret _turretPath);
} forEach (allTurrets _vehicle); } forEach (allTurrets _vehicle);

View File

@ -23,11 +23,12 @@ params ["_vehicle", "_turret", "_carryMag", "_magSource", "_unit"];
TRACE_5("loadMagazine",_vehicle,_turret,_carryMag,_magSource,_unit); TRACE_5("loadMagazine",_vehicle,_turret,_carryMag,_magSource,_unit);
private _timeToLoad = 1; private _timeToLoad = 1;
if (!isNull(configOf _vehicle >> QUOTE(ADDON) >> "ammoLoadTime")) then { private _config = configOf _vehicle >> QUOTE(ADDON) >> "ammoLoadTime";
_timeToLoad = getNumber(configOf _vehicle >> QUOTE(ADDON) >> "ammoLoadTime"); if (!isNull _config) then {
_timeToLoad = getNumber _config;
}; };
private _displayName = format [localize LSTRING(loadX), getText (configFile >> "CfgMagazines" >> _carryMag >> "displayName")]; private _displayName = format [LLSTRING(loadX), getText (configFile >> "CfgMagazines" >> _carryMag >> "displayName")];
private _onFinish = { private _onFinish = {
(_this select 0) params ["_vehicle", "_turret", "_carryMag", "_magSource", "_unit"]; (_this select 0) params ["_vehicle", "_turret", "_carryMag", "_magSource", "_unit"];

View File

@ -1,15 +1 @@
#define CREATE_CSW_PROXY(weapon) class ##weapon; class GVAR(weapon): ##weapon { magazineReloadTime = 0.5; } #define CREATE_CSW_PROXY(weapon) class ##weapon; class GVAR(weapon): ##weapon { magazineReloadTime = 0.5; }
// Need to be careful about breaking Attributes inheritance, doesn't seem to be any standard
#define ENABLE_CSW_ATTRIBUTE class Attributes { \
class EGVAR(CSW,assemblyMode) { \
property = QEGVAR(CSW,assemblyMode); \
control = QEGVAR(CSW,assemblyModeControl); \
displayName = ECSTRING(CSW,eden_enableCSW); \
tooltip = ECSTRING(CSW,eden_enableCSW_tooltip); \
expression = QUOTE( if (_value != 3) then {_this setVariable [ARR_3('%s',_value,true)]} ); \
typeName = "NUMBER"; \
condition = "objectVehicle"; \
defaultValue = 3; \
}; \
}

View File

@ -50,7 +50,7 @@ if (!_doNotDropAmmo) then {
if ((_x getVariable [QGVAR(disarmUnit), objNull]) == _target) exitWith { if ((_x getVariable [QGVAR(disarmUnit), objNull]) == _target) exitWith {
_holder = _x; _holder = _x;
}; };
} count ((getpos _target) nearObjects [DISARM_CONTAINER, 3]); } forEach ((getpos _target) nearObjects [DISARM_CONTAINER, 3]);
}; };
//Create a new weapon holder //Create a new weapon holder

View File

@ -93,7 +93,7 @@ GVAR(disarmTarget) = _target;
if ((_x getVariable [QGVAR(disarmUnit), objNull]) == _target) exitWith { if ((_x getVariable [QGVAR(disarmUnit), objNull]) == _target) exitWith {
_holder = _x; _holder = _x;
}; };
} count ((getpos _target) nearObjects [DISARM_CONTAINER, 3]); } forEach ((getpos _target) nearObjects [DISARM_CONTAINER, 3]);
//If a holder exists, show it's inventory //If a holder exists, show it's inventory
if (!isNull _holder) then { if (!isNull _holder) then {

View File

@ -32,7 +32,7 @@ private _detonators = [_unit] call FUNC(getDetonators);
if !(_x in _detonators) exitWith { if !(_x in _detonators) exitWith {
_hasRequired = false; _hasRequired = false;
}; };
} count _requiredItems; } forEach _requiredItems;
private _code = ""; private _code = "";
while {true} do { while {true} do {

View File

@ -31,7 +31,7 @@ private _children = [];
if !(_x in _detonators) exitWith { if !(_x in _detonators) exitWith {
_hasRequiredItems = false; _hasRequiredItems = false;
}; };
} count _required; } forEach _required;
if (_hasRequiredItems && {(!_isAttached) || {(getNumber (_x >> "isAttachable")) == 1}}) then { if (_hasRequiredItems && {(!_isAttached) || {(getNumber (_x >> "isAttachable")) == 1}}) then {
_children pushBack _children pushBack
[ [

View File

@ -24,7 +24,6 @@ private _explosive = [];
if ((_x select 1) == _code) exitWith { if ((_x select 1) == _code) exitWith {
_explosive = _x; _explosive = _x;
}; };
false } forEach GVAR(CellphoneIEDs);
} count GVAR(CellphoneIEDs);
_explosive _explosive

View File

@ -75,6 +75,7 @@
<Russian>Подрыв всех на активном детонаторе</Russian> <Russian>Подрыв всех на активном детонаторе</Russian>
<Japanese>選択した点火装置を全て起爆</Japanese> <Japanese>選択した点火装置を全て起爆</Japanese>
<Korean>활성화된 격발기의 모든 것을 폭파</Korean> <Korean>활성화된 격발기의 모든 것을 폭파</Korean>
<French>Détoner tout sur le détonateur actif</French>
</Key> </Key>
<Key ID="STR_ACE_Explosives_SetActiveTrigger"> <Key ID="STR_ACE_Explosives_SetActiveTrigger">
<English>Set Active Clacker</English> <English>Set Active Clacker</English>
@ -83,6 +84,7 @@
<Russian>Установить активный детонатор</Russian> <Russian>Установить активный детонатор</Russian>
<Japanese>この点火装置を選択</Japanese> <Japanese>この点火装置を選択</Japanese>
<Korean>격발기 활성 설정</Korean> <Korean>격발기 활성 설정</Korean>
<French>Définir le détonateur actif</French>
</Key> </Key>
<Key ID="STR_ACE_Explosives_CycleActiveTrigger"> <Key ID="STR_ACE_Explosives_CycleActiveTrigger">
<English>Cycle Active Clacker</English> <English>Cycle Active Clacker</English>
@ -91,6 +93,7 @@
<Russian>Цикл активного детонатора</Russian> <Russian>Цикл активного детонатора</Russian>
<Japanese>点火装置を切り替え</Japanese> <Japanese>点火装置を切り替え</Japanese>
<Korean>격발기 활성 전환</Korean> <Korean>격발기 활성 전환</Korean>
<French>Modifier le détonateur actif</French>
</Key> </Key>
<Key ID="STR_ACE_Explosives_ActiveTrigger"> <Key ID="STR_ACE_Explosives_ActiveTrigger">
<English>Active Clacker</English> <English>Active Clacker</English>
@ -99,6 +102,7 @@
<Russian>Активный детонатор</Russian> <Russian>Активный детонатор</Russian>
<Japanese>選択中の点火装置</Japanese> <Japanese>選択中の点火装置</Japanese>
<Korean>격발기 활성</Korean> <Korean>격발기 활성</Korean>
<French>Détonateur actif</French>
</Key> </Key>
<Key ID="STR_ACE_Explosives_DetonateCode"> <Key ID="STR_ACE_Explosives_DetonateCode">
<English>Explosive code: %1</English> <English>Explosive code: %1</English>

View File

@ -34,8 +34,8 @@ private _deployedRopes = _vehicle getVariable [QGVAR(deployedRopes), []];
//Only delete the hook first so the rope falls down. //Only delete the hook first so the rope falls down.
//Note: ropeDetach was used here before, but the command seems a bit broken. //Note: ropeDetach was used here before, but the command seems a bit broken.
deleteVehicle _hook; deleteVehicle _hook;
[{{deleteVehicle _x} count _this}, [_ropeTop, _ropeBottom, _dummy], 60] call CBA_fnc_waitAndExecute; [{{deleteVehicle _x} forEach _this}, [_ropeTop, _ropeBottom, _dummy], 60] call CBA_fnc_waitAndExecute;
} count _deployedRopes; } forEach _deployedRopes;
_vehicle setVariable [QGVAR(deployedRopes), [], true]; _vehicle setVariable [QGVAR(deployedRopes), [], true];

View File

@ -67,9 +67,7 @@ if (GVAR(requireRopeItems) && {_ropeClass != ""}) then {
//deployedRopes format: attachment point, top part of the rope, bottom part of the rope, attachTo helper object, occupied, broken //deployedRopes format: attachment point, top part of the rope, bottom part of the rope, attachTo helper object, occupied, broken
_deployedRopes pushBack [_ropeOrigin, _ropeTop, _ropeBottom, _dummy, _hook, false, false]; _deployedRopes pushBack [_ropeOrigin, _ropeTop, _ropeBottom, _dummy, _hook, false, false];
} forEach _ropeOrigins;
false
} count _ropeOrigins;
_vehicle setVariable [QGVAR(deployedRopes), _deployedRopes, true]; _vehicle setVariable [QGVAR(deployedRopes), _deployedRopes, true];
_vehicle setVariable [QGVAR(deploymentStage), 3, true]; _vehicle setVariable [QGVAR(deploymentStage), 3, true];

View File

@ -22,5 +22,4 @@ private _synchedUnits = synchronizedObjects _module;
_x = vehicle _x; _x = vehicle _x;
}; };
[_x] call FUNC(equipFRIES); [_x] call FUNC(equipFRIES);
false } forEach _synchedUnits;
} count _synchedUnits;

View File

@ -44,8 +44,7 @@ private _turretConfig = [configOf _vehicle, _turret] call EFUNC(common,getTurret
if (_x != "this") then { if (_x != "this") then {
_weaponMagazines append getArray (configFile >> "CfgWeapons" >> _weapon >> _x >> "magazines"); _weaponMagazines append getArray (configFile >> "CfgWeapons" >> _weapon >> _x >> "magazines");
}; };
false } forEach _muzzles;
} count _muzzles;
// Fix the `in` operator being case sensitive and BI fucking up the spelling of their own classnames // Fix the `in` operator being case sensitive and BI fucking up the spelling of their own classnames
private _weaponMagazinesCheck = _weaponMagazines apply {toLowerANSI _x}; private _weaponMagazinesCheck = _weaponMagazines apply {toLowerANSI _x};
@ -62,8 +61,7 @@ private _turretConfig = [configOf _vehicle, _turret] call EFUNC(common,getTurret
_initSpeed = _initSpeedCoef; _initSpeed = _initSpeedCoef;
}; };
}; };
false } forEach (_vehicle weaponsTurret _turret);
} count (_vehicle weaponsTurret _turret);
private _offset = "ace_fcs" callExtension format ["%1,%2,%3,%4", _initSpeed, _airFriction, _angleTarget, _distance]; private _offset = "ace_fcs" callExtension format ["%1,%2,%3,%4", _initSpeed, _airFriction, _angleTarget, _distance];
_offset = parseNumber _offset; _offset = parseNumber _offset;
@ -72,8 +70,7 @@ private _turretConfig = [configOf _vehicle, _turret] call EFUNC(common,getTurret
_FCSMagazines pushBack _magazine; _FCSMagazines pushBack _magazine;
_FCSElevation pushBack _offset; _FCSElevation pushBack _offset;
}; };
false } forEach (_vehicle magazinesTurret _turret);
} count (_vehicle magazinesTurret _turret);
[_vehicle, format ["%1_%2", QGVAR(Distance), _turret], _distance] call EFUNC(common,setVariablePublic); [_vehicle, format ["%1_%2", QGVAR(Distance), _turret], _distance] call EFUNC(common,setVariablePublic);
[_vehicle, format ["%1_%2", QGVAR(InitSpeed), _turret], _FCSInitSpeed] call EFUNC(common,setVariablePublic); [_vehicle, format ["%1_%2", QGVAR(InitSpeed), _turret], _FCSInitSpeed] call EFUNC(common,setVariablePublic);

View File

@ -31,6 +31,7 @@
<Korean>ACE 전투식량 HUD</Korean> <Korean>ACE 전투식량 HUD</Korean>
<Spanish>ACE HUD de Raciones de campo</Spanish> <Spanish>ACE HUD de Raciones de campo</Spanish>
<Portuguese>ACE HUD de Rações de Campo</Portuguese> <Portuguese>ACE HUD de Rações de Campo</Portuguese>
<French>ACE Rations de terrain HUD</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_IGUI_Description"> <Key ID="STR_ACE_Field_Rations_IGUI_Description">
<English>Indicates current hunger and thirst status.</English> <English>Indicates current hunger and thirst status.</English>
@ -78,6 +79,7 @@
<Korean>먹기/마시기</Korean> <Korean>먹기/마시기</Korean>
<Spanish>Comer/Beber</Spanish> <Spanish>Comer/Beber</Spanish>
<Portuguese>Comer/Beber</Portuguese> <Portuguese>Comer/Beber</Portuguese>
<French>Manger/Boire</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_Enabled_Description"> <Key ID="STR_ACE_Field_Rations_Enabled_Description">
<English>Enable/Disable Field Rations</English> <English>Enable/Disable Field Rations</English>
@ -177,6 +179,7 @@
<Korean>갈증 해소</Korean> <Korean>갈증 해소</Korean>
<Spanish>Sed saciada</Spanish> <Spanish>Sed saciada</Spanish>
<Portuguese>Sede saciada</Portuguese> <Portuguese>Sede saciada</Portuguese>
<French>Soif étanchée</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_ThirstQuenched_Description"> <Key ID="STR_ACE_Field_Rations_ThirstQuenched_Description">
<English>Coefficient for the amount of thirst quenched from drinking.</English> <English>Coefficient for the amount of thirst quenched from drinking.</English>
@ -191,6 +194,7 @@
<Korean>마심으로써 갈증이 얼마나 해소되는지를 정합니다</Korean> <Korean>마심으로써 갈증이 얼마나 해소되는지를 정합니다</Korean>
<Spanish>Coeficiente del saciamiento de sed por beber.</Spanish> <Spanish>Coeficiente del saciamiento de sed por beber.</Spanish>
<Portuguese>Coeficiente para a quantidade de sede saciada por beber.</Portuguese> <Portuguese>Coeficiente para a quantidade de sede saciada por beber.</Portuguese>
<French>Coefficient déterminant la quantité de soif étanchée par la boisson.</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_HungerSatiated_DisplayName"> <Key ID="STR_ACE_Field_Rations_HungerSatiated_DisplayName">
<English>Hunger Satiated</English> <English>Hunger Satiated</English>
@ -205,6 +209,7 @@
<Korean>배부름</Korean> <Korean>배부름</Korean>
<Spanish>Hambre saciada</Spanish> <Spanish>Hambre saciada</Spanish>
<Portuguese>Fome saciada</Portuguese> <Portuguese>Fome saciada</Portuguese>
<French>Faim rassasiée</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_HungerSatiated_Description"> <Key ID="STR_ACE_Field_Rations_HungerSatiated_Description">
<English>Coefficient for the amount of hunger satiated from eating.</English> <English>Coefficient for the amount of hunger satiated from eating.</English>
@ -219,6 +224,7 @@
<Korean>밥을 먹어서 배고픔이 얼마나 해결되는지를 정합니다</Korean> <Korean>밥을 먹어서 배고픔이 얼마나 해결되는지를 정합니다</Korean>
<Spanish>Coeficiente del saciamiento del hambre por comer.</Spanish> <Spanish>Coeficiente del saciamiento del hambre por comer.</Spanish>
<Portuguese>Coeficiente para a quantidade de fome saciada por comer.</Portuguese> <Portuguese>Coeficiente para a quantidade de fome saciada por comer.</Portuguese>
<French>Coefficient déterminant la quantité de faim satisfaite en mangeant.</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_WaterSourceActions_DisplayName"> <Key ID="STR_ACE_Field_Rations_WaterSourceActions_DisplayName">
<English>Water Source Actions</English> <English>Water Source Actions</English>
@ -232,6 +238,7 @@
<Korean>물 근처 행동</Korean> <Korean>물 근처 행동</Korean>
<Spanish>Acciones para suministros de agua</Spanish> <Spanish>Acciones para suministros de agua</Spanish>
<Portuguese>Ações para suprimentos de água</Portuguese> <Portuguese>Ações para suprimentos de água</Portuguese>
<French>Interactions sur les sources d'eau</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_WaterSourceActions_Description"> <Key ID="STR_ACE_Field_Rations_WaterSourceActions_Description">
<English>Controls what actions are available on water sources.</English> <English>Controls what actions are available on water sources.</English>
@ -245,6 +252,7 @@
<Korean>물가에서 어떤 행동을 취할지 정합니다</Korean> <Korean>물가에서 어떤 행동을 취할지 정합니다</Korean>
<Spanish>Controla qué acciones están disponibles para los suministros de agua.</Spanish> <Spanish>Controla qué acciones están disponibles para los suministros de agua.</Spanish>
<Portuguese>Controla quais ações estão disponíveis para os suprimentos de água.</Portuguese> <Portuguese>Controla quais ações estão disponíveis para os suprimentos de água.</Portuguese>
<French>Déterminer les stocks disponibles dans les sources d'eau.</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_RefillOnly"> <Key ID="STR_ACE_Field_Rations_RefillOnly">
<English>Refill Only</English> <English>Refill Only</English>
@ -258,6 +266,7 @@
<Korean>다시 채우기만 가능</Korean> <Korean>다시 채우기만 가능</Korean>
<Spanish>Sólo rellenar</Spanish> <Spanish>Sólo rellenar</Spanish>
<Portuguese>Apenas reabastecer</Portuguese> <Portuguese>Apenas reabastecer</Portuguese>
<French>Remplissage uniquement</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_TerrainObjectActions_DisplayName"> <Key ID="STR_ACE_Field_Rations_TerrainObjectActions_DisplayName">
<English>Terrain Object Actions</English> <English>Terrain Object Actions</English>
@ -271,6 +280,7 @@
<Korean>지형 물체 상호작용</Korean> <Korean>지형 물체 상호작용</Korean>
<Spanish>Acciones sobre objetos del terreno</Spanish> <Spanish>Acciones sobre objetos del terreno</Spanish>
<Portuguese>Ações para objetos do terreno</Portuguese> <Portuguese>Ações para objetos do terreno</Portuguese>
<French>Actions sur les objets du terrain</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_TerrainObjectActions_Description"> <Key ID="STR_ACE_Field_Rations_TerrainObjectActions_Description">
<English>Enables water source actions for terrain objects.</English> <English>Enables water source actions for terrain objects.</English>
@ -284,6 +294,7 @@
<Korean>지형 물체에서 물을 얻는 게 가능해집니다.</Korean> <Korean>지형 물체에서 물을 얻는 게 가능해집니다.</Korean>
<Spanish>Habilitar acciones de suministros de agua para los objetos en el suelo.</Spanish> <Spanish>Habilitar acciones de suministros de agua para los objetos en el suelo.</Spanish>
<Portuguese>Habilita ações para suprimentos de água para objetos do terreno.</Portuguese> <Portuguese>Habilita ações para suprimentos de água para objetos do terreno.</Portuguese>
<French>Active les actions relatives aux sources d'eau pour les objets de terrain.</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_AffectAdvancedFatigue_DisplayName"> <Key ID="STR_ACE_Field_Rations_AffectAdvancedFatigue_DisplayName">
<English>Affect Advanced Fatigue</English> <English>Affect Advanced Fatigue</English>
@ -298,6 +309,7 @@
<Korean>고급 피로도에 영향을 끼침</Korean> <Korean>고급 피로도에 영향을 끼침</Korean>
<Spanish>Afecta a la Fatiga Avanzada</Spanish> <Spanish>Afecta a la Fatiga Avanzada</Spanish>
<Portuguese>Afeta a Fadiga Avançada</Portuguese> <Portuguese>Afeta a Fadiga Avançada</Portuguese>
<French>Affectation Fatigue avancée</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_AffectAdvancedFatigue_Description"> <Key ID="STR_ACE_Field_Rations_AffectAdvancedFatigue_Description">
<English>Controls if thirst and hunger should affect ACE Advanced Fatigue.</English> <English>Controls if thirst and hunger should affect ACE Advanced Fatigue.</English>
@ -312,6 +324,7 @@
<Korean>배고픔과 목마름이 고급 피로도에 영향을 끼칠지를 정합니다</Korean> <Korean>배고픔과 목마름이 고급 피로도에 영향을 끼칠지를 정합니다</Korean>
<Spanish>Controla si la sed y el hambre afectan a la Fatiga Avanzada de ACE</Spanish> <Spanish>Controla si la sed y el hambre afectan a la Fatiga Avanzada de ACE</Spanish>
<Portuguese>Controla se a sede e a fome afetam a Fadiga Avançada do ACE.</Portuguese> <Portuguese>Controla se a sede e a fome afetam a Fadiga Avançada do ACE.</Portuguese>
<French>Contrôle si la soif et la faim doivent affecter la fatigue avancée ACE.</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_HudType_DisplayName"> <Key ID="STR_ACE_Field_Rations_HudType_DisplayName">
<English>HUD Type</English> <English>HUD Type</English>
@ -326,6 +339,7 @@
<Korean>HUD 종류</Korean> <Korean>HUD 종류</Korean>
<Spanish>Tipo de HUD</Spanish> <Spanish>Tipo de HUD</Spanish>
<Portuguese>Tipo de HUD</Portuguese> <Portuguese>Tipo de HUD</Portuguese>
<French>Type de HUD</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_HudType_Description"> <Key ID="STR_ACE_Field_Rations_HudType_Description">
<English>Selects which HUD style will be used.</English> <English>Selects which HUD style will be used.</English>
@ -340,6 +354,7 @@
<Korean>사용될 HUD 스타일을 고르십시오.</Korean> <Korean>사용될 HUD 스타일을 고르십시오.</Korean>
<Spanish>Selecciona qué estilo de HUD será utilizado.</Spanish> <Spanish>Selecciona qué estilo de HUD será utilizado.</Spanish>
<Portuguese>Seleciona qual estilo de HUD será usado.</Portuguese> <Portuguese>Seleciona qual estilo de HUD será usado.</Portuguese>
<French>Sélectionne le style HUD à utiliser.</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_ColoredIcons"> <Key ID="STR_ACE_Field_Rations_ColoredIcons">
<English>Colored Icons</English> <English>Colored Icons</English>
@ -354,6 +369,7 @@
<Korean>색깔 아이콘</Korean> <Korean>색깔 아이콘</Korean>
<Spanish>Iconos coloreados</Spanish> <Spanish>Iconos coloreados</Spanish>
<Portuguese>Ícones coloridos</Portuguese> <Portuguese>Ícones coloridos</Portuguese>
<French>Icônes de couleur</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_DrainingIcons"> <Key ID="STR_ACE_Field_Rations_DrainingIcons">
<English>Draining Icons</English> <English>Draining Icons</English>
@ -368,6 +384,7 @@
<Korean>빠지는 아이콘</Korean> <Korean>빠지는 아이콘</Korean>
<Spanish>Iconos de drenado</Spanish> <Spanish>Iconos de drenado</Spanish>
<Portuguese>Ícones de drenagem</Portuguese> <Portuguese>Ícones de drenagem</Portuguese>
<French>Icônes incolores</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_HudShowLevel_DisplayName"> <Key ID="STR_ACE_Field_Rations_HudShowLevel_DisplayName">
<English>HUD Show Level</English> <English>HUD Show Level</English>
@ -382,6 +399,7 @@
<Korean>HUD 표시</Korean> <Korean>HUD 표시</Korean>
<Spanish>Mostrar nivel en HUD</Spanish> <Spanish>Mostrar nivel en HUD</Spanish>
<Portuguese>Mostrar nível no HUD</Portuguese> <Portuguese>Mostrar nível no HUD</Portuguese>
<French>Afficher le niveau dans le HUD</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_HudShowLevel_Description"> <Key ID="STR_ACE_Field_Rations_HudShowLevel_Description">
<English>Automatically show the HUD when either thirst or hunger are above this level.</English> <English>Automatically show the HUD when either thirst or hunger are above this level.</English>
@ -396,6 +414,7 @@
<Korean>정한 퍼센트 이하로 내려가면 HUD가 나타나게 합니다.</Korean> <Korean>정한 퍼센트 이하로 내려가면 HUD가 나타나게 합니다.</Korean>
<Spanish>Mostrar automáticamente el HUD cuando la sed o el hambre están por encima de este nivel.</Spanish> <Spanish>Mostrar automáticamente el HUD cuando la sed o el hambre están por encima de este nivel.</Spanish>
<Portuguese>Mostrar automaticamente o HUD quando a sede ou a fome estão acima deste nível.</Portuguese> <Portuguese>Mostrar automaticamente o HUD quando a sede ou a fome estão acima deste nível.</Portuguese>
<French>Affiche automatiquement le HUD dès que la soif ou la faim sont au-dessus de ce niveau.</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_Always"> <Key ID="STR_ACE_Field_Rations_Always">
<English>Always</English> <English>Always</English>
@ -427,6 +446,7 @@
<Korean>색깔 아이콘 - 투명도</Korean> <Korean>색깔 아이콘 - 투명도</Korean>
<Spanish>Iconos coloreados - Transparencia</Spanish> <Spanish>Iconos coloreados - Transparencia</Spanish>
<Portuguese>Ícones coloridos - Transparência</Portuguese> <Portuguese>Ícones coloridos - Transparência</Portuguese>
<French>Icônes de couleur - Transparence</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_HudTransparency_Description"> <Key ID="STR_ACE_Field_Rations_HudTransparency_Description">
<English>Controls the transparency of the Colored Icons HUD. Dynamic setting makes the HUD less transparent as thirst or hunger increase.</English> <English>Controls the transparency of the Colored Icons HUD. Dynamic setting makes the HUD less transparent as thirst or hunger increase.</English>
@ -441,6 +461,7 @@
<Korean>색깔 아이콘의 투명도를 조절합니다. 동적 설정의 경우 배고픔이나 목마름이 해결되면 덜 투명하게 바뀝니다.</Korean> <Korean>색깔 아이콘의 투명도를 조절합니다. 동적 설정의 경우 배고픔이나 목마름이 해결되면 덜 투명하게 바뀝니다.</Korean>
<Spanish>Controla la transparencia de los Iconos coloreados en el HUD. La opción dinámica muestra el HUD menos transparente cuando la sed o el hambre aumentan.</Spanish> <Spanish>Controla la transparencia de los Iconos coloreados en el HUD. La opción dinámica muestra el HUD menos transparente cuando la sed o el hambre aumentan.</Spanish>
<Portuguese>Controla a transparência dos ícones coloridos no HUD. A configuração dinâmica torna o HUD menos transparente à medida que a sede ou a fome aumentam.</Portuguese> <Portuguese>Controla a transparência dos ícones coloridos no HUD. A configuração dinâmica torna o HUD menos transparente à medida que a sede ou a fome aumentam.</Portuguese>
<French>Contrôle la transparence du HUD des icônes colorées. Un réglage dynamique rend le HUD moins transparent lorsque la soif ou la faim augmentent.</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_Dynamic"> <Key ID="STR_ACE_Field_Rations_Dynamic">
<English>Dynamic</English> <English>Dynamic</English>
@ -471,6 +492,7 @@
<Korean>식수 보급량</Korean> <Korean>식수 보급량</Korean>
<Spanish>Suministro de agua</Spanish> <Spanish>Suministro de agua</Spanish>
<Portuguese>Suprimentos de água</Portuguese> <Portuguese>Suprimentos de água</Portuguese>
<French>Réserve d'eau</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_WaterSupply_3DEN_Description"> <Key ID="STR_ACE_Field_Rations_WaterSupply_3DEN_Description">
<English>The amount of water available for ACE Field Rations water source actions (-1 disabled, -10 infinite)</English> <English>The amount of water available for ACE Field Rations water source actions (-1 disabled, -10 infinite)</English>
@ -484,6 +506,7 @@
<Korean>ACE 전투식량 물 근처 행동에서 얼마나 물을 얻어 갈 수 있는지를 정합니다 (-1은 비활성화, -10은 무한대)</Korean> <Korean>ACE 전투식량 물 근처 행동에서 얼마나 물을 얻어 갈 수 있는지를 정합니다 (-1은 비활성화, -10은 무한대)</Korean>
<Spanish>La cantidad de agua disponible para las acciones de suministro de agua de las Raciones de Combate de ACE (-1 deshabilitado, -10 infinito)</Spanish> <Spanish>La cantidad de agua disponible para las acciones de suministro de agua de las Raciones de Combate de ACE (-1 deshabilitado, -10 infinito)</Spanish>
<Portuguese>A quantidade de água disponível para as ações de suprimentos de água das Rações de Campo do ACE (-1 desativado, -10 infinito)</Portuguese> <Portuguese>A quantidade de água disponível para as ações de suprimentos de água das Rações de Campo do ACE (-1 desativado, -10 infinito)</Portuguese>
<French>Quantité d'eau disponible pour les actions relatives aux sources d'eau des rations de campagne ACE (-1 désactivé, -10 infini).</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_WaterSource"> <Key ID="STR_ACE_Field_Rations_WaterSource">
<English>Water Source</English> <English>Water Source</English>
@ -498,6 +521,7 @@
<Korean>수원지</Korean> <Korean>수원지</Korean>
<Spanish>Suministro de agua</Spanish> <Spanish>Suministro de agua</Spanish>
<Portuguese>Fonte de água</Portuguese> <Portuguese>Fonte de água</Portuguese>
<French>Source d'eau</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_CheckWater"> <Key ID="STR_ACE_Field_Rations_CheckWater">
<English>Check Remaining Water</English> <English>Check Remaining Water</English>
@ -512,6 +536,7 @@
<Korean>남은 물 확인</Korean> <Korean>남은 물 확인</Korean>
<Spanish>Comprobar agua restante</Spanish> <Spanish>Comprobar agua restante</Spanish>
<Portuguese>Verificar água restante</Portuguese> <Portuguese>Verificar água restante</Portuguese>
<French>Vérifier l'eau restante</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_CheckingWater"> <Key ID="STR_ACE_Field_Rations_CheckingWater">
<English>Checking remaining water...</English> <English>Checking remaining water...</English>
@ -526,6 +551,7 @@
<Korean>남은 물 확인 중...</Korean> <Korean>남은 물 확인 중...</Korean>
<Spanish>Comprobando agua restante...</Spanish> <Spanish>Comprobando agua restante...</Spanish>
<Portuguese>Verificando água restante...</Portuguese> <Portuguese>Verificando água restante...</Portuguese>
<French>Vérification de l'eau restante...</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_RemainingWater"> <Key ID="STR_ACE_Field_Rations_RemainingWater">
<English>There are %1 litres left.</English> <English>There are %1 litres left.</English>
@ -540,6 +566,7 @@
<Korean>%1 리터의 물이 남아있습니다.</Korean> <Korean>%1 리터의 물이 남아있습니다.</Korean>
<Spanish>Quedan %1 litros.</Spanish> <Spanish>Quedan %1 litros.</Spanish>
<Portuguese>Ainda há %1 litros.</Portuguese> <Portuguese>Ainda há %1 litros.</Portuguese>
<French>Il reste %1 litres.</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_NoWaterRemaining"> <Key ID="STR_ACE_Field_Rations_NoWaterRemaining">
<English>There is no water left.</English> <English>There is no water left.</English>
@ -554,6 +581,7 @@
<Korean>물이 한 방울도 없습니다.</Korean> <Korean>물이 한 방울도 없습니다.</Korean>
<Spanish>No queda agua.</Spanish> <Spanish>No queda agua.</Spanish>
<Portuguese>Não há mais água.</Portuguese> <Portuguese>Não há mais água.</Portuguese>
<French>Il n'y a plus d'eau.</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_DrinkFromSource"> <Key ID="STR_ACE_Field_Rations_DrinkFromSource">
<English>Drink From Source</English> <English>Drink From Source</English>
@ -567,6 +595,7 @@
<Korean>수원에서 물 마시기</Korean> <Korean>수원에서 물 마시기</Korean>
<Spanish>Beber desde el suministro</Spanish> <Spanish>Beber desde el suministro</Spanish>
<Portuguese>Beber da fonte</Portuguese> <Portuguese>Beber da fonte</Portuguese>
<French>Boire à la source</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_Refill"> <Key ID="STR_ACE_Field_Rations_Refill">
<English>Refill</English> <English>Refill</English>
@ -632,6 +661,7 @@
<Korean>%1 먹는 중...</Korean> <Korean>%1 먹는 중...</Korean>
<Spanish>Comiendo %1...</Spanish> <Spanish>Comiendo %1...</Spanish>
<Portuguese>Comendo %1...</Portuguese> <Portuguese>Comendo %1...</Portuguese>
<French>Manger %1...</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_DrinkingX"> <Key ID="STR_ACE_Field_Rations_DrinkingX">
<English>Drinking %1...</English> <English>Drinking %1...</English>
@ -646,6 +676,7 @@
<Korean>%1 마시는 중...</Korean> <Korean>%1 마시는 중...</Korean>
<Spanish>Bebiendo %1...</Spanish> <Spanish>Bebiendo %1...</Spanish>
<Portuguese>Bebendo %1...</Portuguese> <Portuguese>Bebendo %1...</Portuguese>
<French>Boire %1...</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_DrinkingFromX"> <Key ID="STR_ACE_Field_Rations_DrinkingFromX">
<English>Drinking from %1...</English> <English>Drinking from %1...</English>
@ -660,6 +691,7 @@
<Korean>%1 으로 부터 마시는 중...</Korean> <Korean>%1 으로 부터 마시는 중...</Korean>
<Spanish>Bebiendo desde %1...</Spanish> <Spanish>Bebiendo desde %1...</Spanish>
<Portuguese>Bebendo de %1...</Portuguese> <Portuguese>Bebendo de %1...</Portuguese>
<French>Boire à %1...</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_DrinkingFromSource"> <Key ID="STR_ACE_Field_Rations_DrinkingFromSource">
<English>Drinking from source...</English> <English>Drinking from source...</English>
@ -673,6 +705,7 @@
<Korean>수원에서 마시는 중...</Korean> <Korean>수원에서 마시는 중...</Korean>
<Spanish>Bebiendo desde el suministro...</Spanish> <Spanish>Bebiendo desde el suministro...</Spanish>
<Portuguese>Bebendo da fonte...</Portuguese> <Portuguese>Bebendo da fonte...</Portuguese>
<French>Boire à la source...</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_WaterBottle_DisplayName"> <Key ID="STR_ACE_Field_Rations_WaterBottle_DisplayName">
<English>Water Bottle</English> <English>Water Bottle</English>
@ -891,6 +924,7 @@
<Korean>상쾌한 레몬라임향의 탄산음료</Korean> <Korean>상쾌한 레몬라임향의 탄산음료</Korean>
<Spanish>Bebida refrescante de sabor lima y limón</Spanish> <Spanish>Bebida refrescante de sabor lima y limón</Spanish>
<Portuguese>Bebida refrescante de sabor limão e lima</Portuguese> <Portuguese>Bebida refrescante de sabor limão e lima</Portuguese>
<French>Une boisson gazeuse rafraîchissante au goût de citron et de citron vert.</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_Can_Franta_Description"> <Key ID="STR_ACE_Field_Rations_Can_Franta_Description">
<English>Orange flavored soft drink with a tingly, fruity taste</English> <English>Orange flavored soft drink with a tingly, fruity taste</English>
@ -905,6 +939,7 @@
<Korean>오렌지 향의 톡쏘는 탄산음료</Korean> <Korean>오렌지 향의 톡쏘는 탄산음료</Korean>
<Spanish>Bebida refrescante de sabor naranja, con un chispeante y afrutado sabor.</Spanish> <Spanish>Bebida refrescante de sabor naranja, con un chispeante y afrutado sabor.</Spanish>
<Portuguese>Bebida refrescante de sabor laranja, com um sabor frutado e formigante.</Portuguese> <Portuguese>Bebida refrescante de sabor laranja, com um sabor frutado e formigante.</Portuguese>
<French>Une boisson gazeuse aromatisée à l'orange</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_Can_RedGull_Description"> <Key ID="STR_ACE_Field_Rations_Can_RedGull_Description">
<English>Red Gull gives you wings</English> <English>Red Gull gives you wings</English>
@ -919,6 +954,7 @@
<Korean>레드굴은 날개를 달아줘요</Korean> <Korean>레드굴은 날개를 달아줘요</Korean>
<Spanish>Red Gull te da alas</Spanish> <Spanish>Red Gull te da alas</Spanish>
<Portuguese>Red Gull te dá asas</Portuguese> <Portuguese>Red Gull te dá asas</Portuguese>
<French>Red Gull vous donne des ailes</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_MRE_LambCurry_DisplayName"> <Key ID="STR_ACE_Field_Rations_MRE_LambCurry_DisplayName">
<English>MRE Lamb Curry</English> <English>MRE Lamb Curry</English>
@ -967,6 +1003,7 @@
<Korean>MRE 비프스튜</Korean> <Korean>MRE 비프스튜</Korean>
<Spanish>MRE Estofado de ternera</Spanish> <Spanish>MRE Estofado de ternera</Spanish>
<Portuguese>MRE ensopado de carne</Portuguese> <Portuguese>MRE ensopado de carne</Portuguese>
<French>MRE Ragoût de bœuf</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_MRE_BeefStew_Description"> <Key ID="STR_ACE_Field_Rations_MRE_BeefStew_Description">
<English>An MRE containing Beef Stew. Heat for best effect</English> <English>An MRE containing Beef Stew. Heat for best effect</English>
@ -981,6 +1018,7 @@
<Korean>비프스튜가 들어있는 MRE입니다. 뜨겁게 먹을 때 가장 좋습니다</Korean> <Korean>비프스튜가 들어있는 MRE입니다. 뜨겁게 먹을 때 가장 좋습니다</Korean>
<Spanish>Un MRE que contiene estofado de ternera. Calentar para mejor efecto.</Spanish> <Spanish>Un MRE que contiene estofado de ternera. Calentar para mejor efecto.</Spanish>
<Portuguese>Um MRE contendo ensopado de carne. Aquecer para melhor efeito</Portuguese> <Portuguese>Um MRE contendo ensopado de carne. Aquecer para melhor efeito</Portuguese>
<French>Un MRE contenant du ragoût de bœuf. Chauffer pour un meilleur effet</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_MRE_CreamTomatoSoup_DisplayName"> <Key ID="STR_ACE_Field_Rations_MRE_CreamTomatoSoup_DisplayName">
<English>MRE Cream Tomato Soup</English> <English>MRE Cream Tomato Soup</English>
@ -1229,6 +1267,7 @@
<Russian>Семечки подсолнуха</Russian> <Russian>Семечки подсолнуха</Russian>
<Spanish>Pipas de girasol</Spanish> <Spanish>Pipas de girasol</Spanish>
<Portuguese>Sementes de girassol</Portuguese> <Portuguese>Sementes de girassol</Portuguese>
<French>Graines de tournesol</French>
</Key> </Key>
<Key ID="STR_ACE_Field_Rations_SunflowerSeeds_Description"> <Key ID="STR_ACE_Field_Rations_SunflowerSeeds_Description">
<English>Roasted And Salted</English> <English>Roasted And Salted</English>
@ -1241,6 +1280,7 @@
<Russian>Поджаренные и солёные</Russian> <Russian>Поджаренные и солёные</Russian>
<Spanish>Tostadas y saladas</Spanish> <Spanish>Tostadas y saladas</Spanish>
<Portuguese>Torradas e salgadas</Portuguese> <Portuguese>Torradas e salgadas</Portuguese>
<French>Grillé et salé</French>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -27,6 +27,7 @@
<German>Hunger</German> <German>Hunger</German>
<Japanese>空腹</Japanese> <Japanese>空腹</Japanese>
<Russian>Голод</Russian> <Russian>Голод</Russian>
<French>Faim</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Field_Rations_Hunger_Description"> <Key ID="STR_ACE_FieldManual_Field_Rations_Hunger_Description">
<English>%3Hunger%4 increases linearly with soldier's movement speed. Restore by eating food.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Pick up food.&lt;br/&gt;%2Use [%3%12%4] and select %3Survival%4.&lt;br/&gt;%2Choose an item to consume.</English> <English>%3Hunger%4 increases linearly with soldier's movement speed. Restore by eating food.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Pick up food.&lt;br/&gt;%2Use [%3%12%4] and select %3Survival%4.&lt;br/&gt;%2Choose an item to consume.</English>
@ -37,6 +38,7 @@
<Italian>%3Fame%4 aumenta linearmente con la velocità di movimento del soldato. Si rigenera consumando cibo.&lt;br/&gt;&lt;br/&gt;%3Usa:%4&lt;br/&gt;%2Raccogli cibo.&lt;br/&gt;%2Usa [%3%12%4] e scegli %3sopravvivenza%4.&lt;br /&gt;%2Scegli un articolo da mangiare.</Italian> <Italian>%3Fame%4 aumenta linearmente con la velocità di movimento del soldato. Si rigenera consumando cibo.&lt;br/&gt;&lt;br/&gt;%3Usa:%4&lt;br/&gt;%2Raccogli cibo.&lt;br/&gt;%2Usa [%3%12%4] e scegli %3sopravvivenza%4.&lt;br /&gt;%2Scegli un articolo da mangiare.</Italian>
<Japanese>%3空腹度%4は兵士の移動速度に比例して増加します。食べ物を食べることで回復します。&lt;br/&gt;&lt;br/&gt;%3使用方法:%4&lt;br/&gt;%2食べ物を持つ。&lt;br/&gt;%2[%3%12%4] を使って%3サバイバル%4を選択。&lt;br/&gt;%2食べたいものを選ぶ。</Japanese> <Japanese>%3空腹度%4は兵士の移動速度に比例して増加します。食べ物を食べることで回復します。&lt;br/&gt;&lt;br/&gt;%3使用方法:%4&lt;br/&gt;%2食べ物を持つ。&lt;br/&gt;%2[%3%12%4] を使って%3サバイバル%4を選択。&lt;br/&gt;%2食べたいものを選ぶ。</Japanese>
<Russian>%3Голод%4 линейно увеличивается со скоростью передвижения солдата. Восстанавливайтесь, употребляя пищу.&lt;br/&gt;&lt;br/&gt;%3 Использование:%4&lt;br/&gt;%2Возьмите еду.&lt;br/&gt;%2Используйте [%3%12%4] и выберите %3Выживание% 4.&lt;br/&gt;%2Выберите продукт для потребления.</Russian> <Russian>%3Голод%4 линейно увеличивается со скоростью передвижения солдата. Восстанавливайтесь, употребляя пищу.&lt;br/&gt;&lt;br/&gt;%3 Использование:%4&lt;br/&gt;%2Возьмите еду.&lt;br/&gt;%2Используйте [%3%12%4] и выберите %3Выживание% 4.&lt;br/&gt;%2Выберите продукт для потребления.</Russian>
<French>%3La faim%4 augmente linéairement avec la vitesse de déplacement du soldat. Il se régénère en consommant de la nourriture.&lt;br/&gt;&lt;br/&gt;%3Utilisation:%4&lt;br/&gt;%2Ramasser la nourriture.&lt;br/&gt;%2Utilisez [%3%12%4] et sélectionnez %3Survie%4.&lt;br/&gt;%2Choisissez un article à consommer.</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Field_Rations_Thirst_DisplayName"> <Key ID="STR_ACE_FieldManual_Field_Rations_Thirst_DisplayName">
<English>Thirst</English> <English>Thirst</English>
@ -47,6 +49,7 @@
<German>Durst</German> <German>Durst</German>
<Japanese>渇き</Japanese> <Japanese>渇き</Japanese>
<Russian>Жажда</Russian> <Russian>Жажда</Russian>
<French>Soif</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Field_Rations_Thirst_Description"> <Key ID="STR_ACE_FieldManual_Field_Rations_Thirst_Description">
<English>%3Thirst%4 increases linearly with soldier's movement speed. Restore by drinking liquids.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Pick up a drink.&lt;br/&gt;%2Use [%3%12%4] and select %3Survival%4.&lt;br/&gt;%2Choose an item to consume.</English> <English>%3Thirst%4 increases linearly with soldier's movement speed. Restore by drinking liquids.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Pick up a drink.&lt;br/&gt;%2Use [%3%12%4] and select %3Survival%4.&lt;br/&gt;%2Choose an item to consume.</English>
@ -57,6 +60,7 @@
<Italian>%3Sete%4 aumenta linearmente con la velocità di movimento del soldato. Si rigenera bevendo liquidi.&lt;br/&gt;&lt;br/&gt;%3Usa:%4&lt;br/&gt;%2Raccogli bevanda.&lt;br/&gt;%2Usa [%3%12%4] e scegli %3sopravvivenza%4.&lt;br /&gt;%2Scegli un articolo da bere.</Italian> <Italian>%3Sete%4 aumenta linearmente con la velocità di movimento del soldato. Si rigenera bevendo liquidi.&lt;br/&gt;&lt;br/&gt;%3Usa:%4&lt;br/&gt;%2Raccogli bevanda.&lt;br/&gt;%2Usa [%3%12%4] e scegli %3sopravvivenza%4.&lt;br /&gt;%2Scegli un articolo da bere.</Italian>
<Japanese>%3喉の渇き%4は兵士の移動速度に比例して増加します。飲み物を飲むことで回復します。&lt;br/&gt;&lt;br/&gt;%3使用方法:%4&lt;br/&gt;%2飲み物を持つ。&lt;br/&gt;%2[%3%12%4] を使って%3サバイバル%4を選択。&lt;br/&gt;%2飲みたいものを選ぶ。</Japanese> <Japanese>%3喉の渇き%4は兵士の移動速度に比例して増加します。飲み物を飲むことで回復します。&lt;br/&gt;&lt;br/&gt;%3使用方法:%4&lt;br/&gt;%2飲み物を持つ。&lt;br/&gt;%2[%3%12%4] を使って%3サバイバル%4を選択。&lt;br/&gt;%2飲みたいものを選ぶ。</Japanese>
<Russian>%3Жажда%4 линейно увеличивается со скоростью передвижения солдата. Восстанавливайтесь, употребляя напитки.&lt;br/&gt;&lt;br/&gt;%3 Использование:%4&lt;br/&gt;%2Возьмите напиток.&lt;br/&gt;%2Используйте [%3%12%4] и выберите %3Выживание% 4.&lt;br/&gt;%2Выберите напиток для потребления.</Russian> <Russian>%3Жажда%4 линейно увеличивается со скоростью передвижения солдата. Восстанавливайтесь, употребляя напитки.&lt;br/&gt;&lt;br/&gt;%3 Использование:%4&lt;br/&gt;%2Возьмите напиток.&lt;br/&gt;%2Используйте [%3%12%4] и выберите %3Выживание% 4.&lt;br/&gt;%2Выберите напиток для потребления.</Russian>
<French>%3La soif%4 augmente linéairement avec la vitesse de déplacement du soldat. Elle se régénère en buvant des liquides.&lt;br/&gt;&lt;br/&gt;%3Utilisez [%3%12%4] et choisissez %3survival%4.&lt;br /&gt;%2Choisissez un article à boire.</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Medical_Treatment_DisplayName"> <Key ID="STR_ACE_FieldManual_Medical_Treatment_DisplayName">
<English>Medical Treatment</English> <English>Medical Treatment</English>
@ -67,6 +71,7 @@
<Italian>Cure Mediche</Italian> <Italian>Cure Mediche</Italian>
<Japanese>治療</Japanese> <Japanese>治療</Japanese>
<Russian>Медицинское лечение</Russian> <Russian>Медицинское лечение</Russian>
<French>Traitement médical</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Medical_Treatment_Adenosine_ShortName"> <Key ID="STR_ACE_FieldManual_Medical_Treatment_Adenosine_ShortName">
<English>Decrease Heart Rate</English> <English>Decrease Heart Rate</English>
@ -77,6 +82,7 @@
<Italian>Rallenta ritmo cardiaco</Italian> <Italian>Rallenta ritmo cardiaco</Italian>
<Japanese>心拍数を下げる</Japanese> <Japanese>心拍数を下げる</Japanese>
<Russian>Уменьшить частоту сердечных сокращений</Russian> <Russian>Уменьшить частоту сердечных сокращений</Russian>
<French>Diminution de la fréquence cardiaque</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Medical_Treatment_Adenosine_Description"> <Key ID="STR_ACE_FieldManual_Medical_Treatment_Adenosine_Description">
<English>%3Adenosine%4 is used to decrease heart rate.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Use [%3%13%4] or [%3%14%4] and select an appendage.&lt;br/&gt;%2Inject %3Adenosine%4.</English> <English>%3Adenosine%4 is used to decrease heart rate.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Use [%3%13%4] or [%3%14%4] and select an appendage.&lt;br/&gt;%2Inject %3Adenosine%4.</English>
@ -87,6 +93,7 @@
<Italian>%3Adenosina%4 è usata per rallentare il ritmo cardiaco.&lt;br/&gt;&lt;br/&gt;%3Utilizzo:%4&lt;br/&gt;%2Usa [%3%13%4] o [%3%14%4] e seleziona un arto.&lt;br/&gt;%2Inject %3Adenosina%4.</Italian> <Italian>%3Adenosina%4 è usata per rallentare il ritmo cardiaco.&lt;br/&gt;&lt;br/&gt;%3Utilizzo:%4&lt;br/&gt;%2Usa [%3%13%4] o [%3%14%4] e seleziona un arto.&lt;br/&gt;%2Inject %3Adenosina%4.</Italian>
<Japanese>%3アデシン%4は心拍数を下げるのに使われます。&lt;br/&gt;&lt;br/&gt;%3使用方法:%4&lt;br/&gt;%2[%3%13%4] または [%3%14%4] を使って四肢を選択します。&lt;br/&gt;%2そして%3アデシン%4を注射します。</Japanese> <Japanese>%3アデシン%4は心拍数を下げるのに使われます。&lt;br/&gt;&lt;br/&gt;%3使用方法:%4&lt;br/&gt;%2[%3%13%4] または [%3%14%4] を使って四肢を選択します。&lt;br/&gt;%2そして%3アデシン%4を注射します。</Japanese>
<Russian>%3Аденозин%4 используется для снижения частоты сердечных сокращений.&lt;br/&gt;&lt;br/&gt;%3Применение:%4&lt;br/&gt;%2Используйте [%3%13%4] или [%3%14%4] и выберите конечность.&lt;br/&gt;%2Введите %3Аденозин%4.</Russian> <Russian>%3Аденозин%4 используется для снижения частоты сердечных сокращений.&lt;br/&gt;&lt;br/&gt;%3Применение:%4&lt;br/&gt;%2Используйте [%3%13%4] или [%3%14%4] и выберите конечность.&lt;br/&gt;%2Введите %3Аденозин%4.</Russian>
<French>L'%3adénosine%4 est utilisée pour réduire la fréquence cardiaque.&lt;br/&gt;&lt;br/&gt;%3Utilisation:%4&lt;br/&gt;%2Utilisez [%3%13%4] ou [%3%14%4] et sélectionnez un membre.&lt;br/&gt;%2Injectez l'%3Adénosine%4.</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Medical_Treatment_Bandages_DisplayName"> <Key ID="STR_ACE_FieldManual_Medical_Treatment_Bandages_DisplayName">
<English>Bandages</English> <English>Bandages</English>
@ -97,6 +104,7 @@
<Italian>Bende</Italian> <Italian>Bende</Italian>
<Japanese>包帯</Japanese> <Japanese>包帯</Japanese>
<Russian>Бинты</Russian> <Russian>Бинты</Russian>
<French>Pansements</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Medical_Treatment_Bandages_ShortName"> <Key ID="STR_ACE_FieldManual_Medical_Treatment_Bandages_ShortName">
<English>Close Wounds</English> <English>Close Wounds</English>
@ -107,6 +115,7 @@
<Italian>Chiudi ferite</Italian> <Italian>Chiudi ferite</Italian>
<Japanese>傷口をふさぐ</Japanese> <Japanese>傷口をふさぐ</Japanese>
<Russian>Закрыть раны</Russian> <Russian>Закрыть раны</Russian>
<French>Fermer les plaies</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Medical_Treatment_Bandages_Description"> <Key ID="STR_ACE_FieldManual_Medical_Treatment_Bandages_Description">
<English>%3Bandages%4 stop bleeding and close wounds. Depending on your settings, bandages may reopen if surgery is not performed.&lt;br/&gt;&lt;br/&gt;%2%3Field Dressing:%4&lt;br/&gt;%11&lt;t color='#D9D900'&gt;Average&lt;/t&gt; In All Categories&lt;br/&gt;%2%3Packing Bandage:%4&lt;br/&gt;%11&lt;t color='#D9D900'&gt;Average&lt;/t&gt; Treatment&lt;br/&gt;%11&lt;t color='#E60000'&gt;Higher&lt;/t&gt; Reopen Chance&lt;br/&gt;%11&lt;t color='#00CC00'&gt;Longer&lt;/t&gt; Reopen Delay&lt;br/&gt;%2%3Elastic Bandage:%4&lt;br/&gt;%11&lt;t color='#00CC00'&gt;Higher&lt;/t&gt; Treatment&lt;br/&gt;%11&lt;t color='#E60000'&gt;Higher&lt;/t&gt; Reopen Chance&lt;br/&gt;%11&lt;t color='#E60000'&gt;Shorter&lt;/t&gt; Reopen Delay&lt;br/&gt;%2%3Quickclot:%4&lt;br/&gt;%11&lt;t color='#E60000'&gt;Lower&lt;/t&gt; Treatment&lt;br/&gt;%11&lt;t color='#00CC00'&gt;Lower&lt;/t&gt; Reopen Chance&lt;br/&gt;%11&lt;t color='#00CC00'&gt;Longer&lt;/t&gt; Reopening Delay&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Use [%3%13%4] or [%3%14%4] and select a injured body part.&lt;br/&gt;%2Bandage body part by selecting desired %3Bandage%4 type.</English> <English>%3Bandages%4 stop bleeding and close wounds. Depending on your settings, bandages may reopen if surgery is not performed.&lt;br/&gt;&lt;br/&gt;%2%3Field Dressing:%4&lt;br/&gt;%11&lt;t color='#D9D900'&gt;Average&lt;/t&gt; In All Categories&lt;br/&gt;%2%3Packing Bandage:%4&lt;br/&gt;%11&lt;t color='#D9D900'&gt;Average&lt;/t&gt; Treatment&lt;br/&gt;%11&lt;t color='#E60000'&gt;Higher&lt;/t&gt; Reopen Chance&lt;br/&gt;%11&lt;t color='#00CC00'&gt;Longer&lt;/t&gt; Reopen Delay&lt;br/&gt;%2%3Elastic Bandage:%4&lt;br/&gt;%11&lt;t color='#00CC00'&gt;Higher&lt;/t&gt; Treatment&lt;br/&gt;%11&lt;t color='#E60000'&gt;Higher&lt;/t&gt; Reopen Chance&lt;br/&gt;%11&lt;t color='#E60000'&gt;Shorter&lt;/t&gt; Reopen Delay&lt;br/&gt;%2%3Quickclot:%4&lt;br/&gt;%11&lt;t color='#E60000'&gt;Lower&lt;/t&gt; Treatment&lt;br/&gt;%11&lt;t color='#00CC00'&gt;Lower&lt;/t&gt; Reopen Chance&lt;br/&gt;%11&lt;t color='#00CC00'&gt;Longer&lt;/t&gt; Reopening Delay&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Use [%3%13%4] or [%3%14%4] and select a injured body part.&lt;br/&gt;%2Bandage body part by selecting desired %3Bandage%4 type.</English>
@ -125,6 +134,7 @@
<German>IV-Flüssigkeiten</German> <German>IV-Flüssigkeiten</German>
<Italian>Fluidi EV</Italian> <Italian>Fluidi EV</Italian>
<Japanese>IV 輸液</Japanese> <Japanese>IV 輸液</Japanese>
<French>IV Fluides</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Medical_Treatment_IVFluids_ShortName"> <Key ID="STR_ACE_FieldManual_Medical_Treatment_IVFluids_ShortName">
<English>Restore Blood Volume</English> <English>Restore Blood Volume</English>
@ -135,6 +145,7 @@
<Italian>Ristorano Volume di Sangue</Italian> <Italian>Ristorano Volume di Sangue</Italian>
<Japanese>血液量を回復する</Japanese> <Japanese>血液量を回復する</Japanese>
<Russian>Внутривенные жидкости</Russian> <Russian>Внутривенные жидкости</Russian>
<French>Restaurer le volume sanguin</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Medical_Treatment_IVFluids_Description"> <Key ID="STR_ACE_FieldManual_Medical_Treatment_IVFluids_Description">
<English>%3IV fluids%4 restore lost blood volume. Blood, Plasma, and Saline are functionally the same.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Use [%3%13%4] or [%3%14%4] and select an appendage.&lt;br/&gt;%2Restore blood volume by selecting desired %3IV Fluid%4 type.</English> <English>%3IV fluids%4 restore lost blood volume. Blood, Plasma, and Saline are functionally the same.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Use [%3%13%4] or [%3%14%4] and select an appendage.&lt;br/&gt;%2Restore blood volume by selecting desired %3IV Fluid%4 type.</English>
@ -154,6 +165,7 @@
<Italian>Aumenta ritmo cardiaco | Accelera rinvenimento </Italian> <Italian>Aumenta ritmo cardiaco | Accelera rinvenimento </Italian>
<Japanese>心拍数を上げる | はやく起こす</Japanese> <Japanese>心拍数を上げる | はやく起こす</Japanese>
<Russian>Увеличьте частоту сердечных сокращений | просыпайтесь быстрее</Russian> <Russian>Увеличьте частоту сердечных сокращений | просыпайтесь быстрее</Russian>
<French>Augmentation de la fréquence cardiaque - Réveil plus rapide</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Medical_Treatment_Epinephrine_Description"> <Key ID="STR_ACE_FieldManual_Medical_Treatment_Epinephrine_Description">
<English>%3Epinephrine%4 increases a patient's pulse as well as potentially decreasing the time between consciousnesss checks (effectively reducing the time needed for the patient to wake up).&lt;br/&gt;&lt;br/&gt;%3Usage%4&lt;br/&gt;%2Use [%3%13%4] or [%3%14%4] and select an appendage.&lt;br/&gt;%2Inject %3Epinephrine%4.</English> <English>%3Epinephrine%4 increases a patient's pulse as well as potentially decreasing the time between consciousnesss checks (effectively reducing the time needed for the patient to wake up).&lt;br/&gt;&lt;br/&gt;%3Usage%4&lt;br/&gt;%2Use [%3%13%4] or [%3%14%4] and select an appendage.&lt;br/&gt;%2Inject %3Epinephrine%4.</English>
@ -173,6 +185,7 @@
<Italian>Cura completa</Italian> <Italian>Cura completa</Italian>
<Japanese>生まれたてのように回復する</Japanese> <Japanese>生まれたてのように回復する</Japanese>
<Russian>Лечение тела</Russian> <Russian>Лечение тела</Russian>
<French>Remettre comme neuf</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Medical_Treatment_PAK_Description"> <Key ID="STR_ACE_FieldManual_Medical_Treatment_PAK_Description">
<English>The %3Personal Aid Kit%4 is an item that allows a soldier to be fully healed. Independent of %3ACE Settings%4, it requires that the patient is in %3Stable Condition%4 before use.&lt;br/&gt;&lt;br/&gt;%3Stable Condition%4 qualifies as:&lt;br/&gt;%2Unit is %3Alive%4.&lt;br/&gt;%2Unit is %3Conscious%4.&lt;br/&gt;%2Unit has no active %3Bleeding%4.&lt;br/&gt;%2Heart Rate &gt;= 40.&lt;br/&gt;%2Systolic BP &gt;= 60.&lt;br/&gt;%2Diastolic BP &gt;= 50.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Move to appropriate location depending on %3ACE Settings%4.&lt;br/&gt;%2Use [%3%13%4] or [%3%14%4] and select %3Advanced Treatments%4&lt;br/&gt;%2Select %3Use Personal Aid Kit%4.</English> <English>The %3Personal Aid Kit%4 is an item that allows a soldier to be fully healed. Independent of %3ACE Settings%4, it requires that the patient is in %3Stable Condition%4 before use.&lt;br/&gt;&lt;br/&gt;%3Stable Condition%4 qualifies as:&lt;br/&gt;%2Unit is %3Alive%4.&lt;br/&gt;%2Unit is %3Conscious%4.&lt;br/&gt;%2Unit has no active %3Bleeding%4.&lt;br/&gt;%2Heart Rate &gt;= 40.&lt;br/&gt;%2Systolic BP &gt;= 60.&lt;br/&gt;%2Diastolic BP &gt;= 50.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Move to appropriate location depending on %3ACE Settings%4.&lt;br/&gt;%2Use [%3%13%4] or [%3%14%4] and select %3Advanced Treatments%4&lt;br/&gt;%2Select %3Use Personal Aid Kit%4.</English>
@ -192,6 +205,7 @@
<Italian>Risolvi frattura</Italian> <Italian>Risolvi frattura</Italian>
<Japanese>骨折を治す</Japanese> <Japanese>骨折を治す</Japanese>
<Russian>Исправлять переломы</Russian> <Russian>Исправлять переломы</Russian>
<French>Réparation des fractures</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Medical_Treatment_Splint_Description"> <Key ID="STR_ACE_FieldManual_Medical_Treatment_Splint_Description">
<English>A %3Splint%4 is used to fix fractures. The %3Splint%4 is consumed when used.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Use [%3%13%4] or [%3%14%4] and select an affected appendage.&lt;br/&gt;%2Select %3Apply Splint%4.</English> <English>A %3Splint%4 is used to fix fractures. The %3Splint%4 is consumed when used.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Use [%3%13%4] or [%3%14%4] and select an affected appendage.&lt;br/&gt;%2Select %3Apply Splint%4.</English>
@ -210,6 +224,7 @@
<Italian>Impedisce la riapertura di ferite</Italian> <Italian>Impedisce la riapertura di ferite</Italian>
<Japanese>傷口が開くのを防ぐ</Japanese> <Japanese>傷口が開くのを防ぐ</Japanese>
<Russian>Предотвратить повторное открытие ран</Russian> <Russian>Предотвратить повторное открытие ран</Russian>
<French>Empêcher la réouverture des plaies</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Medical_Treatment_SurgicalKit_Description"> <Key ID="STR_ACE_FieldManual_Medical_Treatment_SurgicalKit_Description">
<English>A %3Surgical Kit%4 is used to prevent wounds from reopening after being bandaged. Depending on settings, it can also clear trauma and may require additional %3Sutures%4 to close wounds. Sutures are consumable, much like bandages, and are not a replacement for the Surgical Kit.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Use [%3%13%4] or [%3%14%4] and select %3Advanced Treatment%4.&lt;br/&gt;%2Select %3Use Surgical Kit%4.</English> <English>A %3Surgical Kit%4 is used to prevent wounds from reopening after being bandaged. Depending on settings, it can also clear trauma and may require additional %3Sutures%4 to close wounds. Sutures are consumable, much like bandages, and are not a replacement for the Surgical Kit.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Use [%3%13%4] or [%3%14%4] and select %3Advanced Treatment%4.&lt;br/&gt;%2Select %3Use Surgical Kit%4.</English>
@ -227,6 +242,7 @@
<Italian>Ferma emorragia</Italian> <Italian>Ferma emorragia</Italian>
<Japanese>出血を止める</Japanese> <Japanese>出血を止める</Japanese>
<Russian>Остановить кровотечение</Russian> <Russian>Остановить кровотечение</Russian>
<French>Arrêter les saignements</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Medical_Treatment_CAT_Description"> <Key ID="STR_ACE_FieldManual_Medical_Treatment_CAT_Description">
<English>A %3Tourniquet%4 stops bleeding temporarily so that a wound(s) can be bandaged. Can only be used on limbs.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Use [%3%13%4] or [%3%14%4] and select an affected appendage.&lt;br/&gt;%2Select %3Apply Tourniquet%4.</English> <English>A %3Tourniquet%4 stops bleeding temporarily so that a wound(s) can be bandaged. Can only be used on limbs.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Use [%3%13%4] or [%3%14%4] and select an affected appendage.&lt;br/&gt;%2Select %3Apply Tourniquet%4.</English>
@ -259,6 +275,7 @@
<Italian>Cure, Semplificato</Italian> <Italian>Cure, Semplificato</Italian>
<Portuguese>Tratamento, Simplificado</Portuguese> <Portuguese>Tratamento, Simplificado</Portuguese>
<Japanese>治療を簡略化する</Japanese> <Japanese>治療を簡略化する</Japanese>
<French>Traitement, simplifié</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Medical_Treatment_MedicalMenu_Description"> <Key ID="STR_ACE_FieldManual_Medical_Treatment_MedicalMenu_Description">
<English>The %3Medical Menu%4 is a dedicated %3interface%4 to facilitate %3medical treatment%4. The %3R%4 and %3L%4 letters indicate the side of the patient's body being treated.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Use [%3%14%4] while looking at a patient to open the Medical Menu. Opening the menu without a patient allows for self-treatment.&lt;br/&gt;%2Alternatively, use [%3%12%4] or [%3%13%4] and select %3Medical Menu%4.&lt;br/&gt;&lt;br/&gt;%3Keybinds:%4&lt;br/&gt;%2Use [%3W, A, S, D, X, and Z%4] to select body parts.&lt;br/&gt;%2Use your %3number keys%4 to select treatment categories.</English> <English>The %3Medical Menu%4 is a dedicated %3interface%4 to facilitate %3medical treatment%4. The %3R%4 and %3L%4 letters indicate the side of the patient's body being treated.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Use [%3%14%4] while looking at a patient to open the Medical Menu. Opening the menu without a patient allows for self-treatment.&lt;br/&gt;%2Alternatively, use [%3%12%4] or [%3%13%4] and select %3Medical Menu%4.&lt;br/&gt;&lt;br/&gt;%3Keybinds:%4&lt;br/&gt;%2Use [%3W, A, S, D, X, and Z%4] to select body parts.&lt;br/&gt;%2Use your %3number keys%4 to select treatment categories.</English>
@ -275,6 +292,7 @@
<Portuguese>Portátil, Preciso e Robusto</Portuguese> <Portuguese>Portátil, Preciso e Robusto</Portuguese>
<Italian>Leggero, Preciso, Robusto</Italian> <Italian>Leggero, Preciso, Robusto</Italian>
<Japanese>高機動、高精度、高耐久</Japanese> <Japanese>高機動、高精度、高耐久</Japanese>
<French>Portable, précis, robuste</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Items_ATragMX_Description"> <Key ID="STR_ACE_FieldManual_Items_ATragMX_Description">
<English>The %3Horus ATragMX%4 considers atmospheric conditions, gun data, ammunition, range, speed, and muzzle velocity to calculate precise aiming solutions with %3Come-Up%4 results - and even accounts for %3Coriolis%4 and %3Spin Drift%4 effects. %3ATragMX%4, loaded on a handheld computer made by %3TDS Recon%4, is easy to use and lightning fast. The %3Recon%4 meets the rigorous %3MIL-STD-810F%4 military standard for drops, vibration, humidity, altitude and extreme temperatures.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;Please visit the wiki page for more information.</English> <English>The %3Horus ATragMX%4 considers atmospheric conditions, gun data, ammunition, range, speed, and muzzle velocity to calculate precise aiming solutions with %3Come-Up%4 results - and even accounts for %3Coriolis%4 and %3Spin Drift%4 effects. %3ATragMX%4, loaded on a handheld computer made by %3TDS Recon%4, is easy to use and lightning fast. The %3Recon%4 meets the rigorous %3MIL-STD-810F%4 military standard for drops, vibration, humidity, altitude and extreme temperatures.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;Please visit the wiki page for more information.</English>
@ -291,6 +309,7 @@
<Portuguese>Retorne os Abatidos</Portuguese> <Portuguese>Retorne os Abatidos</Portuguese>
<Italian>Recupera i tuoi morti</Italian> <Italian>Recupera i tuoi morti</Italian>
<Japanese>死者を連れ出す</Japanese> <Japanese>死者を連れ出す</Japanese>
<French>Récupérez vos morts</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Items_BodyBag_Description"> <Key ID="STR_ACE_FieldManual_Items_BodyBag_Description">
<English>%3Body Bags%4 are used to transport dead bodies. They can be dragged and loaded into vehicles.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Approach a dead body.&lt;br/&gt;%2Use [%3%13%4] or [%3%15%4] and select %3Place Body In Bodybag%4.</English> <English>%3Body Bags%4 are used to transport dead bodies. They can be dragged and loaded into vehicles.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Approach a dead body.&lt;br/&gt;%2Use [%3%13%4] or [%3%15%4] and select %3Place Body In Bodybag%4.</English>
@ -307,6 +326,7 @@
<Portuguese>Faça Prisioneiros</Portuguese> <Portuguese>Faça Prisioneiros</Portuguese>
<Italian>Prendi prigionieri</Italian> <Italian>Prendi prigionieri</Italian>
<Japanese>捕虜の捕り方</Japanese> <Japanese>捕虜の捕り方</Japanese>
<French>Faire des prisonniers</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Items_CableTie_Description"> <Key ID="STR_ACE_FieldManual_Items_CableTie_Description">
<English>%3Cable Ties%4 enable a soldier to capture and detain another soldier. Once apprehended, the captor gains the ability to inspect the prisoner's belongings, set them free, or accompany them to an alternate area. Transporting escorted prisoners is also possible, including loading them into vehicles if needed. Depending on your settings, units may need to surrender before being taken captive.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Approach the unit and use the [%3%13%4].&lt;br/&gt;%2The interaction is located around the hands in the form of a handcuffs icon.&lt;br/&gt;%2Repeat to release.</English> <English>%3Cable Ties%4 enable a soldier to capture and detain another soldier. Once apprehended, the captor gains the ability to inspect the prisoner's belongings, set them free, or accompany them to an alternate area. Transporting escorted prisoners is also possible, including loading them into vehicles if needed. Depending on your settings, units may need to surrender before being taken captive.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Approach the unit and use the [%3%13%4].&lt;br/&gt;%2The interaction is located around the hands in the form of a handcuffs icon.&lt;br/&gt;%2Repeat to release.</English>
@ -323,6 +343,7 @@
<Portuguese>Celular Explosivo</Portuguese> <Portuguese>Celular Explosivo</Portuguese>
<Italian>Cellulare per esplosivi</Italian> <Italian>Cellulare per esplosivi</Italian>
<Japanese>電話でドカン</Japanese> <Japanese>電話でドカン</Japanese>
<French>Explosifs téléphone portable</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Items_Cellphone_Description"> <Key ID="STR_ACE_FieldManual_Items_Cellphone_Description">
<English>The %3Cellphone%4 is functionally a %3Clacker%4. Use it to connect and detonate an explosive device. Multiple devices can be linked to the cellphone and called within the phonebook.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Place an explosive.&lt;br/&gt;%2Use [%3%13%4], select %3Explosives%4, and select %3Cellphone%4.&lt;br/&gt;%2Open the cellphone interface with [%3%12%4].&lt;br/&gt;%2Navigate the phone book with the arrows and select your calling number.&lt;br/&gt;%2Call the number to detonate.</English> <English>The %3Cellphone%4 is functionally a %3Clacker%4. Use it to connect and detonate an explosive device. Multiple devices can be linked to the cellphone and called within the phonebook.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Place an explosive.&lt;br/&gt;%2Use [%3%13%4], select %3Explosives%4, and select %3Cellphone%4.&lt;br/&gt;%2Open the cellphone interface with [%3%12%4].&lt;br/&gt;%2Navigate the phone book with the arrows and select your calling number.&lt;br/&gt;%2Call the number to detonate.</English>
@ -339,6 +360,7 @@
<Portuguese>Luzes de Leitura Portáteis</Portuguese> <Portuguese>Luzes de Leitura Portáteis</Portuguese>
<Italian>Luci da Lettura Portabili</Italian> <Italian>Luci da Lettura Portabili</Italian>
<Japanese>携帯読書灯</Japanese> <Japanese>携帯読書灯</Japanese>
<French>Lampes de lecture portables</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Items_Chemlight_Shield_Description"> <Key ID="STR_ACE_FieldManual_Items_Chemlight_Shield_Description">
<English>%3Chemlight Shields%4 give you the ability to read your map, even in dark environments. However, when using %3Chemlight Shields%4, you will have a slight glow around you.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Use [%3%12%4] and select %3Equipment%4.&lt;br/&gt;%2elect %3Chemlights%4 and %3Prepare Chemlight Shield (Color)%4.&lt;br/&gt;%2Open %3Map%4.&lt;br/&gt;%2Use [%3%12%4] and select %3Flashlights%4 where you will find your chemlight shield.</English> <English>%3Chemlight Shields%4 give you the ability to read your map, even in dark environments. However, when using %3Chemlight Shields%4, you will have a slight glow around you.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Use [%3%12%4] and select %3Equipment%4.&lt;br/&gt;%2elect %3Chemlights%4 and %3Prepare Chemlight Shield (Color)%4.&lt;br/&gt;%2Open %3Map%4.&lt;br/&gt;%2Use [%3%12%4] and select %3Flashlights%4 where you will find your chemlight shield.</English>
@ -355,6 +377,7 @@
<Portuguese>Detonação Remota</Portuguese> <Portuguese>Detonação Remota</Portuguese>
<Italian>Detonazione da remoto</Italian> <Italian>Detonazione da remoto</Italian>
<Japanese>リモコン爆弾</Japanese> <Japanese>リモコン爆弾</Japanese>
<French>Détonation à distance</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Items_Clackers_Description"> <Key ID="STR_ACE_FieldManual_Items_Clackers_Description">
<English>Use %3Clackers%4 to connect and detonate an explosive device. Multiple devices can be linked to a clacker and detonated on different channels.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Place an explosive.&lt;br/&gt;%2Use [%3%13%4], select %3Explosives%4, and select the %3Clacker%4 you wish to link to.&lt;br/&gt;%2Open the ACE interface with [%3%12%4].&lt;br/&gt;%2Select %3Explosives%4 and select a %3Clacker%4.&lt;br/&gt;%2Select the %3Explosive%4 you wish to detonate.</English> <English>Use %3Clackers%4 to connect and detonate an explosive device. Multiple devices can be linked to a clacker and detonated on different channels.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Place an explosive.&lt;br/&gt;%2Use [%3%13%4], select %3Explosives%4, and select the %3Clacker%4 you wish to link to.&lt;br/&gt;%2Open the ACE interface with [%3%12%4].&lt;br/&gt;%2Select %3Explosives%4 and select a %3Clacker%4.&lt;br/&gt;%2Select the %3Explosive%4 you wish to detonate.</English>
@ -370,6 +393,7 @@
<Italian>Naviga</Italian> <Italian>Naviga</Italian>
<Japanese>測位</Japanese> <Japanese>測位</Japanese>
<Russian>Навигация</Russian> <Russian>Навигация</Russian>
<French>Naviguer</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Items_DAGR_Description"> <Key ID="STR_ACE_FieldManual_Items_DAGR_Description">
<English>The %3DAGR%4 is a simpler version of the %3MicroDAGR GPS%4. It has similar features but lacks the topographic and satellite imaging functions of the %3MicroDAGR GPS%4.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Equip a %3DAGR%4.&lt;br/&gt;%2Use [%3%12%4] and select %3Configure%4 or %3Toggle%4.&lt;br/&gt;&lt;br/&gt;The following menus are available when configuring your %3DAGR:%4&lt;br/&gt;%11%2Data View: WIP&lt;br/&gt;%11%2GoTo WP: Select a waypoint to track.&lt;br/&gt;%11%2WP List: Add/Edit/Remove waypoints.&lt;br/&gt;%11%2Connect To: Connect %3DAGR%4 to the %3Vector 21 Rangefinder%4.&lt;br/&gt;%11%2Options</English> <English>The %3DAGR%4 is a simpler version of the %3MicroDAGR GPS%4. It has similar features but lacks the topographic and satellite imaging functions of the %3MicroDAGR GPS%4.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Equip a %3DAGR%4.&lt;br/&gt;%2Use [%3%12%4] and select %3Configure%4 or %3Toggle%4.&lt;br/&gt;&lt;br/&gt;The following menus are available when configuring your %3DAGR:%4&lt;br/&gt;%11%2Data View: WIP&lt;br/&gt;%11%2GoTo WP: Select a waypoint to track.&lt;br/&gt;%11%2WP List: Add/Edit/Remove waypoints.&lt;br/&gt;%11%2Connect To: Connect %3DAGR%4 to the %3Vector 21 Rangefinder%4.&lt;br/&gt;%11%2Options</English>
@ -385,6 +409,7 @@
<Italian>Vendetta Esplosiva</Italian> <Italian>Vendetta Esplosiva</Italian>
<Japanese>爆発的な復讐</Japanese> <Japanese>爆発的な復讐</Japanese>
<Russian>Взрывная месть</Russian> <Russian>Взрывная месть</Russian>
<French>Homme mort</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Items_DeadManSwitch_Description"> <Key ID="STR_ACE_FieldManual_Items_DeadManSwitch_Description">
<English>The %3Dead Man's Switch%4 is a device that allows a soldier to detonate an %3Explosive%4 when the soldier dies.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Use [%3%12%4] and select %3Explosives%4.&lt;br/&gt;%2Select %3Dead Man's Switch%4 and connect the desired %3Explosive%4.&lt;br/&gt;%2Repeat the process and disconnect to reverse.</English> <English>The %3Dead Man's Switch%4 is a device that allows a soldier to detonate an %3Explosive%4 when the soldier dies.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Use [%3%12%4] and select %3Explosives%4.&lt;br/&gt;%2Select %3Dead Man's Switch%4 and connect the desired %3Explosive%4.&lt;br/&gt;%2Repeat the process and disconnect to reverse.</English>
@ -407,6 +432,7 @@
<Italian>Disinnesca Esplosivi</Italian> <Italian>Disinnesca Esplosivi</Italian>
<Japanese>爆発物の解除</Japanese> <Japanese>爆発物の解除</Japanese>
<Russian>Обезвреживание взрывчатки</Russian> <Russian>Обезвреживание взрывчатки</Russian>
<French>Désamorcer les explosifs</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Items_EarPlugs_ShortName"> <Key ID="STR_ACE_FieldManual_Items_EarPlugs_ShortName">
<English>Protect Your Hearing</English> <English>Protect Your Hearing</English>
@ -415,6 +441,7 @@
<Italian>Proteggi il tuo Udito</Italian> <Italian>Proteggi il tuo Udito</Italian>
<Japanese>聴覚の保護</Japanese> <Japanese>聴覚の保護</Japanese>
<Russian>Защитите свой слух</Russian> <Russian>Защитите свой слух</Russian>
<French>Protéger votre audition</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Items_EarPlugs_Description"> <Key ID="STR_ACE_FieldManual_Items_EarPlugs_Description">
<English>%3Ear Plugs%4 help prevent hearing damage from repeat loud noises near a soldier. Insert %3Ear Plugs%4 to lower volume of a soldier's environment and prevent %3Combat Deafness%4.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Use [%3%12%4] and select %3Equipment%4.&lt;br/&gt;%2Insert %3Ear Plugs%4.</English> <English>%3Ear Plugs%4 help prevent hearing damage from repeat loud noises near a soldier. Insert %3Ear Plugs%4 to lower volume of a soldier's environment and prevent %3Combat Deafness%4.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Use [%3%12%4] and select %3Equipment%4.&lt;br/&gt;%2Insert %3Ear Plugs%4.</English>
@ -430,6 +457,7 @@
<Italian>Mettiti in Copertura</Italian> <Italian>Mettiti in Copertura</Italian>
<Japanese>遮蔽を造り出す</Japanese> <Japanese>遮蔽を造り出す</Japanese>
<Russian>Добраться до укрытия</Russian> <Russian>Добраться до укрытия</Russian>
<French>Se mettre à couvert</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Items_EntrenchingTool_Description"> <Key ID="STR_ACE_FieldManual_Items_EntrenchingTool_Description">
<English>The %3Entrenching Tool%4 allows soldiers to dig trenches to help defend their position. The soldier must be on soil in order to dig a trench.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Equip an %3Entrenching Tool%4.&lt;br/&gt;%2Use [%3%12%4] and select %3Equipment%4.&lt;br/&gt;%2Select the type of trench you wish to build.</English> <English>The %3Entrenching Tool%4 allows soldiers to dig trenches to help defend their position. The soldier must be on soil in order to dig a trench.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Equip an %3Entrenching Tool%4.&lt;br/&gt;%2Use [%3%12%4] and select %3Equipment%4.&lt;br/&gt;%2Select the type of trench you wish to build.</English>
@ -445,6 +473,7 @@
<Korean>손전등</Korean> <Korean>손전등</Korean>
<Japanese>フラッシュライト</Japanese> <Japanese>フラッシュライト</Japanese>
<Russian>Фонари</Russian> <Russian>Фонари</Russian>
<French>Lampes de poche</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Items_Flashlights_ShortName"> <Key ID="STR_ACE_FieldManual_Items_Flashlights_ShortName">
<English>Illuminate Your Map</English> <English>Illuminate Your Map</English>
@ -453,6 +482,7 @@
<Korean>지도를 밝혀줍니다</Korean> <Korean>지도를 밝혀줍니다</Korean>
<Japanese>地図に光あれ</Japanese> <Japanese>地図に光あれ</Japanese>
<Russian>Осветите свою карту</Russian> <Russian>Осветите свою карту</Russian>
<French>Éclairer votre carte</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Items_Flashlights_Description"> <Key ID="STR_ACE_FieldManual_Items_Flashlights_Description">
<English>%3Flashlights%4 give you the ability to read your map, even in dark environments. However, when using %3Flashlights%4, you will have a slight glow around you.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2On the map screen, use [%3%12%4] and select %3Flashlights%4.&lt;br/&gt;%2Select the %3Flashlight%4 you want to use and select %3On%4.&lt;br/&gt;&lt;br/&gt;%3Available Flashlight Items%4:&lt;br/&gt;%2 Fulton MX-991&lt;br/&gt;%2 KSF-1&lt;br/&gt;%2 Maglite XL50&lt;br/&gt;&lt;br/&gt;%3NOTE:%4&lt;br/&gt;Flashlight states are persistent.</English> <English>%3Flashlights%4 give you the ability to read your map, even in dark environments. However, when using %3Flashlights%4, you will have a slight glow around you.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2On the map screen, use [%3%12%4] and select %3Flashlights%4.&lt;br/&gt;%2Select the %3Flashlight%4 you want to use and select %3On%4.&lt;br/&gt;&lt;br/&gt;%3Available Flashlight Items%4:&lt;br/&gt;%2 Fulton MX-991&lt;br/&gt;%2 KSF-1&lt;br/&gt;%2 Maglite XL50&lt;br/&gt;&lt;br/&gt;%3NOTE:%4&lt;br/&gt;Flashlight states are persistent.</English>
@ -468,6 +498,7 @@
<Korean>하늘에서 관측합니다</Korean> <Korean>하늘에서 관측합니다</Korean>
<Japanese>空から戦場を見てみよう</Japanese> <Japanese>空から戦場を見てみよう</Japanese>
<Russian>Наблюдайте с Небес</Russian> <Russian>Наблюдайте с Небес</Russian>
<French>Observer depuis le ciel</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Items_HuntIR_Monitor_Description"> <Key ID="STR_ACE_FieldManual_Items_HuntIR_Monitor_Description">
<English>The %3High-Altitude Unit Navigated Tactical Imaging Round (HuntIR)%4 is designed to be fired from a grenade launcher. After being fired in the air, the built-in parachute will be deployed and the IR CMOS camera will activate, providing a video stream until it touches the ground or is shot down.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Equip a %3HuntIR Monitor%4 and compatible ammunition.&lt;br/&gt;%2Fire the %3HuntIR Round%4 as high as possible over the area you want to observe.&lt;br/&gt;%2Open the %3HuntIR Monitor%4.&lt;br/&gt;%2Use [%3%12%4], select %3Equipment%4.&lt;br/&gt;%2Select %3Activate HuntIR Monitor%4.</English> <English>The %3High-Altitude Unit Navigated Tactical Imaging Round (HuntIR)%4 is designed to be fired from a grenade launcher. After being fired in the air, the built-in parachute will be deployed and the IR CMOS camera will activate, providing a video stream until it touches the ground or is shot down.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Equip a %3HuntIR Monitor%4 and compatible ammunition.&lt;br/&gt;%2Fire the %3HuntIR Round%4 as high as possible over the area you want to observe.&lt;br/&gt;%2Open the %3HuntIR Monitor%4.&lt;br/&gt;%2Use [%3%12%4], select %3Equipment%4.&lt;br/&gt;%2Select %3Activate HuntIR Monitor%4.</English>
@ -483,6 +514,7 @@
<Korean>은신하여 팀을 찾아냅니다</Korean> <Korean>은신하여 팀을 찾아냅니다</Korean>
<Japanese>自分の部隊を追う</Japanese> <Japanese>自分の部隊を追う</Japanese>
<Russian>Следите за своей командой незаметно</Russian> <Russian>Следите за своей командой незаметно</Russian>
<French>Suivez votre équipe en toute discrétion</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Items_IR_Strobe_Description"> <Key ID="STR_ACE_FieldManual_Items_IR_Strobe_Description">
<English>The %3IR Strobe%4 is a throwable that emits an IR light pulse intermittently. The %3IR Strobe%4 can also be attached to a soldier, making it useful for tracking teammates under night vision devices.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Use [%3%12%4] and select %3Equipment%4.&lt;br/&gt;%2Select %3Attach%4 and select the %3IR Strobe%4.</English> <English>The %3IR Strobe%4 is a throwable that emits an IR light pulse intermittently. The %3IR Strobe%4 can also be attached to a soldier, making it useful for tracking teammates under night vision devices.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Use [%3%12%4] and select %3Equipment%4.&lt;br/&gt;%2Select %3Attach%4 and select the %3IR Strobe%4.</English>
@ -498,6 +530,7 @@
<Korean>휴대용 기상 관측 장비입니다</Korean> <Korean>휴대용 기상 관측 장비입니다</Korean>
<Japanese>携帯気象予報所</Japanese> <Japanese>携帯気象予報所</Japanese>
<Russian>Карманная метеостанция</Russian> <Russian>Карманная метеостанция</Russian>
<French>Station météo de poche</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Items_Kestrel4500_Description"> <Key ID="STR_ACE_FieldManual_Items_Kestrel4500_Description">
<English>The %3Kestrel 4500 Pocket Weather Tracker%4 is a mini weather station useful for collecting the the following weather data:&lt;br/&gt;%2Heading and wind direction&lt;br/&gt;%2Crosswind and headwind&lt;br/&gt;%2Altitude and barometric pressure&lt;br/&gt;%2Wet bulb temperature&lt;br/&gt;%2Humidity and dewpoint&lt;br/&gt;%2Density altitude&lt;br/&gt;%2Wind chill and temperature&lt;br/&gt;%2Time and date&lt;br/&gt;%2Minimum, maximum, and average values&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Equip a %3Kestrel%4.&lt;br/&gt;%2Use [%3%12%4] and select %3Equipment%4.&lt;br/&gt;%2Select %3Open%4.</English> <English>The %3Kestrel 4500 Pocket Weather Tracker%4 is a mini weather station useful for collecting the the following weather data:&lt;br/&gt;%2Heading and wind direction&lt;br/&gt;%2Crosswind and headwind&lt;br/&gt;%2Altitude and barometric pressure&lt;br/&gt;%2Wet bulb temperature&lt;br/&gt;%2Humidity and dewpoint&lt;br/&gt;%2Density altitude&lt;br/&gt;%2Wind chill and temperature&lt;br/&gt;%2Time and date&lt;br/&gt;%2Minimum, maximum, and average values&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Equip a %3Kestrel%4.&lt;br/&gt;%2Use [%3%12%4] and select %3Equipment%4.&lt;br/&gt;%2Select %3Open%4.</English>
@ -513,6 +546,7 @@
<Korean>위치를 삼각측량합니다</Korean> <Korean>위치를 삼각측량합니다</Korean>
<Japanese>三角測量で位置を特定</Japanese> <Japanese>三角測量で位置を特定</Japanese>
<Russian>Передавайте свое местоположение</Russian> <Russian>Передавайте свое местоположение</Russian>
<French>Trianguler votre position</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Items_MapTools_Description"> <Key ID="STR_ACE_FieldManual_Items_MapTools_Description">
<English>The %3Map Tools%4 are a set of tools that allows a soldier to measure distances and angles. Useful for land, and calculating firing solutions for artillery.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Open %3Map%4.&lt;br/&gt;%2Use [%3%12%4] and select %3Map Tools%4.&lt;br/&gt;%2 The Tool can be moved by dragging with [%3Left-Click%4] while holding [%3ALT%4].</English> <English>The %3Map Tools%4 are a set of tools that allows a soldier to measure distances and angles. Useful for land, and calculating firing solutions for artillery.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Open %3Map%4.&lt;br/&gt;%2Use [%3%12%4] and select %3Map Tools%4.&lt;br/&gt;%2 The Tool can be moved by dragging with [%3Left-Click%4] while holding [%3ALT%4].</English>
@ -520,6 +554,7 @@
<Italian>Gli %3Strumenti Cartografici%4 permettono al soldato di misurare distanze e angoli sulla mappa. Utile a terra e per calculare direzioni di tiro per artiglieria.&lt;br/&gt;&lt;br/&gt;%3Utilizzo:%4&lt;br/&gt;%2Apri %3Mappa%4.&lt;br/&gt;%2Usa [%3%12%4] e seleziona %3Strumenti Cartografici%4.&lt;br/&gt;%2 Lo strumento può essere spostato trascinandolo con [%3Click-Sinistro%4] premendo [%3ALT%4].</Italian> <Italian>Gli %3Strumenti Cartografici%4 permettono al soldato di misurare distanze e angoli sulla mappa. Utile a terra e per calculare direzioni di tiro per artiglieria.&lt;br/&gt;&lt;br/&gt;%3Utilizzo:%4&lt;br/&gt;%2Apri %3Mappa%4.&lt;br/&gt;%2Usa [%3%12%4] e seleziona %3Strumenti Cartografici%4.&lt;br/&gt;%2 Lo strumento può essere spostato trascinandolo con [%3Click-Sinistro%4] premendo [%3ALT%4].</Italian>
<Korean>%3독도용 도구%4는 병사가 거리와 각도를 측정할 수 있는 도구 세트입니다. 지상에서 유용하며 포병 사격 솔루션 계산에 유용합니다,&lt;br/&gt;&lt;br/&gt;%3사용 방법:%4&lt;br/&gt;%2%3지도%4를 여십시오.&lt;br/&gt;%2[%3%12%4]를 사용하여 %3독도용 도구%4를 선택하십시오.&lt;br/&gt;%2도구는 [%3Alt 키%4]를 누른 상태에서 [%3마우스 왼쪽 클릭%4]으로 드래그하여 이동할 수 있습니다.</Korean> <Korean>%3독도용 도구%4는 병사가 거리와 각도를 측정할 수 있는 도구 세트입니다. 지상에서 유용하며 포병 사격 솔루션 계산에 유용합니다,&lt;br/&gt;&lt;br/&gt;%3사용 방법:%4&lt;br/&gt;%2%3지도%4를 여십시오.&lt;br/&gt;%2[%3%12%4]를 사용하여 %3독도용 도구%4를 선택하십시오.&lt;br/&gt;%2도구는 [%3Alt 키%4]를 누른 상태에서 [%3마우스 왼쪽 클릭%4]으로 드래그하여 이동할 수 있습니다.</Korean>
<Japanese>%3マップ ツール%4は、兵士が距離と角度を測定できるようにするツールのセットです。陸上や大砲の射撃工程の計算を解くのに役立ちます。&lt;br/&gt;&lt;br/&gt;%3使用方法:%4&lt;br/&gt;%2%3マップ%4を開きます。&lt;br/&gt;%2[%3%12%4] を使って%3マップ ツール%4を選択します。&lt;br/&gt;%2 [%3ALT%4] を押しながら [%3左クリック%4] でドラッグするとツールを移動できます。</Japanese> <Japanese>%3マップ ツール%4は、兵士が距離と角度を測定できるようにするツールのセットです。陸上や大砲の射撃工程の計算を解くのに役立ちます。&lt;br/&gt;&lt;br/&gt;%3使用方法:%4&lt;br/&gt;%2%3マップ%4を開きます。&lt;br/&gt;%2[%3%12%4] を使って%3マップ ツール%4を選択します。&lt;br/&gt;%2 [%3ALT%4] を押しながら [%3左クリック%4] でドラッグするとツールを移動できます。</Japanese>
<French>Les %3Outils cartographiques%4 sont un ensemble d'outils permettant au soldat de mesurer des distances et des angles. Utile pour la terre et le calcul des solutions de tir pour l'artillerie.&lt;br/&gt;&lt;br/&gt;%3Utilisation:%4&lt;br/&gt;%2Ouvrir la%3Carte%4.&lt;br/&gt;%2Utiliser [%3%12%4] et sélectionner %3Outils cartographiques%4.&lt;br/&gt;%2 L'outil peut être déplacé en le faisant glisser avec [%3Clic gauche%4] tout en maintenant [%3ALT%4].</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Items_MicroDAGR_ShortName"> <Key ID="STR_ACE_FieldManual_Items_MicroDAGR_ShortName">
<English>Advanced DAGR</English> <English>Advanced DAGR</English>
@ -528,6 +563,7 @@
<Korean>고급형 DAGR입니다</Korean> <Korean>고급형 DAGR입니다</Korean>
<Japanese>より高度なDAGR</Japanese> <Japanese>より高度なDAGR</Japanese>
<Russian>Продвинутый DAGR</Russian> <Russian>Продвинутый DAGR</Russian>
<French>DAGR avancé</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Items_MicroDAGR_Description"> <Key ID="STR_ACE_FieldManual_Items_MicroDAGR_Description">
<English>The %3MicroDAGR GPS%4 is an advanced version of the %3DAGR%4. It provides position, navigation, and timing (PNT) data to include:&lt;br/&gt;%2Compass and heading&lt;br/&gt;%2Date and hour synced to the mission&lt;br/&gt;%2Elevation (relative to sea level)&lt;br/&gt;%2Current speed&lt;br/&gt;%2GPS with topographic and satellite view&lt;br/&gt;%2Creating, naming, and deleting waypoints&lt;br/&gt;%2Friendly identification (Requires ACE BLUFOR Tracker Setting)&lt;br/&gt;Connection to the Vector-21 Rangefinder for data import (waypoint creation and grid reference of ranged targets)&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2For usage instructions, please visit the dedicated %3MicroDAGR%4 wiki.</English> <English>The %3MicroDAGR GPS%4 is an advanced version of the %3DAGR%4. It provides position, navigation, and timing (PNT) data to include:&lt;br/&gt;%2Compass and heading&lt;br/&gt;%2Date and hour synced to the mission&lt;br/&gt;%2Elevation (relative to sea level)&lt;br/&gt;%2Current speed&lt;br/&gt;%2GPS with topographic and satellite view&lt;br/&gt;%2Creating, naming, and deleting waypoints&lt;br/&gt;%2Friendly identification (Requires ACE BLUFOR Tracker Setting)&lt;br/&gt;Connection to the Vector-21 Rangefinder for data import (waypoint creation and grid reference of ranged targets)&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2For usage instructions, please visit the dedicated %3MicroDAGR%4 wiki.</English>
@ -543,6 +579,7 @@
<Korean>사거리표</Korean> <Korean>사거리표</Korean>
<Japanese>射表</Japanese> <Japanese>射表</Japanese>
<Russian>Таблицы диапазонов</Russian> <Russian>Таблицы диапазонов</Russian>
<French>Tables de tir</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Items_RangeTables_ShortName"> <Key ID="STR_ACE_FieldManual_Items_RangeTables_ShortName">
<English>Get A Firing Solution</English> <English>Get A Firing Solution</English>
@ -551,6 +588,7 @@
<Korean>사격 솔루션을 제공합니다</Korean> <Korean>사격 솔루션을 제공합니다</Korean>
<Japanese>撃ち方の解を得る</Japanese> <Japanese>撃ち方の解を得る</Japanese>
<Russian>Получите расчёт</Russian> <Russian>Получите расчёт</Russian>
<French>Obtenir une solution de tir</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Items_RangeTables_Description"> <Key ID="STR_ACE_FieldManual_Items_RangeTables_Description">
<English>%3Range Tables%4 allow for a soldier to estimate accurate shot placement on direct or indirect targets (depending on asset). The %3Range Table%4 will automatically fill depending on the soldiers selected weapon/vehicle.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Use [%3%12%4] and select %3Equipment%4.&lt;br/&gt;%2Select the desired %3Range Table%4.</English> <English>%3Range Tables%4 allow for a soldier to estimate accurate shot placement on direct or indirect targets (depending on asset). The %3Range Table%4 will automatically fill depending on the soldiers selected weapon/vehicle.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Use [%3%12%4] and select %3Equipment%4.&lt;br/&gt;%2Select the desired %3Range Table%4.</English>
@ -566,6 +604,7 @@
<Korean>로프</Korean> <Korean>로프</Korean>
<Japanese>ロープ</Japanese> <Japanese>ロープ</Japanese>
<Russian>Канаты</Russian> <Russian>Канаты</Russian>
<French>Corde</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Items_Ropes_ShortName"> <Key ID="STR_ACE_FieldManual_Items_Ropes_ShortName">
<English>Tow With Ease</English> <English>Tow With Ease</English>
@ -574,6 +613,7 @@
<Korean>쉽게 견인을 할 수 있습니다</Korean> <Korean>쉽게 견인을 할 수 있습니다</Korean>
<Japanese>楽々けん引</Japanese> <Japanese>楽々けん引</Japanese>
<Russian>Буксируйте с легкостью</Russian> <Russian>Буксируйте с легкостью</Russian>
<French>Remorquer avec facilité</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Items_Ropes_Description"> <Key ID="STR_ACE_FieldManual_Items_Ropes_Description">
<English>%3Ropes%4 have multiple uses including %3Towing%4 vehicles and %3Fast Roping%4 from helicopters.&lt;br/&gt;&lt;br/&gt;%3Towing:%4&lt;br/&gt;%2Approach a vehicle.&lt;br/&gt;%2Use [%3%13%4] and select %3Towing%4.&lt;br/&gt;%2Select rope length.&lt;br/&gt;%2Select attachment point on towing vehicle.&lt;br/&gt;%2Select attachment on towed vehicle.&lt;br/&gt;&lt;br/&gt;%3Available Rope Lengths:%4&lt;br/&gt;%2 3.2 meters&lt;br/&gt;%2 6.2 meters&lt;br/&gt;%2 12.2 meters&lt;br/&gt;%2 15.2 meters&lt;br/&gt;%2 18.3 meters&lt;br/&gt;%2 27.4 meters&lt;br/&gt;%2 36.6 meters</English> <English>%3Ropes%4 have multiple uses including %3Towing%4 vehicles and %3Fast Roping%4 from helicopters.&lt;br/&gt;&lt;br/&gt;%3Towing:%4&lt;br/&gt;%2Approach a vehicle.&lt;br/&gt;%2Use [%3%13%4] and select %3Towing%4.&lt;br/&gt;%2Select rope length.&lt;br/&gt;%2Select attachment point on towing vehicle.&lt;br/&gt;%2Select attachment on towed vehicle.&lt;br/&gt;&lt;br/&gt;%3Available Rope Lengths:%4&lt;br/&gt;%2 3.2 meters&lt;br/&gt;%2 6.2 meters&lt;br/&gt;%2 12.2 meters&lt;br/&gt;%2 15.2 meters&lt;br/&gt;%2 18.3 meters&lt;br/&gt;%2 27.4 meters&lt;br/&gt;%2 36.6 meters</English>
@ -589,6 +629,7 @@
<Korean>당신의 요새를 확장합니다</Korean> <Korean>당신의 요새를 확장합니다</Korean>
<Japanese>要塞を拡張する</Japanese> <Japanese>要塞を拡張する</Japanese>
<Russian>Расширить свои укрепления</Russian> <Russian>Расширить свои укрепления</Russian>
<French>Élargissez vos fortifications</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Items_Sandbag_Description"> <Key ID="STR_ACE_FieldManual_Items_Sandbag_Description">
<English>%3Sandbags%4 are sacks made of sturdy material, filled with sand, used for a variety of purposes such as creating barriers or providing stability in construction projects. Useful in expanding larger placed fortifications.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Equip a %3Sandbag (Empty)%4.&lt;br/&gt;%2Use [%3%12%4] and select %3Deploy Sandbag%4.&lt;br/&gt;%2Follow on-screen instructions for placement.</English> <English>%3Sandbags%4 are sacks made of sturdy material, filled with sand, used for a variety of purposes such as creating barriers or providing stability in construction projects. Useful in expanding larger placed fortifications.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Equip a %3Sandbag (Empty)%4.&lt;br/&gt;%2Use [%3%12%4] and select %3Deploy Sandbag%4.&lt;br/&gt;%2Follow on-screen instructions for placement.</English>
@ -604,6 +645,7 @@
<Korean>총기의 온도를 낮춥니다</Korean> <Korean>총기의 온도를 낮춥니다</Korean>
<Japanese>銃の熱を冷ます</Japanese> <Japanese>銃の熱を冷ます</Japanese>
<Russian>Понизьте температуру оружия</Russian> <Russian>Понизьте температуру оружия</Russian>
<French>Refroidir l'arme</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Items_SpareBarrels_Description"> <Key ID="STR_ACE_FieldManual_Items_SpareBarrels_Description">
<English>%3Spare Barrels%4 allow a soldier to reduce their weapon's heat significantly. After a short delay, the weapon's barrel will be swapped and its heat reduced. A soldier may also check the temperature of any barrels within their inventory. Not all weapons support swapping barrels.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Use [%3%12%4] and select %3Equipment%4.&lt;br/&gt;%2Select %3Swap Barrel%4.&lt;br/&gt;%2Resume operation after barrel swap is complete.</English> <English>%3Spare Barrels%4 allow a soldier to reduce their weapon's heat significantly. After a short delay, the weapon's barrel will be swapped and its heat reduced. A soldier may also check the temperature of any barrels within their inventory. Not all weapons support swapping barrels.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Use [%3%12%4] and select %3Equipment%4.&lt;br/&gt;%2Select %3Swap Barrel%4.&lt;br/&gt;%2Resume operation after barrel swap is complete.</English>
@ -619,6 +661,7 @@
<Korean>스프레이 페인트</Korean> <Korean>스프레이 페인트</Korean>
<Japanese>ペイントスプレー</Japanese> <Japanese>ペイントスプレー</Japanese>
<Russian>Аэрозольная краска</Russian> <Russian>Аэрозольная краска</Russian>
<French>Bombe de peinture</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Items_SprayPaint_ShortName"> <Key ID="STR_ACE_FieldManual_Items_SprayPaint_ShortName">
<English>Tag Your Territory</English> <English>Tag Your Territory</English>
@ -627,6 +670,7 @@
<Korean>당신의 영역을 지정합니다</Korean> <Korean>당신의 영역을 지정합니다</Korean>
<Japanese>自分のテリトリーをマーキング</Japanese> <Japanese>自分のテリトリーをマーキング</Japanese>
<Russian>Пометьте свою территорию</Russian> <Russian>Пометьте свою территорию</Russian>
<French>Marquez votre territoire</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Items_SprayPaint_Description"> <Key ID="STR_ACE_FieldManual_Items_SprayPaint_Description">
<English>%3Spray Paint%4 is used to tag surfaces with various symbols.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Move close to a surface (wall, vehicle, ground, etc).&lt;br/&gt;%2Use [%3%12%4] and select %3Tag%4.&lt;br/&gt;%2Choose a symbol.&lt;br/&gt;&lt;br/&gt;%3Available Colors:%4&lt;br/&gt;%2Black&lt;br/&gt;%2Blue&lt;br/&gt;%2Green&lt;br/&gt;%2Red</English> <English>%3Spray Paint%4 is used to tag surfaces with various symbols.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Move close to a surface (wall, vehicle, ground, etc).&lt;br/&gt;%2Use [%3%12%4] and select %3Tag%4.&lt;br/&gt;%2Choose a symbol.&lt;br/&gt;&lt;br/&gt;%3Available Colors:%4&lt;br/&gt;%2Black&lt;br/&gt;%2Blue&lt;br/&gt;%2Green&lt;br/&gt;%2Red</English>
@ -642,6 +686,7 @@
<Korean>어느 곳에나 지지대를 배치할 수 있습니다</Korean> <Korean>어느 곳에나 지지대를 배치할 수 있습니다</Korean>
<Japanese>どこでも支持器</Japanese> <Japanese>どこでも支持器</Japanese>
<Russian>Опора может быть установлена в любом месте</Russian> <Russian>Опора может быть установлена в любом месте</Russian>
<French>Stabilisé partout</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Items_Tripod_Description"> <Key ID="STR_ACE_FieldManual_Items_Tripod_Description">
<English>The %3SSWT Kit%4 is a deployable tripod that allows a soldier to brace their aim when deployed. Use it when you need an elevated shooting position and there are no other objects around.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Use [%3%12%4] and select %3Equipment%4.&lt;br/&gt;%2Select %3SSWT Kit%4 and follow the on screen prompts to place.</English> <English>The %3SSWT Kit%4 is a deployable tripod that allows a soldier to brace their aim when deployed. Use it when you need an elevated shooting position and there are no other objects around.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Use [%3%12%4] and select %3Equipment%4.&lt;br/&gt;%2Select %3SSWT Kit%4 and follow the on screen prompts to place.</English>
@ -657,6 +702,8 @@
<Korean>하늘에서 계속 내려다봅니다</Korean> <Korean>하늘에서 계속 내려다봅니다</Korean>
<Japanese>空の目を維持する</Japanese> <Japanese>空の目を維持する</Japanese>
<Russian>Не Отрывай Глаз От Неба</Russian> <Russian>Не Отрывай Глаз От Неба</Russian>
<Hungarian>Gardez les yeux au ciel</Hungarian>
<French>Gardez les yeux au ciel</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Items_UAVBattery_Description"> <Key ID="STR_ACE_FieldManual_Items_UAVBattery_Description">
<English>%3UAV Batteries%4 are used to recharge a UAV's energy storage. Especially useful for small UAVs.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Equip a %3UAV Battery%4&lt;br/&gt;%2Approach a %3UAV%4 with its %3Engine Off%4.&lt;br/&gt;%2Use [%3%13%4] and select %3Recharge%4.</English> <English>%3UAV Batteries%4 are used to recharge a UAV's energy storage. Especially useful for small UAVs.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Equip a %3UAV Battery%4&lt;br/&gt;%2Approach a %3UAV%4 with its %3Engine Off%4.&lt;br/&gt;%2Use [%3%13%4] and select %3Recharge%4.</English>
@ -672,6 +719,7 @@
<Korean>진입로를 만듭니다</Korean> <Korean>진입로를 만듭니다</Korean>
<Japanese>堂々入場する</Japanese> <Japanese>堂々入場する</Japanese>
<Russian>Создание собственного входа</Russian> <Russian>Создание собственного входа</Russian>
<French>Faire son entrée</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Items_Wirecutter_Description"> <Key ID="STR_ACE_FieldManual_Items_Wirecutter_Description">
<English>%3Wirecutters%4 are a tool that allows a soldier to bypass wired fencing. Useful for creating backdoor entrances into secure areas.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Move close to a fence.&lt;br/&gt;%2Use [%3%12%4] and select %3Cut Fence%4.</English> <English>%3Wirecutters%4 are a tool that allows a soldier to bypass wired fencing. Useful for creating backdoor entrances into secure areas.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Move close to a fence.&lt;br/&gt;%2Use [%3%12%4] and select %3Cut Fence%4.</English>
@ -703,6 +751,15 @@
<Korean>ACE3</Korean> <Korean>ACE3</Korean>
<Japanese>ACE 3</Japanese> <Japanese>ACE 3</Japanese>
<Russian>ACE3</Russian> <Russian>ACE3</Russian>
<Chinese>ACE3</Chinese>
<Chinesesimp>ACE3</Chinesesimp>
<Czech>ACE3</Czech>
<French>ACE3</French>
<German>ACE3</German>
<Hungarian>ACE3</Hungarian>
<Portuguese>ACE3</Portuguese>
<Spanish>ACE3</Spanish>
<Turkish>ACE3</Turkish>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Items_FortifyTool_ShortName"> <Key ID="STR_ACE_FieldManual_Items_FortifyTool_ShortName">
<English>Build Fortifications</English> <English>Build Fortifications</English>
@ -711,6 +768,7 @@
<Korean>요새를 건설합니다</Korean> <Korean>요새를 건설합니다</Korean>
<Japanese>要塞を構築する</Japanese> <Japanese>要塞を構築する</Japanese>
<Russian>Стройте укрепления</Russian> <Russian>Стройте укрепления</Russian>
<French>Construire des fortifications</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Items_FortifyTool_Description"> <Key ID="STR_ACE_FieldManual_Items_FortifyTool_Description">
<English>The %3Fortify Tool%4 allows soldiers to build fortifications provided by their mission creator.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Pick up a %3Fortify Tool%4.&lt;br/&gt;%2Use [%3%12%4] and select %3Fortify%4.&lt;br/&gt;%2Select an available fortification and follow the on screen prompts for placement.</English> <English>The %3Fortify Tool%4 allows soldiers to build fortifications provided by their mission creator.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Pick up a %3Fortify Tool%4.&lt;br/&gt;%2Use [%3%12%4] and select %3Fortify%4.&lt;br/&gt;%2Select an available fortification and follow the on screen prompts for placement.</English>
@ -726,6 +784,7 @@
<Korean>침입용 도구입니다</Korean> <Korean>침입용 도구입니다</Korean>
<Japanese>破壊して乗り込む</Japanese> <Japanese>破壊して乗り込む</Japanese>
<Russian>Взлом и проникновение</Russian> <Russian>Взлом и проникновение</Russian>
<French>Entrée par effraction</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Items_Lockpick_Description"> <Key ID="STR_ACE_FieldManual_Items_Lockpick_Description">
<English>%3Lockpicks%4 are used to gain access to locked vehicles.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Equip a %3Lockpick%4.&lt;br/&gt;%2Approach a %3Locked%4 vehicle.&lt;br/&gt;Use [%3%13%4] and select %3Lockpick Vehicle%4.&lt;br/&gt;&lt;br/&gt;&lt;t underline='1'&gt;%3Note:%4&lt;/t&gt; Lockpicks and keys are only available via scripting or ACE Vehicle Key modules.</English> <English>%3Lockpicks%4 are used to gain access to locked vehicles.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Equip a %3Lockpick%4.&lt;br/&gt;%2Approach a %3Locked%4 vehicle.&lt;br/&gt;Use [%3%13%4] and select %3Lockpick Vehicle%4.&lt;br/&gt;&lt;br/&gt;&lt;t underline='1'&gt;%3Note:%4&lt;/t&gt; Lockpicks and keys are only available via scripting or ACE Vehicle Key modules.</English>
@ -741,6 +800,7 @@
<Korean>차량 열쇠</Korean> <Korean>차량 열쇠</Korean>
<Japanese>車両キー</Japanese> <Japanese>車両キー</Japanese>
<Russian>Взлом и проникновение</Russian> <Russian>Взлом и проникновение</Russian>
<French>Clés de véhicule</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Items_VehicleKey_ShortName"> <Key ID="STR_ACE_FieldManual_Items_VehicleKey_ShortName">
<English>Lock/Unlock Vehicles</English> <English>Lock/Unlock Vehicles</English>
@ -749,6 +809,7 @@
<Korean>차량을 잠그거나 해제합니다</Korean> <Korean>차량을 잠그거나 해제합니다</Korean>
<Japanese>車両のロック/ロック解除</Japanese> <Japanese>車両のロック/ロック解除</Japanese>
<Russian>Взлом и проникновение</Russian> <Russian>Взлом и проникновение</Russian>
<French>Verrouiller/déverrouiller un véhicule</French>
</Key> </Key>
<Key ID="STR_ACE_FieldManual_Items_VehicleKey_Description"> <Key ID="STR_ACE_FieldManual_Items_VehicleKey_Description">
<English>%3Vehicle Keys%4 are used to lock/unlock your vehicles. Vehicle keys can exist for the whole side, or keys can be created for a particular vehicle itself.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Equip a %3Vehicle Key%4.&lt;br/&gt;%2Approach the vehicle that the key belongs to.&lt;br/&gt;Use [%3%13%4] and select %3Lock/Unlock Vehicle%4.&lt;br/&gt;&lt;br/&gt;&lt;t underline='1'&gt;%3Note:%4&lt;/t&gt; Lockpicks and keys are only available via scripting or ACE Vehicle Key modules.</English> <English>%3Vehicle Keys%4 are used to lock/unlock your vehicles. Vehicle keys can exist for the whole side, or keys can be created for a particular vehicle itself.&lt;br/&gt;&lt;br/&gt;%3Usage:%4&lt;br/&gt;%2Equip a %3Vehicle Key%4.&lt;br/&gt;%2Approach the vehicle that the key belongs to.&lt;br/&gt;Use [%3%13%4] and select %3Lock/Unlock Vehicle%4.&lt;br/&gt;&lt;br/&gt;&lt;t underline='1'&gt;%3Note:%4&lt;/t&gt; Lockpicks and keys are only available via scripting or ACE Vehicle Key modules.</English>

View File

@ -42,7 +42,7 @@ private _sendFingerToPlayers = [];
private _nearbyMen = (ACE_player nearObjects ["CAManBase", (GVAR(maxRange) + 2)]); private _nearbyMen = (ACE_player nearObjects ["CAManBase", (GVAR(maxRange) + 2)]);
{ {
_nearbyMen append (crew _x); _nearbyMen append (crew _x);
} count (ACE_player nearObjects ["StaticWeapon", (GVAR(maxRange) + 2)]); } forEach (ACE_player nearObjects ["StaticWeapon", (GVAR(maxRange) + 2)]);
{ {
if ((((eyePos _x) vectorDistance _playerEyePosASL) < GVAR(maxRange)) && if ((((eyePos _x) vectorDistance _playerEyePosASL) < GVAR(maxRange)) &&
{alive _x} && {alive _x} &&
@ -53,8 +53,7 @@ private _nearbyMen = (ACE_player nearObjects ["CAManBase", (GVAR(maxRange) + 2)]
_sendFingerToPlayers pushBack _x; _sendFingerToPlayers pushBack _x;
}; };
true } forEach _nearbyMen;
} count _nearbyMen;
TRACE_1("sending finger to",_sendFingerToPlayers); TRACE_1("sending finger to",_sendFingerToPlayers);

View File

@ -31,9 +31,7 @@ if (!hasInterface) exitWith {};
[_key, [false, (_key != -1), false]], [_key, [false, (_key != -1), false]],
false false
] call CBA_fnc_addKeybind; ] call CBA_fnc_addKeybind;
} forEach [
false
} count [
["Freeze", 80], // Numpad 2 ["Freeze", 80], // Numpad 2
["Cover", 81], // Numpad 3 ["Cover", 81], // Numpad 3
["Forward", 75], // Numpad 4 ["Forward", 75], // Numpad 4

View File

@ -36,7 +36,6 @@ private _rotorWash = [false, 0];
_rotorWash set [1, _distance]; _rotorWash set [1, _distance];
}; };
}; };
false } forEach (position _unit nearEntities [["Helicopter"], _radius]);
} count (position _unit nearEntities [["Helicopter"], _radius]);
_rotorWash _rotorWash

View File

@ -85,7 +85,7 @@ _affected = _affected - [ACE_player];
}, [_unit]] call CBA_fnc_waitUntilAndExecute; }, [_unit]] call CBA_fnc_waitUntilAndExecute;
}; };
}; };
} count _affected; } forEach _affected;
// Affect local player, independently of distance // Affect local player, independently of distance
if (hasInterface && {!isNull ACE_player} && {alive ACE_player}) then { if (hasInterface && {!isNull ACE_player} && {alive ACE_player}) then {

View File

@ -1,12 +1,12 @@
#include "script_component.hpp" #include "script_component.hpp"
["ace_settingsInitialized", { ["CBA_settingsInitialized", {
// Register and remove HCs if not client that is not server and distribution or end mission enabled // Register and remove HCs if not client that is not server and distribution or end mission enabled
if ((!hasInterface || isServer) && {XGVAR(enabled) || XGVAR(endMission) != 0}) then { if ((!hasInterface || isServer) && {XGVAR(enabled) || XGVAR(endMission) != 0}) then {
if (isServer) then { if (isServer) then {
// Request rebalance on any unit spawn (only if distribution enabled) // Request rebalance on any unit spawn (only if distribution enabled)
if (XGVAR(enabled)) then { if (XGVAR(enabled)) then {
["AllVehicles", "initPost", LINKFUNC(handleSpawn), nil, nil, true] call CBA_fnc_addClassEventHandler; ["CAManBase", "initPost", LINKFUNC(handleSpawn), nil, nil, true] call CBA_fnc_addClassEventHandler;
}; };
// Add disconnect EH // Add disconnect EH
addMissionEventHandler ["HandleDisconnect", {call FUNC(handleDisconnect)}]; addMissionEventHandler ["HandleDisconnect", {call FUNC(handleDisconnect)}];

View File

@ -12,7 +12,6 @@ if (isServer) then {
GVAR(headlessClients) = []; GVAR(headlessClients) = [];
GVAR(inRebalance) = false; GVAR(inRebalance) = false;
GVAR(endMissionCheckDelayed) = false; GVAR(endMissionCheckDelayed) = false;
GVAR(blacklistType) = [BLACKLIST_UAV];
[QXGVAR(headlessClientJoined), LINKFUNC(handleConnectHC)] call CBA_fnc_addEventHandler; [QXGVAR(headlessClientJoined), LINKFUNC(handleConnectHC)] call CBA_fnc_addEventHandler;
}; };

View File

@ -19,17 +19,14 @@ params ["_headlessClient"];
// Exit if HC already registered // Exit if HC already registered
// No need to check if distribution or end mission enabled, as if disabled this will never run // No need to check if distribution or end mission enabled, as if disabled this will never run
if (_headlessClient in GVAR(headlessClients)) exitWith {}; if (GVAR(headlessClients) pushBackUnique _headlessClient == -1) exitWith {};
// Register for use
GVAR(headlessClients) pushBack _headlessClient;
if (XGVAR(log)) then { if (XGVAR(log)) then {
INFO_1("Registered HC: %1",_headlessClient); INFO_1("Registered HC: %1",_headlessClient);
}; };
// Exit if AI distribution is disabled // Exit if AI distribution is disabled
if (!XGVAR(enabled)) exitWith {true}; if (!XGVAR(enabled)) exitWith {};
// Rebalance // Rebalance
[true] call FUNC(rebalance); [true] call FUNC(rebalance);

View File

@ -17,7 +17,7 @@
*/ */
params ["_object"]; params ["_object"];
TRACE_1("HandleDisconnect",_this); TRACE_1("HandleDisconnect",_object);
// Exit if not HC // Exit if not HC
if !(_object in GVAR(headlessClients)) exitWith { if !(_object in GVAR(headlessClients)) exitWith {
@ -28,9 +28,7 @@ if !(_object in GVAR(headlessClients)) exitWith {
if (CBA_missionTime < 150) then { if (CBA_missionTime < 150) then {
TRACE_1("Mission start delay",CBA_missionTime); TRACE_1("Mission start delay",CBA_missionTime);
GVAR(endMissionCheckDelayed) = true; GVAR(endMissionCheckDelayed) = true;
[{ [LINKFUNC(endMissionNoPlayers), [], 150 - CBA_missionTime] call CBA_fnc_waitAndExecute;
call FUNC(endMissionNoPlayers);
}, [], 150 - CBA_missionTime] call CBA_fnc_waitAndExecute;
} else { } else {
// End instantly or after delay // End instantly or after delay
if (XGVAR(endMission) == 1) then { if (XGVAR(endMission) == 1) then {
@ -39,7 +37,7 @@ if !(_object in GVAR(headlessClients)) exitWith {
} else { } else {
TRACE_2("Delayed 60s end",GVAR(endMission),CBA_missionTime); TRACE_2("Delayed 60s end",GVAR(endMission),CBA_missionTime);
GVAR(endMissionCheckDelayed) = true; GVAR(endMissionCheckDelayed) = true;
[FUNC(endMissionNoPlayers), [], 60] call CBA_fnc_waitAndExecute; [LINKFUNC(endMissionNoPlayers), [], 60] call CBA_fnc_waitAndExecute;
}; };
}; };
}; };

View File

@ -4,27 +4,22 @@
* Handles AI spawn and requests a rebalance if applicable. * Handles AI spawn and requests a rebalance if applicable.
* *
* Arguments: * Arguments:
* 0: Object <OBJECT> * 0: Unit <OBJECT>
* *
* Return Value: * Return Value:
* None * None
* *
* Example: * Example:
* [object] call ace_headless_fnc_handleSpawn * [cursorObject] call ace_headless_fnc_handleSpawn
* *
* Public: No * Public: No
*/ */
params ["_object"]; params ["_unit"];
TRACE_1("Spawn",_object); TRACE_1("Spawn",_unit);
// Exit if HC transferring disabled or object not a unit (including unit inside vehicle) or is player // Exit if unit is player or UAV crew
if (!(_object in allUnits) || {isPlayer _object}) exitWith {}; if (isPlayer _unit || {unitIsUAV _unit}) exitWith {};
// Exit and blacklist if of blacklist type
if ({_object isKindOf _x} count GVAR(blacklistType) > 0) exitWith {
_object setVariable [QXGVAR(blacklist), true];
};
// Rebalance // Rebalance
[false] call FUNC(rebalance); [false] call FUNC(rebalance);

View File

@ -23,7 +23,7 @@ TRACE_3("Rebalance",GVAR(inRebalance),GVAR(headlessClients),_force);
if (GVAR(inRebalance) || {GVAR(headlessClients) isEqualTo []}) exitWith {}; if (GVAR(inRebalance) || {GVAR(headlessClients) isEqualTo []}) exitWith {};
// Transfer after rebalance delay // Transfer after rebalance delay
[FUNC(transferGroups), [_force], XGVAR(Delay)] call CBA_fnc_waitAndExecute; [LINKFUNC(transferGroups), _force, XGVAR(delay)] call CBA_fnc_waitAndExecute;
// Currently in rebalance flag // Currently in rebalance flag
GVAR(inRebalance) = true; GVAR(inRebalance) = true;

View File

@ -79,8 +79,8 @@ private _numTransferredHC3 = 0;
_transfer = false; _transfer = false;
}; };
// No transfer if player in this group // No transfer if player or UAV in this group
if (isPlayer _x) exitWith { if (isPlayer _x || {unitIsUAV _x}) exitWith {
_transfer = false; _transfer = false;
}; };
@ -89,14 +89,16 @@ private _numTransferredHC3 = 0;
_transfer = false; _transfer = false;
}; };
// No transfer if vehicle unit is in or crew in that vehicle is blacklisted private _vehicle = objectParent _x;
if (vehicle _x != _x && {(vehicle _x) getVariable [QXGVAR(blacklist), false]}) exitWith {
// No transfer if the vehicle the unit is in or if the crew in that vehicle is blacklisted
if ((_vehicle getVariable [QXGVAR(blacklist), false]) || {unitIsUAV _vehicle}) exitWith {
_transfer = false; _transfer = false;
}; };
// Save gear if unit about to be transferred with current loadout (naked unit work-around) // Save gear if unit about to be transferred with current loadout (naked unit work-around)
if (XGVAR(transferLoadout) == 1) then { if (XGVAR(transferLoadout) == 1) then {
_x setVariable [QGVAR(loadout), [_x] call CBA_fnc_getLoadout, true]; _x setVariable [QGVAR(loadout), _x call CBA_fnc_getLoadout, true];
}; };
} forEach (units _x); } forEach (units _x);
}; };

View File

@ -4,7 +4,7 @@
[ELSTRING(common,Enabled), LSTRING(EnabledDesc)], [ELSTRING(common,Enabled), LSTRING(EnabledDesc)],
format ["ACE %1", LLSTRING(Module)], format ["ACE %1", LLSTRING(Module)],
false, false,
true, 1,
{[QGVAR(enabled), _this] call EFUNC(common,cbaSettings_settingChanged)}, {[QGVAR(enabled), _this] call EFUNC(common,cbaSettings_settingChanged)},
true true
] call CBA_fnc_addSetting; ] call CBA_fnc_addSetting;
@ -15,9 +15,8 @@
[LSTRING(Delay), LSTRING(DelayDesc)], [LSTRING(Delay), LSTRING(DelayDesc)],
format ["ACE %1", LLSTRING(Module)], format ["ACE %1", LLSTRING(Module)],
[0, 60, 15, -1], [0, 60, 15, -1],
true, 1,
{[QGVAR(delay), _this] call EFUNC(common,cbaSettings_settingChanged)}, {[QGVAR(delay), _this] call EFUNC(common,cbaSettings_settingChanged)}
true
] call CBA_fnc_addSetting; ] call CBA_fnc_addSetting;
[ [
@ -26,7 +25,7 @@
[LSTRING(EndMission), LSTRING(EndMissionDesc)], [LSTRING(EndMission), LSTRING(EndMissionDesc)],
format ["ACE %1", LLSTRING(Module)], format ["ACE %1", LLSTRING(Module)],
[[0, 1, 2], [ELSTRING(Common,Disabled), LSTRING(Instant), LSTRING(Delayed)], 0], [[0, 1, 2], [ELSTRING(Common,Disabled), LSTRING(Instant), LSTRING(Delayed)], 0],
true, 1,
{[QGVAR(delay), _this] call EFUNC(common,cbaSettings_settingChanged)}, {[QGVAR(delay), _this] call EFUNC(common,cbaSettings_settingChanged)},
true true
] call CBA_fnc_addSetting; ] call CBA_fnc_addSetting;
@ -37,9 +36,8 @@
[LSTRING(Log), LSTRING(LogDesc)], [LSTRING(Log), LSTRING(LogDesc)],
format ["ACE %1", LLSTRING(Module)], format ["ACE %1", LLSTRING(Module)],
false, false,
true, 1,
{[QGVAR(enabled), _this] call EFUNC(common,cbaSettings_settingChanged)}, {[QGVAR(enabled), _this] call EFUNC(common,cbaSettings_settingChanged)}
true
] call CBA_fnc_addSetting; ] call CBA_fnc_addSetting;
[ [
@ -48,7 +46,7 @@
[LSTRING(TransferLoadout), LSTRING(TransferLoadoutDesc)], [LSTRING(TransferLoadout), LSTRING(TransferLoadoutDesc)],
format ["ACE %1", LLSTRING(Module)], format ["ACE %1", LLSTRING(Module)],
[[0, 1, 2], [ELSTRING(Common,Disabled), LSTRING(TransferLoadoutCurrent), LSTRING(TransferLoadoutConfig)], 0], [[0, 1, 2], [ELSTRING(Common,Disabled), LSTRING(TransferLoadoutCurrent), LSTRING(TransferLoadoutConfig)], 0],
true, 1,
{}, {},
true // needs mission restart true // needs mission restart
] call CBA_fnc_addSetting; ] call CBA_fnc_addSetting;

View File

@ -17,4 +17,3 @@
#include "\z\ace\addons\main\script_macros.hpp" #include "\z\ace\addons\main\script_macros.hpp"
#define DELAY_DEFAULT 15 #define DELAY_DEFAULT 15
#define BLACKLIST_UAV "UAV", "UAV_AI_base_F", "B_UAV_AI", "O_UAV_AI", "I_UAV_AI"

View File

@ -53,7 +53,7 @@ if (isNil "_loudness") then {
private _muzzleMagazines = getArray (configFile >> "CfgWeapons" >> _weapon >> _x >> "magazines"); private _muzzleMagazines = getArray (configFile >> "CfgWeapons" >> _weapon >> _x >> "magazines");
_weaponMagazines append _muzzleMagazines; _weaponMagazines append _muzzleMagazines;
}; };
} count _muzzles; } forEach _muzzles;
{ {
private _ammoType = getText(configFile >> "CfgMagazines" >> _x >> "ammo"); private _ammoType = getText(configFile >> "CfgMagazines" >> _x >> "ammo");
_weaponMagazines set [_forEachIndex, [_x, _ammoType]]; _weaponMagazines set [_forEachIndex, [_x, _ammoType]];
@ -65,7 +65,7 @@ if (isNil "_loudness") then {
if (_ammoType == _ammo) exitWith { if (_ammoType == _ammo) exitWith {
_magazine = _magazineType; _magazine = _magazineType;
}; };
} count _weaponMagazines; } forEach _weaponMagazines;
if (_magazine == "") then { if (_magazine == "") then {
_loudness = 0; _loudness = 0;

View File

@ -369,6 +369,7 @@
<Russian>Вставить/вынуть беруши</Russian> <Russian>Вставить/вынуть беруши</Russian>
<Italian>Metti/Togli tappi</Italian> <Italian>Metti/Togli tappi</Italian>
<Korean>귀마개 토글</Korean> <Korean>귀마개 토글</Korean>
<French>Mettre/enlever les bouchons</French>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -77,8 +77,7 @@ GVAR(no_cams) sort true;
if (((getPosVisual _x) select 2) > 20 && {!(_x in GVAR(no_cams))} && {_x getHitPointDamage "HitCamera" < 0.25}) then { if (((getPosVisual _x) select 2) > 20 && {!(_x in GVAR(no_cams))} && {_x getHitPointDamage "HitCamera" < 0.25}) then {
GVAR(no_cams) pushBack _x; GVAR(no_cams) pushBack _x;
}; };
true } forEach GVAR(nearHuntIRs);
} count GVAR(nearHuntIRs);
{ {
if (((getPosVisual _x) select 2) <= 20 || {!(_x in GVAR(nearHuntIRs))} || {_x getHitPointDamage "HitCamera" >= 0.25}) then { if (((getPosVisual _x) select 2) <= 20 || {!(_x in GVAR(nearHuntIRs))} || {_x getHitPointDamage "HitCamera" >= 0.25}) then {
GVAR(no_cams) deleteAt _forEachIndex; GVAR(no_cams) deleteAt _forEachIndex;

View File

@ -67,8 +67,7 @@ if (_insertChildrenCode isNotEqualTo {}) then {
if ((count _action) > 0) then { if ((count _action) > 0) then {
_activeChildren pushBack _action; _activeChildren pushBack _action;
}; };
nil } forEach _dynamicChildren;
} count _dynamicChildren;
}; };
// Collect children class actions // Collect children class actions
@ -77,8 +76,7 @@ if (_insertChildrenCode isNotEqualTo {}) then {
if ((count _action) > 0) then { if ((count _action) > 0) then {
_activeChildren pushBack _action; _activeChildren pushBack _action;
}; };
nil } forEach _origActionChildren;
} count _origActionChildren;
// Collect children object actions // Collect children object actions
{ {
@ -91,8 +89,7 @@ if (_insertChildrenCode isNotEqualTo {}) then {
_activeChildren pushBack _action; _activeChildren pushBack _action;
}; };
}; };
nil } forEach GVAR(objectActionList);
} count GVAR(objectActionList);
// If the original action has no statement, and no children, don't display it // If the original action has no statement, and no children, don't display it

View File

@ -114,8 +114,7 @@ private _recurseFnc = {
]; ];
_actions pushBack _entry; _actions pushBack _entry;
}; };
nil } forEach (configProperties [_actionsCfg, "isClass _x", true]);
} count (configProperties [_actionsCfg, "isClass _x", true]);
_actions _actions
}; };

View File

@ -84,8 +84,7 @@ private _recurseFnc = {
]; ];
_actions pushBack _entry; _actions pushBack _entry;
}; };
nil } forEach (configProperties [_actionsCfg, "isClass _x", true]);
} count (configProperties [_actionsCfg, "isClass _x", true]);
_actions _actions
}; };

View File

@ -168,7 +168,7 @@ private _action = [
// action display name will be overwritten in modifier function // action display name will be overwritten in modifier function
QGVAR(takeWeapon), "take", "\A3\ui_f\data\igui\cfg\actions\take_ca.paa", QGVAR(takeWeapon), "take", "\A3\ui_f\data\igui\cfg\actions\take_ca.paa",
{_player action ["TakeWeapon", _target, weaponCargo _target select 0]}, {_player action ["TakeWeapon", _target, weaponCargo _target select 0]},
{count weaponCargo _target == 1}, {(count weaponCargo _target == 1) && {[_player, objNull, []] call EFUNC(common,canInteractWith)}}, // Not checking if container is claimed
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
{ {
params ["_target", "", "", "_actionData"]; params ["_target", "", "", "_actionData"];

View File

@ -33,7 +33,6 @@ private _actions = [];
_x params ["_actionData", "_children"]; _x params ["_actionData", "_children"];
_actions pushBack [_actionData, _children, _unit]; _actions pushBack [_actionData, _children, _unit];
false } forEach (_actionTrees select 0 select 1);
} count (_actionTrees select 0 select 1);
_actions _actions

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