mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge branch 'fire-refactor' into add-fire-sources-to-wrecks
This commit is contained in:
commit
0a6046627b
@ -28,7 +28,7 @@ exclude = [
|
||||
"zeus/functions/fnc_zeusAttributes.sqf",
|
||||
]
|
||||
|
||||
[hemtt.launch]
|
||||
[hemtt.launch.default]
|
||||
workshop = [
|
||||
"450814997", # CBA_A3
|
||||
]
|
||||
|
@ -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;
|
||||
};
|
||||
@ -510,7 +502,7 @@ class CfgVehicles {
|
||||
};
|
||||
|
||||
GVAR(space) = 2;
|
||||
GVAR(hasCargo) = 2;
|
||||
GVAR(hasCargo) = 1;
|
||||
GVAR(size) = 3;
|
||||
GVAR(canLoad) = 1;
|
||||
|
||||
@ -523,8 +515,9 @@ class CfgVehicles {
|
||||
class EventHandlers {
|
||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
||||
};
|
||||
|
||||
GVAR(space) = 3;
|
||||
GVAR(hasCargo) = 3;
|
||||
GVAR(hasCargo) = 1;
|
||||
GVAR(size) = 3;
|
||||
GVAR(canLoad) = 1;
|
||||
|
||||
|
@ -86,7 +86,7 @@ GVAR(vehicleAction) = [
|
||||
GVAR(enable) &&
|
||||
{alive _target} &&
|
||||
{locked _target < 2} &&
|
||||
{(_target getVariable [QGVAR(hasCargo), getNumber (configOf _target >> QGVAR(hasCargo)) == 1])} &&
|
||||
{_target getVariable [QGVAR(hasCargo), getNumber (configOf _target >> QGVAR(hasCargo)) == 1]} &&
|
||||
{[_player, _target, ["isNotSwimming"]] call EFUNC(common,canInteractWith)} &&
|
||||
{[_player, _target] call EFUNC(interaction,canInteractWithVehicleCrew)} &&
|
||||
{([_player, _target] call EFUNC(interaction,getInteractionDistance)) < MAX_LOAD_DISTANCE}
|
||||
|
@ -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
|
||||
|
@ -23,7 +23,7 @@ private _config = configOf _vehicle;
|
||||
|
||||
// If vehicle had space given to it via eden/public, then override config hasCargo setting
|
||||
private _hasCargoPublic = _vehicle getVariable QGVAR(hasCargo);
|
||||
private _hasCargoPublicDefined = !isNil "_canLoadPublic";
|
||||
private _hasCargoPublicDefined = !isNil "_hasCargoPublic";
|
||||
|
||||
if (_hasCargoPublicDefined && {!(_hasCargoPublic isEqualType false)}) then {
|
||||
WARNING_4("%1[%2] - Variable %3 is %4 - Should be bool",_vehicle,_type,QGVAR(hasCargo),_hasCargoPublic);
|
||||
@ -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>
|
||||
@ -513,7 +516,7 @@
|
||||
<Key ID="STR_ACE_Cargo_loadTimeCoefficient_description">
|
||||
<English>Modifies how long it takes to load/unload items.\nTime, in seconds, is the size of the item multiplied by this value.</English>
|
||||
<German>Gibt an, wie lange das Laden / Entladen von Gegenständen dauern soll.\nZeit in Sekunden, die mit der Größe des Gegenstandes multipliziert wird.</German>
|
||||
<Japanese>貨物の積み込み/積み下ろしに掛かる時間を変更します。\n時間 (秒) は、貨物のサイズにこの値を掛けたものです。</Japanese>
|
||||
<Japanese>貨物の積み込み/積み下ろしに掛かる時間を変更します。\n時間 (秒単位) は、貨物のサイズにこの値を掛けたものです。</Japanese>
|
||||
<Polish>Modyfikuje, jak długo zajmuje załadowywanie/wyładowywanie przedmiotów. \nCzasem, w sekundach, jest wielkość przedmiotu razy jego wartość.</Polish>
|
||||
<Italian>Modifica il tempo impiegato per caricare o scaricare gli oggetti.\nIl tempo, in secondi, equivale alla dimensione dell'oggetto moltiplicata per questo valore</Italian>
|
||||
<Russian>Изменяет время для загрузки/выгрузки предметов. \nВремя (сек) - это размер предмета, умноженный на это значение.</Russian>
|
||||
@ -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>
|
||||
|
@ -355,7 +355,7 @@
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Chemlights_HiGreen_DisplayName">
|
||||
<English>Chemlight (Hi Green)</English>
|
||||
<French>Cyalume HL (vert)</French>
|
||||
<French>Cyalume HL (Vert)</French>
|
||||
<German>Knicklicht (Grün, Hell)</German>
|
||||
<Japanese>ケミカルライト(高輝度 緑)</Japanese>
|
||||
<Polish>Świetlik (jaskrawy zielony)</Polish>
|
||||
@ -533,9 +533,9 @@
|
||||
<English>Chemlight Shield (Green)</English>
|
||||
<Japanese>ケミカルライト シールド(緑)</Japanese>
|
||||
<Polish>Osłona na świetlik (zielona)</Polish>
|
||||
<German>Knicklicht-Abschirmung (grün)</German>
|
||||
<German>Knicklicht-Abschirmung (Grün)</German>
|
||||
<Korean>화학조명 가림막 (초록)</Korean>
|
||||
<French>Etui avec cyalume (vert)</French>
|
||||
<French>Etui avec cyalume (Vert)</French>
|
||||
<Italian>Scudo Luce Chimica (Verde)</Italian>
|
||||
<Chinese>螢光棒保護殼 (綠色)</Chinese>
|
||||
<Chinesesimp>荧光棒保护壳(绿色)</Chinesesimp>
|
||||
|
@ -1,8 +1,5 @@
|
||||
class CfgMovesBasic {
|
||||
// Idle affects legs when weapon switching - fixes units sliding when holstering weapons
|
||||
class Default {
|
||||
idle = "";
|
||||
};
|
||||
class Default;
|
||||
|
||||
// From ACRE
|
||||
class ManActions {
|
||||
@ -86,5 +83,14 @@ class CfgMovesMaleSdr: CfgMovesBasic {
|
||||
class AinvPknlMstpSnonWnonDnon_medic0: HealBase {
|
||||
variantsPlayer[] = {};
|
||||
};
|
||||
|
||||
// Idle affects legs when weapon switching - fixes units sliding when holstering weapons
|
||||
class AmovPercMstpSnonWnonDnon: StandBase {
|
||||
idle = "";
|
||||
};
|
||||
// Need to reset idle, as it breaks animations otherwise
|
||||
class CutSceneAnimationBase: AmovPercMstpSnonWnonDnon {
|
||||
idle = "idleDefault";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -161,6 +161,7 @@ PREP(sendRequest);
|
||||
PREP(serverLog);
|
||||
PREP(setAimCoef);
|
||||
PREP(setApproximateVariablePublic);
|
||||
PREP(setDead);
|
||||
PREP(setDefinedVariable);
|
||||
PREP(setDisableUserInputStatus);
|
||||
PREP(setHearingCapability);
|
||||
|
@ -191,6 +191,7 @@ if (isServer) then {
|
||||
[QGVAR(switchMove), {(_this select 0) switchMove (_this select 1)}] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(setVectorDirAndUp), {(_this select 0) setVectorDirAndUp (_this select 1)}] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(addWeaponItem), {(_this select 0) addWeaponItem [(_this select 1), (_this select 2)]}] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(removeMagazinesTurret), {(_this select 0) removeMagazinesTurret [_this select 1, _this select 2]}] call CBA_fnc_addEventHandler;
|
||||
|
||||
[QGVAR(setVanillaHitPointDamage), {
|
||||
params ["_object", "_hitPointAnddamage"];
|
||||
@ -222,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
|
||||
|
@ -59,6 +59,21 @@ switch (_container) do {
|
||||
};
|
||||
};
|
||||
|
||||
if (_type select 0 == "magazine") then {
|
||||
private _configAmmoCount = getNumber (configFile >> "CfgMagazines" >> _classname >> "count");
|
||||
|
||||
// https://feedback.bistudio.com/T74244
|
||||
// When adding throwables with the addXXXCargo(Global) commands, they don't show up in the throwables list
|
||||
// If a throwable has more than 1 ammo count, adding it with addItem(XXX) commands also renders the throwable unusable
|
||||
if (_configAmmoCount == 1 && {_ammoCount in [-1, 1]} && {_classname call BIS_fnc_isThrowable}) then { // TODO: replace with https://community.bistudio.com/wiki/isThrowable in 2.18
|
||||
_type set [0, "item"];
|
||||
};
|
||||
|
||||
if (_ammoCount == -1) then {
|
||||
_ammoCount = _configAmmoCount;
|
||||
};
|
||||
};
|
||||
|
||||
switch (_type select 0) do {
|
||||
case "weapon": {
|
||||
if (_canAdd || {_canFitWeaponSlot}) then {
|
||||
@ -106,10 +121,6 @@ switch (_type select 0) do {
|
||||
};
|
||||
|
||||
case "magazine": {
|
||||
if (_ammoCount == -1) then {
|
||||
_ammoCount = getNumber (configFile >> "CfgMagazines" >> _classname >> "count");
|
||||
};
|
||||
|
||||
if (_canAdd) then {
|
||||
_addedToUnit = true;
|
||||
|
||||
|
@ -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];
|
||||
};
|
@ -498,7 +498,7 @@
|
||||
<Chinesesimp>设定当玩家有错误的 PBO 时要如何处理。</Chinesesimp>
|
||||
<Czech>Nastavuje jakou akci provést pokud hráč nemá správné PBO.</Czech>
|
||||
<Polish>Określa akcję, która ma być podjęta, jeśli gracz nie ma właściwych PBO.</Polish>
|
||||
<Japanese>プレイヤーが不正規のPBOを所持している場合の動作を決定します。</Japanese>
|
||||
<Japanese>プレイヤーが不正規のPBOを所持している場合の動作を定義します。</Japanese>
|
||||
<Spanish>Define la accion a tomar si un jugador no tiene el PBO correcto</Spanish>
|
||||
<Italian>Definisce l'azione che verrà presa se il giocatore non ha gli stessi PBO.</Italian>
|
||||
<Russian>Определяет, какое действие будет предпринято, если игрок не имеет корректные PBO.</Russian>
|
||||
@ -1582,7 +1582,7 @@
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Common_progressBarInfoDesc">
|
||||
<English>Controls extra information shown in progress bar.</English>
|
||||
<Japanese>プログレス バーへ表示される情報量を決定します。</Japanese>
|
||||
<Japanese>プログレス バーへ表示される情報量を制御します。</Japanese>
|
||||
<French>Définit quelles informations supplémentaires sont affichées dans la barre de progression.</French>
|
||||
<Russian>Устанавливает дополнительную информацию в индикаторе процесса.</Russian>
|
||||
<German>Kontrolliert zusätzliche Informationen beim Fortschrittsbalkens.</German>
|
||||
@ -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,36 +10,40 @@
|
||||
<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>
|
||||
<Japanese>AN/PVS-15 (グリーン, 白色蛍光)</Japanese>
|
||||
<Italian>AN/PVS-15 (Verde, FB)</Italian>
|
||||
<Polish>AN/PVS-15 (Zielone, WP)</Polish>
|
||||
<German>AN/PVS-15 (grün, WP)</German>
|
||||
<Korean>AN/PVS-15 (녹색, 백색광)</Korean>
|
||||
<French>AN/PVS-15 (vertes, WP)</French>
|
||||
<Russian>AN/PVS-15 (Чёрный, БФ)</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_CUP_Weapons_nightvision_CUP_NVG_PVS15_green_WP">
|
||||
<English>AN/PVS-15 (Green, WP)</English>
|
||||
<Japanese>AN/PVS-15 (ブラック、白色蛍光)</Japanese>
|
||||
<Italian>AN/PVS-15 (Nero, FB)</Italian>
|
||||
<Polish>AN/PVS-15 (Czarne, WP)</Polish>
|
||||
<German>AN/PVS-15 (Schwarz, WP)</German>
|
||||
<Korean>AN/PVS-15 (검정, 백색광)</Korean>
|
||||
<French>AN/PVS-15 (noires, WP)</French>
|
||||
<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>
|
||||
<Japanese>AN/PVS-15 (グリーン, 白色蛍光)</Japanese>
|
||||
<Italian>AN/PVS-15 (Verde, FB)</Italian>
|
||||
<Polish>AN/PVS-15 (Zielone, WP)</Polish>
|
||||
<German>AN/PVS-15 (Grün, WP)</German>
|
||||
<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>
|
||||
<Japanese>AN/PVS-15 (タン, 白色蛍光)</Japanese>
|
||||
<Italian>AN/PVS-15 (Marroncina, FB)</Italian>
|
||||
<Polish>AN/PVS-15 (jasnobrązowa, WP)</Polish>
|
||||
<German>AN/PVS-15 (hellbraun, WP)</German>
|
||||
<Polish>AN/PVS-15 (Jasnobrązowa, WP)</Polish>
|
||||
<German>AN/PVS-15 (Hellbraun, WP)</German>
|
||||
<Korean>AN/PVS-15 (황갈색, 백색광)</Korean>
|
||||
<French>AN/PVS-15 (marron clair, WP)</French>
|
||||
<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,36 +51,40 @@
|
||||
<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>
|
||||
<Japanese>GPNVG (グリーン, 白色蛍光)</Japanese>
|
||||
<Italian>GPNVG (Verde, FB)</Italian>
|
||||
<Polish>GPNVG (Zielone, WP)</Polish>
|
||||
<German>GPNVG (grün, WP)</German>
|
||||
<Korean>GPNVG (녹색, 백색광)</Korean>
|
||||
<French>GPNVG (vertes, WP)</French>
|
||||
<Russian>GPNVG (Чёрный, БФ)</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_CUP_Weapons_nightvision_CUP_NVG_GPNVG_tan_WP">
|
||||
<English>GPNVG (Tan, WP)</English>
|
||||
<Japanese>GPNVG (タン, 白色蛍光)</Japanese>
|
||||
<Italian>GPNVG (Marroncina, FB)</Italian>
|
||||
<Polish>GPNVG (jasnobrązowa, WP)</Polish>
|
||||
<German>GPNVG (hellbraun, WP)</German>
|
||||
<Korean>GPNVG (황갈색, 백색광)</Korean>
|
||||
<French>GPNVG (marron clair, WP)</French>
|
||||
<Russian>GPNVG (Желтовато-коричневый, БФ)</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Compat_CUP_Weapons_nightvision_CUP_NVG_GPNVG_green_WP">
|
||||
<English>GPNVG (Green, WP)</English>
|
||||
<Japanese>GPNVG (ブラック、白色蛍光)</Japanese>
|
||||
<Italian>GPNVG (Nero, FB)</Italian>
|
||||
<Polish>GPNVG (Czarne, WP)</Polish>
|
||||
<German>GPNVG (Schwarz, WP)</German>
|
||||
<Korean>GPNVG (검정, 백색광)</Korean>
|
||||
<French>GPNVG (noires, WP)</French>
|
||||
<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>
|
||||
<Japanese>GPNVG (タン, 白色蛍光)</Japanese>
|
||||
<Italian>GPNVG (Marroncina, FB)</Italian>
|
||||
<Polish>GPNVG (Jasnobrązowa, WP)</Polish>
|
||||
<German>GPNVG (Hellbraun, WP)</German>
|
||||
<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>
|
||||
<Japanese>GPNVG (グリーン, 白色蛍光)</Japanese>
|
||||
<Italian>GPNVG (Verde, FB)</Italian>
|
||||
<Polish>GPNVG (Zielone, WP)</Polish>
|
||||
<German>GPNVG (Grün, WP)</German>
|
||||
<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"
|
||||
|
@ -18,8 +18,6 @@
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
#define BURN_THRESHOLD 1
|
||||
|
||||
params ["_unit", "_damages"];
|
||||
TRACE_2("woundsHandlerIncendiary",_unit,_damages);
|
||||
|
||||
@ -32,9 +30,7 @@ private _fireDamage = 0;
|
||||
private _intensity = linearConversion [0, 20, _fireDamage, 0, 10, true];
|
||||
TRACE_2("",_intensity,_fireDamage);
|
||||
|
||||
if (_intensity > BURN_THRESHOLD) then {
|
||||
TRACE_2("Setting unit ablaze",_intensity,BURN_THRESHOLD);
|
||||
["ace_fire_burn", [_unit, _intensity]] call CBA_fnc_globalEvent;
|
||||
};
|
||||
// Let fire handle if unit is set ablaze or not
|
||||
[QEGVAR(fire,burn), [_unit, _intensity]] call CBA_fnc_localEvent;
|
||||
|
||||
_this // return
|
||||
|
@ -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;
|
||||
};
|
||||
|
@ -18,8 +18,6 @@
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
#define BURN_THRESHOLD 1
|
||||
|
||||
params ["_unit", "_damages"];
|
||||
TRACE_2("woundsHandlerIncendiary",_unit,_damages);
|
||||
|
||||
@ -32,9 +30,7 @@ private _fireDamage = 0;
|
||||
private _intensity = linearConversion [0, 20, _fireDamage, 0, 10, true];
|
||||
TRACE_2("",_intensity,_fireDamage);
|
||||
|
||||
if (_intensity > BURN_THRESHOLD) then {
|
||||
TRACE_2("Setting unit ablaze",_intensity,BURN_THRESHOLD);
|
||||
["ace_fire_burn", [_unit, _intensity]] call CBA_fnc_globalEvent;
|
||||
};
|
||||
// Let fire handle if unit is set ablaze or not
|
||||
[QEGVAR(fire,burn), [_unit, _intensity]] call CBA_fnc_localEvent;
|
||||
|
||||
_this // return
|
||||
|
@ -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,12 +1,8 @@
|
||||
|
||||
class ACE_Settings {
|
||||
class GVAR(enable) {
|
||||
movedToSqf = 1;
|
||||
};
|
||||
class GVAR(enableAmmobox) {
|
||||
movedToSQF = 1;
|
||||
};
|
||||
class GVAR(enableAmmoCookoff) { // For CBA Setting Switch: we can eliminate and just use (ammoCookoffDuration == 0)
|
||||
class GVAR(enableAmmoCookoff) {
|
||||
movedToSQF = 1;
|
||||
};
|
||||
class GVAR(ammoCookoffDuration) {
|
||||
|
@ -1,4 +1,3 @@
|
||||
|
||||
class CfgCloudlets {
|
||||
class GVAR(CookOff) {
|
||||
interval = 0.004;
|
||||
|
@ -1,28 +1,27 @@
|
||||
|
||||
class Cfg3DEN {
|
||||
class Object {
|
||||
class AttributeCategories {
|
||||
class ace_attributes {
|
||||
class Attributes {
|
||||
class GVAR(enable) {
|
||||
property = QGVAR(enable);
|
||||
class GVAR(enable) { // setting was previously GVAR(enable), so maintain for backwards compatiblity with missions
|
||||
property = QGVAR(enable); // same as above
|
||||
control = "Checkbox";
|
||||
displayName = CSTRING(enable_hd_name);
|
||||
tooltip = CSTRING(enable_hd_tooltip);
|
||||
expression = QUOTE(if !(_value) then {_this setVariable [ARR_3('%s',_value,true)];};);
|
||||
displayName = CSTRING(enableFire_name);
|
||||
tooltip = CSTRING(enableFire_tooltip);
|
||||
expression = QUOTE(if (!_value) then {_this setVariable [ARR_3('%s',_value,true)]});
|
||||
typeName = "BOOL";
|
||||
condition = "objectVehicle";
|
||||
defaultValue = QUOTE((GETMVAR(QGVAR(enable),0)) in [ARR_2(1,2)]);
|
||||
defaultValue = QUOTE(GETMVAR(QGVAR(enableFire),true));
|
||||
};
|
||||
class GVAR(enableAmmoCookoff) {
|
||||
property = QGVAR(enableAmmoCookoff);
|
||||
control = "Checkbox";
|
||||
displayName = CSTRING(enableAmmoCookoff_name);
|
||||
tooltip = CSTRING(enableAmmoCookoff_tooltip);
|
||||
expression = QUOTE(if !(_value) then {_this setVariable [ARR_3('%s',_value,true)];};);
|
||||
expression = QUOTE(if (!_value) then {_this setVariable [ARR_3('%s',_value,true)]});
|
||||
typeName = "BOOL";
|
||||
condition = "objectHasInventoryCargo";
|
||||
defaultValue = QUOTE(if (_this isKindOf 'ReammoBox_F') then { GETMVAR(QGVAR(enableAmmobox),true) } else { GETMVAR(QGVAR(enableAmmoCookoff),true) };);
|
||||
defaultValue = QUOTE(if (_this isKindOf 'ReammoBox_F') then {GETMVAR(QGVAR(enableAmmobox),true)} else {GETMVAR(QGVAR(enableAmmoCookoff),true)});
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -1,4 +1,3 @@
|
||||
|
||||
class Extended_PreStart_EventHandlers {
|
||||
class ADDON {
|
||||
init = QUOTE(call COMPILE_SCRIPT(XEH_preStart));
|
||||
|
@ -1,4 +1,3 @@
|
||||
|
||||
class CfgSFX {
|
||||
class GVAR(CookOff_low) {
|
||||
name = QGVAR(cookoff_low);
|
||||
|
@ -1,4 +1,3 @@
|
||||
|
||||
class CfgVehicles {
|
||||
class Sound;
|
||||
class GVAR(Sound_low): Sound {
|
||||
@ -7,7 +6,6 @@ class CfgVehicles {
|
||||
scope = 1;
|
||||
sound = QGVAR(CookOff_low);
|
||||
};
|
||||
|
||||
class GVAR(Sound_mid): GVAR(Sound_low) {
|
||||
sound = QGVAR(CookOff_mid);
|
||||
};
|
||||
@ -17,47 +15,14 @@ class CfgVehicles {
|
||||
|
||||
class Tank;
|
||||
class Tank_F: Tank {
|
||||
GVAR(ammoLocation) = "HitHull";
|
||||
GVAR(cookoffSelections)[] = {"poklop_gunner","poklop_commander"};
|
||||
GVAR(probability) = 0.5;
|
||||
};
|
||||
class MBT_02_base_F: Tank_F {
|
||||
GVAR(ammoLocation) = "HitTurret";
|
||||
};
|
||||
|
||||
class Car_F;
|
||||
class Wheeled_APC_F: Car_F {
|
||||
GVAR(ammoLocation) = "HitHull";
|
||||
GVAR(cookoffSelections)[] = {"poklop_gunner","poklop_commander"};
|
||||
GVAR(probability) = 0.8;
|
||||
|
||||
// big explosions for wheeled APCs (same as for tanks)
|
||||
// Big explosions for wheeled APCs (same as for tanks)
|
||||
explosionEffect = "FuelExplosionBig";
|
||||
};
|
||||
|
||||
|
||||
class MRAP_01_base_F: Car_F {
|
||||
GVAR(engineSmokeOffset)[] = {0,-2,0};
|
||||
};
|
||||
|
||||
class MRAP_02_base_F: Car_F {
|
||||
GVAR(engineSmokeOffset)[] = {0,-2,0};
|
||||
};
|
||||
|
||||
class MRAP_03_base_F: Car_F {
|
||||
GVAR(engineSmokeOffset)[] = {0,-2,0};
|
||||
};
|
||||
|
||||
class Quadbike_01_base_F: Car_F {
|
||||
GVAR(engineSmokeOffset)[] = {0,1,0};
|
||||
};
|
||||
|
||||
class Truck_F;
|
||||
class Truck_02_base_F: Truck_F {
|
||||
GVAR(engineSmokeOffset)[] = {0,-2.6,-0.1};
|
||||
};
|
||||
|
||||
class Truck_02_MRL_base_F: Truck_02_base_F {
|
||||
GVAR(engineSmokeOffset)[] = {0,0.3,-0.1};
|
||||
};
|
||||
};
|
||||
|
@ -1,10 +1,12 @@
|
||||
|
||||
PREP(handleDamageBox);
|
||||
PREP(engineFire);
|
||||
PREP(cookOff);
|
||||
PREP(smoke);
|
||||
PREP(cookOffEffect);
|
||||
PREP(cookOffBox);
|
||||
PREP(detonateAmmunition);
|
||||
PREP(cookOffBoxLocal);
|
||||
PREP(cookOffBoxServer);
|
||||
PREP(cookOffLocal);
|
||||
PREP(cookOffServer);
|
||||
PREP(detonateAmmunitionServer);
|
||||
PREP(detonateAmmunitionServerLoop);
|
||||
PREP(engineFireLocal);
|
||||
PREP(engineFireServer);
|
||||
PREP(getVehicleAmmo);
|
||||
PREP(handleDamageBox);
|
||||
PREP(isMagazineFlare);
|
||||
PREP(smoke);
|
||||
|
@ -1,63 +1,64 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
[QGVAR(engineFire), LINKFUNC(engineFire)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(cookOff), {
|
||||
params ["_vehicle"];
|
||||
if (local _vehicle) then {
|
||||
_this call FUNC(cookOff);
|
||||
};
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(cookOffEffect), LINKFUNC(cookOffEffect)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(cookOffBoxLocal), LINKFUNC(cookOffBoxLocal)] 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;
|
||||
[QGVAR(cookOffBox), LINKFUNC(cookOffBox)] call CBA_fnc_addEventHandler;
|
||||
|
||||
// handle cleaning up effects when vehicle is deleted mid-cookoff
|
||||
[QGVAR(addCleanupHandlers), {
|
||||
params ["_vehicle"];
|
||||
if (isServer) then {
|
||||
[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;
|
||||
};
|
||||
|
||||
// Don't add a new EH if cookoff is run multiple times
|
||||
if ((_vehicle getVariable [QGVAR(deletedEH), -1]) == -1) then {
|
||||
private _deletedEH = _vehicle addEventHandler ["Deleted", {
|
||||
params ["_vehicle"];
|
||||
// Handle cleaning up effects when objects are deleted mid cook-off
|
||||
["AllVehicles", "Deleted", {
|
||||
{
|
||||
deleteVehicle _x;
|
||||
} forEach ((_this select 0) getVariable [QGVAR(effects), []]);
|
||||
}, true, ["CAManBase", "StaticWeapon"], true] call CBA_fnc_addClassEventHandler;
|
||||
|
||||
[QGVAR(cleanupEffects), [_vehicle]] call CBA_fnc_localEvent;
|
||||
}];
|
||||
|
||||
_vehicle setVariable [QGVAR(deletedEH), _deletedEH];
|
||||
};
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
["ReammoBox_F", "Deleted", {
|
||||
{
|
||||
deleteVehicle _x;
|
||||
} forEach ((_this select 0) getVariable [QGVAR(effects), []]);
|
||||
}, true, [], true] call CBA_fnc_addClassEventHandler;
|
||||
|
||||
// Raised when the flames have subsided or after the ammo of a box has finished cooking off
|
||||
[QGVAR(cleanupEffects), {
|
||||
params ["_vehicle", ["_effects", []]];
|
||||
params ["_object"];
|
||||
|
||||
_effects = _effects + (_vehicle getVariable [QGVAR(effects), []]);
|
||||
if (_effects isNotEqualTo []) then {
|
||||
{ deleteVehicle _x } count _effects;
|
||||
};
|
||||
{
|
||||
deleteVehicle _x;
|
||||
} forEach (_object getVariable [QGVAR(effects), []]);
|
||||
|
||||
_object setVariable [QGVAR(effects), nil];
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
|
||||
// Ammo box damage handling
|
||||
["ReammoBox_F", "init", {
|
||||
(_this select 0) addEventHandler ["HandleDamage", {
|
||||
if ((_this select 0) getVariable [QGVAR(enableAmmoCookoff), GVAR(enableAmmobox)]) then {
|
||||
_this call FUNC(handleDamageBox);
|
||||
};
|
||||
}];
|
||||
}, nil, nil, true] call CBA_fnc_addClassEventHandler;
|
||||
// Calling this function inside curly brackets allows the usage of "exitWith", which would be broken with "HandleDamage" otherwise
|
||||
(_this select 0) addEventHandler ["HandleDamage", {_this call FUNC(handleDamageBox)}];
|
||||
}, true, [], true] call CBA_fnc_addClassEventHandler;
|
||||
|
||||
// Vehicle ammo cook-off (secondary explosions)
|
||||
["AllVehicles", "Killed", {
|
||||
if (!GVAR(enableAmmoCookoff) || {GVAR(ammoCookoffDuration) == 0}) exitWith {};
|
||||
|
||||
// secondary explosions
|
||||
["AllVehicles", "killed", {
|
||||
params ["_vehicle", "", "", "_useEffects"];
|
||||
if (
|
||||
_useEffects &&
|
||||
_vehicle getVariable [QGVAR(enableAmmoCookoff), GVAR(enableAmmoCookoff)]
|
||||
) then {
|
||||
if (GVAR(ammoCookoffDuration) == 0) exitWith {};
|
||||
([_vehicle] call FUNC(getVehicleAmmo)) params ["_mags", "_total"];
|
||||
|
||||
private _delay = (random MAX_AMMO_DETONATION_START_DELAY) max MIN_AMMO_DETONATION_START_DELAY;
|
||||
[FUNC(detonateAmmunition), [_vehicle, _mags, _total], _delay] call CBA_fnc_waitAndExecute;
|
||||
if (_useEffects && {_vehicle getVariable [QGVAR(enableAmmoCookoff), true]}) then {
|
||||
// We don't need to pass source and instigator, as vehicle is already dead
|
||||
[QGVAR(detonateAmmunitionServer), [
|
||||
_vehicle,
|
||||
false,
|
||||
objNull,
|
||||
objNull,
|
||||
random [MIN_AMMO_DETONATION_START_DELAY, (MIN_AMMO_DETONATION_START_DELAY + MAX_AMMO_DETONATION_START_DELAY) / 2, MAX_AMMO_DETONATION_START_DELAY]
|
||||
]] call CBA_fnc_serverEvent;
|
||||
};
|
||||
}, nil, ["Man","StaticWeapon"]] call CBA_fnc_addClassEventHandler;
|
||||
}, true, ["CAManBase", "StaticWeapon"], true] call CBA_fnc_addClassEventHandler;
|
||||
|
||||
if (hasInterface) then {
|
||||
// Plays a sound locally, so that different sounds can be used for various distances
|
||||
@ -68,7 +69,7 @@ if (hasInterface) then {
|
||||
|
||||
private _distance = _object distance (positionCameraToWorld [0, 0, 0]);
|
||||
|
||||
TRACE_3("",_object,_sound,_maxDistance);
|
||||
TRACE_2("",_object,_sound);
|
||||
|
||||
// 3 classes of distances: close, mid and far, each having different sound files
|
||||
private _classDistance = switch (true) do {
|
||||
@ -94,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;
|
||||
};
|
||||
|
@ -1,129 +0,0 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: tcvm
|
||||
* Start a cook-off in the given vehicle.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Vehicle <Object>
|
||||
* 1: Intensity of fire <Number>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [(vehicle player), 3] call ace_cookoff_fnc_cookOff
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params ["_vehicle", "_intensity", ["_instigator", objNull], ["_smokeDelayEnabled", true], ["_ammoDetonationChance", 0], ["_detonateAfterCookoff", false], ["_fireSource", ""], ["_canRing", true], ["_maxIntensity", MAX_COOKOFF_INTENSITY, [0]], ["_canJet", true, [true]]];
|
||||
|
||||
if (GVAR(enable) == 0) exitWith {};
|
||||
if !(GVAR(enableFire)) exitWith {};
|
||||
if (_vehicle getVariable [QGVAR(enable), GVAR(enable)] in [0, false]) exitWith {};
|
||||
// exit if cook-off enabled only for players and no players in vehicle crew found
|
||||
if (_vehicle getVariable [QGVAR(enable), GVAR(enable)] isEqualTo 1 && {fullCrew [_vehicle, "", false] findIf {isPlayer (_x select 0)} == -1}) exitWith {};
|
||||
|
||||
|
||||
TRACE_2("cooking off",_vehicle,_intensity);
|
||||
TRACE_8("",_instigator,_smokeDelayEnabled,_ammoDetonationChance,_detonateAfterCookoff,_fireSource,_canRing,_maxIntensity,_canJet);
|
||||
|
||||
if (_vehicle getVariable [QGVAR(isCookingOff), false]) exitWith {};
|
||||
_vehicle setVariable [QGVAR(isCookingOff), true, true];
|
||||
|
||||
[QGVAR(addCleanupHandlers), [_vehicle]] call CBA_fnc_globalEvent;
|
||||
|
||||
// limit maximum value of intensity to prevent very long cook-off times
|
||||
_intensity = _intensity min _maxIntensity;
|
||||
|
||||
private _config = configOf _vehicle;
|
||||
private _positions = getArray (_config >> QGVAR(cookoffSelections)) select {(_vehicle selectionPosition _x) isNotEqualTo [0,0,0]};
|
||||
|
||||
if (_positions isEqualTo []) then {
|
||||
WARNING_1("no valid selection for cookoff found. %1",typeOf _vehicle);
|
||||
{
|
||||
private _pos = _vehicle selectionPosition _x;
|
||||
if (_pos isEqualTo [0, 0, 0]) exitWith {};
|
||||
_positions pushBack _x;
|
||||
} forEach DEFAULT_COMMANDER_HATCHES;
|
||||
|
||||
if (_positions isEqualTo []) then {
|
||||
_positions pushBack "#noselection";
|
||||
};
|
||||
};
|
||||
|
||||
private _delay = 0;
|
||||
if (_smokeDelayEnabled) then {
|
||||
_delay = SMOKE_TIME + random SMOKE_TIME;
|
||||
};
|
||||
[QGVAR(smoke), [_vehicle, _positions]] call CBA_fnc_globalEvent;
|
||||
|
||||
[{
|
||||
params ["_vehicle", "_positions", "_intensity", "_ammoDetonationChance", "_detonateAfterCookoff", "_instigator", "_fireSource", "_canRing", "_canJet"];
|
||||
_vehicle setVariable [QGVAR(intensity), _intensity];
|
||||
private _smokeEffects = _vehicle getVariable [QGVAR(effects), []];
|
||||
|
||||
[{
|
||||
params ["_args", "_pfh"];
|
||||
_args params ["_vehicle", "_positions", "_ammoDetonationChance", "_detonateAfterCookoff", "_instigator", "_fireSource", "_canRing", "_canJet", "_smokeEffects"];
|
||||
private _intensity = _vehicle getVariable [QGVAR(intensity), 0];
|
||||
if (isNull _vehicle || {_intensity <= 1}) exitWith {
|
||||
[QGVAR(cleanupEffects), [_vehicle, _smokeEffects]] call CBA_fnc_globalEvent;
|
||||
_vehicle setVariable [QGVAR(isCookingOff), false, true];
|
||||
[_pfh] call CBA_fnc_removePerFrameHandler;
|
||||
|
||||
if (GVAR(destroyVehicleAfterCookoff) || _detonateAfterCookoff) then {
|
||||
_vehicle setDamage [1, true];
|
||||
};
|
||||
};
|
||||
|
||||
private _lastFlameTime = _vehicle getVariable [QGVAR(lastFlame), 0];
|
||||
private _nextFlameTime = _vehicle getVariable [QGVAR(nextFlame), 0];
|
||||
|
||||
// Wait until we are ready for the next flame
|
||||
// dt = Tcurrent - Tlast
|
||||
// dt >= Tnext
|
||||
if ((CBA_missionTime - _lastFlameTime) >= _nextFlameTime) then {
|
||||
private _ring = (0.2 > random 1);
|
||||
if (!_ring && _intensity >= 2) then {
|
||||
_ring = (0.7 > random 1);
|
||||
};
|
||||
|
||||
if !(_canRing) then {
|
||||
_ring = false;
|
||||
};
|
||||
|
||||
private _time = linearConversion [0, 10, _intensity, 3, 20] + random COOKOFF_TIME;
|
||||
|
||||
if (_fireSource isEqualTo "") then {
|
||||
_fireSource = selectRandom _positions;
|
||||
};
|
||||
|
||||
[QGVAR(cookOffEffect), [_vehicle, _canJet, _ring, _time, _fireSource, _intensity]] call CBA_fnc_globalEvent;
|
||||
|
||||
_intensity = _intensity - (0.5 max random 1);
|
||||
_vehicle setVariable [QGVAR(intensity), _intensity];
|
||||
_vehicle setVariable [QGVAR(lastFlame), CBA_missionTime];
|
||||
_vehicle setVariable [QGVAR(nextFlame), _time + (MIN_TIME_BETWEEN_FLAMES max random MAX_TIME_BETWEEN_FLAMES)];
|
||||
|
||||
{
|
||||
[QEGVAR(fire,burn), [_x, _intensity * 1.5, _instigator], _x] call CBA_fnc_targetEvent;
|
||||
} forEach crew _vehicle
|
||||
};
|
||||
|
||||
if (_ammoDetonationChance > random 1) then {
|
||||
private _lastExplosiveDetonationTime = _vehicle getVariable [QGVAR(lastExplosiveDetonation), 0];
|
||||
private _nextExplosiveDetonation = _vehicle getVariable [QGVAR(nextExplosiveDetonation), 0];
|
||||
|
||||
if ((CBA_missionTime - _lastExplosiveDetonationTime) > _nextExplosiveDetonation) then {
|
||||
if (_fireSource isEqualTo "") then {
|
||||
_fireSource = selectRandom _positions;
|
||||
};
|
||||
createVehicle ["ACE_ammoExplosionLarge", (_vehicle modelToWorld (_vehicle selectionPosition _fireSource)), [], 0 , "CAN_COLLIDE"];
|
||||
|
||||
_vehicle setVariable [QGVAR(lastExplosiveDetonation), CBA_missionTime];
|
||||
_vehicle setVariable [QGVAR(nextExplosiveDetonation), random 60];
|
||||
};
|
||||
};
|
||||
}, 0.25, [_vehicle, _positions, _ammoDetonationChance, _detonateAfterCookoff, _instigator, _fireSource, _canRing, _canJet, _smokeEffects]] call CBA_fnc_addPerFrameHandler
|
||||
}, [_vehicle, _positions, _intensity, _ammoDetonationChance, _detonateAfterCookoff, _instigator, _fireSource, _canRing, _canJet], _delay] call CBA_fnc_waitAndExecute;
|
@ -1,74 +0,0 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: KoffeinFlummi, commy2, kymckay
|
||||
* Start a cook-off in the given ammo box.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Ammo box <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [_box] call ace_cookoff_fnc_cookOffBox
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params ["_box"];
|
||||
|
||||
if (_box getVariable [QGVAR(isCookingOff), false]) exitWith {};
|
||||
_box setVariable [QGVAR(isCookingOff), true];
|
||||
|
||||
if (local _box) then {
|
||||
[QGVAR(cookOffBox), _box] call CBA_fnc_globalEvent;
|
||||
};
|
||||
|
||||
[{
|
||||
params ["_box"];
|
||||
|
||||
// Box will start smoking
|
||||
private _smoke = "#particlesource" createVehicleLocal [0,0,0];
|
||||
_smoke setParticleClass "AmmoSmokeParticles2";
|
||||
_smoke attachTo [_box, [0,0,0]];
|
||||
|
||||
private _effects = [_smoke];
|
||||
|
||||
if (isServer) then {
|
||||
private _sound = createSoundSource ["Sound_Fire", position _box, [], 0];
|
||||
_effects pushBack _sound;
|
||||
};
|
||||
|
||||
[{
|
||||
params ["_box", "_effects"];
|
||||
|
||||
// These functions are smart and do all the cooking off work
|
||||
if (local _box) then {
|
||||
if (GVAR(ammoCookoffDuration) == 0) exitWith {};
|
||||
([_box] call FUNC(getVehicleAmmo)) params ["_mags", "_total"];
|
||||
[_box, _mags, _total] call FUNC(detonateAmmunition);
|
||||
|
||||
// This shit is busy being on fire, magazines aren't accessible/usable
|
||||
clearMagazineCargoGlobal _box;
|
||||
};
|
||||
|
||||
// Light the fire (also handles lighting)
|
||||
private _fire = "#particlesource" createVehicleLocal [0,0,0];
|
||||
_fire setParticleClass "AmmoBulletCore";
|
||||
_fire attachTo [_box, [0,0,0]];
|
||||
|
||||
_effects pushBack _fire;
|
||||
|
||||
[{
|
||||
params ["_box", "_effects"];
|
||||
|
||||
{
|
||||
deleteVehicle _x;
|
||||
} forEach _effects;
|
||||
|
||||
if (local _box) then {
|
||||
_box setDamage 1;
|
||||
};
|
||||
}, [_box, _effects], COOKOFF_TIME_BOX] call CBA_fnc_waitAndExecute; // TODO: Change so that box is alive until no ammo left, with locality in mind
|
||||
}, [_box, _effects], SMOKE_TIME] call CBA_fnc_waitAndExecute;
|
||||
}, _box, IGNITE_TIME] call CBA_fnc_waitAndExecute;
|
52
addons/cookoff/functions/fnc_cookOffBoxLocal.sqf
Normal file
52
addons/cookoff/functions/fnc_cookOffBoxLocal.sqf
Normal file
@ -0,0 +1,52 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: KoffeinFlummi, commy2, kymckay, johnb43
|
||||
* Spawns local cook-off effects for ammo boxes.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Box <OBJECT>
|
||||
* 1: Source <OBJECT>
|
||||
* 2: Instigator <OBJECT>
|
||||
* 3: Start time of the cook-off <NUMBER>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [cursorObject, player, player, CBA_missionTime + 10] call ace_cookoff_fnc_cookOffBoxLocal
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params ["", "", "", "_startTime"];
|
||||
|
||||
[{
|
||||
params ["_box", "_source", "_instigator"];
|
||||
|
||||
// If box was deleted before smoke could be spawned, just exit
|
||||
if (isNull _box) exitWith {};
|
||||
|
||||
private _boxPos = ASLToAGL getPosASL _box;
|
||||
private _effects = [];
|
||||
|
||||
// Box will start smoking
|
||||
if (hasInterface) then {
|
||||
private _smoke = createVehicleLocal ["#particlesource", _boxPos, [], 0, "CAN_COLLIDE"];
|
||||
_smoke setParticleClass "AmmoSmokeParticles2";
|
||||
_smoke attachTo [_box];
|
||||
|
||||
_effects pushBack _smoke;
|
||||
};
|
||||
|
||||
if (isServer) then {
|
||||
private _sound = createSoundSource ["Sound_Fire", _boxPos, [], 0];
|
||||
_sound attachTo [_box];
|
||||
|
||||
_effects pushBack _sound;
|
||||
|
||||
// Detonate the ammunition
|
||||
[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) max 0] call CBA_fnc_waitAndExecute; // This delay allows for synchronisation for JIP players
|
50
addons/cookoff/functions/fnc_cookOffBoxServer.sqf
Normal file
50
addons/cookoff/functions/fnc_cookOffBoxServer.sqf
Normal file
@ -0,0 +1,50 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: KoffeinFlummi, commy2, kymckay, johnb43
|
||||
* Start an ammo cook-off in the given ammo box.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Ammo box <OBJECT>
|
||||
* 1: Source <OBJECT> (default: objNull)
|
||||
* 2: Instigator <OBJECT> (default: objNull)
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* cursorObject call ace_cookoff_fnc_cookOffBoxServer
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
if (!isServer) exitWith {};
|
||||
if (!GVAR(enableAmmobox) || {GVAR(ammoCookoffDuration) == 0}) exitWith {};
|
||||
|
||||
params ["_box", ["_source", objNull], ["_instigator", objNull]];
|
||||
|
||||
// Make sure it's a box (important, because deleted EH is assigned to ReammoBox_F only in postInit)
|
||||
if !(_box isKindOf "ReammoBox_F") exitWith {};
|
||||
|
||||
if !(_box getVariable [QGVAR(enableAmmoCookoff), true]) exitWith {};
|
||||
|
||||
// Allow only 1 cook-off per box at a time
|
||||
if (_box getVariable [QGVAR(isCookingOff), false]) exitWith {};
|
||||
|
||||
_box setVariable [QGVAR(isCookingOff), true, true];
|
||||
|
||||
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 + _delay // Generate a globally synced timestamp
|
||||
]] call CBA_fnc_globalEventJIP;
|
||||
|
||||
[_jipID, _box] call CBA_fnc_removeGlobalEventJIP;
|
||||
|
||||
_box setVariable [QGVAR(cookoffBoxJipID), _jipID];
|
||||
|
||||
// API
|
||||
[QGVAR(cookOffBox), [_box, _source, _instigator, _delay]] call CBA_fnc_globalEvent;
|
@ -1,200 +0,0 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: tcvm
|
||||
* Spawn cook-off effects
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Vehicle <Object>
|
||||
* 1: Spawn fire jet <Boolean>
|
||||
* 2: Spawn fire ring <Boolean>
|
||||
* 3: How long effect will last (Max 20 seconds) <Number>
|
||||
* 4: What selection will fire originate from <String>
|
||||
* 5: Cookoff intensity value <Number>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [vehicle player, true, false, 15, "commander_turret"] call ace_cookoff_fnc_cookOffEffect
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params ["_obj", "_jet", "_ring", "_time", "_fireSelection", "_intensity"];
|
||||
private _light = "#lightpoint" createVehicleLocal [0,0,0];
|
||||
_light setLightBrightness 5;
|
||||
_light setLightAmbient [0.8, 0.6, 0.2];
|
||||
_light setLightColor [1, 0.5, 0.2];
|
||||
_light lightAttachObject [_obj, [0,0,0]];
|
||||
_time = 0 max (_time min 20);
|
||||
|
||||
private _sound = objNull;
|
||||
if (isServer) then {
|
||||
// ironically biggest performance hit is this. Creating a new sound source takes up aprox 400 milliseconds.
|
||||
// I dont think there is an alternative that takes into effect distance and whatever, but if you find one please fix!
|
||||
if (_jet || _ring) then {
|
||||
private _soundName = selectRandomWeighted [QGVAR(Sound_low), 0.1, QGVAR(Sound_mid), 0.25, QGVAR(Sound_high), 0.65];
|
||||
_sound = createSoundSource [_soundName, position _obj, [], 0];
|
||||
};
|
||||
|
||||
if (_ring) then {
|
||||
private _intensity = 20;
|
||||
private _radius = 1.5 * ((boundingBoxReal _obj) select 2);
|
||||
[QEGVAR(fire,addFireSource), [_obj, _radius, _intensity, format [QGVAR(%1), hashValue _obj]]] call CBA_fnc_localEvent;
|
||||
};
|
||||
};
|
||||
|
||||
[{
|
||||
params ["_args", "_pfh"];
|
||||
_args params ["_obj", "_jet", "_ring", "_time", "_startTime", "_light", "_fireSelection", "_sound", "_intensity"];
|
||||
private _elapsedTime = CBA_missionTime - _startTime;
|
||||
if (_elapsedTime >= _time) exitWith {
|
||||
deleteVehicle _light;
|
||||
deleteVehicle _sound;
|
||||
if (isServer) then {
|
||||
[QEGVAR(fire,removeFireSource), [format [QGVAR(%1), hashValue _obj]]] call CBA_fnc_localEvent;
|
||||
};
|
||||
[_pfh] call CBA_fnc_removePerFrameHandler;
|
||||
};
|
||||
private _factor = (1 + (_elapsedTime / 2) min 2);
|
||||
private _flameSize = 1.5;
|
||||
|
||||
if (_elapsedTime > (_time * (3 / 4))) then {
|
||||
_factor = _factor * linearConversion [_time * (3 / 4), _time, _elapsedTime, 1, 0.5];
|
||||
};
|
||||
|
||||
_light setLightBrightness 5 * (_factor / 5);
|
||||
|
||||
if (_jet) then {
|
||||
private _particlePosition = (_obj selectionPosition _fireSelection) vectorAdd [-0.1 + random 0.2, -0.1 + random 0.2, 0];
|
||||
|
||||
drop [
|
||||
["\A3\data_f\ParticleEffects\Universal\Universal", 16, 2, 32],
|
||||
"",
|
||||
"Billboard",
|
||||
1,
|
||||
(0.1 + (random 0.2)) * _factor,
|
||||
_particlePosition,
|
||||
[0, 0, 15 * (_factor / 2)],
|
||||
0,
|
||||
10,
|
||||
7.9,
|
||||
0.075,
|
||||
[1.25 * _factor, 2.5 * _factor],
|
||||
[[1, 1, 1, -2], [1, 1, 1, -2], [1, 1, 1, -1], [1, 1, 1, -0]],
|
||||
[2 + random 1],
|
||||
1,
|
||||
0,
|
||||
"",
|
||||
"",
|
||||
_obj
|
||||
];
|
||||
|
||||
// make flame push object into ground to make effect seem more "alive"
|
||||
if (!isGamePaused && { local _obj }) then {
|
||||
private _force = [0, 0, _factor * -(0.5 min random 1.5) * (0.3 min random 1)] vectorMultiply getMass _obj;
|
||||
_obj addForce [_force, vectorUpVisual _obj];
|
||||
};
|
||||
};
|
||||
|
||||
if (_ring) then {
|
||||
private _ringOrigin = (_obj selectionPosition _fireSelection) vectorAdd [-0.1 + random 0.2, -0.1 + random 0.2, -1];
|
||||
drop [
|
||||
["\A3\data_f\ParticleEffects\Universal\Universal",16,2,32],
|
||||
"", "Billboard", 1, (0.1 + (random 0.2)) * _factor,
|
||||
_ringOrigin,
|
||||
[0, 20 * (_factor / 2), 0],
|
||||
0, 10, 7.9, 0.075,
|
||||
[1.25 * _factor, _flameSize * _factor],
|
||||
[[1, 1, 1, -2], [1, 1, 1, -2], [1, 1, 1, -1], [1, 1, 1, -0]],
|
||||
[2 + random 1], 1, 0, "", "", _obj
|
||||
];
|
||||
drop [
|
||||
["\A3\data_f\ParticleEffects\Universal\Universal", 16, 2, 32],
|
||||
"", "Billboard", 1, (0.1 + (random 0.2)) * _factor,
|
||||
_ringOrigin,
|
||||
[0, -20 * (_factor / 2), 0],
|
||||
0, 10, 7.9, 0.075,
|
||||
[1.25 * _factor, _flameSize * _factor],
|
||||
[[1, 1, 1, -2], [1, 1, 1, -2], [1, 1, 1, -1], [1, 1, 1, -0]],
|
||||
[2 + random 1], 1, 0, "", "", _obj
|
||||
];
|
||||
drop [
|
||||
["\A3\data_f\ParticleEffects\Universal\Universal", 16, 2, 32],
|
||||
"", "Billboard", 1, (0.1 + (random 0.2)) * _factor,
|
||||
_ringOrigin,
|
||||
[20 * (_factor / 2), 0, 0],
|
||||
0, 10, 7.9, 0.075,
|
||||
[1.25 * _factor, _flameSize * _factor],
|
||||
[[1, 1, 1, -2], [1, 1, 1, -2], [1, 1, 1, -1], [1, 1, 1, -0]],
|
||||
[2 + random 1], 1, 0, "", "", _obj
|
||||
];
|
||||
drop [
|
||||
["\A3\data_f\ParticleEffects\Universal\Universal", 16, 2, 32],
|
||||
"", "Billboard", 1, (0.1 + (random 0.2)) * _factor,
|
||||
[-0.1 + random 0.2, -0.1 + random 0.2, -1],
|
||||
[-20 * (_factor / 2), 0, 0],
|
||||
0, 10, 7.9, 0.075,
|
||||
[1.25 * _factor, _flameSize * _factor],
|
||||
[[1, 1, 1, -2], [1, 1, 1, -2], [1, 1, 1, -1], [1, 1, 1, -0]],
|
||||
[2 + random 1], 1, 0, "", "", _obj
|
||||
];
|
||||
|
||||
private _dir = 20 * (_factor / 2);
|
||||
drop [
|
||||
["\A3\data_f\ParticleEffects\Universal\Universal", 16, 2, 32],
|
||||
"", "Billboard", 1, (0.1 + (random 0.2)) * _factor,
|
||||
_ringOrigin,
|
||||
[_dir, _dir, 0],
|
||||
0, 10, 7.9, 0.075,
|
||||
[1.25 * _factor, _flameSize * _factor],
|
||||
[[1, 1, 1, -2],[1, 1, 1, -2], [1, 1, 1, -1], [1, 1, 1, -0]],
|
||||
[2 + random 1], 1, 0, "", "", _obj
|
||||
];
|
||||
|
||||
_dir = -20 * (_factor / 2);
|
||||
drop [
|
||||
["\A3\data_f\ParticleEffects\Universal\Universal", 16, 2, 32],
|
||||
"", "Billboard", 1, (0.1 + (random 0.2)) * _factor,
|
||||
_ringOrigin,
|
||||
[_dir, _dir, 0],
|
||||
0, 10, 7.9, 0.075,
|
||||
[1.25 * _factor, _flameSize * _factor],
|
||||
[[1, 1, 1, -2],[1, 1, 1, -2], [1, 1, 1, -1], [1, 1, 1, -0]],
|
||||
[2 + random 1], 1, 0, "", "", _obj
|
||||
];
|
||||
|
||||
_dir = 20 * (_factor / 2);
|
||||
drop [
|
||||
["\A3\data_f\ParticleEffects\Universal\Universal",16,2,32],
|
||||
"", "Billboard", 1, (0.1 + (random 0.2)) * _factor,
|
||||
_ringOrigin,
|
||||
[_dir, -_dir, 0],
|
||||
0, 10, 7.9, 0.075,
|
||||
[1.25 * _factor, _flameSize * _factor],
|
||||
[[1, 1, 1, -2], [1, 1, 1, -2], [1, 1, 1, -1], [1, 1, 1, -0]],
|
||||
[2 + random 1], 1, 0, "", "", _obj
|
||||
];
|
||||
|
||||
_dir = 20 * (_factor / 2);
|
||||
drop [
|
||||
["\A3\data_f\ParticleEffects\Universal\Universal", 16, 2, 32],
|
||||
"", "Billboard", 1, (0.1 + (random 0.2)) * _factor,
|
||||
_ringOrigin,
|
||||
[-_dir, _dir, 0],
|
||||
0, 10, 7.9, 0.075,
|
||||
[1.25 * _factor, _flameSize * _factor],
|
||||
[[1, 1, 1, -2], [1, 1, 1, -2], [1, 1, 1, -1], [1, 1, 1, -0]],
|
||||
[2 + random 1], 1, 0, "", "", _obj
|
||||
];
|
||||
};
|
||||
|
||||
(getVehicleTIPars _obj) params ["_tiEngine", "_tiWheels", "_tiWeapon"];
|
||||
_obj setVehicleTIPars [
|
||||
// formula is designed to have the temperature ramp up quickly and then level out
|
||||
(_tiEngine + (_intensity * 0.01))/1.005,
|
||||
(_tiWheels + (_intensity * 0.004))/1.002, // wheels//tracks are further away from burning parts
|
||||
(_tiWeapon + (_intensity * 0.01))/1.005
|
||||
];
|
||||
|
||||
}, 0, [_obj, _jet, _ring, _time, CBA_missionTime, _light, _fireSelection, _sound, _intensity]] call CBA_fnc_addPerFrameHandler;
|
229
addons/cookoff/functions/fnc_cookOffLocal.sqf
Normal file
229
addons/cookoff/functions/fnc_cookOffLocal.sqf
Normal file
@ -0,0 +1,229 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: tcvm, johnb43
|
||||
* Spawn cook-off fire effects.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Vehicle <OBJECT>
|
||||
* 1: Spawn fire jet <BOOL>
|
||||
* 2: Spawn fire ring <BOOL>
|
||||
* 3: What selection fire will originate from <STRING>
|
||||
* 4: Cookoff intensity value <NUMBER>
|
||||
* 5: Start time <NUMBER>
|
||||
* 6: Duration of effect (max 20 seconds) <NUMBER>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [cursorObject, true, false, "commander_turret", 6, CBA_missionTime, 15] call ace_cookoff_fnc_cookOffLocal
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
#define FLAME_SIZE 1.5
|
||||
#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;
|
||||
|
||||
if (hasInterface) then {
|
||||
_light = "#lightpoint" createVehicleLocal [0, 0, 0];
|
||||
_light setLightBrightness 5;
|
||||
_light setLightAmbient [0.8, 0.6, 0.2];
|
||||
_light setLightColor [1, 0.5, 0.2];
|
||||
_light lightAttachObject [_vehicle, [0, 0, 0]];
|
||||
};
|
||||
|
||||
_duration = 0 max _duration min 20;
|
||||
|
||||
private _sound = objNull;
|
||||
private _fireKey = "";
|
||||
|
||||
if (isServer) then {
|
||||
// Spawn sound effect
|
||||
if (_jet || _ring) then {
|
||||
private _soundName = selectRandomWeighted [QGVAR(Sound_low), 0.1, QGVAR(Sound_mid), 0.25, QGVAR(Sound_high), 0.65];
|
||||
_sound = createSoundSource [_soundName, ASLToAGL getPosASL _vehicle, [], 0];
|
||||
_sound attachTo [_vehicle];
|
||||
};
|
||||
|
||||
// Make the ring a source of fire
|
||||
if (_ring && {["ace_fire"] call EFUNC(common,isModLoaded)}) then {
|
||||
_fireKey = format [QGVAR(cookoffFire_%1), hashValue _vehicle];
|
||||
|
||||
[QEGVAR(fire,addFireSource), [_vehicle, FLAME_SIZE * ((boundingBoxReal _vehicle) select 2), FIRE_INTENSITY, _fireKey]] call CBA_fnc_localEvent;
|
||||
};
|
||||
};
|
||||
|
||||
[{
|
||||
(_this select 0) params ["_vehicle", "_jet", "_ring", "_startTime", "_duration", "_light", "_fireSelection", "_sound", "_intensity", "_fireKey"];
|
||||
|
||||
private _elapsedTime = CBA_missionTime - _startTime;
|
||||
|
||||
// Clean up effects once effects have finished or vehicle has been deleted
|
||||
if (isNull _vehicle || {_elapsedTime >= _duration}) exitWith {
|
||||
(_this select 1) call CBA_fnc_removePerFrameHandler;
|
||||
|
||||
deleteVehicle _light;
|
||||
|
||||
if (isServer) then {
|
||||
deleteVehicle _sound;
|
||||
|
||||
if (["ace_fire"] call EFUNC(common,isModLoaded)) then {
|
||||
[QEGVAR(fire,removeFireSource), _fireKey] call CBA_fnc_localEvent;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
private _factor = 1 + (_elapsedTime / 2) min 2;
|
||||
|
||||
if (_elapsedTime > _duration * 3 / 4) then {
|
||||
_factor = _factor * linearConversion [_duration * 3 / 4, _duration, _elapsedTime, 1, 0.5];
|
||||
};
|
||||
|
||||
// Make flame push object into ground to make effect seem more "alive"
|
||||
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
|
||||
};
|
||||
|
||||
// Don't spawn visual effects on machines without interfaces
|
||||
if (!hasInterface) exitWith {};
|
||||
|
||||
_light setLightBrightness _factor;
|
||||
|
||||
if (_jet) then {
|
||||
private _particlePosition = (_vehicle selectionPosition _fireSelection) vectorAdd [-0.1 + random 0.2, -0.1 + random 0.2, 0];
|
||||
|
||||
drop [
|
||||
["\A3\data_f\ParticleEffects\Universal\Universal", 16, 2, 32],
|
||||
"",
|
||||
"Billboard",
|
||||
1,
|
||||
(0.1 + random 0.2) * _factor,
|
||||
_particlePosition,
|
||||
[0, 0, 15 * (_factor / 2)],
|
||||
0,
|
||||
10,
|
||||
7.9,
|
||||
0.075,
|
||||
[1.25 * _factor, 2.5 * _factor],
|
||||
[[1, 1, 1, -2], [1, 1, 1, -2], [1, 1, 1, -1], [1, 1, 1, -0]],
|
||||
[2 + random 1],
|
||||
1,
|
||||
0,
|
||||
"",
|
||||
"",
|
||||
_vehicle
|
||||
];
|
||||
};
|
||||
|
||||
if (_ring) then {
|
||||
private _ringOrigin = (_vehicle selectionPosition _fireSelection) vectorAdd [-0.1 + random 0.2, -0.1 + random 0.2, -1];
|
||||
|
||||
drop [
|
||||
["\A3\data_f\ParticleEffects\Universal\Universal",16,2,32],
|
||||
"", "Billboard", 1, (0.1 + random 0.2) * _factor,
|
||||
_ringOrigin,
|
||||
[0, 20 * (_factor / 2), 0],
|
||||
0, 10, 7.9, 0.075,
|
||||
[1.25 * _factor, FLAME_SIZE * _factor],
|
||||
[[1, 1, 1, -2], [1, 1, 1, -2], [1, 1, 1, -1], [1, 1, 1, -0]],
|
||||
[2 + random 1], 1, 0, "", "", _vehicle
|
||||
];
|
||||
drop [
|
||||
["\A3\data_f\ParticleEffects\Universal\Universal", 16, 2, 32],
|
||||
"", "Billboard", 1, (0.1 + random 0.2) * _factor,
|
||||
_ringOrigin,
|
||||
[0, -20 * (_factor / 2), 0],
|
||||
0, 10, 7.9, 0.075,
|
||||
[1.25 * _factor, FLAME_SIZE * _factor],
|
||||
[[1, 1, 1, -2], [1, 1, 1, -2], [1, 1, 1, -1], [1, 1, 1, -0]],
|
||||
[2 + random 1], 1, 0, "", "", _vehicle
|
||||
];
|
||||
drop [
|
||||
["\A3\data_f\ParticleEffects\Universal\Universal", 16, 2, 32],
|
||||
"", "Billboard", 1, (0.1 + random 0.2) * _factor,
|
||||
_ringOrigin,
|
||||
[20 * (_factor / 2), 0, 0],
|
||||
0, 10, 7.9, 0.075,
|
||||
[1.25 * _factor, FLAME_SIZE * _factor],
|
||||
[[1, 1, 1, -2], [1, 1, 1, -2], [1, 1, 1, -1], [1, 1, 1, -0]],
|
||||
[2 + random 1], 1, 0, "", "", _vehicle
|
||||
];
|
||||
drop [
|
||||
["\A3\data_f\ParticleEffects\Universal\Universal", 16, 2, 32],
|
||||
"", "Billboard", 1, (0.1 + random 0.2) * _factor,
|
||||
[-0.1 + random 0.2, -0.1 + random 0.2, -1],
|
||||
[-20 * (_factor / 2), 0, 0],
|
||||
0, 10, 7.9, 0.075,
|
||||
[1.25 * _factor, FLAME_SIZE * _factor],
|
||||
[[1, 1, 1, -2], [1, 1, 1, -2], [1, 1, 1, -1], [1, 1, 1, -0]],
|
||||
[2 + random 1], 1, 0, "", "", _vehicle
|
||||
];
|
||||
|
||||
private _dir = 20 * (_factor / 2);
|
||||
drop [
|
||||
["\A3\data_f\ParticleEffects\Universal\Universal", 16, 2, 32],
|
||||
"", "Billboard", 1, (0.1 + random 0.2) * _factor,
|
||||
_ringOrigin,
|
||||
[_dir, _dir, 0],
|
||||
0, 10, 7.9, 0.075,
|
||||
[1.25 * _factor, FLAME_SIZE * _factor],
|
||||
[[1, 1, 1, -2],[1, 1, 1, -2], [1, 1, 1, -1], [1, 1, 1, -0]],
|
||||
[2 + random 1], 1, 0, "", "", _vehicle
|
||||
];
|
||||
|
||||
_dir = -20 * (_factor / 2);
|
||||
drop [
|
||||
["\A3\data_f\ParticleEffects\Universal\Universal", 16, 2, 32],
|
||||
"", "Billboard", 1, (0.1 + (random 0.2)) * _factor,
|
||||
_ringOrigin,
|
||||
[_dir, _dir, 0],
|
||||
0, 10, 7.9, 0.075,
|
||||
[1.25 * _factor, FLAME_SIZE * _factor],
|
||||
[[1, 1, 1, -2],[1, 1, 1, -2], [1, 1, 1, -1], [1, 1, 1, -0]],
|
||||
[2 + random 1], 1, 0, "", "", _vehicle
|
||||
];
|
||||
|
||||
_dir = 20 * (_factor / 2);
|
||||
drop [
|
||||
["\A3\data_f\ParticleEffects\Universal\Universal",16,2,32],
|
||||
"", "Billboard", 1, (0.1 + (random 0.2)) * _factor,
|
||||
_ringOrigin,
|
||||
[_dir, -_dir, 0],
|
||||
0, 10, 7.9, 0.075,
|
||||
[1.25 * _factor, FLAME_SIZE * _factor],
|
||||
[[1, 1, 1, -2], [1, 1, 1, -2], [1, 1, 1, -1], [1, 1, 1, -0]],
|
||||
[2 + random 1], 1, 0, "", "", _vehicle
|
||||
];
|
||||
|
||||
_dir = 20 * (_factor / 2);
|
||||
drop [
|
||||
["\A3\data_f\ParticleEffects\Universal\Universal", 16, 2, 32],
|
||||
"", "Billboard", 1, (0.1 + random 0.2) * _factor,
|
||||
_ringOrigin,
|
||||
[-_dir, _dir, 0],
|
||||
0, 10, 7.9, 0.075,
|
||||
[1.25 * _factor, FLAME_SIZE * _factor],
|
||||
[[1, 1, 1, -2], [1, 1, 1, -2], [1, 1, 1, -1], [1, 1, 1, -0]],
|
||||
[2 + random 1], 1, 0, "", "", _vehicle
|
||||
];
|
||||
};
|
||||
|
||||
(getVehicleTIPars _vehicle) params ["_tiEngine", "_tiWheels", "_tiWeapon"];
|
||||
|
||||
// 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
|
||||
(_tiWeapon + _intensity * 0.01) / 1.005
|
||||
];
|
||||
}, 0, [_vehicle, _jet, _ring, _startTime, _duration, _light, _fireSelection, _sound, _intensity, _fireKey]] call CBA_fnc_addPerFrameHandler;
|
202
addons/cookoff/functions/fnc_cookOffServer.sqf
Normal file
202
addons/cookoff/functions/fnc_cookOffServer.sqf
Normal file
@ -0,0 +1,202 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* 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).
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Vehicle <OBJECT>
|
||||
* 1: Intensity of fire <NUMBER>
|
||||
* 2: Source <OBJECT> (default: objNull)
|
||||
* 3: Instigator <OBJECT> (default: objNull)
|
||||
* 4: Delay between smoke and fire enabled <BOOL> (default: true)
|
||||
* 5: Ammo detonation chance <NUMBER> (default: 0)
|
||||
* 6: Detonate after cook-off <BOOL> (default: false)
|
||||
* 7: Selection for fire source <STRING> (default: "")
|
||||
* 8: Can spawn fire ring <BOOL> (default: true)
|
||||
* 9: Can spawn fire jet <BOOL> (default: true)
|
||||
* 10: Maximum intensity <NUMBER> (default: MAX_COOKOFF_INTENSITY)
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [cursorObject, 3] call ace_cookoff_fnc_cookOffServer
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
if (!isServer) exitWith {};
|
||||
if (!GVAR(enableFire) || {GVAR(cookoffDuration) == 0}) exitWith {};
|
||||
|
||||
params [
|
||||
"_vehicle",
|
||||
"_intensity",
|
||||
["_source", objNull],
|
||||
["_instigator", objNull],
|
||||
["_delayBetweenSmokeAndFire", true],
|
||||
["_ammoDetonationChance", 0],
|
||||
["_detonateAfterCookoff", false],
|
||||
["_fireSelection", ""],
|
||||
["_canRing", true],
|
||||
["_canJet", true],
|
||||
["_maxIntensity", MAX_COOKOFF_INTENSITY]
|
||||
];
|
||||
|
||||
// Make sure it's a vehicle (important, because deleted EH is assigned to AllVehicles only in postInit)
|
||||
if !(_vehicle isKindOf "AllVehicles") exitWith {};
|
||||
|
||||
if (_vehicle isKindOf "CAManBase" || {_vehicle isKindOf "StaticWeapon"}) exitWith {};
|
||||
|
||||
// If under water, ignore
|
||||
// underwater is not very reliable, so use model center instead
|
||||
if (underwater _vehicle || {private _posASL = getPosWorld _vehicle; surfaceIsWater _posASL && {(_posASL select 2) < 0}}) exitWith {};
|
||||
|
||||
// Check if cook-off is disabled on vehicle specifically
|
||||
if !(_vehicle getVariable [QGVAR(enable), true]) exitWith {}; // QGVAR(enable) is API
|
||||
|
||||
TRACE_3("cooking off",_vehicle,_intensity,_maxIntensity);
|
||||
TRACE_8("",_source,_instigator,_delayBetweenSmokeAndFire,_ammoDetonationChance,_detonateAfterCookoff,_fireSelection,_canRing,_canJet);
|
||||
|
||||
if (_vehicle getVariable [QGVAR(isCookingOff), false]) exitWith {};
|
||||
|
||||
_vehicle setVariable [QGVAR(isCookingOff), true, true];
|
||||
|
||||
// Limit maximum value of intensity to prevent very long cook-off times
|
||||
_intensity = _intensity min _maxIntensity;
|
||||
|
||||
private _selections = getArray (configOf _vehicle >> QGVAR(cookoffSelections)) select {(_vehicle selectionPosition _x) isNotEqualTo [0, 0, 0]};
|
||||
|
||||
if (_selections isEqualTo []) then {
|
||||
WARNING_1("no valid selection for cookoff found. %1",typeOf _vehicle);
|
||||
|
||||
{
|
||||
if ((_vehicle selectionPosition _x) isNotEqualTo [0, 0, 0]) then {
|
||||
_selections pushBack _x;
|
||||
};
|
||||
} forEach DEFAULT_COMMANDER_HATCHES;
|
||||
|
||||
if (_selections isEqualTo []) then {
|
||||
_selections pushBack "#noselection";
|
||||
};
|
||||
};
|
||||
|
||||
// Not guaranteed to be active/used, but reserve it nonetheless
|
||||
private _fireJipID = format [QGVAR(cookOffLocal_%1), hashValue _vehicle];
|
||||
[_fireJipID, _vehicle] call CBA_fnc_removeGlobalEventJIP;
|
||||
|
||||
// Spawn smoke
|
||||
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];
|
||||
|
||||
private _delay = 0;
|
||||
|
||||
if (_delayBetweenSmokeAndFire) then {
|
||||
_delay = random [SMOKE_DELAY, 1.5 * SMOKE_DELAY, 2 * SMOKE_DELAY];
|
||||
};
|
||||
|
||||
[{
|
||||
[{
|
||||
(_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
|
||||
{GVAR(cookoffDuration) == 0} ||
|
||||
{underwater _vehicle} ||
|
||||
{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;
|
||||
|
||||
// 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);
|
||||
|
||||
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 {
|
||||
private _ring = false;
|
||||
|
||||
if (_canRing) then {
|
||||
_ring = 0.2 > random 1;
|
||||
|
||||
if (!_ring && {_intensity >= 2}) then {
|
||||
_ring = 0.7 > random 1;
|
||||
};
|
||||
};
|
||||
|
||||
private _duration = linearConversion [0, 10, _intensity, 3, 20] + random COOKOFF_TIME;
|
||||
|
||||
if (_fireSelection isEqualTo "") then {
|
||||
_fireSelection = selectRandom _selections;
|
||||
};
|
||||
|
||||
// Sync for JIP players
|
||||
[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], _x] call CBA_fnc_targetEvent;
|
||||
} 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 (_fireSelection isEqualTo "") then {
|
||||
_fireSelection = selectRandom _selections;
|
||||
};
|
||||
|
||||
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, _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,132 +0,0 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Glowbal
|
||||
* Detonates ammunition from a vehicle until no ammo left
|
||||
*
|
||||
* Arguments:
|
||||
* 0: vehicle <OBJECT>
|
||||
* 1: Ammo Array <ARRAY>
|
||||
* - 0: Magazine Classname <STRING>
|
||||
* - 1: Ammo Count <NUMBER>
|
||||
* 2: Total Ammo Count <NUMBER>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [_vehicle, magazinesAmmo _vehicle] call ace_cookoff_fnc_detonateAmmunition
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params ["_vehicle", "_magazines", "_totalAmmo"];
|
||||
|
||||
if (GVAR(enable) == 0) exitWith {};
|
||||
if !(GVAR(enableAmmoCookoff)) exitWith {};
|
||||
|
||||
if (isNull _vehicle) exitWith {}; // vehicle got deleted
|
||||
if (_magazines isEqualTo []) exitWith {}; // nothing to detonate anymore
|
||||
if (underwater _vehicle) exitWith {};
|
||||
|
||||
private _magazineIndex = floor random(count _magazines);
|
||||
private _magazine = _magazines select _magazineIndex;
|
||||
_magazine params ["_magazineClassname", "_amountOfMagazines"];
|
||||
|
||||
if (_amountOfMagazines < 0) exitWith {
|
||||
ERROR_1("mag with no ammo - %1",_magazine);
|
||||
};
|
||||
private _removed = _amountOfMagazines min floor(1 + random(6 / GVAR(ammoCookoffDuration)));
|
||||
|
||||
_amountOfMagazines = _amountOfMagazines - _removed;
|
||||
if (_amountOfMagazines <= 0) then {
|
||||
_magazines deleteAt _magazineIndex;
|
||||
} else {
|
||||
_magazine set [1, _amountOfMagazines]; // clear out the magazine
|
||||
};
|
||||
private _timeBetweenAmmoDetonation = (((random 10) / (sqrt _totalAmmo)) min MAX_TIME_BETWEEN_AMMO_DET) max 0.1;
|
||||
TRACE_2("",_totalAmmo,_timeBetweenAmmoDetonation);
|
||||
_totalAmmo = _totalAmmo - _removed;
|
||||
|
||||
private _ammo = getText (configFile >> "CfgMagazines" >> _magazineClassname >> "ammo");
|
||||
private _ammoCfg = configFile >> "CfgAmmo" >> _ammo;
|
||||
|
||||
private _speedOfAmmo = getNumber (configFile >> "CfgMagazines" >> _magazineClassname >> "initSpeed");
|
||||
private _simType = getText (_ammoCfg >> "simulation");
|
||||
|
||||
private _effect2pos = _vehicle selectionPosition "destructionEffect2";
|
||||
|
||||
private _spawnProjectile = {
|
||||
params ["_vehicle", "_ammo", "_speed", "_flyAway"];
|
||||
|
||||
private _spawnPos = _vehicle 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 _velVec = _vectorAmmo vectorMultiply _speed;
|
||||
_projectile setVectorDir _velVec;
|
||||
_projectile setVelocity _velVec;
|
||||
} else {
|
||||
_projectile setDamage 1;
|
||||
};
|
||||
|
||||
_projectile;
|
||||
};
|
||||
|
||||
private _speed = random (_speedOfAmmo / 10) max 1;
|
||||
_simType = toLowerANSI _simType;
|
||||
switch (_simType) do {
|
||||
case ("shotbullet"): {
|
||||
[QGVAR(playCookoffSound), [_vehicle, _simType]] call CBA_fnc_globalEvent;
|
||||
if (random 1 < 0.6) then {
|
||||
[_vehicle, _ammo, _speed, true] call _spawnProjectile;
|
||||
};
|
||||
};
|
||||
case ("shotshell"): {
|
||||
[QGVAR(playCookoffSound), [_vehicle, _simType]] call CBA_fnc_globalEvent;
|
||||
if (random 1 < 0.15) then {
|
||||
[_vehicle, _ammo, _speed, true] call _spawnProjectile;
|
||||
};
|
||||
};
|
||||
case ("shotgrenade"): {
|
||||
if (random 1 < 0.9) then {
|
||||
_speed = 0;
|
||||
};
|
||||
[_vehicle, _ammo, _speed, random 1 < 0.5] call _spawnProjectile;
|
||||
};
|
||||
case ("shotrocket");
|
||||
case ("shotmissile");
|
||||
case ("shotsubmunitions"): {
|
||||
if (random 1 < 0.1) then {
|
||||
[QGVAR(playCookoffSound), [_vehicle, _simType]] call CBA_fnc_globalEvent;
|
||||
[_vehicle, _ammo, _speed, random 1 < 0.3] call _spawnProjectile;
|
||||
} else {
|
||||
createvehicle ["ACE_ammoExplosionLarge", (_vehicle modelToWorld _effect2pos), [], 0 , "CAN_COLLIDE"];
|
||||
};
|
||||
};
|
||||
case ("shotmine");
|
||||
case ("shotdirectionalbomb"): {
|
||||
if (random 1 < 0.5) then {
|
||||
// Not all explosives detonate on destruction, some have scripted alternatives
|
||||
private _scripted = getNumber (_ammoCfg >> "triggerWhenDestroyed") == 1;
|
||||
if !(_scripted) then {
|
||||
_ammo = getText (_ammoCfg >> "ace_explosives_Explosive");
|
||||
};
|
||||
// If a scripted alternative doesn't exist use generic explosion
|
||||
if (_ammo != "") then {
|
||||
[_vehicle, _ammo, 0, false] call _spawnProjectile;
|
||||
} else {
|
||||
createvehicle ["SmallSecondary", (_vehicle modelToWorld _effect2pos), [], 0 , "CAN_COLLIDE"];
|
||||
};
|
||||
};
|
||||
};
|
||||
case ("shotilluminating"): {
|
||||
if (random 1 < 0.15) then {
|
||||
[_vehicle, _ammo, _speed, random 1 < 0.3] call _spawnProjectile;
|
||||
};
|
||||
};
|
||||
};
|
||||
[FUNC(detonateAmmunition), [_vehicle, _magazines, _totalAmmo], _timeBetweenAmmoDetonation] call CBA_fnc_waitAndExecute;
|
54
addons/cookoff/functions/fnc_detonateAmmunitionServer.sqf
Normal file
54
addons/cookoff/functions/fnc_detonateAmmunitionServer.sqf
Normal file
@ -0,0 +1,54 @@
|
||||
#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_detonateAmmunitionServer
|
||||
*
|
||||
* 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);
|
||||
};
|
||||
|
||||
[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;
|
@ -1,51 +0,0 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: KoffeinFlummi, commy2
|
||||
* Start fire in engine block of a car.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Vehicle <Object>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* (vehicle player) call ace_cookoff_fnc_engineFire
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params ["_vehicle"];
|
||||
|
||||
if (_vehicle getVariable [QGVAR(isEngineSmoking), false]) exitWith {};
|
||||
_vehicle setVariable [QGVAR(isEngineSmoking), true];
|
||||
|
||||
if (local _vehicle) then {
|
||||
[QGVAR(engineFire), _vehicle] call CBA_fnc_globalEvent;
|
||||
};
|
||||
|
||||
private _offset = getArray (_vehicle call CBA_fnc_getObjectConfig >> QGVAR(engineSmokeOffset));
|
||||
|
||||
if (_offset isEqualTo []) then {
|
||||
_offset = [0,0,0];
|
||||
};
|
||||
|
||||
private _position = [
|
||||
0,
|
||||
(boundingBoxReal _vehicle select 1 select 1) - 2,
|
||||
(boundingBoxReal _vehicle select 0 select 2) + 2
|
||||
] vectorAdd _offset;
|
||||
|
||||
private _smoke = "#particlesource" createVehicleLocal [0,0,0];
|
||||
_smoke setParticleClass "ObjectDestructionSmoke1_2Smallx";
|
||||
_smoke attachTo [_vehicle, _position];
|
||||
|
||||
[{
|
||||
(_this select 0) params ["_vehicle", "_smoke", "_time"];
|
||||
|
||||
if (isNull _vehicle || {!alive _vehicle} || {_vehicle getHitPointDamage "HitEngine" < 0.9} || {CBA_missionTime > _time}) then {
|
||||
deleteVehicle _smoke;
|
||||
_vehicle setVariable [QGVAR(isEngineSmoking), false];
|
||||
[_this select 1] call CBA_fnc_removePerFrameHandler;
|
||||
};
|
||||
}, 5, [_vehicle, _smoke, CBA_missionTime + 240]] call CBA_fnc_addPerFrameHandler;
|
81
addons/cookoff/functions/fnc_engineFireLocal.sqf
Normal file
81
addons/cookoff/functions/fnc_engineFireLocal.sqf
Normal file
@ -0,0 +1,81 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: KoffeinFlummi, commy2, johnb43
|
||||
* Start fire in engine block of a car.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Vehicle <OBJECT>
|
||||
* 1: End time <NUMBER>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [cursorObject, CBA_missionTime + 10] call ace_cookoff_fnc_engineFireLocal
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params ["_vehicle", "_endTime"];
|
||||
|
||||
// For JIP players and if the time wasn't set properly
|
||||
if (_endTime < CBA_missionTime) exitWith {};
|
||||
|
||||
private _smoke = objNull;
|
||||
|
||||
if (hasInterface) then {
|
||||
private _hitPoints = getAllHitPointsDamage _vehicle;
|
||||
|
||||
// Get hitpoint for engine
|
||||
private _index = (_hitPoints select 0) findIf {_x == "hitengine"};
|
||||
|
||||
// Get corresponding selection
|
||||
private _position = if (_index != -1) then {
|
||||
_vehicle selectionPosition [(_hitPoints select 1) select _index, "HitPoints", "AveragePoint"]
|
||||
} else {
|
||||
[0, 0, 0]
|
||||
};
|
||||
|
||||
if (_position isEqualTo [0, 0, 0]) then {
|
||||
// Get offset for engine smoke if there is one
|
||||
private _offset = getArray (configOf _vehicle >> QGVAR(engineSmokeOffset));
|
||||
|
||||
if (_offset isEqualTo []) then {
|
||||
_offset = [0, 0, 0];
|
||||
};
|
||||
|
||||
_position = [
|
||||
0,
|
||||
(boundingBoxReal _vehicle select 1 select 1) - 2,
|
||||
(boundingBoxReal _vehicle select 0 select 2) + 2
|
||||
] vectorAdd _offset;
|
||||
};
|
||||
|
||||
// Spawn smoke
|
||||
_smoke = createVehicleLocal ["#particlesource", ASLToAGL getPosASL _vehicle, [], 0, "CAN_COLLIDE"];;
|
||||
_smoke setParticleClass "ObjectDestructionSmoke1_2Smallx";
|
||||
_smoke attachTo [_vehicle, _position];
|
||||
};
|
||||
|
||||
[{
|
||||
(_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;
|
||||
|
||||
deleteVehicle _smoke;
|
||||
|
||||
if (!isServer || {isNull _vehicle}) exitWith {};
|
||||
|
||||
// Reset variable, so engine can smoke again in the future
|
||||
_vehicle setVariable [QGVAR(isEngineSmoking), nil, true];
|
||||
|
||||
private _jipID = _vehicle getVariable QGVAR(engineFireJipID);
|
||||
|
||||
if (isNil "_jipID") exitWith {};
|
||||
|
||||
_jipID call CBA_fnc_removeGlobalEventJIP;
|
||||
|
||||
_vehicle setVariable [QGVAR(engineFireJipID), nil];
|
||||
}, 5, [_vehicle, _smoke, _endTime]] call CBA_fnc_addPerFrameHandler;
|
34
addons/cookoff/functions/fnc_engineFireServer.sqf
Normal file
34
addons/cookoff/functions/fnc_engineFireServer.sqf
Normal file
@ -0,0 +1,34 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: KoffeinFlummi, commy2, johnb43
|
||||
* Start fire in engine block of a car.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Vehicle <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* cursorObject call ace_cookoff_fnc_engineFireServer
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
if (!isServer) exitWith {};
|
||||
|
||||
params ["_vehicle"];
|
||||
|
||||
// If already smoking, stop
|
||||
if (_vehicle getVariable [QGVAR(isEngineSmoking), false]) exitWith {};
|
||||
|
||||
_vehicle setVariable [QGVAR(isEngineSmoking), true, true];
|
||||
|
||||
// Spawn engine fire effects on all connected machines
|
||||
private _jipID = [QGVAR(engineFireLocal), [_vehicle, CBA_missionTime + random [ENGINE_FIRE_TIME / 2, ENGINE_FIRE_TIME, ENGINE_FIRE_TIME / 2 * 3]]] call CBA_fnc_globalEventJIP;
|
||||
[_jipID, _vehicle] call CBA_fnc_removeGlobalEventJIP;
|
||||
|
||||
_vehicle setVariable [QGVAR(engineFireJipID), _jipID];
|
||||
|
||||
// API
|
||||
[QGVAR(engineFire), [_vehicle]] call CBA_fnc_globalEvent;
|
@ -1,65 +1,76 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: PabstMirror
|
||||
* Gets all magazines inside of a vehicle.
|
||||
* Gets all magazines inside of an object.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Vehicle <Object>
|
||||
* 0: Object <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* 0: Ammo Array <ARRAY>
|
||||
* - 0: Magazine Classname <STRING>
|
||||
* - 1: Ammo Count <NUMBER>
|
||||
* 1: Total Ammo Count <NUMBER>
|
||||
* 0: Ammo array <ARRAY>
|
||||
* - 0: Magazine classname <STRING>
|
||||
* - 1: Ammo count <NUMBER>
|
||||
* - 2: If a projectile should be spawned upon detonation <BOOL>
|
||||
* 1: Total ammo count <NUMBER>
|
||||
*
|
||||
* Example:
|
||||
* [vehicle player] call ace_cookoff_fnc_getVehicleAmmo
|
||||
* cursorObject call ace_cookoff_fnc_getVehicleAmmo
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params ["_vehicle"];
|
||||
TRACE_1("getVehicleAmmo",_vehicle);
|
||||
params ["_object"];
|
||||
TRACE_1("getVehicleAmmo",_object);
|
||||
|
||||
private _ammoToDetonate = [];
|
||||
private _totalAmmo = 0;
|
||||
private _cfgMagazines = configFile >> "CfgMagazines";
|
||||
private _cfgAmmo = configFile >> "CfgAmmo";
|
||||
private _ammo = "";
|
||||
|
||||
// Get ammo from turrets
|
||||
{
|
||||
_x params ["_mag", "_turret", "_count"];
|
||||
// if the turret is an FFV seat, it takes magazines from the soldier
|
||||
if (_count > 0) then {
|
||||
if (_mag call FUNC(isMagazineFlare)) then {continue};
|
||||
private _ammo = getText (configFile >> "CfgMagazines" >> _mag >> "ammo");
|
||||
private _model = getText (configFile >> "CfgAmmo" >> _ammo >> "model");
|
||||
if (_model == "\A3\weapons_f\empty") exitWith {TRACE_3("skipping",_mag,_ammo,_model);};
|
||||
_ammoToDetonate pushBack [_mag, _count];
|
||||
// If the turret is an FFV seat, it takes magazines from the soldier
|
||||
_x params ["_magazine", "", "_count"];
|
||||
|
||||
if (_count > 0 && {!(_magazine call FUNC(isMagazineFlare))}) then {
|
||||
_ammo = getText (_cfgMagazines >> _magazine >> "ammo");
|
||||
|
||||
if (getText (_cfgAmmo >> _ammo >> "model") == "\A3\weapons_f\empty") then {
|
||||
TRACE_2("skipping",_magazine,_ammo);
|
||||
|
||||
continue;
|
||||
};
|
||||
|
||||
_ammoToDetonate pushBack [_magazine, _count, true];
|
||||
_totalAmmo = _totalAmmo + _count;
|
||||
};
|
||||
} forEach (magazinesAllTurrets [_vehicle, true]);
|
||||
} forEach (magazinesAllTurrets [_object, true]);
|
||||
|
||||
// Get ammo from cargo space
|
||||
{
|
||||
_x params ["_mag", "_count"];
|
||||
if (_count > 0) then {
|
||||
if (_mag call FUNC(isMagazineFlare)) then {continue};
|
||||
_ammoToDetonate pushBack [_mag, _count];
|
||||
_x params ["_magazine", "_count"];
|
||||
|
||||
if (_count > 0 && {!(_magazine call FUNC(isMagazineFlare))}) then {
|
||||
_ammoToDetonate pushBack [_magazine, _count, false];
|
||||
_totalAmmo = _totalAmmo + _count;
|
||||
};
|
||||
} forEach (magazinesAmmoCargo _vehicle);
|
||||
} forEach (magazinesAmmoCargo _object);
|
||||
|
||||
// Get ammo from transportAmmo / ace_rearm
|
||||
private _vehCfg = configOf _vehicle;
|
||||
private _configVehicle = configOf _object;
|
||||
private _configSupply = (getNumber (_configVehicle >> "transportAmmo")) max (getNumber (_configVehicle >> QEGVAR(rearm,defaultSupply)));
|
||||
|
||||
private _configSupply = (getNumber (_vehCfg >> "transportAmmo")) max (getNumber (_vehCfg >> QEGVAR(rearm,defaultSupply)));
|
||||
if (_vehicle getVariable [QEGVAR(rearm,isSupplyVehicle), (_configSupply > 0)]) then {
|
||||
TRACE_1("transportAmmo vehicle - adding virtual ammo",typeOf _vehicle);
|
||||
if (_object getVariable [QEGVAR(rearm,isSupplyVehicle), _configSupply > 0]) then {
|
||||
TRACE_1("transportAmmo vehicle - adding virtual ammo",typeOf _object);
|
||||
|
||||
_ammoToDetonate pushBack ["2000Rnd_65x39_belt", 2000];
|
||||
_ammoToDetonate pushBack ["2000Rnd_65x39_belt", 2000, false];
|
||||
_totalAmmo = _totalAmmo + 2000;
|
||||
_ammoToDetonate pushBack ["20Rnd_105mm_HEAT_MP", 100];
|
||||
|
||||
_ammoToDetonate pushBack ["20Rnd_105mm_HEAT_MP", 100, true];
|
||||
_totalAmmo = _totalAmmo + 100;
|
||||
_ammoToDetonate pushBack ["SatchelCharge_Remote_Mag", 10];
|
||||
|
||||
_ammoToDetonate pushBack ["SatchelCharge_Remote_Mag", 10, true];
|
||||
_totalAmmo = _totalAmmo + 10;
|
||||
};
|
||||
|
||||
|
@ -1,13 +1,13 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: KoffeinFlummi, commy2
|
||||
* Handles all incoming damage for boxi
|
||||
* Author: KoffeinFlummi, commy2, johnb43
|
||||
* Handles all incoming damage for boxes.
|
||||
*
|
||||
* Arguments:
|
||||
* HandleDamage EH <ARRAY>
|
||||
*
|
||||
* Return Value:
|
||||
* Damage to be inflicted. <NUMBER>
|
||||
* Damage to be inflicted (can be nil) <NUMBER>
|
||||
*
|
||||
* Example:
|
||||
* _this call ace_cookoff_fnc_handleDamageBox
|
||||
@ -15,58 +15,48 @@
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params ["_vehicle", "", "_damage", "_source", "_ammo", "_hitIndex", "_shooter"];
|
||||
// If cookoff for boxes is disabled, exit
|
||||
if (!GVAR(enableAmmobox) || {GVAR(ammoCookoffDuration) == 0}) exitWith {};
|
||||
|
||||
// it's already dead, who cares?
|
||||
if (damage _vehicle >= 1) exitWith {};
|
||||
params ["_box", "", "_damage", "_source", "_ammo", "", "_instigator", "_hitPoint"];
|
||||
|
||||
// If cookoff is disabled exit
|
||||
if (_vehicle getVariable [QGVAR(enable), GVAR(enable)] in [0, false]) exitWith {};
|
||||
if (!local _box) exitWith {};
|
||||
|
||||
// get hitpoint name
|
||||
private _hitpoint = "#structural";
|
||||
// If it's already dead, ignore
|
||||
if (!alive _box) exitWith {};
|
||||
|
||||
if (_hitIndex != -1) then {
|
||||
_hitpoint = toLowerANSI ((getAllHitPointsDamage _vehicle param [0, []]) select _hitIndex);
|
||||
};
|
||||
if !(_box getVariable [QGVAR(enableAmmoCookoff), true]) exitWith {};
|
||||
|
||||
// get change in damage
|
||||
private _oldDamage = 0;
|
||||
if !(_hitPoint == "" && {_damage > 0.5}) exitWith {}; // "" means structural damage
|
||||
|
||||
if (_hitpoint isEqualTo "#structural") then {
|
||||
_oldDamage = damage _vehicle;
|
||||
private _ammoConfig = _ammo call CBA_fnc_getObjectConfig;
|
||||
|
||||
// Catch fire when hit by an explosive or incendiary round
|
||||
if ((getNumber (_ammoConfig >> "explosive") >= 0.5) || {getNumber (_ammoConfig >> QEGVAR(vehicle_damage,incendiary)) > random 1}) then {
|
||||
[QGVAR(cookOffBoxServer), [_box, _source, _instigator]] call CBA_fnc_serverEvent;
|
||||
} else {
|
||||
_oldDamage = _vehicle getHitIndex _hitIndex;
|
||||
};
|
||||
// There is a small chance of cooking a box off if it's shot by tracer ammo
|
||||
if (random 1 >= _damage * 0.05) exitWith {};
|
||||
|
||||
if (_hitpoint == "#structural" && _damage > 0.5) then {
|
||||
// Almost always catch fire when hit by an explosive
|
||||
if (IS_EXPLOSIVE_AMMO(_ammo)) then {
|
||||
_vehicle call FUNC(cookOffBox);
|
||||
// Need magazine to check for tracers
|
||||
private _magazine = if (_source == _instigator) then {
|
||||
currentMagazine _source
|
||||
} else {
|
||||
// Need magazine to check for tracers
|
||||
private _mag = "";
|
||||
if (_source == _shooter) then {
|
||||
_mag = currentMagazine _source;
|
||||
} else {
|
||||
_mag = _source currentMagazineTurret ([_shooter] call CBA_fnc_turretPath);
|
||||
};
|
||||
private _magCfg = configFile >> "CfgMagazines" >> _mag;
|
||||
|
||||
// Magazine could have changed during flight time (just ignore if so)
|
||||
if (getText (_magCfg >> "ammo") == _ammo) then {
|
||||
// If magazine's tracer density is high enough then low chance for cook off
|
||||
private _tracers = getNumber (_magCfg >> "tracersEvery");
|
||||
if (_tracers >= 1 && {_tracers <= 4}) then {
|
||||
if (random 1 < _oldDamage*0.05) then {
|
||||
_vehicle call FUNC(cookOffBox);
|
||||
};
|
||||
};
|
||||
};
|
||||
_source currentMagazineTurret (_source unitTurret _instigator)
|
||||
};
|
||||
|
||||
// prevent destruction, let cook-off handle it if necessary
|
||||
_damage min 0.89
|
||||
} else {
|
||||
_damage
|
||||
private _configMagazine = configFile >> "CfgMagazines" >> _magazine;
|
||||
|
||||
// Magazine could have changed during flight time (just ignore if so)
|
||||
if (getText (_configMagazine >> "ammo") == _ammo) then {
|
||||
// If magazine's tracer density is high enough then low chance for cook off
|
||||
private _tracers = getNumber (_configMagazine >> "tracersEvery");
|
||||
|
||||
if (_tracers >= 1 && {_tracers <= 4}) then {
|
||||
[QGVAR(cookOffBoxServer), [_box, _source, _instigator]] call CBA_fnc_serverEvent;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// Prevent destruction, let cook-off handle it if necessary
|
||||
_damage min 0.89
|
||||
|
@ -1,24 +1,22 @@
|
||||
#include "..\script_component.hpp"
|
||||
/*
|
||||
* Author: Cyruz
|
||||
* Checks if the magazine has ammo which is a flare
|
||||
* Checks if the magazine's ammo are flares.
|
||||
*
|
||||
* Arguments:
|
||||
* 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
|
||||
* "3Rnd_UGL_FlareWhite_F" call ace_cookoff_fnc_isMagazineFlare
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params ["_magazine"];
|
||||
|
||||
private _ammo = getText (configFile >> "CfgMagazines" >> _magazine >> "ammo");
|
||||
private _intensity = getNumber (configFile >> "CfgAmmo" >> _ammo >> "intensity");
|
||||
private _flare = getNumber (configFile >> "CfgAmmo" >> _ammo >> QEGVAR(grenades,flare));
|
||||
private _configAmmo = configFile >> "CfgAmmo" >> getText (configFile >> "CfgMagazines" >> _magazine >> "ammo");
|
||||
|
||||
_intensity != 0 || _flare == 1
|
||||
getNumber (_configAmmo >> "intensity") != 0 || {getNumber (_configAmmo >> QEGVAR(grenades,flare)) == 1}
|
||||
|
@ -5,7 +5,7 @@
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Vehicle <OBJECT>
|
||||
* 1. Selections for smoke to come out of <ARRAY> (default: [])
|
||||
* 1: Selections for smoke to come out of <ARRAY>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
@ -16,12 +16,11 @@
|
||||
* Public: No
|
||||
*/
|
||||
|
||||
params ["_vehicle", ["_positions", []]];
|
||||
params ["_vehicle", "_selections"];
|
||||
|
||||
private _turretConfig = [_vehicle, [0]] call CBA_fnc_getTurret;
|
||||
private _positionBarrelEnd = getText (_turretConfig >> "gunBeg");
|
||||
private _positionBarrelEnd = getText ([_vehicle, [0]] call CBA_fnc_getTurret >> "gunBeg");
|
||||
|
||||
// smoke out of cannon and hatches
|
||||
// Smoke out of cannon and hatches
|
||||
private _smokeBarrel = "#particlesource" createVehicleLocal [0, 0, 0];
|
||||
_smokeBarrel setParticleClass "MediumDestructionSmoke";
|
||||
_smokeBarrel attachTo [_vehicle, [0, 0, 0], _positionBarrelEnd];
|
||||
@ -29,10 +28,10 @@ _smokeBarrel attachTo [_vehicle, [0, 0, 0], _positionBarrelEnd];
|
||||
private _effects = [_smokeBarrel];
|
||||
|
||||
{
|
||||
private _position = [0, -2, 0];
|
||||
|
||||
if (_x isNotEqualTo "#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];
|
||||
@ -40,6 +39,6 @@ private _effects = [_smokeBarrel];
|
||||
_smoke attachTo [_vehicle, _position];
|
||||
|
||||
_effects pushBack _smoke;
|
||||
} forEach _positions;
|
||||
} forEach _selections;
|
||||
|
||||
_vehicle setVariable [QGVAR(effects), _effects];
|
||||
|
@ -1,69 +1,71 @@
|
||||
[
|
||||
QGVAR(enable), "LIST",
|
||||
[LSTRING(enable_hd_name), LSTRING(enable_hd_tooltip)],
|
||||
LSTRING(category_displayName),
|
||||
[[0, 1, 2], ["STR_A3_OPTIONS_DISABLED", ELSTRING(common,playerOnly), ELSTRING(common,playersAndAI)], 2],
|
||||
true, // isGlobal
|
||||
{[QGVAR(enable), _this] call EFUNC(common,cbaSettings_settingChanged)},
|
||||
true // Needs mission restart
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
QGVAR(enableFire), "CHECKBOX",
|
||||
QGVAR(enableFire),
|
||||
"CHECKBOX",
|
||||
[LSTRING(enableFire_name), LSTRING(enableFire_tooltip)],
|
||||
LSTRING(category_displayName),
|
||||
true, // default value
|
||||
true, // isGlobal
|
||||
{[QGVAR(enableFire), _this] call EFUNC(common,cbaSettings_settingChanged)},
|
||||
false // Needs mission restart
|
||||
true,
|
||||
1
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
QGVAR(destroyVehicleAfterCookoff), "CHECKBOX",
|
||||
[LSTRING(destroyVehicleAfterCookoff_name), LSTRING(destroyVehicleAfterCookoff_tooltip)],
|
||||
QGVAR(cookoffDuration),
|
||||
"SLIDER",
|
||||
[LSTRING(cookoffDuration_name), LSTRING(cookoffDuration_tooltip)],
|
||||
LSTRING(category_displayName),
|
||||
false, // default value
|
||||
true, // isGlobal
|
||||
{[QGVAR(destroyVehicleAfterCookoff), _this] call EFUNC(common,cbaSettings_settingChanged)},
|
||||
false // Needs mission restart
|
||||
[0, 10, 1, 2],
|
||||
1
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
QGVAR(enableAmmoCookoff), "CHECKBOX",
|
||||
[LSTRING(enableAmmoCookoff_name), LSTRING(enableAmmoCookoff_tooltip)],
|
||||
LSTRING(category_displayName),
|
||||
true, // default value
|
||||
true, // isGlobal
|
||||
{[QGVAR(enableAmmoCookoff), _this] call EFUNC(common,cbaSettings_settingChanged)},
|
||||
false // Needs mission restart
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
QGVAR(enableAmmobox), "CHECKBOX",
|
||||
[LSTRING(enableBoxCookoff_name), LSTRING(enableBoxCookoff_tooltip)],
|
||||
LSTRING(category_displayName),
|
||||
true, // default value
|
||||
true, // isGlobal
|
||||
{[QGVAR(enableAmmobox), _this] call EFUNC(common,cbaSettings_settingChanged)},
|
||||
true // Needs mission restart
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
QGVAR(ammoCookoffDuration), "SLIDER",
|
||||
[LSTRING(ammoCookoffDuration_name), LSTRING(ammoCookoffDuration_tooltip)],
|
||||
LSTRING(category_displayName),
|
||||
[0,5,1,1], // [min, max, default value, trailing decimals (-1 for whole numbers only)]
|
||||
true, // isGlobal
|
||||
{[QGVAR(ammoCookoffDuration), _this] call EFUNC(common,cbaSettings_settingChanged)},
|
||||
true // Needs mission restart
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
QGVAR(probabilityCoef), "SLIDER",
|
||||
QGVAR(probabilityCoef),
|
||||
"SLIDER",
|
||||
[LSTRING(probabilityCoef_name), LSTRING(probabilityCoef_tooltip)],
|
||||
LSTRING(category_displayName),
|
||||
[0,5,1,1], // [min, max, default value, trailing decimals (-1 for whole numbers only)]
|
||||
true, // isGlobal
|
||||
{[QGVAR(probabilityCoef), _this] call EFUNC(common,cbaSettings_settingChanged)},
|
||||
true // Needs mission restart
|
||||
[0, 10, 1, 2],
|
||||
1
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
QGVAR(destroyVehicleAfterCookoff),
|
||||
"CHECKBOX",
|
||||
[LSTRING(destroyVehicleAfterCookoff_name), LSTRING(destroyVehicleAfterCookoff_tooltip)],
|
||||
LSTRING(category_displayName),
|
||||
false,
|
||||
1
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
QGVAR(enableAmmoCookoff),
|
||||
"CHECKBOX",
|
||||
[LSTRING(enableAmmoCookoff_name), LSTRING(enableAmmoCookoff_tooltip)],
|
||||
LSTRING(category_displayName),
|
||||
true,
|
||||
1
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
QGVAR(enableAmmobox),
|
||||
"CHECKBOX",
|
||||
[LSTRING(enableBoxCookoff_name), LSTRING(enableBoxCookoff_tooltip)],
|
||||
LSTRING(category_displayName),
|
||||
true,
|
||||
1
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
QGVAR(ammoCookoffDuration),
|
||||
"SLIDER",
|
||||
[LSTRING(ammoCookoffDuration_name), LSTRING(ammoCookoffDuration_tooltip)],
|
||||
LSTRING(category_displayName),
|
||||
[0, 10, 1, 2],
|
||||
1
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
QGVAR(removeAmmoDuringCookoff),
|
||||
"CHECKBOX",
|
||||
[LSTRING(removeAmmoDuringCookoff_name), LSTRING(removeAmmoDuringCookoff_tooltip)],
|
||||
LSTRING(category_displayName),
|
||||
true,
|
||||
1
|
||||
] call CBA_fnc_addSetting;
|
||||
|
@ -16,14 +16,12 @@
|
||||
|
||||
#include "\z\ace\addons\main\script_macros.hpp"
|
||||
|
||||
#define IS_EXPLOSIVE_AMMO(ammo) (getNumber (ammo call CBA_fnc_getObjectConfig >> "explosive") > 0.5)
|
||||
|
||||
// Stages of cookoff in order (in seconds)
|
||||
// Should be no un-synced randomness in these as the effects must be ran on each client
|
||||
#define IGNITE_TIME 3
|
||||
#define SMOKE_TIME 10.5
|
||||
// Should be no un-synced randomness in these as the effects must be run on each client
|
||||
#define SMOKE_DELAY 10.5
|
||||
#define DETONATION_DELAY 3
|
||||
#define COOKOFF_TIME 14 // Cook off time should be 20s at most due to length of sound files
|
||||
#define COOKOFF_TIME_BOX 82.5 // Cook off time for boxes should be significant to allow time for ammo to burn
|
||||
#define ENGINE_FIRE_TIME 240
|
||||
#define MIN_TIME_BETWEEN_FLAMES 5
|
||||
#define MAX_TIME_BETWEEN_FLAMES 15
|
||||
#define MAX_TIME_BETWEEN_AMMO_DET 25
|
||||
@ -32,9 +30,6 @@
|
||||
#define MIN_AMMO_DETONATION_START_DELAY 1 // Min time to wait before a vehicle's ammo starts to cookoff
|
||||
#define MAX_AMMO_DETONATION_START_DELAY 6 // Max time to wait before a vehicle's ammo starts to cookoff
|
||||
|
||||
// Delay between flame effect for players in a cooking off vehicle
|
||||
#define FLAME_EFFECT_DELAY 0.4
|
||||
|
||||
// Common commander hatch defines for default vehicles
|
||||
#define DEFAULT_COMMANDER_HATCHES ["osa_poklop_commander", "hatch_commander_axis"]
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
<Project name="ACE">
|
||||
<Package name="CookOff">
|
||||
<Key ID="STR_ACE_CookOff_category_displayName">
|
||||
<English>ACE Cook off</English>
|
||||
<English>ACE Cook-off</English>
|
||||
<Spanish>ACE Detonación inducida por calor</Spanish>
|
||||
<Italian>ACE Detonazione Munizioni</Italian>
|
||||
<Chinese>ACE 殉爆效果</Chinese>
|
||||
@ -16,158 +16,26 @@
|
||||
<Portuguese>ACE Cook off</Portuguese>
|
||||
<Czech>ACE Vznícení munice</Czech>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_CookOff_enable_hd_name">
|
||||
<English>Damage handling and turret effects</English>
|
||||
<Spanish>Daño y efectos de torreta</Spanish>
|
||||
<German>Schadensberechnung und Geschützturmeffekte</German>
|
||||
<Japanese>損傷処理と砲塔の効果</Japanese>
|
||||
<Russian>Обработка урона и эффектов срыва башни</Russian>
|
||||
<Portuguese>Manipulação de dano e efeitos de torre</Portuguese>
|
||||
<French>Dégâts et effets de tourelle</French>
|
||||
<Chinese>傷害控制及炮塔效果</Chinese>
|
||||
<Chinesesimp>损坏处理和炮塔效果</Chinesesimp>
|
||||
<Italian>Gestione danni ed effetti torretta</Italian>
|
||||
<Czech>Poškodit ovládání a efekty věže</Czech>
|
||||
<Polish>Obsługa obrażeń i efekty wieży</Polish>
|
||||
<Korean>피해량 조절 및 포탑에 효과 부여</Korean>
|
||||
<Key ID="STR_ACE_CookOff_enableFire_name">
|
||||
<English>Enable vehicle cook-off fire</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_CookOff_enable_hd_tooltip">
|
||||
<English>Changes damage handling for cook off and turret explosion effects</English>
|
||||
<Spanish>Cambia el daño de la detonación inducida por calor y los efectos de la explosión de la torreta</Spanish>
|
||||
<German>Ändert die Schadensberechnung für die Durchzündung und die Explosionseffekte des Geschützturmes</German>
|
||||
<Japanese>誘爆の損傷処理と砲塔の爆発効果を変更します。</Japanese>
|
||||
<Russian>Изменяет обработку урона для возгорания и эффекта срыва башни</Russian>
|
||||
<Portuguese>Modifica a manipulação de dano para o cozinhamento de munição e efeitos de explosão da torre</Portuguese>
|
||||
<French>Modifie la gestion des dégâts pour l'auto-inflammation et les effets d'explosion de tourelle.</French>
|
||||
<Chinese>更改殉爆以及炮塔爆炸之傷害控制</Chinese>
|
||||
<Chinesesimp>改变殉爆和炮塔爆炸的损坏处理效果</Chinesesimp>
|
||||
<Italian>Modifica la gestione dei danni per l'esplosione di munizioni e gli effetti di esplosione della torretta</Italian>
|
||||
<Czech>Změní poškození ovládání a efekty výbuchu veže</Czech>
|
||||
<Polish>Zmienia obsługę obrażeń podczas samozapłonu i eksplozji wieży</Polish>
|
||||
<Korean>쿡오프로 인해 피해량의 변화와 포탑 터짐현상을 결정합니다.</Korean>
|
||||
<Key ID="STR_ACE_CookOff_enableFire_tooltip">
|
||||
<English>Enables vehicle cook-off fire effects.\nThis doesn't include ammunition detonations.</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_CookOff_enableBoxCookoff_name">
|
||||
<English>Enable ammo box cook off</English>
|
||||
<Spanish>Habilitar detonación inducida por calor en las cajas de munición</Spanish>
|
||||
<Japanese>弾薬箱の誘爆を有効化</Japanese>
|
||||
<German>Durchzündung für Munitionskisten ermöglichen</German>
|
||||
<Korean>탄약 상자 쿡오프 현상 활성화</Korean>
|
||||
<Polish>Aktywuj samozapłon skrzyń z amunicją</Polish>
|
||||
<French>Auto-inflammation des caisses de munitions</French>
|
||||
<Italian>Abilita esplosione casse munizioni</Italian>
|
||||
<Chinese>開啟彈藥箱殉爆效果</Chinese>
|
||||
<Chinesesimp>开启弹药箱殉爆效果</Chinesesimp>
|
||||
<Russian>Разрешить детонацию ящиков с боеприпасами</Russian>
|
||||
<Portuguese>Permitir cozinhar caixas de munição</Portuguese>
|
||||
<Czech>Povolit vynícení munice v krabicích</Czech>
|
||||
<Key ID="STR_ACE_CookOff_cookoffDuration_name">
|
||||
<English>Vehicle cook-off fire duration multiplier</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_CookOff_enableBoxCookoff_tooltip">
|
||||
<English>Enables cooking off of ammo boxes.</English>
|
||||
<Spanish>Habilita la detonación inducida por calor en las cajas de munición</Spanish>
|
||||
<Japanese>弾薬箱が誘爆するようになります。</Japanese>
|
||||
<German>Ermöglicht Durchzündung von Munitionskisten.</German>
|
||||
<Korean>탄약 상자에 쿡오프 현상을 적용합니다.</Korean>
|
||||
<Polish>Aktywuje samozapłon skrzyń z amunicją</Polish>
|
||||
<French>Permet l'auto-inflammation des caisses de munitions.</French>
|
||||
<Italian>Abilita l'esplosione di casse di munizioni distrutte.</Italian>
|
||||
<Chinese>開啟彈藥箱殉爆效果</Chinese>
|
||||
<Chinesesimp>开启弹药箱殉爆效果</Chinesesimp>
|
||||
<Russian>Активирует детонацию ящиков с боеприпасами</Russian>
|
||||
<Portuguese>Permitir que caixas de munição cozinhem.</Portuguese>
|
||||
<Czech>Zapíná vznícení munice v krabicích.</Czech>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_CookOff_enableAmmoCookoff_name">
|
||||
<English>Enable Ammunition cook off</English>
|
||||
<Spanish>Habilitar la detonación inducida por calor en la munición</Spanish>
|
||||
<Japanese>弾薬の誘爆を有効化</Japanese>
|
||||
<German>Durchzündung für Munition ermöglichen</German>
|
||||
<Korean>탄약 쿡오프 현상 활성화</Korean>
|
||||
<Polish>Aktywuj samozapłon amunicji</Polish>
|
||||
<French>Auto-inflammation des munitions</French>
|
||||
<Italian>Abilita Esplosione Munizioni</Italian>
|
||||
<Chinese>開啟彈藥殉爆效果</Chinese>
|
||||
<Chinesesimp>开启弹药殉爆效果</Chinesesimp>
|
||||
<Russian>Разрешить детонацию боекомплекта</Russian>
|
||||
<Portuguese>Permitir cozinhar munição</Portuguese>
|
||||
<Czech>Povolit vznícení munice</Czech>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_CookOff_enableAmmoCookoff_tooltip">
|
||||
<English>Enables Ammunition cook off. Fires ammunition projectiles while vehicle is on fire and has ammunition.</English>
|
||||
<Spanish>Habilita la detonación inducida por calor en la munición. Dispara proyectiles de munición mientras el vehículo está ardiendo y tiene munición</Spanish>
|
||||
<Japanese>弾薬が誘爆します。車両が燃えると、搭載している弾薬が激しく燃え上がります。</Japanese>
|
||||
<German>Ermöglicht Durchzündung von Munition. Feuert Projektile der Munition ab, solange das Fahrzeug brennt und Munition besitzt.</German>
|
||||
<Polish>Aktywuje samozapłon amunicji. Wystrzeliwuje pociski podczas gdy pojazd płonie i posiada amunicję.</Polish>
|
||||
<French>Permet l'auto-inflammation des munitions. Tire des projectiles tant que le véhicule est en feu et contient des munitions.</French>
|
||||
<Italian>Abilita l'esplosione di munizioni. Spara proiettili di munizioni quando il veicolo va a fuoco e contiene ancora munizioni.</Italian>
|
||||
<Chinese>開啟彈藥殉爆效果。當一台載有彈藥的載具起火時, 將會有殉爆的效果</Chinese>
|
||||
<Chinesesimp>开启弹药殉爆效果。当一台载有弹药的载具起火时,将会有殉爆的效果。</Chinesesimp>
|
||||
<Korean>쿡오프 현상을 활성화 합니다. 이것은 탄약에 불이 붙어 있는 동안 주변에 발사체를 발사합니다.</Korean>
|
||||
<Russian>Активирует детонацию боекомплекта в горящей технике.</Russian>
|
||||
<Portuguese>Permite que a munição cozinhe. Dispara projéteis de munição enquanto o veículo está em chamas e tem munição.</Portuguese>
|
||||
<Czech>Zapíná vznícení munice. Vystřeluje projektily po dobu kdy vozidlo hoří a má munici.</Czech>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_CookOff_ammoCookoffDuration_name">
|
||||
<English>Ammunition cook off duration</English>
|
||||
<Spanish>Duración de la detonación inducida por calor de la munición</Spanish>
|
||||
<German>Munitionsdurchzündungsdauer</German>
|
||||
<Polish>Czas trwania samozapłonu amunicji</Polish>
|
||||
<Japanese>弾薬の誘爆持続時間</Japanese>
|
||||
<French>Durée d'auto-inflammation des munitions</French>
|
||||
<Italian>Durata Esplosione Munizioni</Italian>
|
||||
<Chinese>彈藥殉爆效果持續時間</Chinese>
|
||||
<Chinesesimp>弹药殉爆效果持续时间</Chinesesimp>
|
||||
<Korean>쿡오프 지속 시간</Korean>
|
||||
<Russian>Длительность детонации боеприпасов</Russian>
|
||||
<Portuguese>Duração do cozinhamento de munição</Portuguese>
|
||||
<Czech>Doba trvání vznícení munice</Czech>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_CookOff_ammoCookoffDuration_tooltip">
|
||||
<English>Multiplier for how long cook off lasts [Setting to 0 will disable ammo cookoff]</English>
|
||||
<Spanish>Multiplicador de cuanto dura la detonación inducida por calor [Ponerlo a cero la deshabilita]</Spanish>
|
||||
<German>Faktor für die Munitionsdurchzündungsdauer [0 zum Deaktivieren]</German>
|
||||
<French>Multiplicateur permettant de régler la durée durant laquelle les munitions continuent d'exploser [Une valeur de 0 désactive l'auto-inflammation].</French>
|
||||
<Polish>Mnożnik decydujący jak długo ma trwać samozapłon amunicji [Ustawienie na 0 spowoduje wyłącznie samozapłonu]</Polish>
|
||||
<Japanese>誘爆の持続時間を乗数で設定します。[0 に設定で誘爆を無効化]</Japanese>
|
||||
<Italian>Moltiplicatore della durata delle esplosioni di munizioni [Se impostato su 0 disabiliterà le esplosioni delle munizioni]</Italian>
|
||||
<Chinese>設定彈藥殉爆效果會持續多久時間 [輸入0來關閉殉爆效果]</Chinese>
|
||||
<Chinesesimp>设定弹药殉爆效果会持续多久时间 [输入0来关闭殉爆效果]</Chinesesimp>
|
||||
<Korean>쿡오프 지속 시간의 배수 [0 이면 비활성]</Korean>
|
||||
<Russian>Множитель длительности детонации [0 - отключает детонацию боеприпасов]</Russian>
|
||||
<Portuguese>Multiplicação da duração do cozinhamento [0 faz com que o cozinhamento seja desativado]</Portuguese>
|
||||
<Czech>Multiplikátor doby trvání vznícení munice [Nastavte 0 pro vypnutí vznícení munice]</Czech>
|
||||
<Key ID="STR_ACE_CookOff_cookoffDuration_tooltip">
|
||||
<English>Multiplier for how long vehicle cook-off fire lasts.\nSetting to 0 will disable vehicle cook-off fire.</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_CookOff_probabilityCoef_name">
|
||||
<English>Cook-off probability coefficient</English>
|
||||
<Spanish>Coeficiente de probabilidad de detonación inducida por calor</Spanish>
|
||||
<Japanese>誘爆の可能性係数</Japanese>
|
||||
<Italian>Coefficiente Probabilità Esplosione</Italian>
|
||||
<German>Faktor für Wahrscheinlichkeit der Durchzündung</German>
|
||||
<Chinese>殉爆發生機率係數</Chinese>
|
||||
<Chinesesimp>殉爆发生机率系数</Chinesesimp>
|
||||
<French>Coefficient de probabilité d'auto-inflammation</French>
|
||||
<Polish>Współczynnik prawdopodobieństwa samozapłonu</Polish>
|
||||
<Russian>Коэф. вероятности детонации</Russian>
|
||||
<Portuguese>Probabilidade de Cozinhar</Portuguese>
|
||||
<Czech>Koeficient pravděpodobnosti vznícení munice</Czech>
|
||||
<Korean>쿡오프 발생 확률 계수</Korean>
|
||||
<English>Vehicle cook-off fire probability multiplier</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_CookOff_probabilityCoef_tooltip">
|
||||
<English>Multiplier for cook-off probability. Higher value results in higher cook-off probability</English>
|
||||
<Spanish>Multiplicador de probabilidad de detonación inducida por calor. Valores más altos producen mayor probabilidad</Spanish>
|
||||
<Japanese>誘爆する可能性の乗数。高い値では誘爆する可能性が高まります。</Japanese>
|
||||
<Italian>Moltiplicatore per la probabilità dell'esplosione di munizioni. Un valore più alto aumenta la probabilità.</Italian>
|
||||
<German>Faktor für Wahrscheinlichkeit der Durchzündung. Ein höherer Wert führt zu höherer Durchzündungswahrscheinlichkeit.</German>
|
||||
<Chinese>調整殉爆發生機率係數。值越高代表越容易發生殉爆</Chinese>
|
||||
<Chinesesimp>调整殉爆发生机率系数。值越高代表越容易发生殉爆。</Chinesesimp>
|
||||
<French>Multiplicateur de probabilité de l'auto-inflammation. Plus la valeur est élevée, plus la probabilité de combustion est grande.</French>
|
||||
<Polish>Mnożnik prawdopodobieństwa samozapłonu. Większa wartość oznacza większe prawdopodobieństwo samozapłonu</Polish>
|
||||
<Russian>Множитель коэффициента вероятности детонации. Чем выше значение, тем выше вероятность</Russian>
|
||||
<Portuguese>Multiplicador para a chance de cozinhamento. Valores mais altos aumentam as chances de ocorrer.</Portuguese>
|
||||
<Czech>Multiplikátor pro pravděpodobnost vznícení munice. Vyšší hodnota znamená vyšší šanci vznícení munice.</Czech>
|
||||
<Korean>쿡오프가 일어날 확률에 계수를 곱합니다. 더 큰 숫자는 더 높은 확률의 쿡오프를 일으킵니다.</Korean>
|
||||
<English>Multiplier for vehicle cook-off fire probability. Higher value results in higher cook-off probability.\nSetting to 0 will disable vehicle cook-off fire.</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_CookOff_destroyVehicleAfterCookoff_name">
|
||||
<English>Destroy Vehicles After Cook-off</English>
|
||||
<English>Destroy vehicles after cook-off</English>
|
||||
<Korean>쿡오프 후 차량 파괴</Korean>
|
||||
<Chinesesimp>殉爆发生后摧毁载具</Chinesesimp>
|
||||
<Russian>Уничтожать технику после детонации</Russian>
|
||||
@ -189,32 +57,54 @@
|
||||
<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_enableFire_name">
|
||||
<English>Enable Cook-Off Vehicle Fire</English>
|
||||
<Japanese>誘爆火災を有効化</Japanese>
|
||||
<French>Véhicules - Feu durant l'auto-inflammation</French>
|
||||
<Russian>Вкл. горение техники от детонации</Russian>
|
||||
<German>Aktiviert das in Brand setzen des Fahrzeugs während des Durchzündens der Munition</German>
|
||||
<Italian>Abilita incendiamento veicoli</Italian>
|
||||
<Polish>Włącz pożar pojazdu podczas samozapłonu</Polish>
|
||||
<Chinesesimp>启用殉爆载具火灾</Chinesesimp>
|
||||
<Korean>차량 쿡오프 화재 활성화</Korean>
|
||||
<Spanish>Habilitar incendio a causa de la detonación inducida por calor</Spanish>
|
||||
<Portuguese>Ativar incêndio de veículo durante cozinhamento</Portuguese>
|
||||
<Key ID="STR_ACE_CookOff_enableAmmoCookoff_name">
|
||||
<English>Enable vehicle ammo cook-off</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_CookOff_enableFire_tooltip">
|
||||
<English>Whether or not vehicles will catch on fire during cook-off</English>
|
||||
<Japanese>誘爆により車両が炎上するかどうかを設定します。</Japanese>
|
||||
<French>Définit si les véhicules prennent feu durant l'auto-inflammation de leurs munitions.</French>
|
||||
<Russian>Будет ли техника гореть при детонации боеприпасов</Russian>
|
||||
<German>Ob Fahrzeuge in Brand gesetzt werden, während deren Munition durchzündet.</German>
|
||||
<Italian>Determina se veicoli cominceranno a bruciare se le loro munizioni esplodono.</Italian>
|
||||
<Polish>Określa, czy pojazdy zapalą się podczas samozapłonu ich amunicji.</Polish>
|
||||
<Chinesesimp>车辆在殉爆过程中是否会起火</Chinesesimp>
|
||||
<Korean>쿡오프가 일어나면 차량에 불이 붙습니다.</Korean>
|
||||
<Spanish>Define si los vehículos salen ardiendo despues de una detonación inducida por calor.</Spanish>
|
||||
<Portuguese>Define se os veículos pegarão fogo durante o cozinhamento.</Portuguese>
|
||||
<Key ID="STR_ACE_CookOff_enableAmmoCookoff_tooltip">
|
||||
<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>
|
||||
<Spanish>Habilitar detonación inducida por calor en las cajas de munición</Spanish>
|
||||
<Japanese>弾薬箱の誘爆を有効化</Japanese>
|
||||
<German>Durchzündung für Munitionskisten ermöglichen</German>
|
||||
<Korean>탄약 상자 쿡오프 현상 활성화</Korean>
|
||||
<Polish>Aktywuj samozapłon skrzyń z amunicją</Polish>
|
||||
<French>Auto-inflammation des caisses de munitions</French>
|
||||
<Italian>Abilita esplosione casse munizioni</Italian>
|
||||
<Chinese>開啟彈藥箱殉爆效果</Chinese>
|
||||
<Chinesesimp>开启弹药箱殉爆效果</Chinesesimp>
|
||||
<Russian>Разрешить детонацию ящиков с боеприпасами</Russian>
|
||||
<Portuguese>Permitir cozinhar caixas de munição</Portuguese>
|
||||
<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 doesn't include fire effects.</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_CookOff_ammoCookoffDuration_name">
|
||||
<English>Ammo cook-off duration multiplier</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_CookOff_ammoCookoffDuration_tooltip">
|
||||
<English>Multiplier for how long ammunition cook-off lasts, for both vehicles and ammo boxes.\nSetting to 0 will disable ammo cook-off for both vehicles and ammo boxes.</English>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_CookOff_removeAmmoDuringCookoff_name">
|
||||
<English>Enable ammo removal during cook-off</English>
|
||||
<Japanese>誘爆中の弾薬除去を有効/無効にする</Japanese>
|
||||
<French>Retirer les munitions durant l'auto-inflammation</French>
|
||||
<German>Aktiviert/Deaktiviert Entfernung der Munition beim Durchzünden</German>
|
||||
<Italian>Abilita rimozione munizioni dopo l'esplosione</Italian>
|
||||
<Polish>Włącz/Wyłącz usuwanie amunicji podczas samozapłonu</Polish>
|
||||
<Chinesesimp>启用/禁用殉爆过程中的弹药移除功能</Chinesesimp>
|
||||
<Korean>쿡오프시 탄약 제거 활성화/비활성화</Korean>
|
||||
<Russian>Удалять боеприпасы из-за детонации</Russian>
|
||||
<Spanish>Habilita/Deshabilita ka eliminación de munición durante la detonación inducida por calor</Spanish>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_CookOff_removeAmmoDuringCookoff_tooltip">
|
||||
<English>Removes all ammo during cook-off.</English>
|
||||
<French>Retire des munitions des véhicules durant une auto-inflammation.</French>
|
||||
<German>Entfernt Munition während dem Durchzünden der Munition eines Fahrzeuges.</German>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
|
@ -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,10 +191,11 @@
|
||||
<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>
|
||||
<Japanese>重量計算にオブジェクトの重量を追加するかどうかを決定します。</Japanese>
|
||||
<Japanese>重量計算にオブジェクトの重量を追加するかどうかを定義します。</Japanese>
|
||||
<Italian>Determina se la massa del contenitore è sommata alla massa del contenuto per i calcoli di peso.</Italian>
|
||||
<Polish>Określa, czy waga obiektu jest dodawana do obliczeń ciężaru.</Polish>
|
||||
<German>Legt fest, ob das Gewicht des Objekts zu den Gewichtsberechnungen hinzugefügt wird.</German>
|
||||
@ -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>
|
||||
@ -1170,7 +1174,7 @@
|
||||
<English>Minimum time value (in seconds) for the explosive timer.</English>
|
||||
<Russian>Минимальное время до взрыва в секундах</Russian>
|
||||
<French>Définit la durée minimale paramétrable sur le minuteur.</French>
|
||||
<Japanese>起爆タイマーの最低時間 (秒) を設定します。</Japanese>
|
||||
<Japanese>起爆タイマーの最短時間 (秒単位) を設定します。</Japanese>
|
||||
<Spanish>Tiempo mínimo (en segundos) para el temporizador del explosivo.</Spanish>
|
||||
<Polish>Minimalna wartość czasomierza dla ładunku (w sekundach).</Polish>
|
||||
<German>Minimale Zeit (in Sekunden) für den Zeitzünder.</German>
|
||||
@ -1183,7 +1187,7 @@
|
||||
<English>Maximum time value (in seconds) for the explosive timer.</English>
|
||||
<Russian>Макисмальное время до взрыва в секундах</Russian>
|
||||
<French>Définit la durée maximale paramétrable sur le minuteur.</French>
|
||||
<Japanese>起爆タイマーの最長時間 (秒) を設定します。</Japanese>
|
||||
<Japanese>起爆タイマーの最長時間 (秒単位) を設定します。</Japanese>
|
||||
<Spanish>Tiempo máximo (en segundos) para el temporizador del explosivo.</Spanish>
|
||||
<Polish>Maksymalna wartość czasomierza dla ładunku (w sekundach).</Polish>
|
||||
<German>Maximale Zeit (in Sekunden) für den Zeitzünder.</German>
|
||||
@ -1196,7 +1200,7 @@
|
||||
<English>Default time value (in seconds) for the explosive timer.</English>
|
||||
<Russian>Стандартное время до взрыва в секундах</Russian>
|
||||
<French>Définit la durée paramétrée par défaut sur le minuteur.</French>
|
||||
<Japanese>起爆タイマーの標準時間 (秒) を設定します。</Japanese>
|
||||
<Japanese>起爆タイマーの標準時間 (秒単位) を設定します。</Japanese>
|
||||
<Spanish>Tiempo por defecto (en segundos) para el temporizador del explosivo.</Spanish>
|
||||
<Polish>Domyślna wartość czasomierza dla ładunku (w sekundach).</Polish>
|
||||
<German>Standardmäßige Zeit (in Sekunden) für den Zeitzünder.</German>
|
||||
|
@ -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
|
||||
|
@ -455,7 +455,7 @@
|
||||
<Chinese>控制顏色化圖示的透明度。設定為動態使其界面透明度與飲食需求一樣,越透明越需要。</Chinese>
|
||||
<Chinesesimp>控制彩色图标 HUD 的透明度。动态设置使 HUD 的透明度随着口渴或饥饿的增加而减弱。</Chinesesimp>
|
||||
<Polish>Kontroluje transparentność kolorowych ikon HUD. Dynamiczne ustawienie zmniejsza przejrzystość wraz z zwiększeniem głodu czy pragnienia.</Polish>
|
||||
<Japanese>色付きアイコンの透明度を決定できます。動的に設定されると、空腹度や喉の渇きが増すにつれて、アイコンの透明度を下げます。</Japanese>
|
||||
<Japanese>色付きアイコンの透明度を制御できます。動的に設定されると、空腹度や喉の渇きが増すにつれて、アイコンの透明度を下げます。</Japanese>
|
||||
<Russian>Настраивает прозрачность цветных иконок. «Динамическая» делает иконки менее прозрачными при увеличении жажды и голода.</Russian>
|
||||
<Turkish>Renkli Simgeler Gösterge Paneli'nin şeffaflığını kontrol eder. Dinamik ayar, susuzluk veya açlık arttıkça HUD'yi daha az şeffaf hale getirir.</Turkish>
|
||||
<Korean>색깔 아이콘의 투명도를 조절합니다. 동적 설정의 경우 배고픔이나 목마름이 해결되면 덜 투명하게 바뀝니다.</Korean>
|
||||
|
@ -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>
|
||||
|
@ -79,7 +79,7 @@
|
||||
<Spanish>Distancia máxima entre los jugadores para mostrar el indicador que señala [por defecto: 4 metros]</Spanish>
|
||||
<Czech>Maximální vzdálenost mezi hráči pro ukázání směru [výchozí: 4 metry]</Czech>
|
||||
<Italian>Distanza massima tra giocatori per mostrare l'indicatore di puntamento [Predefinito: 4 metri]</Italian>
|
||||
<Japanese>指差しのマーカー表示が他のプレイヤーに表示される最大範囲を決定できます。 [デフォルト: 4メートル]</Japanese>
|
||||
<Japanese>指差しのマーカー表示が他のプレイヤーに表示される最大範囲 [デフォルト: 4メートル]</Japanese>
|
||||
<Korean>플레이어 사이에서 가리키기 표시를 보이게 하는 최대거리를 설정합니다[기본설정: 4 미터]</Korean>
|
||||
<Chinesesimp>设定指向标记最大显示距离。[预设:4米]</Chinesesimp>
|
||||
<Chinese>設定指向指示器最大顯示距離。[預設: 4公尺]</Chinese>
|
||||
|
@ -5,6 +5,6 @@ PREP(burnReaction);
|
||||
PREP(burnSimulation);
|
||||
PREP(fireManagerPFH);
|
||||
PREP(isBurning);
|
||||
PREP(medical_canPatDown);
|
||||
PREP(medical_progress);
|
||||
PREP(medical_success);
|
||||
PREP(medical_canPatDown);
|
||||
|
@ -2,7 +2,6 @@
|
||||
|
||||
[QGVAR(burn), LINKFUNC(burn)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(burnEffects), LINKFUNC(burnEffects)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(burnObjectEffects), LINKFUNC(burnObjectEffects)] call CBA_fnc_addEventHandler;
|
||||
[QGVAR(burnSimulation), LINKFUNC(burnSimulation)] call CBA_fnc_addEventHandler;
|
||||
|
||||
[QGVAR(playScream), {
|
||||
@ -58,6 +57,13 @@
|
||||
if (_radius == 0 || _intensity == 0) exitWith {};
|
||||
if (_key isEqualTo "") exitWith {}; // key can be many types
|
||||
|
||||
// hashValue supports more types than hashmaps do by default, but not all (e.g. locations)
|
||||
private _hashedKey = hashValue _key;
|
||||
|
||||
if (isNil "_hashedKey") exitWith {
|
||||
ERROR_2("Unsupported key type used: %1 - %2",_key,typeName _key);
|
||||
};
|
||||
|
||||
// If a position is passed, create a static object at said position
|
||||
private _sourcePos = if (_isObject) then {
|
||||
getPosATL _source
|
||||
@ -72,13 +78,6 @@
|
||||
_fireLogic attachTo [_source];
|
||||
};
|
||||
|
||||
// hashValue supports more types than hashmaps do by default, but not all (e.g. locations)
|
||||
private _hashedKey = hashValue _key;
|
||||
|
||||
if (isNil "_hashedKey") exitWith {
|
||||
ERROR_2("Unsupported key type used: %1 - %2",_key,typeName _key);
|
||||
};
|
||||
|
||||
// To avoid issues, remove existing entries first before overwriting
|
||||
if (_hashedKey in GVAR(fireSources)) then {
|
||||
[QGVAR(removeFireSource), _key] call CBA_fnc_localEvent;
|
||||
|
@ -5,8 +5,8 @@
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Unit <OBJECT>
|
||||
* 1: Intensity of fire <NUMBER>
|
||||
* 2: Instigator of fire <OBJECT> (default: objNull)
|
||||
* 1: Fire intensity <NUMBER>
|
||||
* 2: Fire instigator <OBJECT> (default: objNull)
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
@ -24,31 +24,51 @@ if (!EGVAR(common,settingsInitFinished)) exitWith {
|
||||
if (!GVAR(enabled)) exitWith {};
|
||||
|
||||
params ["_unit", "_intensity", ["_instigator", objNull]];
|
||||
TRACE_3("burn",_unit,_intensity,_instigator);
|
||||
|
||||
if (BURN_MIN_INTENSITY > _intensity) exitWith {};
|
||||
if (BURN_MIN_INTENSITY > _intensity) exitWith {
|
||||
TRACE_3("intensity is too low",_unit,_intensity,BURN_MIN_INTENSITY);
|
||||
};
|
||||
|
||||
// Check if unit is remote (objNull is remote)
|
||||
if (!local _unit) exitWith {};
|
||||
if (!local _unit) exitWith {
|
||||
TRACE_1("unit is null or not local",_unit);
|
||||
};
|
||||
|
||||
// Check if the unit can burn (takes care of spectators and curators)
|
||||
if (getNumber (configOf _unit >> "isPlayableLogic") == 1 || {!(_unit isKindOf "CAManBase")}) exitWith {};
|
||||
if (getNumber (configOf _unit >> "isPlayableLogic") == 1 || {!(_unit isKindOf "CAManBase")}) exitWith {
|
||||
TRACE_1("unit is virtual or not a man",_unit);
|
||||
};
|
||||
|
||||
// If unit is invulnerable, don't burn the unit
|
||||
if !(isDamageAllowed _unit && {_unit getVariable [QEGVAR(medical,allowDamage), true]}) exitWith {};
|
||||
if !(isDamageAllowed _unit && {_unit getVariable [QEGVAR(medical,allowDamage), true]}) exitWith {
|
||||
TRACE_1("unit is invulnerable",_unit);
|
||||
};
|
||||
|
||||
private _eyePos = eyePos _unit;
|
||||
|
||||
// Check if unit is mostly submerged in water
|
||||
if (surfaceIsWater _eyePos && {(_eyePos select 2) < 0.1}) exitWith {};
|
||||
if (surfaceIsWater _eyePos && {(_eyePos select 2) < 0.1}) exitWith {
|
||||
TRACE_1("unit is in water",_unit);
|
||||
};
|
||||
|
||||
// If unit is already burning, update intensity, but don't add another PFH
|
||||
if (_unit call FUNC(isBurning)) exitWith {
|
||||
// Only allow intensity to be increased
|
||||
if (_intensity <= (_unit getVariable [QGVAR(intensity), 0])) exitWith {
|
||||
TRACE_2("unit already burning, no intensity update",_unit,_intensity);
|
||||
};
|
||||
|
||||
TRACE_2("unit already burning, updating intensity",_unit,_intensity);
|
||||
|
||||
_unit setVariable [QGVAR(intensity), _intensity, true];
|
||||
};
|
||||
|
||||
TRACE_2("setting unit ablaze",_unit,_intensity);
|
||||
|
||||
_unit setVariable [QGVAR(intensity), _intensity, true];
|
||||
|
||||
// Fire simulation (objects are handled differently)
|
||||
// Fire simulation (fire sources are handled differently)
|
||||
[QGVAR(burnSimulation), [_unit, _instigator], _unit] call CBA_fnc_targetEvent;
|
||||
|
||||
// Spawn effects for unit
|
||||
|
@ -76,7 +76,7 @@ if (isServer) then {
|
||||
};
|
||||
|
||||
// Display burn indicators
|
||||
if (_unit == ACE_player && {alive _unit} && {isNil {_unit getVariable QGVAR(burnUIPFH)}}) then { // this accounts for player remote controlled a new unit
|
||||
if (_unit == ACE_player && {alive _unit} && {isNil {_unit getVariable QGVAR(burnUIPFH)}}) then { // This accounts for player remote controlled a new unit
|
||||
private _burnIndicatorPFH = [LINKFUNC(burnIndicator), 1, _unit] call CBA_fnc_addPerFrameHandler;
|
||||
_unit setVariable [QGVAR(burnUIPFH), _burnIndicatorPFH];
|
||||
};
|
||||
@ -120,7 +120,7 @@ if (isServer) then {
|
||||
_fireParticle setParticleRandom [
|
||||
0.04 * _intensity, // life time
|
||||
[0.05, 0.05, 2], // position
|
||||
[0.05 * _intensity, 0.05 * _intensity, 0.05 * _intensity], // move velocity
|
||||
[0.05, 0.05, 0.05] vectorMultiply _intensity, // move velocity
|
||||
0, // rotation velocity
|
||||
0.06 * _intensity, // size
|
||||
[0, 0, 0, 0], // color
|
||||
|
@ -24,11 +24,15 @@ params ["_unit", "_instigator"];
|
||||
_args params ["_unit", "_instigator"];
|
||||
|
||||
if (isNull _unit) exitWith {
|
||||
TRACE_1("unit is null",_unit);
|
||||
|
||||
_pfhID call CBA_fnc_removePerFrameHandler;
|
||||
};
|
||||
|
||||
// Locality has changed
|
||||
if (!local _unit) exitWith {
|
||||
TRACE_1("unit is no longer local",_unit);
|
||||
|
||||
_pfhID call CBA_fnc_removePerFrameHandler;
|
||||
|
||||
[QGVAR(burnSimulation), [_unit, _instigator], _unit] call CBA_fnc_targetEvent;
|
||||
@ -40,6 +44,8 @@ params ["_unit", "_instigator"];
|
||||
{!(isDamageAllowed _unit && {_unit getVariable [QEGVAR(medical,allowDamage), true]})} ||
|
||||
{private _eyePos = eyePos _unit; surfaceIsWater _eyePos && {(_eyePos select 2) < 0.1}}
|
||||
) exitWith {
|
||||
TRACE_3("unit is no longer burning, invulnerable or in water",_unit,_unit call FUNC(isBurning),isDamageAllowed _unit && {_unit getVariable [ARR_2(QEGVAR(medical,allowDamage),true)]});
|
||||
|
||||
// Remove global effects
|
||||
(_unit getVariable [QGVAR(jipID), ""]) call CBA_fnc_removeGlobalEventJIP;
|
||||
|
||||
@ -61,6 +67,8 @@ params ["_unit", "_instigator"];
|
||||
|
||||
// Propagate fire to other units (alive or dead) if it's intense
|
||||
if (_intensity >= BURN_THRESHOLD_INTENSE) then {
|
||||
TRACE_2("check for other units",_unit,_intensity);
|
||||
|
||||
private _adjustedIntensity = 0;
|
||||
|
||||
{
|
||||
@ -73,11 +81,15 @@ params ["_unit", "_instigator"];
|
||||
};
|
||||
|
||||
[QGVAR(burn), [_x, _adjustedIntensity, _instigator], _x] call CBA_fnc_targetEvent;
|
||||
|
||||
TRACE_3("propagate fire",_x,_intensity,_adjustedIntensity);
|
||||
} forEach nearestObjects [_unit, ["CAManBase"], BURN_PROPAGATE_DISTANCE];
|
||||
};
|
||||
|
||||
// Update intensity/fire reactions
|
||||
if (CBA_missionTime >= _unit getVariable [QGVAR(intensityUpdate), 0]) then {
|
||||
TRACE_2("update intensity",_unit,_intensity);
|
||||
|
||||
_unit setVariable [QGVAR(intensityUpdate), CBA_missionTime + INTENSITY_UPDATE];
|
||||
|
||||
_intensity = _intensity - INTENSITY_LOSS - (rain / 10);
|
||||
@ -152,6 +164,6 @@ params ["_unit", "_instigator"];
|
||||
// Use event directly, as ace_medical_fnc_addDamageToUnit requires unit to be alive
|
||||
[QEGVAR(medical,woundReceived), [_unit, [[_damageToAdd, _bodyPart, _damageToAdd]], _instigator, "burn"]] call CBA_fnc_localEvent;
|
||||
|
||||
_unit setVariable [QGVAR(intensity), _intensity, true]; // globally sync intensity across all clients to make sure simulation is deterministic
|
||||
_unit setVariable [QGVAR(intensity), _intensity, true]; // Globally sync intensity across all clients to make sure simulation is deterministic
|
||||
};
|
||||
}, BURN_PROPAGATE_UPDATE, [_unit, _instigator]] call CBA_fnc_addPerFrameHandler;
|
||||
|
@ -20,14 +20,17 @@ private _adjustedIntensity = 0;
|
||||
|
||||
{
|
||||
_y params ["_fireLogic", "_radius", "_intensity", "_condition", "_conditionArgs"];
|
||||
TRACE_2("fireManagerPFH loop",_x,_y);
|
||||
|
||||
// Remove when condition is no longer valid
|
||||
if !(_conditionArgs call _condition) then {
|
||||
(GVAR(fireSources) deleteAt _x) params [["_fireLogic", objNull]];
|
||||
TRACE_2("condition no longer valid, deleting",_x,_y);
|
||||
|
||||
detach _fireLogic;
|
||||
deleteVehicle _fireLogic;
|
||||
|
||||
GVAR(fireSources) deleteAt _x;
|
||||
|
||||
continue;
|
||||
};
|
||||
|
||||
@ -42,5 +45,7 @@ private _adjustedIntensity = 0;
|
||||
};
|
||||
|
||||
[QGVAR(burn), [_x, _adjustedIntensity], _x] call CBA_fnc_targetEvent;
|
||||
|
||||
TRACE_3("propagate fire",_x,_intensity,_adjustedIntensity);
|
||||
} forEach nearestObjects [_fireLogic, ["CAManBase"], _radius];
|
||||
} forEach GVAR(fireSources);
|
||||
|
@ -27,7 +27,9 @@ _intensity = _intensity * INTENSITY_DECREASE_MULT_PAT_DOWN;
|
||||
_patient setVariable [QGVAR(intensity), _intensity, true];
|
||||
|
||||
// If the unit is still burning, loop the medical action
|
||||
if !(_patient call FUNC(isBurning)) exitWith {};
|
||||
if !(_patient call FUNC(isBurning)) exitWith {
|
||||
TRACE_1("patient no longer burning, quitting",_this);
|
||||
};
|
||||
|
||||
TRACE_1("patient still burning, looping",_this);
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
true,
|
||||
1,
|
||||
{[QGVAR(fireEnabled), _this] call EFUNC(common,cbaSettings_settingChanged)},
|
||||
true // needs mission restart
|
||||
true // Needs mission restart
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
@ -15,8 +15,7 @@
|
||||
[LSTRING(Setting_FlareEnable), LSTRING(Setting_FlareDescription)],
|
||||
LSTRING(Category_DisplayName),
|
||||
false,
|
||||
1,
|
||||
{[QGVAR(flareEnabled), _this] call EFUNC(common,cbaSettings_settingChanged)}
|
||||
1
|
||||
] call CBA_fnc_addSetting;
|
||||
|
||||
[
|
||||
|
@ -145,7 +145,7 @@
|
||||
<Italian>Mostra aggiornamenti di budget</Italian>
|
||||
<Chinese>顯示預算更新</Chinese>
|
||||
<Chinesesimp>显示预算更新</Chinesesimp>
|
||||
<Japanese>予算の更新を表示</Japanese>
|
||||
<Japanese>予算更新を表示</Japanese>
|
||||
<Polish>Pokaż aktualizacje budżetu</Polish>
|
||||
<Russian>Показывать обновления бюджета</Russian>
|
||||
<Turkish>Bütçe güncellenmelerini göster</Turkish>
|
||||
@ -160,7 +160,7 @@
|
||||
<Chinese>決定預算變更時是否會顯示提示</Chinese>
|
||||
<Chinesesimp>决定预算变更时是否会显示提示</Chinesesimp>
|
||||
<Italian>Controlla se vengono mostrati avvisi di aggiornamento del budget</Italian>
|
||||
<Japanese>予算が更新されヒント表示時の操作を決定します</Japanese>
|
||||
<Japanese>予算更新のヒントが表示される場面を制御します</Japanese>
|
||||
<Polish>Kontroluje kiedy aktualizacje budżetu są wyświetlane</Polish>
|
||||
<Russian>Настраивает сообщения об обновлении бюджета</Russian>
|
||||
<Turkish>Bütçe güncellenince bilgi verilip verilmeyeceğini kontrol eder.</Turkish>
|
||||
@ -190,7 +190,7 @@
|
||||
<Italian>Ha l'attrezzo di fortificazione</Italian>
|
||||
<Chinese>有要塞工具</Chinese>
|
||||
<Chinesesimp>有设防工具</Chinesesimp>
|
||||
<Japanese>要塞ツール所持の時</Japanese>
|
||||
<Japanese>要塞ツール所持時</Japanese>
|
||||
<Polish>Posiada narzędzie do fortyfikowania</Polish>
|
||||
<Russian>Если имеется инструмент</Russian>
|
||||
<Turkish>Insa Etme Aleti Olanlara Göster</Turkish>
|
||||
@ -233,7 +233,7 @@
|
||||
<Korean>건축물을 지을 때 걸리는 시간을 계수를 적용하여 계산합니다.</Korean>
|
||||
<German>Koeffizient zur Bestimmung der Bauzeit \nA in Ax + b, wobei x die Kosten des Objekts sind.</German>
|
||||
<Italian>Il coefficiente 'C' che determina il tempo di costruzione.\nTempo Totale = Costo * C + Tempo Minimo</Italian>
|
||||
<Japanese>建造する時間を決定するために使用される係数。\n計算式はAx + bです。この係数はAであり、xは建造物のコストです。</Japanese>
|
||||
<Japanese>建造する時間を定義するために使用される係数。\n計算式はAx + bです。この係数はAであり、xは建造物のコストです。</Japanese>
|
||||
<Polish>Współczynnik używany do określenia czasu budowy konstrukcji.\nA w Ax + b gdzie x jest kosztem obiektu</Polish>
|
||||
<Russian>Коэффициент используемый для указания времени необходимого для возведения постройки.\nA в формуле Ax + b, где x - это цена объекта</Russian>
|
||||
<Spanish>Coeficiente usado para determinar el tiempo de construcción de una estructura.\nA en Ax + b donde x es el coste del objeto</Spanish>
|
||||
|
@ -105,7 +105,7 @@
|
||||
<French>Active la simulation de la réflexion des explosions ACE.</French>
|
||||
<Portuguese>Ativa a simulação de reflexo de explosão do ACE</Portuguese>
|
||||
<Russian>Включить симуляцию отражения взрывов ACE</Russian>
|
||||
<Japanese>ACE爆発反射シミュレーションを有効化</Japanese>
|
||||
<Japanese>ACE 爆発反射シミュレーションを有効化</Japanese>
|
||||
<Korean>ACE 폭발 반사 시뮬레이션을 적용합니다.</Korean>
|
||||
<Chinesesimp>启用 ACE 模拟爆炸反射</Chinesesimp>
|
||||
<Chinese>啟用ACE模擬爆炸反射</Chinese>
|
||||
@ -138,7 +138,7 @@
|
||||
<Hungarian>Ez a beállítás szabályozza a repeszeződés és pattogzás által kilőtt objektumok követett számát. Ha több ez a szám, ezek az objektumok nem lesznek követve. Csökkentsd ezt a beállítást, ha nem akarsz lassulásokat magas-törmelékmennyiségű helyzetekben (200+ repesz a levegőben egyszerre)</Hungarian>
|
||||
<Russian>Эта настройка контролирует максимальное количество снарядов, которок отслеживает система осколков и обломков в каждый момент времени. /nСнаряды, выстреленные сверх этого числа, отслеживаться не будут. Уменьшите это значение, если вы не хотите падения FPS при большом количестве снарядов в одной перестрелке (> 200 одновременно летящих снарядов)</Russian>
|
||||
<Italian>Questo parametro controlla il numero massimo di proiettili che la frammentazione e il sistema di spalling tracciano in ogni momento. Se vengono sparati ulteriori proiettili, non verranno tracciati. Abbassa questo parametro se non vuoi cali di FPS in scenari con molti proiettili (>200 proiettili in aria contemporaneamente)</Italian>
|
||||
<Japanese>この設定では、断片化および剥離システムが常に追跡する飛翔体の最大量を制御します。 さらに多くの飛翔体が発射された場合、それらは追跡されません。 弾数が多いシナリオでFPSを低下させたくない場合は、この設定を下げてください。 (一度に200発以上が空中に発射されます)</Japanese>
|
||||
<Japanese>この設定では、断片化および剥離システムが常に追跡する飛翔体の最大量を制御します。 この値より多くの飛翔体が発射された場合、それらは追跡されません。 弾数が多いシナリオでFPSを低下させたくない場合は、この設定を下げてください。 (一度に200発以上が空中に発射されます)</Japanese>
|
||||
<Korean>이 설정은 탄환파편 및 파편 시스템으로 인해 생긴 발사체의 수를 결정합니다. 만약 더 많은 발사체가 나올 경우 정해진 수 이외에는 추적하지 않습니다. 이 설정을 낮춤으로써 파편이 많은 시나리오를 실행할때 더욱 원활히 진행할 수 있습니다 (한 번에 200개 이하)</Korean>
|
||||
<Chinesesimp>设定在指定时间内,系统最大可追踪的破片粒子数量。如有更多的碎片在这之后产生,这些粒子将不会被追踪。如果你想要维持好的帧数,此设定勿调的过高。( >一次200颗粒子)</Chinesesimp>
|
||||
<Chinese>設定在指定時間內,系統最大可追蹤的碎片/剝落粒子數量。如有更多的碎片在這之後產生,這些粒子將不會被追蹤。如果你想要維持好的幀數,此設定勿調的過高。( >一次200顆粒子)</Chinese>
|
||||
@ -170,7 +170,7 @@
|
||||
<Hungarian>A lepattogzási útvonalak számításának darabjai képkockánként. Ez eloszlatja az FPS-megszakadást több képkockára, ezzel csökkentve a súlyosságát.</Hungarian>
|
||||
<Russian>Число обрабатываемых осколков за кадр. Это позволяет распределить нагрузку по отслеживанию осколков между несколькими кадрами, чтобы предотвратить падение FPS.</Russian>
|
||||
<Italian>Il numero di calcoli per tracciamento di spalling ad ogni frame. Questo aiuta a distribuire l'impatto del tracciamento dello spalling su più frame, riducendolo ulteriormente.</Italian>
|
||||
<Japanese>与えられたフレームごとに追跡する剥離飛翔体の数を決定します。FPS に影響をあたえないよう、剥離飛翔体を複数のフレームで追跡し、分散させています。</Japanese>
|
||||
<Japanese>任意のフレームごとに追跡される剥離飛翔体の数。剥離による飛翔体を追跡することによるFPSへの影響を複数フレームに分散させ抑えることが出来ます。</Japanese>
|
||||
<Korean>가능한 프레임마다 파편을 추적 및 계산합니다. 여러 프레임에 걸쳐 파편난 발사체를 추적하여 FPS에 도움을 줍니다. 이를 제한함으로써 더욱 큰 효과를 볼 수 있습니다.</Korean>
|
||||
<Chinesesimp>设定在每一帧数内,系统最大可追踪的破片粒子数量。此设定可有效帮助系统减低计算压力。</Chinesesimp>
|
||||
<Chinese>設定在每一幀數內,系統最大可追蹤的碎片/剝落粒子數量。此設定可有效幫助系統減低計算壓力</Chinese>
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user