Merge branch 'master' into interactMoreOptions

Conflicts:
	addons/interact_menu/config.cpp
This commit is contained in:
PabstMirror 2015-04-30 15:36:00 -05:00
commit 090062153c
115 changed files with 972 additions and 735 deletions

View File

@ -20,6 +20,7 @@
<Spanish>Abrir ATragMX</Spanish> <Spanish>Abrir ATragMX</Spanish>
<French>Ouvrir ATragMX</French> <French>Ouvrir ATragMX</French>
<German>ATragMX öffnen</German> <German>ATragMX öffnen</German>
<Italian>Apri ATragMX</Italian>
</Key> </Key>
<Key ID="STR_ACE_ATragMX_Description"> <Key ID="STR_ACE_ATragMX_Description">
<English>Rugged PDA with ATragMX</English> <English>Rugged PDA with ATragMX</English>
@ -28,6 +29,7 @@
<Spanish>PDA rugerizada con ATragMX</Spanish> <Spanish>PDA rugerizada con ATragMX</Spanish>
<German>Robuster PDA mit ATragMX</German> <German>Robuster PDA mit ATragMX</German>
<French>PDA robuste avec ATragMX</French> <French>PDA robuste avec ATragMX</French>
<Italian>PDA Robusto con ATragMX</Italian>
</Key> </Key>
<Key ID="STR_ACE_ATragMX_ATragMXDialogKey"> <Key ID="STR_ACE_ATragMX_ATragMXDialogKey">
<English>Open ATragMX</English> <English>Open ATragMX</English>
@ -36,6 +38,7 @@
<Spanish>Abrir ATragMX</Spanish> <Spanish>Abrir ATragMX</Spanish>
<French>Ouvrir ATragMX</French> <French>Ouvrir ATragMX</French>
<German>ATragMX öffnen</German> <German>ATragMX öffnen</German>
<Italian>Apri ATragMX</Italian>
</Key> </Key>
</Package> </Package>
</Project> </Project>

View File

@ -179,6 +179,7 @@
<Portuguese>Erro ao anexar</Portuguese> <Portuguese>Erro ao anexar</Portuguese>
<Polish>Przyczepianie nie powiodło się</Polish> <Polish>Przyczepianie nie powiodło się</Polish>
<Hungarian>Hozzácsatolás sikertelen</Hungarian> <Hungarian>Hozzácsatolás sikertelen</Hungarian>
<Italian>Impossibile Attaccare</Italian>
</Key> </Key>
<Key ID="STR_ACE_Attach_Item_Attached"> <Key ID="STR_ACE_Attach_Item_Attached">
<English>%1&lt;br/&gt;Attached</English> <English>%1&lt;br/&gt;Attached</English>

View File

@ -1,6 +1,8 @@
// by commy2 // by commy2
#include "script_component.hpp" #include "script_component.hpp"
private ["_wall", "_paper"];
_wall = _this select 0; _wall = _this select 0;
if (local _wall) then { if (local _wall) then {

View File

@ -373,6 +373,7 @@
<French>Bande .338 NM 130Cps Traçante</French> <French>Bande .338 NM 130Cps Traçante</French>
<Spanish>Cinta de 130 balas trazadoras de .338 NM</Spanish> <Spanish>Cinta de 130 balas trazadoras de .338 NM</Spanish>
<Russian>Лента из 130-ти .338 NM трассирующих</Russian> <Russian>Лента из 130-ти .338 NM трассирующих</Russian>
<Italian>.338 NM 130Rnd Tracciante Belt</Italian>
</Key> </Key>
<Key ID="STR_ACE_130Rnd_338_Mag_TracerNameShort"> <Key ID="STR_ACE_130Rnd_338_Mag_TracerNameShort">
<English>.338 NM Tracer</English> <English>.338 NM Tracer</English>
@ -382,6 +383,7 @@
<French>.338 NM Traçante</French> <French>.338 NM Traçante</French>
<Spanish>.338 NM trazadora</Spanish> <Spanish>.338 NM trazadora</Spanish>
<Russian>.338 NM трассирующие</Russian> <Russian>.338 NM трассирующие</Russian>
<Italian>.338 NM 130Rnd Tracciante</Italian>
</Key> </Key>
<Key ID="STR_ACE_130Rnd_338_Mag_TracerDescription"> <Key ID="STR_ACE_130Rnd_338_Mag_TracerDescription">
<English>Caliber: .338 Norma Magnum Tracer&lt;br /&gt;Rounds: 130&lt;br /&gt;Used in: SPMG</English> <English>Caliber: .338 Norma Magnum Tracer&lt;br /&gt;Rounds: 130&lt;br /&gt;Used in: SPMG</English>
@ -390,6 +392,7 @@
<French>Calibre: .338 Norma Magnum Traçante&lt;br /&gt;Cartouches: 130&lt;br /&gt;Utilisé avec: SPMG</French> <French>Calibre: .338 Norma Magnum Traçante&lt;br /&gt;Cartouches: 130&lt;br /&gt;Utilisé avec: SPMG</French>
<Spanish>Calibre: .338 Norma Magnum trazadora&lt;br /&gt;Balas: 130&lt;br /&gt;Se usa en: SPMG</Spanish> <Spanish>Calibre: .338 Norma Magnum trazadora&lt;br /&gt;Balas: 130&lt;br /&gt;Se usa en: SPMG</Spanish>
<Russian>Калибр: .338 Norma Magnum трассирующие&lt;br /&gt;Патронов: 130&lt;br /&gt;Используются в: SPMG</Russian> <Russian>Калибр: .338 Norma Magnum трассирующие&lt;br /&gt;Патронов: 130&lt;br /&gt;Используются в: SPMG</Russian>
<Italian>Calibro: .338 Norma Magnum Tracciante&lt;br /&gt;Munizioni: 130&lt;br /&gt;In uso su: SPMG</Italian>
</Key> </Key>
<Key ID="STR_ACE_130Rnd_338_Mag_Tracer_DimName"> <Key ID="STR_ACE_130Rnd_338_Mag_Tracer_DimName">
<English>.338 NM 130Rnd IR-DIM Belt</English> <English>.338 NM 130Rnd IR-DIM Belt</English>
@ -398,6 +401,7 @@
<French>Bande .338 NM 130Cps IR-DIM</French> <French>Bande .338 NM 130Cps IR-DIM</French>
<Spanish>Cinta de 130 balas IR-DIM de .338 NM</Spanish> <Spanish>Cinta de 130 balas IR-DIM de .338 NM</Spanish>
<Russian>Лента из 130-ти .338 NM ИК-трассирующих</Russian> <Russian>Лента из 130-ти .338 NM ИК-трассирующих</Russian>
<Italian>.338 NM 130Rnd IR-DIM Belt</Italian>
</Key> </Key>
<Key ID="STR_ACE_130Rnd_338_Mag_Tracer_DimNameShort"> <Key ID="STR_ACE_130Rnd_338_Mag_Tracer_DimNameShort">
<English>.338 NM IR-DIM</English> <English>.338 NM IR-DIM</English>
@ -407,6 +411,7 @@
<French>.338 NM IR-DIM</French> <French>.338 NM IR-DIM</French>
<Spanish>.338 NM IR-DIM</Spanish> <Spanish>.338 NM IR-DIM</Spanish>
<Russian>.338 NM ИК-трассирующие</Russian> <Russian>.338 NM ИК-трассирующие</Russian>
<Italian>.338 NM IR-DIM</Italian>
</Key> </Key>
<Key ID="STR_ACE_130Rnd_338_Mag_Tracer_DimDescription"> <Key ID="STR_ACE_130Rnd_338_Mag_Tracer_DimDescription">
<English>Caliber: .338 Norma Magnum Tracer IR-DIM&lt;br /&gt;Rounds: 130&lt;br /&gt;Used in: SPMG</English> <English>Caliber: .338 Norma Magnum Tracer IR-DIM&lt;br /&gt;Rounds: 130&lt;br /&gt;Used in: SPMG</English>
@ -415,6 +420,7 @@
<French>Calibre: .338 Norma Magnum Traçante IR-DIM&lt;br /&gt;Cartouches: 130&lt;br /&gt;Utilisé avec: SPMG</French> <French>Calibre: .338 Norma Magnum Traçante IR-DIM&lt;br /&gt;Cartouches: 130&lt;br /&gt;Utilisé avec: SPMG</French>
<Spanish>Calibre: .338 Norma Magnum trazadora IR-DIM&lt;br /&gt;Balas: 130&lt;br /&gt;Se usa en: SPMG</Spanish> <Spanish>Calibre: .338 Norma Magnum trazadora IR-DIM&lt;br /&gt;Balas: 130&lt;br /&gt;Se usa en: SPMG</Spanish>
<Russian>Калибр: .338 Norma Magnum ИК-трассирующие&lt;br /&gt;Патронов: 130&lt;br /&gt;Используются с: SPMG</Russian> <Russian>Калибр: .338 Norma Magnum ИК-трассирующие&lt;br /&gt;Патронов: 130&lt;br /&gt;Используются с: SPMG</Russian>
<Italian>Calibro: .338 Norma Magnum Tracciante IR-DIM&lt;br /&gt;Munizioni: 130&lt;br /&gt;In uso su: SPMG</Italian>
</Key> </Key>
<Key ID="STR_ACE_130Rnd_338_Mag_APName"> <Key ID="STR_ACE_130Rnd_338_Mag_APName">
<English>.338 NM 130Rnd AP Belt</English> <English>.338 NM 130Rnd AP Belt</English>
@ -423,6 +429,7 @@
<French>Bande .338 NM 130Cps AP</French> <French>Bande .338 NM 130Cps AP</French>
<Spanish>Cinta de 130 balas AP de .338 NM</Spanish> <Spanish>Cinta de 130 balas AP de .338 NM</Spanish>
<Russian>Лента из 130-ти .338 NM бронебойных</Russian> <Russian>Лента из 130-ти .338 NM бронебойных</Russian>
<Italian>.338 NM 130Rnd AP Belt</Italian>
</Key> </Key>
<Key ID="STR_ACE_130Rnd_338_Mag_APNameShort"> <Key ID="STR_ACE_130Rnd_338_Mag_APNameShort">
<English>.338 NM AP</English> <English>.338 NM AP</English>
@ -432,6 +439,7 @@
<French>.338 NM AP</French> <French>.338 NM AP</French>
<Spanish>.338 NM AP</Spanish> <Spanish>.338 NM AP</Spanish>
<Russian>.338 NM бронебойные</Russian> <Russian>.338 NM бронебойные</Russian>
<Italian>.338 NM AP</Italian>
</Key> </Key>
<Key ID="STR_ACE_130Rnd_338_Mag_APDescription"> <Key ID="STR_ACE_130Rnd_338_Mag_APDescription">
<English>Caliber: .338 Norma Magnum AP&lt;br /&gt;Rounds: 130&lt;br /&gt;Used in: SPMG</English> <English>Caliber: .338 Norma Magnum AP&lt;br /&gt;Rounds: 130&lt;br /&gt;Used in: SPMG</English>
@ -440,6 +448,7 @@
<French>Calibre: .338 Norma Magnum AP&lt;br /&gt;Cartouches: 130&lt;br /&gt;Utilisé avec: SPMG</French> <French>Calibre: .338 Norma Magnum AP&lt;br /&gt;Cartouches: 130&lt;br /&gt;Utilisé avec: SPMG</French>
<Spanish>Calibre: .338 Norma Magnum AP&lt;br /&gt;Balas: 130&lt;br /&gt;Se usa en: SPMG</Spanish> <Spanish>Calibre: .338 Norma Magnum AP&lt;br /&gt;Balas: 130&lt;br /&gt;Se usa en: SPMG</Spanish>
<Russian>Калибр: .338 Norma Magnum бронебойные&lt;br /&gt;Патронов: 130&lt;br /&gt;Используются с: SPMG</Russian> <Russian>Калибр: .338 Norma Magnum бронебойные&lt;br /&gt;Патронов: 130&lt;br /&gt;Используются с: SPMG</Russian>
<Italian>Calibro: .338 Norma Magnum AP&lt;br /&gt;Munizioni: 130&lt;br /&gt;In uso su: SPMG</Italian>
</Key> </Key>
<!-- 9.3x64mm 10Rnd --> <!-- 9.3x64mm 10Rnd -->
<Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_TracerName"> <Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_TracerName">
@ -449,6 +458,7 @@
<French>Chargeur 9.3mm 10Cps Traçante</French> <French>Chargeur 9.3mm 10Cps Traçante</French>
<Spanish>Cargador de 10 balas trazadoras de 9.3mm</Spanish> <Spanish>Cargador de 10 balas trazadoras de 9.3mm</Spanish>
<Russian>Магазин из 10-ти 9,3 мм трассирующих</Russian> <Russian>Магазин из 10-ти 9,3 мм трассирующих</Russian>
<Italian>9.3mm 10Rnd Tracer Mag</Italian>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_TracerNameShort"> <Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_TracerNameShort">
<English>9.3mm Tracer</English> <English>9.3mm Tracer</English>
@ -458,6 +468,7 @@
<French>9.3mm Traçante</French> <French>9.3mm Traçante</French>
<Spanish>9.3mm trazadora</Spanish> <Spanish>9.3mm trazadora</Spanish>
<Russian>9,3 мм трассирующие</Russian> <Russian>9,3 мм трассирующие</Russian>
<Italian>9.3mm Tracer</Italian>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_TracerDescription"> <Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_TracerDescription">
<English>Caliber: 9.3x64mm Tracer&lt;br /&gt;Rounds: 10&lt;br /&gt;Used in: Cyrus</English> <English>Caliber: 9.3x64mm Tracer&lt;br /&gt;Rounds: 10&lt;br /&gt;Used in: Cyrus</English>
@ -466,6 +477,7 @@
<French>Calibre: 9.3x64mm Traçante&lt;br /&gt;Cartouches: 10&lt;br /&gt;Utilisé avec: Cyrus</French> <French>Calibre: 9.3x64mm Traçante&lt;br /&gt;Cartouches: 10&lt;br /&gt;Utilisé avec: Cyrus</French>
<Spanish>Calibre: 9.3x64mm trazadora&lt;br /&gt;Balas: 10&lt;br /&gt;Se usa en: Cyrus</Spanish> <Spanish>Calibre: 9.3x64mm trazadora&lt;br /&gt;Balas: 10&lt;br /&gt;Se usa en: Cyrus</Spanish>
<Russian>Калибр: 9,3x64 мм трассирующие&lt;br /&gt;Патронов: 10&lt;br /&gt;Используются с: Cyrus</Russian> <Russian>Калибр: 9,3x64 мм трассирующие&lt;br /&gt;Патронов: 10&lt;br /&gt;Используются с: Cyrus</Russian>
<Italian>Calibro: 9.3x64mm Tracer&lt;br /&gt;Munizioni: 10&lt;br /&gt;In uso su: Cyrus</Italian>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_Tracer_DimName"> <Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_Tracer_DimName">
<English>9.3mm 10Rnd Tracer IR-DIM Mag</English> <English>9.3mm 10Rnd Tracer IR-DIM Mag</English>
@ -474,6 +486,7 @@
<French>Chargeur 9.3mm 10Cps Traçante IR-DIM</French> <French>Chargeur 9.3mm 10Cps Traçante IR-DIM</French>
<Spanish>Cargador de 10 balas trazadoras IR-DIM de 9.3mm</Spanish> <Spanish>Cargador de 10 balas trazadoras IR-DIM de 9.3mm</Spanish>
<Russian>Магазин из 10-ти 9,3 мм ИК-трассирующих</Russian> <Russian>Магазин из 10-ти 9,3 мм ИК-трассирующих</Russian>
<Italian>9.3mm 10Rnd Tracciante IR-DIM Mag</Italian>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_Tracer_DimNameShort"> <Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_Tracer_DimNameShort">
<English>9.3mm IR-DIM</English> <English>9.3mm IR-DIM</English>
@ -483,6 +496,7 @@
<French>9.3mm IR-DIM</French> <French>9.3mm IR-DIM</French>
<Spanish>9.3mm IR-DIM</Spanish> <Spanish>9.3mm IR-DIM</Spanish>
<Russian>9,3 мм ИК-трассирующие</Russian> <Russian>9,3 мм ИК-трассирующие</Russian>
<Italian>9.3mm IR-DIM</Italian>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_Tracer_DimDescription"> <Key ID="STR_ACE_10Rnd_93x64_DMR_05_Mag_Tracer_DimDescription">
<English>Caliber: 9.3x64mm Tracer IR-DIM&lt;br /&gt;Rounds: 10&lt;br /&gt;Used in: Cyrus</English> <English>Caliber: 9.3x64mm Tracer IR-DIM&lt;br /&gt;Rounds: 10&lt;br /&gt;Used in: Cyrus</English>
@ -491,6 +505,7 @@
<French>Calibre: 9.3x64mm Traçante IR-DIM&lt;br /&gt;Cartouches: 10&lt;br /&gt;Utilisé avec: Cyrus</French> <French>Calibre: 9.3x64mm Traçante IR-DIM&lt;br /&gt;Cartouches: 10&lt;br /&gt;Utilisé avec: Cyrus</French>
<Spanish>Calibre: 9.3x64mm trazadora IR-DIM&lt;br /&gt;Balas: 10&lt;br /&gt;Se usa en: Cyrus</Spanish> <Spanish>Calibre: 9.3x64mm trazadora IR-DIM&lt;br /&gt;Balas: 10&lt;br /&gt;Se usa en: Cyrus</Spanish>
<Russian>Калибр: 9,3x64 мм ИК-трассирующие&lt;br /&gt;Патронов: 10&lt;br /&gt;Используются с: Cyrus</Russian> <Russian>Калибр: 9,3x64 мм ИК-трассирующие&lt;br /&gt;Патронов: 10&lt;br /&gt;Используются с: Cyrus</Russian>
<Italian>Calibro: 9.3x64mm Tracciante IR-DIM&lt;br /&gt;Munizioni: 10&lt;br /&gt;In uso su: Cyrus</Italian>
</Key> </Key>
<!-- 9.3x64mm 150Rnd Belt--> <!-- 9.3x64mm 150Rnd Belt-->
<Key ID="STR_ACE_150Rnd_93x64_Mag_TracerName"> <Key ID="STR_ACE_150Rnd_93x64_Mag_TracerName">
@ -500,6 +515,7 @@
<French>Bande 9.3mm 150Cps Traçante</French> <French>Bande 9.3mm 150Cps Traçante</French>
<Spanish>Cinta de 150 balas trazadoras de 9.3mm</Spanish> <Spanish>Cinta de 150 balas trazadoras de 9.3mm</Spanish>
<Russian>Лента из 150-ти 9,3 мм трассирующих</Russian> <Russian>Лента из 150-ти 9,3 мм трассирующих</Russian>
<Italian>9.3mm 150Rnd Tracer Belt</Italian>
</Key> </Key>
<Key ID="STR_ACE_150Rnd_93x64_Mag_TracerNameShort"> <Key ID="STR_ACE_150Rnd_93x64_Mag_TracerNameShort">
<English>9.3mm Tracer</English> <English>9.3mm Tracer</English>
@ -509,6 +525,7 @@
<French>9.3mm Traçante</French> <French>9.3mm Traçante</French>
<Spanish>9.3mm trazadora</Spanish> <Spanish>9.3mm trazadora</Spanish>
<Russian>9,3 мм трассирующие</Russian> <Russian>9,3 мм трассирующие</Russian>
<Italian>9.3mm Tracciante</Italian>
</Key> </Key>
<Key ID="STR_ACE_150Rnd_93x64_Mag_TracerDescription"> <Key ID="STR_ACE_150Rnd_93x64_Mag_TracerDescription">
<English>Caliber: 9.3x64mm Tracer&lt;br /&gt;Rounds: 150&lt;br /&gt;Used in: Navid</English> <English>Caliber: 9.3x64mm Tracer&lt;br /&gt;Rounds: 150&lt;br /&gt;Used in: Navid</English>
@ -517,6 +534,7 @@
<French>Calibre: 9.3x64mm Traçante&lt;br /&gt;Cartouches: 150&lt;br /&gt;Utilisé avec: Navid</French> <French>Calibre: 9.3x64mm Traçante&lt;br /&gt;Cartouches: 150&lt;br /&gt;Utilisé avec: Navid</French>
<Spanish>Calibre: 9.3x64mm trazadora&lt;br /&gt;Balas: 150&lt;br /&gt;Se usa en: Navid</Spanish> <Spanish>Calibre: 9.3x64mm trazadora&lt;br /&gt;Balas: 150&lt;br /&gt;Se usa en: Navid</Spanish>
<Russian>Калибр: 9,3x64 мм трассирующие&lt;br /&gt;Патронов: 150&lt;br /&gt;Используются с: Навид</Russian> <Russian>Калибр: 9,3x64 мм трассирующие&lt;br /&gt;Патронов: 150&lt;br /&gt;Используются с: Навид</Russian>
<Italian>Calibro: 9.3x64mm Tracciante&lt;br /&gt;Munizioni: 150&lt;br /&gt;In uso su: Navid</Italian>
</Key> </Key>
<Key ID="STR_ACE_150Rnd_93x64_Mag_Tracer_DimName"> <Key ID="STR_ACE_150Rnd_93x64_Mag_Tracer_DimName">
<English>9.3mm 150Rnd Tracer IR-DIM Belt</English> <English>9.3mm 150Rnd Tracer IR-DIM Belt</English>
@ -525,6 +543,7 @@
<French>Bande 9.3mm 150Cps Traçante IR-DIM</French> <French>Bande 9.3mm 150Cps Traçante IR-DIM</French>
<Spanish>Cinta de 150 balas trazadoras IR-DIM de 9.3mm</Spanish> <Spanish>Cinta de 150 balas trazadoras IR-DIM de 9.3mm</Spanish>
<Russian>Лента из 150-ти 9,3 мм ИК-трассирующих</Russian> <Russian>Лента из 150-ти 9,3 мм ИК-трассирующих</Russian>
<Italian>9.3mm 150Rnd Tracciante IR-DIM Belt</Italian>
</Key> </Key>
<Key ID="STR_ACE_150Rnd_93x64_Mag_Tracer_DimNameShort"> <Key ID="STR_ACE_150Rnd_93x64_Mag_Tracer_DimNameShort">
<English>9.3mm IR-DIM</English> <English>9.3mm IR-DIM</English>
@ -534,6 +553,7 @@
<French>9.3mm IR-DIM</French> <French>9.3mm IR-DIM</French>
<Spanish>9.3mm IR-DIM</Spanish> <Spanish>9.3mm IR-DIM</Spanish>
<Russian>9,3 мм ИК-трассирующие</Russian> <Russian>9,3 мм ИК-трассирующие</Russian>
<Italian>9.3mm IR-DIM</Italian>
</Key> </Key>
<Key ID="STR_ACE_150Rnd_93x64_Mag_Tracer_DimDescription"> <Key ID="STR_ACE_150Rnd_93x64_Mag_Tracer_DimDescription">
<English>Caliber: 9.3x64mm Tracer IR-DIM&lt;br /&gt;Rounds: 150&lt;br /&gt;Used in: Navid</English> <English>Caliber: 9.3x64mm Tracer IR-DIM&lt;br /&gt;Rounds: 150&lt;br /&gt;Used in: Navid</English>
@ -542,6 +562,7 @@
<French>Calibre: 9.3x64mm Traçante IR-DIM&lt;br /&gt;Cartouches: 150&lt;br /&gt;Utilisé avec: Navid</French> <French>Calibre: 9.3x64mm Traçante IR-DIM&lt;br /&gt;Cartouches: 150&lt;br /&gt;Utilisé avec: Navid</French>
<Spanish>Calibre: 9.3x64mm trazadora IR-DIM&lt;br /&gt;Balas: 150&lt;br /&gt;Se usa en: Navid</Spanish> <Spanish>Calibre: 9.3x64mm trazadora IR-DIM&lt;br /&gt;Balas: 150&lt;br /&gt;Se usa en: Navid</Spanish>
<Russian>Калибр: 9,3x64 мм ИК-трассирующие&lt;br /&gt;Патронов: 150&lt;br /&gt;Используются с: Навид</Russian> <Russian>Калибр: 9,3x64 мм ИК-трассирующие&lt;br /&gt;Патронов: 150&lt;br /&gt;Используются с: Навид</Russian>
<Italian>Calibro: 9.3x64mm Tracciante IR-DIM&lt;br /&gt;Munizioni: 150&lt;br /&gt;In uso su: Navid</Italian>
</Key> </Key>
<Key ID="STR_ACE_150Rnd_93x64_Mag_APName"> <Key ID="STR_ACE_150Rnd_93x64_Mag_APName">
<English>9.3mm 150Rnd AP Belt</English> <English>9.3mm 150Rnd AP Belt</English>
@ -550,6 +571,7 @@
<French>Bande 9.3mm 150Cps AP</French> <French>Bande 9.3mm 150Cps AP</French>
<Spanish>Cinta de 150 balas AP de 9.3mm</Spanish> <Spanish>Cinta de 150 balas AP de 9.3mm</Spanish>
<Russian>Лента из 150-ти 9,3 мм бронебойных</Russian> <Russian>Лента из 150-ти 9,3 мм бронебойных</Russian>
<Italian>9.3mm 150Rnd AP Belt</Italian>
</Key> </Key>
<Key ID="STR_ACE_150Rnd_93x64_Mag_APNameShort"> <Key ID="STR_ACE_150Rnd_93x64_Mag_APNameShort">
<English>9.3mm AP</English> <English>9.3mm AP</English>
@ -559,6 +581,7 @@
<French>9.3mm AP</French> <French>9.3mm AP</French>
<Spanish>9.3mm AP</Spanish> <Spanish>9.3mm AP</Spanish>
<Russian>9,3 мм бронебойные</Russian> <Russian>9,3 мм бронебойные</Russian>
<Italian>9.3mm AP</Italian>
</Key> </Key>
<Key ID="STR_ACE_150Rnd_93x64_Mag_APDescription"> <Key ID="STR_ACE_150Rnd_93x64_Mag_APDescription">
<English>Caliber: 9.3x64mm AP&lt;br /&gt;Rounds: 150&lt;br /&gt;Used in: Navid</English> <English>Caliber: 9.3x64mm AP&lt;br /&gt;Rounds: 150&lt;br /&gt;Used in: Navid</English>
@ -567,6 +590,7 @@
<French>Calibre: 9.3x64mm AP&lt;br /&gt;Cartouches: 150&lt;br /&gt;Utilisé avec: Navid</French> <French>Calibre: 9.3x64mm AP&lt;br /&gt;Cartouches: 150&lt;br /&gt;Utilisé avec: Navid</French>
<Spanish>Calibre: 9.3x64mm AP&lt;br /&gt;Balas: 150&lt;br /&gt;Se usa en: Navid</Spanish> <Spanish>Calibre: 9.3x64mm AP&lt;br /&gt;Balas: 150&lt;br /&gt;Se usa en: Navid</Spanish>
<Russian>Калибр: 9,3x64 мм бронебойные&lt;br /&gt;Патронов: 150&lt;br /&gt;Используются с: Навид</Russian> <Russian>Калибр: 9,3x64 мм бронебойные&lt;br /&gt;Патронов: 150&lt;br /&gt;Используются с: Навид</Russian>
<Italian>Calibro: 9.3x64mm AP&lt;br /&gt;Munizioni: 150&lt;br /&gt;In uso su: Navid</Italian>
</Key> </Key>
<Key ID="STR_ACE_16Rnd_9x19_mag_Name"> <Key ID="STR_ACE_16Rnd_9x19_mag_Name">
<English>9x19mm 16Rnd Mag</English> <English>9x19mm 16Rnd Mag</English>
@ -575,6 +599,7 @@
<Spanish>Cargador de 16 balas de 9x19mm</Spanish> <Spanish>Cargador de 16 balas de 9x19mm</Spanish>
<Russian>Магазин из 16-ти 9х19 мм</Russian> <Russian>Магазин из 16-ти 9х19 мм</Russian>
<German>9x19mm 20-Patronen-Magazin</German> <German>9x19mm 20-Patronen-Magazin</German>
<Italian>9x19mm 16Rnd Mag</Italian>
</Key> </Key>
<Key ID="STR_ACE_16Rnd_9x19_mag_NameShort"> <Key ID="STR_ACE_16Rnd_9x19_mag_NameShort">
<English>9x19mm</English> <English>9x19mm</English>
@ -583,6 +608,7 @@
<Spanish>9x19mm</Spanish> <Spanish>9x19mm</Spanish>
<Russian>9х19 мм</Russian> <Russian>9х19 мм</Russian>
<German>9x19mm</German> <German>9x19mm</German>
<Italian>9x19mm</Italian>
</Key> </Key>
<Key ID="STR_ACE_16Rnd_9x19_mag_Description"> <Key ID="STR_ACE_16Rnd_9x19_mag_Description">
<English>9x19mm 30Rnd Mag</English> <English>9x19mm 30Rnd Mag</English>
@ -591,6 +617,7 @@
<Spanish>Cargador de 16 balas de 9x19mm</Spanish> <Spanish>Cargador de 16 balas de 9x19mm</Spanish>
<Russian>Магазин из 16-ти 9х19 мм</Russian> <Russian>Магазин из 16-ти 9х19 мм</Russian>
<German>9x19mm 30-Patronen-Magazin</German> <German>9x19mm 30-Patronen-Magazin</German>
<Italian>9x19mm 30Rnd Mag</Italian>
</Key> </Key>
<Key ID="STR_ACE_30Rnd_9x19_mag_Name"> <Key ID="STR_ACE_30Rnd_9x19_mag_Name">
<English>9x19mm 30Rnd Mag</English> <English>9x19mm 30Rnd Mag</English>
@ -599,6 +626,7 @@
<Spanish>Cargador de 30 balas de 9x19mm</Spanish> <Spanish>Cargador de 30 balas de 9x19mm</Spanish>
<Russian>Магазин из 30-ти 9х19 мм</Russian> <Russian>Магазин из 30-ти 9х19 мм</Russian>
<German>9x19mm 30-Patronen-Magazin</German> <German>9x19mm 30-Patronen-Magazin</German>
<Italian>9x19mm 30Rnd Mag</Italian>
</Key> </Key>
<Key ID="STR_ACE_30Rnd_9x19_mag_NameShort"> <Key ID="STR_ACE_30Rnd_9x19_mag_NameShort">
<English>9x19mm</English> <English>9x19mm</English>
@ -607,6 +635,7 @@
<Spanish>9x19mm</Spanish> <Spanish>9x19mm</Spanish>
<Russian>9х19 мм</Russian> <Russian>9х19 мм</Russian>
<German>9x19mm</German> <German>9x19mm</German>
<Italian>9x19mm</Italian>
</Key> </Key>
<Key ID="STR_ACE_30Rnd_9x19_mag_Description"> <Key ID="STR_ACE_30Rnd_9x19_mag_Description">
<English>9x19mm 30Rnd Mag</English> <English>9x19mm 30Rnd Mag</English>
@ -615,6 +644,7 @@
<Spanish>Cargador de 30 balas de 9x19mm</Spanish> <Spanish>Cargador de 30 balas de 9x19mm</Spanish>
<Russian>Магазин из 30-ти 9х19 мм</Russian> <Russian>Магазин из 30-ти 9х19 мм</Russian>
<German>9x19mm 30-Patronen-Magazin</German> <German>9x19mm 30-Patronen-Magazin</German>
<Italian>9x19mm 30Rnd Mag</Italian>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_762x54_Tracer_mag_Name"> <Key ID="STR_ACE_10Rnd_762x54_Tracer_mag_Name">
<English>7.62x54mm 10Rnd Tracer Mag</English> <English>7.62x54mm 10Rnd Tracer Mag</English>
@ -623,6 +653,7 @@
<Spanish>Cargador de 10 balas trazadoras de 7.62x54mm</Spanish> <Spanish>Cargador de 10 balas trazadoras de 7.62x54mm</Spanish>
<Russian>Магазин из 10-ти 7,62 мм ИК-трассирующих</Russian> <Russian>Магазин из 10-ти 7,62 мм ИК-трассирующих</Russian>
<German>7,62x54mm 10-Patronen-Magazin Leuchtspur</German> <German>7,62x54mm 10-Patronen-Magazin Leuchtspur</German>
<Italian>7.62x54mm 10Munizioni Traccianti IR-DIM Mag</Italian>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_762x54_Tracer_mag_NameShort"> <Key ID="STR_ACE_10Rnd_762x54_Tracer_mag_NameShort">
<English>7.62mm</English> <English>7.62mm</English>
@ -631,6 +662,7 @@
<Spanish>7.62mm</Spanish> <Spanish>7.62mm</Spanish>
<Russian>7,62 мм</Russian> <Russian>7,62 мм</Russian>
<German>7,62x54mm </German> <German>7,62x54mm </German>
<Italian>7.62mm IR-DIM</Italian>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_762x54_Tracer_mag_Description"> <Key ID="STR_ACE_10Rnd_762x54_Tracer_mag_Description">
<English>7.62x54mm 10Rnd Tracer Mag</English> <English>7.62x54mm 10Rnd Tracer Mag</English>
@ -639,6 +671,7 @@
<Spanish>Cargador de 10 balas trazadoras de 7.62x54mm</Spanish> <Spanish>Cargador de 10 balas trazadoras de 7.62x54mm</Spanish>
<Russian>Магазин из 10-ти 7,62 мм ИК-трассирующих</Russian> <Russian>Магазин из 10-ти 7,62 мм ИК-трассирующих</Russian>
<German>7,62x54mm 10-Patronen-Magazin Leuchtspur</German> <German>7,62x54mm 10-Patronen-Magazin Leuchtspur</German>
<Italian>7.62x54mm 10Munizioni Traccianti IR-DIM Mag</Italian>
</Key> </Key>
<Key ID="STR_ACE_100Rnd_65x39_caseless_mag_Tracer_DimName"> <Key ID="STR_ACE_100Rnd_65x39_caseless_mag_Tracer_DimName">
<English>6.5mm 100Rnd Tracer IR-DIM Mag</English> <English>6.5mm 100Rnd Tracer IR-DIM Mag</English>
@ -647,6 +680,7 @@
<Spanish>Cargador de 100 balas trazadoras IR-DIM de 6.5mm</Spanish> <Spanish>Cargador de 100 balas trazadoras IR-DIM de 6.5mm</Spanish>
<Russian>Магазин из 100 6,5 мм ИК-трассирующих</Russian> <Russian>Магазин из 100 6,5 мм ИК-трассирующих</Russian>
<German>6,5mm 100-Patronen-Magazin IR-DIM Leuchtspur</German> <German>6,5mm 100-Patronen-Magazin IR-DIM Leuchtspur</German>
<Italian>6.5mm 100Munizioni Traccianti IR-DIM Mag</Italian>
</Key> </Key>
<Key ID="STR_ACE_100Rnd_65x39_caseless_mag_Tracer_DimNameShort"> <Key ID="STR_ACE_100Rnd_65x39_caseless_mag_Tracer_DimNameShort">
<English>6.5mm IR-DIM</English> <English>6.5mm IR-DIM</English>
@ -655,6 +689,7 @@
<Spanish>6.5mm IR-DIM</Spanish> <Spanish>6.5mm IR-DIM</Spanish>
<Russian>6,5 мм ИК-трассирующие</Russian> <Russian>6,5 мм ИК-трассирующие</Russian>
<German>6,5mm IR-DIM </German> <German>6,5mm IR-DIM </German>
<Italian>6.5mm IR-DIM</Italian>
</Key> </Key>
<Key ID="STR_ACE_100Rnd_65x39_caseless_mag_Tracer_DimDescription"> <Key ID="STR_ACE_100Rnd_65x39_caseless_mag_Tracer_DimDescription">
<English>6.5mm 100Rnd Tracer IR-DIM Mag&lt;br /&gt;Rounds: 100&lt;br /&gt;Used in: MX LSW</English> <English>6.5mm 100Rnd Tracer IR-DIM Mag&lt;br /&gt;Rounds: 100&lt;br /&gt;Used in: MX LSW</English>
@ -663,6 +698,7 @@
<Spanish>Cargador de 100 balas trazadoras IR-DIM de 6.5mm</Spanish> <Spanish>Cargador de 100 balas trazadoras IR-DIM de 6.5mm</Spanish>
<Russian>Магазин из 100 6,5 мм ИК-трассирующих</Russian> <Russian>Магазин из 100 6,5 мм ИК-трассирующих</Russian>
<German>6,5mm 100-Patronen-Magazin IR-DIM Leuchtspur&lt;br /&gt;Patronen: 100&lt;br /&gt;Eingesetzt von: MXLSW</German> <German>6,5mm 100-Patronen-Magazin IR-DIM Leuchtspur&lt;br /&gt;Patronen: 100&lt;br /&gt;Eingesetzt von: MXLSW</German>
<Italian>6.5mm 100Rnd Tracer IR-DIM Mag&lt;br /&gt;Munizioni: 100&lt;br /&gt;In uso su: MX LSW</Italian>
</Key> </Key>
<Key ID="STR_ACE_200Rnd_65x39_cased_Box_Tracer_DimName"> <Key ID="STR_ACE_200Rnd_65x39_cased_Box_Tracer_DimName">
<English>6.5mm 200Rnd Tracer IR-DIM Belt</English> <English>6.5mm 200Rnd Tracer IR-DIM Belt</English>
@ -671,6 +707,7 @@
<Spanish>Cinta de 200 balas trazadoras IR-DIM de 6.5mm</Spanish> <Spanish>Cinta de 200 balas trazadoras IR-DIM de 6.5mm</Spanish>
<Russian>Магазин из 200-т 6,5 мм ИК-трассирующих</Russian> <Russian>Магазин из 200-т 6,5 мм ИК-трассирующих</Russian>
<German>6,5mm 200-Patronen-Gurt IR-DIM Leuchtspur</German> <German>6,5mm 200-Patronen-Gurt IR-DIM Leuchtspur</German>
<Italian>6.5mm 200Rnd Tracer IR-DIM Belt</Italian>
</Key> </Key>
<Key ID="STR_ACE_200Rnd_65x39_cased_Box_Tracer_DimNameShort"> <Key ID="STR_ACE_200Rnd_65x39_cased_Box_Tracer_DimNameShort">
<English>6.5mm IR-DIM</English> <English>6.5mm IR-DIM</English>
@ -679,6 +716,7 @@
<Spanish>6.5mm IR-DIM</Spanish> <Spanish>6.5mm IR-DIM</Spanish>
<Russian>6,5 мм ИК-трассирующие</Russian> <Russian>6,5 мм ИК-трассирующие</Russian>
<German>6,5mm IR-DIM</German> <German>6,5mm IR-DIM</German>
<Italian>6.5mm IR-DIM</Italian>
</Key> </Key>
<Key ID="STR_ACE_200Rnd_65x39_cased_Box_Tracer_DimDescription"> <Key ID="STR_ACE_200Rnd_65x39_cased_Box_Tracer_DimDescription">
<English>6.5mm 200Rnd Tracer IR-DIM Belt&lt;br /&gt;Rounds: 200&lt;br /&gt;Used in: Stoner 99 LMG</English> <English>6.5mm 200Rnd Tracer IR-DIM Belt&lt;br /&gt;Rounds: 200&lt;br /&gt;Used in: Stoner 99 LMG</English>
@ -687,6 +725,7 @@
<Spanish>Cinta de 200 balas trazadoras IR-DIM de 6.5mm</Spanish> <Spanish>Cinta de 200 balas trazadoras IR-DIM de 6.5mm</Spanish>
<Russian>Магазин из 200-т 6,5 мм ИК-трассирующих</Russian> <Russian>Магазин из 200-т 6,5 мм ИК-трассирующих</Russian>
<German>6,5mm 200-Patronen-Gurt IR-DIM Leuchtspur&lt;br /&gt;Patronen: 200&lt;br /&gt;Eingesetzt von: Stoner 99 LMG</German> <German>6,5mm 200-Patronen-Gurt IR-DIM Leuchtspur&lt;br /&gt;Patronen: 200&lt;br /&gt;Eingesetzt von: Stoner 99 LMG</German>
<Italian>6.5mm 200Rnd Tracer IR-DIM Belt&lt;br /&gt;Munizioni: 200&lt;br /&gt;In uso su: Stoner 99 LMG</Italian>
</Key> </Key>
<Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk262_mag_Name"> <Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk262_mag_Name">
<English>5.56mm 30Rnd Mag (Mk262)</English> <English>5.56mm 30Rnd Mag (Mk262)</English>
@ -695,6 +734,7 @@
<Spanish>Cargador de 30 balas de 5.56mm (Mk262)</Spanish> <Spanish>Cargador de 30 balas de 5.56mm (Mk262)</Spanish>
<Russian>Магазин из 30-ти 5.56 мм Mk262</Russian> <Russian>Магазин из 30-ти 5.56 мм Mk262</Russian>
<German>5,56mm 30-Patronen-Magazin (Mk262)</German> <German>5,56mm 30-Patronen-Magazin (Mk262)</German>
<Italian>5.56mm 30Rnd Mag (Mk262)</Italian>
</Key> </Key>
<Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk262_mag_NameShort"> <Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk262_mag_NameShort">
<English>5.56mm Mk262</English> <English>5.56mm Mk262</English>
@ -703,6 +743,7 @@
<Spanish>5.56mm Mk262</Spanish> <Spanish>5.56mm Mk262</Spanish>
<Russian>5,56 мм Mk262</Russian> <Russian>5,56 мм Mk262</Russian>
<German>5,56mm Mk262</German> <German>5,56mm Mk262</German>
<Italian>5.56mm Mk262</Italian>
</Key> </Key>
<Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk262_mag_Description"> <Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk262_mag_Description">
<English>Caliber: 5.56x45mm NATO (Mk262)&lt;br /&gt;Rounds: 30</English> <English>Caliber: 5.56x45mm NATO (Mk262)&lt;br /&gt;Rounds: 30</English>
@ -711,6 +752,7 @@
<Spanish>Calibre: 5.56x45mm NATO (Mk262)&lt;br /&gt;Balas: 30</Spanish> <Spanish>Calibre: 5.56x45mm NATO (Mk262)&lt;br /&gt;Balas: 30</Spanish>
<Russian>Калибр: 5,56x45 мм NATO (Mk262)&lt;br /&gt;Патронов: 30</Russian> <Russian>Калибр: 5,56x45 мм NATO (Mk262)&lt;br /&gt;Патронов: 30</Russian>
<German>Kaliber: 5,56x45mm NATO (Mk262)&lt;br /&gt;Patronen: 30</German> <German>Kaliber: 5,56x45mm NATO (Mk262)&lt;br /&gt;Patronen: 30</German>
<Italian>Calibro: 5.56x45 mm NATO (Mk262)&lt;br /&gt;Munizioni: 30</Italian>
</Key> </Key>
<Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_Name"> <Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_Name">
<English>5.56mm 30Rnd Mag (Mk318)</English> <English>5.56mm 30Rnd Mag (Mk318)</English>
@ -719,6 +761,7 @@
<Spanish>Cargador de 30 balas de 5.56mm (Mk318)</Spanish> <Spanish>Cargador de 30 balas de 5.56mm (Mk318)</Spanish>
<Russian>Магазин из 30-ти 5.56 мм (Mk318)</Russian> <Russian>Магазин из 30-ти 5.56 мм (Mk318)</Russian>
<German>5,56mm 30-Patronen-Magazin (Mk318)</German> <German>5,56mm 30-Patronen-Magazin (Mk318)</German>
<Italian>5.56mm 30Rnd Mag (Mk318)</Italian>
</Key> </Key>
<Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_NameShort"> <Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_NameShort">
<English>5.56mm Mk318</English> <English>5.56mm Mk318</English>
@ -727,6 +770,7 @@
<Spanish>5.56mm Mk318</Spanish> <Spanish>5.56mm Mk318</Spanish>
<Russian>5.56 мм Mk318</Russian> <Russian>5.56 мм Mk318</Russian>
<German>5,56mm Mk318</German> <German>5,56mm Mk318</German>
<Italian>5.56mm Mk318</Italian>
</Key> </Key>
<Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_Description"> <Key ID="STR_ACE_30Rnd_556x45_Stanag_Mk318_mag_Description">
<English>Caliber: 5.56x45mm NATO (Mk318)&lt;br /&gt;Rounds: 30</English> <English>Caliber: 5.56x45mm NATO (Mk318)&lt;br /&gt;Rounds: 30</English>
@ -735,6 +779,7 @@
<Spanish>Calibre: 5.56x45mm NATO (Mk318)&lt;br /&gt;Balas: 30</Spanish> <Spanish>Calibre: 5.56x45mm NATO (Mk318)&lt;br /&gt;Balas: 30</Spanish>
<Russian>Калибр: 5,56x45 мм NATO (Mk318)&lt;br /&gt;Патронов: 30</Russian> <Russian>Калибр: 5,56x45 мм NATO (Mk318)&lt;br /&gt;Патронов: 30</Russian>
<German>Kaliber: 5,56x45mm NATO (Mk318)&lt;br /&gt;Patronen: 30</German> <German>Kaliber: 5,56x45mm NATO (Mk318)&lt;br /&gt;Patronen: 30</German>
<Italian>Calibro: 5.56x45 mm NATO (Mk318)&lt;br /&gt;Munizioni: 30</Italian>
</Key> </Key>
<Key ID="STR_ACE_30Rnd_556x45_Stanag_M995_AP_mag_Name"> <Key ID="STR_ACE_30Rnd_556x45_Stanag_M995_AP_mag_Name">
<English>5.56mm 30Rnd Mag (M995 AP)</English> <English>5.56mm 30Rnd Mag (M995 AP)</English>
@ -743,6 +788,7 @@
<Spanish>Cargador de 30 balas de 5.56mm (M995 AP)</Spanish> <Spanish>Cargador de 30 balas de 5.56mm (M995 AP)</Spanish>
<Russian>Магазин из 30-ти 5.56 мм (M995 бронебойные)</Russian> <Russian>Магазин из 30-ти 5.56 мм (M995 бронебойные)</Russian>
<German>5,56mm 30-Patronen-Magazin (M995AP)</German> <German>5,56mm 30-Patronen-Magazin (M995AP)</German>
<Italian>5.56mm 30Rnd Mag (M995 AP) </Italian>
</Key> </Key>
<Key ID="STR_ACE_30Rnd_556x45_Stanag_M995_AP_mag_NameShort"> <Key ID="STR_ACE_30Rnd_556x45_Stanag_M995_AP_mag_NameShort">
<English>5.56mm AP</English> <English>5.56mm AP</English>
@ -751,6 +797,7 @@
<Spanish>5.56mm AP</Spanish> <Spanish>5.56mm AP</Spanish>
<Russian>5.56 мм бронебойные</Russian> <Russian>5.56 мм бронебойные</Russian>
<German>5,56mm AP</German> <German>5,56mm AP</German>
<Italian>5.56mm AP</Italian>
</Key> </Key>
<Key ID="STR_ACE_30Rnd_556x45_Stanag_M995_AP_mag_Description"> <Key ID="STR_ACE_30Rnd_556x45_Stanag_M995_AP_mag_Description">
<English>Caliber: 5.56x45mm NATO (M995 AP)&lt;br /&gt;Rounds: 30</English> <English>Caliber: 5.56x45mm NATO (M995 AP)&lt;br /&gt;Rounds: 30</English>
@ -759,6 +806,7 @@
<Spanish>Calibre: 5.56x45mm NATO (M995 AP)&lt;br /&gt;Balas: 30</Spanish> <Spanish>Calibre: 5.56x45mm NATO (M995 AP)&lt;br /&gt;Balas: 30</Spanish>
<Russian>Калибр: 5,56x45 мм NATO (M995 бронебойные)&lt;br /&gt;Патронов: 30</Russian> <Russian>Калибр: 5,56x45 мм NATO (M995 бронебойные)&lt;br /&gt;Патронов: 30</Russian>
<German>Kaliber: 5,56x45mm NATO (M995 AP)&lt;br /&gt;Patronen: 30</German> <German>Kaliber: 5,56x45mm NATO (M995 AP)&lt;br /&gt;Patronen: 30</German>
<Italian>Calibro: 5.56x45 mm NATO (M995 AP)&lt;br /&gt;Munizioni: 30</Italian>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_762x51_M118LR_Mag_Name"> <Key ID="STR_ACE_10Rnd_762x51_M118LR_Mag_Name">
<English>7.62mm 10Rnd Mag (M118LR)</English> <English>7.62mm 10Rnd Mag (M118LR)</English>
@ -767,6 +815,7 @@
<Spanish>Cargador de 10 balas de 7.62mm (M118LR)</Spanish> <Spanish>Cargador de 10 balas de 7.62mm (M118LR)</Spanish>
<Russian>Магазин из 10-ти 7,62 мм (M118LR)</Russian> <Russian>Магазин из 10-ти 7,62 мм (M118LR)</Russian>
<German>7,62mm 10-Patronen-Magazin (M118LR)</German> <German>7,62mm 10-Patronen-Magazin (M118LR)</German>
<Italian>7.62mm 10Rnd Mag (M118LR)</Italian>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_762x51_M118LR_Mag_NameShort"> <Key ID="STR_ACE_10Rnd_762x51_M118LR_Mag_NameShort">
<English>7.62mm M118LR</English> <English>7.62mm M118LR</English>
@ -775,6 +824,7 @@
<Spanish>7.62mm (M118LR)</Spanish> <Spanish>7.62mm (M118LR)</Spanish>
<Russian>7,62 мм M118LR</Russian> <Russian>7,62 мм M118LR</Russian>
<German>7,62mm M118LR</German> <German>7,62mm M118LR</German>
<Italian>7.62mm M118LR</Italian>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_762x51_M118LR_Mag_Description"> <Key ID="STR_ACE_10Rnd_762x51_M118LR_Mag_Description">
<English>Caliber: 7.62x51mm NATO (M118LR)&lt;br /&gt;Rounds: 10</English> <English>Caliber: 7.62x51mm NATO (M118LR)&lt;br /&gt;Rounds: 10</English>
@ -783,6 +833,7 @@
<Spanish>Calibre: 7.62x51mm NATO (M118LR)&lt;br /&gt;Balas: 10</Spanish> <Spanish>Calibre: 7.62x51mm NATO (M118LR)&lt;br /&gt;Balas: 10</Spanish>
<Russian>Калибр: 7,62x51 мм NATO (M118LR)&lt;br /&gt;Патронов: 10</Russian> <Russian>Калибр: 7,62x51 мм NATO (M118LR)&lt;br /&gt;Патронов: 10</Russian>
<German>Kaliber: 7,62x51mm NATO (M118LR)&lt;br /&gt;Patronen: 10</German> <German>Kaliber: 7,62x51mm NATO (M118LR)&lt;br /&gt;Patronen: 10</German>
<Italian>Calibro: 7.62x51 mm NATO (M118LR)&lt;br /&gt;Munizioni: 10</Italian>
</Key> </Key>
<Key ID="STR_ACE_20Rnd_762x51_M118LR_Mag_Name"> <Key ID="STR_ACE_20Rnd_762x51_M118LR_Mag_Name">
<English>7.62mm 20Rnd Mag (M118LR)</English> <English>7.62mm 20Rnd Mag (M118LR)</English>
@ -791,6 +842,7 @@
<Spanish>Cargador de 20 balas de 7.62mm (M118LR)</Spanish> <Spanish>Cargador de 20 balas de 7.62mm (M118LR)</Spanish>
<Russian>Магазин из 20-ти 7,62 мм (M118LR)</Russian> <Russian>Магазин из 20-ти 7,62 мм (M118LR)</Russian>
<German>7,62mm 20-Patronen-Magazin (M118LR)</German> <German>7,62mm 20-Patronen-Magazin (M118LR)</German>
<Italian>7.62mm 20Rnd Mag (M118LR)</Italian>
</Key> </Key>
<Key ID="STR_ACE_20Rnd_762x51_M118LR_Mag_NameShort"> <Key ID="STR_ACE_20Rnd_762x51_M118LR_Mag_NameShort">
<English>7.62mm M118LR</English> <English>7.62mm M118LR</English>
@ -799,6 +851,7 @@
<Spanish>7.62mm (M118LR)</Spanish> <Spanish>7.62mm (M118LR)</Spanish>
<Russian>7,62 мм M118LR</Russian> <Russian>7,62 мм M118LR</Russian>
<German>7,62mm M118LR</German> <German>7,62mm M118LR</German>
<Italian>7.62mm M118LR</Italian>
</Key> </Key>
<Key ID="STR_ACE_20Rnd_762x51_M118LR_Mag_Description"> <Key ID="STR_ACE_20Rnd_762x51_M118LR_Mag_Description">
<English>Caliber: 7.62x51mm NATO (M118LR)&lt;br /&gt;Rounds: 20</English> <English>Caliber: 7.62x51mm NATO (M118LR)&lt;br /&gt;Rounds: 20</English>
@ -807,6 +860,7 @@
<Spanish>Calibre: 7.62x51mm NATO (M118LR)&lt;br /&gt;Balas: 20</Spanish> <Spanish>Calibre: 7.62x51mm NATO (M118LR)&lt;br /&gt;Balas: 20</Spanish>
<Russian>Калибр: 7,62x51 мм NATO (M118LR)&lt;br /&gt;Патронов: 20</Russian> <Russian>Калибр: 7,62x51 мм NATO (M118LR)&lt;br /&gt;Патронов: 20</Russian>
<German>Kaliber: 7,62x51mm NATO (M118LR)&lt;br /&gt;Patronen: 20</German> <German>Kaliber: 7,62x51mm NATO (M118LR)&lt;br /&gt;Patronen: 20</German>
<Italian>Calibro: 7.62x51 mm NATO (M118LR)&lt;br /&gt;Munizioni: 20</Italian>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_762x51_Mk316_Mod_0_Mag_Name"> <Key ID="STR_ACE_10Rnd_762x51_Mk316_Mod_0_Mag_Name">
<English>7.62mm 10Rnd Mag (Mk316 Mod 0)</English> <English>7.62mm 10Rnd Mag (Mk316 Mod 0)</English>
@ -815,6 +869,7 @@
<Spanish>Cargador de 10 balas de 7.62mm (Mk316 Mod 0)</Spanish> <Spanish>Cargador de 10 balas de 7.62mm (Mk316 Mod 0)</Spanish>
<Russian>Магазин из 10-ти 7,62 мм (Mk316 Mod 0)</Russian> <Russian>Магазин из 10-ти 7,62 мм (Mk316 Mod 0)</Russian>
<German>7,62mm 10-Patronen-Magazin (Mk316 Mod 0)</German> <German>7,62mm 10-Patronen-Magazin (Mk316 Mod 0)</German>
<Italian>7.62mm 10Rnd Mag (Mk316 Mod 0)</Italian>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_762x51_Mk316_Mod_0_Mag_NameShort"> <Key ID="STR_ACE_10Rnd_762x51_Mk316_Mod_0_Mag_NameShort">
<English>7.62mm Mk316</English> <English>7.62mm Mk316</English>
@ -823,6 +878,7 @@
<Spanish>7.62mm Mk316</Spanish> <Spanish>7.62mm Mk316</Spanish>
<Russian>7,62 мм Mk316</Russian> <Russian>7,62 мм Mk316</Russian>
<German>7,62mm Mk316</German> <German>7,62mm Mk316</German>
<Italian>7.62mm Mk316</Italian>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_762x51_Mk316_Mod_0_Mag_Description"> <Key ID="STR_ACE_10Rnd_762x51_Mk316_Mod_0_Mag_Description">
<English>Caliber: 7.62x51mm NATO (Mk316 Mod 0)&lt;br /&gt;Rounds: 10</English> <English>Caliber: 7.62x51mm NATO (Mk316 Mod 0)&lt;br /&gt;Rounds: 10</English>
@ -831,6 +887,7 @@
<Spanish>Calibre: 7.62x51mm NATO (Mk316 Mod 0)&lt;br /&gt;Balas: 10</Spanish> <Spanish>Calibre: 7.62x51mm NATO (Mk316 Mod 0)&lt;br /&gt;Balas: 10</Spanish>
<Russian>Калибр: 7,62x51 мм NATO (Mk316 Mod 0)&lt;br /&gt;Патронов: 10</Russian> <Russian>Калибр: 7,62x51 мм NATO (Mk316 Mod 0)&lt;br /&gt;Патронов: 10</Russian>
<German>Kaliber: 7,62x51mm NATO (Mk316 Mod 0)&lt;br /&gt;Patronen: 10</German> <German>Kaliber: 7,62x51mm NATO (Mk316 Mod 0)&lt;br /&gt;Patronen: 10</German>
<Italian>Calibro: 7.62x51 mm NATO (Mk316 Mod 0)&lt;br /&gt;Munizioni: 10</Italian>
</Key> </Key>
<Key ID="STR_ACE_20Rnd_762x51_Mk316_Mod_0_Mag_Name"> <Key ID="STR_ACE_20Rnd_762x51_Mk316_Mod_0_Mag_Name">
<English>7.62mm 20Rnd Mag (Mk316 Mod 0)</English> <English>7.62mm 20Rnd Mag (Mk316 Mod 0)</English>
@ -839,6 +896,7 @@
<Spanish>Cargador de 20 balas de 7.62mm (Mk316 Mod 0)</Spanish> <Spanish>Cargador de 20 balas de 7.62mm (Mk316 Mod 0)</Spanish>
<Russian>Магазин из 20-ти 7,62 мм (Mk316 Mod 0)</Russian> <Russian>Магазин из 20-ти 7,62 мм (Mk316 Mod 0)</Russian>
<German>7,62mm 20-Patronen-Magazin (Mk316 Mod 0)</German> <German>7,62mm 20-Patronen-Magazin (Mk316 Mod 0)</German>
<Italian>7.62mm 20Rnd Mag (Mk316 Mod 0)</Italian>
</Key> </Key>
<Key ID="STR_ACE_20Rnd_762x51_Mk316_Mod_0_Mag_NameShort"> <Key ID="STR_ACE_20Rnd_762x51_Mk316_Mod_0_Mag_NameShort">
<English>7.62mm Mk316</English> <English>7.62mm Mk316</English>
@ -847,6 +905,7 @@
<Spanish>7.62mm Mk316</Spanish> <Spanish>7.62mm Mk316</Spanish>
<Russian>7,62 мм Mk316</Russian> <Russian>7,62 мм Mk316</Russian>
<German>7,62mm Mk316</German> <German>7,62mm Mk316</German>
<Italian>7.62mm Mk316</Italian>
</Key> </Key>
<Key ID="STR_ACE_20Rnd_762x51_Mk316_Mod_0_Mag_Description"> <Key ID="STR_ACE_20Rnd_762x51_Mk316_Mod_0_Mag_Description">
<English>Caliber: 7.62x51mm NATO (Mk316 Mod 0)&lt;br /&gt;Rounds: 20</English> <English>Caliber: 7.62x51mm NATO (Mk316 Mod 0)&lt;br /&gt;Rounds: 20</English>
@ -855,6 +914,7 @@
<Spanish>Calibre: 7.62x51mm NATO (Mk316 Mod 0)&lt;br /&gt;Balas: 20</Spanish> <Spanish>Calibre: 7.62x51mm NATO (Mk316 Mod 0)&lt;br /&gt;Balas: 20</Spanish>
<Russian>Калибр: 7,62x51 мм NATO (Mk316 Mod 0)&lt;br /&gt;Патронов: 20</Russian> <Russian>Калибр: 7,62x51 мм NATO (Mk316 Mod 0)&lt;br /&gt;Патронов: 20</Russian>
<German>Kaliber: 7,62x51mm NATO (Mk316 Mod 0)&lt;br /&gt;Patronen: 20</German> <German>Kaliber: 7,62x51mm NATO (Mk316 Mod 0)&lt;br /&gt;Patronen: 20</German>
<Italian>Calibro: 7.62x51 mm NATO (Mk316 Mod 0)&lt;br /&gt;Munizioni: 20</Italian>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_762x51_Mk319_Mod_0_Mag_Name"> <Key ID="STR_ACE_10Rnd_762x51_Mk319_Mod_0_Mag_Name">
<English>7.62mm 10Rnd Mag (Mk319 Mod 0)</English> <English>7.62mm 10Rnd Mag (Mk319 Mod 0)</English>
@ -863,6 +923,7 @@
<Spanish>Cargador de 10 balas de 7.62mm (Mk319 Mod 0)</Spanish> <Spanish>Cargador de 10 balas de 7.62mm (Mk319 Mod 0)</Spanish>
<Russian>Магазин из 10-ти 7,62 мм (Mk319 Mod 0)</Russian> <Russian>Магазин из 10-ти 7,62 мм (Mk319 Mod 0)</Russian>
<German>7,62mm 10-Patronen-Magazin (Mk319 Mod 0)</German> <German>7,62mm 10-Patronen-Magazin (Mk319 Mod 0)</German>
<Italian>7.62mm 10Rnd Mag (Mk319 Mod 0)</Italian>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_762x51_Mk319_Mod_0_Mag_NameShort"> <Key ID="STR_ACE_10Rnd_762x51_Mk319_Mod_0_Mag_NameShort">
<English>7.62mm Mk319</English> <English>7.62mm Mk319</English>
@ -871,6 +932,7 @@
<Spanish>7.62mm Mk319</Spanish> <Spanish>7.62mm Mk319</Spanish>
<Russian>7,62 мм Mk319</Russian> <Russian>7,62 мм Mk319</Russian>
<German>7,62mm Mk319</German> <German>7,62mm Mk319</German>
<Italian>7.62mm Mk319</Italian>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_762x51_Mk319_Mod_0_Mag_Description"> <Key ID="STR_ACE_10Rnd_762x51_Mk319_Mod_0_Mag_Description">
<English>Caliber: 7.62x51mm NATO (Mk319 Mod 0)&lt;br /&gt;Rounds: 10</English> <English>Caliber: 7.62x51mm NATO (Mk319 Mod 0)&lt;br /&gt;Rounds: 10</English>
@ -879,6 +941,7 @@
<Spanish>Calibre: 7.62x51mm NATO (Mk319 Mod 0)&lt;br /&gt;Balas: 10</Spanish> <Spanish>Calibre: 7.62x51mm NATO (Mk319 Mod 0)&lt;br /&gt;Balas: 10</Spanish>
<Russian>Калибр: 7,62x51 мм NATO (Mk319 Mod 0)&lt;br /&gt;Патронов: 10</Russian> <Russian>Калибр: 7,62x51 мм NATO (Mk319 Mod 0)&lt;br /&gt;Патронов: 10</Russian>
<German>Kaliber: 7,62x51mm NATO (Mk319 Mod 0)&lt;br /&gt;Patronen: 10</German> <German>Kaliber: 7,62x51mm NATO (Mk319 Mod 0)&lt;br /&gt;Patronen: 10</German>
<Italian>Calibro: 7.62x51 mm NATO (Mk319 Mod 0)&lt;br /&gt;Munizioni: 10</Italian>
</Key> </Key>
<Key ID="STR_ACE_20Rnd_762x51_Mk319_Mod_0_Mag_Name"> <Key ID="STR_ACE_20Rnd_762x51_Mk319_Mod_0_Mag_Name">
<English>7.62mm 20Rnd Mag (Mk319 Mod 0)</English> <English>7.62mm 20Rnd Mag (Mk319 Mod 0)</English>
@ -887,6 +950,7 @@
<Spanish>Cargador de 20 balas de 7.62mm (Mk319 Mod 0)</Spanish> <Spanish>Cargador de 20 balas de 7.62mm (Mk319 Mod 0)</Spanish>
<Russian>Магазин из 20-ти 7,62 мм (Mk319 Mod 0)</Russian> <Russian>Магазин из 20-ти 7,62 мм (Mk319 Mod 0)</Russian>
<German>7,62mm 20-Patronen-Magazin (Mk319 Mod 0)</German> <German>7,62mm 20-Patronen-Magazin (Mk319 Mod 0)</German>
<Italian>7.62mm 20Rnd Mag (Mk319 Mod 0)</Italian>
</Key> </Key>
<Key ID="STR_ACE_20Rnd_762x51_Mk319_Mod_0_Mag_NameShort"> <Key ID="STR_ACE_20Rnd_762x51_Mk319_Mod_0_Mag_NameShort">
<English>7.62mm Mk319</English> <English>7.62mm Mk319</English>
@ -895,6 +959,7 @@
<Spanish>7.62mm Mk319</Spanish> <Spanish>7.62mm Mk319</Spanish>
<Russian>7,62 мм Mk319</Russian> <Russian>7,62 мм Mk319</Russian>
<German>7,62mm Mk319</German> <German>7,62mm Mk319</German>
<Italian>7.62mm Mk319</Italian>
</Key> </Key>
<Key ID="STR_ACE_20Rnd_762x51_Mk319_Mod_0_Mag_Description"> <Key ID="STR_ACE_20Rnd_762x51_Mk319_Mod_0_Mag_Description">
<English>Caliber: 7.62x51mm NATO (Mk319 Mod 0)&lt;br /&gt;Rounds: 20</English> <English>Caliber: 7.62x51mm NATO (Mk319 Mod 0)&lt;br /&gt;Rounds: 20</English>
@ -903,6 +968,7 @@
<Spanish>Calibre: 7.62x51mm NATO (Mk319 Mod 0)&lt;br /&gt;Balas: 20</Spanish> <Spanish>Calibre: 7.62x51mm NATO (Mk319 Mod 0)&lt;br /&gt;Balas: 20</Spanish>
<Russian>Калибр: 7,62x51 мм NATO (Mk319 Mod 0)&lt;br /&gt;Патронов: 20</Russian> <Russian>Калибр: 7,62x51 мм NATO (Mk319 Mod 0)&lt;br /&gt;Патронов: 20</Russian>
<German>Kaliber: 7,62x51mm NATO (Mk319 Mod 0)&lt;br /&gt;Patronen: 20</German> <German>Kaliber: 7,62x51mm NATO (Mk319 Mod 0)&lt;br /&gt;Patronen: 20</German>
<Italian>Calibro: 7.62x51 mm NATO (Mk319 Mod 0)&lt;br /&gt;Munizioni: 20</Italian>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_762x51_M993_AP_Mag_Name"> <Key ID="STR_ACE_10Rnd_762x51_M993_AP_Mag_Name">
<English>7.62mm 10Rnd Mag (M993 AP)</English> <English>7.62mm 10Rnd Mag (M993 AP)</English>
@ -911,6 +977,7 @@
<Spanish>Cargador de 10 balas de 7.62mm (M993 AP)</Spanish> <Spanish>Cargador de 10 balas de 7.62mm (M993 AP)</Spanish>
<Russian>Магазин из 10-ти 7,62 мм (M993 бронебойные)</Russian> <Russian>Магазин из 10-ти 7,62 мм (M993 бронебойные)</Russian>
<German>7,62mm 10-Patronen-Magazin (M993 AP)</German> <German>7,62mm 10-Patronen-Magazin (M993 AP)</German>
<Italian>7.62mm 10Rnd Mag (M993 AP)</Italian>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_762x51_M993_AP_Mag_NameShort"> <Key ID="STR_ACE_10Rnd_762x51_M993_AP_Mag_NameShort">
<English>7.62mm AP</English> <English>7.62mm AP</English>
@ -919,6 +986,7 @@
<Spanish>7.62mm AP</Spanish> <Spanish>7.62mm AP</Spanish>
<Russian>7,62mm бронебойные</Russian> <Russian>7,62mm бронебойные</Russian>
<German>7,62mm AP</German> <German>7,62mm AP</German>
<Italian>7.62mm AP</Italian>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_762x51_M993_AP_Mag_Description"> <Key ID="STR_ACE_10Rnd_762x51_M993_AP_Mag_Description">
<English>Caliber: 7.62x51mm NATO (M993 AP)&lt;br /&gt;Rounds: 10</English> <English>Caliber: 7.62x51mm NATO (M993 AP)&lt;br /&gt;Rounds: 10</English>
@ -927,6 +995,7 @@
<Spanish>Calibre: 7.62x51mm NATO (M993 AP)&lt;br /&gt;Balas: 10</Spanish> <Spanish>Calibre: 7.62x51mm NATO (M993 AP)&lt;br /&gt;Balas: 10</Spanish>
<Russian>Калибр: 7,62x51 мм NATO (M993 бронебойные)&lt;br /&gt;Патронов: 10</Russian> <Russian>Калибр: 7,62x51 мм NATO (M993 бронебойные)&lt;br /&gt;Патронов: 10</Russian>
<German>Kaliber: 7,62x51mm NATO (M993 AP)&lt;br /&gt;Patronen: 10</German> <German>Kaliber: 7,62x51mm NATO (M993 AP)&lt;br /&gt;Patronen: 10</German>
<Italian>Calibro: 7.62x51 mm NATO (M993 AP)&lt;br /&gt;Munizioni: 10</Italian>
</Key> </Key>
<Key ID="STR_ACE_20Rnd_762x51_M993_AP_Mag_Name"> <Key ID="STR_ACE_20Rnd_762x51_M993_AP_Mag_Name">
<English>7.62mm 20Rnd Mag (M993 AP)</English> <English>7.62mm 20Rnd Mag (M993 AP)</English>
@ -935,6 +1004,7 @@
<Spanish>Cargador de 20 balas de 7.62mm (M993 AP)</Spanish> <Spanish>Cargador de 20 balas de 7.62mm (M993 AP)</Spanish>
<Russian>Магазин из 20-ти 7,62 мм (M993 бронебойные)</Russian> <Russian>Магазин из 20-ти 7,62 мм (M993 бронебойные)</Russian>
<German>7,62mm 20-Patronen-Magazin (M993 AP)</German> <German>7,62mm 20-Patronen-Magazin (M993 AP)</German>
<Italian>7.62mm 20Rnd Mag (M993 AP)</Italian>
</Key> </Key>
<Key ID="STR_ACE_20Rnd_762x51_M993_AP_Mag_NameShort"> <Key ID="STR_ACE_20Rnd_762x51_M993_AP_Mag_NameShort">
<English>7.62mm AP</English> <English>7.62mm AP</English>
@ -943,6 +1013,7 @@
<Spanish>7.62mm AP</Spanish> <Spanish>7.62mm AP</Spanish>
<Russian>7,62 мм бронебойные</Russian> <Russian>7,62 мм бронебойные</Russian>
<German>7,62mm AP</German> <German>7,62mm AP</German>
<Italian>7.62mm AP</Italian>
</Key> </Key>
<Key ID="STR_ACE_20Rnd_762x51_M993_AP_Mag_Description"> <Key ID="STR_ACE_20Rnd_762x51_M993_AP_Mag_Description">
<English>Caliber: 7.62x51mm NATO (M993 AP)&lt;br /&gt;Rounds: 20</English> <English>Caliber: 7.62x51mm NATO (M993 AP)&lt;br /&gt;Rounds: 20</English>
@ -951,6 +1022,7 @@
<Spanish>Calibre: 7.62x51mm NATO (M993 AP)&lt;br /&gt;Balas: 20</Spanish> <Spanish>Calibre: 7.62x51mm NATO (M993 AP)&lt;br /&gt;Balas: 20</Spanish>
<Russian>Калибр: 7,62x51 мм NATO (M993 бронебойные)&lt;br /&gt;Патронов: 20</Russian> <Russian>Калибр: 7,62x51 мм NATO (M993 бронебойные)&lt;br /&gt;Патронов: 20</Russian>
<German>Kaliber: 7,62x51mm NATO (M993 AP)&lt;br /&gt;Patronen: 20</German> <German>Kaliber: 7,62x51mm NATO (M993 AP)&lt;br /&gt;Patronen: 20</German>
<Italian>Calibro: 7.62x51 mm NATO (M993 AP)&lt;br /&gt;Munizioni: 20</Italian>
</Key> </Key>
<Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_0_Mag_Name"> <Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_0_Mag_Name">
<English>7.62mm 20Rnd Mag (Mk248 Mod 0)</English> <English>7.62mm 20Rnd Mag (Mk248 Mod 0)</English>
@ -959,6 +1031,7 @@
<Spanish>Cargador de 20 balas de 7.62mm (Mk248 Mod 0)</Spanish> <Spanish>Cargador de 20 balas de 7.62mm (Mk248 Mod 0)</Spanish>
<Russian>Магазин из 20-ти 7,62 мм (Mk248 Mod 0)</Russian> <Russian>Магазин из 20-ти 7,62 мм (Mk248 Mod 0)</Russian>
<German>7,62mm 20-Patronen-Magazin (Mk248 Mod 0)</German> <German>7,62mm 20-Patronen-Magazin (Mk248 Mod 0)</German>
<Italian>7.62mm 20Rnd Mag (Mk248 Mod 0)</Italian>
</Key> </Key>
<Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_0_Mag_NameShort"> <Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_0_Mag_NameShort">
<English>7.62mm (Mk248 Mod 0)</English> <English>7.62mm (Mk248 Mod 0)</English>
@ -967,6 +1040,7 @@
<Spanish>7.62mm (Mk248 Mod 0)</Spanish> <Spanish>7.62mm (Mk248 Mod 0)</Spanish>
<Russian>7,62 мм (Mk248 Mod 0)</Russian> <Russian>7,62 мм (Mk248 Mod 0)</Russian>
<German>7,62mm (Mk248 Mod 0)</German> <German>7,62mm (Mk248 Mod 0)</German>
<Italian>7.62mm (Mk248 Mod 0)</Italian>
</Key> </Key>
<Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_0_Mag_Description"> <Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_0_Mag_Description">
<English>Caliber: 7.62x67mm NATO (Mk248 Mod 0)&lt;br /&gt;Rounds: 20</English> <English>Caliber: 7.62x67mm NATO (Mk248 Mod 0)&lt;br /&gt;Rounds: 20</English>
@ -975,6 +1049,7 @@
<Spanish>Calibre: 7.62x67mm NATO (Mk248 Mod 0)&lt;br /&gt;Balas: 20</Spanish> <Spanish>Calibre: 7.62x67mm NATO (Mk248 Mod 0)&lt;br /&gt;Balas: 20</Spanish>
<Russian>Калибр: 7,62x67 мм NATO (Mk248 Mod 0)&lt;br /&gt;Патронов: 20</Russian> <Russian>Калибр: 7,62x67 мм NATO (Mk248 Mod 0)&lt;br /&gt;Патронов: 20</Russian>
<German>Kaliber: 7,62x51mm NATO (Mk248 Mod 0)&lt;br /&gt;Patronen: 20</German> <German>Kaliber: 7,62x51mm NATO (Mk248 Mod 0)&lt;br /&gt;Patronen: 20</German>
<Italian>Calibro: 7.62x67 mm NATO (Mk248 Mod 0)&lt;br /&gt;Munizioni: 20</Italian>
</Key> </Key>
<Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_1_Mag_Name"> <Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_1_Mag_Name">
<English>7.62mm 20Rnd Mag (Mk248 Mod 1)</English> <English>7.62mm 20Rnd Mag (Mk248 Mod 1)</English>
@ -983,6 +1058,7 @@
<Spanish>Cargador de 20 balas de 7.62mm (Mk248 Mod 1)</Spanish> <Spanish>Cargador de 20 balas de 7.62mm (Mk248 Mod 1)</Spanish>
<Russian>Магазин из 20-ти 7,62 мм (Mk248 Mod 1)</Russian> <Russian>Магазин из 20-ти 7,62 мм (Mk248 Mod 1)</Russian>
<German>7,62mm 20-Patronen-Magazin (Mk248 Mod 1)</German> <German>7,62mm 20-Patronen-Magazin (Mk248 Mod 1)</German>
<Italian>7.62mm 20Rnd Mag (Mk248 Mod 1)</Italian>
</Key> </Key>
<Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_1_Mag_NameShort"> <Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_1_Mag_NameShort">
<English>7.62mm (Mk248 Mod 1)</English> <English>7.62mm (Mk248 Mod 1)</English>
@ -991,6 +1067,7 @@
<Spanish>7.62mm (Mk248 Mod 1)</Spanish> <Spanish>7.62mm (Mk248 Mod 1)</Spanish>
<Russian>7,62 мм (Mk248 Mod 1)</Russian> <Russian>7,62 мм (Mk248 Mod 1)</Russian>
<German>7,62mm (Mk248 Mod 1)</German> <German>7,62mm (Mk248 Mod 1)</German>
<Italian>7.62mm (Mk248 Mod 1)</Italian>
</Key> </Key>
<Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_1_Mag_Description"> <Key ID="STR_ACE_20Rnd_762x67_Mk248_Mod_1_Mag_Description">
<English>Caliber: 7.62x67mm NATO (Mk248 Mod 1)&lt;br /&gt;Rounds: 20</English> <English>Caliber: 7.62x67mm NATO (Mk248 Mod 1)&lt;br /&gt;Rounds: 20</English>
@ -999,6 +1076,7 @@
<Spanish>Calibre: 7.62x67mm NATO (Mk248 Mod 1)&lt;br /&gt;Balas: 20</Spanish> <Spanish>Calibre: 7.62x67mm NATO (Mk248 Mod 1)&lt;br /&gt;Balas: 20</Spanish>
<Russian>Калибр: 7,62x67 мм NATO (Mk248 Mod 1)&lt;br /&gt;Патронов: 20</Russian> <Russian>Калибр: 7,62x67 мм NATO (Mk248 Mod 1)&lt;br /&gt;Патронов: 20</Russian>
<German>Kaliber: 7,62x51mm NATO (Mk248 Mod 1)&lt;br /&gt;Patronen: 20</German> <German>Kaliber: 7,62x51mm NATO (Mk248 Mod 1)&lt;br /&gt;Patronen: 20</German>
<Italian>Calibro: 7.62x67 mm NATO (Mk248 Mod 1)&lt;br /&gt;Munizioni: 20</Italian>
</Key> </Key>
<Key ID="STR_ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag_Name"> <Key ID="STR_ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag_Name">
<English>7.62mm 20Rnd Mag (Berger Hybrid OTM)</English> <English>7.62mm 20Rnd Mag (Berger Hybrid OTM)</English>
@ -1007,6 +1085,7 @@
<Spanish>Cargador de 20 balas de 7.62mm (Berger Hybrid OTM)</Spanish> <Spanish>Cargador de 20 balas de 7.62mm (Berger Hybrid OTM)</Spanish>
<Russian>Магазин из 20-ти 7,62 мм (Berger Hybrid OTM)</Russian> <Russian>Магазин из 20-ти 7,62 мм (Berger Hybrid OTM)</Russian>
<German>7,62mm 20-Patronen-Magazin (Berger Hybrid OTM)</German> <German>7,62mm 20-Patronen-Magazin (Berger Hybrid OTM)</German>
<Italian>7.62mm 20Rnd Mag (Berger Hybrid OTM)</Italian>
</Key> </Key>
<Key ID="STR_ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag_NameShort"> <Key ID="STR_ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag_NameShort">
<English>7.62mm (OTM)</English> <English>7.62mm (OTM)</English>
@ -1015,6 +1094,7 @@
<Spanish>7.62mm (OTM)</Spanish> <Spanish>7.62mm (OTM)</Spanish>
<Russian>7,62 мм (OTM)</Russian> <Russian>7,62 мм (OTM)</Russian>
<German>7,62mm (OTM)</German> <German>7,62mm (OTM)</German>
<Italian>7.62mm (OTM)</Italian>
</Key> </Key>
<Key ID="STR_ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag_Description"> <Key ID="STR_ACE_20Rnd_762x67_Berger_Hybrid_OTM_Mag_Description">
<English>Caliber: 7.62x67mm NATO (Berger Hybrid OTM)&lt;br /&gt;Rounds: 20</English> <English>Caliber: 7.62x67mm NATO (Berger Hybrid OTM)&lt;br /&gt;Rounds: 20</English>
@ -1023,6 +1103,7 @@
<Spanish>Calibre: 7.62x67mm NATO (Berger Hybrid OTM)&lt;br /&gt;Balas: 20</Spanish> <Spanish>Calibre: 7.62x67mm NATO (Berger Hybrid OTM)&lt;br /&gt;Balas: 20</Spanish>
<Russian>Калибр: 7,62x67 мм NATO (Berger Hybrid OTM)&lt;br /&gt;Патронов: 20</Russian> <Russian>Калибр: 7,62x67 мм NATO (Berger Hybrid OTM)&lt;br /&gt;Патронов: 20</Russian>
<German>Kaliber: 7,62x67mm NATO (Berger Hybrid OTM)&lt;br /&gt;Patronen: 20</German> <German>Kaliber: 7,62x67mm NATO (Berger Hybrid OTM)&lt;br /&gt;Patronen: 20</German>
<Italian>Calibro: 7.62x67 mm NATO (Berger Hybrid OTM)&lt;br /&gt;Munizioni: 20</Italian>
</Key> </Key>
<Key ID="STR_ACE_30Rnd_65x47_Scenar_mag_Name"> <Key ID="STR_ACE_30Rnd_65x47_Scenar_mag_Name">
<English>6.5x47mm 30Rnd Mag (HPBT Scenar)</English> <English>6.5x47mm 30Rnd Mag (HPBT Scenar)</English>
@ -1031,6 +1112,7 @@
<Polish>Magazynek 6,5x47mm 30rd (HPBT Scenar)</Polish> <Polish>Magazynek 6,5x47mm 30rd (HPBT Scenar)</Polish>
<Russian>Магазин из 30-ти 6,5x47 мм (экспансивные Scenar)</Russian> <Russian>Магазин из 30-ти 6,5x47 мм (экспансивные Scenar)</Russian>
<German>6,5x47mm 30-Patronen-Magazin (HPBT Scenar)</German> <German>6,5x47mm 30-Patronen-Magazin (HPBT Scenar)</German>
<Italian>6.5x47mm 30Rnd Mag (HPBT Scenar)</Italian>
</Key> </Key>
<Key ID="STR_ACE_30Rnd_65x47_Scenar_mag_NameShort"> <Key ID="STR_ACE_30Rnd_65x47_Scenar_mag_NameShort">
<English>6.5mm Lapua</English> <English>6.5mm Lapua</English>
@ -1039,6 +1121,7 @@
<Polish>6,5mm Lapua</Polish> <Polish>6,5mm Lapua</Polish>
<Russian>6,5 мм Lapua</Russian> <Russian>6,5 мм Lapua</Russian>
<German>6,5mm Lapua</German> <German>6,5mm Lapua</German>
<Italian>6.5mm Lapua</Italian>
</Key> </Key>
<Key ID="STR_ACE_30Rnd_65x47_Scenar_mag_Description"> <Key ID="STR_ACE_30Rnd_65x47_Scenar_mag_Description">
<English>Caliber: 6.5x47mm (HPBT Scenar)&lt;br /&gt;Rounds: 30&lt;br /&gt;Used in: MXM</English> <English>Caliber: 6.5x47mm (HPBT Scenar)&lt;br /&gt;Rounds: 30&lt;br /&gt;Used in: MXM</English>
@ -1047,13 +1130,15 @@
<Polish>Kaliber: 6,5x47mm (HPBT Scenar)&lt;br /&gt;Pociski: 30</Polish> <Polish>Kaliber: 6,5x47mm (HPBT Scenar)&lt;br /&gt;Pociski: 30</Polish>
<Russian>Калибр: 6,5x47 мм (экспансивные Scenar)&lt;br /&gt;Патронов: 30</Russian> <Russian>Калибр: 6,5x47 мм (экспансивные Scenar)&lt;br /&gt;Патронов: 30</Russian>
<German>Kaliber: 6,5x47mm (HPBT Scenar)&lt;br /&gt;Patronen: 30&lt;br /&gt;Eingesetzt von: MXM</German> <German>Kaliber: 6,5x47mm (HPBT Scenar)&lt;br /&gt;Patronen: 30&lt;br /&gt;Eingesetzt von: MXM</German>
<Italian>Calibro: 6.5x47mm (HPBT Scenar)&lt;br /&gt;Munizioni: 30&lt;br /&gt;In uso su: MXM</Italian>
</Key> </Key>
<Key ID="STR_ACE_30Rnd_65_Creedmor_mag_Name"> <Key ID="STR_ACE_30Rnd_65_Creedmor_mag_Name">
<English>6.5mm Creedmor 30Rnd Mag</English> <English>6.5mm Creedmor 30Rnd Mag</English>
<Polish>Magazynek 6,5mm Creedmor 30rd</Polish> <Polish>Magazynek 6,5mm Creedmor 30rd</Polish>
<Russian>Магазин из 30-ти 6,5 мм Creedmor</Russian> <Italian>6.5mm Creedmor 30Rnd Mag</Italian>
<Russian>Магазин из 30-ти 6,5 мм Creedmor</Russian>
<German>6,5mm Creedmor 30-Patronen-Magazin</German> <German>6,5mm Creedmor 30-Patronen-Magazin</German>
<French>Chargeur 6.5mm Creedmor 30Cps</French></FrenchW> <French>Chargeur 6.5mm Creedmor 30Cps</French>
</Key> </Key>
<Key ID="STR_ACE_30Rnd_65_Creedmor_mag_NameShort"> <Key ID="STR_ACE_30Rnd_65_Creedmor_mag_NameShort">
<English>6.5mm CM</English> <English>6.5mm CM</English>
@ -1062,12 +1147,14 @@
<Polish>6,5mm CM</Polish> <Polish>6,5mm CM</Polish>
<Russian>6,5 мм CM</Russian> <Russian>6,5 мм CM</Russian>
<German>6,5mm CM</German> <German>6,5mm CM</German>
<Italian>6.5mm CM</Italian>
</Key> </Key>
<Key ID="STR_ACE_30Rnd_65_Creedmor_mag_Description"> <Key ID="STR_ACE_30Rnd_65_Creedmor_mag_Description">
<English>Caliber: 6.5x47mm Creedmor&lt;br /&gt;Rounds: 30&lt;br /&gt;Used in: MXM</English> <English>Caliber: 6.5x47mm Creedmor&lt;br /&gt;Rounds: 30&lt;br /&gt;Used in: MXM</English>
<Polish>Kaliber: 6,5x47mm Creedmor&lt;br /&gt;Pociski: 30&lt;br /&gt;Używany w: MXM</Polish> <Polish>Kaliber: 6,5x47mm Creedmor&lt;br /&gt;Pociski: 30&lt;br /&gt;Używany w: MXM</Polish>
<German>Kaliber: 6,5x47mm Creedmor&lt;br /&gt;Patronen: 30&lt;br /&gt;Eingesetzt von: MXM</German> <German>Kaliber: 6,5x47mm Creedmor&lt;br /&gt;Patronen: 30&lt;br /&gt;Eingesetzt von: MXM</German>
<French>Calibre: 6.5x47mm Creedmor &lt;br /&gt;Cartouches: 30&lt;br /&gt;Utilisé avec: MXM</French> <French>Calibre: 6.5x47mm Creedmor &lt;br /&gt;Cartouches: 30&lt;br /&gt;Utilisé avec: MXM</French>
<Italian>Calibro: 6.5mm Creedmor&lt;br /&gt;Munizioni: 30&lt;br /&gt;In uso su: MXM</Italian>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_338_300gr_HPBT_Mag_Name"> <Key ID="STR_ACE_10Rnd_338_300gr_HPBT_Mag_Name">
<English>.338 10Rnd Mag (300gr Sierra MatchKing HPBT)</English> <English>.338 10Rnd Mag (300gr Sierra MatchKing HPBT)</English>
@ -1076,6 +1163,7 @@
<Polish>Magazynek .338 10rd (300gr Sierra MatchKing HPBT)</Polish> <Polish>Magazynek .338 10rd (300gr Sierra MatchKing HPBT)</Polish>
<Russian>Магазин из 10-ти .338 (300 гран Sierra MatchKing экспансивные)</Russian> <Russian>Магазин из 10-ти .338 (300 гран Sierra MatchKing экспансивные)</Russian>
<German>.338 10-Patronen-Magazin (300gr Sierra MatchKing HPBT)</German> <German>.338 10-Patronen-Magazin (300gr Sierra MatchKing HPBT)</German>
<Italian>.338 10Munizioni Mag (300gr Sierra MatchKing HPBT)</Italian>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_338_300gr_HPBT_Mag_NameShort"> <Key ID="STR_ACE_10Rnd_338_300gr_HPBT_Mag_NameShort">
<English>.338 HPBT</English> <English>.338 HPBT</English>
@ -1084,6 +1172,7 @@
<Polish>.338 HPBT</Polish> <Polish>.338 HPBT</Polish>
<Russian>.338 экспансивные</Russian> <Russian>.338 экспансивные</Russian>
<German>.338 HPBT</German> <German>.338 HPBT</German>
<Italian>.338 (HPBT)</Italian>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_338_300gr_HPBT_Mag_Description"> <Key ID="STR_ACE_10Rnd_338_300gr_HPBT_Mag_Description">
<English>Caliber: 8.6x70mm (300gr Sierra MatchKing HPBT)&lt;br /&gt;Rounds: 10</English> <English>Caliber: 8.6x70mm (300gr Sierra MatchKing HPBT)&lt;br /&gt;Rounds: 10</English>
@ -1092,6 +1181,7 @@
<Polish>Kaliber: 8,6x70mm (300gr Sierra MatchKing HPBT)&lt;br /&gt;Pociski: 10</Polish> <Polish>Kaliber: 8,6x70mm (300gr Sierra MatchKing HPBT)&lt;br /&gt;Pociski: 10</Polish>
<Russian>Калибр: 8,6x70mm (300 гран Sierra MatchKing экспансивные)&lt;br /&gt;Патронов: 10</Russian> <Russian>Калибр: 8,6x70mm (300 гран Sierra MatchKing экспансивные)&lt;br /&gt;Патронов: 10</Russian>
<German>Kaliber: 8,6x70mm (300gr Sierra MatchKing HPBT)&lt;br /&gt;Patronen: 10</German> <German>Kaliber: 8,6x70mm (300gr Sierra MatchKing HPBT)&lt;br /&gt;Patronen: 10</German>
<Italian>Calibro: 8.6x70mm (300gr Sierra MatchKing HPBT)&lt;br /&gt;Munizioni: 10</Italian>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_338_API526_Mag_Name"> <Key ID="STR_ACE_10Rnd_338_API526_Mag_Name">
<English>.338 10Rnd Mag (API526)</English> <English>.338 10Rnd Mag (API526)</English>
@ -1100,6 +1190,7 @@
<Polish>Magazynek .338 10rd (API526)</Polish> <Polish>Magazynek .338 10rd (API526)</Polish>
<Russian>Магазин из 10-ти .338 (API526)</Russian> <Russian>Магазин из 10-ти .338 (API526)</Russian>
<German>.338 10-Patronen-Magazin (API526)</German> <German>.338 10-Patronen-Magazin (API526)</German>
<Italian>.338 10Rnd Mag (API526)</Italian>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_338_API526_Mag_NameShort"> <Key ID="STR_ACE_10Rnd_338_API526_Mag_NameShort">
<English>.338 AP</English> <English>.338 AP</English>
@ -1108,6 +1199,7 @@
<Polish>.338 AP</Polish> <Polish>.338 AP</Polish>
<Russian>.338 AP</Russian> <Russian>.338 AP</Russian>
<German>.338 AP</German> <German>.338 AP</German>
<Italian>.338 AP</Italian>
</Key> </Key>
<Key ID="STR_ACE_10Rnd_338_API526_Mag_Description"> <Key ID="STR_ACE_10Rnd_338_API526_Mag_Description">
<English>Caliber: 8.6x70mm (API526)&lt;br /&gt;Rounds: 10</English> <English>Caliber: 8.6x70mm (API526)&lt;br /&gt;Rounds: 10</English>
@ -1116,6 +1208,7 @@
<Polish>Kaliber: 8,6x70mm (API526)&lt;br /&gt;Pociski: 10</Polish> <Polish>Kaliber: 8,6x70mm (API526)&lt;br /&gt;Pociski: 10</Polish>
<Russian>Калибр: 8,6x70 мм (API526)&lt;br /&gt;Патронов: 10</Russian> <Russian>Калибр: 8,6x70 мм (API526)&lt;br /&gt;Патронов: 10</Russian>
<German>Kaliber: 8,6x70mm (API526)&lt;br /&gt;Patronen: 10</German> <German>Kaliber: 8,6x70mm (API526)&lt;br /&gt;Patronen: 10</German>
<Italian>Calibro: 8.6x70mm (API526)&lt;br /&gt;Munizioni: 10</Italian>
</Key> </Key>
<Key ID="STR_ACE_5Rnd_127x99_Mag_Name"> <Key ID="STR_ACE_5Rnd_127x99_Mag_Name">
<English>12.7x99mm 5Rnd Mag</English> <English>12.7x99mm 5Rnd Mag</English>
@ -1124,6 +1217,7 @@
<Polish>Magazynek 12,7x99mm 5rd</Polish> <Polish>Magazynek 12,7x99mm 5rd</Polish>
<Russian>Магазин из 5-ти 12,7x99 мм</Russian> <Russian>Магазин из 5-ти 12,7x99 мм</Russian>
<German>12,7x99mm 5-Patronen-Magazin</German> <German>12,7x99mm 5-Patronen-Magazin</German>
<Italian>12.7x99mm 5Rnd Mag</Italian>
</Key> </Key>
<Key ID="STR_ACE_5Rnd_127x99_Mag_NameShort"> <Key ID="STR_ACE_5Rnd_127x99_Mag_NameShort">
<English>12.7mm</English> <English>12.7mm</English>
@ -1132,6 +1226,7 @@
<Polish>12,7mm</Polish> <Polish>12,7mm</Polish>
<Russian>12,7 мм</Russian> <Russian>12,7 мм</Russian>
<German>12,7mm</German> <German>12,7mm</German>
<Italian>12.7mm</Italian>
</Key> </Key>
<Key ID="STR_ACE_5Rnd_127x99_Mag_Description"> <Key ID="STR_ACE_5Rnd_127x99_Mag_Description">
<English>Caliber: 12.7x99mm&lt;br /&gt;Rounds: 5</English> <English>Caliber: 12.7x99mm&lt;br /&gt;Rounds: 5</English>
@ -1140,12 +1235,14 @@
<Polish>Kaliber: 12,7x99mm&lt;br /&gt;Pociski: 5</Polish> <Polish>Kaliber: 12,7x99mm&lt;br /&gt;Pociski: 5</Polish>
<Russian>Калибр: 12,7x99 мм&lt;br /&gt;Патронов: 5</Russian> <Russian>Калибр: 12,7x99 мм&lt;br /&gt;Патронов: 5</Russian>
<German>Kaliber: 12,7x99mm&lt;br /&gt;Patronen: 5</German> <German>Kaliber: 12,7x99mm&lt;br /&gt;Patronen: 5</German>
<Italian>Calibro: 12.7x99mm&lt;br /&gt;Munizioni: 5</Italian>
</Key> </Key>
<Key ID="STR_ACE_5Rnd_127x99_API_Mag_Name"> <Key ID="STR_ACE_5Rnd_127x99_API_Mag_Name">
<English>12.7x99mm API 5Rnd Mag</English> <English>12.7x99mm API 5Rnd Mag</English>
<French>Chargeur 12.7x99mm API 5Cps</French> <French>Chargeur 12.7x99mm API 5Cps</French>
<Spanish>Cargador de 5 balas de 12.7x99mm API</Spanish> <Spanish>Cargador de 5 balas de 12.7x99mm API</Spanish>
<Polish>Magazynek 12,7x99mm API 5rd</Polish> <Polish>Magazynek 12,7x99mm API 5rd</Polish>
<Italian>12.7x99mm API 5Rnd Mag</Italian>
<Russian>Магазин из 5-ти 12,7x99 мм (бронебойно-зажигательные)</Russian> <Russian>Магазин из 5-ти 12,7x99 мм (бронебойно-зажигательные)</Russian>
<German>12,7x99mm 5-Patronen-Magazin (API)</German> <German>12,7x99mm 5-Patronen-Magazin (API)</German>
</Key> </Key>
@ -1154,6 +1251,7 @@
<French>12.7mm API</French> <French>12.7mm API</French>
<Spanish>12.7mm API</Spanish> <Spanish>12.7mm API</Spanish>
<Polish>12,7mm API</Polish> <Polish>12,7mm API</Polish>
<Italian>12.7mm API</Italian>
<Russian>12.7 мм бронебойно-зажигательные</Russian> <Russian>12.7 мм бронебойно-зажигательные</Russian>
<German>12,7mm API</German> <German>12,7mm API</German>
</Key> </Key>
@ -1164,6 +1262,7 @@
<Polish>Kaliber: 12,7x99mm API&lt;br /&gt;Pociski: 5</Polish> <Polish>Kaliber: 12,7x99mm API&lt;br /&gt;Pociski: 5</Polish>
<Russian>Калибр: 12,7x99 мм бронебойно-зажигательные&lt;br /&gt;Патронов: 5</Russian> <Russian>Калибр: 12,7x99 мм бронебойно-зажигательные&lt;br /&gt;Патронов: 5</Russian>
<German>Kaliber:12,7x99mm API&lt;br /&gt;Patronen: 5</German> <German>Kaliber:12,7x99mm API&lt;br /&gt;Patronen: 5</German>
<Italian>Calibro: 12.7x99mm API&lt;br /&gt;Munizioni: 5</Italian>
</Key> </Key>
<Key ID="STR_ACE_5Rnd_127x99_AMAX_Mag_Name"> <Key ID="STR_ACE_5Rnd_127x99_AMAX_Mag_Name">
<English>12.7x99mm 5Rnd Mag (AMAX)</English> <English>12.7x99mm 5Rnd Mag (AMAX)</English>
@ -1172,6 +1271,7 @@
<Polish>Magazynek 12,7x99mm 5rd (AMAX)</Polish> <Polish>Magazynek 12,7x99mm 5rd (AMAX)</Polish>
<Russian>Магазин из 5-ти 12,7x99 мм (A-MAX)</Russian> <Russian>Магазин из 5-ти 12,7x99 мм (A-MAX)</Russian>
<German>12,7x99mm 5-Patronen-Magazin (AMAX)</German> <German>12,7x99mm 5-Patronen-Magazin (AMAX)</German>
<Italian>12.7x99mm 5Rnd Mag (AMAX)</Italian>
</Key> </Key>
<Key ID="STR_ACE_5Rnd_127x99_AMAX_Mag_NameShort"> <Key ID="STR_ACE_5Rnd_127x99_AMAX_Mag_NameShort">
<English>12.7mm</English> <English>12.7mm</English>
@ -1180,6 +1280,7 @@
<Polish>12,7mm</Polish> <Polish>12,7mm</Polish>
<Russian>12,7 мм</Russian> <Russian>12,7 мм</Russian>
<German>12,7mm</German> <German>12,7mm</German>
<Italian>12.7mm</Italian>
</Key> </Key>
<Key ID="STR_ACE_5Rnd_127x99_AMAX_Mag_Description"> <Key ID="STR_ACE_5Rnd_127x99_AMAX_Mag_Description">
<English>Caliber: 12.7x99mm (AMAX)&lt;br /&gt;Rounds: 5</English> <English>Caliber: 12.7x99mm (AMAX)&lt;br /&gt;Rounds: 5</English>
@ -1187,6 +1288,7 @@
<Spanish>Calibre: 12.7x99mm (AMAX)&lt;br /&gt;Balas: 5</Spanish> <Spanish>Calibre: 12.7x99mm (AMAX)&lt;br /&gt;Balas: 5</Spanish>
<Polish>Kaliber: 12,7x99mm (AMAX)&lt;br /&gt;Pociski: 5</Polish> <Polish>Kaliber: 12,7x99mm (AMAX)&lt;br /&gt;Pociski: 5</Polish>
<Russian>Калибр: 12,7x99 мм (A-MAX)&lt;br /&gt;Патронов: 5</Russian> <Russian>Калибр: 12,7x99 мм (A-MAX)&lt;br /&gt;Патронов: 5</Russian>
<Italian>Calibro: 12.7x99mm (AMAX)&lt;br /&gt;Munizioni: 5</Italian>
<German>Kaliber:12,7x99mm (AMAX)&lt;br /&gt;Patronen: 5</German> <German>Kaliber:12,7x99mm (AMAX)&lt;br /&gt;Patronen: 5</German>
</Key> </Key>
</Package> </Package>

View File

@ -119,6 +119,7 @@
<Polish>Ekwipunek rewidowanej osoby</Polish> <Polish>Ekwipunek rewidowanej osoby</Polish>
<Russian>Инвентарь обысканного человека</Russian> <Russian>Инвентарь обысканного человека</Russian>
<Portuguese>Inventário da pessoa revistada</Portuguese> <Portuguese>Inventário da pessoa revistada</Portuguese>
<Italian>Inventario delle persone perquisite</Italian>
</Key> </Key>
<Key ID="STR_ACE_Captives_FriskPerson"> <Key ID="STR_ACE_Captives_FriskPerson">
<English>Frisk person</English> <English>Frisk person</English>

View File

@ -227,6 +227,7 @@ GVAR(OldIsCamera) = false;
["displayTextStructured", FUNC(displayTextStructured)] call FUNC(addEventhandler); ["displayTextStructured", FUNC(displayTextStructured)] call FUNC(addEventhandler);
["displayTextPicture", FUNC(displayTextPicture)] call FUNC(addEventhandler); ["displayTextPicture", FUNC(displayTextPicture)] call FUNC(addEventhandler);
["medical_onUnconscious", {if (local (_this select 0) && {!(_this select 1)}) then {[ _this select 0, false, QUOTE(FUNC(loadPerson)), west /* dummy side */] call FUNC(switchToGroupSide);};}] call FUNC(addEventhandler);
["notOnMap", {!visibleMap}] call FUNC(addCanInteractWithCondition); ["notOnMap", {!visibleMap}] call FUNC(addCanInteractWithCondition);
["isNotInside", { ["isNotInside", {

View File

@ -1,59 +1,44 @@
/** /*
* fn_unloadPerson_f.sqf * Author: Glowbal
* @Descr: Unload a person from a vehicle * Unload a person from a vehicle
* @Author: Glowbal
* *
* @Arguments: [caller OBJECT, unit OBJECT] * Arguments:
* @Return: BOOL Returns true if succesfully unloaded person * 0: unit <OBJECT>
* @PublicAPI: true *
* Return Value:
* Returns true if succesfully unloaded person <BOOL>
*
* Public: No
*/ */
#include "script_component.hpp" #include "script_component.hpp"
#define GROUP_SWITCH_ID QUOTE(FUNC(loadPerson)) #define GROUP_SWITCH_ID QUOTE(FUNC(loadPerson))
private ["_caller", "_unit","_vehicle", "_loaded"]; private ["_unit","_vehicle", "_loaded", "_emptyPos"];
_caller = [_this, 0, ObjNull,[ObjNull]] call BIS_fnc_Param; _unit = _this select 0;
_unit = [_this, 1, ObjNull,[ObjNull]] call BIS_fnc_Param;
_vehicle = vehicle _unit; _vehicle = vehicle _unit;
if (_vehicle == _unit) exitwith {false;}; if (_vehicle == _unit) exitwith {false;};
if !(speed _vehicle <1 && (((getpos _vehicle) select 2) < 2)) exitwith {false;}; if !(speed _vehicle <1 && (((getpos _vehicle) select 2) < 2)) exitwith {false;};
if (!([_caller] call FUNC(isAwake))) exitwith{false;};
moveOut _unit; _emptyPos = ((getPos _vehicle) findEmptyPosition [0, 10, typeof _unit]);
if (count _emptyPos == 0) exitwith {false};
_unit setPos _emptyPos;
unassignVehicle _unit; unassignVehicle _unit;
if (!alive _unit) then { if (!alive _unit) then {
_unit action ["Eject", vehicle _unit]; _unit action ["Eject", vehicle _unit];
}; };
[_unit, false, GROUP_SWITCH_ID, side group _caller] call FUNC(switchToGroupSide); [_unit, false, GROUP_SWITCH_ID, side group _unit] call FUNC(switchToGroupSide);
_loaded = _vehicle getvariable [QGVAR(loaded_persons),[]]; _loaded = _vehicle getvariable [QGVAR(loaded_persons),[]];
_loaded = _loaded - [_unit]; _loaded = _loaded - [_unit];
_vehicle setvariable [QGVAR(loaded_persons),_loaded,true]; _vehicle setvariable [QGVAR(loaded_persons),_loaded,true];
if (!([_unit] call FUNC(isAwake))) then { if (!([_unit] call FUNC(isAwake))) then {
_handle = [_unit,_vehicle] spawn { [_unit,([_unit] call FUNC(getDeathAnim)), 1, true] call FUNC(doAnimation);
private ["_unit","_vehicle"];
_unit = _this select 0;
_vehicle = _this select 1;
waituntil {vehicle _unit != _vehicle};
[_unit,([_unit] call FUNC(getDeathAnim)), 1, true] call FUNC(doAnimation);
[format["Unit should move into death anim: %1", _unit]] call FUNC(debug);
};
} else {
if ([_unit] call FUNC(isArrested)) then {
_handle = [_unit,_vehicle] spawn {
_unit = _this select 0;
_vehicle = _this select 1;
waituntil {vehicle _unit != _vehicle};
[_unit,"UnaErcPoslechVelitele2", 1] call FUNC(doAnimation);
[format["Unit should move into arrested anim: %1", _unit]] call FUNC(debug);
};
} else {
[format["Unit should move into normal anim: %1", _unit]] call FUNC(debug);
};
}; };
true; true;

View File

@ -60,7 +60,7 @@ GVAR(disarmTarget) = _target;
//Setup PFEH //Setup PFEH
[{ [{
private ["_groundContainer", "_targetContainer", "_playerName", "_rankPicture", "_rankIndex", "_targetUniqueItems", "_holderUniqueItems"]; private ["_groundContainer", "_targetContainer", "_playerName", "_rankPicture", "_rankIndex", "_targetUniqueItems", "_holderUniqueItems", "_holder"];
disableSerialization; disableSerialization;
EXPLODE_2_PVT(_this,_args,_pfID); EXPLODE_2_PVT(_this,_args,_pfID);
EXPLODE_3_PVT(_args,_player,_target,_display); EXPLODE_3_PVT(_args,_player,_target,_display);

View File

@ -22,4 +22,4 @@ if !([_unit, _target, []] call EFUNC(common,canInteractWith)) exitWith {false};
// a static weapon has to be empty for dragging // a static weapon has to be empty for dragging
if ((typeOf _target) isKindOf "StaticWeapon" && {count crew _target > 0}) exitWith {false}; if ((typeOf _target) isKindOf "StaticWeapon" && {count crew _target > 0}) exitWith {false};
alive _target && {_target getVariable [QGVAR(canCarry), false]} && {animationState _target in ["", "unconscious"] || (_target getvariable ["ACE_isUnconscious", false]) || (_target isKindOf "CAManBase" && {(_target getHitPointDamage "HitLegs") > 0.4})} alive _target && {vehicle _target == _target} && {_target getVariable [QGVAR(canCarry), false]} && {animationState _target in ["", "unconscious"] || (_target getvariable ["ACE_isUnconscious", false]) || (_target isKindOf "CAManBase" && {(_target getHitPointDamage "HitLegs") > 0.4})}

View File

@ -22,4 +22,4 @@ if !([_unit, _target, []] call EFUNC(common,canInteractWith)) exitWith {false};
// a static weapon has to be empty for dragging // a static weapon has to be empty for dragging
if ((typeOf _target) isKindOf "StaticWeapon" && {count crew _target > 0}) exitWith {false}; if ((typeOf _target) isKindOf "StaticWeapon" && {count crew _target > 0}) exitWith {false};
alive _target && {_target getVariable [QGVAR(canDrag), false]} && {animationState _target in ["", "unconscious"] || (_target getvariable ["ACE_isUnconscious", false]) || (_target isKindOf "CAManBase" && {(_target getHitPointDamage "HitLegs") > 0.4})}; alive _target && {vehicle _target == _target} && {_target getVariable [QGVAR(canDrag), false]} && {animationState _target in ["", "unconscious"] || (_target getvariable ["ACE_isUnconscious", false]) || (_target isKindOf "CAManBase" && {(_target getHitPointDamage "HitLegs") > 0.4})};

View File

@ -0,0 +1,8 @@
class ACE_Settings {
class GVAR(enabled) {
displayName = "Frag System";
description = "Enables the shrapnel system for explosives";
typeName = "BOOL";
value = 1;
};
};

View File

@ -9,7 +9,7 @@ class CfgAmmo {
// GVAR(skip) = 1; // GVAR(skip) = 1;
//}; //};
class Bo_GBU12_LGB; class Bo_GBU12_LGB;
class Nou_GBU12 : Bo_GBU12_LGB { class ACE_GBU12 : Bo_GBU12_LGB {
GVAR(classes)[] = {"ACE_frag_large", "ACE_frag_large", "ACE_frag_large_HD", "ACE_frag_large", "ACE_frag_huge", "ACE_frag_huge_HD", "ACE_frag_huge"}; GVAR(classes)[] = {"ACE_frag_large", "ACE_frag_large", "ACE_frag_large_HD", "ACE_frag_large", "ACE_frag_huge", "ACE_frag_huge_HD", "ACE_frag_huge"};
GVAR(metal) = 140000; GVAR(metal) = 140000;
GVAR(charge) = 87000; GVAR(charge) = 87000;
@ -44,10 +44,14 @@ class CfgAmmo {
}; };
class RocketBase; class RocketBase;
//class R_Hydra_HE: RocketBase { class R_Hydra_HE: RocketBase {
// GVAR(skip) = 1; // Source: http://fas.org/man/dod-101/sys/missile/hydra-70.htm
//}; GVAR(classes)[] = {"ACE_frag_medium", "ACE_frag_medium_HD"};
GVAR(metal) = 3850;
GVAR(charge) = 1040;
GVAR(gurney_c) = 2700;
GVAR(gurney_k) = 1/2;
};
//class R_57mm_HE: RocketBase { //class R_57mm_HE: RocketBase {
// GVAR(skip) = 1; // GVAR(skip) = 1;
//}; //};
@ -69,25 +73,26 @@ class CfgAmmo {
GVAR(gurney_k) = 1/2; GVAR(gurney_k) = 1/2;
}; };
class G_40mm_HEDP: GrenadeBase {
class G_40mm_HE: GrenadeBase { // Source: http://www.inetres.com/gp/military/infantry/grenade/40mm_ammo.html#M433
GVAR(skip) = 0;
GVAR(force) = 1;
};
class ACE_G_40mm_HEDP: G_40mm_HE {
GVAR(classes)[] = {"ACE_frag_tiny_HD"}; GVAR(classes)[] = {"ACE_frag_tiny_HD"};
GVAR(metal) = 200; GVAR(metal) = 200;
GVAR(charge) = 45; GVAR(charge) = 45;
GVAR(gurney_c) = 2830; GVAR(gurney_c) = 2830;
GVAR(gurney_k) = 3/5; GVAR(gurney_k) = 1/2;
}; };
class ACE_G_40mm_HE: ACE_G_40mm_HEDP { class G_40mm_HE: GrenadeBase {
// Source: http://www.inetres.com/gp/military/infantry/grenade/40mm_ammo.html#M441
GVAR(classes)[] = {"ACE_frag_tiny_HD"}; GVAR(classes)[] = {"ACE_frag_tiny_HD"};
GVAR(metal) = 200; GVAR(metal) = 200;
GVAR(charge) = 32; GVAR(charge) = 32;
GVAR(gurney_c) = 2700; GVAR(gurney_c) = 2700;
GVAR(gurney_k) = 3/5; GVAR(gurney_k) = 1/2;
};
class ACE_G_40mm_HEDP: G_40mm_HEDP {
};
class ACE_G_40mm_HE: G_40mm_HE {
}; };
class ACE_G_40mm_Practice: ACE_G_40mm_HE { class ACE_G_40mm_Practice: ACE_G_40mm_HE {
GVAR(skip) = 1; GVAR(skip) = 1;
@ -99,12 +104,13 @@ class CfgAmmo {
// curator ammo entries // curator ammo entries
class ShellBase; class ShellBase;
class Sh_125mm_HEAT;
class Sh_82mm_AMOS : ShellBase { class Sh_82mm_AMOS : ShellBase {
// Source: http://www.arsenal-bg.com/defense_police/mortar_bombs_82mm.htm // Source: http://www.arsenal-bg.com/defense_police/mortar_bombs_82mm.htm
GVAR(classes)[] = {"ACE_frag_medium", "ACE_frag_medium_HD"}; GVAR(classes)[] = {"ACE_frag_medium", "ACE_frag_medium_HD"};
GVAR(metal) = 3200; GVAR(metal) = 3200;
GVAR(charge) = 420; GVAR(charge) = 420;
GVAR(gurney_c) = 1906; GVAR(gurney_c) = 2440;
GVAR(gurney_k) = 1/2; GVAR(gurney_k) = 1/2;
}; };
class ModuleOrdnanceMortar_F_Ammo: Sh_82mm_AMOS { class ModuleOrdnanceMortar_F_Ammo: Sh_82mm_AMOS {
@ -114,13 +120,33 @@ class CfgAmmo {
GVAR(gurney_c) = 2320; GVAR(gurney_c) = 2320;
GVAR(gurney_k) = 1/2; GVAR(gurney_k) = 1/2;
}; };
class Sh_105mm_HEAT_MP : Sh_125mm_HEAT {
GVAR(classes)[] = {"ACE_frag_medium", "ACE_frag_medium_HD"};
GVAR(metal) = 11400;
GVAR(charge) = 7100;
GVAR(gurney_c) = 2800;
GVAR(gurney_k) = 1/2;
};
class Sh_120mm_HE : ShellBase {
GVAR(classes)[] = {"ACE_frag_medium", "ACE_frag_medium_HD"};
GVAR(metal) = 23000;
GVAR(charge) = 3148;
GVAR(gurney_c) = 2830;
GVAR(gurney_k) = 1/2;
};
class Sh_125mm_HE: Sh_120mm_HE {
GVAR(classes)[] = {"ACE_frag_medium", "ACE_frag_medium_HD"};
GVAR(metal) = 16000;
GVAR(charge) = 3200;
GVAR(gurney_c) = 2440;
GVAR(gurney_k) = 1/2;
};
class Sh_155mm_AMOS: ShellBase { class Sh_155mm_AMOS: ShellBase {
// Source: http://www.globalsecurity.org/military/systems/munitions/m795.htm // Source: http://www.globalsecurity.org/military/systems/munitions/m795.htm
GVAR(classes)[] = {"ACE_frag_large", "ACE_frag_large", "ACE_frag_large_HD", "ACE_frag_large", "ACE_frag_huge", "ACE_frag_huge_HD", "ACE_frag_huge"}; GVAR(classes)[] = {"ACE_frag_large", "ACE_frag_large", "ACE_frag_large_HD", "ACE_frag_large", "ACE_frag_huge", "ACE_frag_huge_HD", "ACE_frag_huge"};
GVAR(metal) = 36000; GVAR(metal) = 36000;
GVAR(charge) = 9979; GVAR(charge) = 9979;
GVAR(gurney_c) = 1906; GVAR(gurney_c) = 2440;
GVAR(gurney_k) = 1/2; GVAR(gurney_k) = 1/2;
}; };
class ModuleOrdnanceHowitzer_F_ammo: Sh_155mm_AMOS { class ModuleOrdnanceHowitzer_F_ammo: Sh_155mm_AMOS {
@ -146,11 +172,23 @@ class CfgAmmo {
// GVAR(multiplier) = 1.2; // GVAR(multiplier) = 1.2;
//}; //};
//class MissileBase; class MissileBase;
//class M_Hellfire_AT: MissileBase { class Missile_AGM_02_F : MissileBase {
// GVAR(force) = 1; // Source: http://fas.org/man/dod-101/sys/smart/agm-65.htm
// GVAR(multiplier) = 1.75; GVAR(classes)[] = {"ACE_frag_medium", "ACE_frag_medium_HD"};
//}; GVAR(metal) = 56250;
GVAR(charge) = 39000;
GVAR(gurney_c) = 2700;
GVAR(gurney_k) = 1/2;
};
class M_Hellfire_AT: MissileBase {
// Source: http://www.designation-systems.net/dusrm/m-114.html
GVAR(classes)[] = {"ACE_frag_medium", "ACE_frag_medium_HD"};
GVAR(metal) = 8000;
GVAR(charge) = 2400;
GVAR(gurney_c) = 2700;
GVAR(gurney_k) = 1/2;
};
/* /*
class B_762x51_Ball; class B_762x51_Ball;

View File

@ -1,12 +1,12 @@
class Extended_PreInit_EventHandlers { class Extended_PreInit_EventHandlers {
class ADDON { class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_pre_init)); init = QUOTE(call COMPILE_FILE(XEH_preInit));
}; };
}; };
class Extended_PostInit_EventHandlers { class Extended_PostInit_EventHandlers {
class ADDON { class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_post_init)); init = QUOTE(call COMPILE_FILE(XEH_postInit));
}; };
}; };

View File

@ -0,0 +1,5 @@
#include "script_component.hpp"
if(isServer) then {
[QGVAR(frag_eh), { _this call FUNC(frago); }] call ace_common_fnc_addEventHandler;
};

View File

@ -1,18 +0,0 @@
#include "script_component.hpp"
if(isServer) then {
[QGVAR(frag_eh), { _this call FUNC(frago); }] call ace_common_fnc_addEventHandler;
};
/*
GVAR(replacedBisArtyWrapper) = false;
[] spawn {
waitUntil {
if(!(isNil "BIS_ARTY_F_ShellFlight")) then {
ACE_WRAPPER_BIS_ARTY_F_ShellFlight = BIS_ARTY_F_ShellFlight;
BIS_ARTY_F_ShellFlight = FUNC(BIS_ARTY_WRAPPER);
GVAR(replacedBisArtyWrapper) = true;
};
sleep 4;
GVAR(replacedBisArtyWrapper)
};
};
*/

View File

@ -1,48 +1,35 @@
#include "script_component.hpp" #include "script_component.hpp"
ADDON = false; ADDON = false;
PREP(doSpall);
PREP(fired); PREP(fired);
PREP(frago); PREP(frago);
PREP(trackFragRound);
PREP(spallTrack); PREP(spallTrack);
PREP(doSpall); PREP(trackFragRound);
PREP(vectorDiffFast);
GVAR(trackedObjects) = [];
GVAR(blackList) = []; GVAR(blackList) = [];
GVAR(traceFrags) = false; GVAR(traceFrags) = false;
GVAR(trackedObjects) = [];
GVAR(replacedBisArtyWrapper) = true;
GVAR(TOTALFRAGS) = 0; GVAR(TOTALFRAGS) = 0;
GVAR(spallIsTrackingCount) = 0;
GVAR(spallHPData) = []; GVAR(spallHPData) = [];
GVAR(spallIsTrackingCount) = 0;
GVAR(autoTrace) = true;
GVAR(traceID) = -1;
GVAR(traces) = []; GVAR(traces) = [];
GVAR(tracesStarted) = false; GVAR(tracesStarted) = false;
GVAR(traceID) = -1;
GVAR(autoTrace) = true;
// TODO setting
GVAR(enabled) = true;
// * Other Shit */ // * Other Shit */
PREP(frag_trace); PREP(addBlackList);
PREP(denyFrag);
PREP(BIS_ARTY_WRAPPER);
PREP(startTracing);
PREP(stopTracing);
PREP(clearTraces);
PREP(trackTrace);
PREP(addTrack); PREP(addTrack);
PREP(drawTraces); PREP(drawTraces);
PREP(removeTrack); PREP(removeTrack);
PREP(spallHP); PREP(spallHP);
PREP(addBlackList); PREP(startTracing);
PREP(addManualTrack); PREP(stopTracing);
PREP(trackTrace);
ADDON = true; ADDON = true;

View File

@ -10,7 +10,6 @@ class CfgPatches {
}; };
}; };
//PRELOAD_ADDONS;
#include "CfgEventhandlers.hpp" #include "CfgEventhandlers.hpp"
#include "CfgAmmo.hpp" #include "CfgAmmo.hpp"
#include "ACE_Settings.hpp"

View File

@ -1,13 +0,0 @@
#include "script_component.hpp"
_ret = [(_this select 6)] call FUNC(removeTrack);
if(!_ret) then {
[(_this select 6)] call FUNC(addBlackList);
};
_this call ACE_WRAPPER_BIS_ARTY_F_ShellFlight;
_catEntry = BIS_ARTY_SHELLCAT select ((count BIS_ARTY_SHELLCAT) - 1);
_shell = _catEntry select 0;
_ARTY_DeployOnImpact = getText (configFile >> "CfgAmmo" >> "ARTY_DeployOnImpact");
if(_ARTY_DeployOnImpact == "") then {
_this set[6, _shell];
_this call FUNC(fired);
};

View File

@ -1,7 +0,0 @@
#include "script_component.hpp"
private ["_round"];
_round = _this select 0;
if(alive _round) then {
GVAR(trackedObjects) set[(count GVAR(trackedObjects)), _round];
[DFUNC(trackFragRound), 0, [_round, (getPosASL _round), (velocity _round), (typeOf _round), time, objNull, false, 0, 0]] call cba_fnc_addPerFrameHandler;
};

View File

@ -1,5 +1,8 @@
#include "script_component.hpp" #include "script_component.hpp"
if(GVAR(autoTrace)) then {
private ["_color", "_data", "_index", "_obj", "_objSpd", "_origin", "_positions"];
if (GVAR(autoTrace)) then {
[] call FUNC(startTracing); [] call FUNC(startTracing);
}; };
@ -12,9 +15,9 @@ if((count _this) > 2) then {
_color = _this select 2; _color = _this select 2;
}; };
_positions = []; _positions = [];
_objVel = velocity _obj; _objSpd = vectorMagnitude (velocity _obj);
_objTVel = sqrt((_objVel select 0)^2 + (_objVel select 1)^2 + (_objVel select 2)^2); _positions set[(count _positions), [(getPos _obj), _objSpd]];
_positions set[(count _positions), [(getPos _obj), _objTVel]]; _data = [_origin, typeOf _origin, typeOf _obj, _objSpd, _positions, _color];
_data = [_origin, typeOf _origin, typeOf _obj, _objTVel, _positions, _color];
GVAR(traces) set[_index, _data]; GVAR(traces) set[_index, _data];
[DFUNC(trackTrace), 0, [_obj, _index, time]] call cba_fnc_addPerFrameHandler; [DFUNC(trackTrace), 0, [_obj, _index, time]] call cba_fnc_addPerFrameHandler;

View File

@ -1,2 +0,0 @@
#include "script_component.hpp"
GVAR(traces) = [];

View File

@ -1,7 +0,0 @@
#include "script_component.hpp"
private ["_ret"];
_ret = [(_this select 0)] call FUNC(removeTrack);
if(!_ret) then {
[(_this select 0)] call FUNC(addBlackList);
};

View File

@ -8,8 +8,7 @@ private ["_params", "_initialData", "_hpData", "_roundType", "_round", "_object"
"_idh", "_alive", "_exit", "_vm", "_velocity", "_unitDir", "_oldVelocity", "_curVelocity", "_diff", "_polar", "_idh", "_alive", "_exit", "_vm", "_velocity", "_unitDir", "_oldVelocity", "_curVelocity", "_diff", "_polar",
"_pos", "_spallPos", "_i", "_pos1", "_pos2", "_blah", "_data", "_spallPolar", "_c", "_warn", "_m", "_k", "_pos", "_spallPos", "_i", "_pos1", "_pos2", "_blah", "_data", "_spallPolar", "_c", "_warn", "_m", "_k",
"_gC", "_shellType", "_fragPower", "_spread", "_spallCount", "_elev", "_dir", "_vel", "_spallFragVect", "_gC", "_shellType", "_fragPower", "_spread", "_spallCount", "_elev", "_dir", "_vel", "_spallFragVect",
"_fragment"]; "_fragment", "_index", "_hitData", "_fragTypes", "_fragType", "_foundObjects"];
_params = _this select 0; _params = _this select 0;
[(_this select 1)] call cba_fnc_removePerFrameHandler; [(_this select 1)] call cba_fnc_removePerFrameHandler;
@ -45,8 +44,8 @@ if(_alive || {_caliber >= 2.5} || {(_explosive > 0 && {_idh >= 1})}) then {
_vm = 1; _vm = 1;
_velocity = _initialData select 5; _velocity = _initialData select 5;
_oldVelocity = _velocity call BIS_fnc_magnitude; _oldVelocity = vectorMagnitude _velocity;
_curVelocity = (velocity _round) call BIS_fnc_magnitude; _curVelocity = vectorMagnitude (velocity _round);
if(alive _round) then { if(alive _round) then {
_diff = _velocity vectorDiff (velocity _round); _diff = _velocity vectorDiff (velocity _round);
@ -66,16 +65,8 @@ if(_alive || {_caliber >= 2.5} || {(_explosive > 0 && {_idh >= 1})}) then {
_pos = _hpData select 3; _pos = _hpData select 3;
_spallPos = nil; _spallPos = nil;
for "_i" from 0 to 100 do { for "_i" from 0 to 100 do {
_pos1 = [ _pos1 = _pos vectorAdd (_unitDir vectorMultiply (0.01 * _i));
(_pos select 0) + (((_unitDir select 0)*0.01)*_i), _pos2 = _pos vectorAdd (_unitDir vectorMultiply (0.01 * (_i + 1)));
(_pos select 1) + (((_unitDir select 1)*0.01)*_i),
(_pos select 2) + (((_unitDir select 2)*0.01)*_i)
];
_pos2 = [
(_pos select 0) + (((_unitDir select 0)*0.01)*(_i+1)),
(_pos select 1) + (((_unitDir select 1)*0.01)*(_i+1)),
(_pos select 2) + (((_unitDir select 2)*0.01)*(_i+1))
];
// _blah = [_object, "FIRE"] intersect [_object worldToModel (ASLtoATL _pos1), _object worldToModel (ASLtoATL _pos2)]; // _blah = [_object, "FIRE"] intersect [_object worldToModel (ASLtoATL _pos1), _object worldToModel (ASLtoATL _pos2)];
// diag_log text format["b: %1", _blah]; // diag_log text format["b: %1", _blah];

View File

@ -1,13 +1,13 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_color", "_index", "_lastPos", "_lastSpd", "_max", "_positions", "_startSpeed"];
{ {
_positions = _x select 4; _positions = _x select 4;
_color = _x select 5; _color = _x select 5;
_index = 0; _index = 0;
_max = count _positions; _max = count _positions;
_startSpeed = (_positions select 0) select 1; _startSpeed = 0.01 max ((_positions select 0) select 1);
if(_startSpeed <= 0) then {
_startSpeed = 0.01;
};
_lastSpd = []; _lastSpd = [];
_lastPos = []; _lastPos = [];
while {_index < _max} do { while {_index < _max} do {

View File

@ -1,6 +1,8 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_gun", "_type", "_round", "_doFragTrack", "_doSpall"];
if !(!isNil QGVAR(enabled) && {GVAR(enabled)}) exitWith {}; private ["_gun", "_type", "_round", "_doFragTrack", "_doSpall", "_spallTrack", "_spallTrackID"];
if (!GVAR(enabled)) exitWith {};
_gun = _this select 0; _gun = _this select 0;
_type = _this select 4; _type = _this select 4;

View File

@ -1,10 +0,0 @@
#include "script_component.hpp"
private ["_params", "_shell"];
_params = _this select 0;
_shell = _params select 0;
if(alive _shell) then {
drop ["\Ca\Data\Cl_basic","","Billboard",1,30,(getPos _shell),[0,0,0],1,1.275,1.0,0.0,[0.5],[[0,1,0,1]],[0],0.0,2.0,"","",""];
} else {
[_this select 1] call cba_fnc_removePerFrameHandler;
};

View File

@ -14,7 +14,7 @@ private ["_round", "_lastPos", "_lastVel", "_shellType", "_gun", "_fragTypes", "
"_manObjects", "_objects", "_crew", "_fragCount", "_fragArcs", "_doRandom", "_target", "_boundingBox", "_manObjects", "_objects", "_crew", "_fragCount", "_fragArcs", "_doRandom", "_target", "_boundingBox",
"_targetPos", "_distance", "_add", "_bbX", "_bbY", "_bbZ", "_cubic", "_targetVel", "_baseVec", "_dir", "_targetPos", "_distance", "_add", "_bbX", "_bbY", "_bbZ", "_cubic", "_targetVel", "_baseVec", "_dir",
"_currentCount", "_count", "_vecVar", "_i", "_vec", "_fp", "_vel", "_fragType", "_fragObj", "_randomCount", "_currentCount", "_count", "_vecVar", "_i", "_vec", "_fp", "_vel", "_fragType", "_fragObj", "_randomCount",
"_sectorSize", "_sectorOffset", "_randomDir"]; "_sectorSize", "_sectorOffset", "_randomDir", "_endTime"];
_round = _this select 0; _round = _this select 0;
@ -159,11 +159,7 @@ if(_isArmed && (count _objects) > 0) then {
_vec set[2, (_vec select 2)-(_vecVar/2)+(random _vecVar)]; _vec set[2, (_vec select 2)-(_vecVar/2)+(random _vecVar)];
_fp = (_fragPower-(random (_fragPowerRandom))); _fp = (_fragPower-(random (_fragPowerRandom)));
_vel = [ _vel = _vec vectorMultiply _fp;
(_vec select 0)*_fp,
(_vec select 1)*_fp,
(_vec select 2)*_fp
];
_fragType = round (random ((count _fragTypes)-1)); _fragType = round (random ((count _fragTypes)-1));
_fragObj = (_fragTypes select _fragType) createVehicleLocal [0,0,10000]; _fragObj = (_fragTypes select _fragType) createVehicleLocal [0,0,10000];
@ -201,11 +197,7 @@ if(_isArmed && (count _objects) > 0) then {
_fp = (_fragPower-(random (_fragPowerRandom))); _fp = (_fragPower-(random (_fragPowerRandom)));
_vel = [ _vel = _vec vectorMultiply _fp;
(_vec select 0)*_fp,
(_vec select 1)*_fp,
(_vec select 2)*_fp
];
_fragType = round (random ((count _fragTypes)-1)); _fragType = round (random ((count _fragTypes)-1));
_fragObj = (_fragTypes select _fragType) createVehicleLocal [0,0,10000]; _fragObj = (_fragTypes select _fragType) createVehicleLocal [0,0,10000];

View File

@ -1,15 +1,15 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_initialData", "_currentCount", "_hpData", "_round", "_hpRound"]; private ["_initialData", "_hpData", "_round", "_hpRound", "_hpDirect"];
//player sideChat format["f: %1 c: %2", (_this select 0), (count GVAR(spallHPData))]; //player sideChat format["f: %1 c: %2", (_this select 0), (count GVAR(spallHPData))];
if((_this select 0) <= (count GVAR(spallHPData))) then {
if ((_this select 0) <= (count GVAR(spallHPData))) then {
_initialData = GVAR(spallHPData) select (_this select 0); _initialData = GVAR(spallHPData) select (_this select 0);
if(!isNil "_initialData") then { if (!isNil "_initialData") then {
_hpRound = ((_this select 1) select 0) select 2; _hpRound = ((_this select 1) select 0) select 2;
_round = _initialData select 3; _round = _initialData select 3;
_hpDirect = ((_this select 1) select 0) select 10; _hpDirect = ((_this select 1) select 0) select 10;
if(_hpDirect && {_round == _hpRound}) then { if (_hpDirect && {_round == _hpRound}) then {
{ {
_hpData = _x; _hpData = _x;
_round = _initialData select 3; _round = _initialData select 3;

View File

@ -1,30 +1,22 @@
//fnc_spallTrack.sqf //fnc_spallTrack.sqf
#include "script_component.hpp" #include "script_component.hpp"
private ["_params", "_round", "_multiplier", "_delta", "_curPos", "_velocity", "_velocityStep", "_forwardPos", "_intersectsWith", "_index", "_i", "_test", "_hpId", "_data"];
// setAccTime 0; private ["_round", "_multiplier", "_foundObjects", "_foundObjectHPIds", "_delta", "_curPos", "_velocity", "_velocityStep", "_forwardPos", "_intersectsWith", "_index", "_hpId", "_data"];
_round = _this select 0; _round = _this select 0;
_multiplier = _this select 1; _multiplier = _this select 1;
_foundObjects = _this select 2; _foundObjects = _this select 2;
_foundObjectHPIds = _this select 3; _foundObjectHPIds = _this select 3;
_delta = (1/diag_fps)*_multiplier; _delta = (1/diag_fps) * _multiplier;
_curPos = getPosASL _round; _curPos = getPosASL _round;
_velocity = velocity _round; _velocity = velocity _round;
_velocityStep = [ _velocityStep = _velocity vectorMultiply _delta;
(_velocity select 0)*_delta, _forwardPos = _curPos vectorAdd _velocityStep;
(_velocity select 1)*_delta,
(_velocity select 2)*_delta
];
_forwardPos = [
(_curPos select 0) + (_velocityStep select 0),
(_curPos select 1) + (_velocityStep select 1),
(_curPos select 2) + (_velocityStep select 2)
];
_intersectsWith = lineIntersectsWith [_curPos, _forwardPos]; _intersectsWith = lineIntersectsWith [_curPos, _forwardPos];
if(count _intersectsWith > 0) then { if (count _intersectsWith > 0) then {
// player sideChat format["inter: %1", _intersectsWith]; // player sideChat format["inter: %1", _intersectsWith];
{ {
if(!(_x in _foundObjects)) then { if(!(_x in _foundObjects)) then {

View File

@ -1,6 +1,6 @@
//fnc_trackFragRound.sqf //fnc_trackFragRound.sqf
#include "script_component.hpp" #include "script_component.hpp"
private ["_params", "_round", "_lastPos", "_lastVel", "_type", "_time", "_doSpall", "_skip", "_explosive", "_indirectRange", "_force", "_fragPower"]; private ["_params", "_round", "_lastPos", "_lastVel", "_type", "_time", "_doSpall", "_spallTrack", "_foundObjectHPIds", "_skip", "_explosive", "_indirectRange", "_force", "_fragPower"];
_params = _this select 0; _params = _this select 0;
_round = _params select 0; _round = _params select 0;
_lastPos = _params select 1; _lastPos = _params select 1;

View File

@ -1,14 +1,14 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_params", "_tracerObj", "_index", "_positions", "_data"];
_params = _this select 0; _params = _this select 0;
_tracerObj = _params select 0; _tracerObj = _params select 0;
_index = _params select 1; _index = _params select 1;
if(alive _tracerObj && (count GVAR(traces)) > 0) then { if (alive _tracerObj && (count GVAR(traces)) > 0) then {
_data = GVAR(traces) select _index; _data = GVAR(traces) select _index;
_positions = _data select 4; _positions = _data select 4;
_objVel = velocity _tracerObj; _positions set[(count _positions), [(getPos _tracerObj), vectorMagnitude (velocity _tracerObj)]];
_objTVel = sqrt((_objVel select 0)^2 + (_objVel select 1)^2 + (_objVel select 2)^2);
_positions set[(count _positions), [(getPos _tracerObj), _objTVel]];
} else { } else {
[(_this select 1)] call cba_fnc_removePerFrameHandler; [(_this select 1)] call cba_fnc_removePerFrameHandler;
}; };

View File

@ -1,15 +0,0 @@
#include "script_component.hpp"
private["_p1","_p2","_return"];
_p1 = _this select 0;
_p2 = _this select 1;
if ((count _p1) != (count _p2)) then {textLogFormat ["BIS_FNC Error: vectors not of same size"]};
_return = [];
{
_return set[_forEachIndex, (_p2 select _forEachIndex) - _x];
} forEach _p1;
_return

View File

@ -21,7 +21,7 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
private ["_silencer", "_audibleFireCoef", "_loudness", "_strength", "_vehAttenuation"]; private ["_silencer", "_audibleFireCoef", "_audibleFire", "_loudness", "_strength", "_vehAttenuation"];
PARAMS_7(_object,_firer,_distance,_weapon,_muzzle,_mode,_ammo); PARAMS_7(_object,_firer,_distance,_weapon,_muzzle,_mode,_ammo);

View File

@ -34,8 +34,7 @@ addMissionEventHandler ["Draw3D", DFUNC(render)];
if !([ACE_player, objNull, ["isNotInside","isNotDragging", "isNotCarrying", "isNotSwimming", "notOnMap", "isNotEscorting", "isNotSurrendering"]] call EFUNC(common,canInteractWith)) exitWith {false}; if !([ACE_player, objNull, ["isNotInside","isNotDragging", "isNotCarrying", "isNotSwimming", "notOnMap", "isNotEscorting", "isNotSurrendering"]] call EFUNC(common,canInteractWith)) exitWith {false};
// Statement // Statement
[0] call FUNC(keyDown) [0] call FUNC(keyDown)
}, },{[0,false] call FUNC(keyUp)},
{[0] call FUNC(keyUp)},
[219, [false, false, false]], false] call cba_fnc_addKeybind; //Left Windows Key [219, [false, false, false]], false] call cba_fnc_addKeybind; //Left Windows Key
["ACE3", QGVAR(SelfInteractKey), (localize "STR_ACE_Interact_Menu_SelfInteractKey"), ["ACE3", QGVAR(SelfInteractKey), (localize "STR_ACE_Interact_Menu_SelfInteractKey"),
@ -44,8 +43,7 @@ addMissionEventHandler ["Draw3D", DFUNC(render)];
if !([ACE_player, objNull, ["isNotInside","isNotDragging", "isNotCarrying", "isNotSwimming", "notOnMap", "isNotEscorting", "isNotSurrendering"]] call EFUNC(common,canInteractWith)) exitWith {false}; if !([ACE_player, objNull, ["isNotInside","isNotDragging", "isNotCarrying", "isNotSwimming", "notOnMap", "isNotEscorting", "isNotSurrendering"]] call EFUNC(common,canInteractWith)) exitWith {false};
// Statement // Statement
[1] call FUNC(keyDown) [1] call FUNC(keyDown)
}, },{[1,false] call FUNC(keyUp)},
{[1] call FUNC(keyUp)},
[219, [false, true, false]], false] call cba_fnc_addKeybind; //Left Windows Key + Ctrl/Strg [219, [false, true, false]], false] call cba_fnc_addKeybind; //Left Windows Key + Ctrl/Strg

View File

@ -83,6 +83,12 @@ class ACE_Settings {
description = "$STR_ACE_Interact_shadowSettingDescription"; description = "$STR_ACE_Interact_shadowSettingDescription";
values[] = {"$STR_A3_OPTIONS_DISABLED", "$STR_A3_OPTIONS_ENABLED", "$STR_ACE_Interact_shadowOutline"}; values[] = {"$STR_A3_OPTIONS_DISABLED", "$STR_A3_OPTIONS_ENABLED", "$STR_ACE_Interact_shadowOutline"};
}; };
class GVAR(actionOnKeyRelease) {
value = 1;
typeName = "BOOL";
isClientSettable = 1;
displayName = "$STR_ACE_Interact_Menu_ActionOnKeyRelease";
};
}; };
class ACE_Extensions { class ACE_Extensions {

View File

@ -15,7 +15,11 @@ EXPLODE_2_PVT(_this,_newUnit,_oldUnit);
// add to new unit // add to new unit
private "_ehid"; private "_ehid";
_ehid = [_newUnit, "DefaultAction", {EGVAR(interact_menu,openedMenuType) >= 0}, {}] call EFUNC(common,addActionEventHandler); _ehid = [_newUnit, "DefaultAction", {GVAR(openedMenuType) >= 0}, {
if !(GVAR(actionOnKeyRelease)) then {
[GVAR(openedMenuType),true] call FUNC(keyUp);
};
}] call EFUNC(common,addActionEventHandler);
_newUnit setVariable [QGVAR(AAEHID), _ehid]; _newUnit setVariable [QGVAR(AAEHID), _ehid];

View File

@ -52,6 +52,12 @@ if (GVAR(useCursorMenu)) then {
GVAR(cursorPos) = [_this select 1, _this select 2, 0]; GVAR(cursorPos) = [_this select 1, _this select 2, 0];
}; };
}]; }];
// handles LMB in cursor mode when action on keyrelease is disabled
((finddisplay 91919) displayctrl 91921) ctrlAddEventHandler ["MouseButtonDown", {
if !(GVAR(actionOnKeyRelease)) then {
[GVAR(openedMenuType),true] call FUNC(keyUp);
};
}];
setMousePosition [0.5, 0.5]; setMousePosition [0.5, 0.5];
}; };

View File

@ -12,6 +12,9 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
private "_calledByClicking";
_calledByClicking = _this select 1;
// Exit if there's no menu opened // Exit if there's no menu opened
if (GVAR(openedMenuType) < 0) exitWith {true}; if (GVAR(openedMenuType) < 0) exitWith {true};
@ -29,6 +32,9 @@ if(GVAR(actionSelected)) then {
// Clear the conditions caches // Clear the conditions caches
["clearConditionCaches", []] call EFUNC(common,localEvent); ["clearConditionCaches", []] call EFUNC(common,localEvent);
// exit scope if selecting an action on key release is disabled
if (!(GVAR(actionOnKeyRelease)) && !_calledByClicking) exitWith {};
// Check the action conditions // Check the action conditions
_actionData = GVAR(selectedAction) select 0; _actionData = GVAR(selectedAction) select 0;
if ([_target, _player, _actionData select 6] call (_actionData select 4)) then { if ([_target, _player, _actionData select 6] call (_actionData select 4)) then {

View File

@ -85,6 +85,7 @@
<French>Interaction - Texte Max</French> <French>Interaction - Texte Max</French>
<German>Interaktionstextfarbe Max</German> <German>Interaktionstextfarbe Max</German>
<Italian>Interazioni - Testo Massimo</Italian> <Italian>Interazioni - Testo Massimo</Italian>
<Russian>Взаимодействие - Текст Макс.</Russian>
</Key> </Key>
<Key ID="STR_ACE_Interact_Menu_ColorTextMin"> <Key ID="STR_ACE_Interact_Menu_ColorTextMin">
<English>Interaction - Text Min</English> <English>Interaction - Text Min</English>
@ -92,6 +93,7 @@
<French>Interaction - Texte Min</French> <French>Interaction - Texte Min</French>
<German>Interaktionstextfarbe Min</German> <German>Interaktionstextfarbe Min</German>
<Italian>Interazioni - Testo Minimo</Italian> <Italian>Interazioni - Testo Minimo</Italian>
<Russian>Взаимодействие - Текст Мин.</Russian>
</Key> </Key>
<Key ID="STR_ACE_Interact_Menu_ColorShadowMax"> <Key ID="STR_ACE_Interact_Menu_ColorShadowMax">
<English>Interaction - Shadow Max</English> <English>Interaction - Shadow Max</English>
@ -99,6 +101,7 @@
<French>Interaction - Ombre Max</French> <French>Interaction - Ombre Max</French>
<German>Interaktionstextschatten Max</German> <German>Interaktionstextschatten Max</German>
<Italian>Interazioni - Ombra Massima</Italian> <Italian>Interazioni - Ombra Massima</Italian>
<Russian>Взаимодействие - Тень Макс.</Russian>
</Key> </Key>
<Key ID="STR_ACE_Interact_Menu_ColorShadowMin"> <Key ID="STR_ACE_Interact_Menu_ColorShadowMin">
<English>Interaction - Shadow Min</English> <English>Interaction - Shadow Min</English>
@ -106,14 +109,21 @@
<French>Interaction - Ombre Min</French> <French>Interaction - Ombre Min</French>
<German>Interaktionstextschatten Min</German> <German>Interaktionstextschatten Min</German>
<Italian>Interazioni - Ombra Minima</Italian> <Italian>Interazioni - Ombra Minima</Italian>
<Russian>Взаимодействие - Тень Мин.</Russian>
</Key> </Key>
<Key ID="STR_ACE_Interact_cursorKeepCentered"> <Key ID="STR_ACE_Interact_cursorKeepCentered">
<English>Keep cursor centered</English> <English>Keep cursor centered</English>
<French>Garder le curseur au centre</French> <French>Garder le curseur au centre</French>
<Russian>Центрировать курсор</Russian>
</Key> </Key>
<Key ID="STR_ACE_Interact_cursorKeepCenteredDescription"> <Key ID="STR_ACE_Interact_cursorKeepCenteredDescription">
<English>Keeps cursor centered and pans the option menu around. Useful if screen size is limited.</English> <English>Keeps cursor centered and pans the option menu around. Useful if screen size is limited.</English>
<French>Garde le curseur au milieu et dispose le menu des options autour. Utile si la taille de l'écran est limitée.</French> <French>Garde le curseur au milieu et dispose le menu des options autour. Utile si la taille de l'écran est limitée.</French>
<Russian>Центрирует курсор и двигает само меню опций. Полезно при ограниченном размере экрана.</Russian>
</Key>
<Key ID="STR_ACE_Interact_Menu_ActionOnKeyRelease">
<English>Do action when releasing menu key</English>
<German>Aktion nach Loslassen der Taste ausführen</German>
</Key> </Key>
<Key ID="STR_ACE_Interact_textSize"> <Key ID="STR_ACE_Interact_textSize">
<English>Interaction Text Size</English> <English>Interaction Text Size</English>

View File

@ -130,7 +130,7 @@ FUNC(disableFire) = {
if(_firedEH < 0 && difficulty > 0) then { if(_firedEH < 0 && difficulty > 0) then {
_firedEH = [ACE_player, "DefaultAction", {true}, { _firedEH = [ACE_player, "DefaultAction", {true}, {
_canFire = _this getVariable["ace_missileguidance_target", nil]; _canFire = (_this select 0) getVariable["ace_missileguidance_target", nil];
if(!isNil "_canFire") exitWith { false }; if(!isNil "_canFire") exitWith { false };
true true
}] call EFUNC(common,addActionEventHandler); }] call EFUNC(common,addActionEventHandler);

View File

@ -3,8 +3,8 @@ class ACE_Head {
displayName = "$STR_ACE_Interaction_Head"; displayName = "$STR_ACE_Interaction_Head";
runOnHover = 1; runOnHover = 1;
statement = QUOTE([ARR_3(_target, true, 0)] call DFUNC(displayPatientInformation)); statement = QUOTE([ARR_3(_target, true, 0)] call DFUNC(displayPatientInformation));
ACTION_CONDITION
modifierFunction = QUOTE([ARR_4(_target,_player,0,_this select 3)] call FUNC(modifyMedicalAction)); modifierFunction = QUOTE([ARR_4(_target,_player,0,_this select 3)] call FUNC(modifyMedicalAction));
condition = "true";
EXCEPTIONS EXCEPTIONS
icon = PATHTOF(UI\icons\medical_cross.paa); icon = PATHTOF(UI\icons\medical_cross.paa);
distance = MEDICAL_ACTION_DISTANCE; distance = MEDICAL_ACTION_DISTANCE;
@ -21,7 +21,7 @@ class ACE_Head {
}; };
// Advanced medical // Advanced medical
class FieldDressing { class FieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_FieldDressing"; displayName = "$STR_ACE_Medical_Actions_FieldDressing";
distance = 5.0; distance = 5.0;
condition = QUOTE([ARR_4(_player, _target, 'head', 'FieldDressing')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'head', 'FieldDressing')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'head', 'FieldDressing')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'head', 'FieldDressing')] call DFUNC(treatment));
@ -32,47 +32,47 @@ class ACE_Head {
icon = PATHTOF(UI\icons\bandage.paa); icon = PATHTOF(UI\icons\bandage.paa);
}; };
class PackingBandage: fieldDressing { class PackingBandage: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_PackingBandage"; displayName = "$STR_ACE_Medical_Actions_PackingBandage";
condition = QUOTE([ARR_4(_player, _target, 'head', 'PackingBandage')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'head', 'PackingBandage')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'head', 'PackingBandage')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'head', 'PackingBandage')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
icon = PATHTOF(UI\icons\packingBandage.paa); icon = PATHTOF(UI\icons\packingBandage.paa);
}; };
class ElasticBandage: fieldDressing { class ElasticBandage: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_ElasticBandage"; displayName = "$STR_ACE_Medical_Actions_ElasticBandage";
condition = QUOTE([ARR_4(_player, _target, 'head', 'ElasticBandage')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'head', 'ElasticBandage')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'head', 'ElasticBandage')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'head', 'ElasticBandage')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
icon = PATHTOF(UI\icons\bandage.paa); icon = PATHTOF(UI\icons\bandage.paa);
}; };
class QuikClot: fieldDressing { class QuikClot: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_QuikClot"; displayName = "$STR_ACE_Medical_Actions_QuikClot";
condition = QUOTE([ARR_4(_player, _target, 'head', 'QuikClot')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'head', 'QuikClot')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'head', 'QuikClot')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'head', 'QuikClot')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
icon = PATHTOF(UI\icons\bandage.paa); icon = PATHTOF(UI\icons\bandage.paa);
}; };
class CheckPulse: fieldDressing { class CheckPulse: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_CheckPulse"; displayName = "$STR_ACE_Medical_Actions_CheckPulse";
condition = QUOTE([ARR_4(_player, _target, 'head', 'CheckPulse')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'head', 'CheckPulse')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'head', 'CheckPulse')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'head', 'CheckPulse')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
icon = ""; icon = "";
}; };
class CheckBloodPressure: CheckPulse { class CheckBloodPressure: CheckPulse {
displayName = "$STR_ACE_MEDICAL_ACTIONS_CheckBloodPressure"; displayName = "$STR_ACE_Medical_Actions_CheckBloodPressure";
condition = QUOTE([ARR_4(_player, _target, 'head', 'CheckBloodPressure')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'head', 'CheckBloodPressure')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'head', 'CheckBloodPressure')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'head', 'CheckBloodPressure')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class CheckResponse: CheckPulse { class CheckResponse: CheckPulse {
displayName = "$STR_ACE_MEDICAL_CHECK_RESPONSE"; displayName = "$STR_ACE_Medical_Check_Response";
condition = QUOTE([ARR_4(_player, _target, 'head', 'CheckResponse')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'head', 'CheckResponse')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'head', 'CheckResponse')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'head', 'CheckResponse')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class Diagnose: CheckPulse { class Diagnose: CheckPulse {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Diagnose"; displayName = "$STR_ACE_Medical_Actions_Diagnose";
condition = QUOTE([ARR_4(_player, _target, 'head', 'Diagnose')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'head', 'Diagnose')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'head', 'Diagnose')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'head', 'Diagnose')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
@ -82,8 +82,8 @@ class ACE_Torso {
displayName = "$STR_ACE_Interaction_Torso"; displayName = "$STR_ACE_Interaction_Torso";
runOnHover = 1; runOnHover = 1;
statement = QUOTE([ARR_3(_target, true, 1)] call DFUNC(displayPatientInformation)); statement = QUOTE([ARR_3(_target, true, 1)] call DFUNC(displayPatientInformation));
ACTION_CONDITION
modifierFunction = QUOTE([ARR_4(_target,_player,1,_this select 3)] call FUNC(modifyMedicalAction)); modifierFunction = QUOTE([ARR_4(_target,_player,1,_this select 3)] call FUNC(modifyMedicalAction));
condition = "true";
EXCEPTIONS EXCEPTIONS
icon = PATHTOF(UI\icons\medical_cross.paa); icon = PATHTOF(UI\icons\medical_cross.paa);
distance = MEDICAL_ACTION_DISTANCE; distance = MEDICAL_ACTION_DISTANCE;
@ -100,7 +100,7 @@ class ACE_Torso {
icon = PATHTOF(UI\icons\bandage.paa); icon = PATHTOF(UI\icons\bandage.paa);
}; };
class PlaceInBodyBag { class PlaceInBodyBag {
displayName = "$STR_ACE_MEDICAL_PlaceInBodyBag"; displayName = "$STR_ACE_Medical_PlaceInBodyBag";
distance = 2.0; distance = 2.0;
condition = QUOTE([ARR_4(_player, _target, 'body', 'BodyBag')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'body', 'BodyBag')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'body', 'BodyBag')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'body', 'BodyBag')] call DFUNC(treatment));
@ -111,7 +111,7 @@ class ACE_Torso {
enableInside = 1; enableInside = 1;
}; };
class TriageCard { class TriageCard {
displayName = "$STR_ACE_MEDICAL_ACTIONS_TriageCard"; displayName = "$STR_ACE_Medical_Actions_TriageCard";
distance = 2.0; distance = 2.0;
condition = "true"; condition = "true";
statement = QUOTE([ARR_2(_target, true)] call DFUNC(displayTriageCard)); statement = QUOTE([ARR_2(_target, true)] call DFUNC(displayTriageCard));
@ -125,7 +125,7 @@ class ACE_Torso {
// Advanced medical // Advanced medical
class FieldDressing { class FieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_FieldDressing"; displayName = "$STR_ACE_Medical_Actions_FieldDressing";
distance = 5.0; distance = 5.0;
condition = QUOTE([ARR_4(_player, _target, 'body', 'FieldDressing')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'body', 'FieldDressing')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'body', 'FieldDressing')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'body', 'FieldDressing')] call DFUNC(treatment));
@ -137,42 +137,42 @@ class ACE_Torso {
icon = PATHTOF(UI\icons\bandage.paa); icon = PATHTOF(UI\icons\bandage.paa);
}; };
class PackingBandage: fieldDressing { class PackingBandage: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_PackingBandage"; displayName = "$STR_ACE_Medical_Actions_PackingBandage";
condition = QUOTE([ARR_4(_player, _target, 'body', 'PackingBandage')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'body', 'PackingBandage')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'body', 'PackingBandage')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'body', 'PackingBandage')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
icon = PATHTOF(UI\icons\packingBandage.paa); icon = PATHTOF(UI\icons\packingBandage.paa);
}; };
class ElasticBandage: fieldDressing { class ElasticBandage: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_ElasticBandage"; displayName = "$STR_ACE_Medical_Actions_ElasticBandage";
condition = QUOTE([ARR_4(_player, _target, 'body', 'ElasticBandage')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'body', 'ElasticBandage')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'body', 'ElasticBandage')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'body', 'ElasticBandage')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
icon = PATHTOF(UI\icons\bandage.paa); icon = PATHTOF(UI\icons\bandage.paa);
}; };
class QuikClot: fieldDressing { class QuikClot: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_QuikClot"; displayName = "$STR_ACE_Medical_Actions_QuikClot";
condition = QUOTE([ARR_4(_player, _target, 'body', 'QuikClot')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'body', 'QuikClot')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'body', 'QuikClot')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'body', 'QuikClot')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
icon = PATHTOF(UI\icons\bandage.paa); icon = PATHTOF(UI\icons\bandage.paa);
}; };
class SurgicalKit: fieldDressing { class SurgicalKit: fieldDressing {
displayName = "$STR_ACE_MEDICAL_USE_SURGICALKIT"; displayName = "$STR_ACE_Medical_Use_SurgicalKit";
condition = QUOTE([ARR_4(_player, _target, 'body', 'SurgicalKit')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'body', 'SurgicalKit')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'body', 'SurgicalKit')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'body', 'SurgicalKit')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
icon = PATHTOF(UI\icons\surgicalKit.paa); icon = PATHTOF(UI\icons\surgicalKit.paa);
}; };
class PersonalAidKit: fieldDressing { class PersonalAidKit: fieldDressing {
displayName = "$STR_ACE_MEDICAL_USE_AID_KIT"; displayName = "$STR_ACE_Medical_Use_Aid_Kit";
condition = QUOTE([ARR_4(_player, _target, 'body', 'PersonalAidKit')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'body', 'PersonalAidKit')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'body', 'PersonalAidKit')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'body', 'PersonalAidKit')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
icon = ""; icon = "";
}; };
class CPR: fieldDressing { class CPR: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_CPR"; displayName = "$STR_ACE_Medical_Actions_CPR";
condition = QUOTE([ARR_4(_player, _target, 'body', 'CPR')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'body', 'CPR')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'body', 'CPR')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'body', 'CPR')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
@ -183,8 +183,8 @@ class ACE_ArmLeft {
displayName = "$STR_ACE_Interaction_ArmLeft"; displayName = "$STR_ACE_Interaction_ArmLeft";
runOnHover = 1; runOnHover = 1;
statement = QUOTE([ARR_3(_target, true, 2)] call DFUNC(displayPatientInformation)); statement = QUOTE([ARR_3(_target, true, 2)] call DFUNC(displayPatientInformation));
ACTION_CONDITION
modifierFunction = QUOTE([ARR_4(_target,_player,2,_this select 3)] call FUNC(modifyMedicalAction)); modifierFunction = QUOTE([ARR_4(_target,_player,2,_this select 3)] call FUNC(modifyMedicalAction));
condition = "true";
EXCEPTIONS EXCEPTIONS
icon = PATHTOF(UI\icons\medical_cross.paa); icon = PATHTOF(UI\icons\medical_cross.paa);
distance = MEDICAL_ACTION_DISTANCE; distance = MEDICAL_ACTION_DISTANCE;
@ -203,7 +203,7 @@ class ACE_ArmLeft {
// Advanced medical // Advanced medical
class FieldDressing { class FieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_FieldDressing"; displayName = "$STR_ACE_Medical_Actions_FieldDressing";
distance = 5.0; distance = 5.0;
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'FieldDressing')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'FieldDressing')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'FieldDressing')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'FieldDressing')] call DFUNC(treatment));
@ -214,28 +214,28 @@ class ACE_ArmLeft {
icon = PATHTOF(UI\icons\bandage.paa); icon = PATHTOF(UI\icons\bandage.paa);
}; };
class PackingBandage: fieldDressing { class PackingBandage: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_PackingBandage"; displayName = "$STR_ACE_Medical_Actions_PackingBandage";
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'PackingBandage')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'PackingBandage')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'PackingBandage')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'PackingBandage')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
icon = PATHTOF(UI\icons\packingBandage.paa); icon = PATHTOF(UI\icons\packingBandage.paa);
}; };
class ElasticBandage: fieldDressing { class ElasticBandage: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_ElasticBandage"; displayName = "$STR_ACE_Medical_Actions_ElasticBandage";
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'ElasticBandage')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'ElasticBandage')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'ElasticBandage')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'ElasticBandage')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
icon = PATHTOF(UI\icons\bandage.paa); icon = PATHTOF(UI\icons\bandage.paa);
}; };
class QuikClot: fieldDressing { class QuikClot: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_QuikClot"; displayName = "$STR_ACE_Medical_Actions_QuikClot";
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'QuikClot')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'QuikClot')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'QuikClot')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'QuikClot')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
icon = PATHTOF(UI\icons\bandage.paa); icon = PATHTOF(UI\icons\bandage.paa);
}; };
class Tourniquet: fieldDressing { class Tourniquet: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Tourniquet"; displayName = "$STR_ACE_Medical_Actions_Tourniquet";
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'Tourniquet')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'Tourniquet')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'Tourniquet')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'Tourniquet')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
@ -263,75 +263,75 @@ class ACE_ArmLeft {
icon = PATHTOF(UI\icons\autoInjector.paa); icon = PATHTOF(UI\icons\autoInjector.paa);
}; };
class BloodIV: fieldDressing { class BloodIV: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_1000"; displayName = "$STR_ACE_Medical_Actions_Blood4_1000";
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
icon = PATHTOF(UI\icons\iv.paa); icon = PATHTOF(UI\icons\iv.paa);
}; };
class BloodIV_500: BloodIV { class BloodIV_500: BloodIV {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_500"; displayName = "$STR_ACE_Medical_Actions_Blood4_500";
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV_500')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV_500')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV_500')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV_500')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class BloodIV_250: BloodIV { class BloodIV_250: BloodIV {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_250"; displayName = "$STR_ACE_Medical_Actions_Blood4_250";
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV_250')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV_250')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV_250')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'BloodIV_250')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class PlasmaIV: BloodIV { class PlasmaIV: BloodIV {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_1000"; displayName = "$STR_ACE_Medical_Actions_Plasma4_1000";
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'PlasmaIV')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'PlasmaIV')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'PlasmaIV')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'PlasmaIV')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class PlasmaIV_500: PlasmaIV { class PlasmaIV_500: PlasmaIV {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_500"; displayName = "$STR_ACE_Medical_Actions_Plasma4_500";
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'PlasmaIV_500')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'PlasmaIV_500')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'PlasmaIV_500')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'PlasmaIV_500')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class PlasmaIV_250: PlasmaIV { class PlasmaIV_250: PlasmaIV {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_250"; displayName = "$STR_ACE_Medical_Actions_Plasma4_250";
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'PlasmaIV_250')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'PlasmaIV_250')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'PlasmaIV_250')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'PlasmaIV_250')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class SalineIV: BloodIV { class SalineIV: BloodIV {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_1000"; displayName = "$STR_ACE_Medical_Actions_Saline4_1000";
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'SalineIV')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'SalineIV')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'SalineIV')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'SalineIV')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class SalineIV_500: SalineIV { class SalineIV_500: SalineIV {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_500"; displayName = "$STR_ACE_Medical_Actions_Saline4_500";
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'SalineIV_500')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'SalineIV_500')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'SalineIV_500')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'SalineIV_500')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class SalineIV_250: SalineIV { class SalineIV_250: SalineIV {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_250"; displayName = "$STR_ACE_Medical_Actions_Saline4_250";
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'SalineIV_250')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'SalineIV_250')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'SalineIV_250')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'SalineIV_250')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class CheckPulse: fieldDressing { class CheckPulse: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_CheckPulse"; displayName = "$STR_ACE_Medical_Actions_CheckPulse";
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckPulse')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckPulse')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckPulse')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckPulse')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
icon = ""; icon = "";
}; };
class CheckBloodPressure: CheckPulse { class CheckBloodPressure: CheckPulse {
displayName = "$STR_ACE_MEDICAL_ACTIONS_CheckBloodPressure"; displayName = "$STR_ACE_Medical_Actions_CheckBloodPressure";
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckBloodPressure')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckBloodPressure')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckBloodPressure')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckBloodPressure')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class RemoveTourniquet: Tourniquet { class RemoveTourniquet: Tourniquet {
displayName = "$STR_ACE_MEDICAL_ACTIONS_RemoveTourniquet"; displayName = "$STR_ACE_Medical_Actions_RemoveTourniquet";
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'RemoveTourniquet')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'RemoveTourniquet')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'RemoveTourniquet')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'RemoveTourniquet')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
@ -341,8 +341,8 @@ class ACE_ArmRight {
displayName = "$STR_ACE_Interaction_ArmRight"; displayName = "$STR_ACE_Interaction_ArmRight";
runOnHover = 1; runOnHover = 1;
statement = QUOTE([ARR_3(_target, true, 3)] call DFUNC(displayPatientInformation)); statement = QUOTE([ARR_3(_target, true, 3)] call DFUNC(displayPatientInformation));
ACTION_CONDITION
modifierFunction = QUOTE([ARR_4(_target,_player,3,_this select 3)] call FUNC(modifyMedicalAction)); modifierFunction = QUOTE([ARR_4(_target,_player,3,_this select 3)] call FUNC(modifyMedicalAction));
condition = "true";
EXCEPTIONS EXCEPTIONS
icon = PATHTOF(UI\icons\medical_cross.paa); icon = PATHTOF(UI\icons\medical_cross.paa);
distance = MEDICAL_ACTION_DISTANCE; distance = MEDICAL_ACTION_DISTANCE;
@ -361,7 +361,7 @@ class ACE_ArmRight {
// Advanced medical // Advanced medical
class FieldDressing { class FieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_FieldDressing"; displayName = "$STR_ACE_Medical_Actions_FieldDressing";
distance = 5.0; distance = 5.0;
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'FieldDressing')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'FieldDressing')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'FieldDressing')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'FieldDressing')] call DFUNC(treatment));
@ -372,26 +372,26 @@ class ACE_ArmRight {
icon = PATHTOF(UI\icons\bandage.paa); icon = PATHTOF(UI\icons\bandage.paa);
}; };
class PackingBandage: fieldDressing { class PackingBandage: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_PackingBandage"; displayName = "$STR_ACE_Medical_Actions_PackingBandage";
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'PackingBandage')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'PackingBandage')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'PackingBandage')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'PackingBandage')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
icon = PATHTOF(UI\icons\packingBandage.paa); icon = PATHTOF(UI\icons\packingBandage.paa);
}; };
class ElasticBandage: fieldDressing { class ElasticBandage: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_ElasticBandage"; displayName = "$STR_ACE_Medical_Actions_ElasticBandage";
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'ElasticBandage')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'ElasticBandage')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'ElasticBandage')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'ElasticBandage')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class QuikClot: fieldDressing { class QuikClot: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_QuikClot"; displayName = "$STR_ACE_Medical_Actions_QuikClot";
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'QuikClot')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'QuikClot')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'QuikClot')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'QuikClot')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class Tourniquet: fieldDressing { class Tourniquet: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Tourniquet"; displayName = "$STR_ACE_Medical_Actions_Tourniquet";
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'Tourniquet')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'Tourniquet')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Tourniquet')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Tourniquet')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
@ -417,75 +417,75 @@ class ACE_ArmRight {
EXCEPTIONS EXCEPTIONS
}; };
class BloodIV: fieldDressing { class BloodIV: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_1000"; displayName = "$STR_ACE_Medical_Actions_Blood4_1000";
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
icon = PATHTOF(UI\icons\iv.paa); icon = PATHTOF(UI\icons\iv.paa);
}; };
class BloodIV_500: BloodIV { class BloodIV_500: BloodIV {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_500"; displayName = "$STR_ACE_Medical_Actions_Blood4_500";
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV_500')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV_500')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV_500')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV_500')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class BloodIV_250: BloodIV { class BloodIV_250: BloodIV {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_250"; displayName = "$STR_ACE_Medical_Actions_Blood4_250";
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV_250')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV_250')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV_250')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'BloodIV_250')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class PlasmaIV: BloodIV { class PlasmaIV: BloodIV {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_1000"; displayName = "$STR_ACE_Medical_Actions_Plasma4_1000";
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'PlasmaIV')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'PlasmaIV')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'PlasmaIV')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'PlasmaIV')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class PlasmaIV_500: PlasmaIV { class PlasmaIV_500: PlasmaIV {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_500"; displayName = "$STR_ACE_Medical_Actions_Plasma4_500";
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'PlasmaIV_500')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'PlasmaIV_500')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'PlasmaIV_500')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'PlasmaIV_500')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class PlasmaIV_250: PlasmaIV { class PlasmaIV_250: PlasmaIV {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_250"; displayName = "$STR_ACE_Medical_Actions_Plasma4_250";
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'PlasmaIV_250')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'PlasmaIV_250')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'PlasmaIV_250')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'PlasmaIV_250')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class SalineIV: BloodIV { class SalineIV: BloodIV {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_1000"; displayName = "$STR_ACE_Medical_Actions_Saline4_1000";
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'SalineIV')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'SalineIV')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'SalineIV')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'SalineIV')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class SalineIV_500: SalineIV { class SalineIV_500: SalineIV {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_500"; displayName = "$STR_ACE_Medical_Actions_Saline4_500";
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'SalineIV_500')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'SalineIV_500')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'SalineIV_500')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'SalineIV_500')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class SalineIV_250: SalineIV { class SalineIV_250: SalineIV {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_250"; displayName = "$STR_ACE_Medical_Actions_Saline4_250";
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'SalineIV_250')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'SalineIV_250')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'SalineIV_250')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'SalineIV_250')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class CheckPulse: fieldDressing { class CheckPulse: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_CheckPulse"; displayName = "$STR_ACE_Medical_Actions_CheckPulse";
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckPulse')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckPulse')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckPulse')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckPulse')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
icon = ""; icon = "";
}; };
class CheckBloodPressure: CheckPulse { class CheckBloodPressure: CheckPulse {
displayName = "$STR_ACE_MEDICAL_ACTIONS_CheckBloodPressure"; displayName = "$STR_ACE_Medical_Actions_CheckBloodPressure";
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckBloodPressure')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckBloodPressure')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckBloodPressure')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckBloodPressure')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class RemoveTourniquet: Tourniquet { class RemoveTourniquet: Tourniquet {
displayName = "$STR_ACE_MEDICAL_ACTIONS_RemoveTourniquet"; displayName = "$STR_ACE_Medical_Actions_RemoveTourniquet";
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'RemoveTourniquet')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'RemoveTourniquet')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'RemoveTourniquet')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'RemoveTourniquet')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
@ -496,8 +496,8 @@ class ACE_LegLeft {
displayName = "$STR_ACE_Interaction_LegLeft"; displayName = "$STR_ACE_Interaction_LegLeft";
runOnHover = 1; runOnHover = 1;
statement = QUOTE([ARR_3(_target, true, 4)] call DFUNC(displayPatientInformation)); statement = QUOTE([ARR_3(_target, true, 4)] call DFUNC(displayPatientInformation));
ACTION_CONDITION
modifierFunction = QUOTE([ARR_4(_target,_player,4,_this select 3)] call FUNC(modifyMedicalAction)); modifierFunction = QUOTE([ARR_4(_target,_player,4,_this select 3)] call FUNC(modifyMedicalAction));
condition = "true";
EXCEPTIONS EXCEPTIONS
icon = PATHTOF(UI\icons\medical_cross.paa); icon = PATHTOF(UI\icons\medical_cross.paa);
distance = MEDICAL_ACTION_DISTANCE; distance = MEDICAL_ACTION_DISTANCE;
@ -517,7 +517,7 @@ class ACE_LegLeft {
// Advanced medical // Advanced medical
class FieldDressing { class FieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_FieldDressing"; displayName = "$STR_ACE_Medical_Actions_FieldDressing";
distance = 5.0; distance = 5.0;
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'FieldDressing')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'FieldDressing')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'FieldDressing')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'FieldDressing')] call DFUNC(treatment));
@ -528,26 +528,26 @@ class ACE_LegLeft {
icon = PATHTOF(UI\icons\bandage.paa); icon = PATHTOF(UI\icons\bandage.paa);
}; };
class PackingBandage: fieldDressing { class PackingBandage: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_PackingBandage"; displayName = "$STR_ACE_Medical_Actions_PackingBandage";
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'PackingBandage')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'PackingBandage')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'PackingBandage')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'PackingBandage')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
icon = PATHTOF(UI\icons\packingBandage.paa); icon = PATHTOF(UI\icons\packingBandage.paa);
}; };
class ElasticBandage: fieldDressing { class ElasticBandage: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_ElasticBandage"; displayName = "$STR_ACE_Medical_Actions_ElasticBandage";
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'ElasticBandage')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'ElasticBandage')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'ElasticBandage')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'ElasticBandage')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class QuikClot: fieldDressing { class QuikClot: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_QuikClot"; displayName = "$STR_ACE_Medical_Actions_QuikClot";
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'QuikClot')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'QuikClot')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'QuikClot')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'QuikClot')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class Tourniquet: fieldDressing { class Tourniquet: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Tourniquet"; displayName = "$STR_ACE_Medical_Actions_Tourniquet";
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'Tourniquet')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'Tourniquet')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Tourniquet')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Tourniquet')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
@ -574,62 +574,62 @@ class ACE_LegLeft {
EXCEPTIONS EXCEPTIONS
}; };
class BloodIV: fieldDressing { class BloodIV: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_1000"; displayName = "$STR_ACE_Medical_Actions_Blood4_1000";
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
icon = PATHTOF(UI\icons\iv.paa); icon = PATHTOF(UI\icons\iv.paa);
}; };
class BloodIV_500: BloodIV { class BloodIV_500: BloodIV {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_500"; displayName = "$STR_ACE_Medical_Actions_Blood4_500";
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV_500')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV_500')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV_500')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV_500')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class BloodIV_250: BloodIV { class BloodIV_250: BloodIV {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_250"; displayName = "$STR_ACE_Medical_Actions_Blood4_250";
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV_250')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV_250')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV_250')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'BloodIV_250')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class PlasmaIV: BloodIV { class PlasmaIV: BloodIV {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_1000"; displayName = "$STR_ACE_Medical_Actions_Plasma4_1000";
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'PlasmaIV')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'PlasmaIV')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'PlasmaIV')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'PlasmaIV')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class PlasmaIV_500: PlasmaIV { class PlasmaIV_500: PlasmaIV {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_500"; displayName = "$STR_ACE_Medical_Actions_Plasma4_500";
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'PlasmaIV_500')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'PlasmaIV_500')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'PlasmaIV_500')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'PlasmaIV_500')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class PlasmaIV_250: PlasmaIV { class PlasmaIV_250: PlasmaIV {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_250"; displayName = "$STR_ACE_Medical_Actions_Plasma4_250";
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'PlasmaIV_250')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'PlasmaIV_250')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'PlasmaIV_250')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'PlasmaIV_250')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class SalineIV: BloodIV { class SalineIV: BloodIV {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_1000"; displayName = "$STR_ACE_Medical_Actions_Saline4_1000";
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'SalineIV')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'SalineIV')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'SalineIV')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'SalineIV')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class SalineIV_500: SalineIV { class SalineIV_500: SalineIV {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_500"; displayName = "$STR_ACE_Medical_Actions_Saline4_500";
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'SalineIV_500')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'SalineIV_500')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'SalineIV_500')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'SalineIV_500')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class SalineIV_250: SalineIV { class SalineIV_250: SalineIV {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_250"; displayName = "$STR_ACE_Medical_Actions_Saline4_250";
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'SalineIV_250')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'SalineIV_250')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'SalineIV_250')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'SalineIV_250')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class RemoveTourniquet: Tourniquet { class RemoveTourniquet: Tourniquet {
displayName = "$STR_ACE_MEDICAL_ACTIONS_RemoveTourniquet"; displayName = "$STR_ACE_Medical_Actions_RemoveTourniquet";
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'RemoveTourniquet')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'RemoveTourniquet')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'RemoveTourniquet')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'RemoveTourniquet')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
@ -639,8 +639,8 @@ class ACE_LegRight {
displayName = "$STR_ACE_Interaction_LegRight"; displayName = "$STR_ACE_Interaction_LegRight";
runOnHover = 1; runOnHover = 1;
statement = QUOTE([ARR_3(_target, true, 5)] call DFUNC(displayPatientInformation)); statement = QUOTE([ARR_3(_target, true, 5)] call DFUNC(displayPatientInformation));
ACTION_CONDITION
modifierFunction = QUOTE([ARR_4(_target,_player,5,_this select 3)] call FUNC(modifyMedicalAction)); modifierFunction = QUOTE([ARR_4(_target,_player,5,_this select 3)] call FUNC(modifyMedicalAction));
condition = "true";
EXCEPTIONS EXCEPTIONS
icon = PATHTOF(UI\icons\medical_cross.paa); icon = PATHTOF(UI\icons\medical_cross.paa);
distance = MEDICAL_ACTION_DISTANCE; distance = MEDICAL_ACTION_DISTANCE;
@ -660,7 +660,7 @@ class ACE_LegRight {
// Advanced medical // Advanced medical
class FieldDressing { class FieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_FieldDressing"; displayName = "$STR_ACE_Medical_Actions_FieldDressing";
distance = 5.0; distance = 5.0;
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'FieldDressing')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'FieldDressing')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'FieldDressing')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'FieldDressing')] call DFUNC(treatment));
@ -671,26 +671,26 @@ class ACE_LegRight {
icon = PATHTOF(UI\icons\bandage.paa); icon = PATHTOF(UI\icons\bandage.paa);
}; };
class PackingBandage: fieldDressing { class PackingBandage: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_PackingBandage"; displayName = "$STR_ACE_Medical_Actions_PackingBandage";
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'PackingBandage')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'PackingBandage')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'PackingBandage')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'PackingBandage')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
icon = PATHTOF(UI\icons\packingBandage.paa); icon = PATHTOF(UI\icons\packingBandage.paa);
}; };
class ElasticBandage: fieldDressing { class ElasticBandage: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_ElasticBandage"; displayName = "$STR_ACE_Medical_Actions_ElasticBandage";
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'ElasticBandage')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'ElasticBandage')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'ElasticBandage')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'ElasticBandage')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class QuikClot: fieldDressing { class QuikClot: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_QuikClot"; displayName = "$STR_ACE_Medical_Actions_QuikClot";
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'QuikClot')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'QuikClot')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'QuikClot')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'QuikClot')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class Tourniquet: fieldDressing { class Tourniquet: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Tourniquet"; displayName = "$STR_ACE_Medical_Actions_Tourniquet";
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'Tourniquet')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'Tourniquet')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Tourniquet')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Tourniquet')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
@ -716,62 +716,62 @@ class ACE_LegRight {
EXCEPTIONS EXCEPTIONS
}; };
class BloodIV: fieldDressing { class BloodIV: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_1000"; displayName = "$STR_ACE_Medical_Actions_Blood4_1000";
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
icon = PATHTOF(UI\icons\iv.paa); icon = PATHTOF(UI\icons\iv.paa);
}; };
class BloodIV_500: BloodIV { class BloodIV_500: BloodIV {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_500"; displayName = "$STR_ACE_Medical_Actions_Blood4_500";
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV_500')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV_500')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV_500')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV_500')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class BloodIV_250: BloodIV { class BloodIV_250: BloodIV {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Blood4_250"; displayName = "$STR_ACE_Medical_Actions_Blood4_250";
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV_250')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV_250')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV_250')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'BloodIV_250')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class PlasmaIV: BloodIV { class PlasmaIV: BloodIV {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_1000"; displayName = "$STR_ACE_Medical_Actions_Plasma4_1000";
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'PlasmaIV')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'PlasmaIV')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'PlasmaIV')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'PlasmaIV')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class PlasmaIV_500: PlasmaIV { class PlasmaIV_500: PlasmaIV {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_500"; displayName = "$STR_ACE_Medical_Actions_Plasma4_500";
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'PlasmaIV_500')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'PlasmaIV_500')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'PlasmaIV_500')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'PlasmaIV_500')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class PlasmaIV_250: PlasmaIV { class PlasmaIV_250: PlasmaIV {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Plasma4_250"; displayName = "$STR_ACE_Medical_Actions_Plasma4_250";
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'PlasmaIV_250')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'PlasmaIV_250')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'PlasmaIV_250')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'PlasmaIV_250')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class SalineIV: BloodIV { class SalineIV: BloodIV {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_1000"; displayName = "$STR_ACE_Medical_Actions_Saline4_1000";
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'SalineIV')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'SalineIV')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'SalineIV')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'SalineIV')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class SalineIV_500: SalineIV { class SalineIV_500: SalineIV {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_500"; displayName = "$STR_ACE_Medical_Actions_Saline4_500";
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'SalineIV_500')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'SalineIV_500')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'SalineIV_500')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'SalineIV_500')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class SalineIV_250: SalineIV { class SalineIV_250: SalineIV {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Saline4_250"; displayName = "$STR_ACE_Medical_Actions_Saline4_250";
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'SalineIV_250')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'SalineIV_250')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'SalineIV_250')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'SalineIV_250')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS
}; };
class RemoveTourniquet: Tourniquet { class RemoveTourniquet: Tourniquet {
displayName = "$STR_ACE_MEDICAL_ACTIONS_RemoveTourniquet"; displayName = "$STR_ACE_Medical_Actions_RemoveTourniquet";
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'RemoveTourniquet')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'RemoveTourniquet')] call DFUNC(canTreatCached));
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'RemoveTourniquet')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'RemoveTourniquet')] call DFUNC(treatment));
EXCEPTIONS EXCEPTIONS

View File

@ -1,5 +1,5 @@
class Medical { class Medical {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Medical"; displayName = "$STR_ACE_Medical_Actions_Medical";
runOnHover = 1; runOnHover = 1;
hotkey = "M"; hotkey = "M";
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
@ -29,7 +29,7 @@ class Medical {
}; };
// Advanced medical // Advanced medical
class FieldDressing { class FieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_FieldDressing"; displayName = "$STR_ACE_Medical_Actions_FieldDressing";
distance = 5.0; distance = 5.0;
condition = QUOTE([ARR_4(_player, _target, 'head', 'FieldDressing')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'head', 'FieldDressing')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
@ -40,35 +40,35 @@ class Medical {
icon = PATHTOF(UI\icons\bandage.paa); icon = PATHTOF(UI\icons\bandage.paa);
}; };
class PackingBandage: fieldDressing { class PackingBandage: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_PackingBandage"; displayName = "$STR_ACE_Medical_Actions_PackingBandage";
condition = QUOTE([ARR_4(_player, _target, 'head', 'PackingBandage')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'head', 'PackingBandage')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
statement = QUOTE([ARR_4(_player, _target, 'head', 'PackingBandage')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'head', 'PackingBandage')] call DFUNC(treatment));
icon = PATHTOF(UI\icons\packingBandage.paa); icon = PATHTOF(UI\icons\packingBandage.paa);
}; };
class ElasticBandage: fieldDressing { class ElasticBandage: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_ElasticBandage"; displayName = "$STR_ACE_Medical_Actions_ElasticBandage";
condition = QUOTE([ARR_4(_player, _target, 'head', 'ElasticBandage')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'head', 'ElasticBandage')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
statement = QUOTE([ARR_4(_player, _target, 'head', 'ElasticBandage')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'head', 'ElasticBandage')] call DFUNC(treatment));
icon = PATHTOF(UI\icons\bandage.paa); icon = PATHTOF(UI\icons\bandage.paa);
}; };
class QuikClot: fieldDressing { class QuikClot: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_QuikClot"; displayName = "$STR_ACE_Medical_Actions_QuikClot";
condition = QUOTE([ARR_4(_player, _target, 'head', 'QuikClot')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'head', 'QuikClot')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
statement = QUOTE([ARR_4(_player, _target, 'head', 'QuikClot')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'head', 'QuikClot')] call DFUNC(treatment));
icon = PATHTOF(UI\icons\bandage.paa); icon = PATHTOF(UI\icons\bandage.paa);
}; };
class CheckPulse: fieldDressing { class CheckPulse: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_CheckPulse"; displayName = "$STR_ACE_Medical_Actions_CheckPulse";
condition = QUOTE([ARR_4(_player, _target, 'head', 'CheckPulse')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'head', 'CheckPulse')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
statement = QUOTE([ARR_4(_player, _target, 'head', 'CheckPulse')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'head', 'CheckPulse')] call DFUNC(treatment));
icon = ""; icon = "";
}; };
class CheckBloodPressure: CheckPulse { class CheckBloodPressure: CheckPulse {
displayName = "$STR_ACE_MEDICAL_ACTIONS_CheckBloodPressure"; displayName = "$STR_ACE_Medical_Actions_CheckBloodPressure";
condition = QUOTE([ARR_4(_player, _target, 'head', 'CheckBloodPressure')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'head', 'CheckBloodPressure')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
statement = QUOTE([ARR_4(_player, _target, 'head', 'CheckBloodPressure')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'head', 'CheckBloodPressure')] call DFUNC(treatment));
@ -100,7 +100,7 @@ class Medical {
}; };
class TriageCard { class TriageCard {
displayName = "$STR_ACE_MEDICAL_ACTIONS_TriageCard"; displayName = "$STR_ACE_Medical_Actions_TriageCard";
distance = 2.0; distance = 2.0;
condition = "true"; condition = "true";
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
@ -113,7 +113,7 @@ class Medical {
// Advanced medical // Advanced medical
class FieldDressing { class FieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_FieldDressing"; displayName = "$STR_ACE_Medical_Actions_FieldDressing";
distance = 5.0; distance = 5.0;
condition = QUOTE([ARR_4(_player, _target, 'body', 'FieldDressing')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'body', 'FieldDressing')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
@ -124,21 +124,21 @@ class Medical {
icon = PATHTOF(UI\icons\bandage.paa); icon = PATHTOF(UI\icons\bandage.paa);
}; };
class PackingBandage: fieldDressing { class PackingBandage: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_PackingBandage"; displayName = "$STR_ACE_Medical_Actions_PackingBandage";
condition = QUOTE([ARR_4(_player, _target, 'body', 'PackingBandage')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'body', 'PackingBandage')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
statement = QUOTE([ARR_4(_player, _target, 'body', 'PackingBandage')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'body', 'PackingBandage')] call DFUNC(treatment));
icon = PATHTOF(UI\icons\packingBandage.paa); icon = PATHTOF(UI\icons\packingBandage.paa);
}; };
class ElasticBandage: fieldDressing { class ElasticBandage: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_ElasticBandage"; displayName = "$STR_ACE_Medical_Actions_ElasticBandage";
condition = QUOTE([ARR_4(_player, _target, 'body', 'ElasticBandage')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'body', 'ElasticBandage')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
statement = QUOTE([ARR_4(_player, _target, 'body', 'ElasticBandage')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'body', 'ElasticBandage')] call DFUNC(treatment));
icon = PATHTOF(UI\icons\bandage.paa); icon = PATHTOF(UI\icons\bandage.paa);
}; };
class QuikClot: fieldDressing { class QuikClot: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_QuikClot"; displayName = "$STR_ACE_Medical_Actions_QuikClot";
condition = QUOTE([ARR_4(_player, _target, 'body', 'QuikClot')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'body', 'QuikClot')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
statement = QUOTE([ARR_4(_player, _target, 'body', 'QuikClot')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'body', 'QuikClot')] call DFUNC(treatment));
@ -168,7 +168,7 @@ class Medical {
// Advanced medical // Advanced medical
class FieldDressing { class FieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_FieldDressing"; displayName = "$STR_ACE_Medical_Actions_FieldDressing";
distance = 5.0; distance = 5.0;
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'FieldDressing')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'FieldDressing')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
@ -179,28 +179,28 @@ class Medical {
icon = PATHTOF(UI\icons\bandage.paa); icon = PATHTOF(UI\icons\bandage.paa);
}; };
class PackingBandage: fieldDressing { class PackingBandage: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_PackingBandage"; displayName = "$STR_ACE_Medical_Actions_PackingBandage";
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'PackingBandage')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'PackingBandage')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'PackingBandage')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'PackingBandage')] call DFUNC(treatment));
icon = PATHTOF(UI\icons\packingBandage.paa); icon = PATHTOF(UI\icons\packingBandage.paa);
}; };
class ElasticBandage: fieldDressing { class ElasticBandage: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_ElasticBandage"; displayName = "$STR_ACE_Medical_Actions_ElasticBandage";
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'ElasticBandage')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'ElasticBandage')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'ElasticBandage')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'ElasticBandage')] call DFUNC(treatment));
icon = PATHTOF(UI\icons\bandage.paa); icon = PATHTOF(UI\icons\bandage.paa);
}; };
class QuikClot: fieldDressing { class QuikClot: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_QuikClot"; displayName = "$STR_ACE_Medical_Actions_QuikClot";
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'QuikClot')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'QuikClot')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'QuikClot')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'QuikClot')] call DFUNC(treatment));
icon = PATHTOF(UI\icons\bandage.paa); icon = PATHTOF(UI\icons\bandage.paa);
}; };
class Tourniquet: fieldDressing { class Tourniquet: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Tourniquet"; displayName = "$STR_ACE_Medical_Actions_Tourniquet";
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'Tourniquet')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'Tourniquet')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'Tourniquet')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'Tourniquet')] call DFUNC(treatment));
@ -228,20 +228,20 @@ class Medical {
icon = PATHTOF(UI\icons\autoInjector.paa); icon = PATHTOF(UI\icons\autoInjector.paa);
}; };
class CheckPulse: fieldDressing { class CheckPulse: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_CheckPulse"; displayName = "$STR_ACE_Medical_Actions_CheckPulse";
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckPulse')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckPulse')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckPulse')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckPulse')] call DFUNC(treatment));
icon = ""; icon = "";
}; };
class CheckBloodPressure: CheckPulse { class CheckBloodPressure: CheckPulse {
displayName = "$STR_ACE_MEDICAL_ACTIONS_CheckBloodPressure"; displayName = "$STR_ACE_Medical_Actions_CheckBloodPressure";
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckBloodPressure')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckBloodPressure')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckBloodPressure')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'CheckBloodPressure')] call DFUNC(treatment));
}; };
class RemoveTourniquet: Tourniquet { class RemoveTourniquet: Tourniquet {
displayName = "$STR_ACE_MEDICAL_ACTIONS_RemoveTourniquet"; displayName = "$STR_ACE_Medical_Actions_RemoveTourniquet";
condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'RemoveTourniquet')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_l', 'RemoveTourniquet')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'RemoveTourniquet')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_l', 'RemoveTourniquet')] call DFUNC(treatment));
@ -270,7 +270,7 @@ class Medical {
// Advanced medical // Advanced medical
class FieldDressing { class FieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_FieldDressing"; displayName = "$STR_ACE_Medical_Actions_FieldDressing";
distance = 5.0; distance = 5.0;
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'FieldDressing')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'FieldDressing')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
@ -281,26 +281,26 @@ class Medical {
icon = PATHTOF(UI\icons\bandage.paa); icon = PATHTOF(UI\icons\bandage.paa);
}; };
class PackingBandage: fieldDressing { class PackingBandage: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_PackingBandage"; displayName = "$STR_ACE_Medical_Actions_PackingBandage";
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'PackingBandage')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'PackingBandage')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'PackingBandage')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'PackingBandage')] call DFUNC(treatment));
icon = PATHTOF(UI\icons\packingBandage.paa); icon = PATHTOF(UI\icons\packingBandage.paa);
}; };
class ElasticBandage: fieldDressing { class ElasticBandage: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_ElasticBandage"; displayName = "$STR_ACE_Medical_Actions_ElasticBandage";
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'ElasticBandage')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'ElasticBandage')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'ElasticBandage')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'ElasticBandage')] call DFUNC(treatment));
}; };
class QuikClot: fieldDressing { class QuikClot: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_QuikClot"; displayName = "$STR_ACE_Medical_Actions_QuikClot";
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'QuikClot')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'QuikClot')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'QuikClot')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'QuikClot')] call DFUNC(treatment));
}; };
class Tourniquet: fieldDressing { class Tourniquet: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Tourniquet"; displayName = "$STR_ACE_Medical_Actions_Tourniquet";
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'Tourniquet')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'Tourniquet')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Tourniquet')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Tourniquet')] call DFUNC(treatment));
@ -326,20 +326,20 @@ class Medical {
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Epinephrine')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'Epinephrine')] call DFUNC(treatment));
}; };
class CheckPulse: fieldDressing { class CheckPulse: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_CheckPulse"; displayName = "$STR_ACE_Medical_Actions_CheckPulse";
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckPulse')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckPulse')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckPulse')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckPulse')] call DFUNC(treatment));
icon = ""; icon = "";
}; };
class CheckBloodPressure: CheckPulse { class CheckBloodPressure: CheckPulse {
displayName = "$STR_ACE_MEDICAL_ACTIONS_CheckBloodPressure"; displayName = "$STR_ACE_Medical_Actions_CheckBloodPressure";
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckBloodPressure')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckBloodPressure')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckBloodPressure')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'CheckBloodPressure')] call DFUNC(treatment));
}; };
class RemoveTourniquet: Tourniquet { class RemoveTourniquet: Tourniquet {
displayName = "$STR_ACE_MEDICAL_ACTIONS_RemoveTourniquet"; displayName = "$STR_ACE_Medical_Actions_RemoveTourniquet";
condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'RemoveTourniquet')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'hand_r', 'RemoveTourniquet')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'RemoveTourniquet')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'hand_r', 'RemoveTourniquet')] call DFUNC(treatment));
@ -369,7 +369,7 @@ class Medical {
// Advanced medical // Advanced medical
class FieldDressing { class FieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_FieldDressing"; displayName = "$STR_ACE_Medical_Actions_FieldDressing";
distance = 5.0; distance = 5.0;
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'FieldDressing')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'FieldDressing')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
@ -380,26 +380,26 @@ class Medical {
icon = PATHTOF(UI\icons\bandage.paa); icon = PATHTOF(UI\icons\bandage.paa);
}; };
class PackingBandage: fieldDressing { class PackingBandage: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_PackingBandage"; displayName = "$STR_ACE_Medical_Actions_PackingBandage";
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'PackingBandage')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'PackingBandage')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'PackingBandage')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'PackingBandage')] call DFUNC(treatment));
icon = PATHTOF(UI\icons\packingBandage.paa); icon = PATHTOF(UI\icons\packingBandage.paa);
}; };
class ElasticBandage: fieldDressing { class ElasticBandage: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_ElasticBandage"; displayName = "$STR_ACE_Medical_Actions_ElasticBandage";
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'ElasticBandage')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'ElasticBandage')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'ElasticBandage')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'ElasticBandage')] call DFUNC(treatment));
}; };
class QuikClot: fieldDressing { class QuikClot: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_QuikClot"; displayName = "$STR_ACE_Medical_Actions_QuikClot";
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'QuikClot')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'QuikClot')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'QuikClot')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'QuikClot')] call DFUNC(treatment));
}; };
class Tourniquet: fieldDressing { class Tourniquet: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Tourniquet"; displayName = "$STR_ACE_Medical_Actions_Tourniquet";
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'Tourniquet')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'Tourniquet')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Tourniquet')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Tourniquet')] call DFUNC(treatment));
@ -426,7 +426,7 @@ class Medical {
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Epinephrine')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'Epinephrine')] call DFUNC(treatment));
}; };
class RemoveTourniquet: Tourniquet { class RemoveTourniquet: Tourniquet {
displayName = "$STR_ACE_MEDICAL_ACTIONS_RemoveTourniquet"; displayName = "$STR_ACE_Medical_Actions_RemoveTourniquet";
condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'RemoveTourniquet')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_l', 'RemoveTourniquet')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'RemoveTourniquet')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_l', 'RemoveTourniquet')] call DFUNC(treatment));
@ -456,7 +456,7 @@ class Medical {
// Advanced medical // Advanced medical
class FieldDressing { class FieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_FieldDressing"; displayName = "$STR_ACE_Medical_Actions_FieldDressing";
distance = 5.0; distance = 5.0;
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'FieldDressing')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'FieldDressing')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
@ -467,26 +467,26 @@ class Medical {
icon = PATHTOF(UI\icons\bandage.paa); icon = PATHTOF(UI\icons\bandage.paa);
}; };
class PackingBandage: fieldDressing { class PackingBandage: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_PackingBandage"; displayName = "$STR_ACE_Medical_Actions_PackingBandage";
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'PackingBandage')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'PackingBandage')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'PackingBandage')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'PackingBandage')] call DFUNC(treatment));
icon = PATHTOF(UI\icons\packingBandage.paa); icon = PATHTOF(UI\icons\packingBandage.paa);
}; };
class ElasticBandage: fieldDressing { class ElasticBandage: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_ElasticBandage"; displayName = "$STR_ACE_Medical_Actions_ElasticBandage";
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'ElasticBandage')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'ElasticBandage')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'ElasticBandage')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'ElasticBandage')] call DFUNC(treatment));
}; };
class QuikClot: fieldDressing { class QuikClot: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_QuikClot"; displayName = "$STR_ACE_Medical_Actions_QuikClot";
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'QuikClot')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'QuikClot')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'QuikClot')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'QuikClot')] call DFUNC(treatment));
}; };
class Tourniquet: fieldDressing { class Tourniquet: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Tourniquet"; displayName = "$STR_ACE_Medical_Actions_Tourniquet";
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'Tourniquet')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'Tourniquet')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Tourniquet')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Tourniquet')] call DFUNC(treatment));
@ -512,7 +512,7 @@ class Medical {
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Epinephrine')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'Epinephrine')] call DFUNC(treatment));
}; };
class RemoveTourniquet: Tourniquet { class RemoveTourniquet: Tourniquet {
displayName = "$STR_ACE_MEDICAL_ACTIONS_RemoveTourniquet"; displayName = "$STR_ACE_Medical_Actions_RemoveTourniquet";
condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'RemoveTourniquet')] call DFUNC(canTreatCached)); condition = QUOTE([ARR_4(_player, _target, 'leg_r', 'RemoveTourniquet')] call DFUNC(canTreatCached));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'RemoveTourniquet')] call DFUNC(treatment)); statement = QUOTE([ARR_4(_player, _target, 'leg_r', 'RemoveTourniquet')] call DFUNC(treatment));

View File

@ -56,8 +56,8 @@ class ACE_Medical_Actions {
litter[] = {}; litter[] = {};
}; };
class BodyBag: Bandage { class BodyBag: Bandage {
displayName = "$STR_ACE_MEDICAL_PlaceInBodyBag"; displayName = "$STR_ACE_Medical_PlaceInBodyBag";
displayNameProgress = "$STR_ACE_MEDICAL_PlacingInBodyBag"; displayNameProgress = "$STR_ACE_Medical_PlacingInBodyBag";
treatmentLocations[] = {"All"}; treatmentLocations[] = {"All"};
requiredMedic = 0; requiredMedic = 0;
treatmentTime = 2; treatmentTime = 2;
@ -72,8 +72,8 @@ class ACE_Medical_Actions {
litter[] = {}; litter[] = {};
}; };
class Diagnose: Bandage { class Diagnose: Bandage {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Diagnose"; displayName = "$STR_ACE_Medical_Actions_Diagnose";
displayNameProgress = "$STR_ACE_MEDICAL_ACTIONS_Diagnosing"; displayNameProgress = "$STR_ACE_Medical_Actions_Diagnosing";
treatmentLocations[] = {"All"}; treatmentLocations[] = {"All"};
requiredMedic = 0; requiredMedic = 0;
treatmentTime = 1; treatmentTime = 1;
@ -225,7 +225,7 @@ class ACE_Medical_Actions {
}; };
class CheckPulse: fieldDressing { class CheckPulse: fieldDressing {
displayName = ""; displayName = "";
displayNameProgress = "$STR_ACE_MEDICAL_CHECK_PULSE_CONTENT"; displayNameProgress = "$STR_ACE_Medical_Check_Pulse_Content";
treatmentLocations[] = {"All"}; treatmentLocations[] = {"All"};
requiredMedic = 0; requiredMedic = 0;
treatmentTime = 2; treatmentTime = 2;
@ -240,11 +240,11 @@ class ACE_Medical_Actions {
}; };
class CheckBloodPressure: CheckPulse { class CheckBloodPressure: CheckPulse {
callbackSuccess = QUOTE(DFUNC(actionCheckBloodPressure)); callbackSuccess = QUOTE(DFUNC(actionCheckBloodPressure));
displayNameProgress = "$STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_CONTENT"; displayNameProgress = "$STR_ACE_Medical_Check_Bloodpressure_Content";
}; };
class CheckResponse: CheckPulse { class CheckResponse: CheckPulse {
callbackSuccess = QUOTE(DFUNC(actionCheckResponse)); callbackSuccess = QUOTE(DFUNC(actionCheckResponse));
displayNameProgress = "$STR_ACE_MEDICAL_CHECK_RESPONSE_CONTENT"; displayNameProgress = "$STR_ACE_Medical_Check_Response_Content";
}; };
class RemoveTourniquet: CheckPulse { class RemoveTourniquet: CheckPulse {
treatmentTime = 2.5; treatmentTime = 2.5;
@ -252,8 +252,8 @@ class ACE_Medical_Actions {
condition = QUOTE([ARR_2(_this select 1, _this select 2)] call FUNC(hasTourniquetAppliedTo)); condition = QUOTE([ARR_2(_this select 1, _this select 2)] call FUNC(hasTourniquetAppliedTo));
}; };
class CPR: fieldDressing { class CPR: fieldDressing {
displayName = "$STR_ACE_MEDICAL_ACTIONS_CPR"; displayName = "$STR_ACE_Medical_Actions_CPR";
displayNameProgress = "$STR_ACE_MEDICAL_ACTIONS_PerformingCPR"; displayNameProgress = "$STR_ACE_Medical_Actions_PerformingCPR";
treatmentLocations[] = {"All"}; treatmentLocations[] = {"All"};
requiredMedic = 0; requiredMedic = 0;
treatmentTime = 15; treatmentTime = 15;
@ -272,8 +272,8 @@ class ACE_Medical_Actions {
litter[] = {}; litter[] = {};
}; };
class BodyBag: fieldDressing { class BodyBag: fieldDressing {
displayName = "$STR_ACE_MEDICAL_PlaceInBodyBag"; displayName = "$STR_ACE_Medical_PlaceInBodyBag";
displayNameProgress = "$STR_ACE_MEDICAL_PlacingInBodyBag"; displayNameProgress = "$STR_ACE_Medical_PlacingInBodyBag";
treatmentLocations[] = {"All"}; treatmentLocations[] = {"All"};
requiredMedic = 0; requiredMedic = 0;
treatmentTime = 2; treatmentTime = 2;

View File

@ -148,4 +148,13 @@ class ACE_Settings {
typeName = "BOOL"; typeName = "BOOL";
value = 0; value = 0;
}; };
class GVAR(menuTypeStyle) {
displayName = "$STR_ACE_Medical_menuTypeDisplay";
description = "$STR_ACE_Medical_menuTypeDescription";
typeName = "SCALAR";
value = 0;
values[] = {"$STR_ACE_Medical_useSelection"/*, "$STR_ACE_Medical_useRadial"*/};
// isClientSettable = 1;
};
}; };

View File

@ -438,20 +438,23 @@ class CfgVehicles {
class ACE_Actions { class ACE_Actions {
// Include actions in body parts for treatment while in the open // Include actions in body parts for treatment while in the open
#define EXCEPTIONS exceptions[] = {}; #define EXCEPTIONS exceptions[] = {};
#define ACTION_CONDITION condition = QUOTE(GVAR(menuTypeStyle) == 0);
#include "ACE_Medical_Actions.hpp" #include "ACE_Medical_Actions.hpp"
// Create a consolidates medical menu for treatment while boarded // Create a consolidates medical menu for treatment while boarded
class ACE_MainActions { class ACE_MainActions {
class Medical { class Medical {
displayName = "$STR_ACE_MEDICAL_ACTIONS_Medical"; displayName = "$STR_ACE_Medical_Actions_Medical";
runOnHover = 1; runOnHover = 1;
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
condition = QUOTE(vehicle _target != _target && vehicle _target == vehicle _player); condition = QUOTE((vehicle _target != _target && vehicle _target == vehicle _player) || GVAR(menuTypeStyle) == 1);
statement = QUOTE([ARR_3(_target, true, 0)] call DFUNC(displayPatientInformation)); statement = QUOTE([ARR_3(_target, true, 0)] call DFUNC(displayPatientInformation));
icon = PATHTOF(UI\icons\medical_cross.paa); icon = PATHTOF(UI\icons\medical_cross.paa);
#undef EXCEPTIONS #undef EXCEPTIONS
#undef ACTION_CONDITION
#define EXCEPTIONS exceptions[] = {"isNotInside"}; #define EXCEPTIONS exceptions[] = {"isNotInside"};
#define ACTION_CONDITION condition = "true";
#include "ACE_Medical_Actions.hpp" #include "ACE_Medical_Actions.hpp"
}; };
class GVAR(loadPatient) { class GVAR(loadPatient) {
@ -650,7 +653,7 @@ class CfgVehicles {
side = -1; side = -1;
model = QUOTE(PATHTOF(data\bodybag.p3d)); model = QUOTE(PATHTOF(data\bodybag.p3d));
icon = ""; icon = "";
displayName = $STR_ACE_MEDICAL_BODYBAG_DISPLAY; displayName = $STR_ACE_Medical_Bodybag_Display;
EGVAR(dragging,canDrag) = 1; EGVAR(dragging,canDrag) = 1;
EGVAR(dragging,dragPosition[]) = {0,1.2,0}; EGVAR(dragging,dragPosition[]) = {0,1.2,0};
EGVAR(dragging,dragDirection) = 0; EGVAR(dragging,dragDirection) = 0;
@ -703,7 +706,7 @@ class CfgVehicles {
class ACE_fieldDressingItem: Item_Base_F { class ACE_fieldDressingItem: Item_Base_F {
scope = 2; scope = 2;
scopeCurator = 2; scopeCurator = 2;
displayName = $STR_ACE_MEDICAL_BANDAGE_BASIC_DISPLAY; displayName = $STR_ACE_Medical_Bandage_Basic_Display;
author = "$STR_ACE_Common_ACETeam"; author = "$STR_ACE_Common_ACETeam";
vehicleClass = "Items"; vehicleClass = "Items";
class TransportItems { class TransportItems {
@ -716,7 +719,7 @@ class CfgVehicles {
class ACE_packingBandageItem: Item_Base_F { class ACE_packingBandageItem: Item_Base_F {
scope = 2; scope = 2;
scopeCurator = 2; scopeCurator = 2;
displayName = $STR_ACE_MEDICAL_PACKING_BANDAGE_DISPLAY; displayName = $STR_ACE_Medical_Packing_Bandage_Display;
author = "$STR_ACE_Common_ACETeam"; author = "$STR_ACE_Common_ACETeam";
vehicleClass = "Items"; vehicleClass = "Items";
class TransportItems { class TransportItems {
@ -729,7 +732,7 @@ class CfgVehicles {
class ACE_elasticBandageItem: Item_Base_F { class ACE_elasticBandageItem: Item_Base_F {
scope = 2; scope = 2;
scopeCurator = 2; scopeCurator = 2;
displayName = $STR_ACE_MEDICAL_BANDAGE_ELASTIC_DISPLAY; displayName = $STR_ACE_Medical_Bandage_Elastic_Display;
author = "$STR_ACE_Common_ACETeam"; author = "$STR_ACE_Common_ACETeam";
vehicleClass = "Items"; vehicleClass = "Items";
class TransportItems { class TransportItems {
@ -742,7 +745,7 @@ class CfgVehicles {
class ACE_tourniquetItem: Item_Base_F { class ACE_tourniquetItem: Item_Base_F {
scope = 2; scope = 2;
scopeCurator = 2; scopeCurator = 2;
displayName = $STR_ACE_MEDICAL_TOURNIQUET_DISPLAY; displayName = $STR_ACE_Medical_Tourniquet_Display;
author = "$STR_ACE_Common_ACETeam"; author = "$STR_ACE_Common_ACETeam";
vehicleClass = "Items"; vehicleClass = "Items";
class TransportItems { class TransportItems {
@ -755,7 +758,7 @@ class CfgVehicles {
class ACE_morphineItem: Item_Base_F { class ACE_morphineItem: Item_Base_F {
scope = 2; scope = 2;
scopeCurator = 2; scopeCurator = 2;
displayName = $STR_ACE_MEDICAL_MORPHINE_DISPLAY; displayName = $STR_ACE_Medical_Morphine_Display;
author = "$STR_ACE_Common_ACETeam"; author = "$STR_ACE_Common_ACETeam";
vehicleClass = "Items"; vehicleClass = "Items";
class TransportItems { class TransportItems {
@ -768,7 +771,7 @@ class CfgVehicles {
class ACE_atropineItem: Item_Base_F { class ACE_atropineItem: Item_Base_F {
scope = 2; scope = 2;
scopeCurator = 2; scopeCurator = 2;
displayName = $STR_ACE_MEDICAL_ATROPINE_DISPLAY; displayName = $STR_ACE_Medical_Atropine_Display;
author = "$STR_ACE_Common_ACETeam"; author = "$STR_ACE_Common_ACETeam";
vehicleClass = "Items"; vehicleClass = "Items";
class TransportItems { class TransportItems {
@ -781,7 +784,7 @@ class CfgVehicles {
class ACE_epinephrineItem: Item_Base_F { class ACE_epinephrineItem: Item_Base_F {
scope = 2; scope = 2;
scopeCurator = 2; scopeCurator = 2;
displayName = $STR_ACE_MEDICAL_EPINEPHRINE_DISPLAY; displayName = $STR_ACE_Medical_Epinephrine_Display;
author = "$STR_ACE_Common_ACETeam"; author = "$STR_ACE_Common_ACETeam";
vehicleClass = "Items"; vehicleClass = "Items";
class TransportItems { class TransportItems {
@ -794,7 +797,7 @@ class CfgVehicles {
class ACE_plasmaIVItem: Item_Base_F { class ACE_plasmaIVItem: Item_Base_F {
scope = 2; scope = 2;
scopeCurator = 2; scopeCurator = 2;
displayName = $STR_ACE_MEDICAL_PLASMA_IV; displayName = $STR_ACE_Medical_Plasma_IV;
author = "$STR_ACE_Common_ACETeam"; author = "$STR_ACE_Common_ACETeam";
vehicleClass = "Items"; vehicleClass = "Items";
class TransportItems { class TransportItems {
@ -808,7 +811,7 @@ class CfgVehicles {
class ACE_bloodIVItem: Item_Base_F { class ACE_bloodIVItem: Item_Base_F {
scope = 2; scope = 2;
scopeCurator = 2; scopeCurator = 2;
displayName = $STR_ACE_MEDICAL_BLOOD_IV; displayName = $STR_ACE_Medical_Blood_IV;
author = "$STR_ACE_Common_ACETeam"; author = "$STR_ACE_Common_ACETeam";
vehicleClass = "Items"; vehicleClass = "Items";
class TransportItems { class TransportItems {
@ -821,7 +824,7 @@ class CfgVehicles {
class ACE_salineIVItem: Item_Base_F { class ACE_salineIVItem: Item_Base_F {
scope = 2; scope = 2;
scopeCurator = 2; scopeCurator = 2;
displayName = $STR_ACE_MEDICAL_SALINE_IV; displayName = $STR_ACE_Medical_Saline_IV;
author = "$STR_ACE_Common_ACETeam"; author = "$STR_ACE_Common_ACETeam";
vehicleClass = "Items"; vehicleClass = "Items";
class TransportItems { class TransportItems {
@ -834,7 +837,7 @@ class CfgVehicles {
class ACE_quikClotItem: Item_Base_F { class ACE_quikClotItem: Item_Base_F {
scope = 2; scope = 2;
scopeCurator = 2; scopeCurator = 2;
displayName = $STR_ACE_MEDICAL_QUIKCLOT_DISPLAY; displayName = $STR_ACE_Medical_QuikClot_Display;
author = "$STR_ACE_Common_ACETeam"; author = "$STR_ACE_Common_ACETeam";
vehicleClass = "Items"; vehicleClass = "Items";
class TransportItems { class TransportItems {
@ -847,7 +850,7 @@ class CfgVehicles {
class ACE_personalAidKitItem: Item_Base_F { class ACE_personalAidKitItem: Item_Base_F {
scope = 2; scope = 2;
scopeCurator = 2; scopeCurator = 2;
displayName = $STR_ACE_MEDICAL_AID_KIT_DISPLAY; displayName = $STR_ACE_Medical_Aid_Kit_Display;
author = "$STR_ACE_Common_ACETeam"; author = "$STR_ACE_Common_ACETeam";
vehicleClass = "Items"; vehicleClass = "Items";
class TransportItems { class TransportItems {
@ -860,7 +863,7 @@ class CfgVehicles {
class ACE_surgicalKitItem: Item_Base_F { class ACE_surgicalKitItem: Item_Base_F {
scope = 2; scope = 2;
scopeCurator = 2; scopeCurator = 2;
displayName = $STR_ACE_MEDICAL_SURGICALKIT_DISPLAY; displayName = $STR_ACE_Medical_SurgicalKit_Display;
author = "$STR_ACE_Common_ACETeam"; author = "$STR_ACE_Common_ACETeam";
vehicleClass = "Items"; vehicleClass = "Items";
class TransportItems { class TransportItems {
@ -873,7 +876,7 @@ class CfgVehicles {
class ACE_bodyBagItem: Item_Base_F { class ACE_bodyBagItem: Item_Base_F {
scope = 2; scope = 2;
scopeCurator = 2; scopeCurator = 2;
displayName = $STR_ACE_MEDICAL_BODYBAG_DISPLAY; displayName = $STR_ACE_Medical_Bodybag_Display;
author = "$STR_ACE_Common_ACETeam"; author = "$STR_ACE_Common_ACETeam";
vehicleClass = "Items"; vehicleClass = "Items";
class TransportItems { class TransportItems {

View File

@ -24,64 +24,64 @@ class CfgWeapons {
scope = 2; scope = 2;
model = QUOTE(PATHTOF(data\bandage.p3d)); model = QUOTE(PATHTOF(data\bandage.p3d));
picture = QUOTE(PATHTOF(ui\items\fieldDressing_x_ca.paa)); picture = QUOTE(PATHTOF(ui\items\fieldDressing_x_ca.paa));
displayName = $STR_ACE_MEDICAL_BANDAGE_BASIC_DISPLAY; displayName = $STR_ACE_Medical_Bandage_Basic_Display;
descriptionShort = $STR_ACE_MEDICAL_BANDAGE_BASIC_DESC_SHORT; descriptionShort = $STR_ACE_Medical_Bandage_Basic_Desc_Short;
descriptionUse = $STR_ACE_MEDICAL_BANDAGE_BASIC_DESC_USE; descriptionUse = $STR_ACE_Medical_Bandage_Basic_Desc_Use;
class ItemInfo: InventoryItem_Base_F { class ItemInfo: InventoryItem_Base_F {
mass = 1; mass = 1;
}; };
}; };
class ACE_packingBandage: ACE_ItemCore { class ACE_packingBandage: ACE_ItemCore {
scope = 2; scope = 2;
displayName = $STR_ACE_MEDICAL_PACKING_BANDAGE_DISPLAY; displayName = $STR_ACE_Medical_Packing_Bandage_Display;
picture = QUOTE(PATHTOF(ui\items\packingBandage_x_ca.paa)); picture = QUOTE(PATHTOF(ui\items\packingBandage_x_ca.paa));
model = QUOTE(PATHTOF(data\packingbandage.p3d)); model = QUOTE(PATHTOF(data\packingbandage.p3d));
descriptionShort = $STR_ACE_MEDICAL_PACKING_BANDAGE_DESC_SHORT; descriptionShort = $STR_ACE_Medical_Packing_Bandage_Desc_Short;
descriptionUse = $STR_ACE_MEDICAL_PACKING_BANDAGE_DESC_USE; descriptionUse = $STR_ACE_Medical_Packing_Bandage_Desc_Use;
class ItemInfo: InventoryItem_Base_F { class ItemInfo: InventoryItem_Base_F {
mass = 1; mass = 1;
}; };
}; };
class ACE_elasticBandage: ACE_ItemCore { class ACE_elasticBandage: ACE_ItemCore {
scope = 2; scope = 2;
displayName = $STR_ACE_MEDICAL_BANDAGE_ELASTIC_DISPLAY; displayName = $STR_ACE_Medical_Bandage_Elastic_Display;
picture = QUOTE(PATHTOF(ui\items\elasticBandage_x_ca.paa)); picture = QUOTE(PATHTOF(ui\items\elasticBandage_x_ca.paa));
model = "\A3\Structures_F_EPA\Items\Medical\Bandage_F.p3d"; model = "\A3\Structures_F_EPA\Items\Medical\Bandage_F.p3d";
descriptionShort = $STR_ACE_MEDICAL_BANDAGE_ELASTIC_DESC_SHORT; descriptionShort = $STR_ACE_Medical_Bandage_Elastic_Desc_Short;
descriptionUse = $STR_ACE_MEDICAL_BANDAGE_ELASTIC_DESC_USE; descriptionUse = $STR_ACE_Medical_Bandage_Elastic_Desc_Use;
class ItemInfo: InventoryItem_Base_F { class ItemInfo: InventoryItem_Base_F {
mass = 1; mass = 1;
}; };
}; };
class ACE_tourniquet: ACE_ItemCore { class ACE_tourniquet: ACE_ItemCore {
scope = 2; scope = 2;
displayName = $STR_ACE_MEDICAL_TOURNIQUET_DISPLAY; displayName = $STR_ACE_Medical_Tourniquet_Display;
picture = QUOTE(PATHTOF(ui\items\tourniquet_x_ca.paa)); picture = QUOTE(PATHTOF(ui\items\tourniquet_x_ca.paa));
model = QUOTE(PATHTOF(data\tourniquet.p3d)); model = QUOTE(PATHTOF(data\tourniquet.p3d));
descriptionShort = $STR_ACE_MEDICAL_TOURNIQUET_DESC_SHORT; descriptionShort = $STR_ACE_Medical_Tourniquet_Desc_Short;
descriptionUse = $STR_ACE_MEDICAL_TOURNIQUET_DESC_USE; descriptionUse = $STR_ACE_Medical_Tourniquet_Desc_Use;
class ItemInfo: InventoryItem_Base_F { class ItemInfo: InventoryItem_Base_F {
mass = 1; mass = 1;
}; };
}; };
class ACE_morphine: ACE_ItemCore { class ACE_morphine: ACE_ItemCore {
scope = 2; scope = 2;
displayName = $STR_ACE_MEDICAL_MORPHINE_DISPLAY; displayName = $STR_ACE_Medical_Morphine_Display;
picture = QUOTE(PATHTOF(ui\items\morphine_x_ca.paa)); picture = QUOTE(PATHTOF(ui\items\morphine_x_ca.paa));
model = QUOTE(PATHTOF(data\morphine.p3d)); model = QUOTE(PATHTOF(data\morphine.p3d));
descriptionShort = $STR_ACE_MEDICAL_MORPHINE_DESC_SHORT; descriptionShort = $STR_ACE_Medical_Morphine_Desc_Short;
descriptionUse = $STR_ACE_MEDICAL_MORPHINE_DESC_USE; descriptionUse = $STR_ACE_Medical_Morphine_Desc_Use;
class ItemInfo: InventoryItem_Base_F { class ItemInfo: InventoryItem_Base_F {
mass = 1; mass = 1;
}; };
}; };
class ACE_atropine: ACE_ItemCore { class ACE_atropine: ACE_ItemCore {
scope = 2; scope = 2;
displayName = $STR_ACE_MEDICAL_ATROPINE_DISPLAY; displayName = $STR_ACE_Medical_Atropine_Display;
picture = QUOTE(PATHTOF(ui\items\atropine_x_ca.paa)); picture = QUOTE(PATHTOF(ui\items\atropine_x_ca.paa));
model = QUOTE(PATHTOF(data\atropine.p3d)); model = QUOTE(PATHTOF(data\atropine.p3d));
descriptionShort = $STR_ACE_MEDICAL_ATROPINE_DESC_SHORT; descriptionShort = $STR_ACE_Medical_Atropine_Desc_Short;
descriptionUse = $STR_ACE_MEDICAL_ATROPINE_DESC_USE; descriptionUse = $STR_ACE_Medical_Atropine_Desc_Use;
class ItemInfo: InventoryItem_Base_F { class ItemInfo: InventoryItem_Base_F {
mass = 1; mass = 1;
@ -89,33 +89,33 @@ class CfgWeapons {
}; };
class ACE_epinephrine: ACE_ItemCore { class ACE_epinephrine: ACE_ItemCore {
scope = 2; scope = 2;
displayName = $STR_ACE_MEDICAL_EPINEPHRINE_DISPLAY; displayName = $STR_ACE_Medical_Epinephrine_Display;
picture = QUOTE(PATHTOF(ui\items\epinephrine_x_ca.paa)); picture = QUOTE(PATHTOF(ui\items\epinephrine_x_ca.paa));
model = QUOTE(PATHTOF(data\epinephrine.p3d)); model = QUOTE(PATHTOF(data\epinephrine.p3d));
descriptionShort = $STR_ACE_MEDICAL_EPINEPHRINE_DESC_SHORT; descriptionShort = $STR_ACE_Medical_Epinephrine_Desc_Short;
descriptionUse = $STR_ACE_MEDICAL_EPINEPHRINE_DESC_USE; descriptionUse = $STR_ACE_Medical_Epinephrine_Desc_Use;
class ItemInfo: InventoryItem_Base_F { class ItemInfo: InventoryItem_Base_F {
mass = 1; mass = 1;
}; };
}; };
class ACE_plasmaIV: ACE_ItemCore { class ACE_plasmaIV: ACE_ItemCore {
scope = 2; scope = 2;
displayName = $STR_ACE_MEDICAL_PLASMA_IV; displayName = $STR_ACE_Medical_Plasma_IV;
picture = QUOTE(PATHTOF(ui\items\plasmaIV_x_ca.paa)); picture = QUOTE(PATHTOF(ui\items\plasmaIV_x_ca.paa));
descriptionShort = $STR_ACE_MEDICAL_PLASMA_IV_DESC_SHORT; descriptionShort = $STR_ACE_Medical_Plasma_IV_Desc_Short;
descriptionUse = $STR_ACE_MEDICAL_PLASMA_IV_DESC_USE; descriptionUse = $STR_ACE_Medical_Plasma_IV_Desc_Use;
class ItemInfo: InventoryItem_Base_F { class ItemInfo: InventoryItem_Base_F {
mass = 10; mass = 10;
}; };
}; };
class ACE_plasmaIV_500: ACE_plasmaIV { class ACE_plasmaIV_500: ACE_plasmaIV {
displayName = $STR_ACE_MEDICAL_PLASMA_IV_500; displayName = $STR_ACE_Medical_Plasma_IV_500;
class ItemInfo: InventoryItem_Base_F { class ItemInfo: InventoryItem_Base_F {
mass = 5; mass = 5;
}; };
}; };
class ACE_plasmaIV_250: ACE_plasmaIV { class ACE_plasmaIV_250: ACE_plasmaIV {
displayName = $STR_ACE_MEDICAL_PLASMA_IV_250; displayName = $STR_ACE_Medical_Plasma_IV_250;
class ItemInfo: InventoryItem_Base_F { class ItemInfo: InventoryItem_Base_F {
mass = 2.5; mass = 2.5;
}; };
@ -123,86 +123,86 @@ class CfgWeapons {
class ACE_bloodIV: ACE_ItemCore { class ACE_bloodIV: ACE_ItemCore {
scope = 2; scope = 2;
model = "\A3\Structures_F_EPA\Items\Medical\BloodBag_F.p3d"; model = "\A3\Structures_F_EPA\Items\Medical\BloodBag_F.p3d";
displayName = $STR_ACE_MEDICAL_BLOOD_IV; displayName = $STR_ACE_Medical_Blood_IV;
picture = QUOTE(PATHTOF(ui\items\bloodIV_x_ca.paa)); picture = QUOTE(PATHTOF(ui\items\bloodIV_x_ca.paa));
descriptionShort = $STR_ACE_MEDICAL_BLOOD_IV_DESC_SHORT; descriptionShort = $STR_ACE_Medical_Blood_IV_Desc_Short;
descriptionUse = $STR_ACE_MEDICAL_BLOOD_IV_DESC_USE; descriptionUse = $STR_ACE_Medical_Blood_IV_Desc_Use;
class ItemInfo: InventoryItem_Base_F { class ItemInfo: InventoryItem_Base_F {
mass = 10; mass = 10;
}; };
}; };
class ACE_bloodIV_500: ACE_bloodIV { class ACE_bloodIV_500: ACE_bloodIV {
displayName = $STR_ACE_MEDICAL_BLOOD_IV_500; displayName = $STR_ACE_Medical_Blood_IV_500;
class ItemInfo: InventoryItem_Base_F { class ItemInfo: InventoryItem_Base_F {
mass = 5; mass = 5;
}; };
}; };
class ACE_bloodIV_250: ACE_bloodIV { class ACE_bloodIV_250: ACE_bloodIV {
displayName = $STR_ACE_MEDICAL_BLOOD_IV_250; displayName = $STR_ACE_Medical_Blood_IV_250;
class ItemInfo: InventoryItem_Base_F { class ItemInfo: InventoryItem_Base_F {
mass = 2.5; mass = 2.5;
}; };
}; };
class ACE_salineIV: ACE_ItemCore { class ACE_salineIV: ACE_ItemCore {
scope = 2; scope = 2;
displayName = $STR_ACE_MEDICAL_SALINE_IV; displayName = $STR_ACE_Medical_Saline_IV;
picture = QUOTE(PATHTOF(ui\items\salineIV_x_ca.paa)); picture = QUOTE(PATHTOF(ui\items\salineIV_x_ca.paa));
descriptionShort = $STR_ACE_MEDICAL_SALINE_IV_DESC_SHORT; descriptionShort = $STR_ACE_Medical_Saline_IV_Desc_Short;
descriptionUse = $STR_ACE_MEDICAL_SALINE_IV_DESC_USE; descriptionUse = $STR_ACE_Medical_Saline_IV_Desc_Use;
class ItemInfo: InventoryItem_Base_F { class ItemInfo: InventoryItem_Base_F {
mass = 10; mass = 10;
}; };
}; };
class ACE_salineIV_500: ACE_salineIV { class ACE_salineIV_500: ACE_salineIV {
displayName = $STR_ACE_MEDICAL_SALINE_IV_500; displayName = $STR_ACE_Medical_Saline_IV_500;
class ItemInfo: InventoryItem_Base_F { class ItemInfo: InventoryItem_Base_F {
mass = 2.5; mass = 2.5;
}; };
}; };
class ACE_salineIV_250: ACE_salineIV { class ACE_salineIV_250: ACE_salineIV {
displayName = $STR_ACE_MEDICAL_SALINE_IV_250; displayName = $STR_ACE_Medical_Saline_IV_250;
class ItemInfo: InventoryItem_Base_F { class ItemInfo: InventoryItem_Base_F {
mass = 2.5; mass = 2.5;
}; };
}; };
class ACE_quikclot: ACE_ItemCore { class ACE_quikclot: ACE_ItemCore {
scope = 2; scope = 2;
displayName = $STR_ACE_MEDICAL_QUIKCLOT_DISPLAY; displayName = $STR_ACE_Medical_QuikClot_Display;
picture = QUOTE(PATHTOF(ui\items\quickclot_x_ca.paa)); picture = QUOTE(PATHTOF(ui\items\quickclot_x_ca.paa));
descriptionShort = $STR_ACE_MEDICAL_QUIKCLOT_DESC_SHORT; descriptionShort = $STR_ACE_Medical_QuikClot_Desc_Short;
descriptionUse = $STR_ACE_MEDICAL_QUIKCLOT_DESC_USE; descriptionUse = $STR_ACE_Medical_QuikClot_Desc_Use;
class ItemInfo: InventoryItem_Base_F { class ItemInfo: InventoryItem_Base_F {
mass = 1; mass = 1;
}; };
}; };
class ACE_personalAidKit: ACE_ItemCore { class ACE_personalAidKit: ACE_ItemCore {
scope = 2; scope = 2;
displayName = $STR_ACE_MEDICAL_AID_KIT_DISPLAY; displayName = $STR_ACE_Medical_Aid_Kit_Display;
picture = QUOTE(PATHTOF(ui\items\personal_aid_kit_x_ca.paa)); picture = QUOTE(PATHTOF(ui\items\personal_aid_kit_x_ca.paa));
descriptionShort = $STR_ACE_MEDICAL_AID_KIT_DESC_SHORT; descriptionShort = $STR_ACE_Medical_Aid_Kit_Desc_Short;
descriptionUse = $STR_ACE_MEDICAL_AID_KIT_DESC_USE; descriptionUse = $STR_ACE_Medical_Aid_Kit_Desc_Use;
class ItemInfo: InventoryItem_Base_F { class ItemInfo: InventoryItem_Base_F {
mass = 2; mass = 2;
}; };
}; };
class ACE_surgicalKit: ACE_ItemCore { class ACE_surgicalKit: ACE_ItemCore {
scope=2; scope=2;
displayName= $STR_ACE_MEDICAL_SURGICALKIT_DISPLAY; displayName= $STR_ACE_Medical_SurgicalKit_Display;
model = QUOTE(PATHTOF(data\surgical_kit.p3d)); model = QUOTE(PATHTOF(data\surgical_kit.p3d));
picture = QUOTE(PATHTOF(ui\items\surgicalKit_x_ca.paa)); picture = QUOTE(PATHTOF(ui\items\surgicalKit_x_ca.paa));
descriptionShort = $STR_ACE_MEDICAL_SURGICALKIT_DESC_SHORT; descriptionShort = $STR_ACE_Medical_SurgicalKit_Desc_Short;
descriptionUse = $STR_ACE_MEDICAL_SURGICALKIT_DESC_USE; descriptionUse = $STR_ACE_Medical_SurgicalKit_Desc_Use;
class ItemInfo: InventoryItem_Base_F { class ItemInfo: InventoryItem_Base_F {
mass = 5; mass = 5;
}; };
}; };
class ACE_bodyBag: ACE_ItemCore { class ACE_bodyBag: ACE_ItemCore {
scope=2; scope=2;
displayName= $STR_ACE_MEDICAL_BODYBAG_DISPLAY; displayName= $STR_ACE_Medical_Bodybag_Display;
model = QUOTE(PATHTOF(data\bodybagItem.p3d)); model = QUOTE(PATHTOF(data\bodybagItem.p3d));
picture = QUOTE(PATHTOF(ui\items\bodybag_x_ca.paa)); picture = QUOTE(PATHTOF(ui\items\bodybag_x_ca.paa));
descriptionShort = $STR_ACE_MEDICAL_BODYBAG_DESC_SHORT; descriptionShort = $STR_ACE_Medical_Bodybag_Desc_Short;
descriptionUse = $STR_ACE_MEDICAL_BODYBAG_DESC_USE; descriptionUse = $STR_ACE_Medical_Bodybag_Desc_Use;
class ItemInfo: InventoryItem_Base_F { class ItemInfo: InventoryItem_Base_F {
mass = 15; mass = 15;
}; };

View File

@ -14,6 +14,7 @@ GVAR(heartBeatSounds_Slow) = ["ACE_heartbeat_slow_1", "ACE_heartbeat_slow_2"];
["medical_onUnconscious", { ["medical_onUnconscious", {
if (local (_this select 0)) then { if (local (_this select 0)) then {
private ["_unit"];
_unit = _this select 0; _unit = _this select 0;
if (_this select 1) then { if (_this select 1) then {
_unit setVariable ["tf_globalVolume", 0.4]; _unit setVariable ["tf_globalVolume", 0.4];
@ -36,7 +37,7 @@ GVAR(heartBeatSounds_Slow) = ["ACE_heartbeat_slow_1", "ACE_heartbeat_slow_2"];
// Initialize all effects // Initialize all effects
_fnc_createEffect = { _fnc_createEffect = {
private ["_type", "_layer", "_default"]; private ["_type", "_layer", "_default", "_effect"];
_type = _this select 0; _type = _this select 0;
_layer = _this select 1; _layer = _this select 1;
_default = _this select 2; _default = _this select 2;
@ -91,6 +92,7 @@ GVAR(effectTimeBlood) = time;
// MAIN EFFECTS LOOP // MAIN EFFECTS LOOP
[{ [{
private["_bleeding", "_blood"];
// Zeus interface is open or player is dead; disable everything // Zeus interface is open or player is dead; disable everything
if (!(isNull (findDisplay 312)) or !(alive ACE_player)) exitWith { if (!(isNull (findDisplay 312)) or !(alive ACE_player)) exitWith {
GVAR(effectUnconsciousCC) ppEffectEnable false; GVAR(effectUnconsciousCC) ppEffectEnable false;
@ -155,6 +157,7 @@ GVAR(lastHeartBeatSound) = time;
// HEARTRATE BASED EFFECTS // HEARTRATE BASED EFFECTS
[{ [{
private["_heartRate", "_interval", "_minTime", "_sound", "_strength"];
_heartRate = ACE_player getVariable [QGVAR(heartRate), 70]; _heartRate = ACE_player getVariable [QGVAR(heartRate), 70];
if (GVAR(level) == 1) then { if (GVAR(level) == 1) then {
_heartRate = 60 + 40 * (ACE_player getVariable [QGVAR(pain), 0]); _heartRate = 60 + 40 * (ACE_player getVariable [QGVAR(pain), 0]);

View File

@ -14,7 +14,7 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_caller","_target","_bloodPressure","_bloodPressureHigh","_bloodPressureLow","_title","_content"]; private ["_caller","_target","_bloodPressure","_bloodPressureHigh","_bloodPressureLow", "_logOutPut", "_output"];
_caller = _this select 0; _caller = _this select 0;
_target = _this select 1; _target = _this select 1;
@ -28,27 +28,27 @@ _bloodPressureLow = _bloodPressure select 0;
_output = ""; _output = "";
_logOutPut = ""; _logOutPut = "";
if ([_caller] call FUNC(isMedic)) then { if ([_caller] call FUNC(isMedic)) then {
_output = "STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_OUTPUT_1"; _output = "STR_ACE_Medical_Check_Bloodpressure_Output_1";
_logOutPut = format["%1/%2",round(_bloodPressureHigh),round(_bloodPressureLow)]; _logOutPut = format["%1/%2",round(_bloodPressureHigh),round(_bloodPressureLow)];
} else { } else {
if (_bloodPressureHigh > 20) then { if (_bloodPressureHigh > 20) then {
_output = "STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_OUTPUT_2"; _output = "STR_ACE_Medical_Check_Bloodpressure_Output_2";
_logOutPut = localize "STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_LOW"; _logOutPut = localize "STR_ACE_Medical_Check_Bloodpressure_Low";
if (_bloodPressureHigh > 100) then { if (_bloodPressureHigh > 100) then {
_output = "STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_OUTPUT_3"; _output = "STR_ACE_Medical_Check_Bloodpressure_Output_3";
_logOutPut = localize "STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_NORMAL"; _logOutPut = localize "STR_ACE_Medical_Check_Bloodpressure_Normal";
if (_bloodPressureHigh > 160) then { if (_bloodPressureHigh > 160) then {
_output = "STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_OUTPUT_4"; _output = "STR_ACE_Medical_Check_Bloodpressure_Output_4";
_logOutPut = localize "STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_HIGH"; _logOutPut = localize "STR_ACE_Medical_Check_Bloodpressure_High";
}; };
}; };
} else { } else {
if (random(10) > 3) then { if (random(10) > 3) then {
_output = "STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_OUTPUT_5"; _output = "STR_ACE_Medical_Check_Bloodpressure_Output_5";
_logOutPut = localize "STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_NOBLOODPRESSURE"; _logOutPut = localize "STR_ACE_Medical_Check_Bloodpressure_NoBloodpressure";
} else { } else {
_output = "STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_OUTPUT_6"; _output = "STR_ACE_Medical_Check_Bloodpressure_Output_6";
}; };
}; };
}; };
@ -56,5 +56,5 @@ if ([_caller] call FUNC(isMedic)) then {
["displayTextStructured", [_caller], [[_output, [_target] call EFUNC(common,getName), round(_bloodPressureHigh),round(_bloodPressureLow)], 1.75, _caller]] call EFUNC(common,targetEvent); ["displayTextStructured", [_caller], [[_output, [_target] call EFUNC(common,getName), round(_bloodPressureHigh),round(_bloodPressureLow)], 1.75, _caller]] call EFUNC(common,targetEvent);
if (_logOutPut != "") then { if (_logOutPut != "") then {
[_target,"activity", localize "STR_ACE_MEDICAL_CHECK_BLOODPRESSURE_LOG", [[_caller] call EFUNC(common,getName), _logOutPut]] call FUNC(addToLog); [_target,"activity", localize "STR_ACE_Medical_Check_Bloodpressure_Log", [[_caller] call EFUNC(common,getName), _logOutPut]] call FUNC(addToLog);
}; };

View File

@ -14,7 +14,7 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_caller","_target","_title","_content"]; private ["_caller","_target"];
_caller = _this select 0; _caller = _this select 0;
_target = _this select 1; _target = _this select 1;
[[_caller, _target], QUOTE(DFUNC(actionCheckPulseLocal)), _target] call EFUNC(common,execRemoteFnc); /* TODO Replace by event system */ [[_caller, _target], QUOTE(DFUNC(actionCheckPulseLocal)), _target] call EFUNC(common,execRemoteFnc); /* TODO Replace by event system */

View File

@ -14,7 +14,7 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_caller","_unit", "_heartRateOutput", "_heartRate","_logOutPut","_content"]; private ["_caller", "_unit", "_heartRateOutput", "_heartRate", "_logOutPut"];
_caller = _this select 0; _caller = _this select 0;
_unit = _this select 1; _unit = _this select 1;
@ -23,24 +23,24 @@ _heartRate = _unit getvariable [QGVAR(heartRate), 80];
if (!alive _unit) then { if (!alive _unit) then {
_heartRate = 0; _heartRate = 0;
}; };
_heartRateOutput = "STR_ACE_MEDICAL_CHECK_PULSE_OUTPUT_5"; _heartRateOutput = "STR_ACE_Medical_Check_Pulse_Output_5";
_logOutPut = "No heart rate"; _logOutPut = "No heart rate";
if (_heartRate > 1.0) then { if (_heartRate > 1.0) then {
if ([_caller] call FUNC(isMedic)) then { if ([_caller] call FUNC(isMedic)) then {
_heartRateOutput = "STR_ACE_MEDICAL_CHECK_PULSE_OUTPUT_1"; _heartRateOutput = "STR_ACE_Medical_Check_Pulse_Output_1";
_logOutPut = format["%1",round(_heartRate)]; _logOutPut = format["%1",round(_heartRate)];
} else { } else {
// non medical personel will only find a pulse/HR // non medical personel will only find a pulse/HR
_heartRateOutput = "STR_ACE_MEDICAL_CHECK_PULSE_OUTPUT_2"; _heartRateOutput = "STR_ACE_Medical_Check_Pulse_Output_2";
_logOutPut = localize "STR_ACE_MEDICAL_CHECK_PULSE_WEAK"; _logOutPut = localize "STR_ACE_Medical_Check_Pulse_Weak";
if (_heartRate > 60) then { if (_heartRate > 60) then {
if (_heartRate > 100) then { if (_heartRate > 100) then {
_heartRateOutput = "STR_ACE_MEDICAL_CHECK_PULSE_OUTPUT_3"; _heartRateOutput = "STR_ACE_Medical_Check_Pulse_Output_3";
_logOutPut = localize "STR_ACE_MEDICAL_CHECK_PULSE_STRONG"; _logOutPut = localize "STR_ACE_Medical_Check_Pulse_Strong";
} else { } else {
_heartRateOutput = "STR_ACE_MEDICAL_CHECK_PULSE_OUTPUT_4"; _heartRateOutput = "STR_ACE_Medical_Check_Pulse_Output_4";
_logOutPut = localize "STR_ACE_MEDICAL_CHECK_PULSE_NORMAL"; _logOutPut = localize "STR_ACE_Medical_Check_Pulse_Normal";
}; };
}; };
}; };
@ -49,5 +49,5 @@ if (_heartRate > 1.0) then {
["displayTextStructured", [_caller], [[_heartRateOutput, [_unit] call EFUNC(common,getName), round(_heartRate)], 1.5, _caller]] call EFUNC(common,targetEvent); ["displayTextStructured", [_caller], [[_heartRateOutput, [_unit] call EFUNC(common,getName), round(_heartRate)], 1.5, _caller]] call EFUNC(common,targetEvent);
if (_logOutPut != "") then { if (_logOutPut != "") then {
[_unit,"activity", localize "STR_ACE_MEDICAL_CHECK_PULSE_LOG",[[_caller] call EFUNC(common,getName),_logOutPut]] call FUNC(addToLog); [_unit,"activity", localize "STR_ACE_Medical_Check_Pulse_Log",[[_caller] call EFUNC(common,getName),_logOutPut]] call FUNC(addToLog);
}; };

View File

@ -14,15 +14,15 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_caller","_target"]; private ["_caller","_target", "_output"];
_caller = _this select 0; _caller = _this select 0;
_target = _this select 1; _target = _this select 1;
_output = ""; _output = "";
if ([_target] call EFUNC(common,isAwake)) then { if ([_target] call EFUNC(common,isAwake)) then {
_output = "STR_ACE_MEDICAL_CHECK_REPONSE_RESPONSIVE"; _output = "STR_ACE_Medical_Check_Response_Responsive";
} else { } else {
_output = "STR_ACE_MEDICAL_CHECK_REPONSE_UNRESPONSIVE"; _output = "STR_ACE_Medical_Check_Response_Unresponsive";
}; };
["displayTextStructured", [_caller], [[_output, [_target] call EFUNC(common,getName)], 2, _caller]] call EFUNC(common,targetEvent); ["displayTextStructured", [_caller], [[_output, [_target] call EFUNC(common,getName)], 2, _caller]] call EFUNC(common,targetEvent);

View File

@ -14,32 +14,32 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_caller","_target","_title","_content"]; private ["_caller", "_target", "_genericMessages"];
_caller = _this select 0; _caller = _this select 0;
_target = _this select 1; _target = _this select 1;
_genericMessages = ["STR_ACE_MEDICAL_diagnoseMessage"]; _genericMessages = ["STR_ACE_Medical_diagnoseMessage"];
_genericMessages pushBack ([_target] call EFUNC(common,getName)); _genericMessages pushBack ([_target] call EFUNC(common,getName));
if (alive _target) then { if (alive _target) then {
_genericMessages pushback "STR_ACE_MEDICAL_diagnoseAlive"; _genericMessages pushback "STR_ACE_Medical_diagnoseAlive";
} else { } else {
_genericMessages pushback "STR_ACE_MEDICAL_diagnoseDead"; _genericMessages pushback "STR_ACE_Medical_diagnoseDead";
}; };
if (_target getvariable[QGVAR(hasLostBlood), 0] > 0) then { if (_target getvariable[QGVAR(hasLostBlood), 0] > 0) then {
if (_target getvariable[QGVAR(hasLostBlood), 0] > 1) then { if (_target getvariable[QGVAR(hasLostBlood), 0] > 1) then {
_genericMessages pushback "STR_ACE_MEDICAL_lostBloodALot"; _genericMessages pushback "STR_ACE_Medical_lostBloodALot";
} else { } else {
_genericMessages pushback "STR_ACE_MEDICAL_lostBlood"; _genericMessages pushback "STR_ACE_Medical_lostBlood";
}; };
} else { } else {
_genericMessages pushback "STR_ACE_MEDICAL_noBloodloss"; _genericMessages pushback "STR_ACE_Medical_noBloodloss";
}; };
if (_target getvariable[QGVAR(hasPain), false]) then { if (_target getvariable[QGVAR(hasPain), false]) then {
_genericMessages pushback "STR_ACE_MEDICAL_inPain"; _genericMessages pushback "STR_ACE_Medical_inPain";
} else { } else {
_genericMessages pushback "STR_ACE_MEDICAL_noPain"; _genericMessages pushback "STR_ACE_Medical_noPain";
}; };
["displayTextStructured", [_caller], [_genericMessages, 3.0, _caller]] call EFUNC(common,targetEvent); ["displayTextStructured", [_caller], [_genericMessages, 3.0, _caller]] call EFUNC(common,targetEvent);

View File

@ -14,7 +14,7 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_caller", "_target","_vehicle", "_loaded"]; private ["_caller", "_target","_vehicle"];
_caller = _this select 0; _caller = _this select 0;
_target = _this select 1; _target = _this select 1;

View File

@ -15,7 +15,7 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_caller","_target","_part","_selectionName","_removeItem","_tourniquets", "_output"]; private ["_caller", "_target", "_part", "_selectionName", "_tourniquets", "_output"];
_caller = _this select 0; _caller = _this select 0;
_target = _this select 1; _target = _this select 1;
_selectionName = _this select 2; _selectionName = _this select 2;

View File

@ -15,7 +15,7 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_caller", "_target","_vehicle", "_drag", "_handle"]; private ["_caller", "_target", "_drag"];
_caller = _this select 0; _caller = _this select 0;
_target = _this select 1; _target = _this select 1;
_drag = if (count _this > 2) then {_this select 2} else {false}; _drag = if (count _this > 2) then {_this select 2} else {false};
@ -24,7 +24,7 @@ _drag = if (count _this > 2) then {_this select 2} else {false};
if (vehicle _target == _target) exitwith {}; if (vehicle _target == _target) exitwith {};
if (([_target] call cse_fnc_isAwake)) exitwith {}; if (([_target] call cse_fnc_isAwake)) exitwith {};
if ([_caller, _target] call EFUNC(common,unloadPerson)) then { if ([_target] call EFUNC(common,unloadPerson)) then {
if (_drag) then { if (_drag) then {
if ((vehicle _caller) == _caller) then { if ((vehicle _caller) == _caller) then {
[[_caller, _target, true], QUOTE(DFUNC(actionDragUnit)), _caller, false] call EFUNC(common,execRemoteFnc); // TODO replace by event [[_caller, _target, true], QUOTE(DFUNC(actionDragUnit)), _caller, false] call EFUNC(common,execRemoteFnc); // TODO replace by event

View File

@ -13,7 +13,7 @@
#include "script_component.hpp" #include "script_component.hpp"
private "_unit"; private ["_unit", "_force"];
_unit = _this select 0; _unit = _this select 0;
_force = if (count _this > 1) then {_this select 1} else {false}; _force = if (count _this > 1) then {_this select 1} else {false};

View File

@ -16,7 +16,7 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_unit", "_type", "_message", "_arguments", "_lastNumber", "_moment", "_logVarName", "_log","_newLog"]; private ["_unit", "_type", "_message", "_arguments", "_lastNumber", "_moment", "_logVarName", "_log","_newLog", "_logs"];
_unit = _this select 0; _unit = _this select 0;
_type = _this select 1; _type = _this select 1;
_message = _this select 2; _message = _this select 2;

View File

@ -14,7 +14,7 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_unit","_caller","_newItem","_log", "_inList","_amount"]; private ["_unit", "_newItem", "_log", "_inList", "_amount"];
_unit = _this select 0; _unit = _this select 0;
_newItem = _this select 1; _newItem = _this select 1;

View File

@ -16,7 +16,7 @@
EXPLODE_3_PVT(_this,_vehicle,_player,_parameters); EXPLODE_3_PVT(_this,_vehicle,_player,_parameters);
private ["_actions"]; private ["_actions", "_unit"];
_actions = []; _actions = [];
{ {

View File

@ -16,7 +16,7 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_caller", "_target", "_selectionName", "_className", "_config", "_availableLevels", "_medicRequired", "_items", "_locations", "_return", "_condition"]; private ["_caller", "_target", "_selectionName", "_className", "_config", "_medicRequired", "_items", "_locations", "_return", "_condition"];
_caller = _this select 0; _caller = _this select 0;
_target = _this select 1; _target = _this select 1;
_selectionName = _this select 2; _selectionName = _this select 2;

View File

@ -14,7 +14,7 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_oldBody","_newUnit","_class","_group","_position","_side","_allVariables"]; private ["_oldBody","_newUnit","_class","_group","_position","_side", "_caller", "_name"];
_oldBody = _this select 0; _oldBody = _this select 0;
_caller = _this select 1; _caller = _this select 1;

View File

@ -16,7 +16,7 @@
#define MIN_ENTRIES_LITTER_CONFIG 3 #define MIN_ENTRIES_LITTER_CONFIG 3
private ["_target", "_className", "_config", "_litter", "_createLitter", "_litterObject", "_position", "_createdLitter"]; private ["_target", "_className", "_config", "_litter", "_createLitter", "_position", "_createdLitter", "_caller", "_selectionName", "_usersOfItems"];
_caller = _this select 0; _caller = _this select 0;
_target = _this select 1; _target = _this select 1;
_selectionName = _this select 2; _selectionName = _this select 2;

View File

@ -10,7 +10,7 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_unit","_part","_damageThreshold", "_withDamage"]; private ["_unit","_part","_damageThreshold", "_withDamage", "_damageBodyPart"];
_unit = _this select 0; _unit = _this select 0;
_part = _this select 1; _part = _this select 1;
_withDamage = if (count _this > 2) then { _this select 2} else {0}; _withDamage = if (count _this > 2) then { _this select 2} else {0};

View File

@ -16,7 +16,7 @@
// Exit for basic medical // Exit for basic medical
if (GVAR(level) < 2) exitWith {}; if (GVAR(level) < 2) exitWith {};
private ["_target", "_show", "_selectionN"]; private ["_target", "_show", "_selectionN", "_amountOfGeneric", "_bandagedwounds", "_logCtrl", "_part", "_partText", "_pointDamage", "_severity", "_total", "_totalIvVolume", "_triageStatus", "_type"];
_target = _this select 0; _target = _this select 0;
_show = if (count _this > 1) then {_this select 1} else {true}; _show = if (count _this > 1) then {_this select 1} else {true};
_selectionN = if (count _this > 2) then {_this select 2} else {0}; _selectionN = if (count _this > 2) then {_this select 2} else {0};
@ -55,17 +55,17 @@ if (_show) then {
}; };
if (_target getvariable[QGVAR(isBleeding), false]) then { if (_target getvariable[QGVAR(isBleeding), false]) then {
_genericMessages pushback [localize "STR_ACE_MEDICAL_STATUS_BLEEDING", [1, 0.1, 0.1, 1]]; _genericMessages pushback [localize "STR_ACE_Medical_Status_Bleeding", [1, 0.1, 0.1, 1]];
}; };
if (_target getvariable[QGVAR(hasLostBlood), 0] > 1) then { if (_target getvariable[QGVAR(hasLostBlood), 0] > 1) then {
_genericMessages pushback [localize "STR_ACE_MEDICAL_STATUS_LOST_BLOOD", [1, 0.1, 0.1, 1]]; _genericMessages pushback [localize "STR_ACE_Medical_Status_Lost_Blood", [1, 0.1, 0.1, 1]];
}; };
if (((_target getvariable [QGVAR(tourniquets), [0,0,0,0,0,0]]) select _selectionN) > 0) then { if (((_target getvariable [QGVAR(tourniquets), [0,0,0,0,0,0]]) select _selectionN) > 0) then {
_genericMessages pushback [localize "STR_ACE_MEDICAL_STATUS_TOURNIQUET_APPLIED", [0.77, 0.51, 0.08, 1]]; _genericMessages pushback [localize "STR_ACE_Medical_Status_Tourniquet_Applied", [0.77, 0.51, 0.08, 1]];
}; };
if (_target getvariable[QGVAR(hasPain), false]) then { if (_target getvariable[QGVAR(hasPain), false]) then {
_genericMessages pushback [localize "STR_ACE_MEDICAL_STATUS_PAIN", [1, 1, 1, 1]]; _genericMessages pushback [localize "STR_ACE_Medical_Status_Pain", [1, 1, 1, 1]];
}; };
_totalIvVolume = 0; _totalIvVolume = 0;
@ -77,7 +77,7 @@ if (_show) then {
}; };
}foreach GVAR(IVBags); }foreach GVAR(IVBags);
if (_totalIvVolume >= 1) then { if (_totalIvVolume >= 1) then {
_genericMessages pushback [format[localize "STR_ACE_MEDICAL_receivingIvVolume", floor _totalIvVolume], [1, 1, 1, 1]]; _genericMessages pushback [format[localize "STR_ACE_Medical_receivingIvVolume", floor _totalIvVolume], [1, 1, 1, 1]];
}; };
_damaged = [false, false, false, false, false, false]; _damaged = [false, false, false, false, false, false];
@ -192,7 +192,7 @@ if (_show) then {
_logCtrl = (_display displayCtrl 302); _logCtrl = (_display displayCtrl 302);
lbClear _logCtrl; lbClear _logCtrl;
private ["_logs", "_log", "_message", "_moment", "_arguments", "_lbCtrl"]; private ["_logs", "_message", "_moment", "_arguments", "_lbCtrl"];
_logs = _target getvariable [QGVAR(logFile_Activity), []]; _logs = _target getvariable [QGVAR(logFile_Activity), []];
{ {
// [_message,_moment,_type, _arguments] // [_message,_moment,_type, _arguments]

View File

@ -13,7 +13,7 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_target", "_show"]; private ["_target", "_show", "_amount", "_item", "_log", "_message", "_triageCardTexts", "_triageStatus"];
_target = _this select 0; _target = _this select 0;
_show = if (count _this > 1) then {_this select 1} else {true}; _show = if (count _this > 1) then {_this select 1} else {true};
@ -24,7 +24,7 @@ if (_show) then {
createDialog QGVAR(triageCard); createDialog QGVAR(triageCard);
[{ [{
private ["_target", "_display", "_alphaLevel", "_damaged", "_availableSelections", "_openWounds", "_selectionBloodLoss", "_red", "_green", "_blue", "_alphaLevel", "_allInjuryTexts", "_lbCtrl", "_genericMessages"]; private ["_target", "_display", "_alphaLevel", "_alphaLevel", "_lbCtrl"];
_target = (_this select 0) select 0; _target = (_this select 0) select 0;
if (GVAR(TriageCardTarget) != _target) exitwith { if (GVAR(TriageCardTarget) != _target) exitwith {
[_this select 1] call CBA_fnc_removePerFrameHandler; [_this select 1] call CBA_fnc_removePerFrameHandler;
@ -58,7 +58,7 @@ if (_show) then {
}foreach _log; }foreach _log;
if (count _triageCardTexts == 0) then { if (count _triageCardTexts == 0) then {
_lbCtrl lbAdd (localize "STR_ACE_MEDICAL_TriageCard_NoEntry"); _lbCtrl lbAdd (localize "STR_ACE_Medical_TriageCard_NoEntry");
}; };
{ {
_lbCtrl lbAdd _x; _lbCtrl lbAdd _x;

View File

@ -13,7 +13,7 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_show"]; private ["_show", "_ctrl", "_display", "_idc", "_pos"];
_show = _this select 0; _show = _this select 0;
disableSerialization; disableSerialization;

View File

@ -15,7 +15,7 @@
#define BLOODLOSSRATE_BASIC 0.2 #define BLOODLOSSRATE_BASIC 0.2
private ["_totalBloodLoss","_tourniquets","_openWounds", "_value", "_cardiacOutput", "_internalWounds"]; private ["_totalBloodLoss","_tourniquets","_openWounds", "_cardiacOutput", "_internalWounds"];
// TODO Only use this calculation if medium or higher, otherwise use vanilla calculations (for basic medical). // TODO Only use this calculation if medium or higher, otherwise use vanilla calculations (for basic medical).
_totalBloodLoss = 0; _totalBloodLoss = 0;

View File

@ -15,7 +15,7 @@
#define HEART_RATE_MODIFIER 0.02 #define HEART_RATE_MODIFIER 0.02
private ["_unit", "_heartRate", "_hrIncrease", "_bloodLoss", "_time", "_values", "_adjustment", "_adjustments", "_additionalIncrease", "_change", "_callBack", "_bloodVolume"]; private ["_unit", "_heartRate", "_hrIncrease", "_bloodLoss", "_time", "_values", "_adjustment", "_change", "_callBack", "_bloodVolume"];
_unit = _this select 0; _unit = _this select 0;
_hrIncrease = 0; _hrIncrease = 0;
if (!(_unit getvariable [QGVAR(inCardiacArrest),false])) then { if (!(_unit getvariable [QGVAR(inCardiacArrest),false])) then {

View File

@ -17,10 +17,10 @@ private ["_unit","_return","_status"];
_unit = _this select 0; _unit = _this select 0;
_status = _unit getvariable [QGVAR(triageLevel), -1]; _status = _unit getvariable [QGVAR(triageLevel), -1];
_return = switch (_status) do { _return = switch (_status) do {
case 1: {[localize "STR_ACE_MEDICAL_TRIAGE_STATUS_MINOR", 1, [0, 0.5, 0, 0.9]]}; case 1: {[localize "STR_ACE_Medical_Triage_Status_Minor", 1, [0, 0.5, 0, 0.9]]};
case 2: {[localize "STR_ACE_MEDICAL_TRIAGE_STATUS_DELAYED", 2, [0.7, 0.5, 0, 0.9]]}; case 2: {[localize "STR_ACE_Medical_Triage_Status_Delayed", 2, [0.7, 0.5, 0, 0.9]]};
case 3: {[localize "STR_ACE_MEDICAL_TRIAGE_STATUS_IMMEDIATE", 3, [0.4, 0.07, 0.07, 0.9]]}; case 3: {[localize "STR_ACE_Medical_Triage_Status_Immediate", 3, [0.4, 0.07, 0.07, 0.9]]};
case 4: {[localize "STR_ACE_MEDICAL_TRIAGE_STATUS_DECEASED", 4, [0, 0, 0, 0.9]]}; case 4: {[localize "STR_ACE_Medical_Triage_Status_Deceased", 4, [0, 0, 0, 0.9]]};
default {[localize "STR_ACE_MEDICAL_TRIAGE_STATUS_NONE", 0, [0, 0, 0, 0.9]]}; default {[localize "STR_ACE_Medical_Triage_Status_None", 0, [0, 0, 0, 0.9]]};
}; };
_return; _return;

View File

@ -18,7 +18,7 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_target", "_impact", "_part", "_injuryIndex", "_injury", "_bandage", "_classID", "_className", "_reopeningChance", "_reopeningMinDelay", "_reopeningMaxDelay", "_config", "_woundTreatmentConfig", "_bandagedWounds", "_exist", "_injuryId", "_existingInjury", "_delay", "_openWounds", "_selectedInjury"]; private ["_target", "_impact", "_part", "_injuryIndex", "_injury", "_bandage", "_classID", "_className", "_reopeningChance", "_reopeningMinDelay", "_reopeningMaxDelay", "_config", "_woundTreatmentConfig", "_bandagedWounds", "_exist", "_injuryId", "_existingInjury", "_delay", "_openWounds", "_selectedInjury", "_bandagedInjury"];
_target = _this select 0; _target = _this select 0;
_impact = _this select 1; _impact = _this select 1;
_part = _this select 2; _part = _this select 2;

View File

@ -5,6 +5,7 @@ if(!hasInterface) exitWith { false };
PARAMS_3(_litterClass,_position,_direction); PARAMS_3(_litterClass,_position,_direction);
private["_litterObject", "_maxLitterCount"]; private["_litterObject", "_maxLitterCount"];
//IGNORE_PRIVATE_WARNING(_values);
if (isNil QGVAR(allCreatedLitter)) then { if (isNil QGVAR(allCreatedLitter)) then {
GVAR(allCreatedLitter) = []; GVAR(allCreatedLitter) = [];

View File

@ -17,7 +17,7 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_unit", "_selection", "_damage", "_shooter", "_projectile", "_damageReturn", "_typeOfDamage"]; private ["_unit", "_selection", "_damage", "_shooter", "_projectile", "_damageReturn", "_typeOfDamage", "_minLethalDamage", "_newDamage", "_typeIndex"];
_unit = _this select 0; _unit = _this select 0;
_selection = _this select 1; _selection = _this select 1;
_damage = _this select 2; _damage = _this select 2;
@ -52,7 +52,7 @@ if (GVAR(level) < 2) then {
_minLethalDamage = GVAR(minLethalDamages) select _typeIndex; _minLethalDamage = GVAR(minLethalDamages) select _typeIndex;
}; };
if (vehicle _unit != _unit && {!(vehicle _unit isKindOf "StaticWeapon")} && {isNull _source} && {_projectile == ""} && {_selection == ""}) then { if (vehicle _unit != _unit && {!(vehicle _unit isKindOf "StaticWeapon")} && {isNull _shooter} && {_projectile == ""} && {_selection == ""}) then {
if (GVAR(enableVehicleCrashes)) then { if (GVAR(enableVehicleCrashes)) then {
_selection = GVAR(SELECTIONS) select (floor(random(count GVAR(SELECTIONS)))); _selection = GVAR(SELECTIONS) select (floor(random(count GVAR(SELECTIONS))));
}; };
@ -86,7 +86,7 @@ if (_unit getVariable [QGVAR(preventInstaDeath), GVAR(preventInstaDeath)]) exitW
}; };
if (((_unit getVariable [QGVAR(enableRevive), GVAR(enableRevive)]) > 0) && {_damageReturn >= 0.9} && {_selection in ["", "head", "body"]}) exitWith { if (((_unit getVariable [QGVAR(enableRevive), GVAR(enableRevive)]) > 0) && {_damageReturn >= 0.9} && {_selection in ["", "head", "body"]}) exitWith {
if (vehicle _unit != _unit and {damage _vehicle >= 1}) then { if (vehicle _unit != _unit and {damage (vehicle _unit) >= 1}) then {
// @todo // @todo
// [_unit] call FUNC(unload); // [_unit] call FUNC(unload);
}; };

View File

@ -24,7 +24,7 @@
#define ARMDAMAGETRESHOLD2 1.7 #define ARMDAMAGETRESHOLD2 1.7
#define UNCONSCIOUSNESSTRESHOLD 0.7 #define UNCONSCIOUSNESSTRESHOLD 0.7
private ["_unit", "_selectionName", "_damage", "_shooter", "_projectile", "_damage"]; private ["_unit", "_selectionName", "_damage", "_shooter", "_projectile", "_damage", "_armdamage", "_hitPoint", "_index", "_legdamage", "_newDamage", "_otherDamage", "_pain", "_restore"];
_unit = _this select 0; _unit = _this select 0;
_selectionName = _this select 1; _selectionName = _this select 1;

View File

@ -17,7 +17,7 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_unit", "_selectionName", "_damage", "_typeOfProjectile", "_typeOfDamage", "_bodyPartn", "_woundType", "_injuryTypeInfo", "_allInjuriesForDamageType", "_allPossibleInjuries", "_highestPossibleDamage", "_highestPossibleSpot", "_minDamage", "_openWounds", "_woundID", "_toAddInjury", "_painToAdd"]; private ["_unit", "_selectionName", "_damage", "_typeOfProjectile", "_typeOfDamage", "_bodyPartn", "_injuryTypeInfo", "_allInjuriesForDamageType", "_allPossibleInjuries", "_highestPossibleDamage", "_highestPossibleSpot", "_minDamage", "_openWounds", "_woundID", "_toAddInjury", "_painToAdd", "_bloodLoss", "_bodyPartNToAdd", "_classType", "_damageLevels", "_foundIndex", "_i", "_injury", "_maxDamage", "_pain", "_painLevel", "_selections", "_toAddClassID", "_woundsCreated"];
_unit = _this select 0; _unit = _this select 0;
_selectionName = _this select 1; _selectionName = _this select 1;
_damage = _this select 2; _damage = _this select 2;

View File

@ -13,7 +13,7 @@
#include "script_component.hpp" #include "script_component.hpp"
private["_unit"]; private["_unit", "_openWounds"];
_unit = _this select 0; _unit = _this select 0;
if (!local _unit) exitwith {}; if (!local _unit) exitwith {};

View File

@ -13,7 +13,7 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_unit", "_heartRate","_bloodPressure","_bloodVolume","_painStatus", "_lastTimeValuesSynced", "_syncValues"]; private ["_unit", "_heartRate","_bloodPressure","_bloodVolume","_painStatus", "_lastTimeValuesSynced", "_syncValues", "_airwayStatus", "_blood", "_bloodPressureH", "_bloodPressureL", "_interval"];
_unit = _this select 0; _unit = _this select 0;
_interval = time - (_unit getVariable [QGVAR(lastMomentVitalsHandled), 0]); _interval = time - (_unit getVariable [QGVAR(lastMomentVitalsHandled), 0]);

View File

@ -15,7 +15,7 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_medic", "_patient", "_item", "_return"]; private ["_medic", "_patient", "_item", "_return", "_crew"];
_medic = _this select 0; _medic = _this select 0;
_patient = _this select 1; _patient = _this select 1;
_item = _this select 2; _item = _this select 2;

View File

@ -13,7 +13,7 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_unit", "_allUsedMedication", "_logs", "_forceNew"]; private ["_unit", "_allUsedMedication", "_logs"];
_unit = _this select 0; _unit = _this select 0;

View File

@ -14,7 +14,7 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_unit","_class","_return"]; private ["_unit", "_class", "_medicN"];
_unit = _this select 0; _unit = _this select 0;
_medicN = if (count _this > 1) then {_this select 1} else {1}; _medicN = if (count _this > 1) then {_this select 1} else {1};

View File

@ -19,15 +19,15 @@
EXPLODE_4_PVT(_this,_target,_player,_selectionN,_actionData); EXPLODE_4_PVT(_this,_target,_player,_selectionN,_actionData);
if (GVAR(level) < 2) exitwith { if (GVAR(level) < 2) exitwith {
private ["_pointDamage"]; private ["_pointDamage"];
_pointDamage = _target getHitPointDamage (["HitHead", "HitBody", "HitLeftArm", "HitRightArm", "HitLeftLeg", "HitRightLeg"] select _selectionN); _pointDamage = _target getHitPointDamage (["HitHead", "HitBody", "HitLeftArm", "HitRightArm", "HitLeftLeg", "HitRightLeg"] select _selectionN);
if (_pointDamage >= 0.8) exitWith { if (_pointDamage >= 0.8) exitWith {
_actionData set [2, QUOTE(PATHTOF(UI\icons\medical_crossRed.paa))]; _actionData set [2, QUOTE(PATHTOF(UI\icons\medical_crossRed.paa))];
}; };
if (_pointDamage > 0) exitWith { if (_pointDamage > 0) exitWith {
_actionData set [2, QUOTE(PATHTOF(UI\icons\medical_crossYellow.paa))]; _actionData set [2, QUOTE(PATHTOF(UI\icons\medical_crossYellow.paa))];
}; };
}; };
private ["_openWounds", "_amountOf"]; private ["_openWounds", "_amountOf"];
@ -35,6 +35,6 @@ _openWounds = _target getvariable [QGVAR(openWounds), []];
{ {
_amountOf = _x select 3; _amountOf = _x select 3;
if (_amountOf > 0 && {(_selectionN == (_x select 2))}) exitwith { if (_amountOf > 0 && {(_selectionN == (_x select 2))}) exitwith {
_actionData set [2, QUOTE(PATHTOF(UI\icons\medical_crossRed.paa))]; _actionData set [2, QUOTE(PATHTOF(UI\icons\medical_crossRed.paa))];
}; };
}foreach _openWounds; } foreach _openWounds;

View File

@ -13,7 +13,7 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
private ["_unit", "_openWounds"]; private ["_unit", "_openWounds", "_originOfrequest"];
_unit = _this select 0; _unit = _this select 0;
_originOfrequest = _this select 1; _originOfrequest = _this select 1;

View File

@ -12,7 +12,7 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_injuriesRootConfig", "_woundsConfig", "_allWoundClasses", "_amountOf", "_entry","_classType", "_selections", "_bloodLoss", "_pain","_minDamage","_causes", "_damageTypesConfig", "_thresholds", "_typeThresholds", "_selectionSpecific", "_selectionSpecificType", "_classDisplayName", "_subClassDisplayName", "_maxDamage", "_subClassmaxDamage", "_defaultMinLethalDamage", "_minLethalDamage"]; private ["_injuriesRootConfig", "_woundsConfig", "_allWoundClasses", "_amountOf", "_entry","_classType", "_selections", "_bloodLoss", "_pain","_minDamage","_causes", "_damageTypesConfig", "_thresholds", "_typeThresholds", "_selectionSpecific", "_selectionSpecificType", "_classDisplayName", "_subClassDisplayName", "_maxDamage", "_subClassmaxDamage", "_defaultMinLethalDamage", "_minLethalDamage", "_allFoundDamageTypes", "_classID", "_configDamageTypes", "_i", "_parseForSubClassWounds", "_subClass", "_subClassConfig", "_subClassbloodLoss", "_subClasscauses", "_subClassminDamage", "_subClasspain", "_subClassselections", "_subClasstype", "_type", "_varName", "_woundTypes"];
_injuriesRootConfig = (configFile >> "ACE_Medical_Advanced" >> "Injuries"); _injuriesRootConfig = (configFile >> "ACE_Medical_Advanced" >> "Injuries");
_allFoundDamageTypes = []; _allFoundDamageTypes = [];

View File

@ -15,7 +15,7 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_unit","_amountOfDamage","_bodyPartStatus","_availableSounds_A","_availableSounds_B","_availableSounds_C","_sound"]; private ["_unit","_availableSounds_A","_availableSounds_B","_availableSounds_C","_sound", "_pain"];
_unit = _this select 0; _unit = _this select 0;
_pain = _this select 1; _pain = _this select 1;
if (!local _unit || !GVAR(enableScreams)) exitwith{}; if (!local _unit || !GVAR(enableScreams)) exitwith{};

View File

@ -14,7 +14,7 @@
#include "script_component.hpp" #include "script_component.hpp"
private [ "_target", "_caller", "_openWounds"]; private [ "_target", "_caller"];
_target = _this select 0; _target = _this select 0;
_caller = _this select 1; _caller = _this select 1;

View File

@ -13,7 +13,7 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_unit", "_force", "_reviveVal"]; private ["_unit", "_force", "_reviveVal", "_lifesLeft"];
_unit = _this select 0; _unit = _this select 0;
_force = false; _force = false;
if (count _this >= 2) then { if (count _this >= 2) then {

View File

@ -21,7 +21,7 @@
#define ARMDAMAGETRESHOLD1 1 #define ARMDAMAGETRESHOLD1 1
#define ARMDAMAGETRESHOLD2 1.7 #define ARMDAMAGETRESHOLD2 1.7
private ["_unit", "_selection", "_damage", "_selections", "_damages", "_damageOld", "_damageSumOld", "_damageNew", "_damageSumNew", "_damageFinal"]; private ["_unit", "_selection", "_damage", "_selections", "_damages", "_damageOld", "_damageSumOld", "_damageNew", "_damageSumNew", "_damageFinal", "_armdamage", "_legdamage"];
_unit = _this select 0; _unit = _this select 0;
_selection = _this select 1; _selection = _this select 1;

View File

@ -17,7 +17,7 @@
#define DEFAULT_DELAY (round(random(10)+5)) #define DEFAULT_DELAY (round(random(10)+5))
private ["_unit", "_set", "_animState", "_originalPos", "_captiveSwitch", "_startingTime","_minWaitingTime"]; private ["_unit", "_set", "_animState", "_originalPos", "_startingTime","_minWaitingTime"];
_unit = _this select 0; _unit = _this select 0;
_set = if (count _this > 1) then {_this select 1} else {true}; _set = if (count _this > 1) then {_this select 1} else {true};
_minWaitingTime = if (count _this > 2) then {_this select 2} else {DEFAULT_DELAY}; _minWaitingTime = if (count _this > 2) then {_this select 2} else {DEFAULT_DELAY};

View File

@ -16,7 +16,7 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_caller", "_target", "_selectionName", "_className", "_config", "_availableLevels", "_medicRequired", "_items", "_locations", "_return", "_callbackSuccess", "_callbackFailure", "_callbackProgress", "_treatmentTime", "_callerAnim", "_patientAnim", "_iconDisplayed", "_return", "_usersOfItems", "_consumeItems"]; private ["_caller", "_target", "_selectionName", "_className", "_config", "_medicRequired", "_items", "_locations", "_return", "_callbackProgress", "_treatmentTime", "_callerAnim", "_patientAnim", "_iconDisplayed", "_return", "_usersOfItems", "_consumeItems", "_condition", "_displayText", "_wpn"];
_caller = _this select 0; _caller = _this select 0;
_target = _this select 1; _target = _this select 1;
_selectionName = _this select 2; _selectionName = _this select 2;

View File

@ -16,7 +16,7 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_caller", "_target", "_selectionName", "_className", "_items", "_removeItem"]; private ["_caller", "_target", "_selectionName", "_className", "_items"];
_caller = _this select 0; _caller = _this select 0;
_target = _this select 1; _target = _this select 1;
_selectionName = _this select 2; _selectionName = _this select 2;

View File

@ -17,7 +17,7 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_caller", "_target", "_selectionName", "_className", "_items", "_removeItem"]; private ["_caller", "_target", "_selectionName", "_className", "_items", "_specificSpot"];
_caller = _this select 0; _caller = _this select 0;
_target = _this select 1; _target = _this select 1;
_selectionName = _this select 2; _selectionName = _this select 2;
@ -37,6 +37,6 @@ if !([_target] call FUNC(hasMedicalEnabled)) exitwith {
}; };
}foreach _items;*/ }foreach _items;*/
[_target, "activity", "STR_ACE_MEDICAL_ACTIVITY_bandagedPatient", [[_caller] call EFUNC(common,getName)]] call FUNC(addToLog); [_target, "activity", "STR_ACE_Medical_Activity_bandagedPatient", [[_caller] call EFUNC(common,getName)]] call FUNC(addToLog);
true; true;

View File

@ -15,7 +15,7 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_target", "_bandage", "_part", "_selectionName", "_openWounds", "_config", "_effectiveness","_mostEffectiveInjury", "_mostEffectiveSpot", "_woundEffectivenss", "_mostEffectiveInjury", "_impact", "_exit", "_specificClass", "_classID", "_effectivenessFound"]; private ["_target", "_bandage", "_part", "_selectionName", "_openWounds", "_config", "_effectiveness","_mostEffectiveInjury", "_mostEffectiveSpot", "_woundEffectivenss", "_mostEffectiveInjury", "_impact", "_exit", "_specificClass", "_classID", "_effectivenessFound", "_className", "_hitPoints", "_hitSelections", "_point", "_woundTreatmentConfig"];
_target = _this select 0; _target = _this select 0;
_bandage = _this select 1; _bandage = _this select 1;
_selectionName = _this select 2; _selectionName = _this select 2;

View File

@ -10,7 +10,7 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_unit", "_caller", "_selectionName", "_className", "_items"]; private ["_target", "_caller", "_selectionName", "_className", "_items"];
_caller = _this select 0; _caller = _this select 0;
_target = _this select 1; _target = _this select 1;
_selectionName = _this select 2; _selectionName = _this select 2;

View File

@ -17,7 +17,7 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_caller", "_target", "_selectionName", "_className", "_items", "_removeItem"]; private ["_caller", "_target", "_selectionName", "_className", "_items"];
_caller = _this select 0; _caller = _this select 0;
_target = _this select 1; _target = _this select 1;
_selectionName = _this select 2; _selectionName = _this select 2;
@ -32,6 +32,6 @@ _items = _this select 4;
}; };
}foreach _items; }foreach _items;
[_target, "activity", "STR_ACE_MEDICAL_ACTIVITY_usedItem", [[_caller] call EFUNC(common,getName), _className]] call FUNC(addToLog); [_target, "activity", "STR_ACE_Medical_Activity_usedItem", [[_caller] call EFUNC(common,getName), _className]] call FUNC(addToLog);
true; true;

View File

@ -15,7 +15,7 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_target", "_className", "_currentInSystem", "_medicationConfig", "_painReduce", "_hrIncreaseLow", "_hrIncreaseNorm", "_hrIncreaseHigh", "_maxDose", "_inCompatableMedication", "_timeInSystem", "_heartRate", "_pain", "_resistance", "_hrCallback"]; private ["_target", "_className", "_currentInSystem", "_medicationConfig", "_painReduce", "_hrIncreaseLow", "_hrIncreaseNorm", "_hrIncreaseHigh", "_maxDose", "_inCompatableMedication", "_timeInSystem", "_heartRate", "_pain", "_resistance", "_hrCallback", "_varName", "_viscosityChange"];
_target = _this select 0; _target = _this select 0;
_className = _this select 1; _className = _this select 1;
@ -77,9 +77,9 @@ if (_painReduce > 0) then {
_target setvariable [QGVAR(pain), (_pain - (_pain * _painReduce)) max 0]; _target setvariable [QGVAR(pain), (_pain - (_pain * _painReduce)) max 0];
}; };
_resistance = _unit getvariable [QGVAR(peripheralResistance), 100]; _resistance = _target getvariable [QGVAR(peripheralResistance), 100];
_resistance = _resistance + _viscosityChange; _resistance = _resistance + _viscosityChange;
_unit setvariable [QGVAR(peripheralResistance), _resistance max 0]; _target setvariable [QGVAR(peripheralResistance), _resistance max 0];
// Call back to ensure that the medication is decreased over time // Call back to ensure that the medication is decreased over time
[_target, _classname, _varName, _maxDose, _timeInSystem, _inCompatableMedication, _viscosityChange] call FUNC(onMedicationUsage); [_target, _classname, _varName, _maxDose, _timeInSystem, _inCompatableMedication, _viscosityChange] call FUNC(onMedicationUsage);

View File

@ -17,7 +17,7 @@
#include "script_component.hpp" #include "script_component.hpp"
#define BANDAGEHEAL 0.8 #define BANDAGEHEAL 0.8
private ["_caller", "_target","_selection","_className","_target","_hitSelections","_hitPoints","_point"]; private ["_caller", "_target","_selection","_className","_target","_hitSelections","_hitPoints","_point", "_damage"];
_caller = _this select 0; _caller = _this select 0;
_target = _this select 1; _target = _this select 1;
_selection = _this select 2; _selection = _this select 2;

View File

@ -17,7 +17,7 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_caller", "_target", "_selectionName", "_className", "_items", "_removeItem", "_attributes"]; private ["_caller", "_target", "_selectionName", "_className", "_items", "_removeItem"];
_caller = _this select 0; _caller = _this select 0;
_target = _this select 1; _target = _this select 1;
_selectionName = _this select 2; _selectionName = _this select 2;
@ -29,4 +29,4 @@ if (count _items == 0) exitwith {};
_removeItem = _items select 0; _removeItem = _items select 0;
[[_target, _removeItem], QUOTE(DFUNC(treatmentIVLocal)), _target] call EFUNC(common,execRemoteFnc); /* TODO Replace by event system */ [[_target, _removeItem], QUOTE(DFUNC(treatmentIVLocal)), _target] call EFUNC(common,execRemoteFnc); /* TODO Replace by event system */
[_target, _removeItem] call FUNC(addToTriageCard); [_target, _removeItem] call FUNC(addToTriageCard);
[_target, "activity", "STR_ACE_MEDICAL_ACTIVITY_gaveIV", [[_caller] call EFUNC(common,getName)]] call FUNC(addToLog); [_target, "activity", "STR_ACE_Medical_Activity_gaveIV", [[_caller] call EFUNC(common,getName)]] call FUNC(addToLog);

View File

@ -15,7 +15,7 @@
#include "script_component.hpp" #include "script_component.hpp"
private ["_target", "_ivItem", "_config", "_volumeAdded", "_typeOf", "_varName"]; private ["_target", "_ivItem", "_config", "_volumeAdded", "_typeOf", "_varName", "_bloodVolume"];
_target = _this select 0; _target = _this select 0;
_ivItem = _this select 1; _ivItem = _this select 1;
@ -27,8 +27,8 @@ _config = (configFile >> "ACE_Medical_Advanced" >> "Treatment" >> "IV");
_volumeAdded = getNumber (_config >> "volume"); _volumeAdded = getNumber (_config >> "volume");
_typeOf = getText (_config >> "type"); _typeOf = getText (_config >> "type");
if (isClass (_config >> _className)) then { if (isClass (_config >> _ivItem)) then {
_config = (_config >> _className); _config = (_config >> _ivItem);
if (isNumber (_config >> "volume")) then { _volumeAdded = getNumber (_config >> "volume");}; if (isNumber (_config >> "volume")) then { _volumeAdded = getNumber (_config >> "volume");};
if (isText (_config >> "type")) then { _typeOf = getText (_config >> "type"); }; if (isText (_config >> "type")) then { _typeOf = getText (_config >> "type"); };
}; };

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