mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge remote-tracking branch 'upstream/master' into patch-3
This commit is contained in:
commit
460b5fa453
1
.github/release-drafter.yml
vendored
1
.github/release-drafter.yml
vendored
@ -27,6 +27,7 @@ categories:
|
|||||||
|
|
||||||
exclude-labels:
|
exclude-labels:
|
||||||
- 'ignore changelog'
|
- 'ignore changelog'
|
||||||
|
- 'dependencies'
|
||||||
|
|
||||||
change-template: '- $TITLE (#$NUMBER)'
|
change-template: '- $TITLE (#$NUMBER)'
|
||||||
template: |
|
template: |
|
||||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -4,6 +4,7 @@ release/*
|
|||||||
releases/*
|
releases/*
|
||||||
extensions/vcproj32/*
|
extensions/vcproj32/*
|
||||||
extensions/vcproj64/*
|
extensions/vcproj64/*
|
||||||
|
.vscode/*
|
||||||
hemtt
|
hemtt
|
||||||
hemtt.exe
|
hemtt.exe
|
||||||
tools/temp
|
tools/temp
|
||||||
|
@ -56,6 +56,7 @@ Bla1337
|
|||||||
BlackPixxel <blackpixxel96@gmail.com>
|
BlackPixxel <blackpixxel96@gmail.com>
|
||||||
BlackQwar
|
BlackQwar
|
||||||
Brakoviejo
|
Brakoviejo
|
||||||
|
Brett Mayson
|
||||||
Brisse <brisse@outlook.com>
|
Brisse <brisse@outlook.com>
|
||||||
Brostrom.A | Evul <andreas.brostrom.ce@gmail.com>
|
Brostrom.A | Evul <andreas.brostrom.ce@gmail.com>
|
||||||
BullHorn <bullhorn7@gmail.com>
|
BullHorn <bullhorn7@gmail.com>
|
||||||
@ -106,6 +107,7 @@ Hawkins
|
|||||||
Head <brobergsebastian@gmail.com>
|
Head <brobergsebastian@gmail.com>
|
||||||
Hybrid V
|
Hybrid V
|
||||||
john681611 <john681611@hotmail.com>
|
john681611 <john681611@hotmail.com>
|
||||||
|
JoramD
|
||||||
Karneck <dschultz26@hotmail.com>
|
Karneck <dschultz26@hotmail.com>
|
||||||
Kavinsky <nmunozfernandez@gmail.com>
|
Kavinsky <nmunozfernandez@gmail.com>
|
||||||
Keithen <Keithen.Neu@gmail.com>
|
Keithen <Keithen.Neu@gmail.com>
|
||||||
@ -171,3 +173,4 @@ zGuba
|
|||||||
Fyuran <dankemedic@hotmail.com>
|
Fyuran <dankemedic@hotmail.com>
|
||||||
dabako <dabako@dabakoworld.de>
|
dabako <dabako@dabakoworld.de>
|
||||||
Frank <frankplow@protonmail.com>
|
Frank <frankplow@protonmail.com>
|
||||||
|
10Dozen a.k.a Dusin
|
||||||
|
@ -64,7 +64,7 @@ class CfgAmmo {
|
|||||||
class ACE_Gatling_30mm_Sub_HEI: SubmunitionBullet {
|
class ACE_Gatling_30mm_Sub_HEI: SubmunitionBullet {
|
||||||
submunitionAmmo = "Gatling_30mm_HE_Plane_CAS_01_F";
|
submunitionAmmo = "Gatling_30mm_HE_Plane_CAS_01_F";
|
||||||
weaponType = "cannon";
|
weaponType = "cannon";
|
||||||
submunitionConeType[] = {"poissondisccenter", 3};
|
submunitionConeType[] = {"randomcenter", 3};
|
||||||
submunitionConeAngle = 0.056; // in degrees, 0.055 ~= 0.001 mils minute, but present
|
submunitionConeAngle = 0.056; // in degrees, 0.055 ~= 0.001 mils minute, but present
|
||||||
model = "\A3\Weapons_f\Data\bullettracer\tracer_red.p3d";
|
model = "\A3\Weapons_f\Data\bullettracer\tracer_red.p3d";
|
||||||
triggerTime = 0.005;
|
triggerTime = 0.005;
|
||||||
|
@ -8,7 +8,7 @@ class CfgPatches {
|
|||||||
requiredVersion = REQUIRED_VERSION;
|
requiredVersion = REQUIRED_VERSION;
|
||||||
requiredAddons[] = {"ace_common"};
|
requiredAddons[] = {"ace_common"};
|
||||||
author = ECSTRING(common,ACETeam);
|
author = ECSTRING(common,ACETeam);
|
||||||
authors[] = {"alganthe", "mharis001", "SynixeBrett"};
|
authors[] = {"alganthe", "mharis001", "Brett Mayson"};
|
||||||
url = ECSTRING(main,URL);
|
url = ECSTRING(main,URL);
|
||||||
VERSION_CONFIG;
|
VERSION_CONFIG;
|
||||||
};
|
};
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
/*
|
/*
|
||||||
* Author: SynixeBrett
|
* Author: Brett Mayson
|
||||||
* Add a custom sorting method.
|
* Add a custom sorting method.
|
||||||
*
|
*
|
||||||
* Arguments:
|
* Arguments:
|
||||||
|
@ -37,6 +37,7 @@ if (GVAR(currentLoadoutsTab) != IDC_buttonSharedLoadouts) then {
|
|||||||
_contentPanelCtrl lnbSetCurSelRow (_contentPanelCursSel);
|
_contentPanelCtrl lnbSetCurSelRow (_contentPanelCursSel);
|
||||||
|
|
||||||
[(findDisplay IDD_ace_arsenal), [localize LSTRING(loadoutDeleted), _loadoutName] joinString " "] call FUNC(message);
|
[(findDisplay IDD_ace_arsenal), [localize LSTRING(loadoutDeleted), _loadoutName] joinString " "] call FUNC(message);
|
||||||
|
[QGVAR(onLoadoutDelete), [_loadoutName]] call CBA_fnc_localEvent;
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
private _profileName = profileName; // GVAR(center) could be a remote unit
|
private _profileName = profileName; // GVAR(center) could be a remote unit
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
/*
|
/*
|
||||||
* Author: SynixeBrett
|
* Author: Brett Mayson
|
||||||
* Create the internal stats arrays when needed for the first time
|
* Create the internal stats arrays when needed for the first time
|
||||||
*
|
*
|
||||||
* Arguments:
|
* Arguments:
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
#include "..\defines.hpp"
|
#include "..\defines.hpp"
|
||||||
/*
|
/*
|
||||||
* Author: Alganthe, SynixeBrett
|
* Author: Alganthe, Brett Mayson
|
||||||
* Fill right panel.
|
* Fill right panel.
|
||||||
*
|
*
|
||||||
* Arguments:
|
* Arguments:
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
#include "..\defines.hpp"
|
#include "..\defines.hpp"
|
||||||
/*
|
/*
|
||||||
* Author: Alganthe, Dedmen, SynixeBrett
|
* Author: Alganthe, Dedmen, Brett Mayson
|
||||||
* Sort arsenal panel.
|
* Sort arsenal panel.
|
||||||
*
|
*
|
||||||
* Arguments:
|
* Arguments:
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
/*
|
/*
|
||||||
* Author: Alganthe, SynixeBrett
|
* Author: Alganthe, Brett Mayson
|
||||||
* Statement to sort weapons by their accuracy.
|
* Statement to sort weapons by their accuracy.
|
||||||
*
|
*
|
||||||
* Arguments:
|
* Arguments:
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
/*
|
/*
|
||||||
* Author: SynixeBrett
|
* Author: Brett Mayson
|
||||||
* Statement to sort items by the amount in inventory.
|
* Statement to sort items by the amount in inventory.
|
||||||
*
|
*
|
||||||
* Arguments:
|
* Arguments:
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
/*
|
/*
|
||||||
* Author: SynixeBrett
|
* Author: Brett Mayson
|
||||||
* Statement to sort magazines by their ammo count.
|
* Statement to sort magazines by their ammo count.
|
||||||
*
|
*
|
||||||
* Arguments:
|
* Arguments:
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
/*
|
/*
|
||||||
* Author: Alganthe, SynixeBrett
|
* Author: Alganthe, Brett Mayson
|
||||||
* Statement to sort items by their mass.
|
* Statement to sort items by their mass.
|
||||||
*
|
*
|
||||||
* Arguments:
|
* Arguments:
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
/*
|
/*
|
||||||
* Author: SynixeBrett
|
* Author: Brett Mayson
|
||||||
* Statement to sort items by the mod they belong to.
|
* Statement to sort items by the mod they belong to.
|
||||||
*
|
*
|
||||||
* Arguments:
|
* Arguments:
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
/*
|
/*
|
||||||
* Author: Alganthe, SynixeBrett
|
* Author: Alganthe, Brett Mayson
|
||||||
* Statement to sort weapons by their rate of fire.
|
* Statement to sort weapons by their rate of fire.
|
||||||
*
|
*
|
||||||
* Arguments:
|
* Arguments:
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
/*
|
/*
|
||||||
* Author: Alganthe, SynixeBrett
|
* Author: Alganthe, Brett Mayson
|
||||||
* Statement to sort optics by their magnification.
|
* Statement to sort optics by their magnification.
|
||||||
*
|
*
|
||||||
* Arguments:
|
* Arguments:
|
||||||
|
@ -389,6 +389,7 @@
|
|||||||
<French>Trier par capacité de chargement</French>
|
<French>Trier par capacité de chargement</French>
|
||||||
<Japanese>容量で並び替え</Japanese>
|
<Japanese>容量で並び替え</Japanese>
|
||||||
<Spanish>Ordenar por capacidad</Spanish>
|
<Spanish>Ordenar por capacidad</Spanish>
|
||||||
|
<Russian>Сортировка по вместимости</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Arsenal_sortByAccuracyText">
|
<Key ID="STR_ACE_Arsenal_sortByAccuracyText">
|
||||||
<English>Sort by accuracy</English>
|
<English>Sort by accuracy</English>
|
||||||
@ -397,6 +398,7 @@
|
|||||||
<Japanese>精度で並び替え</Japanese>
|
<Japanese>精度で並び替え</Japanese>
|
||||||
<Turkish>Isabet doğruluğuna göre sırala</Turkish>
|
<Turkish>Isabet doğruluğuna göre sırala</Turkish>
|
||||||
<Spanish>Ordenar por precisión</Spanish>
|
<Spanish>Ordenar por precisión</Spanish>
|
||||||
|
<Russian>Сортировка по точности</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Arsenal_sortByRateOfFireText">
|
<Key ID="STR_ACE_Arsenal_sortByRateOfFireText">
|
||||||
<English>Sort by rate of fire</English>
|
<English>Sort by rate of fire</English>
|
||||||
@ -405,6 +407,7 @@
|
|||||||
<Japanese>連射速度で並び替え</Japanese>
|
<Japanese>連射速度で並び替え</Japanese>
|
||||||
<Turkish>Atış hızına göre sırala</Turkish>
|
<Turkish>Atış hızına göre sırala</Turkish>
|
||||||
<Spanish>Ordenar por cadencia de tiro</Spanish>
|
<Spanish>Ordenar por cadencia de tiro</Spanish>
|
||||||
|
<Russian>Сортировка по темпу стрельбы</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Arsenal_sortByMagnificationText">
|
<Key ID="STR_ACE_Arsenal_sortByMagnificationText">
|
||||||
<English>Sort by magnification</English>
|
<English>Sort by magnification</English>
|
||||||
@ -412,6 +415,7 @@
|
|||||||
<French>Trier par grossissement</French>
|
<French>Trier par grossissement</French>
|
||||||
<Japanese>倍率で並び替え</Japanese>
|
<Japanese>倍率で並び替え</Japanese>
|
||||||
<Spanish>Ordenar por magnificación</Spanish>
|
<Spanish>Ordenar por magnificación</Spanish>
|
||||||
|
<Russian>Сортировка по кратности приближения</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Arsenal_sortByMagCountText">
|
<Key ID="STR_ACE_Arsenal_sortByMagCountText">
|
||||||
<English>Sort by ammo count</English>
|
<English>Sort by ammo count</English>
|
||||||
@ -420,18 +424,21 @@
|
|||||||
<Japanese>装弾数で並び替え</Japanese>
|
<Japanese>装弾数で並び替え</Japanese>
|
||||||
<Turkish>Mermi sayısına göre sırala</Turkish>
|
<Turkish>Mermi sayısına göre sırala</Turkish>
|
||||||
<Spanish>Ordenar por cantidad de munición</Spanish>
|
<Spanish>Ordenar por cantidad de munición</Spanish>
|
||||||
|
<Russian>Сортировка по количеству боеприпасов</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Arsenal_sortByProtectionBallistic">
|
<Key ID="STR_ACE_Arsenal_sortByProtectionBallistic">
|
||||||
<English>Sort by ballistic protection</English>
|
<English>Sort by ballistic protection</English>
|
||||||
<French>Trier par protection balistique</French>
|
<French>Trier par protection balistique</French>
|
||||||
<Japanese>防弾性能で並び替え</Japanese>
|
<Japanese>防弾性能で並び替え</Japanese>
|
||||||
<Spanish>Ordenar por protección balística</Spanish>
|
<Spanish>Ordenar por protección balística</Spanish>
|
||||||
|
<Russian>Сортировка по баллистической защите</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Arsenal_sortByProtectionExplosive">
|
<Key ID="STR_ACE_Arsenal_sortByProtectionExplosive">
|
||||||
<English>Sort by explosive protection</English>
|
<English>Sort by explosive protection</English>
|
||||||
<French>Trier par résistance aux explosifs</French>
|
<French>Trier par résistance aux explosifs</French>
|
||||||
<Japanese>防爆性能で並び替え</Japanese>
|
<Japanese>防爆性能で並び替え</Japanese>
|
||||||
<Spanish>Ordenar por protección de explosivos</Spanish>
|
<Spanish>Ordenar por protección de explosivos</Spanish>
|
||||||
|
<Russian>Сортировка по защите от взрывов</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Arsenal_buttonShareTooltip">
|
<Key ID="STR_ACE_Arsenal_buttonShareTooltip">
|
||||||
<English>Share or stop sharing the selected loadout</English>
|
<English>Share or stop sharing the selected loadout</English>
|
||||||
|
@ -86,6 +86,10 @@ class CfgVehicles {
|
|||||||
dayLight = 0;
|
dayLight = 0;
|
||||||
onlyInNvg = 1;
|
onlyInNvg = 1;
|
||||||
useFlare = 0;
|
useFlare = 0;
|
||||||
|
maxLifetime = "8 * 60 * 60";
|
||||||
|
blinkingPattern[] = {0.1, 1.1}; // 0.1 s on, 1.1 s off
|
||||||
|
blinkingStartsOn = 1;
|
||||||
|
blinkingPatternGuarantee = 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
side = 7;//-1=NO_SIDE yellow box,3=CIV grey box,4=NEUTRAL yellow box,6=FRIENDLY green box,7=LOGIC no radar signature
|
side = 7;//-1=NO_SIDE yellow box,3=CIV grey box,4=NEUTRAL yellow box,6=FRIENDLY green box,7=LOGIC no radar signature
|
||||||
|
@ -171,30 +171,30 @@
|
|||||||
<Russian>#4 Картечь</Russian>
|
<Russian>#4 Картечь</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Ballistics_12Gauge_Pellets_No4_Bird_NameShort">
|
<Key ID="STR_ACE_Ballistics_12Gauge_Pellets_No4_Bird_NameShort">
|
||||||
<English>#7 Birdshot</English>
|
<English>#4 Birdshot</English>
|
||||||
<Spanish>Perdigones #7</Spanish>
|
<Spanish>Perdigones #4</Spanish>
|
||||||
<German>#7 Vogelschrot</German>
|
<German>#4 Vogelschrot</German>
|
||||||
<Chinese>#7 鹿彈</Chinese>
|
<Chinese>#4 鹿彈</Chinese>
|
||||||
<Italian>#7 Birdshot</Italian>
|
<Italian>#4 Birdshot</Italian>
|
||||||
<Japanese>#7 バックショット</Japanese>
|
<Japanese>#4 バックショット</Japanese>
|
||||||
<French>Grenaille No.4</French>
|
<French>Grenaille No.4</French>
|
||||||
<Czech>#7 Broky malé</Czech>
|
<Czech>#4 Broky malé</Czech>
|
||||||
<Polish>#7 Śrut Drobny</Polish>
|
<Polish>#4 Śrut Drobny</Polish>
|
||||||
<Turkish>#7 Küçük saçma</Turkish>
|
<Turkish>#4 Küçük saçma</Turkish>
|
||||||
<Russian>#7 Дробь</Russian>
|
<Russian>#4 Дробь</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Ballistics_12Gauge_Pellets_No4_Bird_Description">
|
<Key ID="STR_ACE_Ballistics_12Gauge_Pellets_No4_Bird_Description">
|
||||||
<English>#7 Birdshot</English>
|
<English>#4 Birdshot</English>
|
||||||
<Spanish>Perdigones #7</Spanish>
|
<Spanish>Perdigones #4</Spanish>
|
||||||
<German>#7 Vogelschrot</German>
|
<German>#4 Vogelschrot</German>
|
||||||
<Chinese>#7 鹿彈</Chinese>
|
<Chinese>#4 鹿彈</Chinese>
|
||||||
<Italian>#7 Birdshot</Italian>
|
<Italian>#4 Birdshot</Italian>
|
||||||
<Japanese>#7 バックショット</Japanese>
|
<Japanese>#4 バックショット</Japanese>
|
||||||
<French>Grenaille No.4</French>
|
<French>Grenaille No.4</French>
|
||||||
<Czech>#7 Broky malé - kalibr 2.54 mm</Czech>
|
<Czech>#4 Broky malé - kalibr 3.3 mm</Czech>
|
||||||
<Polish>#7 Śrut Drobny (Birdshot)</Polish>
|
<Polish>#4 Śrut Drobny (Birdshot)</Polish>
|
||||||
<Turkish>#7 Küçük saçma</Turkish>
|
<Turkish>#4 Küçük saçma</Turkish>
|
||||||
<Russian>#7 Дробь</Russian>
|
<Russian>#4 Дробь</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Ballistics_2Rnd_12Gauge_Pellets_No00_Buck_Name">
|
<Key ID="STR_ACE_Ballistics_2Rnd_12Gauge_Pellets_No00_Buck_Name">
|
||||||
<English>12 Gauge 2Rnd #00 Buckshot</English>
|
<English>12 Gauge 2Rnd #00 Buckshot</English>
|
||||||
@ -281,18 +281,18 @@
|
|||||||
<Turkish>12 kalibre 2 mermi #4 İrisaçma</Turkish>
|
<Turkish>12 kalibre 2 mermi #4 İrisaçma</Turkish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Ballistics_2Rnd_12Gauge_Pellets_No4_Bird_Name">
|
<Key ID="STR_ACE_Ballistics_2Rnd_12Gauge_Pellets_No4_Bird_Name">
|
||||||
<English>12 Gauge 2Rnd #7 Birdshot</English>
|
<English>12 Gauge 2Rnd #4 Birdshot</English>
|
||||||
<Spanish>2 Cartuchos de Perdigones Calibre 12 #7</Spanish>
|
<Spanish>2 Cartuchos de Perdigones Calibre 12 #4</Spanish>
|
||||||
<German>12 Gauge 2Schuss #7 Schrotmunition</German>
|
<German>12 Gauge 2Schuss #4 Schrotmunition</German>
|
||||||
<Chinese>12鉛徑 2發 #7 鹿彈</Chinese>
|
<Chinese>12鉛徑 2發 #4 鹿彈</Chinese>
|
||||||
<Italian>12 Gauge 2Rnd #7 Birdshot</Italian>
|
<Italian>12 Gauge 2Rnd #4 Birdshot</Italian>
|
||||||
<Japanese>12 ゲージ 2 発入り #7 バックショット</Japanese>
|
<Japanese>12 ゲージ 2 発入り #4 バックショット</Japanese>
|
||||||
<French>2 balles cal. 12 Grenaille No.4</French>
|
<French>2 balles cal. 12 Grenaille No.4</French>
|
||||||
<Czech>2x #7 Broky malé (kalibr 2.54 mm)</Czech>
|
<Czech>2x #4 Broky malé (kalibr 3.3 mm)</Czech>
|
||||||
<Polish>12 Gauge 2 naboje #7 Śrut</Polish>
|
<Polish>12 Gauge 2 naboje #4 Śrut</Polish>
|
||||||
<Portuguese>Chumbo #7 Calibre Doze 2 Tiros</Portuguese>
|
<Portuguese>Chumbo #4 Calibre Doze 2 Tiros</Portuguese>
|
||||||
<Russian>12 Калибр 2 патр. #7 Дробь</Russian>
|
<Russian>12 Калибр 2 патр. #4 Дробь</Russian>
|
||||||
<Turkish>12 kalibre 2 mermi #5 İrisaçma</Turkish>
|
<Turkish>12 kalibre 2 mermi #4 İrisaçma</Turkish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Ballistics_6Rnd_12Gauge_Pellets_No00_Buck_Name">
|
<Key ID="STR_ACE_Ballistics_6Rnd_12Gauge_Pellets_No00_Buck_Name">
|
||||||
<English>12 Gauge 6Rnd #00 Buckshot</English>
|
<English>12 Gauge 6Rnd #00 Buckshot</English>
|
||||||
@ -379,17 +379,17 @@
|
|||||||
<Turkish>12 kalibre 6 mermi #4 İrisaçma</Turkish>
|
<Turkish>12 kalibre 6 mermi #4 İrisaçma</Turkish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Ballistics_6Rnd_12Gauge_Pellets_No4_Bird_Name">
|
<Key ID="STR_ACE_Ballistics_6Rnd_12Gauge_Pellets_No4_Bird_Name">
|
||||||
<English>12 Gauge 6Rnd #7 Birdshot</English>
|
<English>12 Gauge 6Rnd #4 Birdshot</English>
|
||||||
<Spanish>6 Cartuchos de Perdigones Calibre 12 #7</Spanish>
|
<Spanish>6 Cartuchos de Perdigones Calibre 12 #4</Spanish>
|
||||||
<German>12 Gauge 6Schuss #7 Schrotmunition</German>
|
<German>12 Gauge 6Schuss #4 Schrotmunition</German>
|
||||||
<Chinese>12鉛徑 6發 #7 鹿彈</Chinese>
|
<Chinese>12鉛徑 6發 #4 鹿彈</Chinese>
|
||||||
<Italian>12 Gauge 6Rnd #7 Birdshot</Italian>
|
<Italian>12 Gauge 6Rnd #4 Birdshot</Italian>
|
||||||
<Japanese>12 ゲージ 6 発入り #7 バックショット</Japanese>
|
<Japanese>12 ゲージ 6 発入り #4 バックショット</Japanese>
|
||||||
<French>6 balles cal. 12 Grenaille No.4</French>
|
<French>6 balles cal. 12 Grenaille No.4</French>
|
||||||
<Czech>6x #7 Broky malé (kalibr 2.54 mm)</Czech>
|
<Czech>6x #4 Broky malé (kalibr 3.3 mm)</Czech>
|
||||||
<Polish>12 Gauge 6 naboi #7 Śrut</Polish>
|
<Polish>12 Gauge 6 naboi #4 Śrut</Polish>
|
||||||
<Russian>12 Калибр 6 патр. #7 Дробь</Russian>
|
<Russian>12 Калибр 6 патр. #4 Дробь</Russian>
|
||||||
<Turkish>12 kalibre 6 mermi #7 İrisaçma</Turkish>
|
<Turkish>12 kalibre 6 mermi #4 İrisaçma</Turkish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Ballistics_15Rnd_12Gauge_Pellets_No00_Buck_Name">
|
<Key ID="STR_ACE_Ballistics_15Rnd_12Gauge_Pellets_No00_Buck_Name">
|
||||||
<English>12 Gauge 15Rnd #00 Buckshot</English>
|
<English>12 Gauge 15Rnd #00 Buckshot</English>
|
||||||
|
10
addons/common/CfgWrapperUI.hpp
Normal file
10
addons/common/CfgWrapperUI.hpp
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
class CfgWrapperUI {
|
||||||
|
class Cursors {
|
||||||
|
class Arrow;
|
||||||
|
class GVAR(blank): Arrow {
|
||||||
|
// This texture has a single 99% transparent pixel and is otherwise blank
|
||||||
|
// The single pixel is necessary, otherwise appears as a black 32 px square
|
||||||
|
texture = QPATHTOF(data\blank_cursor_ca.paa);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
18
addons/common/DisableMouseDialog.hpp
Normal file
18
addons/common/DisableMouseDialog.hpp
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
class ctrlMapEmpty;
|
||||||
|
class GVAR(DisableMouse_Dialog) {
|
||||||
|
idd = -1;
|
||||||
|
movingEnable = 0;
|
||||||
|
onLoad = QUOTE(with uiNameSpace do { GVAR(dlgDisableMouse) = _this # 0; };);
|
||||||
|
objects[] = {};
|
||||||
|
class controlsBackground {
|
||||||
|
// Transparent map allows setting custom cursor
|
||||||
|
class Background: ctrlMapEmpty {
|
||||||
|
idc = 101;
|
||||||
|
fade = 1;
|
||||||
|
x = "safezoneXAbs";
|
||||||
|
y = "safezoneY";
|
||||||
|
w = "safezoneWAbs";
|
||||||
|
h = "safezoneH";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
@ -49,29 +49,3 @@ class GVAR(ProgressBar_Dialog) {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
class GVAR(DisableMouse_Dialog) {
|
|
||||||
idd = -1;
|
|
||||||
movingEnable = 0;
|
|
||||||
onLoad = QUOTE(uiNamespace setVariable [ARR_2(QUOTE(QGVAR(dlgDisableMouse)),_this select 0)];);
|
|
||||||
objects[] = {};
|
|
||||||
class controlsBackground {
|
|
||||||
class Background {
|
|
||||||
idc = -1;
|
|
||||||
moving = 0;
|
|
||||||
font = "TahomaB";
|
|
||||||
text = "";
|
|
||||||
sizeEx = 0;
|
|
||||||
lineSpacing = 0;
|
|
||||||
type = 0;
|
|
||||||
style = 0;
|
|
||||||
size = 1;
|
|
||||||
colorBackground[] = {0, 0, 0, 0};//0.5
|
|
||||||
colorText[] = {0, 0, 0, 0};
|
|
||||||
x = "safezoneX";
|
|
||||||
y = "safezoneY";
|
|
||||||
w = "safezoneW";
|
|
||||||
h = "safezoneH";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
@ -420,13 +420,18 @@ GVAR(reloadMutex_lastMagazines) = [];
|
|||||||
private _gesture = getText (_wpnMzlConfig >> "reloadAction");
|
private _gesture = getText (_wpnMzlConfig >> "reloadAction");
|
||||||
if (_gesture == "") exitWith {}; //Ignore weapons with no reload gesture (binoculars)
|
if (_gesture == "") exitWith {}; //Ignore weapons with no reload gesture (binoculars)
|
||||||
private _isLauncher = _weapon isKindOf ["Launcher", configFile >> "CfgWeapons"];
|
private _isLauncher = _weapon isKindOf ["Launcher", configFile >> "CfgWeapons"];
|
||||||
private _animConfig = ["CfgGesturesMale", "CfgMovesMaleSdr"] select _isLauncher;
|
private _duration = 0;
|
||||||
private _duration = getNumber (configfile >> _animConfig >> "States" >> _gesture >> "speed");
|
if (_isLauncher) then {
|
||||||
|
_duration = getNumber (configfile >> "CfgMovesMaleSdr" >> "States" >> _gesture >> "speed");
|
||||||
|
};
|
||||||
|
if (_duration == 0) then {
|
||||||
|
_duration = getNumber (configfile >> "CfgGesturesMale" >> "States" >> _gesture >> "speed");
|
||||||
|
};
|
||||||
|
|
||||||
if (_duration != 0) then {
|
if (_duration != 0) then {
|
||||||
_duration = if (_duration < 0) then { abs _duration } else { 1 / _duration };
|
_duration = if (_duration < 0) then { abs _duration } else { 1 / _duration };
|
||||||
} else {
|
} else {
|
||||||
_duration = 3;
|
_duration = 6;
|
||||||
};
|
};
|
||||||
|
|
||||||
TRACE_2("Reloading, blocking gestures",_weapon,_duration);
|
TRACE_2("Reloading, blocking gestures",_weapon,_duration);
|
||||||
|
@ -9,7 +9,7 @@ PREP_RECOMPILE_END;
|
|||||||
|
|
||||||
GVAR(syncedEvents) = [] call CBA_fnc_hashCreate;
|
GVAR(syncedEvents) = [] call CBA_fnc_hashCreate;
|
||||||
GVAR(showHudHash) = [] call CBA_fnc_hashCreate;
|
GVAR(showHudHash) = [] call CBA_fnc_hashCreate;
|
||||||
GVAR(vehicleIconCache) = call CBA_fnc_createNamespace; // for getVehicleIcon
|
GVAR(vehicleIconCache) = createHashMap; // for getVehicleIcon
|
||||||
|
|
||||||
GVAR(settingsInitFinished) = false;
|
GVAR(settingsInitFinished) = false;
|
||||||
GVAR(runAtSettingsInitialized) = [];
|
GVAR(runAtSettingsInitialized) = [];
|
||||||
|
@ -14,18 +14,17 @@ class CfgPatches {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
#include "CfgEventHandlers.hpp"
|
|
||||||
|
|
||||||
#include "CfgLocationTypes.hpp"
|
|
||||||
#include "CfgSounds.hpp"
|
|
||||||
#include "CfgVehicles.hpp"
|
|
||||||
#include "CfgWeapons.hpp"
|
|
||||||
#include "CfgMagazines.hpp"
|
|
||||||
|
|
||||||
#include "CfgMoves.hpp"
|
|
||||||
#include "CfgVoice.hpp"
|
|
||||||
#include "CfgUnitInsignia.hpp"
|
|
||||||
#include "CfgEden.hpp"
|
#include "CfgEden.hpp"
|
||||||
|
#include "CfgEventHandlers.hpp"
|
||||||
|
#include "CfgLocationTypes.hpp"
|
||||||
|
#include "CfgMagazines.hpp"
|
||||||
|
#include "CfgMoves.hpp"
|
||||||
|
#include "CfgSounds.hpp"
|
||||||
|
#include "CfgUnitInsignia.hpp"
|
||||||
|
#include "CfgVehicles.hpp"
|
||||||
|
#include "CfgVoice.hpp"
|
||||||
|
#include "CfgWeapons.hpp"
|
||||||
|
#include "CfgWrapperUI.hpp"
|
||||||
|
|
||||||
class ACE_Rsc_Display_Base {
|
class ACE_Rsc_Display_Base {
|
||||||
idd = -1;
|
idd = -1;
|
||||||
@ -62,6 +61,7 @@ class ACE_Rsc_Control_Base {
|
|||||||
#include "ACE_Settings.hpp"
|
#include "ACE_Settings.hpp"
|
||||||
#include "define.hpp"
|
#include "define.hpp"
|
||||||
#include "ProgressScreen.hpp"
|
#include "ProgressScreen.hpp"
|
||||||
|
#include "DisableMouseDialog.hpp"
|
||||||
#include "HintConfig.hpp"
|
#include "HintConfig.hpp"
|
||||||
#include "RscInfoType.hpp"
|
#include "RscInfoType.hpp"
|
||||||
#include "CompassControl.hpp"
|
#include "CompassControl.hpp"
|
||||||
|
BIN
addons/common/data/blank_cursor_ca.paa
Normal file
BIN
addons/common/data/blank_cursor_ca.paa
Normal file
Binary file not shown.
@ -24,6 +24,7 @@ params ["_unit", "_classname", ["_container", ""], ["_ammoCount", -1]];
|
|||||||
private _type = _classname call FUNC(getItemType);
|
private _type = _classname call FUNC(getItemType);
|
||||||
|
|
||||||
private _canAdd = false;
|
private _canAdd = false;
|
||||||
|
private _canFitWeaponSlot = false;
|
||||||
private _addedToUnit = false;
|
private _addedToUnit = false;
|
||||||
|
|
||||||
switch (_container) do {
|
switch (_container) do {
|
||||||
@ -38,12 +39,28 @@ switch (_container) do {
|
|||||||
};
|
};
|
||||||
default {
|
default {
|
||||||
_canAdd = [_unit, _classname] call CBA_fnc_canAddItem;
|
_canAdd = [_unit, _classname] call CBA_fnc_canAddItem;
|
||||||
|
if (_canAdd) then {
|
||||||
|
switch (_type select 1) do {
|
||||||
|
case "primary": {
|
||||||
|
_canFitWeaponSlot = primaryWeapon _unit == "";
|
||||||
|
};
|
||||||
|
case "secondary": {
|
||||||
|
_canFitWeaponSlot = secondaryWeapon _unit == "";
|
||||||
|
};
|
||||||
|
case "handgun": {
|
||||||
|
_canFitWeaponSlot = handgunWeapon _unit == "";
|
||||||
|
};
|
||||||
|
case "binocular": {
|
||||||
|
_canFitWeaponSlot = binocular _unit == "";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
switch (_type select 0) do {
|
switch (_type select 0) do {
|
||||||
case "weapon": {
|
case "weapon": {
|
||||||
if (_canAdd) then {
|
if (_canAdd || {_canFitWeaponSlot}) then {
|
||||||
_addedToUnit = true;
|
_addedToUnit = true;
|
||||||
|
|
||||||
switch (_container) do {
|
switch (_container) do {
|
||||||
@ -57,7 +74,21 @@ switch (_type select 0) do {
|
|||||||
(uniformContainer _unit) addWeaponCargoGlobal [_classname, 1];
|
(uniformContainer _unit) addWeaponCargoGlobal [_classname, 1];
|
||||||
};
|
};
|
||||||
default {
|
default {
|
||||||
_unit addWeaponGlobal _classname;
|
if (_canFitWeaponSlot) then {
|
||||||
|
_unit addWeaponGlobal _classname;
|
||||||
|
} else {
|
||||||
|
{
|
||||||
|
_x params ["_parameters", "_container"];
|
||||||
|
|
||||||
|
if (_parameters call CBA_fnc_canAddItem) exitWith {
|
||||||
|
_container addWeaponCargoGlobal [_classname, 1]; // addWeaponGlobal will replace the weapon currently in a slot
|
||||||
|
};
|
||||||
|
} forEach [
|
||||||
|
[[_unit, _classname, 1, false, false, true], backpackContainer _unit],
|
||||||
|
[[_unit, _classname, 1, false, true, false], vestContainer _unit],
|
||||||
|
[[_unit, _classname, 1, true, false, false], uniformContainer _unit]
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
|
@ -41,6 +41,10 @@ if (_state) then {
|
|||||||
|
|
||||||
private _display = uiNamespace getVariable QGVAR(dlgDisableMouse);
|
private _display = uiNamespace getVariable QGVAR(dlgDisableMouse);
|
||||||
|
|
||||||
|
// Hide cursor by using custom transparent cursor
|
||||||
|
private _map = _display displayCtrl 101;
|
||||||
|
_map ctrlMapCursor ["", QGVAR(blank)];
|
||||||
|
|
||||||
_display displayAddEventHandler ["KeyDown", {
|
_display displayAddEventHandler ["KeyDown", {
|
||||||
params ["", "_key"];
|
params ["", "_key"];
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ private _objectType = if (_object isEqualType objNull) then {
|
|||||||
} else {
|
} else {
|
||||||
_object
|
_object
|
||||||
};
|
};
|
||||||
private _cachedValue = GVAR(vehicleIconCache) getVariable _objectType;
|
private _cachedValue = GVAR(vehicleIconCache) get _objectType;
|
||||||
|
|
||||||
if (isNil "_cachedValue") then {
|
if (isNil "_cachedValue") then {
|
||||||
private _vehicleValue = getText (configfile >> "CfgVehicles" >> _objectType >> "icon");
|
private _vehicleValue = getText (configfile >> "CfgVehicles" >> _objectType >> "icon");
|
||||||
@ -41,7 +41,7 @@ if (isNil "_cachedValue") then {
|
|||||||
_cachedValue = _vehicleIconValue;
|
_cachedValue = _vehicleIconValue;
|
||||||
};
|
};
|
||||||
|
|
||||||
GVAR(vehicleIconCache) setVariable [_objectType, _cachedValue];
|
GVAR(vehicleIconCache) set [_objectType, _cachedValue];
|
||||||
};
|
};
|
||||||
|
|
||||||
_cachedValue
|
_cachedValue
|
||||||
|
@ -47,17 +47,22 @@ unassignVehicle _unit;
|
|||||||
[_unit] orderGetIn false;
|
[_unit] orderGetIn false;
|
||||||
|
|
||||||
TRACE_1("Ejecting", alive _unit);
|
TRACE_1("Ejecting", alive _unit);
|
||||||
_unit action ["Eject", vehicle _unit];
|
private _vehicle = vehicle _unit;
|
||||||
|
if (local _vehicle) then {
|
||||||
|
_unit action ["Eject", _vehicle];
|
||||||
|
// Failsafe - sometimes eject alone doesn't work, but moveOut does
|
||||||
|
[{
|
||||||
|
params ["_unit"];
|
||||||
|
|
||||||
// Failsafe - sometimes eject alone doesn't work, but moveOut does
|
if (vehicle _unit != _unit) then {
|
||||||
[{
|
WARNING_1("UnloadPersonLocal [%1] did not eject normally",_unit);
|
||||||
params ["_unit"];
|
moveOut _unit;
|
||||||
|
};
|
||||||
|
}, [_unit], 1] call CBA_fnc_waitAndExecute;
|
||||||
|
|
||||||
if (vehicle _unit != _unit) then {
|
} else {
|
||||||
WARNING_1("UnloadPersonLocal [%1] did not eject normally",_unit);
|
moveOut _unit;
|
||||||
moveOut _unit;
|
};
|
||||||
};
|
|
||||||
}, [_unit], 1] call CBA_fnc_waitAndExecute;
|
|
||||||
|
|
||||||
[{
|
[{
|
||||||
params ["_unit", "_emptyPos"];
|
params ["_unit", "_emptyPos"];
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
QGVAR(allowFadeMusic),
|
QGVAR(allowFadeMusic),
|
||||||
"CHECKBOX",
|
"CHECKBOX",
|
||||||
[LSTRING(AllowFadeMusic), LSTRING(AllowFadeMusicTooltip)],
|
[LSTRING(AllowFadeMusic), LSTRING(AllowFadeMusicTooltip)],
|
||||||
localize LSTRING(ACEKeybindCategoryCommon),
|
format ["ACE %1", localize LSTRING(DisplayName)],
|
||||||
true,
|
true,
|
||||||
true
|
true
|
||||||
] call CBA_fnc_addSetting;
|
] call CBA_fnc_addSetting;
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
<Chinesesimp>通用</Chinesesimp>
|
<Chinesesimp>通用</Chinesesimp>
|
||||||
<Korean>일반</Korean>
|
<Korean>일반</Korean>
|
||||||
<Polish>Ogólny</Polish>
|
<Polish>Ogólny</Polish>
|
||||||
<Russian>Общий</Russian>
|
<Russian>Общие</Russian>
|
||||||
<Portuguese>Comum</Portuguese>
|
<Portuguese>Comum</Portuguese>
|
||||||
<Spanish>Común</Spanish>
|
<Spanish>Común</Spanish>
|
||||||
<Czech>Obecné</Czech>
|
<Czech>Obecné</Czech>
|
||||||
|
@ -357,9 +357,10 @@ class DAGR_Menu {
|
|||||||
sizeEx = 0.04;
|
sizeEx = 0.04;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//Waypoint adding and modification digits underline
|
||||||
class DAGR_MENU_PSELECTION1 : DAGR_Menu_Pic {
|
class DAGR_MENU_PSELECTION1 : DAGR_Menu_Pic {
|
||||||
idc = 2668788;
|
idc = 2668788;
|
||||||
x = 0.451;
|
x = 0.465;
|
||||||
y = 0.352;
|
y = 0.352;
|
||||||
w = 0.01;
|
w = 0.01;
|
||||||
h = 0.003;
|
h = 0.003;
|
||||||
@ -367,7 +368,7 @@ class DAGR_Menu {
|
|||||||
|
|
||||||
class DAGR_MENU_PSELECTION2 : DAGR_Menu_Pic {
|
class DAGR_MENU_PSELECTION2 : DAGR_Menu_Pic {
|
||||||
idc = 2668789;
|
idc = 2668789;
|
||||||
x = 0.465;
|
x = 0.475;
|
||||||
y = 0.352;
|
y = 0.352;
|
||||||
w = 0.01;
|
w = 0.01;
|
||||||
h = 0.003;
|
h = 0.003;
|
||||||
@ -375,7 +376,7 @@ class DAGR_Menu {
|
|||||||
|
|
||||||
class DAGR_MENU_PSELECTION3 : DAGR_Menu_Pic {
|
class DAGR_MENU_PSELECTION3 : DAGR_Menu_Pic {
|
||||||
idc = 2668790;
|
idc = 2668790;
|
||||||
x = 0.479;
|
x = 0.485;
|
||||||
y = 0.352;
|
y = 0.352;
|
||||||
w = 0.01;
|
w = 0.01;
|
||||||
h = 0.003;
|
h = 0.003;
|
||||||
@ -383,7 +384,7 @@ class DAGR_Menu {
|
|||||||
|
|
||||||
class DAGR_MENU_PSELECTION4 : DAGR_Menu_Pic {
|
class DAGR_MENU_PSELECTION4 : DAGR_Menu_Pic {
|
||||||
idc = 2668791;
|
idc = 2668791;
|
||||||
x = 0.493;
|
x = 0.495;
|
||||||
y = 0.352;
|
y = 0.352;
|
||||||
w = 0.01;
|
w = 0.01;
|
||||||
h = 0.003;
|
h = 0.003;
|
||||||
@ -391,7 +392,7 @@ class DAGR_Menu {
|
|||||||
|
|
||||||
class DAGR_MENU_PSELECTION5 : DAGR_Menu_Pic {
|
class DAGR_MENU_PSELECTION5 : DAGR_Menu_Pic {
|
||||||
idc = 2668792;
|
idc = 2668792;
|
||||||
x = 0.507;
|
x = 0.505;
|
||||||
y = 0.352;
|
y = 0.352;
|
||||||
w = 0.01;
|
w = 0.01;
|
||||||
h = 0.003;
|
h = 0.003;
|
||||||
@ -399,7 +400,7 @@ class DAGR_Menu {
|
|||||||
|
|
||||||
class DAGR_MENU_PSELECTION6 : DAGR_Menu_Pic {
|
class DAGR_MENU_PSELECTION6 : DAGR_Menu_Pic {
|
||||||
idc = 2668793;
|
idc = 2668793;
|
||||||
x = 0.521;
|
x = 0.515;
|
||||||
y = 0.352;
|
y = 0.352;
|
||||||
w = 0.01;
|
w = 0.01;
|
||||||
h = 0.003;
|
h = 0.003;
|
||||||
@ -407,7 +408,7 @@ class DAGR_Menu {
|
|||||||
|
|
||||||
class DAGR_MENU_PSELECTION7 : DAGR_Menu_Pic {
|
class DAGR_MENU_PSELECTION7 : DAGR_Menu_Pic {
|
||||||
idc = 2668794;
|
idc = 2668794;
|
||||||
x = 0.535;
|
x = 0.525;
|
||||||
y = 0.352;
|
y = 0.352;
|
||||||
w = 0.01;
|
w = 0.01;
|
||||||
h = 0.003;
|
h = 0.003;
|
||||||
@ -415,7 +416,7 @@ class DAGR_Menu {
|
|||||||
|
|
||||||
class DAGR_MENU_PSELECTION8 : DAGR_Menu_Pic {
|
class DAGR_MENU_PSELECTION8 : DAGR_Menu_Pic {
|
||||||
idc = 2668795;
|
idc = 2668795;
|
||||||
x = 0.549;
|
x = 0.535;
|
||||||
y = 0.352;
|
y = 0.352;
|
||||||
w = 0.01;
|
w = 0.01;
|
||||||
h = 0.003;
|
h = 0.003;
|
||||||
|
@ -29,12 +29,13 @@ class Extended_Init_EventHandlers {
|
|||||||
init = QUOTE(_this call DFUNC(initObject));
|
init = QUOTE(_this call DFUNC(initObject));
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
class ThingX {
|
class Thing {
|
||||||
class ADDON {
|
class ADDON {
|
||||||
init = QUOTE(_this call DFUNC(initObject));
|
init = QUOTE(_this call DFUNC(initObject));
|
||||||
|
exclude[] = {"ModuleEmpty_F", "ThingEffect", "Wreck"};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
class Land_PortableLight_single_F {
|
class NonStrategic {
|
||||||
class ADDON {
|
class ADDON {
|
||||||
init = QUOTE(_this call DFUNC(initObject));
|
init = QUOTE(_this call DFUNC(initObject));
|
||||||
};
|
};
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
#define XEH_INHERITED class EventHandlers {class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};}
|
||||||
|
|
||||||
class CBA_Extended_EventHandlers;
|
class CBA_Extended_EventHandlers;
|
||||||
|
|
||||||
@ -7,11 +8,9 @@ class CfgVehicles {
|
|||||||
class StaticWeapon: LandVehicle {
|
class StaticWeapon: LandVehicle {
|
||||||
GVAR(canCarry) = 1;
|
GVAR(canCarry) = 1;
|
||||||
GVAR(carryPosition)[] = {0,1.2,0};
|
GVAR(carryPosition)[] = {0,1.2,0};
|
||||||
GVAR(carryDirection) = 0;
|
|
||||||
|
|
||||||
GVAR(canDrag) = 1;
|
GVAR(canDrag) = 1;
|
||||||
GVAR(dragPosition)[] = {0,1.2,0};
|
GVAR(dragPosition)[] = {0,1.2,0};
|
||||||
GVAR(dragDirection) = 0;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class StaticCannon: StaticWeapon {
|
class StaticCannon: StaticWeapon {
|
||||||
@ -23,11 +22,9 @@ class CfgVehicles {
|
|||||||
class Mortar_01_base_F: StaticMortar {
|
class Mortar_01_base_F: StaticMortar {
|
||||||
GVAR(canCarry) = 1;
|
GVAR(canCarry) = 1;
|
||||||
GVAR(carryPosition)[] = {0,1.2,0};
|
GVAR(carryPosition)[] = {0,1.2,0};
|
||||||
GVAR(carryDirection) = 0;
|
|
||||||
|
|
||||||
GVAR(canDrag) = 1;
|
GVAR(canDrag) = 1;
|
||||||
GVAR(dragPosition)[] = {0,1.2,0};
|
GVAR(dragPosition)[] = {0,1.2,0};
|
||||||
GVAR(dragDirection) = 0;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Big 1.70 and 1.84 Autonomous AA Turrets
|
// Big 1.70 and 1.84 Autonomous AA Turrets
|
||||||
@ -74,12 +71,9 @@ class CfgVehicles {
|
|||||||
class Items_base_F;
|
class Items_base_F;
|
||||||
class ReammoBox_F: ThingX {
|
class ReammoBox_F: ThingX {
|
||||||
GVAR(canCarry) = 0;
|
GVAR(canCarry) = 0;
|
||||||
GVAR(carryPosition)[] = {0,1,1};
|
|
||||||
GVAR(carryDirection) = 0;
|
|
||||||
|
|
||||||
GVAR(canDrag) = 0;
|
GVAR(canDrag) = 0;
|
||||||
GVAR(dragPosition)[] = {0,1.2,0};
|
GVAR(dragPosition)[] = {0,1.2,0};
|
||||||
GVAR(dragDirection) = 0;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class Slingload_base_F: ReammoBox_F {
|
class Slingload_base_F: ReammoBox_F {
|
||||||
@ -162,43 +156,27 @@ class CfgVehicles {
|
|||||||
|
|
||||||
//Plastic and metal case
|
//Plastic and metal case
|
||||||
class PlasticCase_01_base_F: Items_base_F {
|
class PlasticCase_01_base_F: Items_base_F {
|
||||||
class EventHandlers {
|
|
||||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
|
||||||
};
|
|
||||||
GVAR(canCarry) = 1;
|
GVAR(canCarry) = 1;
|
||||||
GVAR(carryPosition[]) = {0,1,1};
|
|
||||||
GVAR(carryDirection) = 270;
|
GVAR(carryDirection) = 270;
|
||||||
|
|
||||||
GVAR(canDrag) = 1;
|
GVAR(canDrag) = 1;
|
||||||
GVAR(dragPosition[]) = {0,1.2,0};
|
GVAR(dragPosition)[] = {0,1.2,0};
|
||||||
GVAR(dragDirection) = 270;
|
GVAR(dragDirection) = 270;
|
||||||
};
|
};
|
||||||
class MetalCase_01_base_F: Items_base_F {
|
class MetalCase_01_base_F: Items_base_F {
|
||||||
class EventHandlers {
|
|
||||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
|
||||||
};
|
|
||||||
GVAR(canCarry) = 1;
|
GVAR(canCarry) = 1;
|
||||||
GVAR(carryPosition[]) = {0,1,1};
|
|
||||||
GVAR(carryDirection) = 270;
|
GVAR(carryDirection) = 270;
|
||||||
|
|
||||||
GVAR(canDrag) = 1;
|
GVAR(canDrag) = 1;
|
||||||
GVAR(dragPosition[]) = {0,1.2,0};
|
GVAR(dragPosition)[] = {0,1.2,0};
|
||||||
GVAR(dragDirection) = 0;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Barrier
|
// Barrier
|
||||||
class RoadCone_F: ThingX {
|
class RoadCone_F: ThingX {
|
||||||
class EventHandlers {
|
|
||||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
|
||||||
};
|
|
||||||
|
|
||||||
GVAR(canCarry) = 1;
|
GVAR(canCarry) = 1;
|
||||||
GVAR(carryPosition)[] = {0,1,1};
|
|
||||||
GVAR(carryDirection) = 0;
|
|
||||||
|
|
||||||
GVAR(canDrag) = 1;
|
GVAR(canDrag) = 1;
|
||||||
GVAR(dragPosition)[] = {0,1.2,0};
|
GVAR(dragPosition)[] = {0,1.2,0};
|
||||||
GVAR(dragDirection) = 0;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class RoadBarrier_F: RoadCone_F {
|
class RoadBarrier_F: RoadCone_F {
|
||||||
@ -208,59 +186,37 @@ class CfgVehicles {
|
|||||||
// Misc crates
|
// Misc crates
|
||||||
class Constructions_base_F;
|
class Constructions_base_F;
|
||||||
class Land_WoodenBox_F: Constructions_base_F {
|
class Land_WoodenBox_F: Constructions_base_F {
|
||||||
class EventHandlers {
|
|
||||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
|
||||||
};
|
|
||||||
GVAR(canCarry) = 1;
|
GVAR(canCarry) = 1;
|
||||||
GVAR(carryPosition[]) = {0,1,1};
|
|
||||||
GVAR(carryDirection) = 0;
|
|
||||||
|
|
||||||
GVAR(canDrag) = 1;
|
GVAR(canDrag) = 1;
|
||||||
GVAR(dragPosition[]) = {0,1.4,0};
|
GVAR(dragPosition)[] = {0,1.4,0};
|
||||||
GVAR(dragDirection) = 0;
|
|
||||||
};
|
};
|
||||||
class Land_WoodenCrate_01_F: ThingX {
|
class Land_WoodenCrate_01_F: ThingX {
|
||||||
class EventHandlers {
|
|
||||||
class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
|
|
||||||
};
|
|
||||||
GVAR(canCarry) = 1;
|
GVAR(canCarry) = 1;
|
||||||
GVAR(carryPosition[]) = {0,1,1};
|
|
||||||
GVAR(carryDirection) = 270;
|
GVAR(carryDirection) = 270;
|
||||||
|
|
||||||
GVAR(canDrag) = 1;
|
GVAR(canDrag) = 1;
|
||||||
GVAR(dragPosition[]) = {0,1.5,0};
|
|
||||||
GVAR(dragDirection) = 90;
|
GVAR(dragDirection) = 90;
|
||||||
};
|
};
|
||||||
class Land_PaperBox_01_small_closed_base_F: Items_base_F {
|
class Land_PaperBox_01_small_closed_base_F: Items_base_F {
|
||||||
GVAR(canCarry) = 1;
|
GVAR(canCarry) = 1;
|
||||||
GVAR(carryPosition[]) = {0,1,1};
|
|
||||||
GVAR(carryDirection) = 0;
|
|
||||||
|
|
||||||
GVAR(canDrag) = 1;
|
GVAR(canDrag) = 1;
|
||||||
GVAR(dragPosition[]) = {0,1.5,0};
|
|
||||||
GVAR(dragDirection) = 90;
|
GVAR(dragDirection) = 90;
|
||||||
};
|
};
|
||||||
class Box_UAV_06_base_F: Items_base_F {
|
class Box_UAV_06_base_F: Items_base_F {
|
||||||
GVAR(canCarry) = 1;
|
GVAR(canCarry) = 1;
|
||||||
GVAR(carryPosition[]) = {0,1,1};
|
|
||||||
GVAR(carryDirection) = 0;
|
|
||||||
|
|
||||||
GVAR(canDrag) = 1;
|
GVAR(canDrag) = 1;
|
||||||
GVAR(dragPosition[]) = {0,1.5,0};
|
|
||||||
GVAR(dragDirection) = 0;
|
|
||||||
};
|
};
|
||||||
class ACE_RepairItem_Base: ThingX {};
|
class ACE_RepairItem_Base: ThingX {};
|
||||||
|
|
||||||
class ACE_Track: ACE_RepairItem_Base {
|
class ACE_Track: ACE_RepairItem_Base {
|
||||||
GVAR(canCarry) = 1;
|
GVAR(canCarry) = 1;
|
||||||
GVAR(carryPosition)[] = {0,1,1};
|
|
||||||
GVAR(carryDirection) = 0;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class ACE_Wheel: ACE_RepairItem_Base {
|
class ACE_Wheel: ACE_RepairItem_Base {
|
||||||
GVAR(canCarry) = 1;
|
GVAR(canCarry) = 1;
|
||||||
GVAR(carryPosition)[] = {0,1,1};
|
|
||||||
GVAR(carryDirection) = 0;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class Lamps_base_F;
|
class Lamps_base_F;
|
||||||
@ -278,19 +234,133 @@ class CfgVehicles {
|
|||||||
GVAR(canCarry) = 1;
|
GVAR(canCarry) = 1;
|
||||||
// if y < 0.9 player gets damage
|
// if y < 0.9 player gets damage
|
||||||
GVAR(carryPosition)[] = {0,0.9,1};
|
GVAR(carryPosition)[] = {0,0.9,1};
|
||||||
GVAR(carryDirection) = 0;
|
|
||||||
|
|
||||||
GVAR(canDrag) = 1;
|
GVAR(canDrag) = 1;
|
||||||
GVAR(dragPosition)[] = {0,0.7,0};
|
GVAR(dragPosition)[] = {0,0.7,0};
|
||||||
GVAR(dragDirection) = 0;
|
|
||||||
};
|
};
|
||||||
class Land_Camping_Light_off_F: ThingX {
|
class Land_Camping_Light_off_F: ThingX {
|
||||||
GVAR(canCarry) = 1;
|
GVAR(canCarry) = 1;
|
||||||
GVAR(carryPosition)[] = {0,0.9,1};
|
GVAR(carryPosition)[] = {0,0.9,1};
|
||||||
GVAR(carryDirection) = 0;
|
|
||||||
|
|
||||||
GVAR(canDrag) = 1;
|
GVAR(canDrag) = 1;
|
||||||
GVAR(dragPosition)[] = {0,0.7,0};
|
GVAR(dragPosition)[] = {0,0.7,0};
|
||||||
GVAR(dragDirection) = 0;
|
};
|
||||||
|
|
||||||
|
// some terrain objects
|
||||||
|
|
||||||
|
class Land_CampingTable_F: ThingX {
|
||||||
|
GVAR(canCarry) = 1;
|
||||||
|
GVAR(carryPosition)[] = {0,1,0.5};
|
||||||
|
};
|
||||||
|
class Land_CampingTable_small_F: ThingX {
|
||||||
|
GVAR(canCarry) = 1;
|
||||||
|
GVAR(carryPosition)[] = {0,1,0.5};
|
||||||
|
};
|
||||||
|
class Land_GarbageContainer_closed_F: ThingX {
|
||||||
|
GVAR(canDrag) = 1;
|
||||||
|
GVAR(dragDirection) = 180;
|
||||||
|
};
|
||||||
|
class Land_GarbageContainer_open_F: ThingX {
|
||||||
|
GVAR(canDrag) = 1;
|
||||||
|
GVAR(dragDirection) = 180;
|
||||||
|
};
|
||||||
|
class Land_Sun_chair_F: ThingX {
|
||||||
|
GVAR(canCarry) = 1;
|
||||||
|
GVAR(carryDirection) = 90;
|
||||||
|
|
||||||
|
GVAR(canDrag) = 1;
|
||||||
|
GVAR(dragPosition)[] = {0,1,0};
|
||||||
|
GVAR(dragDirection) = 90;
|
||||||
|
};
|
||||||
|
class Land_TablePlastic_01_F: ThingX {
|
||||||
|
GVAR(canCarry) = 1;
|
||||||
|
GVAR(carryPosition)[] = {0,1,0};
|
||||||
|
|
||||||
|
GVAR(canDrag) = 1;
|
||||||
|
};
|
||||||
|
class Land_Tyre_F: ThingX {
|
||||||
|
GVAR(canCarry) = 1;
|
||||||
|
GVAR(carryPosition)[] = {0,0.6,1};
|
||||||
|
};
|
||||||
|
class Land_WoodenTable_large_F: ThingX {
|
||||||
|
GVAR(canDrag) = 1;
|
||||||
|
GVAR(dragDirection) = 90;
|
||||||
|
};
|
||||||
|
class Land_BarrelSand_F: Items_base_F {
|
||||||
|
GVAR(canDrag) = 1;
|
||||||
|
GVAR(dragPosition)[] = {0,1,0};
|
||||||
|
};
|
||||||
|
class Land_BarrelWater_F: Items_base_F {
|
||||||
|
GVAR(canDrag) = 1;
|
||||||
|
GVAR(dragPosition)[] = {0,1,0};
|
||||||
|
};
|
||||||
|
class Land_Bucket_F: Items_base_F {
|
||||||
|
GVAR(canCarry) = 1;
|
||||||
|
GVAR(carryPosition)[] = {0,0.6,1};
|
||||||
|
};
|
||||||
|
class Land_CanisterPlastic_F: Items_base_F {
|
||||||
|
GVAR(canCarry) = 1;
|
||||||
|
GVAR(carryPosition)[] = {0,0.6,0};
|
||||||
|
};
|
||||||
|
class Land_GarbageBarrel_01_english_F: Items_base_F {
|
||||||
|
GVAR(canDrag) = 1;
|
||||||
|
};
|
||||||
|
class Land_MetalBarrel_F: Items_base_F {
|
||||||
|
GVAR(canDrag) = 1;
|
||||||
|
GVAR(dragPosition)[] = {0,1,0};
|
||||||
|
};
|
||||||
|
class Land_Pallet_F: Constructions_base_F {
|
||||||
|
GVAR(canCarry) = 1;
|
||||||
|
|
||||||
|
GVAR(canDrag) = 1;
|
||||||
|
};
|
||||||
|
class Land_Pallet_vertical_F: Constructions_base_F {
|
||||||
|
GVAR(canCarry) = 1;
|
||||||
|
GVAR(carryPosition)[] = {0,0.6,0.6};
|
||||||
|
GVAR(carryDirection) = 180;
|
||||||
|
};
|
||||||
|
class Land_WheelCart_F: Constructions_base_F {
|
||||||
|
GVAR(canDrag) = 1;
|
||||||
|
};
|
||||||
|
class Land_WorkStand_F: Constructions_base_F {
|
||||||
|
GVAR(canCarry) = 1;
|
||||||
|
GVAR(carryPosition)[] = {0,1,0};
|
||||||
|
|
||||||
|
GVAR(canDrag) = 1;
|
||||||
|
GVAR(dragPosition)[] = {0,1,0};
|
||||||
|
};
|
||||||
|
class Market_base_F;
|
||||||
|
class Land_Basket_F: Market_base_F {
|
||||||
|
GVAR(canCarry) = 1;
|
||||||
|
GVAR(carryPosition)[] = {0,0.6,0.5};
|
||||||
|
};
|
||||||
|
class Land_WoodenCart_F: Market_base_F {
|
||||||
|
GVAR(canDrag) = 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
// static classes need XEH
|
||||||
|
|
||||||
|
class NonStrategic;
|
||||||
|
class Land_Pallets_F: NonStrategic {
|
||||||
|
XEH_INHERITED;
|
||||||
|
GVAR(canDrag) = 1;
|
||||||
|
};
|
||||||
|
class Camping_base_F;
|
||||||
|
class Land_CampingChair_V1_folded_F: Camping_base_F {
|
||||||
|
XEH_INHERITED;
|
||||||
|
GVAR(canCarry) = 1;
|
||||||
|
GVAR(carryPosition)[] = {0,0.6,1};
|
||||||
|
};
|
||||||
|
class Stall_base_F;
|
||||||
|
class Land_CratesPlastic_F: Stall_base_F {
|
||||||
|
XEH_INHERITED;
|
||||||
|
GVAR(canCarry) = 1;
|
||||||
|
GVAR(carryPosition)[] = {0,0.6,1};
|
||||||
|
};
|
||||||
|
class House_Small_F;
|
||||||
|
class Land_MetalBarrel_empty_F: House_Small_F {
|
||||||
|
XEH_INHERITED;
|
||||||
|
GVAR(canDrag) = 1;
|
||||||
|
GVAR(dragPosition)[] = {0,1,0};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -27,8 +27,8 @@ private _direction = _target getVariable [QGVAR(carryDirection), 0];
|
|||||||
// handle objects vs persons
|
// handle objects vs persons
|
||||||
if (_target isKindOf "CAManBase") then {
|
if (_target isKindOf "CAManBase") then {
|
||||||
|
|
||||||
[_unit, "AcinPercMstpSnonWnonDnon", 2, true] call EFUNC(common,doAnimation);
|
[_unit, "AcinPercMstpSnonWnonDnon", 2] call EFUNC(common,doAnimation);
|
||||||
[_target, "AinjPfalMstpSnonWnonDf_carried_dead", 2, true] call EFUNC(common,doAnimation);
|
[_target, "AinjPfalMstpSnonWnonDf_carried_dead", 2] call EFUNC(common,doAnimation);
|
||||||
|
|
||||||
// attach person
|
// attach person
|
||||||
_target attachTo [_unit, _position, "LeftShoulder"];
|
_target attachTo [_unit, _position, "LeftShoulder"];
|
||||||
|
@ -36,7 +36,7 @@ _target attachTo [_unit, _position];
|
|||||||
[QEGVAR(common,setDir), [_target, _direction], _target] call CBA_fnc_targetEvent;
|
[QEGVAR(common,setDir), [_target, _direction], _target] call CBA_fnc_targetEvent;
|
||||||
|
|
||||||
if (_target isKindOf "CAManBase") then {
|
if (_target isKindOf "CAManBase") then {
|
||||||
[_target, "AinjPpneMrunSnonWnonDb_still", 0, true] call EFUNC(common,doAnimation);
|
[_target, "AinjPpneMrunSnonWnonDb_still", 0] call EFUNC(common,doAnimation);
|
||||||
};
|
};
|
||||||
|
|
||||||
_unit setVariable [QGVAR(isDragging), true, true];
|
_unit setVariable [QGVAR(isDragging), true, true];
|
||||||
|
@ -43,9 +43,9 @@ detach _target;
|
|||||||
|
|
||||||
if (_target isKindOf "CAManBase") then {
|
if (_target isKindOf "CAManBase") then {
|
||||||
if (_target getVariable ["ACE_isUnconscious", false]) then {
|
if (_target getVariable ["ACE_isUnconscious", false]) then {
|
||||||
[_target, "unconscious", 2, true] call EFUNC(common,doAnimation);
|
[_target, "unconscious", 2] call EFUNC(common,doAnimation);
|
||||||
} else {
|
} else {
|
||||||
[_target, "", 2, true] call EFUNC(common,doAnimation); //@todo "AinjPpneMrunSnonWnonDb_release" seems to fall back to unconsciousness anim.
|
[_target, "", 2] call EFUNC(common,doAnimation); //@todo "AinjPpneMrunSnonWnonDb_release" seems to fall back to unconsciousness anim.
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -74,7 +74,7 @@ if !(_target isKindOf "CAManBase") then {
|
|||||||
};
|
};
|
||||||
|
|
||||||
if (_unit getVariable ["ACE_isUnconscious", false]) then {
|
if (_unit getVariable ["ACE_isUnconscious", false]) then {
|
||||||
[_unit, "unconscious", 2, true] call EFUNC(common,doAnimation);
|
[_unit, "unconscious", 2] call EFUNC(common,doAnimation);
|
||||||
};
|
};
|
||||||
|
|
||||||
// recreate UAV crew
|
// recreate UAV crew
|
||||||
|
@ -34,13 +34,13 @@ detach _target;
|
|||||||
// fix anim when aborting carrying persons
|
// fix anim when aborting carrying persons
|
||||||
if (_target isKindOf "CAManBase" || {animationState _unit in CARRY_ANIMATIONS}) then {
|
if (_target isKindOf "CAManBase" || {animationState _unit in CARRY_ANIMATIONS}) then {
|
||||||
if (vehicle _unit == _unit && {!(_unit getVariable ["ACE_isUnconscious", false])}) then {
|
if (vehicle _unit == _unit && {!(_unit getVariable ["ACE_isUnconscious", false])}) then {
|
||||||
[_unit, "", 2, true] call EFUNC(common,doAnimation);
|
[_unit, "", 2] call EFUNC(common,doAnimation);
|
||||||
};
|
};
|
||||||
|
|
||||||
if (_target getVariable ["ACE_isUnconscious", false]) then {
|
if (_target getVariable ["ACE_isUnconscious", false]) then {
|
||||||
[_target, "unconscious", 2, true] call EFUNC(common,doAnimation);
|
[_target, "unconscious", 2] call EFUNC(common,doAnimation);
|
||||||
} else {
|
} else {
|
||||||
[_target, "", 2, true] call EFUNC(common,doAnimation); //@todo
|
[_target, "", 2] call EFUNC(common,doAnimation); //@todo
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -20,14 +20,14 @@ params ["_object"];
|
|||||||
private _config = configOf _object;
|
private _config = configOf _object;
|
||||||
|
|
||||||
if (getNumber (_config >> QGVAR(canDrag)) == 1) then {
|
if (getNumber (_config >> QGVAR(canDrag)) == 1) then {
|
||||||
private _position = getArray (_config >> QGVAR(dragPosition));
|
private _position = [_config >> QGVAR(dragPosition), "ARRAY", [0, 1.5, 0]] call CBA_fnc_getConfigEntry;
|
||||||
private _direction = getNumber (_config >> QGVAR(dragDirection));
|
private _direction = getNumber (_config >> QGVAR(dragDirection));
|
||||||
|
|
||||||
[_object, true, _position, _direction] call FUNC(setDraggable);
|
[_object, true, _position, _direction] call FUNC(setDraggable);
|
||||||
};
|
};
|
||||||
|
|
||||||
if (getNumber (_config >> QGVAR(canCarry)) == 1) then {
|
if (getNumber (_config >> QGVAR(canCarry)) == 1) then {
|
||||||
private _position = getArray (_config >> QGVAR(carryPosition));
|
private _position = [_config >> QGVAR(carryPosition), "ARRAY", [0, 1, 1]] call CBA_fnc_getConfigEntry;
|
||||||
private _direction = getNumber (_config >> QGVAR(carryDirection));
|
private _direction = getNumber (_config >> QGVAR(carryDirection));
|
||||||
|
|
||||||
[_object, true, _position, _direction] call FUNC(setCarryable);
|
[_object, true, _position, _direction] call FUNC(setCarryable);
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
* Arguments:
|
* Arguments:
|
||||||
* 0: Any object <OBJECT>
|
* 0: Any object <OBJECT>
|
||||||
* 1: true to enable dragging, false to disable <BOOL>
|
* 1: true to enable dragging, false to disable <BOOL>
|
||||||
* 2: Position offset for attachTo command (optional; default: [0,0,0])<ARRAY>
|
* 2: Position offset for attachTo command (optional; default: [0, 1.5, 0]) <ARRAY>
|
||||||
* 3: Direction in degree to rotate the object after attachTo (optional; default: 0) <NUMBER>
|
* 3: Direction in degree to rotate the object after attachTo (optional; default: 0) <NUMBER>
|
||||||
* 4: Override weight limit (optional; default: false) <BOOL>
|
* 4: Override weight limit (optional; default: false) <BOOL>
|
||||||
*
|
*
|
||||||
@ -23,7 +23,7 @@
|
|||||||
params ["_object", "_enableDrag", "_position", "_direction", ["_ignoreWeightDrag", false, [false]]];
|
params ["_object", "_enableDrag", "_position", "_direction", ["_ignoreWeightDrag", false, [false]]];
|
||||||
|
|
||||||
if (isNil "_position") then {
|
if (isNil "_position") then {
|
||||||
_position = _object getVariable [QGVAR(dragPosition), [0,0,0]];
|
_position = _object getVariable [QGVAR(dragPosition), [0, 1.5, 0]];
|
||||||
};
|
};
|
||||||
|
|
||||||
if (isNil "_direction") then {
|
if (isNil "_direction") then {
|
||||||
|
@ -45,8 +45,8 @@ if (_target isKindOf "CAManBase") then {
|
|||||||
_target setDir (getDir _unit + 180);
|
_target setDir (getDir _unit + 180);
|
||||||
_target setPosASL (getPosASL _unit vectorAdd (vectorDir _unit));
|
_target setPosASL (getPosASL _unit vectorAdd (vectorDir _unit));
|
||||||
|
|
||||||
[_unit, "AcinPknlMstpSnonWnonDnon_AcinPercMrunSnonWnonDnon", 2, true] call EFUNC(common,doAnimation);
|
[_unit, "AcinPknlMstpSnonWnonDnon_AcinPercMrunSnonWnonDnon", 2] call EFUNC(common,doAnimation);
|
||||||
[_target, "AinjPfalMstpSnonWrflDnon_carried_Up", 2, true] call EFUNC(common,doAnimation);
|
[_target, "AinjPfalMstpSnonWrflDnon_carried_Up", 2] call EFUNC(common,doAnimation);
|
||||||
|
|
||||||
_timer = CBA_missionTime + 10;
|
_timer = CBA_missionTime + 10;
|
||||||
|
|
||||||
|
@ -80,7 +80,7 @@ if (_target isKindOf "CAManBase") then {
|
|||||||
_target setDir (getDir _unit + 180);
|
_target setDir (getDir _unit + 180);
|
||||||
_target setPosASL (getPosASL _unit vectorAdd (vectorDir _unit vectorMultiply 1.5));
|
_target setPosASL (getPosASL _unit vectorAdd (vectorDir _unit vectorMultiply 1.5));
|
||||||
|
|
||||||
[_target, "AinjPpneMrunSnonWnonDb_grab", 2, true] call EFUNC(common,doAnimation);
|
[_target, "AinjPpneMrunSnonWnonDb_grab", 2] call EFUNC(common,doAnimation);
|
||||||
};
|
};
|
||||||
|
|
||||||
// prevents draging and carrying at the same time
|
// prevents draging and carrying at the same time
|
||||||
|
@ -78,6 +78,7 @@ class CfgVehicles {
|
|||||||
vehicleClass = "Cargo";
|
vehicleClass = "Cargo";
|
||||||
class ACE_Actions {
|
class ACE_Actions {
|
||||||
class ACE_MainActions {
|
class ACE_MainActions {
|
||||||
|
displayName = ECSTRING(interaction,MainAction);
|
||||||
selection = "";
|
selection = "";
|
||||||
distance = 1.5;
|
distance = 1.5;
|
||||||
condition = "true";
|
condition = "true";
|
||||||
|
@ -894,14 +894,8 @@
|
|||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Explosives_Module_SLAMBottomAttack_DisplayName">
|
<Key ID="STR_ACE_Explosives_Module_SLAMBottomAttack_DisplayName">
|
||||||
<English>M6 SLAM Mine (Bottom Attack)</English>
|
<English>M6 SLAM Mine (Bottom Attack)</English>
|
||||||
<!-- <Czech>Mina M6 SLAM</Czech> -->
|
<French>Mine M6 SLAM (par le bas)</French>
|
||||||
<French>/!\ Module obsolète /!\ - Mine M6 SLAM (par le bas)</French>
|
|
||||||
<German>M6-SLAM-Mine (Bodenangriff)</German>
|
<German>M6-SLAM-Mine (Bodenangriff)</German>
|
||||||
<!-- <Italian>Mina M6 SLAM</Italian> -->
|
|
||||||
<!-- <Polish>Mina M6 SLAM</Polish> -->
|
|
||||||
<!-- <Portuguese>Mina SLAM M6</Portuguese> -->
|
|
||||||
<!-- <Russian>ПТ-мина M6 SLAM</Russian> -->
|
|
||||||
<!-- <Spanish>Mina M6 SLAM</Spanish> -->
|
|
||||||
<Polish>Mina M6 SLAM (atak od dołu)</Polish>
|
<Polish>Mina M6 SLAM (atak od dołu)</Polish>
|
||||||
<Spanish>Mina M6 SLAM (Ataque Inferior)</Spanish>
|
<Spanish>Mina M6 SLAM (Ataque Inferior)</Spanish>
|
||||||
<Italian>Mina M6 SLAM (base)</Italian>
|
<Italian>Mina M6 SLAM (base)</Italian>
|
||||||
@ -915,14 +909,8 @@
|
|||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Explosives_Module_SLAMSideAttack_DisplayName">
|
<Key ID="STR_ACE_Explosives_Module_SLAMSideAttack_DisplayName">
|
||||||
<English>M6 SLAM Mine (Side Attack)</English>
|
<English>M6 SLAM Mine (Side Attack)</English>
|
||||||
<!-- <Czech>Mina M6 SLAM</Czech> -->
|
<French>Mine M6 SLAM (de flanc)</French>
|
||||||
<French>/!\ Module obsolète /!\ - Mine M6 SLAM (de flanc)</French>
|
|
||||||
<German>M6-SLAM-Mine (Seitenangriff)</German>
|
<German>M6-SLAM-Mine (Seitenangriff)</German>
|
||||||
<!-- <Italian>Mina M6 SLAM</Italian> -->
|
|
||||||
<!-- <Polish>Mina M6 SLAM</Polish> -->
|
|
||||||
<!-- <Portuguese>Mina SLAM M6</Portuguese> -->
|
|
||||||
<!-- <Russian>ПТ-мина M6 SLAM</Russian> -->
|
|
||||||
<!-- <Spanish>Mina M6 SLAM</Spanish> -->
|
|
||||||
<Polish>Mina M6 SLAM (atak od boku)</Polish>
|
<Polish>Mina M6 SLAM (atak od boku)</Polish>
|
||||||
<Spanish>Mina M6 SLAM (Ataque Lateral)</Spanish>
|
<Spanish>Mina M6 SLAM (Ataque Lateral)</Spanish>
|
||||||
<Italian>Mina M6 SLAM (Laterale)</Italian>
|
<Italian>Mina M6 SLAM (Laterale)</Italian>
|
||||||
@ -936,14 +924,8 @@
|
|||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Explosives_Module_IEDUrbanBig_Range_DisplayName">
|
<Key ID="STR_ACE_Explosives_Module_IEDUrbanBig_Range_DisplayName">
|
||||||
<English>Large IED (Urban, Pressure Plate)</English>
|
<English>Large IED (Urban, Pressure Plate)</English>
|
||||||
<!-- <Czech>Velká nálož (městská)</Czech> -->
|
<French>Grand EEI (urbain, plaque de pression)</French>
|
||||||
<French>/!\ Module obsolète /!\ - Grand EEI (urbain, plaque de pression)</French>
|
|
||||||
<German>Große USBV (Stadt, Druckplatte)</German>
|
<German>Große USBV (Stadt, Druckplatte)</German>
|
||||||
<!-- <Italian>IED grande (urbano)</Italian> -->
|
|
||||||
<!-- <Polish>Duży IED (miasto)</Polish> -->
|
|
||||||
<!-- <Portuguese>AEI grande (urbano)</Portuguese> -->
|
|
||||||
<!-- <Russian>Большое СВУ (городское)</Russian> -->
|
|
||||||
<!-- <Spanish>IED grande (Urbano)</Spanish> -->
|
|
||||||
<Polish>Duży IED (miejski, płyta naciskowa)</Polish>
|
<Polish>Duży IED (miejski, płyta naciskowa)</Polish>
|
||||||
<Spanish>IED Grande (Urbano, Placa de presión)</Spanish>
|
<Spanish>IED Grande (Urbano, Placa de presión)</Spanish>
|
||||||
<Italian>IED grande (urbano, a pressione)</Italian>
|
<Italian>IED grande (urbano, a pressione)</Italian>
|
||||||
@ -957,14 +939,8 @@
|
|||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Explosives_Module_IEDLandBig_Range_DisplayName">
|
<Key ID="STR_ACE_Explosives_Module_IEDLandBig_Range_DisplayName">
|
||||||
<English>Large IED (Dug-in, Pressure Plate)</English>
|
<English>Large IED (Dug-in, Pressure Plate)</English>
|
||||||
<!-- <Czech>Velká nálož (zakopaná)</Czech> -->
|
<French>Grand EEI (enterré, plaque de pression)</French>
|
||||||
<French>/!\ Module obsolète /!\ - Grand EEI (enterré, plaque de pression)</French>
|
|
||||||
<German>Große USBV (Eingegraben, Druckplatte)</German>
|
<German>Große USBV (Eingegraben, Druckplatte)</German>
|
||||||
<!-- <Italian>IED grande (interrato)</Italian> -->
|
|
||||||
<!-- <Polish>Duży IED (zakopany)</Polish> -->
|
|
||||||
<!-- <Portuguese>AEI grande (entrincheirado)</Portuguese> -->
|
|
||||||
<!-- <Russian>Большое СВУ (зарытое)</Russian> -->
|
|
||||||
<!-- <Spanish>IED grande (Enterrado)</Spanish> -->
|
|
||||||
<Polish>Duży IED (zakopany, płyta naciskowa)</Polish>
|
<Polish>Duży IED (zakopany, płyta naciskowa)</Polish>
|
||||||
<Spanish>IED Grande (Enterrado, Placa de presión)</Spanish>
|
<Spanish>IED Grande (Enterrado, Placa de presión)</Spanish>
|
||||||
<Italian>IED grande (interrato, a pressione)</Italian>
|
<Italian>IED grande (interrato, a pressione)</Italian>
|
||||||
@ -978,14 +954,8 @@
|
|||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Explosives_Module_IEDUrbanSmall_Range_DisplayName">
|
<Key ID="STR_ACE_Explosives_Module_IEDUrbanSmall_Range_DisplayName">
|
||||||
<English>Small IED (Urban, Pressure Plate)</English>
|
<English>Small IED (Urban, Pressure Plate)</English>
|
||||||
<!-- <Czech>Malá nálož (městská)</Czech> -->
|
<French>Petit EEI (Urbain, plaque de pression)</French>
|
||||||
<French>/!\ Module obsolète /!\ - Petit EEI (Urbain, plaque de pression)</French>
|
|
||||||
<German>Kleine USBV (Stadt, Druckplatte)</German>
|
<German>Kleine USBV (Stadt, Druckplatte)</German>
|
||||||
<!-- <Italian>IED piccolo (urbano)</Italian> -->
|
|
||||||
<!-- <Polish>Mały IED (miasto)</Polish> -->
|
|
||||||
<!-- <Portuguese>AEI pequeno (urbano)</Portuguese> -->
|
|
||||||
<!-- <Russian>Малое СВУ (городское)</Russian> -->
|
|
||||||
<!-- <Spanish>IED pequeño (Urbano)</Spanish> -->
|
|
||||||
<Polish>Mały IED (miejski, płyta naciskowa)</Polish>
|
<Polish>Mały IED (miejski, płyta naciskowa)</Polish>
|
||||||
<Spanish>IED Pequeño (Urbano, Placa de presión)</Spanish>
|
<Spanish>IED Pequeño (Urbano, Placa de presión)</Spanish>
|
||||||
<Italian>IED piccolo (urbano, a pressione)</Italian>
|
<Italian>IED piccolo (urbano, a pressione)</Italian>
|
||||||
@ -999,14 +969,8 @@
|
|||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Explosives_Module_IEDLandSmall_Range_DisplayName">
|
<Key ID="STR_ACE_Explosives_Module_IEDLandSmall_Range_DisplayName">
|
||||||
<English>Small IED (Dug-in, Pressure Plate)</English>
|
<English>Small IED (Dug-in, Pressure Plate)</English>
|
||||||
<!-- <Czech>Malá nálož (zakopaná)</Czech> -->
|
<French>Petit EEI (Enterré, plaque de pression)</French>
|
||||||
<French>/!\ Module obsolète /!\ - Petit EEI (Enterré, plaque de pression)</French>
|
|
||||||
<German>Kleine USBV (Eingegraben, Druckplatte)</German>
|
<German>Kleine USBV (Eingegraben, Druckplatte)</German>
|
||||||
<!-- <Italian>IED piccolo (interrato)</Italian> -->
|
|
||||||
<!-- <Polish>Mały IED (zakopany)</Polish> -->
|
|
||||||
<!-- <Portuguese>AEI pequeno (entrincheirado)</Portuguese> -->
|
|
||||||
<!-- <Russian>Малое СВУ (зарытое)</Russian> -->
|
|
||||||
<!-- <Spanish>IED pequeño (Enterrado)</Spanish> -->
|
|
||||||
<Polish>Mały IED (zakopany, płyta naciskowa)</Polish>
|
<Polish>Mały IED (zakopany, płyta naciskowa)</Polish>
|
||||||
<Spanish>IED Pequeño (Enterrado, Placa de presión)</Spanish>
|
<Spanish>IED Pequeño (Enterrado, Placa de presión)</Spanish>
|
||||||
<Italian>IED piccolo (interrato, a pressione)</Italian>
|
<Italian>IED piccolo (interrato, a pressione)</Italian>
|
||||||
@ -1120,36 +1084,42 @@
|
|||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Explosives_TimerMin_DisplayName">
|
<Key ID="STR_ACE_Explosives_TimerMin_DisplayName">
|
||||||
<English>Minimum Time</English>
|
<English>Minimum Time</English>
|
||||||
|
<Russian>Минимальное время</Russian>
|
||||||
<French>Durée minimale</French>
|
<French>Durée minimale</French>
|
||||||
<Japanese>最短時間</Japanese>
|
<Japanese>最短時間</Japanese>
|
||||||
<Spanish>Tiempo mínimo</Spanish>
|
<Spanish>Tiempo mínimo</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Explosives_TimerMax_DisplayName">
|
<Key ID="STR_ACE_Explosives_TimerMax_DisplayName">
|
||||||
<English>Maximum Time</English>
|
<English>Maximum Time</English>
|
||||||
|
<Russian>Максимальное время</Russian>
|
||||||
<French>Durée maximale</French>
|
<French>Durée maximale</French>
|
||||||
<Japanese>最長時間</Japanese>
|
<Japanese>最長時間</Japanese>
|
||||||
<Spanish>Tiempo máximo</Spanish>
|
<Spanish>Tiempo máximo</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Explosives_TimerDefault_DisplayName">
|
<Key ID="STR_ACE_Explosives_TimerDefault_DisplayName">
|
||||||
<English>Default Time</English>
|
<English>Default Time</English>
|
||||||
|
<Russian>Стандартное время</Russian>
|
||||||
<French>Durée par défaut</French>
|
<French>Durée par défaut</French>
|
||||||
<Japanese>標準時間</Japanese>
|
<Japanese>標準時間</Japanese>
|
||||||
<Spanish>Tiempo por defecto</Spanish>
|
<Spanish>Tiempo por defecto</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Explosives_TimerMin_Description">
|
<Key ID="STR_ACE_Explosives_TimerMin_Description">
|
||||||
<English>Minimum time value (in seconds) for the explosive timer.</English>
|
<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>
|
<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>
|
<Spanish>Tiempo mínimo (en segundos) para el temporizador del explosivo.</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Explosives_TimerMax_Description">
|
<Key ID="STR_ACE_Explosives_TimerMax_Description">
|
||||||
<English>Maximum time value (in seconds) for the explosive timer.</English>
|
<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>
|
<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>
|
<Spanish>Tiempo máximo (en segundos) para el temporizador del explosivo.</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Explosives_TimerDefault_Description">
|
<Key ID="STR_ACE_Explosives_TimerDefault_Description">
|
||||||
<English>Default time value (in seconds) for the explosive timer.</English>
|
<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>
|
<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>
|
<Spanish>Tiempo por defecto (en segundos) para el temporizador del explosivo.</Spanish>
|
||||||
|
@ -523,42 +523,49 @@
|
|||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Grenades_SatchelCharge_Remote_Mag_Throwable">
|
<Key ID="STR_ACE_Grenades_SatchelCharge_Remote_Mag_Throwable">
|
||||||
<English>Explosive Satchel (Throwable)</English>
|
<English>Explosive Satchel (Throwable)</English>
|
||||||
|
<Russian>Ранец со взрывчаткой (Метательный)</Russian>
|
||||||
<French>Charge en sacoche (lançable)</French>
|
<French>Charge en sacoche (lançable)</French>
|
||||||
<Japanese>梱包爆薬 (投てき仕様)</Japanese>
|
<Japanese>梱包爆薬 (投てき仕様)</Japanese>
|
||||||
<Spanish>Carga de mochila explosiva (Lanzable)</Spanish>
|
<Spanish>Carga de mochila explosiva (Lanzable)</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Grenades_SatchelCharge_Description">
|
<Key ID="STR_ACE_Grenades_SatchelCharge_Description">
|
||||||
<English>Type: Charge<br />Rounds: 1<br />Used on: Things that need to die</English>
|
<English>Type: Charge<br />Rounds: 1<br />Used on: Things that need to die</English>
|
||||||
|
<Russian>Тип: Взрывчатка<br />Боеприпасы 1<br />Применение: На предметах, которые должны быть уничтожены</Russian>
|
||||||
<French>Type : Charge<br />Munitions : 1<br />Application : à balancer sur des trucs qui doivent mourir</French>
|
<French>Type : Charge<br />Munitions : 1<br />Application : à balancer sur des trucs qui doivent mourir</French>
|
||||||
<Japanese>種類: 爆薬<br />弾数: 1<br />次で使用: 破壊すべき物に</Japanese>
|
<Japanese>種類: 爆薬<br />弾数: 1<br />次で使用: 破壊すべき物に</Japanese>
|
||||||
<Spanish>Tipo: Carga<br />Unidades: 1<br />Usada: Cosas que necesitan morir</Spanish>
|
<Spanish>Tipo: Carga<br />Unidades: 1<br />Usada: Cosas que necesitan morir</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Grenades_SatchelCharge_LibText">
|
<Key ID="STR_ACE_Grenades_SatchelCharge_LibText">
|
||||||
<English>An explosive satchel that is throwable. 7 second fixed fuse</English>
|
<English>An explosive satchel that is throwable. 7 second fixed fuse</English>
|
||||||
|
<Russian>Ранец со взрывчаткой. Детонация через 7 секунд</Russian>
|
||||||
<French>Charge explosive lançable. Détonation après 7 secondes.</French>
|
<French>Charge explosive lançable. Détonation après 7 secondes.</French>
|
||||||
<Japanese>投げられる梱包爆薬。起爆までの時間は 7 秒間</Japanese>
|
<Japanese>投げられる梱包爆薬。起爆までの時間は 7 秒間</Japanese>
|
||||||
<Spanish>Carga de mochila explosiva que se puede lanzar. Espoleta fija de 7 segundos</Spanish>
|
<Spanish>Carga de mochila explosiva que se puede lanzar. Espoleta fija de 7 segundos</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Grenades_DemoCharge_Remote_Mag_Throwable">
|
<Key ID="STR_ACE_Grenades_DemoCharge_Remote_Mag_Throwable">
|
||||||
<English>Explosive Charge (Throwable)</English>
|
<English>Explosive Charge (Throwable)</English>
|
||||||
|
<Russian>Заряд со взрывчаткой (Метательный)</Russian>
|
||||||
<French>Charge explosive (lançable)</French>
|
<French>Charge explosive (lançable)</French>
|
||||||
<Japanese>爆薬ブロック (投てき仕様)</Japanese>
|
<Japanese>爆薬ブロック (投てき仕様)</Japanese>
|
||||||
<Spanish>Carga explosiva (Lanzable)</Spanish>
|
<Spanish>Carga explosiva (Lanzable)</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Grenades_DemoCharge_LibText">
|
<Key ID="STR_ACE_Grenades_DemoCharge_LibText">
|
||||||
<English>An explosive charge that is throwable. 7 second fixed fuse</English>
|
<English>An explosive charge that is throwable. 7 second fixed fuse</English>
|
||||||
|
<Russian>Заряд со взрывчаткой. Детонация через 7 секунд</Russian>
|
||||||
<French>Bloc explosif lançable. Détonation après 7 secondes.</French>
|
<French>Bloc explosif lançable. Détonation après 7 secondes.</French>
|
||||||
<Japanese>投げられる爆薬ブロック。起爆までの時間は 7 秒間</Japanese>
|
<Japanese>投げられる爆薬ブロック。起爆までの時間は 7 秒間</Japanese>
|
||||||
<Spanish>Carga explosiva que se puede lanzar. Espoleta fija de 7 segundos</Spanish>
|
<Spanish>Carga explosiva que se puede lanzar. Espoleta fija de 7 segundos</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Grenades_Convert_Fuse">
|
<Key ID="STR_ACE_Grenades_Convert_Fuse">
|
||||||
<English>Convert to short fuse</English>
|
<English>Convert to short fuse</English>
|
||||||
|
<Russian>Применить фитиль</Russian>
|
||||||
<French>Appliquer une mèche</French>
|
<French>Appliquer une mèche</French>
|
||||||
<Japanese>短信管へ変更</Japanese>
|
<Japanese>短信管へ変更</Japanese>
|
||||||
<Spanish>Convertir a espoleta corta</Spanish>
|
<Spanish>Convertir a espoleta corta</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Grenades_Remove_Fuse">
|
<Key ID="STR_ACE_Grenades_Remove_Fuse">
|
||||||
<English>Remove short fuse</English>
|
<English>Remove short fuse</English>
|
||||||
|
<Russian>Убрать фитиль</Russian>
|
||||||
<French>Retirer la mèche</French>
|
<French>Retirer la mèche</French>
|
||||||
<Japanese>短信管を削除</Japanese>
|
<Japanese>短信管を削除</Japanese>
|
||||||
<Spanish>Quitar espoleta corta</Spanish>
|
<Spanish>Quitar espoleta corta</Spanish>
|
||||||
@ -581,12 +588,14 @@
|
|||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Grenades_convertExplosives_DisplayName">
|
<Key ID="STR_ACE_Grenades_convertExplosives_DisplayName">
|
||||||
<English>Allow Explosive Conversion</English>
|
<English>Allow Explosive Conversion</English>
|
||||||
|
<Russian>Разрешить фитили</Russian>
|
||||||
<French>Autoriser les mèches (charges lançables)</French>
|
<French>Autoriser les mèches (charges lançables)</French>
|
||||||
<Japanese>爆薬変更を許可</Japanese>
|
<Japanese>爆薬変更を許可</Japanese>
|
||||||
<Spanish>Permitir conversión de explosivos</Spanish>
|
<Spanish>Permitir conversión de explosivos</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Grenades_convertExplosives_Description">
|
<Key ID="STR_ACE_Grenades_convertExplosives_Description">
|
||||||
<English>Allow converting explosives to throwables</English>
|
<English>Allow converting explosives to throwables</English>
|
||||||
|
<Russian>Разрешает преобразовывать взрывчатку в метательные снаряды</Russian>
|
||||||
<French>Cette option permet de rendre les charges explosives lançables, à la manière des grenades.\nPour celà, ouvrir l'inventaire et double-cliquer sur les charges, afin de leur appliquer une mèche.\nLa mèche peut se retirer en suivant la même procédure.</French>
|
<French>Cette option permet de rendre les charges explosives lançables, à la manière des grenades.\nPour celà, ouvrir l'inventaire et double-cliquer sur les charges, afin de leur appliquer une mèche.\nLa mèche peut se retirer en suivant la même procédure.</French>
|
||||||
<Japanese>爆発物を投てき仕様へ交換できるようにします。</Japanese>
|
<Japanese>爆発物を投てき仕様へ交換できるようにします。</Japanese>
|
||||||
<Spanish>Permitir convertir explosivos a lanzables</Spanish>
|
<Spanish>Permitir convertir explosivos a lanzables</Spanish>
|
||||||
|
@ -19,15 +19,21 @@
|
|||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Hellfire_KDescriptionShort">
|
<Key ID="STR_ACE_Hellfire_KDescriptionShort">
|
||||||
<English>Semi-active laser homing missile with high explosive anti-tank warhead</English>
|
<English>Semi-active laser homing missile with high explosive anti-tank warhead</English>
|
||||||
|
<Russian>Самонаводящаяся Ракета с фугасной противотанковой боевой частью и полуактивной лазерной системой наведения</Russian>
|
||||||
<Spanish>Misil de guiado láser semi-activo con cabeza de alto explosivo anti-tanque</Spanish>
|
<Spanish>Misil de guiado láser semi-activo con cabeza de alto explosivo anti-tanque</Spanish>
|
||||||
|
<French>Missile antichar à guidage laser semi-actif (charge HEAT)</French>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Hellfire_LDescriptionShort">
|
<Key ID="STR_ACE_Hellfire_LDescriptionShort">
|
||||||
<English>Millimeter-wave radar guided missile with high explosive anti-tank warhead</English>
|
<English>Millimeter-wave radar guided missile with high explosive anti-tank warhead</English>
|
||||||
|
<Russian>Радиолокационная управляемая ракета миллиметрового диапазона с фугасной противотанковой боевой частью</Russian>
|
||||||
<Spanish>Misil guiado por radar de onda milimétrica con cabeza de alto explosivo anti-tanque</Spanish>
|
<Spanish>Misil guiado por radar de onda milimétrica con cabeza de alto explosivo anti-tanque</Spanish>
|
||||||
|
<French>Missile antichar à guidage radar à ondes courtes (charge HEAT)</French>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Hellfire_NDescriptionShort">
|
<Key ID="STR_ACE_Hellfire_NDescriptionShort">
|
||||||
<English>Semi-active laser homing missile with metal augmented charge anti-personnel warhead</English>
|
<English>Semi-active laser homing missile with metal augmented charge anti-personnel warhead</English>
|
||||||
|
<Russian>Самонаводящаяся ракета с металлической увеличенной зарядной противопехотной боевой частью и полуактивной лазерной системой наведения</Russian>
|
||||||
<Spanish>Misil guiado por láser semi-activo con cabeza de carga de metal aumentada anti-persona</Spanish>
|
<Spanish>Misil guiado por láser semi-activo con cabeza de carga de metal aumentada anti-persona</Spanish>
|
||||||
|
<French>Missile antipersonnel thermobarique à guidage laser semi-actif</French>
|
||||||
</Key>
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
</Project>
|
</Project>
|
||||||
|
@ -36,15 +36,15 @@
|
|||||||
<Turkish>HuntIR Mermisi</Turkish>
|
<Turkish>HuntIR Mermisi</Turkish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_HuntIR_monitor_displayName">
|
<Key ID="STR_ACE_HuntIR_monitor_displayName">
|
||||||
<English>HuntIR monitor</English>
|
<English>HuntIR Monitor</English>
|
||||||
<German>HuntIR Monitor</German>
|
<German>HuntIR Monitor</German>
|
||||||
<Spanish>Monitor HuntIR</Spanish>
|
<Spanish>Monitor HuntIR</Spanish>
|
||||||
<Czech>HuntIR monitor</Czech>
|
<Czech>HuntIR Monitor</Czech>
|
||||||
<Russian>HuntIR монитор</Russian>
|
<Russian>HuntIR монитор</Russian>
|
||||||
<Italian>Monitor HuntIR</Italian>
|
<Italian>Monitor HuntIR</Italian>
|
||||||
<Polish>Odbiornik HuntIR</Polish>
|
<Polish>Odbiornik HuntIR</Polish>
|
||||||
<French>Ecran HuntIR</French>
|
<French>Ecran HuntIR</French>
|
||||||
<Hungarian>HuntIR monitor</Hungarian>
|
<Hungarian>HuntIR Monitor</Hungarian>
|
||||||
<Portuguese>Monitor HuntIR</Portuguese>
|
<Portuguese>Monitor HuntIR</Portuguese>
|
||||||
<Japanese>HuntIR モニタ</Japanese>
|
<Japanese>HuntIR モニタ</Japanese>
|
||||||
<Korean>HuntIR 모니터</Korean>
|
<Korean>HuntIR 모니터</Korean>
|
||||||
|
@ -12,6 +12,7 @@ PREP(createVehiclesActions);
|
|||||||
PREP(ctrlSetParsedTextCached);
|
PREP(ctrlSetParsedTextCached);
|
||||||
PREP(findActionNode);
|
PREP(findActionNode);
|
||||||
PREP(handleEscapeMenu);
|
PREP(handleEscapeMenu);
|
||||||
|
PREP(initMenuReorder);
|
||||||
PREP(isSubPath);
|
PREP(isSubPath);
|
||||||
PREP(keyDown);
|
PREP(keyDown);
|
||||||
PREP(keyUp);
|
PREP(keyUp);
|
||||||
|
@ -112,3 +112,11 @@ format ["%1 (%2)", (localize LSTRING(SelfInteractKey)), localize ELSTRING(common
|
|||||||
if (_menuBackgroundSetting == 1) exitWith {[QGVAR(menuBackground), false] call EFUNC(common,blurScreen);};
|
if (_menuBackgroundSetting == 1) exitWith {[QGVAR(menuBackground), false] call EFUNC(common,blurScreen);};
|
||||||
if (_menuBackgroundSetting == 2) exitWith {(uiNamespace getVariable [QGVAR(menuBackground), displayNull]) closeDisplay 0;};
|
if (_menuBackgroundSetting == 2) exitWith {(uiNamespace getVariable [QGVAR(menuBackground), displayNull]) closeDisplay 0;};
|
||||||
}] call CBA_fnc_addEventHandler;
|
}] call CBA_fnc_addEventHandler;
|
||||||
|
|
||||||
|
|
||||||
|
// init menu reordering
|
||||||
|
[QGVAR(newControllableObject), {
|
||||||
|
params ["_class"];
|
||||||
|
if !(_class isKindOf "CAManBase") exitWith {};
|
||||||
|
_class call FUNC(initMenuReorder);
|
||||||
|
}] call CBA_fnc_addEventHandler;
|
||||||
|
89
addons/interact_menu/functions/fnc_initMenuReorder.sqf
Normal file
89
addons/interact_menu/functions/fnc_initMenuReorder.sqf
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
#include "script_component.hpp"
|
||||||
|
/*
|
||||||
|
* Author: Dystopian
|
||||||
|
* Initializes "More" and "Move to Root" settings and menu.
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* 0: Class name <STRING>
|
||||||
|
*
|
||||||
|
* Return Value:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
* [typeOf player] call ace_interact_menu_fnc_initMenuReorder
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
|
*/
|
||||||
|
|
||||||
|
params ["_class"];
|
||||||
|
|
||||||
|
private _actionTrees = GVAR(ActSelfNamespace) getVariable _class;
|
||||||
|
private _rootNode = [_actionTrees, ["ACE_SelfActions"]] call FUNC(findActionNode);
|
||||||
|
private _rootActions = _rootNode select 1;
|
||||||
|
private _settingCategoryPrefix = format ["ACE %1 - ", LELSTRING(Interaction,InteractionMenuSelf)];
|
||||||
|
|
||||||
|
|
||||||
|
// init "Move to Root" settings
|
||||||
|
private _settingCategory = _settingCategoryPrefix + localize "STR_3DEN_Display3DEN_RemoveLayer_tooltip";
|
||||||
|
|
||||||
|
private _fnc_processNode = {
|
||||||
|
params ["_node", "_parentVarName", "_titlePrefix", "_parentConditionString"];
|
||||||
|
|
||||||
|
_node params ["_actionData", "_actionChildren"];
|
||||||
|
_actionData params ["_name", "_title", "", "", "_condition"];
|
||||||
|
private _varName = _parentVarName + "__" + _name;
|
||||||
|
private _titleFull = _titlePrefix + _title;
|
||||||
|
private _conditionFullString = format ["%1 && {%2}", _parentConditionString, _condition call EFUNC(common,codeToString)];
|
||||||
|
|
||||||
|
// don't add already added setting
|
||||||
|
if (isNil {missionNamespace getVariable _varName}) then {
|
||||||
|
[_varName, "CHECKBOX", _titleFull, [_settingCategory, _rootActionTitle], false, 2, {}, true] call CBA_fnc_addSetting;
|
||||||
|
};
|
||||||
|
|
||||||
|
if (missionNamespace getVariable [_varName, false]) then {
|
||||||
|
private _newActionData = +(_actionData);
|
||||||
|
_newActionData set [4, compile _conditionFullString];
|
||||||
|
_rootActions pushBack [_newActionData, _actionChildren];
|
||||||
|
};
|
||||||
|
|
||||||
|
{
|
||||||
|
[_x, _varName, _titleFull + " / ", _conditionFullString] call _fnc_processNode;
|
||||||
|
} forEach _actionChildren;
|
||||||
|
};
|
||||||
|
|
||||||
|
private _rootActionsCount = count _rootActions;
|
||||||
|
{
|
||||||
|
_x params ["_actionData", "_actionChildren"];
|
||||||
|
_actionData params ["_name", "_rootActionTitle", "", "", "_condition"];
|
||||||
|
private _parentVarName = QGVAR(moveToRoot__) + _name;
|
||||||
|
private _conditionString = _condition call EFUNC(common,codeToString);
|
||||||
|
{
|
||||||
|
[_x, _parentVarName, "", _conditionString] call _fnc_processNode;
|
||||||
|
} forEach _actionChildren;
|
||||||
|
} forEach _rootActions;
|
||||||
|
|
||||||
|
|
||||||
|
// init "More" menu
|
||||||
|
private _action = [QGVAR(more), localize "str_more_menu", "", {}, {true}] call FUNC(createAction);
|
||||||
|
private _morePath = [_class, 1, ["ACE_SelfActions"], _action] call FUNC(addActionToClass);
|
||||||
|
private _moreNode = [_actionTrees, _morePath] call FUNC(findActionNode);
|
||||||
|
private _moreActions = _moreNode select 1;
|
||||||
|
private _settingCategory = _settingCategoryPrefix + localize "str_more_menu";
|
||||||
|
|
||||||
|
{
|
||||||
|
// prevent moved to root actions processing
|
||||||
|
if (_forEachIndex >= _rootActionsCount) then {break};
|
||||||
|
|
||||||
|
_x params ["_actionData", "_actionChildren"];
|
||||||
|
_actionData params ["_name", "_title"];
|
||||||
|
if (_name isEqualTo QGVAR(more)) then {continue};
|
||||||
|
|
||||||
|
private _varName = QGVAR(more__) + _name;
|
||||||
|
[_varName, "CHECKBOX", _title, _settingCategory, false, 2, {}, true] call CBA_fnc_addSetting;
|
||||||
|
if !(missionNamespace getVariable [_varName, false]) then {continue};
|
||||||
|
|
||||||
|
private _newActionData = +(_actionData);
|
||||||
|
// disable action instead of deleting because it can be used as parent lately
|
||||||
|
_actionData set [4, {false}];
|
||||||
|
_moreActions pushBack [_newActionData, _actionChildren];
|
||||||
|
} forEach _rootActions;
|
@ -35,51 +35,46 @@ private _fnc_renderNearbyActions = {
|
|||||||
private _target = _x;
|
private _target = _x;
|
||||||
|
|
||||||
// Quick oclussion test. Skip objects more than 1 m behind the camera plane
|
// Quick oclussion test. Skip objects more than 1 m behind the camera plane
|
||||||
private _lambda = ((getPosASL _x) vectorDiff GVAR(cameraPosASL)) vectorDotProduct GVAR(cameraDir);
|
private _lambda = getPosASL _target vectorDiff GVAR(cameraPosASL) vectorDotProduct GVAR(cameraDir);
|
||||||
if ((_lambda > -1) && {!isObjectHidden _target}) then {
|
if (
|
||||||
private _numInteractions = 0;
|
_lambda <= -1
|
||||||
|
|| {isObjectHidden _target}
|
||||||
// Prevent interacting with yourself or your own vehicle
|
// Prevent interacting with yourself or your own vehicle
|
||||||
if (_target != ACE_player && {_target != vehicle ACE_player}) then {
|
|| {_target in [ACE_player, vehicle ACE_player]}
|
||||||
|
) then {continue};
|
||||||
|
|
||||||
// Iterate through object actions, find base level actions and render them if appropiate
|
private _hasInteractions = false;
|
||||||
GVAR(objectActionList) = _target getVariable [QGVAR(actions), []];
|
|
||||||
{
|
|
||||||
// Only render them directly if they are base level actions
|
|
||||||
if ((_x select 1) isEqualTo []) then {
|
|
||||||
// Try to render the menu
|
|
||||||
private _action = _x;
|
|
||||||
if ([_target, _action] call FUNC(renderBaseMenu)) then {
|
|
||||||
_numInteractions = _numInteractions + 1;
|
|
||||||
GVAR(foundActions) pushBack [_target, _action, GVAR(objectActionList)];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
nil
|
|
||||||
} count GVAR(objectActionList);
|
|
||||||
|
|
||||||
// Iterate through base level class actions and render them if appropiate
|
// Iterate through object actions, find base level actions and render them if appropiate
|
||||||
private _namespace = GVAR(ActNamespace);
|
GVAR(objectActionList) = _target getVariable [QGVAR(actions), []];
|
||||||
private _classActions = _namespace getVariable typeOf _target;
|
{
|
||||||
|
// Only render them directly if they are base level actions
|
||||||
{
|
if (_x select 1 isNotEqualTo []) then {continue};
|
||||||
private _action = _x;
|
// Try to render the menu
|
||||||
// Try to render the menu
|
private _action = _x;
|
||||||
if ([_target, _action] call FUNC(renderBaseMenu)) then {
|
if ([_target, _action] call FUNC(renderBaseMenu)) then {
|
||||||
_numInteractions = _numInteractions + 1;
|
_hasInteractions = true;
|
||||||
GVAR(foundActions) pushBack [_target, _action, GVAR(objectActionList)];
|
GVAR(foundActions) pushBack [_target, _action, GVAR(objectActionList)];
|
||||||
};
|
|
||||||
nil
|
|
||||||
} count _classActions;
|
|
||||||
|
|
||||||
// Limit the amount of objects the player can interact with
|
|
||||||
if (_numInteractions > 0) then {
|
|
||||||
_numInteractObjects = _numInteractObjects + 1;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
} forEach GVAR(objectActionList);
|
||||||
if (_numInteractObjects >= MAXINTERACTOBJECTS) exitWith {};
|
|
||||||
|
|
||||||
nil
|
// Iterate through base level class actions and render them if appropiate
|
||||||
} count _nearestObjects;
|
private _classActions = GVAR(ActNamespace) getVariable [typeOf _target, []];
|
||||||
|
{
|
||||||
|
private _action = _x;
|
||||||
|
// Try to render the menu
|
||||||
|
if ([_target, _action] call FUNC(renderBaseMenu)) then {
|
||||||
|
_hasInteractions = true;
|
||||||
|
GVAR(foundActions) pushBack [_target, _action, GVAR(objectActionList)];
|
||||||
|
};
|
||||||
|
} forEach _classActions;
|
||||||
|
|
||||||
|
// Limit the amount of objects the player can interact with
|
||||||
|
if (_hasInteractions) then {
|
||||||
|
INC(_numInteractObjects);
|
||||||
|
if (_numInteractObjects >= MAXINTERACTOBJECTS) then {break};
|
||||||
|
};
|
||||||
|
} forEach _nearestObjects;
|
||||||
};
|
};
|
||||||
|
|
||||||
private _fnc_renderLastFrameActions = {
|
private _fnc_renderLastFrameActions = {
|
||||||
@ -88,8 +83,7 @@ private _fnc_renderLastFrameActions = {
|
|||||||
|
|
||||||
GVAR(objectActionList) = _objectActionList;
|
GVAR(objectActionList) = _objectActionList;
|
||||||
[_target, _action] call FUNC(renderBaseMenu);
|
[_target, _action] call FUNC(renderBaseMenu);
|
||||||
nil
|
} forEach GVAR(foundActions);
|
||||||
} count GVAR(foundActions);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
private _fnc_renderSelfActions = {
|
private _fnc_renderSelfActions = {
|
||||||
@ -112,16 +106,14 @@ private _fnc_renderSelfActions = {
|
|||||||
{
|
{
|
||||||
_action = _x;
|
_action = _x;
|
||||||
[_target, _action, _pos] call FUNC(renderBaseMenu);
|
[_target, _action, _pos] call FUNC(renderBaseMenu);
|
||||||
nil
|
} forEach _classActions;
|
||||||
} count _classActions;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
private _fnc_renderZeusActions = {
|
private _fnc_renderZeusActions = {
|
||||||
{
|
{
|
||||||
private _action = _x;
|
private _action = _x;
|
||||||
[_this, _action, [0.5, 0.5]] call FUNC(renderBaseMenu);
|
[_this, _action, [0.5, 0.5]] call FUNC(renderBaseMenu);
|
||||||
nil
|
} forEach GVAR(ZeusActions);
|
||||||
} count GVAR(ZeusActions);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -178,5 +170,4 @@ if (count GVAR(collectedActionPoints) > 1) then {
|
|||||||
{
|
{
|
||||||
_x params ["_z", "_sPos", "_activeActionTree"];
|
_x params ["_z", "_sPos", "_activeActionTree"];
|
||||||
[[], _activeActionTree, _sPos, [180,360]] call FUNC(renderMenu);
|
[[], _activeActionTree, _sPos, [180,360]] call FUNC(renderMenu);
|
||||||
nil
|
} forEach GVAR(collectedActionPoints);
|
||||||
} count GVAR(collectedActionPoints);
|
|
||||||
|
@ -494,12 +494,14 @@
|
|||||||
<Russian>Объединять с единственным дочерним действием</Russian>
|
<Russian>Объединять с единственным дочерним действием</Russian>
|
||||||
<Japanese>サブ動作を統合</Japanese>
|
<Japanese>サブ動作を統合</Japanese>
|
||||||
<Spanish>Consolidar acciones hijo únicas</Spanish>
|
<Spanish>Consolidar acciones hijo únicas</Spanish>
|
||||||
|
<French>Combiner les sous-actions uniques</French>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Interact_Menu_consolidateSingleChild_Description">
|
<Key ID="STR_ACE_Interact_Menu_consolidateSingleChild_Description">
|
||||||
<English>Combines parent action with only one child action together.</English>
|
<English>Combines parent action with only one child action together.</English>
|
||||||
<Russian>Объединять родительское действие с единственным дочерним действием в одно.</Russian>
|
<Russian>Объединять родительское действие с единственным дочерним действием в одно.</Russian>
|
||||||
<Japanese>メインの動作とサブ動作一つを統合して表示します。</Japanese>
|
<Japanese>メインの動作とサブ動作一つを統合して表示します。</Japanese>
|
||||||
<Spanish>Combina acciones padre con una única accion hijo de forma conjunta</Spanish>
|
<Spanish>Combina acciones padre con una única accion hijo de forma conjunta</Spanish>
|
||||||
|
<French>Lorsqu'un menu ne contient qu'une seule sous-action, elle est combinée avec son menu parent.</French>
|
||||||
</Key>
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
</Project>
|
</Project>
|
||||||
|
@ -628,7 +628,7 @@ class CfgVehicles {
|
|||||||
condition = "true";
|
condition = "true";
|
||||||
class ACE_OpenBox {
|
class ACE_OpenBox {
|
||||||
displayName = CSTRING(OpenBox);
|
displayName = CSTRING(OpenBox);
|
||||||
condition = QUOTE((alive _target) && {(getNumber (configOf _target >> 'disableInventory')) == 0});
|
condition = QUOTE(alive _target && {!lockedInventory _target} && {getNumber (configOf _target >> 'disableInventory') == 0});
|
||||||
statement = QUOTE(_player action [ARR_2(QUOTE(QUOTE(Gear)), _target)]);
|
statement = QUOTE(_player action [ARR_2(QUOTE(QUOTE(Gear)), _target)]);
|
||||||
showDisabled = 0;
|
showDisabled = 0;
|
||||||
};
|
};
|
||||||
|
@ -1208,18 +1208,21 @@
|
|||||||
<Russian>Установить %1</Russian>
|
<Russian>Установить %1</Russian>
|
||||||
<Japanese>%1 を取り付け</Japanese>
|
<Japanese>%1 を取り付け</Japanese>
|
||||||
<Spanish>Acoplar %1</Spanish>
|
<Spanish>Acoplar %1</Spanish>
|
||||||
|
<French>Fixer %1</French>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Interaction_weaponAttachmentsDetach">
|
<Key ID="STR_ACE_Interaction_weaponAttachmentsDetach">
|
||||||
<English>Detach %1</English>
|
<English>Detach %1</English>
|
||||||
<Russian>Снять %1</Russian>
|
<Russian>Снять %1</Russian>
|
||||||
<Japanese>%1 を外す</Japanese>
|
<Japanese>%1 を外す</Japanese>
|
||||||
<Spanish>Desacoplar %1</Spanish>
|
<Spanish>Desacoplar %1</Spanish>
|
||||||
|
<French>Retirer %1</French>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Interaction_weaponAttachments_Description">
|
<Key ID="STR_ACE_Interaction_weaponAttachments_Description">
|
||||||
<English>Enables attach/detach weapon attachment actions for current weapon.</English>
|
<English>Enables attach/detach weapon attachment actions for current weapon.</English>
|
||||||
<Russian>Включает действия Установить/Снять для приспособлений текущего оружия.</Russian>
|
<Russian>Включает действия Установить/Снять для приспособлений текущего оружия.</Russian>
|
||||||
<Japanese>インタラクションから使用中の武器に対してのアタッチメント取り外しを可能にします。</Japanese>
|
<Japanese>インタラクションから使用中の武器に対してのアタッチメント取り外しを可能にします。</Japanese>
|
||||||
<Spanish>Activar acciones de acoplar/desacoplar accesorios para el arma actual.</Spanish>
|
<Spanish>Activar acciones de acoplar/desacoplar accesorios para el arma actual.</Spanish>
|
||||||
|
<French>Cette option permet de fixer/retirer des accessoires d'arme à partir du menu d'interaction personnel.</French>
|
||||||
</Key>
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
</Project>
|
</Project>
|
||||||
|
@ -30,4 +30,4 @@ scopeName "main";
|
|||||||
false
|
false
|
||||||
} count [IDC_ITEMLIST_GROUND, IDC_ITEMLIST_SOLDIER, IDC_ITEMLIST_UNIFORM, IDC_ITEMLIST_VEST, IDC_ITEMLIST_BACKPACK];
|
} count [IDC_ITEMLIST_GROUND, IDC_ITEMLIST_SOLDIER, IDC_ITEMLIST_UNIFORM, IDC_ITEMLIST_VEST, IDC_ITEMLIST_BACKPACK];
|
||||||
|
|
||||||
-1
|
controlNull
|
||||||
|
@ -282,54 +282,63 @@
|
|||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Map_Gestures_maxRangeCamera_displayName">
|
<Key ID="STR_ACE_Map_Gestures_maxRangeCamera_displayName">
|
||||||
<English>Max range Camera</English>
|
<English>Max range Camera</English>
|
||||||
|
<Russian>Макс. дальность действия камеры</Russian>
|
||||||
<French>Portée de la caméra</French>
|
<French>Portée de la caméra</French>
|
||||||
<Japanese>カメラ最大範囲</Japanese>
|
<Japanese>カメラ最大範囲</Japanese>
|
||||||
<Spanish>Máximo alcance de cámara</Spanish>
|
<Spanish>Máximo alcance de cámara</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Map_Gestures_maxRangeCamera_description">
|
<Key ID="STR_ACE_Map_Gestures_maxRangeCamera_description">
|
||||||
<English>Max range between a Camera and players to show the map gesture indicator</English>
|
<English>Max range between a Camera and players to show the map gesture indicator</English>
|
||||||
|
<Russian>Устанавливает макс. дальность между игроком и камерой для отображения жестов на карте</Russian>
|
||||||
<French>Définit le rayon au-delà duquel une caméra ne verra plus l'indicateur de pointage des autres joueurs.</French>
|
<French>Définit le rayon au-delà duquel une caméra ne verra plus l'indicateur de pointage des autres joueurs.</French>
|
||||||
<Japanese>プレイヤーが行うマップ ジェスチャーをカメラから確認できる最大範囲を設定します。</Japanese>
|
<Japanese>プレイヤーが行うマップ ジェスチャーをカメラから確認できる最大範囲を設定します。</Japanese>
|
||||||
<Spanish>Máxima distancia entre una cámara y los jugadores para mostrar el indicador de gestos en mapa</Spanish>
|
<Spanish>Máxima distancia entre una cámara y los jugadores para mostrar el indicador de gestos en mapa</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Map_Gestures_allowSpectator_displayName">
|
<Key ID="STR_ACE_Map_Gestures_allowSpectator_displayName">
|
||||||
<English>Allow Spectator</English>
|
<English>Allow Spectator</English>
|
||||||
|
<Russian>Разрешить видеть в спектаторе</Russian>
|
||||||
<French>Autoriser les spectateurs</French>
|
<French>Autoriser les spectateurs</French>
|
||||||
<Japanese>スペクテイターに許可</Japanese>
|
<Japanese>スペクテイターに許可</Japanese>
|
||||||
<Spanish>Permitir espectador</Spanish>
|
<Spanish>Permitir espectador</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Map_Gestures_allowSpectator_description">
|
<Key ID="STR_ACE_Map_Gestures_allowSpectator_description">
|
||||||
<English>Allows Spectator to See Map Gestures</English>
|
<English>Allows Spectator to See Map Gestures</English>
|
||||||
|
<Russian>Позволяет наблюдателю видеть жесты на карте</Russian>
|
||||||
<French>Permet aux spectateurs de voir le pointage des autres joueurs.</French>
|
<French>Permet aux spectateurs de voir le pointage des autres joueurs.</French>
|
||||||
<Japanese>スペクテイターからマップ ジェスチャーを表示できるようにします。</Japanese>
|
<Japanese>スペクテイターからマップ ジェスチャーを表示できるようにします。</Japanese>
|
||||||
<Spanish>Permitir al espectador ver los gestos de mapa</Spanish>
|
<Spanish>Permitir al espectador ver los gestos de mapa</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Map_Gestures_allowCurator_displayName">
|
<Key ID="STR_ACE_Map_Gestures_allowCurator_displayName">
|
||||||
<English>Allow Curator</English>
|
<English>Allow Curator</English>
|
||||||
|
<Russian>Разрешить куратору</Russian>
|
||||||
<French>Autoriser les curateurs</French>
|
<French>Autoriser les curateurs</French>
|
||||||
<Japanese>キュレーターに許可</Japanese>
|
<Japanese>キュレーターに許可</Japanese>
|
||||||
<Spanish>Permitir Curador</Spanish>
|
<Spanish>Permitir Curador</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Map_Gestures_allowCurator_description">
|
<Key ID="STR_ACE_Map_Gestures_allowCurator_description">
|
||||||
<English>Allows Curator to See Map Gestures</English>
|
<English>Allows Curator to See Map Gestures</English>
|
||||||
|
<Russian>Позволяет куратору видеть жесты на карте</Russian>
|
||||||
<French>Permet aux curateurs de voir le pointage des autres joueurs.</French>
|
<French>Permet aux curateurs de voir le pointage des autres joueurs.</French>
|
||||||
<Japanese>キュレーターからマップ ジェスチャーを表示できるようにします。</Japanese>
|
<Japanese>キュレーターからマップ ジェスチャーを表示できるようにします。</Japanese>
|
||||||
<Spanish>Permitir al Curador ver los gestos de mapa</Spanish>
|
<Spanish>Permitir al Curador ver los gestos de mapa</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Map_Gestures_briefingMode_displayName">
|
<Key ID="STR_ACE_Map_Gestures_briefingMode_displayName">
|
||||||
<English>Briefing Mode</English>
|
<English>Briefing Mode</English>
|
||||||
|
<Russian>Режим брифинга</Russian>
|
||||||
<French>Visibilité lors du briefing</French>
|
<French>Visibilité lors du briefing</French>
|
||||||
<Japanese>ブリーフィング モード</Japanese>
|
<Japanese>ブリーフィング モード</Japanese>
|
||||||
<Spanish>Modo de briefing</Spanish>
|
<Spanish>Modo de briefing</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Map_Gestures_briefingMode_description">
|
<Key ID="STR_ACE_Map_Gestures_briefingMode_description">
|
||||||
<English>What player can see what</English>
|
<English>What player can see what</English>
|
||||||
|
<Russian>Определяет, какая группа игроков может видеть жесты на карте во время брифинга</Russian>
|
||||||
<French>Définit quels pointages les joueurs peuvent voir lors du briefing.</French>
|
<French>Définit quels pointages les joueurs peuvent voir lors du briefing.</French>
|
||||||
<Japanese>プレイヤーが見ることができる対象を決定します。</Japanese>
|
<Japanese>プレイヤーが見ることができる対象を決定します。</Japanese>
|
||||||
<Spanish>Qué puede ver cada jugador</Spanish>
|
<Spanish>Qué puede ver cada jugador</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Map_Gestures_briefingMode_Disabled">
|
<Key ID="STR_ACE_Map_Gestures_briefingMode_Disabled">
|
||||||
<English>Disabled</English>
|
<English>Disabled</English>
|
||||||
|
<Russian>Отключить</Russian>
|
||||||
<French>Pointage désactivé</French>
|
<French>Pointage désactivé</French>
|
||||||
<Japanese>無効化</Japanese>
|
<Japanese>無効化</Japanese>
|
||||||
<Spanish>Deshabilitado</Spanish>
|
<Spanish>Deshabilitado</Spanish>
|
||||||
@ -360,6 +369,7 @@
|
|||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Map_Gestures_briefingMode_Proximity">
|
<Key ID="STR_ACE_Map_Gestures_briefingMode_Proximity">
|
||||||
<English>Proximity</English>
|
<English>Proximity</English>
|
||||||
|
<Russian>Все, кто рядом</Russian>
|
||||||
<French>Proximité</French>
|
<French>Proximité</French>
|
||||||
<Japanese>付近のみ</Japanese>
|
<Japanese>付近のみ</Japanese>
|
||||||
<Spanish>Proximidad</Spanish>
|
<Spanish>Proximidad</Spanish>
|
||||||
|
@ -6,7 +6,9 @@ PREP(onLBSelChangedChannel);
|
|||||||
PREP(onLBSelChangedColor);
|
PREP(onLBSelChangedColor);
|
||||||
PREP(onLBSelChangedShape);
|
PREP(onLBSelChangedShape);
|
||||||
PREP(onSliderPosChangedAngle);
|
PREP(onSliderPosChangedAngle);
|
||||||
|
PREP(onSliderMouseButtonUpAngle);
|
||||||
PREP(onSliderPosChangedScale);
|
PREP(onSliderPosChangedScale);
|
||||||
|
PREP(onSliderMouseButtonUpScale);
|
||||||
PREP(placeMarker);
|
PREP(placeMarker);
|
||||||
PREP(sendMarkersJIP);
|
PREP(sendMarkersJIP);
|
||||||
PREP(setMarkerJIP);
|
PREP(setMarkerJIP);
|
||||||
|
@ -332,10 +332,12 @@
|
|||||||
|
|
||||||
private _curSelAngle = GETGVAR(currentMarkerAngle,0);
|
private _curSelAngle = GETGVAR(currentMarkerAngle,0);
|
||||||
_aceAngleSlider sliderSetPosition _curSelAngle;
|
_aceAngleSlider sliderSetPosition _curSelAngle;
|
||||||
|
_aceAngleSlider ctrlSetTooltip LLSTRING(MarkerDirectionScaleSlider_Tooltip);
|
||||||
|
|
||||||
//Update now and add eventHandler:
|
//Update now and add eventHandler:
|
||||||
[_aceAngleSlider, _curSelAngle] call FUNC(onSliderPosChangedAngle);
|
[_aceAngleSlider, _curSelAngle] call FUNC(onSliderPosChangedAngle);
|
||||||
_aceAngleSlider ctrlAddEventHandler ["SliderPosChanged", {_this call FUNC(onSliderPosChangedAngle)}];
|
_aceAngleSlider ctrlAddEventHandler ["SliderPosChanged", {_this call FUNC(onSliderPosChangedAngle)}];
|
||||||
|
_aceAngleSlider ctrlAddEventHandler ["MouseButtonUp", {_this call FUNC(onSliderMouseButtonUpAngle)}];
|
||||||
|
|
||||||
////////////////////
|
////////////////////
|
||||||
// init marker scale slider
|
// init marker scale slider
|
||||||
@ -348,8 +350,10 @@
|
|||||||
|
|
||||||
private _curSelScale = GETGVAR(currentMarkerScale,1);
|
private _curSelScale = GETGVAR(currentMarkerScale,1);
|
||||||
_aceScaleSlider sliderSetPosition _curSelScale;
|
_aceScaleSlider sliderSetPosition _curSelScale;
|
||||||
|
_aceScaleSlider ctrlSetTooltip LLSTRING(MarkerDirectionScaleSlider_Tooltip);
|
||||||
|
|
||||||
//Update now and add eventHandler:
|
//Update now and add eventHandler:
|
||||||
[_aceScaleSlider, _curSelScale] call FUNC(onSliderPosChangedScale);
|
[_aceScaleSlider, _curSelScale] call FUNC(onSliderPosChangedScale);
|
||||||
_aceScaleSlider ctrlAddEventHandler ["SliderPosChanged", {_this call FUNC(onSliderPosChangedScale)}];
|
_aceScaleSlider ctrlAddEventHandler ["SliderPosChanged", {_this call FUNC(onSliderPosChangedScale)}];
|
||||||
|
_aceScaleSlider ctrlAddEventHandler ["MouseButtonUp", {_this call FUNC(onSliderMouseButtonUpScale)}];
|
||||||
}, _this] call CBA_fnc_execNextFrame;
|
}, _this] call CBA_fnc_execNextFrame;
|
||||||
|
25
addons/markers/functions/fnc_onSliderMouseButtonUpAngle.sqf
Normal file
25
addons/markers/functions/fnc_onSliderMouseButtonUpAngle.sqf
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
#include "script_component.hpp"
|
||||||
|
/*
|
||||||
|
* Author: 10Dozen
|
||||||
|
* Angle slider clicked handler. Resets slider pos to 0 on RMB button up.
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* 0: Slider (idc 1210) is expected <CONTROL>
|
||||||
|
* 1: Button released (0 - Left mouse btn, 1 - Right mouse btn) <NUMBER>
|
||||||
|
*
|
||||||
|
* Return Value:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
* [Slider, 1] call ace_markers_fnc_onSliderMouseButtonUpAngle
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
|
*/
|
||||||
|
|
||||||
|
params ["_aceAngleSlider", "_button"];
|
||||||
|
TRACE_2("params",_aceAngleSlider,_button);
|
||||||
|
|
||||||
|
if (_button isNotEqualTo 1) exitWith {};
|
||||||
|
|
||||||
|
_aceAngleSlider sliderSetPosition 0;
|
||||||
|
[_aceAngleSlider, 0] call FUNC(onSliderPosChangedAngle);
|
25
addons/markers/functions/fnc_onSliderMouseButtonUpScale.sqf
Normal file
25
addons/markers/functions/fnc_onSliderMouseButtonUpScale.sqf
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
#include "script_component.hpp"
|
||||||
|
/*
|
||||||
|
* Author: 10Dozen
|
||||||
|
* Scale slider clicked handler. Resets slider pos to 1 on RMB button up.
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* 0: Slider (idc 1420) is expected <CONTROL>
|
||||||
|
* 1: Button released (0 - Left mouse btn, 1 - Right mouse btn) <NUMBER>
|
||||||
|
*
|
||||||
|
* Return Value:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
* [Slider, 1] call ace_markers_fnc_onSliderMouseButtonUpScale
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
|
*/
|
||||||
|
|
||||||
|
params ["_aceScaleSlider", "_button"];
|
||||||
|
TRACE_2("params",_aceScaleSlider,_button);
|
||||||
|
|
||||||
|
if (_button isNotEqualTo 1) exitWith {};
|
||||||
|
|
||||||
|
_aceScaleSlider sliderSetPosition 1;
|
||||||
|
[_aceScaleSlider, 1] call FUNC(onSliderPosChangedScale);
|
@ -47,7 +47,7 @@ TRACE_2("params",_allMapMarkers,_allMapMarkersProperties);
|
|||||||
|
|
||||||
_x setMarkerPosLocal _pos;
|
_x setMarkerPosLocal _pos;
|
||||||
_x setMarkerDirLocal _dir;
|
_x setMarkerDirLocal _dir;
|
||||||
_x setMarkerSizeLocal _scale;
|
_x setMarkerSizeLocal [_scale, _scale];
|
||||||
};
|
};
|
||||||
false
|
false
|
||||||
} count allMapMarkers;
|
} count allMapMarkers;
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
<Key ID="STR_ACE_Markers_MarkerScale">
|
<Key ID="STR_ACE_Markers_MarkerScale">
|
||||||
<English>Scale: %1</English>
|
<English>Scale: %1</English>
|
||||||
<Spanish>Escala: %1</Spanish>
|
<Spanish>Escala: %1</Spanish>
|
||||||
|
<French>Échelle : %1</French>
|
||||||
|
<Russian>Масштаб: %1</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Markers_MarkerDirection">
|
<Key ID="STR_ACE_Markers_MarkerDirection">
|
||||||
<English>Direction: %1°</English>
|
<English>Direction: %1°</English>
|
||||||
@ -22,6 +24,11 @@
|
|||||||
<Chinese>方位: %1°</Chinese>
|
<Chinese>方位: %1°</Chinese>
|
||||||
<Turkish>Yön: %1°</Turkish>
|
<Turkish>Yön: %1°</Turkish>
|
||||||
</Key>
|
</Key>
|
||||||
|
<Key ID="STR_ACE_Markers_MarkerDirectionScaleSlider_Tooltip">
|
||||||
|
<English>Click RMB to reset</English>
|
||||||
|
<Russian>Нажми ПКМ чтобы сбросить</Russian>
|
||||||
|
<French>Clic droit pour réinitialiser</French>
|
||||||
|
</Key>
|
||||||
<Key ID="STR_ACE_Markers_Module_DisplayName">
|
<Key ID="STR_ACE_Markers_Module_DisplayName">
|
||||||
<English>Markers</English>
|
<English>Markers</English>
|
||||||
<German>Markierungen</German>
|
<German>Markierungen</German>
|
||||||
@ -165,84 +172,98 @@
|
|||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Markers_TimestampEnabled">
|
<Key ID="STR_ACE_Markers_TimestampEnabled">
|
||||||
<English>Allow Timestamps</English>
|
<English>Allow Timestamps</English>
|
||||||
|
<Russian>Включить отображение времени на метках</Russian>
|
||||||
<French>Permettre l'horodatage</French>
|
<French>Permettre l'horodatage</French>
|
||||||
<Japanese>タイムスタンプ許可</Japanese>
|
<Japanese>タイムスタンプ許可</Japanese>
|
||||||
<Spanish>Permitir marcas de tiempo</Spanish>
|
<Spanish>Permitir marcas de tiempo</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Markers_TimestampEnabledDescription">
|
<Key ID="STR_ACE_Markers_TimestampEnabledDescription">
|
||||||
<English>Whether to allow timestamps to be automatically applied to markers</English>
|
<English>Whether to allow timestamps to be automatically applied to markers</English>
|
||||||
|
<Russian>Автоматическое отображение времени, когда поставлена метка</Russian>
|
||||||
<French>Active une interface permettant d'apposer un horodatage sur les marqueurs.</French>
|
<French>Active une interface permettant d'apposer un horodatage sur les marqueurs.</French>
|
||||||
<Japanese>マーカーへ自動的にタイムスタンプを付与するかどうかを設定できます。</Japanese>
|
<Japanese>マーカーへ自動的にタイムスタンプを付与するかどうかを設定できます。</Japanese>
|
||||||
<Spanish>Permitir que las marcas de tiempo sean automáticamente aplicadas a los marcadores</Spanish>
|
<Spanish>Permitir que las marcas de tiempo sean automáticamente aplicadas a los marcadores</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Markers_Timestamp">
|
<Key ID="STR_ACE_Markers_Timestamp">
|
||||||
<English>Timestamp</English>
|
<English>Timestamp</English>
|
||||||
|
<Russian>Время постановки метки</Russian>
|
||||||
<French>Horodatage</French>
|
<French>Horodatage</French>
|
||||||
<Japanese>タイムスタンプ</Japanese>
|
<Japanese>タイムスタンプ</Japanese>
|
||||||
<Spanish>Marca de tiempo</Spanish>
|
<Spanish>Marca de tiempo</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Markers_TimestampTooltipNoWatch">
|
<Key ID="STR_ACE_Markers_TimestampTooltipNoWatch">
|
||||||
<English>Watch Required</English>
|
<English>Watch Required</English>
|
||||||
|
<Russian>Необходимы часы</Russian>
|
||||||
<French>Une montre est requise.</French>
|
<French>Une montre est requise.</French>
|
||||||
<Japanese>時計の要求</Japanese>
|
<Japanese>時計の要求</Japanese>
|
||||||
<Spanish>Reloj requerido</Spanish>
|
<Spanish>Reloj requerido</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Markers_TimestampFormat">
|
<Key ID="STR_ACE_Markers_TimestampFormat">
|
||||||
<English>Timestamp Format</English>
|
<English>Timestamp Format</English>
|
||||||
|
<Russian>Формат времени</Russian>
|
||||||
<French>Horodatage - Format</French>
|
<French>Horodatage - Format</French>
|
||||||
<Japanese>タイムスタンプ形式</Japanese>
|
<Japanese>タイムスタンプ形式</Japanese>
|
||||||
<Spanish>Formato de marca de tiempo</Spanish>
|
<Spanish>Formato de marca de tiempo</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Markers_TimestampFormatDescription0">
|
<Key ID="STR_ACE_Markers_TimestampFormatDescription0">
|
||||||
<English>Changes the timestamp format</English>
|
<English>Changes the timestamp format</English>
|
||||||
|
<Russian>Изменение формата времени</Russian>
|
||||||
<French>Modifie le format de l'horodatage.</French>
|
<French>Modifie le format de l'horodatage.</French>
|
||||||
<Japanese>タイムスタンプの形式を変更します</Japanese>
|
<Japanese>タイムスタンプの形式を変更します</Japanese>
|
||||||
<Spanish>Cambia el formato de marca de tiempo</Spanish>
|
<Spanish>Cambia el formato de marca de tiempo</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Markers_TimestampFormatDescription1">
|
<Key ID="STR_ACE_Markers_TimestampFormatDescription1">
|
||||||
<English>"HH" - Hour</English>
|
<English>"HH" - Hour</English>
|
||||||
|
<Russian>"ЧЧ" - Час</Russian>
|
||||||
<French>"HH" - Heures</French>
|
<French>"HH" - Heures</French>
|
||||||
<Japanese>"HH" - 時間</Japanese>
|
<Japanese>"HH" - 時間</Japanese>
|
||||||
<Spanish>"HH" - Hora</Spanish>
|
<Spanish>"HH" - Hora</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Markers_TimestampFormatDescription2">
|
<Key ID="STR_ACE_Markers_TimestampFormatDescription2">
|
||||||
<English>"MM" - Minute</English>
|
<English>"MM" - Minute</English>
|
||||||
|
<Russian>"ММ" - Минута</Russian>
|
||||||
<French>"MM" - Minutes</French>
|
<French>"MM" - Minutes</French>
|
||||||
<Japanese>"MM" - 分</Japanese>
|
<Japanese>"MM" - 分</Japanese>
|
||||||
<Spanish>"MM" - Minuto</Spanish>
|
<Spanish>"MM" - Minuto</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Markers_TimestampFormatDescription3">
|
<Key ID="STR_ACE_Markers_TimestampFormatDescription3">
|
||||||
<English>"SS" - Seconds</English>
|
<English>"SS" - Seconds</English>
|
||||||
|
<Russian>"СС" - Секунда</Russian>
|
||||||
<French>"SS" - Secondes</French>
|
<French>"SS" - Secondes</French>
|
||||||
<Japanese>"SS" - 秒</Japanese>
|
<Japanese>"SS" - 秒</Japanese>
|
||||||
<Spanish>"SS" - Segundos</Spanish>
|
<Spanish>"SS" - Segundos</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Markers_TimestampFormatDescription4">
|
<Key ID="STR_ACE_Markers_TimestampFormatDescription4">
|
||||||
<English>"MM" - Milliseconds</English>
|
<English>"MM" - Milliseconds</English>
|
||||||
<French>"MS" - Millisecondes</French>
|
<Russian>"МС" - Миллисекунда</Russian>
|
||||||
|
<French>"MM" - Millisecondes</French>
|
||||||
<Japanese>"MM" - ミリ秒</Japanese>
|
<Japanese>"MM" - ミリ秒</Japanese>
|
||||||
<Spanish>"MM" - Milisegundos</Spanish>
|
<Spanish>"MM" - Milisegundos</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Markers_TimestampHourFormat">
|
<Key ID="STR_ACE_Markers_TimestampHourFormat">
|
||||||
<English>Timestamp Hour Format</English>
|
<English>Timestamp Hour Format</English>
|
||||||
|
<Russian>Часовой формат времени</Russian>
|
||||||
<French>Horodatage - Système horaire</French>
|
<French>Horodatage - Système horaire</French>
|
||||||
<Japanese>タイムスタンプ時刻形式</Japanese>
|
<Japanese>タイムスタンプ時刻形式</Japanese>
|
||||||
<Spanish>Formato de hora de marca de tiempo</Spanish>
|
<Spanish>Formato de hora de marca de tiempo</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Markers_TimestampHourFormat24">
|
<Key ID="STR_ACE_Markers_TimestampHourFormat24">
|
||||||
<English>24-Hour Clock</English>
|
<English>24-Hour Clock</English>
|
||||||
|
<Russian>24 часовой формат</Russian>
|
||||||
<French>Format 24 heures</French>
|
<French>Format 24 heures</French>
|
||||||
<Japanese>24 時間表記</Japanese>
|
<Japanese>24 時間表記</Japanese>
|
||||||
<Spanish>Reloj 24-Horas</Spanish>
|
<Spanish>Reloj 24-Horas</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Markers_TimestampHourFormat12">
|
<Key ID="STR_ACE_Markers_TimestampHourFormat12">
|
||||||
<English>12-Hour Clock</English>
|
<English>12-Hour Clock</English>
|
||||||
|
<Russian>12 часовой формат</Russian>
|
||||||
<French>Format 12 heures</French>
|
<French>Format 12 heures</French>
|
||||||
<Japanese>12 時間表記</Japanese>
|
<Japanese>12 時間表記</Japanese>
|
||||||
<Spanish>Reloj 12-Horas</Spanish>
|
<Spanish>Reloj 12-Horas</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Markers_TimestampHourFormatDescription">
|
<Key ID="STR_ACE_Markers_TimestampHourFormatDescription">
|
||||||
<English>Changes timestamp to use either 24-hour or 12-hour clock format</English>
|
<English>Changes timestamp to use either 24-hour or 12-hour clock format</English>
|
||||||
|
<Russian>Изменяет формат времени на маркере на 24 часовой, либо 12 часовой</Russian>
|
||||||
<French>Permet de choisir le système d'horodatage souhaité, au format 12 ou 24 heures.</French>
|
<French>Permet de choisir le système d'horodatage souhaité, au format 12 ou 24 heures.</French>
|
||||||
<Japanese>タイムスタンプの時刻を 24 時間か 12 時間表記のどちらかに変更できます。</Japanese>
|
<Japanese>タイムスタンプの時刻を 24 時間か 12 時間表記のどちらかに変更できます。</Japanese>
|
||||||
<Spanish>Cambia que la marca de tiempo sea en formato de reloj 24-horas o 12-horas</Spanish>
|
<Spanish>Cambia que la marca de tiempo sea en formato de reloj 24-horas o 12-horas</Spanish>
|
||||||
|
@ -69,6 +69,8 @@
|
|||||||
<Key ID="STR_ACE_Maverick_l_mag_short">
|
<Key ID="STR_ACE_Maverick_l_mag_short">
|
||||||
<English>MAVL</English>
|
<English>MAVL</English>
|
||||||
<Spanish>MAVL</Spanish>
|
<Spanish>MAVL</Spanish>
|
||||||
|
<French>MAVL</French>
|
||||||
|
<Russian>MAVL</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Maverick_kh25ml_mag_descr">
|
<Key ID="STR_ACE_Maverick_kh25ml_mag_descr">
|
||||||
<English>Kh-25ML, Laser Guided Air-to-Ground-Missile</English>
|
<English>Kh-25ML, Laser Guided Air-to-Ground-Missile</English>
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
PREP(addDamageToUnit);
|
PREP(addDamageToUnit);
|
||||||
PREP(adjustPainLevel);
|
PREP(adjustPainLevel);
|
||||||
|
PREP(deserializeState);
|
||||||
|
PREP(serializeState);
|
||||||
PREP(setUnconscious);
|
PREP(setUnconscious);
|
||||||
|
98
addons/medical/functions/fnc_deserializeState.sqf
Normal file
98
addons/medical/functions/fnc_deserializeState.sqf
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
#include "script_component.hpp"
|
||||||
|
/*
|
||||||
|
* Author: BaerMitUmlaut
|
||||||
|
* Deserializes the medical state of a unit and applies it.
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* 0: Unit <OBJECT>
|
||||||
|
* 1: State as JSON <STRING>
|
||||||
|
*
|
||||||
|
* Return Value:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
* [player, _json] call ace_medical_fnc_deserializeState
|
||||||
|
*
|
||||||
|
* Public: Yes
|
||||||
|
*/
|
||||||
|
params [["_unit", objNull, [objNull]], ["_json", "{}", [""]]];
|
||||||
|
|
||||||
|
if (isNull _unit) exitWith {};
|
||||||
|
if (!local _unit) exitWith { ERROR_1("unit [%1] is not local",_unit) };
|
||||||
|
|
||||||
|
// If unit is not initialized yet, wait until event is raised
|
||||||
|
if !(_unit getVariable [QGVAR(initialized), false]) exitWith {
|
||||||
|
[QEGVAR(medical_status,initialized), {
|
||||||
|
params ["_unit"];
|
||||||
|
_thisArgs params ["_target"];
|
||||||
|
|
||||||
|
if (_unit == _target) then {
|
||||||
|
_thisArgs call FUNC(deserializeState);
|
||||||
|
[_thisType, _thisId] call CBA_fnc_removeEventHandler;
|
||||||
|
};
|
||||||
|
}, _this] call CBA_fnc_addEventHandlerArgs;
|
||||||
|
};
|
||||||
|
|
||||||
|
private _state = [_json] call CBA_fnc_parseJSON;
|
||||||
|
|
||||||
|
// Set medical variables
|
||||||
|
{
|
||||||
|
_x params ["_var", "_default"];
|
||||||
|
private _value = _state getVariable _x;
|
||||||
|
|
||||||
|
// Treat null as nil
|
||||||
|
if (_value isEqualTo objNull) then {
|
||||||
|
_value = _default;
|
||||||
|
};
|
||||||
|
|
||||||
|
_unit setVariable [_var, _value, true];
|
||||||
|
} forEach [
|
||||||
|
[VAR_BLOOD_VOL, DEFAULT_BLOOD_VOLUME],
|
||||||
|
[VAR_HEART_RATE, DEFAULT_HEART_RATE],
|
||||||
|
[VAR_BLOOD_PRESS, [80, 120]],
|
||||||
|
[VAR_PERIPH_RES, DEFAULT_PERIPH_RES],
|
||||||
|
// State transition should handle this
|
||||||
|
// [VAR_CRDC_ARRST, false],
|
||||||
|
[VAR_HEMORRHAGE, 0],
|
||||||
|
[VAR_PAIN, 0],
|
||||||
|
[VAR_IN_PAIN, false],
|
||||||
|
[VAR_PAIN_SUPP, 0],
|
||||||
|
[VAR_OPEN_WOUNDS, []],
|
||||||
|
[VAR_BANDAGED_WOUNDS, []],
|
||||||
|
[VAR_STITCHED_WOUNDS, []],
|
||||||
|
[VAR_FRACTURES, DEFAULT_FRACTURE_VALUES],
|
||||||
|
// State transition should handle this
|
||||||
|
// [VAR_UNCON, false],
|
||||||
|
[VAR_TOURNIQUET, DEFAULT_TOURNIQUET_VALUES],
|
||||||
|
[QEGVAR(medical,occludedMedications), nil],
|
||||||
|
[QEGVAR(medical,ivBags), nil],
|
||||||
|
[QEGVAR(medical,triageLevel), 0],
|
||||||
|
[QEGVAR(medical,triageCard), []],
|
||||||
|
[QEGVAR(medical,bodyPartDamage), [0,0,0,0,0,0]]
|
||||||
|
// Offset needs to be converted
|
||||||
|
// [VAR_MEDICATIONS, []]
|
||||||
|
];
|
||||||
|
|
||||||
|
// Reset timers
|
||||||
|
_unit setVariable [QEGVAR(medical,lastWakeUpCheck), nil];
|
||||||
|
|
||||||
|
// Convert medications offset to time
|
||||||
|
private _medications = _state getVariable [VAR_MEDICATIONS, []];
|
||||||
|
{
|
||||||
|
_x set [1, _x#1 + CBA_missionTime];
|
||||||
|
} forEach _medications;
|
||||||
|
_unit setVariable [VAR_MEDICATIONS, _medications, true];
|
||||||
|
|
||||||
|
// Update effects
|
||||||
|
[_unit] call EFUNC(medical_engine,updateDamageEffects);
|
||||||
|
[_unit] call EFUNC(medical_status,updateWoundBloodLoss);
|
||||||
|
|
||||||
|
// Transition within statemachine
|
||||||
|
private _currentState = [_unit, GVAR(STATE_MACHINE)] call CBA_statemachine_fnc_getCurrentState;
|
||||||
|
private _targetState = _state getVariable [QGVAR(statemachineState), "Default"];
|
||||||
|
[_unit, GVAR(STATE_MACHINE), _currentState, _targetState] call CBA_statemachine_fnc_manualTransition;
|
||||||
|
|
||||||
|
// Manually call wake up tranisition if necessary
|
||||||
|
if (_currentState in ["Unconscious", "CardiacArrest"] && {_targetState in ["Default", "Injured"]}) then {
|
||||||
|
[_unit, false] call EFUNC(medical_status,setUnconsciousState);
|
||||||
|
};
|
64
addons/medical/functions/fnc_serializeState.sqf
Normal file
64
addons/medical/functions/fnc_serializeState.sqf
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
#include "script_component.hpp"
|
||||||
|
/*
|
||||||
|
* Author: BaerMitUmlaut
|
||||||
|
* Serializes the medical state of a unit into a string.
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* 0: Unit <OBJECT>
|
||||||
|
*
|
||||||
|
* Return Value:
|
||||||
|
* Serialized state as JSON string
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
* [player] call ace_medical_fnc_serializeState
|
||||||
|
*
|
||||||
|
* Public: Yes
|
||||||
|
*/
|
||||||
|
params [["_unit", objNull, [objNull]]];
|
||||||
|
|
||||||
|
private _state = [] call CBA_fnc_createNamespace;
|
||||||
|
|
||||||
|
// For variables, see: EFUNC(medical_status,initUnit)
|
||||||
|
{
|
||||||
|
_x params ["_var"];
|
||||||
|
_state setVariable [_var, _unit getVariable _x];
|
||||||
|
} forEach [
|
||||||
|
[VAR_BLOOD_VOL, DEFAULT_BLOOD_VOLUME],
|
||||||
|
[VAR_HEART_RATE, DEFAULT_HEART_RATE],
|
||||||
|
[VAR_BLOOD_PRESS, [80, 120]],
|
||||||
|
[VAR_PERIPH_RES, DEFAULT_PERIPH_RES],
|
||||||
|
// State transition should handle this
|
||||||
|
// [VAR_CRDC_ARRST, false],
|
||||||
|
[VAR_HEMORRHAGE, 0],
|
||||||
|
[VAR_PAIN, 0],
|
||||||
|
[VAR_IN_PAIN, false],
|
||||||
|
[VAR_PAIN_SUPP, 0],
|
||||||
|
[VAR_OPEN_WOUNDS, []],
|
||||||
|
[VAR_BANDAGED_WOUNDS, []],
|
||||||
|
[VAR_STITCHED_WOUNDS, []],
|
||||||
|
[VAR_FRACTURES, DEFAULT_FRACTURE_VALUES],
|
||||||
|
// State transition should handle this
|
||||||
|
// [VAR_UNCON, false],
|
||||||
|
[VAR_TOURNIQUET, DEFAULT_TOURNIQUET_VALUES],
|
||||||
|
[QEGVAR(medical,occludedMedications), nil],
|
||||||
|
[QEGVAR(medical,ivBags), nil],
|
||||||
|
[QEGVAR(medical,triageLevel), 0],
|
||||||
|
[QEGVAR(medical,triageCard), []],
|
||||||
|
[QEGVAR(medical,bodyPartDamage), [0,0,0,0,0,0]]
|
||||||
|
// Time needs to be converted
|
||||||
|
// [VAR_MEDICATIONS, []]
|
||||||
|
];
|
||||||
|
|
||||||
|
// Convert medications time to offset
|
||||||
|
private _medications = _unit getVariable [VAR_MEDICATIONS, []];
|
||||||
|
{
|
||||||
|
_x set [1, _x#1 - CBA_missionTime];
|
||||||
|
} forEach _medications;
|
||||||
|
_state setVariable [VAR_MEDICATIONS, _medications];
|
||||||
|
|
||||||
|
// Medical statemachine state
|
||||||
|
private _currentState = [_unit, GVAR(STATE_MACHINE)] call CBA_statemachine_fnc_getCurrentState;
|
||||||
|
_state setVariable [QGVAR(statemachineState), _currentState];
|
||||||
|
|
||||||
|
// Serialize & return
|
||||||
|
[_state] call CBA_fnc_encodeJSON
|
@ -202,6 +202,7 @@
|
|||||||
<Japanese>添え木で治癒可能、駆け足できないように</Japanese>
|
<Japanese>添え木で治癒可能、駆け足できないように</Japanese>
|
||||||
<Turkish>Ateller İyileştirir, Ama Koşu Yapamaz</Turkish>
|
<Turkish>Ateller İyileştirir, Ama Koşu Yapamaz</Turkish>
|
||||||
<Spanish>Las férulas sanan, pero no pueden trotar</Spanish>
|
<Spanish>Las férulas sanan, pero no pueden trotar</Spanish>
|
||||||
|
<Russian>Шины вылечивают, но не дают бежать трусцой</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Medical_FractureChance_DisplayName">
|
<Key ID="STR_ACE_Medical_FractureChance_DisplayName">
|
||||||
<English>Fracture Chance</English>
|
<English>Fracture Chance</English>
|
||||||
|
@ -691,31 +691,43 @@
|
|||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Medical_Damage_PainUnconsciousChance_DisplayName">
|
<Key ID="STR_ACE_Medical_Damage_PainUnconsciousChance_DisplayName">
|
||||||
<English>Pain Unconscious Chance</English>
|
<English>Pain Unconscious Chance</English>
|
||||||
|
<Russian>Шанс потерять сознание от боли</Russian>
|
||||||
<Polish>Szansa na nieprzytomność przez ból</Polish>
|
<Polish>Szansa na nieprzytomność przez ból</Polish>
|
||||||
<Japanese>気絶確立</Japanese>
|
<Japanese>気絶確立</Japanese>
|
||||||
<Spanish>Probabilidad de inconsciencia por dolor</Spanish>
|
<Spanish>Probabilidad de inconsciencia por dolor</Spanish>
|
||||||
|
<French>Douleur - Chance d'évanouissement</French>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Medical_Damage_PainUnconsciousChance_Description">
|
<Key ID="STR_ACE_Medical_Damage_PainUnconsciousChance_Description">
|
||||||
<English>The probability of a person falling unconscious when their pain is above the tolerance threshold upon receiving damage.</English>
|
<English>The probability of a person falling unconscious when their pain is above the tolerance threshold upon receiving damage.</English>
|
||||||
|
<Russian>Шанс, что человек потеряет сознание, когда его боль выше допустимого порога при получении травмы.</Russian>
|
||||||
<Polish>Szansa że osoba straci przytomność gdy jej ból jest powyżej tolerowalnego progu podczas otrzymywania obrażeń.</Polish>
|
<Polish>Szansa że osoba straci przytomność gdy jej ból jest powyżej tolerowalnego progu podczas otrzymywania obrażeń.</Polish>
|
||||||
<Japanese>ユニットがダメージを受けた時に痛みが許容しきい値を超えた場合、気絶をする確立を設定します。</Japanese>
|
<Japanese>ユニットがダメージを受けた時に痛みが許容しきい値を超えた場合、気絶をする確立を設定します。</Japanese>
|
||||||
<Spanish>La probabilidad de que una persona caiga inconsciente cuando su dolor está por encima del umbral al haber recibido daño.</Spanish>
|
<Spanish>La probabilidad de que una persona caiga inconsciente cuando su dolor está por encima del umbral al haber recibido daño.</Spanish>
|
||||||
|
<French>La probabilité pour qu'une personne perde connaissance lorsque la douleur ressentie est supérieure à son seuil de tolérance.</French>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Medical_Damage_DeathChance_DisplayName">
|
<Key ID="STR_ACE_Medical_Damage_DeathChance_DisplayName">
|
||||||
<English>Fatal Injury Death Chance</English>
|
<English>Fatal Injury Death Chance</English>
|
||||||
|
<Russian>Вероятность смерти от смертельной травмы</Russian>
|
||||||
<Spanish>Probabilidad de muerte por herida fatal</Spanish>
|
<Spanish>Probabilidad de muerte por herida fatal</Spanish>
|
||||||
|
<French>Blessure mortelle - Chance de décès</French>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Medical_Damage_DeathChance_Description">
|
<Key ID="STR_ACE_Medical_Damage_DeathChance_Description">
|
||||||
<English>The chance of dying to a fatal injury.</English>
|
<English>The chance of dying to a fatal injury.</English>
|
||||||
|
<Russian>Шанс умереть от смертельной травмы.</Russian>
|
||||||
<Spanish>La probabilidad de morir a causa de una herida fatal.</Spanish>
|
<Spanish>La probabilidad de morir a causa de una herida fatal.</Spanish>
|
||||||
|
<French>La probabilité de mourir lors d'une "blessure mortelle".\nUne blessure mortelle est définie par des dommages importants à la tête ou au cœur.</French>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Medical_Damage_EnableVehicleCrashes_DisplayName">
|
<Key ID="STR_ACE_Medical_Damage_EnableVehicleCrashes_DisplayName">
|
||||||
<English>Enable Vehicle Crash Damage</English>
|
<English>Enable Vehicle Crash Damage</English>
|
||||||
|
<Russian>Включить урон при аварии в транспортном средстве.</Russian>
|
||||||
<Spanish>Activar daño por accidente de vehículo</Spanish>
|
<Spanish>Activar daño por accidente de vehículo</Spanish>
|
||||||
|
<French>Blessures de collision (véhicules)</French>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Medical_Damage_EnableVehicleCrashes_Description">
|
<Key ID="STR_ACE_Medical_Damage_EnableVehicleCrashes_Description">
|
||||||
<English>Controls whether crew receives damage from vehicle collisions.</English>
|
<English>Controls whether crew receives damage from vehicle collisions.</English>
|
||||||
|
<Russian>Контролирует, получает ли экипаж урон от столкновения транспортного средства.</Russian>
|
||||||
<Spanish>Controla si la tripulación recibe daño debido a colisiones en vehículo.</Spanish>
|
<Spanish>Controla si la tripulación recibe daño debido a colisiones en vehículo.</Spanish>
|
||||||
|
<French>Définit si les passagers à bord des véhicules peuvent être blessés en cas d'accident.</French>
|
||||||
</Key>
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
</Project>
|
</Project>
|
||||||
|
10
addons/medical_engine/CfgFunctions.hpp
Normal file
10
addons/medical_engine/CfgFunctions.hpp
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
class CfgFunctions {
|
||||||
|
class A3_Mark {
|
||||||
|
class Revive {
|
||||||
|
class reviveInit {
|
||||||
|
// Disable BI medical system
|
||||||
|
postInit = 0;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
@ -1,9 +1,10 @@
|
|||||||
PREP(handleDamage);
|
PREP(applyAnimAfterRagdoll);
|
||||||
PREP(damageBodyPart);
|
PREP(damageBodyPart);
|
||||||
PREP(updateBodyPartVisuals);
|
PREP(disableThirdParty);
|
||||||
PREP(updateDamageEffects);
|
|
||||||
PREP(setStructuralDamage);
|
|
||||||
PREP(setUnconsciousAnim);
|
|
||||||
PREP(getHitpointArmor);
|
PREP(getHitpointArmor);
|
||||||
PREP(getItemArmor);
|
PREP(getItemArmor);
|
||||||
PREP(applyAnimAfterRagdoll);
|
PREP(handleDamage);
|
||||||
|
PREP(setStructuralDamage);
|
||||||
|
PREP(setUnconsciousAnim);
|
||||||
|
PREP(updateBodyPartVisuals);
|
||||||
|
PREP(updateDamageEffects);
|
||||||
|
@ -78,4 +78,6 @@ addMissionEventHandler ["Loaded", {
|
|||||||
};
|
};
|
||||||
}] call CBA_fnc_addEventhandler;
|
}] call CBA_fnc_addEventhandler;
|
||||||
|
|
||||||
|
[] call FUNC(disableThirdParty);
|
||||||
|
|
||||||
ADDON = true;
|
ADDON = true;
|
||||||
|
@ -14,10 +14,10 @@ class CfgPatches {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
#include "CfgEventHandlers.hpp"
|
|
||||||
|
|
||||||
#include "CfgActions.hpp"
|
#include "CfgActions.hpp"
|
||||||
#include "CfgMoves.hpp"
|
#include "CfgEventHandlers.hpp"
|
||||||
#include "CfgExtendedAnimation.hpp"
|
#include "CfgExtendedAnimation.hpp"
|
||||||
|
#include "CfgFunctions.hpp"
|
||||||
|
#include "CfgMoves.hpp"
|
||||||
#include "CfgVehicles.hpp"
|
#include "CfgVehicles.hpp"
|
||||||
#include "CfgWeapons.hpp"
|
#include "CfgWeapons.hpp"
|
||||||
|
31
addons/medical_engine/functions/fnc_disableThirdParty.sqf
Normal file
31
addons/medical_engine/functions/fnc_disableThirdParty.sqf
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
#include "script_component.hpp"
|
||||||
|
/*
|
||||||
|
* Author: BaerMitUmlaut
|
||||||
|
* Detects and disables third party medical systems.
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Return Value:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
* [] call ace_medical_engine_fnc_disableThirdParty
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
|
*/
|
||||||
|
|
||||||
|
// SOG:PF CDLC revive system
|
||||||
|
// Pretend revive system was already initialized.
|
||||||
|
// See: vn_fnc_module_advancedrevive
|
||||||
|
vn_advanced_revive_started = true;
|
||||||
|
|
||||||
|
// Farooq Revive
|
||||||
|
// Overwrite player initialization.
|
||||||
|
far_player_init = compileFinal "";
|
||||||
|
[{!isNil "far_debugging"}, {
|
||||||
|
far_isDragging = nil; // Disable "Drag & Carry animation fix" loop - cannot be killed because spawned while true.
|
||||||
|
far_muteRadio = nil; // Disable initialization hint.
|
||||||
|
far_muteACRE = nil; // Same, but for very old versions.
|
||||||
|
far_debugging = false; // Disable adding event handlers to AI in SP.
|
||||||
|
}, [], 5] call CBA_fnc_waitUntilAndExecute;
|
@ -1,6 +1,6 @@
|
|||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
/*
|
/*
|
||||||
* Author: SynixeBrett
|
* Author: Brett Mayson
|
||||||
* Modifies the action color to match the triage level.
|
* Modifies the action color to match the triage level.
|
||||||
*
|
*
|
||||||
* Arguments:
|
* Arguments:
|
||||||
@ -40,7 +40,7 @@ if (
|
|||||||
"#FFFFFF"
|
"#FFFFFF"
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
_actionData params ["", "", "_icon"];
|
_actionData params ["", "", "_icon"];
|
||||||
_icon set [1, _colorHex];
|
_icon set [1, _colorHex];
|
||||||
};
|
};
|
||||||
|
@ -194,12 +194,14 @@
|
|||||||
<French>Couleur de triage dans le menu d'interaction</French>
|
<French>Couleur de triage dans le menu d'interaction</French>
|
||||||
<Japanese>インタラクションにトリアージ レベル表示</Japanese>
|
<Japanese>インタラクションにトリアージ レベル表示</Japanese>
|
||||||
<Spanish>Mostrar nivel de triado en menú de interacción</Spanish>
|
<Spanish>Mostrar nivel de triado en menú de interacción</Spanish>
|
||||||
|
<Russian>Показывать группу триажа в меню взаимодействий</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Medical_GUI_InteractionMenuShowTriage_Description">
|
<Key ID="STR_ACE_Medical_GUI_InteractionMenuShowTriage_Description">
|
||||||
<English>Shows the patient's triage level by changing the color of the main and medical menu actions.</English>
|
<English>Shows the patient's triage level by changing the color of the main and medical menu actions.</English>
|
||||||
<French>Modifie la couleur du menu d'interactions et du sous-menu médical en fonction de la fiche de triage du patient.</French>
|
<French>Modifie la couleur du menu d'interactions et du sous-menu médical en fonction de la fiche de triage du patient.</French>
|
||||||
<Japanese>メニューと医療メニューの色を変更し、患者のトリアージ レベルを表示します。</Japanese>
|
<Japanese>メニューと医療メニューの色を変更し、患者のトリアージ レベルを表示します。</Japanese>
|
||||||
<Spanish>Mostrar el nivel de triado en el paciente cambiando el color de acciones de menú principales y médicas </Spanish>
|
<Spanish>Mostrar el nivel de triado en el paciente cambiando el color de acciones de menú principales y médicas </Spanish>
|
||||||
|
<Russian>Отображает установленную группу карты медицинской сортировки (триажа), изменяя цвет действий основного и медицинского меню.</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Medical_GUI_Medical">
|
<Key ID="STR_ACE_Medical_GUI_Medical">
|
||||||
<English>Medical</English>
|
<English>Medical</English>
|
||||||
|
@ -146,6 +146,7 @@
|
|||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Medical_Statemachine_CardiacArrestBleedout_DisplayName">
|
<Key ID="STR_ACE_Medical_Statemachine_CardiacArrestBleedout_DisplayName">
|
||||||
<English>Bleedout During Cardiac Arrest</English>
|
<English>Bleedout During Cardiac Arrest</English>
|
||||||
|
<Russian>Кровотечение во время остановки сердца</Russian>
|
||||||
<German>Ausbluten im Herzstillstand</German>
|
<German>Ausbluten im Herzstillstand</German>
|
||||||
<French>Saignement durant l'arrêt cardiaque</French>
|
<French>Saignement durant l'arrêt cardiaque</French>
|
||||||
<Japanese>心停止中の失血</Japanese>
|
<Japanese>心停止中の失血</Japanese>
|
||||||
@ -153,6 +154,7 @@
|
|||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Medical_Statemachine_CardiacArrestBleedout_Description">
|
<Key ID="STR_ACE_Medical_Statemachine_CardiacArrestBleedout_Description">
|
||||||
<English>Controls whether a person can die in cardiac arrest by blood loss before the cardiac arrest time runs out.</English>
|
<English>Controls whether a person can die in cardiac arrest by blood loss before the cardiac arrest time runs out.</English>
|
||||||
|
<Russian>Определяет, можно ли умереть от потери крови во время остановки сердца, даже если время жизни при остановке сердца еще не истекло.</Russian>
|
||||||
<German>Legt fest, ob man während des Herzstillstands durch Blutverlust sterben kann, auch wenn die Überlebenszeit im Herzstillstand noch nicht ausgelaufen ist.</German>
|
<German>Legt fest, ob man während des Herzstillstands durch Blutverlust sterben kann, auch wenn die Überlebenszeit im Herzstillstand noch nicht ausgelaufen ist.</German>
|
||||||
<French>Définit si un joueur en arrêt cardiaque peut mourir par exsanguination, avant que la durée de l'arrêt cardiaque définie ci-dessus ne soit écoulée.</French>
|
<French>Définit si un joueur en arrêt cardiaque peut mourir par exsanguination, avant que la durée de l'arrêt cardiaque définie ci-dessus ne soit écoulée.</French>
|
||||||
<Japanese>心停止時間を超え死亡する前に、失血による心停止で死亡するかどうかを決定します。</Japanese>
|
<Japanese>心停止時間を超え死亡する前に、失血による心停止で死亡するかどうかを決定します。</Japanese>
|
||||||
|
@ -80,5 +80,7 @@ if (_isRespawn) then {
|
|||||||
[{
|
[{
|
||||||
params ["_unit"];
|
params ["_unit"];
|
||||||
TRACE_3("Unit Init",_unit,local _unit,typeOf _unit);
|
TRACE_3("Unit Init",_unit,local _unit,typeOf _unit);
|
||||||
|
|
||||||
|
_unit setVariable [QEGVAR(medical,initialized), true, true];
|
||||||
[QGVAR(initialized), [_unit]] call CBA_fnc_localEvent;
|
[QGVAR(initialized), [_unit]] call CBA_fnc_localEvent;
|
||||||
}, [_unit], 0.5] call CBA_fnc_waitAndExecute;
|
}, [_unit], 0.5] call CBA_fnc_waitAndExecute;
|
||||||
|
@ -494,7 +494,6 @@ class ADDON {
|
|||||||
};
|
};
|
||||||
class CutMinor: Cut {
|
class CutMinor: Cut {
|
||||||
effectiveness = 2;
|
effectiveness = 2;
|
||||||
reopeningChance = 0.3;
|
|
||||||
};
|
};
|
||||||
class CutMedium: Cut {
|
class CutMedium: Cut {
|
||||||
effectiveness = 1;
|
effectiveness = 1;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
/*
|
/*
|
||||||
* Author: SynixeBrett
|
* Author: Brett Mayson
|
||||||
* Checks if the patient can be placed in a bodybag.
|
* Checks if the patient can be placed in a bodybag.
|
||||||
*
|
*
|
||||||
* 'vehicle _patient' always returns the body
|
* 'vehicle _patient' always returns the body
|
||||||
|
@ -21,10 +21,12 @@ TRACE_2("cprLocal",_medic,_patient);
|
|||||||
|
|
||||||
[_patient, "activity", LSTRING(Activity_CPR), [[_medic, false, true] call EFUNC(common,getName)]] call FUNC(addToLog);
|
[_patient, "activity", LSTRING(Activity_CPR), [[_medic, false, true] call EFUNC(common,getName)]] call FUNC(addToLog);
|
||||||
|
|
||||||
if ((random 1) < GVAR(cprSuccessChance)) then {
|
private _bloodVolume = GET_BLOOD_VOLUME(_patient);
|
||||||
TRACE_1("CPR random success",GVAR(cprSuccessChance));
|
private _successChance = linearConversion [BLOOD_VOLUME_CLASS_4_HEMORRHAGE, BLOOD_VOLUME_CLASS_2_HEMORRHAGE, _bloodVolume, GVAR(cprSuccessChanceMin), GVAR(cprSuccessChanceMax), true];
|
||||||
|
if ((random 1) < _successChance) then {
|
||||||
|
TRACE_2("CPR random success",_bloodVolume,_successChance);
|
||||||
[QEGVAR(medical,CPRSucceeded), _patient] call CBA_fnc_localEvent;
|
[QEGVAR(medical,CPRSucceeded), _patient] call CBA_fnc_localEvent;
|
||||||
} else {
|
} else {
|
||||||
TRACE_1("CPR random fail",GVAR(cprSuccessChance));
|
TRACE_2("CPR random fail",_bloodVolume,_successChance);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -252,9 +252,18 @@
|
|||||||
] call CBA_fnc_addSetting;
|
] call CBA_fnc_addSetting;
|
||||||
|
|
||||||
[
|
[
|
||||||
QGVAR(cprSuccessChance),
|
QGVAR(cprSuccessChanceMin),
|
||||||
"SLIDER",
|
"SLIDER",
|
||||||
[LSTRING(CPRSuccessChance_DisplayName), LSTRING(CPRSuccessChance_Description)],
|
[LSTRING(CPRSuccessChanceMin_DisplayName), LSTRING(CPRSuccessChanceMin_Description)],
|
||||||
|
[ELSTRING(medical,Category), LSTRING(SubCategory_Treatment)],
|
||||||
|
[0, 1, 0.4, 2, true],
|
||||||
|
true
|
||||||
|
] call CBA_settings_fnc_init;
|
||||||
|
|
||||||
|
[
|
||||||
|
QGVAR(cprSuccessChanceMax),
|
||||||
|
"SLIDER",
|
||||||
|
[LSTRING(CPRSuccessChanceMax_DisplayName), LSTRING(CPRSuccessChanceMax_Description)],
|
||||||
[ELSTRING(medical,Category), LSTRING(SubCategory_Treatment)],
|
[ELSTRING(medical,Category), LSTRING(SubCategory_Treatment)],
|
||||||
[0, 1, 0.4, 2, true],
|
[0, 1, 0.4, 2, true],
|
||||||
true
|
true
|
||||||
|
@ -261,12 +261,14 @@
|
|||||||
<French>Durée d'interaction - Auto-injecteurs</French>
|
<French>Durée d'interaction - Auto-injecteurs</French>
|
||||||
<Japanese>注射器の使用時間</Japanese>
|
<Japanese>注射器の使用時間</Japanese>
|
||||||
<Spanish>Tiempo de tratamiento de autoinyección</Spanish>
|
<Spanish>Tiempo de tratamiento de autoinyección</Spanish>
|
||||||
|
<Russian>Время ввода автоинъектора</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Medical_Treatment_TreatmentTimeAutoinjector_Description">
|
<Key ID="STR_ACE_Medical_Treatment_TreatmentTimeAutoinjector_Description">
|
||||||
<English>Time, in seconds, required to administer medication using an autoinjector.</English>
|
<English>Time, in seconds, required to administer medication using an autoinjector.</English>
|
||||||
<French>Définit le temps nécessaire à l'administration d'une substance auto-injectable (en secondes).</French>
|
<French>Définit le temps nécessaire à l'administration d'une substance auto-injectable (en secondes).</French>
|
||||||
<Japanese>注射器の使用に掛かる時間 (秒) を決定します。</Japanese>
|
<Japanese>注射器の使用に掛かる時間 (秒) を決定します。</Japanese>
|
||||||
<Spanish>Tiempo, en segundos, requerido para administrar medicación utilizando un autoinyectador.</Spanish>
|
<Spanish>Tiempo, en segundos, requerido para administrar medicación utilizando un autoinyectador.</Spanish>
|
||||||
|
<Russian>Время, необходимое для введения медикаментов автоинъектором (в секундах).</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Medical_Treatment_TreatmentTimeTourniquet_DisplayName">
|
<Key ID="STR_ACE_Medical_Treatment_TreatmentTimeTourniquet_DisplayName">
|
||||||
<English>Tourniquet Treatment Time</English>
|
<English>Tourniquet Treatment Time</English>
|
||||||
@ -274,6 +276,7 @@
|
|||||||
<German>Tourniquet-Behandlungszeit</German>
|
<German>Tourniquet-Behandlungszeit</German>
|
||||||
<Japanese>止血帯の使用時間</Japanese>
|
<Japanese>止血帯の使用時間</Japanese>
|
||||||
<Spanish>Tiempo de tratamiento de torniquete</Spanish>
|
<Spanish>Tiempo de tratamiento de torniquete</Spanish>
|
||||||
|
<Russian>Время наложения/снятия жгута</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Medical_Treatment_TreatmentTimeTourniquet_Description">
|
<Key ID="STR_ACE_Medical_Treatment_TreatmentTimeTourniquet_Description">
|
||||||
<English>Time, in seconds, required to apply/remove a tourniquet.</English>
|
<English>Time, in seconds, required to apply/remove a tourniquet.</English>
|
||||||
@ -281,6 +284,7 @@
|
|||||||
<German>Zeit in Sekunden, die benötigt wird, um ein Tourniquet anzuwenden.</German>
|
<German>Zeit in Sekunden, die benötigt wird, um ein Tourniquet anzuwenden.</German>
|
||||||
<Japanese>止血帯の使用/排除に掛かる時間 (秒) を決定します。</Japanese>
|
<Japanese>止血帯の使用/排除に掛かる時間 (秒) を決定します。</Japanese>
|
||||||
<Spanish>Tiempo, en segundos, requerido para aplicar/quitar un torniquete.</Spanish>
|
<Spanish>Tiempo, en segundos, requerido para aplicar/quitar un torniquete.</Spanish>
|
||||||
|
<Russian>Время, необходимое для наложения/снятия жгута (в секундах).</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Medical_Treatment_TreatmentTimeIV_DisplayName">
|
<Key ID="STR_ACE_Medical_Treatment_TreatmentTimeIV_DisplayName">
|
||||||
<English>IV Bag Treatment Time</English>
|
<English>IV Bag Treatment Time</English>
|
||||||
@ -288,6 +292,7 @@
|
|||||||
<German>IV Beutelbehandlungszeit</German>
|
<German>IV Beutelbehandlungszeit</German>
|
||||||
<Japanese>点滴の使用時間</Japanese>
|
<Japanese>点滴の使用時間</Japanese>
|
||||||
<Spanish>Tiempo de tratamiento de bolsa de IV</Spanish>
|
<Spanish>Tiempo de tratamiento de bolsa de IV</Spanish>
|
||||||
|
<Russian>Время применения пакета внутривенного переливания</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Medical_Treatment_TreatmentTimeIV_Description">
|
<Key ID="STR_ACE_Medical_Treatment_TreatmentTimeIV_Description">
|
||||||
<English>Time, in seconds, required to administer an IV bag.</English>
|
<English>Time, in seconds, required to administer an IV bag.</English>
|
||||||
@ -295,6 +300,7 @@
|
|||||||
<German>Zeit in Sekunden, die benötigt wird, um einen Infusionsbeutel aufzutragen.</German>
|
<German>Zeit in Sekunden, die benötigt wird, um einen Infusionsbeutel aufzutragen.</German>
|
||||||
<Japanese>点滴の投与に掛かる時間 (秒) を決定します。</Japanese>
|
<Japanese>点滴の投与に掛かる時間 (秒) を決定します。</Japanese>
|
||||||
<Spanish>Tiempo, en segundos, requerido para administrar una bolsa de IV.</Spanish>
|
<Spanish>Tiempo, en segundos, requerido para administrar una bolsa de IV.</Spanish>
|
||||||
|
<Russian>Время, необходимое для применения пакета внутривенного переливания (в секундах).</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Medical_Treatment_TreatmentTimeSplint_DisplayName">
|
<Key ID="STR_ACE_Medical_Treatment_TreatmentTimeSplint_DisplayName">
|
||||||
<English>Splint Treatment Time</English>
|
<English>Splint Treatment Time</English>
|
||||||
@ -302,6 +308,7 @@
|
|||||||
<German>Schienenbehandlungszeit</German>
|
<German>Schienenbehandlungszeit</German>
|
||||||
<Japanese>添え木の使用時間</Japanese>
|
<Japanese>添え木の使用時間</Japanese>
|
||||||
<Spanish>TIempo de tratamiento de férula</Spanish>
|
<Spanish>TIempo de tratamiento de férula</Spanish>
|
||||||
|
<Russian>Время наложения шины</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Medical_Treatment_TreatmentTimeSplint_Description">
|
<Key ID="STR_ACE_Medical_Treatment_TreatmentTimeSplint_Description">
|
||||||
<English>Time, in seconds, required to apply a splint.</English>
|
<English>Time, in seconds, required to apply a splint.</English>
|
||||||
@ -309,6 +316,7 @@
|
|||||||
<German>Zeit in Sekunden, die zum Anbringen einer Schiene benötigt wird.</German>
|
<German>Zeit in Sekunden, die zum Anbringen einer Schiene benötigt wird.</German>
|
||||||
<Japanese>添え木の使用に掛かる時間 (秒) を決定します。</Japanese>
|
<Japanese>添え木の使用に掛かる時間 (秒) を決定します。</Japanese>
|
||||||
<Spanish>TIempo, en segundos, requerido para aplicar una férula.</Spanish>
|
<Spanish>TIempo, en segundos, requerido para aplicar una férula.</Spanish>
|
||||||
|
<Russian>Время, необходимое для наложения шины (в секундах).</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Medical_Treatment_TreatmentTimeBodyBag_DisplayName">
|
<Key ID="STR_ACE_Medical_Treatment_TreatmentTimeBodyBag_DisplayName">
|
||||||
<English>Body Bag Use Time</English>
|
<English>Body Bag Use Time</English>
|
||||||
@ -316,6 +324,7 @@
|
|||||||
<German>Anwendungszeit für Leichensack</German>
|
<German>Anwendungszeit für Leichensack</German>
|
||||||
<Japanese>死体袋の使用時間</Japanese>
|
<Japanese>死体袋の使用時間</Japanese>
|
||||||
<Spanish>TIempo de uso de bolsa para cuerpos</Spanish>
|
<Spanish>TIempo de uso de bolsa para cuerpos</Spanish>
|
||||||
|
<Russian>Время использования мешка для трупов</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Medical_Treatment_TreatmentTimeBodyBag_Description">
|
<Key ID="STR_ACE_Medical_Treatment_TreatmentTimeBodyBag_Description">
|
||||||
<English>Time, in seconds, required to put a patient in a body bag.</English>
|
<English>Time, in seconds, required to put a patient in a body bag.</English>
|
||||||
@ -323,6 +332,7 @@
|
|||||||
<German>Zeit in Sekunden, die benötigt wird, um einen Leichensack aufzutragen.</German>
|
<German>Zeit in Sekunden, die benötigt wird, um einen Leichensack aufzutragen.</German>
|
||||||
<Japanese>死体袋の使用に掛かる時間 (秒) を決定します。</Japanese>
|
<Japanese>死体袋の使用に掛かる時間 (秒) を決定します。</Japanese>
|
||||||
<Spanish>Tiempo, en segundos, requerido para poner a un paciente en una bolsa para cuerpos.</Spanish>
|
<Spanish>Tiempo, en segundos, requerido para poner a un paciente en una bolsa para cuerpos.</Spanish>
|
||||||
|
<Russian>Время, необходимое для того чтобы упаковать труп в мешок (в секундах).</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Medical_Treatment_MedicEpinephrine_DisplayName">
|
<Key ID="STR_ACE_Medical_Treatment_MedicEpinephrine_DisplayName">
|
||||||
<English>Allow Epinephrine</English>
|
<English>Allow Epinephrine</English>
|
||||||
@ -641,12 +651,14 @@
|
|||||||
<French>Durée d'interaction - Sutures</French>
|
<French>Durée d'interaction - Sutures</French>
|
||||||
<Japanese>縫合時間</Japanese>
|
<Japanese>縫合時間</Japanese>
|
||||||
<Spanish>Tiempo de sutura de herida</Spanish>
|
<Spanish>Tiempo de sutura de herida</Spanish>
|
||||||
|
<Russian>Время зашивания ран</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Medical_Treatment_WoundStitchTime_Description">
|
<Key ID="STR_ACE_Medical_Treatment_WoundStitchTime_Description">
|
||||||
<English>Time, in seconds, required to stitch a single wound.</English>
|
<English>Time, in seconds, required to stitch a single wound.</English>
|
||||||
<French>Définit le temps nécessaire à la suture d'une plaie (en secondes).</French>
|
<French>Définit le temps nécessaire à la suture d'une plaie (en secondes).</French>
|
||||||
<Japanese>縫合に掛かる時間 (秒) を決定します。</Japanese>
|
<Japanese>縫合に掛かる時間 (秒) を決定します。</Japanese>
|
||||||
<Spanish>Tiempo, en segundos, requerido para suturar una única herida.</Spanish>
|
<Spanish>Tiempo, en segundos, requerido para suturar una única herida.</Spanish>
|
||||||
|
<Russian>Время, необходимое для зашивания одной раны (в секундах).</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Medical_Treatment_AllowSelfIV_DisplayName">
|
<Key ID="STR_ACE_Medical_Treatment_AllowSelfIV_DisplayName">
|
||||||
<English>Self IV Transfusion</English>
|
<English>Self IV Transfusion</English>
|
||||||
@ -679,12 +691,14 @@
|
|||||||
<French>Housse mortuaire - Autoriser patients inconscients</French>
|
<French>Housse mortuaire - Autoriser patients inconscients</French>
|
||||||
<Japanese>無意識者を死体袋に</Japanese>
|
<Japanese>無意識者を死体袋に</Japanese>
|
||||||
<Spanish>Permitir bolsa para cuerpos inconsciente</Spanish>
|
<Spanish>Permitir bolsa para cuerpos inconsciente</Spanish>
|
||||||
|
<Russian>Разрешить упаковывать пациентов без сознания в мешки для трупов</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Medical_Treatment_AllowBodyBagUnconscious_Description">
|
<Key ID="STR_ACE_Medical_Treatment_AllowBodyBagUnconscious_Description">
|
||||||
<English>Enables placing an unconscious patient in a body bag.</English>
|
<English>Enables placing an unconscious patient in a body bag.</English>
|
||||||
<French>Active la possibilité de placer des patients inconscients dans les housses mortuaires.\nAttention : le cas échéant cela provoquera la mort du patient.</French>
|
<French>Active la possibilité de placer des patients inconscients dans les housses mortuaires.\nAttention : le cas échéant cela provoquera la mort du patient.</French>
|
||||||
<Japanese>気絶しているプレイヤーを死体袋へ入れられるかどうかを決定します。</Japanese>
|
<Japanese>気絶しているプレイヤーを死体袋へ入れられるかどうかを決定します。</Japanese>
|
||||||
<Spanish>Permitir colocar a un paciente inconsciente en una bolsa para cuerpos.</Spanish>
|
<Spanish>Permitir colocar a un paciente inconsciente en una bolsa para cuerpos.</Spanish>
|
||||||
|
<Russian>Разрешает упаковывать пациентов без сознания в мешки для трупов.</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Medical_Treatment_MedicIV_DisplayName">
|
<Key ID="STR_ACE_Medical_Treatment_MedicIV_DisplayName">
|
||||||
<English>Allow IV Transfusion</English>
|
<English>Allow IV Transfusion</English>
|
||||||
@ -694,7 +708,7 @@
|
|||||||
<Chinese>允許操作點滴</Chinese>
|
<Chinese>允許操作點滴</Chinese>
|
||||||
<Japanese>IV 輸血の制限</Japanese>
|
<Japanese>IV 輸血の制限</Japanese>
|
||||||
<Czech>Povolit IV transfuzi</Czech>
|
<Czech>Povolit IV transfuzi</Czech>
|
||||||
<Russian>Разрешить переливание IV группы крови</Russian>
|
<Russian>Разрешить внутривенное переливание</Russian>
|
||||||
<Spanish>Permitir transfusión de IV</Spanish>
|
<Spanish>Permitir transfusión de IV</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Medical_Treatment_MedicIV_Description">
|
<Key ID="STR_ACE_Medical_Treatment_MedicIV_Description">
|
||||||
@ -705,18 +719,22 @@
|
|||||||
<Chinese>要有何種醫療水準才可注射點滴。</Chinese>
|
<Chinese>要有何種醫療水準才可注射點滴。</Chinese>
|
||||||
<Japanese>IV 輸血を行うのに訓練済レベルを要求とします。</Japanese>
|
<Japanese>IV 輸血を行うのに訓練済レベルを要求とします。</Japanese>
|
||||||
<Czech>Úroveň výcviku nutná pro IV transfuzi.</Czech>
|
<Czech>Úroveň výcviku nutná pro IV transfuzi.</Czech>
|
||||||
<Russian>Уровень навыка требуемый для переливания крови IV группы.</Russian>
|
<Russian>Уровень навыка, требуемый для осуществления внутривенного переливания.</Russian>
|
||||||
<Spanish>Nivel de capacitación requerido para transfusiones de IV.</Spanish>
|
<Spanish>Nivel de capacitación requerido para transfusiones de IV.</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Medical_Treatment_LocationIV_DisplayName">
|
<Key ID="STR_ACE_Medical_Treatment_LocationIV_DisplayName">
|
||||||
<English>Locations IV Transfusion</English>
|
<English>Locations IV Transfusion</English>
|
||||||
<Japanese>IV 輸血の場所制限</Japanese>
|
<Japanese>IV 輸血の場所制限</Japanese>
|
||||||
<Spanish>Ubicación para transfusiones IV</Spanish>
|
<Spanish>Ubicación para transfusiones IV</Spanish>
|
||||||
|
<French>Lieux perfusions IV</French>
|
||||||
|
<Russian>Места введения пакетов внутривенного переливания</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Medical_Treatment_LocationIV_Description">
|
<Key ID="STR_ACE_Medical_Treatment_LocationIV_Description">
|
||||||
<English>Controls where IV transfusions can be performed.</English>
|
<English>Controls where IV transfusions can be performed.</English>
|
||||||
<Japanese>IV 輸血を行える場所を決定できます。</Japanese>
|
<Japanese>IV 輸血を行える場所を決定できます。</Japanese>
|
||||||
<Spanish>Controla dónde pueden ser realizadas las transfusiones IV.</Spanish>
|
<Spanish>Controla dónde pueden ser realizadas las transfusiones IV.</Spanish>
|
||||||
|
<French>Définit les lieux où la pose de perfusions est autorisée.</French>
|
||||||
|
<Russian>Определяет к каким частям тела разрешено применять пакеты внутренного переливания.</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Medical_Treatment_ConvertItems_DisplayName">
|
<Key ID="STR_ACE_Medical_Treatment_ConvertItems_DisplayName">
|
||||||
<English>Convert Vanilla Items</English>
|
<English>Convert Vanilla Items</English>
|
||||||
@ -912,45 +930,35 @@
|
|||||||
<Turkish>Araçlar ve Tesisler</Turkish>
|
<Turkish>Araçlar ve Tesisler</Turkish>
|
||||||
<Spanish>Vehículos e instalaciones médicas</Spanish>
|
<Spanish>Vehículos e instalaciones médicas</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Medical_Treatment_CPRSuccessChance_DisplayName">
|
<Key ID="STR_ACE_Medical_Treatment_CPRSuccessChanceMin_DisplayName">
|
||||||
<English>CPR Success Chance</English>
|
<English>CPR Success Chance Minimum</English>
|
||||||
<Japanese>心肺蘇生の成功率</Japanese>
|
<French>RCP - Chance minimale de réussite</French>
|
||||||
<French>Chance de réussite de la RCP</French>
|
|
||||||
<Russian>Шанс успешной реанимации</Russian>
|
|
||||||
<Portuguese>Chance de ter sucesso com SBV</Portuguese>
|
|
||||||
<Chinese>心肺復甦術成功率</Chinese>
|
|
||||||
<Czech>Pravděpodobnost úspěchu CPR</Czech>
|
|
||||||
<Italian>Possibilità di successo della RCP</Italian>
|
|
||||||
<Polish>Szansa powodzenia RKO</Polish>
|
|
||||||
<German>HLW Erfolgsrate</German>
|
|
||||||
<Turkish>CPR Başarı Şansı</Turkish>
|
|
||||||
<Spanish>Probabilidad de éxito del RCP</Spanish>
|
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Medical_Treatment_CPRSuccessChance_Description">
|
<Key ID="STR_ACE_Medical_Treatment_CPRSuccessChanceMax_DisplayName">
|
||||||
<English>Probability that CPR will be successful in restoring heart rhythm.</English>
|
<English>CPR Success Chance Maximum</English>
|
||||||
<Japanese>心肺蘇生によって心拍を戻せる確率を決定できます。</Japanese>
|
<French>RCP - Chance maximale de réussite</French>
|
||||||
<French>Probabilité de rétablir un rythme cardiaque suite à une RCP.</French>
|
</Key>
|
||||||
<Russian>Вероятность успешного проведения сердечно-лёгочной реанимации (СЛР).</Russian>
|
<Key ID="STR_ACE_Medical_Treatment_CPRSuccessChanceMin_Description">
|
||||||
<Portuguese>Probabilidade que um SBV restaurará o batimento cardíaco.</Portuguese>
|
<English>Minimum probability that performing CPR will restore heart rhythm.\nThis minimum value is used when the patient has at least "Lost a fatal amount of blood".\nAn interpolated probability is used when the patient's blood volume is between the minimum and maximum thresholds.</English>
|
||||||
<Chinese>心肺復甦術恢復心率的機率。</Chinese>
|
<French>Probabilité minimale de rétablir un rythme cardiaque suite à une RCP.\nCette valeur minimale est définie pour un patient à l'état "A perdu une quantité critique de sang".\nUne interpolation est faite entre la chance minimale et maximale, en fonction du volume sanguin du patient.</French>
|
||||||
<Czech>Pravděpodobnost, že CPR obnoví srdeční tep.</Czech>
|
</Key>
|
||||||
<Italian>E' probabile che la rianimazione RCP abbia successo nel ripristinare il ritmo cardiaco.</Italian>
|
<Key ID="STR_ACE_Medical_Treatment_CPRSuccessChanceMax_Description">
|
||||||
<Polish>Prawdopodobieństwo przwyrócenia akcji serca poprzez wykonanie RKO</Polish>
|
<English>Maximum probability that performing CPR will restore heart rhythm.\nThis maximum value is used when the patient has at most "Lost some blood".\nAn interpolated probability is used when the patient's blood volume is between the minimum and maximum thresholds.</English>
|
||||||
<German>Wahrscheinlichkeit, dass HLW bei der Wiederherstellung des Herzrhythmus erfolgreich sein wird.</German>
|
<French>Probabilité maximale de rétablir un rythme cardiaque suite à une RCP.\nCette valeur maximale est définie pour un patient à l'état "A perdu une faible quantité de sang".\nUne interpolation est faite entre la chance minimale et maximale, en fonction du volume sanguin du patient.</French>
|
||||||
<Turkish>Kalp ritmini geri kazanmada CPR'nin başarılı olma olasılığı.</Turkish>
|
|
||||||
<Spanish>Probabilidad de que el RCP sea exitoso restaurando el ritmo cardíaco.</Spanish>
|
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Medical_Treatment_TreatmentTimeCPR_DisplayName">
|
<Key ID="STR_ACE_Medical_Treatment_TreatmentTimeCPR_DisplayName">
|
||||||
<English>CPR Treatment Time</English>
|
<English>CPR Treatment Time</English>
|
||||||
<French>Durée d'interaction - RCP</French>
|
<French>RCP - Durée d'interaction</French>
|
||||||
<Japanese>CPR の動作時間</Japanese>
|
<Japanese>CPR の動作時間</Japanese>
|
||||||
<Spanish>Tiempo de tratamiento de RCP</Spanish>
|
<Spanish>Tiempo de tratamiento de RCP</Spanish>
|
||||||
|
<Russian>Время проведения СЛР</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Medical_Treatment_TreatmentTimeCPR_Description">
|
<Key ID="STR_ACE_Medical_Treatment_TreatmentTimeCPR_Description">
|
||||||
<English>Time, in seconds, required to perform CPR on a patient.</English>
|
<English>Time, in seconds, required to perform CPR on a patient.</English>
|
||||||
<French>Définit le temps nécessaire à la mise en œuvre d'une RCP (en secondes).</French>
|
<French>Définit le temps nécessaire à la mise en œuvre d'une RCP (en secondes).</French>
|
||||||
<Japanese>心肺蘇生にかかる時間 (秒) を決定します。</Japanese>
|
<Japanese>心肺蘇生にかかる時間 (秒) を決定します。</Japanese>
|
||||||
<Spanish>Tiempo, en segundos, requerido para realizar RCP en un paciente.</Spanish>
|
<Spanish>Tiempo, en segundos, requerido para realizar RCP en un paciente.</Spanish>
|
||||||
|
<Russian>Время, необходимое для проведения сердечно-лёгочной реанимации (СЛР) (в секундах).</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Medical_Treatment_HolsterRequired_DisplayName">
|
<Key ID="STR_ACE_Medical_Treatment_HolsterRequired_DisplayName">
|
||||||
<English>Holster Required</English>
|
<English>Holster Required</English>
|
||||||
@ -4410,6 +4418,7 @@
|
|||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Medical_Treatment_bodybagWhileStillAlive">
|
<Key ID="STR_ACE_Medical_Treatment_bodybagWhileStillAlive">
|
||||||
<English>The body twitched and may not be dead!</English>
|
<English>The body twitched and may not be dead!</English>
|
||||||
|
<Russian>Тело дернулось и, возможно, пациент жив!</Russian>
|
||||||
<French>L'unité a bougé et n'est peut-être pas morte !</French>
|
<French>L'unité a bougé et n'est peut-être pas morte !</French>
|
||||||
<Japanese>身体が動き死んでないようだ!</Japanese>
|
<Japanese>身体が動き死んでないようだ!</Japanese>
|
||||||
<Spanish>¡El cuerpo se retorció y puede que no esté muerto!</Spanish>
|
<Spanish>¡El cuerpo se retorció y puede que no esté muerto!</Spanish>
|
||||||
|
@ -586,11 +586,15 @@
|
|||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_MicroDAGR_previousMode">
|
<Key ID="STR_ACE_MicroDAGR_previousMode">
|
||||||
<English>MicroDAGR - Previous Mode</English>
|
<English>MicroDAGR - Previous Mode</English>
|
||||||
|
<Russian>MicroDAGR - Предыдущий режим</Russian>
|
||||||
<Spanish>MicroDAGR - Modo anterior</Spanish>
|
<Spanish>MicroDAGR - Modo anterior</Spanish>
|
||||||
|
<French>MicroDAGR - Mode précédent</French>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_MicroDAGR_nextMode">
|
<Key ID="STR_ACE_MicroDAGR_nextMode">
|
||||||
<English>MicroDAGR - Next Mode</English>
|
<English>MicroDAGR - Next Mode</English>
|
||||||
|
<Russian>MicroDAGR - Следующий режим</Russian>
|
||||||
<Spanish>MicroDAGR - Modo siguiente</Spanish>
|
<Spanish>MicroDAGR - Modo siguiente</Spanish>
|
||||||
|
<French>MicroDAGR - Mode suivant</French>
|
||||||
</Key>
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
</Project>
|
</Project>
|
||||||
|
@ -27,23 +27,63 @@ class CfgWeapons {
|
|||||||
};
|
};
|
||||||
class ACE_NVG_Gen1: NVGoggles_OPFOR {
|
class ACE_NVG_Gen1: NVGoggles_OPFOR {
|
||||||
author = ECSTRING(common,ACETeam);
|
author = ECSTRING(common,ACETeam);
|
||||||
displayName = CSTRING(NVG_Gen1);
|
displayName = CSTRING(NVG_Gen1_black);
|
||||||
GVAR(generation) = 1;
|
GVAR(generation) = 1;
|
||||||
};
|
};
|
||||||
|
class ACE_NVG_Gen1_Brown: NVGoggles {
|
||||||
|
author = ECSTRING(common,ACETeam);
|
||||||
|
displayName = CSTRING(NVG_Gen1_brown);
|
||||||
|
GVAR(generation) = 1;
|
||||||
|
};
|
||||||
|
class ACE_NVG_Gen1_Green: NVGoggles_INDEP {
|
||||||
|
author = ECSTRING(common,ACETeam);
|
||||||
|
displayName = CSTRING(NVG_Gen1_green);
|
||||||
|
GVAR(generation) = 1;
|
||||||
|
};
|
||||||
|
class ACE_NVG_Gen2_Black: NVGoggles_OPFOR {
|
||||||
|
author = ECSTRING(common,ACETeam);
|
||||||
|
displayName = CSTRING(NVG_Gen2_black);
|
||||||
|
GVAR(generation) = 2;
|
||||||
|
};
|
||||||
|
class ACE_NVG_Gen2_Brown: NVGoggles {
|
||||||
|
author = ECSTRING(common,ACETeam);
|
||||||
|
displayName = CSTRING(NVG_Gen2_brown);
|
||||||
|
GVAR(generation) = 2;
|
||||||
|
};
|
||||||
class ACE_NVG_Gen2: NVGoggles_INDEP {
|
class ACE_NVG_Gen2: NVGoggles_INDEP {
|
||||||
author = ECSTRING(common,ACETeam);
|
author = ECSTRING(common,ACETeam);
|
||||||
displayName = CSTRING(NVG_Gen2);
|
displayName = CSTRING(NVG_Gen2_green);
|
||||||
GVAR(generation) = 2;
|
GVAR(generation) = 2;
|
||||||
};
|
};
|
||||||
|
class ACE_NVG_Gen4_Black: NVGoggles_OPFOR {
|
||||||
|
author = ECSTRING(common,ACETeam);
|
||||||
|
displayName = CSTRING(NVG_Gen4_black);
|
||||||
|
GVAR(generation) = 4;
|
||||||
|
};
|
||||||
class ACE_NVG_Gen4: NVGoggles {
|
class ACE_NVG_Gen4: NVGoggles {
|
||||||
author = ECSTRING(common,ACETeam);
|
author = ECSTRING(common,ACETeam);
|
||||||
displayName = CSTRING(NVG_Gen4);
|
displayName = CSTRING(NVG_Gen4_brown);
|
||||||
GVAR(generation) = 4;
|
GVAR(generation) = 4;
|
||||||
};
|
};
|
||||||
|
class ACE_NVG_Gen4_Green: NVGoggles_INDEP {
|
||||||
|
author = ECSTRING(common,ACETeam);
|
||||||
|
displayName = CSTRING(NVG_Gen4_green);
|
||||||
|
GVAR(generation) = 4;
|
||||||
|
};
|
||||||
|
class ACE_NVG_Wide_Black: NVGoggles_OPFOR {
|
||||||
|
author = ECSTRING(common,ACETeam);
|
||||||
|
modelOptics = QPATHTOF(models\ACE_nvg_wide_optics);
|
||||||
|
displayName = CSTRING(NVG_Wide_black);
|
||||||
|
};
|
||||||
class ACE_NVG_Wide: NVGoggles {
|
class ACE_NVG_Wide: NVGoggles {
|
||||||
author = ECSTRING(common,ACETeam);
|
author = ECSTRING(common,ACETeam);
|
||||||
modelOptics = QPATHTOF(models\ACE_nvg_wide_optics);
|
modelOptics = QPATHTOF(models\ACE_nvg_wide_optics);
|
||||||
displayName = CSTRING(NVG_FullScreen);
|
displayName = CSTRING(NVG_Wide_brown);
|
||||||
|
};
|
||||||
|
class ACE_NVG_Wide_Green: NVGoggles_INDEP {
|
||||||
|
author = ECSTRING(common,ACETeam);
|
||||||
|
modelOptics = QPATHTOF(models\ACE_nvg_wide_optics);
|
||||||
|
displayName = CSTRING(NVG_Wide_green);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -4,7 +4,21 @@ class CfgPatches {
|
|||||||
class ADDON {
|
class ADDON {
|
||||||
name = COMPONENT_NAME;
|
name = COMPONENT_NAME;
|
||||||
units[] = {};
|
units[] = {};
|
||||||
weapons[] = {"ACE_NVG_Gen1", "ACE_NVG_Gen2", /*"ACE_NVG_Gen3",*/ "ACE_NVG_Gen4", "ACE_NVG_Wide"};
|
weapons[] = {
|
||||||
|
"ACE_NVG_Gen1",
|
||||||
|
"ACE_NVG_Gen1_Brown",
|
||||||
|
"ACE_NVG_Gen1_Green",
|
||||||
|
"ACE_NVG_Gen2_Black",
|
||||||
|
"ACE_NVG_Gen2_Brown",
|
||||||
|
"ACE_NVG_Gen2",
|
||||||
|
/*"ACE_NVG_Gen3",*/
|
||||||
|
"ACE_NVG_Gen4_Black",
|
||||||
|
"ACE_NVG_Gen4",
|
||||||
|
"ACE_NVG_Gen4_Green",
|
||||||
|
"ACE_NVG_Wide_Black",
|
||||||
|
"ACE_NVG_Wide",
|
||||||
|
"ACE_NVG_Wide_Green"
|
||||||
|
};
|
||||||
requiredVersion = REQUIRED_VERSION;
|
requiredVersion = REQUIRED_VERSION;
|
||||||
requiredAddons[] = {"ace_common"};
|
requiredAddons[] = {"ace_common"};
|
||||||
author = ECSTRING(common,ACETeam);
|
author = ECSTRING(common,ACETeam);
|
||||||
|
@ -16,39 +16,35 @@
|
|||||||
<Turkish>ACE Gece Görüşü</Turkish>
|
<Turkish>ACE Gece Görüşü</Turkish>
|
||||||
<Spanish>ACE visión nocturna</Spanish>
|
<Spanish>ACE visión nocturna</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_NightVision_NVG_Gen1">
|
<Key ID="STR_ACE_NightVision_NVG_Gen1_brown">
|
||||||
<English>NV Goggles (Gen1)</English>
|
<English>NV Goggles (Gen1, Brown)</English>
|
||||||
<Czech>Noktovizor (Gen1)</Czech>
|
<French>JVN (Gen1, marron)</French>
|
||||||
<French>JVN (Gen1)</French>
|
<Russian>ПНВ (Gen1, Коричневый)</Russian>
|
||||||
<German>NS-Brille (1. Gen.)</German>
|
|
||||||
<Italian>Occhiali notturni (Gen1)</Italian>
|
|
||||||
<Polish>Gogle noktowizyjne (Gen1)</Polish>
|
|
||||||
<Portuguese>Óculos de visão noturna (Gen1)</Portuguese>
|
|
||||||
<Russian>ПНВ (Gen1)</Russian>
|
|
||||||
<Spanish>Gafas de visión nocturna (Gen1)</Spanish>
|
|
||||||
<Hungarian>Éjjellátó szemüveg (1. Gen.)</Hungarian>
|
|
||||||
<Japanese>暗視装置 (第1世代)</Japanese>
|
|
||||||
<Korean>야투경 (1세대)</Korean>
|
|
||||||
<Chinesesimp>夜视镜 (初代)</Chinesesimp>
|
|
||||||
<Chinese>夜視鏡 (初代)</Chinese>
|
|
||||||
<Turkish>GG Gözlüğü (1. Jen)</Turkish>
|
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_NightVision_NVG_Gen2">
|
<Key ID="STR_ACE_NightVision_NVG_Gen1_black">
|
||||||
<English>NV Goggles (Gen2)</English>
|
<English>NV Goggles (Gen1, Black)</English>
|
||||||
<Czech>Noktovizor (Gen2)</Czech>
|
<French>JVN (Gen1, noires)</French>
|
||||||
<French>JVN (Gen2)</French>
|
<Russian>ПНВ (Gen1, Чёрный)</Russian>
|
||||||
<German>NS-Brille (2. Gen.)</German>
|
</Key>
|
||||||
<Italian>Occhiali notturni (Gen2)</Italian>
|
<Key ID="STR_ACE_NightVision_NVG_Gen1_green">
|
||||||
<Polish>Gogle noktowizyjne (Gen2)</Polish>
|
<English>NV Goggles (Gen1, Green)</English>
|
||||||
<Portuguese>Óculos de visão noturna (Gen2)</Portuguese>
|
<French>JVN (Gen1, vertes)</French>
|
||||||
<Russian>ПНВ (Gen2)</Russian>
|
<Russian>ПНВ (Gen1, Зелёный)</Russian>
|
||||||
<Spanish>Gafas de visión nocturna (Gen2)</Spanish>
|
</Key>
|
||||||
<Hungarian>Éjjellátó szemüveg (2. Gen.)</Hungarian>
|
<Key ID="STR_ACE_NightVision_NVG_Gen2_brown">
|
||||||
<Japanese>暗視装置 (第2世代)</Japanese>
|
<English>NV Goggles (Gen2, Brown)</English>
|
||||||
<Korean>야투경 (2세대)</Korean>
|
<French>JVN (Gen2, marron)</French>
|
||||||
<Chinesesimp>夜视镜 (二代)</Chinesesimp>
|
<Russian>ПНВ (Gen2, Коричневый)</Russian>
|
||||||
<Chinese>夜視鏡 (二代)</Chinese>
|
</Key>
|
||||||
<Turkish>GG Gözlüğü (2. Jen)</Turkish>
|
<Key ID="STR_ACE_NightVision_NVG_Gen2_black">
|
||||||
|
<English>NV Goggles (Gen2, Black)</English>
|
||||||
|
<French>JVN (Gen2, noires)</French>
|
||||||
|
<Russian>ПНВ (Gen2, Чёрный)</Russian>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_NightVision_NVG_Gen2_green">
|
||||||
|
<English>NV Goggles (Gen2, Green)</English>
|
||||||
|
<French>NV Goggles (Gen2, vertes)</French>
|
||||||
|
<Russian>ПНВ (Gen2, Зелёный)</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_NightVision_NVG_Gen3">
|
<Key ID="STR_ACE_NightVision_NVG_Gen3">
|
||||||
<English>NV Goggles (Gen3)</English>
|
<English>NV Goggles (Gen3)</English>
|
||||||
@ -118,39 +114,35 @@
|
|||||||
<Chinese>夜視鏡 (三代, 黑色)</Chinese>
|
<Chinese>夜視鏡 (三代, 黑色)</Chinese>
|
||||||
<Turkish>GG Gözlüğü (3. Jen Siyah)</Turkish>
|
<Turkish>GG Gözlüğü (3. Jen Siyah)</Turkish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_NightVision_NVG_Gen4">
|
<Key ID="STR_ACE_NightVision_NVG_Gen4_brown">
|
||||||
<English>NV Goggles (Gen4)</English>
|
<English>NV Goggles (Gen4, Brown)</English>
|
||||||
<Czech>Noktovizor (Gen4)</Czech>
|
<French>JVN (Gen4, marron)</French>
|
||||||
<French>JVN (Gen4)</French>
|
<Russian>ПНВ (Gen4, Коричневый)</Russian>
|
||||||
<German>NS-Brille (4. Gen.)</German>
|
|
||||||
<Italian>Occhiali notturni (Gen4)</Italian>
|
|
||||||
<Polish>Gogle noktowizyjne (Gen4)</Polish>
|
|
||||||
<Portuguese>Óculos de visão noturna (Gen4)</Portuguese>
|
|
||||||
<Russian>ПНВ (Gen4)</Russian>
|
|
||||||
<Spanish>Gafas de visión nocturna (Gen4)</Spanish>
|
|
||||||
<Hungarian>Éjjellátó szemüveg (4. Gen.)</Hungarian>
|
|
||||||
<Japanese>暗視装置 (第4世代)</Japanese>
|
|
||||||
<Korean>야투경 (4세대)</Korean>
|
|
||||||
<Chinesesimp>夜视镜 (四代)</Chinesesimp>
|
|
||||||
<Chinese>夜視鏡 (四代)</Chinese>
|
|
||||||
<Turkish>GG Gözlüğü (4. Jen)</Turkish>
|
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_NightVision_NVG_FullScreen">
|
<Key ID="STR_ACE_NightVision_NVG_Gen4_black">
|
||||||
<English>NV Goggles (Wide)</English>
|
<English>NV Goggles (Gen4, Black)</English>
|
||||||
<German>NS-Brille (Weitwinkel)</German>
|
<French>JVN (Gen4, noires)</French>
|
||||||
<Spanish>Gafas de visión nocturna (Panorámicas)</Spanish>
|
<Russian>ПНВ (Gen4, Чёрный)</Russian>
|
||||||
<Polish>Gogle noktowizyjne (panoramiczne)</Polish>
|
</Key>
|
||||||
<Czech>Noktovizor (Širokoúhlý)</Czech>
|
<Key ID="STR_ACE_NightVision_NVG_Gen4_green">
|
||||||
<Russian>ПНВ (Широкоугольный)</Russian>
|
<English>NV Goggles (Gen4, Green)</English>
|
||||||
<French>JVN (Large)</French>
|
<French>JVN (Gen4, vertes)</French>
|
||||||
<Hungarian>Éjjellátó szemüveg (széles látószögű)</Hungarian>
|
<Russian>ПНВ (Gen4, Зелёный)</Russian>
|
||||||
<Portuguese>Óculos de visão noturna (Panorâmico)</Portuguese>
|
</Key>
|
||||||
<Italian>Occhiali notturni (Larghi)</Italian>
|
<Key ID="STR_ACE_NightVision_NVG_Wide_brown">
|
||||||
<Japanese>暗視装置 (ワイド)</Japanese>
|
<English>NV Goggles (Wide, Brown)</English>
|
||||||
<Korean>야투경 (넓음)</Korean>
|
<French>JVN (Large, marron)</French>
|
||||||
<Chinesesimp>夜视镜 (宽版)</Chinesesimp>
|
<Russian>ПНВ (Широкий, Коричневый)</Russian>
|
||||||
<Chinese>夜視鏡 (寬版)</Chinese>
|
</Key>
|
||||||
<Turkish>GG Gözlüğü (Geniş)</Turkish>
|
<Key ID="STR_ACE_NightVision_NVG_Wide_black">
|
||||||
|
<English>NV Goggles (Wide, Black)</English>
|
||||||
|
<French>JVN (Large, noires)</French>
|
||||||
|
<Russian>ПНВ (Широкий, Чёрный)</Russian>
|
||||||
|
</Key>
|
||||||
|
<Key ID="STR_ACE_NightVision_NVG_Wide_green">
|
||||||
|
<English>NV Goggles (Wide, Green)</English>
|
||||||
|
<French>JVN (Large, vertes)</French>
|
||||||
|
<Russian>ПНВ (Широкий, Зелёный)</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_NightVision_NVGBrightness">
|
<Key ID="STR_ACE_NightVision_NVGBrightness">
|
||||||
<English>Brightness: %1</English>
|
<English>Brightness: %1</English>
|
||||||
|
@ -16,3 +16,11 @@ class Extended_PostInit_EventHandlers {
|
|||||||
init = QUOTE(call COMPILE_FILE(XEH_postInit));
|
init = QUOTE(call COMPILE_FILE(XEH_postInit));
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class Extended_Respawn_EventHandlers {
|
||||||
|
class CAManBase {
|
||||||
|
class ADDON {
|
||||||
|
respawn = QUOTE(_this call FUNC(handleRespawn));
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
@ -10,6 +10,7 @@ PREP(displayTemperature);
|
|||||||
PREP(firedEH);
|
PREP(firedEH);
|
||||||
PREP(getWeaponData);
|
PREP(getWeaponData);
|
||||||
PREP(handleTakeEH);
|
PREP(handleTakeEH);
|
||||||
|
PREP(handleRespawn);
|
||||||
PREP(jamWeapon);
|
PREP(jamWeapon);
|
||||||
PREP(loadCoolestSpareBarrel);
|
PREP(loadCoolestSpareBarrel);
|
||||||
PREP(overheat);
|
PREP(overheat);
|
||||||
|
26
addons/overheating/functions/fnc_handleRespawn.sqf
Normal file
26
addons/overheating/functions/fnc_handleRespawn.sqf
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#include "script_component.hpp"
|
||||||
|
/*
|
||||||
|
* Author: 10Dozen
|
||||||
|
* Handle respawn events and clears list of jammed weapons.
|
||||||
|
* DefaultAction that blocks firing is removed by the game (remains on corpse?),
|
||||||
|
* but variables need to be cleared manually.
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* 0: Unit <OBJECT>
|
||||||
|
* 1: Corpse <OBJECT>
|
||||||
|
*
|
||||||
|
* Return Value:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
* [alive, body] call ace_overheating_fnc_handleRespawn
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
|
*/
|
||||||
|
|
||||||
|
params ["_unit","_dead"];
|
||||||
|
if !(local _unit) exitWith {};
|
||||||
|
|
||||||
|
// --- Reset variables related to jamming
|
||||||
|
_unit setVariable [QGVAR(jammedWeapons), nil];
|
||||||
|
_unit setVariable [QGVAR(JammingActionID), nil];
|
@ -12,7 +12,7 @@ PREP_RECOMPILE_END;
|
|||||||
QGVAR(hideAltimeter),
|
QGVAR(hideAltimeter),
|
||||||
"CHECKBOX",
|
"CHECKBOX",
|
||||||
[LSTRING(HideAltimeter), LSTRING(HideAltimeter_tooltip)],
|
[LSTRING(HideAltimeter), LSTRING(HideAltimeter_tooltip)],
|
||||||
format ["ACE %1", localize ELSTRING(common,DisplayName)],
|
["ACE Uncategorized", localize "str_dn_parachute"],
|
||||||
true,
|
true,
|
||||||
false,
|
false,
|
||||||
{[QGVAR(hideAltimeter), _this, false] call EFUNC(common,cbaSettings_settingChanged)}
|
{[QGVAR(hideAltimeter), _this, false] call EFUNC(common,cbaSettings_settingChanged)}
|
||||||
|
@ -4,16 +4,20 @@
|
|||||||
* Perform the cut parachute action (move unit out and delete)
|
* Perform the cut parachute action (move unit out and delete)
|
||||||
*
|
*
|
||||||
* Arguments:
|
* Arguments:
|
||||||
* 0: Object <OBJECT>
|
* 0: Player <OBJECT>
|
||||||
|
* 1: Parachute <OBJECT>
|
||||||
*
|
*
|
||||||
* Return Value:
|
* Return Value:
|
||||||
* None
|
* None
|
||||||
*
|
*
|
||||||
* Example:
|
* Example:
|
||||||
* [player, vehicle player] call FUNC(cutParachute);
|
* [player, vehicle player] call ace_parachute_fnc_cutParachute;
|
||||||
*
|
*
|
||||||
* Public: No
|
* Public: No
|
||||||
*/
|
*/
|
||||||
params ["_unit", "_parachute"];
|
params ["_unit", "_parachute"];
|
||||||
|
TRACE_2("cutParachute", _unit, _parachute);
|
||||||
|
|
||||||
|
playSound3d ["A3\Sounds_F\characters\parachute\parachute_landing.wss", _unit];
|
||||||
_unit action ["GetOut", _parachute];
|
_unit action ["GetOut", _parachute];
|
||||||
deleteVehicle _parachute;
|
deleteVehicle _parachute;
|
||||||
|
@ -135,6 +135,8 @@
|
|||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Parachute_FailureChance">
|
<Key ID="STR_ACE_Parachute_FailureChance">
|
||||||
<English>Parachute Failure Chance</English>
|
<English>Parachute Failure Chance</English>
|
||||||
|
<Russian>Вероятность отказа парашюта</Russian>
|
||||||
|
<French>Chance de défaillance du parachute</French>
|
||||||
</Key>
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
</Project>
|
</Project>
|
||||||
|
@ -20,14 +20,14 @@ class CfgVehicles {
|
|||||||
statement = QUOTE(false call FUNC(openRangeCard));
|
statement = QUOTE(false call FUNC(openRangeCard));
|
||||||
showDisabled = 0;
|
showDisabled = 0;
|
||||||
icon = QPATHTOF(UI\RangeCard_Icon.paa);
|
icon = QPATHTOF(UI\RangeCard_Icon.paa);
|
||||||
exceptions[] = {"notOnMap"};
|
exceptions[] = {"notOnMap", "isNotInside"};
|
||||||
class GVAR(openCopy) {
|
class GVAR(openCopy) {
|
||||||
displayName = CSTRING(OpenRangeCardCopy);
|
displayName = CSTRING(OpenRangeCardCopy);
|
||||||
condition = QUOTE(call FUNC(canShowCopy) && !GVAR(RangeCardOpened));
|
condition = QUOTE(call FUNC(canShowCopy) && !GVAR(RangeCardOpened));
|
||||||
statement = QUOTE(true call FUNC(openRangeCard));
|
statement = QUOTE(true call FUNC(openRangeCard));
|
||||||
showDisabled = 0;
|
showDisabled = 0;
|
||||||
icon = QPATHTOF(UI\RangeCard_Icon.paa);
|
icon = QPATHTOF(UI\RangeCard_Icon.paa);
|
||||||
exceptions[] = {"notOnMap"};
|
exceptions[] = {"notOnMap", "isNotInside"};
|
||||||
};
|
};
|
||||||
class GVAR(makeCopy) {
|
class GVAR(makeCopy) {
|
||||||
displayName = CSTRING(CopyRangeCard);
|
displayName = CSTRING(CopyRangeCard);
|
||||||
@ -35,7 +35,7 @@ class CfgVehicles {
|
|||||||
statement = QUOTE(GVAR(zeroRangeCopy)=GVAR(zeroRange); GVAR(boreHeightCopy)=GVAR(boreHeight); GVAR(ammoClassCopy)=GVAR(ammoClass); GVAR(magazineClassCopy)=GVAR(magazineClass); GVAR(weaponClassCopy)=GVAR(weaponClass););
|
statement = QUOTE(GVAR(zeroRangeCopy)=GVAR(zeroRange); GVAR(boreHeightCopy)=GVAR(boreHeight); GVAR(ammoClassCopy)=GVAR(ammoClass); GVAR(magazineClassCopy)=GVAR(magazineClass); GVAR(weaponClassCopy)=GVAR(weaponClass););
|
||||||
showDisabled = 0;
|
showDisabled = 0;
|
||||||
icon = QPATHTOF(UI\RangeCard_Icon.paa);
|
icon = QPATHTOF(UI\RangeCard_Icon.paa);
|
||||||
exceptions[] = {"notOnMap"};
|
exceptions[] = {"notOnMap", "isNotInside"};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -1329,6 +1329,7 @@
|
|||||||
<Japanese>M183 梱包爆薬 (投てき仕様)</Japanese>
|
<Japanese>M183 梱包爆薬 (投てき仕様)</Japanese>
|
||||||
<Turkish>M183 Demolition Charge (Throwable)</Turkish>
|
<Turkish>M183 Demolition Charge (Throwable)</Turkish>
|
||||||
<Spanish>Carga de demolición M183 (Lanzable)</Spanish>
|
<Spanish>Carga de demolición M183 (Lanzable)</Spanish>
|
||||||
|
<Russian>M183 Комплектный подрывной заряд (Бросаемый)</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_RealisticNames_DemoCharge_Name">
|
<Key ID="STR_ACE_RealisticNames_DemoCharge_Name">
|
||||||
<English>M112 Demolition Block</English>
|
<English>M112 Demolition Block</English>
|
||||||
@ -1353,6 +1354,7 @@
|
|||||||
<Japanese>M112 爆薬ブロック (投てき仕様)</Japanese>
|
<Japanese>M112 爆薬ブロック (投てき仕様)</Japanese>
|
||||||
<Turkish>M112 Demolition Charge (Throwable)</Turkish>
|
<Turkish>M112 Demolition Charge (Throwable)</Turkish>
|
||||||
<Spanish>Bloque de demolición M112 (Lanzable)</Spanish>
|
<Spanish>Bloque de demolición M112 (Lanzable)</Spanish>
|
||||||
|
<Russian>M112 подрывной заряд (Бросаемый)</Russian>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_RealisticNames_HandGrenade_Name">
|
<Key ID="STR_ACE_RealisticNames_HandGrenade_Name">
|
||||||
<English>M67 Fragmentation Grenade</English>
|
<English>M67 Fragmentation Grenade</English>
|
||||||
|
@ -74,7 +74,7 @@ while {((count _ammoCounts) < _maxMagazines) && {_ammoToAdd > 0}} do {
|
|||||||
_ammoToAdd = _ammoToAdd - _xAdd;
|
_ammoToAdd = _ammoToAdd - _xAdd;
|
||||||
_ammoAdded = _ammoAdded + _xAdd;
|
_ammoAdded = _ammoAdded + _xAdd;
|
||||||
_ammoCounts pushBack _xAdd;
|
_ammoCounts pushBack _xAdd;
|
||||||
if (!_arrayModified) then {
|
if (_arrayModified) then {
|
||||||
TRACE_1("adding new mag to array",_xAdd);
|
TRACE_1("adding new mag to array",_xAdd);
|
||||||
} else {
|
} else {
|
||||||
TRACE_1("adding new mag directly",_xAdd);
|
TRACE_1("adding new mag directly",_xAdd);
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
<Key ID="STR_ACE_SmallArms_25Rnd_45_Name">
|
<Key ID="STR_ACE_SmallArms_25Rnd_45_Name">
|
||||||
<English>.45 ACP 25Rnd Mag</English>
|
<English>.45 ACP 25Rnd Mag</English>
|
||||||
<Polish>25-nab. mag. .45 ACP </Polish>
|
<Polish>25-nab. mag. .45 ACP </Polish>
|
||||||
|
<Russian>Магазин, 25 патр. .45 ACP</Russian>
|
||||||
<French>Mag. 25 balles .45 ACP</French>
|
<French>Mag. 25 balles .45 ACP</French>
|
||||||
<Spanish>Cargador de 25 proyectiles de .45 ACP</Spanish>
|
<Spanish>Cargador de 25 proyectiles de .45 ACP</Spanish>
|
||||||
<German>25-Schuss-.45-ACP-Magazin</German>
|
<German>25-Schuss-.45-ACP-Magazin</German>
|
||||||
@ -30,6 +31,7 @@
|
|||||||
<Key ID="STR_ACE_SmallArms_25Rnd_45_Tracer_Green_Name">
|
<Key ID="STR_ACE_SmallArms_25Rnd_45_Tracer_Green_Name">
|
||||||
<English>.45 ACP 25Rnd Tracers (Green) Mag</English>
|
<English>.45 ACP 25Rnd Tracers (Green) Mag</English>
|
||||||
<Polish>25-nab. mag. .45 ACP (zielony smugacz)</Polish>
|
<Polish>25-nab. mag. .45 ACP (zielony smugacz)</Polish>
|
||||||
|
<Russian>Магазин, 25 патр. .45 ACP (зелёные трассеры)</Russian>
|
||||||
<French>Mag. 25 traçantes (vertes) .45 ACP</French>
|
<French>Mag. 25 traçantes (vertes) .45 ACP</French>
|
||||||
<Spanish>Cargador de 25 balas trazadoras (verde) de .45 ACP</Spanish>
|
<Spanish>Cargador de 25 balas trazadoras (verde) de .45 ACP</Spanish>
|
||||||
<German>25-Schuss-.45-ACP-Vermin-Magazin (Leuchtspur Grün)</German>
|
<German>25-Schuss-.45-ACP-Vermin-Magazin (Leuchtspur Grün)</German>
|
||||||
@ -40,6 +42,7 @@
|
|||||||
<Key ID="STR_ACE_SmallArms_25Rnd_45_Tracer_Red_Name">
|
<Key ID="STR_ACE_SmallArms_25Rnd_45_Tracer_Red_Name">
|
||||||
<English>.45 ACP 25Rnd Tracers (Red) Mag</English>
|
<English>.45 ACP 25Rnd Tracers (Red) Mag</English>
|
||||||
<Polish>25-nab. mag. .45 ACP (czerwony smugacz)</Polish>
|
<Polish>25-nab. mag. .45 ACP (czerwony smugacz)</Polish>
|
||||||
|
<Russian>Магазин, 25 патр. .45 ACP (красные трассеры)</Russian>
|
||||||
<French>Mag. 25 traçantes (rouges) .45 ACP</French>
|
<French>Mag. 25 traçantes (rouges) .45 ACP</French>
|
||||||
<Spanish>Cargador de 25 balas trazadoras (rojo) de .45 ACP</Spanish>
|
<Spanish>Cargador de 25 balas trazadoras (rojo) de .45 ACP</Spanish>
|
||||||
<German>25-Schuss-.45-ACP-Vermin-Magazin (Leuchtspur Rot)</German>
|
<German>25-Schuss-.45-ACP-Vermin-Magazin (Leuchtspur Rot)</German>
|
||||||
@ -50,6 +53,7 @@
|
|||||||
<Key ID="STR_ACE_SmallArms_25Rnd_45_Tracer_Yellow_Name">
|
<Key ID="STR_ACE_SmallArms_25Rnd_45_Tracer_Yellow_Name">
|
||||||
<English>.45 ACP 25Rnd Tracers (Yellow) Mag</English>
|
<English>.45 ACP 25Rnd Tracers (Yellow) Mag</English>
|
||||||
<Polish>25-nab. mag. .45 ACP (żółty smugacz)</Polish>
|
<Polish>25-nab. mag. .45 ACP (żółty smugacz)</Polish>
|
||||||
|
<Russian>Магазин, 25 патр. .45 ACP (жёлтые трассеры)</Russian>
|
||||||
<French>Mag. 25 traçantes (jaunes) .45 ACP</French>
|
<French>Mag. 25 traçantes (jaunes) .45 ACP</French>
|
||||||
<Spanish>Cargador de 25 balas trazadoras (amarillo) de .45 ACP</Spanish>
|
<Spanish>Cargador de 25 balas trazadoras (amarillo) de .45 ACP</Spanish>
|
||||||
<German>25-Schuss-.45-ACP-Vermin-Magazin (Nachlade-Leuchtspur Gelb)</German>
|
<German>25-Schuss-.45-ACP-Vermin-Magazin (Nachlade-Leuchtspur Gelb)</German>
|
||||||
@ -60,6 +64,7 @@
|
|||||||
<Key ID="STR_ACE_SmallArms_8Rnd_45_Name">
|
<Key ID="STR_ACE_SmallArms_8Rnd_45_Name">
|
||||||
<English>.45 ACP 8Rnd Mag</English>
|
<English>.45 ACP 8Rnd Mag</English>
|
||||||
<Polish>8-nab. mag. .45 ACP </Polish>
|
<Polish>8-nab. mag. .45 ACP </Polish>
|
||||||
|
<Russian>Магазин, 8 патр. .45 ACP</Russian>
|
||||||
<French>Mag. 8 balles .45 ACP</French>
|
<French>Mag. 8 balles .45 ACP</French>
|
||||||
<Spanish>Cargador de 8 proyectiles de .45 ACP</Spanish>
|
<Spanish>Cargador de 8 proyectiles de .45 ACP</Spanish>
|
||||||
<German>8-Schuss-.45-ACP-Magazin</German>
|
<German>8-Schuss-.45-ACP-Magazin</German>
|
||||||
|
@ -244,54 +244,63 @@
|
|||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Trenches_Category">
|
<Key ID="STR_ACE_Trenches_Category">
|
||||||
<English>ACE Trenches</English>
|
<English>ACE Trenches</English>
|
||||||
|
<Russian>ACE Окопы</Russian>
|
||||||
<French>ACE Tranchées</French>
|
<French>ACE Tranchées</French>
|
||||||
<Japanese>ACE 塹壕</Japanese>
|
<Japanese>ACE 塹壕</Japanese>
|
||||||
<Spanish>ACETrincheras</Spanish>
|
<Spanish>ACETrincheras</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Trenches_SmallEnvelopeDigDuration_DisplayName">
|
<Key ID="STR_ACE_Trenches_SmallEnvelopeDigDuration_DisplayName">
|
||||||
<English>Small Trench Dig Duration</English>
|
<English>Small Trench Dig Duration</English>
|
||||||
|
<Russian>Продолжительность копания малого окопа</Russian>
|
||||||
<French>Petites tranchées - durée d'excavation</French>
|
<French>Petites tranchées - durée d'excavation</French>
|
||||||
<Japanese>小型塹壕の完成時間</Japanese>
|
<Japanese>小型塹壕の完成時間</Japanese>
|
||||||
<Spanish>Tiempo de cavar trinchera pequeña</Spanish>
|
<Spanish>Tiempo de cavar trinchera pequeña</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Trenches_SmallEnvelopeDigDuration_Description">
|
<Key ID="STR_ACE_Trenches_SmallEnvelopeDigDuration_Description">
|
||||||
<English>Time, in seconds, required to dig a small trench.</English>
|
<English>Time, in seconds, required to dig a small trench.</English>
|
||||||
|
<Russian>Время в секундах, необходимое для рытья малого окопа</Russian>
|
||||||
<French>Définit le temps nécessaire au déploiement des petites tranchées (en secondes).</French>
|
<French>Définit le temps nécessaire au déploiement des petites tranchées (en secondes).</French>
|
||||||
<Japanese>小型塹壕が完成するまでの時間 (秒) を設定できます。</Japanese>
|
<Japanese>小型塹壕が完成するまでの時間 (秒) を設定できます。</Japanese>
|
||||||
<Spanish>Tiempo, en segundos, requerido para cavar una trinchera pequeña.</Spanish>
|
<Spanish>Tiempo, en segundos, requerido para cavar una trinchera pequeña.</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Trenches_SmallEnvelopeRemoveDuration_DisplayName">
|
<Key ID="STR_ACE_Trenches_SmallEnvelopeRemoveDuration_DisplayName">
|
||||||
<English>Small Trench Remove Duration</English>
|
<English>Small Trench Remove Duration</English>
|
||||||
|
<Russian>Продолжительность удаления малого окопа</Russian>
|
||||||
<French>Petites tranchées - durée de retrait</French>
|
<French>Petites tranchées - durée de retrait</French>
|
||||||
<Japanese>小型塹壕の削除時間</Japanese>
|
<Japanese>小型塹壕の削除時間</Japanese>
|
||||||
<Spanish>Tiempo de eliminar trinchera pequeña</Spanish>
|
<Spanish>Tiempo de eliminar trinchera pequeña</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Trenches_SmallEnvelopeRemoveDuration_Description">
|
<Key ID="STR_ACE_Trenches_SmallEnvelopeRemoveDuration_Description">
|
||||||
<English>Time, in seconds, required to remove a small trench.</English>
|
<English>Time, in seconds, required to remove a small trench.</English>
|
||||||
|
<Russian>Время в секундах, необходимое для удаления малого окопа</Russian>
|
||||||
<French>Définit le temps nécessaire pour le retrait des petites tranchées (en secondes).</French>
|
<French>Définit le temps nécessaire pour le retrait des petites tranchées (en secondes).</French>
|
||||||
<Japanese>小型塹壕が削除されるまでの時間 (秒) を設定できます。</Japanese>
|
<Japanese>小型塹壕が削除されるまでの時間 (秒) を設定できます。</Japanese>
|
||||||
<Spanish>Tiempo, en segundos, requerido para eliminar una trinchera pequeña.</Spanish>
|
<Spanish>Tiempo, en segundos, requerido para eliminar una trinchera pequeña.</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Trenches_BigEnvelopeDigDuration_DisplayName">
|
<Key ID="STR_ACE_Trenches_BigEnvelopeDigDuration_DisplayName">
|
||||||
<English>Big Trench Dig Duration</English>
|
<English>Big Trench Dig Duration</English>
|
||||||
|
<Russian>Продолжительность рытья большого окопа</Russian>
|
||||||
<French>Grandes tranchées - durée d'excavation</French>
|
<French>Grandes tranchées - durée d'excavation</French>
|
||||||
<Japanese>大型塹壕の完成時間</Japanese>
|
<Japanese>大型塹壕の完成時間</Japanese>
|
||||||
<Spanish>Tiempo de cavar trinchera grande</Spanish>
|
<Spanish>Tiempo de cavar trinchera grande</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Trenches_BigEnvelopeDigDuration_Description">
|
<Key ID="STR_ACE_Trenches_BigEnvelopeDigDuration_Description">
|
||||||
<English>Time, in seconds, required to dig a big trench.</English>
|
<English>Time, in seconds, required to dig a big trench.</English>
|
||||||
|
<Russian>Время в секундах, необходимое для рытья большого окопа</Russian>
|
||||||
<French>Définit le temps nécessaire au déploiement des grandes tranchées (en secondes).</French>
|
<French>Définit le temps nécessaire au déploiement des grandes tranchées (en secondes).</French>
|
||||||
<Japanese>大型塹壕が完成するまでの時間 (秒) を設定できます。</Japanese>
|
<Japanese>大型塹壕が完成するまでの時間 (秒) を設定できます。</Japanese>
|
||||||
<Spanish>Tiempo, en segundos, requerido para cavar una trinchera grande</Spanish>
|
<Spanish>Tiempo, en segundos, requerido para cavar una trinchera grande</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Trenches_BigEnvelopeRemoveDuration_DisplayName">
|
<Key ID="STR_ACE_Trenches_BigEnvelopeRemoveDuration_DisplayName">
|
||||||
<English>Big Trench Remove Duration</English>
|
<English>Big Trench Remove Duration</English>
|
||||||
|
<Russian>Продолжительность удаления большого окопа</Russian>
|
||||||
<French>Grandes tranchées - durée de retrait</French>
|
<French>Grandes tranchées - durée de retrait</French>
|
||||||
<Japanese>大型塹壕の削除時間</Japanese>
|
<Japanese>大型塹壕の削除時間</Japanese>
|
||||||
<Spanish>Tiempo de eliminar trinchera grande</Spanish>
|
<Spanish>Tiempo de eliminar trinchera grande</Spanish>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Trenches_BigEnvelopeRemoveDuration_Description">
|
<Key ID="STR_ACE_Trenches_BigEnvelopeRemoveDuration_Description">
|
||||||
<English>Time, in seconds, required to remove a big trench.</English>
|
<English>Time, in seconds, required to remove a big trench.</English>
|
||||||
|
<Russian>Время в секундах, необходимое для удаления большого окопа</Russian>
|
||||||
<French>Définit le temps nécessaire pour le retrait des grandes tranchées (en secondes).</French>
|
<French>Définit le temps nécessaire pour le retrait des grandes tranchées (en secondes).</French>
|
||||||
<Japanese>大型塹壕が削除されるまでの時間 (秒) を設定できます。</Japanese>
|
<Japanese>大型塹壕が削除されるまでの時間 (秒) を設定できます。</Japanese>
|
||||||
<Spanish>Tiempo, en segundos, requerido para eliminar una trinchera grande</Spanish>
|
<Spanish>Tiempo, en segundos, requerido para eliminar una trinchera grande</Spanish>
|
||||||
|
@ -161,6 +161,7 @@
|
|||||||
<English>Development Build Watermark</English>
|
<English>Development Build Watermark</English>
|
||||||
<Russian>Водяной знак Development Build</Russian>
|
<Russian>Водяной знак Development Build</Russian>
|
||||||
<Spanish>Marca de agua para compilación de desarrollo</Spanish>
|
<Spanish>Marca de agua para compilación de desarrollo</Spanish>
|
||||||
|
<French>Filigrane version de développement</French>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_UI_WeaponName">
|
<Key ID="STR_ACE_UI_WeaponName">
|
||||||
<English>Weapon Name</English>
|
<English>Weapon Name</English>
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user