Merge remote-tracking branch 'origin/master' into medical-rewrite

This commit is contained in:
commy2 2016-09-19 18:23:26 +02:00
commit 729ba9178b
64 changed files with 849 additions and 94 deletions

View File

@ -22,6 +22,7 @@ _initStartTime = CBA_missionTime;
_mapSize = getNumber (configFile >> "CfgWorlds" >> worldName >> "MapSize");
if (("ace_advanced_ballistics" callExtension format["init:%1:%2", worldName, _mapSize]) == "Terrain already initialized") exitWith {
ACE_LOGINFO_1("Terrain already initialized [world: %1]", worldName);
#ifdef DEBUG_MODE_FULL
systemChat "AdvancedBallistics: Terrain already initialized";
#endif
@ -32,11 +33,14 @@ _gridCells = _mapGrids * _mapGrids;
GVAR(currentGrid) = 0;
ACE_LOGINFO_2("Starting Terrain Extension [cells: %1] [world: %2]", _gridCells, worldName);
[{
params ["_args","_idPFH"];
_args params ["_mapGrids", "_gridCells", "_initStartTime"];
if (GVAR(currentGrid) >= _gridCells) exitWith {
ACE_LOGINFO_2("Finished terrain initialization in %1 seconds [world: %2]", ceil(CBA_missionTime - _initStartTime), worldName);
#ifdef DEBUG_MODE_FULL
systemChat format["AdvancedBallistics: Finished terrain initialization in %1 seconds", ceil(CBA_missionTime - _initStartTime)];
#endif

View File

@ -18,22 +18,24 @@ if (!hasInterface) exitWith {};
["unit", FUNC(handlePlayerChanged)] call CBA_fnc_addPlayerEventHandler;
// - Duty factors -------------------------------------------------------------
[QEGVAR(medical,pain), {
1 + (((_this getVariable [QEGVAR(medical,pain), 0]) min 1) / 10)
}] call FUNC(addDutyFactor);
[QEGVAR(medical,bloodVolume), {
2 - (((_this getVariable [QEGVAR(medical,bloodVolume), 100]) min 100) / 100)
}] call FUNC(addDutyFactor);
[QEGVAR(dragging,isCarrying), {
if (_this getVariable [QEGVAR(dragging,isCarrying), false]) then {
3
} else {
1
};
}] call FUNC(addDutyFactor);
[QEGVAR(weather,temperature), {
(((missionNamespace getVariable [QEGVAR(weather,currentTemperature), 25]) - 35) / 10) max 2 min 1
}] call FUNC(addDutyFactor);
if (["ACE_Medical"] call EFUNC(common,isModLoaded)) then {
[QEGVAR(medical,pain), { // 0->1.0, 0.5->1.05, 1->1.1
linearConversion [0, 1, (_this getVariable [QEGVAR(medical,pain), 0]), 1, 1.1, true];
}] call FUNC(addDutyFactor);
[QEGVAR(medical,bloodVolume), { // 100->1.0, 90->1.1, 80->1.2
linearConversion [100, 0, (_this getVariable [QEGVAR(medical,bloodVolume), 100]), 1, 2, true];
}] call FUNC(addDutyFactor);
};
if (["ACE_Dragging"] call EFUNC(common,isModLoaded)) then {
[QEGVAR(dragging,isCarrying), {
[1, 3] select (_this getVariable [QEGVAR(dragging,isCarrying), false]);
}] call FUNC(addDutyFactor);
};
if (["ACE_Weather"] call EFUNC(common,isModLoaded)) then {
[QEGVAR(weather,temperature), { // 35->1, 45->2
linearConversion [35, 45, (missionNamespace getVariable [QEGVAR(weather,currentTemperature), 25]), 1, 2, true];
}] call FUNC(addDutyFactor);
};
// - Add main PFH -------------------------------------------------------------
[FUNC(pfhMain), 1, []] call CBA_fnc_addPerFrameHandler;

View File

@ -1,57 +1,70 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<Project name="ACE">
<Package name="Advanced_Fatigue">
<Key ID="STR_ACE_Advanced_Fatigue_PerformanceFactor">
<English>Performance Factor</English>
<German>Leistungsfaktor</German>
<Polish>Współczynnik wydolności</Polish>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_PerformanceFactor_Description">
<English>Influences the overall performance of all players with no custom factor. Higher means better.</English>
<German>Beinflusst die Leistungsfähigkeit aller Spieler ohne eigenen Leistungsfaktor. Ein höherer Wert bedeutet bessere Leistung.</German>
<Polish>Wpływa na ogólną wydolność organizmu u wszystkich graczy bez ustawionego niestandardowego współczynnika. Więcej znaczy lepiej.</Polish>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_PerformanceFactor_EdenDescription">
<English>Influences the overall performance of this unit. Higher means better.</English>
<German>Beinflusst die Leistungsfähigkeit dieser Einheit. Ein höherer Wert bedeutet bessere Leistung.</German>
<Polish>Wpływa na ogólną wydolność tej jednostki. Więcej znaczy lepiej.</Polish>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_RecoveryFactor">
<English>Recovery Factor</English>
<German>Erholungsfaktor</German>
<Polish>Współczynnik regeneracji</Polish>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_RecoveryFactor_Description">
<English>Changes how fast the player recovers when resting. Higher is faster.</English>
<German>Ändert, wie schnell ein Spieler Ausdauer regeneriert. Ein höherer Wert bedeutet eine schnellere Regeneration.</German>
<Polish>Wpływa na czas regeneracji podczas postoju. Więcej znaczy szybciej.</Polish>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_LoadFactor">
<English>Load Factor</English>
<German>Gewichtsfaktor</German>
<Polish>Współczynnik masy ekwipunku</Polish>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_LoadFactor_Description">
<English>Increases or decreases how much weight influences the players performance. Zero means equipment weight has no performance influence.</English>
<German>Erhöht oder verringert, wie viel Einfluss das Ausrüstungsgewicht auf die Leistung hat. Null heißt, dass es keinen Einfluss hat.</German>
<Polish>Zmniejsza lub zwiększa wpływ ciężaru ekwipunku na wydolność gracza. Zero oznacza kompletny brak wpływu na wydolność.</Polish>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_TerrainGradientFactor">
<English>Terrain Gradient Factor</English>
<German>Terrainsteigungsfaktor</German>
<Polish>Współczynnik terenu</Polish>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_TerrainGradientFactor_Description">
<English>Sets how much steep terrain increases stamina loss. Higher means higher stamina loss.</English>
<German>Beeinflusst, wie stark Steigungen den Ausdauerverbrauch erhöhen. Ein höherer Wert erhöht den Ausdauerverbrauch.</German>
<Polish>Wpływa na to w jakim stopniu stromy teren wpływa na utratę wytrzymałości. Więcej oznacza szybszą utratę wytrzymałości.</Polish>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_Enabled">
<English>Enabled</English>
<German>Aktiv</German>
<Polish>Włączone</Polish>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_Enabled_Description">
<English>Enables/disables Advanced Fatigue.</English>
<German>Aktiviert/deaktiviert Advanced Fatigue.</German>
<Polish>Włącza/wyłącza zaawansowaną wytrzymałość</Polish>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_EnableStaminaBar">
<English>Show stamina bar</English>
<German>Zeige Ausdauerleiste</German>
<Polish>Pokaż pasek wytrzymałości</Polish>
</Key>
<Key ID="STR_ACE_Advanced_Fatigue_EnableStaminaBar_Description">
<English>Shows the stamina bar.</English>
<German>Zeigt die Ausdauerleiste an.</German>
<Polish>Pokazuje pasek wytrzymałości.</Polish>
</Key>
</Package>
</Project>
</Project>

View File

@ -4,86 +4,107 @@
<Key ID="STR_ACE_Advanced_Throwing_Category">
<English>Advanced Throwing</English>
<Russian>Улучшенный бросок гранат</Russian>
<Polish>Zaawansowane rzucanie</Polish>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_Module_Description">
<English>Allows changing advanced throwing behaviour.</English>
<Russian>Позволяет настраивать поведение улучшенного броска гранат.</Russian>
<Polish>Zezwala na zmianę zachowania zaawansowanego trybu rzucania.</Polish>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_Enable_DisplayName">
<English>Enable Advanced Throwing</English>
<Russian>Включить улучшенный бросок</Russian>
<Polish>Aktywuj zaawansowane rzucanie</Polish>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_Enable_Description">
<English>Enables advanced throwing system.</English>
<Russian>Включает систему улучшенного броска.</Russian>
<Polish>Aktywuje system zaawansowanego rzucania.</Polish>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_ShowThrowArc_DisplayName">
<English>Show Throw Arc</English>
<Russian>Показать траекторию броска</Russian>
<Polish>Pokaż trasę lotu</Polish>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_ShowThrowArc_Description">
<English>Enables visualization of the throw arc (where throwable will fly).</English>
<Russian>Включает визуализацию траектории броска (как полетит граната).</Russian>
<Polish>Wyświetla wizualizację trasy przelotu granatu.</Polish>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_ShowMouseControls_DisplayName">
<English>Show Throwing Mouse Controls</English>
<Russian>Показывать управление мышью</Russian>
<Polish>Pokaż podpowiedzi sterowania myszą</Polish>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_ShowMouseControls_Description">
<English>Enables visual cues for mouse controls when throwable is prepared.</English>
<Russian>Включает отображение подсказок по управлению мышью, когда граната подготовлена.</Russian>
<Polish>Wyświetla podpowiedzi sterowania myszą kiedy obiekt miotany jest w ręku.</Polish>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_EnablePickUp_DisplayName">
<English>Enable Throwables Pick Up</English>
<Russian>Включить подбор гранат</Russian>
<Polish>Zezwól na podnoszenie obiektów miotanych</Polish>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_EnablePickUp_Description">
<English>Enables ability to pick up throwables from the ground.</English>
<Russian>Включает возможность подбирать гранаты с земли.</Russian>
<Polish>Umożliwia podnoszenie obiektów miotanych z ziemi.</Polish>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_EnablePickUpAttached_DisplayName">
<English>Enable Attached Throwables Pick Up</English>
<Russian>Включить подбор прикрепленных гранат</Russian>
<Polish>Zezwól na podnoszenie przyczepionych obiektów miotanych</Polish>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_EnablePickUpAttached_Description">
<English>Enables ability to pick up throwables from attached objects.</English>
<Russian>Включает возможность подбирать гранаты, прикрепленные к объектам.</Russian>
<Polish>Umożliwia podnoszenie obiektów miotanych przyczepionych do innych obiektów.</Polish>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_Prepare">
<English>Prepare/Change Throwable</English>
<Russian>Подготовить/заменить гранату</Russian>
<Polish>Przygotuj/zmień ob. miotany</Polish>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_dropModeHold">
<English>Throwable Drop Mode (Hold)</English>
<Russian>Режим броска гранаты (удерживать)</Russian>
<Polish>Tryb upuszczania ob. miotanego (przytrzymaj)</Polish>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_DropModeToggle">
<English>Throwable Drop Mode (Toggle)</English>
<Russian>Режим броска гранаты (переключить)</Russian>
<Polish>Tryb upuszczania ob. miotanego (przełącz)</Polish>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_Primed">
<English>Primed</English>
<Russian>Подготовлена</Russian>
<Polish>Odbezpieczony</Polish>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_Throw">
<English>Throw</English>
<Russian>Бросить</Russian>
<Polish>Rzuć</Polish>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_ChangeMode">
<English>(Scroll) Change Mode</English>
<Russian>(Скролл) Изменить режим</Russian>
<Polish>(Kółko m.) zmień tryb</Polish>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_Extend">
<English>(Scroll) Extend</English>
<Russian>(Скролл) Увеличить</Russian>
<Polish>(Kółko m.) przedłuż</Polish>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_Cook">
<English>(Click) Cook</English>
<Russian>(Клик) Подготовить</Russian>
<Polish>(Kliknięcie) Odbezpiecz</Polish>
</Key>
<Key ID="STR_ACE_Advanced_Throwing_PickUp">
<English>Pick Up</English>
<Russian>Подобрать</Russian>
<Polish>Podnieś</Polish>
</Key>
</Package>
</Project>
</Project>

View File

@ -204,10 +204,12 @@
<Key ID="STR_ACE_Cargo_paradropButton">
<English>Airdrop</English>
<German>Türlast</German>
<Polish>Zrzut zaopatrzenia</Polish>
</Key>
<Key ID="STR_ACE_Cargo_unlevelFlightWarning">
<English>Unlevel Flight</English>
<German>Schieflage</German>
<Polish>Nierówny lot</Polish>
</Key>
</Package>
</Project>

View File

@ -3,15 +3,16 @@
<Package name="Chemlights">
<Key ID="STR_ACE_Chemlights_Action_Chemlights">
<English>Chemlights</English>
<Polish>Świetliki</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_Action_Prepare">
<English>Prepare %1</English>
</Key>
<Polish>Przygotuj %1</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_Action_Prepare_Done">
<English>%1&lt;br/&gt;Prepared</English>
<Polish>%1&lt;br/&gt;Przygotowany</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_Inventory_Full">
<English>No inventory space</English>
<German>Kein Platz im Inventar</German>
@ -24,128 +25,149 @@
<Hungarian>Nincs több hely</Hungarian>
<Russian>В инвентаре нет места</Russian>
</Key>
<Key ID="STR_ACE_Chemlights_Box_DisplayName">
<English>[ACE] Chemlights</English>
<Polish>[ACE] Świetliki</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_Orange_DisplayName">
<English>Chemlight (Orange)</English>
<Polish>Świetlik (pomarańczowy)</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_Orange_DisplayNameShort">
<English>Orange Light</English>
<Polish>Pomarańczowe światło</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_Orange_DescriptionShort">
<English>Type: Light - Orange&lt;br /&gt;Rounds: 1&lt;br /&gt;Used in: Hand</English>
<Polish>Typ: Światło - pomarańczowe&lt;br/&gt;Pociski: 1&lt;br/&gt;Używany w: ręce</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_White_DisplayName">
<English>Chemlight (White)</English>
<Polish>Świetlik (biały)</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_White_DisplayNameShort">
<English>White Light</English>
<Polish>Białe światło</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_White_DescriptionShort">
<English>Type: Light - White&lt;br /&gt;Rounds: 1&lt;br /&gt;Used in: Hand</English>
<Polish>Typ: Światło - białe&lt;br/&gt;Pociski: 1&lt;br/&gt;Używany w: ręce</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_HiRed_DisplayName">
<English>Chemlight (Hi Red)</English>
<Polish>Świetlik (jaskrawy czerwony)</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_HiRed_DisplayNameShort">
<English>Red Hi Light</English>
<Polish>Jaskrawe czerwone światło</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_HiRed_DescriptionShort">
<English>Type: Light - Red Hi (5 minute)&lt;br /&gt;Rounds: 1&lt;br /&gt;Used in: Hand</English>
<Polish>Typ: Światło - jaskrawe czerwone (5 minut)&lt;br/&gt;Pociski: 1&lt;br/&gt;Używany w: ręce</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_HiYellow_DisplayName">
<English>Chemlight (Hi Yellow)</English>
<Polish>Świetlik (jaskrawy żółty)</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_HiYellow_DisplayNameShort">
<English>Yellow Hi Light</English>
<Polish>Jaskrawe żółte światło</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_HiYellow_DescriptionShort">
<English>Type: Light - Yellow Hi (5 minute)&lt;br /&gt;Rounds: 1&lt;br /&gt;Used in: Hand</English>
<Polish>Typ: Światło - jaskrawe żółte (5 minut)&lt;br/&gt;Pociski: 1&lt;br/&gt;Używany w: ręce</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_HiOrange_DisplayName">
<English>Chemlight (Hi Orange)</English>
<Polish>Świetlik (jaskrawy pomarańczowy)</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_HiOrange_DisplayNameShort">
<English>Orange Hi Light</English>
<Polish>Jaskrawe pomarańczowe światło</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_HiOrange_DescriptionShort">
<English>Type: Light - Orange Hi (5 minute)&lt;br /&gt;Rounds: 1&lt;br /&gt;Used in: Hand</English>
<Polish>Typ: Światło - jaskrawe pomarańczowe (5 minut)&lt;br/&gt;Pociski: 1&lt;br/&gt;Używany w: ręce</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_HiWhite_DisplayName">
<English>Chemlight (Hi White)</English>
<Polish>Świetlik (jaskrawy biały)</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_HiWhite_DisplayNameShort">
<English>White Hi Light</English>
<Polish>Jaskrawe białe światło</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_HiWhite_DescriptionShort">
<English>Type: Light - White Hi (5 minute)&lt;br /&gt;Rounds: 1&lt;br /&gt;Used in: Hand</English>
<Polish>Typ: Światło - jaskrawe białe (5 minut)&lt;br/&gt;Pociski: 1&lt;br/&gt;Używany w: ręce</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_IR_DisplayName">
<English>Chemlight (IR)</English>
<Polish>Świetlik (podczerwony)</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_IR_DisplayNameShort">
<English>IR Light</English>
<Polish>Światło podczerwone</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_IR_DescriptionShort">
<English>Type: Light - Infrared&lt;br /&gt;Rounds: 1&lt;br /&gt;Used in: Hand</English>
<Polish>Typ: Światło - podczerwone&lt;br/&gt;Pociski: 1&lt;br/&gt;Używany w: ręce</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_Empty_DisplayName">
<English>Chemlight Shield (Empty)</English>
<Polish>Osłona na świetlik (pusta)</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_Empty_DescriptionShort">
<English>Shield for chemlights. Combine with chemlight to prepare reading light.</English>
<Polish>Osłona na świetliki. Połącz ją ze świetlikiem by stworzyć lampkę do czytania.</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_Green_DisplayName">
<English>Chemlight Shield (Green)</English>
<Polish>Osłona na świetlik (zielona)</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_Green_DescriptionShort">
<English>Green reading light.</English>
<Polish>Zielona lampka.</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_Red_DisplayName">
<English>Chemlight Shield (Red)</English>
<Polish>Osłona na świetlik (czerwona)</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_Red_DescriptionShort">
<English>Red reading light.</English>
<Polish>Czerwona lampka.</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_Blue_DisplayName">
<English>Chemlight Shield (Blue)</English>
<Polish>Osłona na świetlik (niebieska)</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_Blue_DescriptionShort">
<English>Blue reading light.</English>
<Polish>Niebieska lampka.</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_Yellow_DisplayName">
<Key ID="STR_ACE_Chemlights_Shield_Yellow_DisplayName">
<English>Chemlight Shield (Yellow)</English>
<Polish>Osłona na świetlik (żółta)</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_Yellow_DescriptionShort">
<English>Yellow reading light.</English>
<Polish>Żółta lampka.</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_Orange_DisplayName">
<English>Chemlight Shield (Orange)</English>
<Polish>Osłona na świetlik (pomarańczowa)</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_Orange_DescriptionShort">
<English>Orange reading light.</English>
<Polish>Pomarańczowa lampka.</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_White_DisplayName">
<English>Chemlight Shield (White)</English>
<Polish>Osłona na świetlik (biała)</Polish>
</Key>
<Key ID="STR_ACE_Chemlights_Shield_White_DescriptionShort">
<English>White reading light.</English>
<Polish>Biała lampka.</Polish>
</Key>
</Package>
</Project>

View File

@ -11,15 +11,19 @@ class CfgVehicles {
class ThingX;
class GVAR(Turret_MBT_01): ThingX {
author = ECSTRING(common,ACETeam);
_generalMacro = QGVAR(TurretDummy);
_generalMacro = QGVAR(Turret_MBT_01);
scope = 1;
displayName = CSTRING(generic_turret_wreck);
model = "\A3\Structures_F\Wrecks\Wreck_Slammer_turret_F.p3d";
icon = "\A3\armor_f_gamma\MBT_01\Data\ui\map_slammer_mk4_ca.paa";
};
class GVAR(Turret_MBT_02): ThingX {
author = ECSTRING(common,ACETeam);
_generalMacro = QGVAR(TurretDummy);
_generalMacro = QGVAR(Turret_MBT_02);
scope = 1;
displayName = CSTRING(generic_turret_wreck);
model = "\A3\Structures_F\Wrecks\Wreck_T72_turret_F.p3d";
icon = "\A3\armor_f_gamma\MBT_02\Data\UI\map_MBT_02_ca.paa";
};
class Tank;

View File

@ -8,37 +8,45 @@ GVAR(cacheTankDuplicates) = call CBA_fnc_createNamespace;
// cookoff and burning engine
["Tank", "init", {
params ["_vehicle"];
private _typeOf = typeOf _vehicle;
if (isNil {GVAR(cacheTankDuplicates) getVariable _typeOf}) then {
private _hitpoints = (getAllHitPointsDamage _vehicle param [0, []]) apply {toLower _x};
private _duplicateHitpoints = [];
{
if ((_x != "") && {_x in (_hitpoints select [0,_forEachIndex])}) then {
_duplicateHitpoints pushBack _forEachIndex;
};
} forEach _hitpoints;
TRACE_2("dupes",_typeOf,_duplicateHitpoints);
GVAR(cacheTankDuplicates) setVariable [_typeOf, _duplicateHitpoints];
};
_vehicle addEventHandler ["HandleDamage", {
if ((_this select 0) getVariable [QGVAR(enable),GVAR(enable)]) then {
if ((_this select 0) getVariable [QGVAR(enable), GVAR(enable)]) then {
["tank", _this] call FUNC(handleDamage);
};
}];
}, nil, nil, true] call CBA_fnc_addClassEventHandler;
["Wheeled_APC_F", "init", {
(_this select 0) addEventHandler ["HandleDamage", {
if ((_this select 0) getVariable [QGVAR(enable),GVAR(enable)]) then {
params ["_vehicle"];
_vehicle addEventHandler ["HandleDamage", {
if ((_this select 0) getVariable [QGVAR(enable), GVAR(enable)]) then {
["tank", _this] call FUNC(handleDamage);
};
}];
}, nil, nil, true] call CBA_fnc_addClassEventHandler;
["Car", "init", {
(_this select 0) addEventHandler ["HandleDamage", {
if ((_this select 0) getVariable [QGVAR(enable),GVAR(enable)]) then {
params ["_vehicle"];
_vehicle addEventHandler ["HandleDamage", {
if ((_this select 0) getVariable [QGVAR(enable), GVAR(enable)]) then {
["car", _this] call FUNC(handleDamage);
};
}];
@ -46,14 +54,31 @@ GVAR(cacheTankDuplicates) = call CBA_fnc_createNamespace;
// secondary explosions
["AllVehicles", "killed", {
if ((_this select 0) getVariable [QGVAR(enable),GVAR(enable)]) then {
(_this select 0) call FUNC(secondaryExplosions);
params ["_vehicle"];
if (_vehicle getVariable [QGVAR(enable), GVAR(enable)]) then {
_vehicle call FUNC(secondaryExplosions);
};
}, nil, ["Man"]] call CBA_fnc_addClassEventHandler;
// blow off turret effect
["Tank", "killed", {
if ((_this select 0) getVariable [QGVAR(enable),GVAR(enable)]) then {
(_this select 0) call FUNC(blowOffTurret);
params ["_vehicle"];
if (_vehicle getVariable [QGVAR(enable), GVAR(enable)]) then {
_vehicle call FUNC(blowOffTurret);
};
}] call CBA_fnc_addClassEventHandler;
// event to add a turret to a curator if the vehicle already belonged to that curator
if (isServer) then {
[QGVAR(addTurretToEditable), {
params ["_vehicle", "_turret"];
{
if (_vehicle in curatorEditableObjects _x) then {
_x addCuratorEditableObjects [[_turret], false];
};
} forEach allCurators;
}] call CBA_fnc_addEventHandler;
};

View File

@ -30,4 +30,7 @@
_turret setVectorUp [random 1, random 1, 1];
_turret setVelocity [random 7, random 7, 8 + random 5];
// add turret to all curators that already own the wreck
[QGVAR(addTurretToEditable), [_vehicle, _turret]] call CBA_fnc_serverEvent;
}, _this, 1] call CBA_fnc_waitAndExecute;

View File

@ -6,12 +6,28 @@
<German>Cook-off ermöglichen</German>
<Czech>Povolit explozi munice</Czech>
<Russian>Включить воспламенение</Russian>
<Polish>Aktywuj efekty zapłonu</Polish>
</Key>
<Key ID="STR_ACE_CookOff_enable_tooltip">
<English>Enables cook off and related vehicle destruction effects.</English>
<German>Ermöglicht Cook-off und zugehörige Fahrzeug-Zerstörungseffekte.</German>
<Czech>Povolí explozi munice a její následné ničivé efekty.</Czech>
<Russian>Включает воспламенение и сопутствующие эффекты повреждения техники.</Russian>
<Polish>Aktywuje efekt zapłonu na zniszczonych pojazdach.</Polish>
</Key>
<Key ID="STR_ACE_CookOff_generic_turret_wreck">
<Original>Wreck (Turret)</Original>
<French>Épave (tourelle)</French>
<Spanish>Restos (torreta)</Spanish>
<Italian>Rottami (torretta)</Italian>
<Polish>Wrak (wieżyczka)</Polish>
<Russian>Обломки (башня)</Russian>
<German>Wrack (Geschützturm)</German>
<Czech>Vrak (věž)</Czech>
<English>Wreck (Turret)</English>
<Portuguese>Ruínas (torre)</Portuguese>
<Korean>잔해(포탑)</Korean>
<Japanese>残骸(タレット)</Japanese>
</Key>
</Package>
</Project>
</Project>

View File

@ -758,10 +758,12 @@
<Key ID="STR_ACE_Explosives_TripFlare_Name">
<English>Tripwire Flare</English>
<Russian>Сигнальная растяжка</Russian>
<Polish>Flara na linkę</Polish>
</Key>
<Key ID="STR_ACE_Explosives_TripFlare_Description">
<English>Type: Tripwire flare - Ignites a non-lethal flare when triggered.&lt;br /&gt;Rounds: 1&lt;br /&gt;Used on: Ground</English>
<Russian>Тип: Сигнальная растяжка - При срабатывании выпускает несмертельную сгнальную вспышку.&lt;br /&gt;Зарядов: 1&lt;br /&gt;Используется на: Земле</Russian>
<Polish>Typ: Flara na linkę - Wystrzeliwuje nieszkodliwą flarę przy nadepnięciu linki.&lt;br/&gt;Pociski: 1&lt;br/&gt;Używane na: ziemia</Polish>
</Key>
</Package>
</Project>
</Project>

View File

@ -96,6 +96,7 @@
<Portuguese>Equipa o helicóptero selecionado com o Fast Rope Insertion Extraction System</Portuguese>
<French>LAISSER LES UNITES UTILISER LA CORDE </French>
<Russian>ДЕСАНТИРОВАНИЕ ПО КАНАТУ</Russian>
<Polish>ZJAZD NA LINACH</Polish>
</Key>
</Package>
</Project>

View File

@ -9,6 +9,7 @@
<Portuguese>Efeitos de ForçaG</Portuguese>
<French>Effets de force gravitationnelle</French>
<Russian>Эффекты перегрузок</Russian>
<Polish>Efekty przeciążeń</Polish>
</Key>
<Key ID="STR_ACE_gforces_enabledFor_onlyAircraft">
<English>Only Aircraft</English>
@ -18,6 +19,7 @@
<Portuguese>Somente Aeronave</Portuguese>
<French>Avions seulement</French>
<Russian>Только для летательных аппаратов</Russian>
<Polish>Tylko samoloty</Polish>
</Key>
</Package>
</Project>

View File

@ -28,14 +28,17 @@
<Key ID="STR_ACE_Goggles_effects_displayName">
<English>Goggle Effects</English>
<Russian>Эффект очков</Russian>
<Polish>Efekty gogli</Polish>
</Key>
<Key ID="STR_ACE_Goggles_effects_tintOnly">
<English>Tint</English>
<Russian>Тонировка</Russian>
<Polish>Winieta</Polish>
</Key>
<Key ID="STR_ACE_Goggles_enabled_tintAndEffects">
<English>Tint + Effects</English>
<Russian>Тонировка + эффекты</Russian>
<Polish>Winieta + Efekty</Polish>
</Key>
</Package>
</Project>

View File

@ -34,6 +34,8 @@
params ["_projectile", "_timeToLive"];
if (isNull _projectile) exitWith {TRACE_1("null",_projectile);};
private _position = position _projectile;
// --- fire

View File

@ -257,16 +257,19 @@
<English>AN-M14 Incendiary Grenade</English>
<German>AN-M14 Brandsatz</German>
<Russian>AN-M14 Зажигательная граната</Russian>
<Polish>Granat zapalający AN-M14</Polish>
</Key>
<Key ID="STR_ACE_Grenades_Incendiary_NameShort">
<English>AN-M14</English>
<German>AN-M14</German>
<Russian>AN-M14</Russian>
<Polish>AN-M14</Polish>
</Key>
<Key ID="STR_ACE_Grenades_Incendiary_Description">
<English>Incendiary grenade used to destroy weapons, ammunition and other equipment.</English>
<German>Brandsatzgranate. Verwendet um Waffen, Munition und andere Ausrüstung zu zerstören.</German>
<Russian>Зажигательная граната используется для уничтожения оружия, боеприпасов и прочего оборудования.</Russian>
<Polish>Granat zapalający, używany do niszczenia broni, amunicji i innego sprzętu.</Polish>
</Key>
</Package>
</Project>
</Project>

View File

@ -7,6 +7,7 @@
<French>Housse d'arme</French>
<Russian>Чехол</Russian>
<Czech>Pouzdro na zbraň</Czech>
<Polish>Torba na broń</Polish>
</Key>
<Key ID="STR_ACE_Gunbag_DisplayName_Tan">
<English>Gunbag (Tan)</English>
@ -14,6 +15,7 @@
<French>Housse d'arme (marron clair)</French>
<Russian>Чехол (желтовато-коричневый)</Russian>
<Czech>Pouzdro na zbraň (Žlutohnědá)</Czech>
<Polish>Torba na broń (jasnobrązowa)</Polish>
</Key>
<Key ID="STR_ACE_Gunbag_ToGunbag">
<English>Put weapon into gunbag</English>
@ -21,6 +23,7 @@
<French>Placer l'arme dans la housse d'arme</French>
<Russian>Зачехлить оружие</Russian>
<Czech>Vložit zbraň do pouzdra</Czech>
<Polish>Włóż broń do torby</Polish>
</Key>
<Key ID="STR_ACE_Gunbag_OffGunbag">
<English>Get weapon out of gunbag</English>
@ -28,6 +31,7 @@
<French>Sortir l'arme hors de la housse</French>
<Russian>Расчехлить оружие</Russian>
<Czech>Vytáhnout zbraň z pouzdra</Czech>
<Polish>Wyciągnij broń z torby</Polish>
</Key>
<Key ID="STR_ACE_Gunbag_Status">
<English>Status</English>
@ -35,6 +39,7 @@
<French>Status</French>
<Russian>Статус</Russian>
<Czech>Status</Czech>
<Polish>Status</Polish>
</Key>
<Key ID="STR_ACE_Gunbag_Empty">
<English>Gunbag Empty</English>
@ -42,6 +47,7 @@
<French>Housse d'arme vide</French>
<Russian>Чехол пуст</Russian>
<Czech>Prázdné pouzdro na zbraň</Czech>
<Polish>Torba jest pusta</Polish>
</Key>
</Package>
</Project>

View File

@ -137,11 +137,13 @@
<English>Rotate Map Tools Key</English>
<French>Touche de rotation des outils de naviguation</French>
<Russian>Клавиша поворота инструментов карты</Russian>
<Polish>Klawisz obrotu narzędzi nawigacyjnych</Polish>
</Key>
<Key ID="STR_ACE_MapTools_rotateModifierKey_description">
<English>Modifier key to allow rotating map tools</English>
<French>Touche modificatrice permettant la rotation des outils de naviguation </French>
<Russian>Клавиша-модификатор, позволяющая поворачивать инструменты карты</Russian>
<Polish>Modyfikator pozwalający na obracanie narzędzi nawigacyjnych</Polish>
</Key>
</Package>
</Project>

View File

@ -3772,7 +3772,7 @@
</Key>
<Key ID="STR_ACE_Medical_Attributes_isMedicalVehicle_Description">
<English>Whether or not the object will be a medical vehicle.</English>
<Polish>Czy pojazdy ma być pojazdem medycznym?</Polish>
<Polish>Czy pojazd ma być pojazdem medycznym?</Polish>
<Italian>L'oggetto in questione sarà un veicolo medico o meno.</Italian>
<German>Legt fest, ob das Objekt ein Sanitätsfahrzeug ist.</German>
<Spanish>Es un vehículo médico?</Spanish>
@ -3788,12 +3788,13 @@
<Portuguese>Atraso durante cessar fogo da AI durante inconsciência médica</Portuguese>
<French>Délai de cessez le feu pour l'IA pendant que le joueur est inconscient pour des raisons médicales</French>
<Russian>Задержка прекращения огня ботами, когда игрок теряет сознание по медицинским причинам.</Russian>
<Polish>Opóźnij stan wstrzymania ognia u AI kiedy gracz jest nieprzytomny z powodów medycznych.</Polish>
</Key>
<Key ID="STR_ACE_Medical_MedicalSettings_delayUnconCaptive_DisplayName">
<English>Delay cease fire of AI for unconsciousness</English>
<German>Verzögert Ende des KI-Beschusses bei medizinischer Bewustlosigkeit</German>
<Spanish>Demora antes de volverse neutral al caer inconsciente</Spanish>
<Polish>Opóźnij status captive u nieprzytomnych osób</Polish>
<Polish>Opóźnij wstrzymanie ognia AI dla nieprzytomnych osób</Polish>
<Italian>Ritarda il cessate il fuoco dell'IA quando si è svenuti</Italian>
<Czech>Prodleva zastavení palby AI na bezvědomé</Czech>
<Portuguese>Atraso durante cessar fogo da AI durante inconsciência</Portuguese>

View File

@ -1,5 +1,6 @@
class ACE_Settings {
class GVAR(enabledFor) {
category = ECSTRING(medical,Category_Medical);
value = 2;
typeName = "SCALAR";
values[] = {ECSTRING(Common,Disabled), CSTRING(enabledFor_OnlyServerAndHC), ECSTRING(Common,Enabled)};

View File

@ -6,6 +6,7 @@
<German>Nur Server und HC</German>
<Spanish>Sólo Server y HC</Spanish>
<Russian>Нур сервера унд HC</Russian>
<Polish>Tylko serwer i HC</Polish>
</Key>
</Package>
</Project>
</Project>

View File

@ -0,0 +1 @@
x\ace\addons\medical_blood

View File

@ -0,0 +1,10 @@
class ACE_Settings {
class GVAR(enabledFor) {
category = ECSTRING(medical,Category_Medical);
displayName = CSTRING(MedicalBloodSettings_enabledFor_DisplayName);
description = CSTRING(MedicalBloodSettings_enabledFor_Description);
value = 2;
typeName = "SCALAR";
values[] = {ECSTRING(Common,Disabled), CSTRING(enabledFor_OnlyPlayers), ECSTRING(Common,Enabled)};
};
};

View File

@ -0,0 +1,18 @@
class Extended_PreStart_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_preStart));
};
};
class Extended_PreInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_preInit));
};
};
class Extended_PostInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_postInit));
};
};

View File

@ -0,0 +1,6 @@
PREP(hit);
PREP(isBleeding);
PREP(onBleeding);
PREP(createBlood);
PREP(spurt);

View File

@ -0,0 +1,37 @@
#include "script_component.hpp"
GVAR(useAceMedical) = ["ace_medical"] call EFUNC(common,isModLoaded);
// To support public API regardless of component settings
[QGVAR(spurt), {
_this call FUNC(spurt);
}] call CBA_fnc_addEventHandler;
if (isServer) then {
GVAR(bloodDrops) = [];
[QGVAR(bloodDropCreated), {
params ["_bloodDrop"];
GVAR(bloodDrops) pushBack _bloodDrop;
if (count GVAR(bloodDrops) >= MAX_BLOOD_OBJECTS) then {
private _deletedBloodDrop = GVAR(bloodDrops) deleteAt 0;
deleteVehicle _deletedBloodDrop;
};
[{deleteVehicle _this}, _bloodDrop, BLOOD_OBJECT_LIFETIME] call CBA_fnc_waitAndExecute;
}] call CBA_fnc_addEventHandler;
};
["ace_settingsInitialized", {
TRACE_1("settingsInitialized", GVAR(enabledFor));
if (GVAR(enabledFor) == 0) exitWith {}; // 0: disabled
[configFile >> QGVAR(stateMachine)] call CBA_statemachine_fnc_createFromConfig;
["CAManBase", "hit", {
params ["_unit"];
if (GVAR(enabledFor) == 1 && {!isPlayer _unit || {_unit == ACE_player}}) exitWith {};
_this call FUNC(hit);
}] call CBA_fnc_addClassEventHandler;
}] call CBA_fnc_addEventHandler;

View File

@ -0,0 +1,27 @@
#include "script_component.hpp"
ADDON = false;
#include "XEH_PREP.hpp"
// blood object model namespace
GVAR(models) = [] call CBA_fnc_createNamespace;
{
_x params ["_name", "_model"];
// createSimpleObject expects a path without the leading slash
if ((_model select [0,1]) isEqualTo "\") then {
_model = _model select [1];
};
GVAR(models) setVariable [_name, _model];
} forEach [
// higher number means bigger model
["blooddrop_1", QPATHTOF(data\drop_1.p3d)],
["blooddrop_2", QPATHTOF(data\drop_2.p3d)],
["blooddrop_3", QPATHTOF(data\drop_3.p3d)],
["blooddrop_4", QPATHTOF(data\drop_4.p3d)]
];
ADDON = true;

View File

@ -0,0 +1,3 @@
#include "script_component.hpp"
#include "XEH_PREP.hpp"

View File

@ -0,0 +1,18 @@
#include "script_component.hpp"
class CfgPatches {
class ADDON {
name = COMPONENT_NAME;
units[] = {};
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_main"};
author = ECSTRING(common,ACETeam);
authors[] = {"Glowbal","Sickboy","commy2"};
url = ECSTRING(main,URL);
VERSION_CONFIG;
};
};
#include "CfgEventHandlers.hpp"
#include "state_machine.hpp"

View File

@ -0,0 +1,91 @@
class StageTI {
texture = "z\ace\addons\medical_blood\data\blood_ti_ca.paa";
};
ambient[] = {1.0,1.0,1.0,1.0};
diffuse[] = {1.0,1.0,1.0,1.0};
forcedDiffuse[] = {0.0,0.0,0.0,0.0};
emmisive[] = {0.0,0.0,0.0,1.0};
specular[] = {0.0,0.0,0.0,1.0};
specularPower = 1.0;
PixelShaderID = "Super";
VertexShaderID = "Super";
renderFlags[] = {"NoZWrite"};
class Stage1 {
texture = "z\ace\addons\medical_blood\data\blood_nohq.paa";
uvSource = "tex";
class uvTransform {
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage2 {
texture = "#(argb,8,8,3)color(0.5,0.5,0.5,0.5,DT)";
uvSource = "tex";
class uvTransform {
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage3 {
texture = "#(argb,8,8,3)color(0.0,0.0,0.0,0.0,MC)";
uvSource = "tex";
class uvTransform {
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage4 {
texture = "#(argb,8,8,3)color(1.0,1.0,1.0,1.0,AS)";
uvSource = "tex";
class uvTransform {
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage5 {
texture = "z\ace\addons\medical_blood\data\blood_smdi.paa";
uvSource = "tex";
class uvTransform {
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage6 {
texture = "#(ai,64,64,1)fresnel(0.7,0.001)";
uvSource = "tex";
class uvTransform {
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};
class Stage7 {
texture = "a3\data_f\env_land_co.paa";
useWorldEnvMap = "false";
uvSource = "tex";
class uvTransform {
aside[] = {1.0,0.0,0.0};
up[] = {0.0,1.0,0.0};
dir[] = {0.0,0.0,0.0};
pos[] = {0.0,0.0,0.0};
};
};

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,31 @@
/*
* Author: Glowbal
* Spawn a blood drop.
* Available blood drop classes are blooddrop_1 through blooddrop_4.
*
* Arguments:
* 0: classname of blood drop <OBJECT>
* 1: Position <ARRAY>
*
* Return Value:
* Created blood drop <OBJECT>
*
* Example:
* ["blooddrop_2", getPos player] call ace_medical_blood_fnc_createBlood
*
* Public: No
*/
#include "script_component.hpp"
params ["_type", "_pos"];
private _model = GVAR(models) getVariable _type;
private _object = createSimpleObject [_model, [0,0,0]];
_object setDir random 360;
_object setPos _pos;
[QGVAR(bloodDropCreated), [_object]] call CBA_fnc_serverEvent;
_object

View File

@ -0,0 +1,29 @@
/*
* Author: Glowbal
* Handle unit hit eventhandler
*
* Arguments:
* 0: unit <OBJECT>
* 1: caused by <OBJECT>
* 2: damage <NUMBER>
*
* Return Value:
* None
*
* Public: No
*/
#include "script_component.hpp"
params ["_unit", "_causedBy", "_damage"];
if (isNull _causedBy) exitWith { // won't be able to calculate the direction properly, so instead we pick something at random
[QGVAR(spurt), [_unit, random 360, _damage]] call CBA_fnc_serverEvent;
};
// Calculate bulletDirection
private _unitPos = getPosASL _unit;
private _causedByPos = getPosASL _causedBy;
private _bulletDir = ((_unitPos select 0) - (_causedByPos select 0)) atan2 ((_unitPos select 1) - (_causedByPos select 1));
[QGVAR(spurt), [_unit, _bulletDir, _damage]] call CBA_fnc_serverEvent;

View File

@ -0,0 +1,23 @@
/*
* Author: Glowbal
* Check if is bleeding
*
* Arguments:
* 0: unit <TYPE>
*
* Return Value:
* is Bleeding <BOOL>
*
* Example:
* [UNIT] call ace_medical_blood_fnc_isBleeding
*
* Public: No
*/
#include "script_component.hpp"
params ["_unit"];
if (GVAR(useAceMedical)) exitWith {
_unit getVariable [QEGVAR(medical,isBleeding), false];
};
alive _unit && {getDammage _unit > 0.3};

View File

@ -0,0 +1,38 @@
/*
* Author: Glowbal
* handle bleeding state (state machine)
*
* Arguments:
* 0: unit <TYPE>
*
* Return Value:
* is Bleeding <BOOL>
*
* Example:
* [UNIT] call ace_medical_blood_fnc_onBleeding
*
* Public: No
*/
#include "script_component.hpp"
params ["_unit"];
if (GVAR(enabledFor) == 1 && {!isPlayer _unit || {_unit == ACE_player}}) exitWith {};
private _lastTime = _unit getVariable [QGVAR(lastTime), -10];
private _bloodLoss = (if (GVAR(useAceMedical)) then {([_unit] call EFUNC(medical,getBloodLoss)) * 2.5} else {getDammage _unit * 2}) min 6;
if ((CBA_missionTime - _lastTime) + _bloodLoss >= 8 + random 2) then {
_unit setVariable [QGVAR(lastTime), CBA_missionTime];
private _position = getPosASL _unit;
_position = _position vectorAdd [
random 0.4 - 0.2,
random 0.4 - 0.2,
0
];
_position set [2, 0];
private _bloodDrop = ["blooddrop_1", "blooddrop_2", "blooddrop_3", "blooddrop_4"] select floor (_bloodLoss max 3);
[_bloodDrop, _position, getDir _unit] call FUNC(createBlood);
};

View File

@ -0,0 +1,38 @@
/*
* Author: Sickboy
* Spurt blood on the ground
*
* Arguments:
* 0: unit <OBJECT>
* 1: direction <NUMBER>
* 2: damage <NUMBER>
*
* Return Value:
* None
*
* Example:
* [UNIT, random 360, 1] call ace_medical_blood_fnc_spurt
*
* Public: No
*/
#include "script_component.hpp"
#define MAXIMUM_DROPS 4
#define DISTANCE_BETWEEN_DROPS 0.20
#define OFFSET 0.25
params ["_unit", "_dir", "_damage"];
private _distanceBetweenDrops = DISTANCE_BETWEEN_DROPS * _damage;
private _offset = OFFSET + _distanceBetweenDrops;
private _pos = _unit getPos [_offset, _dir];
["blooddrop_2", _pos, _dir] call FUNC(createBlood);
private _dropAmount = ceil (MAXIMUM_DROPS * _damage);
if (_dropAmount > 1) then {
for "_i" from 2 to _dropAmount do {
_pos = _pos getPos [_distanceBetweenDrops, _dir];
["blooddrop_1", _pos, _dir] call FUNC(createBlood);
};
};

View File

@ -0,0 +1 @@
#include "\z\ace\addons\medical_blood\script_component.hpp"

View File

@ -0,0 +1,21 @@
#define COMPONENT medical_blood
#define COMPONENT_BEAUTIFIED Medical Blood
#include "\z\ace\addons\main\script_mod.hpp"
// #define DEBUG_ENABLED_MEDICAL_BLOOD
// #define DISABLE_COMPILE_CACHE
// #define CBA_DEBUG_SYNCHRONOUS
// #define ENABLE_PERFORMANCE_COUNTERS
#ifdef DEBUG_ENABLED_MEDICAL_BLOOD
#define DEBUG_MODE_FULL
#endif
#ifdef DEBUG_SETTINGS_MEDICAL_BLOOD
#define DEBUG_SETTINGS DEBUG_SETTINGS_MEDICAL_BLOOD
#endif
#include "\z\ace\addons\main\script_macros.hpp"
#define MAX_BLOOD_OBJECTS 500
#define BLOOD_OBJECT_LIFETIME 900

View File

@ -0,0 +1,7 @@
class GVAR(stateMachine) {
list = QUOTE(allUnits select {[_x] call FUNC(isBleeding)});
skipNull = 1;
class Bleeding {
onState = QUOTE(call FUNC(onBleeding));
};
};

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<Project name="ACE">
<Package name="medical_blood">
<Key ID="STR_ACE_medical_blood_enabledFor_OnlyPlayers">
<English>Only Players</English>
</Key>
<Key ID="STR_ACE_medical_blood_MedicalBloodSettings_enabledFor_DisplayName">
<English>Enable Blood Drops</English>
</Key>
<Key ID="STR_ACE_medical_blood_MedicalBloodSettings_enabledFor_Description">
<English>Enable or disable Blood Drops created on bleeding and taking damage</English>
</Key>
</Package>
</Project>

View File

@ -6,44 +6,52 @@
<French>Détecteur de métaux</French>
<Russian>Детектор металла</Russian>
<Czech>Detektor kovů</Czech>
<Polish>Wykrywacz metali</Polish>
</Key>
<Key ID="STR_ACE_MineDetector_MetalDetector">
<English>Metal detector</English>
<French>Détecteur de métaux</French>
<Russian>Детектор металла</Russian>
<Czech>Detektor kovů</Czech>
<Polish>Wykrywacz metali</Polish>
</Key>
<Key ID="STR_ACE_MineDetector_ActivateDetector">
<English>Activate</English>
<French>Activer</French>
<Russian>Включить</Russian>
<Czech>Aktivovat</Czech>
<Polish>Aktywuj</Polish>
</Key>
<Key ID="STR_ACE_MineDetector_DeactivateDetector">
<English>Deactivate</English>
<French>Désactiver</French>
<Russian>Выключить</Russian>
<Czech>Deaktivovat</Czech>
<Polish>Deaktywuj</Polish>
</Key>
<Key ID="STR_ACE_MineDetector_ConnectHeadphones">
<English>Connect Headphones</English>
<Russian>Подключить наушники</Russian>
<Czech>Připojit sluchátka</Czech>
<Polish>Podłącz słuchawki</Polish>
</Key>
<Key ID="STR_ACE_MineDetector_DisconnectHeadphones">
<English>Disconnect Headphones</English>
<Russian>Отключить наушники</Russian>
<Czech>Odpojit sluchátka</Czech>
<Polish>Odłącz słuchawki</Polish>
</Key>
<Key ID="STR_ACE_MineDetector_HeadphonesConnected">
<English>Headphones Connected</English>
<Russian>Наушники подключены</Russian>
<Czech>Sluchátka připojena</Czech>
<Polish>Słuchawki podpięte</Polish>
</Key>
<Key ID="STR_ACE_MineDetector_HeadphonesDisconnected">
<English>Headphones Disconnected</English>
<Russian>Наушники отключены</Russian>
<Czech>Sluchátka odpojena</Czech>
<Polish>Słuchawki odpięte</Polish>
</Key>
</Package>
</Project>

View File

@ -399,6 +399,7 @@
<Key ID="STR_ACE_NameTags_FadeOnBorder">
<English>Fade on screen border</English>
<German>Am Bildschirmrand ausblenden</German>
<Polish>Ukryj na brzegach ekranu</Polish>
</Key>
</Package>
</Project>
</Project>

View File

@ -284,6 +284,7 @@
<French>Vérifier la température des canons de rechange</French>
<Russian>Проверить температуру запасных стволов</Russian>
<Czech>Zkontrolovat teplotu náhradní hlavně</Czech>
<Polish>Sprawdź temperaturę zapasowych luf</Polish>
</Key>
<Key ID="STR_ACE_Overheating_CheckingSpareBarrelsTemperatures">
<English>Checking spare barrels temperatures...</English>
@ -291,6 +292,7 @@
<French>Vérification de la température des canons de rechange...</French>
<Russian>Проверка температуры запасных стволов...</Russian>
<Czech>Kontroluji teplotu náhradní hlavně...</Czech>
<Polish>Sprawdzanie temperatury zapasowych luf...</Polish>
</Key>
<Key ID="STR_ACE_Overheating_Temperature">
<English>Temperature</English>
@ -310,6 +312,7 @@
<French>Canon(s) de rechange froid</French>
<Russian>Прохладные</Russian>
<Czech>Studená náhrandí hlaveň</Czech>
<Polish>Zimne zapasowe lufy</Polish>
</Key>
<Key ID="STR_ACE_Overheating_BarrelWarm">
<English>Warm Spare Barrel/s</English>
@ -317,6 +320,7 @@
<French>Canon(s) de rechange tiède</French>
<Russian>Теплые</Russian>
<Czech>Teplá náhrandí hlaveň</Czech>
<Polish>Ciepłe zapasowe lufy</Polish>
</Key>
<Key ID="STR_ACE_Overheating_BarrelHot">
<English>Hot Spare Barrel/s</English>
@ -324,6 +328,7 @@
<French>Canon(s) de rechange chaud</French>
<Russian>Горячие</Russian>
<Czech>Horká náhrandí hlaveň</Czech>
<Polish>Gorące zapasowe lufy</Polish>
</Key>
<Key ID="STR_ACE_Overheating_BarrelVeryHot">
<English>Very Hot Spare Barrel/s</English>
@ -331,6 +336,7 @@
<French>Canon(s) de rechange très chaud</French>
<Russian>Очень горячие</Russian>
<Czech>Velmi horká náhrandí hlaveň</Czech>
<Polish>Bardzo gorące zapasowe lufy</Polish>
</Key>
<Key ID="STR_ACE_Overheating_BarrelExtremelyHot">
<English>Extremely Hot Spare Barrel/s</English>
@ -338,6 +344,7 @@
<French>Canon(s) de rechange extrêmement chaud</French>
<Russian>Запредельно горячие</Russian>
<Czech>Extrémně horká náhrandí hlaveň</Czech>
<Polish>Ekstremalnie gorące zapasowe lufy</Polish>
</Key>
<Key ID="STR_ACE_Overheating_enabled_displayName">
<English>Overheating Enabled</English>
@ -347,12 +354,14 @@
<French>Surchauffe activée</French>
<Russian>Перегрев включен</Russian>
<Czech>Přehřívání povoleno</Czech>
<Polish>Przegrzewanie włączone</Polish>
</Key>
<Key ID="STR_ACE_Overheating_enabled_description">
<English>Master enable for the overheating/jamming module</English>
<Portuguese>Chave mestra para o módulo de superaquecimento/emperramento</Portuguese>
<French>Activateur maître pour le module de surchauffe / enrayement</French>
<Russian>Главный включатель для модуля перегрева/заклинивания</Russian>
<Polish>Główny włącznik modułu przegrzewania/zacinania się broni</Polish>
</Key>
</Package>
</Project>

View File

@ -1326,6 +1326,7 @@
<Portuguese>O motor deve estar desligado para manutenção</Portuguese>
<French>Le moteur doit être éteins pour réparer</French>
<Russian>Двигатель должен быть выключен для ремонта</Russian>
<Polish>Silnik musi być wyłączony w celu naprawy</Polish>
</Key>
</Package>
</Project>

View File

@ -4,36 +4,43 @@
<Key ID="STR_ACE_Tagging_Tagging">
<English>Tagging</English>
<Russian>Маркировка</Russian>
<Polish>Tagowanie</Polish>
</Key>
<Key ID="STR_ACE_Tagging_ModuleDesc">
<English>Configure how the tagging system will operate by default.</English>
<Russian>Настройка работы системы спрей-маркеров по-умолчанию.</Russian>
<Polish>Skonfiguruj zachowanie systemu tagowania.</Polish>
</Key>
<Key ID="STR_ACE_Tagging_QuickTag">
<English>Quick Tag</English>
<Russian>Быстрый маркер</Russian>
<Polish>Szybkie tagowanie</Polish>
</Key>
<Key ID="STR_ACE_Tagging_QuickTagDesc">
<English>Action performed on main tag interaction point.</English>
<Russian>Действие, выполняемое при выборе главного пункта меню маркировки.</Russian>
<Polish>Akcja wykonywana na głównym punkcie interakcji tagu.</Polish>
</Key>
<Key ID="STR_ACE_Tagging_LastUsed">
<English>Last Used</English>
<Russian>Повторить последний</Russian>
<Polish>Ostatnio użyte</Polish>
</Key>
<Key ID="STR_ACE_Tagging_RandomX">
<English>Random X</English>
<Russian>Случайный Х</Russian>
<Polish>Losowy X</Polish>
</Key>
<Key ID="STR_ACE_Tagging_Random">
<English>Random</English>
<Russian>Случайный</Russian>
<Polish>Losowy</Polish>
</Key>
<Key ID="STR_ACE_Tagging_Tag">
<English>Tag</English>
<German>Markieren</German>
<Spanish>Marcar</Spanish>
<Polish>Oznakuj</Polish>
<Polish>Taguj</Polish>
<French>Tag</French>
<Italian>Marca</Italian>
<Czech>Označit</Czech>

View File

@ -7,6 +7,7 @@
<Portuguese>Interface do usuário</Portuguese>
<French>Interface utilisateur</French>
<Russian>Интерфейс</Russian>
<Polish>Interfejs użytkownika</Polish>
</Key>
<Key ID="STR_ACE_UI_ModuleName">
<English>User Interface</English>
@ -14,12 +15,14 @@
<Portuguese>Interface do usuário</Portuguese>
<French>Interface utilisateur</French>
<Russian>Пользовательский интерфейс</Russian>
<Polish>Interfejs użytkownika</Polish>
</Key>
<Key ID="STR_ACE_UI_ModuleDescription">
<English>This module allows toggling visible user interface parts.</English>
<Portuguese>Este módulo permite ligar ou desligar partes da interface do usuário</Portuguese>
<French>Ce module permet le basculement de parties visibles de l'interface utlisateur</French>
<Russian>Этот модуль позволяет переключать видимость элементов пользовательского интерфейса.</Russian>
<Polish>Moduł ten pozwala zmienić stan widoczności poszczególnych elementów UI.</Polish>
</Key>
<Key ID="STR_ACE_UI_AllowSelectiveUI">
<English>Allow Selective UI</English>
@ -27,6 +30,7 @@
<Portuguese>Permitir IU Selecionável</Portuguese>
<French>Permettre l'IU selective</French>
<Russian>Включить настраиваемый интерфейс</Russian>
<Polish>Zezwól na selektywne UI</Polish>
</Key>
<Key ID="STR_ACE_UI_AllowSelectiveUI_Description">
<English>Allow client to modify their UI.</English>
@ -34,6 +38,7 @@
<Portuguese>Permite o cliente modificar sua IU.</Portuguese>
<French>Permet aux clients de modifier leur IU</French>
<Russian>Позволить клиентам изменять их пользовательский интерфейс.</Russian>
<Polish>Zezwól klientowi na modyfikację UI.</Polish>
</Key>
<Key ID="STR_ACE_UI_SoldierVehicleWeaponInfo">
<English>Soldier/Vehicle/Weapon Information</English>
@ -41,6 +46,7 @@
<Portuguese>Informação de Soldado/Veículo/Armamento</Portuguese>
<French>Soldat/Véhicule/Arme/Informations</French>
<Russian>Информация о Солдате/Технике/Оружии</Russian>
<Polish>Informacje o żołnierzu/pojeździe/broni</Polish>
</Key>
<Key ID="STR_ACE_UI_VehicleRadar">
<English>Vehicle Radar</English>
@ -48,6 +54,7 @@
<Portuguese>Radar de Veículo</Portuguese>
<French>Radar de véhicule</French>
<Russian>Радар в технике</Russian>
<Polish>Radar w pojeździe</Polish>
</Key>
<Key ID="STR_ACE_UI_VehicleCompass">
<English>Vehicle Compass</English>
@ -55,6 +62,7 @@
<Portuguese>Bússola de Veículo</Portuguese>
<French>Compas de véhicule</French>
<Russian>Компас в технике</Russian>
<Polish>Kompas w pojeździe</Polish>
</Key>
<Key ID="STR_ACE_UI_CommandMenu">
<English>Command Menu</English>
@ -62,6 +70,7 @@
<Portuguese>Menu de Comando</Portuguese>
<French>Menu de commandement</French>
<Russian>Командное меню</Russian>
<Polish>Menu dowodzenia</Polish>
</Key>
<Key ID="STR_ACE_UI_GroupBar">
<English>Group Bar</English>
@ -69,6 +78,7 @@
<Portuguese>Barra de Grupo</Portuguese>
<French>Barre de groupe</French>
<Russian>Панель командира</Russian>
<Polish>Pasek grupy</Polish>
</Key>
<Key ID="STR_ACE_UI_WeaponName">
<English>Weapon Name</English>
@ -76,6 +86,7 @@
<Portuguese>Nome do Armamento</Portuguese>
<French>Nom de l''arme</French>
<Russian>Название оружия</Russian>
<Polish>Nazwa broni</Polish>
</Key>
<Key ID="STR_ACE_UI_WeaponNameBackground">
<English>Weapon Name Background</English>
@ -83,6 +94,7 @@
<Portuguese>Fundo do Nome do Armamento</Portuguese>
<French>Arrière-plan du nom de l'arme</French>
<Russian>Фон названия оружия</Russian>
<Polish>Tło nazwy broni</Polish>
</Key>
<Key ID="STR_ACE_UI_FiringMode">
<English>Firing Mode</English>
@ -90,6 +102,7 @@
<Portuguese>Modo de Disparo</Portuguese>
<French>Mode de tir</French>
<Russian>Режим стрельбы</Russian>
<Polish>Tryb ognia</Polish>
</Key>
<Key ID="STR_ACE_UI_AmmoType">
<English>Ammo Type</English>
@ -97,6 +110,7 @@
<Portuguese>Tipo de Munição</Portuguese>
<French>Type de munitions</French>
<Russian>Тип боеприпасов</Russian>
<Polish>Typ amunicji</Polish>
</Key>
<Key ID="STR_ACE_UI_AmmoCount">
<English>Ammo Count</English>
@ -104,6 +118,7 @@
<Portuguese>Quantidade de Munição</Portuguese>
<French>Nombre de munitions</French>
<Russian>Количество боеприпасов</Russian>
<Polish>Ilość amunicji</Polish>
</Key>
<Key ID="STR_ACE_UI_MagCount">
<English>Magazine Count</English>
@ -111,6 +126,7 @@
<Portuguese>Quantidade de Carregadores</Portuguese>
<French>Nombre de chargeurs</French>
<Russian>Количество магазинов</Russian>
<Polish>Ilość magazynków</Polish>
</Key>
<Key ID="STR_ACE_UI_ThrowableName">
<English>Throwable Type</English>
@ -118,6 +134,7 @@
<Portuguese>Tipo de Arremessável</Portuguese>
<French>Type d'objets de lancer</French>
<Russian>Тип гранаты</Russian>
<Polish>Typ granatu</Polish>
</Key>
<Key ID="STR_ACE_UI_ThrowableCount">
<English>Throwable Count</English>
@ -125,6 +142,7 @@
<Portuguese>Quantidade de Arremessável</Portuguese>
<French>Nombre d'objets de lancer</French>
<Russian>Количество гранат</Russian>
<Polish>Ilość granatów</Polish>
</Key>
<Key ID="STR_ACE_UI_Zeroing">
<English>Zeroing</English>
@ -132,12 +150,14 @@
<Portuguese>Zerar a mira</Portuguese>
<French>Mise à zéro</French>
<Russian>Дальность стрельбы</Russian>
<Polish>Wyzerowanie broni</Polish>
</Key>
<Key ID="STR_ACE_UI_WeaponLowerInfoBackground">
<English>Weapon Lower Info Background</English>
<Portuguese>Informações na parte de baixo do fundo do Armamento</Portuguese>
<French>Arrière-plan des informations inférieures de l'arme</French>
<Russian>Фон ниформации об оружии снизу</Russian>
<Polish>Tło dolnej części informacji o broni</Polish>
</Key>
<Key ID="STR_ACE_UI_Stance">
<English>Stance</English>
@ -145,6 +165,7 @@
<Portuguese>Postura</Portuguese>
<French>Posture</French>
<Russian>Стойка</Russian>
<Polish>Postura</Polish>
</Key>
<Key ID="STR_ACE_UI_StaminaBar">
<English>Stamina Bar</English>
@ -152,66 +173,77 @@
<Portuguese>Barra de Energia</Portuguese>
<French>Barre d'endurance</French>
<Russian>Полоса выносливости</Russian>
<Polish>Pasek staminy</Polish>
</Key>
<Key ID="STR_ACE_UI_GunnerWeaponName">
<English>Gunner Weapon Name</English>
<Portuguese>Nome da arma do fuzileiro</Portuguese>
<French>Nom de l'arme du tireur</French>
<Russian>Название орудия наводчика</Russian>
<Polish>Nazwa broni strzelca</Polish>
</Key>
<Key ID="STR_ACE_UI_GunnerWeaponNameBackground">
<English>Gunner Weapon Name Background</English>
<Portuguese>Fundo do nome da arma do fuzileiro</Portuguese>
<French>Arrière-plan du nom de l'arme (tireur)</French>
<Russian>Фон названия орудия наводчика</Russian>
<Polish>Tło nazwy broni strzelca</Polish>
</Key>
<Key ID="STR_ACE_UI_GunnerFiringMode">
<English>Gunner Firing Mode</English>
<Portuguese>Modo de disparo do fuzileiro</Portuguese>
<French>Mode de tir (tireur)</French>
<Russian>Режим стрельбы наводчика</Russian>
<Polish>Tryb ognia strzelca</Polish>
</Key>
<Key ID="STR_ACE_UI_GunnerAmmoType">
<English>Gunner Ammo Type</English>
<Portuguese>Tipo de Munição do fuzileiro</Portuguese>
<French>Type de munitions (tireur)</French>
<Russian>Тип боеприпасов наводчика</Russian>
<Polish>Typ amunicji strzelca</Polish>
</Key>
<Key ID="STR_ACE_UI_GunnerAmmoCount">
<English>Gunner Ammo Count</English>
<Portuguese>Quantidade de Munição do fuzileiro</Portuguese>
<French>Nombre de munitions (tireur)</French>
<Russian>Количество боеприпасов наводчика</Russian>
<Polish>Ilość amunicji strzelca</Polish>
</Key>
<Key ID="STR_ACE_UI_GunnerMagCount">
<English>Gunner Magazine Count</English>
<Portuguese>Quantidade de Carregadores do fuzileiro</Portuguese>
<French>Nombre de chargeurs (tireur)</French>
<Russian>Количество магазинов наводчика</Russian>
<Polish>Ilość magazynków strzelca</Polish>
</Key>
<Key ID="STR_ACE_UI_GunnerLaunchableName">
<English>Gunner Launchable Type</English>
<Portuguese>Tipo de Arremessável do fuzileiro</Portuguese>
<French>Type d'objets jetable ( tireur)</French>
<Russian>Тип пусковой установки наводчика</Russian>
<Polish>Typ rakiet strzelca</Polish>
</Key>
<Key ID="STR_ACE_UI_GunnerLaunchableCount">
<English>Gunner Launchable Count</English>
<Portuguese>Quantidade de Arremessável do fuzileiro</Portuguese>
<French>Nombre d'objets jetable (tireur)</French>
<Russian>Количество снарядов пусковой установки наводчика</Russian>
<Polish>Ilość rakiet strzelca</Polish>
</Key>
<Key ID="STR_ACE_UI_GunnerZeroing">
<English>Gunner Zeroing</English>
<Portuguese>Zerar a mira do fuzileiro</Portuguese>
<French>Mise à zéro ( tireur)</French>
<Russian>Дальность стрельбы наводчика</Russian>
<Polish>Wyzerowanie broni strzelca</Polish>
</Key>
<Key ID="STR_ACE_UI_GunnerWeaponLowerInfoBackground">
<English>Gunner Weapon Lower Info Background</English>
<Portuguese>Informações na parte de baixo do fundo do Armamento do fuzileiro</Portuguese>
<French>Arrière-plan des informations inférieures (tireur)</French>
<Russian>Фон ниформации об орудии наводчика снизу</Russian>
<Polish>Tło dolnej części informacji o broni strzelca</Polish>
</Key>
<Key ID="STR_ACE_UI_VehicleName">
<English>Vehicle Name</English>
@ -219,6 +251,7 @@
<Portuguese>Nome do Veículo</Portuguese>
<French>Nom du véhicule</French>
<Russian>Название техники</Russian>
<Polish>Nazwa pojazdu</Polish>
</Key>
<Key ID="STR_ACE_UI_VehicleNameBackground">
<English>Vehicle Name Background</English>
@ -226,6 +259,7 @@
<Portuguese>Fundo do Nome do Veículo</Portuguese>
<French>Arrière-plan du nom du véhicule</French>
<Russian>Фон названия техники</Russian>
<Polish>Tło nazwy pojazdu</Polish>
</Key>
<Key ID="STR_ACE_UI_VehicleFuelBar">
<English>Vehicle Fuel Bar</English>
@ -233,6 +267,7 @@
<Portuguese>Barra de Combustível do Veículo</Portuguese>
<French>Barre d'éssence du véhicule</French>
<Russian>Полоса топлива</Russian>
<Polish>Pasek paliwa</Polish>
</Key>
<Key ID="STR_ACE_UI_VehicleSpeed">
<English>Vehicle Speed</English>
@ -240,6 +275,7 @@
<Portuguese>Velocidade do Veículo</Portuguese>
<French>Vitesse du véhicule</French>
<Russian>Скорость техники</Russian>
<Polish>Prędkościomierz</Polish>
</Key>
<Key ID="STR_ACE_UI_VehicleAltitude">
<English>Vehicle Altitude</English>
@ -247,6 +283,7 @@
<Portuguese>Altitude do Veículo</Portuguese>
<French>Altitude du véhicule</French>
<Russian>Высота полета</Russian>
<Polish>Wysokościomierz radarowy</Polish>
</Key>
<Key ID="STR_ACE_UI_VehicleDamage">
<English>Vehicle Damage</English>
@ -254,6 +291,7 @@
<Portuguese>Dano do Veículo</Portuguese>
<French>Dégats du véhicule</French>
<Russian>Повреждение техники</Russian>
<Polish>Uszkodzenia pojazdu</Polish>
</Key>
<Key ID="STR_ACE_UI_VehicleInfoBackground">
<English>Vehicle Info Background</English>
@ -261,6 +299,7 @@
<Portuguese>Fundo das informações do veículo</Portuguese>
<French>Arrière-plan des informations du véhicule</French>
<Russian>Фон информации о технике</Russian>
<Polish>Tło informacji o pojeździe</Polish>
</Key>
<Key ID="STR_ACE_UI_RequiresSoldierVehicleWeaponInfo">
<English>Requires Soldier/Vehicle/Weapon Information.</English>
@ -268,6 +307,7 @@
<Portuguese>Requer informações de Soldado/Veículo/Armamento</Portuguese>
<French>Requiert les informations de soldat/Vehicule/Arme.</French>
<Russian>Требуется Информация о Солдате/Технике/Оружии.</Russian>
<Polish>Wymaga informacji o żołnierzu/pojeździe/broni.</Polish>
</Key>
<Key ID="STR_ACE_UI_Disallowed">
<English>Modifying User Interface is disabled.</English>
@ -275,12 +315,14 @@
<Portuguese>A modificação da interface do usuário está desabilitada.</Portuguese>
<French>Modifications de l'interface utilisateur désactivé.</French>
<Russian>Изменение пользовательского интерфейса запрещено.</Russian>
<Polish>Modyfikacja interfejsu użytkownika jest wyłączona.</Polish>
</Key>
<Key ID="STR_ACE_UI_Disabled">
<English>Cannot modify a forced User Interface element.</English>
<Portuguese>Não é possível modificar um elemento forçado da interface do usuário.</Portuguese>
<French>Impossible de modifier un élément de l'interface utilisateur forcé</French>
<Russian>Невозможно изменить зафиксированный элемент пользовательского интерфейса.</Russian>
<Polish>Nie można modyfikować wymuszonego elementu interfejsu użytkownika.</Polish>
</Key>
</Package>
</Project>

View File

@ -15,7 +15,11 @@
*/
#include "script_component.hpp"
// Assume default wind values
private _worldName = toLower worldName;
TRACE_1("getting map data",_worldName);
// Set default values
// Source: https://weatherspark.com/averages/32194/Lemnos-Limnos-North-Aegean-Islands-Greece
GVAR(WindSpeedMax) = [[8.8, 5.5], [8.8, 5], [8.6, 4.8], [7.6, 3.4], [7.0, 3.0], [7.1, 3.0], [7.5, 3.1], [8.0, 3.2], [7.6, 3.5], [7.8, 4.6], [7.9, 5.0], [8.2, 5.5]];
GVAR(WindSpeedMean) = [4.8, 4.9, 4.6, 4.1, 3.5, 3.5, 4.3, 4.4, 4.1, 4.5, 4.5, 5.0];
@ -35,23 +39,42 @@ GVAR(WindDirectionProbabilities) = [
[0.06, 0.37, 0.05, 0.03, 0.18, 0.04, 0.02, 0.02] // December
];
// Check if the wind data is defined in the map config
if (isArray (configFile >> "CfgWorlds" >> worldName >> "ACE_WindSpeedMean")) then {
GVAR(WindSpeedMin) = getArray (configFile >> "CfgWorlds" >> worldName >> "ACE_WindSpeedMin");
GVAR(WindSpeedMean) = getArray (configFile >> "CfgWorlds" >> worldName >> "ACE_WindSpeedMean");
GVAR(WindSpeedMax) = getArray (configFile >> "CfgWorlds" >> worldName >> "ACE_WindSpeedMax");
GVAR(WindDirectionProbabilities) = getArray (configFile >> "CfgWorlds" >> worldName >> "ACE_WindDirectionProbabilities");
};
GVAR(TempDay) = [1, 3, 9, 14, 19, 23, 25, 24, 21, 13, 7, 2];
GVAR(TempNight) = [-4, -3, 0, 4, 9, 12, 14, 14, 10, 6, 2, -2];
GVAR(Humidity) = [82, 80, 78, 70, 71, 72, 70, 73, 78, 80, 83, 82];
// Check if the weather data is defined in the map config
if (isArray (configFile >> "CfgWorlds" >> worldName >> "ACE_TempDay")) exitWith {
GVAR(TempDay) = getArray (configFile >> "CfgWorlds" >> worldName >> "ACE_TempDay");
GVAR(TempNight) = getArray (configFile >> "CfgWorlds" >> worldName >> "ACE_TempNight");
GVAR(Humidity) = getArray (configFile >> "CfgWorlds" >> worldName >> "ACE_Humidity");
GVAR(currentTemperature) = 20;
GVAR(currentHumidity) = 0.5;
// Get all non inherited arrays to filter maps that inherit from Stratis/Altis/Tanoa
private _nonInheritedArrays = configProperties [configFile >> "CfgWorlds" >> _worldName, "isArray _x", false];
// And check if any custom non-inherited weather is defined through config and use that if so
if ((configFile >> "CfgWorlds" >> _worldName >> "ACE_TempDay") in _nonInheritedArrays) exitWith {
if (isArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_TempDay")) then {
GVAR(TempDay) = getArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_TempDay");
};
if (isArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_TempNight")) then {
GVAR(TempNight) = getArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_TempNight");
};
if (isArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_Humidity")) then {
GVAR(Humidity) = getArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_Humidity");
};
if (isArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_WindSpeedMin")) then {
GVAR(WindSpeedMin) = getArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_WindSpeedMin");
};
if (isArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_WindSpeedMean")) then {
GVAR(WindSpeedMean) = getArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_WindSpeedMean");
};
if (isArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_WindSpeedMax")) then {
GVAR(WindSpeedMax) = getArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_WindSpeedMax");
};
if (isArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_WindDirectionProbabilities")) then {
GVAR(WindDirectionProbabilities) = getArray (configFile >> "CfgWorlds" >> _worldName >> "ACE_WindDirectionProbabilities");
};
};
// Check if the map is among the most popular
if (toLower worldName in ["chernarus", "bootcamp_acr", "woodland_acr", "utes"]) then {
if (_worldName in ["chernarus", "bootcamp_acr", "woodland_acr", "utes"]) then {
// Source: http://www.iten-online.ch/klima/europa/tschechien/prag.htm
GVAR(TempDay) = [1, 3, 9, 14, 19, 23, 25, 24, 21, 13, 7, 2];
GVAR(TempNight) = [-4, -3, 0, 4, 9, 12, 14, 14, 10, 6, 2, -2];
@ -78,7 +101,7 @@ if (toLower worldName in ["chernarus", "bootcamp_acr", "woodland_acr", "utes"])
];
};
if (toLower worldName in ["takistan", "zargabad", "mountains_acr", "shapur_baf", "provinggrounds_pmc"]) exitWith {
if (_worldName in ["takistan", "zargabad", "mountains_acr", "shapur_baf", "provinggrounds_pmc"]) exitWith {
// Source: http://www.iten-online.ch/klima/asien/afghanistan/kabul.htm
GVAR(TempDay) = [4.5, 5.5, 12.5, 19.2, 24.4, 30.2, 32.1, 32, 28.5, 22.4, 15, 8.3];
GVAR(TempNight) = [-7.1, -5.7, 0.7, 6, 8.8, 12.4, 15.3, 14.3, 9.4, 3.9, -1.2, -4.7];
@ -105,7 +128,7 @@ if (toLower worldName in ["takistan", "zargabad", "mountains_acr", "shapur_baf",
];
};
if (toLower worldName in ["fallujah"]) exitWith {
if (_worldName in ["fallujah"]) exitWith {
// Source: http://www.iten-online.ch/klima/asien/irak/bagdad.htm
GVAR(TempDay) = [16, 19, 23, 29, 36, 41, 43, 43, 40, 33, 24, 17];
GVAR(TempNight) = [4, 6, 10, 15, 20, 23, 25, 25, 21, 16, 10, 5];
@ -113,8 +136,8 @@ if (toLower worldName in ["fallujah"]) exitWith {
GVAR(Humidity) = [69, 60, 55, 50, 36, 23, 21, 22, 29, 38, 58, 68];
};
if (toLower worldName in ["fata", "Abbottabad"]) exitWith {
// Source: http://www.iten-online.ch/klima/asien/pakistan/zhob.htm
if (_worldName in ["fata", "abbottabad"]) exitWith {
// Source: http://www.iten-online.ch/klima/asien/pakistan/zhob.htm
GVAR(TempDay) = [12.4, 15.8, 20.8, 26.9, 32.8, 37, 36.8, 35.9, 33.8, 28.2, 22.2, 16.2];
GVAR(TempNight) = [-0.6, 2.4, 7.4, 13.1, 18.2, 22.8, 23.8, 22.9, 19.2, 12, 5.6, 1.2];
// Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,Zhob,Pakistan
@ -140,24 +163,24 @@ if (toLower worldName in ["fata", "Abbottabad"]) exitWith {
];
};
if (worldName in ["sfp_wamako"]) exitWith {
// Source: http://www.iten-online.ch/klima/afrika/niger/tahoua.htm
if (_worldName in ["sfp_wamako"]) exitWith {
// Source: http://www.iten-online.ch/klima/afrika/niger/tahoua.htm
GVAR(TempDay) = [33.4, 35, 38.4, 41.5, 41.4, 40, 35.6, 32.9, 35.8, 38.2, 36.4, 33.1];
GVAR(TempNight) = [14.9, 16.3, 20.4, 23.7, 25.8, 24.8, 23.1, 22, 22.6, 21.6, 18.6, 15.3];
// Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,Tahoua,Niger
GVAR(Humidity) = [68, 60, 57, 50, 32, 22, 20, 21, 25, 38, 58, 69];
};
if (worldName in ["sfp_sturko"]) exitWith {
// Source: http://www.iten-online.ch/klima/afrika/niger/tahoua.htm
if (_worldName in ["sfp_sturko"]) exitWith {
// Source: http://www.iten-online.ch/klima/afrika/niger/tahoua.htm
GVAR(TempDay) = [2.2, 2.4, 5.1, 10.2, 16.1, 20.1, 21.1, 20.9, 17.2, 12.7, 7.4, 3.9];
GVAR(TempNight) = [-2, -2.3, -0.7, 2.6, 7.1, 11.4, 13.1, 12.7, 10, 6.9, 3.1, -0.1];
// Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,karlskrona,Sweden
GVAR(Humidity) = [86, 85, 80, 72, 68, 69, 74, 77, 79, 81, 86, 88];
};
if (worldName in ["Bornholm"]) exitWith {
// Source: http://www.iten-online.ch/klima/afrika/niger/tahoua.htm
if (_worldName in ["bornholm"]) exitWith {
// Source: http://www.iten-online.ch/klima/afrika/niger/tahoua.htm
GVAR(TempDay) = [1.9, 1.7, 3.8, 8.1, 14, 18.1, 19.6, 19.8, 16.2, 11.9, 7.3, 3.9];
GVAR(TempNight) = [-1.6, -2.1, -0.7, 1.7, 6.2, 10.7, 13, 13.1, 10.6, 7.2, 3.5, 0.1];
// Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,allinge,Denmark
@ -182,15 +205,15 @@ if (worldName in ["Bornholm"]) exitWith {
[0.08, 0.05, 0.06, 0.04, 0.10, 0.14, 0.19, 0.07] // December
];
};
if (worldName in ["Imrali"]) exitWith {
// Source: http://www.iten-online.ch/klima/europa/tuerkei/bursa.htm
if (_worldName in ["imrali"]) exitWith {
// Source: http://www.iten-online.ch/klima/europa/tuerkei/bursa.htm
GVAR(TempDay) = [9.3, 10.7, 13.6, 18.8, 23.5, 28.2, 30.3, 30.2, 27, 21.4, 16.5, 11.8];
GVAR(TempNight) = [1.4, 2.4, 3.7, 7.1, 10.9, 14.3, 16.5, 16.3, 13, 9.5, 6, 3.8];
// Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,Bursa,Turkey
GVAR(Humidity) = [78, 75, 70, 70, 71, 61, 58, 59, 63, 69, 77, 76];
};
if (worldName in ["Kunduz"]) exitWith {
// Source: http://www.iten-online.ch/klima/asien/afghanistan/kunduz.htm
if (_worldName in ["kunduz"]) exitWith {
// Source: http://www.iten-online.ch/klima/asien/afghanistan/kunduz.htm
GVAR(TempDay) = [6.3, 9.5, 15.8, 23, 29.8, 37.3, 39, 36.9, 31.8, 24.5, 16, 9.7];
GVAR(TempNight) = [-2.4, 0, 5.7, 11.6, 15.7, 20.9, 21.5, 21.5, 16.3, 10.6, 4.1, 0];
// Source: http://www.weather-and-climate.com/average-monthly-Humidity-perc,Kabul,Afghanistan
@ -215,11 +238,3 @@ if (worldName in ["Kunduz"]) exitWith {
[0.04, 0.02, 0.05, 0.14, 0.19, 0.07, 0.10, 0.07] // December
];
};
// Assume default values
GVAR(TempDay) = [1, 3, 9, 14, 19, 23, 25, 24, 21, 13, 7, 2];
GVAR(TempNight) = [-4, -3, 0, 4, 9, 12, 14, 14, 10, 6, 2, -2];
GVAR(Humidity) = [82, 80, 78, 70, 71, 72, 70, 73, 78, 80, 83, 82];
GVAR(currentTemperature) = 20;
GVAR(currentHumidity) = 0.5;

View File

@ -186,96 +186,112 @@
<French>Défendre la zone</French>
<Russian>Защитить зону</Russian>
<Czech>Bránit oblast</Czech>
<Polish>Osłaniaj obszar</Polish>
</Key>
<Key ID="STR_ACE_Zeus_ModuleGlobalSetSkill_DisplayName">
<English>Global AI Skill</English>
<French>Compétence global de l'IA</French>
<Russian>Мастерство ботов</Russian>
<Czech>Globální zkušenosti AI</Czech>
<Polish>Globalne umiejętności AI</Polish>
</Key>
<Key ID="STR_ACE_Zeus_ModuleGlobalSetSkill_general">
<English>General Skill</English>
<French>Compétence générale</French>
<Russian>Общий уровень</Russian>
<Czech>Primární zkušenosti</Czech>
<Polish>Ogólne umiejętności</Polish>
</Key>
<Key ID="STR_ACE_Zeus_ModuleGlobalSetSkill_general_desc">
<English>Changes: general, commanding, courage</English>
<French>Change: general, commanding, courage</French>
<Russian>Изменяет: general, commanding, courage</Russian>
<Czech>Upravuje: general, commanding, courage</Czech>
<Polish>Zmienia: ogólne, dowodzenie, odwaga</Polish>
</Key>
<Key ID="STR_ACE_Zeus_ModuleGlobalSetSkill_accuracy">
<English>Accuracy</English>
<French>Précision</French>
<Russian>Меткость</Russian>
<Czech>Přesnost</Czech>
<Polish>Precyzja</Polish>
</Key>
<Key ID="STR_ACE_Zeus_ModuleGlobalSetSkill_accuracy_desc">
<English>Changes: aimingAccuracy</English>
<French>Change: aimingAccuracy</French>
<Russian>Изменяет: aimingAccuracy</Russian>
<Czech>Upravuje: aimingAccuracy</Czech>
<Polish>Zmienia: precyzję celowania</Polish>
</Key>
<Key ID="STR_ACE_Zeus_ModuleGlobalSetSkill_handling">
<English>Weapon Handling</English>
<French>Maniement d'armes</French>
<Russian>Владение оружием</Russian>
<Czech>Zacházení se zbraní</Czech>
<Polish>Obsługa broni</Polish>
</Key>
<Key ID="STR_ACE_Zeus_ModuleGlobalSetSkill_handling_desc">
<English>Changes: aimingShake, aimingSpeed, reloadSpeed</English>
<French>Change: aimingShake, aimingSpeed, reloadSpeed</French>
<Russian>Изменяет: aimingShake, aimingSpeed, reloadSpeed</Russian>
<Czech>Upravuje: aimingShake, aimingSpeed, reloadSpeed</Czech>
<Polish>Zmienia: drżenie broni, szybkość celowania, szybkość przeładowania</Polish>
</Key>
<Key ID="STR_ACE_Zeus_ModuleGlobalSetSkill_spotting">
<English>Spotting</English>
<French>repérage</French>
<Russian>Обнаружение</Russian>
<Czech>Vnímavost</Czech>
<Polish>Rozpoznanie</Polish>
</Key>
<Key ID="STR_ACE_Zeus_ModuleGlobalSetSkill_spotting_desc">
<English>Changes: spotDistance, spotTime</English>
<French>Change: spotDistance, spotTime</French>
<Russian>Изменяет: spotDistance, spotTime</Russian>
<Czech>Upravuje: spotDistance, spotTime</Czech>
<Polish>Zmienia: zasięg rozpoznawania, czas rozpoznawania</Polish>
</Key>
<Key ID="STR_ACE_Zeus_ModuleGlobalSetSkill_cover">
<English>Seek Cover</English>
<French>Chercher couverture</French>
<Russian>Поиск укрытий</Russian>
<Czech>Vyhledávat krytí</Czech>
<Polish>Szukaj osłon</Polish>
</Key>
<Key ID="STR_ACE_Zeus_ModuleGlobalSetSkill_cover_desc">
<English>Should AI seek cover</English>
<French>L'IA devrait elle chercher couverture</French>
<Russian>Должны ли боты искать укрытия</Russian>
<Czech>AI se bude snažit vyhledávat krytí</Czech>
<Polish>Czy AI powinno szukać osłon</Polish>
</Key>
<Key ID="STR_ACE_Zeus_ModuleGlobalSetSkill_combat">
<English>Auto Combat</English>
<French>Combat automatique</French>
<Russian>Авто режим боя</Russian>
<Czech>Automatický režim boje</Czech>
<Polish>Auto walka</Polish>
</Key>
<Key ID="STR_ACE_Zeus_ModuleGlobalSetSkill_combat_desc">
<English>Should AI automatically switch to combat mode</English>
<French>L'IA devrait elle passer automatiquement en mode combat</French>
<Russian>Должны ли боты автоматически переходить в режим боя</Russian>
<Czech>AI se automaticky přepne do bojového režimu</Czech>
<Polish>Czy AI powinno automatycznie przechodzić w tryb walki</Polish>
</Key>
<Key ID="STR_ACE_Zeus_ModuleGroupSide_DisplayName">
<English>Group Side</English>
<French>Côté du groupe</French>
<Russian>Сторона группы</Russian>
<Czech>Strana skupiny</Czech>
<Polish>Strona grupy</Polish>
</Key>
<Key ID="STR_ACE_Zeus_ModulePatrolArea_DisplayName">
<English>Patrol Area</English>
<French>Zone de patrouille</French>
<Russian>Патрулировать зону</Russian>
<Czech>Oblast hlídkování</Czech>
<Polish>Patrol obszaru</Polish>
</Key>
<Key ID="STR_ACE_Zeus_ModuleSurrender_DisplayName">
<English>Toggle Surrender</English>
@ -294,30 +310,35 @@
<French>Téléporter joueurs</French>
<Russian>Телепортиваровать игроков</Russian>
<Czech>Teleportovat hráče</Czech>
<Polish>Teleportuj graczy</Polish>
</Key>
<Key ID="STR_ACE_Zeus_ModuleTeleportPlayers_player">
<English>Player</English>
<French>Joueur</French>
<Russian>Игрока</Russian>
<Czech>Hráč</Czech>
<Polish>Gracz</Polish>
</Key>
<Key ID="STR_ACE_Zeus_ModuleTeleportPlayers_player_desc">
<English>Teleport selected player to module position</English>
<French>Téléporter le joueur sélectionné à la position du module</French>
<Russian>Телепортирует выбранного игрока к местоположению модуля</Russian>
<Czech>Teleportuje vybraného hráče na pozici modulu</Czech>
<Polish>Teleportuje wybranego gracza na pozycję modułu</Polish>
</Key>
<Key ID="STR_ACE_Zeus_ModuleTeleportPlayers_group">
<English>Teleport Group</English>
<French>Téléporter le groupe</French>
<Russian>Телепортировать Группу</Russian>
<Czech>Teleportovat skupinu</Czech>
<Polish>Teleport grupy</Polish>
</Key>
<Key ID="STR_ACE_Zeus_ModuleTeleportPlayers_group_desc">
<English>Teleports all units in group</English>
<French>Téléporte toutes les unités du groupe</French>
<Russian>Телепортирует всех юнитов в группе</Russian>
<Czech>Teleportuje všechny jednotky ve skupině</Czech>
<Polish>Teleportuje wszystkie jednostki w grupie</Polish>
</Key>
<Key ID="STR_ACE_Zeus_ModuleUnconscious_DisplayName">
<English>Toggle Unconscious</English>
@ -336,12 +357,14 @@
<French>Chercher la zone</French>
<Russian>Обыскать зону</Russian>
<Czech>Prohledat oblast</Czech>
<Polish>Przeszukaj teren</Polish>
</Key>
<Key ID="STR_ACE_Zeus_ModuleSearchNearby_DisplayName">
<English>Search Nearby Building</English>
<French>Chercher le bâtiment proche</French>
<Russian>Обыскать ближайшие здания</Russian>
<Czech>Prohledat nejbližší budovu</Czech>
<Polish>Przeszukaj najbliższy budynek</Polish>
</Key>
<Key ID="STR_ACE_Zeus_ModuleSetMedic_DisplayName">
<English>Assign Medic</English>
@ -483,12 +506,14 @@
<French>L'unité doit appartenir à un côté approprié</French>
<Russian>Юнит должен принадлежать соответствующей стороне</Russian>
<Czech>Jednotka musí patřit k příslušné straně</Czech>
<Polish>Jednostka musi należeć do odpowiedniej strony</Polish>
</Key>
<Key ID="STR_ACE_Zeus_BuildingTooFar">
<English>Nearest building is too far away</English>
<French>Le bâtiment le plus proche est trop loin</French>
<Russian>Ближайшие здания слишком далеко</Russian>
<Czech>Nejbližší budova je příliš daleko</Czech>
<Polish>Najbliższy budynek jest zbyt daleko</Polish>
</Key>
<Key ID="STR_ACE_Zeus_NothingSelected">
<English>Place on a unit</English>
@ -541,33 +566,39 @@
<French>Cargo:</French>
<Russian>Груз:</Russian>
<Czech>Náklad:</Czech>
<Polish>Ładunek:</Polish>
</Key>
<Key ID="STR_ACE_Zeus_AttributePosition">
<English>Task Position</English>
<French>Position de la tâche</French>
<Russian>Местоположение задания</Russian>
<Czech>Pozice úkolu</Czech>
<Polish>Pozycja zadania</Polish>
</Key>
<Key ID="STR_ACE_Zeus_AttributePosition_desc">
<English>Select a position to perform the task at</English>
<French>Sélectionne une position où accomplir la tâche</French>
<Russian>Выбрать местоположение для выполнения задания</Russian>
<Polish>Wybierz pozycję na której wykonać zadanie</Polish>
</Key>
<Key ID="STR_ACE_Zeus_AttributeRadius">
<English>Task Radius</English>
<French>Rayon de la tâche</French>
<Russian>Радиус задания</Russian>
<Polish>Obszar zadania</Polish>
</Key>
<Key ID="STR_ACE_Zeus_AttributeRadius_desc">
<English>Radius to perform the task within</English>
<French>Rayon dans lequel la tâche prend place</French>
<Russian>Радиус выполнения задания</Russian>
<Polish>Obszar na którym zadanie powinno zostać wykonane</Polish>
</Key>
<Key ID="STR_ACE_Zeus_AttributeRadiusInvalid">
<English>Invalid radius entered</English>
<French>rayon invalide entré</French>
<Russian>Введен неправильный радиус</Russian>
<Czech>Vložen neplatný parametr</Czech>
<Polish>Wpisano nieprawidłowy promień</Polish>
</Key>
</Package>
</Project>

View File

@ -214,6 +214,10 @@
`ace_medical`
{% endif %}
{% if include.component == "medical_blood" %}
`ace_main`
{% endif %}
{% if include.component == "medical_menu" %}
`ace_medical`
{% endif %}
@ -470,6 +474,10 @@
`ace_common`
{% endif %}
{% if include.component == "nocrosshair" %}
`ace_common`
{% endif %}
{% if include.component == "particles" %}
`ace_common`
{% endif %}

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

View File

@ -244,7 +244,7 @@ ACE_1Rnd_82mm_Mo_Illum | 82mm Illumination Round | Magazine |
ACE_1Rnd_82mm_Mo_HE_Guided | 82mm Guided HE Round | Magazine |
ACE_1Rnd_82mm_Mo_HE_LaserGuided | 82mm Laser Guided HE Round | Magazine |
### M2XA
### MX2A
`Added in 3.1.1`
Class Name | In-Game Name | Type |

View File

@ -0,0 +1,30 @@
---
layout: wiki
title: Medical Blood
description: Spawn blood drops for bleeding units.
group: feature
category: realism
parent: wiki
mod: ace
version:
major: 3
minor: 8
patch: 0
---
<div class="panel callout">
<h5>Note:</h5>
<p>This component supports both ACE medical as well as the vanilla medical systems.</p>
</div>
## 1. Overview
When any unit is bleeding, this component will spawn blood drops on the ground. The same happens for units that are taking damage. It can be configured to run only for players, for all units (AI and Players) or disabled through the ACE Settings framework.
## 2. In game
<img src="{{ site.baseurl }}/img/wiki/feature/ace_blood_screen.jpg" width="500" height="160" alt="ACE Blood in game" />
## 3. Dependencies
{% include dependencies_list.md component="medical_blood" %}

View File

@ -0,0 +1 @@
z\ace\addons\nocrosshair

View File

@ -0,0 +1,6 @@
class CfgInGameUI {
class Cursor {
weapon = ""; // "\A3\ui_f\data\igui\cfg\cursors\weapon_ca.paa";
};
};

View File

@ -0,0 +1,11 @@
ace_nocrosshair
===========
Removes weapon crosshair.
## Maintainers
The people responsible for merging changes to this component or answering potential questions.
- [commy2](https://github.com/commy2)

View File

@ -0,0 +1,18 @@
#include "script_component.hpp"
class CfgPatches {
class ADDON {
ACE_isOptional = 1;
name = COMPONENT_NAME;
units[] = {};
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_common"};
author = ECSTRING(common,ACETeam);
authors[] = {"commy2"};
url = ECSTRING(main,URL);
VERSION_CONFIG;
};
};
#include "CfgInGameUI.hpp"

View File

@ -0,0 +1,18 @@
#define COMPONENT nocrosshair
#define COMPONENT_BEAUTIFIED No Crosshair
#include "\z\ace\addons\main\script_mod.hpp"
// #define DEBUG_MODE_FULL
// #define DISABLE_COMPILE_CACHE
// #define CBA_DEBUG_SYNCHRONOUS
// #define ENABLE_PERFORMANCE_COUNTERS
#ifdef DEBUG_ENABLED_NOCROSSHAIR
#define DEBUG_MODE_FULL
#endif
#ifdef DEBUG_ENABLED_NOCROSSHAIR
#define DEBUG_SETTINGS DEBUG_ENABLED_NOCROSSHAIR
#endif
#include "\z\ace\addons\main\script_macros.hpp"