mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge branch 'master' into cookoff-tracer
This commit is contained in:
commit
d7d6eb05e3
@ -18,15 +18,6 @@
|
||||
params ["_unit"];
|
||||
TRACE_1("params",_unit);
|
||||
|
||||
// Temporarily enable wind info, to aid in throwing smoke grenades effectively
|
||||
if (
|
||||
GVAR(enableTempWindInfo) &&
|
||||
{!(missionNamespace getVariable [QEGVAR(weather,WindInfo), false])}
|
||||
) then {
|
||||
[] call EFUNC(weather,displayWindInfo);
|
||||
GVAR(tempWindInfo) = true;
|
||||
};
|
||||
|
||||
// Select next throwable if one already in hand
|
||||
if (_unit getVariable [QGVAR(inHand), false]) exitWith {
|
||||
TRACE_1("inHand",_unit);
|
||||
@ -44,6 +35,11 @@ if (isNull (_unit getVariable [QGVAR(activeThrowable), objNull]) && {(currentThr
|
||||
TRACE_1("no throwables",_unit);
|
||||
};
|
||||
|
||||
// Temporarily enable wind info, to aid in throwing smoke grenades effectively
|
||||
if (GVAR(enableTempWindInfo) && {!(missionNamespace getVariable [QEGVAR(weather,WindInfo), false])}) then {
|
||||
[] call EFUNC(weather,displayWindInfo);
|
||||
GVAR(tempWindInfo) = true;
|
||||
};
|
||||
|
||||
_unit setVariable [QGVAR(inHand), true];
|
||||
|
||||
|
@ -193,6 +193,7 @@
|
||||
<Korean>바람 정보 임시로 표시</Korean>
|
||||
<French>Afficher temporairement les informations sur le vent</French>
|
||||
<Russian>Временно показать информацию о ветре</Russian>
|
||||
<Spanish>Mostrar información del viento temporalmente</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Throwing_EnableTempWindInfo_Description">
|
||||
<English>Temporarily display Wind Info while throwing, to aid in placing smoke grenades effectively.</English>
|
||||
@ -202,6 +203,7 @@
|
||||
<Korean>연막탄을 효과적으로 배치하는 데 도움이 되도록 투척하는 동안 일시적으로 바람 정보를 표시합니다.</Korean>
|
||||
<French>Affiche les informations sur le vent pendant le lancement pour placer les grenades fumigènes plus efficacement.</French>
|
||||
<Russian>Временно отображайте информацию о ветре во время броска, чтобы помочь эффективно разместить дымовые шашки.</Russian>
|
||||
<Spanish>Mostrar información del viento temporalmente mientras se lanza, para ayudar a lanzar las granadas de humo de forma efectiva.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Advanced_Throwing_Prepare">
|
||||
<English>Prepare/Change Throwable</English>
|
||||
|
@ -91,6 +91,7 @@
|
||||
<Portuguese>Equipar NVGs automaticamente</Portuguese>
|
||||
<Japanese>暗視装置の自動装備</Japanese>
|
||||
<Russian>Автоматическое оснащение ПНВ</Russian>
|
||||
<Spanish>Auto equipar gafas de visión nocturna</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_AI_AssignNVG_Description">
|
||||
<English>Equips NVG in inventory during night time and unequips it during day time.\nDoes not add NVGs to inventory!</English>
|
||||
@ -102,6 +103,7 @@
|
||||
<Portuguese>Equipa o NVG do inventário durante a noite e desequipa durante o dia.\nNão adiciona NVGs ao inventário!</Portuguese>
|
||||
<Japanese>インベントリ内の暗視装置を夜間に装備し、日中は解除し収納します。\nこれはNVGをインベントリに追加しません。</Japanese>
|
||||
<Russian>Экипирует ПНВ в ночное время и отключает его в дневное время.\nНе добавляет ПНВ в инвентарь!</Russian>
|
||||
<Spanish>Equipa las gafas de visión nocturna en el inventario cuando es de noche, y las desequipa cuando es de día.\nNo añade las gafas al inventario!</Spanish>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
|
@ -382,6 +382,9 @@ switch (GVAR(currentLeftPanel)) do {
|
||||
};
|
||||
|
||||
GVAR(currentItems) set [IDX_CURR_VEST, _item];
|
||||
|
||||
[GVAR(center), ""] call BIS_fnc_setUnitInsignia;
|
||||
[GVAR(center), GVAR(currentInsignia)] call BIS_fnc_setUnitInsignia;
|
||||
};
|
||||
|
||||
TOGGLE_RIGHT_PANEL_CONTAINER
|
||||
@ -420,6 +423,9 @@ switch (GVAR(currentLeftPanel)) do {
|
||||
};
|
||||
|
||||
GVAR(currentItems) set [IDX_CURR_BACKPACK, _item];
|
||||
|
||||
[GVAR(center), ""] call BIS_fnc_setUnitInsignia;
|
||||
[GVAR(center), GVAR(currentInsignia)] call BIS_fnc_setUnitInsignia;
|
||||
};
|
||||
|
||||
TOGGLE_RIGHT_PANEL_CONTAINER
|
||||
|
@ -69,7 +69,14 @@ switch (_currentItemsIndex) do {
|
||||
// Secondary weapon
|
||||
case IDX_CURR_SECONDARY_WEAPON_ITEMS: {
|
||||
private _currentItemInSlot = (GVAR(currentItems) select IDX_CURR_SECONDARY_WEAPON_ITEMS) select _itemIndex;
|
||||
private _isDisposable = CBA_disposable_replaceDisposableLauncher && {!isNil {CBA_disposable_loadedLaunchers getVariable (secondaryWeapon GVAR(center))}};
|
||||
private _isDisposable = CBA_disposable_replaceDisposableLauncher && {!isNil "CBA_disposable_loadedLaunchers"} &&
|
||||
{
|
||||
if (CBA_disposable_loadedLaunchers isEqualType createHashMap) then { // after CBA 3.18
|
||||
(secondaryWeapon GVAR(center)) in CBA_disposable_loadedLaunchers
|
||||
} else {
|
||||
!isNil {CBA_disposable_loadedLaunchers getVariable (secondaryWeapon player)}
|
||||
}
|
||||
};
|
||||
|
||||
// If removal
|
||||
if (_item == "") then {
|
||||
|
@ -1245,6 +1245,7 @@
|
||||
<Russian>Интегрирован тепловизор.</Russian>
|
||||
<Korean>열화상 내장</Korean>
|
||||
<French>Thermique intégrée</French>
|
||||
<Spanish>Térmica integrada</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_statVisionMode_intPrimTi">
|
||||
<English>Thermal & Primary integrated</English>
|
||||
@ -1253,6 +1254,7 @@
|
||||
<Russian>Интегрирован тепловизор и осн.прицел.</Russian>
|
||||
<Korean>열화상과 주무기 내장</Korean>
|
||||
<French>Thermique et primaire intégrés</French>
|
||||
<Spanish>Térmica y Primaria integrada</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_statVisionMode_NoSup">
|
||||
<English>Not Supported</English>
|
||||
@ -1609,6 +1611,7 @@
|
||||
<French>Décroissant</French>
|
||||
<Portuguese>Decrescente</Portuguese>
|
||||
<Russian>Нисходящий</Russian>
|
||||
<Spanish>Descendiente</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_sortAscending">
|
||||
<English>Ascending</English>
|
||||
@ -1620,6 +1623,7 @@
|
||||
<French>Croissant</French>
|
||||
<Portuguese>Crescente</Portuguese>
|
||||
<Russian>Восходящий</Russian>
|
||||
<Spanish>Ascendiente</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_toolsTab">
|
||||
<English>Tools</English>
|
||||
@ -1647,6 +1651,7 @@
|
||||
<French>Nombre de munitions</French>
|
||||
<Portuguese>Quantidade de munição</Portuguese>
|
||||
<Russian>Количество боеприпасов</Russian>
|
||||
<Spanish>Cantidad de munición</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_statIlluminators">
|
||||
<English>Illuminators</English>
|
||||
@ -1657,6 +1662,7 @@
|
||||
<Portuguese>Iluminadores</Portuguese>
|
||||
<Japanese>イルミネーター</Japanese>
|
||||
<Russian>Осветители</Russian>
|
||||
<Spanish>Iluminadores</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_defaultToFavoritesSetting">
|
||||
<English>Default to Favorites</English>
|
||||
@ -1668,6 +1674,7 @@
|
||||
<French>Favoris par défaut</French>
|
||||
<Portuguese>Favoritos por padrão</Portuguese>
|
||||
<Russian>По умолчанию - Избранное</Russian>
|
||||
<Spanish>Favoritos por defecto</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_defaultToFavoritesTooltip">
|
||||
<English>Controls whether the ACE Arsenal defaults to showing all items or favorites.</English>
|
||||
@ -1679,6 +1686,7 @@
|
||||
<French>Contrôle si l'arsenal ACE affiche par défaut tous les éléments ou les favoris.</French>
|
||||
<Portuguese>Controla se o Arsenal ACE exibe por padrão todos os itens ou favoritos.</Portuguese>
|
||||
<Russian>Определяет, будет ли в арсенале ACE по умолчанию отображаться все предметы или избранное.</Russian>
|
||||
<Spanish>Controla si el Arsenal de ACE muestra por defecto todos los objetos o sólo los favoritos</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_favoritesColorSetting">
|
||||
<English>Favorites Color</English>
|
||||
@ -1690,6 +1698,7 @@
|
||||
<French>Couleurs favorites</French>
|
||||
<Portuguese>Cor dos favoritos</Portuguese>
|
||||
<Russian>Избранный цвет</Russian>
|
||||
<Spanish>Color de Favoritos</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_favoritesColorTooltip">
|
||||
<English>Highlight color for favorited items.</English>
|
||||
@ -1701,6 +1710,7 @@
|
||||
<French>Met en surbrillance les éléments favoris.</French>
|
||||
<Portuguese>Cor de destaque para itens favoritados.</Portuguese>
|
||||
<Russian>Выделите цветом любимые предметы.</Russian>
|
||||
<Spanish>Color de marcado para los objetos favoritos</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_buttonFavoritesTooltip">
|
||||
<English>Switch between displaying all items or your favorites.\nDouble click while holding Shift to add or remove an item.</English>
|
||||
@ -1712,6 +1722,7 @@
|
||||
<French>Change entre l'affichage de tous les éléments ou de vos favoris.\nDouble-cliquez en maintenant la touche Maj enfoncée pour ajouter ou supprimer un élément.</French>
|
||||
<Portuguese>Alterna entre a exibição de todos os itens ou seus favoritos.\nClique duas vezes enquanto mantém pressionada a tecla Shift para adicionar ou remover um item.</Portuguese>
|
||||
<Russian>Переключайтесь между отображением всех элементов или ваших избранных.\nДважды щелкните, удерживая Shift, чтобы добавить или удалить элемент.</Russian>
|
||||
<Spanish>Alterna entre mostrar todos los objetos o sólo los favoritos.\nDoble click mientras se pulsa Shift para añadir o quitar un objeto.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Arsenal_buttonSearchTooltip">
|
||||
<English>Search\nCTRL + Click to enable live results</English>
|
||||
@ -1721,6 +1732,7 @@
|
||||
<Korean>검색\nCtrl + 클릭으로 실시간 검색 결과를 활성화</Korean>
|
||||
<Russian>Поиск\nCtrl + Click для включения результатов в реальном времени</Russian>
|
||||
<French>Recherche\nCTRL + clic pour modifier les résultats tout en écrivant</French>
|
||||
<Spanish>Buscar\nCTRL + Click habilita los objetos en directo</Spanish>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
|
@ -15,7 +15,5 @@ private _categoryName = [format ["ACE %1", localize "str_a3_cfgmarkers_nato_art"
|
||||
[LSTRING(disableArtilleryComputer_displayName), LSTRING(disableArtilleryComputer_description)],
|
||||
_categoryName,
|
||||
false, // default value
|
||||
true, // isGlobal
|
||||
{[QGVAR(disableArtilleryComputer), _this] call EFUNC(common,cbaSettings_settingChanged)},
|
||||
false // Needs mission restart
|
||||
true // isGlobal
|
||||
] call CBA_fnc_addSetting;
|
||||
|
@ -3540,6 +3540,7 @@
|
||||
<French>Utilisation de l'IA</French>
|
||||
<Portuguese>Utilização por IA</Portuguese>
|
||||
<Russian>Использование ИИ</Russian>
|
||||
<Spanish>Uso de la IA</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Ballistics_ammoUsageShort_illumination">
|
||||
<English>Illum</English>
|
||||
@ -3551,6 +3552,7 @@
|
||||
<French>Fusées éclairantes</French>
|
||||
<Portuguese>Sinalizadoras</Portuguese>
|
||||
<Russian>Осветители</Russian>
|
||||
<Spanish>Iluminación</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Ballistics_ammoUsageShort_concealment">
|
||||
<English>Smoke</English>
|
||||
@ -3562,6 +3564,7 @@
|
||||
<French>Fumigènes</French>
|
||||
<Portuguese>Fumígenas</Portuguese>
|
||||
<Russian>Дым</Russian>
|
||||
<Spanish>Humo</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Ballistics_ammoUsageShort_infantry">
|
||||
<English>Inf</English>
|
||||
@ -3573,6 +3576,7 @@
|
||||
<French>Infanterie</French>
|
||||
<Portuguese>Infantaria</Portuguese>
|
||||
<Russian>Пехота</Russian>
|
||||
<Spanish>Infantería</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Ballistics_ammoUsageShort_lightVehicle">
|
||||
<English>Veh</English>
|
||||
@ -3584,6 +3588,7 @@
|
||||
<French>Véhicule</French>
|
||||
<Portuguese>Veículo</Portuguese>
|
||||
<Russian>Техника</Russian>
|
||||
<Spanish>Vehículo</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Ballistics_ammoUsageShort_armor">
|
||||
<English>Armor</English>
|
||||
@ -3595,6 +3600,7 @@
|
||||
<French>Blindage</French>
|
||||
<Portuguese>Blindagem</Portuguese>
|
||||
<Russian>Бронетехника</Russian>
|
||||
<Spanish>Blindados</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Ballistics_ammoUsageShort_aircraft">
|
||||
<English>Air</English>
|
||||
@ -3606,6 +3612,7 @@
|
||||
<French>Aviation</French>
|
||||
<Portuguese>Aeronaves</Portuguese>
|
||||
<Russian>Авиация</Russian>
|
||||
<Spanish>Aeronaves</Spanish>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
|
@ -146,6 +146,7 @@
|
||||
<Korean>포로 눈 가리기</Korean>
|
||||
<Japanese>目隠しをする</Japanese>
|
||||
<Russian>Завязать глаза пленному</Russian>
|
||||
<Spanish>Vendar ojos al prisionero</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Captives_RemoveBlindfoldCaptive">
|
||||
<English>Remove blindfold</English>
|
||||
@ -156,6 +157,7 @@
|
||||
<Korean>눈가리개 풀기</Korean>
|
||||
<Japanese>目隠しを外す</Japanese>
|
||||
<Russian>Снять повязку с глаз</Russian>
|
||||
<Spanish>Quitar vendas de los ojos</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Captives_CableTie">
|
||||
<English>Cable Tie</English>
|
||||
|
@ -48,15 +48,7 @@ class CfgVehicles {
|
||||
class Car: LandVehicle {
|
||||
GVAR(space) = 4;
|
||||
GVAR(hasCargo) = 1;
|
||||
class ACE_Cargo {
|
||||
/*
|
||||
class Cargo {
|
||||
class ACE_medicalSupplyCrate {
|
||||
type = "ACE_medicalSupplyCrate";
|
||||
amount = 1;
|
||||
};
|
||||
};*/
|
||||
};
|
||||
class ADDON {};
|
||||
};
|
||||
|
||||
class Tank: LandVehicle {
|
||||
@ -75,7 +67,7 @@ class CfgVehicles {
|
||||
GVAR(hasCargo) = 1;
|
||||
};
|
||||
|
||||
// HEMTTs - Default at 10, some variants are altered based on model size and/or expected level of free space inside.
|
||||
// HEMTTs - Default at 30, some variants are altered based on model size and/or expected level of free space inside.
|
||||
class Truck_01_base_F: Truck_F {
|
||||
GVAR(space) = 30;
|
||||
};
|
||||
@ -523,6 +515,7 @@ class CfgVehicles {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 3;
|
||||
GVAR(hasCargo) = 1;
|
||||
GVAR(size) = 3;
|
||||
|
@ -7,9 +7,10 @@
|
||||
* 0: Item to be loaded <STRING> or <OBJECT>
|
||||
* 1: Holder object (vehicle) <OBJECT>
|
||||
* 2: Amount <NUMBER> (default: 1)
|
||||
* 3: Ignore interaction distance and stability checks <BOOL> (default: false)
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
* Objects loaded <NUMBER>
|
||||
*
|
||||
* Example:
|
||||
* ["ACE_Wheel", cursorObject] call ace_cargo_fnc_addCargoItem
|
||||
@ -17,21 +18,29 @@
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params ["_item", "_vehicle", ["_amount", 1]];
|
||||
TRACE_3("params",_item,_vehicle,_amount);
|
||||
params ["_item", "_vehicle", ["_amount", 1], ["_ignoreInteraction", false]];
|
||||
TRACE_4("params",_item,_vehicle,_amount,_ignoreInteraction);
|
||||
|
||||
private _loaded = 0;
|
||||
|
||||
// Get config sensitive case name
|
||||
if (_item isEqualType "") then {
|
||||
_item = _item call EFUNC(common,getConfigName);
|
||||
|
||||
for "_i" from 1 to _amount do {
|
||||
[_item, _vehicle] call FUNC(loadItem);
|
||||
if !([_item, _vehicle, _ignoreInteraction] call FUNC(loadItem)) exitWith {};
|
||||
|
||||
_loaded = _loaded + 1;
|
||||
};
|
||||
} else {
|
||||
[_item, _vehicle] call FUNC(loadItem);
|
||||
_loaded = parseNumber ([_item, _vehicle, _ignoreInteraction] call FUNC(loadItem));
|
||||
|
||||
_item = typeOf _item;
|
||||
};
|
||||
|
||||
TRACE_1("loaded",_loaded);
|
||||
|
||||
// Invoke listenable event
|
||||
["ace_cargoAdded", [_item, _vehicle, _amount]] call CBA_fnc_globalEvent;
|
||||
["ace_cargoAdded", [_item, _vehicle, _loaded]] call CBA_fnc_globalEvent;
|
||||
|
||||
_loaded // return
|
||||
|
@ -52,14 +52,21 @@ if (isServer) then {
|
||||
|
||||
private _cargoClassname = "";
|
||||
private _cargoCount = 0;
|
||||
private _loaded = 0;
|
||||
|
||||
{
|
||||
_cargoClassname = getText (_x >> "type");
|
||||
_cargoCount = getNumber (_x >> "amount");
|
||||
|
||||
TRACE_3("adding ACE_Cargo",configName _x,_cargoClassname,_cargoCount);
|
||||
TRACE_3("adding ace_cargo",configName _x,_cargoClassname,_cargoCount);
|
||||
|
||||
["ace_addCargo", [_cargoClassname, _vehicle, _cargoCount]] call CBA_fnc_localEvent;
|
||||
// Ignore stability check (distance check is also ignored with this, but it's ignored by default if item is a string)
|
||||
_loaded = [_cargoClassname, _vehicle, _cargoCount, true] call FUNC(addCargoItem);
|
||||
|
||||
// Let loop continue until the end, so that it prints everything into the rpt (there might be smaller items that could still fit in cargo)
|
||||
if (_loaded != _cargoCount) then {
|
||||
WARNING_5("%1 (%2) could not fit %3 %4 inside its cargo, only %5 were loaded.",_vehicle,_type,_cargoCount,_cargoClassname,_loaded);
|
||||
};
|
||||
} forEach ("true" configClasses (_config >> QUOTE(ADDON) >> "cargo"));
|
||||
};
|
||||
|
||||
|
@ -6,8 +6,7 @@ private _category = [ELSTRING(main,Category_Logistics), LSTRING(openMenu)];
|
||||
[LSTRING(ModuleSettings_enable), LSTRING(ModuleSettings_enable_Description)],
|
||||
_category,
|
||||
true,
|
||||
1,
|
||||
{[QGVAR(enable), _this] call EFUNC(common,cbaSettings_settingChanged)}
|
||||
1
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
@ -16,8 +15,7 @@ private _category = [ELSTRING(main,Category_Logistics), LSTRING(openMenu)];
|
||||
[LSTRING(loadTimeCoefficient), LSTRING(loadTimeCoefficient_description)],
|
||||
_category,
|
||||
[0, 10, 5, 1],
|
||||
1,
|
||||
{[QGVAR(loadTimeCoefficient), _this, true] call EFUNC(common,cbaSettings_settingChanged)}
|
||||
1
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
@ -26,8 +24,7 @@ private _category = [ELSTRING(main,Category_Logistics), LSTRING(openMenu)];
|
||||
[LSTRING(paradropTimeCoefficent), LSTRING(paradropTimeCoefficent_description)],
|
||||
_category,
|
||||
[0, 10, 2.5, 1],
|
||||
1,
|
||||
{[QGVAR(paradropTimeCoefficent), _this, true] call EFUNC(common,cbaSettings_settingChanged)}
|
||||
1
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
@ -35,9 +32,7 @@ private _category = [ELSTRING(main,Category_Logistics), LSTRING(openMenu)];
|
||||
"LIST",
|
||||
[LSTRING(openAfterUnload), LSTRING(openAfterUnload_description)],
|
||||
_category,
|
||||
[[0, 1, 2, 3], [ELSTRING(common,never), LSTRING(unloadObject), LSTRING(paradropButton), ELSTRING(common,both)], 0],
|
||||
0,
|
||||
{[QGVAR(openAfterUnload), _this, true] call EFUNC(common,cbaSettings_settingChanged)}
|
||||
[[0, 1, 2, 3], [ELSTRING(common,never), LSTRING(unloadObject), LSTRING(paradropButton), ELSTRING(common,both)], 0]
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
@ -45,9 +40,7 @@ private _category = [ELSTRING(main,Category_Logistics), LSTRING(openMenu)];
|
||||
"CHECKBOX",
|
||||
[LSTRING(carryAfterUnload), LSTRING(carryAfterUnload_description)],
|
||||
_category,
|
||||
true,
|
||||
0,
|
||||
{[QGVAR(carryAfterUnload), _this] call EFUNC(common,cbaSettings_settingChanged)}
|
||||
true
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
@ -56,8 +49,7 @@ private _category = [ELSTRING(main,Category_Logistics), LSTRING(openMenu)];
|
||||
[LSTRING(enableDeploy), LSTRING(enableDeploy_description)],
|
||||
_category,
|
||||
true,
|
||||
1,
|
||||
{[QGVAR(enableDeploy), _this] call EFUNC(common,cbaSettings_settingChanged)}
|
||||
1
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
@ -65,7 +57,5 @@ private _category = [ELSTRING(main,Category_Logistics), LSTRING(openMenu)];
|
||||
"CHECKBOX",
|
||||
[LSTRING(ModuleSettings_enableRename), LSTRING(ModuleSettings_enableRename_Description)],
|
||||
_category,
|
||||
true,
|
||||
0,
|
||||
{[QGVAR(enableRename), _this, true] call EFUNC(common,cbaSettings_settingChanged)}
|
||||
true
|
||||
] call CBA_fnc_addSetting;
|
||||
|
@ -40,6 +40,7 @@
|
||||
<Japanese>配置する</Japanese>
|
||||
<Korean>배치하기</Korean>
|
||||
<French>Déployer</French>
|
||||
<Spanish>Desplegar</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Cargo_ScrollAction">
|
||||
<English>Raise/Lower | (Ctrl + Scroll) Rotate</English>
|
||||
@ -337,6 +338,7 @@
|
||||
<Japanese>荷降ろし不可能です</Japanese>
|
||||
<Korean>하역할 수가 없습니다</Korean>
|
||||
<Russian>Не может быть выгружен</Russian>
|
||||
<Spanish>No puede ser descargado</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Cargo_SizeMenu">
|
||||
<English>Cargo Size: %1</English>
|
||||
@ -346,6 +348,7 @@
|
||||
<Japanese>貨物のサイズ: %1</Japanese>
|
||||
<Korean>화물 크기: %1</Korean>
|
||||
<Russian>Размер груза: %1</Russian>
|
||||
<Spanish>Tamaño de carga: %1</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Cargo_customName_edenName">
|
||||
<English>Custom Name</English>
|
||||
@ -584,6 +587,7 @@
|
||||
<Japanese>配置機能を有効化</Japanese>
|
||||
<Korean>배치 활성화</Korean>
|
||||
<French>Permettre le placement</French>
|
||||
<Spanish>Habilitar despliegue</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Cargo_enableDeploy_description">
|
||||
<English>Controls whether cargo items can be unloaded via the deploy method.</English>
|
||||
@ -592,6 +596,7 @@
|
||||
<Japanese>配置機能を介して貨物アイテムを降ろすことが出来るかどうかを制御します。</Japanese>
|
||||
<Korean>배치 방법을 통해 화물 아이템을 내릴 수 있는지 여부를 제어합니다.</Korean>
|
||||
<French>Contrôler si les éléments de cargaison peuvent être déchargés via la méthode de déploiement.</French>
|
||||
<Spanish>Controla si los objetos de la carga pueden ser descargados mediante el método de despliegue.</Spanish>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
|
@ -161,6 +161,7 @@ PREP(sendRequest);
|
||||
PREP(serverLog);
|
||||
PREP(setAimCoef);
|
||||
PREP(setApproximateVariablePublic);
|
||||
PREP(setDead);
|
||||
PREP(setDefinedVariable);
|
||||
PREP(setDisableUserInputStatus);
|
||||
PREP(setHearingCapability);
|
||||
|
@ -223,6 +223,9 @@ if (isServer) then {
|
||||
[QGVAR(claimSafe), LINKFUNC(claimSafeServer)] call CBA_fnc_addEventHandler;
|
||||
};
|
||||
|
||||
["CBA_SettingChanged", {
|
||||
["ace_settingChanged", _this] call CBA_fnc_localEvent;
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
// Set up remote execution
|
||||
|
@ -2,22 +2,33 @@
|
||||
/*
|
||||
* Author: commy2, johnb43
|
||||
* Adds weapon to unit without taking a magazine.
|
||||
* Same as CBA_fnc_addWeaponWithoutItems, but doesn't remove linked items.
|
||||
* Same as CBA_fnc_addWeaponWithoutItems, but doesn't remove linked items by default.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Unit to add the weapon to <OBEJCT>
|
||||
* 0: Unit to add the weapon to <OBJECT>
|
||||
* 1: Weapon to add <STRING>
|
||||
* 2: If linked items should be removed or not <BOOL> (default: false)
|
||||
* 3: Magazines that should be added to the weapon <ARRAY> (default: [])
|
||||
* - 0: Magazine classname <STRING>
|
||||
* - 1: Ammo count <NUMBER>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [player, "arifle_AK12_F"] call ace_common_fnc_addWeapon
|
||||
* [player, "arifle_MX_GL_F", true, [["30Rnd_65x39_caseless_mag", 30], ["1Rnd_HE_Grenade_shell", 1]]] call ace_common_fnc_addWeapon
|
||||
*
|
||||
* Public: Yes
|
||||
*/
|
||||
|
||||
params ["_unit", "_weapon"];
|
||||
params [
|
||||
["_unit", objNull, [objNull]],
|
||||
["_weapon", "", [""]],
|
||||
["_removeLinkedItems", false, [false]],
|
||||
["_magazines", [], [[]]]
|
||||
];
|
||||
|
||||
if (isNull _unit || {_weapon == ""}) exitWith {};
|
||||
|
||||
// Config case
|
||||
private _compatibleMagazines = compatibleMagazines _weapon;
|
||||
@ -45,6 +56,35 @@ private _backpackMagazines = (magazinesAmmoCargo _backpack) select {
|
||||
// Add weapon
|
||||
_unit addWeapon _weapon;
|
||||
|
||||
// This doesn't remove magazines, but linked items can't be magazines, so it's fine
|
||||
if (_removeLinkedItems) then {
|
||||
switch (_weapon call FUNC(getConfigName)) do {
|
||||
case (primaryWeapon _unit): {
|
||||
removeAllPrimaryWeaponItems _unit;
|
||||
};
|
||||
case (secondaryWeapon _unit): {
|
||||
removeAllSecondaryWeaponItems _unit;
|
||||
};
|
||||
case (handgunWeapon _unit): {
|
||||
removeAllHandgunItems _unit;
|
||||
};
|
||||
case (binocular _unit): {
|
||||
removeAllBinocularItems _unit;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// Add magazines directly now, so that AI don't reload
|
||||
if (_magazines isNotEqualTo []) then {
|
||||
{
|
||||
_x params [["_magazine", "", [""]], ["_ammoCount", -1, [0]]];
|
||||
|
||||
if (_magazine != "" && {_ammoCount > -1}) then {
|
||||
_unit addWeaponItem [_weapon, [_magazine, _ammoCount], true];
|
||||
};
|
||||
} forEach _magazines;
|
||||
};
|
||||
|
||||
// Add all magazines back
|
||||
{
|
||||
_uniform addMagazineAmmoCargo [_x select 0, 1, _x select 1];
|
||||
|
@ -1,8 +1,8 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: PabstMirror
|
||||
* Function for handeling a cba setting being changed.
|
||||
* Adds warning if global setting is changed after ace_settingsInitialized
|
||||
* Function for handling a cba setting being changed.
|
||||
* Adds warning if global setting is changed after ace_settingsInitialized.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Setting Name <STRING>
|
||||
@ -21,9 +21,7 @@
|
||||
params ["_settingName", "_newValue", ["_canBeChanged", false]];
|
||||
TRACE_2("",_settingName,_newValue);
|
||||
|
||||
["ace_settingChanged", [_settingName, _newValue]] call CBA_fnc_localEvent;
|
||||
|
||||
if (!((toLower _settingName) in CBA_settings_needRestart)) exitWith {};
|
||||
if !((toLower _settingName) in CBA_settings_needRestart) exitWith {};
|
||||
if (_canBeChanged) exitWith {WARNING_1("update cba setting [%1] to use correct Need Restart param",_settingName);};
|
||||
if (!GVAR(settingsInitFinished)) exitWith {}; // Ignore changed event before CBA_settingsInitialized
|
||||
|
||||
|
@ -143,11 +143,7 @@ if (_state) then {
|
||||
_ctrl ctrlSetEventHandler ["ButtonClick", toString {
|
||||
closeDialog 0;
|
||||
|
||||
if (["ace_medical"] call FUNC(isModLoaded)) then {
|
||||
[player, "respawn_button"] call EFUNC(medical_status,setDead);
|
||||
} else {
|
||||
player setDamage 1;
|
||||
};
|
||||
[player, "respawn_button"] call FUNC(setDead);
|
||||
|
||||
[false] call FUNC(disableUserInput);
|
||||
}];
|
||||
|
44
addons/common/functions/fnc_setDead.sqf
Normal file
44
addons/common/functions/fnc_setDead.sqf
Normal file
@ -0,0 +1,44 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: johnb43
|
||||
* Kills a unit without changing visual appearance.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Unit <ARRAY>
|
||||
* 1: Reason for death (only used if ace_medical is loaded) <STRING> (default: "")
|
||||
* 2: Killer (vehicle that killed unit) <ARRAY> (default: objNull)
|
||||
* 3: Instigator (unit who pulled trigger) <ARRAY> (default: objNull)
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [cursorObject, "", player, player] call ace_common_fnc_setDead;
|
||||
*
|
||||
* Public: Yes
|
||||
*/
|
||||
|
||||
params [["_unit", objNull, [objNull]], ["_reason", "", [""]], ["_source", objNull, [objNull]], ["_instigator", objNull, [objNull]]];
|
||||
|
||||
if (!local _unit) exitWith {
|
||||
WARNING_1("setDead executed on non-local unit - %1",_this);
|
||||
};
|
||||
|
||||
if (["ace_medical"] call EFUNC(common,isModLoaded)) then {
|
||||
[_unit, _reason, _source, _instigator] call EFUNC(medical_status,setDead);
|
||||
} else {
|
||||
// From 'ace_medical_status_fnc_setDead': Kill the unit without changing visual appearance
|
||||
|
||||
// (#8803) Reenable damage if disabled to prevent having live units in dead state
|
||||
// Keep this after death event for compatibility with third party hooks
|
||||
if (!isDamageAllowed _unit) then {
|
||||
WARNING_1("setDead executed on unit with damage blocked - %1",_this);
|
||||
_unit allowDamage true;
|
||||
};
|
||||
|
||||
private _currentDamage = _unit getHitPointDamage "HitHead";
|
||||
|
||||
_unit setHitPointDamage ["HitHead", 1, true, _source, _instigator];
|
||||
|
||||
_unit setHitPointDamage ["HitHead", _currentDamage, true, _source, _instigator];
|
||||
};
|
@ -1834,6 +1834,8 @@
|
||||
<Korean>무기 흔들림</Korean>
|
||||
<French>Oscillation de l'arme</French>
|
||||
<Russian>Колебание оружия</Russian>
|
||||
<Spanish>Oscilación del arma</Spanish>
|
||||
<Italian>Oscillazione arma</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Common_EnableSway">
|
||||
<English>Enable Weapon Sway</English>
|
||||
@ -1841,6 +1843,8 @@
|
||||
<Korean>무기 흔들림 추가</Korean>
|
||||
<French>Activer l'oscillation de l'arme</French>
|
||||
<Russian>Включить колебание оружия</Russian>
|
||||
<Spanish>Habilitar oscilación del arma</Spanish>
|
||||
<Italian>Abilita oscillazione arma</Italian>
|
||||
</Key>
|
||||
<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>
|
||||
@ -1848,6 +1852,8 @@
|
||||
<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>
|
||||
<Russian>Активируйте колебание оружия в зависимости от таких факторов, как стойка, усталость и состояние здоровья.\nОтключение этого параметра приведет к переносу раскачивания на vanilla или другие моды.</Russian>
|
||||
<Spanish>Habilita la oscilación del arma afectado por factores como la postura, la fatiga y la condición médica.\nDeshabilitar esta opción hará que el comportamiento de la oscilación venga definido por Vanilla o por otros mods.</Spanish>
|
||||
<Italian>Abilita l'oscillazione ACE, influenzata da fattori come postura, fatica e condizione medica.\nDisabilitare questa impostazione farà controllare l'oscillazione al gioco vanilla o altre mod.</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Common_SwayFactor">
|
||||
<English>Sway factor</English>
|
||||
@ -1888,6 +1894,7 @@
|
||||
<Italian>Fattore di Oscillazione Appoggiato</Italian>
|
||||
<Japanese>静止依託時の手ぶれ係数</Japanese>
|
||||
<Russian>Коэффициент колебания прицела в состоянии покоя</Russian>
|
||||
<Spanish>Factor de oscilación apoyado</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Common_RestedSwayFactor_Description">
|
||||
<English>Influences the amount of weapon sway while weapon is rested.</English>
|
||||
@ -1898,6 +1905,7 @@
|
||||
<Italian>Determina la quantità di oscillazione dell'arma quando questa è appoggiata.</Italian>
|
||||
<Japanese>静止し壁などに依託している時の武器の手ぶれの大きさに影響します。</Japanese>
|
||||
<Russian>Влияет на величину колебания прицела оружия в состоянии покоя.</Russian>
|
||||
<Spanish>Afecta la cantidad de oscilación del arma cuando se está apoyado.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Common_DeployedSwayFactor">
|
||||
<English>Deployed sway factor</English>
|
||||
@ -1908,6 +1916,7 @@
|
||||
<Italian>Fattore di Oscillazione su Bipode</Italian>
|
||||
<Japanese>接地展開時の手ぶれ係数</Japanese>
|
||||
<Russian>Коэффициент колебания прицела при развертывании</Russian>
|
||||
<Spanish>Factor de oscilación desplegado</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Common_DeployedSwayFactor_Description">
|
||||
<English>Influences the amount of weapon sway while weapon is deployed.</English>
|
||||
@ -1918,6 +1927,7 @@
|
||||
<Italian>Determina la quantità di oscillazione dell'arma quando questa è stabilizzata usando il bipode.</Italian>
|
||||
<Japanese>武器の接地展開時の武器の手ぶれの大きさに影響します。</Japanese>
|
||||
<Russian>Влияет на величину колебания прицела оружия при его развертывании.</Russian>
|
||||
<Spanish>Afecta la cantidad de oscilación del arma cuando se está desplegado.</Spanish>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
|
@ -1,3 +1,6 @@
|
||||
class CBA_Extended_EventHandlers;
|
||||
#define XEH_INHERITED class EventHandlers {class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};}
|
||||
|
||||
class CfgVehicles {
|
||||
class House;
|
||||
class House_Small_F;
|
||||
@ -5,7 +8,7 @@ class CfgVehicles {
|
||||
class House_EP1: House {};
|
||||
|
||||
class Land_Benzina_schnell: House {
|
||||
transportFuel = 0;
|
||||
XEH_INHERITED;
|
||||
EGVAR(refuel,hooks)[] = {{-1.5,-3.93,-1.25}, {2.35,-3.93,-1.25}};
|
||||
EGVAR(refuel,fuelCargo) = REFUEL_INFINITE_FUEL;
|
||||
class ACE_Actions {
|
||||
@ -18,22 +21,22 @@ class CfgVehicles {
|
||||
};
|
||||
};
|
||||
class Land_A_FuelStation_Feed: Strategic {
|
||||
transportFuel = 0;
|
||||
XEH_INHERITED;
|
||||
EGVAR(refuel,hooks)[] = {{-0.34,0,0}, {0.34,0,0}};
|
||||
EGVAR(refuel,fuelCargo) = REFUEL_INFINITE_FUEL;
|
||||
};
|
||||
class Land_Ind_FuelStation_Feed_EP1: House_EP1 {
|
||||
transportFuel = 0;
|
||||
XEH_INHERITED;
|
||||
EGVAR(refuel,hooks)[] = {{-0.34,0,0}, {0.34,0,0}};
|
||||
EGVAR(refuel,fuelCargo) = REFUEL_INFINITE_FUEL;
|
||||
};
|
||||
class Land_FuelStation_Feed_PMC: Strategic {
|
||||
transportFuel = 0;
|
||||
XEH_INHERITED;
|
||||
EGVAR(refuel,hooks)[] = {{-0.34,0,0}, {0.34,0,0}};
|
||||
EGVAR(refuel,fuelCargo) = REFUEL_INFINITE_FUEL;
|
||||
};
|
||||
class FuelStation: House_Small_F {
|
||||
transportFuel = 0;
|
||||
XEH_INHERITED;
|
||||
EGVAR(refuel,hooks)[] = {{1.25, .2, -1.1}};
|
||||
EGVAR(refuel,fuelCargo) = REFUEL_INFINITE_FUEL;
|
||||
class ACE_Actions {
|
||||
@ -45,4 +48,9 @@ class CfgVehicles {
|
||||
};
|
||||
};
|
||||
};
|
||||
class WarfareBBaseStructure;
|
||||
class Base_WarfareBVehicleServicePoint: WarfareBBaseStructure {
|
||||
// "vehicle service point" (a conex /w barrels) - need hooks???
|
||||
XEH_INHERITED;
|
||||
};
|
||||
};
|
||||
|
@ -1,35 +1,30 @@
|
||||
class CfgVehicles {
|
||||
class CUP_T810_Unarmed_Base;
|
||||
class CUP_T810_Refuel_Base: CUP_T810_Unarmed_Base {
|
||||
transportFuel = 0;
|
||||
EGVAR(refuel,hooks)[] = {{-1.01, 0.21, -0.5},{1.08, 0.2, -0.5}};
|
||||
EGVAR(refuel,fuelCargo) = 10000;
|
||||
};
|
||||
|
||||
class Truck_02_fuel_base_F;
|
||||
class CUP_Kamaz_5350_Refuel_Base: Truck_02_fuel_base_F {
|
||||
transportFuel = 0;
|
||||
EGVAR(refuel,hooks)[] = {{-0.02, -3.33, -1.05}};
|
||||
EGVAR(refuel,fuelCargo) = 10000;
|
||||
};
|
||||
|
||||
class CUP_Ural_Support_Base;
|
||||
class CUP_Ural_Refuel_Base: CUP_Ural_Support_Base {
|
||||
transportFuel = 0;
|
||||
EGVAR(refuel,hooks)[] = {{-0.05, -3.65, -0.42}};
|
||||
EGVAR(refuel,fuelCargo) = 10000;
|
||||
};
|
||||
|
||||
class CUP_V3S_Open_Base;
|
||||
class CUP_V3S_Refuel_Base: CUP_V3S_Open_Base {
|
||||
transportFuel = 0;
|
||||
EGVAR(refuel,hooks)[] = {{-0.35, -3.35, -0.4},{0.40, -3.35, -0.4}};
|
||||
EGVAR(refuel,fuelCargo) = 6500;
|
||||
};
|
||||
|
||||
class CUP_MTVR_Base;
|
||||
class CUP_MTVR_Refuel_Base: CUP_MTVR_Base {
|
||||
transportFuel = 0;
|
||||
EGVAR(refuel,hooks)[] = {{-1.09, -0.01, -0.5},{1, -0.01, -0.5}};
|
||||
EGVAR(refuel,fuelCargo) = 10000;
|
||||
};
|
||||
|
@ -6,36 +6,42 @@
|
||||
<Japanese>[CSW] AGS30 ベルト</Japanese>
|
||||
<Russian>[CSW] Лента AGS 30</Russian>
|
||||
<Korean>[CSW] AGS-30 벨트</Korean>
|
||||
<Spanish>[CSW] Cinta de AGS30</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_MK19_displayName">
|
||||
<English>[CSW] MK19 Belt</English>
|
||||
<Japanese>[CSW] Mk19 ベルト</Japanese>
|
||||
<Russian>[CSW] Лента Mk19</Russian>
|
||||
<Korean>[CSW] Mk.19 벨트</Korean>
|
||||
<Spanish>[CSW] Cinta de MK19</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_TOW_displayName">
|
||||
<English>[CSW] TOW Tube</English>
|
||||
<Japanese>[CSW] TOW チューブ</Japanese>
|
||||
<Russian>[CSW] Туба TOW</Russian>
|
||||
<Korean>[CSW] TOW 튜브</Korean>
|
||||
<Spanish>[CSW] Tubo de TOW</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_TOW2_displayName">
|
||||
<English>[CSW] TOW2 Tube</English>
|
||||
<Japanese>[CSW] TOW2 チューブ</Japanese>
|
||||
<Russian>[CSW] Туба TOW-2</Russian>
|
||||
<Korean>[CSW] TOW2 튜브</Korean>
|
||||
<Spanish>[CSW] Tubo de TOW2</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_PG9_displayName">
|
||||
<English>[CSW] PG-9 Round</English>
|
||||
<Japanese>[CSW] PG-9 砲弾</Japanese>
|
||||
<Russian>[CSW] Снаряд ПГ-9</Russian>
|
||||
<Korean>[CSW] PG-9 대전차고폭탄</Korean>
|
||||
<Spanish>[CSW] Carga de PG-9</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_OG9_displayName">
|
||||
<English>[CSW] OG-9 Round</English>
|
||||
<Japanese>[CSW] OG-9 砲弾</Japanese>
|
||||
<Russian>[CSW] Снаряд OГ-9</Russian>
|
||||
<Korean>[CSW] OG-9 고폭파편탄</Korean>
|
||||
<Spanish>[CSW] Carga de OG-9</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_M1HE_displayName">
|
||||
<English>[CSW] M1 HE</English>
|
||||
@ -43,6 +49,7 @@
|
||||
<Russian>[CSW] M1 HE</Russian>
|
||||
<Korean>[CSW] M1 고폭탄</Korean>
|
||||
<French>[CSW] M1 HE</French>
|
||||
<Spanish>[CSW] HE de M1</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_M84Smoke_displayName">
|
||||
<English>[CSW] M84 Smoke</English>
|
||||
@ -50,6 +57,7 @@
|
||||
<Russian>[CSW] M84 Дымовая</Russian>
|
||||
<Korean>[CSW] M84 연막탄</Korean>
|
||||
<French>[CSW] M84 Fumigène</French>
|
||||
<Spanish>[CSW] Humo M84</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_M60A2_displayName">
|
||||
<English>[CSW] M60A2 WP</English>
|
||||
@ -57,6 +65,7 @@
|
||||
<Russian>[CSW] M60A2 WP</Russian>
|
||||
<Korean>[CSW] M60A2 백린연막탄</Korean>
|
||||
<French>[CSW] M60A2 WP</French>
|
||||
<Spanish>[CSW] M60A2 WP</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_M67AT_displayName">
|
||||
<English>[CSW] M67 AT Laser Guided</English>
|
||||
@ -64,6 +73,7 @@
|
||||
<Russian>[CSW] M67 AT Laser Guided</Russian>
|
||||
<Korean>[CSW] M67 레이저유도 대전차탄</Korean>
|
||||
<French>[CSW] M67 AT Guidé laser</French>
|
||||
<Spanish>[CSW] AT Guiado por Láser M67</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_M314Illum_displayName">
|
||||
<English>[CSW] M314 Illumination</English>
|
||||
@ -71,6 +81,7 @@
|
||||
<Russian>[CSW] M314 Осветительная</Russian>
|
||||
<Korean>[CSW] M314 조명탄</Korean>
|
||||
<French>[CSW] M314 Illumination</French>
|
||||
<Spanish>[CSW] Iluminación M314</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_3OF56_displayName">
|
||||
<English>[CSW] 3OF56 HE</English>
|
||||
@ -78,6 +89,7 @@
|
||||
<Russian>[CSW] 3OF56 HE</Russian>
|
||||
<Korean>[CSW] 3OF56 고폭탄</Korean>
|
||||
<French>[CSW] 3OF56 HE</French>
|
||||
<Spanish>[CSW] HE de 3OF56</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_3OF69M_displayName">
|
||||
<English>[CSW] 3OF69M Laser Guided</English>
|
||||
@ -85,6 +97,7 @@
|
||||
<Russian>[CSW] 3OF69M Laser Guided</Russian>
|
||||
<Korean>[CSW] 3OF69M 레이저유도탄</Korean>
|
||||
<French>[CSW] 3OF69M Guidé laser</French>
|
||||
<Spanish>[CSW] 3OF69M Guiado por Láser</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_122mmWP_displayName">
|
||||
<English>[CSW] 122mm WP</English>
|
||||
@ -92,6 +105,7 @@
|
||||
<Russian>[CSW] 122mm WP</Russian>
|
||||
<Korean>[CSW] 122mm 백린탄</Korean>
|
||||
<French>[CSW] 122mm WP</French>
|
||||
<Spanish>[CSW] WP de 122mm</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_122mmSmoke_displayName">
|
||||
<English>[CSW] D-462 Smoke</English>
|
||||
@ -99,6 +113,7 @@
|
||||
<Russian>[CSW] D-462 Дымовая</Russian>
|
||||
<Korean>[CSW] D-462 연막탄</Korean>
|
||||
<French>[CSW] D-462 Fumigène</French>
|
||||
<Spanish>[CSW] Humo D-462</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_122mmIllum_displayName">
|
||||
<English>[CSW] S-463 Illumination</English>
|
||||
@ -106,6 +121,7 @@
|
||||
<Russian>[CSW] S-463 Осветительная</Russian>
|
||||
<Korean>[CSW] S-463 조명탄</Korean>
|
||||
<French>[CSW] S-463 Eclairante</French>
|
||||
<Spanish>[CSW] Iluminación S-463</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_CUP_Weapons_CSW_mag_122mmAT_displayName">
|
||||
<English>[CSW] BK-6M HEAT</English>
|
||||
@ -113,6 +129,7 @@
|
||||
<Russian>[CSW] BK-6M HEAT</Russian>
|
||||
<Korean>[CSW] BK-6M 대전차고폭탄</Korean>
|
||||
<French>[CSW] BK-6M HEAT</French>
|
||||
<Spanish>[CSW] BK-6M HEAT</Spanish>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
|
@ -10,6 +10,7 @@
|
||||
<Korean>AN/PVS-14 (백색광)</Korean>
|
||||
<French>AN/PVS-14 (WP)</French>
|
||||
<Russian>AN/PVS-14 (БФ)</Russian>
|
||||
<Spanish>AN/PVS-14 (WP)</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_CUP_Weapons_nightvision_CUP_NVG_PVS15_black_WP">
|
||||
<English>AN/PVS-15 (Black, WP)</English>
|
||||
@ -20,6 +21,7 @@
|
||||
<Korean>AN/PVS-15 (검정, 백색광)</Korean>
|
||||
<French>AN/PVS-15 (Noires, WP)</French>
|
||||
<Russian>AN/PVS-15 (Чёрный, БФ)</Russian>
|
||||
<Spanish>AN/PVS-15 (Negras, WP)</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_CUP_Weapons_nightvision_CUP_NVG_PVS15_green_WP">
|
||||
<English>AN/PVS-15 (Green, WP)</English>
|
||||
@ -30,6 +32,7 @@
|
||||
<Korean>AN/PVS-15 (녹색, 백색광)</Korean>
|
||||
<French>AN/PVS-15 (Vertes, WP)</French>
|
||||
<Russian>AN/PVS-15 (Зелёный, БФ)</Russian>
|
||||
<Spanish>AN/PVS-15 (Verdes, WP)</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_CUP_Weapons_nightvision_CUP_NVG_PVS15_tan_WP">
|
||||
<English>AN/PVS-15 (Tan, WP)</English>
|
||||
@ -40,6 +43,7 @@
|
||||
<Korean>AN/PVS-15 (황갈색, 백색광)</Korean>
|
||||
<French>AN/PVS-15 (Marron clair, WP)</French>
|
||||
<Russian>AN/PVS-15 (Желтовато-коричневый, БФ)</Russian>
|
||||
<Spanish>AN/PVS-15 (Marrones, WP)</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_CUP_Weapons_nightvision_CUP_NVG_PVS15_winter_WP">
|
||||
<English>AN/PVS-15 (Winter, WP)</English>
|
||||
@ -47,6 +51,7 @@
|
||||
<Korean>AN/PVS-15 (설상, 백색광)</Korean>
|
||||
<Russian>AN/PVS-15 (Белый, БФ)</Russian>
|
||||
<French>AN/PVS-15 (Blanc, WP)</French>
|
||||
<Spanish>AN/PVS-15 (Blancas, WP)</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_CUP_Weapons_nightvision_CUP_NVG_GPNVG_black_WP">
|
||||
<English>GPNVG (Black, WP)</English>
|
||||
@ -57,6 +62,7 @@
|
||||
<Korean>GPNVG (검정, 백색광)</Korean>
|
||||
<French>GPNVG (Noires, WP)</French>
|
||||
<Russian>GPNVG (Чёрный, БФ)</Russian>
|
||||
<Spanish>GPNVG (Negras, WP)</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_CUP_Weapons_nightvision_CUP_NVG_GPNVG_tan_WP">
|
||||
<English>GPNVG (Tan, WP)</English>
|
||||
@ -67,6 +73,7 @@
|
||||
<Korean>GPNVG (황갈색, 백색광)</Korean>
|
||||
<French>GPNVG (Marron clair, WP)</French>
|
||||
<Russian>GPNVG (Желтовато-коричневый, БФ)</Russian>
|
||||
<Spanish>GPNVG (Marrones, WP)</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_CUP_Weapons_nightvision_CUP_NVG_GPNVG_green_WP">
|
||||
<English>GPNVG (Green, WP)</English>
|
||||
@ -77,6 +84,7 @@
|
||||
<Korean>GPNVG (녹색, 백색광)</Korean>
|
||||
<French>GPNVG (Vertes, WP)</French>
|
||||
<Russian>GPNVG (Зелёный, БФ)</Russian>
|
||||
<Spanish>GPNVG (Verdes, WP)</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_CUP_Weapons_nightvision_CUP_NVG_GPNVG_winter_WP">
|
||||
<English>GPNVG (Winter, WP)</English>
|
||||
@ -84,6 +92,7 @@
|
||||
<Korean>GPNVG (설상, 백색광)</Korean>
|
||||
<Russian>AN/PVS-15 (Белый, БФ)</Russian>
|
||||
<French>GPNVG (Blanc, WP)</French>
|
||||
<Spanish>GPNVG (Blancas, WP)</Spanish>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
|
@ -1,6 +0,0 @@
|
||||
class CfgVehicles {
|
||||
class gm_ural4320_base;
|
||||
class gm_ural4320_refuel_base: gm_ural4320_base {
|
||||
transportFuel = 0;
|
||||
};
|
||||
};
|
@ -21,4 +21,3 @@ class CfgPatches {
|
||||
};
|
||||
|
||||
#include "CfgEventHandlers.hpp"
|
||||
#include "CfgVehicles.hpp"
|
||||
|
@ -219,6 +219,10 @@ class CfgAmmo {
|
||||
EGVAR(frag,force) = 0;
|
||||
};
|
||||
|
||||
class SmokeShell;
|
||||
class rhs_ammo_rdg2_white: SmokeShell {
|
||||
EGVAR(grenades,rollVectorDirAndUp)[] = {{0, 1, 0}, {0, 0, 1}};
|
||||
};
|
||||
|
||||
class Sh_125mm_APFSDS;
|
||||
class Sh_125mm_HE;
|
||||
|
@ -1,10 +0,0 @@
|
||||
class CfgVehicles {
|
||||
class RHS_Ural_Support_MSV_Base_01;
|
||||
class RHS_Ural_Fuel_MSV_01: RHS_Ural_Support_MSV_Base_01 {
|
||||
transportFuel = 0;
|
||||
};
|
||||
class rhs_kraz255b1_base;
|
||||
class rhs_kraz255b1_fuel_base: rhs_kraz255b1_base {
|
||||
transportFuel = 0;
|
||||
};
|
||||
};
|
@ -18,4 +18,4 @@ class CfgPatches {
|
||||
};
|
||||
};
|
||||
|
||||
#include "CfgVehicles.hpp"
|
||||
// ADDON kept for backward compatiblity
|
||||
|
@ -1,15 +0,0 @@
|
||||
class CfgVehicles {
|
||||
class rhsusf_M1078A1P2_B_M2_fmtv_usarmy;
|
||||
class rhsusf_M1078A1R_SOV_M2_D_fmtv_socom: rhsusf_M1078A1P2_B_M2_fmtv_usarmy {
|
||||
transportFuel = 0;
|
||||
};
|
||||
|
||||
class rhsusf_M977A4_usarmy_wd;
|
||||
class rhsusf_M978A4_usarmy_wd: rhsusf_M977A4_usarmy_wd {
|
||||
transportFuel = 0;
|
||||
};
|
||||
|
||||
class rhsusf_M978A4_BKIT_usarmy_wd: rhsusf_M977A4_usarmy_wd {
|
||||
transportFuel = 0;
|
||||
};
|
||||
};
|
@ -21,4 +21,3 @@ class CfgPatches {
|
||||
};
|
||||
|
||||
#include "CfgEventHandlers.hpp"
|
||||
#include "CfgVehicles.hpp"
|
||||
|
@ -4,6 +4,13 @@ class vn_molotov_grenade_ammo: vn_grenadehand {
|
||||
EGVAR(frag,enabled) = 0;
|
||||
};
|
||||
|
||||
class vn_t67_grenade_ammo: vn_grenadehand {
|
||||
EGVAR(grenades,rollVectorDirAndUp)[] = {{-1, 0, 0}, {0, 0, 1}};
|
||||
};
|
||||
class vn_chicom_grenade_ammo: vn_grenadehand {
|
||||
EGVAR(grenades,rollVectorDirAndUp)[] = {{1, 0, 0}, {0, 0, 1}};
|
||||
};
|
||||
|
||||
class SmokeShell;
|
||||
class vn_m14_grenade_ammo: SmokeShell {
|
||||
EGVAR(grenades,incendiary) = 1;
|
||||
|
@ -32,6 +32,16 @@ class Extended_InitPost_EventHandlers {
|
||||
init = QUOTE((_this select 0) setMass 1e-12);
|
||||
};
|
||||
};
|
||||
class Land_vn_canisterfuel_f {
|
||||
class ADDON {
|
||||
init = QUOTE(call (missionNamespace getVariable [ARR_2(QQEFUNC(refuel,makeJerryCan),{})]));
|
||||
};
|
||||
};
|
||||
class Land_vn_fuelcan {
|
||||
class ADDON {
|
||||
init = QUOTE(call (missionNamespace getVariable [ARR_2(QQEFUNC(refuel,makeJerryCan),{})]));
|
||||
};
|
||||
};
|
||||
class vn_bicycle_base {
|
||||
class ADDON {
|
||||
init = QUOTE(call FUNC(disableCookoff));
|
||||
|
@ -1,18 +1,19 @@
|
||||
#define XEH_INHERITED class EventHandlers {class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};}
|
||||
|
||||
// fuel pumps
|
||||
class Land_vn_commercial_base;
|
||||
class Land_vn_fuelstation_01_pump_f: Land_vn_commercial_base {
|
||||
transportFuel = 0;
|
||||
XEH_INHERITED;
|
||||
EGVAR(refuel,hooks)[] = {{0, 0.4, -0.5}, {0, -0.4, -0.5}};
|
||||
EGVAR(refuel,fuelCargo) = REFUEL_INFINITE_FUEL;
|
||||
};
|
||||
class Land_vn_fuelstation_02_pump_f: Land_vn_commercial_base {
|
||||
transportFuel = 0;
|
||||
XEH_INHERITED;
|
||||
EGVAR(refuel,hooks)[] = {{0, 0.4, -0.5}, {0, -0.4, -0.5}};
|
||||
EGVAR(refuel,fuelCargo) = REFUEL_INFINITE_FUEL;
|
||||
};
|
||||
class Land_vn_fuelstation_feed_f: Land_vn_commercial_base {
|
||||
transportFuel = 0;
|
||||
XEH_INHERITED;
|
||||
EGVAR(refuel,hooks)[] = {{0, 0.4, -0.5}, {0, -0.4, -0.5}};
|
||||
EGVAR(refuel,fuelCargo) = REFUEL_INFINITE_FUEL;
|
||||
};
|
||||
@ -20,13 +21,47 @@ class Land_vn_fuelstation_feed_f: Land_vn_commercial_base {
|
||||
// fuel objects
|
||||
class Land_vn_building_b_base;
|
||||
class Land_vn_usaf_fueltank_75_01: Land_vn_building_b_base {
|
||||
transportFuel = 0;
|
||||
EGVAR(refuel,hooks)[] = {{0, -0.4, -0.5}};
|
||||
XEH_INHERITED;
|
||||
EGVAR(refuel,hooks)[] = {{-2.52, -2.2, -2.05}, {2.5, 0, -1.3}};
|
||||
EGVAR(refuel,fuelCargo) = 2840; // 750 * 3.785
|
||||
};
|
||||
class Land_vn_b_prop_fuelbladder_01: Land_vn_usaf_fueltank_75_01 {
|
||||
EGVAR(refuel,hooks)[] = {{-1.75, -6.7, -1}};
|
||||
EGVAR(refuel,fuelCargo) = 3785; // 1000 * 3.785
|
||||
};
|
||||
class Land_vn_b_prop_fuelbladder_03: Land_vn_b_prop_fuelbladder_01 {
|
||||
EGVAR(refuel,hooks)[] = {{-1.55, -6.5, -1}};
|
||||
};
|
||||
class Land_vn_building_industrial_base;
|
||||
class Land_vn_fuel_tank_stairs: Land_vn_building_industrial_base {
|
||||
XEH_INHERITED;
|
||||
EGVAR(refuel,hooks)[] = {{0, 0.4, -1.3}, {0, -0.4, -1.3}};
|
||||
EGVAR(refuel,fuelCargo) = 10000; // reference is B_Slingload_01_Fuel_F
|
||||
};
|
||||
class Land_vn_object_b_base;
|
||||
class Land_vn_b_prop_fueldrum_01: Land_vn_object_b_base {
|
||||
transportFuel = 0;
|
||||
EGVAR(refuel,hooks)[] = {{0, 0, 0.5}}; // reference is Land_FlexibleTank_01_F
|
||||
XEH_INHERITED;
|
||||
EGVAR(refuel,hooks)[] = {{0, 0, 0}};
|
||||
EGVAR(refuel,fuelCargo) = 300; // reference is Land_FlexibleTank_01_F
|
||||
};
|
||||
class Land_vn_b_prop_fueldrum_02: Land_vn_b_prop_fueldrum_01 {
|
||||
EGVAR(refuel,hooks)[] = {{0, -1.3, -0.15}, {2.3, 1.25, -0.15}};
|
||||
EGVAR(refuel,fuelCargo) = 14100; // (23 + 24) * 300
|
||||
};
|
||||
class vn_b_ammobox_supply_07;
|
||||
class vn_b_ammobox_supply_09: vn_b_ammobox_supply_07 { // just a pallet
|
||||
XEH_INHERITED;
|
||||
};
|
||||
class vn_object_c_base_02;
|
||||
class Land_vn_canisterfuel_f: vn_object_c_base_02 {
|
||||
EGVAR(cargo,size) = 1;
|
||||
EGVAR(cargo,canLoad) = 1;
|
||||
EGVAR(cargo,noRename) = 1;
|
||||
};
|
||||
class Land_vn_object_c_base;
|
||||
class Land_vn_fuelcan: Land_vn_object_c_base {
|
||||
XEH_INHERITED;
|
||||
EGVAR(cargo,size) = 1;
|
||||
EGVAR(cargo,canLoad) = 1;
|
||||
EGVAR(cargo,noRename) = 1;
|
||||
};
|
||||
|
@ -5,7 +5,6 @@ class vn_wheeled_m54_base: vn_wheeled_truck_base {
|
||||
};
|
||||
class vn_wheeled_m54_cab_base;
|
||||
class vn_wheeled_m54_fuel_base: vn_wheeled_m54_cab_base {
|
||||
transportFuel = 0;
|
||||
EGVAR(refuel,hooks)[] = {{-1.15, -2.3, 0.28}};
|
||||
EGVAR(refuel,fuelCargo) = 4542;
|
||||
};
|
||||
@ -25,7 +24,6 @@ class vn_wheeled_z157_base: vn_wheeled_truck_base {
|
||||
EGVAR(refuel,fuelCapacity) = 150;
|
||||
};
|
||||
class vn_wheeled_z157_fuel_base: vn_wheeled_z157_base {
|
||||
transportFuel = 0;
|
||||
EGVAR(refuel,hooks)[] = {{-1.36, -3.575, -0.4}};
|
||||
EGVAR(refuel,fuelCargo) = 4000;
|
||||
};
|
||||
|
@ -1,5 +1,4 @@
|
||||
#include "script_component.hpp"
|
||||
// ToDo: move refuel to subconfig
|
||||
#include "\z\ace\addons\refuel\defines.hpp"
|
||||
#include "\z\ace\addons\hearing\script_macros_hearingProtection.hpp"
|
||||
|
||||
@ -47,6 +46,8 @@ class CfgPatches {
|
||||
};
|
||||
};
|
||||
|
||||
class CBA_Extended_EventHandlers;
|
||||
|
||||
#include "ACE_CSW_Groups.hpp"
|
||||
#include "ACE_Medical_Injuries.hpp"
|
||||
#include "ACE_Triggers.hpp"
|
||||
|
@ -1,13 +1,11 @@
|
||||
class CfgVehicles {
|
||||
class SPE_Halftrack_base;
|
||||
class SPE_US_M3_Halftrack_Fuel: SPE_Halftrack_base {
|
||||
transportFuel = 0;
|
||||
EGVAR(refuel,hooks)[] = {{-0.23,-2.58,-0.59}};
|
||||
EGVAR(refuel,fuelCargo) = 2000;
|
||||
};
|
||||
class SPE_OpelBlitz_base;
|
||||
class SPE_OpelBlitz_Fuel: SPE_OpelBlitz_base {
|
||||
transportFuel = 0;
|
||||
EGVAR(refuel,hooks)[] = {{-0.23,-2.58,-0.59}};
|
||||
EGVAR(refuel,fuelCargo) = 2000;
|
||||
};
|
||||
|
@ -37,6 +37,11 @@ class CfgWeapons {
|
||||
ACE_twistDirection = 1;
|
||||
};
|
||||
|
||||
class arifle_SLR_V_lxWS;
|
||||
class arifle_SLR_Para_lxWS: arifle_SLR_V_lxWS {
|
||||
ACE_barrelLength = 266.7;
|
||||
};
|
||||
|
||||
// Velko R4/R5
|
||||
class arifle_Velko_base_lxWS: arifle_Galat_base_lxWS {
|
||||
ACE_barrelLength = 460;
|
||||
|
75
addons/compat_ws/compat_ws_realisticnames/Attachments.hpp
Normal file
75
addons/compat_ws/compat_ws_realisticnames/Attachments.hpp
Normal file
@ -0,0 +1,75 @@
|
||||
class optic_Arco;
|
||||
class optic_arco_hex_lxWS: optic_Arco {
|
||||
displayName = SUBCSTRING(arco_hex_Name);
|
||||
};
|
||||
|
||||
class optic_Holosight;
|
||||
class optic_Holosight_snake_lxWS: optic_Holosight {
|
||||
displayName = SUBCSTRING(holosight_snake_Name);
|
||||
};
|
||||
|
||||
class optic_Holosight_smg;
|
||||
class optic_Holosight_smg_snake_lxWS: optic_Holosight_smg {
|
||||
displayName = SUBCSTRING(holosight_snake_smg_Name);
|
||||
};
|
||||
|
||||
class optic_Hamr;
|
||||
class optic_Hamr_arid_lxWS: optic_Hamr {
|
||||
displayName = SUBCSTRING(hamr_arid_Name);
|
||||
};
|
||||
class optic_Hamr_lush_lxWS: optic_Hamr {
|
||||
displayName = SUBCSTRING(hamr_lush_Name);
|
||||
};
|
||||
class optic_Hamr_sand_lxWS: optic_Hamr {
|
||||
displayName = SUBCSTRING(hamr_sand_Name);
|
||||
};
|
||||
class optic_Hamr_snake_lxWS: optic_Hamr {
|
||||
displayName = SUBCSTRING(hamr_snake_Name);
|
||||
};
|
||||
|
||||
class ItemCore;
|
||||
class optic_r1_high_lxWS: ItemCore {
|
||||
displayName = SUBCSTRING(r1_high_black_Name);
|
||||
};
|
||||
class optic_r1_high_khaki_lxWS: optic_r1_high_lxWS {
|
||||
displayName = SUBCSTRING(r1_high_khaki_Name);
|
||||
};
|
||||
class optic_r1_high_sand_lxWS: optic_r1_high_lxWS {
|
||||
displayName = SUBCSTRING(r1_high_sand_Name);
|
||||
};
|
||||
class optic_r1_high_snake_lxWS: optic_r1_high_lxWS {
|
||||
displayName = SUBCSTRING(r1_high_snake_Name);
|
||||
};
|
||||
class optic_r1_high_arid_lxWS: optic_r1_high_lxWS {
|
||||
displayName = SUBCSTRING(r1_high_arid_Name);
|
||||
};
|
||||
class optic_r1_high_lush_lxWS: optic_r1_high_lxWS {
|
||||
displayName = SUBCSTRING(r1_high_lush_Name);
|
||||
};
|
||||
class optic_r1_high_black_sand_lxWS: optic_r1_high_lxWS {
|
||||
displayName = SUBCSTRING(r1_high_black_sand_Name);
|
||||
};
|
||||
|
||||
class optic_r1_low_lxWS: optic_r1_high_lxWS {
|
||||
displayName = SUBCSTRING(r1_low_black_Name);
|
||||
};
|
||||
class optic_r1_low_khaki_lxWS: optic_r1_high_lxWS {
|
||||
displayName = SUBCSTRING(r1_low_khaki_Name);
|
||||
};
|
||||
class optic_r1_low_sand_lxWS: optic_r1_high_lxWS {
|
||||
displayName = SUBCSTRING(r1_low_sand_Name);
|
||||
};
|
||||
class optic_r1_low_snake_lxWS: optic_r1_high_lxWS {
|
||||
displayName = SUBCSTRING(r1_low_snake_Name);
|
||||
};
|
||||
class optic_r1_low_arid_lxWS: optic_r1_high_lxWS {
|
||||
displayName = SUBCSTRING(r1_low_arid_Name);
|
||||
};
|
||||
class optic_r1_low_lush_lxWS: optic_r1_high_lxWS {
|
||||
displayName = SUBCSTRING(r1_low_lush_Name);
|
||||
};
|
||||
|
||||
class optic_DMS;
|
||||
class optic_DMS_snake_lxWS: optic_DMS {
|
||||
displayName = SUBCSTRING(dms_snake_Name);
|
||||
};
|
60
addons/compat_ws/compat_ws_realisticnames/CfgVehicles.hpp
Normal file
60
addons/compat_ws/compat_ws_realisticnames/CfgVehicles.hpp
Normal file
@ -0,0 +1,60 @@
|
||||
class CfgVehicles {
|
||||
class APC_Wheeled_01_base_F;
|
||||
class APC_Wheeled_01_atgm_base_lxWS: APC_Wheeled_01_base_F {
|
||||
displayName = SUBCSTRING(apc_wheeled_01_atgm_Name);
|
||||
};
|
||||
class APC_Wheeled_01_command_base_lxWS: APC_Wheeled_01_base_F {
|
||||
displayName = SUBCSTRING(apc_wheeled_01_command_Name);
|
||||
};
|
||||
class APC_Wheeled_01_mortar_base_lxWS: APC_Wheeled_01_base_F {
|
||||
displayName = SUBCSTRING(apc_wheeled_01_mortar_Name);
|
||||
};
|
||||
|
||||
class Truck_02_base_F;
|
||||
class Truck_02_aa_base_lxWS: Truck_02_base_F {
|
||||
displayName = SUBCSTRING(truck_02_aa_Name);
|
||||
};
|
||||
class Truck_02_cargo_base_lxWS: Truck_02_base_F {
|
||||
displayName = SUBCSTRING(truck_02_cargo_Name);
|
||||
};
|
||||
class Truck_02_box_base_lxWS: Truck_02_base_F {
|
||||
displayName = SUBCSTRING(truck_02_repair_Name);
|
||||
};
|
||||
class C_Truck_02_racing_lxWS: Truck_02_box_base_lxWS {
|
||||
displayName = SUBCSTRING(truck_02_racing_Name);
|
||||
};
|
||||
class Truck_02_Ammo_base_lxWS: Truck_02_base_F {
|
||||
displayName = SUBCSTRING(truck_02_ammo_Name);
|
||||
};
|
||||
class Truck_02_flatbed_base_lxWS: Truck_02_cargo_base_lxWS {
|
||||
displayName = SUBCSTRING(truck_02_flatbed_Name);
|
||||
};
|
||||
|
||||
class Heli_Transport_02_base_F;
|
||||
class B_UN_Heli_Transport_02_lxWS: Heli_Transport_02_base_F {
|
||||
displayName = SUBCSTRING(heli_transport_02_Name);
|
||||
};
|
||||
|
||||
class O_APC_Tracked_02_cannon_F;
|
||||
class O_APC_Tracked_02_30mm_lxWS: O_APC_Tracked_02_cannon_F {
|
||||
displayName = SUBCSTRING(apc_tracked_02_Name);
|
||||
};
|
||||
|
||||
class APC_Wheeled_02_base_v2_F;
|
||||
class APC_Wheeled_02_hmg_base_lxws: APC_Wheeled_02_base_v2_F {
|
||||
displayName = SUBCSTRING(apc_wheeled_02_hmg_Name);
|
||||
};
|
||||
class APC_Wheeled_02_unarmed_base_lxws: APC_Wheeled_02_base_v2_F {
|
||||
displayName = SUBCSTRING(apc_wheeled_02_unarmed_Name);
|
||||
};
|
||||
|
||||
class O_Heli_Light_02_dynamicLoadout_F;
|
||||
class B_ION_Heli_Light_02_dynamicLoadout_lxWS: O_Heli_Light_02_dynamicLoadout_F {
|
||||
displayName = SUBCSTRING(heli_light_02_armed_Name);
|
||||
};
|
||||
|
||||
class O_Heli_Light_02_unarmed_F;
|
||||
class B_ION_Heli_Light_02_unarmed_lxWS: O_Heli_Light_02_unarmed_F {
|
||||
displayName = SUBCSTRING(heli_light_02_unarmed_Name);
|
||||
};
|
||||
};
|
@ -1,4 +1,6 @@
|
||||
class CfgWeapons {
|
||||
#include "Attachments.hpp"
|
||||
|
||||
// AA12
|
||||
class sgun_aa40_base_lxWS;
|
||||
class sgun_aa40_lxWS: sgun_aa40_base_lxWS {
|
||||
@ -99,6 +101,12 @@ class CfgWeapons {
|
||||
class arifle_SLR_V_camo_lxWS: arifle_SLR_V_lxWS {
|
||||
displayName = SUBCSTRING(SLR_Camo_Name);
|
||||
};
|
||||
class arifle_SLR_Para_lxWS: arifle_SLR_V_lxWS {
|
||||
displayName = SUBCSTRING(SLR_Para_Name);
|
||||
};
|
||||
class arifle_SLR_Para_snake_lxWS: arifle_SLR_Para_lxWS {
|
||||
displayName = SUBCSTRING(SLR_Para_Snake_Name);
|
||||
};
|
||||
|
||||
// Vektor R4/R5
|
||||
class arifle_Velko_base_lxWS;
|
||||
@ -156,4 +164,16 @@ class CfgWeapons {
|
||||
class arifle_XMS_M_Sand_lxWS: arifle_XMS_M_lxWS {
|
||||
displayName = SUBCSTRING(XMS_SW_Sand_Name);
|
||||
};
|
||||
|
||||
// GM6 Lynx
|
||||
class srifle_GM6_F;
|
||||
class srifle_GM6_snake_lxWS: srifle_GM6_F {
|
||||
displayName = SUBCSTRING(gm6_snake_Name);
|
||||
};
|
||||
|
||||
// RPG-32
|
||||
class launch_RPG32_F;
|
||||
class launch_RPG32_tan_lxWS: launch_RPG32_F {
|
||||
displayName = SUBCSTRING(rpg32_tan_Name);
|
||||
};
|
||||
};
|
||||
|
@ -19,3 +19,4 @@ class CfgPatches {
|
||||
};
|
||||
|
||||
#include "CfgWeapons.hpp"
|
||||
#include "CfgVehicles.hpp"
|
||||
|
@ -9,6 +9,7 @@
|
||||
<Japanese>AA12</Japanese>
|
||||
<Russian>AA12</Russian>
|
||||
<French>AA12</French>
|
||||
<Spanish>AA12</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_AA40_Tan_Name">
|
||||
<English>AA12 (Sand)</English>
|
||||
@ -18,6 +19,7 @@
|
||||
<Japanese>AA12 (サンド)</Japanese>
|
||||
<Russian>AA12 (Песочный)</Russian>
|
||||
<French>AA12 (Sable)</French>
|
||||
<Spanish>AA12 (Arena)</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_AA40_Snake_Name">
|
||||
<English>AA12 (Snake)</English>
|
||||
@ -26,6 +28,7 @@
|
||||
<Italian>AA12 (Serpe)</Italian>
|
||||
<Japanese>AA12 (ヘビ柄)</Japanese>
|
||||
<Russian>AA12 (Змея)</Russian>
|
||||
<Spanish>AA12 (Serpiente)</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_Galat_Name">
|
||||
<English>Galil ARM</English>
|
||||
@ -35,6 +38,7 @@
|
||||
<Japanese>ガリル ARM</Japanese>
|
||||
<Russian>Galil ARM</Russian>
|
||||
<French>Galil ARM</French>
|
||||
<Spanish>Galil ARM</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_Galat_Old_Name">
|
||||
<English>Galil ARM (Old)</English>
|
||||
@ -44,6 +48,7 @@
|
||||
<Japanese>ガリル ARM (使い古し)</Japanese>
|
||||
<Russian>Galil ARM (Старый)</Russian>
|
||||
<French>Galil ARM (Ancien)</French>
|
||||
<Spanish>Galil ARM (Vieja)</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_GLX_Name">
|
||||
<English>GLX 160</English>
|
||||
@ -53,6 +58,7 @@
|
||||
<Japanese>GLX 160</Japanese>
|
||||
<Russian>GLX 160</Russian>
|
||||
<French>GLX 160</French>
|
||||
<Spanish>GLX 160</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_GLX_Snake_Name">
|
||||
<English>GLX 160 (Snake)</English>
|
||||
@ -61,6 +67,7 @@
|
||||
<Italian>GLX-160 (Serpe)</Italian>
|
||||
<Japanese>GLX 160 (ヘビ柄)</Japanese>
|
||||
<Russian>GLX 160 (Змея)</Russian>
|
||||
<Spanish>GLX 160 (Serpiente)</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_GLX_Hex_Name">
|
||||
<English>GLX 160 (Hex)</English>
|
||||
@ -70,6 +77,7 @@
|
||||
<Japanese>GLX 160 (六角形迷彩)</Japanese>
|
||||
<Russian>GLX 160 (Гекс)</Russian>
|
||||
<French>GLX 160 (Hex)</French>
|
||||
<Spanish>GLX 160 (Hex)</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_GLX_GreenHex_Name">
|
||||
<English>GLX 160 (Green Hex)</English>
|
||||
@ -79,6 +87,7 @@
|
||||
<Japanese>GLX 160 (緑六角形迷彩)</Japanese>
|
||||
<Russian>GLX 160 (Зеленый Гекс)</Russian>
|
||||
<French>GLX 160 (Vert Hex)</French>
|
||||
<Spanish>GLX 160 (Hex Verde)</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_GLX_Camo_Name">
|
||||
<English>GLX 160 (Camo)</English>
|
||||
@ -88,6 +97,7 @@
|
||||
<Japanese>GLX 160 (迷彩)</Japanese>
|
||||
<Russian>GLX 160 (Камуфляж)</Russian>
|
||||
<French>GLX 160 (Camo)</French>
|
||||
<Spanish>GLX 160 (Camo)</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_GLX_Tan_Name">
|
||||
<English>GLX 160 (Sand)</English>
|
||||
@ -97,6 +107,7 @@
|
||||
<Japanese>GLX 160 (サンド)</Japanese>
|
||||
<Russian>GLX 160 (Песочный)</Russian>
|
||||
<French>GLX 160 (Sable)</French>
|
||||
<Spanish>GLX 160 (Arena)</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_EBR_Black_Name">
|
||||
<English>Mk14 Mod 1 EBR (Black)</English>
|
||||
@ -106,6 +117,7 @@
|
||||
<Japanese>Mk14 Mod 1 EBR (ブラック)</Japanese>
|
||||
<Russian>Mk14 Mod 1 EBR (Черный)</Russian>
|
||||
<French>Mk14 Mod 1 EBR (Noir)</French>
|
||||
<Spanish>Mk14 Mod 1 EBR (Negra)</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_EBR_Snake_Name">
|
||||
<English>Mk14 Mod 1 EBR (Snake)</English>
|
||||
@ -114,6 +126,7 @@
|
||||
<Italian>Mk14 Mod 1 EBR (Serpe)</Italian>
|
||||
<Japanese>Mk14 Mod 1 EBR (ヘビ柄)</Japanese>
|
||||
<Russian>Mk14 Mod 1 EBR (Змея)</Russian>
|
||||
<Spanish>Mk14 Mod 1 EBR (Serpiente)</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_S77_Name">
|
||||
<English>Vektor SS-77</English>
|
||||
@ -122,6 +135,7 @@
|
||||
<Japanese>ヴェクター SS-77</Japanese>
|
||||
<Russian>Vektor SS-77</Russian>
|
||||
<French>Vektor SS-77</French>
|
||||
<Spanish>Vektor SS-77</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_S77_AAF_Name">
|
||||
<English>Vektor SS-77 (Camo)</English>
|
||||
@ -131,6 +145,7 @@
|
||||
<Japanese>ヴェクター SS-77 (迷彩)</Japanese>
|
||||
<Russian>Vektor SS-77 (Камуфляж)</Russian>
|
||||
<French>Vektor SS-77 (Camo)</French>
|
||||
<Spanish>Vektor SS-77 (Camo)</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_S77_Hex_Name">
|
||||
<English>Vektor SS-77 (Hex)</English>
|
||||
@ -140,6 +155,7 @@
|
||||
<Japanese>ヴェクター SS-77 (六角形迷彩)</Japanese>
|
||||
<Russian>Vektor SS-77 (гекс)</Russian>
|
||||
<French>Vektor SS-77 (Hex)</French>
|
||||
<Spanish>Vektor SS-77 (Hex)</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_S77_GreenHex_Name">
|
||||
<English>Vektor SS-77 (Green Hex)</English>
|
||||
@ -149,6 +165,7 @@
|
||||
<Japanese>ヴェクター SS-77 (緑六角形迷彩)</Japanese>
|
||||
<Russian>Vektor SS-77 (зеленый гекс)</Russian>
|
||||
<French>Vektor SS-77 (VertHex)</French>
|
||||
<Spanish>Vektor SS-77 (Hex Verde)</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_S77_Desert_Name">
|
||||
<English>Vektor SS-77 (Desert)</English>
|
||||
@ -158,6 +175,7 @@
|
||||
<Japanese>ヴェクター SS-77 (砂漠迷彩)</Japanese>
|
||||
<Russian>Vektor SS-77 (песочныйt)</Russian>
|
||||
<French>Vektor SS-77 (Désert)</French>
|
||||
<Spanish>Vektor SS-77 (Desierto)</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_S77_Compact_Name">
|
||||
<English>Vektor SS-77 Compact</English>
|
||||
@ -167,6 +185,7 @@
|
||||
<Japanese>ヴェクター SS-77 コンパクト</Japanese>
|
||||
<Russian>Vektor SS-77 Compact</Russian>
|
||||
<French>Vektor SS-77 Compacte</French>
|
||||
<Spanish>Vektor SS-77 Compacta</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_S77_Compact_Snake_Name">
|
||||
<English>Vektor SS-77 Compact (Snake)</English>
|
||||
@ -175,6 +194,7 @@
|
||||
<Italian>Vektor SS-77 Compatto (Serpe)</Italian>
|
||||
<Japanese>ヴェクター SS-77 コンパクト (ヘビ柄)</Japanese>
|
||||
<Russian>Vektor SS-77 Compact (змея)</Russian>
|
||||
<Spanish>Vektor SS-77 Compacta (Serpiente)</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_SLR_Wood_Name">
|
||||
<English>FN FAL 50.00 (Wood)</English>
|
||||
@ -184,6 +204,7 @@
|
||||
<Japanese>FN FAL 50.00 (森林迷彩)</Japanese>
|
||||
<Russian>FN FAL 50.00 (лесной)</Russian>
|
||||
<French>FN FAL 50.00 (Bois)</French>
|
||||
<Spanish>FN FAL 50.00 (Madera)</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_SLR_GL_Wood_Name">
|
||||
<English>FN FAL 50.00 GL (Wood)</English>
|
||||
@ -193,6 +214,7 @@
|
||||
<Japanese>FN FAL 50.00 GL (森林迷彩)</Japanese>
|
||||
<Russian>FN FAL 50.00 GL (лесной)</Russian>
|
||||
<French>FN FAL 50.00 GL (Bois)</French>
|
||||
<Spanish>FN FAL 50.00 GL (Madera)</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_SLR_Name">
|
||||
<English>FN FAL 50.00</English>
|
||||
@ -202,6 +224,7 @@
|
||||
<Japanese>FN FAL 50.00</Japanese>
|
||||
<Russian>FN FAL 50.00</Russian>
|
||||
<French>FN FAL 50.00</French>
|
||||
<Spanish>FN FAL 50.00</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_SLR_GL_Name">
|
||||
<English>FN FAL 50.00 GL</English>
|
||||
@ -211,6 +234,7 @@
|
||||
<Japanese>FN FAL 50.00 GL</Japanese>
|
||||
<Russian>FN FAL 50.00 GL</Russian>
|
||||
<French>FN FAL 50.00 GL</French>
|
||||
<Spanish>FN FAL 50.00 GL</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_SLR_Desert_Name">
|
||||
<English>FN FAL 50.00 (Desert)</English>
|
||||
@ -220,6 +244,7 @@
|
||||
<Japanese>FN FAL 50.00 (砂漠迷彩)</Japanese>
|
||||
<Russian>FN FAL 50.00 (песочный)</Russian>
|
||||
<French>FN FAL 50.00 (Désert)</French>
|
||||
<Spanish>FN FAL 50.00 (Desierto)</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_SLR_Camo_Name">
|
||||
<English>FN FAL 50.00 (Jungle)</English>
|
||||
@ -229,6 +254,13 @@
|
||||
<Japanese>FN FAL 50.00 (熱帯迷彩)</Japanese>
|
||||
<Russian>FN FAL 50.00 (джунгли)</Russian>
|
||||
<French>FN FAL 50.00 (Jungle)</French>
|
||||
<Spanish>FN FAL 50.00 (Jungla)</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_SLR_Para_Name">
|
||||
<English>FN FAL 50.00 Para</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_SLR_Para_Snake_Name">
|
||||
<English>FN FAL 50.00 Para (Snake)</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_Velko_R4_Name">
|
||||
<English>Vektor R4</English>
|
||||
@ -238,6 +270,7 @@
|
||||
<Japanese>ヴェクター R5</Japanese>
|
||||
<Russian>Vektor R4</Russian>
|
||||
<French>Vektor R4</French>
|
||||
<Spanish>Vektor R4</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_Velko_R5_Name">
|
||||
<English>Vektor R5 Carbine</English>
|
||||
@ -247,6 +280,7 @@
|
||||
<Japanese>ヴェクター R5 カービン</Japanese>
|
||||
<Russian>Vektor R5 Carbine</Russian>
|
||||
<French>Vektor R5 Carbine</French>
|
||||
<Spanish>Vektor R5 Carabina</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_Velko_R5_GL_Name">
|
||||
<English>Vektor R5 Carbine GL</English>
|
||||
@ -256,6 +290,7 @@
|
||||
<Japanese>ヴェクター R5 カービン GL</Japanese>
|
||||
<Russian>Vektor R5 Carbine GL</Russian>
|
||||
<French>Vektor R5 Carbine GL</French>
|
||||
<Spanish>Vektor R5 Carabina GL</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_Velko_R5_Snake_Name">
|
||||
<English>Vektor R5 Carbine (Snake)</English>
|
||||
@ -264,6 +299,7 @@
|
||||
<Italian>Vektor R5 Carabina (Serpe)</Italian>
|
||||
<Japanese>ヴェクター R5 カービン (ヘビ柄)</Japanese>
|
||||
<Russian>Vektor R5 Carbine (Змея)</Russian>
|
||||
<Spanish>Vektor R5 Carabina (Serpiente)</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_Velko_R5_GL_Snake_Name">
|
||||
<English>Vektor R5 Carbine GL (Snake)</English>
|
||||
@ -272,6 +308,7 @@
|
||||
<Italian>Vektor R5 Carabina GL (Serpe)</Italian>
|
||||
<Japanese>ヴェクター R5 カービン GL (ヘビ柄)</Japanese>
|
||||
<Russian>Vektor R5 Carbine GL (Змея)</Russian>
|
||||
<Spanish>Vektor R5 Carabina GL (Serpiente)</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_XMS_Name">
|
||||
<English>XMS</English>
|
||||
@ -417,5 +454,119 @@
|
||||
<Korean>XMS SW (모래)</Korean>
|
||||
<Japanese>XMS SW (サンド)</Japanese>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_gm6_snake_Name">
|
||||
<English>GM6 Lynx (Snake)</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_rpg32_tan_Name">
|
||||
<English>RPG-32 (Sand)</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_arco_hex_Name">
|
||||
<English>ELCAN SpecterOS (Hex)</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_holosight_snake_Name">
|
||||
<English>EOTech XPS3 (Snake)</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_holosight_snake_smg_Name">
|
||||
<English>EOTech XPS3 SMG (Snake)</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_hamr_arid_Name">
|
||||
<English>Leupold Mark 4 HAMR (Arid)</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_hamr_lush_Name">
|
||||
<English>Leupold Mark 4 HAMR (Lush)</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_hamr_sand_Name">
|
||||
<English>Leupold Mark 4 HAMR (Sand)</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_hamr_snake_Name">
|
||||
<English>Leupold Mark 4 HAMR (Snake)</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_r1_high_black_Name">
|
||||
<English>Aimpoint Micro R-1 (High, Black)</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_r1_high_khaki_Name">
|
||||
<English>Aimpoint Micro R-1 (High, Khaki)</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_r1_high_sand_Name">
|
||||
<English>Aimpoint Micro R-1 (High, Sand)</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_r1_high_snake_Name">
|
||||
<English>Aimpoint Micro R-1 (High, Snake)</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_r1_high_arid_Name">
|
||||
<English>Aimpoint Micro R-1 (High, Arid)</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_r1_high_lush_Name">
|
||||
<English>Aimpoint Micro R-1 (High, Lush)</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_r1_high_black_sand_Name">
|
||||
<English>Aimpoint Micro R-1 (High, Black/Sand)</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_r1_low_black_Name">
|
||||
<English>Aimpoint Micro R-1 (Low, Black)</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_r1_low_khaki_Name">
|
||||
<English>Aimpoint Micro R-1 (Low, Khaki)</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_r1_low_sand_Name">
|
||||
<English>Aimpoint Micro R-1 (Low, Sand)</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_r1_low_snake_Name">
|
||||
<English>Aimpoint Micro R-1 (Low, Snake)</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_r1_low_arid_Name">
|
||||
<English>Aimpoint Micro R-1 (Low, Arid)</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_r1_low_lush_Name">
|
||||
<English>Aimpoint Micro R-1 (Low, Lush)</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_dms_snake_Name">
|
||||
<English>Burris XTR II (Snake)</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_apc_wheeled_01_atgm_Name">
|
||||
<English>Badger IFV (ATGM)</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_apc_wheeled_01_command_Name">
|
||||
<English>Badger IFV (Command)</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_apc_wheeled_01_mortar_Name">
|
||||
<English>Badger IFV (Mortar)</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_truck_02_aa_Name">
|
||||
<English>KamAZ (Zu-23-2)</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_truck_02_cargo_Name">
|
||||
<English>KamAZ Cargo</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_truck_02_repair_Name">
|
||||
<English>KamAZ Repair</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_truck_02_racing_Name">
|
||||
<English>KamAZ Racing</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_truck_02_ammo_Name">
|
||||
<English>KamAZ Ammo</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_truck_02_flatbed_Name">
|
||||
<English>KamAZ Flatbed</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_heli_transport_02_Name">
|
||||
<English>AW101 Merlin</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_apc_tracked_02_Name">
|
||||
<English>BM-2T Stalker (Bumerang-BM)</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_apc_wheeled_02_hmg_Name">
|
||||
<English>Otokar ARMA (HMG)</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_apc_wheeled_02_unarmed_Name">
|
||||
<English>Otokar ARMA (Unarmed)</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_heli_light_02_armed_Name">
|
||||
<English>Ka-60 Kasatka (UP)</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_WS_RealisticNames_heli_light_02_unarmed_Name">
|
||||
<English>Ka-60 Kasatka (UP, Unarmed)</English>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
|
@ -1,11 +1,11 @@
|
||||
PREP(cookOff);
|
||||
PREP(cookOffBox);
|
||||
PREP(cookOffBoxLocal);
|
||||
PREP(cookOffEffect);
|
||||
PREP(detonateAmmunition);
|
||||
PREP(cookOffBoxServer);
|
||||
PREP(cookOffLocal);
|
||||
PREP(cookOffServer);
|
||||
PREP(detonateAmmunitionServer);
|
||||
PREP(engineFire);
|
||||
PREP(detonateAmmunitionServerLoop);
|
||||
PREP(engineFireLocal);
|
||||
PREP(engineFireServer);
|
||||
PREP(getVehicleAmmo);
|
||||
PREP(handleDamageBox);
|
||||
PREP(isMagazineFlare);
|
||||
|
@ -1,15 +1,15 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
[QGVAR(cookOffBoxLocal), LINKFUNC(cookOffBoxLocal)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(cookOffEffect), LINKFUNC(cookOffEffect)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(cookOffLocal), LINKFUNC(cookOffLocal)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(engineFireLocal), LINKFUNC(engineFireLocal)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(smoke), LINKFUNC(smoke)] call CBA_fnc_addEventHandler;
|
||||
|
||||
if (isServer) then {
|
||||
[QGVAR(cookOff), LINKFUNC(cookOff)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(cookOffBox), LINKFUNC(cookOffBox)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(engineFire), LINKFUNC(engineFire)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(detonateAmmunition), LINKFUNC(detonateAmmunition)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(cookOffBoxServer), LINKFUNC(cookOffBoxServer)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(cookOffServer), LINKFUNC(cookOffServer)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(detonateAmmunitionServer), LINKFUNC(detonateAmmunitionServer)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(engineFireServer), LINKFUNC(engineFire)] call CBA_fnc_addEventHandler;
|
||||
};
|
||||
|
||||
// Handle cleaning up effects when objects are deleted mid cook-off
|
||||
@ -50,7 +50,7 @@ if (isServer) then {
|
||||
|
||||
if (_useEffects && {_vehicle getVariable [QGVAR(enableAmmoCookoff), true]}) then {
|
||||
// We don't need to pass source and instigator, as vehicle is already dead
|
||||
[QGVAR(detonateAmmunition), [
|
||||
[QGVAR(detonateAmmunitionServer), [
|
||||
_vehicle,
|
||||
false,
|
||||
objNull,
|
||||
@ -95,6 +95,6 @@ if (hasInterface) then {
|
||||
if (!fileExists _sound) exitWith {};
|
||||
|
||||
// Obeys speed of sound and takes doppler effects into account
|
||||
playSound3D [_sound, objNull, insideBuilding _object >= 0.5, getPosASL _object, _volume, _pitch + (random 0.2) - 0.1, _maxDistance, 0, true];
|
||||
playSound3D [_sound, objNull, false, getPosASL _object, _volume, _pitch + (random 0.2) - 0.1, _maxDistance, 0, true];
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
};
|
||||
|
@ -8,18 +8,17 @@
|
||||
* 1: Source <OBJECT>
|
||||
* 2: Instigator <OBJECT>
|
||||
* 3: Start time of the cook-off <NUMBER>
|
||||
* 4: Smoke delay <NUMBER>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [cursorObject, player, player, CBA_missionTime, 10, 60] call ace_cookoff_fnc_cookOffBoxLocal
|
||||
* [cursorObject, player, player, CBA_missionTime + 10] call ace_cookoff_fnc_cookOffBoxLocal
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params ["", "", "", "_startTime", "_smokeDelay"];
|
||||
params ["", "", "", "_startTime"];
|
||||
|
||||
[{
|
||||
params ["_box", "_source", "_instigator"];
|
||||
@ -46,8 +45,8 @@ params ["", "", "", "_startTime", "_smokeDelay"];
|
||||
_effects pushBack _sound;
|
||||
|
||||
// Detonate the ammunition
|
||||
[QGVAR(detonateAmmunition), [_box, true, _source, _instigator, random [DETONATION_DELAY / 2, DETONATION_DELAY, DETONATION_DELAY / 2 * 3]]] call CBA_fnc_localEvent;
|
||||
[QGVAR(detonateAmmunitionServer), [_box, true, _source, _instigator, random [DETONATION_DELAY / 2, DETONATION_DELAY, DETONATION_DELAY / 2 * 3]]] call CBA_fnc_localEvent;
|
||||
};
|
||||
|
||||
_box setVariable [QGVAR(effects), _effects];
|
||||
}, _this, (_startTime - CBA_missionTime + _smokeDelay) max 0] call CBA_fnc_waitAndExecute; // this delay allows for synchronisation for JIP players
|
||||
}, _this, (_startTime - CBA_missionTime) max 0] call CBA_fnc_waitAndExecute; // This delay allows for synchronisation for JIP players
|
||||
|
@ -12,7 +12,7 @@
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* cursorObject call ace_cookoff_fnc_cookOffBox
|
||||
* cursorObject call ace_cookoff_fnc_cookOffBoxServer
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
@ -32,15 +32,19 @@ if (_box getVariable [QGVAR(isCookingOff), false]) exitWith {};
|
||||
|
||||
_box setVariable [QGVAR(isCookingOff), true, true];
|
||||
|
||||
// Spawn cook-off effects on all connected machines
|
||||
private _delay = random [SMOKE_DELAY / 2, SMOKE_DELAY, SMOKE_DELAY / 2 * 3];
|
||||
|
||||
// Spawn cook-off effects on all connected machines and JIP
|
||||
private _jipID = [QGVAR(cookOffBoxLocal), [
|
||||
_box,
|
||||
_source,
|
||||
_instigator,
|
||||
CBA_missionTime,
|
||||
random [SMOKE_DELAY / 2, SMOKE_DELAY, SMOKE_DELAY / 2 * 3] // generate random timer that is global synced
|
||||
CBA_missionTime + _delay // Generate a globally synced timestamp
|
||||
]] call CBA_fnc_globalEventJIP;
|
||||
|
||||
[_jipID, _box] call CBA_fnc_removeGlobalEventJIP;
|
||||
|
||||
_box setVariable [QGVAR(jipIDs), [_jipID]];
|
||||
_box setVariable [QGVAR(cookoffBoxJipID), _jipID];
|
||||
|
||||
// API
|
||||
[QGVAR(cookOffBox), [_box, _source, _instigator, _delay]] call CBA_fnc_globalEvent;
|
@ -1,6 +1,6 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: tcvm
|
||||
* Author: tcvm, johnb43
|
||||
* Spawn cook-off fire effects.
|
||||
*
|
||||
* Arguments:
|
||||
@ -16,16 +16,19 @@
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [vehicle player, true, false, "commander_turret", 6, CBA_missionTime, 15] call ace_cookoff_fnc_cookOffEffect
|
||||
* [cursorObject, true, false, "commander_turret", 6, CBA_missionTime, 15] call ace_cookoff_fnc_cookOffLocal
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
#define FLAME_SIZE 1.5
|
||||
#define FIRE_INTENSITY 6
|
||||
#define FIRE_INTENSITY 20
|
||||
|
||||
params ["_vehicle", "_jet", "_ring", "_fireSelection", "_intensity", "_startTime", "_duration"];
|
||||
|
||||
// Check if still valid for JIP players
|
||||
if (isNull _vehicle || {CBA_missionTime - _startTime >= _duration}) exitWith {};
|
||||
|
||||
// Spawn light
|
||||
private _light = objNull;
|
||||
|
||||
@ -88,7 +91,7 @@ if (isServer) then {
|
||||
if (_jet && !isGamePaused && {local _vehicle} && {_vehicle getVariable [QGVAR(nextForceTime), 0] <= CBA_missionTime}) then {
|
||||
private _force = [0, 0, _factor * -(0.5 min random 1.5) * (0.3 min random 1)] vectorMultiply getMass _vehicle;
|
||||
_vehicle addForce [_force, vectorUpVisual _vehicle];
|
||||
_vehicle setVariable [QGVAR(nextForceTime), CBA_missionTime + 0.01]; // this prevents bad behaviour when setAccTime is small
|
||||
_vehicle setVariable [QGVAR(nextForceTime), CBA_missionTime + 0.01]; // This prevents bad behaviour when setAccTime is small
|
||||
};
|
||||
|
||||
// Don't spawn visual effects on machines without interfaces
|
||||
@ -220,7 +223,7 @@ if (isServer) then {
|
||||
// Formula is designed to have the temperature ramp up quickly and then level out
|
||||
_vehicle setVehicleTIPars [
|
||||
(_tiEngine + _intensity * 0.01) / 1.005,
|
||||
(_tiWheels + _intensity * 0.004) / 1.002, // wheels//tracks are further away from burning parts
|
||||
(_tiWheels + _intensity * 0.004) / 1.002, // Wheels/tracks are further away from burning parts
|
||||
(_tiWeapon + _intensity * 0.01) / 1.005
|
||||
];
|
||||
}, 0, [_vehicle, _jet, _ring, _startTime, _duration, _light, _fireSelection, _sound, _intensity, _fireKey]] call CBA_fnc_addPerFrameHandler;
|
@ -1,6 +1,6 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: tcvm
|
||||
* Author: tcvm, johnb43
|
||||
* Start a cook-off in the given vehicle.
|
||||
* Spews flames in multiple directions at the same time (ring) or from the turret towards the sky (jet).
|
||||
*
|
||||
@ -21,7 +21,7 @@
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [vehicle player, 3] call ace_cookoff_fnc_cookOff
|
||||
* [cursorObject, 3] call ace_cookoff_fnc_cookOffServer
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
@ -37,7 +37,7 @@ params [
|
||||
["_delayBetweenSmokeAndFire", true],
|
||||
["_ammoDetonationChance", 0],
|
||||
["_detonateAfterCookoff", false],
|
||||
["_fireSource", ""],
|
||||
["_fireSelection", ""],
|
||||
["_canRing", true],
|
||||
["_canJet", true],
|
||||
["_maxIntensity", MAX_COOKOFF_INTENSITY]
|
||||
@ -55,8 +55,8 @@ if (underwater _vehicle || {private _posASL = getPosWorld _vehicle; surfaceIsWat
|
||||
// Check if cook-off is disabled on vehicle specifically
|
||||
if !(_vehicle getVariable [QGVAR(enable), true]) exitWith {}; // QGVAR(enable) is API
|
||||
|
||||
TRACE_2("cooking off",_vehicle,_intensity);
|
||||
TRACE_9("",_source,_instigator,_delayBetweenSmokeAndFire,_ammoDetonationChance,_detonateAfterCookoff,_fireSource,_canRing,_canJet,_maxIntensity);
|
||||
TRACE_3("cooking off",_vehicle,_intensity,_maxIntensity);
|
||||
TRACE_8("",_source,_instigator,_delayBetweenSmokeAndFire,_ammoDetonationChance,_detonateAfterCookoff,_fireSelection,_canRing,_canJet);
|
||||
|
||||
if (_vehicle getVariable [QGVAR(isCookingOff), false]) exitWith {};
|
||||
|
||||
@ -65,27 +65,29 @@ _vehicle setVariable [QGVAR(isCookingOff), true, true];
|
||||
// Limit maximum value of intensity to prevent very long cook-off times
|
||||
_intensity = _intensity min _maxIntensity;
|
||||
|
||||
private _positions = getArray (configOf _vehicle >> QGVAR(cookoffSelections)) select {(_vehicle selectionPosition _x) isNotEqualTo [0, 0, 0]};
|
||||
private _selections = getArray (configOf _vehicle >> QGVAR(cookoffSelections)) select {(_vehicle selectionPosition _x) isNotEqualTo [0, 0, 0]};
|
||||
|
||||
if (_positions isEqualTo []) then {
|
||||
if (_selections isEqualTo []) then {
|
||||
WARNING_1("no valid selection for cookoff found. %1",typeOf _vehicle);
|
||||
|
||||
{
|
||||
if ((_vehicle selectionPosition _x) isNotEqualTo [0, 0, 0]) then {
|
||||
_positions pushBack _x;
|
||||
_selections pushBack _x;
|
||||
};
|
||||
} forEach DEFAULT_COMMANDER_HATCHES;
|
||||
|
||||
if (_positions isEqualTo []) then {
|
||||
_positions pushBack "#noselection";
|
||||
if (_selections isEqualTo []) then {
|
||||
_selections pushBack "#noselection";
|
||||
};
|
||||
};
|
||||
|
||||
// Not guaranteed to be active/used, but reserve it nonetheless
|
||||
private _fireJipID = format [QGVAR(cookOffEffect_%1), hashValue _vehicle];
|
||||
private _fireJipID = format [QGVAR(cookOffLocal_%1), hashValue _vehicle];
|
||||
[_fireJipID, _vehicle] call CBA_fnc_removeGlobalEventJIP;
|
||||
|
||||
// Spawn smoke
|
||||
private _smokeJipID = [QGVAR(smoke), [_vehicle, _positions]] call CBA_fnc_globalEventJIP;
|
||||
private _smokeJipID = [QGVAR(smoke), [_vehicle, _selections]] call CBA_fnc_globalEventJIP;
|
||||
[_smokeJipID, _vehicle] call CBA_fnc_removeGlobalEventJIP;
|
||||
|
||||
// Save intensity for looping purposes
|
||||
_vehicle setVariable [QGVAR(intensity), _intensity];
|
||||
@ -98,41 +100,58 @@ if (_delayBetweenSmokeAndFire) then {
|
||||
|
||||
[{
|
||||
[{
|
||||
(_this select 0) params ["_vehicle", "_positions", "_ammoDetonationChance", "_detonateAfterCookoff", "_source", "_instigator", "_fireSource", "_canRing", "_canJet", "_smokeJipID", "_fireJipID"];
|
||||
|
||||
private _intensity = _vehicle getVariable [QGVAR(intensity), 0];
|
||||
(_this select 0) params ["_vehicle", "_selections", "_ammoDetonationChance", "_detonateAfterCookoff", "_source", "_instigator", "_fireSelection", "_canRing", "_canJet", "_smokeJipID", "_fireJipID"];
|
||||
|
||||
if (
|
||||
isNull _vehicle ||
|
||||
!GVAR(enableFire) ||
|
||||
{!(_vehicle getVariable [QGVAR(enable), true])} || // QGVAR(enable) is API
|
||||
{_intensity <= 1} ||
|
||||
{GVAR(cookoffDuration) == 0} ||
|
||||
{underwater _vehicle} ||
|
||||
{private _posASL = getPosWorld _vehicle; surfaceIsWater _posASL && {(_posASL select 2) < 0}}
|
||||
{private _posASL = getPosWorld _vehicle; surfaceIsWater _posASL && {(_posASL select 2) < 0}} // Underwater is not very reliable, so use model center instead
|
||||
) exitWith {
|
||||
// Effects are deleted when vehicle is deleted
|
||||
(_this select 1) call CBA_fnc_removePerFrameHandler;
|
||||
};
|
||||
|
||||
private _intensity = _vehicle getVariable [QGVAR(intensity), 0];
|
||||
|
||||
if (_intensity <= 1) exitWith {
|
||||
(_this select 1) call CBA_fnc_removePerFrameHandler;
|
||||
|
||||
// Remove effects from JIP
|
||||
_smokeJipID call CBA_fnc_removeGlobalEventJIP;
|
||||
_fireJipID call CBA_fnc_removeGlobalEventJIP;
|
||||
// Wait until the previous flame has finished
|
||||
private _nextFlameTime = (_vehicle getVariable [QGVAR(endCurrentFlame), CBA_missionTime]) - CBA_missionTime + (MIN_TIME_BETWEEN_FLAMES max random MAX_TIME_BETWEEN_FLAMES);
|
||||
|
||||
// Effects are deleted when vehicle is deleted
|
||||
if (isNull _vehicle) exitWith {};
|
||||
|
||||
// Remove effects
|
||||
[QGVAR(cleanupEffects), _vehicle] call CBA_fnc_globalEvent;
|
||||
|
||||
// Reset variable, so it can cook-off again
|
||||
_vehicle setVariable [QGVAR(isCookingOff), nil, true];
|
||||
|
||||
if (GVAR(destroyVehicleAfterCookoff) || _detonateAfterCookoff) then {
|
||||
_vehicle setDamage [1, true, _source, _instigator]; // because it's running on the server, killer and instigator can be set
|
||||
if (_fireSelection isEqualTo "") then {
|
||||
_fireSelection = selectRandom _selections;
|
||||
};
|
||||
|
||||
[{
|
||||
params ["_vehicle", "_source", "_instigator", "_detonateAfterCookoff", "_fireSelection", "_smokeJipID", "_fireJipID"];
|
||||
|
||||
// Effects are deleted when vehicle is deleted
|
||||
if (isNull _vehicle) exitWith {};
|
||||
|
||||
// Remove effects from JIP
|
||||
_smokeJipID call CBA_fnc_removeGlobalEventJIP;
|
||||
_fireJipID call CBA_fnc_removeGlobalEventJIP;
|
||||
|
||||
// Remove effects
|
||||
[QGVAR(cleanupEffects), _vehicle] call CBA_fnc_globalEvent;
|
||||
|
||||
// Reset variable, so it can cook-off again
|
||||
_vehicle setVariable [QGVAR(isCookingOff), nil, true];
|
||||
|
||||
if (GVAR(destroyVehicleAfterCookoff) || _detonateAfterCookoff) then {
|
||||
createVehicle ["ACE_ammoExplosionLarge", _vehicle modelToWorld (_vehicle selectionPosition _fireSelection), [], 0 , "CAN_COLLIDE"];
|
||||
|
||||
_vehicle setDamage [1, true, _source, _instigator]; // Because it's running on the server, source and instigator can be set
|
||||
};
|
||||
}, [_vehicle, _source, _instigator, _detonateAfterCookoff, _fireSelection, _smokeJipID, _fireJipID], _nextFlameTime] call CBA_fnc_waitAndExecute;
|
||||
};
|
||||
|
||||
// Wait until we are ready for the next flame
|
||||
if (_vehicle getVariable [QGVAR(nextFlame), 0] <= CBA_missionTime) then {
|
||||
if ((_vehicle getVariable [QGVAR(nextFlame), 0]) <= CBA_missionTime) then {
|
||||
private _ring = false;
|
||||
|
||||
if (_canRing) then {
|
||||
@ -145,34 +164,39 @@ if (_delayBetweenSmokeAndFire) then {
|
||||
|
||||
private _duration = linearConversion [0, 10, _intensity, 3, 20] + random COOKOFF_TIME;
|
||||
|
||||
if (_fireSource isEqualTo "") then {
|
||||
_fireSource = selectRandom _positions;
|
||||
if (_fireSelection isEqualTo "") then {
|
||||
_fireSelection = selectRandom _selections;
|
||||
};
|
||||
|
||||
// Sync for JIP players
|
||||
[QGVAR(cookOffEffect), [_vehicle, _canJet, _ring, _fireSource, _intensity, CBA_missionTime, _duration], _fireJipID] call CBA_fnc_globalEventJIP;
|
||||
|
||||
_intensity = _intensity - (0.5 max random 1) / GVAR(cookoffDuration);
|
||||
|
||||
_vehicle setVariable [QGVAR(intensity), _intensity];
|
||||
_vehicle setVariable [QGVAR(nextFlame), CBA_missionTime + _duration + (MIN_TIME_BETWEEN_FLAMES max random MAX_TIME_BETWEEN_FLAMES)];
|
||||
[QGVAR(cookOffLocal), [_vehicle, _canJet, _ring, _fireSelection, _intensity, CBA_missionTime, _duration], _fireJipID] call CBA_fnc_globalEventJIP;
|
||||
|
||||
// If there are any crew, burn them
|
||||
if (["ace_fire"] call EFUNC(common,isModLoaded)) then {
|
||||
// Use current intensity, in case GVAR(cookoffDuration) is very large and only 1 flameout stage happens
|
||||
{
|
||||
[QEGVAR(fire,burn), [_x, _intensity * 1.5, _instigator]] call CBA_fnc_globalEvent;
|
||||
} forEach (crew _vehicle);
|
||||
};
|
||||
|
||||
_intensity = (_intensity - (0.5 max random 1) / GVAR(cookoffDuration)) max 0;
|
||||
|
||||
_vehicle setVariable [QGVAR(intensity), _intensity];
|
||||
_vehicle setVariable [QGVAR(endCurrentFlame), CBA_missionTime + _duration];
|
||||
_vehicle setVariable [QGVAR(nextFlame), CBA_missionTime + _duration + (MIN_TIME_BETWEEN_FLAMES max random MAX_TIME_BETWEEN_FLAMES)];
|
||||
};
|
||||
|
||||
if (_ammoDetonationChance > random 1 && {_vehicle getVariable [QGVAR(nextExplosiveDetonation), 0] <= CBA_missionTime}) then {
|
||||
if (_fireSource isEqualTo "") then {
|
||||
_fireSource = selectRandom _positions;
|
||||
if (_fireSelection isEqualTo "") then {
|
||||
_fireSelection = selectRandom _selections;
|
||||
};
|
||||
|
||||
createVehicle ["ACE_ammoExplosionLarge", _vehicle modelToWorld (_vehicle selectionPosition _fireSource), [], 0 , "CAN_COLLIDE"];
|
||||
createVehicle ["ACE_ammoExplosionLarge", _vehicle modelToWorld (_vehicle selectionPosition _fireSelection), [], 0 , "CAN_COLLIDE"];
|
||||
|
||||
_vehicle setVariable [QGVAR(nextExplosiveDetonation), CBA_missionTime + random 60];
|
||||
};
|
||||
}, 0.25, _this] call CBA_fnc_addPerFrameHandler;
|
||||
}, [_vehicle, _positions, _ammoDetonationChance, _detonateAfterCookoff, _source, _instigator, _fireSource, _canRing, _canJet, _smokeJipID, _fireJipID], _delay] call CBA_fnc_waitAndExecute;
|
||||
}, [_vehicle, _selections, _ammoDetonationChance, _detonateAfterCookoff, _source, _instigator, _fireSelection, _canRing, _canJet, _smokeJipID, _fireJipID], _delay] call CBA_fnc_waitAndExecute;
|
||||
|
||||
// API
|
||||
[QGVAR(cookoff), [_vehicle, _intensity, _instigator, _smokeDelayEnabled, _ammoDetonationChance, _detonateAfterCookoff, _fireSelection, _canRing, _maxIntensity, _canJet]] call CBA_fnc_globalEvent;
|
@ -1,54 +0,0 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: johnb43
|
||||
* Starts detonating ammunition from an object (e.g. vehicle or crate).
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Object <OBJECT>
|
||||
* 1: Destroy when finished <BOOL> (default: false)
|
||||
* 2: Source <OBJECT> (default: objNull)
|
||||
* 3: Instigator <OBJECT> (default: objNull)
|
||||
* 4: Initial delay <NUMBER> (default: 0)
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [cursorObject] call ace_cookoff_fnc_detonateAmmunition
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
if (!isServer) exitWith {};
|
||||
|
||||
params ["_object", ["_destroyWhenFinished", false], ["_source", objNull], ["_instigator", objNull], ["_initialDelay", 0]];
|
||||
|
||||
if (isNull _object) exitWith {};
|
||||
|
||||
// Check if the object can cook its ammo off
|
||||
if (
|
||||
underwater _object ||
|
||||
{private _posASL = getPosWorld _object; surfaceIsWater _posASL && {(_posASL select 2) < 0}} || // underwater is not very reliable, so use model center instead
|
||||
{GVAR(ammoCookoffDuration) == 0} ||
|
||||
{!([GVAR(enableAmmoCookoff), GVAR(enableAmmobox)] select (_object isKindOf "ReammoBox_F"))} ||
|
||||
{!(_object getVariable [QGVAR(enableAmmoCookoff), true])}
|
||||
) exitWith {};
|
||||
|
||||
// Don't have an object detonate its ammo twice
|
||||
if (_object getVariable [QGVAR(isAmmoDetonating), false]) exitWith {};
|
||||
|
||||
_object setVariable [QGVAR(isAmmoDetonating), true, true];
|
||||
|
||||
_object setVariable [QGVAR(cookoffMagazines), _object call FUNC(getVehicleAmmo)];
|
||||
|
||||
// TODO: When setMagazineTurretAmmo and magazineTurretAmmo are fixed (https://feedback.bistudio.com/T79689),
|
||||
// we can add gradual ammo removal during cook-off
|
||||
if (GVAR(removeAmmoDuringCookoff)) then {
|
||||
clearMagazineCargoGlobal _object;
|
||||
|
||||
{
|
||||
[QEGVAR(common,removeMagazinesTurret), [_object, _x select 0, _x select 1], _object, _x select 1] call CBA_fnc_turretEvent;
|
||||
} forEach (magazinesAllTurrets _object);
|
||||
};
|
||||
|
||||
[FUNC(detonateAmmunitionServer), [_object, _destroyWhenFinished, _source, _instigator], _initialDelay] call CBA_fnc_waitAndExecute;
|
@ -1,174 +1,54 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Glowbal, johnb43
|
||||
* Detonates ammunition from an object (e.g. vehicle or crate) until no ammo is left.
|
||||
* Author: johnb43
|
||||
* Starts detonating ammunition from an object (e.g. vehicle or crate).
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Object <OBJECT>
|
||||
* 1: Destroy when finished <BOOL>
|
||||
* 2: Source <OBJECT>
|
||||
* 3: Instigator <OBJECT>
|
||||
* 1: Destroy when finished <BOOL> (default: false)
|
||||
* 2: Source <OBJECT> (default: objNull)
|
||||
* 3: Instigator <OBJECT> (default: objNull)
|
||||
* 4: Initial delay <NUMBER> (default: 0)
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [cursorObject, true, player, player] call ace_cookoff_fnc_detonateAmmunitionServer
|
||||
* [cursorObject] call ace_cookoff_fnc_detonateAmmunitionServer
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
if (!isServer) exitWith {};
|
||||
|
||||
params ["_object", "_destroyWhenFinished", "_source", "_instigator"];
|
||||
params ["_object", ["_destroyWhenFinished", false], ["_source", objNull], ["_instigator", objNull], ["_initialDelay", 0]];
|
||||
|
||||
if (isNull _object) exitWith {};
|
||||
|
||||
(_object getVariable QGVAR(cookoffMagazines)) params ["_magazines", "_totalAmmo"];
|
||||
|
||||
private _hasFinished = _totalAmmo <= 0 || {_magazines isEqualTo []};
|
||||
|
||||
// If the cook-off has finished or been interrupted, clean up the effects for boxes (no vehicle effects)
|
||||
// Check if the object can cook its ammo off
|
||||
if (
|
||||
_hasFinished ||
|
||||
{underwater _object} ||
|
||||
{private _posASL = getPosWorld _object; surfaceIsWater _posASL && {(_posASL select 2) < 0}} || // underwater is not very reliable, so use model center instead
|
||||
underwater _object ||
|
||||
{private _posASL = getPosWorld _object; surfaceIsWater _posASL && {(_posASL select 2) < 0}} || // Underwater is not very reliable, so use model center instead
|
||||
{GVAR(ammoCookoffDuration) == 0} ||
|
||||
{!([GVAR(enableAmmoCookoff), GVAR(enableAmmobox)] select (_object isKindOf "ReammoBox_F"))} ||
|
||||
{!(_object getVariable [QGVAR(enableAmmoCookoff), true])}
|
||||
) exitWith {
|
||||
// Box cook-off fire ends after the ammo has detonated (vehicle cook-off fire does not depend on the ammo detonation)
|
||||
if (_object isKindOf "ReammoBox_F") then {
|
||||
[QGVAR(cleanupEffects), _object] call CBA_fnc_globalEvent;
|
||||
) exitWith {};
|
||||
|
||||
// Reset variable, so the box can cook-off again
|
||||
_object setVariable [QGVAR(isCookingOff), nil, true];
|
||||
};
|
||||
// Don't have an object detonate its ammo twice
|
||||
if (_object getVariable [QGVAR(isAmmoDetonating), false]) exitWith {};
|
||||
|
||||
// Reset variables, so the object can detonate its ammo again
|
||||
_object setVariable [QGVAR(cookoffMagazines), nil];
|
||||
_object setVariable [QGVAR(isAmmoDetonating), nil, true];
|
||||
_object setVariable [QGVAR(isAmmoDetonating), true, true];
|
||||
|
||||
// If done, destroy the object if necessary
|
||||
if (_hasFinished && _destroyWhenFinished) then {
|
||||
_object setDamage [1, true, _source, _instigator];
|
||||
};
|
||||
_object setVariable [QGVAR(cookoffMagazines), _object call FUNC(getVehicleAmmo)];
|
||||
|
||||
// TODO: When setMagazineTurretAmmo and magazineTurretAmmo are fixed (https://feedback.bistudio.com/T79689),
|
||||
// we can add gradual ammo removal during cook-off
|
||||
if (GVAR(removeAmmoDuringCookoff)) then {
|
||||
clearMagazineCargoGlobal _object;
|
||||
|
||||
{
|
||||
[QEGVAR(common,removeMagazinesTurret), [_object, _x select 0, _x select 1], _object, _x select 1] call CBA_fnc_turretEvent;
|
||||
} forEach (magazinesAllTurrets _object);
|
||||
};
|
||||
|
||||
private _magazineIndex = floor random (count _magazines);
|
||||
private _magazine = _magazines select _magazineIndex;
|
||||
_magazine params ["_magazineClassname", "_ammoCount", "_spawnProjectile"];
|
||||
|
||||
// Make sure ammo is at least 0
|
||||
_ammoCount = _ammoCount max 0;
|
||||
|
||||
// Remove some ammo, which will be detonated
|
||||
private _removed = _ammoCount min floor (1 + random (6 / GVAR(ammoCookoffDuration)));
|
||||
|
||||
_ammoCount = _ammoCount - _removed;
|
||||
|
||||
if (_ammoCount <= 0) then {
|
||||
_magazines deleteAt _magazineIndex;
|
||||
} else {
|
||||
_magazine set [1, _ammoCount]; // remove ammo that was detonated
|
||||
};
|
||||
|
||||
private _timeBetweenAmmoDetonation = ((random 10 / sqrt _totalAmmo) min MAX_TIME_BETWEEN_AMMO_DET) max 0.1;
|
||||
TRACE_2("",_totalAmmo,_timeBetweenAmmoDetonation);
|
||||
_totalAmmo = _totalAmmo - _removed;
|
||||
|
||||
_object setVariable [QGVAR(cookoffMagazines), [_magazines, _totalAmmo]];
|
||||
|
||||
// Get magazine info, which is used to spawn projectiles
|
||||
private _configMagazine = configFile >> "CfgMagazines" >> _magazineClassname;
|
||||
private _ammo = getText (_configMagazine >> "ammo");
|
||||
private _configAmmo = configFile >> "CfgAmmo" >> _ammo;
|
||||
|
||||
private _simType = toLower getText (_configAmmo >> "simulation");
|
||||
private _speed = linearConversion [0, 1, random 1, 1, 20, true];
|
||||
private _effect2pos = _object selectionPosition "destructionEffect2";
|
||||
|
||||
// Spawns the projectiles, making them either fly in random directions or explode
|
||||
private _fnc_spawnProjectile = {
|
||||
// If the magazines are inside of the cargo (inventory), don't let their projectiles escape the interior of the vehicle
|
||||
if (!_spawnProjectile) exitWith {};
|
||||
|
||||
params ["_object", "_ammo", "_speed", "_flyAway"];
|
||||
|
||||
private _spawnPos = _object modelToWorld [-0.2 + random 0.4, -0.2 + random 0.4, random 3];
|
||||
|
||||
if (_spawnPos select 2 < 0) then {
|
||||
_spawnPos set [2, 0];
|
||||
};
|
||||
|
||||
private _projectile = createVehicle [_ammo, _spawnPos, [], 0, "CAN_COLLIDE"];
|
||||
|
||||
if (_flyAway) then {
|
||||
private _vectorAmmo = [-1 + random 2, -1 + random 2, -0.2 + random 1];
|
||||
private _vectorVelocity = _vectorAmmo vectorMultiply _speed;
|
||||
|
||||
_projectile setVectorDir _vectorVelocity;
|
||||
_projectile setVelocity _vectorVelocity;
|
||||
} else {
|
||||
_projectile setDamage 1;
|
||||
};
|
||||
};
|
||||
|
||||
switch (_simType) do {
|
||||
case "shotbullet": {
|
||||
[QGVAR(playCookoffSound), [_object, _simType]] call CBA_fnc_globalEvent;
|
||||
|
||||
if (random 1 < 0.6) then {
|
||||
[_object, _ammo, _speed, true] call _fnc_spawnProjectile;
|
||||
};
|
||||
};
|
||||
case "shotshell": {
|
||||
[QGVAR(playCookoffSound), [_object, _simType]] call CBA_fnc_globalEvent;
|
||||
|
||||
if (random 1 < 0.15) then {
|
||||
[_object, _ammo, _speed, true] call _fnc_spawnProjectile;
|
||||
};
|
||||
};
|
||||
case "shotgrenade": {
|
||||
if (random 1 < 0.9) then {
|
||||
_speed = 0;
|
||||
};
|
||||
|
||||
[_object, _ammo, _speed, random 1 < 0.5] call _fnc_spawnProjectile;
|
||||
};
|
||||
case "shotrocket";
|
||||
case "shotmissile";
|
||||
case "shotsubmunitions": {
|
||||
if (random 1 < 0.1) then {
|
||||
[QGVAR(playCookoffSound), [_object, _simType]] call CBA_fnc_globalEvent;
|
||||
|
||||
[_object, _ammo, _speed, random 1 < 0.3] call _fnc_spawnProjectile;
|
||||
} else {
|
||||
createVehicle ["ACE_ammoExplosionLarge", _object modelToWorld _effect2pos, [], 0 , "CAN_COLLIDE"];
|
||||
};
|
||||
};
|
||||
case "shotdirectionalbomb";
|
||||
case "shotmine": {
|
||||
if (random 1 < 0.5) then {
|
||||
// Not all explosives detonate on destruction, some have scripted alternatives
|
||||
if (getNumber (_configAmmo >> "triggerWhenDestroyed") != 1) then {
|
||||
_ammo = getText (_configAmmo >> QEGVAR(explosives,explosive));
|
||||
};
|
||||
|
||||
// If a scripted alternative doesn't exist use generic explosion
|
||||
if (_ammo != "") then {
|
||||
[_object, _ammo, 0, false] call _fnc_spawnProjectile;
|
||||
} else {
|
||||
createVehicle ["SmallSecondary", _object modelToWorld _effect2pos, [], 0 , "CAN_COLLIDE"];
|
||||
};
|
||||
};
|
||||
};
|
||||
case "shotilluminating": {
|
||||
if (random 1 < 0.15) then {
|
||||
[_object, _ammo, _speed, random 1 < 0.3] call _fnc_spawnProjectile;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// Detonate the remaining ammo after a delay
|
||||
[FUNC(detonateAmmunitionServer), [_object, _destroyWhenFinished, _source, _instigator], _timeBetweenAmmoDetonation] call CBA_fnc_waitAndExecute;
|
||||
[LINKFUNC(detonateAmmunitionServerLoop), [_object, _destroyWhenFinished, _source, _instigator], _initialDelay] call CBA_fnc_waitAndExecute;
|
||||
|
181
addons/cookoff/functions/fnc_detonateAmmunitionServerLoop.sqf
Normal file
181
addons/cookoff/functions/fnc_detonateAmmunitionServerLoop.sqf
Normal file
@ -0,0 +1,181 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Glowbal, johnb43
|
||||
* Detonates ammunition from an object (e.g. vehicle or crate) until no ammo is left.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Object <OBJECT>
|
||||
* 1: Destroy when finished <BOOL>
|
||||
* 2: Source <OBJECT>
|
||||
* 3: Instigator <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [cursorObject, true, player, player] call ace_cookoff_fnc_detonateAmmunitionServerLoop
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params ["_object", "_destroyWhenFinished", "_source", "_instigator"];
|
||||
|
||||
if (isNull _object) exitWith {};
|
||||
|
||||
(_object getVariable QGVAR(cookoffMagazines)) params ["_magazines", "_totalAmmo"];
|
||||
|
||||
private _hasFinished = _totalAmmo <= 0 || {_magazines isEqualTo []};
|
||||
|
||||
// If the cook-off has finished or been interrupted, clean up the effects for boxes (no vehicle effects)
|
||||
if (
|
||||
_hasFinished ||
|
||||
{underwater _object} ||
|
||||
{private _posASL = getPosWorld _object; surfaceIsWater _posASL && {(_posASL select 2) < 0}} || // Underwater is not very reliable, so use model center instead
|
||||
{GVAR(ammoCookoffDuration) == 0} ||
|
||||
{!([GVAR(enableAmmoCookoff), GVAR(enableAmmobox)] select (_object isKindOf "ReammoBox_F"))} ||
|
||||
{!(_object getVariable [QGVAR(enableAmmoCookoff), true])}
|
||||
) exitWith {
|
||||
// Box cook-off fire ends after the ammo has detonated (vehicle cook-off fire does not depend on the ammo detonation)
|
||||
if (_object isKindOf "ReammoBox_F") then {
|
||||
[QGVAR(cleanupEffects), _object] call CBA_fnc_globalEvent;
|
||||
|
||||
// Reset variable, so the box can cook-off again
|
||||
_object setVariable [QGVAR(isCookingOff), nil, true];
|
||||
|
||||
// Remove cook-off effects from box
|
||||
private _jipID = _object getVariable QGVAR(cookoffBoxJipID);
|
||||
|
||||
if (isNil "_jipID") exitWith {};
|
||||
|
||||
_jipID call CBA_fnc_removeGlobalEventJIP;
|
||||
|
||||
_object setVariable [QGVAR(cookoffBoxJipID), nil];
|
||||
};
|
||||
|
||||
// Reset variables, so the object can detonate its ammo again
|
||||
_object setVariable [QGVAR(cookoffMagazines), nil];
|
||||
_object setVariable [QGVAR(isAmmoDetonating), nil, true];
|
||||
|
||||
// If done, destroy the object if necessary
|
||||
if (_hasFinished && _destroyWhenFinished) then {
|
||||
_object setDamage [1, true, _source, _instigator];
|
||||
};
|
||||
};
|
||||
|
||||
private _magazineIndex = floor random (count _magazines);
|
||||
private _magazine = _magazines select _magazineIndex;
|
||||
_magazine params ["_magazineClassname", "_ammoCount", "_spawnProjectile"];
|
||||
|
||||
// Make sure ammo is at least 0
|
||||
_ammoCount = _ammoCount max 0;
|
||||
|
||||
// Remove some ammo, which will be detonated
|
||||
private _removed = _ammoCount min floor (1 + random (6 / GVAR(ammoCookoffDuration)));
|
||||
|
||||
_ammoCount = _ammoCount - _removed;
|
||||
|
||||
if (_ammoCount <= 0) then {
|
||||
_magazines deleteAt _magazineIndex;
|
||||
} else {
|
||||
_magazine set [1, _ammoCount]; // remove ammo that was detonated
|
||||
};
|
||||
|
||||
private _timeBetweenAmmoDetonation = ((random 10 / sqrt _totalAmmo) min MAX_TIME_BETWEEN_AMMO_DET) max 0.1;
|
||||
TRACE_2("",_totalAmmo,_timeBetweenAmmoDetonation);
|
||||
_totalAmmo = _totalAmmo - _removed;
|
||||
|
||||
_object setVariable [QGVAR(cookoffMagazines), [_magazines, _totalAmmo]];
|
||||
|
||||
// Get magazine info, which is used to spawn projectiles
|
||||
private _configMagazine = configFile >> "CfgMagazines" >> _magazineClassname;
|
||||
private _ammo = getText (_configMagazine >> "ammo");
|
||||
private _configAmmo = configFile >> "CfgAmmo" >> _ammo;
|
||||
|
||||
private _simType = toLower getText (_configAmmo >> "simulation");
|
||||
private _speed = linearConversion [0, 1, random 1, 1, 20, true];
|
||||
private _effect2pos = _object selectionPosition "destructionEffect2";
|
||||
|
||||
// Spawns the projectiles, making them either fly in random directions or explode
|
||||
private _fnc_spawnProjectile = {
|
||||
// If the magazines are inside of the cargo (inventory), don't let their projectiles escape the interior of the vehicle
|
||||
if (!_spawnProjectile) exitWith {};
|
||||
|
||||
params ["_object", "_ammo", "_speed", "_flyAway"];
|
||||
|
||||
private _spawnPos = _object modelToWorld [-0.2 + random 0.4, -0.2 + random 0.4, random 3];
|
||||
|
||||
if (_spawnPos select 2 < 0) then {
|
||||
_spawnPos set [2, 0];
|
||||
};
|
||||
|
||||
private _projectile = createVehicle [_ammo, _spawnPos, [], 0, "CAN_COLLIDE"];
|
||||
|
||||
if (_flyAway) then {
|
||||
private _vectorAmmo = [-1 + random 2, -1 + random 2, -0.2 + random 1];
|
||||
private _vectorVelocity = _vectorAmmo vectorMultiply _speed;
|
||||
|
||||
_projectile setVectorDir _vectorVelocity;
|
||||
_projectile setVelocity _vectorVelocity;
|
||||
} else {
|
||||
_projectile setDamage 1;
|
||||
};
|
||||
};
|
||||
|
||||
switch (_simType) do {
|
||||
case "shotbullet": {
|
||||
[QGVAR(playCookoffSound), [_object, _simType]] call CBA_fnc_globalEvent;
|
||||
|
||||
if (random 1 < 0.6) then {
|
||||
[_object, _ammo, _speed, true] call _fnc_spawnProjectile;
|
||||
};
|
||||
};
|
||||
case "shotshell": {
|
||||
[QGVAR(playCookoffSound), [_object, _simType]] call CBA_fnc_globalEvent;
|
||||
|
||||
if (random 1 < 0.15) then {
|
||||
[_object, _ammo, _speed, true] call _fnc_spawnProjectile;
|
||||
};
|
||||
};
|
||||
case "shotgrenade": {
|
||||
if (random 1 < 0.9) then {
|
||||
_speed = 0;
|
||||
};
|
||||
|
||||
[_object, _ammo, _speed, random 1 < 0.5] call _fnc_spawnProjectile;
|
||||
};
|
||||
case "shotrocket";
|
||||
case "shotmissile";
|
||||
case "shotsubmunitions": {
|
||||
if (random 1 < 0.1) then {
|
||||
[QGVAR(playCookoffSound), [_object, _simType]] call CBA_fnc_globalEvent;
|
||||
|
||||
[_object, _ammo, _speed, random 1 < 0.3] call _fnc_spawnProjectile;
|
||||
} else {
|
||||
createVehicle ["ACE_ammoExplosionLarge", _object modelToWorld _effect2pos, [], 0 , "CAN_COLLIDE"];
|
||||
};
|
||||
};
|
||||
case "shotdirectionalbomb";
|
||||
case "shotmine": {
|
||||
if (random 1 < 0.5) then {
|
||||
// Not all explosives detonate on destruction, some have scripted alternatives
|
||||
if (getNumber (_configAmmo >> "triggerWhenDestroyed") != 1) then {
|
||||
_ammo = getText (_configAmmo >> QEGVAR(explosives,explosive));
|
||||
};
|
||||
|
||||
// If a scripted alternative doesn't exist use generic explosion
|
||||
if (_ammo != "") then {
|
||||
[_object, _ammo, 0, false] call _fnc_spawnProjectile;
|
||||
} else {
|
||||
createVehicle ["SmallSecondary", _object modelToWorld _effect2pos, [], 0 , "CAN_COLLIDE"];
|
||||
};
|
||||
};
|
||||
};
|
||||
case "shotilluminating": {
|
||||
if (random 1 < 0.15) then {
|
||||
[_object, _ammo, _speed, random 1 < 0.3] call _fnc_spawnProjectile;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// Detonate the remaining ammo after a delay
|
||||
[LINKFUNC(detonateAmmunitionServerLoop), [_object, _destroyWhenFinished, _source, _instigator], _timeBetweenAmmoDetonation] call CBA_fnc_waitAndExecute;
|
@ -5,12 +5,13 @@
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Vehicle <OBJECT>
|
||||
* 1: End time <NUMBER>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* cursorObject call ace_cookoff_fnc_engineFireLocal
|
||||
* [cursorObject, CBA_missionTime + 10] call ace_cookoff_fnc_engineFireLocal
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
@ -59,22 +60,22 @@ if (hasInterface) then {
|
||||
[{
|
||||
(_this select 0) params ["_vehicle", "_smoke", "_endTime"];
|
||||
|
||||
if (!alive _vehicle || {_vehicle getHitPointDamage "HitEngine" < 0.9} || {CBA_missionTime >= _endTime}) exitWith {
|
||||
(_this select 1) call CBA_fnc_removePerFrameHandler;
|
||||
if (alive _vehicle && {_vehicle getHitPointDamage "HitEngine" >= 0.9} && {CBA_missionTime < _endTime}) exitWith {};
|
||||
|
||||
deleteVehicle _smoke;
|
||||
(_this select 1) call CBA_fnc_removePerFrameHandler;
|
||||
|
||||
if (!isServer || {isNull _vehicle}) exitWith {};
|
||||
deleteVehicle _smoke;
|
||||
|
||||
// Reset variable, so engine can smoke again in the future
|
||||
_vehicle setVariable [QGVAR(isEngineSmoking), nil, true];
|
||||
if (!isServer || {isNull _vehicle}) exitWith {};
|
||||
|
||||
private _jipID = _vehicle getVariable QGVAR(engineFireJipID);
|
||||
// Reset variable, so engine can smoke again in the future
|
||||
_vehicle setVariable [QGVAR(isEngineSmoking), nil, true];
|
||||
|
||||
if (isNil "_jipID") exitWith {};
|
||||
private _jipID = _vehicle getVariable QGVAR(engineFireJipID);
|
||||
|
||||
_jipID call CBA_fnc_removeGlobalEventJIP;
|
||||
if (isNil "_jipID") exitWith {};
|
||||
|
||||
_vehicle setVariable [QGVAR(engineFireJipID), nil];
|
||||
};
|
||||
_jipID call CBA_fnc_removeGlobalEventJIP;
|
||||
|
||||
_vehicle setVariable [QGVAR(engineFireJipID), nil];
|
||||
}, 5, [_vehicle, _smoke, _endTime]] call CBA_fnc_addPerFrameHandler;
|
||||
|
@ -10,7 +10,7 @@
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* cursorObject call ace_cookoff_fnc_engineFire
|
||||
* cursorObject call ace_cookoff_fnc_engineFireServer
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
@ -29,3 +29,6 @@ private _jipID = [QGVAR(engineFireLocal), [_vehicle, CBA_missionTime + random [E
|
||||
[_jipID, _vehicle] call CBA_fnc_removeGlobalEventJIP;
|
||||
|
||||
_vehicle setVariable [QGVAR(engineFireJipID), _jipID];
|
||||
|
||||
// API
|
||||
[QGVAR(engineFire), [_vehicle]] call CBA_fnc_globalEvent;
|
@ -15,6 +15,9 @@
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
// If cookoff for boxes is disabled, exit
|
||||
if (!GVAR(enableAmmobox) || {GVAR(ammoCookoffDuration) == 0}) exitWith {};
|
||||
|
||||
params ["_box", "", "_damage", "_source", "_ammo", "", "_instigator", "_hitPoint"];
|
||||
|
||||
if (!local _box) exitWith {};
|
||||
@ -22,9 +25,6 @@ if (!local _box) exitWith {};
|
||||
// If it's already dead, ignore
|
||||
if (!alive _box) exitWith {};
|
||||
|
||||
// If cookoff for boxes is disabled, exit
|
||||
if (!GVAR(enableAmmobox) || {GVAR(ammoCookoffDuration) == 0}) exitWith {};
|
||||
|
||||
if !(_box getVariable [QGVAR(enableAmmoCookoff), true]) exitWith {};
|
||||
|
||||
if !(_hitPoint == "" && {_damage > 0.5}) exitWith {}; // "" means structural damage
|
||||
|
@ -7,7 +7,7 @@
|
||||
* 0: Magazine <STRING>
|
||||
*
|
||||
* Return Value:
|
||||
* 0: If magazine is type of flare <BOOL>
|
||||
* If magazine is type of flare <BOOL>
|
||||
*
|
||||
* Example:
|
||||
* "3Rnd_UGL_FlareWhite_F" call ace_cookoff_fnc_isMagazineFlare
|
||||
@ -18,7 +18,5 @@
|
||||
params ["_magazine"];
|
||||
|
||||
private _configAmmo = configFile >> "CfgAmmo" >> getText (configFile >> "CfgMagazines" >> _magazine >> "ammo");
|
||||
private _intensity = getNumber (_configAmmo >> "intensity");
|
||||
private _flare = getNumber (_configAmmo >> QEGVAR(grenades,flare));
|
||||
|
||||
_intensity != 0 || _flare == 1
|
||||
getNumber (_configAmmo >> "intensity") != 0 || {getNumber (_configAmmo >> QEGVAR(grenades,flare)) == 1}
|
||||
|
@ -16,7 +16,7 @@
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params ["_vehicle", "_positions"];
|
||||
params ["_vehicle", "_selections"];
|
||||
|
||||
private _positionBarrelEnd = getText ([_vehicle, [0]] call CBA_fnc_getTurret >> "gunBeg");
|
||||
|
||||
@ -28,10 +28,10 @@ _smokeBarrel attachTo [_vehicle, [0, 0, 0], _positionBarrelEnd];
|
||||
private _effects = [_smokeBarrel];
|
||||
|
||||
{
|
||||
private _position = [0, -2, 0];
|
||||
|
||||
if (_x != "#noselection") then {
|
||||
_position = _vehicle selectionPosition _x;
|
||||
private _position = if (_x != "#noselection") then {
|
||||
_vehicle selectionPosition _x
|
||||
} else {
|
||||
[0, -2, 0]
|
||||
};
|
||||
|
||||
private _smoke = "#particlesource" createVehicleLocal [0, 0, 0];
|
||||
@ -39,6 +39,6 @@ private _effects = [_smokeBarrel];
|
||||
_smoke attachTo [_vehicle, _position];
|
||||
|
||||
_effects pushBack _smoke;
|
||||
} forEach _positions;
|
||||
} forEach _selections;
|
||||
|
||||
_vehicle setVariable [QGVAR(effects), _effects];
|
||||
|
@ -4,8 +4,7 @@
|
||||
[LSTRING(enableFire_name), LSTRING(enableFire_tooltip)],
|
||||
LSTRING(category_displayName),
|
||||
true,
|
||||
1,
|
||||
{[QGVAR(enableFire), _this] call EFUNC(common,cbaSettings_settingChanged)}
|
||||
1
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
@ -13,9 +12,8 @@
|
||||
"SLIDER",
|
||||
[LSTRING(cookoffDuration_name), LSTRING(cookoffDuration_tooltip)],
|
||||
LSTRING(category_displayName),
|
||||
[0, 5, 1, 1],
|
||||
1,
|
||||
{[QGVAR(cookoffDuration), _this] call EFUNC(common,cbaSettings_settingChanged)}
|
||||
[0, 10, 1, 2],
|
||||
1
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
@ -23,9 +21,8 @@
|
||||
"SLIDER",
|
||||
[LSTRING(probabilityCoef_name), LSTRING(probabilityCoef_tooltip)],
|
||||
LSTRING(category_displayName),
|
||||
[0, 5, 1, 1],
|
||||
1,
|
||||
{[QGVAR(probabilityCoef), _this] call EFUNC(common,cbaSettings_settingChanged)}
|
||||
[0, 10, 1, 2],
|
||||
1
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
@ -34,8 +31,7 @@
|
||||
[LSTRING(destroyVehicleAfterCookoff_name), LSTRING(destroyVehicleAfterCookoff_tooltip)],
|
||||
LSTRING(category_displayName),
|
||||
false,
|
||||
1,
|
||||
{[QGVAR(destroyVehicleAfterCookoff), _this] call EFUNC(common,cbaSettings_settingChanged)}
|
||||
1
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
@ -44,8 +40,7 @@
|
||||
[LSTRING(enableAmmoCookoff_name), LSTRING(enableAmmoCookoff_tooltip)],
|
||||
LSTRING(category_displayName),
|
||||
true,
|
||||
1,
|
||||
{[QGVAR(enableAmmoCookoff), _this] call EFUNC(common,cbaSettings_settingChanged)}
|
||||
1
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
@ -54,8 +49,7 @@
|
||||
[LSTRING(enableBoxCookoff_name), LSTRING(enableBoxCookoff_tooltip)],
|
||||
LSTRING(category_displayName),
|
||||
true,
|
||||
1,
|
||||
{[QGVAR(enableAmmobox), _this] call EFUNC(common,cbaSettings_settingChanged)}
|
||||
1
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
@ -63,9 +57,8 @@
|
||||
"SLIDER",
|
||||
[LSTRING(ammoCookoffDuration_name), LSTRING(ammoCookoffDuration_tooltip)],
|
||||
LSTRING(category_displayName),
|
||||
[0, 5, 1, 1],
|
||||
1,
|
||||
{[QGVAR(ammoCookoffDuration), _this] call EFUNC(common,cbaSettings_settingChanged)}
|
||||
[0, 10, 1, 2],
|
||||
1
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
@ -74,6 +67,5 @@
|
||||
[LSTRING(removeAmmoDuringCookoff_name), LSTRING(removeAmmoDuringCookoff_tooltip)],
|
||||
LSTRING(category_displayName),
|
||||
true,
|
||||
1,
|
||||
{[QGVAR(removeAmmoDuringCookoff), _this] call EFUNC(common,cbaSettings_settingChanged)}
|
||||
1
|
||||
] call CBA_fnc_addSetting;
|
||||
|
@ -20,7 +20,7 @@
|
||||
<English>Enable vehicle cook-off fire</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_CookOff_enableFire_tooltip">
|
||||
<English>Enables vehicle cook-off fire effects.\nThis does NOT include ammunition detonations.</English>
|
||||
<English>Enables vehicle cook-off fire effects.\nThis doesn't include ammunition detonations.</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_CookOff_cookoffDuration_name">
|
||||
<English>Vehicle cook-off fire duration multiplier</English>
|
||||
@ -57,12 +57,13 @@
|
||||
<French>Contrôle si les véhicules seront toujours détruits après l'auto-inflammation.</French>
|
||||
<Portuguese>Define se os veículos serão sempre destruídos após cozinhamento.</Portuguese>
|
||||
<Russian>Определяет, всегда ли транспортные средства будут уничтожаться после детонации.</Russian>
|
||||
<Spanish>Controla si los vehículos siempre será destruidos despues de la detonación inducida por calor.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_CookOff_enableAmmoCookoff_name">
|
||||
<English>Enable vehicle ammo cook-off</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_CookOff_enableAmmoCookoff_tooltip">
|
||||
<English>Enables cooking off of vehicle ammunition. Fires ammunition projectiles while vehicle has ammunition remaining.\nThis does NOT include fire effects.</English>
|
||||
<English>Enables cooking off of vehicle ammunition. Fires ammunition projectiles while vehicle has ammunition remaining.\nThis doesn't include fire effects.</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_CookOff_enableBoxCookoff_name">
|
||||
<English>Enable ammo box cook-off</English>
|
||||
@ -80,7 +81,7 @@
|
||||
<Czech>Povolit vynícení munice v krabicích</Czech>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_CookOff_enableBoxCookoff_tooltip">
|
||||
<English>Enables cooking off of ammo boxes.\nThis does NOT include fire effects.</English>
|
||||
<English>Enables cooking off of ammo boxes.\nThis doesn't include fire effects.</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_CookOff_ammoCookoffDuration_name">
|
||||
<English>Ammo cook-off duration multiplier</English>
|
||||
|
@ -41,7 +41,7 @@ if ((_fullMagazines == 0) && {_bulletsRemaining == 0}) exitWith {};
|
||||
private _container = _unloadTo getVariable [QGVAR(container), objNull];
|
||||
if ((_container distance _unloadTo) > 10) then { _container = objNull; };
|
||||
if (isNull _container) then {
|
||||
_container = (nearestObjects [_unloadTo, [QGVAR(ammo_holder), "GroundWeaponHolder"], 10]) param [0, objNull];
|
||||
_container = (nearestObjects [_unloadTo, [["GroundWeaponHolder"], [QGVAR(ammo_holder)]] select GVAR(handleExtraMagazinesType), 10]) param [0, objNull];
|
||||
};
|
||||
|
||||
|
||||
|
@ -45,17 +45,12 @@ private _categoryArray = [format ["ACE %1", localize LSTRING(DisplayName)]];
|
||||
[LSTRING(progressBarTimeCoefficent_displayName), LSTRING(progressBarTimeCoefficent_description)],
|
||||
_categoryArray,
|
||||
[0,2,1,2], // [min, max, default value, trailing decimals (-1 for whole numbers only)]
|
||||
true, // isGlobal
|
||||
{[QGVAR(progressBarTimeCoefficent), _this] call EFUNC(common,cbaSettings_settingChanged)},
|
||||
false // Needs mission restart
|
||||
true // isGlobal
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
QGVAR(dragAfterDeploy), "CHECKBOX",
|
||||
[LSTRING(dragAfterDeploy_displayName), LSTRING(dragAfterDeploy_description)],
|
||||
_categoryArray,
|
||||
false, // default value
|
||||
false, // isGlobal
|
||||
{[QGVAR(dragAfterDeploy), _this] call EFUNC(common,cbaSettings_settingChanged)},
|
||||
false // Needs mission restart
|
||||
false // default value
|
||||
] call CBA_fnc_addSetting;
|
||||
|
@ -1120,5 +1120,22 @@
|
||||
<Russian>[CSW] Сумка с СПГ-9М орудием</Russian>
|
||||
<Korean>[CSW] SPG-9M 발사기 가방</Korean>
|
||||
</Key>
|
||||
<!-- Used in rearm to remove the [CSW] prefix from magazine names, so adjust when necessary -->
|
||||
<Key ID="STR_ACE_CSW_regex">
|
||||
<English>^\[CSW\]</English>
|
||||
<Spanish>^\[CSW\]</Spanish>
|
||||
<German>^\[CSW\]</German>
|
||||
<Portuguese>^\[CSW\]</Portuguese>
|
||||
<French>^\[CSW\]</French>
|
||||
<Japanese>^\[CSW\]</Japanese>
|
||||
<Chinese>^\[CSW\]</Chinese>
|
||||
<Chinesesimp>^\[班组\]</Chinesesimp>
|
||||
<Italian>^\[CSW\]</Italian>
|
||||
<Czech>^\[CSW\]</Czech>
|
||||
<Turkish>^\[CSW\]</Turkish>
|
||||
<Polish>^\[CSW\]</Polish>
|
||||
<Russian>^\[CSW\]</Russian>
|
||||
<Korean>^\[CSW\]</Korean>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
|
@ -167,6 +167,7 @@
|
||||
<French>Autoriser la course avec des objets légers</French>
|
||||
<Portuguese>Permitir corrida com objetos leves</Portuguese>
|
||||
<Russian>Позволяет работать с легкими объектами</Russian>
|
||||
<Spanish>Permitir correr con objetos ligeros</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Dragging_allowRunWithLightweight_Description">
|
||||
<English>Allow the player to run when carrying lightweight objects.</English>
|
||||
@ -178,6 +179,7 @@
|
||||
<French>Autorise le joueur à courir lorsqu'il porte un objet léger.</French>
|
||||
<Portuguese>Permite ao jogador correr enquanto carrega objetos leves.</Portuguese>
|
||||
<Russian>Разрешите игроку бегать при переноске легких предметов.</Russian>
|
||||
<Spanish>Permite al jugador correr cuando porta objetos ligeros.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Dragging_skipContainerWeight_DisplayName">
|
||||
<English>Skip Object Weight</English>
|
||||
@ -189,6 +191,7 @@
|
||||
<French>Ignorer le poids de l'objet</French>
|
||||
<Portuguese>Ignorar Peso do Objeto</Portuguese>
|
||||
<Russian>Игнорировать вес объекта</Russian>
|
||||
<Spanish>Ignora peso del objeto</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Dragging_skipContainerWeight_Description">
|
||||
<English>Determines whether object's weight is added onto weight calculations.</English>
|
||||
@ -200,6 +203,7 @@
|
||||
<French>Défini si le poids d'un objet est ajouté aux calculs du poids.</French>
|
||||
<Portuguese>Determina se o peso do objeto é adicionado aos cálculos de peso.</Portuguese>
|
||||
<Russian>Определяет, добавляется ли вес объекта при расчете веса.</Russian>
|
||||
<Spanish>Determina si el peso del objeto es añadido en los cálculos de peso.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Dragging_weightCoefficient_DisplayName">
|
||||
<English>Max Weight Coefficient</English>
|
||||
@ -210,6 +214,7 @@
|
||||
<German>Maximaler Gewichtskoeffizient</German>
|
||||
<Japanese>最大重量係数</Japanese>
|
||||
<Russian>Максимальный коэффициент веса</Russian>
|
||||
<Spanish>Máximo Coeficiente de Peso</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Dragging_weightCoefficient_Description">
|
||||
<English>Modifies weight limit calculations. Set to 0 to ignore.</English>
|
||||
@ -220,6 +225,7 @@
|
||||
<German>Ändert die Berechnung der Gewichtsbegrenzung. Zum Ignorieren auf 0 setzen.</German>
|
||||
<Japanese>重量制限の計算を変更します。 無視するには 0 に設定します。</Japanese>
|
||||
<Russian>Изменяет расчеты предельного веса. Установите значение 0 для игнорирования.</Russian>
|
||||
<Spanish>Modifica el límite de peso de los cálculos. Poner a 0 para que lo ignore.</Spanish>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
|
@ -76,6 +76,7 @@
|
||||
<Japanese>選択した点火装置を全て起爆</Japanese>
|
||||
<Korean>활성화된 격발기의 모든 것을 폭파</Korean>
|
||||
<French>Détoner tout sur le détonateur actif</French>
|
||||
<Spanish>Detonar Todos al Activar el detonador</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_SetActiveTrigger">
|
||||
<English>Set Active Clacker</English>
|
||||
@ -85,6 +86,7 @@
|
||||
<Japanese>この点火装置を選択</Japanese>
|
||||
<Korean>격발기 활성 설정</Korean>
|
||||
<French>Définir le détonateur actif</French>
|
||||
<Spanish>Establecer el Detonador Activo</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_CycleActiveTrigger">
|
||||
<English>Cycle Active Clacker</English>
|
||||
@ -94,6 +96,7 @@
|
||||
<Japanese>点火装置を切り替え</Japanese>
|
||||
<Korean>격발기 활성 전환</Korean>
|
||||
<French>Modifier le détonateur actif</French>
|
||||
<Spanish>Ciclar el Detonador Activo</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_ActiveTrigger">
|
||||
<English>Active Clacker</English>
|
||||
@ -103,6 +106,7 @@
|
||||
<Japanese>選択中の点火装置</Japanese>
|
||||
<Korean>격발기 활성</Korean>
|
||||
<French>Détonateur actif</French>
|
||||
<Spanish>Activar Detonador</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_DetonateCode">
|
||||
<English>Explosive code: %1</English>
|
||||
|
@ -5,9 +5,7 @@ private _category = [LELSTRING(common,categoryUncategorized), LLSTRING(setting_c
|
||||
[LSTRING(setting_requireRopeItems_displayName)],
|
||||
_category,
|
||||
false, // default value
|
||||
true, // isGlobal
|
||||
{[QGVAR(requireRopeItems), _this] call EFUNC(common,cbaSettings_settingChanged)},
|
||||
false // needRestart
|
||||
true // isGlobal
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
|
@ -325,6 +325,7 @@
|
||||
<French>Equipement automatique FRIES</French>
|
||||
<Portuguese>Auto-equipar FRIES</Portuguese>
|
||||
<Russian>Авто-подготовка канатов</Russian>
|
||||
<Spanish>Auto-Equipar FRIES</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Fastroping_setting_autoAddFRIES_description">
|
||||
<English>Automatically add FRIES to helicopters that support them.</English>
|
||||
@ -336,6 +337,7 @@
|
||||
<French>Ajoute automatiquement des FRIES aux hélicoptères qui les supportent.</French>
|
||||
<Portuguese>Adiciona automaticamente FRIES a helicópteros que os suportam.</Portuguese>
|
||||
<Russian>Автоматически добавляйте канаты в вертолеты, которые их поддерживают.</Russian>
|
||||
<Spanish>Añadir automáticamente el FRIES a los helicópteros que lo soporten.</Spanish>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
|
@ -21,11 +21,7 @@ params ["_player", "_thirst", "_hunger"];
|
||||
|
||||
// Kill unit with max thirst or hunger
|
||||
if ((_thirst > 99.9 || {_hunger > 99.9}) && {random 1 < 0.5}) exitWith {
|
||||
if (["ace_medical"] call EFUNC(common,isModLoaded)) then {
|
||||
[_player, "Hunger/Thirst empty"] call EFUNC(medical_status,setDead);
|
||||
} else {
|
||||
_player setDamage 1;
|
||||
};
|
||||
[_player, "Hunger/Thirst empty"] call EFUNC(common,setDead);
|
||||
};
|
||||
|
||||
// Exit if unit is not awake, below are animation based consequences
|
||||
|
@ -28,6 +28,7 @@
|
||||
<Japanese>空腹</Japanese>
|
||||
<Russian>Голод</Russian>
|
||||
<French>Faim</French>
|
||||
<Spanish>Hambre</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Field_Rations_Hunger_Description">
|
||||
<English>%3Hunger%4 increases linearly with soldier's movement speed. Restore by eating food.<br/><br/>%3Usage:%4<br/>%2Pick up food.<br/>%2Use [%3%12%4] and select %3Survival%4.<br/>%2Choose an item to consume.</English>
|
||||
@ -39,6 +40,7 @@
|
||||
<Japanese>%3空腹度%4は兵士の移動速度に比例して増加します。食べ物を食べることで回復します。<br/><br/>%3使用方法:%4<br/>%2食べ物を持つ。<br/>%2[%3%12%4] を使って%3サバイバル%4を選択。<br/>%2食べたいものを選ぶ。</Japanese>
|
||||
<Russian>%3Голод%4 линейно увеличивается со скоростью передвижения солдата. Восстанавливайтесь, употребляя пищу.<br/><br/>%3 Использование:%4<br/>%2Возьмите еду.<br/>%2Используйте [%3%12%4] и выберите %3Выживание% 4.<br/>%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.<br/><br/>%3Utilisation:%4<br/>%2Ramasser la nourriture.<br/>%2Utilisez [%3%12%4] et sélectionnez %3Survie%4.<br/>%2Choisissez un article à consommer.</French>
|
||||
<Spanish>El %3Hambre%4 aumenta linealmente con los movimientos del soldado. Se reestablece comiendo comida.<br/><br/>%3Uso:%4<br/>%2Coger comida.<br/>%2Usar [%3%12%4] y seleccionar %3Sobrevivir%4.<br/>%2Elegir un objeto para consumir.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Field_Rations_Thirst_DisplayName">
|
||||
<English>Thirst</English>
|
||||
@ -50,6 +52,7 @@
|
||||
<Japanese>渇き</Japanese>
|
||||
<Russian>Жажда</Russian>
|
||||
<French>Soif</French>
|
||||
<Spanish>Sed</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Field_Rations_Thirst_Description">
|
||||
<English>%3Thirst%4 increases linearly with soldier's movement speed. Restore by drinking liquids.<br/><br/>%3Usage:%4<br/>%2Pick up a drink.<br/>%2Use [%3%12%4] and select %3Survival%4.<br/>%2Choose an item to consume.</English>
|
||||
@ -61,6 +64,7 @@
|
||||
<Japanese>%3喉の渇き%4は兵士の移動速度に比例して増加します。飲み物を飲むことで回復します。<br/><br/>%3使用方法:%4<br/>%2飲み物を持つ。<br/>%2[%3%12%4] を使って%3サバイバル%4を選択。<br/>%2飲みたいものを選ぶ。</Japanese>
|
||||
<Russian>%3Жажда%4 линейно увеличивается со скоростью передвижения солдата. Восстанавливайтесь, употребляя напитки.<br/><br/>%3 Использование:%4<br/>%2Возьмите напиток.<br/>%2Используйте [%3%12%4] и выберите %3Выживание% 4.<br/>%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.<br/><br/>%3Utilisez [%3%12%4] et choisissez %3survival%4.<br />%2Choisissez un article à boire.</French>
|
||||
<Spanish>La %3Sed%4 aumenta linealmente con la velocidad de movimiento del soldado. Se restaura bebiendo líquidos.<br/><br/>%3Uso:%4<br/>%2Selecciona una bebida.<br/>%2Usar [%3%12%4] y seleccionar %3Sobrevivir%4.<br/>%2Elegir un objeto para consumir.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Medical_Treatment_DisplayName">
|
||||
<English>Medical Treatment</English>
|
||||
@ -72,6 +76,7 @@
|
||||
<Japanese>治療</Japanese>
|
||||
<Russian>Медицинское лечение</Russian>
|
||||
<French>Traitement médical</French>
|
||||
<Spanish>Tratamiento Médico</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Medical_Treatment_Adenosine_ShortName">
|
||||
<English>Decrease Heart Rate</English>
|
||||
@ -83,6 +88,7 @@
|
||||
<Japanese>心拍数を下げる</Japanese>
|
||||
<Russian>Уменьшить частоту сердечных сокращений</Russian>
|
||||
<French>Diminution de la fréquence cardiaque</French>
|
||||
<Spanish>Disminuir Ritmo Cardíaco</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Medical_Treatment_Adenosine_Description">
|
||||
<English>%3Adenosine%4 is used to decrease heart rate.<br/><br/>%3Usage:%4<br/>%2Use [%3%13%4] or [%3%14%4] and select an appendage.<br/>%2Inject %3Adenosine%4.</English>
|
||||
@ -94,6 +100,7 @@
|
||||
<Japanese>%3アデノシン%4は心拍数を下げるのに使われます。<br/><br/>%3使用方法:%4<br/>%2[%3%13%4] または [%3%14%4] を使って四肢を選択します。<br/>%2そして%3アデノシン%4を注射します。</Japanese>
|
||||
<Russian>%3Аденозин%4 используется для снижения частоты сердечных сокращений.<br/><br/>%3Применение:%4<br/>%2Используйте [%3%13%4] или [%3%14%4] и выберите конечность.<br/>%2Введите %3Аденозин%4.</Russian>
|
||||
<French>L'%3adénosine%4 est utilisée pour réduire la fréquence cardiaque.<br/><br/>%3Utilisation:%4<br/>%2Utilisez [%3%13%4] ou [%3%14%4] et sélectionnez un membre.<br/>%2Injectez l'%3Adénosine%4.</French>
|
||||
<Spanish>La %3Adenosina%4 se usa para disminuir el ritmo cardíaco.<br/><br/>%3Uso:%4<br/>%2Uso [%3%13%4] o [%3%14%4] y selecciona una extremidad.<br/>%2Inyectar %3Adenosina%4.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Medical_Treatment_Bandages_DisplayName">
|
||||
<English>Bandages</English>
|
||||
@ -105,6 +112,7 @@
|
||||
<Japanese>包帯</Japanese>
|
||||
<Russian>Бинты</Russian>
|
||||
<French>Pansements</French>
|
||||
<Spanish>Vendas</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Medical_Treatment_Bandages_ShortName">
|
||||
<English>Close Wounds</English>
|
||||
@ -116,6 +124,7 @@
|
||||
<Japanese>傷口をふさぐ</Japanese>
|
||||
<Russian>Закрыть раны</Russian>
|
||||
<French>Fermer les plaies</French>
|
||||
<Spanish>Cerrar Heridas</Spanish>
|
||||
</Key>
|
||||
<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.<br/><br/>%2%3Field Dressing:%4<br/>%11<t color='#D9D900'>Average</t> In All Categories<br/>%2%3Packing Bandage:%4<br/>%11<t color='#D9D900'>Average</t> Treatment<br/>%11<t color='#E60000'>Higher</t> Reopen Chance<br/>%11<t color='#00CC00'>Longer</t> Reopen Delay<br/>%2%3Elastic Bandage:%4<br/>%11<t color='#00CC00'>Higher</t> Treatment<br/>%11<t color='#E60000'>Higher</t> Reopen Chance<br/>%11<t color='#E60000'>Shorter</t> Reopen Delay<br/>%2%3Quickclot:%4<br/>%11<t color='#E60000'>Lower</t> Treatment<br/>%11<t color='#00CC00'>Lower</t> Reopen Chance<br/>%11<t color='#00CC00'>Longer</t> Reopening Delay<br/><br/>%3Usage:%4<br/>%2Use [%3%13%4] or [%3%14%4] and select a injured body part.<br/>%2Bandage body part by selecting desired %3Bandage%4 type.</English>
|
||||
@ -125,6 +134,7 @@
|
||||
<German>%3Verbände%4 stoppen Blutungen und schließen Wunden. Abhängig von Ihren Einstellungen können sich Verbände wieder öffnen, wenn keine Operation durchgeführt wird.<br/><br/>%2%3Einfache Bandage:%4<br/>%11<t color='#D9D900'>Durchschnittlich</t> In allen Kategorien<br/>%2%3Mullbinde:%4<br/>%11<t color='#D9D900'>Durchschnittliche</t> Behandlung<br/>%11<t color='#E60000' >Höhere</t> Wiedereröffnungswahrscheinlichkeit<br/>%11<t color='#00CC00'>Längere</t> Wiedereröffnungsverzögerung<br/>%2%3Elastischer Verband:%4<br/>%11<t color='#00CC00'>Längere</t> Behandlung<br/>%11<t color='#E60000'>Höhere</t> Chance auf Wiedereröffnung<br/>%11<t color='#E60000'> Kürzere</t> Wiedereröffnungsverzögerung<br/>%2%3Quickclot:%4<br/>%11<t color='#E60000'>Kürzere</t> Behandlung<br/>%11<t color=' #00CC00'>Geringere</t> Wiedereröffnungswahrscheinlichkeit<br/>%11<t color='#00CC00'>Längere</t> Wiedereröffnungsverzögerung<br/><br/>%3Verwende:%4<br/> %2Verwenden Sie [%3%13%4] oder [%3%14%4] und wähle ein verletztes Körperteil aus.<br/>%2Verbinde ein Körperteil, indem der gewünschte %3Bandagen%4-Typ ausgewählt wurde.</German>
|
||||
<Italian>%3Bende%4 fermano emorragie e chiudono ferite. A seconda delle tue impostazioni, ferite bendate potrebbero riaprirsi se non suturate.<br/><br/>%2%3Bendaggio Basico:%4<br/>%11<t color='#D9D900'>Media</t> In tutte le categorie<br/>%2%3Bendaggio Compressivo:%4<br/>%11<t color='#D9D900'>Media</t> Trattamenti<br/>%11<t color='#E60000'>Alta</t> Probabilità di riapertura<br/>%11<t color='#00CC00'>Lungo</t> Tempo di riapertura<br/>%2%3Bendaggio Elastico:%4<br/>%11<t color='#00CC00'>Alto</t> Trattamento<br/>%11<t color='#E60000'>Alto</t> Probabilità di riapertura<br/>%11<t color='#E60000'>Breve</t> Tempo di riapertura<br/>%2%3Quickclot:%4<br/>%11<t color='#E60000'>Basso</t> Trattamento<br/>%11<t color='#00CC00'>Basso</t> Probabilità di riapertura<br/>%11<t color='#00CC00'>Lungo</t> Tempo di riapertura<br/><br/>%3Utilizzo:%4<br/>%2Usa [%3%13%4] o [%3%14%4] seleziona una parte del corpo ferita.<br/>%2Benda la parte del corpo ferita selezionando la %3Benda%4 desiderato.</Italian>
|
||||
<Japanese>%3包帯%4は傷口をとじて出血を止めます。設定によっては、手術を行わないと包帯が解けて傷が再開放し出血が再開する場合があります。<br/><br/>%2%3緊急圧迫包帯:%4<br/>%11<t color='#D9D900'>平均的な</t> 全体性能を持っています<br/>%2%3弾性包帯:%4<br/>%11<t color='#D9D900'>平均的な</t> 治療効果<br/>%11<t color='#E60000'>高い</t> 再解放の可能性<br/>%11<t color='#00CC00'>長い</t> 再解放の再計算間隔<br/>%2%3伸縮包帯:%4<br/>%11<t color='#00CC00'>高い</t> 治療効果<br/>%11<t color='#E60000'>高い</t> 再解放の可能性<br/>%11<t color='#E60000'>短い</t> 再解放の再計算間隔<br/>%2%クイッククロット:%4<br/>%11<t color='#E60000'>低い</t> 治療効果<br/>%11<t color='#00CC00'>低い</t> 再解放の可能性<br/>%11<t color='#00CC00'>長い</t> 再解放の再計算間隔<br/><br/>%3使用方法:%4<br/>%2[%3%13%4] または [%3%14%4] を使って身体の負傷個所を選択します。<br/>%2希望の%3包帯%4の種類を選択して部位に包帯を巻きます。</Japanese>
|
||||
<Spanish>Las %3Vendas%4 paran el sangrado y cierran las heridas. Dependiendo de las opciones configuradas, las heridas pueden reabrirse si no se realiza cirugía.<br/><br/>%2%3Vendaje de campaña:%4<br/>%11<t color='#D9D900'>Medio</t> en todas las categorias<br/>%2%3Vendaje compresivo:%4<br/>%11<t color='#D9D900'>Medio</t> Tratamiento<br/>%11<t color='#E60000'>Alto</t> Probabilidad de Reapertura<br/>%11<t color='#00CC00'>Larga</t> Retardo en reapertura<br/>%2%3Vendaje elástico:%4<br/>%11<t color='#00CC00'>Alto</t> Tratamiento<br/>%11<t color='#E60000'>Alto</t> Probabilidad de reapertura<br/>%11<t color='#E60000'>Corto</t> Retardo en reapertura<br/>%2%3Quickclot:%4<br/>%11<t color='#E60000'>Bajo</t> Tratamiento<br/>%11<t color='#00CC00'>Bajo</t> Probabilidad de Reapertura<br/>%11<t color='#00CC00'>Larga</t> Retardo en reapertura<br/><br/>%3Uso:%4<br/>%2Uso [%3%13%4] o [%3%14%4] y selecciona una parte del cuerpo herida.<br/>%2Venda la parte del cuerpo seleccionada eligiendo el tipo de %3Venda%4.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Medical_Treatment_IVFluids_DisplayName">
|
||||
<English>IV Fluids</English>
|
||||
@ -135,6 +145,7 @@
|
||||
<Italian>Fluidi EV</Italian>
|
||||
<Japanese>IV 輸液</Japanese>
|
||||
<French>IV Fluides</French>
|
||||
<Spanish>Fluidos IV</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Medical_Treatment_IVFluids_ShortName">
|
||||
<English>Restore Blood Volume</English>
|
||||
@ -146,6 +157,7 @@
|
||||
<Japanese>血液量を回復する</Japanese>
|
||||
<Russian>Внутривенные жидкости</Russian>
|
||||
<French>Restaurer le volume sanguin</French>
|
||||
<Spanish>Reestablece el volumen de sangre</Spanish>
|
||||
</Key>
|
||||
<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.<br/><br/>%3Usage:%4<br/>%2Use [%3%13%4] or [%3%14%4] and select an appendage.<br/>%2Restore blood volume by selecting desired %3IV Fluid%4 type.</English>
|
||||
@ -156,6 +168,7 @@
|
||||
<Italian>%3Fluidi EV%4 ristorano volume di sangue perso. Sangue, Plasma, e Salina sono funzionalmente identiche.<br/><br/>%3Utilizzo:%4<br/>%2Usa [%3%13%4] o [%3%14%4] e seleziona un arto.<br/>%2Ristora il volume di sangue selezionando il tipo di %3Fluido EV%4 desiderato.</Italian>
|
||||
<Japanese>%3IV 輸液%4は失われた血液を回復します。血液、血漿、生理食塩水は機能的には同じです。<br/><br/>%3使用方法:%4<br/>%2[%3%13%4] または [%3%14%4] を使って四肢を選択します。<br/>%2希望の%3IV 輸液%4の種類を選択して、血液量を復元します。</Japanese>
|
||||
<Russian>%%3Внутривенные жидкости%4восстанавливают потерянный объем крови. Кровь, плазма и физраствор функционально идентичны.<br/><br/>%3 Использование:%4<br/>%2 Используйте [%3%13%4] или [%3%14%4] и выберите добавку.<br/>%2 Восстановите объем крови выбрав желаемый %4тип %3жидкости</Russian>
|
||||
<Spanish>Los %3Fluidos IV%4 restauran el volumen de sangre. Sangre, Plasma, y Salino funcionan de manera similar.<br/><br/>%3Uso:%4<br/>%2Uso [%3%13%4] o [%3%14%4] y seleccionar una extremidad.<br/>%2Restaura el volumen de sangre seleccionando el tipo de %3Fluido IV%4 elegido.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Medical_Treatment_Epinephrine_ShortName">
|
||||
<English>Increase Heart Rate | Wake Up Faster</English>
|
||||
@ -167,6 +180,7 @@
|
||||
<Japanese>心拍数を上げる | はやく起こす</Japanese>
|
||||
<Russian>Увеличьте частоту сердечных сокращений | просыпайтесь быстрее</Russian>
|
||||
<French>Augmentation de la fréquence cardiaque - Réveil plus rapide</French>
|
||||
<Spanish>Incrementa el ritmo cardíaco | Despierta más rápido</Spanish>
|
||||
</Key>
|
||||
<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).<br/><br/>%3Usage%4<br/>%2Use [%3%13%4] or [%3%14%4] and select an appendage.<br/>%2Inject %3Epinephrine%4.</English>
|
||||
@ -176,6 +190,7 @@
|
||||
<German>%3Epinephrine%4 erhöht den Puls eines Patienten und verkürzt möglicherweise die Zeit zwischen Bewusstseinskontrollen (wodurch die Zeit, die der Patient zum Aufwachen benötigt, effektiv verkürzt wird).<br/><br/>%3Verwendung%4<br/>%2Verwende [%3%13%4] oder [%3%14%4] und wählen ein Körperteil aus.<br/>%2Injiziere %3Epinephrine%4.</German>
|
||||
<Italian>%3Epinefrina%4 aumenta il ritmo cardiaco di un paziente e riduce potenzialmente gli intervalli tra verifiche di coscienza (effettivamente riducendo il tempo necessario che questo paziente si svegli).<br/><br/>%3Utilizzo%4<br/>%2Usa [%3%13%4] o [%3%14%4] e seleziona un arto.<br/>%2Inietta %3Epinefrina%4.</Italian>
|
||||
<Japanese>%3アドレナリン%4は、患者の脈拍を増加させるだけでなく、意識チェックの間隔を短縮する可能性があります。 (患者が目覚めるまでに必要な時間を効果的に短縮します)<br/><br/>%3使用方法%4<br/>%2[%3%13%4] または [%3%14%4] を使って四肢を選択します。<br/>%2%3アドレナリン%4を注射します。</Japanese>
|
||||
<Spanish>La %3Epinefrina%4 aumenta el pulso del paciente así como potencialmente disminuye el tiempo entre las comprobaciones sobre consciencia (reduciendo de manera efectiva el tiempo de despertar del paciente).<br/><br/>%3Uso%4<br/>%2Usa [%3%13%4] o [%3%14%4] y selecciona una extremidad.<br/>%2Inyecta %3Epinefrina%4.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Medical_Treatment_PAK_ShortName">
|
||||
<English>Restore Like New</English>
|
||||
@ -187,6 +202,7 @@
|
||||
<Japanese>生まれたてのように回復する</Japanese>
|
||||
<Russian>Лечение тела</Russian>
|
||||
<French>Remettre comme neuf</French>
|
||||
<Spanish>Restaurar como nuevo</Spanish>
|
||||
</Key>
|
||||
<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.<br/><br/>%3Stable Condition%4 qualifies as:<br/>%2Unit is %3Alive%4.<br/>%2Unit is %3Conscious%4.<br/>%2Unit has no active %3Bleeding%4.<br/>%2Heart Rate >= 40.<br/>%2Systolic BP >= 60.<br/>%2Diastolic BP >= 50.<br/><br/>%3Usage:%4<br/>%2Move to appropriate location depending on %3ACE Settings%4.<br/>%2Use [%3%13%4] or [%3%14%4] and select %3Advanced Treatments%4<br/>%2Select %3Use Personal Aid Kit%4.</English>
|
||||
@ -196,6 +212,7 @@
|
||||
<German>Das %3Persönliche Erste Hilfe Kit%4 ist ein Gegenstand, der es einem Soldaten ermöglicht, vollständig geheilt zu werden. Unabhängig von den %3ACE-Einstellungen%4 ist es erforderlich, dass sich der Patient vor der Verwendung in einem %3stabilen Zustand%4 befindet.<br/><br/>%3Stabiler Zustand%4 gilt wenn:<br/>%2Einheit ist %3am Leben%4 .<br/>%2Einheit ist %3Bei Bewusstsein%4.<br/>%2Einheit hat keine aktive %3Blutung%4.<br/>%2Herzfrequenz >= 40.<br/>%2Systolischer Blutdruck >= 60.< br/>%2Diastolischer Blutdruck >= 50.<br/><br/>%3Verwende:%4<br/>%2Bewege den Patienten je nach %3ACE-Einstellungen%4 an den entsprechenden Ort.<br/>%2Verwende [%3% 13%4] oder [%3%14%4] und wähle %3Erweiterte Behandlungen%4<br/>%2Wähle %3Persönliche Erste Hilfe Kit verwenden%4.</German>
|
||||
<Italian>Il %3Kit di Pronto Soccorso%4 è un oggetto che permette di curare completamente un soldato, indipendentemente da %3impostazioni ACE%4, richiede che il paziente sia in %3condizione stabile%4 prima dell'utilizzo.<br/><br/>%3Condizione stabile%4 significa:<br/>%2Paziente è %3Vivo%4.<br/>%2Paziente è %3Conscio%4.<br/>%2Paziente non sta %3Sanguinando%4.<br/>%2Ritmo cardiaco >= 40.<br/>%2Sistolico BC >= 60.<br/>%2Diastolico BC >= 50.<br/><br/>%3Utilizzo:%4<br/>%2Sposta in luogo specifico a seconda delle %3impostazioni ACE%4.<br/>%2Usa [%3%13%4] o [%3%14%4] e seleziona %3Trattamenti avanzati%4<br/>%2Seleziona %3Usa Kit di Pronto Soccorso%4.</Italian>
|
||||
<Japanese>%3個人用治療キット%4は、兵士を完全に回復できるアイテムです。使用時には%3ACE 設定%4と関係なく、対象の患者が%3安定状態%4である必要があります。<br/><br/>%3安定状態%4とは次の状態です:<br/>%2ユニットが %3生存%4している。<br/>%2ユニットが %3覚醒状態%4である。<br/>%2ユニットが %3出血状態%4ではない。<br/>%2心拍数が40以上。<br/>%2収縮期血圧が60以上。<br/>%2拡張期血圧が50以上。<br/><br/>%3使用方法:%4<br/>%2%3ACE 設定%4で使用が許可された場所へ移動する。<br/>%2[%3%13%4] または [%3%14%4] を使って%3高度な治療%4を選択する。<br/>%2%3個人用治療キットを使う%4を選択して使用します。</Japanese>
|
||||
<Spanish>El %3Kit de Primeros Auxilios%4 es un objeto que permite al soldado ser curado totalmente. Independientemente de las %3Opciones de ACE%4, requiere que el paciente esté en %3Condición Estable%4 antes de usarse.<br/><br/>%3Condición Estable%4 significa que:<br/>%2La unidad está %3Viva%4.<br/>%2La unidad está %3Consciente%4.<br/>%2La unidad no está %3Sangrando%4.<br/>%2Ritmo Cardíaco >= 40.<br/>%2Presión Sistólica >= 60.<br/>%2Presión Diastólica >= 50.<br/><br/>%3Uso:%4<br/>%2Mover al lugar adecuado dependiendo de las%3Opciones de ACE%4.<br/>%2Uso [%3%13%4] o [%3%14%4] y seleccionar %3Tratamientos Avanzados%4<br/>%2Seleccionar %3Usar Kit de Primeros Auxilios%4.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Medical_Treatment_Splint_ShortName">
|
||||
<English>Fix Fractures</English>
|
||||
@ -207,6 +224,7 @@
|
||||
<Japanese>骨折を治す</Japanese>
|
||||
<Russian>Исправлять переломы</Russian>
|
||||
<French>Réparation des fractures</French>
|
||||
<Spanish>Curar Fracturas</Spanish>
|
||||
</Key>
|
||||
<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.<br/><br/>%3Usage:%4<br/>%2Use [%3%13%4] or [%3%14%4] and select an affected appendage.<br/>%2Select %3Apply Splint%4.</English>
|
||||
@ -216,6 +234,7 @@
|
||||
<German>Ein %3Splint%4 wird zur Fixierung von Frakturen verwendet. Der %3Splint%4 wird bei Verwendung verbraucht.<br/><br/>%3Verwendung:%4<br/>%2Verwende [%3%13%4] oder [%3%14%4] und wählen ein Körperteil aus.<br/>%2Wähle %3Schiene verwenden%4.</German>
|
||||
<Italian>Una %3Gessatura%4 è usata per risolvere fratture. La %3Gessatura%4 è consumata quando usata.<br/><br/>%3Utilizzo:%4<br/>%2Usa [%3%13%4] o [%3%14%4] e seleziona un arto afflitto.<br/>%2Seleziona %3Applica Gessatura%4.</Italian>
|
||||
<Japanese>%3添え木%4は骨折の治療に使います。%3添え木%4は使用時に消費します。<br/><br/>%3使用方法:%4<br/>%2[%3%13%4] または [%3%14%4] を使って使用したい四肢を選択します。<br/>%2%3添え木を当てる%4を選択して使用します。</Japanese>
|
||||
<Spanish>La %3Férula%4 se utiliza para curar fracturas. La %3Férula%4 se consume cuando es usada.<br/><br/>%3Uso:%4<br/>%2Usar [%3%13%4] o [%3%14%4] y seleccionar la extremidad adecuada.<br/>%2Seleccionar %3Aaplicar Férula%4.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Medical_Treatment_SurgicalKit_ShortName">
|
||||
<English>Prevent Wounds From Reopening</English>
|
||||
@ -226,6 +245,7 @@
|
||||
<Japanese>傷口が開くのを防ぐ</Japanese>
|
||||
<Russian>Предотвратить повторное открытие ран</Russian>
|
||||
<French>Empêcher la réouverture des plaies</French>
|
||||
<Spanish>Prevenir la reapertura de heridas</Spanish>
|
||||
</Key>
|
||||
<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.<br/><br/>%3Usage:%4<br/>%2Use [%3%13%4] or [%3%14%4] and select %3Advanced Treatment%4.<br/>%2Select %3Use Surgical Kit%4.</English>
|
||||
@ -234,6 +254,7 @@
|
||||
<Portuguese>O %3Kit Cirúrgico%4 é utilizado para prevenir a reabertura de feridas após a aplicação de bandagens. A depender das configurações, ele também pode remover traumas e pode requerir %3Suturas%4 adicionais para fechar feridas. Suturas são consumíveis, tal como as bandagens, e não são substituem o Kit Cirúrgico.<br/><br/>%3Uso:%4<br/>%2Utilize [%3%13%4] ou [%3%14%4] e selecione %3Tratamento Avançado%4.<br/>%2Selecione %3Usar Kit Cirúrgico%4.</Portuguese>
|
||||
<Italian>Un %3Kit Chirurgico%4 è usato per impedire che ferite bendate si riaprano. A seconda delle impostazioni, può anche azzerare danni o potrebbe richiedere %3Suture%4 aggiuntive per chiudere ferite. Suture sono consumabili proprio come bende, non sono un sostituto per un Kit Chirurgico.<br/><br/>%3Utilizzo:%4<br/>%2Usa [%3%13%4] o [%3%14%4] e seleziona %3Trattamenti Avanzati%4.<br/>%2Seleziona %3Usa Kit Chirurgico%4.</Italian>
|
||||
<Japanese>%3手術キット%4は包帯を巻いた傷口が再度開いて出血するのを防ぎます。設定によっては、負傷を取り除いたり、傷口を閉じるのに%3糸付縫合針%4を必要としたりします。糸付縫合針は消耗品で包帯のように使用され、手術キットを代替するものではありません。<br/><br/>%3使用方法:%4<br/>%2[%3%13%4] または [%3%14%4] を使って%3高度な治療%4を選択する。<br/>%2%3手術キット%4を選択して使用します。</Japanese>
|
||||
<Spanish>El %3Kit Quirúrgico%4 se usa para prevenir la reapertura de heridas despues de ser vendadas. Dependiendo de las opciones, tambien puede curar traumatismos y puede requerir %3Sutura%4 adicional para cerrar las heridas. Las Suturas son consumibles, al igual que las vendas, y no son un reemplazo para el Kit Quirúgico.<br/><br/>%3Uso:%4<br/>%2Usar [%3%13%4] o [%3%14%4] y seleccionar %3Tratamientos Avanzados%4.<br/>%2Seleccionar %3Usar Kit Quirúgico%4.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Medical_Treatment_CAT_ShortName">
|
||||
<English>Stop Bleeding</English>
|
||||
@ -244,6 +265,7 @@
|
||||
<Japanese>出血を止める</Japanese>
|
||||
<Russian>Остановить кровотечение</Russian>
|
||||
<French>Arrêter les saignements</French>
|
||||
<Spanish>Parar Sangrado</Spanish>
|
||||
</Key>
|
||||
<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.<br/><br/>%3Usage:%4<br/>%2Use [%3%13%4] or [%3%14%4] and select an affected appendage.<br/>%2Select %3Apply Tourniquet%4.</English>
|
||||
@ -252,6 +274,7 @@
|
||||
<Portuguese>O %3Torniquete%4 interrompe o sangramento temporariamente, para que feridas possam ser enfaixadas. Seu uso é restrito aos membros.<br/><br/>%3Uso:%4<br/>%2Utilize [%3%13%4] ou [%3%14%4] e selecione um membro afetado.<br/>%2Selecione %3Aplicar Torniquete%4.</Portuguese>
|
||||
<Italian>Un %3Laccio Emostatico%4 ferma emorragie temporaneamente in modo da poter bendare ferite con calma. Utilizzabile su arti.<br/><br/>%3Utilizzo:%4<br/>%2Usa [%3%13%4] o [%3%14%4] e seleziona un arto afflitto.<br/>%2Seleziona %3Applica Laccio Emostatico%4.</Italian>
|
||||
<Japanese>%3止血帯%4は一時的に出血を止め、その間に傷に包帯を巻くことができます。四肢にのみ使用できます。<br/><br/>%3使用方法:%4<br/>%2[%3%13%4] または [%3%14%4] を使って使用したい四肢を選択します。<br/>%2%3止血帯を巻く%4を選択して使用します。</Japanese>
|
||||
<Spanish>El %3Torniquete%4 para temporalmente el sangrado hasta que la herida sea vendada. Sólo puede ser usado en extremidades.<br/><br/>%3Uso:%4<br/>%2Usar [%3%13%4] o [%3%14%4] y seleccionar la extremidad afectada.<br/>%2Seleccionar %3Aplicar Torniquete%4.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Medical_Treatment_MedicalMenu_DisplayName">
|
||||
<English>Medical Menu</English>
|
||||
@ -277,6 +300,7 @@
|
||||
<Portuguese>Tratamento, Simplificado</Portuguese>
|
||||
<Japanese>治療を簡略化する</Japanese>
|
||||
<French>Traitement, simplifié</French>
|
||||
<Spanish>Tratamiento, Simplificado</Spanish>
|
||||
</Key>
|
||||
<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.<br/><br/>%3Usage:%4<br/>%2Use [%3%14%4] while looking at a patient to open the Medical Menu. Opening the menu without a patient allows for self-treatment.<br/>%2Alternatively, use [%3%12%4] or [%3%13%4] and select %3Medical Menu%4.<br/><br/>%3Keybinds:%4<br/>%2Use [%3W, A, S, D, X, and Z%4] to select body parts.<br/>%2Use your %3number keys%4 to select treatment categories.</English>
|
||||
@ -285,6 +309,7 @@
|
||||
<Portuguese>O %3Menu Médico%4 é uma %3interface%4 dedicada a facilitar o %3tratamento médico%4. As letras %3R%4 e %3L%4 indicam o lado do corpo do paciente que está recebendo o tratamento.<br/><br/>%3Uso:%4<br/>%2Utilize [%3%14%4] enquanto olha o paciente para abrir o Menu Médico. Se não houver paciente, o menu será de auto-tratamento.<br/>%2Alternativamente, utilize [%3%12%4] ou [%3%13%4] e selecione %3Menu Médico%4.<br/><br/>%3Atalhos de teclado:%4<br/>%2Utilize [%3W, A, S, D, X, e Z%4] para selecionar partes do corpo.<br/>%2Utilize as %3teclas numéricas%4 para selecionar as categorias de tratamento.</Portuguese>
|
||||
<Italian>Il %3Menù Medico%4 è un'%3interfaccia%4 dedicata a facilitare %3trattamenti medici%4. Le lettere %3Dx%4 e %3Sx%4 contrassegnano i lati del corpo del paziente che si stanno medicando.<br/><br/>%3Utilizzo:%4<br/>%2Usa [%3%14%4] guardando il paziente per aprire il Menù Medico. Aprire il menù senza paziente di fronte permette l'automedicazione.<br/>%2In alternativa, usa [%3%12%4] o [%3%13%4] e seleziona %3Menù Medico%4.<br/><br/>%3Comandi:%4<br/>%2Usa [%3W, A, S, D, X, and Z%4] per selezionare parti del corpo.<br/>%2Usa %3tasti numerici%4 per selezionare categorie di cure.</Italian>
|
||||
<Japanese>%3医療メニュー%4は%3治療%4をしやすくするための専用%3インターフェース%4です。%3右%4と%3左%4の文字は治療を受ける患者の向きを表しています。<br/><br/>%3使用方法:%4<br/>%2[%3%14%4] を患者に視点を合わせながら押すことで患者の医療メニューを開けます。視点を合わせないで押すと、自分の医療メニューを開くことが出来ます。<br/>%2もしくは [%3%12%4] または [%3%13%4] を使って%3医療メニュー%4を選択します。<br/><br/>%3キーバインド:%4<br/>%2[%3W, A, S, D, X, と Zキー%4] を使って身体の部位を選択できます。<br/>%2%3数字キー%4を使って治療項目を選択できます。</Japanese>
|
||||
<Spanish>El %3Menú Médico%4 es una %3interfaz%4 dedicada para facilitar el %3tratamiento médico%4. Las letras %3R%4 and %3L%4 indican el lado del paciente siendo tratado.<br/><br/>%3Uso:%4<br/>%2Usar [%3%14%4] mientras se mira al paciente para abrir el Menú Médico. Abrir el menú sin mirar a un paciente permite el tratamiento a uno mismo. <br/>%2Alternativamente, usar [%3%12%4] o [%3%13%4] y seleccionar %3Menú Médico%4.<br/><br/>%3Teclas asociadas:%4<br/>%2Usar [%3W, A, S, D, X, and Z%4] para seleccionar las partes del cuerpo.<br/>%2Usar las %3teclas numéricas%4 para seleccionar las categorías de tratamiento.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_ATragMX_ShortName">
|
||||
<English>Portable, Precise, Rugged</English>
|
||||
@ -294,6 +319,7 @@
|
||||
<Italian>Leggero, Preciso, Robusto</Italian>
|
||||
<Japanese>高機動、高精度、高耐久</Japanese>
|
||||
<French>Portable, précis, robuste</French>
|
||||
<Spanish>Portable, Preciso, Robusto</Spanish>
|
||||
</Key>
|
||||
<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.<br/><br/>%3Usage:%4<br/>Please visit the wiki page for more information.</English>
|
||||
@ -302,6 +328,7 @@
|
||||
<Portuguese>O %3Horus ATragMX%4 considera condições atmosféricas, dados de armas, munição, alcance, e velocidade do projétil - e até os efeitos Coriolis e Spin - para calcular as configurações necessárias da mira. O %3ATragMX%4, carregado em um computador portátil feito pela %3TDS Recon%4, é rápido e fácil de usar. O %3Recon%4 satisfaz os rigorosos padrões militares %3MIL-STD-810F%4 para quedas, vibrações, umidade, altitude e temperaturas extremas.<br/><br/>%3Uso:%4<br/>Por favor, visite a wiki para mais informações.</Portuguese>
|
||||
<Italian>L'%3Horus ATragMX%4 tiene conto di condizioni atmosferiche, caratteristiche del fucile, munizioni, portata e velocità alla volata per calcolare precise impostazioni di mira con risultati %3Come-Up%4 - considerando anche effetti %3Coriolis%4 e %3Magnus%4. L'%3ATragMX%4, caricato su un computer portabile %3TDS Recon%4, è facile da usare e molto rapido nei calcoli. Il %3Recon%4 soddisfa i rigorosi standard militari %3MIL-STD-810F%4 per cadute, vibrazioni, umidità, altitudine e temperature estreme.<br/><br/>%3Utilizzo:%4<br/>Visitate la pagina wiki per ulteriori informazioni.</Italian>
|
||||
<Japanese>%3ホルス ATragMX%4は、大気条件、銃のデータ、弾薬、射程、速度、および初速を考慮した%3最適な結果が得られる%4正確な照準のための計算とその解法を提供します。さらに、%3コリオリ効果%4および%3スピン ドリフト効果%4も考慮します。%3ATragMX%4は%3TDS Recon製%4の携帯コンピュータに読み込まれており、使いやすく、超高速です。%3Recon%4はは、落下、振動、湿度、高度、極端な温度に関する厳格な%3MIL-STD-810F%4軍事規格を満たしています。<br/><br/>%3使用方法:%4<br/>詳細については、Wiki ページを参照してください。</Japanese>
|
||||
<Spanish>El %3Horus ATragMX%4 tiene en cuenta las condiciones atmosféricas, datos del arma, munición, distancia, velocidad y velocidad en boca para calcular con precisión soluciones de tiro precisas con %3Resultados%4 - e incluso tiene en cuenta los efectos %3Coriolis%4 y %3Movimiento Giroscópico%4. %3ATragMX%4, cargado en un ordenador portátil fabricado por %3TDS Recon%4, es facil de usar y muy rápido. El %3Recon%4 cumple con los rigurosos estándares militares %3MIL-STD-810F%4 en cuanto a caidas, vibraciones, humedad, altitud y temperaturas extremas.<br/><br/>%3Uso:%4<br/>Por favor, visita la página de la Wiki para más información.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_BodyBag_ShortName">
|
||||
<English>Bring Out Your Dead</English>
|
||||
@ -311,6 +338,7 @@
|
||||
<Italian>Recupera i tuoi morti</Italian>
|
||||
<Japanese>死者を連れ出す</Japanese>
|
||||
<French>Récupérez vos morts</French>
|
||||
<Spanish>Trae de vuelta a los muertos</Spanish>
|
||||
</Key>
|
||||
<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.<br/><br/>%3Usage:%4<br/>%2Approach a dead body.<br/>%2Use [%3%13%4] or [%3%15%4] and select %3Place Body In Bodybag%4.</English>
|
||||
@ -319,6 +347,7 @@
|
||||
<Portuguese>OS %3Sacos de Cadáver%4 são utilizados para transportar cadáveres. Eles podem ser arrastados e embarcados em veículos.<br/><br/>%3Uso:%4<br/>%2Aproxime-se de um cadáver.<br/>%2Utilize [%3%13%4] ou [%3%15%4] e selecione %3Colocar cadáver dentro do saco%4.</Portuguese>
|
||||
<Italian>%3Sacche per cadaveri%4 sono usate per trasportare i morti. Possono essere trascinate e caricate su veicoli.<br/><br/>%3Utilizzo:%4<br/>%2Avvicinati ad un morto.<br/>%2Usa [%3%13%4] o [%3%15%4] e seleziona %3Metti il corpo nella sacca per cadaveri%4.</Italian>
|
||||
<Japanese>%3遺体袋%4は、遺体の輸送に使用されます。引きずって車両に積み込むことができます。<br/><br/>%3使用方法:%4<br/>%2遺体に近寄る。<br/>%2[%3%13%4] または [%3%15%4] を使って%3遺体袋に入れる%4を選択して使用します。</Japanese>
|
||||
<Spanish>Las %3Bolsas para Cadáveres%4 se usan para transportar cadáveres. Pueden ser arrastradas y cargadas en vehículos. <br/><br/>%3Uso:%4<br/>%2Acercarse a un cadáver.<br/>%2Usar [%3%13%4] o [%3%15%4] y seleccionar %3Colocar cuerpo en la Bolsa para Cadáveres%4.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_CableTie_ShortName">
|
||||
<English>Take Prisoners</English>
|
||||
@ -328,6 +357,7 @@
|
||||
<Italian>Prendi prigionieri</Italian>
|
||||
<Japanese>捕虜の捕り方</Japanese>
|
||||
<French>Faire des prisonniers</French>
|
||||
<Spanish>Tomar prisioneros</Spanish>
|
||||
</Key>
|
||||
<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.<br/><br/>%3Usage:%4<br/>%2Approach the unit and use the [%3%13%4].<br/>%2The interaction is located around the hands in the form of a handcuffs icon.<br/>%2Repeat to release.</English>
|
||||
@ -336,6 +366,7 @@
|
||||
<Portuguese>As %3Algema Plásticas%4 permitem a captura e detenção de soldados. Quando apreendidos, o captor se torna capaz de inspecionar os pertences do prisioneiro, liberá-los, ou acompanhá-los a outro local. Transportes mais longos também são possíveis, podendo colocá-los em veículos, se necessário. A depender das configurações, pode ser necessário que as unidades estejam rendidas antes de serem detidas.<br/><br/>%3Uso:%4<br/>%2Aproxime-se da unidade e use [%3%13%4].<br/>%2A interação encontra-se próxima às mãos simbolizada por uma algema.<br/>%2Faça o mesmo para liberar.</Portuguese>
|
||||
<Italian>%3Fascette%4 permettono a soldati di catturare e ammanettare altri soldati. Una volta catturati è possibile ispezionare il loro inventario, liberarli o scortarli altrove. È inoltre possibile caricarli su veicoli se necessario. A seconda delle impostazioni, potrebbe essere necessaria la resa di unità prima di poterle ammanettare.<br/><br/>%3Uso:%4<br/>%2Avvicinati all'unità e usa [%3%13%4].<br/>%2L'interazione è localizzata intorno alle mani con l'icona di manette.<br/>%2Ripeti per liberare.</Italian>
|
||||
<Japanese>%3ケーブル タイ%4は兵士が他の兵士を拘束できるようにします。一度拘束すれば、拘束者は捕虜の所持品を検査したり、釈放したり、別の場所に移送することができるようになります。必要に応じて車両に積み込むなどして捕虜の輸送や護送も可能です。設定によっては、ユニットは捕虜になる前に降伏する必要がある場合があります。<br/><br/>%3使用方法:%4<br/>%2対象に近づいて [%3%13%4] を使います。<br/>%2インタラクションは、手錠アイコンの形で手のあたりに表示されます。<br/>%2同様の方法で解放できます。</Japanese>
|
||||
<Spanish>Las %3Bridas%4 permiten a un soldado capturar y detener a otro soldado. Una vez atado, el capturador tiene la habilidad de inspeccionar las pertenencias del prisionero, liberarles de nuevo o transportarles a otro área diferente. Transportar prisioneros escoltados tambien es posible, incluído montarles en vehículos si es necesario. Dependiendo de las opciones, puede requerirse que las unidades se rindan antes de ser capturados.<br/><br/>%3Uso:%4<br/>%2Acercarse a la unidad y usar el [%3%13%4].<br/>%2El punto de interacción se situa sobre las manos en forma de un icono de unas esposas.<br/>%2Repetir el paso para liberar.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_Cellphone_ShortName">
|
||||
<English>Phone In An Explosion</English>
|
||||
@ -345,6 +376,7 @@
|
||||
<Italian>Cellulare per esplosivi</Italian>
|
||||
<Japanese>電話でドカン</Japanese>
|
||||
<French>Explosifs téléphone portable</French>
|
||||
<Spanish>Teléfono explosivo</Spanish>
|
||||
</Key>
|
||||
<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.<br/><br/>%3Usage:%4<br/>%2Place an explosive.<br/>%2Use [%3%13%4], select %3Explosives%4, and select %3Cellphone%4.<br/>%2Open the cellphone interface with [%3%12%4].<br/>%2Navigate the phone book with the arrows and select your calling number.<br/>%2Call the number to detonate.</English>
|
||||
@ -353,6 +385,7 @@
|
||||
<Portuguese>O %3Celular%4 serve como dispositivo de detonação ao explosivo. Utilize-o para conectar e detonar dispositivos explosivos. Múltiplos dispositivos podem estar conectados ao celular e aparecerão na lista telefônica.<br/><br/>%3Uso:%4<br/>%2Plante o explosivo.<br/>%2Utilize [%3%13%4], selecione %3Explosivos%4, e selecione %3Celular%4.<br/>%2Abra a interface do celular com [%3%12%4].<br/>%2Navegue pela lista telefônica utilizando as setas e selecione o número desejado.<br/>%2Ligue para o número para detonar.</Portuguese>
|
||||
<Italian>Il %3Cellulare%4 è essenzialmente una %3spoletta%4. Usalo per collegare e detonare esplosivi. Molteplici esplosivi possono essere collegati ad un cellulare e detonati chiamando numeri nella rubrica.<br/><br/>%3Utilizzo:%4<br/>%2Piazza un esplosivo.<br/>%2Usa [%3%13%4], seleziona %3Esplosivi%4, seleziona %3Cellulare%4.<br/>%2Apri l'interfaccia del telefono con [%3%12%4].<br/>%2Naviga la rubrica con le freccette e seleziona il numero da chiamare.<br/>%2Chiama il numero del dispositivo da detonare.</Italian>
|
||||
<Japanese>%3携帯電話%4は%3点火装置%4として機能します。爆破装置を接続して起爆するために使用します。複数のデバイスを携帯電話に繋ぎ、電話帳から呼び出すことができます。<br/><br/>%3使用方法:%4<br/>%2爆発物を設置。<br/>%2[%3%13%4] を使い、%3爆発物%4を選択して、%3携帯電話%4を選択します。<br/>%2[%3%12%4] を使って携帯電話インターフェースを開きます。<br/>%2矢印ボタンで電話帳に移動し、発信番号を選択します。<br/>%2電話を掛けることで起爆します。</Japanese>
|
||||
<Spanish>El %3Teléfono%4 es funcionalmente un %3Detonador%4. Úsalo para conectarlo y detonar un dispositivo explosivo. Múltiples dispositivos pueden ser conectados al teléfono y llamados desde la agenda de contactos.<br/><br/>%3Uso:%4<br/>%2Colocar un explosivo.<br/>%2Usar [%3%13%4], seleccionar %3Explosivos%4, y seleccionar %3Teléfono%4.<br/>%2Abrir la interfaz del teléfono con [%3%12%4].<br/>%2Navegar por la agenda de contactos con las flechas y selecciona el número a llamar.<br/>%2Llamar al número para detonarlo.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_Chemlight_Shield_ShortName">
|
||||
<English>Portable Reading Lights</English>
|
||||
@ -362,6 +395,7 @@
|
||||
<Italian>Luci da Lettura Portabili</Italian>
|
||||
<Japanese>携帯読書灯</Japanese>
|
||||
<French>Lampes de lecture portables</French>
|
||||
<Spanish>Luces de Lectura Portátiles</Spanish>
|
||||
</Key>
|
||||
<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.<br/><br/>%3Usage:%4<br/>%2Use [%3%12%4] and select %3Equipment%4.<br/>%2elect %3Chemlights%4 and %3Prepare Chemlight Shield (Color)%4.<br/>%2Open %3Map%4.<br/>%2Use [%3%12%4] and select %3Flashlights%4 where you will find your chemlight shield.</English>
|
||||
@ -370,6 +404,7 @@
|
||||
<Portuguese>Os %3Protetores de Bastão de Luz%4 possibilitam a leitura de mapas em ambientes escuros. Todavia, quando utilizados, eles iluminam parcialmente os seus arredores.<br/><br/>%3Uso:%4<br/>%2Utilize [%3%12%4] e selecione %3Equipamento%4.<br/>%2Selecione %3Bastões de Luz%4 e %Preparar Protetor de Bastão de Luz (Cor)%4.<br/>%2Abrir %3Mapa%4.<br/>%2Utilize [%3%12%4] e selecione %3Lanternas%4 onde você encontrará o seu bastão de luz.</Portuguese>
|
||||
<Italian>%3Scudi per Luci Chimiche%4 permettono di leggere la mappa anche in ambienti bui. Il loro utilizzo comporta però un leggero effetto di luminosità intorno alla testa del giocatore.<br/><br/>%3Utilizzo:%4<br/>%2Usa [%3%12%4] e seleziona %3Eqipaggiamenti%4.<br/>%2Seleziona %3Luce Chimica%4 e %3Prepara Scudo Luce Chimica (Colore)%4.<br/>%2Apri %3Mappa%4.<br/>%2Usa [%3%12%4] e seleziona %3Torcia%4 dove troverai il tuo scudo per luce chimica.</Italian>
|
||||
<Japanese>%3ケミライト シールド%4を使用すると、暗い環境でも地図を読み取ることができます。ただし、%3ケミライト シールド%4を使用すると、周囲がわずかに光ります。<br/><br/>%3使用方法:%4<br/>%2[%3%12%4] を使って%3装備%4を選択します。<br/>%2%3ケミライト%4を選択し%3ケミライト シールドを使う (色)%4を選択します。<br/>%2%3マップ%4を開きます。<br/>%2[%3%12%4] を使って%3フラッシュライト%4を選択し、ケミライト シールドを選択します。</Japanese>
|
||||
<Spanish>Los %3Protectores de Luz Química%4 proveen la habilidad de poder leer mapas en entornos oscuros. No obstante, cuando se usan los, %3Protectores de Luz Química%4, tendrás un ligero brillo alrededor tuyo.<br/><br/>%3Uso:%4<br/>%2Usar [%3%12%4] y seleccionar %3Equipamiento%4.<br/>%2Seleccionar %3Luces químicas%4 y %3Preparar Protector de Luz Química (Color)%4.<br/>%2Abrir %3Mapa%4.<br/>%2Usar [%3%12%4] y seleccionar %3Linternas%4 donde encontrarás el protector de luz química.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_Clackers_ShortName">
|
||||
<English>Remote Detonation</English>
|
||||
@ -379,6 +414,7 @@
|
||||
<Italian>Detonazione da remoto</Italian>
|
||||
<Japanese>リモコン爆弾</Japanese>
|
||||
<French>Détonation à distance</French>
|
||||
<Spanish>Detonación Remota</Spanish>
|
||||
</Key>
|
||||
<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.<br/><br/>%3Usage:%4<br/>%2Place an explosive.<br/>%2Use [%3%13%4], select %3Explosives%4, and select the %3Clacker%4 you wish to link to.<br/>%2Open the ACE interface with [%3%12%4].<br/>%2Select %3Explosives%4 and select a %3Clacker%4.<br/>%2Select the %3Explosive%4 you wish to detonate.</English>
|
||||
@ -386,6 +422,7 @@
|
||||
<Korean>%3격발기%4를 사용하여 폭발물을 연결하고 폭발시킬 수 있습니다. 여러 폭발물을 다른 채널에 연결하여 폭발시킬 수도 있습니다.<br/><br/>%3사용 방법:%4<br/>%2폭발물을 설치합니다.<br/>%2[%3%13%4]를 사용하여 %3폭발물%4을 선택하고 연결할 %3격발기%4를 선택하십시오.<br/>%2[%3%12%4] 키로 ACE 인터페이스를 여십시오.<br/>%2%3폭발물%4을 선택하고 %3격발기%4를 선택하십시오.<br/>%2%3폭발물%4을 선택하면 폭발합니다.</Korean>
|
||||
<Italian>Usa %3Spolette%4 per collegare e detonare dispositivi esplosivi. Molteplici dispositivi possono essere collagati a una spoletta e detonati individualmente come vari canali.<br/><br/>%3Utilizzo:%4<br/>%2Piazza esplosivo.<br/>%2Usa [%3%13%4], seleziona %3Esplosivo%4, seleziona la %3Spoletta%4 a cui intendi collegarlo.<br/>%2Apri l'interfaccia ACE con [%3%12%4].<br/>%2Seleziona %3Esplosivi%4 e scegli una %3Spoletta%4.<br/>%2Seleziona un %3Explosivo%4 da detonare.</Italian>
|
||||
<Japanese>%3点火装置%4を爆破装置に接続し使用することで起爆することが出来ます。複数の爆破装置を接続しそれぞれ違うチャンネルから起爆することもできます。<br/><br/>%3使用方法:%4<br/>%2爆発物を設置。<br/>%2[%3%13%4] を使い、%3爆発物%4を選択して、接続したい%3点火装置%4を選択します。<br/>%2ACEインターフェースを [%3%12%4] で開きます。<br/>%2%3爆発物%4を選択し、%3点火装置%4を選びます。<br/>%2起爆したい%3爆破装置%4を選択します。</Japanese>
|
||||
<Spanish>Utiliza los %3Detonadores%4 para conectar y detonar un explosivo. Múltiple dispositivos pueden ser conectados a un detonador y detonados en diferentes canales.<br/><br/>%3Uso:%4<br/>%2 Coloca un explosivo.<br/>%2Usar [%3%13%4], seleccionar %3Explosivos%4, y selecciona el %3Detonador%4 al que quieres conectarlo.<br/>%2Abre la interfaz de ACE con [%3%12%4].<br/>%2Selecciona %3Explosivos%4 y selecciona un %3Detonador%4.<br/>%2Selecciona el %3Explosivo%4 que quieres detonar.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_DAGR_ShortName">
|
||||
<English>Navigate</English>
|
||||
@ -395,6 +432,7 @@
|
||||
<Japanese>測位</Japanese>
|
||||
<Russian>Навигация</Russian>
|
||||
<French>Naviguer</French>
|
||||
<Spanish>Navegar</Spanish>
|
||||
</Key>
|
||||
<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.<br/><br/>%3Usage:%4<br/>%2Equip a %3DAGR%4.<br/>%2Use [%3%12%4] and select %3Configure%4 or %3Toggle%4.<br/><br/>The following menus are available when configuring your %3DAGR:%4<br/>%11%2Data View: WIP<br/>%11%2GoTo WP: Select a waypoint to track.<br/>%11%2WP List: Add/Edit/Remove waypoints.<br/>%11%2Connect To: Connect %3DAGR%4 to the %3Vector 21 Rangefinder%4.<br/>%11%2Options</English>
|
||||
@ -402,6 +440,7 @@
|
||||
<Korean>%3DAGR%4은 %3마이크로DAGR GPS%4의 단순화 버전입니다. 유사한 기능을 가지고 있지만 %3마이크로DAGR GPS%4의 지형 및 위성 이미지 기능이 없습니다.<br/><br/>%3사용 방법:%4<br/>%2%3DAGR%4를 장착하십시오.<br/>%2[%3%12%4를 사용하고 %3DAGR 설정%4 또는 %3DAGR 토글%4을 선택하십시오.<br/><br/>%3DAGR%4을 구성할 때 다음 메뉴를 사용할 수 있습니다:<br/>%11%2Data View: 제작 중<br/>%11%2GoTo WP: 추적할 웨이포인트를 선택합니다.<br/>%11%2WP List: 경유지를 추가/편집/제거합니다.<br/>%11%2Connect To: %3DAGR%4을 %3벡터 21%4 거리계에 연동시킵니다.<br/>%11%2옵션입니다</Korean>
|
||||
<Italian>Il %3DAGR%4 è una versione più semplice del %3GPS MicroDAGR%4. Ha funzioni simili, gli manca però la capacità di visualizzare informazioni topografiche e satellitari come il %3GPS MicroDAGR%4.<br/><br/>%3Utilizzo:%4<br/>%2Equipaggia il %3DAGR%4.<br/>%2Usa [%3%12%4] e seleziona %3Configura%4 o %3Apri%4.<br/><br/>I seguenti Menù sono disponibili durante la configurazione del tuo %3DAGR:%4<br/>%11%2Pagina Dati: WIP<br/>%11%2VaiA WP: Seleziona un waypoint da tracciare.<br/>%11%2Lista WP: Aggiungi/Modifica/Rimuovi waypoint.<br/>%11%2Collega A: Collega il %3DAGR%4 al %3Telemetro Vector 21%4.<br/>%11%2Opzioni</Italian>
|
||||
<Japanese>%3DAGR%4はシンプルなバージョンの%3MicroDAGR GPS%4です。同様の機能を備えていますが、%3MicroDAGR GPS%4のような地形および衛星画像機能はありません。<br/><br/>%3使用方法:%4<br/>%2%3DAGR%4を装備する。<br/>%2[%3%12%4] を使って%3設定%4 もしくは %3表示切替%4を選択します。<br/><br/>%3DAGR%4の設定には次のメニューを使用できます:<br/>%11%2Data View: WIP<br/>%11%2GoTo WP: 追跡するウェイポイントを選択します。<br/>%11%2WP List: ウェイポイントを追加/編集/削除します。<br/>%11%2Connect To: %3DAGR%4を%3ベクター 21 レンジファインダー%4に接続できます。<br/>%11%2Options</Japanese>
|
||||
<Spanish>El %3DAGR%4 es una versión simplificada del %3MicroDAGR GPS%4. Tiene unas funcionalidades similares pero le faltan las funciones de los mapas topográficos e imágenes satelitales del %3MicroDAGR GPS%4.<br/><br/>%3Usage:%4<br/>%2Equip a %3DAGR%4.<br/>%2Usar [%3%12%4] y seleccionar %3Configurar%4 o %3Activar%4.<br/><br/>Los siguientes menús están disponibles cuando configuras el %3DAGR:%4<br/>%11%2Vista de Datos: WIP<br/>%11%2Ir a WP: Selecciona un Punto de Ruta para seguir.<br/>%11%2Lista de WP: Añadir/Editar/Suprimir puntos de ruta.<br/>%11%2Conectar A: Conectar %3DAGR%4 a %3Telémetro Vector 21%4.<br/>%11%2Opciones</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_DeadManSwitch_ShortName">
|
||||
<English>Explosive Revenge</English>
|
||||
@ -411,6 +450,7 @@
|
||||
<Japanese>爆発的な復讐</Japanese>
|
||||
<Russian>Взрывная месть</Russian>
|
||||
<French>Homme mort</French>
|
||||
<Spanish>Venganza Explosiva</Spanish>
|
||||
</Key>
|
||||
<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.<br/><br/>%3Usage:%4<br/>%2Use [%3%12%4] and select %3Explosives%4.<br/>%2Select %3Dead Man's Switch%4 and connect the desired %3Explosive%4.<br/>%2Repeat the process and disconnect to reverse.</English>
|
||||
@ -418,6 +458,7 @@
|
||||
<Korean>%3자폭 장치%4는 병사가 사망했을 때 병사가 %3폭발물%4을 폭발시킬 수 있는 장치입니다.<br/><br/>%3사용 방법:%4<br/>%2[%3%12%4]를 사용하고 %3폭발물%4을 선택하십시오.<br/>%2%3자폭 장치%4를 선택하고 원하는 %3폭발물%4에 연결하십시오.<br/>%2반대로 해제하고 싶다면 같은 행동을 반복하십시오.</Korean>
|
||||
<Italian>Il %3Detonatore a rilascio%4 è un dispositivo che permette a soldati di detonare un %3Esplosivo%4 quando perdono i sensi.<br/><br/>%3Utilizzo:%4<br/>%2Usa [%3%12%4] e seleziona %3Esplosivi%4.<br/>%2Seleziona %3Detonatore a rilascio%4 e collega l'%3Esplosivo%4 desiderato.<br/>%2Ripeti il processo e scollega per disarmare il detonatore.</Italian>
|
||||
<Japanese>%3自爆装置%4は、兵士の死亡時に%3爆発物%4を起爆させることができる装置です。<br/><br/>%3使用方法:%4<br/>%2[%3%12%4] を使って%3爆発物%4を選択します。<br/>%2%3自爆装置%4を選択し、接続したい%3爆発物%4を選びます。<br/>%2同様の手順を逆に行うことで接続を解除できます。</Japanese>
|
||||
<Spanish>El %3Detonador de Hombre Muerto%4 es un dispositivo que permite a un soldado detonar un %3Explosivo%4 cuando el soldado muere.<br/><br/>%3Uso:%4<br/>%2Usar [%3%12%4] y seleccionar %3Explosivos%4.<br/>%2Seleccionar %3Detonador de Hombre Muerto%4 y conectar el %3Explosivo%4.<br/> deseado%2Repetir el proceso y desconectar para revertirlo.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_DefusalKit_Description">
|
||||
<English>The %3Defusal Kit%4 allows defusal of explosives.<br/><br/>%3Usage:%4<br/>%2Equip a %3Defusal Kit%4.<br/>%2Safely approach an %3Explosive%4.<br/>%2Use [%3%13%4] and select %3Defuse%4.</English>
|
||||
@ -425,6 +466,7 @@
|
||||
<Korean>%3해체 장비%4를 사용하면 폭발물을 제거할 수 있습니다.<br/><br/>%3사용 방법:%4<br/>%2%3해체 장비%4를 장착하십시오.<br/>%2%3폭발물%4에 안전하게 접근하십시오.<br/>%2[%3%13%4]를 사용하고 %3해체%4를 선택하십시오.</Korean>
|
||||
<Italian>The %3Kit E.O.D.%4 permette il disinnesco di esplosivi.<br/><br/>%3Utilizzo:%4<br/>%2Equipaggia un %3Kit E.O.D.%4.<br/>%2Avvicinati in modo sicuro ad un %3Esplosivo%4.<br/>%2Usa [%3%13%4] e seleziona %3Disinnesca%4.</Italian>
|
||||
<Japanese>%3解除キット%4は爆発物の無力化を行うことができます。<br/><br/>%3使用方法:%4<br/>%2%3解除キット%4を装備。<br/>%2慎重に%3爆発物%4に接近します。<br/>%2[%3%13%4] を使って%3無力化%4を選択します。</Japanese>
|
||||
<Spanish>El %3Kit de Desactivación%4 permite la desactivación de explosivos.<br/><br/>%3Uso:%4<br/>%2Equipa un %3Kit de Desactivación%4.<br/>%2Aproxímate al %3Explosivo%4<br/> de forma segura.%2Usa [%3%13%4] y selecciona %3Desactivar%4.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_DefusalKit_ShortName">
|
||||
<English>Defuse Explosives</English>
|
||||
@ -434,6 +476,7 @@
|
||||
<Japanese>爆発物の解除</Japanese>
|
||||
<Russian>Обезвреживание взрывчатки</Russian>
|
||||
<French>Désamorcer les explosifs</French>
|
||||
<Spanish>Desactivar Explosivos</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_EarPlugs_ShortName">
|
||||
<English>Protect Your Hearing</English>
|
||||
@ -443,6 +486,7 @@
|
||||
<Japanese>聴覚の保護</Japanese>
|
||||
<Russian>Защитите свой слух</Russian>
|
||||
<French>Protéger votre audition</French>
|
||||
<Spanish>Protege tus oídos</Spanish>
|
||||
</Key>
|
||||
<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.<br/><br/>%3Usage:%4<br/>%2Use [%3%12%4] and select %3Equipment%4.<br/>%2Insert %3Ear Plugs%4.</English>
|
||||
@ -450,6 +494,7 @@
|
||||
<Italian>%3Tappi auricolari%4 aiutano a prevenire danni all'udito da ripetuti rumori forti in prossimità del soldato. Inserisci %3Tappi auricolari%4 per ridurre il volume dell'ambiente per il soldato e impedire %3Assordamento%4.<br/><br/>%3Utilizzo:%4<br/>%2Usa [%3%12%4] e seleziona %3Equipaggiamento%4.<br/>%2Indossa %3Tappi Auricolari%4.</Italian>
|
||||
<Korean>%3귀마개%4는 병사 주변에서 반복되는 시끄러운 소리로 인한 청력 손상을 방지하는 데 도움이 됩니다. %3귀마개%4를 끼워서 병사가 있는 환경의 소리 크기를 낮추고 %3전투로 인한 청력손상%4을 방지하십시오.<br/><br/>%3사용 방법:%4<br/>%2[%3%12%4]를 사용하여 %3장비%4를 선택하십시오.<br/>%2%3귀마개%4를 삽입하십시오.</Korean>
|
||||
<Japanese>%3耳栓%4は、兵士の近くで繰り返される大きな騒音による聴覚障害を防ぐのに役立ちます。%3耳栓%4を耳に挿入することで兵士の環境の音量を下げ、%3戦闘難聴%4を防ぎます。<br/><br/>%3使用方法:%4<br/>%2[%3%12%4] を使って%3装備%4を選択します。<br/>%2%3耳栓を着ける%4ことで使用できます。</Japanese>
|
||||
<Spanish>Los %3Tapones de oídos%4 ayudan a prevenir el daño auditivo de ruidos altos repetidos cerca de un soldado. Inserta los %3Tapones de oídos%4 para reducir el volumen del entorno del soldado y prevenir la %3Sordera de Combate%4.<br/><br/>%3Uso:%4<br/>%2Usar [%3%12%4] y seleccionar %3Equipamiento%4.<br/>%2Insertar %3Tapones de oídos%4.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_EntrenchingTool_ShortName">
|
||||
<English>Get To Cover</English>
|
||||
@ -459,6 +504,7 @@
|
||||
<Japanese>遮蔽を造り出す</Japanese>
|
||||
<Russian>Добраться до укрытия</Russian>
|
||||
<French>Se mettre à couvert</French>
|
||||
<Spanish>Ponerse A Cubierto</Spanish>
|
||||
</Key>
|
||||
<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.<br/><br/>%3Usage:%4<br/>%2Equip an %3Entrenching Tool%4.<br/>%2Use [%3%12%4] and select %3Equipment%4.<br/>%2Select the type of trench you wish to build.</English>
|
||||
@ -466,6 +512,7 @@
|
||||
<Italian>La %3Pala da Trincea%4 permette a soldati di scavare trincee per difendere meglio la loro posizione. Il soldato deve trovarsi su suolo scavabile per poter creare trincee.<br/><br/>%3Utilizzo:%4<br/>%2Equipaggia una %3Pala da Trincea%4.<br/>%2Usa [%3%12%4] e seleziona %3Equipaggiamento%4.<br/>%2Seleziona il tipo di trincea che vuoi costruire.</Italian>
|
||||
<Korean>%3야전삽%4을 사용하면 병사들의 진지 방어를 위한 참호를 팔 수 있습니다. 병사가 참호를 파려면 흙 위에 있어야 합니다.<br/><br/>%3사용 방법:%4<br/>%2%3야전삽%4을 장비하십시오.<br/>%2[%3%12%4]를 사용하여 %3장비%4를 선택하십시오.<br/>%2짓고 싶은 종류의 참호를 선택하십시오.</Korean>
|
||||
<Japanese>%3塹壕ツール%4を使用すると、兵士は自分の陣地を守るために塹壕を掘ることができます。塹壕を掘るには、兵士は土の上にいる必要があります。<br/><br/>%3使用方法:%4<br/>%2%3塹壕ツール%4を装備します。<br/>%2[%3%12%4] を使って%3装備%4を選択します。<br/>%2構築する塹壕の種類を選択します。</Japanese>
|
||||
<Spanish>La %3Pala de Trincheras%4 permite a los soldados excavar trincheras para ayudarles a defender su posición. El soldado debe estar sobre tierra para poder excavar una trinchera.<br/><br/>%3Uso:%4<br/>%2Equipar la %3Pala de Trincheras%4.<br/>%2Usar [%3%12%4] y seleccionar %3Equipamiento%4.<br/>%2Seleccionar el tipo de trinchera que quieres construir.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_Flashlights_DisplayName">
|
||||
<English>Flashlights</English>
|
||||
@ -475,6 +522,7 @@
|
||||
<Japanese>フラッシュライト</Japanese>
|
||||
<Russian>Фонари</Russian>
|
||||
<French>Lampes de poche</French>
|
||||
<Spanish>Linternas</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_Flashlights_ShortName">
|
||||
<English>Illuminate Your Map</English>
|
||||
@ -484,6 +532,7 @@
|
||||
<Japanese>地図に光あれ</Japanese>
|
||||
<Russian>Осветите свою карту</Russian>
|
||||
<French>Éclairer votre carte</French>
|
||||
<Spanish>Ilumina Tu Mapa</Spanish>
|
||||
</Key>
|
||||
<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.<br/><br/>%3Usage:%4<br/>%2On the map screen, use [%3%12%4] and select %3Flashlights%4.<br/>%2Select the %3Flashlight%4 you want to use and select %3On%4.<br/><br/>%3Available Flashlight Items%4:<br/>%2 Fulton MX-991<br/>%2 KSF-1<br/>%2 Maglite XL50<br/><br/>%3NOTE:%4<br/>Flashlight states are persistent.</English>
|
||||
@ -491,6 +540,7 @@
|
||||
<Italian>%3Torce%4 permettono di leggere la tua mappa anche in ambienti bui. Però quando le utilizzi avrai un leggero effetto luminoso intorno a te.<br/><br/>%3Utilizzo:%4<br/>%2Sulla mappa usa [%3%12%4] e seleziona %3Torcia%4.<br/>%2Seleziona la %3Torcia%4 che vuoi usare e seleziona %3Accendi%4.<br/><br/>%3Oggetti Torcia Disponibili%4:<br/>%2 Fulton MX-991<br/>%2 KSF-1<br/>%2 Maglite XL50<br/><br/>%3NOTE:%4<br/>Lo stato di una torcia è persistente.</Italian>
|
||||
<Korean>%3손전등%4은 어두운 환경에서도 지도를 읽을 수 있는 기능을 제공합니다. 단, %3손전등%4을 사용할 때 주변에 약간 빛이 납니다.<br/><br/>%3사용 방법:%4<br/>%2지도 화면에서 [%3%12%4]를 사용하고 %3손전등%4을 선택하십시오.<br/>%2사용할 %3손전등%4을 선택하고 %3켜기%4를 선택하십시오.<br/><br/>%3사용 가능한 손전등 아이템%4:<br/>%2풀턴 MX-991<br/>%2 KSF-1<br/>%2 매그라이트 XL50<br/><br/>%3참고:%4<br/>손전등 상태는 영구적입니다.</Korean>
|
||||
<Japanese>%3フラッシュライト%4を使用すると、暗い環境でも地図を読むことができます。ただし、%3フラッシュライト%4を使用すると、周囲がわずかに光ります。<br/><br/>%3使用方法:%4<br/>%2マップ画面で [%3%12%4] を使用し、%3フラッシュライト%4を選択します。<br/>%2%3フラッシュライト%4を選択し、使用したいライトを%3点ける%4。<br/><br/>%3使用可能なフラッシュライトのアイテム%4:<br/>%2 フルトン MX-991<br/>%2 KSF-1<br/>%2 マグライト XL50<br/><br/>%3備考:%4<br/>フラッシュライトの状態は継続します。</Japanese>
|
||||
<Spanish>Las %3Linternas%4 proveen la habilidad para leer tu mapa, incluso en entornos oscuros. No obstante, cuando se usen las %3Linternas%4, aparecerá un ligero brillo alrededor tuya.<br/><br/>%3Uso:%4<br/>%2En la pantalla del mapa, utilizar [%3%12%4] y seleccionar %3Linternas%4.<br/>%2Seleccionar la %3Linterna%4 Que quieres utilizar y selecciona %3On%4.<br/><br/>%3Objetos de Linternas disponibles%4:<br/>%2 Fulton MX-991<br/>%2 KSF-1<br/>%2 Maglite XL50<br/><br/>%3NOTA:%4<br/>Los estados de las Linternas son persistentes.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_HuntIR_Monitor_ShortName">
|
||||
<English>Observe From The Skies</English>
|
||||
@ -500,6 +550,7 @@
|
||||
<Japanese>空から戦場を見てみよう</Japanese>
|
||||
<Russian>Наблюдайте с Небес</Russian>
|
||||
<French>Observer depuis le ciel</French>
|
||||
<Spanish>Observar Desde El Cielo</Spanish>
|
||||
</Key>
|
||||
<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.<br/><br/>%3Usage:%4<br/>%2Equip a %3HuntIR Monitor%4 and compatible ammunition.<br/>%2Fire the %3HuntIR Round%4 as high as possible over the area you want to observe.<br/>%2Open the %3HuntIR Monitor%4.<br/>%2Use [%3%12%4], select %3Equipment%4.<br/>%2Select %3Activate HuntIR Monitor%4.</English>
|
||||
@ -507,6 +558,7 @@
|
||||
<Italian>Il %3High-Altitude Unit Navigated Tactical Imaging Round (HuntIR)%4 è progettato per essere sparato da un lanciagranate. Dopo essere stato sparato verso l'alto, verrà aperto un paracadute incorporato e attivata una videocamera IR CMOS, inviando una diretta video finché toccherà terra o verrà abbattuto.<br/><br/>%3Utilizzo:%4<br/>%2Equipaggia un %3Monitor HuntIR%4 e munizioni compatibili.<br/>%2Spara un %3Colpo HuntIR%4 il più alto possibile sopra l'area che vuoi osservare.<br/>%2Apri il %3Monitor HuntIR%4.<br/>%2Usa [%3%12%4], seleziona %3Equipaggiamento%4.<br/>%2Seleziona %3Attiva Monitor HuntIR%4.</Italian>
|
||||
<Korean>%3고고도 유닛 탐색용 전술 영상화 탄약 (HuntIR)%4은 유탄발사기에서 발사될 수 있도록 설계되었습니다.공주에서 발사된 후 내장된 낙하산이 전개되고 적외선 CMOS 카메라가 작동하여 지상에 닿거나 격추될 때까지 비디오 스트림이 제공됩니다.<br/><br/>%3사용 방법:%4<br/>%2%3헌트IR 모니터%4와 호환 탄약을 장착하십시오.<br/>%2%3헌트IR 유탄%4을 발사하려는 구역에서 가능한 한 높게 발사하십시오.<br/>%2%3헌트IR 모니터%4를 여십시오.<br/>%2[%3%12%4]를 사용하여 %3장비%4를 선택하십시오.<br/>%2%3헌트IR 모니터 활성화%4를 선택하십시오.</Korean>
|
||||
<Japanese>%3High-Altitude Unit Navigated Tactical Imaging Round (HuntIR)%4はグレネードランチャーから発射されるように設計されています。空中で発射された後、内蔵のパラシュートが展開され、IR CMOS カメラが起動し、地面に着くか撃墜されるまでビデオ ストリームを提供します。<br/><br/>%3使用方法:%4<br/>%2%3HuntIR モニター%4と互換性のある弾薬を装備します。<br/>%2観測したいエリアに向けてできるだけ高く%3HuntIR 弾頭%4を発射します。<br/>%2%3HuntIR モニター%4を開きます。<br/>%2[%3%12%4] を使って%3装備%4を選択します。<br/>%2%3HuntIRを起動する%4からモニターを起動します。</Japanese>
|
||||
<Spanish>El %3High-Altitude Unit Navigated Tactical Imaging Round (HuntIR)%4 está diseñado para ser disparado desde un lanzagranadas. Despues de ser disparada al aire, desplegará su paracaídas integrado y activará su cámara IR CMOS integrada, proveyendo de un flujo de video hasta que toque el suelo o sea derribado.<br/><br/>%3Uso:%4<br/>%2Equipa un %3Monitor HuntIR%4 y la munición compatible.<br/>%2Dispara la %3Munición HuntIR%4 tan alto como sea posible sobre el área que quieres observar.<br/>%2Abre el %3Monitor HuntIR%4.<br/>%2Usar [%3%12%4], seleccionar %3Equipamiento%4.<br/>%2Seleccionar %3Activar Monitor HuntIR%4.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_IR_Strobe_ShortName">
|
||||
<English>Track Your Team With Stealth</English>
|
||||
@ -516,6 +568,7 @@
|
||||
<Japanese>自分の部隊を追う</Japanese>
|
||||
<Russian>Следите за своей командой незаметно</Russian>
|
||||
<French>Suivez votre équipe en toute discrétion</French>
|
||||
<Spanish>Sigue A Tu Equipo Con Sigilo</Spanish>
|
||||
</Key>
|
||||
<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.<br/><br/>%3Usage:%4<br/>%2Use [%3%12%4] and select %3Equipment%4.<br/>%2Select %3Attach%4 and select the %3IR Strobe%4.</English>
|
||||
@ -523,6 +576,7 @@
|
||||
<Italian>La %3Strobo IR%4 è un lanciabile che emette un impulso intermittente di luce IR. La %3Strobo IR%4 può anche essere attaccata ad un soldato, facilitando l'identificazione di alleati con visori notturni.<br/><br/>%3Utilizzo:%4<br/>%2Usa [%3%12%4] e seleziona %3Equipaggiamento%4.<br/>%2Seleziona %3Attacca%4 e scegli la %3Strobo IR%4.</Italian>
|
||||
<Korean>%3적외선 스트로브%4는 던질 수 있는 적외선 광펄스를 간헐적으로 방출하는 투척형 아이템입니다. %3적외선 스트로브%4는 병사에게도 부착 가능하기 때문에 야간투시장치로 팀원을 추적할 때 유용합니다.<br/><br/>%3사용 방법:%4<br/>%2[%3%12%4]를 사용하여 %3장비%4를 선택하십시오.<br/>%2%3아이템 부착%4을 선택하고 %3적외선 스트로브%4를 선택하십시오.</Korean>
|
||||
<Japanese>%3赤外線ストロボ%4は、赤外線光パルスを断続的に放射します。投擲可能です。%3赤外線ストロボ%4は兵士に取り付けることもできるため、暗視装置の下でチームメイトを追跡するのに役立ちます。<br/><br/>%3使用方法:%4<br/>%2[%3%12%4] を使って%3装備%4を選択します。<br/>%2%3アイテムを取り付ける%4を選択して%3赤外線ストロボ%4を選び使用します。</Japanese>
|
||||
<Spanish>El %3Estroboscópico IR%4 es un objeto lanzable que emite un pulso intermitente de luz IR. El %3Estroboscópico IR%4 tambien puede ser sujeto a un soldado, haciéndolo útil para el seguimiento de los compañeros utilizando gafas de visión nocturna.<br/><br/>%3Uso:%4<br/>%2Usar [%3%12%4] y seleccionar %3Equipamiento%4.<br/>%2Seleccionar %3Sujetar%4 y seleccionar el %3Estroboscópico IR%4.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_Kestrel4500_ShortName">
|
||||
<English>Pocket Weatherstation</English>
|
||||
@ -532,6 +586,7 @@
|
||||
<Japanese>携帯気象予報所</Japanese>
|
||||
<Russian>Карманная метеостанция</Russian>
|
||||
<French>Station météo de poche</French>
|
||||
<Spanish>Estación Climática de Bolsillo</Spanish>
|
||||
</Key>
|
||||
<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:<br/>%2Heading and wind direction<br/>%2Crosswind and headwind<br/>%2Altitude and barometric pressure<br/>%2Wet bulb temperature<br/>%2Humidity and dewpoint<br/>%2Density altitude<br/>%2Wind chill and temperature<br/>%2Time and date<br/>%2Minimum, maximum, and average values<br/><br/>%3Usage:%4<br/>%2Equip a %3Kestrel%4.<br/>%2Use [%3%12%4] and select %3Equipment%4.<br/>%2Select %3Open%4.</English>
|
||||
@ -539,6 +594,7 @@
|
||||
<Italian>Il %3Kestrel 4500 Indicatore Meteorologico Tascabile%4 è una mini-stazione meteo utile per ricavare le seguenti informazioni meteorologiche:<br/>%2Prua e direzione del vento<br/>%2Vento di traverso e frontale<br/>%2Altitudine and pressione barometrica<br/>%2Temperatura di bulbo umido<br/>%2Umidità e punto di rugiada<br/>%2Density altitude<br/>%2Temperatura e gelo del vento<br/>%2Data e Ora<br/>%2Valori minimi, massimi, e medi<br/><br/>%3Utilizzo:%4<br/>%2Equipaggia %3Kestrel%4.<br/>%2Usa [%3%12%4] e seleziona %3Equipaggiamento%4.<br/>%2Seleziona %3Apri%4.</Italian>
|
||||
<Korean>%3케스트렐 4500 휴대용 기상 추적 장비%4는 다음 날씨 데이터들을 수집하는 데 유용한 소형 기상 관측 장비입니다:<br/>%2바람이 오는 방향과 가는 방향<br/>%2옆바람과 맞바람<br/>%2고도 및 기압<br/>%2습구온도<br/>%2습도 및 이슬점<br/>%2밀도고도<br/>%2체감온도<br/>%2시간 및 날짜<br/>%2최소, 최대, 평균값<br/><br/>%3사용 방법:%4<br/>%2%3케스트렐 4500NV%4를 장착하십시오.<br/>%2[%3%12%4]를 사용하고 %3장비%4를 선택하십시오.<br/>%2%3열기%4를 선택하십시오.</Korean>
|
||||
<Japanese>%3ケストレル 4500 携帯気象計%4は、次の気象データの収集に役立つミニ気象ステーションです:<br/>%2方位と風向<br/>%2横風と向かい風<br/>%2高度と気圧<br/>%2湿球温度<br/>%2湿度と露点<br/>%2密度高度<br/>%2ウィンドチルと温度<br/>%2日付と時刻<br/>%2最小値、最大値、平均値<br/><br/>%3使用方法:%4<br/>%2%3ケストレル%4を装備します。<br/>%2[%3%12%4] を使って%3装備%4を選択します。<br/>%2%3ケストレルを開く%4で使用できます。</Japanese>
|
||||
<Spanish>La %3Estación Climática de Bolsillo Kestrel 4500%4 es una pequeña estación climática portátil para recolectar la siguiente información del tiempo:<br/>%2Dirección y Sentido del Viento<br/>%2VIento cruzado y Viento en cola<br/>%2Altitud y presión barométrica<br/>%2Temperatura húmeda<br/>%2Humedad y punto de condensación<br/>%2Densidad de altitud<br/>%2Sensación térmica y temperatura<br/>%2Hora y fecha<br/>%2Valores mínimos, máximos y medios<br/><br/>%3Uso:%4<br/>%2Equipa un %3Kestrel%4.<br/>%2Usar [%3%12%4] y seleccionar %3Equipamiento%4.<br/>%2Seleccionar %3Abrir%4.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_MapTools_ShortName">
|
||||
<English>Triangulate Your Position</English>
|
||||
@ -548,6 +604,7 @@
|
||||
<Japanese>三角測量で位置を特定</Japanese>
|
||||
<Russian>Передавайте свое местоположение</Russian>
|
||||
<French>Trianguler votre position</French>
|
||||
<Spanish>Triangular Tu Posición</Spanish>
|
||||
</Key>
|
||||
<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.<br/><br/>%3Usage:%4<br/>%2Open %3Map%4.<br/>%2Use [%3%12%4] and select %3Map Tools%4.<br/>%2 The Tool can be moved by dragging with [%3Left-Click%4] while holding [%3ALT%4].</English>
|
||||
@ -556,6 +613,7 @@
|
||||
<Korean>%3독도용 도구%4는 병사가 거리와 각도를 측정할 수 있는 도구 세트입니다. 지상에서 유용하며 포병 사격 솔루션 계산에 유용합니다,<br/><br/>%3사용 방법:%4<br/>%2%3지도%4를 여십시오.<br/>%2[%3%12%4]를 사용하여 %3독도용 도구%4를 선택하십시오.<br/>%2도구는 [%3Alt 키%4]를 누른 상태에서 [%3마우스 왼쪽 클릭%4]으로 드래그하여 이동할 수 있습니다.</Korean>
|
||||
<Japanese>%3マップ ツール%4は、兵士が距離と角度を測定できるようにするツールのセットです。陸上や大砲の射撃工程の計算を解くのに役立ちます。<br/><br/>%3使用方法:%4<br/>%2%3マップ%4を開きます。<br/>%2[%3%12%4] を使って%3マップ ツール%4を選択します。<br/>%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.<br/><br/>%3Utilisation:%4<br/>%2Ouvrir la%3Carte%4.<br/>%2Utiliser [%3%12%4] et sélectionner %3Outils cartographiques%4.<br/>%2 L'outil peut être déplacé en le faisant glisser avec [%3Clic gauche%4] tout en maintenant [%3ALT%4].</French>
|
||||
<Spanish>Las %3Herramientas de mapa%4 son un conjunto de herramientas que permiten a un soldado medir distancias y ángulos. Util para terrenos, y para calcular soluciones de tiro para artillería.<br/><br/>%3Uso:%4<br/>%2Abrir %3Mapa%4.<br/>%2Usar [%3%12%4] y seleccionar %3Herramientas de Mapa%4.<br/>%2 La herramienta puede ser movida siendo arrastrada con [%3CLick-Izquierdo%4] mientras se pulsa [%3ALT%4].</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_MicroDAGR_ShortName">
|
||||
<English>Advanced DAGR</English>
|
||||
@ -565,6 +623,7 @@
|
||||
<Japanese>より高度なDAGR</Japanese>
|
||||
<Russian>Продвинутый DAGR</Russian>
|
||||
<French>DAGR avancé</French>
|
||||
<Spanish>DAGR Avanzado</Spanish>
|
||||
</Key>
|
||||
<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:<br/>%2Compass and heading<br/>%2Date and hour synced to the mission<br/>%2Elevation (relative to sea level)<br/>%2Current speed<br/>%2GPS with topographic and satellite view<br/>%2Creating, naming, and deleting waypoints<br/>%2Friendly identification (Requires ACE BLUFOR Tracker Setting)<br/>Connection to the Vector-21 Rangefinder for data import (waypoint creation and grid reference of ranged targets)<br/><br/>%3Usage:%4<br/>%2For usage instructions, please visit the dedicated %3MicroDAGR%4 wiki.</English>
|
||||
@ -572,6 +631,7 @@
|
||||
<Italian>Il %3GPS MicroDAGR%4 è una versione avanzata del %3DAGR%4. Esso mostra dati su posizione, navigazione e tempismo (PNT), includendo:<br/>%2Bussola e azimut<br/>%2Data e ora sincronizzate con la missione<br/>%2Elevazione (dal livello del mare)<br/>%2Velocità attuale<br/>%2GPS con visuale topografica e satellitare<br/>%2Creazione, rinomina e rimozione di waypoint<br/>%2Identificazione di alleati (Richiede Impostazioni ACE BLUFOR Tracker)<br/>Connessione al Telemetro Vector-21 per importazione di dati (creazione waypoint e indicazione di griglia su bersagli puntati)<br/><br/>%3Utilizzo:%4<br/>%2Per informazioni sull'utilizzo sei pregato di visitare la pagina wiki dedicata al %3MicroDAGR%4.</Italian>
|
||||
<Korean>%3마이크로DAGR GPS%4는 %3DAGR%4의 고급 버전입니다. 다음과 같이 위치, 내비게이션 및 타이밍(PNT) 데이터를 제공합니다:<br/>%2나침반 및 방향<br/>%2임무와 동기화된 날짜 및 시간<br/>%2고도 (해수면 기준)<br/>%2현재 속도<br/>%2지형 및 위성 시점 기능이 있는 GPS<br/>%2웨이포인트 생성, 작명 및 삭제<br/>%2아군 식별 (ACE의 GPS 피아식별기 켜기 체크 필요)<br/>%2데이터를 가져오기 위한 벡터-21 거리계에 연결(원거리 대상의 웨이포인트 생성 및 좌표 참조)<br/><br/>%3사용 방법:%4<br/>%2사용 방법을 보려면 전용 %3마이크로DAGR%4의 위키를 방문하십시오.</Korean>
|
||||
<Japanese>%3MicroDAGR GPS%4は%3DAGR%4のより高度なバージョンです。測位、航法、計時(PNT)データが提供されます。これには以下の情報を含みます:<br/>%2コンパスと方位<br/>%2ミッションに同期された日付と時間<br/>%2標高 (海面に対する相対値)<br/>%2現在の速度<br/>%2地形図と衛星ビューを備えたGPS<br/>%2ウェイポイントの作成、名前付け、および削除<br/>%2友軍の識別 (ACE ブルーフォーストラッキング設定が必要)<br/>ベクター21レンジファインダーへの接続とデータのインポート (ウェイポイントの作成と遠距離ターゲットのグリッド参照)<br/><br/>%3使用方法:%4<br/>%2使用手順については、専用の %3MicroDAGR%4 wiki を参照してください。</Japanese>
|
||||
<Spanish>El %3GPS MicroDAGR%4 es una versión avanzada del %3DAGR%4. Provee de posicionamiento, navegación y datos de temporización (PNT) que incluye:<br/>%2Brújula y dirección<br/>%2Fecha y hora sincronizada con la misión<br/>%2Elevación (relativa al nivel del mar)<br/>%2Velocidad actual<br/>%2GPS con vista topográfica y satelital<br/>%2Creación, nombrado y borrado de puntos de ruta<br/>%2Identificación de aliados (Requiere la opción de ACE BLUFOR Tracker)<br/>Conexión con el telémetro Vector-21 para importación de datos (creación de puntos de ruta y referenciado en eje de coordenada para objetivos a distancia)<br/><br/>%3Uso:%4<br/>%2Para instrucciones de uso, por favor visita la Wiki dedicada de %3MicroDAGR%4.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_RangeTables_DisplayName">
|
||||
<English>Range Tables</English>
|
||||
@ -581,6 +641,7 @@
|
||||
<Japanese>射表</Japanese>
|
||||
<Russian>Таблицы диапазонов</Russian>
|
||||
<French>Tables de tir</French>
|
||||
<Spanish>Tablas de Distancia</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_RangeTables_ShortName">
|
||||
<English>Get A Firing Solution</English>
|
||||
@ -590,6 +651,7 @@
|
||||
<Japanese>撃ち方の解を得る</Japanese>
|
||||
<Russian>Получите расчёт</Russian>
|
||||
<French>Obtenir une solution de tir</French>
|
||||
<Spanish>Obtener Una Solución de Tiro</Spanish>
|
||||
</Key>
|
||||
<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.<br/><br/>%3Usage:%4<br/>%2Use [%3%12%4] and select %3Equipment%4.<br/>%2Select the desired %3Range Table%4.</English>
|
||||
@ -597,6 +659,7 @@
|
||||
<Italian>%3Tavole di tiro%4 permettono al soldato di stimare piazzamenti accurati di colpi mediante fuoco diretto o indiretto (a seconda dell'arma). La %3Tavola di tiro%4 si modificherà in automatico a seconda dell'arma/veicolo del soldato.<br/><br/>%3Utilizzo:%4<br/>%2Usa [%3%12%4] and seleziona %3Equipaggiamento%4.<br/>%2Seleziona la portata desiderata sulla %3Tavola di tiro%4.</Italian>
|
||||
<Korean>%3사거리표%4를 사용하면 병사가 직접 또는 간접 표적(자산에 따라 다름)에 대한 정확한 사격 배치를 추정할 수 있습니다. %3사거리표%4는 선택한 병사의 무기/차량에 따라 자동으로 작성됩니다.<br/><br/>%3사용 방법:%4<br/>%2[%3%12%4]를 사용하고 %3장비%4를 선택하십시오.<br/>%2원하는 %3사거리표%4를 선택하십시오.</Korean>
|
||||
<Japanese>%3射表%4 を使用すると、兵士は (手段に応じて) 直接的または間接的なターゲットへの正確な射撃位置を推定できます。%3射表%4は、兵士が選択した武器/車両に応じて自動的に入力されます。<br/><br/>%3使用方法:%4<br/>%2[%3%12%4] を使って%3装備%4を選択します。<br/>%2目的の%3射表%4を選択します。</Japanese>
|
||||
<Spanish>La %3Tabla de distancias%4 permite a un soldado estimar con precisión el posicionamiento de un disparo sobre un objetivo de manera directa o indirecta (dependiendo del dispositivo). La %3Tabla de distancias%4 se autorellena dependiendo del arma o vehículo seleccionado por el soldado.<br/><br/>%3Uso:%4<br/>%2Usar [%3%12%4] y seleccionar %3Equipamiento%4.<br/>%2Selecciona la %3Tabla de distancias%4 deseada.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_Ropes_DisplayName">
|
||||
<English>Ropes</English>
|
||||
@ -606,6 +669,7 @@
|
||||
<Japanese>ロープ</Japanese>
|
||||
<Russian>Канаты</Russian>
|
||||
<French>Corde</French>
|
||||
<Spanish>Cuerdas</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_Ropes_ShortName">
|
||||
<English>Tow With Ease</English>
|
||||
@ -615,6 +679,7 @@
|
||||
<Japanese>楽々けん引</Japanese>
|
||||
<Russian>Буксируйте с легкостью</Russian>
|
||||
<French>Remorquer avec facilité</French>
|
||||
<Spanish>Remolcar Con Facilidad</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_Ropes_Description">
|
||||
<English>%3Ropes%4 have multiple uses including %3Towing%4 vehicles and %3Fast Roping%4 from helicopters.<br/><br/>%3Towing:%4<br/>%2Approach a vehicle.<br/>%2Use [%3%13%4] and select %3Towing%4.<br/>%2Select rope length.<br/>%2Select attachment point on towing vehicle.<br/>%2Select attachment on towed vehicle.<br/><br/>%3Available Rope Lengths:%4<br/>%2 3.2 meters<br/>%2 6.2 meters<br/>%2 12.2 meters<br/>%2 15.2 meters<br/>%2 18.3 meters<br/>%2 27.4 meters<br/>%2 36.6 meters</English>
|
||||
@ -622,6 +687,7 @@
|
||||
<Italian>%3Corde%4 hanno molteplici utilizzi, come %3Trainare%4 veicoli e %3Fast Roping%4 da elicotteri.<br/><br/>%3Traino:%4<br/>%2Avvicinati a un veicolo.<br/>%2Usa [%3%13%4] e seleziona %3Traina%4.<br/>%2Seleziona lunghezza corda.<br/>%2Seleziona punto di attacco su veicolo trainante.<br/>%2Seleziona attacco su veicolo trainato.<br/><br/>%3Lunghezze corde a disposizione:%4<br/>%2 3.2 metri<br/>%2 6.2 metri<br/>%2 12.2 metri<br/>%2 15.2 metri<br/>%2 18.3 metri<br/>%2 27.4 metri<br/>%2 36.6 metri</Italian>
|
||||
<Korean>%3로프%4는 차량 %3견인%4 및 헬기의 %3패스트로프%4 등 여러 용도로 사용됩니다.<br/><br/>%3견인 방법:%4<br/>%2차량에 접근하십시오.<br/>%2[%3%13%4]를 사용하고 %3견인%4을 선택하십시오.<br/>%2로프 길이를 선택하십시오.<br/>%2견인할 차량의 부착 지점을 선택하십시오.<br/>%2견인될 차량의 부착 지점을 선택하십시오.<br/><br/>%3사용 가능한 로프 길이:%4<br/>%2 3.2m<br/>%2 6.2m<br/>%2 12.2m<br/>%2 15.2m<br/>%2 18.3m<br/>%2 27.4m<br/>%2 36.6m</Korean>
|
||||
<Japanese>%3ロープ%4には、車両の%3けん引%4やヘリコプターからの%3ファストロープ%4など、複数の用途があります。<br/><br/>%3けん引方法:%4<br/>%2車両に近づきます。<br/>%2[%3%13%4] を使って%3けん引%4を選択します。<br/>%2ロープの長さを選択します。<br/>%2けん引する車両のロープ取付位置を選択します。<br/>%2けん引される車両のロープ取付位置を選択します。<br/><br/>%3利用可能なロープの長さ:%4<br/>%2 3.2 メートル<br/>%2 6.2 メートル<br/>%2 12.2 メートル<br/>%2 15.2 メートル<br/>%2 18.3 メートル<br/>%2 27.4 メートル<br/>%2 36.6 メートル</Japanese>
|
||||
<Spanish>Las %3Cuerdas%4 tienen múltiples usos incluyendo el %3Remolcado%4 de vehículos y el %3Descenso con Cuerda%4 desde helicópteros.<br/><br/>%3Remolcado:%4<br/>%2Acércate a un vehículo.<br/>%2Usar [%3%13%4] y seleccionar %3Remolcado%4.<br/>%2Selecciona la longitud de la cuerda.<br/>%2Selecciona un punto de anclaje en el vehículo de remolcado.<br/>%2Selecciona una sujección en el vehículo remolcado.<br/><br/>%3Longitudes de Cuerda Disponibles:%4<br/>%2 3.2 metros<br/>%2 6.2 metros<br/>%2 12.2 metros<br/>%2 15.2 metros<br/>%2 18.3 metros<br/>%2 27.4 metros<br/>%2 36.6 metros</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_Sandbag_ShortName">
|
||||
<English>Expand Your Fortifications</English>
|
||||
@ -631,6 +697,7 @@
|
||||
<Japanese>要塞を拡張する</Japanese>
|
||||
<Russian>Расширить свои укрепления</Russian>
|
||||
<French>Élargissez vos fortifications</French>
|
||||
<Spanish>Expande Tus Fortificaciones</Spanish>
|
||||
</Key>
|
||||
<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.<br/><br/>%3Usage:%4<br/>%2Equip a %3Sandbag (Empty)%4.<br/>%2Use [%3%12%4] and select %3Deploy Sandbag%4.<br/>%2Follow on-screen instructions for placement.</English>
|
||||
@ -638,6 +705,7 @@
|
||||
<Italian>%3Sacchi di Sabbia%4 sono sacchi di un materiale robusto, riempiti di sabbia, usati per una varietà di utilizzi come creare barriere o aumentare la stabilità di fortificazioni.<br/><br/>%3Utilizzo:%4<br/>%2Equipaggia una %3Sacco di Sabbia (Vuoto)%4.<br/>%2Usa [%3%12%4] e seleziona %3Posiziona Sacco di Sabbia%4.<br/>%2Segui le istruzioni sullo schermo per il piazzamento.</Italian>
|
||||
<Korean>%3모래주머니%4는 튼튼한 재료로 만든 주머니로 모래를 채워 장벽을 만들거나 건설 작업에서 안정성을 제공하는 등 다양한 용도로 사용되며, 더 큰 요새를 확장하는 데 유용합니다.<br/><br/>%3사용 방법:%4<br/>%2%3모래주머니(비어있음)%4을 장착하십시오.<br/>%2[%3%12%4]를 사용하고 %3모래주머니 배치%4를 선택하십시오.<br/>%2화면의 지시에 따라 배치하십시오.</Korean>
|
||||
<Japanese>%3土のう%4は、砂が詰められた頑丈な素材で作られた袋で、建設プロジェクトでの障壁の作成や安定性の提供など、さまざまな目的に使用されます。より大きな配置の要塞を拡張するのに役立ちます。<br/><br/>%3使用方法:%4<br/>%2%3土のう (空)%4を装備します。<br/>%2[%3%12%4] を使って%3土のうを作る%4を選択します。<br/>%2画面上の指示に従って配置します。</Japanese>
|
||||
<Spanish>Los %3Sacos de tierra%4 son sacos hechos de un material resistente, rellenados de tierra, usados para una diversa variedad de propósitos como la construcción de barreras o proveer estabilidad en los proyectos de construcción. Son útiles en la expansión de proyectos de construcción más grandes.<br/><br/>%3Uso:%4<br/>%2Equipa un %3Saco de tierra (Vacío)%4.<br/>%2Usar [%3%12%4] y seleccionar %3Desplegar Saco de tierra%4.<br/>%2Seguir las instrucciones en pantalla para su colocación.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_SpareBarrels_ShortName">
|
||||
<English>Lower Firearm Temperature</English>
|
||||
@ -647,6 +715,7 @@
|
||||
<Japanese>銃の熱を冷ます</Japanese>
|
||||
<Russian>Понизьте температуру оружия</Russian>
|
||||
<French>Refroidir l'arme</French>
|
||||
<Spanish>Bajar la Temperatura del Arma</Spanish>
|
||||
</Key>
|
||||
<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.<br/><br/>%3Usage:%4<br/>%2Use [%3%12%4] and select %3Equipment%4.<br/>%2Select %3Swap Barrel%4.<br/>%2Resume operation after barrel swap is complete.</English>
|
||||
@ -654,6 +723,7 @@
|
||||
<Italian>%3Canne di Ricambio%4 permettono ai soldati di raffreddare la loro arma notevolmente. Dopo una breve attesa, la canna dell'arma verrà sostituita e la temperatura ridotta. Un soldato può anche controllare la temperatura di canne di ricambio presenti nel proprio inventario. Non tutte le armi consentono lo scambio canna.<br/><br/>%3Utilizzo:%4<br/>%2Usa [%3%12%4] e seleziona %3Equipaggiamento%4.<br/>%2Seleziona %3Sostituisci Canna%4.<br/>%2Continua l'ingaggio dopo sostituzione avvenuta.</Italian>
|
||||
<Korean>%3예비 총열%4을 사용하면 병사의 무기의 발열을 크게 줄일 수 있습니다. 잠시 뒤에 무기의 총신이 교체되고 발열이 감소합니다. 군인은 소지품에 있는 총열의 온도도 확인할 수 있습니다. 모든 무기가 총열 교환을 지원하는 것은 아닙니다.<br/><br/>%3사용 방법:%4<br/>%2[%3%12%4]를 사용하고 %3장비%4를 선택하십시오.<br/>%2%3총열 교체%4를 선택하십시오.<br/>%2총열 교체가 완료된 후 작전을 계속하십시오.</Korean>
|
||||
<Japanese>%3予備銃身%4を使用すると、兵士は武器の熱を大幅に下げることができます。少し経つと、武器の銃身が交換され熱が下がります。兵士はインベントリ内の銃身の温度を確認することもできます。すべての武器が銃身の交換をサポートしているわけではありません。<br/><br/>%3使用方法:%4<br/>%2[%3%12%4] を使って%3装備%4を選択します。<br/>%2%3銃身を交換%4を選択します。<br/>%2銃身交換が完了すると、再度射撃することが出来ます。</Japanese>
|
||||
<Spanish>El %3Cañón de Repuesto%4 permite a un soldado reducir el calor del arma significativamente. Tras un pequeño periodo, el cañón del arma habrá sido sustituido y el calor reducido. Un soldado puede tambien comprobar la temperatura de cualquier cañón en su inventario. No todas las armas soportan el cambio de cañón.<br/><br/>%3Uso:%4<br/>%2Usar [%3%12%4] y seleccionar %3Equipamiento%4.<br/>%2Seleccionar %3Cambiar Cañón%4.<br/>%2Continuar con la operación una vez se haya cambiado el cañón.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_SprayPaint_DisplayName">
|
||||
<English>Spray Paint</English>
|
||||
@ -663,6 +733,7 @@
|
||||
<Japanese>ペイントスプレー</Japanese>
|
||||
<Russian>Аэрозольная краска</Russian>
|
||||
<French>Bombe de peinture</French>
|
||||
<Spanish>Pintura En Spray</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_SprayPaint_ShortName">
|
||||
<English>Tag Your Territory</English>
|
||||
@ -672,6 +743,7 @@
|
||||
<Japanese>自分のテリトリーをマーキング</Japanese>
|
||||
<Russian>Пометьте свою территорию</Russian>
|
||||
<French>Marquez votre territoire</French>
|
||||
<Spanish>Marca Tu Territorio</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_SprayPaint_Description">
|
||||
<English>%3Spray Paint%4 is used to tag surfaces with various symbols.<br/><br/>%3Usage:%4<br/>%2Move close to a surface (wall, vehicle, ground, etc).<br/>%2Use [%3%12%4] and select %3Tag%4.<br/>%2Choose a symbol.<br/><br/>%3Available Colors:%4<br/>%2Black<br/>%2Blue<br/>%2Green<br/>%2Red</English>
|
||||
@ -679,6 +751,7 @@
|
||||
<Italian>%3Bombolette Spray%4 vengono usate per marcare superfici con vari simboli.<br/><br/>%3Utilizzo:%4<br/>%2Muoviti vicino a una superfice (muro, veicolo, suolo, etc).<br/>%2Usa [%3%12%4] e seleziona %3Marca%4.<br/>%2Seleziona un simbolo.<br/><br/>%3Colori disponibili:%4<br/>%2Nero<br/>%2Blu<br/>%2Verde<br/>%2Rosso</Italian>
|
||||
<Korean>%3스프레이 페인트%4다양한 기호로 표면에 태그를 지정하는 데 사용됩니다.<br/><br/>%3사용 방법:%4<br/>%2표면(벽, 차량, 지면 등)에 가까이 가십시오.<br/>%2[%3%12%4]를 사용하고 %3태그%4를 선택하십시오.<br/>%2모양을 고르십시오.<br/><br/>%3사용 가능 색상:%4<br/>%2검정<br/>%2파랑<br/>%2초록<br/>%2빨강</Korean>
|
||||
<Japanese>%3ペイントスプレー%4は、地面や壁、車両の表面などに様々な図形のタグを付けるために使えます。<br/><br/>%3使用方法:%4<br/>%2塗りたい面に近づきます。(壁、車両、地面など)<br/>%2[%3%12%4] を使って%3タグ (スプレーペイント)%4を選択します。<br/>%2図形を選びます。<br/><br/>%3利用可能な色:%4<br/>%2黒<br/>%2白<br/>%2赤<br/>%2青<br/>%2緑<br/>%2黄</Japanese>
|
||||
<Spanish>La %3Pintura en Spray%4 se usa para marcar superficies con varios símbolos.<br/><br/>%3Uso:%4<br/>%2Acércate a una superficie (pared, vehículo, suelo, etc).<br/>%2Usar [%3%12%4] y seleccionar %3Tag%4.<br/>%2Elige un símbolo.<br/><br/>%3Colores disponibles:%4<br/>%2Negro<br/>%2Azul<br/>%2Verde<br/>%2Rojo</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_Tripod_ShortName">
|
||||
<English>Brace From Anywhere</English>
|
||||
@ -688,6 +761,7 @@
|
||||
<Japanese>どこでも支持器</Japanese>
|
||||
<Russian>Опора может быть установлена в любом месте</Russian>
|
||||
<French>Stabilisé partout</French>
|
||||
<Spanish>Apoyarte En Cualquier Lugar</Spanish>
|
||||
</Key>
|
||||
<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.<br/><br/>%3Usage:%4<br/>%2Use [%3%12%4] and select %3Equipment%4.<br/>%2Select %3SSWT Kit%4 and follow the on screen prompts to place.</English>
|
||||
@ -695,6 +769,7 @@
|
||||
<Italian>Il %3Kit SSWT%4 è un treppiede piazzabile che permette al soldato di appoggiare la sua arma. Usalo quando ti serve una posizione di tiro rialzata e non ci sono altri oggetti utili nelle vicinanze.<br/><br/>%3Utilizzo:%4<br/>%2Usa [%3%12%4] e seleziona %3Equipaggiamento%4.<br/>%2Seleziona %3Kit SSWT%4 e segui le indicazioni di piazzamento.</Italian>
|
||||
<Korean>%3SSWT 키트%4는 병사가 배치 시 조준력을 상승시킬 수 있는 배치 가능한 삼각대입니다. 높이 조절이 된 사격 위치가 필요하고 주위에 다른 물체가 없을 때 사용하십시오.<br/><br/>%3사용 방법:%4<br/>%2[%3%12%4] 를 사용하고 %3장비%4를 선택하십시오.<br/>%2%3SSWT 키트%4를 선택하고 화면의 지시에 따라 배치하십시오.</Korean>
|
||||
<Japanese>%3SSWT キット%4は展開可能な三脚で、展開時に兵士が狙いを定めることができます。高い射撃位置が必要で、周囲に他の物体がない場合に使用してください。<br/><br/>%3使用方法:%4<br/>%2[%3%12%4] を使って%3装備%4を選択します。<br/>%2%3SSWT キット%4を選択し、画面上の指示に従って配置します。</Japanese>
|
||||
<Spanish>El %3Kit SSWT%4 es un trípode desplegable que permite a un soldado apoyarse para apuntar cuando está desplegado. Úsalo cuando necesites una posición de tiro elevada y no hay ningún otro objeto alrededor.<br/><br/>%3Uso:%4<br/>%2Usar [%3%12%4] y seleccionar %3Equipamiento%4.<br/>%2Seleccionar %3Kit SSWT%4 y sigue las indicaciones en pantalla para colocarlo.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_UAVBattery_ShortName">
|
||||
<English>Keep Eyes In The Sky</English>
|
||||
@ -705,6 +780,7 @@
|
||||
<Russian>Не Отрывай Глаз От Неба</Russian>
|
||||
<Hungarian>Gardez les yeux au ciel</Hungarian>
|
||||
<French>Gardez les yeux au ciel</French>
|
||||
<Spanish>Manten Tus Ojos En El Cielo</Spanish>
|
||||
</Key>
|
||||
<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.<br/><br/>%3Usage:%4<br/>%2Equip a %3UAV Battery%4<br/>%2Approach a %3UAV%4 with its %3Engine Off%4.<br/>%2Use [%3%13%4] and select %3Recharge%4.</English>
|
||||
@ -712,6 +788,7 @@
|
||||
<Italian>%3Batteria UAV%4 vengono usate per ricaricare gli UAV. Molto utile per piccoli UAV.<br/><br/>%3Utilizzo:%4<br/>%2Equipaggia una %3Batteria UAV%4<br/>%2Avvicinati al %3UAV%4 con il %3Motore Spento%4.<br/>%2Usa [%3%13%4] e seleziona %3Ricarica%4.</Italian>
|
||||
<Korean>%3무인기 배터리%4는 무인기의 에너지 저장소를 재충전하는 데 사용됩니다. 소형 무인기에 특히 유용합니다.<br/><br/>%3사용 방법:%4<br/>%2%3무인기 배터리%4를 장착하십시오.<br/>%2%3엔진을 끄고%4 %3무인기%4에 접근하십시오.<br/>%2[%3%13%4]를 사용하고 %3재충전%4을 선택하십시오.</Korean>
|
||||
<Japanese>%3UAVバッテリー%4は、UAVの電源容量を充電するために使用されます。<br/><br/>%3使用方法:%4<br/>%2%3UAV バッテリー%4を装備します。<br/>%2%3エンジンをオフ%4にした%3UAV%4に近づきます。<br/>%2[%3%13%4] を使って%3充電%4を選択します。</Japanese>
|
||||
<Spanish>La %3Batería de VANT%4 se utilizan para recargar el almacenamiento de energía de un VANT. Especialmente útiles para pequeños VANTs.<br/><br/>%3Uso:%4<br/>%2Equipa una %3Batería de VANT%4<br/>%2Acércate a un %3VANT%4 con su %3Motor Apagado%4.<br/>%2Usa [%3%13%4] y selecciona %3Recargar%4.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_Wirecutter_ShortName">
|
||||
<English>Making An Entrance</English>
|
||||
@ -721,6 +798,7 @@
|
||||
<Japanese>堂々入場する</Japanese>
|
||||
<Russian>Создание собственного входа</Russian>
|
||||
<French>Faire son entrée</French>
|
||||
<Spanish>Abriendo Una Entrada</Spanish>
|
||||
</Key>
|
||||
<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.<br/><br/>%3Usage:%4<br/>%2Move close to a fence.<br/>%2Use [%3%12%4] and select %3Cut Fence%4.</English>
|
||||
@ -728,6 +806,7 @@
|
||||
<Italian>La %3Trancia%4 è un utensile che permette ai soldati di sorpassare filo spinato e recinzioni. Utile per creare punti di accesso nel retro di zone protette.<br/><br/>%3Utilizzo:%4<br/>%2Avvicinati a una barriera.<br/>%2Usa [%3%12%4] e seleziona %3Taglia%4.</Italian>
|
||||
<Korean>%3절단기%4는 병사가 철조망을 통과할 수 있게 해주는 도구입니다. 보안 구역에 뒷입구를 만드는 데 유용합니다.<br/><br/>%3사용 방법:%4<br/>%2철조망에 가까이 가십시오.<br/>%2[%3%13%4]를 사용하고 %3철조망 자르기%4를 선택하십시오.</Korean>
|
||||
<Japanese>%3ワイヤーカッター%4は、兵士が有線フェンスを回避できるようにするツールです。安全にエリアへの裏口を作成するのに役立ちます。<br/><br/>%3使用方法:%4<br/>%2フェンスの近くに移動します。<br/>%2[%3%12%4] を使って%3フェンスを切断する%4を選択します。</Japanese>
|
||||
<Spanish>La %3Cizalla%4 es una herramienta que permite a un soldado atravesar una valla de alambre. Es útil para crear entradas traseras en áreas seguras.<br/><br/>%3Uso:%4<br/>%2Acércate a una valla.<br/>%2Usar [%3%12%4] y seleccionar %3Cortar Valla%4.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_DisplayName">
|
||||
<English>Items</English>
|
||||
@ -770,6 +849,7 @@
|
||||
<Japanese>要塞を構築する</Japanese>
|
||||
<Russian>Стройте укрепления</Russian>
|
||||
<French>Construire des fortifications</French>
|
||||
<Spanish>Construir Fortificaciones</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_FortifyTool_Description">
|
||||
<English>The %3Fortify Tool%4 allows soldiers to build fortifications provided by their mission creator.<br/><br/>%3Usage:%4<br/>%2Pick up a %3Fortify Tool%4.<br/>%2Use [%3%12%4] and select %3Fortify%4.<br/>%2Select an available fortification and follow the on screen prompts for placement.</English>
|
||||
@ -777,6 +857,7 @@
|
||||
<Italian>L'%3Attrezzo di Fortificazione%4 permette ai soldati di costruire fortificazioni permesse dal creatore della missione.<br/><br/>%3Utilizzo:%4<br/>%2Raccogli un %3Attrezzo di Fortificazione%4.<br/>%2Usa [%3%12%4] e seleziona %3Fortifica%4.<br/>%2Seleziona una fortificazione disponibile e segui le indicazioni di piazzamento sullo schermo.</Italian>
|
||||
<Korean>%3요새화 도구%4를 사용하면 병사들이 임무 생성자가 제공한 요새를 구축할 수 있습니다.<br/><br/>%3사용 방법:%4<br/>%2%3요새화 도구%4를 가지십시오.<br/>%2[%3%12%4]를 사용하고 %3요새화%4를 선택하십시오.<br/>%2사용 가능한 요새를 선택하고 화면의 지시에 따라 배치하십시오.</Korean>
|
||||
<Japanese>%3要塞ツール%4を使用すると、兵士はミッション作成者が提供した要塞を構築できます。<br/><br/>%3使用方法:%4<br/>%2%3要塞ツール%4を持つ。<br/>%2[%3%12%4] を使って%3要塞%4を選択します。<br/>%2利用可能な構造物を選択し、画面上の指示に従って配置します。</Japanese>
|
||||
<Spanish>La %3Herramienta de Fortificación%4 permite a los soldados construir fortificaciones provistas por su creador de mision.<br/><br/>%3Uso:%4<br/>%2Coge una %3Herramienta de Fortificación%4.<br/>%2Usar [%3%12%4] y seleccionar %3Fortificar%4.<br/>%2Selecciona una fortificación disponible y sigue las instrucciones en pantalla para su colocación.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_Lockpick_ShortName">
|
||||
<English>Breaking and Entering</English>
|
||||
@ -786,6 +867,7 @@
|
||||
<Japanese>破壊して乗り込む</Japanese>
|
||||
<Russian>Взлом и проникновение</Russian>
|
||||
<French>Entrée par effraction</French>
|
||||
<Spanish>Romper y Entrar</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_Lockpick_Description">
|
||||
<English>%3Lockpicks%4 are used to gain access to locked vehicles.<br/><br/>%3Usage:%4<br/>%2Equip a %3Lockpick%4.<br/>%2Approach a %3Locked%4 vehicle.<br/>Use [%3%13%4] and select %3Lockpick Vehicle%4.<br/><br/><t underline='1'>%3Note:%4</t> Lockpicks and keys are only available via scripting or ACE Vehicle Key modules.</English>
|
||||
@ -793,6 +875,7 @@
|
||||
<Italian>I %3Grimaldelli%4 sono usati per forzare l'accesso a veicoli bloccati.<br/><br/>%3Utilizzo:%4<br/>%2Equipaggia un %3Grimaldello%4.<br/>%2Avvicinati a un veicolo %3Bloccato%4 vehicle.<br/>Usa [%3%13%4] e seleziona %3Scassina Veicolo%4.<br/><br/><t underline='1'>%3Note:%4</t> Grimaldelli e chiavi sono solo reperibili mediante scripting o moduli ACE di assegnazione Chiavi Veicoli.</Italian>
|
||||
<Korean>%3해정도구%4는 잠긴 차량에 들어가는 데 사용됩니다.<br/><br/>%3사용 방법:%4<br/>%2%3해정도구%4를 장착하십시오.<br/>%2%3잠긴%4 차량에 접근하십시오.<br/>[%3%13%4]를 사용하고 %3차량 잠금해제%4를 선택하십시오.<br/><br/><t underline='1'>%3참고:%4</t> 해정도구와 열쇠는 스크립팅 또는 ACE 차량 열쇠 모듈에서만 사용할 수 있습니다.</Korean>
|
||||
<Japanese>%3Lockpick%4は、ロックされた車両にアクセスするために使用されます。<br/><br/>%3使用方法:%4<br/>%2%3Lockpick%4を装備します。<br/>%2%3鍵の掛かった%4車両に近づきます。<br/>[%3%13%4] を使って%3鍵をこじ開ける%4を選択します。<br/><br/><t underline='1'>%3備考:%4</t> ロックピックとキーは、スクリプトまたは ACE Vehicle Key モジュールを介してのみ使用できます。</Japanese>
|
||||
<Spanish>La %3Ganzúa%4 es usada para lograr acceso a vehículos bloqueados.<br/><br/>%3Uso:%4<br/>%2Equipar %3Ganzúa%4.<br/>%2Acércate a un vehículo %3Bloqueado%4.<br/>Usar [%3%13%4] y seleccionar %3Ganzuar Vehículo%4.<br/><br/><t underline='1'>%3Nota:%4</t>Ganzúas y Llaves sólo están disponibles mediante scripting o módulos de Llaves de Vehículos ACE.</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_VehicleKey_DisplayName">
|
||||
<English>Vehicle Keys</English>
|
||||
@ -802,6 +885,7 @@
|
||||
<Japanese>車両キー</Japanese>
|
||||
<Russian>Взлом и проникновение</Russian>
|
||||
<French>Clés de véhicule</French>
|
||||
<Spanish>Llaves de Vehículos</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_FieldManual_Items_VehicleKey_ShortName">
|
||||
<English>Lock/Unlock Vehicles</English>
|
||||
@ -811,6 +895,7 @@
|
||||
<Japanese>車両のロック/ロック解除</Japanese>
|
||||
<Russian>Взлом и проникновение</Russian>
|
||||
<French>Verrouiller/déverrouiller un véhicule</French>
|
||||
<Spanish>Bloquear/Desbloquear vehículos</Spanish>
|
||||
</Key>
|
||||
<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.<br/><br/>%3Usage:%4<br/>%2Equip a %3Vehicle Key%4.<br/>%2Approach the vehicle that the key belongs to.<br/>Use [%3%13%4] and select %3Lock/Unlock Vehicle%4.<br/><br/><t underline='1'>%3Note:%4</t> Lockpicks and keys are only available via scripting or ACE Vehicle Key modules.</English>
|
||||
@ -818,6 +903,7 @@
|
||||
<Italian>Le %3Chiavi di Veicoli%4 vengono usate per bloccare/sbloccare i propri veicoli. Chiavi di veicoli possono esistere per un'intera fazione, oppure per un veicolo particolare.<br/><br/>%3Utilizzo:%4<br/>%2Equipaggia una %3Chiave di Veicolo%4.<br/>%2Avvicinati al veicolo a cui appartiene la chiave.<br/>Usa [%3%13%4] e seleziona %3Blocca/Sblocca Veicolo%4.<br/><br/><t underline='1'>%3Note:%4</t> Grimaldelli e chiavi sono solo disponibili mediante scripting o moduli ACE Chiavi Veicoli.</Italian>
|
||||
<Korean>%3차량 열쇠%4는 차량을 잠그거나 잠금해제하는 데 사용됩니다. 차량 열쇠는 모든 세력에게 존재할 수도 있고, 특정 차량 자체에 대해 열쇠를 생성할 수도 있습니다.<br/><br/>%3사용 방법:%4<br/>%2%3차량 열쇠%4를 장착하십시오.<br/>%2해당 열쇠에 속한 차량에 접근하십시오.<br/>[%3%13%4]를 사용하고 %3차량 잠금/잠금해제%4를 선택하십시오.<br/><br/><t underline='1'>%3참고:%4</t> 해정도구와 열쇠는 스크립팅 또는 ACE 차량 열쇠 모듈에서만 사용할 수 있습니다.</Korean>
|
||||
<Japanese>%3Vehicle Key%4は、車両のロック/ロック解除に使用されます。車両キーは陣営全体に存在することも、特定の車両だけに対してキーを作成することもできます。<br/><br/>%3使用方法:%4<br/>%2%3Vehicle Key%4を装備します。<br/>%2鍵の対応している車両に近づきます。<br/>[%3%13%4] を使って%3鍵を解錠/施錠%4します。<br/><br/><t underline='1'>%3備考:%4</t> ロックピックとキーは、スクリプトまたは ACE Vehicle Key モジュールを介してのみ使用できます。</Japanese>
|
||||
<Spanish>Las %3Llaves de Vehículos%4 son usadas para bloquear/desbloquear tus vehículos. Las Llaves de Vehículos existen para un bando entero o para un vehículo concreto.<br/><br/>%3Uso:%4<br/>%2Equipa una %3Llave de Vehículo%4.<br/>%2Acércate a un vehículo cuya llave corresponda.<br/>Usar [%3%13%4] y selecciona %3Bloquear/Desbloquear Vehículo%4.<br/><br/><t underline='1'>%3Nota:%4</t> Ganzúas y Llaves sólo están disponibles mediante scripting o módulos de Llaves de Vehículos ACE</Spanish>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
|
@ -1,6 +1,5 @@
|
||||
PREP(burn);
|
||||
PREP(isBurning);
|
||||
PREP(isPlant);
|
||||
PREP(burnIndicator);
|
||||
PREP(burnReaction);
|
||||
PREP(fireManagerPFH);
|
||||
|
@ -8,6 +8,4 @@ PREP_RECOMPILE_END;
|
||||
|
||||
#include "initSettings.inc.sqf"
|
||||
|
||||
GVAR(burningPlants) = [];
|
||||
|
||||
ADDON = true;
|
||||
|
@ -17,7 +17,4 @@
|
||||
|
||||
params [["_unit", objNull, [objNull]]];
|
||||
|
||||
_unit getVariable [QGVAR(burning), false] || {
|
||||
GVAR(burningPlants) = GVAR(burningPlants) select {!isNull _x};
|
||||
_unit in GVAR(burningPlants)
|
||||
}
|
||||
_unit getVariable [QGVAR(burning), false]
|
||||
|
@ -1,20 +0,0 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: commy2
|
||||
* Check if object is a map placed bush or tree.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Object <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* Is bush or tree? <BOOL>
|
||||
*
|
||||
* Example:
|
||||
* cursorObject call ace_fire_fnc_isPlant
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params [["_object", objNull, [objNull]]];
|
||||
|
||||
_object in nearestTerrainObjects [_object, ["TREE", "SMALL TREE", "BUSH"], 0.1]
|
@ -153,7 +153,7 @@ class CfgAmmo {
|
||||
class ACE_G_M14: SmokeShell {
|
||||
GVAR(incendiary) = 1;
|
||||
model = QPATHTOF(models\ace_anm14th3_armed.p3d);
|
||||
hit = 5;
|
||||
hit = 10;
|
||||
indirectHit = 4;
|
||||
indirectHitRange = 1.1;
|
||||
dangerRadiusHit = 50;
|
||||
|
@ -17,7 +17,7 @@ GVAR(flashbangPPEffectCC) ppEffectForceInNVG true;
|
||||
// Add keybinds
|
||||
["ACE3 Weapons", QGVAR(switchGrenadeMode), localize LSTRING(SwitchGrenadeMode), {
|
||||
// Conditions: canInteract
|
||||
if !([ACE_player, objNull, ["isNotEscorting"]] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
if !([ACE_player, objNull, ["isNotEscorting", "isNotInside"]] call EFUNC(common,canInteractWith)) exitWith {false};
|
||||
// Conditions: specific
|
||||
if (!([ACE_player] call CBA_fnc_canUseWeapon)) exitWith {false};
|
||||
// Don't change mode or show hint if advanced throwing is active
|
||||
@ -32,3 +32,27 @@ GVAR(flashbangPPEffectCC) ppEffectForceInNVG true;
|
||||
[] call FUNC(addChangeFuseItemContextMenuOptions);
|
||||
};
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
|
||||
["vehicle", {
|
||||
private _currentThrowable = currentThrowable ACE_player;
|
||||
|
||||
// Make sure grenade can be rolled if in roll mode (detonation time has to be >= 1 second and player isn't in a vehicle)
|
||||
if !(
|
||||
GVAR(currentThrowMode) == 3 &&
|
||||
{_currentThrowable isNotEqualTo []} &&
|
||||
{
|
||||
!isNull objectParent ACE_player ||
|
||||
{getNumber (configFile >> "CfgAmmo" >> getText (configFile >> "CfgMagazines" >> _currentThrowable select 0 >> "ammo") >> "explosionTime") < MIN_EXPLOSION_TIME_FOR_ROLL}
|
||||
}
|
||||
) exitWith {};
|
||||
|
||||
// If the player can't use throwables, don't change it
|
||||
if !(ACE_player call CBA_fnc_canUseWeapon) exitWith {};
|
||||
|
||||
// Force the user into the normal throw mode
|
||||
// Next throw mode after roll would be drop, which isn't ideal if the user tries to throw unknowingly...
|
||||
[format [LLSTRING(RollGrenadeDisabled), LLSTRING(NormalThrow)], 2] call EFUNC(common,displayTextStructured);
|
||||
|
||||
GVAR(currentThrowMode) = 0;
|
||||
GVAR(throwModePFEH) call CBA_fnc_removePerFrameHandler;
|
||||
}, true] call CBA_fnc_addPlayerEventHandler;
|
||||
|
@ -6,6 +6,9 @@ PREP_RECOMPILE_START;
|
||||
#include "XEH_PREP.hpp"
|
||||
PREP_RECOMPILE_END;
|
||||
|
||||
GVAR(currentThrowMode) = 0;
|
||||
GVAR(throwModePFEH) = -1;
|
||||
|
||||
#include "initSettings.inc.sqf"
|
||||
|
||||
ADDON = true;
|
||||
|
@ -19,7 +19,15 @@ params ["_projectile"];
|
||||
TRACE_1("params",_projectile);
|
||||
|
||||
if (alive _projectile) then {
|
||||
playSound3D ["A3\Sounds_F\arsenal\explosives\grenades\Explosion_HE_grenade_01.wss", _projectile, false, getPosASL _projectile, 5, 1.2, 400];
|
||||
private _sounds = getArray (_projectile call CBA_fnc_getObjectConfig >> QGVAR(flashbangExplodeSound));
|
||||
|
||||
(if (_sounds isEqualTo []) then {
|
||||
[format ["A3\Sounds_F\arsenal\explosives\grenades\Explosion_HE_grenade_0%1.wss", floor (random 4) + 1], 5, 1.2, 400]
|
||||
} else {
|
||||
selectRandom _sounds
|
||||
}) params ["_file", "_volume", "_pitch", "_distance"];
|
||||
|
||||
playSound3D [_file, _projectile, false, getPosASL _projectile, _volume, _pitch, _distance];
|
||||
|
||||
["ace_flashbangExploded", [getPosASL _projectile]] call CBA_fnc_globalEvent;
|
||||
};
|
||||
|
@ -180,7 +180,7 @@ if (isServer) then {
|
||||
{EGVAR(cookoff,ammoCookoffDuration) != 0} &&
|
||||
{_x getVariable [QEGVAR(cookoff,enableAmmoCookoff), true]}
|
||||
) then {
|
||||
[QEGVAR(cookOff,cookOffBox), _box] call CBA_fnc_serverEvent;
|
||||
[QEGVAR(cookOff,cookOffBoxServer), _box] call CBA_fnc_serverEvent;
|
||||
} else {
|
||||
_x setDamage 1;
|
||||
};
|
||||
@ -235,6 +235,6 @@ if (_position distance _enginePosition < EFFECT_SIZE * 2) then {
|
||||
_vehicle setHit [_engineSelection, 1];
|
||||
|
||||
if (["ace_cookoff"] call EFUNC(common,isModLoaded)) then {
|
||||
[QEGVAR(cookoff,engineFire), _vehicle] call CBA_fnc_serverEvent;
|
||||
[QEGVAR(cookoff,engineFireServer), _vehicle] call CBA_fnc_serverEvent;
|
||||
};
|
||||
};
|
||||
|
@ -15,7 +15,7 @@
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
private _mode = missionNamespace getVariable [QGVAR(currentThrowMode), 0];
|
||||
private _mode = GVAR(currentThrowMode);
|
||||
|
||||
if (_mode == 4) then {
|
||||
_mode = 0;
|
||||
@ -23,9 +23,18 @@ if (_mode == 4) then {
|
||||
_mode = _mode + 1;
|
||||
};
|
||||
|
||||
// ROLL GRENADE DOESN'T WORK RIGHT NOW
|
||||
if (_mode == 3) then {
|
||||
_mode = 4;
|
||||
private _currentThrowable = currentThrowable ACE_player;
|
||||
|
||||
// Make sure grenade can be rolled if in roll mode (detonation time has to be >= 1 second and player isn't in a vehicle)
|
||||
if (
|
||||
_mode == 3 &&
|
||||
{_currentThrowable isNotEqualTo []} &&
|
||||
{
|
||||
!isNull objectParent ACE_player ||
|
||||
{getNumber (configFile >> "CfgAmmo" >> getText (configFile >> "CfgMagazines" >> _currentThrowable select 0 >> "ammo") >> "explosionTime") < MIN_EXPLOSION_TIME_FOR_ROLL}
|
||||
}
|
||||
) then {
|
||||
_mode = _mode + 1;
|
||||
};
|
||||
|
||||
private _hint = localize ([
|
||||
@ -38,6 +47,37 @@ private _hint = localize ([
|
||||
|
||||
[_hint] call EFUNC(common,displayTextStructured);
|
||||
|
||||
GVAR(throwModePFEH) call CBA_fnc_removePerFrameHandler;
|
||||
GVAR(currentThrowMode) = _mode;
|
||||
|
||||
// If in rolling mode, check every frame if current throwable is rollable
|
||||
if (GVAR(currentThrowMode) == 3) then {
|
||||
GVAR(currentThrowable) = _currentThrowable;
|
||||
|
||||
GVAR(throwModePFEH) = {
|
||||
private _currentThrowable = currentThrowable ACE_player;
|
||||
|
||||
if (GVAR(currentThrowable) isEqualTo _currentThrowable) exitWith {};
|
||||
|
||||
GVAR(currentThrowable) = _currentThrowable;
|
||||
|
||||
// Make sure grenade can be rolled if in roll mode (detonation time has to be >= 1 second and player isn't in a vehicle)
|
||||
if !(
|
||||
GVAR(currentThrowMode) == 3 &&
|
||||
{_currentThrowable isNotEqualTo []} &&
|
||||
{
|
||||
!isNull objectParent ACE_player ||
|
||||
{getNumber (configFile >> "CfgAmmo" >> getText (configFile >> "CfgMagazines" >> _currentThrowable select 0 >> "ammo") >> "explosionTime") < MIN_EXPLOSION_TIME_FOR_ROLL}
|
||||
}
|
||||
) exitWith {};
|
||||
|
||||
// Force the user into the normal throw mode
|
||||
// Next throw mode after roll would be drop, which isn't ideal if the user tries to throw unknowingly...
|
||||
[format [LLSTRING(RollGrenadeDisabled), LLSTRING(NormalThrow)], 2] call EFUNC(common,displayTextStructured);
|
||||
|
||||
GVAR(throwModePFEH) call CBA_fnc_removePerFrameHandler;
|
||||
GVAR(currentThrowMode) = 0;
|
||||
} call CBA_fnc_addPerFrameHandler;
|
||||
};
|
||||
|
||||
true
|
||||
|
@ -85,7 +85,7 @@ if (getNumber (_config >> QGVAR(incendiary)) == 1) then {
|
||||
if (_unit != ACE_player) exitWith {};
|
||||
if (_unit getVariable [QEGVAR(advanced_throwing,primed), false]) exitWith {LOG("advanced_throwing throw");};
|
||||
|
||||
private _mode = missionNamespace getVariable [QGVAR(currentThrowMode), 0];
|
||||
private _mode = GVAR(currentThrowMode);
|
||||
|
||||
if (_mode != 0) then {
|
||||
private _velocity = velocity _projectile;
|
||||
@ -103,9 +103,22 @@ if (_mode != 0) then {
|
||||
case 2 : {
|
||||
_velocity = (_unit weaponDirection _weapon) vectorMultiply (vectorMagnitude _velocity);
|
||||
};
|
||||
//roll grande
|
||||
//roll grenade
|
||||
case 3 : {
|
||||
//@todo
|
||||
private _posASL = getPosASL _projectile;
|
||||
|
||||
// getPos is unreliable, as surfaces in some ruins are not recognised as surfaces
|
||||
private _lisPos = (lineIntersectsSurfaces [_posASL, _posASL vectorAdd [0, 0, -1e11], ACE_player, objNull, true, 1, "ROADWAY", "FIRE"]) select 0;
|
||||
_projectile setPosASL ((_lisPos select 0) vectorAdd [0, 0, 0.2]);
|
||||
|
||||
// Rotate throwables by 90° to the side by default, so cylindrical throwables can be rolled
|
||||
private _vectorDirAndUp = getArray (_config >> QGVAR(rollVectorDirAndUp));
|
||||
_vectorDirAndUp params [["_vectorDir", [0, 1, 0], [[]], 3], ["_vectorUp", [1, 0, 0], [[]], 3]];
|
||||
|
||||
// Do as if object were facing north
|
||||
_projectile setVectorDirAndUp ([[_vectorDir, _vectorUp], -(direction _projectile), 0, 0] call BIS_fnc_transformVectorDirAndUp);
|
||||
|
||||
_velocity = (vectorDir _unit) vectorMultiply 10;
|
||||
};
|
||||
//drop grenade
|
||||
case 4 : {
|
||||
|
@ -20,3 +20,5 @@
|
||||
#define EFFECT_STAGE_DELETELIGHT 1
|
||||
#define EFFECT_STAGE_PARTIALRECOVERY 2
|
||||
#define EFFECT_STAGE_FULLRECOVERY 3
|
||||
|
||||
#define MIN_EXPLOSION_TIME_FOR_ROLL 1
|
||||
|
@ -103,6 +103,9 @@
|
||||
<Chinese>下丟投擲</Chinese>
|
||||
<Turkish>Bombayı Yere Bırak</Turkish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Grenades_RollGrenadeDisabled">
|
||||
<English>Can't roll this grenade, switched to %1</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Grenades_M84_Name">
|
||||
<English>M84 Stun Grenade</English>
|
||||
<German>M84 Blendgranate</German>
|
||||
|
@ -11,7 +11,7 @@
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [player, target] call ace_gunbag_fnc_offGunbagCallback
|
||||
* [player, cursorObject] call ace_gunbag_fnc_offGunbagCallback
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
@ -23,39 +23,28 @@ private _gunbag = backpackContainer _target;
|
||||
private _state = _gunbag getVariable [QGVAR(gunbagWeapon), []];
|
||||
|
||||
if (_state isEqualTo []) exitWith {
|
||||
[localize LSTRING(empty)] call EFUNC(common,displayTextStructured);
|
||||
[LLSTRING(empty)] call EFUNC(common,displayTextStructured);
|
||||
};
|
||||
|
||||
_state params ["_weapon", "_items", "_magazines"];
|
||||
|
||||
_unit addWeapon _weapon;
|
||||
[_unit, _weapon, true, _magazines] call EFUNC(common,addWeapon);
|
||||
|
||||
// Game will auto add magazines from player's inventory, put these back in player inventory as they will be overwritten
|
||||
([_unit, _weapon] call EFUNC(common,getWeaponState)) params ["", "", "_addedMags", "_addedAmmo"];
|
||||
// Add attachments
|
||||
{
|
||||
if (((_x select 0) != "") && {(_addedMags select _forEachIndex) != ""}) then {
|
||||
TRACE_2("Re-adding mag",_x,_addedMags select _forEachIndex);
|
||||
_unit addMagazine [_addedMags select _forEachIndex, _addedAmmo select _forEachIndex];
|
||||
};
|
||||
} forEach _magazines;
|
||||
|
||||
removeAllPrimaryWeaponItems _unit;
|
||||
|
||||
{
|
||||
_unit addWeaponItem [_weapon, _x];
|
||||
} forEach (_items + _magazines);
|
||||
_unit addWeaponItem [_weapon, _x, true];
|
||||
} forEach (_items select {_x != ""});
|
||||
|
||||
_unit selectWeapon _weapon;
|
||||
|
||||
_magazines = _magazines apply {_x select 0};
|
||||
private _mass = [_weapon, _items, _magazines apply {_x select 0}] call FUNC(calculateMass);
|
||||
|
||||
private _mass = [_weapon, _items, _magazines] call FUNC(calculateMass);
|
||||
|
||||
// remove virtual load
|
||||
// Remove virtual load
|
||||
[_target, _gunbag, -_mass] call EFUNC(movement,addLoadToUnitContainer);
|
||||
|
||||
_gunbag setVariable [QGVAR(gunbagWeapon), [], true];
|
||||
|
||||
// play sound
|
||||
// Play sound
|
||||
if (["ace_backpacks"] call EFUNC(common,isModLoaded)) then {
|
||||
[_target, _gunbag] call EFUNC(backpacks,backpackOpened);
|
||||
};
|
||||
|
@ -1,6 +1,6 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Ir0n1E and mjc4wilton
|
||||
* Author: Ir0n1E, mjc4wilton
|
||||
* Swap primary weapon and weapon in gunbag.
|
||||
*
|
||||
* Arguments:
|
||||
@ -11,66 +11,49 @@
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [player, target] call ace_gunbag_fnc_swapGunbagCallback
|
||||
* [player, cursorObject] call ace_gunbag_fnc_swapGunbagCallback
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params ["_unit", "_target"];
|
||||
private _currentWeapon = primaryWeapon _unit; //Get Current Weapon
|
||||
|
||||
// Set up current weapon for storing
|
||||
private _gunbag = backpackContainer _target;
|
||||
private _currentItems = (getUnitLoadout _unit) select 0;
|
||||
|
||||
private _currentMagazines = _currentItems select [4, 2];
|
||||
_currentItems deleteRange [4, 2];
|
||||
|
||||
//---Set up current weapon for storing
|
||||
private _currentWeaponState = [_unit, _currentWeapon] call EFUNC(common,getWeaponState); //Gets weapon attachments
|
||||
private _currentWeapon = _currentItems deleteAt 0;
|
||||
|
||||
/*
|
||||
* example return value _state
|
||||
* [["","","optic_Aco",""],["arifle_MX_GL_ACO_F","GL_3GL_F"],["30Rnd_65x39_caseless_mag","1Rnd_HE_Grenade_shell"],[30,1]]
|
||||
*/
|
||||
private _currentMass = [_currentWeapon, _currentItems, _currentMagazines apply {_x select 0}] call FUNC(calculateMass);
|
||||
|
||||
_currentWeaponState params ["_currentWeaponItems", "", "_currentWeaponMagazines", "_currentWeaponAmmo"]; //Extract Weapon Attachments to separate arrays
|
||||
// Set up weapon in gunbag
|
||||
private _newState = _gunbag getVariable [QGVAR(gunbagWeapon), []];
|
||||
|
||||
private _currentWeaponMass = [_currentWeapon, _currentWeaponItems, _currentWeaponMagazines] call FUNC(calculateMass);
|
||||
|
||||
{
|
||||
_currentWeaponMagazines set [_forEachIndex, [_x, _currentWeaponAmmo select _forEachIndex]];
|
||||
} forEach _currentWeaponMagazines;
|
||||
|
||||
//---Set up weapon in gunbag
|
||||
private _newWeaponState = _gunbag getVariable [QGVAR(gunbagWeapon), []];
|
||||
|
||||
if (_newWeaponState isEqualTo []) exitWith {
|
||||
if (_newState isEqualTo []) exitWith {
|
||||
[LLSTRING(empty)] call EFUNC(common,displayTextStructured);
|
||||
};
|
||||
|
||||
_newWeaponState params ["_newWeapon", "_newWeaponItems", "_newWeaponMagazines"];
|
||||
_newState params ["_newWeapon", "_newItems", "_newMagazines"];
|
||||
|
||||
//---Swap Weapons
|
||||
// Swap Weapons
|
||||
_unit removeWeapon _currentWeapon;
|
||||
_unit addWeapon _newWeapon;
|
||||
|
||||
// Game will auto add magazines from player's inventory, put these back in player inventory as they will be overwritten
|
||||
([_unit, _newWeapon] call EFUNC(common,getWeaponState)) params ["", "", "_addedMags", "_addedAmmo"];
|
||||
[_unit, _newWeapon, true, _newMagazines] call EFUNC(common,addWeapon);
|
||||
|
||||
// Add attachments
|
||||
{
|
||||
if (((_x select 0) != "") && {(_addedMags select _forEachIndex) != ""}) then {
|
||||
TRACE_2("Re-adding mag",_x,_addedMags select _forEachIndex);
|
||||
_unit addMagazine [_addedMags select _forEachIndex, _addedAmmo select _forEachIndex];
|
||||
};
|
||||
} forEach _newWeaponMagazines;
|
||||
|
||||
removeAllPrimaryWeaponItems _unit;
|
||||
|
||||
{
|
||||
_unit addWeaponItem [_newWeapon, _x];
|
||||
} forEach (_newWeaponItems + _newWeaponMagazines);
|
||||
_unit addWeaponItem [_newWeapon, _x, true];
|
||||
} forEach (_newItems select {_x != ""});
|
||||
|
||||
_unit selectWeapon _newWeapon;
|
||||
|
||||
_newWeaponMagazines = _newWeaponMagazines apply {_x select 0};
|
||||
private _newMass = [_newWeapon, _newItems, _newMagazines apply {_x select 0}] call FUNC(calculateMass);
|
||||
|
||||
private _newWeaponMass = [_newWeapon, _newWeaponItems, _newWeaponMagazines] call FUNC(calculateMass);
|
||||
// Update virtual load
|
||||
[_target, _gunbag, _currentMass - _newMass] call EFUNC(movement,addLoadToUnitContainer);
|
||||
|
||||
// update virtual load
|
||||
[_target, _gunbag, _currentWeaponMass - _newWeaponMass] call EFUNC(movement,addLoadToUnitContainer);
|
||||
_gunbag setVariable [QGVAR(gunbagWeapon), [_currentWeapon, _currentWeaponItems, _currentWeaponMagazines], true]; //Replace weapon in gunbag
|
||||
// Replace weapon in gunbag
|
||||
_gunbag setVariable [QGVAR(gunbagWeapon), [_currentWeapon, _currentItems, _currentMagazines], true];
|
||||
|
@ -11,38 +11,32 @@
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [player, target] call ace_gunbag_fnc_toGunbagCallback
|
||||
* [player, cursorObject] call ace_gunbag_fnc_toGunbagCallback
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params ["_unit", "_target"];
|
||||
|
||||
private _weapon = primaryWeapon _unit;
|
||||
// Set up current weapon for storing
|
||||
private _gunbag = backpackContainer _target;
|
||||
private _items = (getUnitLoadout _unit) select 0;
|
||||
|
||||
private _state = [_unit, _weapon] call EFUNC(common,getWeaponState);
|
||||
private _magazines = _items select [4, 2];
|
||||
_items deleteRange [4, 2];
|
||||
|
||||
/*
|
||||
* example return value _state
|
||||
* [["","","optic_Aco",""],["arifle_MX_GL_ACO_F","GL_3GL_F"],["30Rnd_65x39_caseless_mag","1Rnd_HE_Grenade_shell"],[30,1]]
|
||||
*/
|
||||
private _weapon = _items deleteAt 0;
|
||||
|
||||
_state params ["_items", "", "_magazines", "_ammo"];
|
||||
|
||||
private _mass = [_weapon, _items, _magazines] call FUNC(calculateMass);
|
||||
|
||||
{
|
||||
_magazines set [_forEachIndex, [_x, _ammo select _forEachIndex]];
|
||||
} forEach _magazines;
|
||||
private _mass = [_weapon, _items, _magazines apply {_x select 0}] call FUNC(calculateMass);
|
||||
|
||||
_unit removeWeapon _weapon;
|
||||
|
||||
// add virtual load
|
||||
// Add virtual load
|
||||
[_target, _gunbag, _mass] call EFUNC(movement,addLoadToUnitContainer);
|
||||
|
||||
_gunbag setVariable [QGVAR(gunbagWeapon), [_weapon, _items, _magazines], true];
|
||||
|
||||
// play sound
|
||||
// Play sound
|
||||
if (["ace_backpacks"] call EFUNC(common,isModLoaded)) then {
|
||||
[_target, _gunbag] call EFUNC(backpacks,backpackOpened);
|
||||
};
|
||||
|
@ -1,3 +1,4 @@
|
||||
ACEX_PREP(blacklist);
|
||||
ACEX_PREP(endMissionNoPlayers);
|
||||
ACEX_PREP(handleConnectHC);
|
||||
ACEX_PREP(handleDisconnect);
|
||||
|
@ -10,6 +10,21 @@
|
||||
};
|
||||
// Add disconnect EH
|
||||
addMissionEventHandler ["HandleDisconnect", {call FUNC(handleDisconnect)}];
|
||||
|
||||
[QGVAR(transferGroupsRebalance), {
|
||||
params ["_groups", "_owner", "_rebalance"];
|
||||
|
||||
if (_groups isNotEqualTo [] && {_owner > 1}) then {
|
||||
{
|
||||
_x setGroupOwner _owner;
|
||||
} forEach _groups;
|
||||
};
|
||||
|
||||
// Rebalance units
|
||||
if (_rebalance in [REBALANCE, FORCED_REBALANCE]) then {
|
||||
(_rebalance == FORCED_REBALANCE) call FUNC(rebalance);
|
||||
};
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
} else {
|
||||
// Register HC (this part happens on HC only)
|
||||
[QXGVAR(headlessClientJoined), [player]] call CBA_fnc_globalEvent; // Global event for API purposes
|
||||
|
51
addons/headless/functions/fnc_blacklist.sqf
Normal file
51
addons/headless/functions/fnc_blacklist.sqf
Normal file
@ -0,0 +1,51 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: johnb43
|
||||
* Modifies which units are blacklisted from being transferred to HCs.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Units <OBJECT, GROUP, ARRAY>
|
||||
* 1: Add (true) or remove (false) from blacklist <BOOL> (default: true)
|
||||
* 2: Owner to transfer units to <NUMBER> (default: -1)
|
||||
* 3: Rebalance <NUMBER> (default: 0)
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [cursorObject, true] call ace_headless_fnc_blacklist
|
||||
*
|
||||
* Public: Yes
|
||||
*/
|
||||
|
||||
params [["_units", objNull, [objNull, grpNull, []]], ["_blacklist", true, [false]], ["_owner", -1, [false]], ["_rebalance", NO_REBALANCE, [0]]];
|
||||
|
||||
if !(_units isEqualType []) then {
|
||||
_units = [_units];
|
||||
};
|
||||
|
||||
// Make sure passed arguments are objects or groups
|
||||
_units = _units select {_x isEqualType objNull || {_x isEqualType grpNull}};
|
||||
_units = _units select {!isNull _x};
|
||||
|
||||
if (_units isEqualTo []) exitWith {};
|
||||
|
||||
private _transfer = _blacklist && {_owner > 1};
|
||||
private _groups = [];
|
||||
|
||||
{
|
||||
_x setVariable [QXGVAR(blacklist), _blacklist, true];
|
||||
|
||||
if (_transfer) then {
|
||||
if (_x isEqualType objNull) then {
|
||||
_groups pushBack group _x;
|
||||
} else {
|
||||
_groups pushBack _x;
|
||||
};
|
||||
};
|
||||
} forEach _units;
|
||||
|
||||
// Try to move AI to new owner; Also takes care of rebalancing groups
|
||||
if (_transfer || {_rebalance in [REBALANCE, FORCED_REBALANCE]}) then {
|
||||
[QGVAR(transferGroupsRebalance), [_groups arrayIntersect _groups, _owner, _rebalance]] call CBA_fnc_serverEvent;
|
||||
};
|
@ -17,6 +17,9 @@
|
||||
|
||||
params ["_force"];
|
||||
|
||||
// Filter out any invalid entries
|
||||
GVAR(headlessClients) = GVAR(headlessClients) select {!isNull _x};
|
||||
|
||||
GVAR(headlessClients) params [
|
||||
["_HC1", objNull, [objNull]],
|
||||
["_HC2", objNull, [objNull]],
|
||||
@ -36,12 +39,13 @@ private _idHC2 = -1;
|
||||
private _idHC3 = -1;
|
||||
private _currentHC = 0;
|
||||
|
||||
if (!local _HC1) then {
|
||||
// objNull is never local
|
||||
if (!local _HC1 && !isNull _HC1) then {
|
||||
_idHC1 = owner _HC1;
|
||||
_currentHC = 1;
|
||||
};
|
||||
|
||||
if (!local _HC2) then {
|
||||
if (!local _HC2 && !isNull _HC2) then {
|
||||
_idHC2 = owner _HC2;
|
||||
|
||||
if (_currentHC == 0) then {
|
||||
@ -49,7 +53,7 @@ if (!local _HC2) then {
|
||||
};
|
||||
};
|
||||
|
||||
if (!local _HC3) then {
|
||||
if (!local _HC3 && !isNull _HC3) then {
|
||||
_idHC3 = owner _HC3;
|
||||
|
||||
if (_currentHC == 0) then {
|
||||
@ -57,84 +61,150 @@ if (!local _HC3) then {
|
||||
};
|
||||
};
|
||||
|
||||
if (_currentHC == 0) exitWith {
|
||||
TRACE_1("No Valid HC to transfer to",_currentHC);
|
||||
|
||||
if (XGVAR(log)) then {
|
||||
INFO("No Valid HC to transfer to");
|
||||
};
|
||||
};
|
||||
|
||||
// Prepare statistics
|
||||
private _numTransferredHC1 = 0;
|
||||
private _numTransferredHC2 = 0;
|
||||
private _numTransferredHC3 = 0;
|
||||
|
||||
private _units = [];
|
||||
private _transfer = false;
|
||||
private _previousOwner = -1;
|
||||
|
||||
// Transfer AI groups
|
||||
{
|
||||
// No transfer if empty group
|
||||
private _transfer = ((units _x) isNotEqualTo []) && {!(_x getVariable [QXGVAR(blacklist), false])};
|
||||
if (_transfer) then {
|
||||
// No transfer if waypoints with synchronized triggers exist for the group
|
||||
private _allWaypointsWithTriggers = (waypoints _x) select {(synchronizedTriggers _x) isNotEqualTo []};
|
||||
if (_allWaypointsWithTriggers isNotEqualTo []) exitWith {
|
||||
_units = units _x;
|
||||
|
||||
// No transfer if empty group or if group is blacklisted
|
||||
if (_units isEqualTo [] || {_x getVariable [QXGVAR(blacklist), false]}) then {
|
||||
continue;
|
||||
};
|
||||
|
||||
// No transfer if waypoints with synchronized triggers exist for the group
|
||||
if (((waypoints _x) select {(synchronizedTriggers _x) isNotEqualTo []}) isNotEqualTo []) then {
|
||||
continue;
|
||||
};
|
||||
|
||||
{
|
||||
// No transfer if already transferred
|
||||
if (!_force && {(owner _x) in [_idHC1, _idHC2, _idHC3]}) exitWith {
|
||||
_transfer = false;
|
||||
};
|
||||
|
||||
{
|
||||
// No transfer if already transferred
|
||||
if (!_force && {(owner _x) in [_idHC1, _idHC2, _idHC3]}) exitWith {
|
||||
_transfer = false;
|
||||
};
|
||||
// No transfer if any unit in group is blacklisted
|
||||
if (_x getVariable [QXGVAR(blacklist), false]) exitWith {
|
||||
_transfer = false;
|
||||
};
|
||||
|
||||
// No transfer if player or UAV in this group
|
||||
if (isPlayer _x || {unitIsUAV _x}) exitWith {
|
||||
_transfer = false;
|
||||
};
|
||||
// No transfer if player or UAV in this group
|
||||
if (isPlayer _x || {unitIsUAV _x}) exitWith {
|
||||
_transfer = false;
|
||||
};
|
||||
|
||||
// No transfer if any unit in group is blacklisted
|
||||
if (_x getVariable [QXGVAR(blacklist), false]) exitWith {
|
||||
_transfer = false;
|
||||
};
|
||||
private _vehicle = objectParent _x;
|
||||
|
||||
private _vehicle = objectParent _x;
|
||||
// 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;
|
||||
};
|
||||
|
||||
// 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;
|
||||
};
|
||||
// Save gear if unit about to be transferred with current loadout (naked unit work-around)
|
||||
if (XGVAR(transferLoadout) == 1) then {
|
||||
_x setVariable [QGVAR(loadout), _x call CBA_fnc_getLoadout, true];
|
||||
};
|
||||
} forEach _units;
|
||||
|
||||
// Save gear if unit about to be transferred with current loadout (naked unit work-around)
|
||||
if (XGVAR(transferLoadout) == 1) then {
|
||||
_x setVariable [QGVAR(loadout), _x call CBA_fnc_getLoadout, true];
|
||||
};
|
||||
} forEach (units _x);
|
||||
if (!_transfer) then {
|
||||
continue;
|
||||
};
|
||||
|
||||
// Round robin between HCs if load balance enabled, else pass all to one HC
|
||||
if (_transfer) then {
|
||||
switch (_currentHC) do {
|
||||
case 1: {
|
||||
private _transferred = _x setGroupOwner _idHC1;
|
||||
if (_loadBalance) then {
|
||||
_currentHC = [3, 2] select (!local _HC2);
|
||||
};
|
||||
if (_transferred) then {
|
||||
_numTransferredHC1 = _numTransferredHC1 + 1;
|
||||
_previousOwner = groupOwner _x;
|
||||
|
||||
switch (_currentHC) do {
|
||||
case 1: {
|
||||
if (_loadBalance) then {
|
||||
// Find the next valid HC
|
||||
// If none are valid, _currentHC will remain the same
|
||||
if (_idHC2 != -1) then {
|
||||
_currentHC = 2;
|
||||
} else {
|
||||
if (_idHC3 != -1) then {
|
||||
_currentHC = 3;
|
||||
};
|
||||
};
|
||||
};
|
||||
case 2: {
|
||||
private _transferred = _x setGroupOwner _idHC2;
|
||||
if (_loadBalance) then {
|
||||
_currentHC = [1, 3] select (!local _HC3);
|
||||
};
|
||||
if (_transferred) then {
|
||||
_numTransferredHC2 = _numTransferredHC2 + 1;
|
||||
|
||||
// Don't transfer if it's already local to HC1
|
||||
if (_previousOwner == _idHC1) exitWith {};
|
||||
|
||||
[QGVAR(groupTransferPre), [_x, _HC1, _previousOwner, _idHC1], [_previousOwner, _idHC1]] call CBA_fnc_targetEvent; // API
|
||||
|
||||
private _transferred = _x setGroupOwner _idHC1;
|
||||
|
||||
[QGVAR(groupTransferPost), [_x, _HC1, _previousOwner, _idHC1, _transferred], [_previousOwner, _idHC1]] call CBA_fnc_targetEvent; // API
|
||||
|
||||
if (_transferred) then {
|
||||
_numTransferredHC1 = _numTransferredHC1 + 1;
|
||||
};
|
||||
};
|
||||
case 2: {
|
||||
if (_loadBalance) then {
|
||||
// Find the next valid HC
|
||||
// If none are valid, _currentHC will remain the same
|
||||
if (_idHC3 != -1) then {
|
||||
_currentHC = 3;
|
||||
} else {
|
||||
if (_idHC1 != -1) then {
|
||||
_currentHC = 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
case 3: {
|
||||
private _transferred = _x setGroupOwner _idHC3;
|
||||
if (_loadBalance) then {
|
||||
_currentHC = [2, 1] select (!local _HC1);
|
||||
};
|
||||
if (_transferred) then {
|
||||
_numTransferredHC3 = _numTransferredHC3 + 1;
|
||||
|
||||
// Don't transfer if it's already local to HC2
|
||||
if (_previousOwner == _idHC2) exitWith {};
|
||||
|
||||
[QGVAR(groupTransferPre), [_x, _HC2, _previousOwner, _idHC2], [_previousOwner, _idHC2]] call CBA_fnc_targetEvent; // API
|
||||
|
||||
private _transferred = _x setGroupOwner _idHC2;
|
||||
|
||||
[QGVAR(groupTransferPost), [_x, _HC2, _previousOwner, _idHC2, _transferred], [_previousOwner, _idHC2]] call CBA_fnc_targetEvent; // API
|
||||
|
||||
if (_transferred) then {
|
||||
_numTransferredHC2 = _numTransferredHC2 + 1;
|
||||
};
|
||||
};
|
||||
case 3: {
|
||||
if (_loadBalance) then {
|
||||
// Find the next valid HC
|
||||
// If none are valid, _currentHC will remain the same
|
||||
if (_idHC1 != -1) then {
|
||||
_currentHC = 1;
|
||||
} else {
|
||||
if (_idHC2 != -1) then {
|
||||
_currentHC = 2;
|
||||
};
|
||||
};
|
||||
};
|
||||
default {
|
||||
TRACE_1("No Valid HC to transfer to",_currentHC);
|
||||
|
||||
// Don't transfer if it's already local to HC3
|
||||
if (_previousOwner == _idHC3) exitWith {};
|
||||
|
||||
[QGVAR(groupTransferPre), [_x, _HC3, _previousOwner, _idHC3], [_previousOwner, _idHC3]] call CBA_fnc_targetEvent; // API
|
||||
|
||||
private _transferred = _x setGroupOwner _idHC2;
|
||||
|
||||
[QGVAR(groupTransferPost), [_x, _HC3, _previousOwner, _idHC3, _transferred], [_previousOwner, _idHC3]] call CBA_fnc_targetEvent; // API
|
||||
|
||||
if (_transferred) then {
|
||||
_numTransferredHC3 = _numTransferredHC3 + 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -5,8 +5,8 @@
|
||||
format ["ACE %1", LLSTRING(Module)],
|
||||
false,
|
||||
1,
|
||||
{[QGVAR(enabled), _this] call EFUNC(common,cbaSettings_settingChanged)},
|
||||
true
|
||||
{[QXGVAR(enabled), _this] call EFUNC(common,cbaSettings_settingChanged)},
|
||||
true // Needs mission restart
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
@ -15,8 +15,7 @@
|
||||
[LSTRING(Delay), LSTRING(DelayDesc)],
|
||||
format ["ACE %1", LLSTRING(Module)],
|
||||
[0, 60, 15, -1],
|
||||
1,
|
||||
{[QGVAR(delay), _this] call EFUNC(common,cbaSettings_settingChanged)}
|
||||
1
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
@ -26,8 +25,8 @@
|
||||
format ["ACE %1", LLSTRING(Module)],
|
||||
[[0, 1, 2], [ELSTRING(Common,Disabled), LSTRING(Instant), LSTRING(Delayed)], 0],
|
||||
1,
|
||||
{[QGVAR(delay), _this] call EFUNC(common,cbaSettings_settingChanged)},
|
||||
true
|
||||
{[QXGVAR(endMission), _this] call EFUNC(common,cbaSettings_settingChanged)},
|
||||
true // Needs mission restart
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
@ -36,8 +35,7 @@
|
||||
[LSTRING(Log), LSTRING(LogDesc)],
|
||||
format ["ACE %1", LLSTRING(Module)],
|
||||
false,
|
||||
1,
|
||||
{[QGVAR(enabled), _this] call EFUNC(common,cbaSettings_settingChanged)}
|
||||
1
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
@ -47,6 +45,6 @@
|
||||
format ["ACE %1", LLSTRING(Module)],
|
||||
[[0, 1, 2], [ELSTRING(Common,Disabled), LSTRING(TransferLoadoutCurrent), LSTRING(TransferLoadoutConfig)], 0],
|
||||
1,
|
||||
{},
|
||||
true // needs mission restart
|
||||
{[QXGVAR(transferLoadout), _this] call EFUNC(common,cbaSettings_settingChanged)},
|
||||
true // Needs mission restart
|
||||
] call CBA_fnc_addSetting;
|
||||
|
@ -17,3 +17,7 @@
|
||||
#include "\z\ace\addons\main\script_macros.hpp"
|
||||
|
||||
#define DELAY_DEFAULT 15
|
||||
|
||||
#define NO_REBALANCE 0
|
||||
#define REBALANCE 1
|
||||
#define FORCED_REBALANCE 2
|
||||
|
@ -1,4 +1,3 @@
|
||||
|
||||
class Extended_PreStart_EventHandlers {
|
||||
class ADDON {
|
||||
init = QUOTE(call COMPILE_SCRIPT(XEH_preStart));
|
||||
|
@ -5,7 +5,7 @@ class CfgVehicles {
|
||||
class ACE_Equipment {
|
||||
class ACE_PutInEarplugs {
|
||||
displayName = CSTRING(EarPlugs_On);
|
||||
condition = QUOTE(GVAR(EnableCombatDeafness) && {!([_player] call FUNC(hasEarPlugsIn)) && {'ACE_EarPlugs' in items _player}});
|
||||
condition = QUOTE(GVAR(enableCombatDeafness) && {!(_player call FUNC(hasEarPlugsIn)) && {[ARR_2(_player,'ACE_EarPlugs')] call EFUNC(common,hasItem)}});
|
||||
exceptions[] = {"isNotSwimming", "isNotInside", "isNotSitting"};
|
||||
statement = QUOTE([ARR_2(_player,true)] call FUNC(putInEarPlugs));
|
||||
showDisabled = 0;
|
||||
@ -13,7 +13,7 @@ class CfgVehicles {
|
||||
};
|
||||
class ACE_RemoveEarplugs {
|
||||
displayName = CSTRING(EarPlugs_Off);
|
||||
condition = QUOTE(GVAR(EnableCombatDeafness) && {[_player] call FUNC(hasEarPlugsIn)});
|
||||
condition = QUOTE(GVAR(enableCombatDeafness) && {_player call FUNC(hasEarPlugsIn)});
|
||||
exceptions[] = {"isNotSwimming", "isNotInside", "isNotSitting"};
|
||||
statement = QUOTE([ARR_2(_player,true)] call FUNC(removeEarPlugs));
|
||||
showDisabled = 0;
|
||||
|
@ -80,7 +80,7 @@ class CfgWeapons {
|
||||
|
||||
class H_HelmetO_ocamo: H_HelmetB {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
}; // Defender and Assasin Helmet inherit.
|
||||
}; // Defender and Assassin Helmet inherit.
|
||||
|
||||
class H_HelmetO_ViperSP_hex_f: H_HelmetB {
|
||||
HEARING_PROTECTION_PELTOR;
|
||||
|
@ -1,8 +1,8 @@
|
||||
|
||||
PREP(addEarPlugs);
|
||||
PREP(earRinging);
|
||||
PREP(explosionNear);
|
||||
PREP(firedNear);
|
||||
PREP(getAmmoLoudness);
|
||||
PREP(handleRespawn);
|
||||
PREP(hasEarPlugsIn);
|
||||
PREP(moduleHearing);
|
||||
|
@ -2,9 +2,10 @@
|
||||
|
||||
if (isServer) then {
|
||||
["CBA_settingsInitialized", {
|
||||
TRACE_1("settingInit - server",GVAR(EnableCombatDeafness));
|
||||
TRACE_1("settingInit - server",GVAR(enableCombatDeafness));
|
||||
|
||||
// Only install event handler if combat deafness is enabled
|
||||
if (!GVAR(EnableCombatDeafness)) exitWith {};
|
||||
if (!GVAR(enableCombatDeafness)) exitWith {};
|
||||
|
||||
["CAManBase", "Init", LINKFUNC(addEarPlugs), true, [], true] call CBA_fnc_addClassEventHandler;
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
@ -14,7 +15,7 @@ if (!hasInterface) exitWith {};
|
||||
|
||||
#include "initKeybinds.inc.sqf"
|
||||
|
||||
GVAR(cacheAmmoLoudness) = call CBA_fnc_createNamespace;
|
||||
GVAR(cacheAmmoLoudness) = createHashMap;
|
||||
|
||||
GVAR(deafnessDV) = 0;
|
||||
GVAR(deafnessPrior) = 0;
|
||||
@ -26,18 +27,20 @@ GVAR(volumeAttenuation) = 1;
|
||||
GVAR(lastPlayerVehicle) = objNull;
|
||||
|
||||
["CBA_settingsInitialized", {
|
||||
TRACE_1("settingInit",GVAR(EnableCombatDeafness));
|
||||
TRACE_1("settingInit",GVAR(enableCombatDeafness));
|
||||
|
||||
// Only run PFEH and install event handlers if combat deafness is enabled
|
||||
if (!GVAR(EnableCombatDeafness)) exitWith {};
|
||||
if (!GVAR(enableCombatDeafness)) exitWith {};
|
||||
|
||||
// Spawn volume updating process
|
||||
[LINKFUNC(updateVolume), 1, [false]] call CBA_fnc_addPerFrameHandler;
|
||||
[LINKFUNC(updateVolume), 1, false] call CBA_fnc_addPerFrameHandler;
|
||||
|
||||
[QGVAR(updateVolume), LINKFUNC(updateVolume)] call CBA_fnc_addEventHandler;
|
||||
|
||||
// Update veh attunation when player veh changes
|
||||
["vehicle", {
|
||||
params ["_player", "_vehicle"];
|
||||
|
||||
TRACE_2("vehicle change",_player,_vehicle);
|
||||
_this call FUNC(updatePlayerVehAttenuation);
|
||||
|
||||
@ -48,6 +51,7 @@ GVAR(lastPlayerVehicle) = objNull;
|
||||
GVAR(lastPlayerVehicle) = objNull;
|
||||
TRACE_2("removed veh eh",_firedEH,GVAR(lastPlayerVehicle));
|
||||
};
|
||||
|
||||
if ((!isNull _vehicle) && {_player != _vehicle}) then {
|
||||
private _firedEH = _vehicle addEventHandler ["FiredNear", {call FUNC(firedNear)}];
|
||||
_vehicle setVariable [QGVAR(firedEH), _firedEH];
|
||||
@ -55,8 +59,8 @@ GVAR(lastPlayerVehicle) = objNull;
|
||||
TRACE_2("added veh eh",_firedEH,GVAR(lastPlayerVehicle));
|
||||
};
|
||||
}, true] call CBA_fnc_addPlayerEventHandler;
|
||||
["turret", LINKFUNC(updatePlayerVehAttenuation), false] call CBA_fnc_addPlayerEventHandler;
|
||||
|
||||
["turret", LINKFUNC(updatePlayerVehAttenuation), false] call CBA_fnc_addPlayerEventHandler;
|
||||
|
||||
// Reset deafness on respawn (or remote control player switch)
|
||||
["unit", {
|
||||
@ -67,9 +71,11 @@ GVAR(lastPlayerVehicle) = objNull;
|
||||
private _firedEH = _oldPlayer getVariable [QGVAR(firedEH), -1];
|
||||
_oldPlayer removeEventHandler ["FiredNear", _firedEH];
|
||||
_oldPlayer setVariable [QGVAR(firedEH), nil];
|
||||
|
||||
private _explosionEH = _oldPlayer getVariable [QGVAR(explosionEH), -1];
|
||||
_oldPlayer removeEventHandler ["Explosion", _explosionEH];
|
||||
_oldPlayer setVariable [QGVAR(explosionEH), nil];
|
||||
|
||||
TRACE_3("removed unit eh",_oldPlayer,_firedEH,_explosionEH);
|
||||
};
|
||||
// Don't add a new EH if the unit respawned
|
||||
@ -77,17 +83,21 @@ GVAR(lastPlayerVehicle) = objNull;
|
||||
if ((getNumber (configOf _player >> "isPlayableLogic")) == 1) exitWith {
|
||||
TRACE_1("skipping playable logic",typeOf _player); // VirtualMan_F (placeable logic zeus / spectator)
|
||||
};
|
||||
|
||||
private _firedEH = _player addEventHandler ["FiredNear", {call FUNC(firedNear)}];
|
||||
_player setVariable [QGVAR(firedEH), _firedEH];
|
||||
|
||||
private _explosionEH = _player addEventHandler ["Explosion", {call FUNC(explosionNear)}];
|
||||
_player setVariable [QGVAR(explosionEH), _explosionEH];
|
||||
|
||||
TRACE_3("added unit eh",_player,_firedEH,_explosionEH);
|
||||
};
|
||||
|
||||
GVAR(deafnessDV) = 0;
|
||||
GVAR(deafnessPrior) = 0;
|
||||
GVAR(time3) = 0;
|
||||
[] call FUNC(updateHearingProtection);
|
||||
|
||||
call FUNC(updateHearingProtection);
|
||||
}, true] call CBA_fnc_addPlayerEventHandler;
|
||||
|
||||
// Update protection on possible helmet change
|
||||
|
@ -10,15 +10,20 @@ PREP_RECOMPILE_END;
|
||||
|
||||
["CBA_loadoutSet", {
|
||||
params ["_unit", "_loadout", "_extendedInfo"];
|
||||
|
||||
if (_extendedInfo getOrDefault ["ace_earplugs", false]) then {
|
||||
_unit setVariable ["ACE_hasEarPlugsIn", true, true];
|
||||
|
||||
[QGVAR(updateVolume), [[true]], _unit] call CBA_fnc_targetEvent;
|
||||
// Only force update volume if unit is a player (including remote controlled)
|
||||
if (_unit call EFUNC(common,isPlayer)) then {
|
||||
[QGVAR(updateVolume), true, _unit] call CBA_fnc_targetEvent;
|
||||
};
|
||||
};
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
|
||||
["CBA_loadoutGet", {
|
||||
params ["_unit", "_loadout", "_extendedInfo"];
|
||||
|
||||
if (_unit getVariable ["ACE_hasEarPlugsin", false]) then {
|
||||
_extendedInfo set ["ace_earplugs", true]
|
||||
};
|
||||
|
@ -4,7 +4,7 @@
|
||||
* Called on unit initialization. Adds earplugs if the unit is equipped with either a really loud primary weapon or a rocket launcher.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: A Soldier <Object>
|
||||
* 0: Unit <Object>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
@ -15,9 +15,9 @@
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
// only run this after the settings are initialized
|
||||
if !(EGVAR(common,settingsInitFinished)) exitWith {
|
||||
EGVAR(common,runAtSettingsInitialized) pushBack [FUNC(addEarPlugs), _this];
|
||||
// Only run this after the settings are initialized
|
||||
if (!EGVAR(common,settingsInitFinished)) exitWith {
|
||||
EGVAR(common,runAtSettingsInitialized) pushBack [LINKFUNC(addEarPlugs), _this];
|
||||
};
|
||||
|
||||
// Exit if hearing is disabled or if autoAdd is disabled
|
||||
@ -29,42 +29,48 @@ TRACE_2("params",_unit,typeOf _unit);
|
||||
// Exit if the unit already has earplugs (in ears (persistence scenarios) or inventory)
|
||||
if (_unit call FUNC(hasEarPlugsIn) || {[_unit, "ACE_EarPlugs"] call EFUNC(common,hasItem)}) exitWith {};
|
||||
|
||||
// Add earplugs if enabled for everyone or if the soldier has a rocket launcher
|
||||
// Add earplugs if enabled for everyone or if the unit has a rocket launcher
|
||||
if (GVAR(autoAddEarplugsToUnits) == 2 || {(secondaryWeapon _unit) != ""}) exitWith {
|
||||
TRACE_1("has launcher - adding",_unit);
|
||||
_unit addItem "ACE_EarPlugs";
|
||||
};
|
||||
|
||||
// otherwise add earplugs if the soldier has a big rifle
|
||||
if ((primaryWeapon _unit) == "") exitWith {};
|
||||
// Otherwise add earplugs if the unit has a big rifle
|
||||
private _weapon = primaryWeapon _unit;
|
||||
|
||||
(primaryWeaponMagazine _unit) params [["_magazine", ""]];
|
||||
if (_magazine == "") exitWith {};
|
||||
if (_weapon == "") exitWith {};
|
||||
|
||||
private _cfgMagazine = configFile >> "CfgMagazines" >> _magazine;
|
||||
|
||||
private _initSpeed = getNumber (_cfgMagazine >> "initSpeed");
|
||||
private _ammo = getText (_cfgMagazine >> "ammo");
|
||||
private _count = getNumber (_cfgMagazine >> "count");
|
||||
|
||||
private _cfgAmmo = configFile >> "CfgAmmo";
|
||||
|
||||
private _caliber = getNumber (_cfgAmmo >> _ammo >> "ACE_caliber");
|
||||
_caliber = call {
|
||||
if (_ammo isKindOf ["ShellBase", _cfgAmmo]) exitWith { 80 };
|
||||
if (_ammo isKindOf ["RocketBase", _cfgAmmo]) exitWith { 200 };
|
||||
if (_ammo isKindOf ["MissileBase", _cfgAmmo]) exitWith { 600 };
|
||||
if (_ammo isKindOf ["SubmunitionBase", _cfgAmmo]) exitWith { 80 };
|
||||
[_caliber, 6.5] select (_caliber <= 0);
|
||||
if (isNil QGVAR(cacheMaxAmmoLoudness)) then {
|
||||
GVAR(cacheMaxAmmoLoudness) = createHashMap;
|
||||
};
|
||||
private _loudness = (_caliber ^ 1.25 / 10) * (_initspeed / 1000) / 5;
|
||||
|
||||
//If unit has a machine gun boost effective loudness 50%
|
||||
if (_count >= 50) then {_loudness = _loudness * 1.5};
|
||||
// Cache maximum loudness for future calls
|
||||
private _maxLoudness = GVAR(cacheMaxAmmoLoudness) getOrDefaultCall [_weapon, {
|
||||
// Get the weapon's compatible magazines, so that all magazines are cached
|
||||
// From all the loudness factors, take the max
|
||||
private _maxLoudness = selectMax ((compatibleMagazines _weapon) apply {_x call FUNC(getAmmoLoudness)});
|
||||
|
||||
TRACE_2("primaryWeapon",_unit,_loudness);
|
||||
// ace_gunbag_fnc_isMachineGun
|
||||
private _config = _weapon call CBA_fnc_getItemConfig;
|
||||
|
||||
if (_loudness > 0.2) then {
|
||||
// Definition of a machine gun by BIS_fnc_itemType
|
||||
private _cursor = getText (_config >> "cursor");
|
||||
|
||||
if (toLowerANSI _cursor in ["", "emptycursor"]) then {
|
||||
_cursor = getText (_config >> "cursorAim");
|
||||
};
|
||||
|
||||
// If unit has a machine gun boost effective loudness 50%
|
||||
if (_cursor == "MG") then {
|
||||
_maxLoudness = _maxLoudness * 1.5;
|
||||
};
|
||||
|
||||
_maxLoudness
|
||||
}, true];
|
||||
|
||||
TRACE_3("primaryWeapon",_unit,_weapon,_maxLoudness);
|
||||
|
||||
if (_maxLoudness > 0.2) then {
|
||||
TRACE_1("loud gun - adding",_unit);
|
||||
_unit addItem "ACE_EarPlugs";
|
||||
};
|
||||
|
@ -1,24 +1,25 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: KoffeinFlummi, commy2, Rocko, Rommel, Ruthberg
|
||||
* Handle new sound souce near ace_player and apply hearing damage
|
||||
* Handle new sound souce near ace_player and apply hearing damage.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: strength of ear ringing <NUMBER>
|
||||
* 0: Strength of ear ringing <NUMBER>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [_strength] call ace_hearing_fnc_earRinging
|
||||
* 10 call ace_hearing_fnc_earRinging
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params ["_strength"];
|
||||
|
||||
if (_strength < 0.05) exitWith {};
|
||||
if (!isNull curatorCamera) exitWith {};
|
||||
if ((!GVAR(enabledForZeusUnits)) && {player != ACE_player}) exitWith {};
|
||||
if (!GVAR(enabledForZeusUnits) && {player != ACE_player}) exitWith {};
|
||||
|
||||
TRACE_2("adding",_strength * GVAR(damageCoefficent),GVAR(deafnessDV));
|
||||
|
||||
|
@ -4,8 +4,8 @@
|
||||
* Handles deafness due to explosions going off near the player.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: vehicle - Object the event handler is assigned to (player) <OBJECT>
|
||||
* 1: damage - Damage inflicted to the object <NUMBER>
|
||||
* 0: Unit <OBJECT>
|
||||
* 1: Damage inflicted to the unit <NUMBER>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
@ -21,7 +21,6 @@ params ["_unit", "_damage"];
|
||||
TRACE_2("explosion near player",_unit,_damage);
|
||||
|
||||
private _strength = (0 max _damage) * 30;
|
||||
if (_strength < 0.01) exitWith {};
|
||||
|
||||
// Call inmediately, as it will get pick up later anyway by the update thread
|
||||
[_strength] call FUNC(earRinging);
|
||||
// Call immediately, as it will get picked up later by the update thread anyway
|
||||
_strength call FUNC(earRinging);
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user