diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 000000000..f2e2c29ac
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,6 @@
+* text=auto
+
+*.png binary
+*.jpg binary
+*.paa binary
+*.7z binary
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/.editorconfig b/=BTC=co@30_Hearts_and_Minds.Altis/.editorconfig
new file mode 100644
index 000000000..701e3ec6f
--- /dev/null
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/.editorconfig
@@ -0,0 +1,14 @@
+# EditorConfig helps developers define and maintain consistent
+# coding styles between different editors and IDEs
+# editorconfig.org
+
+
+root = true
+
+[*]
+end_of_line = lf
+insert_final_newline = true
+charset = utf-8
+indent_style = space
+indent_size = 4
+trim_trailing_whitespace = true
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/dlg_def.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/dlg_def.hpp
index 49095a182..9a11c25ad 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/dlg_def.hpp
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/dlg_def.hpp
@@ -1,267 +1,237 @@
-class btc_dlg_RscText
+class btc_dlg_RscText
{
- x = 0;
- y = 0;
- h = 0.037;
- w = 0.3;
- type = 0;
- style = 0;
- shadow = 1;
- colorShadow[] = {0, 0, 0, 0.5};
- font = "PuristaMedium";
- SizeEx = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
- text = "";
- colorText[] = {1, 1, 1, 1.0};
- colorBackground[] = {0, 0, 0, 0};
- linespacing = 1;
+ x = 0;
+ y = 0;
+ h = 0.037;
+ w = 0.3;
+ type = 0;
+ style = 0;
+ shadow = 1;
+ colorShadow[] = {0, 0, 0, 0.5};
+ font = "PuristaMedium";
+ SizeEx = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
+ text = "";
+ colorText[] = {1, 1, 1, 1.0};
+ colorBackground[] = {0, 0, 0, 0};
+ linespacing = 1;
};
-class btc_dlg_RscStructuredText
-{
- type = 13;
- style = 0;
- x = 0;
- y = 0;
- h = 0.035;
- w = 0.1;
- text = "";
- size = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
- colorText[] = {1, 1, 1, 1.0};
- shadow = 1;
-
- class Attributes
- {
- font = "PuristaMedium";
- color = "#ffffff";
- align = "left";
- shadow = 1;
- };
-};
-class btc_dlg_shortcutButton
+
+class btc_dlg_shortcutButton
{
- idc = -1;
- style = 0;
- default = 0;
- shadow = 1;
- w = 0.183825;
- h = "( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20)";
- color[] = {1, 1, 1, 1.0};
- color2[] = {0.95, 0.95, 0.95, 1};
- colorDisabled[] = {1, 1, 1, 0.25};
- colorFocused[] = {0.95, 0.95, 0.95, 1};//{1, 1, 1, 1.0};
- colorBackgroundFocused[] = {0.95, 0.95, 0.95, 1};//{"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 1};
- colorBackground[] = {0.95, 0.95, 0.95, 1};//{"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 1};
- colorBackground2[] = {1, 1, 1, 1};
- animTextureDefault = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\normal_ca.paa";
- animTextureNormal = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\normal_ca.paa";
- animTextureDisabled = "\A3\ui_f\data\GUI\scCommon\RscShortcutButton\normal_ca.paa";
- animTextureOver = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\over_ca.paa";
- animTextureFocused = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\focus_ca.paa";
- animTexturePressed = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\down_ca.paa";
- textureNoShortcut = "#(argb,8,8,3)color(0,0,0,0)";
- periodFocus = 1.2;
- periodOver = 0.8;
-
- class HitZone {
- left = 0.0;
- top = 0.0;
- right = 0.0;
- bottom = 0.0;
- };
-
- class ShortcutPos {
- left = 0;
- top = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20) - ( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2";
- w = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1) * (3/4)";
- h = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
- };
-
- class TextPos {
- left = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1) * (3/4)";
- top = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20) - ( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2";
- right = 0.005;
- bottom = 0.0;
- };
- period = 0.4;
- font = "PuristaMedium";
- size = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
- sizeEx = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
- text = "";
- soundEnter[] = {"\A3\ui_f\data\sound\onover", 0.09, 1};
- soundPush[] = {"\A3\ui_f\data\sound\new1", 0.0, 0};
- soundClick[] = {"\A3\ui_f\data\sound\onclick", 0.07, 1};
- soundEscape[] = {"\A3\ui_f\data\sound\onescape", 0.09, 1};
- action = "";
-
- class Attributes {
- font = "PuristaMedium";
- color = "#E5E5E5";
- align = "left";
- shadow = "true";
- };
-
- class AttributesImage {
- font = "PuristaMedium";
- color = "#E5E5E5";
- align = "left";
- };
+ idc = -1;
+ style = 0;
+ default = 0;
+ shadow = 1;
+ w = 0.183825;
+ h = "( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20)";
+ color[] = {1, 1, 1, 1.0};
+ color2[] = {0.95, 0.95, 0.95, 1};
+ colorDisabled[] = {1, 1, 1, 0.25};
+ colorFocused[] = {0.95, 0.95, 0.95, 1};//{1, 1, 1, 1.0};
+ colorBackgroundFocused[] = {0.95, 0.95, 0.95, 1};//{"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 1};
+ colorBackground[] = {0.95, 0.95, 0.95, 1};//{"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 1};
+ colorBackground2[] = {1, 1, 1, 1};
+ animTextureDefault = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\normal_ca.paa";
+ animTextureNormal = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\normal_ca.paa";
+ animTextureDisabled = "\A3\ui_f\data\GUI\scCommon\RscShortcutButton\normal_ca.paa";
+ animTextureOver = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\over_ca.paa";
+ animTextureFocused = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\focus_ca.paa";
+ animTexturePressed = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\down_ca.paa";
+ textureNoShortcut = "#(argb,8,8,3)color(0,0,0,0)";
+ periodFocus = 1.2;
+ periodOver = 0.8;
+
+ class HitZone {
+ left = 0.0;
+ top = 0.0;
+ right = 0.0;
+ bottom = 0.0;
+ };
+
+ class ShortcutPos {
+ left = 0;
+ top = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20) - ( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2";
+ w = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1) * (3/4)";
+ h = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
+ };
+
+ class TextPos {
+ left = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1) * (3/4)";
+ top = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20) - ( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2";
+ right = 0.005;
+ bottom = 0.0;
+ };
+ period = 0.4;
+ font = "PuristaMedium";
+ size = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
+ sizeEx = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
+ text = "";
+ soundEnter[] = {"\A3\ui_f\data\sound\onover", 0.09, 1};
+ soundPush[] = {"\A3\ui_f\data\sound\new1", 0.0, 0};
+ soundClick[] = {"\A3\ui_f\data\sound\onclick", 0.07, 1};
+ soundEscape[] = {"\A3\ui_f\data\sound\onescape", 0.09, 1};
+ action = "";
+
+ class Attributes {
+ font = "PuristaMedium";
+ color = "#E5E5E5";
+ align = "left";
+ shadow = "true";
+ };
+
+ class AttributesImage {
+ font = "PuristaMedium";
+ color = "#E5E5E5";
+ align = "left";
+ };
};
-class btc_dlg_button : btc_dlg_shortcutButton
+class btc_dlg_button : btc_dlg_shortcutButton
{
- idc = -1;
- type = 16;
- style = "0x02 + 0xC0";
- default = 0;
- shadow = 0;
- x = 0;
- y = 0;
- w = 0.15;//0.095589;
- h = 0.039216;
- animTextureNormal = "#(argb,8,8,3)color(1,1,1,1)";
- animTextureDisabled = "#(argb,8,8,3)color(1,1,1,1)";
- animTextureOver = "#(argb,8,8,3)color(1,1,1,0.5)";
- animTextureFocused = "#(argb,8,8,3)color(0,0,0,1)";//"#(argb,8,8,3)color(1,1,1,1)";
- animTexturePressed = "#(argb,8,8,3)color(0,0,0,1)";//"#(argb,8,8,3)color(1,1,1,1)";
- animTextureDefault = "#(argb,8,8,3)color(0,0,0,1)";//"#(argb,8,8,3)color(1,1,1,1)";
- colorBackground[] = {0, 0, 0, 0.8};
- colorBackground2[] = {1, 1, 1, 0.5};
- color[] = {1, 1, 1, 1};
- color2[] = {1, 1, 1, 1};
- colorText[] = {1, 1, 1, 1};
- colorDisabled[] = {1, 1, 1, 0.25};
- period = 1.2;
- periodFocus = 1.2;
- periodOver = 1.2;
- size = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
- sizeEx = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
-
- class TextPos {
- left = "0.25 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
- top = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) - ( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2";
- right = 0.005;
- bottom = 0.0;
- };
-
- class Attributes {
- font = "PuristaLight";
- color = "#E5E5E5";
- align = "left";
- shadow = "false";
- };
-
- class ShortcutPos {
- left = "(6.25 * ( ((safezoneW / safezoneH) min 1.2) / 40)) - 0.0225 - 0.005";
- top = 0.005;
- w = 0.0225;
- h = 0.03;
- };
+ idc = -1;
+ type = 16;
+ style = "0x02 + 0xC0";
+ default = 0;
+ shadow = 0;
+ x = 0;
+ y = 0;
+ w = 0.15;//0.095589;
+ h = 0.039216;
+ animTextureNormal = "#(argb,8,8,3)color(1,1,1,1)";
+ animTextureDisabled = "#(argb,8,8,3)color(1,1,1,1)";
+ animTextureOver = "#(argb,8,8,3)color(1,1,1,0.5)";
+ animTextureFocused = "#(argb,8,8,3)color(0,0,0,1)";//"#(argb,8,8,3)color(1,1,1,1)";
+ animTexturePressed = "#(argb,8,8,3)color(0,0,0,1)";//"#(argb,8,8,3)color(1,1,1,1)";
+ animTextureDefault = "#(argb,8,8,3)color(0,0,0,1)";//"#(argb,8,8,3)color(1,1,1,1)";
+ colorBackground[] = {0, 0, 0, 0.8};
+ colorBackground2[] = {1, 1, 1, 0.5};
+ color[] = {1, 1, 1, 1};
+ color2[] = {1, 1, 1, 1};
+ colorText[] = {1, 1, 1, 1};
+ colorDisabled[] = {1, 1, 1, 0.25};
+ period = 1.2;
+ periodFocus = 1.2;
+ periodOver = 1.2;
+ size = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
+ sizeEx = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
+
+ class TextPos {
+ left = "0.25 * ( ((safezoneW / safezoneH) min 1.2) / 40)";
+ top = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) - ( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2";
+ right = 0.005;
+ bottom = 0.0;
+ };
+
+ class Attributes {
+ font = "PuristaLight";
+ color = "#E5E5E5";
+ align = "left";
+ shadow = "false";
+ };
+
+ class ShortcutPos {
+ left = "(6.25 * ( ((safezoneW / safezoneH) min 1.2) / 40)) - 0.0225 - 0.005";
+ top = 0.005;
+ w = 0.0225;
+ h = 0.03;
+ };
};
class btc_dlg_RscListBox
-{
- type = 5;
- style = "0x10";
- idc=-1;
- font = "puristaMedium";
- SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.4)";//"(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.75)";
- rowHeight=0.025;
- lineSpacing = 1;
- idcRight = -1;
- idcLeft = -1;
- drawSideArrows = 1;
- columns[] = {0.937500,0.968750,1.000000,0.7};
- colorText[] = {1,1,1,0.7};
- colorDisabled[] = {1, 1, 1, 0.6};
- colorScrollBar[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",0.85};
- colorSelect[] = {0.937500,0.968750,1.000000,0.7};
- colorSelect2[] = {0.937500,0.968750,1.000000,0.7};
- colorSelectBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",0.85};
- colorSelectBackground2[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",0.85};
- colorBackground[] = {1,1,1,0.05};
- maxHistoryDelay = 1.0;
- soundSelect[] = {"",0.1,1};
- period = 1;
- autoScrollSpeed = -1;
- autoScrollDelay = 5;
- autoScrollRewind = 0;
- arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)";
- arrowFull = "#(argb,8,8,3)color(1,1,1,1)";
- shadow = 0;
+{
+ type = 5;
+ style = "0x10";
+ idc=-1;
+ font = "puristaMedium";
+ SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.4)";//"(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.75)";
+ rowHeight=0.025;
+ lineSpacing = 1;
+ idcRight = -1;
+ idcLeft = -1;
+ drawSideArrows = 1;
+ columns[] = {0.937500,0.968750,1.000000,0.7};
+ colorText[] = {1,1,1,0.7};
+ colorDisabled[] = {1, 1, 1, 0.6};
+ colorScrollBar[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",0.85};
+ colorSelect[] = {0.937500,0.968750,1.000000,0.7};
+ colorSelect2[] = {0.937500,0.968750,1.000000,0.7};
+ colorSelectBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",0.85};
+ colorSelectBackground2[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",0.85};
+ colorBackground[] = {1,1,1,0.05};
+ maxHistoryDelay = 1.0;
+ soundSelect[] = {"",0.1,1};
+ period = 1;
+ autoScrollSpeed = -1;
+ autoScrollDelay = 5;
+ autoScrollRewind = 0;
+ arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)";
+ arrowFull = "#(argb,8,8,3)color(1,1,1,1)";
+ shadow = 0;
class listScrollBar
- {
- color[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",0.85};
- colorActive[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",0.85};
- colorDisabled[] = {1, 1, 1, 1};
- arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa";
+ {
+ color[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",0.85};
+ colorActive[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",0.85};
+ colorDisabled[] = {1, 1, 1, 1};
+ arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa";
arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa";
border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa";
thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa";
soundSelect[] = {"\A3\ui_f\data\sound\RscListbox\soundSelect",0.09,1};
- shadow = 1;
- width = 0.2;
- };
+ shadow = 1;
+ width = 0.2;
+ };
};
-class btc_dlg_comboBox
+class btc_dlg_comboBox
{
- style = 16;
- type = 4;
- x = 0;
- y = 0;
- w = 0.12;
- h = 0.035;
- shadow = 0;
- colorSelect[] = {0,0,0,1};
- colorText[] = {0.95,0.95,0.95,1};
- colorBackground[] = {0,0,0,1};
- colorSelectBackground[] = {1,1,1,0.7};
- colorScrollBar[] = {1,0,0,1};
- arrowEmpty = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_ca.paa";
- arrowFull = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_active_ca.paa";
- wholeHeight = 0.45;
- color[] = {1,1,1,1};
- colorActive[] = {1,0,0,1};
- colorDisabled[] = {1,1,1,0.25};
- font = "PuristaMedium";
- sizeEx = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
- class ComboScrollBar
- {
- color[] = {1,1,1,0.6};
- colorActive[] = {1,1,1,1};
- colorDisabled[] = {1,1,1,0.3};
- thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa";
- arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa";
- arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa";
- border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa";
- };
- soundSelect[] = { "", 0, 1 };
- soundExpand[] = { "", 0, 1 };
- soundCollapse[] = { "", 0, 1 };
- maxHistoryDelay = 0;
-};
-class btc_dlg_RscProgress
-{
- type = 8;
- style = 0;
- colorFrame[] = {0,0,0,1};
- colorBar[] = {1,1,1,1};
- texture = "#(argb,8,8,3)color(1,1,1,1)";
- w = 1;
- h = 0.03;
+ style = 16;
+ type = 4;
+ x = 0;
+ y = 0;
+ w = 0.12;
+ h = 0.035;
+ shadow = 0;
+ colorSelect[] = {0,0,0,1};
+ colorText[] = {0.95,0.95,0.95,1};
+ colorBackground[] = {0,0,0,1};
+ colorSelectBackground[] = {1,1,1,0.7};
+ colorScrollBar[] = {1,0,0,1};
+ arrowEmpty = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_ca.paa";
+ arrowFull = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_active_ca.paa";
+ wholeHeight = 0.45;
+ color[] = {1,1,1,1};
+ colorActive[] = {1,0,0,1};
+ colorDisabled[] = {1,1,1,0.25};
+ font = "PuristaMedium";
+ sizeEx = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
+ class ComboScrollBar
+ {
+ color[] = {1,1,1,0.6};
+ colorActive[] = {1,1,1,1};
+ colorDisabled[] = {1,1,1,0.3};
+ thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa";
+ arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa";
+ arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa";
+ border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa";
+ };
+ soundSelect[] = { "", 0, 1 };
+ soundExpand[] = { "", 0, 1 };
+ soundCollapse[] = { "", 0, 1 };
+ maxHistoryDelay = 0;
};
class btc_dlg_RscEdit
{
- type = 2;
- style = 16;
- font = "PuristaMedium";
- shadow = 2;
- sizeEx = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
- autocomplete = "";
- htmlControl = true;
- lineSpacing = 1;
- colorBackground[] = {0, 0, 0, 0.65};
- colorText[] = {0.95, 0.95, 0.95, 1};
- colorDisabled[] = {1, 1, 1, 0.25};
- colorFocused[] = {1, 1, 1, 1.0};
- colorBackgroundFocused[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 1};
- colorSelection[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 1};
- canModify = 1;
-};
\ No newline at end of file
+ type = 2;
+ style = 16;
+ font = "PuristaMedium";
+ shadow = 2;
+ sizeEx = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
+ autocomplete = "";
+ htmlControl = true;
+ lineSpacing = 1;
+ colorBackground[] = {0, 0, 0, 0.65};
+ colorText[] = {0.95, 0.95, 0.95, 1};
+ colorDisabled[] = {1, 1, 1, 0.25};
+ colorFocused[] = {1, 1, 1, 1.0};
+ colorBackgroundFocused[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 1};
+ colorSelection[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 1};
+ canModify = 1;
+};
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/functions.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/functions.hpp
index e3660e223..d95847e51 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/functions.hpp
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/functions.hpp
@@ -1,9 +1,7 @@
-class CfgFunctions {
- class btc {
- class misc {
- class eh_veh_init {
- file = "core\fnc\eh\veh_init.sqf";//preInit = 1;
- };
+class btc {
+ class misc {
+ class eh_veh_init {
+ file = "core\fnc\eh\veh_init.sqf";//preInit = 1;
};
};
-};
\ No newline at end of file
+};
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf
index c97042601..04a14e3e5 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf
@@ -1,10 +1,10 @@
-private ["_p_civ_veh","_p_db","_p_en","_hideout_n","_cache_info_def","_cache_info_ratio","_info_chance","_p_rep","_p_skill","_c_array","_tower","_array","_chopper","_p_civ","_btc_rearming_vehicles","_vehicles","_magazines","_p_city_radius","_magazines_static","_static","_btc_rearming_static","_magazines_clean","_weapons_usefull","_magazines_static_clean","_p_en_AA"];
+private ["_p_civ_veh","_p_db","_p_en","_hideout_n","_cache_info_def","_cache_info_ratio","_info_chance","_p_rep","_p_skill","_c_array","_tower","_p_civ","_rearming_vehicles","_vehicles","_magazines","_p_city_radius","_magazines_static","_static","_rearming_static","_magazines_clean","_weapons_usefull","_magazines_static_clean","_p_en_AA","_p_ied_spot"];
-btc_version = 1.17; diag_log format ["=BTC= HEARTS AND MINDS VERSION %1",(str(btc_version) + ".8")];
+btc_version = 1.18;
+diag_log format ["=BTC= HEARTS AND MINDS VERSION %1.0", btc_version];
//Param
-
//<< Time options >>
btc_p_time = "btc_p_time" call BIS_fnc_getParamValue;
btc_p_acctime = "btc_p_acctime" call BIS_fnc_getParamValue;
@@ -20,6 +20,8 @@ _p_civ_veh = "btc_p_civ_veh" call BIS_fnc_getParamValue;
//<< IED options >>
btc_p_ied = ("btc_p_ied" call BIS_fnc_getParamValue)/2;
+_p_ied_spot = "btc_p_ied_spot" call BIS_fnc_getParamValue;
+btc_p_ied_drone = ("btc_p_ied_drone" call BIS_fnc_getParamValue) isEqualTo 1;
//<< Hideout/Cache options >>
_hideout_n = "btc_p_hideout_n" call BIS_fnc_getParamValue;
@@ -33,8 +35,8 @@ btc_p_redeploy = ("btc_p_redeploy" call BIS_fnc_getParamValue) isEqualTo 1;
//<< Skill options >>
btc_p_set_skill = ("btc_p_set_skill" call BIS_fnc_getParamValue) isEqualTo 1;
_p_skill = [
- ("btc_p_set_skill_general" call BIS_fnc_getParamValue)/10,//general
- ("btc_p_set_skill_aimingAccuracy" call BIS_fnc_getParamValue)/10,//aimingAccuracy
+ ("btc_p_set_skill_general" call BIS_fnc_getParamValue)/10,//general
+ ("btc_p_set_skill_aimingAccuracy" call BIS_fnc_getParamValue)/10,//aimingAccuracy
("btc_p_set_skill_aimingShake" call BIS_fnc_getParamValue)/10,//aimingShake
("btc_p_set_skill_aimingSpeed" call BIS_fnc_getParamValue)/10,//aimingSpeed
("btc_p_set_skill_endurance" call BIS_fnc_getParamValue)/10,//endurance
@@ -52,143 +54,157 @@ btc_p_veh_armed_spawn_more = ("btc_p_veh_armed_spawn_more" call BIS_fnc_getParam
btc_p_side_mission_cycle = ("btc_p_side_mission_cycle" call BIS_fnc_getParamValue) isEqualTo 1;
//<< Other options >>
+btc_p_arsenalType = "btc_p_arsenalType" call BIS_fnc_getParamValue;
_p_rep = "btc_p_rep" call BIS_fnc_getParamValue;
btc_p_garage = ("btc_p_garage" call BIS_fnc_getParamValue) isEqualTo 1;
_p_city_radius = ("btc_p_city_radius" call BIS_fnc_getParamValue) * 100;
btc_p_trigger = if (("btc_p_trigger" call BIS_fnc_getParamValue) isEqualTo 1) then {"this && !btc_db_is_saving && (false in (thisList apply {_x isKindOf 'Plane'})) && (false in (thisList apply {(_x isKindOf 'Helicopter') && (speed _x > 190)}))"} else {"this && !btc_db_is_saving"};
btc_p_debug = "btc_p_debug" call BIS_fnc_getParamValue;
-//btc_acre_mod = isClass(configFile >> "cfgPatches" >> "acre_main");
-//btc_tfr_mod = isClass(configFile >> "cfgPatches" >> "task_force_radio");
-
switch (btc_p_debug) do {
- case 0 : {btc_debug_log = false;btc_debug = false;};
- case 1 : {btc_debug_log = true;btc_debug = true;};
- case 2 : {btc_debug_log = true;btc_debug = false;};
+ case 0 : {btc_debug_log = false;btc_debug = false;};
+ case 1 : {btc_debug_log = true;btc_debug = true;};
+ case 2 : {btc_debug_log = true;btc_debug = false;};
};
if (!isMultiplayer) then {btc_debug_log = true;btc_debug = true;};
if (isServer) then {
- btc_final_phase = false;
-
- //City
- btc_city_radius = _p_city_radius;
- btc_city_blacklist = [];//NAME FROM CFG
-
- //Civ
- btc_civ_veh_active = [];
-
- //Database
- btc_db_is_saving = false;
- btc_db_load = _p_db;
-
- //Hideout
- btc_hideouts = [];
- btc_hideouts_id = 0;
- btc_hideouts_radius = 400;
- btc_hideout_n = _hideout_n;
- if (btc_hideout_n == 99) then {
- btc_hideout_n = (round random 5);
- };
- btc_hideout_safezone = 4000;
- btc_hideout_range = 3500;
- btc_hideout_rinf_time = 600;
- btc_hideout_cap_time = 1800;
- btc_hideout_cap_checking = false;
-
- //IED
- btc_ied_suic_time = 900;
- btc_ied_suic_spawned = - btc_ied_suic_time;
-
- //FOB
- btc_fobs = [[],[]];
-
-
- //Log
- btc_log_id_repo = 10;
- btc_log_cargo_repo = "Land_HBarrierBig_F" createVehicle [- 5000,- 5000,0];
-
- //Patrol
- btc_patrol_max = 8;
- btc_patrol_active = [];
- btc_patrol_area = 2500;
-
- //Rep
- btc_global_reputation = _p_rep;
- btc_rep_militia_call_time = 600;
- btc_rep_militia_called = - btc_rep_militia_call_time;
-
- //Hideout classname
- btc_type_campfire = ["MetalBarrel_burning_F","Campfire_burning_F","Land_Campfire_F","FirePlace_burning_F"];
- btc_type_bigbox = ["Box_FIA_Ammo_F","Box_East_AmmoVeh_F","CargoNet_01_box_F","O_CargoNet_01_ammo_F","Land_Pallet_MilBoxes_F","Land_PaperBox_open_full_F"];
- btc_type_seat = ["Land_WoodenLog_F","Land_CampingChair_V2_F","Land_CampingChair_V1_folded_F","Land_CampingChair_V1_F"];
- btc_type_sleepingbag = ["Land_Sleeping_bag_F","Land_Sleeping_bag_blue_F","Land_Sleeping_bag_brown_F"];
- btc_type_tent = ["Land_TentA_F","Land_TentDome_F"];
- btc_type_camonet = ["CamoNet_ghex_big_F","CamoNet_OPFOR_big_F","CamoNet_INDP_big_F","CamoNet_BLUFOR_big_F","CamoNet_OPFOR_open_F","CamoNet_ghex_open_F","CamoNet_BLUFOR_open_F","Land_IRMaskingCover_02_F","CamoNet_BLUFOR_F","CamoNet_ghex_F","CamoNet_OPFOR_F","CamoNet_INDP_F"];
-
- //Side
- btc_side_aborted = false;
- btc_side_assigned = false;
- btc_side_done = false;
- btc_side_failed = false;
- //Side 9 and 11 are not think for map with different islands. Start and end city can be on different islands.
- btc_side_list = if (btc_p_sea) then {[0,1,2,3,4,5,6,7,8,9,10,11,12,13]} else {[0,1,2,3,4,5,6,9,10,11,12,13]};
- btc_side_list_use = + btc_side_list;
- btc_side_jip_data = [];
- btc_type_tower = ["Land_Communication_F","Land_TTowerBig_1_F","Land_TTowerBig_2_F"];
- btc_type_phone = ["Land_PortableLongRangeRadio_F","Land_MobilePhone_smart_F","Land_MobilePhone_old_F"];
- btc_type_barrel = ["Land_GarbageBarrel_01_F","Land_BarrelSand_grey_F","MetalBarrel_burning_F","Land_BarrelWater_F","Land_MetalBarrel_F","Land_MetalBarrel_empty_F"];
- btc_type_canister = ["Land_CanisterPlastic_F"];
- btc_type_pallet = ["Land_Pallets_stack_F","Land_Pallets_F","Land_Pallet_F"];
- btc_type_box = ["Box_East_Wps_F","Box_East_WpsSpecial_F","Box_East_Ammo_F"];
- btc_type_generator = ["Land_Device_assembled_F","Land_Device_disassembled_F"];
- btc_type_storagebladder = ["StorageBladder_02_water_forest_F","StorageBladder_02_water_sand_F"];
- btc_type_mines = ["APERSMine","APERSBoundingMine","APERSTripMine"];
- btc_type_power = ["WaterPump_01_sand_F","WaterPump_01_forest_F","Land_PressureWasher_01_F","Land_DieselGroundPowerUnit_01_F","Land_JetEngineStarter_01_F","Land_PowerGenerator_F","Land_PortableGenerator_01_F"];
- btc_type_cord = ["Land_ExtensionCord_F"];
-
- //Vehs
- btc_vehicles = [btc_veh_1,btc_veh_2,btc_veh_3,btc_veh_4,btc_veh_5,btc_veh_6,btc_veh_7,btc_veh_8,btc_veh_9,btc_veh_10,btc_veh_11,btc_veh_12,btc_veh_13,btc_veh_14,btc_veh_15];
- btc_helo = [btc_helo_1];
-
- // The two arrays below are prefixes of buildings and their multiplier.
- // They will multiply the values of btc_rep_malus_building_destroyed and btc_rep_malus_building_damaged,
- // if a building is not present here it will be multiplied by 1.0.
- // Use 0.0 to disable reputation hit on a specific's building destruction.
- // You can modify this for any other terrain, clearing the table will also make all buildings just have a 1.0 multiplier.
- // If there's a hit in btc_buildings_multiplier, btc_buildings_categories_multipliers will NOT be run
- btc_buildings_multipliers = [
- // Specific buildings that need to have a custom modifier.
- ["Land_BellTower", 0.2 ], ["Land_WIP", 1.5], ["Land_u_Addon_01", 0.2],
- ["Land_Airport_Tower", 10.0], ["Land_Mil_ControlTower", 10.0],
- ["Land_TentHangar", 7.0], ["Land_i_Shed_Ind", 1.5], ["Land_u_Shed_Ind", 1.5],
- ["Land_TTowerBig", 6.0], ["Land_TTowerSmall", 4.5], ["Land_cmp_Tower", 4.0]
- ];
-
- // The multipliers are applied on top of each other, so "Chapel" and "Small" will both multiply the malus value
- btc_buildings_categories_multipliers = [
- ["Shed", 0.75], ["Slum", 0.8], ["Small", 0.8], ["Big", 1.5], ["Villa", 2.0], ["Main", 3.0], ["Tower", 2.0],
- ["HouseBlock", 2.0], ["Panelak", 2.0], ["Tenement", 7.0],
- ["Barn", 1.5], ["School", 3.0], ["Office", 2.0], ["Shop", 1.5], ["Store", 1.5], ["Hospital", 12.0],
- ["Castle", 2.5], ["Chapel", 3.0], ["Minaret", 3.0], ["Mosque", 4.0], ["Church", 4.0], ["Kostel", 4.0],
- ["Lighthouse", 4.0],
- ["Airport", 4.0], ["Hangar", 1.75], ["ControlTower", 2.25], ["Terminal", 3.0],
- ["Hopper", 2.0], ["Tank", 4.0], ["Factory", 2.0], ["Transformer", 1.1],
- ["FuelStation", 5.0],
- ["Barracks", 1.75],
- ["spp", 3.0], ["Powerstation", 3.0],
- ["Pump", 2.5]
- ];
- btc_buildings_changed = [];
+ btc_final_phase = false;
+
+ private _allclass = ("true" configClasses (configFile >> "CfgVehicles")) apply {configName _x};
+ _allclass = _allclass select {getNumber(configfile >> "CfgVehicles" >> _x >> "scope") isEqualTo 2};
+
+ //City
+ btc_city_radius = _p_city_radius;
+ btc_city_blacklist = [];//NAME FROM CFG
+
+ //Civ
+ btc_civ_veh_active = [];
+
+ //Database
+ btc_db_is_saving = false;
+ btc_db_load = _p_db;
+
+ //Hideout
+ btc_hideouts = [];
+ btc_hideouts_id = 0;
+ btc_hideouts_radius = 400;
+ btc_hideout_n = _hideout_n;
+ if (btc_hideout_n == 99) then {
+ btc_hideout_n = round random 5;
+ };
+ btc_hideout_safezone = 4000;
+ btc_hideout_range = 3500;
+ btc_hideout_rinf_time = 600;
+ btc_hideout_cap_time = 1800;
+ btc_hideout_cap_checking = false;
+
+ //IED
+ btc_ied_suic_time = 900;
+ btc_ied_suic_spawned = - btc_ied_suic_time;
+ btc_ied_offset = [0, -0.03, -0.07] select _p_ied_spot;
+
+ //FOB
+ btc_fobs = [[], []];
+
+
+ //Log
+ btc_log_id_repo = 10;
+ btc_log_cargo_repo = "Land_HBarrierBig_F" createVehicle [- 5000, - 5000, 0];
+
+ //Patrol
+ btc_patrol_max = 8;
+ btc_patrol_active = [];
+ btc_patrol_area = 2500;
+
+ //Rep
+ btc_global_reputation = _p_rep;
+ btc_rep_militia_call_time = 600;
+ btc_rep_militia_called = - btc_rep_militia_call_time;
+
+ //Hideout classname
+ btc_type_campfire = ["MetalBarrel_burning_F","Campfire_burning_F","Land_Campfire_F","FirePlace_burning_F"];
+ btc_type_bigbox = ["Box_FIA_Ammo_F","Box_East_AmmoVeh_F","CargoNet_01_box_F","O_CargoNet_01_ammo_F","Land_Pallet_MilBoxes_F","Land_PaperBox_open_full_F"];
+ btc_type_seat = ["Land_WoodenLog_F","Land_CampingChair_V2_F","Land_CampingChair_V1_folded_F","Land_CampingChair_V1_F"];
+ btc_type_sleepingbag = ["Land_Sleeping_bag_F","Land_Sleeping_bag_blue_F","Land_Sleeping_bag_brown_F"];
+ btc_type_tent = ["Land_TentA_F","Land_TentDome_F"];
+ btc_type_camonet = ["CamoNet_ghex_big_F","CamoNet_OPFOR_big_F","CamoNet_INDP_big_F","CamoNet_BLUFOR_big_F","CamoNet_OPFOR_open_F","CamoNet_ghex_open_F","CamoNet_BLUFOR_open_F","Land_IRMaskingCover_02_F","CamoNet_BLUFOR_F","CamoNet_ghex_F","CamoNet_OPFOR_F","CamoNet_INDP_F"];
+
+ //Side
+ btc_side_aborted = false;
+ btc_side_assigned = false;
+ btc_side_done = false;
+ btc_side_failed = false;
+ btc_side_list = [0, 1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13]; // On ground (Side 9 and 11 are not think for map with different islands. Start and end city can be on different islands.)
+ if (btc_p_sea) then {btc_side_list append [7, 8]}; // On sea
+ btc_side_list_use = + btc_side_list;
+ btc_side_jip_data = [];
+ btc_type_tower = ["Land_Communication_F","Land_TTowerBig_1_F","Land_TTowerBig_2_F"];
+ btc_type_phone = ["Land_PortableLongRangeRadio_F","Land_MobilePhone_smart_F","Land_MobilePhone_old_F"];
+ btc_type_barrel = ["Land_GarbageBarrel_01_F","Land_BarrelSand_grey_F","MetalBarrel_burning_F","Land_BarrelWater_F","Land_MetalBarrel_F","Land_MetalBarrel_empty_F"];
+ btc_type_canister = ["Land_CanisterPlastic_F"];
+ btc_type_pallet = ["Land_Pallets_stack_F","Land_Pallets_F","Land_Pallet_F"];
+ btc_type_box = ["Box_East_Wps_F","Box_East_WpsSpecial_F","Box_East_Ammo_F"];
+ btc_type_generator = ["Land_Device_assembled_F","Land_Device_disassembled_F"];
+ btc_type_storagebladder = ["StorageBladder_02_water_forest_F","StorageBladder_02_water_sand_F"];
+ btc_type_mines = ["APERSMine","APERSBoundingMine","APERSTripMine"];
+ btc_type_power = ["WaterPump_01_sand_F","WaterPump_01_forest_F","Land_PressureWasher_01_F","Land_DieselGroundPowerUnit_01_F","Land_JetEngineStarter_01_F","Land_PowerGenerator_F","Land_PortableGenerator_01_F"];
+ btc_type_cord = ["Land_ExtensionCord_F"];
+ btc_type_cones = ["Land_RoadCone_01_F", "RoadCone_F"];
+ btc_type_fences = ["Land_PlasticNetFence_01_long_F", "Land_PlasticNetFence_01_long_d_F", "RoadBarrier_F", "TapeSign_F"];
+ btc_type_portable_light = ["Land_PortableLight_double_F", "Land_PortableLight_single_F"];
+ btc_type_first_aid_kits = ["Land_FirstAidKit_01_open_F", "Land_FirstAidKit_01_closed_F"];
+ btc_type_body_bags = _allclass select {
+ (_x isKindOf "Land_Bodybag_01_base_F") ||
+ (_x isKindOf "Land_Bodybag_01_empty_base_F") ||
+ (_x isKindOf "Land_Bodybag_01_folded_base_F")
+ };
+ btc_type_signs = _allclass select {_x isKindOf "Land_Sign_Mines_F"};
+ btc_type_bloods = _allclass select {_x isKindOf "Blood_01_Base_F"};
+ btc_type_medicals = _allclass select {_x isKindOf "MedicalGarbage_01_Base_F"};
+
+ //BTC Vehicles in missions.sqm
+ btc_vehicles = [btc_veh_1,btc_veh_2,btc_veh_3,btc_veh_4,btc_veh_5,btc_veh_6,btc_veh_7,btc_veh_8,btc_veh_9,btc_veh_10,btc_veh_11,btc_veh_12,btc_veh_13,btc_veh_14,btc_veh_15];
+ btc_helo = [btc_helo_1];
+
+ // The two arrays below are prefixes of buildings and their multiplier.
+ // They will multiply the values of btc_rep_malus_building_destroyed and btc_rep_malus_building_damaged,
+ // if a building is not present here it will be multiplied by 1.0.
+ // Use 0.0 to disable reputation hit on a specific's building destruction.
+ // You can modify this for any other terrain, clearing the table will also make all buildings just have a 1.0 multiplier.
+ // If there's a hit in btc_buildings_multiplier, btc_buildings_categories_multipliers will NOT be run
+ btc_buildings_multipliers = [
+ // Specific buildings that need to have a custom modifier.
+ ["Land_BellTower", 0.2 ], ["Land_WIP", 1.5], ["Land_u_Addon_01", 0.2],
+ ["Land_Airport_Tower", 10.0], ["Land_Mil_ControlTower", 10.0],
+ ["Land_TentHangar", 7.0], ["Land_i_Shed_Ind", 1.5], ["Land_u_Shed_Ind", 1.5],
+ ["Land_TTowerBig", 6.0], ["Land_TTowerSmall", 4.5], ["Land_cmp_Tower", 4.0]
+ ];
+
+ // The multipliers are applied on top of each other, so "Chapel" and "Small" will both multiply the malus value
+ btc_buildings_categories_multipliers = [
+ ["Shed", 0.75], ["Slum", 0.8], ["Small", 0.8], ["Big", 1.5], ["Villa", 2.0], ["Main", 3.0], ["Tower", 2.0],
+ ["HouseBlock", 2.0], ["Panelak", 2.0], ["Tenement", 7.0],
+ ["Barn", 1.5], ["School", 3.0], ["Office", 2.0], ["Shop", 1.5], ["Store", 1.5], ["Hospital", 12.0],
+ ["Castle", 2.5], ["Chapel", 3.0], ["Minaret", 3.0], ["Mosque", 4.0], ["Church", 4.0], ["Kostel", 4.0],
+ ["Lighthouse", 4.0],
+ ["Airport", 4.0], ["Hangar", 1.75], ["ControlTower", 2.25], ["Terminal", 3.0],
+ ["Hopper", 2.0], ["Tank", 4.0], ["Factory", 2.0], ["Transformer", 1.1],
+ ["FuelStation", 5.0],
+ ["Barracks", 1.75],
+ ["spp", 3.0], ["Powerstation", 3.0],
+ ["Pump", 2.5]
+ ];
+ btc_buildings_changed = [];
};
//Civ
// Get all faction from mod there are currently running
//copyToClipboard str (["CIV"] call btc_fnc_get_class);
private _allfaction = ["AFGCIV","CIV_F","BTC_AC","CAF_AG_AFR_CIV","CAF_AG_ME_CIV","COREV_AFCIV","COREV_ASCIV","COREV_CDFCIV","COREV_TKCIV","CUP_C_RU","CUP_C_CHERNARUS","CUP_C_SAHRANI","CUP_C_TK","LIB_CIV","LOP_AFR_CIV","LOP_CHR_CIV","LOP_TAK_CIV","OPTRE_UEG_CIV","CIV_IDAP_F","RDS_RUS_CIV","UNSUNG_C"]; //All factions
-_p_civ = _allfaction select _p_civ; //Select faction selected from mission parameter
-_p_civ_veh = _allfaction select _p_civ_veh; //Select faction selected from mission parameter
+_p_civ = _allfaction select _p_civ; //Select faction selected from mission parameter
+_p_civ_veh = _allfaction select _p_civ_veh; //Select faction selected from mission parameter
private _allclasse = [[_p_civ]] call btc_fnc_civ_class; //Create classes from factions, you can combine factions from the SAME side : [[_p_civ , "btc_ac","LOP_TAK_CIV"]] call btc_fnc_civ_class.
//Save class name to global variable
@@ -224,118 +240,119 @@ btc_int_search_intel_time = 4;
//Info
btc_info_intel_chance = _info_chance;
-btc_info_intel_type = [80,95];//cache - hd - both
+btc_info_intel_type = [80, 95];//cache - hd - both
btc_info_cache_def = _cache_info_def;
btc_info_cache_ratio = _cache_info_ratio;
btc_info_hideout_radius = 4000;
//Supplies
-btc_supplies_mat = "Land_Cargo20_red_F";
+btc_supplies_mat = "Land_Cargo20_IDAP_F";
+
+//Containers
+btc_containers_mat = ["Land_Cargo20_military_green_F", "Land_Cargo40_military_green_F"];
//Player
-btc_player_side = west;
-btc_respawn_marker = "respawn_west";
+btc_player_side = west;
+btc_respawn_marker = "respawn_west";
//Log
if (isServer) then {
- #define REARM_TURRET_PATHS [[-1], [0], [0,0], [0,1], [1], [2], [0,2]]
-
- _btc_rearming_vehicles = [btc_vehicles + btc_helo,[]] call btc_fnc_find_veh_with_turret;
- private _btc_rearming_magazines = [];
- {
- private _vehicle_type = _x;
- private _vehicle = ((btc_vehicles + btc_helo) select {typeOf _x isEqualTo _vehicle_type}) select 0;
- private _magazines = [_vehicle] call btc_fnc_log_getRearmMagazines;
- _btc_rearming_magazines pushBack _magazines;
- } forEach _btc_rearming_vehicles;
-
-
- private _allclass = ("true" configClasses (configFile >> "CfgVehicles")) apply {configName _x};
- _allclass = _allclass select {(getNumber(configfile >> "CfgVehicles" >> _x >> "scope") isEqualTo 2)};
-
- _btc_rearming_static =
- [
- //"Static"
- "B_Mortar_01_F"
- ] + (_allclass select {((_x isKindOf "StaticGrenadeLauncher") || (_x isKindOf "StaticMGWeapon")) && (getNumber(configfile >> "CfgVehicles" >> _x >> "side") isEqualTo ([east,west,independent,civilian] find btc_player_side))});
-
- _magazines_static = [];
- {
- _static = _x;
- {
- _magazines_static append (([_static,_x] call btc_fnc_log_getconfigmagazines));
- } forEach REARM_TURRET_PATHS;
- } forEach _btc_rearming_static;
- _magazines_static = _magazines_static - ["FakeWeapon"];
- _magazines_static_clean = [];
- {
- _magazines_static_clean pushBackUnique _x;
- } forEach _magazines_static;
-
- btc_construction_array =
- [
- [
- "Fortifications",
- "Static",
- "Ammobox",
- "Containers",
- "Supplies",
- "FOB",
- "Vehicle Logistic"
- ] + (_btc_rearming_vehicles apply {getText (configFile >> "cfgVehicles" >> _x >> "displayName")}),
- [
- [
- //"Fortifications"
- "Land_BagBunker_Small_F",
- "Land_BagFence_Corner_F",
- "Land_BagFence_End_F",
- "Land_BagFence_Long_F",
- "Land_BagFence_Round_F",
- "Land_BagFence_Short_F",
- "Land_HBarrier_1_F",
- "Land_HBarrier_3_F",
- "Land_HBarrier_5_F",
- "Land_HBarrierBig_F",
- "Land_Razorwire_F",
- "Land_CncBarrier_F",
- "Land_CncBarrierMedium_F",
- "Land_CncBarrierMedium4_F",
- "Land_CncWall1_F",
- "Land_CncWall4_F",
- "Land_Mil_ConcreteWall_F",
- "Land_Mil_WallBig_4m_F",
- "Land_Mil_WallBig_Corner_F",
- "Land_PortableLight_double_F",
- "Land_Pod_Heli_Transport_04_medevac_black_F",
- "B_Slingload_01_Fuel_F"
- ],
- _btc_rearming_static + _magazines_static_clean,
- [
- //"Ammobox"
- "Land_WoodenBox_F"
-
- ] + (_allclass select {_x isKindOf "ReammoBox_F" && !(_x isKindOf "Slingload_01_Base_F") && !(_x isKindOf "Pod_Heli_Transport_04_base_F")}),
- [
- //"Containers"
- "Land_Cargo20_military_green_F",
- "Land_Cargo40_military_green_F"
- ],
- [
- //"Supplies"
- btc_supplies_mat
- ],
- [
- //"FOB"
- btc_fob_mat
- ],
- [
- //"Vehicle logistic"
- "ACE_Wheel",
- "ACE_Track"
- ]
- ] + _btc_rearming_magazines
- ];
- publicVariable "btc_construction_array";
+ #define REARM_TURRET_PATHS [[-1], [0], [0,0], [0,1], [1], [2], [0,2]]
+
+ private _allclass = ("true" configClasses (configFile >> "CfgVehicles")) apply {configName _x};
+ _allclass = _allclass select {getNumber(configfile >> "CfgVehicles" >> _x >> "scope") isEqualTo 2};
+
+ _rearming_vehicles = [btc_vehicles + btc_helo,[]] call btc_fnc_find_veh_with_turret;
+ private _rearming_magazines = [];
+ {
+ private _vehicle_type = _x;
+ private _vehicle = ((btc_vehicles + btc_helo) select {typeOf _x isEqualTo _vehicle_type}) select 0;
+ private _magazines = [_vehicle] call btc_fnc_log_getRearmMagazines;
+ _rearming_magazines pushBack _magazines;
+ } forEach _rearming_vehicles;
+
+ _rearming_static =
+ [
+ //"Static"
+ "B_Mortar_01_F"
+ ] + (_allclass select {((_x isKindOf "StaticGrenadeLauncher") || (_x isKindOf "StaticMGWeapon")) && (getNumber(configfile >> "CfgVehicles" >> _x >> "side") isEqualTo ([east,west,independent,civilian] find btc_player_side))});
+
+ _magazines_static = [];
+ {
+ _static = _x;
+ {
+ _magazines_static append (([_static,_x] call btc_fnc_log_getconfigmagazines));
+ } forEach REARM_TURRET_PATHS;
+ } forEach _rearming_static;
+ _magazines_static = _magazines_static - ["FakeWeapon"];
+ _magazines_static_clean = [];
+ {
+ _magazines_static_clean pushBackUnique _x;
+ } forEach _magazines_static;
+
+ btc_construction_array =
+ [
+ [
+ "Fortifications",
+ "Static",
+ "Ammobox",
+ "Containers",
+ "Supplies",
+ "FOB",
+ "Vehicle Logistic"
+ ] + (_rearming_vehicles apply {getText (configFile >> "cfgVehicles" >> _x >> "displayName")}),
+ [
+ [
+ //"Fortifications"
+ "Land_BagBunker_Small_F",
+ "Land_BagFence_Corner_F",
+ "Land_BagFence_End_F",
+ "Land_BagFence_Long_F",
+ "Land_BagFence_Round_F",
+ "Land_BagFence_Short_F",
+ "Land_HBarrier_1_F",
+ "Land_HBarrier_3_F",
+ "Land_HBarrier_5_F",
+ "Land_HBarrierBig_F",
+ "Land_Razorwire_F",
+ "Land_CncBarrier_F",
+ "Land_CncBarrierMedium_F",
+ "Land_CncBarrierMedium4_F",
+ "Land_CncWall1_F",
+ "Land_CncWall4_F",
+ "Land_Mil_ConcreteWall_F",
+ "Land_Mil_WallBig_4m_F",
+ "Land_Mil_WallBig_Corner_F",
+ "Land_PortableLight_double_F",
+ "Land_Pod_Heli_Transport_04_medevac_black_F",
+ "B_Slingload_01_Fuel_F"
+ ],
+ _rearming_static + _magazines_static_clean,
+ [
+ //"Ammobox"
+ "Land_WoodenBox_F"
+
+ ] + (_allclass select {_x isKindOf "ReammoBox_F" && !(_x isKindOf "Slingload_01_Base_F") && !(_x isKindOf "Pod_Heli_Transport_04_base_F")}),
+ [
+ //"Containers"
+
+ ] + btc_containers_mat,
+ [
+ //"Supplies"
+ btc_supplies_mat
+ ],
+ [
+ //"FOB"
+ btc_fob_mat
+ ],
+ [
+ //"Vehicle logistic"
+ "ACE_Wheel",
+ "ACE_Track"
+ ]
+ ] + _rearming_magazines
+ ];
+ publicVariable "btc_construction_array";
};
_c_array = btc_construction_array select 1;
@@ -352,117 +369,112 @@ btc_log_obj_created = [];
btc_log_main_cc =
[
- "Helicopter",6,
- "Ship",3,
- "Tank",5,
- "Wheeled_APC",5,
- "Truck",10,
- "Truck_F",10,
- "Motorcycle",1,
- "Car",3
+ "Helicopter",6,
+ "Ship",3,
+ "Tank",5,
+ "Wheeled_APC",5,
+ "Truck",10,
+ "Truck_F",10,
+ "Motorcycle",1,
+ "Car",3
];
btc_log_main_rc =
[
- "ReammoBox_F",2,
- "thingX",3,
- "StaticWeapon",3,
- "Strategic",2,
- "Motorcycle",3,
- "Land_BarGate_F",3,
- "HBarrier_base_F",5,
- "Land_BagFence_Long_F",3,
- "Wall_F",5,
- "BagBunker_base_F",5,
- "Wheeled_APC",50,
- "Tank",75,
- "Truck",50,
- "Truck_F",50,
- "Ship",50,
- "Helicopter",9999,
- "Car",35
+ "ReammoBox_F",2,
+ "thingX",3,
+ "StaticWeapon",3,
+ "Strategic",2,
+ "Motorcycle",3,
+ "Land_BarGate_F",3,
+ "HBarrier_base_F",5,
+ "Land_BagFence_Long_F",3,
+ "Wall_F",5,
+ "BagBunker_base_F",5,
+ "Wheeled_APC",50,
+ "Tank",75,
+ "Truck",50,
+ "Truck_F",50,
+ "Ship",50,
+ "Helicopter",9999,
+ "Car",35
];
btc_log_def_cc =
[
- "B_Quadbike_01_F",2,
- "B_UGV_01_rcws_F",4,
- "B_UGV_01_F",4,
- "Land_CargoBox_V1_F",0,
- btc_supplies_mat,0,
- btc_fob_mat,0,
- "Land_Cargo20_military_green_F",20,
- "Land_Cargo40_military_green_F",40,
- "B_Slingload_01_Fuel_F",0,
- "Land_Pod_Heli_Transport_04_medevac_black_F",0,
- //Trucks
- "B_Truck_01_transport_F",10,
- "B_Truck_01_covered_F",10,
- "I_Truck_02_covered_F",10,
- "O_Truck_02_covered_F",10,
- "I_Truck_02_transport_F",10,
- "O_Truck_02_transport_F",10,
- "O_Truck_02_transport_F",10
+ "B_Quadbike_01_F",2,
+ "B_UGV_01_rcws_F",4,
+ "B_UGV_01_F",4,
+ "Land_CargoBox_V1_F",0,
+ btc_supplies_mat,0,
+ btc_fob_mat,0,
+ "Land_Cargo20_military_green_F",20,
+ "Land_Cargo40_military_green_F",40,
+ "B_Slingload_01_Fuel_F",0,
+ "Land_Pod_Heli_Transport_04_medevac_black_F",0,
+ //Trucks
+ "B_Truck_01_transport_F",10,
+ "B_Truck_01_covered_F",10,
+ "I_Truck_02_covered_F",10,
+ "O_Truck_02_covered_F",10,
+ "I_Truck_02_transport_F",10,
+ "O_Truck_02_transport_F",10,
+ "O_Truck_02_transport_F",10
];
btc_log_def_rc =
[
- "Land_BagBunker_Small_F",5,
- "Land_CargoBox_V1_F",9999,
- btc_supplies_mat,10,
- btc_fob_mat,10,
- "Land_Cargo20_military_green_F",20,
- "Land_Cargo40_military_green_F",40,
- "B_Slingload_01_Fuel_F",20,
- "Land_Pod_Heli_Transport_04_medevac_black_F",20
+ "Land_BagBunker_Small_F",5,
+ "Land_CargoBox_V1_F",9999,
+ btc_supplies_mat,10,
+ btc_fob_mat,10,
+ "Land_Cargo20_military_green_F",20,
+ "Land_Cargo40_military_green_F",40,
+ "B_Slingload_01_Fuel_F",20,
+ "Land_Pod_Heli_Transport_04_medevac_black_F",20
];
btc_fnc_log_get_nottowable = {
- private _tower = _this select 0;
- switch (true) do {
- //The tower is a tank so it can't tow: plane and helicopter
- case (_tower isKindOf "Tank") : {["Plane","Helicopter"];};
- case (_tower isKindOf "Truck_F") : {["Plane","Helicopter"];};
- case (_tower isKindOf "Truck") : {["Plane","Helicopter"];};
- case (_tower isKindOf "Ship") : {["Car","Truck","Truck_F","Tank","Plane","Helicopter"];};
- //The tower is a car so it can't tow: truck, tank, plane and helicopter
- case (_tower isKindOf "Car") : {["Truck","Truck_F","Tank","Plane","Helicopter"];};
- default {["Car","Truck","Truck_F","Tank","Plane","Helicopter","Ship"];};
- };
+ private _tower = _this select 0;
+ switch (true) do {
+ //The tower is a tank so it can't tow: plane and helicopter
+ case (_tower isKindOf "Tank") : {["Plane","Helicopter"];};
+ case (_tower isKindOf "Truck_F") : {["Plane","Helicopter"];};
+ case (_tower isKindOf "Truck") : {["Plane","Helicopter"];};
+ case (_tower isKindOf "Ship") : {["Car","Truck","Truck_F","Tank","Plane","Helicopter"];};
+ //The tower is a car so it can't tow: truck, tank, plane and helicopter
+ case (_tower isKindOf "Car") : {["Truck","Truck_F","Tank","Plane","Helicopter"];};
+ default {["Car","Truck","Truck_F","Tank","Plane","Helicopter","Ship"];};
+ };
};
//Lift
btc_fnc_log_get_liftable = {
- _chopper = _this select 0;
- _array = [];
- switch (typeOf _chopper) do {
- //MH9
- case "B_Heli_Light_01_F" : {_array = ["Motorcycle","ReammoBox","ReammoBox_F","Quadbike_01_base_F","Strategic"];};
- //PO-30
- case "O_Heli_Light_02_F" : {_array = ["Motorcycle","ReammoBox","ReammoBox_F","StaticWeapon","Car"];};
-
- case "RHS_UH1Y_d" : {_array = (["Motorcycle","ReammoBox","ReammoBox_F","StaticWeapon","Car","Truck","Wheeled_APC_F","Air","Ship"]) + ((btc_construction_array select 1) select 3) + ((btc_construction_array select 1) select 4) + ((btc_construction_array select 1) select 5);};
-
- //UH80
- case "B_Heli_Transport_01_F" : {_array = (["Motorcycle","ReammoBox","ReammoBox_F","StaticWeapon","Car","Truck","Wheeled_APC_F","Air","Ship"]) + ((btc_construction_array select 1) select 3) + ((btc_construction_array select 1) select 4) + ((btc_construction_array select 1) select 5);};
- //UH80 - CAMO
- case "B_Heli_Transport_01_camo_F" : {_array = (["Motorcycle","ReammoBox","ReammoBox_F","StaticWeapon","Car","Truck","Wheeled_APC_F","Air","Ship"]) + ((btc_construction_array select 1) select 3) + ((btc_construction_array select 1) select 4) + ((btc_construction_array select 1) select 5);};
- //CH49
- case "I_Heli_Transport_02_F" : {_array = (["Motorcycle","ReammoBox","ReammoBox_F","StaticWeapon","Car","Truck","Wheeled_APC_F","Tracked_APC","APC_Tracked_01_base_F","APC_Tracked_02_base_F","Air","Ship","Tank"]) + ((btc_construction_array select 1) select 3) + ((btc_construction_array select 1) select 4) + ((btc_construction_array select 1) select 5);};
-
- case "RHS_CH_47F_10" : {_array = (["Motorcycle","ReammoBox","ReammoBox_F","StaticWeapon","Car","Truck","Wheeled_APC_F","Tracked_APC","APC_Tracked_01_base_F","APC_Tracked_02_base_F","Air","Ship","Tank"]) + ((btc_construction_array select 1) select 3) + ((btc_construction_array select 1) select 4) + ((btc_construction_array select 1) select 5);};
-
- case "B_SDV_01_F" : {_array = (["Motorcycle","ReammoBox","ReammoBox_F","StaticWeapon","Car","Truck","Wheeled_APC_F","Tracked_APC","APC_Tracked_01_base_F","APC_Tracked_02_base_F","Air","Ship","Tank"]) + ((btc_construction_array select 1) select 3) + ((btc_construction_array select 1) select 4) + ((btc_construction_array select 1) select 5);};
-
- default {
- private ["_MaxCargoMass"];
- _MaxCargoMass = getNumber (configFile >> "CfgVehicles" >> typeOf _chopper >> "slingLoadMaxCargoMass");
- switch (true) do {
- case (_MaxCargoMass <= 500) : {_array = ["Motorcycle","ReammoBox","ReammoBox_F","Quadbike_01_base_F","Strategic"];};
- case (_MaxCargoMass <= 4100) : {_array = (["Motorcycle","ReammoBox","ReammoBox_F","StaticWeapon","Car","Truck_F","Truck","Wheeled_APC_F","Air","Ship"]) + ((btc_construction_array select 1) select 3) + ((btc_construction_array select 1) select 4) + ((btc_construction_array select 1) select 5);};
- case (_MaxCargoMass <= 14000) : {_array = (["Motorcycle","ReammoBox","ReammoBox_F","StaticWeapon","Car","Truck_F","Truck","Wheeled_APC_F","Tracked_APC","APC_Tracked_01_base_F","APC_Tracked_02_base_F","Air","Ship","Tank"]) + ((btc_construction_array select 1) select 3) + ((btc_construction_array select 1) select 4) + ((btc_construction_array select 1) select 5);};
- default {_array = (["Motorcycle","ReammoBox","ReammoBox_F","StaticWeapon","Car","Truck","Truck_F","Wheeled_APC","Tracked_APC","APC_Tracked_01_base_F","APC_Tracked_02_base_F","Air","Ship","Tank"]) + ((btc_construction_array select 1) select 3) + ((btc_construction_array select 1) select 4) + ((btc_construction_array select 1) select 5);};
- };
- };
- };
- _array
+ params ["_chopper"];
+ private _array = [];
+ switch (typeOf _chopper) do {
+ case "B_SDV_01_F" : {
+ _array = ["Motorcycle","ReammoBox","ReammoBox_F","StaticWeapon","Car","Truck","Wheeled_APC_F","Tracked_APC","APC_Tracked_01_base_F","APC_Tracked_02_base_F","Air","Ship","Tank"] + ((btc_construction_array select 1) select 3) + ((btc_construction_array select 1) select 4) + ((btc_construction_array select 1) select 5);
+ };
+ default {
+ private _MaxCargoMass = getNumber (configFile >> "CfgVehicles" >> typeOf _chopper >> "slingLoadMaxCargoMass");
+ switch (true) do {
+ case (_MaxCargoMass <= 510) : {
+ _array = ["Motorcycle","ReammoBox","ReammoBox_F","Quadbike_01_base_F","Strategic"];
+ };
+ case (_MaxCargoMass <= 2100) : {
+ _array = ["Motorcycle","ReammoBox","ReammoBox_F","StaticWeapon","Car"];
+ };
+ case (_MaxCargoMass <= 4100) : {
+ _array = ["Motorcycle","ReammoBox","ReammoBox_F","StaticWeapon","Car","Truck_F","Truck","Wheeled_APC_F","Air","Ship"] + ((btc_construction_array select 1) select 3) + ((btc_construction_array select 1) select 4) + ((btc_construction_array select 1) select 5);
+ };
+ case (_MaxCargoMass <= 14000) : {
+ _array = ["Motorcycle","ReammoBox","ReammoBox_F","StaticWeapon","Car","Truck_F","Truck","Wheeled_APC_F","Tracked_APC","APC_Tracked_01_base_F","APC_Tracked_02_base_F","Air","Ship","Tank"] + ((btc_construction_array select 1) select 3) + ((btc_construction_array select 1) select 4) + ((btc_construction_array select 1) select 5);
+ };
+ default {
+ _array = ["Motorcycle","ReammoBox","ReammoBox_F","StaticWeapon","Car","Truck_F","Truck","Wheeled_APC_F","Tracked_APC","APC_Tracked_01_base_F","APC_Tracked_02_base_F","Air","Ship","Tank"] + ((btc_construction_array select 1) select 3) + ((btc_construction_array select 1) select 4) + ((btc_construction_array select 1) select 5);
+ };
+ };
+ };
+ };
+ _array
};
btc_ropes_deployed = false;
@@ -477,8 +489,8 @@ btc_hq = objNull;
// Get all faction from mod there are currently running
//copyToClipboard str (["EN"] call btc_fnc_get_class);
private _allfaction = ["BLU_F","BLU_G_F","CAR","EMPIRE","GEONOSIANS","IND_F","IND_G_F","OPF_F","OPF_G_F","REBELLION","TBAN","UNSUNG","AFR_ARMY","ARA_ARMY","ARL_ARMY","BTC_AM","C_I_S","CAF_AG_AFR_P","CAF_AG_EEUR_R","CAF_AG_ME_T","CEC_ARMY","COREV_AFARMY","COREV_AFARMY_GREEN","COREV_AFG","COREV_AFG_GREEN","COREV_CARTELA","COREV_CARTELA_GREEN","COREV_CDF","COREV_CDF_GREEN","COREV_CDFLOCAL","COREV_CDFLOCAL_GREEN","COREV_PIRATEAF","COREV_PIRATEAF_GREEN","COREV_POLICE","COREV_POLICE_GREEN","COREV_TAF","COREV_TAF_GREEN","COREV_THAICLASSIC","COREV_THAICSAT","COREV_THAIFREE","COREV_THAIFREE_GREEN","COREV_THUG","COREV_THUG_GREEN","COREV_TKARMY","COREV_TKARMYF","COREV_TKLOCAL","COREV_TKLOCAL_GREEN","COREV_TME","COREV_TME_GREEN","CUP_B_CZ","CUP_B_GER","CUP_B_US_ARMY","CUP_I_NAPA","CUP_I_PMC_ION","CUP_I_RACS","CUP_O_TK","CUP_B_GB","CUP_I_TK_GUE","CUP_I_UN","CUP_O_CHDKZ","CUP_O_TK_MILITIA","CUP_B_CDF","CUP_B_RNZN","CUP_B_USMC","CUP_O_RU","CUP_O_SLA","BLU_CTRG_F","BLU_GEN_F","BLU_T_F","IND_C_F","OPF_T_F","OPTRE_OPCAN_CPD","OPTRE_OPCAN_CSD","FOW_AUS","FOW_HEER","FOW_IT","FOW_LUFTWAFFE","FOW_UK","FOW_WAFFENSS","FOW_IJA","FOW_USA","FOW_USA_P","FOW_USMC","GAL_ARMY","GALACTIC_REPUBLIC","GANGBLUE_ARMY","GANGRED_ARMY","IBR_ZETABORN_FACTION","ISC_IP_B","ISC_YPG_B","LIB_ACI","LIB_ARR","LIB_DAK","LIB_FFI","LIB_GUER","LIB_LUFTWAFFE","LIB_LUFTWAFFE_W","LIB_MKHL","LIB_NAC","LIB_NKVD","LIB_PANZERWAFFE","LIB_PANZERWAFFE_W","LIB_RAAF","LIB_RAF","LIB_RBAF","LIB_RKKA","LIB_RKKA_W","LIB_US_101AB","LIB_US_82AB","LIB_US_AIRFORCE","LIB_US_AIRFORCE_W","LIB_US_ARMY","LIB_US_ARMY_W","LIB_US_RANGERS","LIB_US_TANK_TROOPS","LIB_US_TANK_TROOPS_W","LIB_USSR_AIRFORCE","LIB_USSR_AIRFORCE_W","LIB_USSR_TANK_TROOPS","LIB_USSR_TANK_TROOPS_W","LIB_WEHRMACHT","LIB_WEHRMACHT_W","LM_H3","LM_H3_D","LM_H3_O","LM_H3_S","LM_H3_W","LM_OPCANTEST","LOP_BH","LOP_IRA","LOP_UVF","LOP_AA","LOP_AFR","LOP_AFR_OPF","LOP_AM","LOP_AM_OPF","LOP_CDF","LOP_CHDKZ","LOP_IA","LOP_IRAN","LOP_ISTS","LOP_ISTS_OPF","LOP_NAPA","LOP_PESH","LOP_PESH_IND","LOP_PMC","LOP_RACS","LOP_SLA","LOP_TKA","LOP_UA","LOP_UKR","LOP_UN","LOP_US","COREV_AAF_RED","MOL_ARMY","OPTRE_INS","OPTRE_OPCAN","OPTRE_OPCAN_GUARD","OPTRE_OPCAN_MILITIA","OPTRE_OPCAN_PMC","OPTRE_OPCAN_REB","OPTRE_OPCAN_THUGS","OPTRE_OPCAN_UNSCARMY","OPTRE_OPCAN_URA_AIR","OPTRE_OPCAN_URA_DES","OPTRE_OPCAN_URA_SF","OPTRE_OPCAN_URA_TRO","OPTRE_OPCAN_URA_VEH","OPTRE_OPCAN_URA_WDL","OPTRE_OPCAN_WZB","OPTRE_OPCAN_WZR","OPTRE_PD","OPTRE_UNSC","ISC_ALNUSRA_I","ISC_IA_B","ISC_IS_I","ISC_IS_O","ISC_PESH_B","ISC_SAA_O","RHS_FACTION_INSURGENTS","RHS_FACTION_MSV","RHS_FACTION_RVA","RHS_FACTION_TV","RHS_FACTION_VDV","RHS_FACTION_VMF","RHS_FACTION_VPVO","RHS_FACTION_VV","RHS_FACTION_VVS","RHS_FACTION_VVS_C","RHSGREF_FACTION_CDF_AIR","RHSGREF_FACTION_CDF_AIR_B","RHSGREF_FACTION_CDF_GROUND","RHSGREF_FACTION_CDF_GROUND_B","RHSGREF_FACTION_CDF_NG","RHSGREF_FACTION_CDF_NG_B","RHSGREF_FACTION_CHDKZ","RHSGREF_FACTION_CHDKZ_G","RHSGREF_FACTION_UN","RHSSAF_FACTION_AIRFORCE","RHSSAF_FACTION_ARMY","RHSSAF_FACTION_UN","RHS_FACTION_SOCOM","RHS_FACTION_USAF","RHS_FACTION_USARMY_D","RHS_FACTION_USARMY_WD","RHS_FACTION_USMC_D","RHS_FACTION_USMC_WD","RHS_FACTION_USN","RHSGREF_FACTION_HIDF","RHSGREF_FACTION_NATIONALIST","SG_STURM","SG_STURM_W","SG_STURMPANZER","BANDITS","DEATHWATCH","FIRSTORDER","JEDIORDER","MANDALORIANS","SWRESISTANCE","TUSKENRAIDERS","UNSC_2531","UNSUNG_AUS","UNSUNG_E","UNSUNG_EV","UNSUNG_G","UNSUNG_NZ","UNSUNG_W","USML_AIF"]; //All factions
-_p_en = _allfaction select _p_en; //Select faction selected from mission parameter
-_allclasse = [[_p_en], _p_en_AA, _p_en_tank] call btc_fnc_mil_class; //Create classes from factions, you can combine factions like that: [[_p_en , "IND_F"], _p_en_AA, _p_en_tank] call btc_fnc_mil_class;
+_p_en = _allfaction select _p_en; //Select faction selected from mission parameter
+_allclasse = [[_p_en], _p_en_AA, _p_en_tank] call btc_fnc_mil_class; //Create classes from factions, you can combine factions like that: [[_p_en , "IND_F"], _p_en_AA, _p_en_tank] call btc_fnc_mil_class;
//Save class name to global variable
btc_enemy_side = _allclasse select 0;
@@ -494,33 +506,24 @@ btc_type_gl = _allclasse select 8;
//Sometimes you need to remove units: - ["Blabla","moreBlabla"];
//Sometimes you need to add units: + ["Blabla","moreBlabla"];
switch (_p_en) do {
- /*case "Myfactionexemple" : {
- btc_type_units = btc_type_units - ["Blabla","moreBlabla"];
- btc_type_divers = btc_type_divers + ["Blabla","moreBlabla"];
- btc_type_crewmen = btc_type_crewmen + ["Blabla","moreBlabla"] - ["Blabla","moreBlabla"];
- btc_type_boats = btc_type_boats;
- btc_type_motorized = btc_type_motorized;
- btc_type_mg = btc_type_mg;
- btc_type_g = btc_type_g;
- };*/
- case "IND_G_F" : {
- btc_type_motorized = btc_type_motorized + ["I_Truck_02_transport_F","I_Truck_02_covered_F"];
- btc_type_motorized_armed= btc_type_motorized_armed + ["I_Heli_light_03_F"];
- };
- case "IND_C_F" : {
- btc_type_motorized = btc_type_motorized + ["I_G_Offroad_01_repair_F","I_G_Offroad_01_F","I_G_Quadbike_01_F","I_G_Van_01_fuel_F","I_Truck_02_transport_F","I_Truck_02_covered_F"];
- btc_type_motorized_armed= btc_type_motorized_armed + ["I_Heli_light_03_F","I_G_Offroad_01_F"];
- btc_type_units = btc_type_units - ["I_C_Soldier_Camo_F"];
- };
- case "FOW_USMC" : {
- btc_type_units = btc_type_units - ["fow_s_usmc_01_private"];
- };
- case "FOW_USA" : {
- btc_type_units = btc_type_units - ["fow_s_usa_01_private"];
- };
- case "FOW_UK" : {
- btc_type_units = btc_type_units - ["fow_s_uk_01_private"];
- };
+ /*case "Myfactionexemple" : {
+ btc_type_units = btc_type_units - ["Blabla","moreBlabla"];
+ btc_type_divers = btc_type_divers + ["Blabla","moreBlabla"];
+ btc_type_crewmen = btc_type_crewmen + ["Blabla","moreBlabla"] - ["Blabla","moreBlabla"];
+ btc_type_boats = btc_type_boats;
+ btc_type_motorized = btc_type_motorized;
+ btc_type_mg = btc_type_mg;
+ btc_type_g = btc_type_g;
+ };*/
+ case "IND_G_F" : {
+ btc_type_motorized = btc_type_motorized + ["I_Truck_02_transport_F","I_Truck_02_covered_F"];
+ btc_type_motorized_armed= btc_type_motorized_armed + ["I_Heli_light_03_F"];
+ };
+ case "IND_C_F" : {
+ btc_type_motorized = btc_type_motorized + ["I_G_Offroad_01_repair_F","I_G_Offroad_01_F","I_G_Quadbike_01_F","I_G_Van_01_fuel_F","I_Truck_02_transport_F","I_Truck_02_covered_F"];
+ btc_type_motorized_armed= btc_type_motorized_armed + ["I_Heli_light_03_F","I_G_Offroad_01_F"];
+ btc_type_units = btc_type_units - ["I_C_Soldier_Camo_F"];
+ };
};
//Rep
@@ -545,4 +548,4 @@ if (isNil "btc_side_assigned") then {btc_side_assigned = false;};
btc_AI_skill = _p_skill;
//Headless
-btc_units_owners = [];
\ No newline at end of file
+btc_units_owners = [];
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp
index 55ad65de7..702b81442 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp
@@ -1,260 +1,278 @@
class Params {
- class btc_p_time_title {
- title = "<< Time options >>";
- values[]={0};
- texts[]={""};
- default = 0;
- };
- class btc_p_time {
- title = " Set the start time:";
- values[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24};
- texts[]={"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24"};
- default = 12;
- };
- class btc_p_acctime {
- title = " Acceleration time multiplier:";
- values[]={1,2,3,4,5,6,7,8,9,10,11,12};
- texts[]={"1","2","3","4","5","6","7","8","9","10","11","12"};
- default = 5;
- };
- class btc_p_load {
- title = " Load the savegame (if available)";
- values[]={0,1};
- texts[]={"Off","On"};
- default = 1;
- };
- class btc_p_auto_db {
- title = " Auto savegame (can break player immersion)";
- values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,24,48,72};
- texts[]={"Off","1h","2h","3h","4h","5h","6h","7h","8h","9h","10h","11h","12h","24h","48h","72h"};
- default = 0;
- };
- class btc_p_type_title {
- title = "<< Faction options >>";
- values[]={0};
- texts[]={""};
- default = 0;
- };
- class btc_p_en {
- title = " Enemy type:";
- values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227};
- texts[]={"0 - Bohemia Interactive: OTAN (Side: WEST)","1 - Bohemia Interactive: FIA (Side: WEST)","2 - jarrad96: Central African Militia (Side: EAST)","3 - Scar and Jmax: Galactic Empire (Side: EAST)","4 - SWOP: Geonosians (Side: EAST)","5 - Bohemia Interactive: AAF (Side: GUER)","6 - Bohemia Interactive: FIA (Side: GUER)","7 - Bohemia Interactive: CSAT (Side: EAST)","8 - Bohemia Interactive: FIA (Side: EAST)","9 - Bohemia Interactive: Rebel Alliance (Side: WEST)","10 - EricJ: Taliban (Side: EAST)","11 - Bohemia Interactive: (Side: WEST)","12 -AFR BIS/IceBreakr: Afrenian Army (Side: WEST)","13 -ARA Bohemia Interactive: Abramian Rebel Alliance (Side: WEST)","14 -ARL BIS/IceBreakr: ARL Lingor Rebels (Side: EAST)","15 -btc_militia_mod Giallustio: Afghan Militia (Side: EAST)","16 -C SWOP: Confederacy of Independent Systems (Side: EAST)","17 -CAF CAF MOD TEAM: Africa - Pirates (Side: EAST)","18 -CAF CAF MOD TEAM: East Europe - Rebels (Side: EAST)","19 -CAF CAF MOD TEAM: Middle East - Tribal (Side: EAST)","20 -CEC HcPookie: Cecanian Army (Side: EAST)","21 -COREVMod WarfareThai: African State Defense Force (Side: EAST)","22 -COREVMod WarfareThai: African State Defense Force INDEP (Side: GUER)","23 -COREVMod WarfareThai: Insurgents (Africans) (Side: EAST)","24 -COREVMod WarfareThai: Insurgents (Africans) INDEP (Side: GUER)","25 -COREVMod WarfareThai: Drug Cartel (Asians) (Side: EAST)","26 -COREVMod WarfareThai: Drug Cartel (Asians) INDEP (Side: GUER)","27 -COREVMod WarfareThai: Eastern European Armed Force (Side: EAST)","28 -COREVMod WarfareThai: Eastern European Armed Force INDEP (Side: GUER)","29 -COREVMod WarfareThai: Insurgents (Eastern Europeons) (Side: EAST)","30 -COREVMod WarfareThai: Insurgents (Eastern Europeons) INDEP (Side: GUER)","31 -COREVMod WarfareThai: Pirates (Africans) (Side: EAST)","32 -COREVMod WarfareThai: Pirates (Africans) INDEP (Side: GUER)","33 -COREVMod WarfareThai: Cops (Side: WEST)","34 -COREVMod WarfareThai: Cops INDEP (Side: GUER)","35 -COREVMod WarfareThai: Terrorists (Africans) (Side: EAST)","36 -COREVMod WarfareThai: Terrorists (Africans) INDEP (Side: GUER)","37 -COREVMod WarfareThai: TAF (Modern) (Side: WEST)","38 -COREVMod WarfareThai: TAF (2035) (Side: EAST)","39 -COREVMod WarfareThai: Free Thai (Side: WEST)","40 -COREVMod WarfareThai: Free Thai (Side: GUER)","41 -COREVMod WarfareThai: Gangsters (Side: EAST)","42 -COREVMod WarfareThai: Gangsters INDEP (Side: GUER)","43 -COREVMod WarfareThai: Middle-East Armed Force (Side: EAST)","44 -COREVMod WarfareThai: Middle-East Armed Force (Woodland) (Side: EAST)","45 -COREVMod WarfareThai: Insurgents (Middle-Easterns) (Side: EAST)","46 -COREVMod WarfareThai: Insurgents (Middle-Easterns) INDEP (Side: GUER)","47 -COREVMod WarfareThai: Terrorists (Middle-Easterns) (Side: EAST)","48 -COREVMod WarfareThai: Terrorists (Middle-Easterns) INDEP (Side: GUER)","49 -CUP Community Upgrade Project: Army of the Czech Republic (Side: WEST)","50 -CUP Bohemia Interactive: Bundeswehr (Side: WEST)","51 -CUP Bohemia Interactive: United States Army (Side: WEST)","52 -CUP Bohemia Interactive: National Party of Chernarus (Side: GUER)","53 -CUP Bohemia Interactive: ION PMC (Side: GUER)","54 -CUP Bohemia Interactive: Royal Army Corps of Sahrani (Side: GUER)","55 -CUP Bohemia Interactive: Takistani Army (Side: EAST)","56 -CUP_Units Community Upgrade Project: British Armed Forces (Side: WEST)","57 -CUP_Units Bohemia Interactive: Takistani Locals (Side: GUER)","58 -CUP_Units Community Upgrade Project: United Nations (Side: GUER)","59 -CUP_Units Community Upgrade Project: Chernarussian Movement of the Red Star (Side: EAST)","60 -CUP_Units Bohemia Interactive: Takistani Militia (Side: EAST)","61 -CUP_Vehicles Community Upgrade Project: Chernarus Defense Forces (Side: WEST)","62 -CUP_Vehicles Community Upgrade Project: Royal New Zealand Navy (Side: WEST)","63 -CUP_Vehicles Community Upgrade Project: United States Marine Corps (Side: WEST)","64 -CUP_Vehicles Community Upgrade Project: Armed Forces of the Russian Federation (Side: EAST)","65 -CUP_Vehicles Community Upgrade Project: Sahrani Liberation Army (Side: EAST)","66 -Expansion Bohemia Interactive: CTRG (Side: WEST)","67 -Expansion Bohemia Interactive: Gendarmerie (Side: WEST)","68 -Expansion Bohemia Interactive: OTAN (Pacifique) (Side: WEST)","69 -Expansion Bohemia Interactive: Syndikat (Side: GUER)","70 -Expansion Bohemia Interactive: CSAT (Pacifique) (Side: EAST)","71 -Expansion Burgess: OPCAN (Colonial Police) (Side: WEST)","72 -Expansion Burgess: OPCAN (Colonial Sheriff) (Side: WEST)","73 -FOW Bohemia Interactive: [AUS] Australian Army (Side: GUER)","74 -FOW Bohemia Interactive: [DE] Heer (Side: WEST)","75 -FOW Bohemia Interactive: [IT] Regio Esercito (Side: WEST)","76 -FOW Bohemia Interactive: [DE] Luftwaffe (Side: WEST)","77 -FOW Bohemia Interactive: [UK] Army (Side: GUER)","78 -FOW FOW Team: [DE] Waffen-SS (Side: WEST)","79 -fow_mod FOW team: [JP] Imperial Army (Side: WEST)","80 -fow_mod FOW team: [US] Army (Europe) (Side: GUER)","81 -fow_mod Bohemia Interactive: [US] Army (Pacific) (Side: GUER)","82 -fow_mod FOW team: [US] Marines Corps (Side: GUER)","83 -GAL HcPookie: GAL (Government Army of Lingor) (Side: WEST)","84 -GALACTIC SWOP: Galactic Republic (Side: WEST)","85 -GANGBLUE BIS/IceBreakr: Blue Gang (Side: WEST)","86 -GANGRED BIS/IceBreakr: Red Gang (Side: EAST)","87 -IBR Bohemia Interactive: Alienz (Side: GUER)","88 -ISC Bohemia Interactive: [ISC] Iraqi Police (Side: WEST)","89 -ISC Bohemia Interactive: [ISC] YPG (Side: WEST)","90 -LIB AWAR: ACI (Side: GUER)","91 -LIB AWAR & Lennard: ARR (Side: WEST)","92 -LIB Lennard: Deutsches Afrikakorps (Side: WEST)","93 -LIB AWAR & Joarius: FFI (Side: GUER)","94 -LIB AWAR: Armia Krajowa (Polonais) (Side: GUER)","95 -LIB AWAR: Luftwaffe (Side: WEST)","96 -LIB AWAR & Lennard: [Winter] Luftwaffe (Side: WEST)","97 -LIB AWAR & Lennard: MKHL (Side: WEST)","98 -LIB Lennard: US North African Corps (Side: GUER)","99 -LIB Lennard: NKVD (Side: EAST)","100 -LIB IFA3 Team: Panzerwaffe (Side: WEST)","101 -LIB AWAR & Lennard: [Winter] Panzerwaffe (Side: WEST)","102 -LIB AWAR: RAAF (Side: GUER)","103 -LIB IFA3 Team: RAF (Side: GUER)","104 -LIB AWAR & Lennard: RBAF (Side: WEST)","105 -LIB AWAR: Red Army (Side: EAST)","106 -LIB AWAR & Lennard: [Winter] Red Army (Side: EAST)","107 -LIB El Tyranos & Jove Chiere: 101st Airborne Division (Side: GUER)","108 -LIB El Tyranos: 82nd Airborne Division (Side: GUER)","109 -LIB AWAR: US Army Air Forces (Side: GUER)","110 -LIB AWAR: [Winter] US Airforce (Side: GUER)","111 -LIB IFA3 Team: US Army (Side: GUER)","112 -LIB XXX: [Winter] US Army (Side: GUER)","113 -LIB Lennard: US 2nd Ranger Battalion (Side: GUER)","114 -LIB I44: US Tank Troops (Side: GUER)","115 -LIB AWAR & Lennard: [Winter] US Tank Troops (Side: GUER)","116 -LIB AWAR: USSR Airforce (Side: EAST)","117 -LIB AWAR & Lennard: [Winter] USSR Airforce (Side: EAST)","118 -LIB AWAR: Tank troops of USSR (Side: EAST)","119 -LIB AWAR & Lennard: [Winter] Tank troops of USSR (Side: EAST)","120 -LIB AWAR: Wehrmacht (Side: WEST)","121 -LIB AWAR & Lennard: [Winter] Wehrmacht (Side: WEST)","122 -LM Burgess: UNSCMC (Urban) (Side: WEST)","123 -LM Burgess: UNSCMC (Desert) (Side: WEST)","124 -LM Burgess: ONI Security (Side: WEST)","125 -LM Burgess: UNSCMC (Snow) (Side: WEST)","126 -LM Burgess: UNSCMC (Wood) (Side: WEST)","127 -LM Burgess: OPCANTest (Side: WEST)","128 -LOP Project OPFOR: Boko Haram (Side: EAST)","129 -LOP Project OPFOR: Irish Republican Army (Side: EAST)","130 -LOP Project OPFOR: Ulster Volunteer Force (Side: GUER)","131 -LOP_LeightsOPFOR Project OPFOR: Afghan National Army and Police (Side: WEST)","132 -LOP_LeightsOPFOR Project OPFOR: African Militia (Side: GUER)","133 -LOP_LeightsOPFOR Project OPFOR: African Militia (Side: EAST)","134 -LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: GUER)","135 -LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: EAST)","136 -LOP_LeightsOPFOR Project OPFOR: Chernarussian Defence Forces (Side: WEST)","137 -LOP_LeightsOPFOR Project OPFOR: ChDKZ (Side: EAST)","138 -LOP_LeightsOPFOR Project OPFOR: Iraqi Armed Forces (Side: WEST)","139 -LOP_LeightsOPFOR Project OPFOR: Iranian Armed Forces (Side: GUER)","140 -LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: GUER)","141 -LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: EAST)","142 -LOP_LeightsOPFOR Project OPFOR: Chernarussian National Insurgents (Side: GUER)","143 -LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: WEST)","144 -LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: GUER)","145 -LOP_LeightsOPFOR Project OPFOR: Private Military Company (Side: GUER)","146 -LOP_LeightsOPFOR Project OPFOR: Royal Army Corps of Sahrani (Side: GUER)","147 -LOP_LeightsOPFOR Project OPFOR: Sahrani Liberation Army (Side: EAST)","148 -LOP_LeightsOPFOR Project OPFOR: Takistani Armed Forces (Side: EAST)","149 -LOP_LeightsOPFOR Project OPFOR: Ultranationalists (Side: GUER)","150 -LOP_LeightsOPFOR Project OPFOR: Ukrainian Armed Forces (Side: WEST)","151 -LOP_LeightsOPFOR Project OPFOR: United Nations (Side: GUER)","152 -LOP_LeightsOPFOR Project OPFOR: United Armed Forces of Novorossiya (Side: EAST)","153 -Mark Bohemia Interactive: AAF (Side: EAST)","154 -MOL HcPookie: Molatian Army (Side: EAST)","155 -OPTRE Article 2 Studios: Insurrectionists (Side: EAST)","156 -OPTRE Burgess: OPCAN (Side: WEST)","157 -OPTRE Burgess: OPCAN (UEG Colonial Guard) (Side: WEST)","158 -OPTRE Burgess: Colonial Militia (OPCAN) (Side: GUER)","159 -OPTRE Burgess: OPCAN (PMC) (Side: GUER)","160 -OPTRE Burgess: Halo Wars Rebels (OPCAN) (Side: EAST)","161 -OPTRE Burgess: Common Criminals (OPCAN) (Side: EAST)","162 -OPTRE Burgess: OPCAN (UNSC Army) (Side: WEST)","163 -OPTRE Burgess: United Rebel Air Force(OPCAN) (Side: EAST)","164 -OPTRE Burgess: United Rebel Army Desert(OPCAN) (Side: EAST)","165 -OPTRE Burgess: United Rebel Army BattleJumpers (OPCAN) (Side: EAST)","166 -OPTRE Burgess: United Rebel Army Tropic(OPCAN) (Side: EAST)","167 -OPTRE Bohemia Interactive: United Rebel Army Ground Vehicles (OPCAN) (Side: EAST)","168 -OPTRE Burgess: United Rebel Army Wood(OPCAN) (Side: EAST)","169 -OPTRE Burgess: OPCAN (WARZONE BLUE) (Side: WEST)","170 -OPTRE Burgess: OPCAN (WARZONE RED) (Side: EAST)","171 -OPTRE Article 2 Studios: Colonial Police (Side: GUER)","172 -OPTRE Article 2 Studios: UNSCDF (Side: WEST)","173 -RHS_AFRF Bohemia Interactive: [ISC] al-Nusra Front (Side: GUER)","174 -RHS_AFRF Bohemia Interactive: [ISC] Iraqi Army (Side: WEST)","175 -RHS_AFRF Bohemia Interactive: [ISC] Islamic State (Side: GUER)","176 -RHS_AFRF Bohemia Interactive: [ISC] Islamic State (Side: EAST)","177 -RHS_AFRF Bohemia Interactive: [ISC] Peshmerga (Side: WEST)","178 -RHS_AFRF Bohemia Interactive: [ISC] Syrian Arab Army (Side: EAST)","179 -RHS_AFRF Red Hammer Studios: Eastern Militia (Side: GUER)","180 -RHS_AFRF Red Hammer Studios: Russia (MSV) (Side: EAST)","181 -RHS_AFRF Red Hammer Studios: Russia (RVA) (Side: EAST)","182 -RHS_AFRF Red Hammer Studios: Russia (TV) (Side: EAST)","183 -RHS_AFRF Red Hammer Studios: Russia (VDV) (Side: EAST)","184 -RHS_AFRF Red Hammer Studios: Russia (VMF) (Side: EAST)","185 -RHS_AFRF RHS: Russia (VPVO) (Side: EAST)","186 -RHS_AFRF Red Hammer Studios: Russia (VV) (Side: EAST)","187 -RHS_AFRF Bohemia Interactive: Russia (VVS - Grey) (Side: EAST)","188 -RHS_AFRF Red Hammer Studios: Russia (VVS - Camo) (Side: EAST)","189 -RHS_GREF Red Hammer Studios: Chernarus (Air Force) (Side: GUER)","190 -RHS_GREF Red Hammer Studios: Chernarus (Air Force) (Side: WEST)","191 -RHS_GREF RHS (A2 port): Chernarus (Ground Forces) (Side: GUER)","192 -RHS_GREF Red Hammer Studios: Chernarus (Ground Forces) (Side: WEST)","193 -RHS_GREF Red Hammer Studios: Chernarus (National Guard) (Side: GUER)","194 -RHS_GREF Red Hammer Studios: Chernarus (National Guard) (Side: WEST)","195 -RHS_GREF Red Hammer Studios: ChDKZ Insurgents (Side: EAST)","196 -RHS_GREF Red Hammer Studios: ChDKZ Insurgents (Side: GUER)","197 -RHS_GREF Red Hammer Studios: Chernarus (U.N. Peacekeepers) (Side: GUER)","198 -RHS_SAF Red Hammer Studios: SAF (RVIPVO) (Side: GUER)","199 -RHS_SAF Bohemia Interactive: SAF (KOV) (Side: GUER)","200 -RHS_SAF Red Hammer Studios: SAF (Casques Bleus) (Side: GUER)","201 -RHS_USAF Red Hammer Studios: USA (SOCOM) (Side: WEST)","202 -RHS_USAF Red Hammer Studios: USA (USAF) (Side: WEST)","203 -RHS_USAF Red Hammer Studios: USA (Army - D) (Side: WEST)","204 -RHS_USAF Red Hammer Studios: USA (Army - W) (Side: WEST)","205 -RHS_USAF Red Hammer Studios: USA (USMC - D) (Side: WEST)","206 -RHS_USAF Red Hammer Studios: USA (USMC - W) (Side: WEST)","207 -RHS_USAF Red Hammer Studios: USA (Navy) (Side: WEST)","208 -RHSGREF Red Hammer Studios: Horizon Islands Defence Force (Side: WEST)","209 -RHSGREF Red Hammer Studios: Nationalist Troops (Side: GUER)","210 -SG Stagler: Sturmtroopers (Side: WEST)","211 -SG Stagler: [Winter] Sturmtroopers (Side: WEST)","212 -SG Stagler: Tank Sturmtroopers (Side: WEST)","213 -SWOP_MODs SWOP: Bandits (Side: GUER)","214 -SWOP_MODs SWOP: DeathWatch (Side: GUER)","215 -SWOP_MODs SWOP: First Order (Side: EAST)","216 -SWOP_MODs SWOP: Jedi Order (Side: WEST)","217 -SWOP_MODs SWOP: Mandalorians (Side: GUER)","218 -SWOP_MODs SWOP: Resistance (Side: WEST)","219 -SWOP_MODs SWOP: Tusken Raiders (Side: GUER)","220 -UNSC Morthon: UNSCMC (Side: WEST)","221 -UNSUNG Bohemia Interactive: Australia (UNSUNG) (Side: WEST)","222 -UNSUNG HCPOOKIE - SAM pack: N.V.A. (UNSUNG) (Side: EAST)","223 -UNSUNG Bohemia Interactive: V.C. (UNSUNG) (Side: EAST)","224 -UNSUNG Bohemia Interactive: A.R.V.N. (UNSUNG) (Side: GUER)","225 -UNSUNG Bohemia Interactive: New Zealand (UNSUNG) (Side: WEST)","226 -UNSUNG Bohemia Interactive: U.S. (UNSUNG) (Side: WEST)","227 -USML segen: Armed Islamic Front (Side: GUER)"};
- default = 8;
- };
- class btc_p_AA {
- title = " Anti-Air infantry:";
- values[]={0,1};
- texts[]={"Off","On"};
- default = 0;
- };
- class btc_p_tank {
- title = " Enemy uses Tank:";
- values[]={0,1};
- texts[]={"Off","On"};
- default = 0;
- };
- class btc_p_civ {
- title = " Civil type:";
- values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
- texts[]={"0 - EricJ: Afghan Civilians (Side: CIV)","1 - Bohemia Interactive: Civils (Side: CIV)","2 -btc_militia_mod Giallustio: Afghan Civilians (Side: CIV)","3 -CAF CAF MOD TEAM: African (Side: CIV)","4 -CAF CAF MOD TEAM: Middle Eastern (Side: CIV)","5 -COREVMod WarfareThai: Civilians (Africans) (Side: CIV)","6 -COREVMod WarfareThai: Civilians (Asians) (Side: CIV)","7 -COREVMod WarfareThai: Civilians (Eastern Europeons) (Side: CIV)","8 -COREVMod WarfareThai: Civilians (Middle-Easterns) (Side: CIV)","9 -CUP_Units Community Upgrade Project: Civilians (Russian) (Side: CIV)","10 -CUP_Vehicles Community Upgrade Project: Civilians (Chernarus) (Side: CIV)","11 -CUP_Vehicles Bohemia Interactive: Civilians (Sahrani) (Side: CIV)","12 -CUP_Vehicles Community Upgrade Project: Civilians (Takistan) (Side: CIV)","13 -LIB Reyhard & Joarius: 40s Civilians (Side: CIV)","14 -LOP_LeightsOPFOR Project OPFOR: Civilians (African) (Side: CIV)","15 -LOP_LeightsOPFOR Project OPFOR: Civilians (Eastern European) (Side: CIV)","16 -LOP_LeightsOPFOR Project OPFOR: Civilians (Middle Eastern) (Side: CIV)","17 -OPTRE Article 2 Studios: Civilians (UEG) (Side: CIV)","18 -ORANGE Bohemia Interactive: IDAP (Side: CIV)","19 -RDS_CIV_PACK reyhard: Russians (Side: CIV)","20 -UNSUNG Bohemia Interactive: Vietnamese (UNSUNG) (Side: CIV)"};
- default = 1;
- };
- class btc_p_civ_veh {
- title = " Civil vehicle type:";
- values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
- texts[]={"0 - EricJ: Afghan Civilians (Side: CIV)","1 - Bohemia Interactive: Civils (Side: CIV)","2 -btc_militia_mod Giallustio: Afghan Civilians (Side: CIV)","3 -CAF CAF MOD TEAM: African (Side: CIV)","4 -CAF CAF MOD TEAM: Middle Eastern (Side: CIV)","5 -COREVMod WarfareThai: Civilians (Africans) (Side: CIV)","6 -COREVMod WarfareThai: Civilians (Asians) (Side: CIV)","7 -COREVMod WarfareThai: Civilians (Eastern Europeons) (Side: CIV)","8 -COREVMod WarfareThai: Civilians (Middle-Easterns) (Side: CIV)","9 -CUP_Units Community Upgrade Project: Civilians (Russian) (Side: CIV)","10 -CUP_Vehicles Community Upgrade Project: Civilians (Chernarus) (Side: CIV)","11 -CUP_Vehicles Bohemia Interactive: Civilians (Sahrani) (Side: CIV)","12 -CUP_Vehicles Community Upgrade Project: Civilians (Takistan) (Side: CIV)","13 -LIB Reyhard & Joarius: 40s Civilians (Side: CIV)","14 -LOP_LeightsOPFOR Project OPFOR: Civilians (African) (Side: CIV)","15 -LOP_LeightsOPFOR Project OPFOR: Civilians (Eastern European) (Side: CIV)","16 -LOP_LeightsOPFOR Project OPFOR: Civilians (Middle Eastern) (Side: CIV)","17 -OPTRE Article 2 Studios: Civilians (UEG) (Side: CIV)","18 -ORANGE Bohemia Interactive: IDAP (Side: CIV)","19 -RDS_CIV_PACK reyhard: Russians (Side: CIV)","20 -UNSUNG Bohemia Interactive: Vietnamese (UNSUNG) (Side: CIV)"};
- default = 1;
- };
- class btc_p_IED_title {
- title = "<< IED options >>";
- values[]={0};
- texts[]={""};
- default = 0;
- };
- class btc_p_ied {
- title = " IEDs ratio:";
- values[]={0, 1, 2, 3};
- texts[]={"Off","Low","Normal","High"};
- default = 2;
- };
- class btc_p_hideout_cache_title {
- title = "<< Hideout/Cache options >>";
- values[]={0};
- texts[]={""};
- default = 0;
- };
- class btc_p_hideout_n {
- title = " Hideout numbers:";
- values[]={99,1,2,3,4,5};
- texts[]={"Random","1","2","3","4","5"};
- default = 5;
- };
- class btc_p_cache_info_def {
- title = " Info cache distance:";
- values[]={500,1000,1500,2000,2500,3000,3500,4000,5000};
- texts[]={"500 m","1000 m","1500 m","2000 m","2500 m","3000 m","3500 m","4000 m","5000 m"};
- default = 1000;
- };
- class btc_p_cache_info_ratio {
- title = " Cache info ratio:";
- values[]={50,100};
- texts[]={"50 m","100 m"};
- default = 100;
- };
- class btc_p_info_chance {
- title = " Intel from dead bodies chance:";
- values[]={0,10,20,30,40,50,60,70,80,90,100};
- texts[]={"100 %","90 %","80 %","70 %","60 %","50 %","40 %","30 %","20 %","10 %","0 %"};
- default = 70;
- };
- class btc_p_medical_title {
- title = "<< Medical options >>";
- values[]={0};
- texts[]={""};
- default = 0;
- };
- class btc_p_redeploy {
- title = " Allow re-deploy?";
- values[]={0,1};
- texts[]={"Off","On"};
- default = 1;
- };
- class btc_p_skill_title {
- title = "<< A3 Skill options >>";
- values[]={0};
- texts[]={""};
- default = 0;
- };
- class btc_p_set_skill {
- title = " Set skill?";
- values[]={0,1};
- texts[]={"Off","On"};
- default = 1;
- };
- class btc_p_set_skill_general {
- title = " Set skill, general";
- values[]={0,1,2,3,4,5,6,7,8,9,10};
- texts[]={"0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1"};
- default = 0;
- };
- class btc_p_set_skill_aimingAccuracy {
- title = " Set skill, aimingAccuracy";
- values[]={0,1,2,3,4,5,6,7,8,9,10};
- texts[]={"0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1"};
- default = 1;
- };
- class btc_p_set_skill_aimingShake {
- title = " Set skill, aimingShake";
- values[]={0,1,2,3,4,5,6,7,8,9,10};
- texts[]={"0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1"};
- default = 4;
- };
- class btc_p_set_skill_aimingSpeed {
- title = " Set skill, aimingSpeed";
- values[]={0,1,2,3,4,5,6,7,8,9,10};
- texts[]={"0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1"};
- default = 3;
- };
- class btc_p_set_skill_endurance {
- title = " Set skill, endurance";
- values[]={0,1,2,3,4,5,6,7,8,9,10};
- texts[]={"0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1"};
- default = 5;
- };
- class btc_p_set_skill_spotDistance {
- title = " Set skill, spotDistance";
- values[]={0,1,2,3,4,5,6,7,8,9,10};
- texts[]={"0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1"};
- default = 9;
- };
- class btc_p_set_skill_spotTime {
- title = " Set skill, spotTime";
- values[]={0,1,2,3,4,5,6,7,8,9,10};
- texts[]={"0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1"};
- default = 7;
- };
- class btc_p_set_skill_courage {
- title = " Set skill, courage";
- values[]={0,1,2,3,4,5,6,7,8,9,10};
- texts[]={"0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1"};
- default = 2;
- };
- class btc_p_set_skill_reloadSpeed {
- title = " Set skill, reloadSpeed";
- values[]={0,1,2,3,4,5,6,7,8,9,10};
- texts[]={"0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1"};
- default = 10;
- };
- class btc_p_set_skill_commanding {
- title = " Set skill, commanding";
- values[]={0,1,2,3,4,5,6,7,8,9,10};
- texts[]={"0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1"};
- default = 7;
- };
- class btc_p_gameplay_title {
- title = "<< Gameplay options >>";
- values[]={0};
- texts[]={""};
- default = 0;
- };
- class btc_p_sea {
- title = " Extend battlefield to sea:";
- values[] = {0,1};
- texts[] = {"Off","On"};
- default = 1;
- };
- class btc_p_veh_armed_ho {
- title = " Add armed vehicles in Hideout:";
- values[] = {0,1};
- texts[] = {"Off","On"};
- default = 0;
- };
- class btc_p_veh_armed_spawn_more {
- title = " Add armed vehicles in Side mission/Cache:";
- values[] = {0,1};
- texts[] = {"Off","On"};
- default = 0;
- };
- class btc_p_side_mission_cycle {
- title = " Side mission cycle:";
- values[] = {0,1};
- texts[] = {"Off","On"};
- default = 0;
- };
- class btc_p_main_title {
- title = "<< Other options >>";
- values[]={0};
- texts[]={""};
- default = 0;
- };
- class btc_p_rep {
- title = " Reputation at start:";
- values[]={0, 200, 500, 750};
- texts[]={"Very Low","Low","Normal","High"};
- default = 200;
- };
- class btc_p_garage {
- title = " Activate garage for admin:";
- values[]={0,1};
- texts[]={"Off","On"};
- default = 0;
- };
- class btc_p_city_radius {
- title = " Spawn city radius offset:";
- values[]={0,1,2,3,4,5,6,7,8};
- texts[]={"0 m","100 m","200 m","300 m (Default: Altis, Tanoa)","400 m","500 m (Takistan)","600 m","700 m","800 m"};
- default = 3;
- };
- class btc_p_trigger {
- title = " Disable city activation when a plane or helicopter (>190Km/h) is flying above:";
- values[]={0,1};
- texts[]={"Off","On"};
- default = 0;
- };
- class btc_p_debug {
- title = " Debug:";
- values[]={0,1,2};
- texts[]={"Off","On", "Log only"};
- default = 0;
- };
-};
\ No newline at end of file
+ class btc_p_time_title { // << Time options >>
+ title = $STR_BTC_HAM_PARAM_TIME_TITLE;
+ values[]={0};
+ texts[]={""};
+ default = 0;
+ };
+ class btc_p_time { // Set the start time:
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_TIME_START"]);
+ values[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24};
+ texts[]={"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24"};
+ default = 12;
+ };
+ class btc_p_acctime { // Acceleration time multiplier:
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_TIME_MULTIP"]);
+ values[]={1,2,3,4,5,6,7,8,9,10,11,12};
+ texts[]={"1","2","3","4","5","6","7","8","9","10","11","12"};
+ default = 5;
+ };
+ class btc_p_load { // Load the savegame (if available)
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_DB_LOAD"]);
+ values[]={0,1};
+ texts[]={$STR_DISABLED,$STR_ENABLED};
+ default = 1;
+ };
+ class btc_p_auto_db { // Auto savegame (can break player immersion)
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_DB_ASAVE"]);
+ values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,24,48,72};
+ texts[]={$STR_DISABLED,"1h","2h","3h","4h","5h","6h","7h","8h","9h","10h","11h","12h","24h","48h","72h"}; // texts[]={"Off","1h","2h","3h","4h","5h","6h","7h","8h","9h","10h","11h","12h","24h","48h","72h"};
+ default = 0;
+ };
+ class btc_p_type_title { // << Faction options >>
+ title = $STR_BTC_HAM_PARAM_FAC_TITLE;
+ values[]={0};
+ texts[]={""};
+ default = 0;
+ };
+ class btc_p_en { // Enemy type:
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_FAC_ETYPE"]);
+ values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227};
+ texts[]={"0 - Bohemia Interactive: OTAN (Side: WEST)","1 - Bohemia Interactive: FIA (Side: WEST)","2 - jarrad96: Central African Militia (Side: EAST)","3 - Scar and Jmax: Galactic Empire (Side: EAST)","4 - SWOP: Geonosians (Side: EAST)","5 - Bohemia Interactive: AAF (Side: GUER)","6 - Bohemia Interactive: FIA (Side: GUER)","7 - Bohemia Interactive: CSAT (Side: EAST)","8 - Bohemia Interactive: FIA (Side: EAST)","9 - Bohemia Interactive: Rebel Alliance (Side: WEST)","10 - EricJ: Taliban (Side: EAST)","11 - Bohemia Interactive: (Side: WEST)","12 -AFR BIS/IceBreakr: Afrenian Army (Side: WEST)","13 -ARA Bohemia Interactive: Abramian Rebel Alliance (Side: WEST)","14 -ARL BIS/IceBreakr: ARL Lingor Rebels (Side: EAST)","15 -btc_militia_mod Giallustio: Afghan Militia (Side: EAST)","16 -C SWOP: Confederacy of Independent Systems (Side: EAST)","17 -CAF CAF MOD TEAM: Africa - Pirates (Side: EAST)","18 -CAF CAF MOD TEAM: East Europe - Rebels (Side: EAST)","19 -CAF CAF MOD TEAM: Middle East - Tribal (Side: EAST)","20 -CEC HcPookie: Cecanian Army (Side: EAST)","21 -COREVMod WarfareThai: African State Defense Force (Side: EAST)","22 -COREVMod WarfareThai: African State Defense Force INDEP (Side: GUER)","23 -COREVMod WarfareThai: Insurgents (Africans) (Side: EAST)","24 -COREVMod WarfareThai: Insurgents (Africans) INDEP (Side: GUER)","25 -COREVMod WarfareThai: Drug Cartel (Asians) (Side: EAST)","26 -COREVMod WarfareThai: Drug Cartel (Asians) INDEP (Side: GUER)","27 -COREVMod WarfareThai: Eastern European Armed Force (Side: EAST)","28 -COREVMod WarfareThai: Eastern European Armed Force INDEP (Side: GUER)","29 -COREVMod WarfareThai: Insurgents (Eastern Europeons) (Side: EAST)","30 -COREVMod WarfareThai: Insurgents (Eastern Europeons) INDEP (Side: GUER)","31 -COREVMod WarfareThai: Pirates (Africans) (Side: EAST)","32 -COREVMod WarfareThai: Pirates (Africans) INDEP (Side: GUER)","33 -COREVMod WarfareThai: Cops (Side: WEST)","34 -COREVMod WarfareThai: Cops INDEP (Side: GUER)","35 -COREVMod WarfareThai: Terrorists (Africans) (Side: EAST)","36 -COREVMod WarfareThai: Terrorists (Africans) INDEP (Side: GUER)","37 -COREVMod WarfareThai: TAF (Modern) (Side: WEST)","38 -COREVMod WarfareThai: TAF (2035) (Side: EAST)","39 -COREVMod WarfareThai: Free Thai (Side: WEST)","40 -COREVMod WarfareThai: Free Thai (Side: GUER)","41 -COREVMod WarfareThai: Gangsters (Side: EAST)","42 -COREVMod WarfareThai: Gangsters INDEP (Side: GUER)","43 -COREVMod WarfareThai: Middle-East Armed Force (Side: EAST)","44 -COREVMod WarfareThai: Middle-East Armed Force (Woodland) (Side: EAST)","45 -COREVMod WarfareThai: Insurgents (Middle-Easterns) (Side: EAST)","46 -COREVMod WarfareThai: Insurgents (Middle-Easterns) INDEP (Side: GUER)","47 -COREVMod WarfareThai: Terrorists (Middle-Easterns) (Side: EAST)","48 -COREVMod WarfareThai: Terrorists (Middle-Easterns) INDEP (Side: GUER)","49 -CUP Community Upgrade Project: Army of the Czech Republic (Side: WEST)","50 -CUP Bohemia Interactive: Bundeswehr (Side: WEST)","51 -CUP Bohemia Interactive: United States Army (Side: WEST)","52 -CUP Bohemia Interactive: National Party of Chernarus (Side: GUER)","53 -CUP Bohemia Interactive: ION PMC (Side: GUER)","54 -CUP Bohemia Interactive: Royal Army Corps of Sahrani (Side: GUER)","55 -CUP Bohemia Interactive: Takistani Army (Side: EAST)","56 -CUP_Units Community Upgrade Project: British Armed Forces (Side: WEST)","57 -CUP_Units Bohemia Interactive: Takistani Locals (Side: GUER)","58 -CUP_Units Community Upgrade Project: United Nations (Side: GUER)","59 -CUP_Units Community Upgrade Project: Chernarussian Movement of the Red Star (Side: EAST)","60 -CUP_Units Bohemia Interactive: Takistani Militia (Side: EAST)","61 -CUP_Vehicles Community Upgrade Project: Chernarus Defense Forces (Side: WEST)","62 -CUP_Vehicles Community Upgrade Project: Royal New Zealand Navy (Side: WEST)","63 -CUP_Vehicles Community Upgrade Project: United States Marine Corps (Side: WEST)","64 -CUP_Vehicles Community Upgrade Project: Armed Forces of the Russian Federation (Side: EAST)","65 -CUP_Vehicles Community Upgrade Project: Sahrani Liberation Army (Side: EAST)","66 -Expansion Bohemia Interactive: CTRG (Side: WEST)","67 -Expansion Bohemia Interactive: Gendarmerie (Side: WEST)","68 -Expansion Bohemia Interactive: OTAN (Pacifique) (Side: WEST)","69 -Expansion Bohemia Interactive: Syndikat (Side: GUER)","70 -Expansion Bohemia Interactive: CSAT (Pacifique) (Side: EAST)","71 -Expansion Burgess: OPCAN (Colonial Police) (Side: WEST)","72 -Expansion Burgess: OPCAN (Colonial Sheriff) (Side: WEST)","73 -FOW Bohemia Interactive: [AUS] Australian Army (Side: GUER)","74 -FOW Bohemia Interactive: [DE] Heer (Side: WEST)","75 -FOW Bohemia Interactive: [IT] Regio Esercito (Side: WEST)","76 -FOW Bohemia Interactive: [DE] Luftwaffe (Side: WEST)","77 -FOW Bohemia Interactive: [UK] Army (Side: GUER)","78 -FOW FOW Team: [DE] Waffen-SS (Side: WEST)","79 -fow_mod FOW team: [JP] Imperial Army (Side: WEST)","80 -fow_mod FOW team: [US] Army (Europe) (Side: GUER)","81 -fow_mod Bohemia Interactive: [US] Army (Pacific) (Side: GUER)","82 -fow_mod FOW team: [US] Marines Corps (Side: GUER)","83 -GAL HcPookie: GAL (Government Army of Lingor) (Side: WEST)","84 -GALACTIC SWOP: Galactic Republic (Side: WEST)","85 -GANGBLUE BIS/IceBreakr: Blue Gang (Side: WEST)","86 -GANGRED BIS/IceBreakr: Red Gang (Side: EAST)","87 -IBR Bohemia Interactive: Alienz (Side: GUER)","88 -ISC Bohemia Interactive: [ISC] Iraqi Police (Side: WEST)","89 -ISC Bohemia Interactive: [ISC] YPG (Side: WEST)","90 -LIB AWAR: ACI (Side: GUER)","91 -LIB AWAR & Lennard: ARR (Side: WEST)","92 -LIB Lennard: Deutsches Afrikakorps (Side: WEST)","93 -LIB AWAR & Joarius: FFI (Side: GUER)","94 -LIB AWAR: Armia Krajowa (Polonais) (Side: GUER)","95 -LIB AWAR: Luftwaffe (Side: WEST)","96 -LIB AWAR & Lennard: [Winter] Luftwaffe (Side: WEST)","97 -LIB AWAR & Lennard: MKHL (Side: WEST)","98 -LIB Lennard: US North African Corps (Side: GUER)","99 -LIB Lennard: NKVD (Side: EAST)","100 -LIB IFA3 Team: Panzerwaffe (Side: WEST)","101 -LIB AWAR & Lennard: [Winter] Panzerwaffe (Side: WEST)","102 -LIB AWAR: RAAF (Side: GUER)","103 -LIB IFA3 Team: RAF (Side: GUER)","104 -LIB AWAR & Lennard: RBAF (Side: WEST)","105 -LIB AWAR: Red Army (Side: EAST)","106 -LIB AWAR & Lennard: [Winter] Red Army (Side: EAST)","107 -LIB El Tyranos & Jove Chiere: 101st Airborne Division (Side: GUER)","108 -LIB El Tyranos: 82nd Airborne Division (Side: GUER)","109 -LIB AWAR: US Army Air Forces (Side: GUER)","110 -LIB AWAR: [Winter] US Airforce (Side: GUER)","111 -LIB IFA3 Team: US Army (Side: GUER)","112 -LIB XXX: [Winter] US Army (Side: GUER)","113 -LIB Lennard: US 2nd Ranger Battalion (Side: GUER)","114 -LIB I44: US Tank Troops (Side: GUER)","115 -LIB AWAR & Lennard: [Winter] US Tank Troops (Side: GUER)","116 -LIB AWAR: USSR Airforce (Side: EAST)","117 -LIB AWAR & Lennard: [Winter] USSR Airforce (Side: EAST)","118 -LIB AWAR: Tank troops of USSR (Side: EAST)","119 -LIB AWAR & Lennard: [Winter] Tank troops of USSR (Side: EAST)","120 -LIB AWAR: Wehrmacht (Side: WEST)","121 -LIB AWAR & Lennard: [Winter] Wehrmacht (Side: WEST)","122 -LM Burgess: UNSCMC (Urban) (Side: WEST)","123 -LM Burgess: UNSCMC (Desert) (Side: WEST)","124 -LM Burgess: ONI Security (Side: WEST)","125 -LM Burgess: UNSCMC (Snow) (Side: WEST)","126 -LM Burgess: UNSCMC (Wood) (Side: WEST)","127 -LM Burgess: OPCANTest (Side: WEST)","128 -LOP Project OPFOR: Boko Haram (Side: EAST)","129 -LOP Project OPFOR: Irish Republican Army (Side: EAST)","130 -LOP Project OPFOR: Ulster Volunteer Force (Side: GUER)","131 -LOP_LeightsOPFOR Project OPFOR: Afghan National Army and Police (Side: WEST)","132 -LOP_LeightsOPFOR Project OPFOR: African Militia (Side: GUER)","133 -LOP_LeightsOPFOR Project OPFOR: African Militia (Side: EAST)","134 -LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: GUER)","135 -LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: EAST)","136 -LOP_LeightsOPFOR Project OPFOR: Chernarussian Defence Forces (Side: WEST)","137 -LOP_LeightsOPFOR Project OPFOR: ChDKZ (Side: EAST)","138 -LOP_LeightsOPFOR Project OPFOR: Iraqi Armed Forces (Side: WEST)","139 -LOP_LeightsOPFOR Project OPFOR: Iranian Armed Forces (Side: GUER)","140 -LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: GUER)","141 -LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: EAST)","142 -LOP_LeightsOPFOR Project OPFOR: Chernarussian National Insurgents (Side: GUER)","143 -LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: WEST)","144 -LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: GUER)","145 -LOP_LeightsOPFOR Project OPFOR: Private Military Company (Side: GUER)","146 -LOP_LeightsOPFOR Project OPFOR: Royal Army Corps of Sahrani (Side: GUER)","147 -LOP_LeightsOPFOR Project OPFOR: Sahrani Liberation Army (Side: EAST)","148 -LOP_LeightsOPFOR Project OPFOR: Takistani Armed Forces (Side: EAST)","149 -LOP_LeightsOPFOR Project OPFOR: Ultranationalists (Side: GUER)","150 -LOP_LeightsOPFOR Project OPFOR: Ukrainian Armed Forces (Side: WEST)","151 -LOP_LeightsOPFOR Project OPFOR: United Nations (Side: GUER)","152 -LOP_LeightsOPFOR Project OPFOR: United Armed Forces of Novorossiya (Side: EAST)","153 -Mark Bohemia Interactive: AAF (Side: EAST)","154 -MOL HcPookie: Molatian Army (Side: EAST)","155 -OPTRE Article 2 Studios: Insurrectionists (Side: EAST)","156 -OPTRE Burgess: OPCAN (Side: WEST)","157 -OPTRE Burgess: OPCAN (UEG Colonial Guard) (Side: WEST)","158 -OPTRE Burgess: Colonial Militia (OPCAN) (Side: GUER)","159 -OPTRE Burgess: OPCAN (PMC) (Side: GUER)","160 -OPTRE Burgess: Halo Wars Rebels (OPCAN) (Side: EAST)","161 -OPTRE Burgess: Common Criminals (OPCAN) (Side: EAST)","162 -OPTRE Burgess: OPCAN (UNSC Army) (Side: WEST)","163 -OPTRE Burgess: United Rebel Air Force(OPCAN) (Side: EAST)","164 -OPTRE Burgess: United Rebel Army Desert(OPCAN) (Side: EAST)","165 -OPTRE Burgess: United Rebel Army BattleJumpers (OPCAN) (Side: EAST)","166 -OPTRE Burgess: United Rebel Army Tropic(OPCAN) (Side: EAST)","167 -OPTRE Bohemia Interactive: United Rebel Army Ground Vehicles (OPCAN) (Side: EAST)","168 -OPTRE Burgess: United Rebel Army Wood(OPCAN) (Side: EAST)","169 -OPTRE Burgess: OPCAN (WARZONE BLUE) (Side: WEST)","170 -OPTRE Burgess: OPCAN (WARZONE RED) (Side: EAST)","171 -OPTRE Article 2 Studios: Colonial Police (Side: GUER)","172 -OPTRE Article 2 Studios: UNSCDF (Side: WEST)","173 -RHS_AFRF Bohemia Interactive: [ISC] al-Nusra Front (Side: GUER)","174 -RHS_AFRF Bohemia Interactive: [ISC] Iraqi Army (Side: WEST)","175 -RHS_AFRF Bohemia Interactive: [ISC] Islamic State (Side: GUER)","176 -RHS_AFRF Bohemia Interactive: [ISC] Islamic State (Side: EAST)","177 -RHS_AFRF Bohemia Interactive: [ISC] Peshmerga (Side: WEST)","178 -RHS_AFRF Bohemia Interactive: [ISC] Syrian Arab Army (Side: EAST)","179 -RHS_AFRF Red Hammer Studios: Eastern Militia (Side: GUER)","180 -RHS_AFRF Red Hammer Studios: Russia (MSV) (Side: EAST)","181 -RHS_AFRF Red Hammer Studios: Russia (RVA) (Side: EAST)","182 -RHS_AFRF Red Hammer Studios: Russia (TV) (Side: EAST)","183 -RHS_AFRF Red Hammer Studios: Russia (VDV) (Side: EAST)","184 -RHS_AFRF Red Hammer Studios: Russia (VMF) (Side: EAST)","185 -RHS_AFRF RHS: Russia (VPVO) (Side: EAST)","186 -RHS_AFRF Red Hammer Studios: Russia (VV) (Side: EAST)","187 -RHS_AFRF Bohemia Interactive: Russia (VVS - Grey) (Side: EAST)","188 -RHS_AFRF Red Hammer Studios: Russia (VVS - Camo) (Side: EAST)","189 -RHS_GREF Red Hammer Studios: Chernarus (Air Force) (Side: GUER)","190 -RHS_GREF Red Hammer Studios: Chernarus (Air Force) (Side: WEST)","191 -RHS_GREF RHS (A2 port): Chernarus (Ground Forces) (Side: GUER)","192 -RHS_GREF Red Hammer Studios: Chernarus (Ground Forces) (Side: WEST)","193 -RHS_GREF Red Hammer Studios: Chernarus (National Guard) (Side: GUER)","194 -RHS_GREF Red Hammer Studios: Chernarus (National Guard) (Side: WEST)","195 -RHS_GREF Red Hammer Studios: ChDKZ Insurgents (Side: EAST)","196 -RHS_GREF Red Hammer Studios: ChDKZ Insurgents (Side: GUER)","197 -RHS_GREF Red Hammer Studios: Chernarus (U.N. Peacekeepers) (Side: GUER)","198 -RHS_SAF Red Hammer Studios: SAF (RVIPVO) (Side: GUER)","199 -RHS_SAF Bohemia Interactive: SAF (KOV) (Side: GUER)","200 -RHS_SAF Red Hammer Studios: SAF (Casques Bleus) (Side: GUER)","201 -RHS_USAF Red Hammer Studios: USA (SOCOM) (Side: WEST)","202 -RHS_USAF Red Hammer Studios: USA (USAF) (Side: WEST)","203 -RHS_USAF Red Hammer Studios: USA (Army - D) (Side: WEST)","204 -RHS_USAF Red Hammer Studios: USA (Army - W) (Side: WEST)","205 -RHS_USAF Red Hammer Studios: USA (USMC - D) (Side: WEST)","206 -RHS_USAF Red Hammer Studios: USA (USMC - W) (Side: WEST)","207 -RHS_USAF Red Hammer Studios: USA (Navy) (Side: WEST)","208 -RHSGREF Red Hammer Studios: Horizon Islands Defence Force (Side: WEST)","209 -RHSGREF Red Hammer Studios: Nationalist Troops (Side: GUER)","210 -SG Stagler: Sturmtroopers (Side: WEST)","211 -SG Stagler: [Winter] Sturmtroopers (Side: WEST)","212 -SG Stagler: Tank Sturmtroopers (Side: WEST)","213 -SWOP_MODs SWOP: Bandits (Side: GUER)","214 -SWOP_MODs SWOP: DeathWatch (Side: GUER)","215 -SWOP_MODs SWOP: First Order (Side: EAST)","216 -SWOP_MODs SWOP: Jedi Order (Side: WEST)","217 -SWOP_MODs SWOP: Mandalorians (Side: GUER)","218 -SWOP_MODs SWOP: Resistance (Side: WEST)","219 -SWOP_MODs SWOP: Tusken Raiders (Side: GUER)","220 -UNSC Morthon: UNSCMC (Side: WEST)","221 -UNSUNG Bohemia Interactive: Australia (UNSUNG) (Side: WEST)","222 -UNSUNG HCPOOKIE - SAM pack: N.V.A. (UNSUNG) (Side: EAST)","223 -UNSUNG Bohemia Interactive: V.C. (UNSUNG) (Side: EAST)","224 -UNSUNG Bohemia Interactive: A.R.V.N. (UNSUNG) (Side: GUER)","225 -UNSUNG Bohemia Interactive: New Zealand (UNSUNG) (Side: WEST)","226 -UNSUNG Bohemia Interactive: U.S. (UNSUNG) (Side: WEST)","227 -USML segen: Armed Islamic Front (Side: GUER)"};
+ default = 8;
+ };
+ class btc_p_AA { // Anti-Air infantry:
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_FAC_EAA"]);
+ values[]={0,1};
+ texts[]={$STR_DISABLED,$STR_ENABLED};
+ default = 0;
+ };
+ class btc_p_tank { // Enemy uses Tank:
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_FAC_ETANK"]);
+ values[]={0,1};
+ texts[]={$STR_DISABLED,$STR_ENABLED};
+ default = 0;
+ };
+ class btc_p_civ { // Civil type:
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_FAC_CTYPE"]);
+ values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
+ texts[]={"0 - EricJ: Afghan Civilians (Side: CIV)","1 - Bohemia Interactive: Civils (Side: CIV)","2 -btc_militia_mod Giallustio: Afghan Civilians (Side: CIV)","3 -CAF CAF MOD TEAM: African (Side: CIV)","4 -CAF CAF MOD TEAM: Middle Eastern (Side: CIV)","5 -COREVMod WarfareThai: Civilians (Africans) (Side: CIV)","6 -COREVMod WarfareThai: Civilians (Asians) (Side: CIV)","7 -COREVMod WarfareThai: Civilians (Eastern Europeons) (Side: CIV)","8 -COREVMod WarfareThai: Civilians (Middle-Easterns) (Side: CIV)","9 -CUP_Units Community Upgrade Project: Civilians (Russian) (Side: CIV)","10 -CUP_Vehicles Community Upgrade Project: Civilians (Chernarus) (Side: CIV)","11 -CUP_Vehicles Bohemia Interactive: Civilians (Sahrani) (Side: CIV)","12 -CUP_Vehicles Community Upgrade Project: Civilians (Takistan) (Side: CIV)","13 -LIB Reyhard & Joarius: 40s Civilians (Side: CIV)","14 -LOP_LeightsOPFOR Project OPFOR: Civilians (African) (Side: CIV)","15 -LOP_LeightsOPFOR Project OPFOR: Civilians (Eastern European) (Side: CIV)","16 -LOP_LeightsOPFOR Project OPFOR: Civilians (Middle Eastern) (Side: CIV)","17 -OPTRE Article 2 Studios: Civilians (UEG) (Side: CIV)","18 -ORANGE Bohemia Interactive: IDAP (Side: CIV)","19 -RDS_CIV_PACK reyhard: Russians (Side: CIV)","20 -UNSUNG Bohemia Interactive: Vietnamese (UNSUNG) (Side: CIV)"};
+ default = 1;
+ };
+ class btc_p_civ_veh { // Civil vehicle type:
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_FAC_CTYPEVEH"]);
+ values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
+ texts[]={"0 - EricJ: Afghan Civilians (Side: CIV)","1 - Bohemia Interactive: Civils (Side: CIV)","2 -btc_militia_mod Giallustio: Afghan Civilians (Side: CIV)","3 -CAF CAF MOD TEAM: African (Side: CIV)","4 -CAF CAF MOD TEAM: Middle Eastern (Side: CIV)","5 -COREVMod WarfareThai: Civilians (Africans) (Side: CIV)","6 -COREVMod WarfareThai: Civilians (Asians) (Side: CIV)","7 -COREVMod WarfareThai: Civilians (Eastern Europeons) (Side: CIV)","8 -COREVMod WarfareThai: Civilians (Middle-Easterns) (Side: CIV)","9 -CUP_Units Community Upgrade Project: Civilians (Russian) (Side: CIV)","10 -CUP_Vehicles Community Upgrade Project: Civilians (Chernarus) (Side: CIV)","11 -CUP_Vehicles Bohemia Interactive: Civilians (Sahrani) (Side: CIV)","12 -CUP_Vehicles Community Upgrade Project: Civilians (Takistan) (Side: CIV)","13 -LIB Reyhard & Joarius: 40s Civilians (Side: CIV)","14 -LOP_LeightsOPFOR Project OPFOR: Civilians (African) (Side: CIV)","15 -LOP_LeightsOPFOR Project OPFOR: Civilians (Eastern European) (Side: CIV)","16 -LOP_LeightsOPFOR Project OPFOR: Civilians (Middle Eastern) (Side: CIV)","17 -OPTRE Article 2 Studios: Civilians (UEG) (Side: CIV)","18 -ORANGE Bohemia Interactive: IDAP (Side: CIV)","19 -RDS_CIV_PACK reyhard: Russians (Side: CIV)","20 -UNSUNG Bohemia Interactive: Vietnamese (UNSUNG) (Side: CIV)"};
+ default = 1;
+ };
+ class btc_p_IED_title { // << IED options >>
+ title = $STR_BTC_HAM_PARAM_IED_TITLE;
+ values[]={0};
+ texts[]={""};
+ default = 0;
+ };
+ class btc_p_ied { // IEDs ratio:
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_IED_RATIO"]);
+ values[]={0, 1, 2, 3};
+ texts[]={$STR_DISABLED,$STR_BTC_HAM_PARAM_IED_RATIO_LOW,$STR_BTC_HAM_PARAM_IED_RATIO_NORMAL,$STR_BTC_HAM_PARAM_IED_RATIO_HIGH}; //texts[]={"Off","Low","Normal","High"};
+ default = 2;
+ };
+ class btc_p_ied_spot { // IEDs spotting difficulty:
+ title = __EVAL(format [" %1",(localize "STR_BTC_HAM_PARAM_IED_SPOT")]);
+ values[]={0, 1, 2};
+ texts[]={$STR_BTC_HAM_PARAM_IED_SPOT_VERYEASY,$STR_BTC_HAM_PARAM_IED_SPOT_EASY,$STR_BTC_HAM_PARAM_IED_RATIO_NORMAL}; //texts[]={"Very easy","Easy","Normal"};
+ default = 2;
+ };
+ class btc_p_ied_drone { // Drone bomber:
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_IED_DRONE"]);
+ values[]={0, 1};
+ texts[]={$STR_DISABLED,$STR_ENABLED};
+ default = 1;
+ };
+ class btc_p_hideout_cache_title { // << Hideout/Cache options >>
+ title = $STR_BTC_HAM_PARAM_HIDE_TITLE;
+ values[]={0};
+ texts[]={""};
+ default = 0;
+ };
+ class btc_p_hideout_n { // Hideout numbers:
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_HIDE_NUMBERS"]);
+ values[]={99,1,2,3,4,5};
+ texts[]={$STR_BTC_HAM_PARAM_HIDE_NUMBERS_RND,"1","2","3","4","5"}; //texts[]={"Random","1","2","3","4","5"};
+ default = 5;
+ };
+ class btc_p_cache_info_def { // Info cache distance:
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_CACHE_DISTANCE"]);
+ values[]={500,1000,1500,2000,2500,3000,3500,4000,5000};
+ texts[]={"500 m","1000 m","1500 m","2000 m","2500 m","3000 m","3500 m","4000 m","5000 m"};
+ default = 1000;
+ };
+ class btc_p_cache_info_ratio { //Cache info ratio:
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_CACHE_RATIO"]);
+ values[]={50,100};
+ texts[]={"50 m","100 m"};
+ default = 100;
+ };
+ class btc_p_info_chance { // Intel from dead bodies chance:
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_CACHE_DEADINFO"]);
+ values[]={0,10,20,30,40,50,60,70,80,90,100};
+ texts[]={"100 %","90 %","80 %","70 %","60 %","50 %","40 %","30 %","20 %","10 %","0 %"};
+ default = 70;
+ };
+ class btc_p_medical_title { // << Medical options >>
+ title = $STR_BTC_HAM_MEDI_TITLE;
+ values[]={0};
+ texts[]={""};
+ default = 0;
+ };
+ class btc_p_redeploy { // Allow re-deploy?
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_MEDI_REDEPLOY"]);
+ values[]={0,1};
+ texts[]={$STR_DISABLED,$STR_ENABLED};
+ default = 1;
+ };
+ class btc_p_skill_title { // << A3 Skill options >>
+ title = $STR_BTC_HAM_PARAM_SKILL_TITLE;
+ values[]={0};
+ texts[]={""};
+ default = 0;
+ };
+ class btc_p_set_skill { // Set skill?
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_SKILL_ONOFF"]);
+ values[]={0,1};
+ texts[]={$STR_DISABLED,$STR_ENABLED};
+ default = 1;
+ };
+ class btc_p_set_skill_general { // Set skill, general
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_SKILL_GEN"]);
+ values[]={0,1,2,3,4,5,6,7,8,9,10};
+ texts[]={"0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1"};
+ default = 0;
+ };
+ class btc_p_set_skill_aimingAccuracy { // Set skill, aimingAccuracy
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_SKILL_AIMACC"]);
+ values[]={0,1,2,3,4,5,6,7,8,9,10};
+ texts[]={"0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1"};
+ default = 1;
+ };
+ class btc_p_set_skill_aimingShake { // Set skill, aimingShake
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_SKILL_AIMSKILL"]);
+ values[]={0,1,2,3,4,5,6,7,8,9,10};
+ texts[]={"0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1"};
+ default = 4;
+ };
+ class btc_p_set_skill_aimingSpeed { // Set skill, aimingSpeed
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_SKILL_AIMSPEED"]);
+ values[]={0,1,2,3,4,5,6,7,8,9,10};
+ texts[]={"0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1"};
+ default = 3;
+ };
+ class btc_p_set_skill_endurance { // Set skill, endurance
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_SKILL_ENDURANCE"]);
+ values[]={0,1,2,3,4,5,6,7,8,9,10};
+ texts[]={"0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1"};
+ default = 5;
+ };
+ class btc_p_set_skill_spotDistance { // Set skill, spotDistance
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_SKILL_SPOTDIST"]);
+ values[]={0,1,2,3,4,5,6,7,8,9,10};
+ texts[]={"0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1"};
+ default = 9;
+ };
+ class btc_p_set_skill_spotTime { // Set skill, spotTime
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_SKILL_SPOTTIME"]);
+ values[]={0,1,2,3,4,5,6,7,8,9,10};
+ texts[]={"0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1"};
+ default = 7;
+ };
+ class btc_p_set_skill_courage { // Set skill, courage
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_SKILL_COURAGE"]);
+ values[]={0,1,2,3,4,5,6,7,8,9,10};
+ texts[]={"0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1"};
+ default = 2;
+ };
+ class btc_p_set_skill_reloadSpeed { // Set skill, reloadSpeed
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_SKILL_RELOAD"]);
+ values[]={0,1,2,3,4,5,6,7,8,9,10};
+ texts[]={"0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1"};
+ default = 10;
+ };
+ class btc_p_set_skill_commanding { // Set skill, commanding
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_SKILL_COMMANDING"]);
+ values[]={0,1,2,3,4,5,6,7,8,9,10};
+ texts[]={"0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1"};
+ default = 7;
+ };
+ class btc_p_gameplay_title { // << Gameplay options >>
+ title = $STR_BTC_HAM_PARAM_GAMEPLAY_TITLE;
+ values[]={0};
+ texts[]={""};
+ default = 0;
+ };
+ class btc_p_sea { // Extend battlefield to sea:
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_GAMEPLAY_SEA"]);
+ values[] = {0,1};
+ texts[] = {$STR_DISABLED,$STR_ENABLED};
+ default = 1;
+ };
+ class btc_p_veh_armed_ho { // Add armed vehicles in Hideout:
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_GAMEPLAY_ARMEDHIDEOUT"]);
+ values[] = {0,1};
+ texts[] = {$STR_DISABLED,$STR_ENABLED};
+ default = 0;
+ };
+ class btc_p_veh_armed_spawn_more { // Add armed vehicles in Side mission/Cache:
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_GAMEPLAY_ARMEDOTHER"]);
+ values[] = {0,1};
+ texts[] = {$STR_DISABLED,$STR_ENABLED};
+ default = 0;
+ };
+ class btc_p_side_mission_cycle { // Side mission cycle:
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_GAMEPLAY_SIDEM"]);
+ values[] = {0,1};
+ texts[] = {$STR_DISABLED,$STR_ENABLED};
+ default = 0;
+ };
+ class btc_p_main_title { // << Other options >>
+ title = $STR_BTC_HAM_PARAM_OTHER_TITLE;
+ values[]={0};
+ texts[]={""};
+ default = 0;
+ };
+ class btc_p_arsenalType { // Type of the arsenal:
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_OTHER_ARSENALTYPE"]);
+ values[]={0,1,2,3,4};
+ texts[]={$STR_BTC_HAM_PARAM_OTHER_ARSENALTYPE_BIS,$STR_BTC_HAM_PARAM_OTHER_ARSENALTYPE_BA,$STR_BTC_HAM_PARAM_OTHER_ARSENALTYPE_BA_PLUS,$STR_BTC_HAM_PARAM_OTHER_ARSENALTYPE_ACE,$STR_BTC_HAM_PARAM_OTHER_ARSENALTYPE_ACE_PLUS}; //texts[]={"BIS - Vanilla","BIS - Vanilla and ACE 3","BIS - Vanilla and ACE 3 (scroll wheel action)","ACE 3","ACE 3 (scroll wheel action)"};
+ default = 2;
+ };
+ class btc_p_rep { // Reputation at start:
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_OTHER_REPSTART"]);
+ values[]={0, 200, 500, 750};
+ texts[]={$STR_BTC_HAM_PARAM_OTHER_REPSTART_VLOW,$STR_BTC_HAM_PARAM_IED_RATIO_LOW,$STR_BTC_HAM_PARAM_IED_RATIO_NORMAL,$STR_BTC_HAM_PARAM_IED_RATIO_HIGH}; //texts[]={"Very Low","Low","Normal","High"};
+ default = 200;
+ };
+ class btc_p_garage { // Activate garage for admin:
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_OTHER_GARAGEADMIN"]);
+ values[]={0,1};
+ texts[]={$STR_DISABLED,$STR_ENABLED};
+ default = 0;
+ };
+ class btc_p_city_radius { // Spawn city radius offset:
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_OTHER_SPAWNRAD"]);
+ values[]={0,1,2,3,4,5,6,7,8};
+ texts[]={"0 m","100 m","200 m",$STR_BTC_HAM_PARAM_OTHER_SPAWNRAD_DEF,"400 m","500 m (Takistan)","600 m","700 m","800 m"}; // texts[]={"0 m","100 m","200 m","300 m","400 m","500 m (Takistan)","600 m","700 m","800 m"};
+ default = 3;
+ };
+ class btc_p_trigger { // Disable city activation when a plane or helicopter (>190Km/h) is flying above:
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_OTHER_DISABLESPAWN"]);
+ values[]={0,1};
+ texts[]={$STR_DISABLED,$STR_ENABLED};
+ default = 0;
+ };
+ class btc_p_debug { // Debug:
+ title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_OTHER_DEBUG"]);
+ values[]={0,1,2};
+ texts[]={$STR_DISABLED,$STR_ENABLED, $STR_BTC_HAM_PARAM_OTHER_DEBUG_LOGONLY}; // texts[]={"Off","On","Log only"};
+ default = 0;
+ };
+};
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/doc.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/doc.sqf
index dfbdd1a76..5383ff643 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/doc.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/doc.sqf
@@ -1,154 +1,59 @@
-player createDiarySubject ["Documentation","Documentation"];
+private _MainCategory = (localize "STR_BTC_HAM_DOC_TITLE");
+player createDiarySubject [_MainCategory, _MainCategory];
-player createDiaryRecord ["Documentation", ["Headless & Database", "
- This mission automatically uses one Headless client when available.
- This mission has a database system. Enemy units, towns, hideouts, cache, objects created by players or Zeus, vehicles, players markers (not lines) on global/camp channel are saved. All admin can save mission progress at any time with his self interaction key.
- "]
-];
+//Headless and Data base
+player createDiaryRecord [_MainCategory, [(localize "STR_BTC_HAM_DOC_HEADLESS_TITLE"),(localize "STR_BTC_HAM_DOC_HEADLESS_TEXT")]];
-player createDiaryRecord ["Documentation", ["Wounds", "
- Use the interaction menu to treat your wounds.
-Keep in mind that all the actions will be available, even if you do not need them. It is always recommended examine first.
- "]
-];
+//Wounds
+player createDiaryRecord [_MainCategory, [(localize "STR_BTC_HAM_DOC_WOUNDS_TITLE"),(localize "STR_BTC_HAM_DOC_WOUNDS_TEXT")]];
-player createDiaryRecord ["Documentation", ["Deafness", "
- Use the earplugs to protect your ears to avoid combat deafness.
-You can put them on with your self interaction key.
- "]
-];
+//Deafness
+player createDiaryRecord [_MainCategory, [(localize "STR_BTC_HAM_DOC_DEAFNESS_TITLE"),(localize "STR_BTC_HAM_DOC_DEAFNESS_TEXT")]];
-player createDiaryRecord ["Documentation", ["Vehicles", "
-
- When a vehicle is destroyed it will not respawn in base, you need to tow or lift it back to base and repair it near the logistic point (Interact with the red box). Helicopter wrecks can only be lifted.
-The Chinook is the only exception, it will respawn after 30 seconds.
-
-You can also rearm them by spawning the corresponding caliber at logistic point (Interact with the red box, select the vehicle type and caliber). Carry the ammo created and interact with the vehicle to rearm. This only works if rearming is setting on entire magazine or amount based on caliber (not for entire vehicle setting).
- "]
-];
+//Vehicles
+player createDiaryRecord [_MainCategory, [(localize "STR_BTC_HAM_DOC_VEHICLES_TITLE"),(localize "STR_BTC_HAM_DOC_VEHICLES_TEXT")]];
-player createDiaryRecord ["Documentation", ["Side Mission", "
- Side missions are really useful to raise your reputation level.
-A side mission can be requested by the officer with his self interaction menu.
-If you don't want to complete a task, you can always abort it with the self interaction menu.
- "]
-];
+//Side Mission
+player createDiaryRecord [_MainCategory, [(localize "STR_BTC_HAM_DOC_SIDEMISSION_TITLE"),(localize "STR_BTC_HAM_DOC_SIDEMISSION_TEXT")]];
-player createDiaryRecord ["Documentation", ["FOB", "
-
- In this mission a FOB is a forward spawn point, to create a FOB approach the red box at the logistic point and require a blue container.
--
-Move it where you want to deploy a new FOB and interact with it to set it up. Keep in mind that you can not deploy a FOB close to the main base (2.500m) and the terrain needs to be flat.
--
-You can dismantle a FOB by interacting with the flag on the HQ roof.
- "]
-];
-
-player createDiaryRecord ["Documentation", ["Sling loading", "
-=BTC= Lift will not replace the A3 sling loading, you can use both.
- Lifting an object is pretty simple. Get in a chopper as pilot, hover above the object and interact with the chopper to deploy ropes.
-When you are in the right position a new scroll wheel action will appear ('HOOK'). If you want you can open the HUD to facilitate the operation.
- To release an object open you self interaction menu and select 'CUT ROPES'.
- "]
-];
+//FOB
+player createDiaryRecord [_MainCategory, ["FOB", (localize "STR_BTC_HAM_DOC_FOB_TEXT")]];
-player createDiaryRecord ["Documentation", ["Logistic point", "
- At the logistic point you can require new objects (like ammo, fortifications, supplies for the side missions...) and repair destroyed vehicles.
- "]
-];
+//Sling loading
+player createDiaryRecord [_MainCategory, [(localize "STR_BTC_HAM_DOC_SLING_TITLE"),(localize "STR_BTC_HAM_DOC_SLING_TEXT")]];
-player createDiaryRecord ["Documentation", ["Logistic", "
-
--
-Select 'LOAD IN' option.
-After that interact with the vehicle and select 'LOAD object selected' option.
-The object has to be close to the vehicle.
--
-Select the option 'CHECK CARGO', then choose the object you want to unload from the list, and click 'UNLOAD'.
-If you are inside a chopper the object will be paradropped with a chute. If your height is too low, the object will crash down.
-Every vehicle has a 'CARGO CAPACITY' (CC in game), and every object has a 'REQUIRED CAPACITY' value (RC in game.)
-You can check those values in game with 'LOAD IN' and 'CHECK CARGO' options.
-
-To tow a vehicle interact with it and select the option 'HOOK'.
After that place the tow vehicle in front of it and select 'TOW' in the interaction menu.
-If the two vehicles are too far away or the vehicle can't tow that load (Car can't tow truck or tank), the option will be disabled.
-To unhook interact with one of the two vehicles and select the option 'UNHOOK'.
-
-
-With this option you can move heavy objects to build small outpost or base.
-When you select the option an hint will show all the keys required to move the object.
- "]
-];
+//Logistic point
+player createDiaryRecord [_MainCategory, [(localize "STR_BTC_HAM_DOC_LOGISTICP_TITLE"),(localize "STR_BTC_HAM_DOC_LOGISTICP_TEXT")]];
-player createDiaryRecord ["Documentation", ["Hideout", "
-The hideouts are a place where the Oplitas organize their movements.
-They send reinforcements from here and can attack the closest city.
-If you notice a lot of activity in an area, probably there is an hideout closeby.
-If you want to defeat the Oplitas, you need to destroy all their hideouts.
-Here an example of an hideout:
-
-To destroy an hideout just place a satchel near the ammo box, it's close to the flag, and blow it off!
- "]
-];
+//Logistic
+player createDiaryRecord [_MainCategory, [(localize "STR_BTC_HAM_DOC_LOGISTIC_TITLE"),(localize "STR_BTC_HAM_DOC_LOGISTIC_TEXT")]];
-player createDiaryRecord ["Documentation", ["IED", "
- Any object could be an IED, approach it carefully (DO NOT rotate while you are walking: prefer walk, stop, rotate, walk again etc). Turn On your mine detector (VMH3 or VMMH3) and search for a charge in a circle of 2 meter around.
-
-If you are an engineer and have a defusal kit, you can disarm it.
-You can also blow them off with high caliber and explosive satchels.
- "]
-];
+//Hideout
+player createDiaryRecord [_MainCategory, [(localize "STR_BTC_HAM_DOC_HIDEOUT_TITLE"),(localize "STR_BTC_HAM_DOC_HIDEOUT_TEXT")]];
-player createDiaryRecord ["Documentation", ["Intel", "
- Intel can be retrieved in the following ways:
-- Searching dead bodies
-- Interrogate prisoner
-- Talking to civilians
- Keep in mind that only the interpreter can talk to civilians and they can lie if your reputation level is low.
-When you find an intel from a dead body or interrogate a prisoner, a marker will appear in the map. Remember, prisoner have a random number of intel more or less interesting.
-There are two types of marker:
-- Red question mark (): ammo cache intel
-- Red exclamation mark (): hideout intel
-When you destroy an hideout or an ammo cache, all the markers related to it will be deleted.
- "]
-];
+//IED
+player createDiaryRecord [_MainCategory, ["IED", (localize "STR_BTC_HAM_DOC_IED_TEXT")]];
-player createDiaryRecord ["Documentation", ["Reputation", "
- Reputation can be ask to civilian
-Bad actions cause bad effects.
- Helping the local population by fighting the Oplitas and disarming IEDs will rise your reputation; killing civilians, mutilating alive/dead civilians, firing near civilians for no reason, damaging/destroying buildings, losing vehicles, player respawns will decrease your reputation. At the beginning you have a very low reputation level, so civilians won't help you in revealing important information about the Oplitas, they will likely lie instead.
-Aborting a side mission does not affect reputation.
- "]
-];
+//Intel
+player createDiaryRecord [_MainCategory, [(localize "STR_BTC_HAM_DOC_INTEL_TITLE"),(localize "STR_BTC_HAM_DOC_INTEL_TEXT")]];
-player createDiaryRecord ["Documentation", ["Orders", "
-Any player can give orders to civilians.
- Open your self interaction menu and select 'ORDERS'.
-Your options are:
-- STOP
-- GET DOWN
-- GO AWAY
+//Reputation
+player createDiaryRecord [_MainCategory, [(localize "STR_BTC_HAM_DOC_REPUTATION_TITLE"),(localize "STR_BTC_HAM_DOC_REPUTATION_TEXT")]];
-If you want to give an order to just one unit, interact with it (object interaction).
- "]
-];
+//Orders
+player createDiaryRecord [_MainCategory, [(localize "STR_BTC_HAM_DOC_ORDERS_TITLE"),(localize "STR_BTC_HAM_DOC_ORDERS_TEXT")]];
-player createDiaryRecord ["Documentation", ["Traffic", "
- Civilians are travelling by vehicle across cities. If your reputation is higher than normal, you can ask for a lift to a location chosen on the map. If you bump into a Oplitas patrol, don't worry, the civilian driver will do their best to hide you in the car.
- "]
-];
+//Traffic
+player createDiaryRecord [_MainCategory, [(localize "STR_BTC_HAM_DOC_TRAFFIC_TITLE"),(localize "STR_BTC_HAM_DOC_TRAFFIC_TEXT")]];
-player createDiaryRecord ["Documentation", ["Gear", "
- You can choose your gear at the red box inside the base. Located at the spawn point.
- "]
-];
+//Gear
+player createDiaryRecord [_MainCategory, [(localize "STR_BTC_HAM_DOC_GEAR_TITLE"),(localize "STR_BTC_HAM_DOC_GEAR_TEXT")]];
-player createDiaryRecord ["Documentation", ["Interaction", "
- Use ACE 3 interactions system.
- "]
-];
+//Interaction
+player createDiaryRecord [_MainCategory, [(localize "STR_BTC_HAM_DOC_INTERACTION_TITLE"),(localize "STR_BTC_HAM_DOC_INTERACTION_TEXT")]];
-player createDiaryRecord ["Documentation", [
- "Version",
- format [" Version %1 ",(str(btc_version) + ".8")]
- ]
+//Version
+player createDiaryRecord [_MainCategory, [(localize "STR_BTC_HAM_DOC_VERSION_TITLE"),
+ format [" Version %1.0 ", btc_version]
+ ]
];
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/create.sqf
index 64c2d595f..f70d767ba 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/create.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/create.sqf
@@ -10,22 +10,22 @@ btc_cache_obj addEventHandler ["HandleDamage", btc_fnc_cache_hd_cache];
_pos_type_array = ["TOP","FRONT","CORNER_L","CORNER_R"];
for "_i" from 1 to (1 + round random 3) do {
- _holder = createVehicle ["groundWeaponHolder", btc_cache_pos, [], 0, "can_collide"];
- _holder addWeaponCargoGlobal [selectRandom btc_cache_weapons_type, 1];
- _holder setVariable ["no_cache",true];
+ _holder = createVehicle ["groundWeaponHolder", btc_cache_pos, [], 0, "can_collide"];
+ _holder addWeaponCargoGlobal [selectRandom btc_cache_weapons_type, 1];
+ _holder setVariable ["no_cache",true];
- _pos_type = selectRandom _pos_type_array;
- _pos_type_array = _pos_type_array - [_pos_type];
- [btc_cache_obj,_holder, _pos_type] call btc_fnc_create_attachto;
+ _pos_type = selectRandom _pos_type_array;
+ _pos_type_array = _pos_type_array - [_pos_type];
+ [btc_cache_obj,_holder, _pos_type] call btc_fnc_create_attachto;
};
if (btc_debug_log) then {diag_log format ["CACHE SPAWNED: ID %1 POS %2",btc_cache_n,btc_cache_pos];};
if (btc_debug) then {
- systemChat format ["Cache spawned in %1",btc_cache_pos];
- //Marker
- createmarker [format ["%1", btc_cache_pos], btc_cache_pos];
- format ["%1", btc_cache_pos] setmarkertype "mil_unknown";
- format ["%1", btc_cache_pos] setMarkerText format ["Cache %1", btc_cache_n];
- format ["%1", btc_cache_pos] setMarkerSize [0.8, 0.8];
+ systemChat format ["Cache spawned in %1",btc_cache_pos];
+ //Marker
+ createmarker [format ["%1", btc_cache_pos], btc_cache_pos];
+ format ["%1", btc_cache_pos] setmarkertype "mil_unknown";
+ format ["%1", btc_cache_pos] setMarkerText format ["Cache %1", btc_cache_n];
+ format ["%1", btc_cache_pos] setMarkerSize [0.8, 0.8];
};
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/find_pos.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/find_pos.sqf
index a5bb35c2f..46564ec2e 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/find_pos.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/find_pos.sqf
@@ -23,9 +23,9 @@ _pos = [getPos _city, (_xx + _y)] call btc_fnc_randomize_pos;
_houses = [_pos,50] call btc_fnc_getHouses;
if (count _houses == 0) then {
- [] call btc_fnc_cache_find_pos;
+ [] call btc_fnc_cache_find_pos;
} else {
- //private ["_isAct","_cache"];
- _house = selectRandom _houses;
- _house spawn btc_fnc_cache_spawn;
+ //private ["_isAct","_cache"];
+ _house = selectRandom _houses;
+ _house spawn btc_fnc_cache_spawn;
};
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/hd_cache.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/hd_cache.sqf
index 61e2f4e98..18533d26c 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/hd_cache.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/hd_cache.sqf
@@ -8,34 +8,35 @@ _ammo = _this select 4;
_explosive = (getNumber(configFile >> "cfgAmmo" >> _ammo >> "explosive") > 0);
if (isNil {_cache getVariable "btc_hd_cache"} && {_explosive} && {_damage > 0.6}) then {
- _cache setVariable ["btc_hd_cache",true];
- {detach _x; deleteVehicle _x;} forEach attachedObjects _cache;
- //Effects
- private ["_pos","_marker"];
- _pos = getposATL btc_cache_obj;
- "Bo_GBU12_LGB_MI10" createVehicle _pos;
- _pos spawn {sleep 2;"M_PG_AT" createVehicle _this;sleep 2;"M_Titan_AT" createVehicle _this;};
- [_pos] call btc_fnc_deaf_earringing;
- deleteVehicle btc_cache_obj;
- _marker = createmarker [format ["btc_cache_%1", btc_cache_n], btc_cache_pos];
- _marker setmarkertype "hd_destroy";
- _marker setMarkerText format ["Cached %1 destroyed", btc_cache_n];
- _marker setMarkerSize [1, 1];
- _marker setMarkerColor "ColorRed";
- if (btc_debug_log) then {
- diag_log format ["CACHE DESTROYED: ID %1 POS %2",btc_cache_n,btc_cache_pos];
- };
- btc_rep_bonus_cache spawn btc_fnc_rep_change;
+ _cache setVariable ["btc_hd_cache",true];
+ {detach _x; deleteVehicle _x;} forEach attachedObjects _cache;
+ //Effects
+ private ["_pos","_marker"];
+ _pos = getposATL btc_cache_obj;
+ "Bo_GBU12_LGB_MI10" createVehicle _pos;
+ _pos spawn {sleep 2;"M_PG_AT" createVehicle _this;sleep 2;"M_Titan_AT" createVehicle _this;};
+ [_pos] call btc_fnc_deaf_earringing;
+ deleteVehicle btc_cache_obj;
+ _marker = createmarker [format ["btc_cache_%1", btc_cache_n], btc_cache_pos];
+ _marker setmarkertype "hd_destroy";
+ [_marker,"STR_BTC_HAM_O_EH_HDCACHE_MRK",btc_cache_n] remoteExec ["btc_fnc_set_markerTextLocal", [0, -2] select isDedicated, _marker]; //Cached %1 destroyed
+ // Vehicle needs assistance
+ _marker setMarkerSize [1, 1];
+ _marker setMarkerColor "ColorRed";
+ if (btc_debug_log) then {
+ diag_log format ["CACHE DESTROYED: ID %1 POS %2",btc_cache_n,btc_cache_pos];
+ };
+ btc_rep_bonus_cache spawn btc_fnc_rep_change;
- btc_cache_pos = [];
- btc_cache_n = btc_cache_n + 1;
- btc_cache_obj = objNull;
- btc_cache_info = btc_info_cache_def;
- {deleteMarker _x} foreach btc_cache_markers;
- btc_cache_markers = [];
+ btc_cache_pos = [];
+ btc_cache_n = btc_cache_n + 1;
+ btc_cache_obj = objNull;
+ btc_cache_info = btc_info_cache_def;
+ {deleteMarker _x} foreach btc_cache_markers;
+ btc_cache_markers = [];
- //Notification
- [0] remoteExec ["btc_fnc_show_hint", 0];
+ //Notification
+ [0] remoteExec ["btc_fnc_show_hint", 0];
- [] spawn {[] call btc_fnc_cache_find_pos;};
-} else {0};
\ No newline at end of file
+ [] spawn {[] call btc_fnc_cache_find_pos;};
+} else {0};
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf
index e4d93cfa3..d5953e7e7 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf
@@ -1,208 +1,205 @@
-private ["_city","_is_init","_data_units","_type","_radius_x","_radius_y","_has_en","_has_ho","_ieds","_radius","_number_patrol_active","_number_civ_veh_active"];
+params ["_id"];
-hint ("Activate " + str(_this));
+if (btc_debug) then {
+ hint ("Activate " + str(_id));
+};
-_city = btc_city_all select (_this select 0);
+private _city = btc_city_all select _id;
if (_city getVariable "activating") exitWith {};
-_city setVariable ["activating",true];
+_city setVariable ["activating", true];
-_is_init = _city getVariable ["initialized",false];
-_data_units = _city getVariable ["data_units",[]];
-_type = _city getVariable ["type",""];
-_radius_x = _city getVariable ["RadiusX",0];
-_radius_y = _city getVariable ["RadiusY",0];
-_has_en = _city getVariable ["occupied",false];
-_has_ho = _city getVariable ["has_ho",false];
-_ieds = _city getVariable ["ieds",[]];
-_radius = (_radius_x+_radius_y)/2;
+private _is_init = _city getVariable ["initialized", false];
+private _data_units = _city getVariable ["data_units", []];
+private _type = _city getVariable ["type", ""];
+private _radius_x = _city getVariable ["RadiusX", 0];
+private _radius_y = _city getVariable ["RadiusY", 0];
+private _has_en = _city getVariable ["occupied", false];
+private _has_ho = _city getVariable ["has_ho", false];
+private _ieds = _city getVariable ["ieds", []];
+private _radius = (_radius_x + _radius_y)/2;
if (!_is_init) then {
- private ["_ratio_ied","_ratio"];
- _ratio = (switch _type do {
- case "Hill" : {random 1};
- case "NameLocal" : {random 2.5};
- case "NameVillage" : {random 3.5};
- case "NameCity" : {random 5};
- case "NameCityCapital" : {random 6};
- case "Airport" : {0};
- case "NameMarine" : {0};
- });
- _ratio_ied = _ratio;
- if (_has_en) then {_ratio_ied = _ratio_ied * 1.5;} else {_ratio_ied = _ratio_ied * 0.75;};
- if (_has_ho) then {_ratio_ied = _ratio_ied * 2;};
- //if (_has_en == 0 && {!_has_ho}) then {_ratio_ied = 0;};
- diag_log format ["_ratio_ied %1 - p %2",_ratio_ied,_ratio_ied * btc_p_ied];
- _ratio_ied = _ratio_ied * btc_p_ied;
- if (_ratio_ied > 0) then {[_city,_radius,((_ratio_ied/ 2) + (random _ratio_ied))] call btc_fnc_ied_init_area};
-
- _ieds = _city getVariable ["ieds",[]];
-
- _city setVariable ["initialized",true];
+ private _ratio = (switch _type do {
+ case "Hill" : {random 1};
+ case "NameLocal" : {random 2.5};
+ case "NameVillage" : {random 3.5};
+ case "NameCity" : {random 5};
+ case "NameCityCapital" : {random 6};
+ case "Airport" : {0};
+ case "NameMarine" : {0};
+ });
+ private _ratio_ied = _ratio;
+ if (_has_en) then {_ratio_ied = _ratio_ied * 1.5;} else {_ratio_ied = _ratio_ied * 0.75;};
+ if (_has_ho) then {_ratio_ied = _ratio_ied * 2;};
+ if (btc_debug_log) then {
+ diag_log format ["_ratio_ied %1 - p %2", _ratio_ied, _ratio_ied * btc_p_ied];
+ };
+ _ratio_ied = _ratio_ied * btc_p_ied;
+ if (_ratio_ied > 0) then {[_city, _radius, (_ratio_ied / 2) + (random _ratio_ied)] call btc_fnc_ied_init_area};
+
+ _ieds = _city getVariable ["ieds", []];
+
+ _city setVariable ["initialized", true];
};
-
-_city setVariable ["active",true];
+_city setVariable ["active", true];
if (count _ieds > 0) then {
- private _ieds_data = _ieds apply {_x call btc_fnc_ied_create};
- _city = btc_city_all select (_this select 0);
- [_city,_ieds_data] call btc_fnc_ied_check;
+ private _ieds_data = _ieds apply {_x call btc_fnc_ied_create};
+ _city = btc_city_all select _id;
+ [_city, _ieds_data] call btc_fnc_ied_check;
};
if (count _data_units > 0) then {
- //{_x spawn btc_fnc_data_spawn_group;sleep 0.5;} foreach _data_units;
- {_x call btc_fnc_data_spawn_group;sleep 0.01;} foreach _data_units;
+ {
+ (_x call btc_fnc_data_spawn_group) params ["_leader", "_type"];
+ if (_type in [5, 7]) then {
+ _leader addEventHandler ["killed", format ["[%1] call btc_fnc_eh_suicider", _id]];
+ };
+ sleep 0.01;
+ } foreach _data_units;
} else {
- private ["_ratio"];
- //spawn bad guys "NameVillage","NameCity","NameCityCapital","NameLocal"
- _ratio = (switch _type do {
- case "Hill" : {0.6};
- case "NameLocal" : {0.75};
- case "NameVillage" : {1};
- case "NameCity" : {2};
- case "NameCityCapital" : {4};
- case "Airport" : {4};
- case "NameMarine" : {0.6};
- default {0.1};
- });
- if (_has_en) then {
- private ["_groups","_n","_trigger"];
- //Find a better way to randomize city occupation
- _n = random 3;
- _groups = ceil ((1 + _n) * _ratio);
- //hint ("SPAWNING" + str(_groups) + " ---- " + str(_n));
- //for "_i" from 1 to (_groups) do {[_city,_radius,(random _ratio),(random 1)] spawn btc_fnc_mil_create_group;sleep 0.5;};
- for "_i" from 1 to (_groups) do {[_city,_radius,(random _ratio),(random 1)] call btc_fnc_mil_create_group;};
- };
- //spawn mini task (ammo cache, ieds, injured civ)
-
- //spawn civilians
- if (_type != "Hill") then {
- private ["_factor","_n"];
- _factor = (switch _type do {
- case "NameLocal" : {0.5};
- case "NameVillage" : {1.5};
- case "NameCity" : {3};
- case "NameCityCapital" : {6};
- case "Airport" : {1.5};
- default {1};
- });
- _n = 3 * _factor;
- [_city,(_radius/3),_n] call btc_fnc_civ_populate;
- };
+ //Spawn bad guys "NameVillage","NameCity","NameCityCapital","NameLocal"
+ private _ratio = (switch _type do {
+ case "Hill" : {0.6};
+ case "NameLocal" : {0.75};
+ case "NameVillage" : {1};
+ case "NameCity" : {2};
+ case "NameCityCapital" : {4};
+ case "Airport" : {4};
+ case "NameMarine" : {0.6};
+ default {0.1};
+ });
+ if (_has_en) then {
+ //Find a better way to randomize city occupation
+ private _n = random 3;
+ private _groups = ceil ((1 + _n) * _ratio);
+ for "_i" from 1 to (_groups) do {[_city, _radius, random _ratio, random 1] call btc_fnc_mil_create_group;};
+ };
+ //Spawn civilians
+ if (_type != "Hill") then {
+ private _factor = (switch _type do {
+ case "NameLocal" : {0.5};
+ case "NameVillage" : {1.5};
+ case "NameCity" : {3};
+ case "NameCityCapital" : {6};
+ case "Airport" : {1.5};
+ default {1};
+ });
+ private _n = 3 * _factor;
+ [_city, _radius/3, _n] call btc_fnc_civ_populate;
+ };
};
if (_has_en) then {
- _trigger = createTrigger["EmptyDetector",getPos _city];
- _trigger setTriggerArea[(_radius_x+_radius_y),(_radius_x+_radius_y),0,false];
- _trigger setTriggerActivation[str(btc_enemy_side),"NOT PRESENT",false];
- _trigger setTriggerStatements ["this", format ["[%1] spawn btc_fnc_city_set_clear",(_this select 0)], ""];
- _city setVariable ["trigger",_trigger];
+ private _trigger = createTrigger["EmptyDetector", getPos _city];
+ _trigger setTriggerArea[_radius_x+_radius_y, _radius_x+_radius_y, 0, false];
+ _trigger setTriggerActivation[str(btc_enemy_side), "NOT PRESENT", false];
+ _trigger setTriggerStatements ["this", format ["[%1] spawn btc_fnc_city_set_clear", _id], ""];
+ _city setVariable ["trigger", _trigger];
};
-if (_city getVariable ["spawn_more",false]) then {
- _city setVariable ["spawn_more",false];
- for "_i" from 1 to (2 + round random 3) do {
- [_city,_radius,(4 + random 3),(random 1)] call btc_fnc_mil_create_group;
- };
- if (btc_p_veh_armed_spawn_more) then {
- private _closest = [_city,btc_city_all select {!(_x getVariable ["active",false])},false] call btc_fnc_find_closecity;
- for "_i" from 1 to (1 + round random 2) do {
- [{_this call btc_fnc_mil_send}, [_closest,getpos _city,1,selectRandom btc_type_motorized_armed], _i * 2] call CBA_fnc_waitAndExecute;
- };
- };
+if (_city getVariable ["spawn_more", false]) then {
+ _city setVariable ["spawn_more", false];
+ for "_i" from 1 to (2 + round random 3) do {
+ [_city, _radius, 4 + random 3, random 1] call btc_fnc_mil_create_group;
+ };
+ if (btc_p_veh_armed_spawn_more) then {
+ private _closest = [_city, btc_city_all select {!(_x getVariable ["active", false])}, false] call btc_fnc_find_closecity;
+ for "_i" from 1 to (1 + round random 2) do {
+ [{_this call btc_fnc_mil_send}, [_closest, getpos _city,1, selectRandom btc_type_motorized_armed], _i * 2] call CBA_fnc_waitAndExecute;
+ };
+ };
};
if !(btc_cache_pos isEqualTo []) then {
- if (btc_cache_pos distance _city < (_radius_x+_radius_y)) then {
- if (count (btc_cache_pos nearEntities ["Man", 30]) > 3) exitWith {};
- [btc_cache_pos,8,3,0.2] call btc_fnc_mil_create_group;
- [btc_cache_pos,60,4,0.5] call btc_fnc_mil_create_group;
- if (btc_p_veh_armed_spawn_more) then {
- private _closest = [_city,btc_city_all select {!(_x getVariable ["active",false])},false] call btc_fnc_find_closecity;
- for "_i" from 1 to (1 + round random 3) do {
- [{_this call btc_fnc_mil_send}, [_closest,getpos _city,1,selectRandom btc_type_motorized_armed], _i * 2] call CBA_fnc_waitAndExecute;
- };
- };
- };
+ if (btc_cache_pos distance _city < (_radius_x+_radius_y)) then {
+ if (count (btc_cache_pos nearEntities ["Man", 30]) > 3) exitWith {};
+ [btc_cache_pos, 8, 3, 0.2] call btc_fnc_mil_create_group;
+ [btc_cache_pos, 60, 4, 0.5] call btc_fnc_mil_create_group;
+ if (btc_p_veh_armed_spawn_more) then {
+ private _closest = [_city,btc_city_all select {!(_x getVariable ["active", false])}, false] call btc_fnc_find_closecity;
+ for "_i" from 1 to (1 + round random 3) do {
+ [{_this call btc_fnc_mil_send}, [_closest, getpos _city, 1, selectRandom btc_type_motorized_armed], _i * 2] call CBA_fnc_waitAndExecute;
+ };
+ };
+ };
};
-if (_has_ho && {!(_city getVariable ["ho_units_spawned",false])}) then {
- private ["_pos","_random"];
- _city setVariable ["ho_units_spawned",true];
- //_pos = _city getVariable ["ho_pos",getPos _city];ho
- _pos = _city getVariable ["ho_pos", getpos _city];
- [_pos,20,(10 + random 6),0.8] call btc_fnc_mil_create_group;
- [_pos,120,(1 + random 2),0.5] call btc_fnc_mil_create_group;
- [_pos,120,(1 + random 2),0.5] call btc_fnc_mil_create_group;
- _random = (random 1);
- switch (true) do {
- case (_random < 0.3) : {};
- case (_random > 0.3) : {
- private ["_statics"];
- _statics = btc_type_gl + btc_type_mg;
- //format position
- [[(_pos select 0) + 7,(_pos select 1) + 7,0],_statics,45] call btc_fnc_mil_create_static;
- };
- case (_random > 0.75) : {
- private ["_statics"];
- _statics = btc_type_gl + btc_type_mg;
- [[(_pos select 0) + 7,(_pos select 1) + 7,0],_statics,45] call btc_fnc_mil_create_static;
- [[(_pos select 0) - 7,(_pos select 1) - 7,0],_statics,225] call btc_fnc_mil_create_static;
- };
- };
- if (btc_p_veh_armed_ho) then {
- _closest = [_city,btc_city_all select {!(_x getVariable ["active",false])},false] call btc_fnc_find_closecity;
- for "_i" from 1 to (2 + round random 3) do {
- [{_this call btc_fnc_mil_send}, [_closest,_pos,1,selectRandom btc_type_motorized_armed], _i * 2] call CBA_fnc_waitAndExecute;
- };
- };
+if (_has_ho && {!(_city getVariable ["ho_units_spawned", false])}) then {
+ _city setVariable ["ho_units_spawned", true];
+ private _pos = _city getVariable ["ho_pos", getpos _city];
+ [_pos, 20, 10 + random 6, 0.8] call btc_fnc_mil_create_group;
+ [_pos, 120, 1 + random 2, 0.5] call btc_fnc_mil_create_group;
+ [_pos, 120, 1 + random 2, 0.5] call btc_fnc_mil_create_group;
+ private _random = random 1;
+ switch (true) do {
+ case (_random < 0.3) : {};
+ case (_random > 0.3) : {
+ private _statics = btc_type_gl + btc_type_mg;
+ [[(_pos select 0) + 7, (_pos select 1) + 7, 0], _statics, 45] call btc_fnc_mil_create_static;
+ };
+ case (_random > 0.75) : {
+ private _statics = btc_type_gl + btc_type_mg;
+ [[(_pos select 0) + 7, (_pos select 1) + 7, 0], _statics, 45] call btc_fnc_mil_create_static;
+ [[(_pos select 0) - 7, (_pos select 1) - 7, 0], _statics, 225] call btc_fnc_mil_create_static;
+ };
+ };
+ if (btc_p_veh_armed_ho) then {
+ _closest = [_city, btc_city_all select {!(_x getVariable ["active", false])}, false] call btc_fnc_find_closecity;
+ for "_i" from 1 to (2 + round random 3) do {
+ [{_this call btc_fnc_mil_send}, [_closest, _pos, 1, selectRandom btc_type_motorized_armed], _i * 2] call CBA_fnc_waitAndExecute;
+ };
+ };
};
//Suicider
-_city = btc_city_all select (_this select 0);
-if !(_city getVariable ["has_suicider",false]) then {
- if ((time - btc_ied_suic_spawned) > btc_ied_suic_time && {random 1000 > btc_global_reputation}) then {
- btc_ied_suic_spawned = time;
- _city setVariable ["has_suicider",true];
- [_city,_radius] call btc_fnc_ied_suicider_create;
- };
+if !(_city getVariable ["has_suicider", false]) then {
+ if ((time - btc_ied_suic_spawned) > btc_ied_suic_time && {random 1000 > btc_global_reputation}) then {
+ btc_ied_suic_spawned = time;
+ _city setVariable ["has_suicider", true];
+ private _suicider = if (selectRandom [false, false, btc_p_ied_drone]) then {
+ [_city, _radius] call btc_fnc_ied_drone_create;
+ } else {
+ [_city, _radius] call btc_fnc_ied_suicider_create;
+ };
+ _suicider addEventHandler ["killed", format ["[%1] call btc_fnc_eh_suicider", _id]];
+ };
};
-_city setVariable ["activating",false];
+_city setVariable ["activating", false];
//Patrol
btc_patrol_active = btc_patrol_active - [grpNull];
-_number_patrol_active = count btc_patrol_active;
+private _number_patrol_active = count btc_patrol_active;
if (_number_patrol_active < btc_patrol_max) then {
- private ["_n","_av","_d","_r"];
- _n = 0;_r = 0;
- if (_has_en) then {_n = round (random 3 + (3/2));} else {_n = round random 2;};
- _av = btc_patrol_max - _number_patrol_active;
- _d = _n - _av;
- if (_d > 0) then {_r = _n - _d;} else {_r = _n;};
- for "_i" from 1 to _r do
- {
- [(1 + round random 1),_city,((_radius_x+_radius_y) + btc_patrol_area)] spawn btc_fnc_mil_patrol_create;
- };
- if (btc_debug_log) then {diag_log format ["btc_fnc_city_activate: (patrol) _n = %1 _av %2 _d %3 _r %4",_n,_av,_d,_r];};
+ private _n = 0;
+ private _r = 0;
+ if (_has_en) then {_n = round (random 3 + (3/2));} else {_n = round random 2;};
+ private _av = btc_patrol_max - _number_patrol_active;
+ private _d = _n - _av;
+ _r = if (_d > 0) then {_n - _d;} else {_n;};
+ for "_i" from 1 to _r do {
+ [1 + round random 1, _city, (_radius_x+_radius_y) + btc_patrol_area] spawn btc_fnc_mil_patrol_create;
+ };
+ if (btc_debug_log) then {diag_log format ["btc_fnc_city_activate: (patrol) _n = %1 _av %2 _d %3 _r %4", _n, _av, _d, _r];};
};
//Traffic
btc_civ_veh_active = btc_civ_veh_active - [grpNull];
-_number_civ_veh_active = count btc_civ_veh_active;
+private _number_civ_veh_active = count btc_civ_veh_active;
if (_number_civ_veh_active < btc_civ_max_veh) then {
- private ["_n","_av","_d","_r"];
- _n = 0;_r = 0;
- _n = round (random 3 + (3/2));
- _av = btc_civ_max_veh - _number_civ_veh_active;
- _d = _n - _av;
- if (_d > 0) then {_r = _n - _d;} else {_r = _n;};
- for "_i" from 1 to _r do {
- [_city,((_radius_x+_radius_y) + btc_patrol_area)] spawn btc_fnc_civ_traffic_create;
- };
- if (btc_debug_log) then {diag_log format ["btc_fnc_city_activate: (traffic) _n = %1 _av %2 _d %3 _r %4",_n,_av,_d,_r];};
+ private _n = 0;
+ private _r = 0;
+ _n = round (random 3 + (3/2));
+ private _av = btc_civ_max_veh - _number_civ_veh_active;
+ private _d = _n - _av;
+ _r = if (_d > 0) then {_n - _d;} else {_n;};
+ for "_i" from 1 to _r do {
+ [_city, (_radius_x+_radius_y) + btc_patrol_area] spawn btc_fnc_civ_traffic_create;
+ };
+ if (btc_debug_log) then {diag_log format ["btc_fnc_city_activate: (traffic) _n = %1 _av %2 _d %3 _r %4", _n, _av, _d, _r];};
};
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/create.sqf
index 4e0f0f8b3..e0ce31609 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/create.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/create.sqf
@@ -1,34 +1,26 @@
-private ["_position","_type","_name","_radius_x","_radius_y","_has_en","_id","_city"];
+params ["_position","_type","_name","_radius_x","_radius_y","_has_en"];
-_position = _this select 0;
-_type = _this select 1;
-_name = _this select 2;
-_radius_x = _this select 3;
-_radius_y = _this select 4;
-_has_en = _this select 5;//BOOL
-_id = count btc_city_all;
+private _id = count btc_city_all;
-_city = "Land_Ammobox_rounds_F" createVehicle _position;
-_city hideObjectGlobal true;
-_city allowDamage false;
-_city enableSimulation false;
-_city setVariable ["activating",false];
-_city setVariable ["initialized",false];
-_city setVariable ["id",_id];
-_city setVariable ["name",_name];
-_city setVariable ["RadiusX",_radius_x];
-_city setVariable ["RadiusY",_radius_y];
-_city setVariable ["active",false];
-_city setVariable ["type",_type];
-_city setVariable ["spawn_more",false];
-_city setVariable ["data_units",[]];
-_city setVariable ["occupied",_has_en];
+private _city = createSimpleObject ["a3\structures_f_epb\items\military\ammobox_rounds_f.p3d", [_position select 0, _position select 1, getTerrainHeightASL _position]];
+hideObjectGlobal _city;
+_city setVariable ["activating", false];
+_city setVariable ["initialized", false];
+_city setVariable ["id", _id];
+_city setVariable ["name", _name];
+_city setVariable ["RadiusX", _radius_x];
+_city setVariable ["RadiusY", _radius_y];
+_city setVariable ["active", false];
+_city setVariable ["type", _type];
+_city setVariable ["spawn_more", false];
+_city setVariable ["data_units", []];
+_city setVariable ["occupied", _has_en];
if (btc_p_sea) then {
- _city setVariable ["hasbeach", (((selectBestPlaces [_position,0.8*(_radius_x+_radius_y), "sea",10,1]) select 0 select 1) isEqualTo 1)];
+ _city setVariable ["hasbeach", ((selectBestPlaces [_position, 0.8*(_radius_x+_radius_y), "sea", 10, 1]) select 0 select 1) isEqualTo 1];
};
btc_city_all set [_id,_city];
[_position,_radius_x,_radius_y,_city,_has_en,_name,_type,_id] call btc_fnc_city_trigger_player_side;
-_city
\ No newline at end of file
+_city
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/de_activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/de_activate.sqf
index cd1abe250..1cb4d2660 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/de_activate.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/de_activate.sqf
@@ -17,19 +17,19 @@ _radius = (_radius_x+_radius_y);
_has_en = _city getVariable ["occupied",false];
if (_has_en) then {
- _trigger = _city getVariable ["trigger",objNull];
- deleteVehicle _trigger;
- _city setVariable ["trigger",objNull];
+ _trigger = _city getVariable ["trigger",objNull];
+ deleteVehicle _trigger;
+ _city setVariable ["trigger",objNull];
};
_data_units = [];
{
- if (((leader _x) distance _city) < _radius && {side _x != btc_player_side} && !(_x getVariable ["no_cache", false])) then {
- private ["_data_group"];
- _data_group = _x call btc_fnc_data_get_group;
- _data_units set [count _data_units, _data_group];
- if (btc_debug_log) then {diag_log format ["data_units = %1",_data_units];};
- };
+ if (((leader _x) distance _city) < _radius && {side _x != btc_player_side} && !(_x getVariable ["no_cache", false])) then {
+ private ["_data_group"];
+ _data_group = _x call btc_fnc_data_get_group;
+ _data_units set [count _data_units, _data_group];
+ if (btc_debug_log) then {diag_log format ["data_units = %1",_data_units];};
+ };
} foreach allGroups;
_city setVariable ["data_units",_data_units];
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/init.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/init.sqf
index de538ce94..1506f68be 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/init.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/init.sqf
@@ -7,43 +7,43 @@ _cities = ["NameVillage","NameCity","NameCityCapital","NameLocal","Hill","Airpor
if (btc_p_sea) then {_cities pushBack "NameMarine";};
btc_city_all = [];
for "_i" from 0 to (count _locations - 1) do {
- private ["_current","_type"];
- _current = _locations select _i;
-
- _type = gettext(_current >> "type");
- if (_type in _cities) then {
- private ["_position","_name","_position","_radius_x","_radius_y","_new_position","_area"];
- _position = getarray(_current >> "position");
- if (surfaceIsWater _position) then {
- if !(_type isEqualTo "NameMarine") then {
- private _church = nearestTerrainObjects [_position, ["CHURCH"], 470];
- if (_church isEqualTo []) then {
- _area = 50;
- for "_i" from 0 to 3 do {
- _new_position = [_position, 0, _area, 0.5, 0, -1, 0] call BIS_fnc_findSafePos;
- if (count _new_position == 2) exitWith {_position = _new_position;};
- _area = _area * 2;
- };
- } else {
- _position = getPos (_church select 0);
- };
- };
- };
- _name = getText(_current >> "name");
- _radius_x = getNumber(_current >> "RadiusA");
- _radius_y = getNumber(_current >> "RadiusB");
-
- if (btc_city_blacklist find _name >= 0) exitWith {};
-
- /*
- //if you want a safe area
- if (_position distance getMarkerPos "YOUR_MARKER_AREA" < 500) exitWith {};
- */
-
- [_position,_type,_name,_radius_x,_radius_y,random 1 > 0.45] call btc_fnc_city_create;
- };
+ private ["_current","_type"];
+ _current = _locations select _i;
+
+ _type = gettext(_current >> "type");
+ if (_type in _cities) then {
+ private ["_position","_name","_position","_radius_x","_radius_y","_new_position","_area"];
+ _position = getarray(_current >> "position");
+ if (surfaceIsWater _position) then {
+ if !(_type isEqualTo "NameMarine") then {
+ private _church = nearestTerrainObjects [_position, ["CHURCH"], 470];
+ if (_church isEqualTo []) then {
+ _area = 50;
+ for "_i" from 0 to 3 do {
+ _new_position = [_position, 0, _area, 0.5, 0, -1, 0] call BIS_fnc_findSafePos;
+ if (count _new_position == 2) exitWith {_position = _new_position;};
+ _area = _area * 2;
+ };
+ } else {
+ _position = getPos (_church select 0);
+ };
+ };
+ };
+ _name = getText(_current >> "name");
+ _radius_x = getNumber(_current >> "RadiusA");
+ _radius_y = getNumber(_current >> "RadiusB");
+
+ if (btc_city_blacklist find _name >= 0) exitWith {};
+
+ /*
+ //if you want a safe area
+ if (_position distance getMarkerPos "YOUR_MARKER_AREA" < 500) exitWith {};
+ */
+
+ [_position,_type,_name,_radius_x,_radius_y,random 1 > 0.45] call btc_fnc_city_create;
+ };
};
if !(isNil "btc_custom_loc") then {
- {_x call btc_fnc_city_create} foreach btc_custom_loc;
+ {_x call btc_fnc_city_create} foreach btc_custom_loc;
};
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf
index d9963e49a..a3ff6ab54 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/set_clear.sqf
@@ -7,7 +7,7 @@ _city setVariable ["occupied",false];
if (_city getVariable ["marker",""] != "") then {(_city getVariable ["marker",""]) setMarkerColor "ColorGreen";};
if (btc_final_phase) then {
- btc_city_remaining = btc_city_remaining - [_city];
+ btc_city_remaining = btc_city_remaining - [_city];
};
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_player_side.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_player_side.sqf
index c57aec3ed..d4750d837 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_player_side.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/trigger_player_side.sqf
@@ -1,14 +1,14 @@
private ["_trigger","_radius_x","_radius_y","_city","_position","_has_en","_name","_type","_id"];
-_position = _this select 0;
-_radius_x = _this select 1;
-_radius_y = _this select 2;
-_city = _this select 3;
-_has_en = _this select 4;
-_name = _this select 5;
-_type = _this select 6;
-_id = _this select 7;
+_position = _this select 0;
+_radius_x = _this select 1;
+_radius_y = _this select 2;
+_city = _this select 3;
+_has_en = _this select 4;
+_name = _this select 5;
+_type = _this select 6;
+_id = _this select 7;
_trigger = createTrigger["EmptyDetector",_position];
_trigger setTriggerArea[(_radius_x+_radius_y) + btc_city_radius,(_radius_x+_radius_y) + btc_city_radius,0,false];
@@ -16,17 +16,17 @@ _trigger setTriggerActivation["ANYPLAYER","PRESENT",true];
_trigger setTriggerStatements [btc_p_trigger, format ["[%1] spawn btc_fnc_city_activate",_id], format ["[%1] spawn btc_fnc_city_de_activate",_id]];
_city setVariable ["trigger_player_side",_trigger];
-if (btc_debug) then {//_debug
- private ["_marker","_marke"];
- _marker = createmarker [format ["loc_%1",_id],_position];
- _marker setMarkerShape "ELLIPSE";
- _marker setMarkerBrush "SolidBorder";
- _marker setMarkerSize [(_radius_x+_radius_y) + btc_city_radius, (_radius_x+_radius_y) + btc_city_radius];
- _marker setMarkerAlpha 0.3;
- //_marker setmarkertype "mil_dot";
- if (_has_en) then {_marker setmarkercolor "colorRed";} else {_marker setmarkercolor "colorGreen";};
- //_marker setmarkeralpha 0.5;
- _marke = createmarker [format ["locn_%1",_id],_position];
- _marke setmarkertype "mil_dot";
- _marke setmarkertext format ["loc_%3 %1 %2 - [%4] - [%5] ",_name,_type,_id,_has_en, _city getVariable ["hasbeach", "empty"] ];
+if (btc_debug) then {//_debug
+ private ["_marker","_marke"];
+ _marker = createmarker [format ["loc_%1",_id],_position];
+ _marker setMarkerShape "ELLIPSE";
+ _marker setMarkerBrush "SolidBorder";
+ _marker setMarkerSize [(_radius_x+_radius_y) + btc_city_radius, (_radius_x+_radius_y) + btc_city_radius];
+ _marker setMarkerAlpha 0.3;
+ //_marker setmarkertype "mil_dot";
+ if (_has_en) then {_marker setmarkercolor "colorRed";} else {_marker setmarkercolor "colorGreen";};
+ //_marker setmarkeralpha 0.5;
+ _marke = createmarker [format ["locn_%1",_id],_position];
+ _marke setmarkertype "mil_dot";
+ _marke setmarkertext format ["loc_%3 %1 %2 - [%4] - [%5] ",_name,_type,_id,_has_en, _city getVariable ["hasbeach", "empty"] ];
};
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/CuratorCivPlaced_s.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/CuratorCivPlaced_s.sqf
index 8e091b5fd..30785a3db 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/CuratorCivPlaced_s.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/CuratorCivPlaced_s.sqf
@@ -1,4 +1,4 @@
(_this select 0) call btc_fnc_civ_unit_create;
-if (btc_debug_log) then {diag_log format ["Curator create civ : %1",(_this select 0)];};
\ No newline at end of file
+if (btc_debug_log) then {diag_log format ["Curator create civ : %1",(_this select 0)];};
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/addWP.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/addWP.sqf
index 3dda346b9..b3fe747eb 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/addWP.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/addWP.sqf
@@ -1,39 +1,30 @@
-private ["_group","_pos","_radius","_wp","_houses"];
+params ["_group", ["_pos", getpos leader param [0]] , ["_radius", 50]];
-_group = _this;
-
-_pos = getpos leader _group;
-_radius = 50;
-
-
-_wp = _group addWaypoint [_pos, 0];
+private _wp = _group addWaypoint [_pos, 0];
_wp setWaypointType "MOVE";
_wp setWaypointCompletionRadius 0;
_wp setWaypointSpeed "LIMITED";
_wp setWaypointBehaviour "SAFE";
-_houses = [_pos,_radius] call btc_fnc_getHouses;
+private _houses = [_pos,_radius] call btc_fnc_getHouses;
if (count _houses > 0) then {
- private ["_house"];
- _house = selectRandom _houses;
- [_group,_house] call btc_fnc_house_addWP_loop;
- _houses = _houses - [_house];
+ private _house = selectRandom _houses;
+ [_group,_house] call btc_fnc_house_addWP_loop;
+ _houses = _houses - [_house];
};
for "_i" from 1 to 4 do {
- private "_wp_pos";
- _wp_pos = [_pos, _radius] call btc_fnc_randomize_pos;
- _wp = _group addWaypoint [_wp_pos, 0];
- _wp setWaypointType "MOVE";
- _wp setWaypointCompletionRadius 0;
+ private _wp_pos = [_pos, _radius] call btc_fnc_randomize_pos;
+ _wp = _group addWaypoint [_wp_pos, 0];
+ _wp setWaypointType "MOVE";
+ _wp setWaypointCompletionRadius 0;
};
if (count _houses > 0) then {
- private ["_house"];
- _house = selectRandom _houses;
- [_group,_house] call btc_fnc_house_addWP_loop;
- _houses = _houses - [_house];
+ private _house = selectRandom _houses;
+ [_group,_house] call btc_fnc_house_addWP_loop;
+ _houses = _houses - [_house];
};
_wp = _group addWaypoint [_pos, 0];
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/add_drone.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/add_drone.sqf
new file mode 100644
index 000000000..7685f25fa
--- /dev/null
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/add_drone.sqf
@@ -0,0 +1,15 @@
+
+private _unit = _this select 0;
+
+_unit addMagazines [selectRandom btc_g_civs, 1];
+
+_unit addEventHandler ["Fired", {
+ if ((_this select 1) isEqualTo "Throw") then {
+ (_this select 0) removeEventHandler ["Fired", _thisEventHandler];
+ [_this select 0] joinSilent createGroup [civilian, true];
+ [{
+ (_this select 0) call btc_fnc_rep_add_eh;
+ [group (_this select 0)] call btc_fnc_civ_addWP;
+ }, [_this select 0], 20] call CBA_fnc_waitAndExecute;
+ };
+}];
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/add_grenade.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/add_grenade.sqf
index 813095460..7685f25fa 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/add_grenade.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/add_grenade.sqf
@@ -4,12 +4,12 @@ private _unit = _this select 0;
_unit addMagazines [selectRandom btc_g_civs, 1];
_unit addEventHandler ["Fired", {
- if ((_this select 1) isEqualTo "Throw") then {
- (_this select 0) removeEventHandler ["Fired", _thisEventHandler];
- [_this select 0] joinSilent createGroup [civilian, true];
- [{
- (_this select 0) call btc_fnc_rep_add_eh;
- (group (_this select 0)) call btc_fnc_civ_addWP;
- }, [_this select 0], 20] call CBA_fnc_waitAndExecute;
- };
+ if ((_this select 1) isEqualTo "Throw") then {
+ (_this select 0) removeEventHandler ["Fired", _thisEventHandler];
+ [_this select 0] joinSilent createGroup [civilian, true];
+ [{
+ (_this select 0) call btc_fnc_rep_add_eh;
+ [group (_this select 0)] call btc_fnc_civ_addWP;
+ }, [_this select 0], 20] call CBA_fnc_waitAndExecute;
+ };
}];
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/add_leaflets.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/add_leaflets.sqf
new file mode 100644
index 000000000..24b1e7c3f
--- /dev/null
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/add_leaflets.sqf
@@ -0,0 +1,19 @@
+
+params ["_player","_uav"];
+
+if !(_uav isKindOf "UAV_06_base_F") exitWith {};
+
+_uav addMagazine "1Rnd_Leaflets_West_F";
+if !("Bomb_Leaflets" in (_uav weaponsTurret [-1])) then {
+ _uav addWeapon "Bomb_Leaflets";
+};
+if (needReload _uav == 1) then {reload _uav};
+
+if ((_uav getVariable ["btc_leaflets_eh_added" , -1]) isEqualTo -1) then {
+ private _id_f = _uav addEventHandler ["Fired", btc_fnc_eh_leaflets];
+ _uav setVariable ["btc_leaflets_eh_added" , _id_f];
+
+ if (btc_debug) then {
+ systemChat format ["Add leaflets EventHandler ID: %1", _id_f];
+ };
+};
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/class.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/class.sqf
index 743a1c478..80a41608a 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/class.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/class.sqf
@@ -13,25 +13,25 @@ _allclass = _allclass select {getNumber(configfile >> "CfgVehicles" >> _x >> "sc
_factions = _factions apply {if !isClass(configFile >> "CfgFactionClasses" >> _x) then {"CIV_F"} else {_x};};
{
- private _faction = _x;
+ private _faction = _x;
- //Get all vehicles of the _faction selected
- private _allclass_f = _allclass select {(toUpper getText(configFile >> "cfgvehicles" >> _x >> "faction")) isEqualTo _faction};
+ //Get all vehicles of the _faction selected
+ private _allclass_f = _allclass select {(toUpper getText(configFile >> "cfgvehicles" >> _x >> "faction")) isEqualTo _faction};
- //Units
- _type_units append (_allclass_f select {_x isKindOf "Man"});
- if (_type_units isEqualTo []) then {_type_units append ["C_man_1","C_man_1_1_F","C_man_1_2_F","C_man_1_3_F","C_man_polo_1_F","C_man_polo_1_F_afro","C_man_polo_1_F_euro","C_man_polo_1_F_asia","C_man_polo_2_F","C_man_polo_2_F_afro","C_man_polo_2_F_euro","C_man_polo_2_F_asia","C_man_polo_3_F","C_man_polo_3_F_afro","C_man_polo_3_F_euro","C_man_polo_3_F_asia","C_man_polo_4_F","C_man_polo_4_F_afro","C_man_polo_4_F_euro","C_man_polo_4_F_asia","C_man_polo_5_F","C_man_polo_5_F_afro","C_man_polo_5_F_euro","C_man_polo_5_F_asia","C_man_polo_6_F","C_man_polo_6_F_afro","C_man_polo_6_F_euro","C_man_polo_6_F_asia","C_man_p_fugitive_F","C_man_p_fugitive_F_afro","C_man_p_fugitive_F_euro","C_man_p_fugitive_F_asia","C_man_p_beggar_F","C_man_p_beggar_F_afro","C_man_p_beggar_F_euro","C_man_p_beggar_F_asia","C_man_w_worker_F","C_man_hunter_1_F","C_Orestes","C_Nikos","C_Man_casual_4_F","C_Man_casual_5_F","C_Man_casual_6_F","C_Man_sport_1_F","C_Man_sport_2_F","C_Man_sport_3_F","C_Man_casual_1_F","C_Man_casual_2_F","C_Man_casual_3_F"]};
+ //Units
+ _type_units append (_allclass_f select {_x isKindOf "Man"});
+ if (_type_units isEqualTo []) then {_type_units append ["C_man_1","C_man_1_1_F","C_man_1_2_F","C_man_1_3_F","C_man_polo_1_F","C_man_polo_1_F_afro","C_man_polo_1_F_euro","C_man_polo_1_F_asia","C_man_polo_2_F","C_man_polo_2_F_afro","C_man_polo_2_F_euro","C_man_polo_2_F_asia","C_man_polo_3_F","C_man_polo_3_F_afro","C_man_polo_3_F_euro","C_man_polo_3_F_asia","C_man_polo_4_F","C_man_polo_4_F_afro","C_man_polo_4_F_euro","C_man_polo_4_F_asia","C_man_polo_5_F","C_man_polo_5_F_afro","C_man_polo_5_F_euro","C_man_polo_5_F_asia","C_man_polo_6_F","C_man_polo_6_F_afro","C_man_polo_6_F_euro","C_man_polo_6_F_asia","C_man_p_fugitive_F","C_man_p_fugitive_F_afro","C_man_p_fugitive_F_euro","C_man_p_fugitive_F_asia","C_man_p_beggar_F","C_man_p_beggar_F_afro","C_man_p_beggar_F_euro","C_man_p_beggar_F_asia","C_man_w_worker_F","C_man_hunter_1_F","C_Orestes","C_Nikos","C_Man_casual_4_F","C_Man_casual_5_F","C_Man_casual_6_F","C_Man_sport_1_F","C_Man_sport_2_F","C_Man_sport_3_F","C_Man_casual_1_F","C_Man_casual_2_F","C_Man_casual_3_F"]};
- //Vehicles
- _type_boats append (_allclass_f select {_x isKindOf "Ship"});
- if (_type_boats isEqualTo []) then {_type_boats append ["C_Rubberboat","C_Boat_Civil_01_F","C_Boat_Civil_01_rescue_F","C_Boat_Civil_01_police_F","C_Boat_Transport_02_F","C_Scooter_Transport_01_F"];};
- _type_veh append (_allclass_f select {(_x isKindOf "Car") || (_x isKindOf "Truck") || (_x isKindOf "Truck_F")});
- if (_type_veh isEqualTo []) then {_type_veh append ["C_Hatchback_01_F","C_SUV_01_F","C_Offroad_01_F","C_Van_01_transport_F","C_Van_01_box_F","C_Truck_02_transport_F","C_Truck_02_covered_F","C_Offroad_02_unarmed_F"]};
+ //Vehicles
+ _type_boats append (_allclass_f select {_x isKindOf "Ship"});
+ if (_type_boats isEqualTo []) then {_type_boats append ["C_Rubberboat","C_Boat_Civil_01_F","C_Boat_Civil_01_rescue_F","C_Boat_Civil_01_police_F","C_Boat_Transport_02_F","C_Scooter_Transport_01_F"];};
+ _type_veh append (_allclass_f select {(_x isKindOf "Car") || (_x isKindOf "Truck") || (_x isKindOf "Truck_F")});
+ if (_type_veh isEqualTo []) then {_type_veh append ["C_Hatchback_01_F","C_SUV_01_F","C_Offroad_01_F","C_Van_01_transport_F","C_Van_01_box_F","C_Truck_02_transport_F","C_Truck_02_covered_F","C_Offroad_02_unarmed_F"]};
} forEach _factions;
//Final filter unwanted units type
-_type_units = _type_units select {((_x find "_Driver_") isEqualTo -1) && ((_x find "_base") isEqualTo -1) && ((_x find "_unarmed_") isEqualTo -1) && ((_x find "_VR_") isEqualTo -1) && ((_x find "_pilot_") isEqualTo -1)};
-_type_veh = _type_veh select {((_x find "UAV") isEqualTo -1) && ((_x find "UGV") isEqualTo -1) && ((_x find "_Kart_") isEqualTo -1)};
+_type_units = _type_units select {((_x find "_Driver_") isEqualTo -1) && ((_x find "_base") isEqualTo -1) && ((_x find "_unarmed_") isEqualTo -1) && ((_x find "_VR_") isEqualTo -1) && ((_x find "_pilot_") isEqualTo -1)};
+_type_veh = _type_veh select {((_x find "UAV") isEqualTo -1) && ((_x find "UGV") isEqualTo -1) && ((_x find "_Kart_") isEqualTo -1)};
[_type_units,_type_boats,_type_veh]
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/create.sqf
index 522ca8deb..4ce01c93f 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/create.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/create.sqf
@@ -8,9 +8,9 @@ _pos = [];
switch (typeName _city) do
{
- case "ARRAY" :{_pos = _city;};
- case "STRING":{_pos = getMarkerPos _city;};
- case "OBJECT":{_pos = position _city;};
+ case "ARRAY" :{_pos = _city;};
+ case "STRING":{_pos = getMarkerPos _city;};
+ case "OBJECT":{_pos = position _city;};
};
_rpos = [_pos, _area] call btc_fnc_randomize_pos;
@@ -21,14 +21,14 @@ _group = createGroup civilian;
_group createUnit [_unit_type, _rpos, [], 0, "NONE"];
(leader _group) setpos _rpos;
-_group spawn btc_fnc_civ_addWP;
+[_group] spawn btc_fnc_civ_addWP;
_group setSpeedMode "LIMITED";
{_x call btc_fnc_civ_unit_create} foreach units _group;
if (BTC_debug_log) then {
- diag_log format ["BTC_fnc_civ_create: _this = %1 ; POS %2 UNITS N %3",_this,_pos,count units _group];
+ diag_log format ["BTC_fnc_civ_create: _this = %1 ; POS %2 UNITS N %3",_this,_pos,count units _group];
};
_group
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/evacuate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/evacuate.sqf
new file mode 100644
index 000000000..3d1fdbbdd
--- /dev/null
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/evacuate.sqf
@@ -0,0 +1,27 @@
+
+params ["_position", ["_position_evac", []]];
+
+private _civilians = (allUnits select {side _x isEqualTo civilian}) select {_x distance _position < 200};
+
+if (_position_evac isEqualTo []) then {
+ private _safe = (nearestTerrainObjects [_position, ["CHURCH","CHAPEL"], 400]);
+ if (_safe isEqualTo []) then {
+ _position_evac = [_position, 0, 500, 30, 0, 60 * (pi / 180), 0] call BIS_fnc_findSafePos;
+ } else {
+ private _safe_building = _safe select 0;
+ if ((_safe_building buildingPos -1) isEqualTo []) then {
+ _position_evac = _safe_building getPos [((boundingBox _safe_building) select 1 select 0) + 10, getDir _safe_building];
+ } else {
+ _position_evac = getPos _safe_building;
+ };
+ };
+};
+
+{
+ private _group = group _x;
+ while {(count (waypoints _group)) > 0} do {deleteWaypoint ((waypoints _group) select 0);};
+
+ [_group, _position_evac, 20] spawn btc_fnc_civ_addWP;
+} forEach _civilians;
+
+_civilians
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/get_grenade.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/get_grenade.sqf
index a1ed8ffcf..7ad0bcedd 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/get_grenade.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/get_grenade.sqf
@@ -11,18 +11,18 @@ _units = (_units select {side _x isEqualTo civilian});
if (_units isEqualTo []) exitWith {};
{
- if (btc_debug_log) then {diag_log format ["fnc_civ_get_grenade %1 - %2",_x,side _x];};
+ if (btc_debug_log) then {diag_log format ["fnc_civ_get_grenade %1 - %2",_x,side _x];};
- _x call btc_fnc_rep_remove_eh;
+ _x call btc_fnc_rep_remove_eh;
- [_x] call btc_fnc_civ_add_grenade;
+ [_x] call btc_fnc_civ_add_grenade;
- [_x] joinSilent createGroup [btc_enemy_side, true];
+ [_x] joinSilent createGroup [btc_enemy_side, true];
- (group _x) setVariable ["getWeapons",true];
+ (group _x) setVariable ["getWeapons",true];
- (group _x) setBehaviour "AWARE";
- private _wp = (group _x) addWaypoint [_pos, 10];
- _wp setWaypointType "GUARD";
- _wp setWaypointCombatMode "RED";
+ (group _x) setBehaviour "AWARE";
+ private _wp = (group _x) addWaypoint [_pos, 10];
+ _wp setWaypointType "GUARD";
+ _wp setWaypointCombatMode "RED";
} foreach [selectRandom _units];
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/get_weapons.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/get_weapons.sqf
index 1ce43e4cf..c045065a9 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/get_weapons.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/get_weapons.sqf
@@ -8,26 +8,26 @@ if (count _this > 2) then {_units = _this select 2;} else {_units = _pos nearEnt
_units = _units select {side _x isEqualTo civilian};
[[_units,_units apply {format ["amovp%1mstpsnonwnondnon",((animationState _x) select [5,3])]}], {
- {
- _x switchMove (_this select 1 select _foreachindex);
- } forEach (_this select 0);
+ {
+ _x switchMove (_this select 1 select _foreachindex);
+ } forEach (_this select 0);
}] remoteExec ["call", 0, false];
{
- private ["_wp"];
- if (btc_debug_log) then {diag_log format ["fnc_civ_get_weapons %1 - %2",_x,side _x];};
+ private ["_wp"];
+ if (btc_debug_log) then {diag_log format ["fnc_civ_get_weapons %1 - %2",_x,side _x];};
- _x call btc_fnc_rep_remove_eh;
+ _x call btc_fnc_rep_remove_eh;
- [_x] call btc_fnc_civ_add_weapons;
+ [_x] call btc_fnc_civ_add_weapons;
- [_x] joinSilent createGroup [btc_enemy_side, true];
+ [_x] joinSilent createGroup [btc_enemy_side, true];
- (group _x) setVariable ["getWeapons",true];
+ (group _x) setVariable ["getWeapons",true];
- (group _x) setBehaviour "AWARE";
- _wp = (group _x) addWaypoint [getpos _x, 0];
- _wp setWaypointType "GUARD";
- _wp setWaypointCombatMode "RED";
+ (group _x) setBehaviour "AWARE";
+ _wp = (group _x) addWaypoint [getpos _x, 0];
+ _wp setWaypointType "GUARD";
+ _wp setWaypointCombatMode "RED";
} foreach _units;
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/populate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/populate.sqf
index 810fee79d..163fa53f7 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/populate.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/populate.sqf
@@ -10,23 +10,23 @@ _n = _this select 2;
_pos = [];
switch (typeName _city) do {
- case "ARRAY" : {_pos = _city;};
- case "STRING": {_pos = getMarkerPos _city;};
- case "OBJECT": {_pos = position _city;};
+ case "ARRAY" : {_pos = _city;};
+ case "STRING": {_pos = getMarkerPos _city;};
+ case "OBJECT": {_pos = position _city;};
};
_houses = [];
for [{_i = 25},{_i < _area},{_i = _i + 50}] do {
- private "_hs";
- _hs = [[(_pos select 0) + _i,(_pos select 1) + _i,0],50] call btc_fnc_getHouses;
- _houses append _hs;
- _hs = [[(_pos select 0) + _i,(_pos select 1) - _i,0],50] call btc_fnc_getHouses;
- _houses append _hs;
- _hs = [[(_pos select 0) - _i,(_pos select 1) - _i,0],50] call btc_fnc_getHouses;
- _houses append _hs;
- _hs = [[(_pos select 0) - _i,(_pos select 1) + _i,0],50] call btc_fnc_getHouses;
- _houses append _hs;
+ private "_hs";
+ _hs = [[(_pos select 0) + _i,(_pos select 1) + _i,0],50] call btc_fnc_getHouses;
+ _houses append _hs;
+ _hs = [[(_pos select 0) + _i,(_pos select 1) - _i,0],50] call btc_fnc_getHouses;
+ _houses append _hs;
+ _hs = [[(_pos select 0) - _i,(_pos select 1) - _i,0],50] call btc_fnc_getHouses;
+ _houses append _hs;
+ _hs = [[(_pos select 0) - _i,(_pos select 1) + _i,0],50] call btc_fnc_getHouses;
+ _houses append _hs;
};
@@ -34,15 +34,16 @@ if (count _houses == 0) exitWith {};
for "_i" from 0 to _n do
{
- private ["_house","_unit_type"];
- if (count _houses == 0) exitWith {};
- _house = selectRandom _houses;
-
- _unit_type = selectRandom btc_civ_type_units;
-
- _group = createGroup civilian;
- _group createUnit [_unit_type, _house buildingPos 0, [], 0, "NONE"];
- _group spawn btc_fnc_civ_addWP;
- {_x call btc_fnc_civ_unit_create} foreach units _group;
- _houses = _houses - [_house];
+ private ["_house","_unit_type"];
+ if (count _houses == 0) exitWith {};
+ _house = selectRandom _houses;
+
+ _unit_type = selectRandom btc_civ_type_units;
+
+ _group = createGroup civilian;
+ _group createUnit [_unit_type, _house buildingPos 0, [], 0, "NONE"];
+ _group setVariable ["btc_data_inhouse", [_house buildingPos 0]];
+ [_group] spawn btc_fnc_civ_addWP;
+ {_x call btc_fnc_civ_unit_create} foreach units _group;
+ _houses = _houses - [_house];
};
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/traffic_add_WP.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/traffic_add_WP.sqf
index 77c84f105..230c6a6aa 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/traffic_add_WP.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/traffic_add_WP.sqf
@@ -12,27 +12,27 @@ _players = if (isMultiplayer) then {playableUnits} else {switchableUnits};
//Remove if too far from player
if ({_x distance _active_city < (_area/2) || _x distance leader _group < (_area/2)} count _players isEqualTo 0) exitWith {
- if (btc_debug_log) then {
- diag_log format ["TRAFFIC REMOVE ID: %1 (%3) POS: %2",_group getVariable "btc_traffic_id",getpos leader _group,typeof vehicle leader _group];
- };
- vehicle leader _group setFuel 0;
+ if (btc_debug_log) then {
+ diag_log format ["TRAFFIC REMOVE ID: %1 (%3) POS: %2",_group getVariable "btc_traffic_id",getpos leader _group,typeof vehicle leader _group];
+ };
+ vehicle leader _group setFuel 0;
};
//Sometimes the waypoints is completed but too far due to obstacle (water for island etc)
if ((leader _group) distance _end_city > 300) then {
- _noaccess pushBack _end_city;
- _tmp_area = _area - ((leader _group) distance _end_city) * 0.3 * count _noaccess;
- if (btc_debug) then {systemChat format ["TRAFFIC ID: %1 , count %2, tmp_area %3", _group getVariable "btc_traffic_id", count _noaccess, _tmp_area];};
+ _noaccess pushBack _end_city;
+ _tmp_area = _area - ((leader _group) distance _end_city) * 0.3 * count _noaccess;
+ if (btc_debug) then {systemChat format ["TRAFFIC ID: %1 , count %2, tmp_area %3", _group getVariable "btc_traffic_id", count _noaccess, _tmp_area];};
} else {
- _tmp_area = _area;
- _noaccess = [];
+ _tmp_area = _area;
+ _noaccess = [];
};
//Find a useful end city from the start city depending of vehicle type
if (_isboat) then {
- _useful = btc_city_all select {_x getVariable ["hasbeach",false]};
+ _useful = btc_city_all select {_x getVariable ["hasbeach",false]};
} else {
- _useful = btc_city_all select {_x getVariable ["type",""] != "NameMarine"};
+ _useful = btc_city_all select {_x getVariable ["type",""] != "NameMarine"};
};
_cities = _useful select {(_x distance _active_city < _tmp_area) && !(_x in _noaccess)};
//Choose a city to have the _active_city (where the player is) between the traffic (eg. leader _group) and the _end_city : leader _group ----> _active_city ----> _end_city
@@ -41,7 +41,7 @@ _cities = _cities select {_ang = _active_city getdir _x; (abs(_ang - _dirTo) min
//Check if _end_city has been found, if not take the closer city which is _useful
if (_cities isEqualTo []) then {
- _cities = [[[_active_city, leader _group] select (_active_city in _noaccess),_useful,false] call btc_fnc_find_closecity];
+ _cities = [[[_active_city, leader _group] select (_active_city in _noaccess),_useful,false] call btc_fnc_find_closecity];
};
_end_city = selectRandom _cities;
_group setVariable ["end_city",_end_city];
@@ -49,15 +49,15 @@ _group setVariable ["noaccess",_noaccess];
_pos = getPos _end_city;
if (_isboat) then {
- _pos = (selectBestPlaces [_pos,(_active_city getVariable ["RadiusX",0]) + (_active_city getVariable ["RadiusY",0]), "sea",10,1]) select 0 select 0;
- _pos = [_pos select 0, _pos select 1, 0];
+ _pos = (selectBestPlaces [_pos,(_active_city getVariable ["RadiusX",0]) + (_active_city getVariable ["RadiusY",0]), "sea",10,1]) select 0 select 0;
+ _pos = [_pos select 0, _pos select 1, 0];
};
//Add Waypoints
private ["_wp","_wp_1"];
while {(count (waypoints _group)) > 0} do {
- deleteWaypoint ((waypoints _group) select 0);
+ deleteWaypoint ((waypoints _group) select 0);
};
if ((vehicle leader _group) isKindOf "Air" || (vehicle leader _group) isKindOf "LandVehicle") then {(vehicle leader _group) setFuel 1;};
@@ -68,14 +68,14 @@ _wp setWaypointCompletionRadius 30;
_wp setWaypointStatements ["true", format ["_spawn = [group this,%1,%2] spawn btc_fnc_civ_traffic_add_WP;",_area,_isboat]];
if (btc_debug) then {
- if (!isNil {_group getVariable "btc_traffic_id"}) then {
- private "_marker";
- deleteMarker format ["btc_traffic_%1", _group getVariable "btc_traffic_id"];
- _marker = createmarker [format ["btc_traffic_%1", _group getVariable "btc_traffic_id"] , [(_pos select 0) + random 30,(_pos select 1) + random 30,0]];
- format ["btc_traffic_%1", _group getVariable "btc_traffic_id"] setmarkertype "mil_dot";
- format ["btc_traffic_%1", _group getVariable "btc_traffic_id"] setMarkerText format ["P %1", _group getVariable "btc_traffic_id"];
- format ["btc_traffic_%1", _group getVariable "btc_traffic_id"] setmarkerColor "ColorOrange";
- format ["btc_traffic_%1", _group getVariable "btc_traffic_id"] setMarkerSize [0.5, 0.5];
- diag_log text format ["TRAFFIC ID: %1 (%3) POS: %2",_group getVariable "btc_traffic_id",_pos,typeof vehicle leader _group];
- };
+ if (!isNil {_group getVariable "btc_traffic_id"}) then {
+ private "_marker";
+ deleteMarker format ["btc_traffic_%1", _group getVariable "btc_traffic_id"];
+ _marker = createmarker [format ["btc_traffic_%1", _group getVariable "btc_traffic_id"] , [(_pos select 0) + random 30,(_pos select 1) + random 30,0]];
+ format ["btc_traffic_%1", _group getVariable "btc_traffic_id"] setmarkertype "mil_dot";
+ format ["btc_traffic_%1", _group getVariable "btc_traffic_id"] setMarkerText format ["P %1", _group getVariable "btc_traffic_id"];
+ format ["btc_traffic_%1", _group getVariable "btc_traffic_id"] setmarkerColor "ColorOrange";
+ format ["btc_traffic_%1", _group getVariable "btc_traffic_id"] setMarkerSize [0.5, 0.5];
+ diag_log text format ["TRAFFIC ID: %1 (%3) POS: %2",_group getVariable "btc_traffic_id",_pos,typeof vehicle leader _group];
+ };
};
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/traffic_create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/traffic_create.sqf
index fbb514cf3..f5c9874c1 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/traffic_create.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/traffic_create.sqf
@@ -1,5 +1,5 @@
-private ["_city","_area","_cities","_useful","_veh_type","_group","_veh","_pos_iswater","_pos","_Spos","_1","_2","_3"];
+private ["_city","_area","_cities","_useful","_veh_type","_group","_veh","_pos_iswater","_pos","_Spos","_1","_2","_3","_4"];
_city = _this select 0;
_area = _this select 1;
@@ -9,29 +9,29 @@ if (isNil "btc_traffic_id") then {btc_traffic_id = 0;};
_cities = btc_city_all select {(_x distance _city < _area)};
_useful = _cities select {!(_x getVariable ["active",false])};
if (_useful isEqualTo []) then {
- while {_useful isEqualTo []} do {
- private "_pos";
- _pos = [getPos _city, _area, btc_p_sea] call btc_fnc_randomize_pos;
- if ({_x distance _pos < 500} count playableUnits isEqualTo 0) then {_useful pushBack _pos;};
- };
- _pos = selectRandom _useful;
+ while {_useful isEqualTo []} do {
+ private "_pos";
+ _pos = [getPos _city, _area, btc_p_sea] call btc_fnc_randomize_pos;
+ if ({_x distance _pos < 500} count playableUnits isEqualTo 0) then {_useful pushBack _pos;};
+ };
+ _pos = selectRandom _useful;
} else {
- _pos = getPos(selectRandom _useful);
+ _pos = getPos(selectRandom _useful);
};
if ((_pos nearRoads 200) isEqualTo []) then {
- _Spos = [_pos, 0, 500, 13, [0,1] select btc_p_sea, 60 * (pi / 180), 0] call BIS_fnc_findSafePos;
- _Spos = [_Spos select 0, _Spos select 1, 0];
- _pos_iswater = (surfaceIsWater _Spos);
- if (_pos_iswater) then {
- _veh_type = selectRandom btc_civ_type_boats;
- } else {
- _veh_type = selectRandom btc_civ_type_veh;
- };
+ _Spos = [_pos, 0, 500, 13, [0,1] select btc_p_sea, 60 * (pi / 180), 0] call BIS_fnc_findSafePos;
+ _Spos = [_Spos select 0, _Spos select 1, 0];
+ _pos_iswater = (surfaceIsWater _Spos);
+ if (_pos_iswater) then {
+ _veh_type = selectRandom btc_civ_type_boats;
+ } else {
+ _veh_type = selectRandom btc_civ_type_veh;
+ };
} else {
- _Spos = getPos (selectRandom (_pos nearRoads 200));
- _pos_iswater = false;
- _veh_type = selectRandom btc_civ_type_veh;
+ _Spos = getPos (selectRandom (_pos nearRoads 200));
+ _pos_iswater = false;
+ _veh_type = selectRandom btc_civ_type_veh;
};
_veh = createVehicle [_veh_type, _Spos, [], 0, "FLY"];
@@ -53,8 +53,7 @@ _veh setVariable ["driver", _group];
_1 = _veh addEventHandler ["HandleDamage", {if ((_this select 2) > 0.1) then {_this call btc_fnc_civ_traffic_eh}}];
_2 = _veh addEventHandler ["Fuel", {_this call btc_fnc_civ_traffic_eh}];
_3 = _veh addEventHandler ["GetOut", {_this call btc_fnc_civ_traffic_eh}];
-//_4 = (leader _group) addEventHandler ["HandleDamage", {_this call btc_fnc_civ_traffic_eh}];
-//_5 = (leader _group) addEventHandler ["Killed", {_this call btc_fnc_civ_traffic_eh}];
+_4 = _veh addEventHandler ["HandleDamage", btc_fnc_rep_hd];
+_veh setVariable ["eh", [_1,_2,_3,_4]];
-_veh setVariable ["eh", [_1,_2,_3/*,4,5*/]];
[_group,_area,_pos_iswater] call btc_fnc_civ_traffic_add_WP;
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/traffic_eh.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/traffic_eh.sqf
index 068251a38..6458687b4 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/traffic_eh.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/traffic_eh.sqf
@@ -3,8 +3,8 @@
//if (count _this > 4 && {!((_this select 1) isEqualTo "engine")}) exitWith {};
private _veh = _this select 0;
-if (btc_debug_log) then {
- diag_log format ["EH TRAFFIC ID: %1 veh: %2 driver: %3 pos_veh: %4",(_veh getVariable ["driver",_veh]) getVariable "btc_traffic_id", _veh,_veh getVariable ["driver",_veh], getPos _veh];
+if (btc_debug_log) then {
+ diag_log format ["EH TRAFFIC ID: %1 veh: %2 driver: %3 pos_veh: %4",(_veh getVariable ["driver",_veh]) getVariable "btc_traffic_id", _veh,_veh getVariable ["driver",_veh], getPos _veh];
};
_veh call btc_fnc_civ_traffic_eh_remove;
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/traffic_eh_remove.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/traffic_eh_remove.sqf
index 3fc388312..24171b745 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/traffic_eh_remove.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/traffic_eh_remove.sqf
@@ -5,4 +5,5 @@ private "_data";
_data = _this getVariable "eh";
_this removeEventHandler ["HandleDamage", (_data select 0)];
_this removeEventHandler ["Fuel", (_data select 1)];
-_this removeEventHandler ["GetOut", (_data select 2)];
\ No newline at end of file
+_this removeEventHandler ["GetOut", (_data select 2)];
+_this removeEventHandler ["HandleDamage", (_data select 3)];
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/check_los.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/check_los.sqf
index d329df989..26f325086 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/check_los.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/check_los.sqf
@@ -13,10 +13,10 @@ _ang = abs (_dirTo - _atan);
if ((_ang > 120) && (_ang < 240)) then {_can_see = true;};
if (_can_see) then
{
- _eyeu = eyepos _unit;
- _eyet = eyepos _target;
- _terr = terrainintersectasl [_eyeu, _eyet];
- _int = lineintersects [_eyeu, _eyet];
- if (_int || _terr) then {_can_see = false;};
+ _eyeu = eyepos _unit;
+ _eyet = eyepos _target;
+ _terr = terrainintersectasl [_eyeu, _eyet];
+ _int = lineintersects [_eyeu, _eyet];
+ if (_int || _terr) then {_can_see = false;};
};
_can_see
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/clean_up.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/clean_up.sqf
index 7e4276f42..b803459b9 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/clean_up.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/clean_up.sqf
@@ -1,11 +1,11 @@
{
- private _obj = _x;
- if (({_x distance _obj < 150} count playableUnits) == 0) then {deleteVehicle _obj};
+ private _obj = _x;
+ if (({_x distance _obj < 150} count playableUnits) == 0) then {deleteVehicle _obj};
} foreach ((allMissionObjects "groundweaponholder") select {!(_x getVariable ["no_cache",false])});
{
- private _dead = _x;
- if (({_x distance _dead < 300} count playableUnits) == 0 && isNil {_dead getVariable "btc_dont_delete"}) then {deleteVehicle _dead};
+ private _dead = _x;
+ if (({_x distance _dead < 300} count playableUnits) == 0 && isNil {_dead getVariable "btc_dont_delete"}) then {deleteVehicle _dead};
} foreach alldead;
{
- if ({Alive _x} count units _x == 0) then {deleteGroup _x;};
+ if ({Alive _x} count units _x == 0) then {deleteGroup _x;};
} foreach allGroups;
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/create_attachto.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/create_attachto.sqf
index 9c4ea6679..9fc17d3b1 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/create_attachto.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/create_attachto.sqf
@@ -13,26 +13,26 @@ _maxWidth_box = abs ((_p2 select 0) - (_p1 select 0));
_height_weapon = (boundingBoxReal _holder select 1 select 2) - (boundingCenter _holder select 2);
switch (_pos_type) do {
- case "TOP": {
- _holder attachTo [_object, [0, 0, _height_box + _height_weapon]];
- _y = random 180; _p = 0; _r = 0;
- };
- case "FRONT": {
- _holder attachTo [_object, [- _maxWidth_box/6, 0, -0.1]];
- _y = random [-20,0,20]; _p = random [-20,0,20]; _r = 255;
- };
- case "CORNER_L": {
- _holder attachTo [_object, [- _maxWidth_box/6.5, 0, -0.1]];
- _y = 40; _p = random [-10,0,10]; _r = 255;
- };
- case "CORNER_R": {
- _holder attachTo [_object, [- _maxWidth_box/8.5, 0, -0.1]];
- _y = -30; _p = random [-10,0,10]; _r = 255;
- };
- default {
- _holder attachTo [_object, [0, 0, _height_box + _height_weapon]];
- _y = random 180; _p = 0; _r = 0;
- };
+ case "TOP": {
+ _holder attachTo [_object, [0, 0, _height_box + _height_weapon]];
+ _y = random 180; _p = 0; _r = 0;
+ };
+ case "FRONT": {
+ _holder attachTo [_object, [- _maxWidth_box/6, 0, -0.1]];
+ _y = random [-20,0,20]; _p = random [-20,0,20]; _r = 255;
+ };
+ case "CORNER_L": {
+ _holder attachTo [_object, [- _maxWidth_box/6.5, 0, -0.1]];
+ _y = 40; _p = random [-10,0,10]; _r = 255;
+ };
+ case "CORNER_R": {
+ _holder attachTo [_object, [- _maxWidth_box/8.5, 0, -0.1]];
+ _y = -30; _p = random [-10,0,10]; _r = 255;
+ };
+ default {
+ _holder attachTo [_object, [0, 0, _height_box + _height_weapon]];
+ _y = random 180; _p = 0; _r = 0;
+ };
};
_holder setVectorDirAndUp [[ sin _y * cos _p,cos _y * cos _p,sin _p],[[ sin _r,-sin _p,cos _r * cos _p],-_y] call BIS_fnc_rotateVector2D];
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/create_composition.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/create_composition.sqf
index d99cc8f7b..48d506fdf 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/create_composition.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/create_composition.sqf
@@ -1,25 +1,19 @@
-private ["_pos","_setdir","_array","_type","_dir","_rel_pos","_rel_x","_rel_y","_rel_z","_pos_z","_pos_x","_pos_y","_obj","_pos_obj"];
+params ["_pos", "_setdir", "_array"];
+_pos params ["_pos_x", "_pos_y", ["_pos_z", 0]];
-_pos = _this select 0;
-//// Direction parameter is align with compass \\\\
-_setdir = -(_this select 1);
-_array = _this select 2;
-_pos_x = _pos select 0;
-_pos_y = _pos select 1;
-_pos_z = 0;if (count _pos > 2) then {_pos_z = _pos select 2;};
_array apply {
- _type = _x select 0;
- //// Determine direction function of setdir \\\\
- _dir = ((_x select 1) - _setdir);
- _rel_pos = _x select 2;
- _rel_x = _rel_pos select 0;
- _rel_y = _rel_pos select 1;
- _rel_z = _rel_pos select 2;
- //// Determine position function of setdir \\\\
- _pos_obj = [(_pos_x + _rel_x*cos(_setdir) - _rel_y*sin(_setdir)),(_pos_y + _rel_y*cos(_setdir) + _rel_x*sin(_setdir)),(_pos_z + _rel_z)];
- _obj = createVehicle [_type, _pos_obj, [], 0, "CAN_COLLIDE"];
- _obj setDir _dir;
- _obj setPos _pos_obj;
- _obj;
+ _x params ["_type", "_dir", "_rel_pos"];
+ _rel_pos params ["_rel_x", "_rel_y", ["_rel_z", 0]];
+
+ //// Determine position function of setdir \\\\
+ private _final = [_pos_x + _rel_x*cos(_setdir) - _rel_y*sin(- _setdir), _pos_y + _rel_y*cos(_setdir) + _rel_x*sin(- _setdir)];
+ _final pushBack (_pos_z + _rel_z + getTerrainHeightASL _final);
+ private _obj = createVehicle [_type, ASLToATL _final, [], 0, "CAN_COLLIDE"];
+ //// Determine direction function of setdir \\\\
+ _obj setDir (_dir + _setdir);
+
+ _obj setVectorUp surfaceNormal position _obj;
+ _obj setPosWorld getPosWorld _obj;
+ _obj;
};
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/delete.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/delete.sqf
index e97fe8a8c..6721f2866 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/delete.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/delete.sqf
@@ -1,39 +1,41 @@
// [marker array], [object array],[fx object array (test_EmptyObjectForSmoke)] , [group array]
{
- deletemarker _x;
+ deletemarker _x;
+ //remove JIP remoteExec
+ remoteExec ["", _x];
} foreach (_this select 0);
{
- private _object = _x;
- [{
- params ["_args", "_id"];
- if ({_x distance _args < 1000} count playableUnits == 0) then {
- [_id] call CBA_fnc_removePerFrameHandler;
- deleteVehicle _args;
- };
- } , 5, _object] call CBA_fnc_addPerFrameHandler;
+ private _object = _x;
+ [{
+ params ["_args", "_id"];
+ if ({_x distance _args < 1000} count playableUnits == 0) then {
+ [_id] call CBA_fnc_removePerFrameHandler;
+ deleteVehicle _args;
+ };
+ } , 5, _object] call CBA_fnc_addPerFrameHandler;
} forEach (_this select 1);
{
- private _fx = _x;
- [{
- params ["_args", "_id"];
- if ({_x distance _args < 1000} count playableUnits == 0) then {
- [_id] call CBA_fnc_removePerFrameHandler;
- _args call btc_fnc_deleteTestObj;
- };
- } , 5, _fx] call CBA_fnc_addPerFrameHandler;
+ private _fx = _x;
+ [{
+ params ["_args", "_id"];
+ if ({_x distance _args < 1000} count playableUnits == 0) then {
+ [_id] call CBA_fnc_removePerFrameHandler;
+ _args call btc_fnc_deleteTestObj;
+ };
+ } , 5, _fx] call CBA_fnc_addPerFrameHandler;
} forEach (_this select 2);
{
- private _group = _x;
- [{
- params ["_args", "_id"];
- if ({_x distance leader _args < 1000} count playableUnits == 0) then {
- [_id] call CBA_fnc_removePerFrameHandler;
- {deleteVehicle _x} foreach units _args;
- [_args] call btc_fnc_deletegroup;
- };
- } , 5, _group] call CBA_fnc_addPerFrameHandler;
-} forEach (_this select 3);
\ No newline at end of file
+ private _group = _x;
+ [{
+ params ["_args", "_id"];
+ if ({_x distance leader _args < 1000} count playableUnits == 0) then {
+ [_id] call CBA_fnc_removePerFrameHandler;
+ {deleteVehicle _x} foreach units _args;
+ [_args] call btc_fnc_deletegroup;
+ };
+ } , 5, _group] call CBA_fnc_addPerFrameHandler;
+} forEach (_this select 3);
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/deleteTestObj.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/deleteTestObj.sqf
index 91331e0f0..60d6a98c6 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/deleteTestObj.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/deleteTestObj.sqf
@@ -1,11 +1,11 @@
_this addMPEventHandler ["MPKilled", {
- _this = _this select 0;
- {
- deleteVehicle _x;
- } forEach (_this getVariable ["effects", []]);
- if (isServer) then {
- deleteVehicle _this;
- };
- }];
+ _this = _this select 0;
+ {
+ deleteVehicle _x;
+ } forEach (_this getVariable ["effects", []]);
+ if (isServer) then {
+ deleteVehicle _this;
+ };
+ }];
_this setDamage 1;
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/deletegroup.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/deletegroup.sqf
index 69783c5e3..27f1aa4a2 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/deletegroup.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/deletegroup.sqf
@@ -1,8 +1,8 @@
//Check group locality
if (local (_this select 0)) then {
- deleteGroup (_this select 0);
+ deleteGroup (_this select 0);
} else {
- //DeleteGroup where is local
- (_this select 0) remoteExec ["deleteGroup", groupOwner (_this select 0)];
+ //DeleteGroup where is local
+ (_this select 0) remoteExec ["deleteGroup", groupOwner (_this select 0)];
};
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/end_mission.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/end_mission.sqf
index b7eba6736..f1dbcebed 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/end_mission.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/end_mission.sqf
@@ -1,9 +1,8 @@
0 call btc_fnc_task_set_done;
-hint "All the hideouts are destroyed, finally the Oplitas has been defeated! Mission accomplished";
-
+hint (localize "STR_BTC_HAM_O_COMMON_ENDMISSION"); //All the hideouts are destroyed, finally the Oplitas has been defeated! Mission accomplished
while {true} do
{
- hintSilent "All the hideouts are destroyed, finally the Oplitas has been defeated! Mission accomplished";
- sleep 1;
-};
\ No newline at end of file
+ hintSilent (localize "STR_BTC_HAM_O_COMMON_ENDMISSION"); //All the hideouts are destroyed, finally the Oplitas has been defeated! Mission accomplished
+ sleep 1;
+};
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/final_phase.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/final_phase.sqf
index 0653de0ca..95e0b3a4d 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/final_phase.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/final_phase.sqf
@@ -10,18 +10,18 @@ btc_final_phase = true;
btc_city_remaining = [];
{
- if (_x getVariable ["type",""] != "NameMarine") then {
- if (_x getVariable ["marker",""] != "") then {deleteMarker (_x getVariable ["marker",""]);};
- _radius_x = _x getVariable ["RadiusX",500];
- _radius_y = _x getVariable ["RadiusY",500];
- _marker = createmarker [format ["city_%1",position _x],position _x];
- _marker setMarkerShape "ELLIPSE";
- _marker setMarkerBrush "SolidBorder";
- _marker setMarkerSize [(_radius_x+_radius_y), (_radius_x+_radius_y)];
- _marker setMarkerAlpha 0.3;
- if (_x getVariable ["occupied",false]) then {_marker setmarkercolor "colorRed";btc_city_remaining pushBack _x;} else {_marker setmarkercolor "colorGreen";_marker setMarkerAlpha 0;};
- _x setVariable ["marker",_marker];
- };
+ if (_x getVariable ["type",""] != "NameMarine") then {
+ if (_x getVariable ["marker",""] != "") then {deleteMarker (_x getVariable ["marker",""]);};
+ _radius_x = _x getVariable ["RadiusX",500];
+ _radius_y = _x getVariable ["RadiusY",500];
+ _marker = createmarker [format ["city_%1",position _x],position _x];
+ _marker setMarkerShape "ELLIPSE";
+ _marker setMarkerBrush "SolidBorder";
+ _marker setMarkerSize [(_radius_x+_radius_y), (_radius_x+_radius_y)];
+ _marker setMarkerAlpha 0.3;
+ if (_x getVariable ["occupied",false]) then {_marker setmarkercolor "colorRed";btc_city_remaining pushBack _x;} else {_marker setmarkercolor "colorGreen";_marker setMarkerAlpha 0;};
+ _x setVariable ["marker",_marker];
+ };
} foreach btc_city_all;
waitUntil {sleep 15; (btc_city_remaining isEqualTo [])};
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/find_closecity.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/find_closecity.sqf
index c8e9671e8..27832d1cc 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/find_closecity.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/find_closecity.sqf
@@ -5,9 +5,9 @@ _obj = _this select 0;
_array = _this select 1;
if (_this select 2) then {
- _btc_city_all_distance = _array select {!(_x getVariable ["occupied",false])};
+ _btc_city_all_distance = _array select {!(_x getVariable ["occupied",false])};
} else {
- _btc_city_all_distance = _array;
+ _btc_city_all_distance = _array;
};
if (_btc_city_all_distance isEqualTo []) exitWith {[]};
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/find_veh_with_turret.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/find_veh_with_turret.sqf
index 837b9e896..8020a1ea8 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/find_veh_with_turret.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/find_veh_with_turret.sqf
@@ -2,23 +2,23 @@
private ["_veh_array"];
if ((_this select 0) isEqualTypeAll objNull) then {
- _veh_array = (_this select 0) apply {typeOf _x};
+ _veh_array = (_this select 0) apply {typeOf _x};
} else {
- _veh_array = _this select 0;
+ _veh_array = _this select 0;
};
private _veh_with_turret = [];
{
- private _wps = [];
- private _type = _x;
- {
- _wps append (([_type,_x] call btc_fnc_log_getconfigmagazines));
- } forEach [[-1], [0], [0,0], [0,1], [1], [2], [0,2]];
- _wps = _wps - (_this select 1);
+ private _wps = [];
+ private _type = _x;
+ {
+ _wps append (([_type,_x] call btc_fnc_log_getconfigmagazines));
+ } forEach [[-1], [0], [0,0], [0,1], [1], [2], [0,2]];
+ _wps = _wps - (_this select 1);
- if !(_wps isEqualTo []) then {
- _veh_with_turret pushBackUnique _x;
- };
+ if !(_wps isEqualTo []) then {
+ _veh_with_turret pushBackUnique _x;
+ };
} forEach _veh_array;
_veh_with_turret
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/findposoutsiderock.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/findposoutsiderock.sqf
index 4db662186..4cbb2ceba 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/findposoutsiderock.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/findposoutsiderock.sqf
@@ -7,29 +7,29 @@ if (_objects isEqualTo []) exitWith {_rpos};
private _object = _objects select 0;
if (_object in nearestTerrainObjects [_object, ["HIDE", "ROCK", "ROCKS"], 1]) then {
- _roads = _rpos nearRoads 100;
- if (_roads isEqualTo []) then {
- _rpos = [_rpos,5,50,10,false] call btc_fnc_findsafepos;
- } else {
- _rpos = getPos (_roads select 0);
- };
+ _roads = _rpos nearRoads 100;
+ if (_roads isEqualTo []) then {
+ _rpos = [_rpos,5,50,10,false] call btc_fnc_findsafepos;
+ } else {
+ _rpos = getPos (_roads select 0);
+ };
};
if (btc_debug_log) then {
- _objects = lineIntersectsObjs [[_rpos select 0, _rpos select 1, (getTerrainHeightASL _rpos) + 1], [_rpos select 0, _rpos select 1, (getTerrainHeightASL _rpos) + 100], objNull, objNull, false, 16];
- if !(_objects isEqualTo []) then {
- _object = _objects select 0;
- if (_object in nearestTerrainObjects [_object, ["HIDE", "ROCK", "ROCKS"], 1]) then {
- diag_log format ["FIND POS OUTSIDE ROCK: POS %1 Still inside rock", _rpos];
- if (btc_debug) then {
- systemChat "FIND POS OUTSIDE ROCK: Still inside rock";
- private _marker = createmarker [format ["btc_inrock_%1", _rpos], _rpos];
- _marker setmarkertype "mil_unknown";
- _marker setMarkerText "In rock";
- _marker setMarkerSize [0.5, 0.5];
- };
- };
- };
+ _objects = lineIntersectsObjs [[_rpos select 0, _rpos select 1, (getTerrainHeightASL _rpos) + 1], [_rpos select 0, _rpos select 1, (getTerrainHeightASL _rpos) + 100], objNull, objNull, false, 16];
+ if !(_objects isEqualTo []) then {
+ _object = _objects select 0;
+ if (_object in nearestTerrainObjects [_object, ["HIDE", "ROCK", "ROCKS"], 1]) then {
+ diag_log format ["FIND POS OUTSIDE ROCK: POS %1 Still inside rock", _rpos];
+ if (btc_debug) then {
+ systemChat "FIND POS OUTSIDE ROCK: Still inside rock";
+ private _marker = createmarker [format ["btc_inrock_%1", _rpos], _rpos];
+ _marker setmarkertype "mil_unknown";
+ _marker setMarkerText "In rock";
+ _marker setMarkerSize [0.5, 0.5];
+ };
+ };
+ };
};
_rpos
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/findsafepos.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/findsafepos.sqf
index 7581a2965..63a02e679 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/findsafepos.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/findsafepos.sqf
@@ -8,8 +8,8 @@ _objdist = _this select 3;
_allow_water = _this select 4;
for "_i" from 0 to 4 do {
- _return_pos = [_check_pos, _mindist, _random_area, _objdist, [0,1] select _allow_water, 60 * (pi / 180), 0] call BIS_fnc_findSafePos;
- if (count _return_pos == 2) exitWith {_return_pos = [_return_pos select 0, _return_pos select 1, 0];};
- _random_area = _random_area * 1.5;
+ _return_pos = [_check_pos, _mindist, _random_area, _objdist, [0,1] select _allow_water, 60 * (pi / 180), 0] call BIS_fnc_findSafePos;
+ if (count _return_pos == 2) exitWith {_return_pos = [_return_pos select 0, _return_pos select 1, 0];};
+ _random_area = _random_area * 1.5;
};
_return_pos
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/get_cardinal.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/get_cardinal.sqf
index 4a251011d..9b9098663 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/get_cardinal.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/get_cardinal.sqf
@@ -9,13 +9,13 @@ _card = "";
switch (true) do
{
- case (_n > 345 || _n <= 15) : {_card = "N";};
- case (_n > 15 && _n <= 75) : {_card = "NE";};
- case (_n > 75 && _n <= 105) : {_card = "E";};
- case (_n > 105 && _n <= 165) : {_card = "SE";};
- case (_n > 165 && _n <= 195) : {_card = "S";};
- case (_n > 195 && _n <= 255) : {_card = "SW";};
- case (_n > 255 && _n <= 285) : {_card = "W";};
- case (_n > 285 && _n <= 345) : {_card = "NW";};
+ case (_n > 345 || _n <= 15) : {_card = "N";};
+ case (_n > 15 && _n <= 75) : {_card = "NE";};
+ case (_n > 75 && _n <= 105) : {_card = "E";};
+ case (_n > 105 && _n <= 165) : {_card = "SE";};
+ case (_n > 165 && _n <= 195) : {_card = "S";};
+ case (_n > 195 && _n <= 255) : {_card = "SW";};
+ case (_n > 255 && _n <= 285) : {_card = "W";};
+ case (_n > 285 && _n <= 345) : {_card = "NW";};
};
_card
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/get_class.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/get_class.sqf
index 9ceca428e..0faef05c0 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/get_class.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/get_class.sqf
@@ -10,32 +10,32 @@ private _alldlc = [];
// Get factions and store it if new faction are found
{
- // Get faction of the vehicle and store it if is a new faction
- private _index = _allfaction pushBackUnique toUpper getText(configfile >> "CfgVehicles" >> _x >> "faction");
-
- //If new get the side and author name and dlc name
- if (_index > -1) then {
- _allside pushBack getNumber(configfile >> "CfgVehicles" >> _x >> "side");
- _allauthor pushBack getText(configfile >> "CfgVehicles" >> _x >> "author");
- private _dlc = getText(configfile >> "CfgVehicles" >> _x >> "dlc");
- if (_dlc isEqualTo "") then {
- if ((_allauthor select _index) isEqualTo "Bohemia Interactive") then {
- //If is BI check if it is really BI, some mod don't change the author
- private _mod_folder = getText(configfile >> "CfgFactionClasses" >> _allfaction select _index >> "icon") select [if ((getText(configfile >> "CfgFactionClasses" >> _allfaction select _index >> "icon") select [0,1]) isEqualTo "\") then {1} else {0}];
- private _mod = _mod_folder select [0, _mod_folder find "\"];
- if !(_mod isEqualTo "a3") then {_dlc = (_allfaction select _index) select [0, (_allfaction select _index) find "_"];};
- } else {
- _dlc = (_allfaction select _index) select [0, (_allfaction select _index) find "_"];
- };
- };
- _alldlc pushBack _dlc;
- };
+ // Get faction of the vehicle and store it if is a new faction
+ private _index = _allfaction pushBackUnique toUpper getText(configfile >> "CfgVehicles" >> _x >> "faction");
+
+ //If new get the side and author name and dlc name
+ if (_index > -1) then {
+ _allside pushBack getNumber(configfile >> "CfgVehicles" >> _x >> "side");
+ _allauthor pushBack getText(configfile >> "CfgVehicles" >> _x >> "author");
+ private _dlc = getText(configfile >> "CfgVehicles" >> _x >> "dlc");
+ if (_dlc isEqualTo "") then {
+ if ((_allauthor select _index) isEqualTo "Bohemia Interactive") then {
+ //If is BI check if it is really BI, some mod don't change the author
+ private _mod_folder = getText(configfile >> "CfgFactionClasses" >> _allfaction select _index >> "icon") select [if ((getText(configfile >> "CfgFactionClasses" >> _allfaction select _index >> "icon") select [0,1]) isEqualTo "\") then {1} else {0}];
+ private _mod = _mod_folder select [0, _mod_folder find "\"];
+ if !(_mod isEqualTo "a3") then {_dlc = (_allfaction select _index) select [0, (_allfaction select _index) find "_"];};
+ } else {
+ _dlc = (_allfaction select _index) select [0, (_allfaction select _index) find "_"];
+ };
+ };
+ _alldlc pushBack _dlc;
+ };
} forEach _allvehicles;
//Create an array of all information get
private _all = [];
{
- _all pushBack [ _alldlc select _foreachindex, _x, _allside select _foreachindex, _allauthor select _foreachindex];
+ _all pushBack [ _alldlc select _foreachindex, _x, _allside select _foreachindex, _allauthor select _foreachindex];
} forEach _allfaction;
//Select faction depending on side CIV or Enemy
@@ -49,7 +49,7 @@ _allauthor = [];
{_allauthor pushBackUnique _x} forEach (_all apply {_x select 0});
private _values = [];
for "_i" from 0 to (count _all) - 1 do {
- _values pushBack _i;
+ _values pushBack _i;
};
_texts = _values apply {Format ["%1 -%2",_x,_texts select _x]};
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/house_addWP.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/house_addWP.sqf
index b7c05e8be..ea39bd314 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/house_addWP.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/house_addWP.sqf
@@ -1,12 +1,9 @@
-private ["_group","_house","_wp"];
+params ["_group","_house"];
-_group = _this select 0;
-_house = _this select 1;
+private _allpositions = [_group,_house] call btc_fnc_house_addWP_loop;
-[_group,_house] call btc_fnc_house_addWP_loop;
-
-_wp = _group addWaypoint [getPos _house, 0];
+private _wp = _group addWaypoint [_allpositions select 0, 0.2];
_wp setWaypointType "CYCLE";
_wp waypointAttachObject _house;
_wp setWaypointHousePosition 0;
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/house_addWP_loop.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/house_addWP_loop.sqf
index 50ea5fe0a..a6547814c 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/house_addWP_loop.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/house_addWP_loop.sqf
@@ -1,16 +1,19 @@
-private ["_group","_house","_wp","_allpositions"];
+params ["_group","_house"];
-_group = _this select 0;
-_house = _this select 1;
+private _allpositions = _house buildingPos -1;
+private _copyallpositions = +_allpositions;
-_allpositions = _house buildingPos -1;
if (btc_debug_log) then {diag_log format ["setWaypoint : count all pos %1 in %2 ", count _allpositions,_house];};
{
- _wp = _group addWaypoint [_x, 0];
- _wp setWaypointType "MOVE";
- _wp setWaypointCompletionRadius 0;
- _wp waypointAttachObject _house;
- _wp setWaypointHousePosition _foreachindex;
- _wp setWaypointTimeout [15, 20, 30];
-} forEach _allpositions;
\ No newline at end of file
+ private _index = _copyallpositions find selectRandom(_copyallpositions);
+
+ private _wp = _group addWaypoint [_copyallpositions deleteAt _index, 0.2];
+ _wp setWaypointType "MOVE";
+ _wp setWaypointCompletionRadius 0;
+ _wp waypointAttachObject _house;
+ _wp setWaypointHousePosition _index;
+ _wp setWaypointTimeout [15, 20, 30];
+} forEach _allpositions;
+
+_allpositions
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/intro.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/intro.sqf
index f16288cee..5365a0cfb 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/intro.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/intro.sqf
@@ -4,14 +4,14 @@ private ["_color","_array"];
_color = [1,0.5,0,1];
_array = [
-['\A3\ui_f\data\igui\cfg\simpleTasks\types\run_ca.paa',_color, getPos btc_gear_object, 1.1, 1.1, 0, "Arsenal/Re-deploy", 1],
+['\A3\ui_f\data\igui\cfg\simpleTasks\types\run_ca.paa',_color, getPos btc_gear_object, 1.1, 1.1, 0, (localize "STR_BTC_HAM_INTRO_ARSENAL_REDEPLOY"), 1], //Arsenal/Re-deploy
['\A3\Ui_f\data\Logos\a_64_ca.paa',_color, [getPos btc_gear_object select 0,getPos btc_gear_object select 1,(getPos btc_gear_object select 2) + 2], 1.1, 1.1, 0, "", 1],
//['\A3\ui_f\data\map\vehicleicons\iconCar_ca.paa',_color, [getPos btc_create_object select 0,getPos btc_create_object select 1,(getPos btc_create_object select 2) + 5], 0.9, 0.9, 90, "", 1],
['\A3\ui_f\data\igui\cfg\simpleTasks\types\repair_ca.paa',_color, [getPos btc_create_object select 0,getPos btc_create_object select 1,(getPos btc_create_object select 2) + 2.5], 0.9, 0.9, 0, "", 1],
-['\A3\ui_f\data\igui\cfg\simpleTasks\types\rearm_ca.paa',_color, getPos btc_create_object, 0.9, 0.9, 0, "Rearm/Repair and Objects", 1]
+['\A3\ui_f\data\igui\cfg\simpleTasks\types\rearm_ca.paa',_color, getPos btc_create_object, 0.9, 0.9, 0, (localize "STR_BTC_HAM_INTRO_LOGPOINT"), 1] //Rearm/Repair and Objects
];
-if (!isNil "btc_helo_1") then {_array pushBack ['\A3\ui_f\data\map\vehicleicons\iconhelicopter_ca.paa',[0.7,0,0,1], getPos btc_helo_1, 1.1, 1.1, 0, "Only Respawnable", 1];};
+if (!isNil "btc_helo_1") then {_array pushBack ['\A3\ui_f\data\map\vehicleicons\iconhelicopter_ca.paa',[0.7,0,0,1], getPos btc_helo_1, 1.1, 1.1, 0, (localize "STR_BTC_HAM_INTRO_ONLYRESPAWN"), 1];}; //Only Respawnable
-[getMarkerPos "btc_base","Base overview. Loading ...",20,30,240,0,_array,0] call BIS_fnc_establishingShot;
+[getMarkerPos "btc_base",(localize "STR_BTC_HAM_INTRO_LOADINGTXT"),20,30,240,0,_array,0] call BIS_fnc_establishingShot;
-enableSaving [false,false];
\ No newline at end of file
+enableSaving [false,false];
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/is_engineer.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/is_engineer.sqf
deleted file mode 100644
index bdce8ceb6..000000000
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/is_engineer.sqf
+++ /dev/null
@@ -1,6 +0,0 @@
-
-private ["_cond"];
-
-_cond = false;
-if (getNumber (configFile >> "CfgVehicles" >> typeOf _this >> "engineer") == 1 || _this getVariable ["btc_isEngineer",false]) then {_cond = true;};
-_cond
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/marker_debug.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/marker_debug.sqf
index 0b7c8c262..d4563285b 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/marker_debug.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/marker_debug.sqf
@@ -4,53 +4,53 @@ private ["_units","_color","_text","_typeof","_has_headless","_owners","_alpha"]
_has_headless = !((entities "HeadlessClient_F") isEqualTo []);
if (_has_headless) then {
- _units = btc_units_owners apply {_x select 0};
- _owners = btc_units_owners apply {_x select 1};
+ _units = btc_units_owners apply {_x select 0};
+ _owners = btc_units_owners apply {_x select 1};
} else {
- _units = allunits select {Alive _x};
- _units append entities "Car";
- _units append entities "Tank";
- _units append entities "Ship";
- _units append entities "Air";
+ _units = allunits select {Alive _x};
+ _units append entities "Car";
+ _units append entities "Tank";
+ _units append entities "Ship";
+ _units append entities "Air";
};
{
- _typeof = typeOf _x;
-
- _alpha = 1;
- if (_has_headless) then {
- if !((_owners select _foreachindex) isEqualTo 2) then {
- _alpha = 0.3;
- };
- };
-
- switch (side _x) do {
- case (west) : {_color = [0,0,1,_alpha]};
- case (east) : {_color = [1,0,0,_alpha]};
- case (independent) : {_color = [0,1,0,_alpha]};
- default {_color = [1,1,1,_alpha]};
- };
-
- if (leader group _x isEqualTo _x) then {
- _text = format ["%1 (%2)", _typeof,group _x getVariable ["btc_patrol_id",group _x getVariable ["btc_traffic_id",""]]];
- } else {
- if ((_x isKindOf "car") OR (_x isKindOf "tank") OR (_x isKindOf "ship") OR (_x isKindOf "air")) then {
- _text = "";
- _color = [1,0,0.5,_alpha];
- } else {
- _text = format ["%1", _typeof];
- };
- };
-
- (_this select 0) drawIcon [
- getText (configFile/"CfgVehicles"/ _typeof /"Icon"),
- _color ,
- visiblePosition _x,
- 20,
- 20,
- direction _x,
- _text,
- 0,
- 0.05
- ];
+ _typeof = typeOf _x;
+
+ _alpha = 1;
+ if (_has_headless) then {
+ if !((_owners select _foreachindex) isEqualTo 2) then {
+ _alpha = 0.3;
+ };
+ };
+
+ switch (side _x) do {
+ case (west) : {_color = [0,0,1,_alpha]};
+ case (east) : {_color = [1,0,0,_alpha]};
+ case (independent) : {_color = [0,1,0,_alpha]};
+ default {_color = [1,1,1,_alpha]};
+ };
+
+ if (leader group _x isEqualTo _x) then {
+ _text = format ["%1 (%2)", _typeof,group _x getVariable ["btc_patrol_id",group _x getVariable ["btc_traffic_id",""]]];
+ } else {
+ if ((_x isKindOf "car") OR (_x isKindOf "tank") OR (_x isKindOf "ship") OR (_x isKindOf "air")) then {
+ _text = "";
+ _color = [1,0,0.5,_alpha];
+ } else {
+ _text = format ["%1", _typeof];
+ };
+ };
+
+ (_this select 0) drawIcon [
+ getText (configFile/"CfgVehicles"/ _typeof /"Icon"),
+ _color ,
+ visiblePosition _x,
+ 20,
+ 20,
+ direction _x,
+ _text,
+ 0,
+ 0.05
+ ];
} foreach _units;
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/randomize_pos.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/randomize_pos.sqf
index 8ca409997..d22bbe613 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/randomize_pos.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/randomize_pos.sqf
@@ -5,9 +5,9 @@ _pos = _this select 0;
_random_area = _this select 1;
if (count _this > 2) then {
- _allowwater = _this select 2;
+ _allowwater = _this select 2;
} else {
- _allowwater = false;
+ _allowwater = false;
};
_return_pos = _pos;
@@ -21,8 +21,8 @@ _pos_y = _pos_y + ((random _random_area) - (random _random_area));
_check_pos = [_pos_x, _pos_y, 0];
if ((surfaceIsWater _check_pos) && !(_allowwater)) then {
- _return_pos = [_check_pos,0,_random_area,13,false] call btc_fnc_findsafepos;
+ _return_pos = [_check_pos,0,_random_area,13,false] call btc_fnc_findsafepos;
} else {
- _return_pos = _check_pos;
+ _return_pos = _check_pos;
};
_return_pos
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/set_damage.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/set_damage.sqf
index 0f3193764..c0dd218c4 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/set_damage.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/set_damage.sqf
@@ -2,21 +2,21 @@
params ["_unit"];
private _selection = [
- "head",
- "body",
- "hand_l",
- "hand_r",
- "leg_l",
- "leg_r"
+ "head",
+ "body",
+ "hand_l",
+ "hand_r",
+ "leg_l",
+ "leg_r"
];
private _type = [
- "bullet",
- "grenade"/*,
- "explosive",
- "shell"*/
+ "bullet",
+ "grenade"/*,
+ "explosive",
+ "shell"*/
];
for "_i" from 0 to (1 + floor random 2) do {
- [_unit, 0.2, selectRandom _selection, selectRandom _type] call ace_medical_fnc_addDamageToUnit;
- sleep 1;
+ [_unit, 0.2, selectRandom _selection, selectRandom _type] call ace_medical_fnc_addDamageToUnit;
+ sleep 1;
};
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/set_groupowner.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/set_groupowner.sqf
index f25608adb..e1c92a6ac 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/set_groupowner.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/set_groupowner.sqf
@@ -10,9 +10,9 @@ if !(_group setgroupOwner _HC) exitWith {};
//Transfert EH to HC
if (side _group isEqualTo btc_enemy_side) then {
- [_group,{
- {
- _x call btc_fnc_mil_add_eh;
- } foreach units _this;
- }] remoteExec ["call", _HC];
+ [_group,{
+ {
+ _x call btc_fnc_mil_add_eh;
+ } foreach units _this;
+ }] remoteExec ["call", _HC];
};
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/set_markerTextLocal.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/set_markerTextLocal.sqf
new file mode 100644
index 000000000..3535f7a08
--- /dev/null
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/set_markerTextLocal.sqf
@@ -0,0 +1,11 @@
+params [
+ ["_marker", ""],
+ ["_text", ""],
+ ["_arg", ""]
+];
+
+//check for localized text
+_text = if (isLocalized _text) then {(localize _text)};
+
+//set markerText
+_marker setMarkerTextLocal format [_text, _arg];
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/showSubtitle.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/showSubtitle.sqf
new file mode 100644
index 000000000..d4143f8b5
--- /dev/null
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/showSubtitle.sqf
@@ -0,0 +1,82 @@
+/*
+ Author: Thomas Ryan, updated by Karel Moricky
+ Modified: kuemmel
+
+ Description:
+ Displays a subtitle at the bottom of the screen.
+
+ CHANGED:
+ - added optional line break
+ - added optional color for 'speaker' and 'content'
+ - changed position
+ - added optional font selection
+ - added background handling (WIP)
+
+ Parameters:
+ _this select 0: STRING - Name of the person speaking
+ _this select 1: STRING - Contents of the subtitle
+ _this select 2: BOOL - Add a line break (Optional - default: false)
+ _this select 3: HEX color for speaker (#RGB or #ARGB): - (Optional- default: "#d4cd00")
+ _this select 4: HEX color for content (#RGB or #ARGB): - (Optional- default: "#FFFFFF")
+ _this select 5: STRING - Font (https://community.bistudio.com/wiki/FXY_File_Format#Available_Fonts)
+
+ Examples:
+ ["Some Guy","How do yo do?"] spawn btc_fnc_showSubtitle;
+ ["Darth Vader","Come to the dark side. We have cookies!", false, "#ed2939"] spawn btc_fnc_showSubtitle;
+ ["Luke Skywalker","Whhhhhhyyyyyyyy", true, "#1768d3", nil, "PuristaBold"] spawn btc_fnc_showSubtitle;
+*/
+
+#define WAIT 10
+#define POS_W (0.4 * safeZoneW)
+#define POS_H (safeZoneH)
+#define POS_X (0.5 - POS_W / 2)
+#define POS_Y (safeZoneY + (6/8) * safeZoneH)
+#define POS_Y_CAM (safeZoneY + (31/32) * safeZoneH)
+
+params [
+ ["_from", "", [""]],
+ ["_text", "", [""]],
+ ["_lineBreak", false , [false]],
+ ["_colorFrom", "#d4cd00" , [""]], //default color: gold
+ ["_colorText", "#FFFFFF" , [""]], //default color: white
+ ["_fontText", "RobotoCondensedBold", [""]]
+];
+
+disableSerialization;
+
+// Create display and control
+"btc_fnc_showSubtitle" cutRsc ["RscDynamicText", "PLAIN"];
+private "_display";
+waitUntil {_display = uiNamespace getVariable "BIS_dynamicText"; !(isNull _display)};
+private _ctrl = _display ctrlCreate ["RscStructuredText",-1];
+uiNamespace setVariable ["BIS_dynamicText", displayNull];
+
+_ctrl ctrlSetBackgroundColor (["Subtitles","Background"] call bis_fnc_displayColorGet);
+//_ctrl ctrlSetBackgroundColor [0, 0, 0, 0.5]; //optional? - for better readability
+_ctrl ctrlSetTextColor (["Subtitles","Text"] call bis_fnc_displayColorGet);
+_ctrl ctrlSetPosition [POS_X,POS_Y,POS_W,POS_H];
+_ctrl ctrlCommit 0;
+
+// Show subtitle
+_ctrl ctrlSetStructuredText parseText format [
+ if (_from == "") then {
+ "
";
-
-_w = primaryWeapon player;
-if (_w == "") then {_text = _text + "None";} else {_text = _text + (getText (configFile >> "cfgWeapons" >> _w >> "displayName"));};
-_text = _text + _br;
-_w_items = primaryWeaponItems player;
-_i = 0;
-if ({_x != ""} count _w_items > 0) then
-{
- _text = _text + "Accessories: ";
- {
- if (_x != "") then {if (_i > 0) then {_text = _text + ", ";};_text = _text + (getText (configFile >> "cfgWeapons" >> _x >> "displayName"));_i = _i + 1;};
- } foreach _w_items;
-} else {_text = _text + "Accessories: None";};
-_text = _text + _br + _br + "Launcher: ";
-_s = secondaryWeapon player;
-if (_s == "") then {_text = _text + "None";} else {_text = _text + (getText (configFile >> "cfgWeapons" >> _s >> "displayName"));};
-_text = _text + _br;
-_s_items = secondaryWeaponItems player;
-_i = 0;
-if ({_x != ""} count _s_items > 0) then
-{
- _text = _text + "Accessories: ";
- {
- if (_x != "") then {if (_i > 0) then {_text = _text + ", ";};_text = _text + (getText (configFile >> "cfgWeapons" >> _x >> "displayName"));_i = _i + 1;};
- } foreach _s_items;
-} else {_text = _text + "Accessories: None";};
-_text = _text + _br + _br + "Hand gun: ";
-_h = handGunWeapon player;
-if (_h == "") then {_text = _text + "None";} else {_text = _text + (getText (configFile >> "cfgWeapons" >> _h >> "displayName"));};
-_text = _text + _br;
-_h_items = secondaryWeaponItems player;
-_i = 0;
-if ({_x != ""} count _h_items > 0) then
-{
- _text = _text + "Accessories: ";
- {
- if (_x != "") then {if (_i > 0) then {_text = _text + ", ";};_text = _text + (getText (configFile >> "cfgWeapons" >> _x >> "displayName"));_i = _i + 1;};
- } foreach _h_items;
-} else {_text = _text + "Accessories: None";};
-_text = _text + _br + _br + "Ammo and items:";
-*/
-
-private ["_ui","_text","_w","_s","_w_items","_h_items","_h","_s_items","_i","_n","_idc","_displayName","_items","_mags","_picture"];
-
-_ui = uiNamespace getVariable "btc_gear_dlg";
-_text = "";
-_w = primaryWeapon player;
-if (_w == "") then {_text = "None";} else {_text = getText (configFile >> "cfgWeapons" >> _w >> "displayName");};
-(_ui displayCtrl 3910) ctrlSettext _text;
-
-_w_items = primaryWeaponItems player;
-_i = 0;
-{
- if (_x != "") then {(_ui displayCtrl (3930 + _i)) ctrlSettext (getText (configFile >> "cfgWeapons" >> _x >> "picture"))} else {(_ui displayCtrl (3930 + _i)) ctrlSettext ""};
- _i = _i + 1;
-} foreach _w_items;
-
-_text = "";
-_s = secondaryWeapon player;
-if (_s == "") then {_text = "None";} else {_text = getText (configFile >> "cfgWeapons" >> _s >> "displayName");};
-(_ui displayCtrl 3911) ctrlSettext _text;
-
-_w_items = secondaryWeaponItems player;
-_i = 0;
-{
- if (_x != "") then {(_ui displayCtrl (3940 + _i)) ctrlSettext (getText (configFile >> "cfgWeapons" >> _x >> "picture"))} else {(_ui displayCtrl (3940 + _i)) ctrlSettext ""};
- _i = _i + 1;
-} foreach _w_items;
-
-_text = "";
-_h = handGunWeapon player;
-if (_h == "") then {_text = "None";} else {_text = getText (configFile >> "cfgWeapons" >> _h >> "displayName");};
-(_ui displayCtrl 3912) ctrlSettext _text;
-
-_w_items = handGunItems player;
-_i = 0;
-{
- if (_x != "") then {(_ui displayCtrl (3950 + _i)) ctrlSettext (getText (configFile >> "cfgWeapons" >> _x >> "picture"))} else {(_ui displayCtrl (3950 + _i)) ctrlSettext ""};
- _i = _i + 1;
-} foreach _w_items;
-
-_mags = magazines player;
-_items = (items player) + (assignedItems player);
-
-_idc = 3921;
-lbClear _idc;
-
-if (count _mags > 0) then
-{
- while {count _mags > 0} do
- {
- _i = _mags select 0;
- _n = {_i == _x} count _mags;
- _displayName = format ["[%2] %1",(getText (configFile >> "cfgMagazines" >> _i >> "displayName")),_n];
- _picture = getText (configFile >> "cfgMagazines" >> _i >> "picture");
- _index = lbAdd [ _idc, _displayName ];
- lbSetData [ _idc, _index, _i ];
- lbSetTooltip [ _idc, _index, _displayName ];
- lbSetPicture [ _idc, _index, _picture ];
- _mags = _mags - [_i];
- };
-};
-if (count _items > 0) then
-{
- while {count _items > 0} do
- {
- _i = _items select 0;
- _n = {_i == _x} count _items;
- _displayName = format ["[%2] %1",(getText (configFile >> "cfgWeapons" >> _i >> "displayName")),_n];
- _picture = getText (configFile >> "cfgWeapons" >> _i >> "picture");
- _index = lbAdd [ _idc, _displayName ];
- lbSetData [ _idc, _index, _i ];
- lbSetTooltip [ _idc, _index, _displayName ];
- lbSetPicture [ _idc, _index, _picture ];
- _items = _items - [_i];
- };
-};
-
-lbSort [((uiNamespace getVariable "btc_gear_dlg") displayCtrl _idc), "ASC"];
-
-
-true
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/gear/handle.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/gear/handle.sqf
deleted file mode 100644
index c41050516..000000000
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/gear/handle.sqf
+++ /dev/null
@@ -1,104 +0,0 @@
-_type = _this select 0;
-
-_ui = uiNamespace getVariable "btc_gear_dlg";
-
-switch _type do
-{
- case 0 :
- {
- if (lbData [372, lbCurSel 372] == "") exitWith {};
-
- _cargo = lbText [371, lbCurSel 371];
-
- if (_cargo == "Uniforms" || _cargo == "Vests" || _cargo == "Backpacks" || _cargo == "HeadGear" || _cargo == "Goggles") exitWith
- {
- switch (lbText [371, lbCurSel 371]) do
- {
- case "Uniforms" :
- {
- _m = getMagazineCargo uniformContainer player;
- _it = getItemCargo uniformContainer player;
- player addUniform (lbData [372, lbCurSel 372]);
- for "_i" from 0 to (count (_m select 0) - 1) do {(uniformContainer player) addMagazineCargo [((_m select 0) select _i),((_m select 1) select _i)];};
- for "_i" from 0 to (count (_it select 0) - 1) do {(uniformContainer player) addItemCargo [((_it select 0) select _i),((_it select 1) select _i)];};
- (_ui displayCtrl 374) ctrlSettext (getText (configFile >> "cfgWeapons" >> (lbData [372, lbCurSel 372]) >> "picture"));
- };
- case "Vests" :
- {
- _m = getMagazineCargo vestContainer player;
- _it = getItemCargo vestContainer player;
- player addVest (lbData [372, lbCurSel 372]);
- for "_i" from 0 to (count (_m select 0) - 1) do {(vestContainer player) addMagazineCargo [((_m select 0) select _i),((_m select 1) select _i)];};
- for "_i" from 0 to (count (_it select 0) - 1) do {(vestContainer player) addItemCargo [((_it select 0) select _i),((_it select 1) select _i)];};
- (_ui displayCtrl 375) ctrlSettext (getText (configFile >> "cfgWeapons" >> (lbData [372, lbCurSel 372]) >> "picture"));
- };
- case "Backpacks" :
- {
- _m = getMagazineCargo backpackContainer player;
- _it = getItemCargo backpackContainer player;
- player addBackpack (lbData [372, lbCurSel 372]);
- for "_i" from 0 to (count (_m select 0) - 1) do {(backpackContainer player) addMagazineCargo [((_m select 0) select _i),((_m select 1) select _i)];};
- for "_i" from 0 to (count (_it select 0) - 1) do {(backpackContainer player) addItemCargo [((_it select 0) select _i),((_it select 1) select _i)];};
- (_ui displayCtrl 376) ctrlSettext (getText (configFile >> "cfgVehicles" >> (lbData [372, lbCurSel 372]) >> "picture"));
- };
- case "HeadGear" :
- {
- player addHeadGear (lbData [372, lbCurSel 372]);
- (_ui displayCtrl 377) ctrlSettext (getText (configFile >> "cfgWeapons" >> (lbData [372, lbCurSel 372]) >> "picture"));
- };
- case "Goggles" :
- {
- player addGoggles (lbData [372, lbCurSel 372]);
- (_ui displayCtrl 378) ctrlSettext (getText (configFile >> "cfgGlasses" >> (lbData [372, lbCurSel 372]) >> "picture"));
- };
- };
- };
-
- if (_cargo == "Weapons") exitWith
- {
- player addWeapon (lbData [372, lbCurSel 372]);
- };
-
- //Add
- _cond = true;
- switch btc_gear_container_selected do
- {
- case 0 : {if (uniform player == "") then {_cond = false;};};
- case 1 : {if (vest player == "") then {_cond = false;};};
- case 2 : {if (backpack player == "") then {_cond = false;};};
- };
- if !(_cond) exitWith {};
- _obj_type = lbData [372, lbCurSel 372];
- switch btc_gear_container_selected do
- {
- case 0 : {if !(player canAddItemToUniform _obj_type) then {_cond = false;};};
- case 1 : {if !(player canAddItemToVest _obj_type) then {_cond = false;};};
- case 2 : {if !(player canAddItemToBackpack _obj_type) then {_cond = false;};};
- };
- if !(_cond) exitWith {hint "There is no enough space!"};
- switch btc_gear_container_selected do
- {
- case 0 : {player addItemToUniform _obj_type;[0,0] call btc_fnc_gear_change_container;};
- case 1 : {player addItemToVest _obj_type;[0,1] call btc_fnc_gear_change_container;};
- case 2 : {player addItemToBackpack _obj_type;[0,2] call btc_fnc_gear_change_container;};
- };
- //if ({_obj_type == _x} count assignedItems player == 0) then {player assignItem _obj_type};
- };
- case 1 :
- {
- //Remove
- if (lbData [373, lbCurSel 373] == "") exitWith {};
-
- switch btc_gear_container_selected do
- {
- case 0 : {player removeItemFromUniform (lbData [373, lbCurSel 373]);[0,0] call btc_fnc_gear_change_container;};
- case 1 : {player removeItemFromVest (lbData [373, lbCurSel 373]);[0,1] call btc_fnc_gear_change_container;};
- case 2 : {player removeItemFromBackpack (lbData [373, lbCurSel 373]);[0,2] call btc_fnc_gear_change_container;};
- };
- };
- case 2 : {player removeWeapon (primaryWeapon player)};
- case 3 : {player removeWeapon (secondaryWeapon player)};
- case 4 : {player removeWeapon (handGunWeapon player)};
-};
-
-call btc_fnc_gear_get_text;
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/gear/lb_fill.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/gear/lb_fill.sqf
deleted file mode 100644
index d05fd7acd..000000000
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/gear/lb_fill.sqf
+++ /dev/null
@@ -1,23 +0,0 @@
-_idc = _this select 0;
-_items = _this select 1;
-
-_ui = uiNamespace getVariable "btc_gear_dlg";
-
-//hint str(_this);
-
-lbClear _idc;
-{
- private ["_type","_index","_displayName","_picture"];
- _type = "cfgMagazines";
- if (isClass (configFile >> "cfgWeapons" >> _x)) then {_type = "cfgWeapons"};
- if (isClass (configFile >> "cfgVehicles" >> _x)) then {_type = "cfgVehicles"};
- if (isClass (configFile >> "CfgGlasses" >> _x)) then {_type = "CfgGlasses"};
- _displayName = getText (configFile >> _type >> _x >> "displayName");
- _picture = getText (configFile >> _type >> _x >> "picture");
- _index = lbAdd [ _idc, _displayName ];
- lbSetData [ _idc, _index, _x ];
- lbSetTooltip [ _idc, _index, _displayName ];
- lbSetPicture [ _idc, _index, _picture ];
-} foreach _items;
-
-lbSort [(_ui displayCtrl _idc), "ASC"];
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/gear/open_dlg.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/gear/open_dlg.sqf
deleted file mode 100644
index 5b60a81d9..000000000
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/gear/open_dlg.sqf
+++ /dev/null
@@ -1,31 +0,0 @@
-// ((_this select 0) displayCtrl 379) ctrlSetPosition [0.5 * safezoneW + safezoneX,0.655 * safezoneH + safezoneY,0.2 * safezoneW,0.015 * safezoneH];((_this select 0) displayCtrl 379) ctrlCommit 0;
-
-btc_gear_acc_type = 0;
-
-closeDialog 0;
-disableSerialization;
-_dlg = createDialog "btc_gear_dlg";
-_ui = uiNamespace getVariable "btc_gear_dlg";
-
-waitUntil {Dialog};
-
-{_index = lbAdd [ 371, _x ];} foreach ["Uniforms","Vests","Backpacks","HeadGear","Goggles","Weapons","Magazines","Items"];
-
-lbSetCurSel [371, 0];
-
-//[3912,false] call btc_fnc_gear_show_button;
-
-_uniform = uniform player;
-_vest = vest player;
-_backPack = backPack player;
-_headgear = headgear player;
-_goggles = goggles player;
-
-if (_uniform != "") then {(_ui displayCtrl 374) ctrlSettext (getText (configFile >> "cfgWeapons" >> _uniform >> "picture"));};
-if (_vest != "") then {(_ui displayCtrl 375) ctrlSettext (getText (configFile >> "cfgWeapons" >> _vest >> "picture"));};
-if (_backPack != "") then {(_ui displayCtrl 376) ctrlSettext (getText (configFile >> "cfgVehicles" >> _backPack >> "picture"));};
-if (_headgear != "") then {(_ui displayCtrl 377) ctrlSettext (getText (configFile >> "cfgWeapons" >> _headgear >> "picture"));};
-if (_goggles != "") then {(_ui displayCtrl 378) ctrlSettext (getText (configFile >> "cfgGlasses" >> _goggles >> "picture"));};
-//Select uniform
-call btc_fnc_gear_get_text;
-[0,0] call btc_fnc_gear_change_container;
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/gear/remove_w_item.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/gear/remove_w_item.sqf
deleted file mode 100644
index e7b04b3d6..000000000
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/gear/remove_w_item.sqf
+++ /dev/null
@@ -1,26 +0,0 @@
-_w = _this select 0;
-_i = _this select 1;
-
-_ui = uiNamespace getVariable "btc_gear_dlg";
-
-switch _w do
-{
- case 0 :
- {
- _items = primaryWeaponItems player;
- _item = _items select _i;
- if (_item != "") then {player removePrimaryWeaponItem _item;(_ui displayCtrl (3930 + _i)) ctrlSettext "";};
- };
- case 1 :
- {
- _items = secondaryWeaponItems player;
- _item = _items select _i;
- if (_item != "") then {/*player removeSecondaryWeaponItem _item;(_ui displayCtrl (3940 + _i)) ctrlSettext "";*/};
- };
- case 2 :
- {
- _items = handgunItems player;
- _item = _items select _i;
- if (_item != "") then {player removeHandgunItem _item;(_ui displayCtrl (3950 + _i)) ctrlSettext "";};
- };
-};
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/gear/show_button.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/gear/show_button.sqf
deleted file mode 100644
index 4d410f68a..000000000
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/gear/show_button.sqf
+++ /dev/null
@@ -1,5 +0,0 @@
-_idc = _this select 0;
-_cond = _this select 1;
-
-_ui = uiNamespace getVariable "btc_gear_dlg";
-(_ui displayCtrl _idc) ctrlShow _cond;
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/allahu_akbar.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/allahu_akbar.sqf
index 7e942f9a2..08d941375 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/allahu_akbar.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/allahu_akbar.sqf
@@ -6,15 +6,15 @@ _suicider = _this getVariable "suicider";
_soundPath = [(str missionConfigFile), 0, -15] call BIS_fnc_trimString;
_soundToPlay = _soundPath + "core\sounds\allahu_akbar.ogg";
if (Alive _suicider && [_suicider] call ace_common_fnc_isAwake) then {
- playSound3d [_soundToPlay, _suicider, false, getPosASL _suicider, 40, random [0.9,1,1.2],100];
+ playSound3d [_soundToPlay, _suicider, false, getPosASL _suicider, 40, random [0.9,1,1.2],100];
};
[{
- params ["_suicider"];
- if (Alive _suicider && [_suicider] call ace_common_fnc_isAwake) then {
- {deleteVehicle _x;} forEach attachedObjects _suicider;
- private _pos = getPos _suicider;
- "Bo_GBU12_LGB_MI10" createVehicle [_pos select 0, _pos select 1, 0.1 + (_pos select 2)];
- [_pos] call btc_fnc_deaf_earringing;
- };
+ params ["_suicider"];
+ if (Alive _suicider && [_suicider] call ace_common_fnc_isAwake) then {
+ {deleteVehicle _x;} forEach attachedObjects _suicider;
+ private _pos = getPos _suicider;
+ "Bo_GBU12_LGB_MI10" createVehicle [_pos select 0, _pos select 1, 0.1 + (_pos select 2)];
+ [_pos] call btc_fnc_deaf_earringing;
+ };
}, [_suicider], 1.4] call CBA_fnc_waitAndExecute;
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/boom.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/boom.sqf
index fb957da73..080588cde 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/boom.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/boom.sqf
@@ -6,4 +6,6 @@ _pos = getPos (_this select 1);
deleteVehicle (_this select 1);
"Bo_GBU12_LGB_MI10" createVehicle _pos;
deleteVehicle (_this select 0);
-[_pos] call btc_fnc_deaf_earringing;
\ No newline at end of file
+[_pos] call btc_fnc_deaf_earringing;
+//separate execution to make it compatible in "singleplayer" and on dedicated servers
+if (isDedicated) then {[_pos] remoteExec ["btc_fnc_ied_effects",-2];} else {[_pos] remoteExec ["btc_fnc_ied_effects",0];};
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/check.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/check.sqf
index be26783ff..5db2f09d6 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/check.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/check.sqf
@@ -8,35 +8,35 @@ if (btc_debug_log) then {diag_log format ["START IED CHECK CITY ID %1",_city get
private _ieds_check = (+ _ieds) select {!((_x select 2) isEqualTo objNull)};
[{
- params ["_args", "_id"];
- _args params ["_city", "_ieds", "_ieds_check"];
-
- if (_city getVariable ["active", false]) then {
- {
- private _wreck = _x select 0;
- private _ied = _x select 2;
- if (!isNull _ied && {Alive _ied}) then {
- {
- if (side _x == btc_player_side && {(speed _x > 5 || vehicle _x != _x)}) then {[_wreck,_ied] spawn btc_fnc_ied_boom;};
- } foreach (_ied nearEntities ["allvehicles", 10]);
- } else {
- _ieds_check = _ieds_check - [_ied];
- };
- } foreach _ieds_check;
- } else {
- [_id] call CBA_fnc_removePerFrameHandler;
-
- private _data = [];
- {
- private _wreck = _x select 0;
- if (!isNull _wreck && {Alive _wreck}) then {
- _data pushBack [getPosATL _wreck,_x select 1,getDir _wreck,!((_x select 2) isEqualTo objNull)];
- deleteVehicle (_x select 2);deleteVehicle _wreck;};
- } foreach _ieds;
-
- _city setVariable ["ieds",_data];
-
- if (btc_debug) then {systemChat format ["END IED CHECK CITY ID %1",_city getVariable "id"];};
- if (btc_debug_log) then {diag_log format ["END IED CHECK CITY ID %1",_city getVariable "id"];};
- };
+ params ["_args", "_id"];
+ _args params ["_city", "_ieds", "_ieds_check"];
+
+ if (_city getVariable ["active", false]) then {
+ {
+ private _wreck = _x select 0;
+ private _ied = _x select 2;
+ if (!isNull _ied && {Alive _ied}) then {
+ {
+ if (side _x == btc_player_side && {(speed _x > 5 || vehicle _x != _x)}) then {[_wreck,_ied] spawn btc_fnc_ied_boom;};
+ } foreach (_ied nearEntities ["allvehicles", 10]);
+ } else {
+ _ieds_check = _ieds_check - [_ied];
+ };
+ } foreach _ieds_check;
+ } else {
+ [_id] call CBA_fnc_removePerFrameHandler;
+
+ private _data = [];
+ {
+ private _wreck = _x select 0;
+ if (!isNull _wreck && {Alive _wreck}) then {
+ _data pushBack [getPosATL _wreck,_x select 1,getDir _wreck,!((_x select 2) isEqualTo objNull)];
+ deleteVehicle (_x select 2);deleteVehicle _wreck;};
+ } foreach _ieds;
+
+ _city setVariable ["ieds",_data];
+
+ if (btc_debug) then {systemChat format ["END IED CHECK CITY ID %1",_city getVariable "id"];};
+ if (btc_debug_log) then {diag_log format ["END IED CHECK CITY ID %1",_city getVariable "id"];};
+ };
} , 1, [_city, _ieds, _ieds_check]] call CBA_fnc_addPerFrameHandler;
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/create.sqf
index e9df53ac9..a2450c55a 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/create.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/create.sqf
@@ -1,23 +1,16 @@
-private ["_type","_pos","_dir","_active","_wreck","_ied"];
-
-_pos = _this select 0;
-_type = _this select 1;
-_dir = _this select 2;
-_active = _this select 3;
+params ["_pos", "_type", "_dir","_active"];
if (btc_debug_log) then {diag_log format ["CREATE IED %1",_this];};
-_wreck = createSimpleObject [_type, _pos];
+private _wreck = createSimpleObject [_type, _pos];
_wreck setPosATL [ _pos select 0, _pos select 1, 0];
_wreck setDir _dir;
_wreck setVectorUp surfaceNormal _pos;
-if (_active) then {
- _ied = createMine [selectRandom btc_type_ieds_ace,[_pos select 0, _pos select 1, -0.07],[],2];
- _ied setVectorUp surfaceNormal _pos;
- [_wreck,_ied] call btc_fnc_ied_fired_near;
-} else {
- _ied = objNull;
-};
+if !(_active) exitWith {[_wreck, _type, objNull]};
+
+private _ied = createMine [selectRandom btc_type_ieds_ace,[_pos select 0, _pos select 1, btc_ied_offset], [], 2];
+_ied setVectorUp surfaceNormal _pos;
+[_wreck,_ied] call btc_fnc_ied_fired_near;
-[_wreck,_type,_ied]
\ No newline at end of file
+[_wreck, _type, _ied]
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_active.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_active.sqf
new file mode 100644
index 000000000..e7f3b85f9
--- /dev/null
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_active.sqf
@@ -0,0 +1,19 @@
+
+params ["_driver_drone"];
+
+while {(count (waypoints group _driver_drone)) > 0} do { deleteWaypoint ((waypoints group _driver_drone) select 0); };
+
+private _trigger = createTrigger ["EmptyDetector", getPos _driver_drone];
+_trigger setTriggerArea [10, 10, 0, false, -60];
+_trigger setTriggerActivation [str(btc_player_side), "PRESENT", true];
+_trigger setTriggerStatements ["this", "[thisTrigger] call btc_fnc_ied_drone_fire;", ""];
+_trigger setVariable ["btc_ied_drone", _driver_drone];
+
+_trigger attachTo [vehicle _driver_drone,[0,0,0]];
+
+if (btc_debug_log) then {diag_log format ["btc_fnc_ied_drone_active: _driver_drone = %1; POS %2 START LOOP",_driver_drone,getpos _driver_drone];};
+
+(group _driver_drone) setBehaviour "CARELESS";
+(group _driver_drone) setSpeedMode "LIMITED";
+
+_trigger
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_create.sqf
new file mode 100644
index 000000000..97e0382a1
--- /dev/null
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_create.sqf
@@ -0,0 +1,52 @@
+
+params ["_city", "_area", ["_rpos", []], ["_group", createGroup [btc_enemy_side, true]]];
+
+if (btc_debug_log) then {
+ diag_log format ["btc_fnc_ied_drone_create: _name = %1 _area %2",_city getVariable ["name","name"],_area];
+};
+
+if (_rpos isEqualTo []) then {
+ _rpos = [position _city, _area] call btc_fnc_randomize_pos;
+};
+
+private _drone = createVehicle ["C_IDAP_UAV_06_antimine_F", _rpos, [], 0, "FLY"];
+createVehicleCrew _drone;
+[driver _drone] joinSilent _group;
+_group setVariable ["btc_ied_drone", true];
+{_x call btc_fnc_mil_unit_create} foreach units _group;
+
+[_group, _rpos, _area, 4] call CBA_fnc_taskPatrol;
+_drone flyInHeight 10;
+
+//Main check
+[{
+ params ["_args", "_id"];
+ _args params ["_driver_drone", "_rpos", "_area", "_trigger"];
+
+ private _group = group _driver_drone;
+ if (Alive _driver_drone && !isNull _driver_drone) then {
+ private _array = _driver_drone nearEntities ["SoldierWB", 200];
+ if (_array isEqualTo []) then {
+ if (waypoints _group isEqualTo []) then {
+ [_group, _rpos, _area, 4] call CBA_fnc_taskPatrol;
+ (vehicle _driver_drone) flyInHeight 10;
+ deleteVehicle (_trigger deleteAt 0);
+ };
+ } else {
+ if (_trigger isEqualTo []) then {
+ _trigger pushBack ([_driver_drone] call btc_fnc_ied_drone_active);
+ };
+ if (btc_debug) then {
+ hint format ["Distance with UAV IED : %1", (_array select 0) distance (vehicle _driver_drone)];
+ };
+ (vehicle _driver_drone) doMove (ASLtoAGL getPosASL (_array select 0));
+ };
+ } else {
+ [_id] call CBA_fnc_removePerFrameHandler;
+ deleteVehicle (_trigger deleteAt 0);
+ _group setVariable ["btc_ied_drone",false];
+ if (btc_debug_log) then {diag_log format ["btc_fnc_ied_drone_active: _driver_drone = %1; POS %2 END LOOP", _driver_drone, getpos _driver_drone];};
+ };
+}, 5, [driver _drone, _rpos, _area, []]] call CBA_fnc_addPerFrameHandler;
+
+leader _group
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_fire.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_fire.sqf
new file mode 100644
index 000000000..6d13ce0e6
--- /dev/null
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/drone_fire.sqf
@@ -0,0 +1,6 @@
+
+params ["_trigger"];
+
+private _driver_drone = _trigger getVariable "btc_ied_drone";
+
+_driver_drone forceWeaponFire ["BombDemine_01_F", "BombDemine_01_F"];
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_blurEffect.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_blurEffect.sqf
new file mode 100644
index 000000000..04b2b956e
--- /dev/null
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_blurEffect.sqf
@@ -0,0 +1,29 @@
+params [["_pos", [0,0,0]],["_caller", objNull]];
+if (!isPlayer _caller) exitWith {};
+if (alive _caller) then {
+ private _distance = (getPos _caller) distance _pos;
+ //blurry screen with cam shake
+ if(_distance < 40) then {
+ [] spawn {
+ addCamShake [1, 3, 3];
+
+ private _blur = ppEffectCreate ["DynamicBlur", 474];
+ _blur ppEffectEnable true;
+ _blur ppEffectAdjust [0];
+ _blur ppEffectCommit 0;
+
+ waitUntil {ppEffectCommitted _blur};
+
+ _blur ppEffectAdjust [10];
+ _blur ppEffectCommit 0;
+
+ _blur ppEffectAdjust [0];
+ _blur ppEffectCommit 5;
+
+ waitUntil {ppEffectCommitted _blur};
+
+ _blur ppEffectEnable false;
+ ppEffectDestroy _blur;
+ };
+ };
+};
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_color_smoke.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_color_smoke.sqf
new file mode 100644
index 000000000..da57ed293
--- /dev/null
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_color_smoke.sqf
@@ -0,0 +1,43 @@
+params [
+ ["_pos", [0,0,0]],
+ ["_posASL", [0,0,0]],
+ ["_colorSel", ""],
+ ["_horizontal", 900],
+ ["_upwards", 500],
+ ["_color", []]
+];
+
+if (_colorSel isEqualTo "") exitWith {};
+
+if (_colorSel isEqualTo "sand") then {_color = [[.55, .47, .37, .75], [0.78, 0.76, 0.71, 0]];};
+if (_colorSel isEqualTo "gray") then {_color = [[.1, .1, .1, .75], [0.78, 0.76, 0.71, 0]];};
+if (_colorSel isEqualTo "brown") then {_color = [[0.55, 0.41, 0.25, 1], [0.55, 0.41, 0.25, 0]];};
+
+private _size = 1 + random 3;
+
+private _thingToFling = "Land_Bucket_F" createVehicleLocal [0,0,0];
+_thingToFling hideObject true;
+_thingToFling setPos _pos;
+private _smoke = "#particlesource" createVehicleLocal _posASL;
+_smoke setPosASL _posASL;
+_smoke setParticleCircle [0, [0, 0, 0]];
+_smoke setParticleRandom [0, [0, 0, -.5], [2, 2, .5], 0, 1, [0, 0, 0, 0.1], 0, 0];
+_smoke setParticleParams [["\A3\data_f\cl_fireD", 1, 0, 1], "", "Billboard", 1, 10.5, [0, 0, .7], [0, 0, 0], 0, 10, 7.85, 0.375, [_size,2*_size], _color, [0.08], 1, 0, "", "", _thingToFling];
+_smoke setDropInterval 0.005;
+
+_thingToFling setVelocity [(random _horizontal)-(_horizontal/2), (random _horizontal)-(_horizontal/2), 5+(random _upwards)];
+_thingToFling allowDamage false;
+private _sleepTime = (random .5);
+private _currentTime = 0;
+
+while { _currentTime < _sleepTime and _size > 0} do {
+ _smoke setParticleParams [["\A3\data_f\cl_fireD", 1, 0, 1], "", "Billboard", 1, 10, [0, 0, .7], [0, 0, 0], 0, 10, 7.85, 0.375, [_size,2*_size], _color, [0.08], 1, 0, "", "", _thingToFling];
+ private _sleep = random .05;
+ _size = _size - (6*_sleep);
+ _currentTime = _currentTime + _sleep;
+ sleep _sleep;
+};
+
+_thingToFling setpos [0,0,0];
+deletevehicle _smoke;
+deletevehicle _thingToFling;
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_rocks.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_rocks.sqf
new file mode 100644
index 000000000..beca45b27
--- /dev/null
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_rocks.sqf
@@ -0,0 +1,30 @@
+params [["_pos", [0,0,0]]];
+_pos params ["_x","_y"];
+_posASL = [_x,_y, (getTerrainHeightASL _pos)];
+
+private _rockesArr = [];
+
+private _rVar = [
+ [0, [1, 1, 0], [20, 20, 15], 3, 0.25, [0, 0, 0, 0.1], 0, 0],
+ [0, [1, 1, 0], [25, 25, 15], 3, 0.25, [0, 0, 0, 0.1], 0, 0],
+ [0, [1, 1, 0], [30, 30, 15], 3, 0.25, [0, 0, 0, 0.1], 0, 0]
+];
+
+private _rubVar = [
+ [.45, .45],
+ [.27, .27],
+ [.09, .09]
+];
+
+for "_i" from 0 to ((count _rVar)-1) step 1 do {
+ private _rocks = "#particlesource" createVehicleLocal _posASL;
+ _rocks setPosASL _posASL;
+ _rocks setParticleCircle [0, [0, 0, 0]];
+ _rocks setParticleRandom (_rVar select _i);
+ _rocks setParticleParams [["\A3\data_f\ParticleEffects\Universal\Mud.p3d", 1, 0, 1], "", "SpaceObject", 1, 12.5, [0, 0, 0], [0, 0, 15], 5, 100, 7.9, 1, (_rubVar select _i), [[0.1, 0.1, 0.1, 1], [0.25, 0.25, 0.25, 0.5], [0.5, 0.5, 0.5, 0]], [0.08], 1, 0, "", "", _posASL,0,false,0.3];
+ _rocks setDropInterval 0.01;
+ _rockesArr pushBack _rocks;
+};
+
+sleep 0.22;
+{deletevehicle _x; false} count _rockesArr;
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_shock_wave.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_shock_wave.sqf
new file mode 100644
index 000000000..1c6af9b29
--- /dev/null
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_shock_wave.sqf
@@ -0,0 +1,25 @@
+params [["_pos", [0,0,0]]];
+_pos params ["_x","_y"];
+_posASL = [_x,_y, (getTerrainHeightASL _pos)];
+
+private _color = [
+ [[0, 0, 0, 1], [.35, .35, .35, .35], [.35, .35, .35, 0]],
+ [[.78, .76, .71, 1], [.35, .35, .35, .35], [.35, .35, .35, 0]],
+ [[.55, .47, .37, 1], [.35, .35, .35, .35], [.35, .35, .35, 0]],
+ [[.1, .1, .1, 1], [.2, .2, .2, .35], [.35, .35, .35, 0]]
+];
+
+private _smokes = [];
+for "_i" from 0 to ((count _color)-1) step 1 do {
+ private _smoke = "#particlesource" createVehicleLocal _posASL;
+ _smoke setposasl _posASL;
+ _smoke setParticleCircle [0, [0, 0, 0]];
+ _smoke setParticleRandom [0, [8, 8, 2], [300, 300, 0], 0, 0.25, [0.05, 0.05, 0.05, 0.1], 0, 0];
+ _smoke setParticleParams [["\A3\data_f\cl_fireD", 1, 0, 1], "", "Billboard", 1, 3, [0, 0, -1], [0, 0, -8], 0, 10, 7.85, .375, [6, 8, 10], (_color select _i), [.08], 1, 0, "", "", _posASL];
+ _smoke setDropInterval .0004;
+
+ _smokes pushBack _smoke;
+};
+
+sleep .07;
+{ deletevehicle _x; false } count _smokes;
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_smoke.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_smoke.sqf
new file mode 100644
index 000000000..cd296ac94
--- /dev/null
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/effect_smoke.sqf
@@ -0,0 +1,68 @@
+params [["_pos", [0,0,0]]];
+_pos params ["_x","_y"];
+_posASL = [_x,_y, (getTerrainHeightASL _pos)];
+
+//creating some colored smoke (for a better visual effect)
+[_pos,_posASL] spawn {
+ params ["_pos","_posASL"];
+ private _smokePlu = selectRandom [6,8,10];
+ for "_i" from 0 to (_smokePlu -1) do {
+ private _selection = selectRandom ["sand","gray","brown"];
+ [_pos, _posASL, _selection] spawn btc_fnc_ied_effect_color_smoke;
+ };
+};
+
+//creating smoke
+private _smokes = [];
+
+private _color = [
+ [[0, 0, 0, 1], [0.35, 0.35, 0.35, 0.35], [0.35, 0.35, 0.35, 0]],
+ [[.78, .76, .71, 1], [.35, .35, .35, 0.35], [0.35, 0.35, 0.35, 0]],
+ [[.55, .47, .37, 1], [.35, .35, .35, 0.35], [0.35, 0.35, 0.35, 0]],
+ [[.55, .47, .37, 1], [.35, .35, .35, 0.35], [0.35, 0.35, 0.35, 0]]
+];
+
+private _rndVar = [
+ [0, [1.5 + random 2, 1.5 + random 2, 5], [1+random 5, 1+random 5, 10], 0, 0.25, [0.05, 0.05, 0.05, 0.1], 0, 0],
+ [0, [1.5 + random 2, 1.5 + random 2, 5], [1+random 5, 1+random 5, 6], 0, 0.25, [0.05, 0.05, 0.05, 0.1], 0, 0],
+ [0, [1 + random 3, 1 + random 3, 5], [1, 1, 4], 0, 0.25, [0.05, 0.05, 0.05, 0.1], 0, 0]
+];
+
+private _modPPar = [["\A3\data_f\cl_fireD", 1, 0, 1], "", "Billboard", 1, 10, [0, 0, 0], [0, 0, 0], 0, 10, 7.85, .375, [6 + random 4, 10 + random 4, 14 + random 4], [[.35, .35, .35, 1], [.2, .2, .2, 0.9], [0.35, 0.35, 0.35, 0]], [0.08], 1, 0, "", "", _posASL];
+
+for "_i" from 0 to 6 step 1 do {
+ if (_i <= 3) then {
+ private _smoke = "#particlesource" createVehicleLocal _posASL;
+ _smoke setposasl _posASL;
+ _smoke setParticleCircle [0, [0, 0, 0]];
+ _smoke setParticleRandom [0, [1.5 + random 2, 1.5 + random 2, 8], [1+random 5, 1+random 5, 15], 0, 0.25, [0.05, 0.05, 0.05, 0.1], 0, 0];
+ _smoke setParticleParams [["\A3\data_f\cl_fireD", 1, 0, 1], "", "Billboard", 1, 8, [0, 0, 0], [0, 0, 0], 0, 10, 7.85, .375, [6 + random 4, 6 + random 4, 10 + random 4], (_color select _i), [0.08], 1, 0, "", "", _posASL];
+ _smoke setDropInterval .01;
+
+ _smokes pushBack _smoke;
+ };
+
+ if (_i isEqualTo 4) then {
+ {
+ _x setParticleRandom (_rndVar select 0);
+ _x setParticleParams _modPPar;
+ _x setDropInterval .03;
+ } count _smokes;
+ };
+ if (_i isEqualTo 5) then {
+ {
+ _x setParticleRandom (_rndVar select 1);
+ _x setParticleParams _modPPar;
+ _x setDropInterval .05;
+ } count _smokes;
+ };
+ if (_i isEqualTo 6) then {
+ {
+ _x setParticleRandom (_rndVar select 2);
+ _x setParticleParams _modPPar;
+ _x setDropInterval .05;
+ } count _smokes;
+ };
+};
+sleep 2;
+{ deletevehicle _x; false} count _smokes;
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/fired_near.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/fired_near.sqf
index 1b7007e95..af427f0c2 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/fired_near.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/fired_near.sqf
@@ -9,35 +9,35 @@ _range = 2;
_array = [];
[{
- params ["_args", "_id"];
- _args params ["_ied", "_wreck", "_pos", "_range", "_array"];
- if (Alive _ied && !isNull _ied) then {
- private _list = _pos nearObjects ["Default",_range];
- if (count _list > 0) then {
- {
- private _b = _x;
- private _bullet = typeOf _b;
- if ({_bullet isKindOf _x} count ["SmokeShell", "FlareCore", "IRStrobeBase", "GrenadeHand_stone", "Smoke_120mm_AMOS_White", "TMR_R_DG32V_F"] > 0) exitWith {};
- if ({_bullet isKindOf _x} count ["TimeBombCore","BombCore", "Grenade"] > 0) then {
- if !(_b in _array) then {
- _array pushBack _b;
- [{!Alive _b}, {
- params ["_wreck","_ied"];
- if (Alive _ied) then {[_wreck,_ied] call btc_fnc_ied_boom;};
- }, [_wreck,_ied]] call CBA_fnc_waitUntilAndExecute;
- };
- } else {
- private _explosive = (getNumber(configFile >> "cfgAmmo" >> _bullet >> "explosive") > 0);
- private _caliber = getNumber(configFile >> "CfgAmmo" >> _bullet >> "caliber");
- if (_explosive || _caliber > 1.6) then {
- if (Alive _ied) then {
- [_wreck,_ied] call btc_fnc_ied_boom;
- };
- };
- };
- } foreach _list;
- };
- } else {
- [_id] call CBA_fnc_removePerFrameHandler;
- };
+ params ["_args", "_id"];
+ _args params ["_ied", "_wreck", "_pos", "_range", "_array"];
+ if (Alive _ied && !isNull _ied) then {
+ private _list = _pos nearObjects ["Default",_range];
+ if (count _list > 0) then {
+ {
+ private _b = _x;
+ private _bullet = typeOf _b;
+ if ({_bullet isKindOf _x} count ["SmokeShell", "FlareCore", "IRStrobeBase", "GrenadeHand_stone", "Smoke_120mm_AMOS_White", "TMR_R_DG32V_F"] > 0) exitWith {};
+ if ({_bullet isKindOf _x} count ["TimeBombCore","BombCore", "Grenade"] > 0) then {
+ if !(_b in _array) then {
+ _array pushBack _b;
+ [{!Alive _b}, {
+ params ["_wreck","_ied"];
+ if (Alive _ied) then {[_wreck,_ied] call btc_fnc_ied_boom;};
+ }, [_wreck,_ied]] call CBA_fnc_waitUntilAndExecute;
+ };
+ } else {
+ private _explosive = (getNumber(configFile >> "cfgAmmo" >> _bullet >> "explosive") > 0);
+ private _caliber = getNumber(configFile >> "CfgAmmo" >> _bullet >> "caliber");
+ if (_explosive || _caliber > 1.6) then {
+ if (Alive _ied) then {
+ [_wreck,_ied] call btc_fnc_ied_boom;
+ };
+ };
+ };
+ } foreach _list;
+ };
+ } else {
+ [_id] call CBA_fnc_removePerFrameHandler;
+ };
} , 0.01, [_ied, _wreck, _pos, _range, _array]] call CBA_fnc_addPerFrameHandler;
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/ied_effects.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/ied_effects.sqf
new file mode 100644
index 000000000..e2e88ea82
--- /dev/null
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/ied_effects.sqf
@@ -0,0 +1,9 @@
+params [
+ ["_pos", [0,0,0]],
+ ["_caller", player]
+];
+
+[_pos,_caller] spawn btc_fnc_ied_effect_blurEffect;
+[_pos] spawn btc_fnc_ied_effect_smoke;
+[_pos] spawn btc_fnc_ied_effect_rocks;
+[_pos] spawn btc_fnc_ied_effect_shock_wave;
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/init_area.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/init_area.sqf
index acbee9c35..21c9b4862 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/init_area.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/init_area.sqf
@@ -12,85 +12,85 @@ _array = _city getVariable ["ieds",[]];
_active = true;
for "_i" from 1 to _n do {
- private ["_sel_pos","_type_ied","_dir"];
- _sel_pos = _pos;
- _sel_pos = [_pos, _area] call btc_fnc_randomize_pos;
- _sel_pos = [_sel_pos,30,150,1,false] call btc_fnc_findsafepos;
-
- _type_ied = selectRandom btc_model_ieds;
-
- _dir = (random 360);
-
- if (random 1 > 0.3) then {
- private ["_roads","_obj"];
- _roads = _sel_pos nearRoads _area;
- if (count _roads > 0) then {
- _obj = selectRandom _roads;
- if (random 1 > 0.5) then {_sel_pos = _obj modelToWorld [3.5,0,0];} else {_sel_pos = _obj modelToWorld [-3.5,0,0];};
- };
- } else {
- if (isOnRoad _sel_pos) then {
- private ["_roads","_obj","_dist"];
- _roads = _sel_pos nearRoads 15;
- if (count _roads > 0) then {
- _obj = objNull;_dist = 100;
- {if (_x distance _sel_pos < _dist) then {_dist = _x distance _sel_pos;_obj = _x;};} foreach _roads;
- if (isNull _obj) exitWith {};
- if (random 1 > 0.5) then {_sel_pos = _obj modelToWorld [3.5,0,0];} else {_sel_pos = _obj modelToWorld [-3.5,0,0];};
- };
- }
- };
-
-
- if (btc_debug) then {
- //Marker
- private ["_marker"];
- _marker = createmarker [format ["btc_ied_%1", _sel_pos], _sel_pos];
- format ["btc_ied_%1", _sel_pos] setmarkertype "mil_warning";
- format ["btc_ied_%1", _sel_pos] setmarkercolor "ColorRed";
- format ["btc_ied_%1", _sel_pos] setMarkerText "IED";//format ["ied %1", btc_hideouts_id];
- format ["btc_ied_%1", _sel_pos] setMarkerSize [0.8, 0.8];
- };
-
- if (btc_debug_log) then {diag_log format ["btc_fnc_ied_create_in_area: _this = %1 ; POS %2 ; N %3(%4)",_this,_sel_pos,_i,_n];};
-
- _array pushBack [_sel_pos,_type_ied,_dir,_active];
+ private ["_sel_pos","_type_ied","_dir"];
+ _sel_pos = _pos;
+ _sel_pos = [_pos, _area] call btc_fnc_randomize_pos;
+ _sel_pos = [_sel_pos,30,150,1,false] call btc_fnc_findsafepos;
+
+ _type_ied = selectRandom btc_model_ieds;
+
+ _dir = (random 360);
+
+ if (random 1 > 0.3) then {
+ private ["_roads","_obj"];
+ _roads = _sel_pos nearRoads _area;
+ if (count _roads > 0) then {
+ _obj = selectRandom _roads;
+ if (random 1 > 0.5) then {_sel_pos = _obj modelToWorld [3.5,0,0];} else {_sel_pos = _obj modelToWorld [-3.5,0,0];};
+ };
+ } else {
+ if (isOnRoad _sel_pos) then {
+ private ["_roads","_obj","_dist"];
+ _roads = _sel_pos nearRoads 15;
+ if (count _roads > 0) then {
+ _obj = objNull;_dist = 100;
+ {if (_x distance _sel_pos < _dist) then {_dist = _x distance _sel_pos;_obj = _x;};} foreach _roads;
+ if (isNull _obj) exitWith {};
+ if (random 1 > 0.5) then {_sel_pos = _obj modelToWorld [3.5,0,0];} else {_sel_pos = _obj modelToWorld [-3.5,0,0];};
+ };
+ }
+ };
+
+
+ if (btc_debug) then {
+ //Marker
+ private ["_marker"];
+ _marker = createmarker [format ["btc_ied_%1", _sel_pos], _sel_pos];
+ format ["btc_ied_%1", _sel_pos] setmarkertype "mil_warning";
+ format ["btc_ied_%1", _sel_pos] setmarkercolor "ColorRed";
+ format ["btc_ied_%1", _sel_pos] setMarkerText "IED";//format ["ied %1", btc_hideouts_id];
+ format ["btc_ied_%1", _sel_pos] setMarkerSize [0.8, 0.8];
+ };
+
+ if (btc_debug_log) then {diag_log format ["btc_fnc_ied_create_in_area: _this = %1 ; POS %2 ; N %3(%4)",_this,_sel_pos,_i,_n];};
+
+ _array pushBack [_sel_pos,_type_ied,_dir,_active];
};
_active = false;
for "_i" from 1 to _n do {
- private ["_sel_pos","_type_ied","_dir"];
- _sel_pos = _pos;
- _sel_pos = [_pos, _area] call btc_fnc_randomize_pos;
- _sel_pos = [_sel_pos,30,150,1,false] call btc_fnc_findsafepos;
+ private ["_sel_pos","_type_ied","_dir"];
+ _sel_pos = _pos;
+ _sel_pos = [_pos, _area] call btc_fnc_randomize_pos;
+ _sel_pos = [_sel_pos,30,150,1,false] call btc_fnc_findsafepos;
- _type_ied = selectRandom btc_model_ieds;
+ _type_ied = selectRandom btc_model_ieds;
- _dir = (random 360);
+ _dir = (random 360);
- if (random 1 > 0.3) then {
- private ["_roads","_obj","_ied_pos"];
- _roads = _sel_pos nearRoads _area;
- if (count _roads > 0) then {
- _obj = selectRandom _roads;
- if (random 1 > 0.5) then {_sel_pos = _obj modelToWorld [3,0,0];} else {_sel_pos = _obj modelToWorld [-3,0,0];};
- };
- };
+ if (random 1 > 0.3) then {
+ private ["_roads","_obj","_ied_pos"];
+ _roads = _sel_pos nearRoads _area;
+ if (count _roads > 0) then {
+ _obj = selectRandom _roads;
+ if (random 1 > 0.5) then {_sel_pos = _obj modelToWorld [3,0,0];} else {_sel_pos = _obj modelToWorld [-3,0,0];};
+ };
+ };
- if (btc_debug) then {
- //Marker
- _marker = createmarker [format ["btc_ied_%1", _sel_pos], _sel_pos];
- format ["btc_ied_%1", _sel_pos] setmarkertype "mil_warning";
- format ["btc_ied_%1", _sel_pos] setmarkercolor "ColorBlue";
- format ["btc_ied_%1", _sel_pos] setMarkerText "IED (fake)";//format ["ied %1", btc_hideouts_id];
- format ["btc_ied_%1", _sel_pos] setMarkerSize [0.8, 0.8];
- };
+ if (btc_debug) then {
+ //Marker
+ _marker = createmarker [format ["btc_ied_%1", _sel_pos], _sel_pos];
+ format ["btc_ied_%1", _sel_pos] setmarkertype "mil_warning";
+ format ["btc_ied_%1", _sel_pos] setmarkercolor "ColorBlue";
+ format ["btc_ied_%1", _sel_pos] setMarkerText "IED (fake)";//format ["ied %1", btc_hideouts_id];
+ format ["btc_ied_%1", _sel_pos] setMarkerSize [0.8, 0.8];
+ };
- if (btc_debug_log) then {diag_log format ["btc_fnc_ied_create_in_area: _this = %1 ; POS %2 ; N %3(%4)",_this,_sel_pos,_i,_n];};
+ if (btc_debug_log) then {diag_log format ["btc_fnc_ied_create_in_area: _this = %1 ; POS %2 ; N %3(%4)",_this,_sel_pos,_i,_n];};
- _array pushBack [_sel_pos,_type_ied,_dir,_active];
+ _array pushBack [_sel_pos,_type_ied,_dir,_active];
};
_city setVariable ["ieds",_array];
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_active.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_active.sqf
index 3f4fa5765..2cd16482b 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_active.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_active.sqf
@@ -27,9 +27,9 @@ _expl3 = "DemoCharge_Remote_Ammo" createVehicle (position _this);
_expl3 attachTo [_this, [0.1,0.1,0.15],"Pelvis"];
[[_expl1,_expl2,_expl3], {
- (_this select 0) setVectorDirAndUp [[0.5,0.5,0],[-0.5,0.5,0]];
- (_this select 1) setVectorDirAndUp [[1,0,0],[0,1,0]];
- (_this select 2) setVectorDirAndUp [[0.5,-0.5,0],[0.5,0.5,0]];
+ (_this select 0) setVectorDirAndUp [[0.5,0.5,0],[-0.5,0.5,0]];
+ (_this select 1) setVectorDirAndUp [[1,0,0],[0,1,0]];
+ (_this select 2) setVectorDirAndUp [[0.5,-0.5,0],[0.5,0.5,0]];
}] remoteExec ["call", 0, false];
(group _this) setBehaviour "CARELESS";
@@ -38,18 +38,18 @@ _expl3 attachTo [_this, [0.1,0.1,0.15],"Pelvis"];
if (btc_debug_log) then {diag_log format ["btc_fnc_ied_suicider_active: _this = %1; POS %2 START LOOP",_this,getpos _this];};
[{
- params ["_args", "_id"];
- _args params ["_suicider","_trigger"];
-
- if (Alive _suicider) then {
- private _array = _suicider nearEntities ["SoldierWB", 30];
- if !(_array isEqualTo []) then {
- _suicider doMove (position (_array select 0));//hint format ["MOVING %1",_man]; //_trigger setPos getPos _suicider;
- };
- } else {
- [_id] call CBA_fnc_removePerFrameHandler;
- deleteVehicle _trigger;
- group _suicider setVariable ["suicider",false];
- if (btc_debug_log) then {diag_log format ["btc_fnc_ied_suicider_active: _suicider = %1; POS %2 END LOOP",_suicider,getpos _suicider];};
- };
+ params ["_args", "_id"];
+ _args params ["_suicider","_trigger"];
+
+ if (Alive _suicider) then {
+ private _array = _suicider nearEntities ["SoldierWB", 30];
+ if !(_array isEqualTo []) then {
+ _suicider doMove (position (_array select 0));//hint format ["MOVING %1",_man]; //_trigger setPos getPos _suicider;
+ };
+ } else {
+ [_id] call CBA_fnc_removePerFrameHandler;
+ deleteVehicle _trigger;
+ group _suicider setVariable ["suicider",false];
+ if (btc_debug_log) then {diag_log format ["btc_fnc_ied_suicider_active: _suicider = %1; POS %2 END LOOP",_suicider,getpos _suicider];};
+ };
} , 0.5, [_this,_trigger]] call CBA_fnc_addPerFrameHandler;
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_create.sqf
index f85dd24ac..b03b2915e 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_create.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_create.sqf
@@ -1,49 +1,47 @@
-private ["_city","_area","_rpos","_unit_type","_group","_suicider"];
+params ["_city", "_area"];
-_city = _this select 0;
-_area = _this select 1;
-
-if (btc_debug_log) then
-{
- diag_log format ["btc_fnc_ied_suicider_create: _name = %1 _area %2",_city getVariable ["name","name"],_area];
+if (btc_debug_log) then {
+ diag_log format ["btc_fnc_ied_suicider_create: _name = %1 _area %2",_city getVariable ["name","name"],_area];
};
_pos = [];
switch (typeName _city) do
{
- case "ARRAY" :{_pos = _city;};
- case "STRING":{_pos = getMarkerPos _city;};
- case "OBJECT":{_pos = position _city;};
+ case "ARRAY" :{_pos = _city;};
+ case "STRING":{_pos = getMarkerPos _city;};
+ case "OBJECT":{_pos = position _city;};
};
-_rpos = [_pos, _area] call btc_fnc_randomize_pos;
+private _rpos = [_pos, _area] call btc_fnc_randomize_pos;
-_unit_type = selectRandom btc_civ_type_units;
+private _unit_type = selectRandom btc_civ_type_units;
-_group = createGroup civilian;
+private _group = createGroup civilian;
_group createUnit [_unit_type, _rpos, [], 0, "NONE"];
(leader _group) setpos _rpos;
-_group spawn btc_fnc_civ_addWP;
+[_group] spawn btc_fnc_civ_addWP;
_group setVariable ["suicider",true];
-_suicider = leader _group;
+private _suicider = leader _group;
_suicider call btc_fnc_civ_unit_create;
//Main check
[{
- params ["_args", "_id"];
- _args params ["_suicider"];
-
- if (Alive _suicider && !isNull _suicider) then {
- if (count (getpos _suicider nearEntities ["SoldierWB", 25]) > 0) then {
- [_id] call CBA_fnc_removePerFrameHandler;
- _suicider call btc_fnc_ied_suicider_active;
- };
- } else {
- [_id] call CBA_fnc_removePerFrameHandler;
- };
-} , 5, [_suicider]] call CBA_fnc_addPerFrameHandler;
\ No newline at end of file
+ params ["_args", "_id"];
+ _args params ["_suicider"];
+
+ if (Alive _suicider && !isNull _suicider) then {
+ if (count (getpos _suicider nearEntities ["SoldierWB", 25]) > 0) then {
+ [_id] call CBA_fnc_removePerFrameHandler;
+ _suicider call btc_fnc_ied_suicider_active;
+ };
+ } else {
+ [_id] call CBA_fnc_removePerFrameHandler;
+ };
+} , 5, [_suicider]] call CBA_fnc_addPerFrameHandler;
+
+leader _group
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/ask.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/ask.sqf
index b4dcbefa9..60f517bbc 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/ask.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/ask.sqf
@@ -1,26 +1,22 @@
-if (isNil {player getVariable "interpreter"}) exitWith {hint "I can't understand what is saying";};
+params ["_man","_isInterrogate"];
-private ["_man","_rep","_chance","_info","_info_type","_random","_complain","_isInterrogate"];
-
-_man = _this select 0;
-_isInterrogate = _this select 1;
+if (isNil {player getVariable "interpreter"}) exitWith {[name _man,localize "STR_BTC_HAM_CON_INFO_ASKREP_NOINTER"] spawn btc_fnc_showSubtitle;}; //I can't understand what is saying
if !(_man call ace_medical_fnc_isInStableCondition) exitWith {
- _random = (round random 3);
- _complain = switch _random do {
- case 0 : {"Help me!"};
- case 1 : {"I am suffering!"};
- case 2 : {"Injure!"};
- case 3 : {"I have open wound!"};
- };
- hint format ["%1 %2", name _man, _complain];
+ private _complain = selectRandom [
+ localize "STR_BTC_HAM_CON_INFO_ASK_WOUNDED1", //Help me!
+ localize "STR_BTC_HAM_CON_INFO_ASK_WOUNDED2", //I am suffering!
+ localize "STR_BTC_HAM_CON_INFO_ASK_WOUNDED3", //Injure!
+ localize "STR_BTC_HAM_CON_INFO_ASK_WOUNDED4" //I have open wound!
+ ];
+ [name _man, _complain] spawn btc_fnc_showSubtitle;
};
-if ((!isNil {_man getVariable "btc_already_asked"}) || (_man getVariable ["btc_already_interrogated",false])) exitWith {hint format ["%1 I already answered to your question!", name _man];};
+if ((!isNil {_man getVariable "btc_already_asked"}) || (_man getVariable ["btc_already_interrogated",false])) exitWith {[name _man, localize "STR_BTC_HAM_CON_INFO_ASK_ALLREADYANS"] spawn btc_fnc_showSubtitle;}; //I already answered to your question!
if ((round random 3) >= 2 || !_isInterrogate) then {
- _man setVariable ["btc_already_asked",true];
- if (_isInterrogate) then {_man setVariable ["btc_already_interrogated",true,true];};
+ _man setVariable ["btc_already_asked",true];
+ if (_isInterrogate) then {_man setVariable ["btc_already_interrogated",true,true];};
};
@@ -31,17 +27,18 @@ btc_int_ask_data = nil;
waitUntil {!(isNil "btc_int_ask_data")};
-_rep = btc_int_ask_data;
+private _rep = btc_int_ask_data;
-_chance = (random 300) + (random _rep + (_rep/2));
-_info = "";_info_type = "";
+private _chance = (random 300) + (random _rep + (_rep/2));
+private _info = "";
+private _info_type = "";
switch !(_isInterrogate) do {
- case (_chance < 200) : {_info_type = "NO";};
- case (_chance >= 200 && _chance < 600) : {_info_type = "FAKE";};
- case (_chance >= 600) : {_info_type = "REAL";};
+ case (_chance < 200) : {_info_type = "NO";};
+ case (_chance >= 200 && _chance < 600) : {_info_type = "FAKE";};
+ case (_chance >= 600) : {_info_type = "REAL";};
};
if (_isInterrogate) then {_info_type = "REAL";};
-if (_info_type == "NO") exitWith {hint format ["%1: I've no information for you", name _man];};
+if (_info_type == "NO") exitWith {[name _man, localize "STR_BTC_HAM_CON_INFO_ASK_NOINFO"] spawn btc_fnc_showSubtitle;}; //I've no information for you
btc_int_ask_data = nil;
[8,nil,player] remoteExec ["btc_fnc_int_ask_var", 2];
@@ -50,42 +47,41 @@ waitUntil {!(isNil "btc_int_ask_data")};
private _final_phase = btc_int_ask_data isEqualTo 0;
-_random = random 10;
-switch (true) do {
- case (_random < 4) : {_info = "TROOPS";};
- case (_random >= 4 && _random < 8) : {_info = ["HIDEOUT", "TROOPS"] select _final_phase;};
- case (_random >= 8) : {_info = "CACHE";};
-};
+private _info = selectRandomWeighted [
+ "TROOPS", 0.4,
+ ["HIDEOUT", "TROOPS"] select _final_phase, 0.4,
+ "CACHE", 0.2
+];
switch (_info_type) do {
- case "REAL" : {
- switch (_info) do {
- case "TROOPS" : {
- [(name _man),true] spawn btc_fnc_info_troops;
- };
- case "HIDEOUT" : {
- [(name _man),true] spawn btc_fnc_info_hideout_asked;
- };
- case "CACHE" : {
- hint format ["%1: I'll show you some hint on the map", name _man];
- sleep 2;
- [true,1] remoteExec ["btc_fnc_info_cache", 2];
- };
- };
- };
- case "FAKE" : {
- switch (_info) do {
- case "TROOPS" : {
- [(name _man),false] spawn btc_fnc_info_troops;
- };
- case "HIDEOUT" : {
- [(name _man),false] spawn btc_fnc_info_hideout_asked;
- };
- case "CACHE" : {
- hint format ["%1: I'll show you some hint on the map", name _man];
- sleep 2;
- [false,1] remoteExec ["btc_fnc_info_cache", 2];
- };
- };
- };
-};
\ No newline at end of file
+ case "REAL" : {
+ switch (_info) do {
+ case "TROOPS" : {
+ [(name _man),true] spawn btc_fnc_info_troops;
+ };
+ case "HIDEOUT" : {
+ [(name _man),true] spawn btc_fnc_info_hideout_asked;
+ };
+ case "CACHE" : {
+ [name _man, localize "STR_BTC_HAM_CON_INFO_ASK_CACHEMAP"] spawn btc_fnc_showSubtitle; //I'll show you some hint on the map
+ sleep 2;
+ [true,1] remoteExec ["btc_fnc_info_cache", 2];
+ };
+ };
+ };
+ case "FAKE" : {
+ switch (_info) do {
+ case "TROOPS" : {
+ [(name _man),false] spawn btc_fnc_info_troops;
+ };
+ case "HIDEOUT" : {
+ [(name _man),false] spawn btc_fnc_info_hideout_asked;
+ };
+ case "CACHE" : {
+ [name _man, localize "STR_BTC_HAM_CON_INFO_ASK_CACHEMAP"] spawn btc_fnc_showSubtitle; //I'll show you some hint on the map
+ sleep 2;
+ [false,1] remoteExec ["btc_fnc_info_cache", 2];
+ };
+ };
+ };
+};
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/ask_reputation.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/ask_reputation.sqf
index 6564e5ec7..50a81c796 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/ask_reputation.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/ask_reputation.sqf
@@ -1,8 +1,6 @@
-if (isNil {player getVariable "interpreter"}) exitWith {hint "I can't understand what is saying";};
+params ["_man"];
-private ["_man","_rep","_chance","_info","_info_type","_random","_text","_ho_left"];
-
-_man = _this select 0;
+if (isNil {player getVariable "interpreter"}) exitWith {[name _man,localize "STR_BTC_HAM_CON_INFO_ASKREP_NOINTER"] spawn btc_fnc_showSubtitle;}; //I can't understand what is saying
btc_int_ask_data = nil;
@@ -10,31 +8,31 @@ btc_int_ask_data = nil;
waitUntil {!(isNil "btc_int_ask_data")};
-_rep = btc_int_ask_data;
+private _rep = btc_int_ask_data;
+private "_ho_left";
if ((round random 1) isEqualTo 1) then {
- btc_int_ask_data = nil;
- [8,nil,player] remoteExec ["btc_fnc_int_ask_var", 2];
+ btc_int_ask_data = nil;
+ [8,nil,player] remoteExec ["btc_fnc_int_ask_var", 2];
- waitUntil {!(isNil "btc_int_ask_data")};
+ waitUntil {!(isNil "btc_int_ask_data")};
- _ho_left = format ["I heard about %1 hideouts left.", btc_int_ask_data];
+ _ho_left = format [localize "STR_BTC_HAM_CON_INFO_ASKREP_HIDEOUTS", btc_int_ask_data]; //I heard about %1 hideouts left.
} else {
- _ho_left = "";
+ _ho_left = "";
};
-switch (true) do {
- case (_rep < 200) : {_info_type = "very low";};
- case (_rep >= 200 && _rep < 500) : {_info_type = "low";};
- case (_rep >= 500 && _rep < 750) : {_info_type = "normal";};
- case (_rep >= 750) : {_info_type = "high";};
+private _info_type = switch (true) do {
+ case (_rep < 200): {localize "STR_BTC_HAM_CON_INFO_ASKREP_VLOW"}; //very low
+ case (_rep >= 200 && _rep < 500): {localize "STR_BTC_HAM_CON_INFO_ASKREP_LOW"}; //low
+ case (_rep >= 500 && _rep < 750): {localize "STR_BTC_HAM_CON_INFO_ASKREP_NORMAL"}; //normal
+ case (_rep >= 750): {localize "STR_BTC_HAM_CON_INFO_ASKREP_HIGH"}; //high
};
-_chance = (random 100);
-switch (true) do {
- case (_chance < 30) : {_text = "Sir, your reputation is";};
- case (_chance >= 30 && _chance < 60) : {_text = "Hello ! Your reputation is";};
- case (_chance >= 60) : {_text = format ["I am %1 and I think your reputation is", name _man];};
-};
+private _text = selectRandom [
+ localize "STR_BTC_HAM_CON_INFO_ASKREP_ASK1", //Sir, your reputation is
+ localize "STR_BTC_HAM_CON_INFO_ASKREP_ASK2", //Hello ! Your reputation is
+ localize "STR_BTC_HAM_CON_INFO_ASKREP_ASK3" //I think your reputation is
+];
-hint format ["%1 %2. %3", _text, _info_type, _ho_left];
\ No newline at end of file
+[name _man,format ["%1 %2. %3", _text, _info_type, _ho_left]] spawn btc_fnc_showSubtitle;
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/cache.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/cache.sqf
index f22a6e13a..1fa1fb3c3 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/cache.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/cache.sqf
@@ -4,17 +4,17 @@ private ["_pos","_marker"];
if (isNull btc_cache_obj) exitWith {};
_pos = [
- ((btc_cache_pos select 0) + (random btc_cache_info - random btc_cache_info)),
- ((btc_cache_pos select 1) + (random btc_cache_info - random btc_cache_info))
+ ((btc_cache_pos select 0) + (random btc_cache_info - random btc_cache_info)),
+ ((btc_cache_pos select 1) + (random btc_cache_info - random btc_cache_info))
];
if !(_this select 0) then {
- private "_axis";
- _axis = getNumber (configfile >> "CfgWorlds" >> worldName >> "mapSize") / 2;
- _pos = [
- (_axis + (random (btc_cache_info + _axis))),
- (_axis + (random (btc_cache_info + _axis)))
- ];
+ private "_axis";
+ _axis = getNumber (configfile >> "CfgWorlds" >> worldName >> "mapSize") / 2;
+ _pos = [
+ (_axis + (random (btc_cache_info + _axis))),
+ (_axis + (random (btc_cache_info + _axis)))
+ ];
};
_marker = createmarker [format ["%1", _pos], _pos];
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/give_intel.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/give_intel.sqf
index 5cc859560..eb8af646e 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/give_intel.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/give_intel.sqf
@@ -9,10 +9,10 @@ _n = random 100;
if (count btc_hideouts == 0) then {_n = (btc_info_intel_type select 0) - 10;};
switch (true) do {
- case (_n < (btc_info_intel_type select 0)) : {[true,0] spawn btc_fnc_info_cache;};//cache
- case (_n > (btc_info_intel_type select 1) && _n < 101) : {_id = 4;[true,0] spawn btc_fnc_info_cache;[true] spawn btc_fnc_info_hideout;};//both
- case (_n > (btc_info_intel_type select 0) && _n < (btc_info_intel_type select 1)) : {_id = 5;[true] spawn btc_fnc_info_hideout;};//hd
- default {_id = 0;[3] remoteExec ["btc_fnc_show_hint", (_this select 0)];};
+ case (_n < (btc_info_intel_type select 0)) : {[true,0] spawn btc_fnc_info_cache;};//cache
+ case (_n > (btc_info_intel_type select 1) && _n < 101) : {_id = 4;[true,0] spawn btc_fnc_info_cache;[true] spawn btc_fnc_info_hideout;};//both
+ case (_n > (btc_info_intel_type select 0) && _n < (btc_info_intel_type select 1)) : {_id = 5;[true] spawn btc_fnc_info_hideout;};//hd
+ default {_id = 0;[3] remoteExec ["btc_fnc_show_hint", (_this select 0)];};
};
if (_id == 0) exitWith {};
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/has_intel.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/has_intel.sqf
index 25f120a87..f3500ee58 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/has_intel.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/has_intel.sqf
@@ -4,15 +4,15 @@ private ["_body","_asker"];
_body = _this select 0;
_asker = _this select 1;
-if (btc_debug_log) then {diag_log format ["getVariable intel has_intel: %1",_body getVariable "intel"];};
+if (btc_debug_log) then {diag_log format ["getVariable intel has_intel: %1",_body getVariable "intel"];};
if (_body getVariable ["intel",false] && !(_body getVariable ["btc_already_interrogated",false])) then {
- _body setVariable ["intel",false];
- if (isServer) then {
- [_asker] spawn btc_fnc_info_give_intel;
- } else {
- [_asker] remoteExec ["btc_fnc_info_give_intel", 2];
- };
+ _body setVariable ["intel",false];
+ if (isServer) then {
+ [_asker] spawn btc_fnc_info_give_intel;
+ } else {
+ [_asker] remoteExec ["btc_fnc_info_give_intel", 2];
+ };
} else {
- [3] remoteExec ["btc_fnc_show_hint", _asker];
+ [3] remoteExec ["btc_fnc_show_hint", _asker];
};
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/hideout.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/hideout.sqf
index 6e4940881..00be419b8 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/hideout.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/hideout.sqf
@@ -6,13 +6,13 @@ private ["_ho","_pos","_marker","_array"];
_ho = btc_hq;
if (isNull _ho) then {
- _ho = selectRandom btc_hideouts;
- btc_hq =_ho;
+ _ho = selectRandom btc_hideouts;
+ btc_hq =_ho;
};
_pos = [
- (((getPos _ho) select 0) + (random btc_info_hideout_radius - random btc_info_hideout_radius)),
- (((getPos _ho) select 1) + (random btc_info_hideout_radius - random btc_info_hideout_radius))
+ (((getPos _ho) select 0) + (random btc_info_hideout_radius - random btc_info_hideout_radius)),
+ (((getPos _ho) select 1) + (random btc_info_hideout_radius - random btc_info_hideout_radius))
];
_marker = createmarker [format ["%1", _pos], _pos];
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/hideout_asked.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/hideout_asked.sqf
index 3f71ebf23..a78855c22 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/hideout_asked.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/hideout_asked.sqf
@@ -1,41 +1,32 @@
-
-private ["_name","_is_real","_text"];
-
-_name = _this select 0;
-_is_real = _this select 1;
-
-_text = "";
-
-switch _is_real do {
- case true : {
- btc_int_ask_data = nil;
- [1,[],player] remoteExec ["btc_fnc_int_ask_var", 2];
-
- waitUntil {!(isNil "btc_int_ask_data")};
-
- if (!isNull btc_int_ask_data) then {
- private ["_hideout","_dist","_dir","_card"];
- _hideout = btc_int_ask_data;
- _dist = (player distance _hideout) + ((random 500) - (random 500));
- _dir = player getDir _hideout;
- _card = [_dir] call btc_fnc_get_cardinal;
- _text = format ["%1: I saw a lot of militia activity towards %2, %3 meter from here. Probably there is an hideout!", _name,_card,round _dist];
- } else {_text = format ["%1: There are no hideout around here!", _name];};
- };
- case false : {
- if ((random 1) > 0.5) then {
- private ["_array","_dist","_dir"];
- _array = ["N","E","W","S","NW","NE","SE","SW"];
- _dir = selectRandom _array;
- _dist = 300 + (random 2000);
- _text = format ["%1: I saw a lot of militia activity towards %2, %3 meter from here. Probably there is an hideout!", _name,_dir,round _dist];
- } else {
- _text = format ["%1: There are no hideout around here!", _name];
- };
- };
+params ["_name","_is_real",["_text",""]];
+
+if (_is_real) then {
+ btc_int_ask_data = nil;
+ [1,[],player] remoteExec ["btc_fnc_int_ask_var", 2];
+
+ waitUntil {!(isNil "btc_int_ask_data")};
+
+ if (!isNull btc_int_ask_data) then {
+ private _hideout = btc_int_ask_data;
+ private _dist = (player distance _hideout) + ((random 500) - (random 500));
+ private _dir = player getDir _hideout;
+ private _card = [_dir] call btc_fnc_get_cardinal;
+ _text = format [localize "STR_BTC_HAM_CON_INFO_ASKHIDEOUT_TRUE", _card,round _dist]; //I saw a lot of militia activity towards %2, %3 meter from here. Probably there is an hideout!
+ } else {
+ _text = localize "STR_BTC_HAM_CON_INFO_ASKHIDEOUT_FALSE"; //There are no hideout around here!
+ };
+} else {
+ if ((random 1) > 0.5) then {
+ private _array = ["N","E","W","S","NW","NE","SE","SW"];
+ private _dir = selectRandom _array;
+ private _dist = 300 + (random 2000);
+ _text = format [localize "STR_BTC_HAM_CON_INFO_ASKHIDEOUT_TRUE", _dir,round _dist]; //I saw a lot of militia activity towards %2, %3 meter from here. Probably there is an hideout!
+ } else {
+ _text = localize "STR_BTC_HAM_CON_INFO_ASKHIDEOUT_FALSE"; //There are no hideout around here!
+ };
};
if (btc_debug) then {_text = _text + " - " + str(_is_real)};
-hint _text;
-player createDiaryRecord ["Diary log", [str(mapGridPosition player) + " - " + _name, _text]];
\ No newline at end of file
+[_name, _text] spawn btc_fnc_showSubtitle;
+player createDiaryRecord [localize "STR_BTC_HAM_CON_INFO_ASKHIDEOUT_DIARYLOG", [str(mapGridPosition player) + " - " + _name, _text]]; //Diary log
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/search_for_intel.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/search_for_intel.sqf
index 82d799a27..8dbaaa2cd 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/search_for_intel.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/search_for_intel.sqf
@@ -1,8 +1,10 @@
-[btc_int_search_intel_time,"Searching for intel . . .",_this] call btc_fnc_int_action_result;
+params ["_target"];
-waitUntil {!(isNil "btc_int_action_result")};
+private _onFinish = {
+ params ["_args"];
+ _args params ["_target", "_player"];
+ [_target, _player] remoteExec ["btc_fnc_info_has_intel", 2];
+};
-if (btc_int_action_result) then {
- [_this,player] remoteExec ["btc_fnc_info_has_intel", 2];
-};
\ No newline at end of file
+[btc_int_search_intel_time, [_target, player], _onFinish, {}, localize "STR_BTC_HAM_CON_INFO_SEARCH_BAR"] call btc_fnc_int_action_result;
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/troops.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/troops.sqf
index e16659de3..90e640102 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/troops.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/troops.sqf
@@ -1,41 +1,28 @@
+params ["_name","_is_real",["_text",""]];
-private ["_name","_is_real","_text"];
-
-_name = _this select 0;
-_is_real = _this select 1;
-
-_text = "";
-
-switch _is_real do
-{
- case true : {
- private ["_array"];
- _array = (position player) nearEntities [btc_type_units, 2500];
- if (count _array > 0) then {
- private ["_man","_dist","_dir","_card"];
- _man = _array select 0;
- _dist = (player distance _man) + ((random 150) - (random 150));
- _dir = player getDir _man;
- _card = [_dir] call btc_fnc_get_cardinal;
- _text = format ["%1: I saw some militia movement %2, %3 meter from here", _name,_card,round _dist];
- } else {
- _text = format ["%1: I didn't see any militia movement in this area!", _name];
- };
- };
- case false : {
- if ((random 1) > 0.5) then {
- private ["_array","_dist","_dir"];
- _array = ["N","E","W","S","NW","NE","SE","SW"];
- _dir = selectRandom _array;
- _dist = (500 + (random 1000));
- _text = format ["%1: I saw some militia movement %2, %3 meter from here", _name,_dir,round _dist];
- } else {
- _text = format ["%1: I didn't see any militia movement in this area!", _name];
- };
- };
+if (_is_real) then {
+ private _array = (position player) nearEntities [btc_type_units, 2500];
+ if (count _array > 0) then {
+ private _man = _array select 0;
+ private _dist = (player distance _man) + ((random 150) - (random 150));
+ private _dir = player getDir _man;
+ private _card = [_dir] call btc_fnc_get_cardinal;
+ _text = format [localize "STR_BTC_HAM_CON_INFO_TROOPS_TRUE", _card,round _dist]; //I saw some militia movement %2, %3 meter from here
+ } else {
+ _text = localize "STR_BTC_HAM_CON_INFO_TROOPS_FALSE"; //I didn't see any militia movement in this area!
+ };
+} else {
+ if ((random 1) > 0.5) then {
+ private _array = ["N","E","W","S","NW","NE","SE","SW"];
+ private _dir = selectRandom _array;
+ private _dist = 500 + (random 1000);
+ _text = format [(localize "STR_BTC_HAM_CON_INFO_TROOPS_TRUE"), _dir,round _dist]; //I saw some militia movement %2, %3 meter from here
+ } else {
+ _text = localize "STR_BTC_HAM_CON_INFO_TROOPS_FALSE"; //I didn't see any militia movement in this area!
+ };
};
if (btc_debug) then {_text = _text + " - " + str(_is_real)};
-hint _text;
-player createDiaryRecord ["Diary log", [str(mapGridPosition player) + " - " + _name, _text]];
\ No newline at end of file
+[_name, _text] spawn btc_fnc_showSubtitle;
+player createDiaryRecord [localize "STR_BTC_HAM_CON_INFO_ASKHIDEOUT_DIARYLOG", [str(mapGridPosition player) + " - " + _name, _text]]; //Diary log
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/action_result.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/action_result.sqf
index 22e76f38e..717525160 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/action_result.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/action_result.sqf
@@ -1,34 +1,17 @@
-btc_int_action_result = nil;
-_this spawn {
- private ["_time","_title","_target","_radius","_ctrlProgressBar","_ctrlProgressBarTitle"];
- _time = _this select 0;
- _title = _this select 1;
- _target = _this select 2;
- _radius = 7;
- if (_target isKindOf "Man") then {_radius = 4;};
- if (_target isKindOf "Helicopter") then {_radius = 20;};
- if (count _this > 3) then {_radius = _this select 3;};
- disableSerialization;
- createDialog "btc_dlg_progressBar";
- _ctrlProgressBar = uiNamespace getVariable "btc_dlg_ctrlProgressBar";
- _ctrlProgressBarTitle = uiNamespace getVariable "btc_dlg_title";
- _ctrlProgressBar ctrlSetPosition [
- safezoneX + 0.1 * safezoneW,
- safezoneY + 0.1 * safezoneH,
- 0.8 * safezoneW,
- 0.01 * safezoneH
- ];
- _ctrlProgressBar ctrlCommit (_time / accTime);
- _ctrlProgressBarTitle ctrlSetText _title;
+params ["_totalTime", "_args", "_onFinish", "_onFail", ["_localizedTitle", ""]];
+_args params ["_target"];
+private _radius = 7;
+if (_target isKindOf "Man") then {_radius = 4;};
+if (_target isKindOf "Helicopter") then {_radius = 20;};
- _time = time + _time;
- waitUntil {
- !dialog || {!alive player} || {player getVariable ["ACE_isUnconscious",false]} || {time > _time} || {_target distance player > _radius}
- };
+_args pushBack _radius;
- closeDialog 0;
+_condition = {
+ params ["_args"];
+ _args params ["_target", "_player"];
+ _target distance _player < (_args select ((count _args) - 1))
+};
- if (time > _time) then {btc_int_action_result = true} else {btc_int_action_result = false};
-};
\ No newline at end of file
+[_totalTime, _args, _onFinish, _onFail, _localizedTitle, _condition, ["isnotinside"]] call ace_common_fnc_progressBar;
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf
index c32237707..b5cb046d1 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf
@@ -1,88 +1,103 @@
-private ["_action"];
-
//Database
-//_action = ["Database","Database","",{},{serverCommandAvailable "#logout"}] call ace_interact_menu_fnc_createAction;
-_action = ["Database","Database","\A3\ui_f\data\igui\cfg\simpleTasks\letters\D_ca.paa",{},{serverCommandAvailable "#logout" || !isMultiplayer}] call ace_interact_menu_fnc_createAction;
+private _action = ["Database", localize "STR_BTC_HAM_ACTION_DATA_MAIN", "\A3\ui_f\data\igui\cfg\simpleTasks\letters\D_ca.paa", {}, {serverCommandAvailable "#logout" || !isMultiplayer}] call ace_interact_menu_fnc_createAction;
[player, 1, ["ACE_SelfActions"], _action] call ace_interact_menu_fnc_addActionToObject;
-_action = ["request_save","Save","\A3\ui_f\data\igui\cfg\simpleTasks\types\download_ca.paa",{call btc_fnc_db_request_save;},{true}] call ace_interact_menu_fnc_createAction;
+_action = ["request_save", localize "STR_BTC_HAM_ACTION_DATA_SAVE", "\A3\ui_f\data\igui\cfg\simpleTasks\types\download_ca.paa", {call btc_fnc_db_request_save;}, {true}] call ace_interact_menu_fnc_createAction;
[player, 1, ["ACE_SelfActions","Database"], _action] call ace_interact_menu_fnc_addActionToObject;
-_action = ["request_delete","Delete","\A3\ui_f\data\igui\cfg\simpleTasks\types\exit_ca.paa",{call btc_fnc_db_request_delete;},{true}] call ace_interact_menu_fnc_createAction;
+_action = ["request_delete", localize "STR_BTC_HAM_ACTION_DATA_DELETE", "\A3\ui_f\data\igui\cfg\simpleTasks\types\exit_ca.paa", {call btc_fnc_db_request_delete;}, {true}] call ace_interact_menu_fnc_createAction;
[player, 1, ["ACE_SelfActions","Database"], _action] call ace_interact_menu_fnc_addActionToObject;
//Intel
-_action = ["Search_intel", "Search for intel", "\A3\ui_f\data\igui\cfg\simpleTasks\types\search_ca.paa", {(_this select 0) spawn btc_fnc_info_search_for_intel;}, {!Alive (_this select 0)}] call ace_interact_menu_fnc_createAction;
+_action = ["Search_intel", localize "STR_BTC_HAM_ACTION_INTEL_SEARCH", "\A3\ui_f\data\igui\cfg\simpleTasks\types\search_ca.paa", {(_this select 0) spawn btc_fnc_info_search_for_intel;}, {!Alive (_this select 0)}] call ace_interact_menu_fnc_createAction;
{[_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass;} foreach (btc_type_units + btc_type_divers);
-_action = ["Interrogate_intel", "Interrogate", "\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\instructor_ca.paa", {[(_this select 0),true] spawn btc_fnc_info_ask;}, {(Alive (_this select 0) && {[(_this select 0)] call ace_common_fnc_isAwake} && captive (_this select 0))}] call ace_interact_menu_fnc_createAction;
+_action = ["Interrogate_intel", localize "STR_BTC_HAM_ACTION_INTEL_INTERROGATE", "\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\instructor_ca.paa", {[(_this select 0),true] spawn btc_fnc_info_ask;}, {Alive (_this select 0) && {[_this select 0] call ace_common_fnc_isAwake} && captive (_this select 0)}] call ace_interact_menu_fnc_createAction;
{[_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass;} foreach (btc_type_units + btc_type_divers);
//Log point
-_action = ["Logistic","Logistic","\A3\ui_f\data\igui\cfg\simpleTasks\letters\L_ca.paa",{},{true}] call ace_interact_menu_fnc_createAction;
+_action = ["Logistic", localize "STR_BTC_HAM_ACTION_LOC_MAIN", "\A3\ui_f\data\igui\cfg\simpleTasks\letters\L_ca.paa", {}, {true}] call ace_interact_menu_fnc_createAction;
[btc_create_object, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToObject;
-_action = ["Require_object", "Require object", "\A3\ui_f\data\igui\cfg\simpleTasks\types\rearm_ca.paa", {[btc_create_object_point] spawn btc_fnc_log_create}, {true}, {}, [], [0,0,0.4], 5] call ace_interact_menu_fnc_createAction;
+_action = ["Require_object", localize "STR_BTC_HAM_ACTION_LOGPOINT_REQOBJ", "\A3\ui_f\data\igui\cfg\simpleTasks\types\rearm_ca.paa", {[btc_create_object_point] spawn btc_fnc_log_create}, {true}, {}, [], [0,0,0.4], 5] call ace_interact_menu_fnc_createAction;
[btc_create_object, 0, ["ACE_MainActions","Logistic"], _action] call ace_interact_menu_fnc_addActionToObject;
-_action = ["Repair_wreck", "Repair wreck", "\A3\ui_f\data\igui\cfg\simpleTasks\types\repair_ca.paa", {[btc_create_object_point] spawn btc_fnc_log_repair_wreck}, {true}, {}, [], [0,0,0], 5] call ace_interact_menu_fnc_createAction;
+_action = ["Repair_wreck", localize "STR_BTC_HAM_ACTION_LOGPOINT_REPWRECK", "\A3\ui_f\data\igui\cfg\simpleTasks\types\repair_ca.paa", {[btc_create_object_point] spawn btc_fnc_log_repair_wreck}, {true}, {}, [], [0,0,0], 5] call ace_interact_menu_fnc_createAction;
[btc_create_object, 0, ["ACE_MainActions","Logistic"], _action] call ace_interact_menu_fnc_addActionToObject;
-_action = ["Require_veh", "Require vehicle", "\A3\ui_f\data\map\vehicleicons\iconCar_ca.paa", {[btc_create_object_point] spawn btc_fnc_log_garage}, {(serverCommandAvailable "#logout" || !isMultiplayer) and btc_p_garage}, {}, [], [0,0,0], 5] call ace_interact_menu_fnc_createAction;
+_action = ["Require_veh", localize "STR_BTC_HAM_ACTION_LOGPOINT_REQVEH", "\A3\ui_f\data\map\vehicleicons\iconCar_ca.paa", {[btc_create_object_point] spawn btc_fnc_log_garage}, {(serverCommandAvailable "#logout" || !isMultiplayer) and btc_p_garage}, {}, [], [0,0,0], 5] call ace_interact_menu_fnc_createAction;
[btc_create_object, 0, ["ACE_MainActions","Logistic"], _action] call ace_interact_menu_fnc_addActionToObject;
+_action = ["Tool", localize "STR_BTC_HAM_ACTION_COPYPASTE_TOOL", "\A3\ui_f\data\igui\cfg\simpleTasks\letters\T_ca.paa", {}, {true}] call ace_interact_menu_fnc_createAction;
+[btc_create_object, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToObject;
+_action = ["Copy", localize "STR_BTC_HAM_ACTION_COPYPASTE_COPY", "\A3\ui_f\data\igui\cfg\simpleTasks\types\download_ca.paa", {[btc_create_object_point] spawn btc_fnc_log_copy}, {true}, {}, [], [0,0,0.4], 5] call ace_interact_menu_fnc_createAction;
+[btc_create_object, 0, ["ACE_MainActions","Tool"], _action] call ace_interact_menu_fnc_addActionToObject;
+_action = ["Paste", localize "STR_BTC_HAM_ACTION_COPYPASTE_PASTE", "\A3\ui_f\data\igui\cfg\simpleTasks\types\upload_ca.paa", {[btc_copy_container, btc_create_object_point] call btc_fnc_log_paste}, {!isNil "btc_copy_container"}, {}, [], [0,0,0.4], 5] call ace_interact_menu_fnc_createAction;
+[btc_create_object, 0, ["ACE_MainActions","Tool"], _action] call ace_interact_menu_fnc_addActionToObject;
//Logistic
-_action = ["Logistic","Logistic","\A3\ui_f\data\igui\cfg\simpleTasks\letters\L_ca.paa",{},{true}] call ace_interact_menu_fnc_createAction;
+_action = ["Logistic", localize "STR_BTC_HAM_ACTION_LOC_MAIN", "\A3\ui_f\data\igui\cfg\simpleTasks\letters\L_ca.paa", {}, {true}] call ace_interact_menu_fnc_createAction;
{[_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass;} foreach btc_log_def_loadable;
-_action = ["Load_in", "Load in", "a3\ui_f\data\IGUI\Cfg\Actions\loadVehicle_ca.paa", {(_this select 0) call btc_fnc_log_select;}, {true}] call ace_interact_menu_fnc_createAction;
+_action = ["Load_in", localize "STR_BTC_HAM_ACTION_LOGISTIC_LOADIN", "a3\ui_f\data\IGUI\Cfg\Actions\loadVehicle_ca.paa", {(_this select 0) call btc_fnc_log_select;}, {true}] call ace_interact_menu_fnc_createAction;
{[_x, 0, ["ACE_MainActions","Logistic"], _action] call ace_interact_menu_fnc_addActionToClass;} foreach btc_log_def_loadable;
-_action = ["Load_selected", "Load selected", "a3\ui_f\data\IGUI\Cfg\Actions\loadVehicle_ca.paa", {(_this select 0) spawn btc_fnc_log_load;}, {!isNull btc_log_object_selected && {btc_log_object_selected distance (_this select 0) <= btc_log_max_distance_load}}] call ace_interact_menu_fnc_createAction;
+_action = ["Load_selected", localize "STR_BTC_HAM_ACTION_LOGISTIC_LOADSEL", "a3\ui_f\data\IGUI\Cfg\Actions\loadVehicle_ca.paa", {(_this select 0) spawn btc_fnc_log_load;}, {!isNull btc_log_object_selected && {btc_log_object_selected distance (_this select 0) <= btc_log_max_distance_load}}] call ace_interact_menu_fnc_createAction;
{[_x, 0, ["ACE_MainActions","Logistic"], _action] call ace_interact_menu_fnc_addActionToClass;} foreach btc_log_def_can_load;
-_action = ["check_cargo", "Check cargo", "\A3\ui_f\data\igui\cfg\simpleTasks\types\search_ca.paa", {(_this select 0) spawn btc_fnc_log_check_cargo;}, {true}] call ace_interact_menu_fnc_createAction;
+_action = ["check_cargo", localize "STR_BTC_HAM_ACTION_LOGISTIC_CHECKCARGO", "\A3\ui_f\data\igui\cfg\simpleTasks\types\search_ca.paa", {(_this select 0) spawn btc_fnc_log_check_cargo;}, {true}] call ace_interact_menu_fnc_createAction;
{[_x, 0, ["ACE_MainActions","Logistic"], _action] call ace_interact_menu_fnc_addActionToClass;} foreach btc_log_def_can_load;
//FOB
-_action = ["Mount_FOB", "Mount FOB", "\A3\Ui_f\data\Map\Markers\NATO\b_hq.paa", {(_this select 0) spawn btc_fnc_fob_create}, {true}] call ace_interact_menu_fnc_createAction;
+_action = ["Mount_FOB", localize "STR_BTC_HAM_ACTION_FOB_MOUNT", "\A3\Ui_f\data\Map\Markers\NATO\b_hq.paa", {(_this select 0) spawn btc_fnc_fob_create}, {true}] call ace_interact_menu_fnc_createAction;
[btc_fob_mat, 0, ["ACE_MainActions","Logistic"], _action] call ace_interact_menu_fnc_addActionToClass;
-_action = ["Dismantle_FOB", "Dismantle FOB", "", {(_this select 0) spawn btc_fnc_fob_dismantle}, {true},{},[], [0,0,-2], 5] call ace_interact_menu_fnc_createAction;
+_action = ["Dismantle_FOB", localize "STR_BTC_HAM_ACTION_FOB_DISMANTLE", "", {(_this select 0) spawn btc_fnc_fob_dismantle}, {true}, {}, [], [0,0,-2], 5] call ace_interact_menu_fnc_createAction;
[btc_fob_flag, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass;
-_action = ["Place", "Place", "\A3\ui_f\data\map\markers\military\end_CA.paa", {(_this select 0) spawn btc_fnc_log_place}, {!btc_log_placing}] call ace_interact_menu_fnc_createAction;
+_action = ["Place", localize "STR_BTC_HAM_ACTION_FOB_PLACE", "\A3\ui_f\data\map\markers\military\end_CA.paa", {(_this select 0) spawn btc_fnc_log_place}, {!btc_log_placing}] call ace_interact_menu_fnc_createAction;
{[_x, 0, ["ACE_MainActions","Logistic"], _action] call ace_interact_menu_fnc_addActionToClass;} foreach btc_log_def_placeable;
//Orders
-_action = ["Civil_Orders","Civil Orders","\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa",{},{true}] call ace_interact_menu_fnc_createAction;
+_action = ["Civil_Orders", localize "STR_BTC_HAM_ACTION_ORDERS_MAIN", "\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa", {}, {true}] call ace_interact_menu_fnc_createAction;
[player, 1, ["ACE_SelfActions"], _action] call ace_interact_menu_fnc_addActionToObject;
-_action = ["Civil_Stop","Stop","\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa",{[1] call btc_fnc_int_orders;},{(vehicle player isEqualTo player)}] call ace_interact_menu_fnc_createAction;
+_action = ["Civil_Stop", localize "STR_BTC_HAM_ACTION_ORDERS_STOP", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk3_ca.paa", {[1] call btc_fnc_int_orders;}, {vehicle player isEqualTo player}] call ace_interact_menu_fnc_createAction;
[player, 1, ["ACE_SelfActions","Civil_Orders"], _action] call ace_interact_menu_fnc_addActionToObject;
-_action = ["Civil_Get_down","Get down","\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa",{[2] call btc_fnc_int_orders;},{(vehicle player isEqualTo player)}] call ace_interact_menu_fnc_createAction;
+_action = ["Civil_Get_down", localize "STR_BTC_HAM_ACTION_ORDERS_GETDOWN", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk2_ca.paa", {[2] call btc_fnc_int_orders;}, {vehicle player isEqualTo player}] call ace_interact_menu_fnc_createAction;
[player, 1, ["ACE_SelfActions","Civil_Orders"], _action] call ace_interact_menu_fnc_addActionToObject;
-_action = ["Civil_Go_away","Go away","\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa",{[3] call btc_fnc_int_orders;},{(vehicle player isEqualTo player)}] call ace_interact_menu_fnc_createAction;
+_action = ["Civil_Go_away", localize "STR_BTC_HAM_ACTION_ORDERS_GOAWAY", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk1_ca.paa", {[3] call btc_fnc_int_orders;}, {vehicle player isEqualTo player}] call ace_interact_menu_fnc_createAction;
[player, 1, ["ACE_SelfActions","Civil_Orders"], _action] call ace_interact_menu_fnc_addActionToObject;
-{
- _action = ["Civil_Orders","Civil Orders","\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa",{},{true}] call ace_interact_menu_fnc_createAction;
- [_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass;
- _action = ["Civil_Stop", "Stop", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa", {[1,(_this select 0)] call btc_fnc_int_orders;}, {Alive (_this select 0)}] call ace_interact_menu_fnc_createAction;
- [_x, 0, ["ACE_MainActions","Civil_Orders"], _action] call ace_interact_menu_fnc_addActionToClass;
- _action = ["Civil_Get_down", "Get down", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa", {[2,(_this select 0)] call btc_fnc_int_orders;}, {Alive (_this select 0)}] call ace_interact_menu_fnc_createAction;
- [_x, 0, ["ACE_MainActions","Civil_Orders"], _action] call ace_interact_menu_fnc_addActionToClass;
- _action = ["Civil_taxi", "Taxi", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa", {[4,(_this select 0)] spawn btc_fnc_int_orders;}, {((Alive (_this select 0)) && !((vehicle (_this select 0)) isEqualTo (_this select 0)))}] call ace_interact_menu_fnc_createAction;
- [_x, 0, ["ACE_MainActions","Civil_Orders"], _action] call ace_interact_menu_fnc_addActionToClass;
- _action = ["Civil_Go_away", "Go away", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa", {[3,(_this select 0)] call btc_fnc_int_orders;}, {Alive (_this select 0)}] call ace_interact_menu_fnc_createAction;
- [_x, 0, ["ACE_MainActions","Civil_Orders"], _action] call ace_interact_menu_fnc_addActionToClass;
- _action = ["Ask_Info", "Ask info", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa", {[(_this select 0),false] spawn btc_fnc_info_ask;}, {Alive (_this select 0) && {[(_this select 0)] call ace_common_fnc_isAwake} && {side (_this select 0) isEqualTo civilian}}] call ace_interact_menu_fnc_createAction;
- [_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass;
- _action = ["Ask_Reputation", "Ask Reputation", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa", {[(_this select 0)] spawn btc_fnc_info_ask_reputation;}, {Alive (_this select 0) && {[(_this select 0)] call ace_common_fnc_isAwake} && {side (_this select 0) isEqualTo civilian}}] call ace_interact_menu_fnc_createAction;
- [_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass;
+{ //Actions attachted to AI
+ _action = ["Civil_Orders", localize "STR_BTC_HAM_ACTION_ORDERS_MAIN", "\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa", {}, {true}] call ace_interact_menu_fnc_createAction;
+ [_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass;
+ _action = ["Civil_taxi", localize "STR_BTC_HAM_ACTION_ORDERS_TAXI", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk4_ca.paa", {[4,(_this select 0)] spawn btc_fnc_int_orders;}, {(Alive (_this select 0)) && !((vehicle (_this select 0)) isEqualTo (_this select 0))}] call ace_interact_menu_fnc_createAction;
+ [_x, 0, ["ACE_MainActions","Civil_Orders"], _action] call ace_interact_menu_fnc_addActionToClass;
+ _action = ["Civil_Stop", localize "STR_BTC_HAM_ACTION_ORDERS_STOP", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk3_ca.paa", {[1,(_this select 0)] call btc_fnc_int_orders;}, {Alive (_this select 0)}] call ace_interact_menu_fnc_createAction;
+ [_x, 0, ["ACE_MainActions","Civil_Orders"], _action] call ace_interact_menu_fnc_addActionToClass;
+ _action = ["Civil_Get_down", localize "STR_BTC_HAM_ACTION_ORDERS_GETDOWN", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk2_ca.paa", {[2,(_this select 0)] call btc_fnc_int_orders;}, {Alive (_this select 0)}] call ace_interact_menu_fnc_createAction;
+ [_x, 0, ["ACE_MainActions","Civil_Orders"], _action] call ace_interact_menu_fnc_addActionToClass;
+ _action = ["Civil_Go_away", localize "STR_BTC_HAM_ACTION_ORDERS_GOAWAY", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk1_ca.paa", {[3,(_this select 0)] call btc_fnc_int_orders;}, {Alive (_this select 0)}] call ace_interact_menu_fnc_createAction;
+ [_x, 0, ["ACE_MainActions","Civil_Orders"], _action] call ace_interact_menu_fnc_addActionToClass;
+ _action = ["Ask_Info", localize "STR_BTC_HAM_ACTION_ORDERS_ASKINFO", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa", {[(_this select 0),false] spawn btc_fnc_info_ask;}, {Alive (_this select 0) && {[_this select 0] call ace_common_fnc_isAwake} && {side (_this select 0) isEqualTo civilian}}] call ace_interact_menu_fnc_createAction;
+ [_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass;
+ _action = ["Ask_Reputation", localize "STR_BTC_HAM_ACTION_ORDERS_ASKREP", "\A3\ui_f\data\igui\cfg\simpleTasks\types\talk_ca.paa", {[_this select 0] spawn btc_fnc_info_ask_reputation;}, {Alive (_this select 0) && {[_this select 0] call ace_common_fnc_isAwake} && {side (_this select 0) isEqualTo civilian}}] call ace_interact_menu_fnc_createAction;
+ [_x, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass;
+
+ //remove ace3 "get down" order
+ [_x, 0, ["ACE_MainActions","ACE_GetDown"]] call ace_interact_menu_fnc_removeActionFromClass;
+ //remove ace3 "go away" order
+ [_x, 0, ["ACE_MainActions","ACE_SendAway"]] call ace_interact_menu_fnc_removeActionFromClass;
} forEach btc_civ_type_units;
//Side missions
-_action = ["side_mission","Side mission","\A3\ui_f\data\igui\cfg\simpleTasks\types\whiteboard_ca.paa",{},{!(isNil {player getVariable "side_mission"})}] call ace_interact_menu_fnc_createAction;
+_action = ["side_mission", localize "STR_BTC_HAM_ACTION_SIDEMISSION_MAIN", "\A3\ui_f\data\igui\cfg\simpleTasks\types\whiteboard_ca.paa", {}, {!(isNil {player getVariable "side_mission"})}] call ace_interact_menu_fnc_createAction;
[player, 1, ["ACE_SelfActions"], _action] call ace_interact_menu_fnc_addActionToObject;
-_action = ["side_mission","Abort","\A3\ui_f\data\igui\cfg\simpleTasks\types\exit_ca.paa",{[] call btc_fnc_side_abort},{!(isNil {player getVariable "side_mission"}) && {btc_side_assigned}}] call ace_interact_menu_fnc_createAction;
+_action = ["side_mission_abort", localize "STR_BTC_HAM_ACTION_SIDEMISSION_ABORT", "\A3\ui_f\data\igui\cfg\simpleTasks\types\exit_ca.paa", {[] call btc_fnc_side_abort}, {!(isNil {player getVariable "side_mission"}) && {btc_side_assigned}}] call ace_interact_menu_fnc_createAction;
[player, 1, ["ACE_SelfActions", "side_mission"], _action] call ace_interact_menu_fnc_addActionToObject;
-_action = ["side_mission","Request","\A3\ui_f\data\igui\cfg\simpleTasks\types\default_ca.paa",{[] spawn btc_fnc_side_request},{!(isNil {player getVariable "side_mission"}) && {!btc_side_assigned}}] call ace_interact_menu_fnc_createAction;
+_action = ["side_mission_request", localize "STR_BTC_HAM_ACTION_SIDEMISSION_REQ", "\A3\ui_f\data\igui\cfg\simpleTasks\types\default_ca.paa", {[] spawn btc_fnc_side_request}, {!(isNil {player getVariable "side_mission"}) && {!btc_side_assigned}}] call ace_interact_menu_fnc_createAction;
[player, 1, ["ACE_SelfActions", "side_mission"], _action] call ace_interact_menu_fnc_addActionToObject;
//Re-deploy
-_action = ["fob_redeploy", "Re-deploy", "\A3\ui_f\data\igui\cfg\simpleTasks\types\run_ca.paa", {[] spawn btc_fnc_fob_redeploy}, {btc_p_redeploy}, {}, [], [0.4,0,0.4], 5] call ace_interact_menu_fnc_createAction;
+_action = ["fob_redeploy", localize "STR_BTC_HAM_ACTION_REDEPLOY_MAIN", "\A3\ui_f\data\igui\cfg\simpleTasks\types\run_ca.paa", {[] spawn btc_fnc_fob_redeploy}, {btc_p_redeploy}, {}, [], [0.4,0,0.4], 5] call ace_interact_menu_fnc_createAction;
[btc_gear_object, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToObject;
-btc_gear_object addAction ["
CR: %2
Interact with a vehicle to load it in!",_displayName,[btc_log_object_selected] call btc_fnc_log_get_rc];
\ No newline at end of file
+hint parseText format [(localize "STR_BTC_HAM_LOG_SEL_HINT"),_displayName,[btc_log_object_selected] call btc_fnc_log_get_rc]; //%1 selected
CR: %2
Interact with a vehicle to load it in!
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf
index 34a7181ab..12763eb10 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_repair_wreck.sqf
@@ -10,9 +10,9 @@ _marker = _veh getVariable ["marker",""];
btc_vehicles = btc_vehicles - [_veh];
-if (_marker != "") then {deleteMarker _marker;};
+if (_marker != "") then {deleteMarker _marker; remoteExec ["", _marker];};
deleteVehicle _veh;
sleep 1;
_veh = [_type,[_pos select 0, _pos select 1, 0.5 + (_pos select 2)],_dir,_textures] call btc_fnc_log_createVehicle;
-_veh
\ No newline at end of file
+_veh
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_unload.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_unload.sqf
index be56dd091..279d8068e 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_unload.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/server_unload.sqf
@@ -10,12 +10,12 @@ _cargo = _veh getVariable ["cargo",[]];
_found = false;
{
- if (!_found) then {
- if (typeOf _x == _obj_type) then {
- _obj = _x;
- _found = true;//diag_log format ["_found %1 - _x %2 - _obj %3",_found,_x,_obj];
- };
- };
+ if (!_found) then {
+ if (typeOf _x == _obj_type) then {
+ _obj = _x;
+ _found = true;//diag_log format ["_found %1 - _x %2 - _obj %3",_found,_x,_obj];
+ };
+ };
} foreach _cargo;
if (isNull _obj) exitWith {hint "null";};
@@ -34,17 +34,17 @@ _obj attachTo [_veh,[0, -(sizeOf typeOf _veh + sizeOf _obj_type)/2,-0.2]];sleep
_obj allowDamage false;
switch (true) do {
- case (_height >= 20): {
- [_veh,_obj,"B_Parachute_02_F"] spawn btc_fnc_log_paradrop;
- };
- case ((_height < 20) && (_height >= 2)): {
- _obj setPos [getpos _obj select 0,getpos _obj select 1,(getpos _obj select 2) -1];
- sleep 0.1;
- _obj_fall = [_obj] spawn btc_fnc_log_obj_fall;
- };
- case (_height < 2): {
- _obj_fall = [_obj] call btc_fnc_log_obj_fall;
- };
+ case (_height >= 20): {
+ [_veh,_obj,"B_Parachute_02_F"] spawn btc_fnc_log_paradrop;
+ };
+ case ((_height < 20) && (_height >= 2)): {
+ _obj setPos [getpos _obj select 0,getpos _obj select 1,(getpos _obj select 2) -1];
+ sleep 0.1;
+ _obj_fall = [_obj] spawn btc_fnc_log_obj_fall;
+ };
+ case (_height < 2): {
+ _obj_fall = [_obj] call btc_fnc_log_obj_fall;
+ };
};
_obj allowDamage true;
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/tow.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/tow.sqf
index ded50a06a..0d3d75bbc 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/tow.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/tow.sqf
@@ -6,11 +6,28 @@ btc_int_ask_data = nil;
waitUntil {!(isNil "btc_int_ask_data")};
-if (!isNull btc_int_ask_data) exitWith {hint "This vehicle is already attached to another!"};
+if (!isNull btc_int_ask_data) exitWith {hint (localize "STR_BTC_HAM_LOG_TOW_ALREADYTOWED");}; //This vehicle is already attached to another!
-private _relative_pos = _tower worldToModel getPosATL btc_log_vehicle_selected;
+private _model_rear_tower = ([_tower] call btc_fnc_log_hitch_points) select 1;
+private _model_front_selected = ([btc_log_vehicle_selected] call btc_fnc_log_hitch_points) select 0;
+private _relative_pos = - (_model_front_selected select 1) + (_model_rear_tower select 1) - ((btc_log_vehicle_selected modeltoworld _model_front_selected) distance (_tower modeltoworld _model_rear_tower));
-btc_log_vehicle_selected attachTo [_tower, [0, _relative_pos select 1, 0.2 + ((btc_log_vehicle_selected modelToWorld [0,0,0]) select 2) - ((_tower modelToWorld [0,0,0]) select 2)]];
+btc_log_vehicle_selected attachTo [_tower, [0, _relative_pos, 0.2 + ((btc_log_vehicle_selected modelToWorld [0,0,0]) select 2) - ((_tower modelToWorld [0,0,0]) select 2)]];
+
+private _pos_rear = _tower modelToWorld _model_rear_tower;
+private _pos_front = btc_log_vehicle_selected modelToWorld _model_front_selected;
+private _distance = 0.3 + (_pos_front distance _pos_rear);
+_model_front_selected = _tower worldToModel _pos_front;
+
+ropeCreate [_tower, _model_rear_tower, _tower, [(_model_front_selected select 0) - 0.4, _model_front_selected select 1, _model_front_selected select 2], _distance];
+ropeCreate [_tower, _model_rear_tower, _tower, [(_model_front_selected select 0) + 0.4, _model_front_selected select 1, _model_front_selected select 2], _distance];
+
+private _eh = _tower addEventHandler ["RopeBreak", {
+ (_this select 0) removeEventHandler ["RopeBreak", _thisEventHandler];
+ (_this select 0) setVariable ["btc_eh", nil];
+ (_this select 0) spawn btc_fnc_log_unhook;
+}];
+_tower setVariable ["btc_eh", _eh];
[_tower,"tow",btc_log_vehicle_selected] remoteExec ["btc_fnc_int_change_var", 2];
-[btc_log_vehicle_selected,"tow",_tower] remoteExec ["btc_fnc_int_change_var", 2];
\ No newline at end of file
+[btc_log_vehicle_selected,"tow",_tower] remoteExec ["btc_fnc_int_change_var", 2];
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/unhook.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/unhook.sqf
index bcb8a9c13..407cf966a 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/unhook.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/unhook.sqf
@@ -3,30 +3,34 @@ private ["_veh","_towed","_pos"];
_veh = _this;
-deTach _veh;
-
-_pos = getpos _veh;
-if ((_pos select 2) < -0.05) then {
- _veh setpos [_pos select 0, _pos select 1, 0];
-};
-
btc_int_ask_data = nil;
[4,_veh,player] remoteExec ["btc_fnc_int_ask_var", 2];
waitUntil {!(isNil "btc_int_ask_data")};
-if (isNull btc_int_ask_data) exitWith {hint "This vehicle is not attached to another!"};
+if (isNull btc_int_ask_data) exitWith {hint (localize "STR_BTC_HAM_LOG_UNHOOK_NOROPE");}; //This vehicle is not attached to another!
+
+deTach _veh;
+_veh removeEventHandler ["RopeBreak", _veh getVariable ["btc_eh", -1]];
+(ropes _veh) apply {ropeDestroy _x};
+
+_pos = getpos _veh;
+if ((_pos select 2) < -0.05) then {
+ _veh setpos [_pos select 0, _pos select 1, 0];
+};
_towed = btc_int_ask_data;
deTach _towed;
+_towed removeEventHandler ["RopeBreak", _towed getVariable ["btc_eh", -1]];
+(ropes _towed) apply {ropeDestroy _x};
_pos = getpos _towed;
if ((_pos select 2) < -0.05) then {
- _towed setposasl [_pos select 0, _pos select 1, ((getPosASL _veh) select 2) - (_pos select 2)];
+ _towed setposasl [_pos select 0, _pos select 1, ((getPosASL _veh) select 2) - (_pos select 2)];
} else {
- _towed setVelocity [0, 0, 0.01];
+ _towed setVelocity [0, 0, 0.01];
};
[_towed,"tow",objNull] remoteExec ["btc_fnc_int_change_var", 2];
-[_veh,"tow",objNull] remoteExec ["btc_fnc_int_change_var", 2];
\ No newline at end of file
+[_veh,"tow",objNull] remoteExec ["btc_fnc_int_change_var", 2];
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/unload.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/unload.sqf
index 518d8ba0b..68cc84925 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/unload.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/unload.sqf
@@ -1,26 +1,28 @@
-private ["_obj_name","_obj_type","_veh","_ctrlProgressBar","_ctrlProgressBarTitle","_time"];
-
if (!Dialog) exitWith {};
-_obj_type = lbData [991, lbCurSel 991];
+private _obj_type = lbData [991, lbCurSel 991];
-_veh = btc_log_veh_selected;
+private _veh = btc_log_veh_selected;
closeDialog 0;
-_obj_name = getText (configFile >> "cfgVehicles" >> _obj_type >> "displayName");
+private _obj_name = getText (configFile >> "cfgVehicles" >> _obj_type >> "displayName");
if (_obj_name isEqualTo "ace_rearm_dummy_obj") then {_obj_name = "Ammo";};
+private _totalTime = 5;
if (vehicle player != player && {_veh isKindOf "Air"}) then {
- [[5,1] select (((getPos _veh) select 2) > 5),format ["Unloading %1. . .",_obj_name],_veh,99999] call btc_fnc_int_action_result;
-} else {
- [5,format ["Unloading %1. . .",_obj_name],_veh] call btc_fnc_int_action_result;
+ _totalTime = [5,1] select (((getPos _veh) select 2) > 5);
};
-waitUntil {!(isNil "btc_int_action_result")};
+private _onFinish = {
+ params ["_args"];
+ _args params ["_veh", "_player", "_obj_type", "_obj_name"];
+ [_obj_type,_veh] remoteExec ["btc_fnc_log_server_unload", 2];
+ hint format [localize "STR_BTC_HAM_LOG_UNLOAD_FIN", _obj_name, getText (configFile >> "cfgVehicles" >> typeOf _veh >> "displayName")];
+};
+private _onFail = {
+ hint (localize "STR_BTC_HAM_LOG_UNLOAD_ABORT");
+};
-if (btc_int_action_result) then {
- [_obj_type,_veh] remoteExec ["btc_fnc_log_server_unload", 2];
- hint format ["%1 has been unloaded from %2",_obj_name,getText (configFile >> "cfgVehicles" >> typeOf _veh >> "displayName")];
-} else {hint "Unloading aborted";};
\ No newline at end of file
+[_totalTime, [_veh, player, _obj_type, _obj_name], _onFinish, _onFail, format [localize "STR_BTC_HAM_LOG_UNLOAD_BAR", _obj_name]] call btc_fnc_int_action_result;
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/CuratorMilPlaced_s.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/CuratorMilPlaced_s.sqf
index 13797e5e9..4b078ec16 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/CuratorMilPlaced_s.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/CuratorMilPlaced_s.sqf
@@ -1,4 +1,4 @@
(_this select 0) call btc_fnc_mil_unit_create;
-if (btc_debug_log) then {diag_log format ["Curator create mil : %1",(_this select 0)];};
\ No newline at end of file
+if (btc_debug_log) then {diag_log format ["Curator create mil : %1",(_this select 0)];};
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/addWP.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/addWP.sqf
index 6add1ccad..d30e60cab 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/addWP.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/addWP.sqf
@@ -10,9 +10,9 @@ _wp = _this select 3;
_pos = [];
switch (typeName _city) do {
- case "ARRAY" :{_pos = _city;};
- case "STRING":{_pos = getMarkerPos _city;};
- case "OBJECT":{_pos = position _city;};
+ case "ARRAY" :{_pos = _city;};
+ case "STRING":{_pos = getMarkerPos _city;};
+ case "OBJECT":{_pos = position _city;};
};
_rpos = [_pos, _area] call btc_fnc_randomize_pos;
@@ -20,29 +20,29 @@ _rpos = [_pos, _area] call btc_fnc_randomize_pos;
_in_house = false;
switch (true) do {
- case (_wp < 0.3) : {
- private ["_houses","_house","_n_pos","_max_pos","_unit"];
- _houses = [_city,_area] call btc_fnc_getHouses;
- if (count _houses > 0) then {
- _in_house = true;
- _house = selectRandom _houses;
- [_group,_house] spawn btc_fnc_house_addWP;
- _group setVariable ["inHouse", typeOf _house];
- } else {[_group,_rpos,_area,"SAFE"] call btc_fnc_task_patrol;};
- };
- case (_wp > 0.3 && _wp < 0.75) : {
- [_group,_rpos,_area,"AWARE"] call btc_fnc_task_patrol;
- };
- case (_wp > 0.75) : {
- private ["_wpa"];
- _wpa = _group addWaypoint [_rpos, 0];
- _wpa setWaypointType "SENTRY";
- _wpa setWaypointCombatMode "RED";
- _wpa setWaypointBehaviour "AWARE";
- _wpa setWaypointFormation "WEDGE";
- _wpa setWaypointTimeout [18000, 36000, 54000];
- _wpa setWaypointStatements ["true","(group this) spawn btc_fnc_data_add_group;"];
- };
+ case (_wp < 0.3) : {
+ private ["_houses","_house","_n_pos","_max_pos","_unit"];
+ _houses = [_city,_area] call btc_fnc_getHouses;
+ if (count _houses > 0) then {
+ _in_house = true;
+ _house = selectRandom _houses;
+ [_group,_house] spawn btc_fnc_house_addWP;
+ _group setVariable ["inHouse", typeOf _house];
+ } else {[_group,_rpos,_area,"SAFE"] call btc_fnc_task_patrol;};
+ };
+ case (_wp > 0.3 && _wp < 0.75) : {
+ [_group,_rpos,_area,"AWARE"] call btc_fnc_task_patrol;
+ };
+ case (_wp > 0.75) : {
+ private ["_wpa"];
+ _wpa = _group addWaypoint [_rpos, 0];
+ _wpa setWaypointType "SENTRY";
+ _wpa setWaypointCombatMode "RED";
+ _wpa setWaypointBehaviour "AWARE";
+ _wpa setWaypointFormation "WEDGE";
+ _wpa setWaypointTimeout [18000, 36000, 54000];
+ _wpa setWaypointStatements ["true","(group this) spawn btc_fnc_data_add_group;"];
+ };
};
true
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/aiskill.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/aiskill.hpp
index 5796f0d50..47830df61 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/aiskill.hpp
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/aiskill.hpp
@@ -1,12 +1,12 @@
class CfgAISkill {
- aimingAccuracy[] = {0, 0, 1, 1};
- aimingShake[] = {0, 0, 1, 1};
- aimingSpeed[] = {0, 0, 1, 1};
- commanding[] = {0, 0, 1, 1};
- courage[] = {0, 0, 1, 1};
- endurance[] = {0, 0, 1, 1};
- general[] = {0, 0, 1, 1};
- reloadSpeed[] = {0, 0, 1, 1};
- spotDistance[] = {0, 0, 1, 1};
- spotTime[] = {0, 0, 1, 1};
+ aimingAccuracy[] = {0, 0, 1, 1};
+ aimingShake[] = {0, 0, 1, 1};
+ aimingSpeed[] = {0, 0, 1, 1};
+ commanding[] = {0, 0, 1, 1};
+ courage[] = {0, 0, 1, 1};
+ endurance[] = {0, 0, 1, 1};
+ general[] = {0, 0, 1, 1};
+ reloadSpeed[] = {0, 0, 1, 1};
+ spotDistance[] = {0, 0, 1, 1};
+ spotTime[] = {0, 0, 1, 1};
};
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/check_cap.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/check_cap.sqf
index 4a90c5d41..95f0e13dd 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/check_cap.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/check_cap.sqf
@@ -8,43 +8,43 @@ btc_hideout_cap_checking = true;
_cap_to = btc_hideouts select {(time - (_x getVariable ["cap_time",time]) > btc_hideout_cap_time)};
if (_cap_to isEqualTo []) exitWith {
- btc_hideout_cap_checking = false;
- if (btc_debug_log) then {diag_log "btc_fnc_mil_check_cap: exit cap time";};
+ btc_hideout_cap_checking = false;
+ if (btc_debug_log) then {diag_log "btc_fnc_mil_check_cap: exit cap time";};
};
{
- private ["_hd","_in_range","_closest"];
- _hd = _x;
- _in_range = btc_city_all select {(_hd distance _x < btc_hideout_range)};
-
- if (_in_range isEqualTo []) exitWith {
- btc_hideout_cap_checking = false;
- if (btc_debug_log) then {diag_log format ["btc_fnc_mil_check_cap: exit no in range = %1",_hd getVariable "id"];};
- };
-
- _closest = [_hd,_in_range,true] call btc_fnc_find_closecity;
-
- if (btc_debug_log) then {diag_log format ["btc_fnc_mil_check_cap: _in_range = %1",_in_range];};
-
- if (_closest isEqualTo []) exitWith {
- btc_hideout_cap_checking = false;
- if (btc_debug_log) then {diag_log format ["btc_fnc_mil_check_cap: exit null _closest = %1",_hd getVariable "id"];};
- };
-
- if (btc_debug_log) then {diag_log format ["btc_fnc_mil_check_cap: SEND FROM = %1 TO %2 [int %3]",_hd getVariable "id",_closest getVariable ["name","error"],_closest getVariable ["initialized",false]];};
-
- _hd setVariable ["cap_time",time];
-
- if (_closest getVariable ["initialized",false]) then {
- /*[_hd,_closest,1,"I_Truck_02_transport_F"] spawn btc_fnc_mil_send;
- sleep 1;
- [_hd,_closest,1,"I_Truck_02_transport_F"] spawn btc_fnc_mil_send;
- sleep 1;*/
- for "_i" from 0 to (2 + (round random 3)) do {[_hd,_closest,0] call btc_fnc_mil_send;};
- } else {
- _closest setVariable ["occupied",true];
- if (btc_debug) then {(format ["loc_%1",_closest getVariable "id"]) setMarkerColor "ColorRed";};
- };
+ private ["_hd","_in_range","_closest"];
+ _hd = _x;
+ _in_range = btc_city_all select {(_hd distance _x < btc_hideout_range)};
+
+ if (_in_range isEqualTo []) exitWith {
+ btc_hideout_cap_checking = false;
+ if (btc_debug_log) then {diag_log format ["btc_fnc_mil_check_cap: exit no in range = %1",_hd getVariable "id"];};
+ };
+
+ _closest = [_hd,_in_range,true] call btc_fnc_find_closecity;
+
+ if (btc_debug_log) then {diag_log format ["btc_fnc_mil_check_cap: _in_range = %1",_in_range];};
+
+ if (_closest isEqualTo []) exitWith {
+ btc_hideout_cap_checking = false;
+ if (btc_debug_log) then {diag_log format ["btc_fnc_mil_check_cap: exit null _closest = %1",_hd getVariable "id"];};
+ };
+
+ if (btc_debug_log) then {diag_log format ["btc_fnc_mil_check_cap: SEND FROM = %1 TO %2 [int %3]",_hd getVariable "id",_closest getVariable ["name","error"],_closest getVariable ["initialized",false]];};
+
+ _hd setVariable ["cap_time",time];
+
+ if (_closest getVariable ["initialized",false]) then {
+ /*[_hd,_closest,1,"I_Truck_02_transport_F"] spawn btc_fnc_mil_send;
+ sleep 1;
+ [_hd,_closest,1,"I_Truck_02_transport_F"] spawn btc_fnc_mil_send;
+ sleep 1;*/
+ for "_i" from 0 to (2 + (round random 3)) do {[_hd,_closest,0] call btc_fnc_mil_send;};
+ } else {
+ _closest setVariable ["occupied",true];
+ if (btc_debug) then {(format ["loc_%1",_closest getVariable "id"]) setMarkerColor "ColorRed";};
+ };
} foreach _cap_to;
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/check_rinf.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/check_rinf.sqf
index 25e462de1..c04a7bcad 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/check_rinf.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/check_rinf.sqf
@@ -4,18 +4,18 @@ private ["_city","_pos","_hideout"];
_city = objNull;
if (count _this > 0) then {_city = _this;} else {
- private ["_useful","_id"];
- //"NameVillage","NameCity","NameCityCapital","NameLocal","Hill","Airport"
- _useful = btc_city_all select {(
- !(_x getVariable ["active",false]) && {_x distance (getMarkerPos btc_respawn_marker) > btc_hideout_safezone} &&
- {!(_x getVariable ["has_ho",false])} &&
- (
- _x getVariable ["type",""] == "NameLocal" ||
- {_x getVariable ["type",""] == "Hill"} || {_x getVariable ["type",""] == "NameVillage" || {_x getVariable ["type",""] == "Airport"}
- )
- )
- };
- _city = selectRandom _useful;
+ private ["_useful","_id"];
+ //"NameVillage","NameCity","NameCityCapital","NameLocal","Hill","Airport"
+ _useful = btc_city_all select {(
+ !(_x getVariable ["active",false]) && {_x distance (getMarkerPos btc_respawn_marker) > btc_hideout_safezone} &&
+ {!(_x getVariable ["has_ho",false])} &&
+ (
+ _x getVariable ["type",""] == "NameLocal" ||
+ {_x getVariable ["type",""] == "Hill"} || {_x getVariable ["type",""] == "NameVillage" || {_x getVariable ["type",""] == "Airport"}
+ )
+ )
+ };
+ _city = selectRandom _useful;
};
_pos = [getPos _city, 300] call btc_fnc_randomize_pos;
@@ -37,12 +37,12 @@ _city setVariable ["ho_pos",_pos];
_city setVariable ["ho_units_spawned",false];
if (btc_debug) then {
- //Marker
- private ["_marker"];
- _marker = createmarker [format ["btc_hideout_%1", _pos], _pos];
- format ["btc_hideout_%1", _pos] setmarkertypelocal "mil_unknown";
- format ["btc_hideout_%1", _pos] setMarkerTextLocal format ["Hideout %1", btc_hideouts_id];
- format ["btc_hideout_%1", _pos] setMarkerSizeLocal [0.8, 0.8];
+ //Marker
+ private ["_marker"];
+ _marker = createmarker [format ["btc_hideout_%1", _pos], _pos];
+ format ["btc_hideout_%1", _pos] setmarkertypelocal "mil_unknown";
+ format ["btc_hideout_%1", _pos] setMarkerTextLocal format ["Hideout %1", btc_hideouts_id];
+ format ["btc_hideout_%1", _pos] setMarkerSizeLocal [0.8, 0.8];
};
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/class.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/class.sqf
index 1818692a3..48f03ee77 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/class.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/class.sqf
@@ -20,64 +20,64 @@ _allclass = _allclass select {getNumber(configfile >> "CfgVehicles" >> _x >> "sc
//Check if faction existe
_factions = _factions apply {if !isClass(configFile >> "CfgFactionClasses" >> _x) then {"IND_G_F"} else {_x};};
-_enemy_side = [east,west,independent,civilian] select getNumber(configfile >> "CfgFactionClasses" >> (_factions select 0) >> "side");
+_enemy_side = [east,west,independent,civilian] select getNumber(configfile >> "CfgFactionClasses" >> (_factions select 0) >> "side");
//Prevent selecting same side as player side
if (_enemy_side isEqualTo btc_player_side) exitWith {
- [["IND_G_F"], _en_AA, _en_tank] call btc_fnc_mil_class;
+ [["IND_G_F"], _en_AA, _en_tank] call btc_fnc_mil_class;
};
{
- private _faction = _x;
+ private _faction = _x;
- //Get all vehicles of the _faction selected
- private _allclass_f = _allclass select {(toUpper getText(configFile >> "cfgvehicles" >> _x >> "faction")) isEqualTo _faction};
+ //Get all vehicles of the _faction selected
+ private _allclass_f = _allclass select {(toUpper getText(configFile >> "cfgvehicles" >> _x >> "faction")) isEqualTo _faction};
- //Units
- _divers = _allclass_f select {!(((toLower _x) find "diver") isEqualTo -1)};
- if (_divers isEqualTo []) then {_divers = if (_enemy_side isEqualTo east) then {["O_diver_F","O_diver_exp_F","O_diver_TL_F"]} else {["I_diver_F","I_diver_exp_F","I_diver_TL_F"]};};
- _type_divers append _divers;
- _type_units append ((_allclass_f select {_x isKindOf "Man"}) - _divers);
+ //Units
+ _divers = _allclass_f select {!(((toLower _x) find "diver") isEqualTo -1)};
+ if (_divers isEqualTo []) then {_divers = if (_enemy_side isEqualTo east) then {["O_diver_F","O_diver_exp_F","O_diver_TL_F"]} else {["I_diver_F","I_diver_exp_F","I_diver_TL_F"]};};
+ _type_divers append _divers;
+ _type_units append ((_allclass_f select {_x isKindOf "Man"}) - _divers);
- //Vehicles
- _type_boats append (_allclass_f select {_x isKindOf "Ship"});
- if (_type_boats isEqualTo []) then {_type_boats append ["I_Boat_Armed_01_minigun_F","I_Boat_Transport_01_F","I_SDV_01_F","I_G_Boat_Transport_01_F"];};
- _type_motorized append (if (_en_tank) then {
- _allclass_f select {(_x isKindOf "Tank") || (_x isKindOf "Car") || (_x isKindOf "Truck") || (_x isKindOf "Truck_F")}
- } else {
- _allclass_f select {(_x isKindOf "Car") || (_x isKindOf "Truck") || (_x isKindOf "Truck_F")}
- });
- _type_motorized_armed append ([(_allclass_f select {((_x isKindOf "Air") || (_x isKindOf "Helicopter") || (_x isKindOf "Tank") || (_x isKindOf "Car"))}),["168Rnd_CMFlare_Chaff_Magazine","Laserbatteries","SmokeLauncherMag"]] call btc_fnc_find_veh_with_turret);
+ //Vehicles
+ _type_boats append (_allclass_f select {_x isKindOf "Ship"});
+ if (_type_boats isEqualTo []) then {_type_boats append ["I_Boat_Armed_01_minigun_F","I_Boat_Transport_01_F","I_SDV_01_F","I_G_Boat_Transport_01_F"];};
+ _type_motorized append (if (_en_tank) then {
+ _allclass_f select {(_x isKindOf "Tank") || (_x isKindOf "Car") || (_x isKindOf "Truck") || (_x isKindOf "Truck_F")}
+ } else {
+ _allclass_f select {(_x isKindOf "Car") || (_x isKindOf "Truck") || (_x isKindOf "Truck_F")}
+ });
+ _type_motorized_armed append ([(_allclass_f select {((_x isKindOf "Air") || (_x isKindOf "Helicopter") || (_x isKindOf "Tank") || (_x isKindOf "Car"))}),["168Rnd_CMFlare_Chaff_Magazine","Laserbatteries","SmokeLauncherMag"]] call btc_fnc_find_veh_with_turret);
- //Static
- _type_mg append (_allclass_f select {_x isKindOf "StaticGrenadeLauncher"});
- if (_type_mg isEqualTo []) then {_type_mg = ["O_HMG_01_F","O_HMG_01_high_F"];};
- _type_gl append (_allclass_f select {_x isKindOf "StaticMGWeapon"});
- if (_type_gl isEqualTo []) then {_type_gl = ["O_GMG_01_F","O_GMG_01_high_F"];};
+ //Static
+ _type_mg append (_allclass_f select {_x isKindOf "StaticGrenadeLauncher"});
+ if (_type_mg isEqualTo []) then {_type_mg = ["O_HMG_01_F","O_HMG_01_high_F"];};
+ _type_gl append (_allclass_f select {_x isKindOf "StaticMGWeapon"});
+ if (_type_gl isEqualTo []) then {_type_gl = ["O_GMG_01_F","O_GMG_01_high_F"];};
} forEach _factions;
//Final filter unwanted units type
if !(_en_AA) then {
- //Remove Anti-Air Units
- _type_units = _type_units select {
- private _unit = _x;
- private _weapons = getarray(configfile >> "CfgVehicles" >> _unit >> "weapons");
+ //Remove Anti-Air Units
+ _type_units = _type_units select {
+ private _unit = _x;
+ private _weapons = getarray(configfile >> "CfgVehicles" >> _unit >> "weapons");
- private _isAA = _weapons apply {
- private _weapon = _x;
- private _magazines = getarray(configfile >> "CfgWeapons" >> _weapon >> "magazines");
- private _ammo = "";
- if !(_magazines isEqualTo []) then {
- _ammo = gettext(configfile >> "CfgMagazines" >> _magazines select 0 >> "ammo");
- };
- (getnumber(configfile >> "CfgAmmo" >> _ammo >> "aiAmmoUsageFlags") isEqualTo 256);
- };
- if (btc_debug_log) then {diag_log format ["btc_fnc_mil_class %1 Weapons: %2 isAA: %3", _unit, _weapons , _isAA];};
- !(true in _isAA)
- };
+ private _isAA = _weapons apply {
+ private _weapon = _x;
+ private _magazines = getarray(configfile >> "CfgWeapons" >> _weapon >> "magazines");
+ private _ammo = "";
+ if !(_magazines isEqualTo []) then {
+ _ammo = gettext(configfile >> "CfgMagazines" >> _magazines select 0 >> "ammo");
+ };
+ (getnumber(configfile >> "CfgAmmo" >> _ammo >> "aiAmmoUsageFlags") isEqualTo 256);
+ };
+ if (btc_debug_log) then {diag_log format ["btc_fnc_mil_class %1 Weapons: %2 isAA: %3", _unit, _weapons , _isAA];};
+ !(true in _isAA)
+ };
};
-_type_units = _type_units select {((_x find "pilot_") isEqualTo -1) && ((_x find "_Pilot_") isEqualTo -1) && ((_x find "_Survivor_") isEqualTo -1) && ((_x find "_Story") isEqualTo -1) && ((_x find "_base") isEqualTo -1) && ((_x find "_unarmed_") isEqualTo -1) && ((_x find "_VR_") isEqualTo -1)};
-_type_crewmen = _type_units select 0;
+_type_units = _type_units select {((_x find "pilot_") isEqualTo -1) && ((_x find "_Pilot_") isEqualTo -1) && ((_x find "_Survivor_") isEqualTo -1) && ((_x find "_Story") isEqualTo -1) && ((_x find "_base") isEqualTo -1) && ((_x find "_unarmed_") isEqualTo -1) && ((_x find "_VR_") isEqualTo -1)};
+_type_crewmen = _type_units select 0;
_type_motorized = (_type_motorized select {(_x find "UAV") isEqualTo -1}) select {(_x find "UGV") isEqualTo -1};
_type_motorized_armed = (_type_motorized_armed select {(_x find "UAV") isEqualTo -1}) select {(_x find "UGV") isEqualTo -1};
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf
index c3524ea2d..eed9bbe8d 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_group.sqf
@@ -1,5 +1,5 @@
-private ["_city","_area","_n","_wp","_pos","_rpos","_unit_type","_group","_in_house","_pos_iswater","_newpos"];
+private ["_city","_area","_n","_wp","_pos","_rpos","_unit_type","_group","_pos_iswater","_newpos"];
_city = _this select 0;
_area = _this select 1;
@@ -9,57 +9,77 @@ _wp = _this select 3;
_pos = [];
switch (typeName _city) do {
- case "ARRAY" :{_pos = _city;};
- case "STRING":{_pos = getMarkerPos _city;};
- case "OBJECT":{_pos = position _city;};
+ case "ARRAY" :{_pos = _city;};
+ case "STRING":{_pos = getMarkerPos _city;};
+ case "OBJECT":{_pos = position _city;};
};
_rpos = [_pos, _area, btc_p_sea] call btc_fnc_randomize_pos;
_pos_iswater = surfaceIsWater _rpos;
if (_pos_iswater) then {
- _unit_type = selectRandom btc_type_divers;
+ _unit_type = selectRandom btc_type_divers;
} else {
- _unit_type = selectRandom btc_type_units;
- _newpos = _rpos findEmptyPosition [0, 40, _unit_type];
- if !(_newpos isEqualTo []) then {_rpos = _newpos;};
- _rpos = [_rpos] call btc_fnc_findPosOutsideRock;
+ _unit_type = selectRandom btc_type_units;
+ _newpos = _rpos findEmptyPosition [0, 40, _unit_type];
+ if !(_newpos isEqualTo []) then {_rpos = _newpos;};
+ _rpos = [_rpos] call btc_fnc_findPosOutsideRock;
};
_group = createGroup btc_enemy_side;
[_group createUnit [_unit_type, _rpos, [], 0, "NONE"]] joinSilent _group;
(leader _group) setPos _rpos;
-_in_house = false;
+private _groups = [];
+_groups pushBack _group;
+private _structure = objNull;
switch (true) do {
- case (_wp < 0.3) : {
- private ["_houses","_house","_n_pos","_max_pos","_unit"];
- _houses = [_rpos,50] call btc_fnc_getHouses;
- if (count _houses > 0) then {
- _in_house = true;
- _house = selectRandom _houses;
- [_group,_house] spawn btc_fnc_house_addWP;
- _group setVariable ["inHouse", typeOf _house];
- } else {[_group,_rpos,_area,"SAFE",_pos_iswater] spawn btc_fnc_task_patrol;};
- };
- case (_wp > 0.3 && _wp < 0.75) : {
- [_group,_rpos,_area,"AWARE",_pos_iswater] spawn btc_fnc_task_patrol;
- };
- case (_wp > 0.75) : {
- private ["_wpa"];
- _wpa = _group addWaypoint [_rpos, 0];
- _wpa setWaypointType "SENTRY";
- _wpa setWaypointCombatMode "RED";
- _wpa setWaypointBehaviour "AWARE";
- };
+ case (_wp < 0.3) : {
+ private _structures = [_rpos,70] call btc_fnc_mil_getStructures;
+ if !(_structures isEqualTo []) then {
+ _structure = selectRandom _structures;
+ _n = count (_structure buildingPos -1);
+ if (_n > 8) then {
+ _n = 2;
+ } else {
+ _n = floor(_n/2);
+ };
+ for "_i" from 0 to _n do {
+ [_group createUnit [selectRandom btc_type_units, _rpos, [], 0, "NONE"]] joinSilent _group;
+ sleep 0.5;
+ };
+ } else {
+ private _houses = [_rpos,50] call btc_fnc_getHouses;
+ if !(_houses isEqualTo []) then {
+ _structure = selectRandom _houses;
+ } else {[_group,_rpos,_area,"SAFE",_pos_iswater] spawn btc_fnc_task_patrol;};
+ };
+ };
+ case (_wp > 0.3 && _wp < 0.75) : {
+ [_group,_rpos,_area,"AWARE",_pos_iswater] spawn btc_fnc_task_patrol;
+ };
+ case (_wp > 0.75) : {
+ private _wpa = _group addWaypoint [_rpos, 0];
+ _wpa setWaypointType "SENTRY";
+ _wpa setWaypointCombatMode "RED";
+ _wpa setWaypointBehaviour "AWARE";
+ };
};
-if (!_in_house) then {
- for "_i" from 0 to _n do {
- _unit_type = [selectRandom btc_type_units, selectRandom btc_type_divers ] select _pos_iswater;
- [_group createUnit [_unit_type, _rpos, [], 0, "NONE"]] joinSilent _group;
- sleep 0.5;
- };
- //_group createUnit [btc_type_medic, _pos, [], 0, "NONE"];
+if (_structure isEqualTo objNull) then {
+ for "_i" from 0 to _n do {
+ _unit_type = [selectRandom btc_type_units, selectRandom btc_type_divers ] select _pos_iswater;
+ [_group createUnit [_unit_type, _rpos, [], 0, "NONE"]] joinSilent _group;
+ sleep 0.5;
+ };
+ //_group createUnit [btc_type_medic, _pos, [], 0, "NONE"];
+} else {
+ {
+ private _grp = createGroup btc_enemy_side;
+ [_x] joinSilent _grp;
+ _grp setVariable ["inHouse", typeOf _structure];
+ [_grp,_structure] spawn btc_fnc_house_addWP;
+ _groups pushBack _grp;
+ } forEach units _group;
};
//if ((position leader _group) distance [0,0,0] < 50) then {{_x setpos _rpos;} foreach units _group;};
@@ -68,4 +88,4 @@ if (!_in_house) then {
if (btc_debug_log) then {diag_log format ["btc_fnc_mil_create_group: _this = %1 ; POS %2 UNITS N %3",_this,_rpos,count units _group];};
-_group
\ No newline at end of file
+_groups
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_hideout.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_hideout.sqf
index 98c8cdefa..5a024aa1b 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_hideout.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_hideout.sqf
@@ -4,20 +4,20 @@ private ["_city","_pos","_radius","_hideout","_random_pos","_radius_x","_radius_
_city = objNull;
if (count _this > 0) then {_city = _this;} else {
- private ["_useful","_id"];
- //"NameVillage","NameCity","NameCityCapital","NameLocal","Hill"
- _useful = btc_city_all select {(
- !(_x getVariable ["active",false]) &&
- {_x distance (getMarkerPos btc_respawn_marker) > btc_hideout_safezone} &&
- {!(_x getVariable ["has_ho",false])} &&
- (
- _x getVariable ["type",""] == "NameLocal" ||
- {_x getVariable ["type",""] == "Hill"} ||
- {_x getVariable ["type",""] == "NameVillage"} ||
- {_x getVariable ["type",""] == "Airport"}
- )
- )};
- _city = selectRandom _useful;
+ private ["_useful","_id"];
+ //"NameVillage","NameCity","NameCityCapital","NameLocal","Hill"
+ _useful = btc_city_all select {(
+ !(_x getVariable ["active",false]) &&
+ {_x distance (getMarkerPos btc_respawn_marker) > btc_hideout_safezone} &&
+ {!(_x getVariable ["has_ho",false])} &&
+ (
+ _x getVariable ["type",""] == "NameLocal" ||
+ {_x getVariable ["type",""] == "Hill"} ||
+ {_x getVariable ["type",""] == "NameVillage"} ||
+ {_x getVariable ["type",""] == "Airport"}
+ )
+ )};
+ _city = selectRandom _useful;
};
_radius = (((_city getVariable ["RadiusX",0]) + (_city getVariable ["RadiusY",0]))/2);
@@ -28,7 +28,7 @@ if (count _pos == 0) then {_pos = getPos _city;};
_city setpos _pos;
_id = _city getVariable ["id",0];
-if (btc_debug) then {deleteMarker format ["loc_%1",_id];};
+if (btc_debug) then {deleteMarker format ["loc_%1",_id];};
deleteVehicle (_city getVariable ["trigger_player_side",objNull]);
_radius_x = btc_hideouts_radius;
_radius_y = btc_hideouts_radius;
@@ -54,12 +54,12 @@ _city setVariable ["ho_pos",_pos];
_city setVariable ["ho_units_spawned",false];
if (btc_debug) then {
- //Marker _pos = getpos _x;
- createmarker [format ["btc_hideout_%1", _pos], _pos];
- format ["btc_hideout_%1", _pos] setmarkertype "mil_unknown";
- format ["btc_hideout_%1", _pos] setMarkerText format ["Hideout %1", btc_hideouts_id];
- format ["btc_hideout_%1", _pos] setMarkerSize [0.8, 0.8];
- (format ["loc_%1",_city getVariable "id"]) setMarkerColor "ColorRed";
+ //Marker _pos = getpos _x;
+ createmarker [format ["btc_hideout_%1", _pos], _pos];
+ format ["btc_hideout_%1", _pos] setmarkertype "mil_unknown";
+ format ["btc_hideout_%1", _pos] setMarkerText format ["Hideout %1", btc_hideouts_id];
+ format ["btc_hideout_%1", _pos] setMarkerSize [0.8, 0.8];
+ (format ["loc_%1",_city getVariable "id"]) setMarkerColor "ColorRed";
};
if (btc_debug_log) then {diag_log format ["btc_fnc_mil_create_hideout: _this = %1 ; POS %2 ID %3",_this,_pos,btc_hideouts_id];};
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_hideout_composition.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_hideout_composition.sqf
index 3e7df3248..0517bf7b6 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_hideout_composition.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_hideout_composition.sqf
@@ -4,25 +4,25 @@ private ["_type_bigbox","_btc_composition","_btc_composition_hideout"];
_type_bigbox = selectRandom ["Box_FIA_Ammo_F","C_supplyCrate_F","Box_East_AmmoVeh_F"];
_btc_composition_hideout = [
- [selectRandom btc_type_campfire,0,[-2.30957,-1.02979,0]],
- [_type_bigbox,121.331,[0.675781,-1.52539,0]],
- [selectRandom btc_type_bigbox,227.166,[2.66504,1.4126,0]],
- [selectRandom btc_type_sleepingbag,135.477,[0.758789,-3.91309,0]],
- [selectRandom btc_type_power,77.6499,[0.418945,3.51855,0]],
- [selectRandom btc_type_seat,171.123,[-2.08203,-3.39795,0]],
- ["Flag_Red_F",0,[0,0,0]],
- [selectRandom btc_type_sleepingbag,161.515,[-0.726563,-4.76953,0]],
- ["Land_SatelliteAntenna_01_F",304.749,[-3.71973,2.46143,0]],
- [selectRandom btc_type_seat,279.689,[-4.52783,-0.76416,0]],
- [selectRandom btc_type_seat,238.639,[-3.89014,-2.94873,0]],
- [selectRandom btc_type_bigbox,346.664,[3.66455,-1.72998,0]],
- [selectRandom btc_type_box,36.4913,[-2.65088,-4.5625,0]],
- [selectRandom btc_type_tent,86.984,[3.19922,-4.36133,0]],
- [selectRandom btc_type_tent,10,[-4.35303,-5.66309,0]],
- [selectRandom btc_type_tent,300,[-8.47949,-1.64063,0]]
+ [selectRandom btc_type_campfire,0,[-2.30957,-1.02979,0]],
+ [_type_bigbox,121.331,[0.675781,-1.52539,0]],
+ [selectRandom btc_type_bigbox,227.166,[2.66504,1.4126,0]],
+ [selectRandom btc_type_sleepingbag,135.477,[0.758789,-3.91309,0]],
+ [selectRandom btc_type_power,77.6499,[0.418945,3.51855,0]],
+ [selectRandom btc_type_seat,171.123,[-2.08203,-3.39795,0]],
+ ["Flag_Red_F",0,[0,0,0]],
+ [selectRandom btc_type_sleepingbag,161.515,[-0.726563,-4.76953,0]],
+ ["Land_SatelliteAntenna_01_F",304.749,[-3.71973,2.46143,0]],
+ [selectRandom btc_type_seat,279.689,[-4.52783,-0.76416,0]],
+ [selectRandom btc_type_seat,238.639,[-3.89014,-2.94873,0]],
+ [selectRandom btc_type_bigbox,346.664,[3.66455,-1.72998,0]],
+ [selectRandom btc_type_box,36.4913,[-2.65088,-4.5625,0]],
+ [selectRandom btc_type_tent,86.984,[3.19922,-4.36133,0]],
+ [selectRandom btc_type_tent,10,[-4.35303,-5.66309,0]],
+ [selectRandom btc_type_tent,300,[-8.47949,-1.64063,0]]
];
if (random 1 > 0.5) then {
- _btc_composition_hideout pushBack [selectRandom btc_type_camonet,0,[-0.84668,-2.16113,0]];
+ _btc_composition_hideout pushBack [selectRandom btc_type_camonet,0,[-0.84668,-2.16113,0]];
};
_btc_composition = [_this select 0,(random 360),_btc_composition_hideout] call btc_fnc_create_composition;
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/getStructures.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/getStructures.sqf
new file mode 100644
index 000000000..3364a42b8
--- /dev/null
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/getStructures.sqf
@@ -0,0 +1,6 @@
+
+params ["_pos","_radius"];
+
+private _structures = (nearestTerrainObjects [_pos, ["House", "BUNKER", "FORTRESS"], _radius]) select {gettext(configfile >> "CfgVehicles" >> typeof _x >> "editorSubcategory") isEqualTo "EdSubcat_Military"};
+private _useful = _structures select {(format["%1", _x buildingPos 1] != "[0,0,0]" && {damage _x == 0} && {isNil {_x getVariable "btc_house_taken"}})};
+_useful
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/hd_hideout.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/hd_hideout.sqf
index 2e2b7de57..5e0cd6705 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/hd_hideout.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/hd_hideout.sqf
@@ -8,38 +8,38 @@ _ammo = _this select 4;
_explosive = (getNumber(configFile >> "cfgAmmo" >> _ammo >> "explosive") > 0);
if (_explosive && {_damage > 0.6}) then {
- private ["_id","_marker","_city","_array"];
+ private ["_id","_marker","_city","_array"];
- _id = _hideout getVariable "id";
+ _id = _hideout getVariable "id";
- for "_i" from 0 to (count btc_hideouts - 1) do {
- if ((btc_hideouts select _i) getVariable "id" == _id) then {btc_hideouts set [_i,0];};
- };
- btc_hideouts = btc_hideouts - [0];
+ for "_i" from 0 to (count btc_hideouts - 1) do {
+ if ((btc_hideouts select _i) getVariable "id" == _id) then {btc_hideouts set [_i,0];};
+ };
+ btc_hideouts = btc_hideouts - [0];
- btc_rep_bonus_hideout spawn btc_fnc_rep_change;
+ btc_rep_bonus_hideout spawn btc_fnc_rep_change;
- _marker = createmarker [format ["btc_hideout_%1_destroyed", _id], getpos _hideout];
- _marker setmarkertype "hd_destroy";
- _marker setMarkerText format ["Hideout %1 destroyed", _id];
- _marker setMarkerSize [1, 1];
- _marker setMarkerColor "ColorRed";
+ _marker = createmarker [format ["btc_hideout_%1_destroyed", _id], getpos _hideout];
+ _marker setmarkertype "hd_destroy";
+ [_marker,"STR_BTC_HAM_O_EH_HDHIDEOUT_MRK",_id] remoteExec ["btc_fnc_set_markerTextLocal", [0, -2] select isDedicated, _marker]; //Cached %1 destroyed
+ _marker setMarkerSize [1, 1];
+ _marker setMarkerColor "ColorRed";
- _city = _hideout getVariable ["assigned_to",_hideout];
- _city setVariable ["has_ho",false];
+ _city = _hideout getVariable ["assigned_to",_hideout];
+ _city setVariable ["has_ho",false];
- deleteVehicle (nearestObject [getpos _hideout, "Flag_Red_F"]);
- _hideout setDamage 1;
+ deleteVehicle (nearestObject [getpos _hideout, "Flag_Red_F"]);
+ _hideout setDamage 1;
- _array = _hideout getVariable ["markers",[]];
+ _array = _hideout getVariable ["markers",[]];
- {deleteMarker _x} foreach _array;
+ {deleteMarker _x} foreach _array;
- if (btc_hq isEqualTo _hideout) then {btc_hq = objNull};
+ if (btc_hq isEqualTo _hideout) then {btc_hq = objNull};
- if (count btc_hideouts == 0) then {[] execVM "core\fnc\common\final_phase.sqf";};
+ if (count btc_hideouts == 0) then {[] spawn btc_fnc_final_phase;};
- //Notification
- [2,count btc_hideouts] remoteExec ["btc_fnc_show_hint", 0];
- if (btc_debug_log) then {diag_log format ["btc_fnc_mil_hd_hideout: _this = %1 ; POS %2 ID %3",_this,getpos _hideout,_id];};
-} else {0};
\ No newline at end of file
+ //Notification
+ [2,count btc_hideouts] remoteExec ["btc_fnc_show_hint", 0];
+ if (btc_debug_log) then {diag_log format ["btc_fnc_mil_hd_hideout: _this = %1 ; POS %2 ID %3",_this,getpos _hideout,_id];};
+} else {0};
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/patrol_addWP.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/patrol_addWP.sqf
index 4f988dfc9..3b03d42cb 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/patrol_addWP.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/patrol_addWP.sqf
@@ -12,30 +12,30 @@ _players = if (isMultiplayer) then {playableUnits} else {switchableUnits};
//Remove if too far from player
if ({_x distance _active_city < (_area/2) || _x distance leader _group < (_area/2)} count _players isEqualTo 0) exitWith {
- vehicle leader _group setFuel 0;
+ vehicle leader _group setFuel 0;
};
//Sometimes the waypoints is completed but too far due to obstacle (water for island etc)
if ((leader _group) distance _end_city > 300) then {
- _noaccess pushBack _end_city;
- _tmp_area = _area - ((leader _group) distance _end_city)*0.3*count _noaccess;
- if (btc_debug) then {systemChat format ["Patrol ID: %1 , count %2, area %3", _group getVariable "btc_patrol_id", count _noaccess, _tmp_area];};
+ _noaccess pushBack _end_city;
+ _tmp_area = _area - ((leader _group) distance _end_city)*0.3*count _noaccess;
+ if (btc_debug) then {systemChat format ["Patrol ID: %1 , count %2, area %3", _group getVariable "btc_patrol_id", count _noaccess, _tmp_area];};
} else {
- _tmp_area = _area;
- _noaccess = [];
+ _tmp_area = _area;
+ _noaccess = [];
};
//Find a useful end city from the start city depending of vehicle type
if (_isboat) then {
- _useful = btc_city_all select {_x getVariable ["hasbeach",false]};
+ _useful = btc_city_all select {_x getVariable ["hasbeach",false]};
} else {
- _useful = btc_city_all select {_x getVariable ["type",""] != "NameMarine"};
+ _useful = btc_city_all select {_x getVariable ["type",""] != "NameMarine"};
};
_cities = _useful select {(_x distance _active_city < _tmp_area) && !(_x in _noaccess)};
//Check if end city has been found, if not take the closer city
if (_cities isEqualTo []) then {
- _cities = [[[_active_city, leader _group] select (_active_city in _noaccess),_useful,false] call btc_fnc_find_closecity];
+ _cities = [[[_active_city, leader _group] select (_active_city in _noaccess),_useful,false] call btc_fnc_find_closecity];
};
_end_city = selectRandom _cities;
_group setVariable ["end_city",_end_city];
@@ -43,8 +43,8 @@ _group setVariable ["noaccess",_noaccess];
_pos = getPos _end_city;
if (_isboat) then {
- _pos = (selectBestPlaces [_pos,(_active_city getVariable ["RadiusX",0]) + (_active_city getVariable ["RadiusY",0]), "sea",10,1]) select 0 select 0;
- _pos = [_pos select 0, _pos select 1, 0];
+ _pos = (selectBestPlaces [_pos,(_active_city getVariable ["RadiusX",0]) + (_active_city getVariable ["RadiusY",0]), "sea",10,1]) select 0 select 0;
+ _pos = [_pos select 0, _pos select 1, 0];
};
//Add Waypoints
@@ -62,30 +62,30 @@ _wp setWaypointSpeed "LIMITED";
_wp setWaypointFormation "STAG COLUMN";
if !((vehicle leader _group) isKindOf "Air") then {
- for "_i" from 0 to (2 + (floor (random 3))) do {
- private ["_wp", "_newPos"];
+ for "_i" from 0 to (2 + (floor (random 3))) do {
+ private ["_wp", "_newPos"];
- _newPos = [(_pos select 0) + (random 150 - random 150),(_pos select 1) + (random 150 - random 150),0];
+ _newPos = [(_pos select 0) + (random 150 - random 150),(_pos select 1) + (random 150 - random 150),0];
- _wp = _group addWaypoint [_newPos, 0];
- _wp setWaypointType "MOVE";
- _wp setWaypointCompletionRadius 20;
- _wp setWaypointCombatMode "RED";
- };
- _wp_1 = _group addWaypoint [_pos, 0];
- _wp_1 setWaypointType "MOVE";
- _wp_1 setWaypointCompletionRadius 20;
- _wp_1 setWaypointStatements ["true", format ["_spawn = [group this,%1,%2] spawn btc_fnc_mil_patrol_addWP;",_area,_isboat]];
+ _wp = _group addWaypoint [_newPos, 0];
+ _wp setWaypointType "MOVE";
+ _wp setWaypointCompletionRadius 20;
+ _wp setWaypointCombatMode "RED";
+ };
+ _wp_1 = _group addWaypoint [_pos, 0];
+ _wp_1 setWaypointType "MOVE";
+ _wp_1 setWaypointCompletionRadius 20;
+ _wp_1 setWaypointStatements ["true", format ["_spawn = [group this,%1,%2] spawn btc_fnc_mil_patrol_addWP;",_area,_isboat]];
} else {_wp setWaypointStatements ["true", format ["_spawn = [group this,%1,%2] spawn btc_fnc_mil_patrol_addWP;",_area,_isboat]];};
if (btc_debug) then {
- if (!isNil {_group getVariable "btc_patrol_id"}) then {
- private ["_marker"];
- deleteMarker format ["Patrol_fant_%1", _group getVariable "btc_patrol_id"];
- _marker = createmarker [format ["Patrol_fant_%1", _group getVariable "btc_patrol_id"] , [(_pos select 0) + random 30,(_pos select 1) + random 30,0]];
- format ["Patrol_fant_%1", _group getVariable "btc_patrol_id"] setmarkertype "mil_dot";
- format ["Patrol_fant_%1", _group getVariable "btc_patrol_id"] setMarkerText format ["P %1", _group getVariable "btc_patrol_id"];
- format ["Patrol_fant_%1", _group getVariable "btc_patrol_id"] setmarkerColor "ColorGreen";
- format ["Patrol_fant_%1", _group getVariable "btc_patrol_id"] setMarkerSize [0.5, 0.5];
- diag_log text format ["ID: %1 (%3) POS: %2",_group getVariable "btc_patrol_id",_pos,typeof vehicle leader _group];
- };
+ if (!isNil {_group getVariable "btc_patrol_id"}) then {
+ private ["_marker"];
+ deleteMarker format ["Patrol_fant_%1", _group getVariable "btc_patrol_id"];
+ _marker = createmarker [format ["Patrol_fant_%1", _group getVariable "btc_patrol_id"] , [(_pos select 0) + random 30,(_pos select 1) + random 30,0]];
+ format ["Patrol_fant_%1", _group getVariable "btc_patrol_id"] setmarkertype "mil_dot";
+ format ["Patrol_fant_%1", _group getVariable "btc_patrol_id"] setMarkerText format ["P %1", _group getVariable "btc_patrol_id"];
+ format ["Patrol_fant_%1", _group getVariable "btc_patrol_id"] setmarkerColor "ColorGreen";
+ format ["Patrol_fant_%1", _group getVariable "btc_patrol_id"] setMarkerSize [0.5, 0.5];
+ diag_log text format ["ID: %1 (%3) POS: %2",_group getVariable "btc_patrol_id",_pos,typeof vehicle leader _group];
+ };
};
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/patrol_create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/patrol_create.sqf
index 5ced47104..ee3937bcc 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/patrol_create.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/patrol_create.sqf
@@ -10,24 +10,24 @@ if (isNil "btc_patrol_id") then {btc_patrol_id = 0;};
if (btc_debug_log) then {diag_log format ["btc_fnc_mil_patrol_create: _random = %1 _city %2 _area %3 btc_patrol_active = %4",_random,_city,_area,count(btc_patrol_active)];};
if (_random isEqualTo 0) then {
- private ["_n"];
- _n = random 100;
- switch (true) do {
- case (_n < 40) : {_random = 1;};
- case (_n > 40 && _n < 90) : {_random = 2;};
- case (_n > 90 && _n < 96) : {_random = 3;};
- case (_n > 96) : {_random = 4;};
- };
+ private ["_n"];
+ _n = random 100;
+ switch (true) do {
+ case (_n < 40) : {_random = 1;};
+ case (_n > 40 && _n < 90) : {_random = 2;};
+ case (_n > 90 && _n < 96) : {_random = 3;};
+ case (_n > 96) : {_random = 4;};
+ };
};
_cities = btc_city_all select {(_x distance _city < _area)};
_usefuls = _cities select {(!(_x getVariable ["active",false]) && _x getVariable ["occupied",false])};
/*
if (count _useful == 0) then {
- while {count _useful == 0} do {
- private "_pos";
- _pos = [getPos _city, _area] call btc_fnc_randomize_pos;
- if ({_x distance _pos < 500} count playableUnits == 0) then {_useful = _useful + [_pos];};
- };
+ while {count _useful == 0} do {
+ private "_pos";
+ _pos = [getPos _city, _area] call btc_fnc_randomize_pos;
+ if ({_x distance _pos < 500} count playableUnits == 0) then {_useful = _useful + [_pos];};
+ };
};
*/
@@ -35,9 +35,9 @@ if (_usefuls isEqualTo []) exitWith {true};
_useful = selectRandom _usefuls;
if (_useful getVariable ["hasbeach",false]) then {
- _pos = [getPos _useful,((_useful getVariable ["RadiusX",0]) + (_useful getVariable ["RadiusY",0])), btc_p_sea] call btc_fnc_randomize_pos;
+ _pos = [getPos _useful,((_useful getVariable ["RadiusX",0]) + (_useful getVariable ["RadiusY",0])), btc_p_sea] call btc_fnc_randomize_pos;
} else {
- _pos = getPos _useful;
+ _pos = getPos _useful;
};
_group = createGroup [btc_enemy_side, true];
@@ -51,55 +51,55 @@ _pos_iswater = (surfaceIsWater _pos);
sleep 5 + random 10;
switch (true) do {
- case ((_random isEqualTo 1) && !_pos_iswater) : {
- _n_units = 4 + (round random 8);
- _pos = [_pos,0,50,10,false] call btc_fnc_findsafepos;
- [_group createUnit [(btc_type_units select 0), _pos, [], 0, "NONE"]] joinSilent _group;
- (leader _group) setpos _pos;
- for "_i" from 1 to _n_units do {
- private ["_unit_type"];
- _unit_type = selectRandom btc_type_units;
- [_group createUnit [_unit_type, _pos, [], 0, "NONE"]] joinSilent _group;
- sleep 1;
- };
- _spawn = [_group,_area,_pos_iswater] spawn btc_fnc_mil_patrol_addWP;
- };
- case ((_random isEqualTo 2) || _pos_iswater) : {
- private ["_veh_type","_newZone","_veh","_cargo"];
- if ((_pos nearRoads 150) isEqualTo []) then {
- _newZone = [_pos,0,500,13,btc_p_sea] call btc_fnc_findsafepos;
- _pos_iswater = surfaceIsWater _newZone;
- if (_pos_iswater) then {
- _veh_type = selectRandom btc_type_boats;
- } else {
- _veh_type = selectRandom (btc_type_motorized + [selectRandom btc_civ_type_veh]);
- };
- } else {
- _newZone = getPos (selectRandom (_pos nearRoads 150));
- _pos_iswater = false;
- _veh_type = selectRandom (btc_type_motorized + [selectRandom btc_civ_type_veh]);
- };
-
- _needdiver = getText(configfile >> "CfgVehicles" >> _veh_type >> "simulation") isEqualTo "submarinex";
- if (_needdiver) then {_crewmen = btc_type_divers select 0} else {_crewmen = btc_type_crewmen};
- _veh = createVehicle [_veh_type, _newZone, [], 0, "FLY"];
- [_veh,_group,false,"",_crewmen] call BIS_fnc_spawnCrew;
- _group selectLeader (driver _veh);
- _cargo = (_veh emptyPositions "cargo") - 1;
- if (_cargo > 0) then {
- for "_i" from 0 to _cargo do {
- _unit_type = [selectRandom btc_type_units, selectRandom btc_type_divers] select _needdiver;
- _unit_type createUnit [_newZone, _group, "this moveinCargo _veh;this assignAsCargo _veh;"];
- };
- };
- units _group joinSilent _group;
-
- _1 = _veh addEventHandler ["Fuel", {_this call btc_fnc_mil_patrol_eh}];
- _veh setVariable ["eh", [_1/*,_2,_3,4,5*/]];
- _veh setVariable ["crews", _group];
-
- _spawn = [_group,_area,_pos_iswater] spawn btc_fnc_mil_patrol_addWP;
- };
+ case ((_random isEqualTo 1) && !_pos_iswater) : {
+ _n_units = 4 + (round random 8);
+ _pos = [_pos,0,50,10,false] call btc_fnc_findsafepos;
+ [_group createUnit [(btc_type_units select 0), _pos, [], 0, "NONE"]] joinSilent _group;
+ (leader _group) setpos _pos;
+ for "_i" from 1 to _n_units do {
+ private ["_unit_type"];
+ _unit_type = selectRandom btc_type_units;
+ [_group createUnit [_unit_type, _pos, [], 0, "NONE"]] joinSilent _group;
+ sleep 1;
+ };
+ _spawn = [_group,_area,_pos_iswater] spawn btc_fnc_mil_patrol_addWP;
+ };
+ case ((_random isEqualTo 2) || _pos_iswater) : {
+ private ["_veh_type","_newZone","_veh","_cargo"];
+ if ((_pos nearRoads 150) isEqualTo []) then {
+ _newZone = [_pos,0,500,13,btc_p_sea] call btc_fnc_findsafepos;
+ _pos_iswater = surfaceIsWater _newZone;
+ if (_pos_iswater) then {
+ _veh_type = selectRandom btc_type_boats;
+ } else {
+ _veh_type = selectRandom (btc_type_motorized + [selectRandom btc_civ_type_veh]);
+ };
+ } else {
+ _newZone = getPos (selectRandom (_pos nearRoads 150));
+ _pos_iswater = false;
+ _veh_type = selectRandom (btc_type_motorized + [selectRandom btc_civ_type_veh]);
+ };
+
+ _needdiver = getText(configfile >> "CfgVehicles" >> _veh_type >> "simulation") isEqualTo "submarinex";
+ if (_needdiver) then {_crewmen = btc_type_divers select 0} else {_crewmen = btc_type_crewmen};
+ _veh = createVehicle [_veh_type, _newZone, [], 0, "FLY"];
+ [_veh,_group,false,"",_crewmen] call BIS_fnc_spawnCrew;
+ _group selectLeader (driver _veh);
+ _cargo = (_veh emptyPositions "cargo") - 1;
+ if (_cargo > 0) then {
+ for "_i" from 0 to _cargo do {
+ _unit_type = [selectRandom btc_type_units, selectRandom btc_type_divers] select _needdiver;
+ _unit_type createUnit [_newZone, _group, "this moveinCargo _veh;this assignAsCargo _veh;"];
+ };
+ };
+ units _group joinSilent _group;
+
+ _1 = _veh addEventHandler ["Fuel", {_this call btc_fnc_mil_patrol_eh}];
+ _veh setVariable ["eh", [_1/*,_2,_3,4,5*/]];
+ _veh setVariable ["crews", _group];
+
+ _spawn = [_group,_area,_pos_iswater] spawn btc_fnc_mil_patrol_addWP;
+ };
};
btc_patrol_active pushBack _group;
@@ -108,5 +108,5 @@ btc_patrol_active pushBack _group;
//Check if HC is connected
if !((entities "HeadlessClient_F") isEqualTo []) then {
- [_group] call btc_fnc_set_groupowner;
+ [_group] call btc_fnc_set_groupowner;
};
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf
index 7877305ca..92ac9bfed 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/send.sqf
@@ -1,69 +1,69 @@
//[_hd,_closest,1,"I_Truck_02_transport_F"] spawn btc_fnc_mil_send;
/*
- Send a group of units to a location then call btc_fnc_data_add_group. If player is around, initiate patrol around the destination, ifnot save in database and delete units.
+ Send a group of units to a location then call btc_fnc_data_add_group. If player is around, initiate patrol around the destination, ifnot save in database and delete units.
*/
private ["_pos","_dest"];
_pos = getPos (_this select 0);
switch (typeName (_this select 1)) do {
- case "ARRAY" : {_dest = (_this select 1);};
- case "STRING": {_dest = getMarkerPos (_this select 1);};
- case "OBJECT": {_dest = getPos (_this select 1);};
+ case "ARRAY" : {_dest = (_this select 1);};
+ case "STRING": {_dest = getMarkerPos (_this select 1);};
+ case "OBJECT": {_dest = getPos (_this select 1);};
};
private ["_group"];
switch (_this select 2) do {
- case 0 : {
- private ["_wp_0","_wp"];
- _group = [_pos,150,(3 + random 6),1] call btc_fnc_mil_create_group;
- _group setVariable ["no_cache",true];
- while {(count (waypoints _group)) > 0} do { deleteWaypoint ((waypoints _group) select 0); };
- _wp_0 = _group addWaypoint [_dest, 60];
- _wp = _group addWaypoint [_dest, 60];
- _wp setWaypointType "MOVE";
- _wp setWaypointCombatMode "RED";
- _wp setWaypointBehaviour "AWARE";
- _wp setWaypointSpeed "FULL";
- _wp setWaypointFormation "COLUMN";
- _wp setWaypointStatements ["true", "(group this) spawn btc_fnc_data_add_group;"];
- };
- case 1 : {
- private ["_veh_type","_return_pos","_veh","_gunner","_commander","_cargo","_wp","_wp_1","_wp_3"];
- _group = createGroup [btc_enemy_side, true];
- _group setVariable ["no_cache",true];
- _veh_type = (_this select 3);
- if (_veh_type == "") then {_veh_type = selectRandom btc_type_motorized};
+ case 0 : {
+ private ["_wp_0","_wp"];
+ _group = ([_pos,150,(3 + random 6),1] call btc_fnc_mil_create_group) select 0;
+ _group setVariable ["no_cache",true];
+ while {(count (waypoints _group)) > 0} do { deleteWaypoint ((waypoints _group) select 0); };
+ _wp_0 = _group addWaypoint [_dest, 60];
+ _wp = _group addWaypoint [_dest, 60];
+ _wp setWaypointType "MOVE";
+ _wp setWaypointCombatMode "RED";
+ _wp setWaypointBehaviour "AWARE";
+ _wp setWaypointSpeed "FULL";
+ _wp setWaypointFormation "COLUMN";
+ _wp setWaypointStatements ["true", "(group this) spawn btc_fnc_data_add_group;"];
+ };
+ case 1 : {
+ private ["_veh_type","_return_pos","_veh","_gunner","_commander","_cargo","_wp","_wp_1","_wp_3"];
+ _group = createGroup [btc_enemy_side, true];
+ _group setVariable ["no_cache",true];
+ _veh_type = (_this select 3);
+ if (_veh_type == "") then {_veh_type = selectRandom btc_type_motorized};
- _return_pos = [_pos,10,500,13,false] call btc_fnc_findsafepos;
+ _return_pos = [_pos,10,500,13,false] call btc_fnc_findsafepos;
- _veh = createVehicle [_veh_type, _return_pos, [], 0, "FLY"];
- [_veh,_group,false,"",btc_type_crewmen] call BIS_fnc_spawnCrew;
- _cargo = (_veh emptyPositions "cargo") - 1;
- for "_i" from 0 to _cargo do {
- (selectRandom btc_type_units) createUnit [[0,0,0], _group, "this moveinCargo _veh;this assignAsCargo _veh;"];
- };
+ _veh = createVehicle [_veh_type, _return_pos, [], 0, "FLY"];
+ [_veh,_group,false,"",btc_type_crewmen] call BIS_fnc_spawnCrew;
+ _cargo = (_veh emptyPositions "cargo") - 1;
+ for "_i" from 0 to _cargo do {
+ (selectRandom btc_type_units) createUnit [[0,0,0], _group, "this moveinCargo _veh;this assignAsCargo _veh;"];
+ };
- _group selectLeader (driver _veh);
+ _group selectLeader (driver _veh);
- _wp = _group addWaypoint [_dest, 60];
- _wp setWaypointType "MOVE";
- _wp setWaypointCombatMode "RED";
- _wp setWaypointBehaviour "AWARE";
- _wp setWaypointSpeed "NORMAL";
- _wp_1 = _group addWaypoint [_dest, 60];
- _wp_1 setWaypointType "GETOUT";
- _wp_3 = _group addWaypoint [_dest, 60];
- _wp_3 setWaypointType "SENTRY";
- _wp setWaypointStatements ["true","(group this) spawn btc_fnc_data_add_group;"];
+ _wp = _group addWaypoint [_dest, 60];
+ _wp setWaypointType "MOVE";
+ _wp setWaypointCombatMode "RED";
+ _wp setWaypointBehaviour "AWARE";
+ _wp setWaypointSpeed "NORMAL";
+ _wp_1 = _group addWaypoint [_dest, 60];
+ _wp_1 setWaypointType "GETOUT";
+ _wp_3 = _group addWaypoint [_dest, 60];
+ _wp_3 setWaypointType "SENTRY";
+ _wp setWaypointStatements ["true","(group this) spawn btc_fnc_data_add_group;"];
- {_x call btc_fnc_mil_unit_create} foreach units _group;
- };
+ {_x call btc_fnc_mil_unit_create} foreach units _group;
+ };
};
//Check if HC is connected
if !((entities "HeadlessClient_F") isEqualTo []) then {
- [_group] call btc_fnc_set_groupowner;
+ [_group] call btc_fnc_set_groupowner;
};
_group
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/set_skill.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/set_skill.sqf
index 88309ed7a..079fafe7c 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/set_skill.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/set_skill.sqf
@@ -2,14 +2,14 @@
if (typeName _this == "OBJECT") then {_this = [_this];} else {_this = units _this;};
{
- _x setskill ["general",(btc_AI_skill select 0)];
- _x setskill ["aimingAccuracy",(btc_AI_skill select 1)];
- _x setskill ["aimingShake",(btc_AI_skill select 2)];
- _x setskill ["aimingSpeed",(btc_AI_skill select 3)];
- _x setskill ["endurance",(btc_AI_skill select 4)];
- _x setskill ["spotDistance",(btc_AI_skill select 5)];
- _x setskill ["spotTime",(btc_AI_skill select 6)];
- _x setskill ["courage",(btc_AI_skill select 7)];
- _x setskill ["reloadSpeed",(btc_AI_skill select 8)];
- _x setskill ["commanding",(btc_AI_skill select 9)];
+ _x setskill ["general",(btc_AI_skill select 0)];
+ _x setskill ["aimingAccuracy",(btc_AI_skill select 1)];
+ _x setskill ["aimingShake",(btc_AI_skill select 2)];
+ _x setskill ["aimingSpeed",(btc_AI_skill select 3)];
+ _x setskill ["endurance",(btc_AI_skill select 4)];
+ _x setskill ["spotDistance",(btc_AI_skill select 5)];
+ _x setskill ["spotTime",(btc_AI_skill select 6)];
+ _x setskill ["courage",(btc_AI_skill select 7)];
+ _x setskill ["reloadSpeed",(btc_AI_skill select 8)];
+ _x setskill ["commanding",(btc_AI_skill select 9)];
} foreach _this;
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/unit_create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/unit_create.sqf
index 97da78057..5d20782dc 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/unit_create.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/unit_create.sqf
@@ -11,8 +11,8 @@ if (btc_p_set_skill) then {_this call btc_fnc_mil_set_skill;};
/*
if (isNil {_this getVariable "btc_eh_killed_assigned"}) then
{
- _this addEventHandler ["Killed",btc_fnc_mil_eh_killed];
- _this setVariable ["btc_eh_killed_assigned",true];
+ _this addEventHandler ["Killed",btc_fnc_mil_eh_killed];
+ _this setVariable ["btc_eh_killed_assigned",true];
};
*/
true
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/unit_killed.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/unit_killed.sqf
index 73ffc2149..902def782 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/unit_killed.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/unit_killed.sqf
@@ -2,19 +2,19 @@
private _killer = (_this select 0) getVariable ["ace_medical_lastDamageSource", (_this select 1)];
if (!isDedicated && !hasInterface) then {
- [(_this select 0), _killer] remoteExec ["btc_fnc_mil_unit_killed",2];
+ [(_this select 0), _killer] remoteExec ["btc_fnc_mil_unit_killed",2];
} else {
- if (random 100 > btc_info_intel_chance) then {
- (_this select 0) setVariable ["intel",true];
- };
+ if (random 100 > btc_info_intel_chance) then {
+ (_this select 0) setVariable ["intel",true];
+ };
- if (isPlayer _killer) then {
- if (isServer) then {
- btc_rep_bonus_mil_killed call btc_fnc_rep_change;
- } else {
- btc_rep_bonus_mil_killed remoteExec ["btc_fnc_rep_change", 2];
- };
- };
+ if (isPlayer _killer) then {
+ if (isServer) then {
+ btc_rep_bonus_mil_killed call btc_fnc_rep_change;
+ } else {
+ btc_rep_bonus_mil_killed remoteExec ["btc_fnc_rep_change", 2];
+ };
+ };
};
//{count units _x == 0} count allGroups;
//(allGroups select {count units _x == 0}) apply {deleteGroup _x}
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/call_militia.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/call_militia.sqf
index c883f8330..b22f7aa15 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/call_militia.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/call_militia.sqf
@@ -9,38 +9,38 @@ _players = if (isMultiplayer) then {playableUnits} else {switchableunits};
//is there an hideout close by?
_start_pos = [];
{
- private ["_hideout"];
- _hideout = _x;
- if (_pos distance _hideout < 2000 && {{_x distance _hideout < 500} count _players == 0}) then {_start_pos = getPos _hideout;};
+ private ["_hideout"];
+ _hideout = _x;
+ if (_pos distance _hideout < 2000 && {{_x distance _hideout < 500} count _players == 0}) then {_start_pos = getPos _hideout;};
} foreach btc_hideouts;
if (btc_debug_log) then {diag_log format ["fnc_rep_call_militia = _start_pos : %1 (HIDEOUTS)",_start_pos];};
if (count _start_pos == 0) then
{
- {
- private ["_city"];
- _city = _x;
- if (_pos distance _city > 300 && {_pos distance _city < 2500} && {{_x distance _city < 500} count _players == 0}) then {_start_pos = getPos _city;};
- } foreach btc_city_all;
+ {
+ private ["_city"];
+ _city = _x;
+ if (_pos distance _city > 300 && {_pos distance _city < 2500} && {{_x distance _city < 500} count _players == 0}) then {_start_pos = getPos _city;};
+ } foreach btc_city_all;
};
if (btc_debug_log) then {diag_log format ["fnc_rep_call_militia = _start_pos : %1 (CITIES)",_start_pos];};
if (count _start_pos == 0) then
{
- private ["_random"];
- _random = random 8;
- switch (true) do
- {
- case (_random <= 1) : {_start_pos = [(_pos select 0) + 0,(_pos select 1) + 1000,0];};//N
- case (_random > 1 && _random <= 2) : {_start_pos = [(_pos select 0) + 750,(_pos select 1) + 750,0];};//NE
- case (_random > 2 && _random <= 3) : {_start_pos = [(_pos select 0) + 1000,(_pos select 1) + 0,0];};//E
- case (_random > 3 && _random <= 4) : {_start_pos = [(_pos select 0) + 750,(_pos select 1) - 750,0];};//SE
- case (_random > 4 && _random <= 5) : {_start_pos = [(_pos select 0) - 1000,(_pos select 1) + 0,0];};//W
- case (_random > 5 && _random <= 6) : {_start_pos = [(_pos select 0) - 750,(_pos select 1) - 750,0];};//SW
- case (_random > 6 && _random <= 7) : {_start_pos = [(_pos select 0) - 750,(_pos select 1) + 750,0];};//NW
- case (_random > 7) : {_start_pos = [(_pos select 0) + 0,(_pos select 1) - 1000,0];};//S
- };
+ private ["_random"];
+ _random = random 8;
+ switch (true) do
+ {
+ case (_random <= 1) : {_start_pos = [(_pos select 0) + 0,(_pos select 1) + 1000,0];};//N
+ case (_random > 1 && _random <= 2) : {_start_pos = [(_pos select 0) + 750,(_pos select 1) + 750,0];};//NE
+ case (_random > 2 && _random <= 3) : {_start_pos = [(_pos select 0) + 1000,(_pos select 1) + 0,0];};//E
+ case (_random > 3 && _random <= 4) : {_start_pos = [(_pos select 0) + 750,(_pos select 1) - 750,0];};//SE
+ case (_random > 4 && _random <= 5) : {_start_pos = [(_pos select 0) - 1000,(_pos select 1) + 0,0];};//W
+ case (_random > 5 && _random <= 6) : {_start_pos = [(_pos select 0) - 750,(_pos select 1) - 750,0];};//SW
+ case (_random > 6 && _random <= 7) : {_start_pos = [(_pos select 0) - 750,(_pos select 1) + 750,0];};//NW
+ case (_random > 7) : {_start_pos = [(_pos select 0) + 0,(_pos select 1) - 1000,0];};//S
+ };
};
if (btc_debug_log) then {diag_log format ["fnc_rep_call_militia = _start_pos : %1 (ULTIMA RATIO)",_start_pos];};
@@ -49,65 +49,65 @@ _ratio = if (_pos distance _start_pos > 1000) then {0.2} else {0.6};
if (btc_debug_log) then
{
- diag_log format ["fnc_rep_call_militia = POS : %1 STARTPOS : %2 - RATIO = %3",_pos,_start_pos,_ratio];
+ diag_log format ["fnc_rep_call_militia = POS : %1 STARTPOS : %2 - RATIO = %3",_pos,_start_pos,_ratio];
};
if ((random 1) > _ratio) then
{
- //MOT
- private ["_veh_type","_veh","_gunner","_commander","_cargo","_wp"];
- _group = createGroup btc_enemy_side;
- _group setVariable ["no_cache",true];
- _veh_type = selectRandom btc_type_motorized;
- _veh = createVehicle [_veh_type, _start_pos, [], 0, "FLY"];
- _gunner = _veh emptyPositions "gunner";
- _commander = _veh emptyPositions "commander";
- _cargo = (_veh emptyPositions "cargo") - 1;
- btc_type_crewmen createUnit [_start_pos, _group, "this moveinDriver _veh;this assignAsDriver _veh;"];
- if (_gunner > 0) then {btc_type_crewmen createUnit [_start_pos, _group, "this moveinGunner _veh;this assignAsGunner _veh;"];};
- if (_commander > 0) then {btc_type_crewmen createUnit [_start_pos, _group, "this moveinCommander _veh;this assignAsCommander _veh;"];};
- for "_i" from 0 to _cargo do
- {
- _unit_type = selectRandom btc_type_units;
- _unit_type createUnit [_start_pos, _group, "this moveinCargo _veh;this assignAsCargo _veh;"];
- };
+ //MOT
+ private ["_veh_type","_veh","_gunner","_commander","_cargo","_wp"];
+ _group = createGroup btc_enemy_side;
+ _group setVariable ["no_cache",true];
+ _veh_type = selectRandom btc_type_motorized;
+ _veh = createVehicle [_veh_type, _start_pos, [], 0, "FLY"];
+ _gunner = _veh emptyPositions "gunner";
+ _commander = _veh emptyPositions "commander";
+ _cargo = (_veh emptyPositions "cargo") - 1;
+ btc_type_crewmen createUnit [_start_pos, _group, "this moveinDriver _veh;this assignAsDriver _veh;"];
+ if (_gunner > 0) then {btc_type_crewmen createUnit [_start_pos, _group, "this moveinGunner _veh;this assignAsGunner _veh;"];};
+ if (_commander > 0) then {btc_type_crewmen createUnit [_start_pos, _group, "this moveinCommander _veh;this assignAsCommander _veh;"];};
+ for "_i" from 0 to _cargo do
+ {
+ _unit_type = selectRandom btc_type_units;
+ _unit_type createUnit [_start_pos, _group, "this moveinCargo _veh;this assignAsCargo _veh;"];
+ };
- units _group joinSilent _group;
- _group selectLeader (driver _veh);
+ units _group joinSilent _group;
+ _group selectLeader (driver _veh);
- _wp = _group addWaypoint [_pos, 60];
- _wp setWaypointType "MOVE";
- _wp setWaypointCombatMode "RED";
- _wp setWaypointBehaviour "AWARE";
- _wp setWaypointSpeed "FULL";
- _wp setWaypointStatements ["true","(group this) spawn btc_fnc_data_add_group;"];
- _wp_1 = _group addWaypoint [_pos, 60];
- _wp_1 setWaypointType "UNLOAD";
- _wp_2 = _group addWaypoint [_pos, 60];
- _wp_2 setWaypointType "SAD";
- if (btc_debug_log) then
- {
- diag_log format ["fnc_rep_call_militia = MOT %1/%2 POS %3",_group,_veh_type,_pos];
- };
+ _wp = _group addWaypoint [_pos, 60];
+ _wp setWaypointType "MOVE";
+ _wp setWaypointCombatMode "RED";
+ _wp setWaypointBehaviour "AWARE";
+ _wp setWaypointSpeed "FULL";
+ _wp setWaypointStatements ["true","(group this) spawn btc_fnc_data_add_group;"];
+ _wp_1 = _group addWaypoint [_pos, 60];
+ _wp_1 setWaypointType "UNLOAD";
+ _wp_2 = _group addWaypoint [_pos, 60];
+ _wp_2 setWaypointType "SAD";
+ if (btc_debug_log) then
+ {
+ diag_log format ["fnc_rep_call_militia = MOT %1/%2 POS %3",_group,_veh_type,_pos];
+ };
}
else
{
- //INF
- _group = [_start_pos,50,(8 + random 6),1] call btc_fnc_mil_create_group;
- _group setVariable ["no_cache",true];
- while {(count (waypoints _group)) > 0} do { deleteWaypoint ((waypoints _group) select 0); };
- _wp = _group addWaypoint [_pos, 60];
- _wp setWaypointType "MOVE";
- _wp setWaypointCombatMode "RED";
- _wp setWaypointBehaviour "AWARE";
- _wp setWaypointSpeed "FULL";
- _wp setWaypointFormation "WEDGE";
- _wp setWaypointStatements ["true", "(group this) spawn btc_fnc_data_add_group;"];
- //hint format ["%1,%2,%3,%4",_group,_pos,_wp,waypoints _group];
- _wp_2 = _group addWaypoint [_pos, 60];
- _wp_2 setWaypointType "SAD";
- if (btc_debug_log) then
- {
- diag_log format ["fnc_rep_call_militia = INF %1",_group];
- };
+ //INF
+ _group = ([_start_pos,50,(8 + random 6),1] call btc_fnc_mil_create_group) select 0;
+ _group setVariable ["no_cache",true];
+ while {(count (waypoints _group)) > 0} do { deleteWaypoint ((waypoints _group) select 0); };
+ _wp = _group addWaypoint [_pos, 60];
+ _wp setWaypointType "MOVE";
+ _wp setWaypointCombatMode "RED";
+ _wp setWaypointBehaviour "AWARE";
+ _wp setWaypointSpeed "FULL";
+ _wp setWaypointFormation "WEDGE";
+ _wp setWaypointStatements ["true", "(group this) spawn btc_fnc_data_add_group;"];
+ //hint format ["%1,%2,%3,%4",_group,_pos,_wp,waypoints _group];
+ _wp_2 = _group addWaypoint [_pos, 60];
+ _wp_2 setWaypointType "SAD";
+ if (btc_debug_log) then
+ {
+ diag_log format ["fnc_rep_call_militia = INF %1",_group];
+ };
};
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/change.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/change.sqf
index 32ce5c6b0..053af5efc 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/change.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/change.sqf
@@ -1,3 +1,3 @@
-if (btc_debug_log) then {diag_log format ["fnc_rep_change = GLOBAL %1 - CHANGE %2",btc_global_reputation,_this];};
+if (btc_debug_log) then {diag_log format ["fnc_rep_change = GLOBAL %1 - CHANGE %2",btc_global_reputation,_this];};
btc_global_reputation = btc_global_reputation + _this;//publicVariable "btc_global_reputation";
true
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/eh_effects.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/eh_effects.sqf
index 67e04c945..f559d38ac 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/eh_effects.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/eh_effects.sqf
@@ -12,25 +12,25 @@ if (_random <= 3) exitWith {};
if (time > (btc_rep_militia_called + btc_rep_militia_call_time)) then
{
- if (_random > 3) then //CALL MILITIA
- {
- [_pos] spawn btc_fnc_rep_call_militia;
- };
+ if (_random > 3) then //CALL MILITIA
+ {
+ [_pos] spawn btc_fnc_rep_call_militia;
+ };
};
if (btc_global_reputation < 300) then
{
- if (_random > 4) then //GET WEAPONS
- {
- [_pos,300] spawn btc_fnc_civ_get_weapons;
- };
+ if (_random > 4) then //GET WEAPONS
+ {
+ [_pos,300] spawn btc_fnc_civ_get_weapons;
+ };
} else {
- if (_random > 1) then //GET GRENADE
- {
- [_pos,300] spawn btc_fnc_civ_get_grenade;
- };
+ if (_random > 1) then //GET GRENADE
+ {
+ [_pos,300] spawn btc_fnc_civ_get_grenade;
+ };
};
if (btc_debug) then
{
- diag_log format ["REP = %1 - RANDOM = %2 - RINF TIME = %3 - MILITIA/WEAPONS = %4/%5",_rep,_random,(time > (btc_rep_militia_called + btc_rep_militia_call_time)),(_random > 3),(_random > 4)];
+ diag_log format ["REP = %1 - RANDOM = %2 - RINF TIME = %3 - MILITIA/WEAPONS = %4/%5",_rep,_random,(time > (btc_rep_militia_called + btc_rep_militia_call_time)),(_random > 3),(_random > 4)];
};
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/firednear.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/firednear.sqf
index 171e04658..c3214fb8e 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/firednear.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/firednear.sqf
@@ -12,11 +12,11 @@ if (!(side _civ isEqualTo civilian) || (random 3 < 1)) exitWith {};
[_civ, selectRandom ["ApanPknlMstpSnonWnonDnon_G01", "ApanPknlMstpSnonWnonDnon_G02", "ApanPknlMstpSnonWnonDnon_G03", "ApanPpneMstpSnonWnonDnon_G01", "ApanPpneMstpSnonWnonDnon_G02", "ApanPpneMstpSnonWnonDnon_G03"], 1] call ace_common_fnc_doAnimation;
if (side _gunner isEqualTo btc_player_side) then {
- if ((_gunner findNearestEnemy getpos _civ) distance _civ > 300) then {
- if (abs((_gunner getdir _civ) - getDir _gunner) < (300/(_this select 2))) then {
- btc_rep_malus_civ_firenear call btc_fnc_rep_change;
- [getpos _civ] call btc_fnc_rep_eh_effects;
- if (btc_debug_log) then {diag_log format ["REP Firenear = GREP %1 THIS = %2",btc_global_reputation,_this];};
- };
- };
+ if ((_gunner findNearestEnemy getpos _civ) distance _civ > 300) then {
+ if (abs((_gunner getdir _civ) - getDir _gunner) < (300/(_this select 2))) then {
+ btc_rep_malus_civ_firenear call btc_fnc_rep_change;
+ [getpos _civ] call btc_fnc_rep_eh_effects;
+ if (btc_debug_log) then {diag_log format ["REP Firenear = GREP %1 THIS = %2",btc_global_reputation,_this];};
+ };
+ };
};
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/hd.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/hd.sqf
index f83044fa3..d9c417eca 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/hd.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/hd.sqf
@@ -1,18 +1,12 @@
-private ["_unit","_part","_dam","_injurer","_ammo"];
-
-_unit = _this select 0;
-_part = _this select 1;
-_dam = _this select 2;
-_injurer = _this select 3;
-_ammo = _this select 4;
-
-if (_part == "body") then {
- if (isPlayer _injurer && {_dam > 0.3}) then {
- btc_rep_malus_civ_hd call btc_fnc_rep_change;
- if (btc_global_reputation < 600) then {[getpos _unit] spawn btc_fnc_rep_eh_effects;};
- if (btc_debug_log) then {diag_log format ["REP HD = GREP %1 THIS = %2",btc_global_reputation,_this];};
- };
+params ["_unit","_part","_dam","_injurer","_ammo"];
+
+if (_part in ["body","wheel_1_1_steering","wheel_1_2_steering","wheel_2_1_steering","wheel_2_2_steering","palivo","engine","glass1","glass2","glass3","glass4","karoserie","palivo","fuel_hitpoint","engine_hitpoint","body_hitpoint"]) then {
+ if (isPlayer _injurer && {_dam > 0.01}) then {
+ btc_rep_malus_civ_hd call btc_fnc_rep_change;
+ if (btc_global_reputation < 600) then {[getpos _unit] spawn btc_fnc_rep_eh_effects;};
+ if (btc_debug_log) then {diag_log format ["REP HD = GREP %1 THIS = %2",btc_global_reputation,_this];};
+ };
};
_dam
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/hh.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/hh.sqf
index be3232617..33c908af4 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/hh.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/hh.sqf
@@ -3,5 +3,5 @@ private "_healer";
_healer = _this select 0;
if (isPlayer _healer) then {
- btc_rep_bonus_civ_hh spawn btc_fnc_rep_change;if (btc_debug_log) then {diag_log format ["REP HH = GREP %1 THIS = %2",btc_global_reputation,_this];};
+ btc_rep_bonus_civ_hh spawn btc_fnc_rep_change;if (btc_debug_log) then {diag_log format ["REP HH = GREP %1 THIS = %2",btc_global_reputation,_this];};
};
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/killed.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/killed.sqf
index f4f70bbdb..b13ce38fc 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/killed.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/killed.sqf
@@ -4,11 +4,11 @@ private ["_unit","_killer"];
_unit = _this select 0;
_killer = _this select 1;
if (isPlayer _killer) then {
- btc_rep_malus_civ_killed call btc_fnc_rep_change;
- if (btc_global_reputation < 600) then {[getpos _unit] spawn btc_fnc_rep_eh_effects;};
- if (btc_debug_log) then {diag_log format ["REP KILLED = GREP %1 THIS = %2",btc_global_reputation,_this];};
+ btc_rep_malus_civ_killed call btc_fnc_rep_change;
+ if (btc_global_reputation < 600) then {[getpos _unit] spawn btc_fnc_rep_eh_effects;};
+ if (btc_debug_log) then {diag_log format ["REP KILLED = GREP %1 THIS = %2",btc_global_reputation,_this];};
};
if !(isNil {_unit getVariable ["traffic",objNull]}) then {
- [[], [_unit getVariable ["traffic",objNull]], [], []] call btc_fnc_delete;
+ [[], [_unit getVariable ["traffic",objNull]], [], []] call btc_fnc_delete;
};
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/ans_var.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/ans_var.sqf
deleted file mode 100644
index e3afc0428..000000000
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/ans_var.sqf
+++ /dev/null
@@ -1,37 +0,0 @@
-
-private ["_examined","_data"];
-
-_examined = _this select 0;
-_data = _this select 1;
-
-//_data = [_target,_isUnc,_isBusy,_isDragging,_bleed,_bloss,_pain,_mor];
-
-_examined setVariable ["btc_rev_time_examination", time];
-/*
-_examined setVariable ["BTC_w_isUnc",(_data select 1)];
-_examined setVariable ["BTC_w_busy",(_data select 2)];
-_examined setVariable ["BTC_w_isDragging",(_data select 3)];
-_examined setVariable ["BTC_w_bleed",(_data select 4)];
-_examined setVariable ["BTC_w_bloss",(_data select 5)];
-_examined setVariable ["BTC_w_pain",(_data select 6)];
-_examined setVariable ["BTC_w_mor",(_data select 7)];*/
-
-_examined setVariable ["btc_int_busy",(_data select 1)];
-_examined setVariable ["btc_rev_isDragging",(_data select 2)];
-_examined setVariable ["btc_rev_bleed",(_data select 3)];
-_examined setVariable ["btc_rev_bloss",(_data select 4)];
-_examined setVariable ["btc_rev_pain",(_data select 5)];
-_examined setVariable ["btc_rev_mor",(_data select 6)];
-
-_examined spawn
-{
- waitUntil {!(isNil "btc_int_action_result")};
-
- if (!btc_int_action_result) exitWith {player setVariable ["btc_int_busy", false];};
-
- hintSilent "";
-
- btc_int_target = _this;
- btc_int_target spawn btc_fnc_rev_examine_result;
- 1 spawn btc_fnc_int_open_dlg;
-};
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/apply_treat.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/apply_treat.sqf
deleted file mode 100644
index 46151996a..000000000
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/apply_treat.sqf
+++ /dev/null
@@ -1,80 +0,0 @@
-
-_unit = _this select 0;
-_treat = _this select 1;
-
-
-switch (_treat) do
-{
- case 1 :
- {
- private ["_bleed","_pain","_new_pain","_dam","_new_dam"];
- _bleed = _unit getVariable ["btc_rev_bleed",0];
- _bleed = _bleed - 0.2;
- if (_bleed < 0) then {_bleed = 0;};
- _unit setVariable ["btc_rev_bleed",_bleed];
- _pain = _unit getvariable ["btc_rev_pain",0];
- _new_pain = _pain - 0.1;if (_new_pain < 0) then {_new_pain = 0;};
- _unit setVariable ["btc_rev_pain",_new_pain];
-
- _new_dam = 0.1;
- _dam = _unit getVariable ["btc_rev_head",0];
- if (_dam > 0) then {_unit setVariable ["btc_rev_head",(_dam - _new_dam)];};
- if (_unit getVariable ["btc_rev_head",0] < 0) then {_unit setVariable ["btc_rev_head",0];};
- _dam = _unit getVariable ["btc_rev_body",0];
- if (_dam > 0) then {_unit setVariable ["btc_rev_body",(_dam - _new_dam)];};
- if (_unit getVariable ["btc_rev_body",0] < 0) then {_unit setVariable ["btc_rev_body",0];};
- _dam = _unit getVariable ["btc_rev_hands",0];
- if (_dam > 0) then {_unit setVariable ["btc_rev_hands",(_dam - _new_dam)];};
- if (_unit getVariable ["btc_rev_hands",0] < 0) then {_unit setVariable ["btc_rev_hands",0];};
- _dam = _unit getVariable ["btc_rev_legs",0];
- if (_dam > 0) then {_unit setVariable ["btc_rev_legs",(_dam - _new_dam)];};
- if (_unit getVariable ["btc_rev_legs",0] < 0) then {_unit setVariable ["btc_rev_legs",0];};
- };
- case 2 :
- {
- private ["_bleed","_pain","_new_pain"];
- _bleed = _unit getVariable ["btc_rev_bleed",0];
- _bleed = _bleed - 0.5;
- if (_bleed < 0) then {_bleed = 0;};
- _unit setVariable ["btc_rev_bleed",_bleed];
- _pain = _unit getvariable ["btc_rev_pain",0];
- _new_pain = _pain - 0.1;if (_new_pain < 0) then {_new_pain = 0;};
- _unit setVariable ["btc_rev_pain",_new_pain];
-
- _new_dam = 0.2;
- _dam = _unit getVariable ["btc_rev_head",0];
- if (_dam > 0) then {_unit setVariable ["btc_rev_head",(_dam - _new_dam)];};
- if (_unit getVariable ["btc_rev_head",0] < 0) then {_unit setVariable ["btc_rev_head",0];};
- _dam = _unit getVariable ["btc_rev_body",0];
- if (_dam > 0) then {_unit setVariable ["btc_rev_body",(_dam - _new_dam)];};
- if (_unit getVariable ["btc_rev_body",0] < 0) then {_unit setVariable ["btc_rev_body",0];};
- _dam = _unit getVariable ["btc_rev_hands",0];
- if (_dam > 0) then {_unit setVariable ["btc_rev_hands",(_dam - _new_dam)];};
- if (_unit getVariable ["btc_rev_hands",0] < 0) then {_unit setVariable ["btc_rev_hands",0];};
- _dam = _unit getVariable ["btc_rev_legs",0];
- if (_dam > 0) then {_unit setVariable ["btc_rev_legs",(_dam - _new_dam)];};
- if (_unit getVariable ["btc_rev_legs",0] < 0) then {_unit setVariable ["btc_rev_legs",0];};
- };
- case 3 :
- {
- private ["_mor"];
- _mor = _unit getvariable ["btc_rev_mor",0];
- _unit setvariable ["btc_rev_mor",(_mor + 1)];
- _pain = _unit getvariable ["btc_rev_pain",0];
- _new_pain = _pain - 0.2;if (_new_pain < 0) then {_new_pain = 0;};
- _unit setVariable ["btc_rev_pain",_new_pain];
- //_spawn = _unit spawn {private ["_id"];_id = _this getVariable ["btc_rev_id",0];sleep btc_rev_mor_duration;if (_this getVariable ["btc_rev_id",0] == _id) then {private ["_mor"];_mor = _unit getvariable ["btc_rev_mor",0];if (_mor - 1 < 0) then {_mor = 1;};_unit setvariable ["btc_rev_mor",(_mor - 1)];};};
- };
- case 4 :
- {
- _unit setVariable ["btc_rev_isUnc",false];
- };
- case 5 :
- {
- private ["_bloss"];
- _bloss = _unit getVariable ["btc_rev_bloss",0];
- _bloss = _bloss - 0.5;
- if (_bloss < 0) then {_bloss = 0;};
- _unit setVariable ["btc_rev_bloss",_bloss];
- };
-};
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/ask_var.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/ask_var.sqf
deleted file mode 100644
index 22c59b37a..000000000
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/ask_var.sqf
+++ /dev/null
@@ -1,16 +0,0 @@
-
-private ["_target","_asker","_isBusy","_isDragging","_bleed","_bloss","_pain","_mor","_data"];
-
-_target = player;
-_asker = _this select 0;
-
-//_isUnc = _target getVariable ["btc_rev_isUnc",false];
-_isBusy = _target getVariable ["btc_int_busy",false];
-_isDragging = _target getVariable ["btc_rev_isDragging",false];
-_bleed = _target getVariable ["btc_rev_bleed",0];
-_bloss = _target getVariable ["btc_rev_bloss",0];
-_pain = _target getVariable ["btc_rev_pain",0];
-_mor = _target getVariable ["btc_rev_mor",0];
-
-_data = [_target,/*_isUnc,*/_isBusy,_isDragging,_bleed,_bloss,_pain,_mor];
-[[player, _data],"btc_fnc_rev_ans_var",_asker,false] spawn BIS_fnc_MP;
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/carry.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/carry.sqf
deleted file mode 100644
index 9db6b025f..000000000
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/carry.sqf
+++ /dev/null
@@ -1,35 +0,0 @@
-
-closeDialog 0;
-
-_injured = _this;
-
-if !(_injured getVariable ["btc_rev_isUnc",false]) exitWith {};
-
-player setVariable ["btc_int_busy",true];
-player setVariable ["btc_rev_isCarrying",true];
-player setVariable ["btc_rev_attached",_injured];
-
-detach _injured;
-
-player playMoveNow "acinpknlmstpsraswrfldnon_acinpercmrunsraswrfldnon";
-
-_healer = player;
-[[1,_injured, _healer],"btc_fnc_code_on_local",_injured,false] spawn BIS_fnc_MP;
-
-WaitUntil {!Alive player || player getVariable ["btc_rev_isUnc",false] || ((animationstate player == "acinpercmstpsraswrfldnon") || (animationstate player == "acinpercmrunsraswrfldf") || (animationstate player == "acinpercmrunsraswrfldr") || (animationstate player == "acinpercmrunsraswrfldl"))};
-
-if ((player getVariable ["btc_rev_isUnc",false]) || !Alive player) exitWith {};
-_injured attachto [player,[-0.2, 0.1, 0.1]];
-_id = player addAction [("
";
-//bleed
-_bleed = _this getVariable ["btc_rev_bleed",0];
-switch (true) do
-{
- case (_bleed <= 0) : {_text = _text + "He's not bleeding.";};
- case (_bleed < 0.5 && {_bleed > 0}) : {_text = _text + "He's bleeding.";};
- case (_bleed >= 0.5) : {_text = _text + "He's bleeding a lot.";};
-};
-_text = _text + "
";
-//pain
-_pain = _this getVariable ["btc_rev_pain",0];
-switch (true) do
-{
- case (_pain <= 0) : {_text = _text + "He isn't in pain.";};
- case (_pain < 0.5 && {_pain > 0}) : {_text = _text + "He is in pain.";};
- case (_pain >= 0.5) : {_text = _text + "He is in heavy pain.";};
-};
-_text = _text + "
";
-//mor
-_mor = _this getVariable ["btc_rev_mor",0];
-switch (true) do
-{
- case (_mor <= 0) : {_text = _text + "He isn't on morphine.";};
- case (_mor > 0 && {_mor < 1.5}) : {_text = _text + "He is on morphine.";};
- case (_mor >= 1.5) : {_text = _text + "He is on some morphine.";};
-};
-_text = _text + "
";
-//bloss
-_bloss = _this getVariable ["btc_rev_bloss",0];
-switch (true) do
-{
- case (_bloss <= 0) : {_text = _text + "He hasn't lost any blood.";};
- case (_bloss < 0.5 && {_bloss > 0}) : {_text = _text + "He has already lost some blood.";};
- case (_bloss < 0.85 && {_bloss > 0.5}) : {_text = _text + "He has lost a lot of blood.";};
- case (_bloss >= 0.85) : {_text = _text + "He has lost a lot of blood and need a transfution.";};
-};
-
-hintSilent parseText _text;
-//player sideChat _text;
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/get_gear.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/get_gear.sqf
deleted file mode 100644
index e98a28165..000000000
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/get_gear.sqf
+++ /dev/null
@@ -1,22 +0,0 @@
-_unit = _this select 0;
-_weapons_array = [weapons player,primaryWeaponItems player,secondaryWeaponItems player,handgunItems player,primaryWeaponMagazine player,secondaryWeaponMagazine player,handgunMagazine player];
-_gear_array =
-[
- uniform _unit,
- vest _unit,
- headGear _unit,
- backpack _unit,
- assignedItems _unit,
- getMagazineCargo uniformContainer _unit,
- getItemCargo uniformContainer _unit,
- getMagazineCargo vestContainer _unit,
- getItemCargo vestContainer _unit,
- getMagazineCargo backpackContainer _unit,
- getItemCargo backpackContainer _unit
-];
-_gear =
-[
- _weapons_array,
- _gear_array
-];
-_gear
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/hd.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/hd.sqf
deleted file mode 100644
index b3b5659f3..000000000
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/hd.sqf
+++ /dev/null
@@ -1,103 +0,0 @@
-_unit = _this select 0;
-_part = _this select 1;
-_dam = _this select 2;
-_injurer = _this select 3;
-_ammo = _this select 4;
-
-_v_bleed = 4;
-_v_bloss = 10;
-_v_pain = 2;
-
-_eh_array = _unit getVariable ["btc_rev_eh_array",[]];
-//#define __ammocfg configFile >> "cfgAmmo" >> _ammo _explosive = (getNumber(__ammocfg >> "explosive") > 0);
-switch (_part) do
-{
- case "head_hit" : {_part = "head";};
- case "hand_l" : {_part = "hands";};
- case "hand_r" : {_part = "hands";};
- case "leg_l" : {_part = "legs";};
- case "leg_r" : {_part = "legs";};
-};
-if (_part != "") then
-{
- if (_part == "head" && (count _eh_array) > 0) exitWith {0};
- _eh_array set [(count _eh_array), [_part,_dam]];
- _unit setVariable ["btc_rev_eh_array",_eh_array];
-};
-
-if (vehicle _unit != _unit && {_part == ""} && {(count _eh_array) == 0}) then
-{
- {_eh_array set [(count _eh_array), [_part,_dam]];_unit setVariable ["btc_rev_eh_array",_eh_array];} foreach [1,2,3,4];
-};
-
-//diag_log format ["BTC HD = %1 - %2",_this,_eh_array];
-
-if (count _eh_array < 4) exitWith {0};
-
-if (vehicle _unit != _unit) then
-{
- if (!Alive (vehicle _unit)) then
- {
- _unit action ["getOut",vehicle _unit];//EJECT
- _unit setvariable ["btc_rev_bloss",1];
- _unit setvariable ["btc_rev_bleed",1];
- _unit setvariable ["btc_rev_pain",1];
- _unit spawn btc_fnc_rev_unc;
- }
- else
- {
- _unit spawn
- {
- private "_veh";
- _veh = (vehicle _this);
- sleep 2.5;
- if (!Alive _veh) then
- {
- _this action ["getOut",vehicle _this];
- _this setvariable ["btc_rev_bloss",1];
- _this setvariable ["btc_rev_bleed",1];
- _this setvariable ["btc_rev_pain",1];
- _this switchMove "AinjPpneMstpSnonWrflDnon";
- _this spawn btc_fnc_rev_unc;
- };
- };
- };
-};
-
-_unit setVariable ["btc_rev_eh_array",[]];
-
-_part = "";_dam = 0;
-{
- if ((_x select 1) > _dam) then
- {
- _part = (_x select 0);
- _dam = (_x select 1);
- };
-} foreach _eh_array;
-
-//diag_log text format ["HD = P %1 - DAM %2 - PAIN %3 (%4) - BLEED %5 (%6)",_part,_dam,_unit getvariable ["btc_rev_pain",0],(_dam / _v_pain),_unit getvariable ["btc_rev_bleed",0],(_dam / _v_bleed)];
-
-_prevDamage = _unit getvariable (format ["btc_rev_%1",_part]);
-_unit setVariable [(format ["btc_rev_%1",_part]), (_prevDamage + _dam)];
-
-_fatigue = getFatigue player;
-_new_fatigue = (_dam / 3) + _fatigue;
-player setFatigue _new_fatigue;
-
-_bloss = _unit getvariable ["btc_rev_bloss",0];
-_bleed = _unit getvariable ["btc_rev_bleed",0];
-_pain = _unit getvariable ["btc_rev_pain",0];
-addCamShake [(_dam * 10), 1, 15];
-[_dam * 100] call BIS_fnc_bloodEffect;
-
-
-if (_dam > 0.2) then
-{
- _unit setvariable ["btc_rev_bloss",(_bloss + (_dam / _v_bloss))];
- _unit setvariable ["btc_rev_bleed",(_bleed + (_dam / _v_bleed))];
- _unit setvariable ["btc_rev_pain",(_pain + (_dam / _v_pain))];
-};
-
-if (isNil {_unit getVariable "btc_rev_statehandler"}) then {_unit spawn btc_fnc_rev_statehandler;};
-
-0
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/init.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/init.sqf
deleted file mode 100644
index 285147286..000000000
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/init.sqf
+++ /dev/null
@@ -1,5 +0,0 @@
-
-if (btc_p_revive == 0) exitWith {};
-
-player spawn btc_fnc_rev_unit_init;
-btc_rev_gear = [player] call btc_fnc_rev_get_gear;
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/init_var.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/init_var.sqf
deleted file mode 100644
index 20043013e..000000000
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/init_var.sqf
+++ /dev/null
@@ -1,18 +0,0 @@
-
-_this setVariable ["btc_rev_isUnc",false,true];
-_this setVariable ["btc_int_busy",false];
-_this setVariable ["btc_rev_isDragging",false];
-_this setVariable ["btc_rev_isCarrying",false];
-_this setVariable ["btc_rev_bleed",0];
-_this setVariable ["btc_rev_bloss",0];
-_this setVariable ["btc_rev_pain",0];
-_this setVariable ["btc_rev_mor",0];
-_this setVariable ["btc_rev_eh_array",[]];
-_this setVariable ["btc_rev_head",0];
-_this setVariable ["btc_rev_body",0];
-_this setVariable ["btc_rev_hands",0];
-_this setVariable ["btc_rev_legs",0];
-_this setfatigue 0;
-_this setcaptive false;
-_this forceWalk false;
-true
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/is_medic.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/is_medic.sqf
deleted file mode 100644
index 3abf87ebf..000000000
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/is_medic.sqf
+++ /dev/null
@@ -1,3 +0,0 @@
-_cond = false;
-if (getNumber (configFile >> "CfgVehicles" >> typeOf _this >> "attendant") == 1 || _this getVariable ["btc_rev_isMedic",false]) then {_cond = true;};
-_cond
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/load.sqf
deleted file mode 100644
index 0ee32f939..000000000
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/load.sqf
+++ /dev/null
@@ -1,17 +0,0 @@
-
-_injured = _this;
-
-closeDialog 0;
-
-_veh = (nearestObjects [player, ["Air","LandVehicle"], 5]) select 0;
-
-if (isNull _injured) exitWith {hint "Error: No unit";};
-if (isNull _veh) exitWith {hint "Error: No vehicle";};
-
-player setVariable ["btc_rev_busy",false];
-player setVariable ["btc_rev_isCarrying",false];
-player setVariable ["btc_rev_isDragging",false];
-
-sleep 0.2;
-
-[[3,_injured, _veh],"btc_fnc_code_on_local",_injured,false] spawn BIS_fnc_MP;
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/rsc.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/rsc.hpp
deleted file mode 100644
index 54dad53d8..000000000
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/rsc.hpp
+++ /dev/null
@@ -1,208 +0,0 @@
- class btc_rev_dlg_bleeding_1
- {
- idd = 999901;
- movingEnable = 0;
- duration = 0.1;
- fadein = 0.4;
- fadeout = 0.5;
- name = "btc_rev_dlg_bleeding_1";
-
- class controls {
- class btc_rev_dlg_img {
- idc=-1;
- type = 0;
- style = 48;
- colorBackground[] = {0, 0, 0, 0};
- colorText[] = {0.9, 0.9, 0.9, 0.6};
- font = "PuristaMedium";
- sizeEx = 0.023;
- x = "safeZoneXAbs";
- y = "SafeZoneY";
- w = "safeZoneWAbs + 0.05";
- h = "SafeZoneH + 0.05";
- text = "img\rsc\i_bleeding_1.paa";
- };
- };
- };
- class btc_rev_dlg_bleeding_2
- {
- idd = 999902;
- movingEnable = 0;
- duration = 0.1;
- fadein = 0.3;
- fadeout = 0.6;
- name = "btc_rev_dlg_bleeding_2";
-
- class controls {
- class btc_rev_dlg_img {
- idc=-1;
- type = 0;
- style = 48;
- colorBackground[] = {0, 0, 0, 0};
- colorText[] = {0.9, 0.9, 0.9, 0.8};
- font = "PuristaMedium";
- sizeEx = 0.023;
- x = "safeZoneXAbs";
- y = "SafeZoneY";
- w = "safeZoneWAbs + 0.05";
- h = "SafeZoneH + 0.05";
- text = "img\rsc\i_bleeding_1.paa";
- };
- };
- };
- class btc_rev_dlg_bleeding_3
- {
- idd = 999903;
- movingEnable = 0;
- duration = 0.1;
- fadein = 0.2;
- fadeout = 0.7;
- name = "btc_rev_dlg_bleeding_3";
-
- class controls {
- class btc_rev_dlg_img {
- idc=-1;
- type = 0;
- style = 48;
- colorBackground[] = {0, 0, 0, 0};
- colorText[] = {0.9, 0.9, 0.9, 0.9};
- font = "PuristaMedium";
- sizeEx = 0.023;
- x = "safeZoneXAbs";
- y = "SafeZoneY";
- w = "safeZoneWAbs + 0.05";
- h = "SafeZoneH + 0.05";
- text = "img\rsc\i_bleeding_2.paa";
- };
- };
- };
- class btc_rev_dlg_bleeding_4
- {
- idd = 999904;
- movingEnable = 0;
- duration = 0.1;
- fadein = 0.18;
- fadeout = 0.72;
- name = "btc_rev_dlg_bleeding_4";
-
- class controls {
- class btc_rev_dlg_img {
- idc=-1;
- type = 0;
- style = 48;
- colorBackground[] = {0, 0, 0, 0};
- colorText[] = {0.9, 0.9, 0.9, 0.9};
- font = "PuristaMedium";
- sizeEx = 0.023;
- x = "safeZoneXAbs";
- y = "SafeZoneY";
- w = "safeZoneWAbs + 0.05";
- h = "SafeZoneH + 0.05";
- text = "img\rsc\i_bleeding_3.paa";
- };
- };
- };
- class btc_rev_dlg_bleeding_5
- {
- idd = 999905;
- movingEnable = 0;
- duration = 0.1;
- fadein = 0.15;
- fadeout = 0.75;
- name = "btc_rev_dlg_bleeding_5";
-
- class controls {
- class btc_rev_dlg_bleeding__BG {
- idc=-1;
- type = 0;
- style = 48;
- colorBackground[] = {0, 0, 0, 0};
- colorText[] = {0.9, 0.9, 0.9, 0.9};
- font = "PuristaMedium";
- sizeEx = 0.023;
- x = "safeZoneXAbs";
- y = "SafeZoneY";
- w = "safeZoneWAbs + 0.05";
- h = "SafeZoneH + 0.05";
- text = "img\rsc\i_bleeding_3.paa";
- };
- };
- };
- class btc_rev_dlg_bloss_1
- {
- idd = 999906;
- movingEnable = 0;
- duration = 0.1;
- fadein = 1;
- fadeout = 1;
- name = "btc_rev_dlg_bloss_1";
-
- class controls {
- class BTC_w_dlg_img {
- idc=-1;
- type = 0;
- style = 48;
- colorBackground[] = {0, 0, 0, 0};
- colorText[] = {0.9, 0.9, 0.9, 0.6};
- font = "PuristaMedium";
- sizeEx = 0.023;
- x = "safeZoneXAbs";
- y = "SafeZoneY";
- w = "safeZoneWAbs + 0.05";
- h = "SafeZoneH + 0.05";
- text = "img\rsc\i_bloss_1.paa";
- };
- };
- };
- class btc_rev_dlg_bloss_2
- {
- idd = 999907;
- movingEnable = 0;
- duration = 0.1;
- fadein = 1.5;
- fadeout = 1.5;
- name = "btc_rev_dlg_bloss_2";
-
- class controls {
- class BTC_w_dlg_img {
- idc=-1;
- type = 0;
- style = 48;
- colorBackground[] = {0, 0, 0, 0};
- colorText[] = {0.9, 0.9, 0.9, 0.8};
- font = "PuristaMedium";
- sizeEx = 0.023;
- x = "safeZoneXAbs";
- y = "SafeZoneY";
- w = "safeZoneWAbs + 0.05";
- h = "SafeZoneH + 0.05";
- text = "img\rsc\i_bloss_2.paa";
- };
- };
- };
- class btc_rev_dlg_bloss_3
- {
- idd = 999908;
- movingEnable = 0;
- duration = 0.1;
- fadein = 2;
- fadeout = 2;
- name = "btc_rev_dlg_bloss_3";
-
- class controls {
- class BTC_w_dlg_img {
- idc=-1;
- type = 0;
- style = 48;
- colorBackground[] = {0, 0, 0, 0};
- colorText[] = {0.9, 0.9, 0.9, 0.9};
- font = "PuristaMedium";
- sizeEx = 0.023;
- x = "safeZoneXAbs";
- y = "SafeZoneY";
- w = "safeZoneWAbs + 0.05";
- h = "SafeZoneH + 0.05";
- text = "img\rsc\i_bloss_3.paa";
- };
- };
- };
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/set_gear.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/set_gear.sqf
deleted file mode 100644
index 89f28304c..000000000
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/set_gear.sqf
+++ /dev/null
@@ -1,70 +0,0 @@
-_unit = _this select 0;
-_gear = _this select 1;
-_weapons_array = _gear select 0;
-_gear_array = _gear select 1;
-
-removeAllweapons player;
-removeAllAssignedItems player;
-removeuniform player;
-removevest player;
-removeheadgear player;
-removegoggles player;
-removeBackPack player;
-
-if ((_gear_array select 0) != "") then {player addUniform (_gear_array select 0);};
-if ((_gear_array select 1) != "") then {player addVest (_gear_array select 1);};
-if ((_gear_array select 2) != "") then {player addheadGear (_gear_array select 2);};
-if ((_gear_array select 3) != "") then {player addBackpack (_gear_array select 3);};
-
-{player addMagazine _x;} foreach (_weapons_array select 4);
-{player addMagazine _x;} foreach (_weapons_array select 5);
-{player addMagazine _x;} foreach (_weapons_array select 6);
-{player addWeapon _x} foreach (_weapons_array select 0);
-if (count (_weapons_array select 1) > 0) then {{if (_x != "") then {player addPrimaryWeaponItem _x;};} foreach (_weapons_array select 1);};
-if (count (_weapons_array select 2) > 0) then {{if (_x != "") then {player addSecondaryWeaponItem _x;};} foreach (_weapons_array select 2);};
-if (count (_weapons_array select 3) > 0) then {{if (_x != "") then {player addHandgunItem _x;};} foreach (_weapons_array select 3);};
-
-if (count (_gear_array select 4) > 0) then {{if (_x != "" && _x != "Binocular" && _x != "Rangefinder" && _x != "Laserdesignator") then {player addItem _x;player assignItem _x;} else {player addWeapon _x;};} foreach (_gear_array select 4);};
-
-if ((count ((_gear_array select 5) select 0)) > 0) then
-{
- for "_i" from 0 to (count ((_gear_array select 5) select 0) - 1) do
- {
- (uniformContainer player) addMagazineCargo [(((_gear_array select 5) select 0) select _i),(((_gear_array select 5) select 1) select _i)];
- };
-};
-if ((count ((_gear_array select 6) select 0)) > 0) then
-{
- for "_i" from 0 to (count ((_gear_array select 6) select 0) - 1) do
- {
- (uniformContainer player) addItemCargo [(((_gear_array select 6) select 0) select _i),(((_gear_array select 6) select 1) select _i)];
- };
-};
-if ((count (_gear_array select 7)) > 0) then
-{
- for "_i" from 0 to (count ((_gear_array select 7) select 0) - 1) do
- {
- (vestContainer player) addMagazineCargo [(((_gear_array select 7) select 0) select _i),(((_gear_array select 7) select 1) select _i)];
- };
-};
-if ((count ((_gear_array select 8) select 0)) > 0) then
-{
- for "_i" from 0 to (count ((_gear_array select 8) select 0) - 1) do
- {
- (vestContainer player) addItemCargo [(((_gear_array select 8) select 0) select _i),(((_gear_array select 8) select 1) select _i)];
- };
-};
-if ((count (_gear_array select 9)) > 0) then
-{
- for "_i" from 0 to (count ((_gear_array select 9) select 0) - 1) do
- {
- (backpackContainer player) addMagazineCargo [(((_gear_array select 9) select 0) select _i),(((_gear_array select 9) select 1) select _i)];
- };
-};
-if ((count ((_gear_array select 10) select 0)) > 0) then
-{
- for "_i" from 0 to (count ((_gear_array select 10) select 0) - 1) do
- {
- (backpackContainer player) addItemCargo [(((_gear_array select 10) select 0) select _i),(((_gear_array select 10) select 1) select _i)];
- };
-};
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/stateHandler.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/stateHandler.sqf
deleted file mode 100644
index c2c718a0a..000000000
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/stateHandler.sqf
+++ /dev/null
@@ -1,90 +0,0 @@
-
-private ["_fatigue","_get_fatigue","_new_fatigue","_bloss","_is_bleed","_bleed_fatigue"];
-
-_unit = _this;
-_unit setVariable ["btc_rev_statehandler",true];
-
-#define _damageHead _unit getVariable ["btc_rev_head",0]
-#define _damageBody _unit getVariable ["btc_rev_body",0]
-#define _damageHands _unit getVariable ["btc_rev_hands",0]
-#define _damagelegs _unit getVariable ["btc_rev_legs",0]
-
-#define _fatigue_bleed 4
-#define _fatigue_dam 10
-
-#define __STATE _unit getVariable ["btc_rev_isUnc",false]
-
-//Init var
-btc_rev_fx_effects = false;
-btc_rev_fx_effect_pain = false;
-_fatigue = 0;
-_cond = true;
-
-While {Alive _unit && _cond} do
-{
- _fatigue = 0;
-//DAM CHECK
- if (_unit getVariable ["btc_rev_head",0] > btc_rev_max_damage_head && !(__STATE)) then {_unit setvariable ["btc_rev_pain",1];_unit spawn btc_fnc_rev_unc;} else {_fatigue = _fatigue + ((_unit getVariable ["btc_rev_head",0]) * (((speed _unit) / _fatigue_dam)));};
- if (_unit getVariable ["btc_rev_body",0] > btc_rev_max_damage_body && !(__STATE)) then {_unit setvariable ["btc_rev_pain",1];_unit spawn btc_fnc_rev_unc;} else {_fatigue = _fatigue + ((_unit getVariable ["btc_rev_body",0]) * (((speed _unit) / _fatigue_dam)/2));};
- if (_unit getVariable ["btc_rev_hands",0] > btc_rev_max_damage_hands && !(__STATE)) then {_unit setvariable ["btc_rev_pain",1];_unit spawn btc_fnc_rev_unc;} else {_fatigue = _fatigue + ((_unit getVariable ["btc_rev_hands",0]) * (((speed _unit) / _fatigue_dam)/2));};
- if (_unit getVariable ["btc_rev_legs",0] > btc_rev_max_damage_legs && !(__STATE)) then {_unit setvariable ["btc_rev_pain",1];_unit spawn btc_fnc_rev_unc;} else {_fatigue = _fatigue + ((_unit getVariable ["btc_rev_legs",0]) * (((speed _unit) / _fatigue_dam)/2));};
-
-//BLOSS CHECK
- if ((_unit getvariable ["btc_rev_bleed",0]) > 0) then
- {
- if ((_unit getvariable ["btc_rev_bleed",0]) > 1) then {_unit setvariable ["btc_rev_bleed",1]};
- _moving_factor = if (speed _unit >= 3) then {0.0001} else {0.00005};
- _bleed = (_unit getvariable ["btc_rev_bleed",0])/1000;
- _bloss = _unit getvariable ["btc_rev_bloss",0];
- _new_bloss = _bloss + _bleed + _moving_factor;if (_new_bloss > 1) then {_new_bloss = 1;};
- _unit setVariable ["btc_rev_bloss",_new_bloss];
- _bleed = _unit getvariable ["btc_rev_bleed",0];
- _pain_to_add = (_bleed + (_unit getVariable ["btc_rev_head",0]) + (_unit getVariable ["btc_rev_body",0]) + (_unit getVariable ["btc_rev_hands",0]) + (_unit getVariable ["btc_rev_legs",0])) / 2500;
- _pain = _unit getvariable ["btc_rev_pain",0];
- _new_pain = _pain + _pain_to_add;if (_new_pain > 1) then {_new_pain = 1;};
- _unit setvariable ["btc_rev_pain",_new_pain];
- }
- else
- {
- /*_bloss = _unit getvariable ["btc_rev_bloss",0];
- _new_bloss = _bloss - 0.0001;if (_new_bloss <= 0) then {_new_bloss = 0;};
- _unit setVariable ["btc_rev_bloss",_new_bloss];*/
-
- _new_dam = 0.001;
- _dam = _unit getVariable ["btc_rev_head",0];
- if (_dam > 0) then {_unit setVariable ["btc_rev_head",(_dam - _new_dam)];};
- _dam = _unit getVariable ["btc_rev_body",0];
- if (_dam > 0) then {_unit setVariable ["btc_rev_body",(_dam - _new_dam)];};
- _dam = _unit getVariable ["btc_rev_hands",0];
- if (_dam > 0) then {_unit setVariable ["btc_rev_hands",(_dam - _new_dam)];};
- _dam = _unit getVariable ["btc_rev_legs",0];
- if (_dam > 0) then {_unit setVariable ["btc_rev_legs",(_dam - _new_dam)];};
- };
- if (_unit getvariable ["btc_rev_bloss",0] > 1 && {!(__STATE)}) then {_unit setVariable ["btc_rev_bloss",1];_unit spawn btc_fnc_rev_unc;};
-//PAIN
- _pain = _unit getvariable ["btc_rev_pain",0];
- _mor = _unit getvariable ["btc_rev_mor",0];
- if (_mor > 0 && {_unit getvariable ["btc_rev_pain",0] > 0}) then
- {
- _reduce = _mor * 0.001;
- _unit setvariable ["btc_rev_pain",(_pain - _reduce)];
- };
- if ((_unit getvariable ["btc_rev_pain",0] >= btc_rev_max_pain || (_unit getvariable ["btc_rev_mor",0] > btc_rev_max_mor)) && {!(__STATE)}) then {_unit spawn btc_fnc_rev_unc;};
-//MOR
- if (_mor > 0) then {_unit setvariable ["btc_rev_mor",(_mor - 0.00025)];};
-//FATIGUE
- _get_fatigue = getFatigue _unit;
- _new_fatigue = if ((_get_fatigue + (_fatigue / 100)) > 1) then {1} else {(_get_fatigue + (_fatigue / 100))};
- _unit setFatigue _new_fatigue;
- ////diag_log format ["%1 - %2 / OLD = %3 NEW = %4",_fatigue,_fatigue / 100,_get_fatigue,(_get_fatigue + (_fatigue / 100))];
-//EFFECTS
- if (!(__STATE) && {((_unit getvariable ["btc_rev_bleed",0]) > 0 || (_unit getvariable ["btc_rev_bloss",0]) > 0.4)} && {!btc_rev_fx_effects}) then {[] spawn btc_fnc_rev_effects;};
- if (((_unit getvariable ["btc_rev_pain",0]) > 0) && {!btc_rev_fx_effect_pain}) then {[] spawn btc_fnc_rev_effect_pain;};
-
-//STATE CHECK
- if (_unit getVariable ["btc_rev_legs",0] > 0.7 || {_unit getVariable ["btc_rev_bloss",0] > 0.7}) then {_unit forceWalk true;} else {_unit forceWalk false;};
- //if (__STATE == 1) then {_unit spawn btc_fnc_rev_unc;};
- sleep 0.1;
-};
-
-_unit setVariable ["btc_rev_statehandler",nil];
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/treat.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/treat.sqf
deleted file mode 100644
index 3cc486309..000000000
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/treat.sqf
+++ /dev/null
@@ -1,62 +0,0 @@
-private ["_receiver", "_delay"];
-_receiver = _this select 0;
-_treat = _this select 1;
-
-_isMedic = player call btc_fnc_rev_is_medic;
-
-if (!alive player) exitWith {};
-if (!_isMedic && {((_treat == 2 && btc_rev_lbndg_only_medic) || (_treat == 3 && btc_rev_mor_only_medic) || (_treat == 4 && btc_rev_epi_only_medic) || (_treat == 5 && btc_rev_blood_only_medic))}) exitWith {hint "You're not a medic"};
-
-closeDialog 0;
-
-sleep 0.01;
-
-/*
-1 - bndg
-2 - lbndg
-3 - mor
-4 - epi
-5 - blood
-*/
-
-player setVariable ["btc_int_busy",true];
-_delay = 6.5;
-_anim = "AinvPknlMstpSlayWrflDnon_medic";//AinvPknlMstpSnonWnonDnon_medic
-_item = "";
-/*
-switch (_treat) do
-{
- case 1 : {_delay = 6.5;_item = "BTC_w_bandage";};
- case 2 : {_delay = 7.5;_item = "BTC_w_largeBandage";};
- case 3 : {_delay = 5;_item = "BTC_w_mor";};
- case 4 : {_delay = 5;_item = "BTC_w_epi";};//AinvPknlMstpSnonWnonDnon_medicUp0
- case 5 : {_delay = 15;_item = "BTC_w_bloodbag";};
-};*/
-
-//if !(btc_wounds_mod) then {_item = "";};
-
-_isProne = (stance player == "PRONE");
-_inVeh = (vehicle player != player);
-
-if (_isProne || _inVeh) then {_delay = _delay + 5;} else {player playMove _anim;};
-
-_target_action = _receiver;
-
-if (_inVeh) then {_target_action = objNull};
-
-[_delay,format ["Treating %1 . . .", name _receiver],_receiver] call btc_fnc_int_action_result;
-
-//if (!_isProne) then {_anim spawn {while { isNil "btc_rev_action_result" } do {sleep 0.1;if (animationState player != _this) then {player playMoveNow _this;};};};};
-
-waitUntil {!(isNil "btc_int_action_result")};
-
-if (btc_int_action_result) then
-{
- if (_item != "") then {player removeItem _item;};
- if (local _receiver) then {[_receiver,_treat] spawn btc_fnc_rev_apply_treat;} else {[[_receiver,_treat],"btc_fnc_rev_apply_treat",_receiver,false] spawn BIS_fnc_MP;};
- hint "Treatment applied";
-} else {hint "Treatment could not be applied";};
-
-if ((!_isProne && !_inVeh) || (animationState player == _anim)) then {player switchmove "";player playActionNow "PlayerCrouch";};
-
-player setVariable ["btc_int_busy", false];
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/unc.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/unc.sqf
deleted file mode 100644
index 91682e587..000000000
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/unc.sqf
+++ /dev/null
@@ -1,76 +0,0 @@
-
-if (_this getvariable ["btc_rev_mor",0] > btc_rev_max_mor) then {_this setvariable ["btc_rev_mor",btc_rev_max_mor];};
-_this setVariable ["btc_rev_head",0];
-_this setVariable ["btc_rev_body",0];
-_this setVariable ["btc_rev_hands",0];
-_this setVariable ["btc_rev_legs",0];
-
-if (btc_p_revive == 1) then {player setDamage 1};
-
-_timer = true;
-if (btc_p_t_revive == 9999) then {_timer = false;};
-
-if (_this getVariable ["btc_rev_isUnc",false]) exitWith {};
-
-btc_rev_gear = [_this] call btc_fnc_rev_get_gear;
-
-_this setVariable ["tf_globalVolume", 0.4];
-_this setVariable ["tf_voiceVolume", 0];
-_this setVariable ["tf_unable_to_use_radio", true];
-
-_this setVariable ["btc_rev_isUnc",true,true];
-_this setCaptive true;
-//_this spawn {waitUntil {animationState player == "AinjPpneMstpSnonWrflDnon"};_this enableSimulation false;};
-
-if (vehicle _this != _this) then {/*_this action ["EJECT",vehicle _this]*/} else
-{
- _this switchMove "AinjPpneMstpSnonWrflDnon";
- _this spawn {sleep 7;if (_this getVariable ["btc_rev_isUnc",false]) then {_this switchMove "AinjPpneMstpSnonWrflDnon";};};
-};
-if (Dialog) then {closeDialog 0;};
-disableSerialization;
-
-if (isPlayer _this) then
-{
- createDialog "btc_rev_dlg_unconscious";
- //_ui = uiNamespace getVariable "btc_rev_dlg_unconscious";
-}
-else
-{
- _this disableAI "MOVE";
-};
-_time = 0;_r_time = 0;
-while {(_this getVariable ["btc_rev_isUnc",false]) && {Alive _this}} do
-{
- private ["_ui"];
- if (isPlayer _this && {!Dialog}) then {createDialog "btc_rev_dlg_unconscious";};
- if (_this getvariable ["btc_rev_bleed",0] == 0 && {_this getVariable ["btc_rev_bloss",0] < 0.85} && {_this getVariable ["btc_rev_pain",0] < 0.7}) then
- {
- _time = _time + 0.1;
- } else {_time = 0;};
- if (_time > (60 + random 30)) then {_this setVariable ["btc_rev_isUnc",false];};
- if (_timer) then {_r_time = _r_time + 0.1;if (_r_time > btc_p_t_revive) then {player setDamage 1;}};
- sleep 0.1;
-};
-_this enableSimulation true;
-_this enableAI "MOVE";
-
-if (Alive _this) then
-{
- closeDialog 0;
- _this switchMove "AinjPpneMstpSnonWnonDnon_rolltofront";
- sleep 2;
- _this playMoveNow "AmovPpneMstpSnonWnonDnon_healed";
- closeDialog 0;
-};
-
-_this setCaptive false;
-
-_this setVariable ["btc_rev_isUnc",false,true];
-_this setVariable ["btc_int_busy",false];
-
-_this setVariable ["tf_globalVolume", 1];
-_this setVariable ["tf_voiceVolume", 1];
-_this setVariable ["tf_unable_to_use_radio", false];
-
-if (Dialog) then {closeDialog 0;};
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/unit_init.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/unit_init.sqf
deleted file mode 100644
index 261f64931..000000000
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/unit_init.sqf
+++ /dev/null
@@ -1,4 +0,0 @@
-if !(local _this && isNil {_this getVariable "btc_rev_eh"}) exitWith {};
-_this call btc_fnc_rev_init_var;
-btc_rev_eh_id = _this addEventHandler ["HandleDamage", { _this call btc_fnc_rev_hd; }];
-_this setVariable ["btc_rev_eh", true];
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/unload.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/unload.sqf
deleted file mode 100644
index 219d26bf2..000000000
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/unload.sqf
+++ /dev/null
@@ -1,9 +0,0 @@
-_veh = btc_int_target;
-
-closeDialog 0;
-
-if (isNull _veh || !Alive _veh) exitWith {hint "Error: No vehicle";};
-
-{
- if (_x getVariable ["btc_rev_isUnc",false]) then {[[4,_x],"btc_fnc_code_on_local",_x,false] spawn BIS_fnc_MP;};
-} foreach crew _veh;
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf
index 14bdafb5c..ab893aae5 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf
@@ -29,19 +29,19 @@ btc_side_done = false;
btc_side_failed = false;
btc_side_assigned = true;publicVariable "btc_side_assigned";
-[14,_pos2,_city2 getVariable "name"] call btc_fnc_task_create;
+[14,_pos2,_city2 getVariable "name"] remoteExec ["btc_fnc_task_create", 0];
btc_side_jip_data = [14,getPos _city1,_city1 getVariable "name"];
//// Create markers \\\\
_marker1 = createmarker [format ["sm_2_%1",getPos _city1],getPos _city1];
_marker1 setmarkertype "hd_flag";
-_marker1 setmarkertext "Convoy Start";
+[_marker1,"STR_BTC_HAM_SIDE_CONVOY_MRKSTART"] remoteExec ["btc_fnc_set_markerTextLocal", [0, -2] select isDedicated, _marker1]; //Convoy Start
_marker1 setMarkerSize [0.6, 0.6];
_marker2 = createmarker [format ["sm_2_%1",_pos2],_pos2];
_marker2 setmarkertype "hd_flag";
-_marker2 setmarkertext "Convoy End";
+[_marker2,"STR_BTC_HAM_SIDE_CONVOY_MRKEND"] remoteExec ["btc_fnc_set_markerTextLocal", [0, -2] select isDedicated, _marker2]; //Convoy End
_marker2 setMarkerSize [0.6, 0.6];
_area = createmarker [format ["sm_%1",_pos2],_pos2];
@@ -62,27 +62,27 @@ _veh_types = btc_civ_type_veh select {!(_x isKindOf "air")};
_random = (1+ round random 1);
_random_veh = round random _random;
for "_i" from 0 to _random do {
- private ["_veh"];
- _veh_type = selectRandom _veh_types;
- _crewmen = btc_type_crewmen;
- _veh = createVehicle [_veh_type, _pos1, [], 0, "FLY"];
- _veh setDir ([_road] call btc_fnc_road_direction);
- _vehs pushBack _veh;
-
- [_veh,_group,false,"",_crewmen] call BIS_fnc_spawnCrew;
- if (_i == _random_veh) then {
- (selectRandom btc_type_units) createUnit [_pos1, _group, "this moveinCargo _veh;this assignAsCargo _veh; removeAllWeapons this; _captive = this; _group selectLeader this;"]
- };
- _cargo = (_veh emptyPositions "cargo") - 1;
- if (_cargo > 0) then {
- for "_i" from 0 to _cargo do {
- private ["_unit_type"];
- _unit_type = selectRandom btc_type_units;
- _unit_type createUnit [_pos1, _group, "this moveinCargo _veh;this assignAsCargo _veh;"];
- };
- };
- _road = (roadsConnectedTo _road) select 0;
- _pos1 = getPos _road;
+ private ["_veh"];
+ _veh_type = selectRandom _veh_types;
+ _crewmen = btc_type_crewmen;
+ _veh = createVehicle [_veh_type, _pos1, [], 0, "FLY"];
+ _veh setDir ([_road] call btc_fnc_road_direction);
+ _vehs pushBack _veh;
+
+ [_veh,_group,false,"",_crewmen] call BIS_fnc_spawnCrew;
+ if (_i == _random_veh) then {
+ (selectRandom btc_type_units) createUnit [_pos1, _group, "this moveinCargo _veh;this assignAsCargo _veh; removeAllWeapons this; _captive = this; _group selectLeader this;"]
+ };
+ _cargo = (_veh emptyPositions "cargo") - 1;
+ if (_cargo > 0) then {
+ for "_i" from 0 to _cargo do {
+ private ["_unit_type"];
+ _unit_type = selectRandom btc_type_units;
+ _unit_type createUnit [_pos1, _group, "this moveinCargo _veh;this assignAsCargo _veh;"];
+ };
+ };
+ _road = (roadsConnectedTo _road) select 0;
+ _pos1 = getPos _road;
};
units _group joinSilent _group;
@@ -105,29 +105,29 @@ _trigger setTriggerActivation[str(btc_player_side),"PRESENT",true];
_trigger setTriggerStatements["this", "_captive = thisTrigger getVariable 'captive'; doStop _captive; [_captive,true] call ace_captives_fnc_setSurrendered;", ""];
_trigger attachTo [_captive,[0,0,0]];
-{player commandChat "Convoy has left the starting point!"} remoteExec ["call", -2];
+{player commandChat (localize "STR_BTC_HAM_SIDE_CONVOY_STARTCHAT")} remoteExec ["call", -2]; //Convoy has left the starting point!
waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || !(Alive _captive) || (_captive distance getpos btc_create_object_point < 100))};
btc_side_assigned = false;publicVariable "btc_side_assigned";
if (btc_side_aborted || !(Alive _captive)) exitWith {
- 14 remoteExec ["btc_fnc_task_fail", 0];
- [_markers, _vehs + [_trigger], [], [_group]] call btc_fnc_delete;
+ 14 remoteExec ["btc_fnc_task_fail", 0];
+ [_markers, _vehs + [_trigger], [], [_group]] call btc_fnc_delete;
};
if (btc_side_failed) exitWith {
- 14 remoteExec ["btc_fnc_task_fail", 0];
- _group setVariable ["no_cache",false];
- {
- _group = createGroup btc_enemy_side;
- (crew _x) joinSilent _group;
- _group call btc_fnc_data_add_group;
- } forEach _vehs;
- [_markers, [_trigger], [], []] call btc_fnc_delete;
+ 14 remoteExec ["btc_fnc_task_fail", 0];
+ _group setVariable ["no_cache",false];
+ {
+ _group = createGroup btc_enemy_side;
+ (crew _x) joinSilent _group;
+ _group call btc_fnc_data_add_group;
+ } forEach _vehs;
+ [_markers, [_trigger], [], []] call btc_fnc_delete;
};
50 call btc_fnc_rep_change;
14 remoteExec ["btc_fnc_task_set_done", 0];
-[_markers, _vehs + [_trigger,_captive], [], [_group]] call btc_fnc_delete;
\ No newline at end of file
+[_markers, _vehs + [_trigger,_captive], [], [_group]] call btc_fnc_delete;
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/checkpoint.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/checkpoint.sqf
index 93c687442..89d418c6d 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/checkpoint.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/checkpoint.sqf
@@ -12,7 +12,7 @@ btc_side_done = false;
btc_side_failed = false;
btc_side_assigned = true;publicVariable "btc_side_assigned";
-[9,_pos,_city getVariable "name"] call btc_fnc_task_create;
+[9,_pos,_city getVariable "name"] remoteExec ["btc_fnc_task_create", 0];
btc_side_jip_data = [9,_pos,_city getVariable "name"];
@@ -23,66 +23,66 @@ _statics = btc_type_gl + btc_type_mg;
_boxes = [];
_markers = [];
for "_i" from 1 to (1 + round random 2) do {
- private ["_boxe"];
- //// Choose a road \\\\
- _pos = [getPos _city, 300] call btc_fnc_randomize_pos;
- _roads = _pos nearRoads 300;
- _roads = _roads select {isOnRoad _x};
- if (_roads isEqualTo []) exitWith {_boxes pushBack objNull};
- _road = selectRandom _roads;
- _pos = getPos _road;
-
- _direction = [_road] call btc_fnc_road_direction;
-
- //// Create marker \\\\
- _marker = createmarker [format ["sm_2_%1",_pos],_pos];
- _marker setmarkertype "hd_flag";
- _marker setmarkertext "Checkpoint";
- _marker setMarkerColor "ColorRed";
- _marker setMarkerSize [0.6, 0.6];
- _markers pushback _marker;
-
- //// Randomise composition \\\\
- _type_barrel = selectRandom btc_type_barrel;
- _type_barrel_canister1 = selectRandom(btc_type_barrel + btc_type_canister);
- _type_barrel_canister2 = selectRandom(btc_type_barrel + btc_type_canister);
- _type_pallet = selectRandom btc_type_pallet;
- _type_box = selectRandom btc_type_box;
- _btc_composition_checkpoint = [
- [_type_barrel,10,[0.243652,-2.78906,0]],
- [_type_barrel,20,[-0.131836,3.12939,0]],
- ["Land_BagFence_Long_F",90,[0.769531,-4.021,0]],
- ["Land_BagFence_Long_F",90,[-0.638672,4.31787,0]],
- ["Flag_Red_F",-90,[2.23193,-4.375,0]],
- [_type_barrel_canister1,0,[1.27393,-4.93604,0]],
- [_type_pallet,-70,[-3.98071,3.75342,0]],
- [_type_barrel_canister2,0,[1.83984,-4.95264,0]],
- [_type_box,180,[-1.97998,4.88574,0]],
- ["Land_CncBarrier_stripes_F",180,[2.26367,-5.38623,0]],
- ["RoadCone_L_F",180,[1.14771,-5.89697,0.00211954]],
- ["Land_CncBarrier_stripes_F",0,[-2.1416,5.66553,0]],
- ["RoadCone_L_F",0,[-1.03101,6.18164,0.00211954]],
- ["RoadCone_L_F",180,[2.81616,-5.81689,0.00211954]],
- ["RoadCone_L_F",0,[-2.6731,6.17773,0.00211954]]
- ];
-
- //// Create checkpoint with static at _pos \\\\
- [[((_pos select 0) -2.39185*cos(-_direction) - 2.33984*sin(-_direction)), ((_pos select 1) + 2.33984 *cos(-_direction) -2.39185*sin(-_direction)), (_pos select 2)],_statics,_direction + 180] call btc_fnc_mil_create_static;
- [[((_pos select 0) + 2.72949*cos(-_direction) - -2.03857*sin(-_direction)), ((_pos select 1) -2.03857*cos(-_direction) +2.72949*sin(-_direction)), (_pos select 2)],_statics,_direction ] call btc_fnc_mil_create_static;
- [_pos,_direction,_btc_composition_checkpoint] call btc_fnc_create_composition;
-
- _boxe = nearestObject [_pos, _type_box];
- _boxe setVariable ["ace_cookoff_enable", false, true];
- _boxe spawn {
- private ["_pos","_fx"];
- _pos = getpos _this;
- waitUntil {sleep 5; btc_side_aborted || btc_side_failed || !(Alive _this)};
- _fx = "test_EmptyObjectForSmoke" createVehicle _pos;
- _fx setPos _pos;
- sleep 120;
- _fx call btc_fnc_deleteTestObj;
- };
- _boxes pushBack _boxe;
+ private ["_boxe"];
+ //// Choose a road \\\\
+ _pos = [getPos _city, 300] call btc_fnc_randomize_pos;
+ _roads = _pos nearRoads 300;
+ _roads = _roads select {isOnRoad _x};
+ if (_roads isEqualTo []) exitWith {_boxes pushBack objNull};
+ _road = selectRandom _roads;
+ _pos = getPos _road;
+
+ _direction = [_road] call btc_fnc_road_direction;
+
+ //// Create marker \\\\
+ _marker = createmarker [format ["sm_2_%1",_pos],_pos];
+ _marker setmarkertype "hd_flag";
+ [_marker,"STR_BTC_HAM_SIDE_CHECKPOINT_MRK"] remoteExec ["btc_fnc_set_markerTextLocal", [0, -2] select isDedicated, _marker]; //Checkpoint
+ _marker setMarkerColor "ColorRed";
+ _marker setMarkerSize [0.6, 0.6];
+ _markers pushback _marker;
+
+ //// Randomise composition \\\\
+ _type_barrel = selectRandom btc_type_barrel;
+ _type_barrel_canister1 = selectRandom(btc_type_barrel + btc_type_canister);
+ _type_barrel_canister2 = selectRandom(btc_type_barrel + btc_type_canister);
+ _type_pallet = selectRandom btc_type_pallet;
+ _type_box = selectRandom btc_type_box;
+ _btc_composition_checkpoint = [
+ [_type_barrel,10,[0.243652,-2.78906,0]],
+ [_type_barrel,20,[-0.131836,3.12939,0]],
+ ["Land_BagFence_Long_F",90,[0.769531,-4.021,0]],
+ ["Land_BagFence_Long_F",90,[-0.638672,4.31787,0]],
+ ["Flag_Red_F",-90,[2.23193,-4.375,0]],
+ [_type_barrel_canister1,0,[1.27393,-4.93604,0]],
+ [_type_pallet,-70,[-3.98071,3.75342,0]],
+ [_type_barrel_canister2,0,[1.83984,-4.95264,0]],
+ [_type_box,180,[-1.97998,4.88574,0]],
+ ["Land_CncBarrier_stripes_F",180,[2.26367,-5.38623,0]],
+ ["RoadCone_L_F",180,[1.14771,-5.89697,0.00211954]],
+ ["Land_CncBarrier_stripes_F",0,[-2.1416,5.66553,0]],
+ ["RoadCone_L_F",0,[-1.03101,6.18164,0.00211954]],
+ ["RoadCone_L_F",180,[2.81616,-5.81689,0.00211954]],
+ ["RoadCone_L_F",0,[-2.6731,6.17773,0.00211954]]
+ ];
+
+ //// Create checkpoint with static at _pos \\\\
+ [[((_pos select 0) -2.39185*cos(-_direction) - 2.33984*sin(-_direction)), ((_pos select 1) + 2.33984 *cos(-_direction) -2.39185*sin(-_direction)), (_pos select 2)],_statics,_direction + 180] call btc_fnc_mil_create_static;
+ [[((_pos select 0) + 2.72949*cos(-_direction) - -2.03857*sin(-_direction)), ((_pos select 1) -2.03857*cos(-_direction) +2.72949*sin(-_direction)), (_pos select 2)],_statics,_direction ] call btc_fnc_mil_create_static;
+ [_pos,_direction,_btc_composition_checkpoint] call btc_fnc_create_composition;
+
+ _boxe = nearestObject [_pos, _type_box];
+ _boxe setVariable ["ace_cookoff_enable", false, true];
+ _boxe spawn {
+ private ["_pos","_fx"];
+ _pos = getpos _this;
+ waitUntil {sleep 5; btc_side_aborted || btc_side_failed || !(Alive _this)};
+ _fx = "test_EmptyObjectForSmoke" createVehicle _pos;
+ _fx setPos _pos;
+ sleep 120;
+ _fx call btc_fnc_deleteTestObj;
+ };
+ _boxes pushBack _boxe;
};
waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || ({Alive _x} count _boxes == 0))};
@@ -91,9 +91,9 @@ btc_side_assigned = false;publicVariable "btc_side_assigned";
[_markers, _boxes, [], []] call btc_fnc_delete;
if (btc_side_aborted || btc_side_failed) exitWith {
- 9 remoteExec ["btc_fnc_task_fail", 0];
+ 9 remoteExec ["btc_fnc_task_fail", 0];
};
80 call btc_fnc_rep_change;
-9 remoteExec ["btc_fnc_task_set_done", 0];
\ No newline at end of file
+9 remoteExec ["btc_fnc_task_set_done", 0];
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment.sqf
index d992b86c8..afd277cdb 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment.sqf
@@ -9,16 +9,16 @@ _pos = getPos _city;
//// Choose spawn in house or on road \\\\
_r = random 2;
-if ( _r < 1) then {
- _roads = _pos nearRoads 200;
- _roads = _roads select {isOnRoad _x};
- if (_roads isEqualTo []) exitWith {[] spawn btc_fnc_side_create;};
- _pos = getPos (selectRandom _roads);
- _vehpos = [_pos, 10] call btc_fnc_randomize_pos;
+if ( _r < 1) then {
+ _roads = _pos nearRoads 200;
+ _roads = _roads select {isOnRoad _x};
+ if (_roads isEqualTo []) exitWith {[] spawn btc_fnc_side_create;};
+ _pos = getPos (selectRandom _roads);
+ _vehpos = [_pos, 10] call btc_fnc_randomize_pos;
} else {
- _houses = [[(_pos select 0),(_pos select 1),0],200] call btc_fnc_getHouses;
- _pos = selectRandom ((selectRandom _houses) buildingPos -1);
- _vehpos = [(_pos select 0),(_pos select 1),(_pos select 2) + 0.1];
+ _houses = [[(_pos select 0),(_pos select 1),0],200] call btc_fnc_getHouses;
+ _pos = selectRandom ((selectRandom _houses) buildingPos -1);
+ _vehpos = [(_pos select 0),(_pos select 1),(_pos select 2) + 0.1];
};
btc_side_aborted = false;
@@ -26,37 +26,37 @@ btc_side_done = false;
btc_side_failed = false;
btc_side_assigned = true;publicVariable "btc_side_assigned";
-[8,_pos,_city getVariable "name"] call btc_fnc_task_create;
+[8,_pos,_city getVariable "name"] remoteExec ["btc_fnc_task_create", 0];
btc_side_jip_data = [8,_pos,_city getVariable "name"];
//// Create marker \\\\
_marker = createmarker [format ["sm_2_%1",_pos],_pos];
_marker setmarkertype "hd_flag";
-_marker setmarkertext "Civil need help";
+[_marker,"STR_BTC_HAM_SIDE_CIVTREAT_MRK"] remoteExec ["btc_fnc_set_markerTextLocal", [0, -2] select isDedicated, _marker]; //Civil need help
_marker setMarkerSize [0.6, 0.6];
//// Create civ on _pos \\\\
if ( _r < 1) then {
- _veh_type = selectRandom btc_civ_type_veh;
- _veh = createVehicle [_veh_type, _vehpos, [], 0, "NONE"];
- _veh setDir (random 360);
- _veh setDamage 0.7;
- //// Random wheel hit \\\\
- if (_r < 0.5) then {
- _veh setHit ["wheel_1_2_steering", 1];
- } else {
- _veh setHit ["wheel_2_1_steering", 1];
- };
- _veh setHit ["wheel_1_1_steering", 1];
- //// Add smoke effect on car \\\\
- _fx = "test_EmptyObjectForSmoke" createVehicle (getposATL _veh);
- _fx attachTo [_veh,[0,0,0]];
+ _veh_type = selectRandom btc_civ_type_veh;
+ _veh = createVehicle [_veh_type, _vehpos, [], 0, "NONE"];
+ _veh setDir (random 360);
+ _veh setDamage 0.7;
+ //// Random wheel hit \\\\
+ if (_r < 0.5) then {
+ _veh setHit ["wheel_1_2_steering", 1];
+ } else {
+ _veh setHit ["wheel_2_1_steering", 1];
+ };
+ _veh setHit ["wheel_1_1_steering", 1];
+ //// Add smoke effect on car \\\\
+ _fx = "test_EmptyObjectForSmoke" createVehicle (getposATL _veh);
+ _fx attachTo [_veh,[0,0,0]];
} else {
- _phone_type = selectRandom btc_type_phone;
- _veh = createVehicle [_phone_type, _vehpos, [], 0, "NONE"];
- _veh setDir (random 360);
- _fx = objNull;
+ _phone_type = selectRandom btc_type_phone;
+ _veh = createVehicle [_phone_type, _vehpos, [], 0, "NONE"];
+ _veh setDir (random 360);
+ _fx = objNull;
};
_unit_type = selectRandom btc_civ_type_units;
@@ -83,11 +83,11 @@ btc_side_assigned = false;publicVariable "btc_side_assigned";
[[_marker], [_veh], [_fx], [_group]] call btc_fnc_delete;
if (btc_side_aborted || btc_side_failed || !Alive _unit) exitWith {
- 8 remoteExec ["btc_fnc_task_fail", 0];
+ 8 remoteExec ["btc_fnc_task_fail", 0];
};
10 call btc_fnc_rep_change;
8 remoteExec ["btc_fnc_task_set_done", 0];
-_unit setUnitPos "UP";
\ No newline at end of file
+_unit setUnitPos "UP";
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment_boat.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment_boat.sqf
index a5c5f626a..6d040757b 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment_boat.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment_boat.sqf
@@ -17,14 +17,14 @@ btc_side_done = false;
btc_side_failed = false;
btc_side_assigned = true;publicVariable "btc_side_assigned";
-[10,_pos,_city getVariable "name"] call btc_fnc_task_create;
+[10,_pos,_city getVariable "name"] remoteExec ["btc_fnc_task_create", 0];
btc_side_jip_data = [10,_vehpos,_city getVariable "name"];
//// Create marker \\\\
_marker = createmarker [format ["sm_2_%1",_vehpos],_vehpos];
_marker setmarkertype "hd_flag";
-_marker setmarkertext "Civil need help";
+[_marker,"STR_BTC_HAM_SIDE_CIVTREAT_MRK"] remoteExec ["btc_fnc_set_markerTextLocal", [0, -2] select isDedicated, _marker]; //Civil need help
_marker setMarkerSize [0.6, 0.6];
//// Create civ on _vehpos \\\\
@@ -53,9 +53,9 @@ btc_side_assigned = false;publicVariable "btc_side_assigned";
[[_marker], [_veh], [], [_group]] call btc_fnc_delete;
if (btc_side_aborted || btc_side_failed || !Alive _unit) exitWith {
- 10 remoteExec ["btc_fnc_task_fail", 0];
+ 10 remoteExec ["btc_fnc_task_fail", 0];
};
10 call btc_fnc_rep_change;
-10 remoteExec ["btc_fnc_task_set_done", 0];
\ No newline at end of file
+10 remoteExec ["btc_fnc_task_set_done", 0];
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf
index 2767cf039..4f9e30c22 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf
@@ -26,19 +26,19 @@ btc_side_done = false;
btc_side_failed = false;
btc_side_assigned = true;publicVariable "btc_side_assigned";
-[12,_pos2,_city2 getVariable "name"] call btc_fnc_task_create;
+[12,_pos2,_city2 getVariable "name"] remoteExec ["btc_fnc_task_create", 0];
btc_side_jip_data = [12,_pos1,_city1 getVariable "name"];
//// Create markers \\\\
_marker1 = createmarker [format ["sm_2_%1",_pos1],_pos1];
_marker1 setmarkertype "hd_flag";
-_marker1 setmarkertext "Convoy start";
+[_marker1,"STR_BTC_HAM_SIDE_CONVOY_MRKSTART"] remoteExec ["btc_fnc_set_markerTextLocal", [0, -2] select isDedicated, _marker1]; //Convoy start
_marker1 setMarkerSize [0.6, 0.6];
_marker2 = createmarker [format ["sm_2_%1",_pos2],_pos2];
_marker2 setmarkertype "hd_flag";
-_marker2 setmarkertext "Convoy end";
+[_marker2,"STR_BTC_HAM_SIDE_CONVOY_MRKEND"] remoteExec ["btc_fnc_set_markerTextLocal", [0, -2] select isDedicated, _marker2]; //Convoy end
_marker2 setMarkerSize [0.6, 0.6];
_area = createmarker [format ["sm_%1",_pos2],_pos2];
@@ -57,24 +57,24 @@ _group setVariable ["no_cache",true];
_vehs = [];
_veh_types = btc_type_motorized select {!(_x isKindOf "air")};
for "_i" from 0 to (2 + round random 2) do {
- private ["_veh"];
- _veh_type = selectRandom _veh_types;
- _crewmen = btc_type_crewmen;
- _veh = createVehicle [_veh_type, _pos1, [], 0, "FLY"];
- _veh setDir ([_road] call btc_fnc_road_direction);
- _vehs pushBack _veh;
-
- [_veh,_group,false,"",_crewmen] call BIS_fnc_spawnCrew;
- _cargo = (_veh emptyPositions "cargo") - 1;
- if (_cargo > 0) then {
- for "_i" from 0 to _cargo do {
- private ["_unit_type"];
- _unit_type = selectRandom btc_type_units;
- _unit_type createUnit [_pos1, _group, "this moveinCargo _veh;this assignAsCargo _veh;"];
- };
- };
- _road = (roadsConnectedTo _road) select 0;
- _pos1 = getPos _road;
+ private ["_veh"];
+ _veh_type = selectRandom _veh_types;
+ _crewmen = btc_type_crewmen;
+ _veh = createVehicle [_veh_type, _pos1, [], 0, "FLY"];
+ _veh setDir ([_road] call btc_fnc_road_direction);
+ _vehs pushBack _veh;
+
+ [_veh,_group,false,"",_crewmen] call BIS_fnc_spawnCrew;
+ _cargo = (_veh emptyPositions "cargo") - 1;
+ if (_cargo > 0) then {
+ for "_i" from 0 to _cargo do {
+ private ["_unit_type"];
+ _unit_type = selectRandom btc_type_units;
+ _unit_type createUnit [_pos1, _group, "this moveinCargo _veh;this assignAsCargo _veh;"];
+ };
+ };
+ _road = (roadsConnectedTo _road) select 0;
+ _pos1 = getPos _road;
};
units _group joinSilent _group;
@@ -89,29 +89,29 @@ _wp setWaypointSpeed "LIMITED";
_wp setWaypointFormation "COLUMN";
_wp setWaypointStatements ["true", "btc_side_failed = true"];
-{player commandChat "Convoy has left the starting point!"} remoteExec ["call", -2];
+{player commandChat (localize "STR_BTC_HAM_SIDE_CONVOY_STARTCHAT")} remoteExec ["call", -2]; //Convoy has left the starting point!
waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || ({ canMove _x } count _vehs == 0) || (_group isEqualTo grpNull))};
btc_side_assigned = false;publicVariable "btc_side_assigned";
if (btc_side_aborted) exitWith {
- 12 remoteExec ["btc_fnc_task_fail", 0];
- [_markers, _vehs, [], [_group]] call btc_fnc_delete;
+ 12 remoteExec ["btc_fnc_task_fail", 0];
+ [_markers, _vehs, [], [_group]] call btc_fnc_delete;
};
if (btc_side_failed) exitWith {
- 12 remoteExec ["btc_fnc_task_fail", 0];
- _group setVariable ["no_cache",false];
- {
- _group = createGroup btc_enemy_side;
- (crew _x) joinSilent _group;
- _group call btc_fnc_data_add_group;
- } forEach _vehs;
- [_markers, [], [], []] call btc_fnc_delete;
+ 12 remoteExec ["btc_fnc_task_fail", 0];
+ _group setVariable ["no_cache",false];
+ {
+ _group = createGroup btc_enemy_side;
+ (crew _x) joinSilent _group;
+ _group call btc_fnc_data_add_group;
+ } forEach _vehs;
+ [_markers, [], [], []] call btc_fnc_delete;
};
50 call btc_fnc_rep_change;
12 remoteExec ["btc_fnc_task_set_done", 0];
-[_markers, _vehs, [], [_group]] call btc_fnc_delete;
\ No newline at end of file
+[_markers, _vehs, [], [_group]] call btc_fnc_delete;
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/create.sqf
index 6311dc872..2b26bd7de 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/create.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/create.sqf
@@ -4,9 +4,9 @@ if (btc_side_assigned) exitWith {};
private ["_side","_cycle"];
if (_this isEqualTo []) then {
- _cycle = false;
+ _cycle = false;
} else {
- _cycle = _this select 0;
+ _cycle = _this select 0;
};
if (count btc_side_list_use == 0) then {btc_side_list_use = + btc_side_list;};
@@ -20,22 +20,22 @@ btc_side_done = false;
btc_side_failed = false;
switch (_side) do {
- case 0 : {[] call btc_fnc_side_supply;};
- case 1 : {[] call btc_fnc_side_mines;};
- case 2 : {[] call btc_fnc_side_vehicle;};
- case 3 : {[] call btc_fnc_side_get_city;};
- case 4 : {[] call btc_fnc_side_tower;};
- case 5 : {[] call btc_fnc_side_civtreatment;};
- case 6 : {[] call btc_fnc_side_checkpoint;};
- case 7 : {[] call btc_fnc_side_civtreatment_boat;};
- case 8 : {[] call btc_fnc_side_underwater_generator;};
- case 9 : {[] call btc_fnc_side_convoy;};
- case 10 : {[] call btc_fnc_side_rescue;};
- case 11 : {[] call btc_fnc_side_capture_officer;};
- case 12 : {[] call btc_fnc_side_hostage;};
- case 13 : {[] call btc_fnc_side_hack;};
+ case 0 : {[] call btc_fnc_side_supply;};
+ case 1 : {[] call btc_fnc_side_mines;};
+ case 2 : {[] call btc_fnc_side_vehicle;};
+ case 3 : {[] call btc_fnc_side_get_city;};
+ case 4 : {[] call btc_fnc_side_tower;};
+ case 5 : {[] call btc_fnc_side_civtreatment;};
+ case 6 : {[] call btc_fnc_side_checkpoint;};
+ case 7 : {[] call btc_fnc_side_civtreatment_boat;};
+ case 8 : {[] call btc_fnc_side_underwater_generator;};
+ case 9 : {[] call btc_fnc_side_convoy;};
+ case 10 : {[] call btc_fnc_side_rescue;};
+ case 11 : {[] call btc_fnc_side_capture_officer;};
+ case 12 : {[] call btc_fnc_side_hostage;};
+ case 13 : {[] call btc_fnc_side_hack;};
};
if (_cycle) then {
- [true] spawn btc_fnc_side_create;
+ [true] spawn btc_fnc_side_create;
};
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/get_city.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/get_city.sqf
index 27794cc55..c7164e926 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/get_city.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/get_city.sqf
@@ -13,7 +13,7 @@ btc_side_done = false;
btc_side_failed = false;
btc_side_assigned = true;publicVariable "btc_side_assigned";
-[6,_pos,_city getVariable "name"] call btc_fnc_task_create;
+[6,_pos,_city getVariable "name"] remoteExec ["btc_fnc_task_create", 0];
btc_side_jip_data = [6,_pos,_city getVariable "name"];
@@ -24,7 +24,7 @@ waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || !(_city getVariable
btc_side_assigned = false;publicVariable "btc_side_assigned";
if (btc_side_aborted || btc_side_failed) exitWith {
- 6 remoteExec ["btc_fnc_task_fail", 0];
+ 6 remoteExec ["btc_fnc_task_fail", 0];
};
80 call btc_fnc_rep_change;
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hack.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hack.sqf
index 4d20eabe8..afeed5b0b 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hack.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hack.sqf
@@ -18,7 +18,7 @@ btc_side_done = false;
btc_side_failed = false;
btc_side_assigned = true;publicVariable "btc_side_assigned";
-[16,_pos,_city getVariable "name"] call btc_fnc_task_create;
+[16,_pos,_city getVariable "name"] remoteExec ["btc_fnc_task_create", 0];
btc_side_jip_data = [16,_pos,_city getVariable "name"];
@@ -26,7 +26,7 @@ _city setVariable ["spawn_more",true];
private _marker = createmarker [format ["sm_2_%1",_pos],_pos];
_marker setmarkertype "hd_flag";
-_marker setmarkertext "Terminal";
+[_marker,"STR_BTC_HAM_SIDE_HACK_MRK"] remoteExec ["btc_fnc_set_markerTextLocal", [0, -2] select isDedicated, _marker]; //Terminal
_marker setMarkerSize [0.6, 0.6];
//// Create terminal \\\\
@@ -36,46 +36,46 @@ private _launchsite = createVehicle ["Land_PenBlack_F", _pos, [], 0, "FLY"];
//// Add interaction on Terminal \\\\
[[_terminal],{
- private _action = ["Open","Start Hacking","\A3\ui_f\data\igui\cfg\simpleTasks\types\intel_ca.paa",{
- [_this select 0,3] call BIS_fnc_dataTerminalAnimate;
- {btc_side_done = true} remoteExec ["call", 0];
- },{isNil "btc_side_done"}] call ace_interact_menu_fnc_createAction;
- [_this select 0, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToObject;
+ private _action = ["Open",(localize "STR_BTC_HAM_SIDE_HACK_ACEACTION"),"\A3\ui_f\data\igui\cfg\simpleTasks\types\intel_ca.paa",{ //Start Hacking
+ [_this select 0,3] call BIS_fnc_dataTerminalAnimate;
+ {btc_side_done = true} remoteExec ["call", 0];
+ },{isNil "btc_side_done"}] call ace_interact_menu_fnc_createAction;
+ [_this select 0, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToObject;
}] remoteExec ["call", -2, _terminal];
waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || btc_side_done)};
if (btc_side_aborted || btc_side_failed) exitWith {
- 16 remoteExec ["btc_fnc_task_fail", 0];
- [[_marker], [_terminal], [], []] call btc_fnc_delete;
- btc_side_assigned = false;publicVariable "btc_side_assigned";
+ 16 remoteExec ["btc_fnc_task_fail", 0];
+ [[_marker], [_terminal], [], []] call btc_fnc_delete;
+ btc_side_assigned = false;publicVariable "btc_side_assigned";
};
private _groups = [];
private _closest = [_city,btc_city_all select {!(_x getVariable ["active",false])},false] call btc_fnc_find_closecity;
for "_i" from 1 to (2 + round random 1) do {
- _groups pushBack ([_closest, getpos _terminal,1,selectRandom btc_type_motorized] call btc_fnc_mil_send);
+ _groups pushBack ([_closest, getpos _terminal,1,selectRandom btc_type_motorized] call btc_fnc_mil_send);
};
_groups apply {_x setBehaviour "CARELESS"};
[_terminal, _launchsite modelToWorld [0,100,10]] remoteExec ["btc_fnc_log_place_create_camera", -2];
-{player commandChat "Defend the terminal until the missile is hacked!"} remoteExec ["call", -2];
+{player commandChat (localize "STR_BTC_HAM_SIDE_HACK_STARTCHAT")} remoteExec ["call", -2]; //Defend the terminal until the missile is hacked!
waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || ({_x isEqualTo grpNull} count _groups > 0) || !(_city getVariable ["active", false]))};
if (btc_side_aborted || btc_side_failed) exitWith {
- {btc_side_done = Nil} remoteExec ["call", -2];
- 16 remoteExec ["btc_fnc_task_fail", 0];
- [[_marker], [_terminal], [], []] call btc_fnc_delete;
- btc_side_assigned = false;publicVariable "btc_side_assigned";
+ {btc_side_done = Nil} remoteExec ["call", -2];
+ 16 remoteExec ["btc_fnc_task_fail", 0];
+ [[_marker], [_terminal], [], []] call btc_fnc_delete;
+ btc_side_assigned = false;publicVariable "btc_side_assigned";
};
//// Launch the hacked missile \\\\
private _altitude = 20;
while {_altitude < 500} do {
- _altitude = _altitude + 3;
- (createVehicle ["DemoCharge_Remote_Ammo_Scripted", [_pos select 0, _pos select 1, _altitude], [], 0, "CAN_COLLIDE"]) setDamage 1;
- sleep 0.1;
+ _altitude = _altitude + 3;
+ (createVehicle ["DemoCharge_Remote_Ammo_Scripted", [_pos select 0, _pos select 1, _altitude], [], 0, "CAN_COLLIDE"]) setDamage 1;
+ sleep 0.1;
};
private _rocket = createVehicle ["ace_rearm_Missile_AGM_02_F", [_pos select 0, _pos select 1, _altitude], [], 0, "CAN_COLLIDE"];
private _fx = createVehicle ["test_EmptyObjectForSmoke", [_pos select 0, _pos select 1, _altitude], [], 0, "CAN_COLLIDE"];
@@ -85,9 +85,9 @@ _fx attachTo [_rocket,[0,0,0]];
btc_side_assigned = false;publicVariable "btc_side_assigned";
[[_marker], [_rocket, _terminal], [_fx], []] call btc_fnc_delete;
if (btc_side_aborted || btc_side_failed || !(_city getVariable ["active", false])) exitWith {
- 16 remoteExec ["btc_fnc_task_fail", 0];
+ 16 remoteExec ["btc_fnc_task_fail", 0];
};
80 call btc_fnc_rep_change;
-16 remoteExec ["btc_fnc_task_set_done", 0];
\ No newline at end of file
+16 remoteExec ["btc_fnc_task_set_done", 0];
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf
index c8c78d7eb..c6da5d8d6 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf
@@ -24,14 +24,14 @@ btc_side_done = false;
btc_side_failed = false;
btc_side_assigned = true;publicVariable "btc_side_assigned";
-[15,_pos,_city getVariable "name"] call btc_fnc_task_create;
+[15,_pos,_city getVariable "name"] remoteExec ["btc_fnc_task_create", 0];
btc_side_jip_data = [15,getPos _city,_city getVariable "name"];
//// Marker
_marker = createmarker [format ["sm_2_%1",getPos _house],getPos _house];
_marker setmarkertype "hd_flag";
-_marker setmarkertext "Hostage";
+[_marker,"STR_BTC_HAM_SIDE_HOSTAGE_MRK"] remoteExec ["btc_fnc_set_markerTextLocal", [0, -2] select isDedicated, _marker]; //Hostage
_marker setMarkerSize [0.6, 0.6];
_city setVariable ["spawn_more",true];
@@ -47,14 +47,14 @@ _captive call btc_fnc_civ_unit_create;
_group = [];
{
- private ["_grp"];
- _grp = createGroup btc_enemy_side;
- _unit = _grp createUnit [selectRandom btc_type_units, _x, [], 0, "NONE"];
- [_unit] joinSilent _grp;
- _unit setPosATL _x;
- _group pushBack _grp;
- _grp setVariable ["no_cache",true];
- _unit call btc_fnc_mil_unit_create;
+ private ["_grp"];
+ _grp = createGroup btc_enemy_side;
+ _unit = _grp createUnit [selectRandom btc_type_units, _x, [], 0, "NONE"];
+ [_unit] joinSilent _grp;
+ _unit setPosATL _x;
+ _group pushBack _grp;
+ _grp setVariable ["no_cache",true];
+ _unit call btc_fnc_mil_unit_create;
} forEach (_buildingPos - [_pos]);
_trigger = createTrigger["EmptyDetector",_pos];
@@ -64,17 +64,17 @@ _trigger setTriggerActivation[str(btc_player_side),"PRESENT",true];
_trigger setTriggerStatements["this", "private _group = thisTrigger getVariable 'group'; {_x setCombatMode 'RED';} foreach _group;", "private _group = thisTrigger getVariable 'group'; {_x setCombatMode 'WHITE';} foreach _group;"];
if (random 1 > 0.5) then {
- sleep 5;
- _mine = createMine [selectRandom btc_type_mines, getposATL _captive, [], 0];
+ sleep 5;
+ _mine = createMine [selectRandom btc_type_mines, getposATL _captive, [], 0];
} else {
- _mine = objNull;
+ _mine = objNull;
};
waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || !(_captive getVariable ["ace_captives_isHandcuffed", false]) || !Alive _captive)};
if (!(_captive getVariable ["ace_captives_isHandcuffed", false])) then {
- _mine setDamage 1;
- sleep 1;
+ _mine setDamage 1;
+ sleep 1;
};
_group_civ setVariable ["no_cache",false];
@@ -82,11 +82,11 @@ _group_civ setVariable ["no_cache",false];
btc_side_assigned = false;publicVariable "btc_side_assigned";
if (btc_side_aborted || btc_side_failed || !(Alive _captive)) exitWith {
- 15 remoteExec ["btc_fnc_task_fail", 0];
- [[_marker], [_trigger,_mine], [], _group + [_group_civ]] call btc_fnc_delete;
+ 15 remoteExec ["btc_fnc_task_fail", 0];
+ [[_marker], [_trigger,_mine], [], _group + [_group_civ]] call btc_fnc_delete;
};
40 call btc_fnc_rep_change;
[[_marker], [], [], []] call btc_fnc_delete;
-15 remoteExec ["btc_fnc_task_set_done", 0];
\ No newline at end of file
+15 remoteExec ["btc_fnc_task_set_done", 0];
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/mines.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/mines.sqf
index 32ddbb22b..2ad931369 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/mines.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/mines.sqf
@@ -1,64 +1,114 @@
-private ["_useful","_city","_pos","_area","_marker","_mines","_closest"];
-
-_useful = btc_city_all select {((_x getVariable ["type",""] != "NameLocal") && {_x getVariable ["type",""] != "Hill"} && (_x getVariable ["type",""] != "NameMarine"))};
+private _useful = btc_city_all select {(_x getVariable ["type",""] != "NameLocal") && {_x getVariable ["type",""] != "Hill"} && (_x getVariable ["type",""] != "NameMarine")};
if (_useful isEqualTo []) then {_useful = + btc_city_all;};
-_city = selectRandom _useful;
-
-//_pos = [getPos _city, 100] call btc_fnc_randomize_pos;
+private _city = selectRandom _useful;
+private _pos = [getPos _city, 0, 500, 30, 0, 60 * (pi / 180), 0] call BIS_fnc_findSafePos;
-_pos = [getPos _city, 0, 500, 30, 0, 60 * (pi / 180), 0] call BIS_fnc_findSafePos;
btc_side_aborted = false;
btc_side_done = false;
btc_side_failed = false;
btc_side_assigned = true;publicVariable "btc_side_assigned";
-[4,_pos,_city getVariable "name"] call btc_fnc_task_create;
+[4, _pos, _city getVariable "name"] remoteExec ["btc_fnc_task_create", 0];
+
+btc_side_jip_data = [4, _pos, _city getVariable "name"];
-btc_side_jip_data = [4,_pos,_city getVariable "name"];
+private _distance_between_fences = 8.1;
+private _number_of_fences = 3 + floor random 4;
+private _area_size = _distance_between_fences * _number_of_fences;
+private _offset = _area_size + _distance_between_fences/2;
-_area = createmarker [format ["sm_%1",_pos],_pos];
+private _area = createmarker [format ["sm_%1", _pos], _pos];
_area setMarkerShape "RECTANGLE";
_area setMarkerBrush "SolidBorder";
-_area setMarkerSize [60, 60];
+_area setMarkerSize [_offset, _offset];
_area setMarkerAlpha 0.3;
_area setmarkercolor "colorBlue";
-_marker = createmarker [format ["sm_2_%1",_pos],_pos];
+private _marker = createmarker [format ["sm_2_%1", _pos], _pos];
_marker setmarkertype "hd_flag";
-_marker setmarkertext "Mines";
+[_marker, "STR_BTC_HAM_SIDE_MINES_MRK"] remoteExec ["btc_fnc_set_markerTextLocal", [0, -2] select isDedicated, _marker]; //Mines
_marker setMarkerSize [0.6, 0.6];
-_mines = [];
+//// Randomise composition \\\\
+private _cone = selectRandom btc_type_cones;
+private _fences = + btc_type_fences;
+_fences pushBack _cone;
+private _fence = selectRandom _fences;
+
+private _offset_door = - 60 + _offset;
+private _composition_pattern = [
+ [selectRandom btc_type_bloods,81,[56.0991 + _offset_door,5.71729,0]],
+ [_cone,0,[60.3545 + _offset_door,5.86768,0]],
+ [_cone,0,[60.3755 + _offset_door,9.47217,0]],
+ [selectRandom btc_type_portable_light,101,[61.1982 + _offset_door,3.28906,0]],
+ [selectRandom btc_type_portable_light,37,[60.7373 + _offset_door,11.856,0]],
+ [selectRandom btc_type_bloods,131,[61.9722 + _offset_door,5.49609,0]],
+ [selectRandom btc_type_body_bags,332,[62.4473 + _offset_door,0.76416,0]],
+ [selectRandom btc_type_bloods,94,[62.3799 + _offset_door,8.66309,0]],
+ [selectRandom btc_type_bloods,0,[65.3276 + _offset_door,1.97803,0]],
+ [selectRandom btc_type_medicals,0,[65.4448 + _offset_door,1.52734,0]],
+ [selectRandom btc_type_first_aid_kits,0,[65.6187 + _offset_door,0.109863,0]],
+ [selectRandom btc_type_power,223,[63.9292 + _offset_door,14.8687,0]],
+ [selectRandom (btc_type_barrel + btc_type_canister),0,[66.4707 + _offset_door,0.0717773,0]]
+];
+
+for "_i" from -_number_of_fences to _number_of_fences do {
+ _composition_pattern append [
+ [_fence, 0, [_i * _distance_between_fences, -_offset, 0]],
+ [_fence, 0, [_i * _distance_between_fences, _offset, 0]],
+ [_fence, 90, [ -_offset, _i * _distance_between_fences, 0]]
+ ];
+ if !(_i isEqualTo 1) then {
+ _composition_pattern pushBack [_fence, 90, [ _offset, _i * _distance_between_fences, 0]];
+ };
+
+ if (random 1 > 0.7) then {
+ _composition_pattern append [
+ [selectRandom btc_type_signs, 180, [_i * _distance_between_fences, _offset - 1, 0]],
+ [selectRandom btc_type_signs, 0, [_i * _distance_between_fences, -_offset + 1, 0]],
+ [selectRandom btc_type_signs, 270, [ _offset - 1, _i * _distance_between_fences, 0]],
+ [selectRandom btc_type_signs, 90, [ -_offset + 1, _i * _distance_between_fences, 0]]
+ ];
+ };
+};
+
+private _composition_objects = [_pos, selectRandom [0, 90, 180, 270], _composition_pattern] call btc_fnc_create_composition;
+private _mines = [];
for "_i" from 1 to (5 + round random 5) do {
- private ["_type","_m_pos"];
- _type = "ATMine";
- if (random 1 > 0.6) then {_type = selectRandom btc_type_mines;};
- _m_pos = [_pos, 50] call btc_fnc_randomize_pos;
- _m = createMine [_type, _m_pos, [], 0];
- _mines pushBack _m;
+ private _type = "ATMine";
+ if (random 1 > 0.6) then {_type = selectRandom btc_type_mines;};
+ private _m_pos = [_pos, _area_size - 10] call btc_fnc_randomize_pos;
+ _mines pushBack createMine [_type, _m_pos, [], 0];
+
+ if (random 1 > 0.8) then {
+ _m_pos = [_pos, _area_size - 10] call btc_fnc_randomize_pos;
+ private _s = createVehicle [selectRandom btc_type_signs, _m_pos, [], 10, "CAN_COLLIDE"];
+ _s setDir random 360;
+ _composition_objects pushBack _s;
+ };
};
-waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || ({_x distance _pos < 200} count playableUnits > 0))};
+waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || ({_x distance _pos < 100} count playableUnits > 0))};
-_closest = [_city,btc_city_all select {!(_x getVariable ["active",false])},false] call btc_fnc_find_closecity;
+private _closest = [_city,btc_city_all select {!(_x getVariable ["active",false])}, false] call btc_fnc_find_closecity;
for "_i" from 1 to (round random 2) do {
- [_closest,_pos,1,selectRandom btc_type_motorized] spawn btc_fnc_mil_send;
+ [_closest, _pos, 1, selectRandom btc_type_motorized] spawn btc_fnc_mil_send;
};
waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || ({!isNull _x} count _mines == 0))};
btc_side_assigned = false;publicVariable "btc_side_assigned";
if (btc_side_aborted || btc_side_failed) exitWith {
- 4 remoteExec ["btc_fnc_task_fail", 0];
- [[_area,_marker], _mines, [], []] call btc_fnc_delete;
+ 4 remoteExec ["btc_fnc_task_fail", 0];
+ [[_area,_marker], _mines + _composition_objects, [], []] call btc_fnc_delete;
};
30 call btc_fnc_rep_change;
4 remoteExec ["btc_fnc_task_set_done", 0];
-[[_area,_marker], [], [], []] call btc_fnc_delete;
\ No newline at end of file
+[[_area,_marker], _composition_objects, [], []] call btc_fnc_delete;
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf
index 29e50b9ab..4447da70d 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/rescue.sqf
@@ -12,9 +12,9 @@ _city = selectRandom _useful;
_pos = [getPos _city, (((_city getVariable ["RadiusX",0]) + (_city getVariable ["RadiusY",0]))/2) - 100] call btc_fnc_randomize_pos;
_random_area = 50;
for "_i" from 0 to 4 do {
- _return_pos = [_pos, 0, _random_area, 13, 0, 60 * (pi / 180), 0] call BIS_fnc_findSafePos;
- if (count _return_pos == 2) exitWith {_return_pos = [_return_pos select 0, _return_pos select 1, 0];};
- _random_area = _random_area * 1.5;
+ _return_pos = [_pos, 0, _random_area, 13, 0, 60 * (pi / 180), 0] call BIS_fnc_findSafePos;
+ if (count _return_pos == 2) exitWith {_return_pos = [_return_pos select 0, _return_pos select 1, 0];};
+ _random_area = _random_area * 1.5;
};
_pos = _return_pos;
@@ -23,7 +23,7 @@ btc_side_done = false;
btc_side_failed = false;
btc_side_assigned = true;publicVariable "btc_side_assigned";
-[13,_pos,_city getVariable "name"] call btc_fnc_task_create;
+[13,_pos,_city getVariable "name"] remoteExec ["btc_fnc_task_create", 0];
btc_side_jip_data = [13,getPos _city,_city getVariable "name"];
@@ -49,20 +49,20 @@ getText(configfile >> "CfgVehicles" >> _heli_type >> "crew") createUnit [_pos, _
_units = [];
_triggers = [];
{
- _x setCaptive true;
- removeAllWeapons _x;
- _x setBehaviour "CARELESS";
- _x setDir (random 360);
- _x setUnitPos "DOWN";
- _units pushBack _x;
- //// Create trigger \\\\
- _trigger = createTrigger["EmptyDetector",getPos _city];
- _trigger setVariable ["unit", _x];
- _trigger setTriggerArea[50,50,0,false];
- _trigger setTriggerActivation[str(btc_player_side),"PRESENT",false];
- _trigger setTriggerStatements["this", "_unit = thisTrigger getVariable 'unit'; [_unit] join (thisList select 0); _unit setUnitPos 'UP';", ""];
- _trigger attachTo [_x,[0,0,0]];
- _triggers pushBack _trigger;
+ _x setCaptive true;
+ removeAllWeapons _x;
+ _x setBehaviour "CARELESS";
+ _x setDir (random 360);
+ _x setUnitPos "DOWN";
+ _units pushBack _x;
+ //// Create trigger \\\\
+ _trigger = createTrigger["EmptyDetector",getPos _city];
+ _trigger setVariable ["unit", _x];
+ _trigger setTriggerArea[50,50,0,false];
+ _trigger setTriggerActivation[str(btc_player_side),"PRESENT",false];
+ _trigger setTriggerStatements["this", "_unit = thisTrigger getVariable 'unit'; [_unit] join (thisList select 0); _unit setUnitPos 'UP';", ""];
+ _trigger attachTo [_x,[0,0,0]];
+ _triggers pushBack _trigger;
} foreach units _group;
waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || ({_x distance getpos btc_create_object_point > 100} count _units isEqualTo 0) || ({Alive _x} count _units isEqualTo 0))};
@@ -71,7 +71,7 @@ btc_side_assigned = false;publicVariable "btc_side_assigned";
[[], [_heli] + _triggers, [_fx], [_group]] call btc_fnc_delete;
if (btc_side_aborted || btc_side_failed || ({Alive _x} count _units isEqualTo 0)) exitWith {
- 13 remoteExec ["btc_fnc_task_fail", 0];
+ 13 remoteExec ["btc_fnc_task_fail", 0];
};
50 call btc_fnc_rep_change;
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/supply.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/supply.sqf
index ba74a1b4a..6cbd4a021 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/supply.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/supply.sqf
@@ -15,7 +15,7 @@ btc_side_done = false;
btc_side_failed = false;
btc_side_assigned = true;publicVariable "btc_side_assigned";
-[3,_pos,_city getVariable "name"] call btc_fnc_task_create;
+[3,_pos,_city getVariable "name"] remoteExec ["btc_fnc_task_create", 0];
btc_side_jip_data = [3,_pos,_city getVariable "name"];
@@ -28,7 +28,7 @@ _area setmarkercolor "colorBlue";
_marker = createmarker [format ["sm_2_%1",_pos],_pos];
_marker setmarkertype "hd_flag";
-_marker setmarkertext "Supplies";
+[_marker,"STR_BTC_HAM_SIDE_SUPPLIES_MRK"] remoteExec ["btc_fnc_set_markerTextLocal", [0, -2] select isDedicated, _marker]; //Supplies
_marker setMarkerSize [0.6, 0.6];
waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || count (nearestObjects [_pos, [btc_supplies_mat], 30]) > 0)};
@@ -36,12 +36,12 @@ waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || count (nearestObject
btc_side_assigned = false;publicVariable "btc_side_assigned";
if (btc_side_aborted || btc_side_failed) exitWith {
- 3 remoteExec ["btc_fnc_task_fail", 0];
- [[_area,_marker], [], [], []] call btc_fnc_delete;
+ 3 remoteExec ["btc_fnc_task_fail", 0];
+ [[_area,_marker], [], [], []] call btc_fnc_delete;
};
50 call btc_fnc_rep_change;
3 remoteExec ["btc_fnc_task_set_done", 0];
-[[_area,_marker], [(nearestObjects [_pos, [btc_supplies_mat], 30]) select 0], [], []] call btc_fnc_delete;
\ No newline at end of file
+[[_area,_marker], [(nearestObjects [_pos, [btc_supplies_mat], 30]) select 0], [], []] call btc_fnc_delete;
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/tower.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/tower.sqf
index dfd85c2c9..1edfe8a7d 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/tower.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/tower.sqf
@@ -21,7 +21,7 @@ btc_side_done = false;
btc_side_failed = false;
btc_side_assigned = true;publicVariable "btc_side_assigned";
-[7,_pos,_city getVariable "name"] call btc_fnc_task_create;
+[7,_pos,_city getVariable "name"] remoteExec ["btc_fnc_task_create", 0];
btc_side_jip_data = [7,_pos,_city getVariable "name"];
@@ -36,7 +36,7 @@ _area setmarkercolor "colorBlue";
_marker = createmarker [format ["sm_2_%1",_pos],_pos];
_marker setmarkertype "hd_flag";
-_marker setmarkertext "Radio Tower";
+[_marker,"STR_BTC_HAM_SIDE_TOWER_MRK"] remoteExec ["btc_fnc_set_markerTextLocal", [0, -2] select isDedicated, _marker]; //Radio Tower
_marker setMarkerSize [0.6, 0.6];
//// Randomise composition \\\\
@@ -44,9 +44,9 @@ _tower_type = selectRandom btc_type_tower;
_power_type = selectRandom btc_type_power;
_cord_type = selectRandom btc_type_cord;
_btc_composition_tower = [
- [_tower_type,0,[0,0,0]],
- [_cord_type,63,[-1.30664,0.939453,0]],
- [_power_type,24,[-4.56885,-0.231445,0]]
+ [_tower_type,0,[0,0,0]],
+ [_cord_type,63,[-1.30664,0.939453,0]],
+ [_power_type,24,[-4.56885,-0.231445,0]]
];
//// Create tower with static at _pos \\\\
@@ -63,9 +63,9 @@ btc_side_assigned = false;publicVariable "btc_side_assigned";
[[_area,_marker], _btc_composition, [], []] call btc_fnc_delete;
if (btc_side_aborted || btc_side_failed ) exitWith {
- 7 remoteExec ["btc_fnc_task_fail", 0];
+ 7 remoteExec ["btc_fnc_task_fail", 0];
};
80 call btc_fnc_rep_change;
-7 remoteExec ["btc_fnc_task_set_done", 0];
\ No newline at end of file
+7 remoteExec ["btc_fnc_task_set_done", 0];
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/underwater_generator.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/underwater_generator.sqf
index 9d3a83468..5822cdc3e 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/underwater_generator.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/underwater_generator.sqf
@@ -15,14 +15,14 @@ _objects = _objects select {((getPos _x select 2 < -3) && (((str(_x) find "car")
_wrecks = _objects select {((str(_x) find "rock") isEqualTo -1)};
if (_wrecks isEqualTo []) then {
- if (_objects isEqualTo []) then {
- _pos = [getPos _city, 0, 100, 13, 2, 60 * (pi / 180), 0] call BIS_fnc_findSafePos;
- _pos = [_pos select 0, _pos select 1, (getTerrainHeightASL [_pos select 0, _pos select 1])];
- } else {
- _pos = getpos (selectRandom _objects);
- };
+ if (_objects isEqualTo []) then {
+ _pos = [getPos _city, 0, 100, 13, 2, 60 * (pi / 180), 0] call BIS_fnc_findSafePos;
+ _pos = [_pos select 0, _pos select 1, (getTerrainHeightASL [_pos select 0, _pos select 1])];
+ } else {
+ _pos = getpos (selectRandom _objects);
+ };
} else {
- _pos = getpos (selectRandom _wrecks);
+ _pos = getpos (selectRandom _wrecks);
};
btc_side_aborted = false;
@@ -30,7 +30,7 @@ btc_side_done = false;
btc_side_failed = false;
btc_side_assigned = true;publicVariable "btc_side_assigned";
-[11,_pos,_city getVariable "name"] call btc_fnc_task_create;
+[11,_pos,_city getVariable "name"] remoteExec ["btc_fnc_task_create", 0];
btc_side_jip_data = [11,_pos,_city getVariable "name"];
@@ -46,7 +46,7 @@ _area setmarkercolor "colorBlue";
_marker = createmarker [format ["sm_2_%1",_pos],_pos];
_marker setmarkertype "hd_flag";
-_marker setmarkertext "Generator";
+[_marker,"STR_BTC_HAM_SIDE_UNDERWATER_MRK"] remoteExec ["btc_fnc_set_markerTextLocal", [0, -2] select isDedicated, _marker]; //Generator
_marker setMarkerSize [0.6, 0.6];
@@ -58,7 +58,7 @@ _group = [_pos,8, 1 + round random 5,0.8] call btc_fnc_mil_create_group;
[_pos,20, 2 + round random 4,0.5] call btc_fnc_mil_create_group;
_pos = getPosASL _generator;
-leader _group setPosASL [_pos select 0, _pos select 1, (_pos select 2) + 1 + random 1];
+(leader (_group select 0)) setPosASL [_pos select 0, _pos select 1, (_pos select 2) + 1 + random 1];
waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || !Alive _generator )};
@@ -66,9 +66,9 @@ waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || !Alive _generator )}
btc_side_assigned = false;publicVariable "btc_side_assigned";
if (btc_side_aborted || btc_side_failed ) exitWith {
- 11 remoteExec ["btc_fnc_task_fail", 0];
+ 11 remoteExec ["btc_fnc_task_fail", 0];
};
80 call btc_fnc_rep_change;
-11 remoteExec ["btc_fnc_task_set_done", 0];
\ No newline at end of file
+11 remoteExec ["btc_fnc_task_set_done", 0];
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/vehicle.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/vehicle.sqf
index b1bdf49d2..0f3060af4 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/vehicle.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/vehicle.sqf
@@ -16,7 +16,7 @@ btc_side_done = false;
btc_side_failed = false;
btc_side_assigned = true;publicVariable "btc_side_assigned";
-[5,_pos,_city getVariable "name"] call btc_fnc_task_create;
+[5,_pos,_city getVariable "name"] remoteExec ["btc_fnc_task_create", 0];
btc_side_jip_data = [5,_pos,_city getVariable "name"];
@@ -29,7 +29,7 @@ _area setmarkercolor "colorBlue";
_marker = createmarker [format ["sm_2_%1",_pos],_pos];
_marker setmarkertype "hd_flag";
-_marker setmarkertext "Vehicle needs assistance";
+[_marker,"STR_BTC_HAM_SIDE_VEHICLE_MRK"] remoteExec ["btc_fnc_set_markerTextLocal", [0, -2] select isDedicated, _marker]; // Vehicle needs assistance
_marker setMarkerSize [0.6, 0.6];
_veh_type = selectRandom btc_civ_type_veh;
@@ -47,9 +47,9 @@ btc_side_assigned = false;publicVariable "btc_side_assigned";
[[_area,_marker], [_veh], [], []] call btc_fnc_delete;
if (btc_side_aborted || btc_side_failed || !Alive _veh) exitWith {
- 5 remoteExec ["btc_fnc_task_fail", 0];
+ 5 remoteExec ["btc_fnc_task_fail", 0];
};
15 call btc_fnc_rep_change;
-5 remoteExec ["btc_fnc_task_set_done", 0];
\ No newline at end of file
+5 remoteExec ["btc_fnc_task_set_done", 0];
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/create.sqf
index ff9485ed0..1d8cf3e0d 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/create.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/create.sqf
@@ -1,105 +1,88 @@
-if (!isServer) exitWith {["task" + ([_this select 0] call BIS_fnc_taskState) + "Icon",[[[_this select 0] call BIS_fnc_taskType] call bis_fnc_taskTypeIcon, ([_this select 0] call BIS_fnc_taskDescription) select 1 select 0]] call bis_fnc_showNotification;};
+params ["_task_id", ["_destination", objNull], ["_location", ""]];
-private ["_location","_destination","_description","_type"];
+if !( _task_id isEqualType "") then {_task_id = str(_task_id);};
-if ((typeName (_this select 0)) isEqualTo "STRING") exitWith {};
+private ["_description","_type"];
-if (count _this > 1) then {
- _destination = _this select 1;
- _location = _this select 2;
-} else {
- _destination = objNull;
- _location = "";
+switch (_task_id) do {
+ case "0" : {
+ _description = [(localize "STR_BTC_HAM_MISSION_DEFEAT_DESC"),(localize "STR_BTC_HAM_MISSION_DEFEAT_TITLE"),(localize "STR_BTC_HAM_MISSION_DEFEAT_TITLE")]; //"Defeat the Oplitas once and for all","Defeat the Oplitas","Defeat the Oplitas"
+ _type = "kill";
+ };
+ case "1" : {
+ _description = [(localize "STR_BTC_HAM_MISSION_DESTORY_DESC"),(localize "STR_BTC_HAM_MISSION_DESTORY_TITLE"),(localize "STR_BTC_HAM_MISSION_DESTORY_TITLE")]; //"Destroy all the hideouts of the Oplitas","Destroy all the hideouts","Destroy all the hideouts"
+ _type = "destroy";
+ };
+ case "2" : {
+ _description = [(localize "STR_BTC_HAM_MISSION_SEIZE_DESC"),(localize "STR_BTC_HAM_MISSION_SEIZE_TITLE"),(localize "STR_BTC_HAM_MISSION_SEIZE_MRK")]; //"Seize the last positions held by Oplitas fighters","Seize the last Oplitas positions","Seize the last Oplitas fighters positions"
+ _type = "move";
+ };
+ case "3" : {
+ _description = [format [(localize "STR_BTC_HAM_SIDE_SUPPLIES_DESC"),_location],(format [(localize "STR_BTC_HAM_SIDE_SUPPLIES_TITLE"),_location]),(format [(localize "STR_BTC_HAM_SIDE_SUPPLIES_TITLE"),_location])]; //The citizens of %1 are on the brink starving to death, bring them some supplies present at the logisitic point!",_location],("Supply " + _location),("Supply " + _location)
+ _type = "container";
+ };
+ case "4" : {
+ _description = [format [(localize "STR_BTC_HAM_SIDE_MINES_DESC"),_location],(format [(localize "STR_BTC_HAM_SIDE_MINES_TITLE"),_location]),(format [(localize "STR_BTC_HAM_SIDE_MINES_TITLE"),_location])]; //There is a minefield near %1, clear it!",_location],("Minefield near " + _location),("Minefield near " + _location)
+ _type = "mine";
+ };
+ case "5" : {
+ _description = [format [(localize "STR_BTC_HAM_SIDE_VEHICLE_DESC"),_location],(format [(localize "STR_BTC_HAM_SIDE_VEHICLE_TITLE"),_location]),(format [(localize "STR_BTC_HAM_SIDE_VEHICLE_TITLE"),_location])]; //"A vehicle damaged by an IED needs assistance near %1! Repair it!",_location],("Vehicle needs assistance near " + _location),("Vehicle needs assistance near " + _location)
+ _type = "repair";
+ };
+ case "6" : {
+ _description = [format [(localize "STR_BTC_HAM_SIDE_CONQUER_DESC"),_location],(format [(localize "STR_BTC_HAM_SIDE_CONQUER_TITLE"),_location]),(format [(localize "STR_BTC_HAM_SIDE_CONQUER_TITLE"),_location])]; //"%1 has been conquered by the Oplitas! Local population is being terrorized, they are asking for help!",_location],("Free " + _location),("Free " + _location)
+ _type = "attack";
+ };
+ case "7" : {
+ _description = [format [(localize "STR_BTC_HAM_SIDE_TOWER_DESC"),_location],(format [(localize "STR_BTC_HAM_SIDE_TOWER_TITLE"),_location]),(format [(localize "STR_BTC_HAM_SIDE_TOWER_TITLE"),_location])]; //"A Oplitas communications tower has been located in %1. Local population is asking for your help to destroy it! (Use one M183 explosive satchel)",_location],("Destroy tower in " + _location),("Destroy tower in " + _location)
+ _type = "destroy";
+ };
+ case "8" : {
+ _description = [format [(localize "STR_BTC_HAM_SIDE_CIVTREAT_DESC"),_location],(format [(localize "STR_BTC_HAM_SIDE_CIVTREAT_TITLE"),_location]),(format [(localize "STR_BTC_HAM_SIDE_CIVTREAT_TITLE"),_location])]; //format ["A civilian is calling for a medic in %1, treat and wait for patient stabilization ",_location],("Medical emergency call in " + _location),("Medical emergency call in " + _location)
+ _type = "heal";
+ };
+ case "9" : {
+ _description = [format [(localize "STR_BTC_HAM_SIDE_CHECKPOINT_DESC"),_location],(format [(localize "STR_BTC_HAM_SIDE_CHECKPOINT_TITLE"),_location]),(format [(localize "STR_BTC_HAM_SIDE_CHECKPOINT_TITLE"),_location])]; //"Checkpoints have been located in %1. Local population is asking for your help to destroy ammo box in all checkpoints!",_location],("Destroy checkpoints in " + _location),("Destroy checkpoints in " + _location)
+ _type = "destroy";
+ };
+ case "10" : {
+ _description = [format [(localize "STR_BTC_HAM_SIDE_CIVTREATBOAT_DESC"),_location],(format [(localize "STR_BTC_HAM_SIDE_CIVTREATBOAT_TITLE"),_location]),(format [(localize "STR_BTC_HAM_SIDE_CIVTREATBOAT_TITLE"),_location])]; //"A civilian is calling for a medic in %1, treat and wait for patient stabilization ",_location],("Medical emergency call in " + _location),("Medical emergency call in " + _location)
+ _type = "heal";
+ };
+ case "11" : {
+ _description = [format [(localize "STR_BTC_HAM_SIDE_UNDERWATER_DESC"),_location],(format [(localize "STR_BTC_HAM_SIDE_UNDERWATER_TITLE"),_location]),(format [(localize "STR_BTC_HAM_SIDE_UNDERWATER_TITLE"),_location])]; //"Underwater generator has been located in %1. Local population is asking for your help to destroy it!",_location],("Destroy underwater generator in " + _location),("Destroy underwater generator in " + _location)
+ _type = "destroy";
+ };
+ case "12" : {
+ _description = [format [(localize "STR_BTC_HAM_SIDE_CONVOY_DESC"),_location],(format [(localize "STR_BTC_HAM_SIDE_CONVOY_TITLE"),_location]),(format [(localize "STR_BTC_HAM_SIDE_CONVOY_TITLE"),_location])]; //"An armed Oplitas convoy is going to attack %1. Local population is asking for your help to destroy it before it gets there!",_location],("Destroy Oplitas convoy attacking " + _location),("Destroy Oplitas convoy attacking " + _location)
+ _type = "attack";
+ };
+ case "13" : {
+ _description = [format [(localize "STR_BTC_HAM_SIDE_RESC_DESC"),_location],(format [(localize "STR_BTC_HAM_SIDE_RESC_TITLE"),_location]),(format [(localize "STR_BTC_HAM_SIDE_RESC_TITLE"),_location])]; //"MAYDAY-MAYDAY, a pilot crashed his helicopter near %1. Command is asking for your help to rescue and bring him back to base!",_location],("Rescue downed pilot near " + _location),("Rescue downed pilot near " + _location)
+ _type = "heli";
+ };
+ case "14" : {
+ _description = [format [(localize "STR_BTC_HAM_SIDE_CAPOFF_DESC"),_location],((localize "STR_BTC_HAM_SIDE_CAPOFF_TITLE")),((localize "STR_BTC_HAM_SIDE_CAPOFF_TITLE"))]; //"Capture an officer travelling in a concealed convoy, then bring him at base for interrogation. He is his responsible for terrorizing local population!",_location],("Capture commander in concealed convoy"),("Capture commander in concealed convoy")
+ _type = "run";
+ };
+ case "15" : {
+ _description = [format [(localize "STR_BTC_HAM_SIDE_HOSTAGE_DESC"),_location],(format [(localize "STR_BTC_HAM_SIDE_HOSTAGE_TITLE"),_location]),(format [(localize "STR_BTC_HAM_SIDE_HOSTAGE_TITLE"),_location])]; //"Liberate a civilian hostage in %1. Local population is asking for your help!",_location],("Liberate hostage near " + _location),("Liberate hostage near " + _location)
+ _type = "exit";
+ };
+ case "16" : {
+ _description = [format [(localize "STR_BTC_HAM_SIDE_HACK_DESC"),_location],(format [(localize "STR_BTC_HAM_SIDE_HACK_TITLE"),_location]),(format [(localize "STR_BTC_HAM_SIDE_HACK_TITLE"),_location])]; //"Hack a prototype missile with a terminal available in %1. Defend your position until the process is done!",_location],("Hack missile near " + _location),("Hack missile near " + _location)
+ _type = "defend";
+ };
};
-switch (_this select 0) do
-{
- case 0 :
- {
- _description = ["Defeat the Oplitas once and for all","Defeat the Oplitas","Defeat the Oplitas"];
- _type = "kill";
- };
- case 1 :
- {
- _description = ["Destroy all the hideouts of the Oplitas","Destroy all the hideouts","Destroy all the hideouts"];
- _type = "destroy";
- };
- case 2 :
- {
- _description = ["Seize the last positions held by Oplitas fighters","Seize the last Oplitas positions","Seize the last Oplitas fighters positions"];
- _type = "move";
- };
- case 3 :
- {
- _description = [format ["The citizens of %1 are on the brink starving to death, bring them some supplies present at the logisitic point!",_location],("Supply " + _location),("Supply " + _location)];
- _type = "move";
- };
- case 4 :
- {
- _description = [format ["There is a minefield near %1, clear it!",_location],("Minefield near " + _location),("Minefield near " + _location)];
- _type = "search";
- };
- case 5 :
- {
- _description = [format ["A vehicle damaged by an IED needs assistance near %1! Repair it!",_location],("Vehicle needs assistance near " + _location),("Vehicle needs assistance near " + _location)];
- _type = "repair";
- };
- case 6 :
- {
- _description = [format ["%1 has been conquered by the Oplitas! Local population is being terrorized, they are asking for help!",_location],("Free " + _location),("Free " + _location)];
- _type = "attack";
- };
- case 7 :
- {
- _description = [format ["A Oplitas communications tower has been located in %1. Local population is asking for your help to destroy it! (Use one M183 explosive satchel)",_location],("Destroy tower in " + _location),("Destroy tower in " + _location)];
- _type = "destroy";
- };
- case 8 :
- {
- _description = [format ["A civilian is calling for a medic in %1, treat and wait for patient stabilization ",_location],("Medical emergency call in " + _location),("Medical emergency call in " + _location)];
- _type = "heal";
- };
- case 9 :
- {
- _description = [format ["Checkpoints have been located in %1. Local population is asking for your help to destroy ammo box in all checkpoints!",_location],("Destroy checkpoints in " + _location),("Destroy checkpoints in " + _location)];
- _type = "destroy";
- };
- case 10 :
- {
- _description = [format ["A civilian is calling for a medic in %1, treat and wait for patient stabilization ",_location],("Medical emergency call in " + _location),("Medical emergency call in " + _location)];
- _type = "heal";
- };
- case 11 :
- {
- _description = [format ["Underwater generator has been located in %1. Local population is asking for your help to destroy it!",_location],("Destroy underwater generator in " + _location),("Destroy underwater generator in " + _location)];
- _type = "destroy";
- };
- case 12 :
- {
- _description = [format ["An armed Oplitas convoy is going to attack %1. Local population is asking for your help to destroy it before it gets there!",_location],("Destroy Oplitas convoy attacking " + _location),("Destroy Oplitas convoy attacking " + _location)];
- _type = "attack";
- };
- case 13 :
- {
- _description = [format ["MAYDAY-MAYDAY, a pilot crashed his helicopter near %1. Command is asking for your help to rescue and bring him back to base!",_location],("Rescue downed pilot near " + _location),("Rescue downed pilot near " + _location)];
- _type = "navigate";
- };
- case 14 :
- {
- _description = [format ["Capture an officer travelling in a concealed convoy, then bring him at base for interrogation. He is his responsible for terrorizing local population!",_location],("Capture commander in concealed convoy"),("Capture commander in concealed convoy")];
- _type = "run";
- };
- case 15 :
- {
- _description = [format ["Liberate a civilian hostage in %1. Local population is asking for your help!",_location],("Liberate hostage near " + _location),("Liberate hostage near " + _location)];
- _type = "exit";
- };
- case 16 :
- {
- _description = [format ["Hack a prototype missile with a terminal available in %1. Defend your position until the process is done!",_location],("Hack missile near " + _location),("Hack missile near " + _location)];
- _type = "intel";
- };
+if (!isServer) exitWith {
+ [[_task_id], btc_player_side, _description, _destination, true, 2, false, false] spawn {
+
+ waitUntil {(_this select 0) call BIS_fnc_taskState isEqualTo "ASSIGNED";};
+ _this call BIS_fnc_setTask;
+ (_this select 0) call BIS_fnc_taskHint;
+ };
};
-[btc_player_side,[str(_this select 0)],_description,_destination,true,2,true,_type,true] call BIS_fnc_taskCreate;
\ No newline at end of file
+[btc_player_side,[_task_id],_description,_destination,true,2,false,_type,false] call BIS_fnc_taskCreate;
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/fail.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/fail.sqf
index 7e611b122..fabb34a78 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/fail.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/fail.sqf
@@ -5,61 +5,47 @@ private ["_description"];
switch _this do
{
- case 3 :
- {
- _description = ["Side mission failed!","Supplies were not delivered"];
- };
- case 4 :
- {
- _description = ["Side mission failed!","The minefield was not cleared"];
- };
- case 5 :
- {
- _description = ["Side mission failed!","The vehicle was not repaired"];
- };
- case 6 :
- {
- _description = ["Side mission failed!","The city was not conquered"];
- };
- case 7 :
- {
- _description = ["Side mission failed!","The tower was not destroyed"];
- };
- case 8 :
- {
- _description = ["Side mission failed!","The patient was not stabilized"];
- };
- case 9 :
- {
- _description = ["Side mission failed!","Checkpoints were not destroyed"];
- };
- case 10 :
- {
- _description = ["Side mission failed!","The patient was not stabilized"];
- };
- case 11 :
- {
- _description = ["Side mission failed!","The underwater generator was not destroyed"];
- };
- case 12 :
- {
- _description = ["Side mission failed!","The armed convoy was not destroyed"];
- };
- case 13 :
- {
- _description = ["Side mission failed!","The pilot was not rescued"];
- };
- case 14 :
- {
- _description = ["Side mission failed!","The officer was not captured"];
- };
- case 15 :
- {
- _description = ["Side mission failed!","The hostage was not liberated"];
- };
- case 16 :
- {
- _description = ["Side mission failed!","The missile was not hacked"];
- };
+ case 3 : {
+ _description = [(localize "STR_BTC_HAM_SIDE_BASIC_LOSE_TITLE"),(localize "STR_BTC_HAM_SIDE_SUPPLIES_FAILED_TEXT")]; //"Side mission failed!","Supplies were not delivered"
+ };
+ case 4 : {
+ _description = [(localize "STR_BTC_HAM_SIDE_BASIC_LOSE_TITLE"),(localize "STR_BTC_HAM_SIDE_MINES_FAILED_TEXT")]; //"Side mission failed!","The minefield was not cleared"
+ };
+ case 5 : {
+ _description = [(localize "STR_BTC_HAM_SIDE_BASIC_LOSE_TITLE"),(localize "STR_BTC_HAM_SIDE_VEHICLE_FAILED_TEXT")]; //"Side mission failed!","The vehicle was not repaired"
+ };
+ case 6 : {
+ _description = [(localize "STR_BTC_HAM_SIDE_BASIC_LOSE_TITLE"),(localize "STR_BTC_HAM_SIDE_CONQUER_FAILED_TEXT")]; //"Side mission failed!","The city was not conquered"
+ };
+ case 7 : {
+ _description = [(localize "STR_BTC_HAM_SIDE_BASIC_LOSE_TITLE"),(localize "STR_BTC_HAM_SIDE_TOWER_FAILED_TEXT")]; //"Side mission failed!","The tower was not destroyed"
+ };
+ case 8 : {
+ _description = [(localize "STR_BTC_HAM_SIDE_BASIC_LOSE_TITLE"),(localize "STR_BTC_HAM_SIDE_CIVTREAT_FAILED_TEXT")]; //"Side mission failed!","The patient was not stabilized"
+ };
+ case 9 : {
+ _description = [(localize "STR_BTC_HAM_SIDE_BASIC_LOSE_TITLE"),(localize "STR_BTC_HAM_SIDE_CHECKPOINT_FAILED_TEXT")]; //"Side mission failed!","Checkpoints were not destroyed"
+ };
+ case 10 : {
+ _description = [(localize "STR_BTC_HAM_SIDE_BASIC_LOSE_TITLE"),(localize "STR_BTC_HAM_SIDE_CIVTREATBOAT_FAILED_TEXT")]; //"Side mission failed!","The patient was not stabilized"
+ };
+ case 11 : {
+ _description = [(localize "STR_BTC_HAM_SIDE_BASIC_LOSE_TITLE"),(localize "STR_BTC_HAM_SIDE_UNDERWATER_FAILED_TEXT")]; //"Side mission failed!","The underwater generator was not destroyed"
+ };
+ case 12 : {
+ _description = [(localize "STR_BTC_HAM_SIDE_BASIC_LOSE_TITLE"),(localize "STR_BTC_HAM_SIDE_CONVOY_FAILED_TEXT")]; //"Side mission failed!","The armed convoy was not destroyed"
+ };
+ case 13 : {
+ _description = [(localize "STR_BTC_HAM_SIDE_BASIC_LOSE_TITLE"),(localize "STR_BTC_HAM_SIDE_RESC_FAILED_TEXT")]; //"Side mission failed!","The pilot was not rescued"
+ };
+ case 14 : {
+ _description = [(localize "STR_BTC_HAM_SIDE_BASIC_LOSE_TITLE"),(localize "STR_BTC_HAM_SIDE_CAPOFF_FAILED_TEXT")]; //"Side mission failed!","The officer was not captured"
+ };
+ case 15 : {
+ _description = [(localize "STR_BTC_HAM_SIDE_BASIC_LOSE_TITLE"),(localize "STR_BTC_HAM_SIDE_HOSTAGE_FAILED_TEXT")]; //"Side mission failed!","The hostage was not liberated"
+ };
+ case 16 : {
+ _description = [(localize "STR_BTC_HAM_SIDE_BASIC_LOSE_TITLE"),(localize "STR_BTC_HAM_SIDE_HACK_FAILED_TEXT")]; //"Side mission failed!","The missile was not hacked"
+ };
};
-["task" + "FAILED" + "Icon",[[[str(_this)] call BIS_fnc_taskType] call bis_fnc_taskTypeIcon, _description select 1]] call bis_fnc_showNotification;
\ No newline at end of file
+["task" + "FAILED" + "Icon",[[[str(_this)] call BIS_fnc_taskType] call bis_fnc_taskTypeIcon, _description select 1]] call bis_fnc_showNotification;
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/set_done.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/set_done.sqf
index 5ffd434f2..9c3d13004 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/set_done.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/set_done.sqf
@@ -1,63 +1,63 @@
if (isServer) exitWith {
- [str(_this), "SUCCEEDED",false] spawn BIS_fnc_taskSetState;
- if (_this isEqualTo 1) then {[2] call btc_fnc_task_create};
+ [str(_this), "SUCCEEDED",false] spawn BIS_fnc_taskSetState;
+ if (_this isEqualTo 1) then {[2] remoteExec ["btc_fnc_task_create", 0]};
};
private ["_description"];
switch _this do
{
- case 0 : {
- _description = ["Mission accomplished!","Oplitas have been finally defeated! Mission accomplished!"];
- };
- case 1 : {
- _description = ["Mission accomplished!","All the hideouts have been destroyed!"];
- };
- case 2 : {
- _description = ["Mission accomplished!","Oplitas have been finally defeated! Mission accomplished!"];
- };
- case 3 : {
- _description = ["Side mission Accomplished!","Supplies have been delivered"];
- };
- case 4 : {
- _description = ["Side mission Accomplished!","The minefield has been cleared"];
- };
- case 5 : {
- _description = ["Side mission Accomplished!","The vehicle has been repaired"];
- };
- case 6 : {
- _description = ["Side mission Accomplished!","The city has been cleared!"];
- };
- case 7 : {
- _description = ["Side mission Accomplished!","The tower has been destroyed!"];
- };
- case 8 : {
- _description = ["Side mission Accomplished!","The civilian has been stabilized!"];
- };
- case 9 : {
- _description = ["Side mission Accomplished!","Checkpoints have been destroyed!"];
- };
- case 10 : {
- _description = ["Side mission Accomplished!","The civilian has been stabilized!"];
- };
- case 11 : {
- _description = ["Side mission Accomplished!","The underwater generator has been destroyed!"];
- };
- case 12 : {
- _description = ["Side mission Accomplished!","The armed convoy has been destroyed!"];
- };
- case 13 : {
- _description = ["Side mission Accomplished!","The pilot has been rescued!"];
- };
- case 14 : {
- _description = ["Side mission Accomplished!","The officer has been captured!"];
- };
- case 15 : {
- _description = ["Side mission Accomplished!","The hostage has been liberated!"];
- };
- case 16 : {
- _description = ["Side mission Accomplished!","The missile has been hacked!"];
- };
+ case 0 : {
+ _description = [(localize "STR_BTC_HAM_MISSION_BASIC_WIN_TITLE"),(localize "STR_BTC_HAM_MISSION_DEFEAT_WIN_TEXT")]; //"Mission accomplished!","Oplitas have been finally defeated! Mission accomplished!"
+ };
+ case 1 : {
+ _description = [(localize "STR_BTC_HAM_MISSION_BASIC_WIN_TITLE"),(localize "STR_BTC_HAM_MISSION_DESTORY_WIN_TEXT")]; //"Mission accomplished!","All the hideouts have been destroyed!"
+ };
+ case 2 : {
+ _description = [(localize "STR_BTC_HAM_MISSION_BASIC_WIN_TITLE"),(localize "STR_BTC_HAM_MISSION_DEFEAT_WIN_TEXT")]; //"Mission accomplished!","Oplitas have been finally defeated! Mission accomplished!"
+ };
+ case 3 : {
+ _description = [(localize "STR_BTC_HAM_SIDE_BASIC_WIN_TITLE"),(localize "STR_BTC_HAM_SIDE_SUPPLIES_WIN_TEXT")]; //"Side mission Accomplished!","Supplies have been delivered"
+ };
+ case 4 : {
+ _description = [(localize "STR_BTC_HAM_SIDE_BASIC_WIN_TITLE"),(localize "STR_BTC_HAM_SIDE_MINES_WIN_TEXT")]; //"Side mission Accomplished!","The minefield has been cleared"
+ };
+ case 5 : {
+ _description = [(localize "STR_BTC_HAM_SIDE_BASIC_WIN_TITLE"),(localize "STR_BTC_HAM_SIDE_VEHICLE_WIN_TEXT")]; //"Side mission Accomplished!","The vehicle has been repaired"
+ };
+ case 6 : {
+ _description = [(localize "STR_BTC_HAM_SIDE_BASIC_WIN_TITLE"),(localize "STR_BTC_HAM_SIDE_CONQUER_WIN_TEXT")]; //"Side mission Accomplished!","The city has been cleared!"
+ };
+ case 7 : {
+ _description = [(localize "STR_BTC_HAM_SIDE_BASIC_WIN_TITLE"),(localize "STR_BTC_HAM_SIDE_TOWER_WIN_TEXT")]; //"Side mission Accomplished!","The tower has been destroyed!"
+ };
+ case 8 : {
+ _description = [(localize "STR_BTC_HAM_SIDE_BASIC_WIN_TITLE"),(localize "STR_BTC_HAM_SIDE_CIVTREAT_WIN_TEXT")]; //"Side mission Accomplished!","The civilian has been stabilized!"
+ };
+ case 9 : {
+ _description = [(localize "STR_BTC_HAM_SIDE_BASIC_WIN_TITLE"),(localize "STR_BTC_HAM_SIDE_CHECKPOINT_WIN_TEXT")]; //"Side mission Accomplished!","Checkpoints have been destroyed!"
+ };
+ case 10 : {
+ _description = [(localize "STR_BTC_HAM_SIDE_BASIC_WIN_TITLE"),(localize "STR_BTC_HAM_SIDE_CIVTREATBOAT_WIN_TEXT")]; //"Side mission Accomplished!","The civilian has been stabilized!"
+ };
+ case 11 : {
+ _description = [(localize "STR_BTC_HAM_SIDE_BASIC_WIN_TITLE"),(localize "STR_BTC_HAM_SIDE_UNDERWATER_WIN_TEXT")]; //"Side mission Accomplished!","The underwater generator has been destroyed!"
+ };
+ case 12 : {
+ _description = [(localize "STR_BTC_HAM_SIDE_BASIC_WIN_TITLE"),(localize "STR_BTC_HAM_SIDE_CONVOY_WIN_TEXT")]; //"Side mission Accomplished!","The armed convoy has been destroyed!"
+ };
+ case 13 : {
+ _description = [(localize "STR_BTC_HAM_SIDE_BASIC_WIN_TITLE"),(localize "STR_BTC_HAM_SIDE_RESC_WIN_TEXT")]; //"Side mission Accomplished!","The pilot has been rescued!"
+ };
+ case 14 : {
+ _description = [(localize "STR_BTC_HAM_SIDE_BASIC_WIN_TITLE"),(localize "STR_BTC_HAM_SIDE_CAPOFF_WIN_TEXT")]; //"Side mission Accomplished!","The officer has been captured!"
+ };
+ case 15 : {
+ _description = [(localize "STR_BTC_HAM_SIDE_BASIC_WIN_TITLE"),(localize "STR_BTC_HAM_SIDE_HOSTAGE_WIN_TEXT")]; //"Side mission Accomplished!","The hostage has been liberated!"
+ };
+ case 16 : {
+ _description = [(localize "STR_BTC_HAM_SIDE_BASIC_WIN_TITLE"),(localize "STR_BTC_HAM_SIDE_HACK_WIN_TEXT")]; //"Side mission Accomplished!","The missile has been hacked!"
+ };
};
-["task" + "SUCCEEDED" + "Icon",[[[str(_this)] call BIS_fnc_taskType] call bis_fnc_taskTypeIcon, _description select 1]] call bis_fnc_showNotification;
\ No newline at end of file
+["task" + "SUCCEEDED" + "Icon",[[[str(_this)] call BIS_fnc_taskType] call bis_fnc_taskTypeIcon, _description select 1]] call bis_fnc_showNotification;
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/tasktypes.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/tasktypes.hpp
index 262457e8a..76709ebf5 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/tasktypes.hpp
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/task/tasktypes.hpp
@@ -1,32 +1,44 @@
class CfgTaskTypes {
- class Heal {
- icon = \A3\ui_f\data\igui\cfg\simpleTasks\types\heal_ca.paa;
- };
- class Kill {
- icon = \A3\ui_f\data\igui\cfg\simpleTasks\types\kill_ca.paa;
- };
- class Destroy {
- icon = \A3\ui_f\data\igui\cfg\simpleTasks\types\destroy_ca.paa;
- };
- class Move {
- icon = \A3\ui_f\data\igui\cfg\simpleTasks\types\move_ca.paa;
- };
- class Search {
- icon = \A3\ui_f\data\igui\cfg\simpleTasks\types\search_ca.paa;
- };
- class Repair {
- icon = \A3\ui_f\data\igui\cfg\simpleTasks\types\repair_ca.paa;
- };
- class Attack {
- icon = \A3\ui_f\data\igui\cfg\simpleTasks\types\attack_ca.paa;
- };
- class Navigate {
- icon = \A3\ui_f\data\igui\cfg\simpleTasks\types\navigate_ca.paa;
- };
- class Run {
- icon = \A3\ui_f\data\igui\cfg\simpleTasks\types\run_ca.paa;
- };
- class Exit {
- icon = \A3\ui_f\data\igui\cfg\simpleTasks\types\exit_ca.paa;
- };
+ class Heal {
+ icon = \A3\ui_f\data\igui\cfg\simpleTasks\types\heal_ca.paa;
+ };
+ class Kill {
+ icon = \A3\ui_f\data\igui\cfg\simpleTasks\types\kill_ca.paa;
+ };
+ class Destroy {
+ icon = \A3\ui_f\data\igui\cfg\simpleTasks\types\destroy_ca.paa;
+ };
+ class Move {
+ icon = \A3\ui_f\data\igui\cfg\simpleTasks\types\move_ca.paa;
+ };
+ class Search {
+ icon = \A3\ui_f\data\igui\cfg\simpleTasks\types\search_ca.paa;
+ };
+ class Repair {
+ icon = \A3\ui_f\data\igui\cfg\simpleTasks\types\repair_ca.paa;
+ };
+ class Attack {
+ icon = \A3\ui_f\data\igui\cfg\simpleTasks\types\attack_ca.paa;
+ };
+ class Navigate {
+ icon = \A3\ui_f\data\igui\cfg\simpleTasks\types\navigate_ca.paa;
+ };
+ class Run {
+ icon = \A3\ui_f\data\igui\cfg\simpleTasks\types\run_ca.paa;
+ };
+ class Exit {
+ icon = \A3\ui_f\data\igui\cfg\simpleTasks\types\exit_ca.paa;
+ };
+ class Container {
+ icon = \A3\ui_f\data\igui\cfg\simpleTasks\types\container_ca.paa;
+ };
+ class Mine {
+ icon = \A3\ui_f\data\igui\cfg\simpleTasks\types\mine_ca.paa;
+ };
+ class Heli {
+ icon = \A3\ui_f\data\igui\cfg\simpleTasks\types\heli_ca.paa;
+ };
+ class Defend {
+ icon = \A3\ui_f\data\igui\cfg\simpleTasks\types\defend_ca.paa;
+ };
};
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf
index b4fb34eea..4f9890682 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_player.sqf
@@ -1,37 +1,37 @@
-[] execVM "core\doc.sqf";
+call compile preprocessFile "core\doc.sqf";
-[] spawn {
- waitUntil {!isNull player};
+[{!isNull player}, {
- player addRating 9999;
- btc_player_respawn = getPosASL player;
- ["InitializePlayer", [player]] call BIS_fnc_dynamicGroups;
+ player addRating 9999;
+ btc_player_respawn = getPosASL player;
+ ["InitializePlayer", [player]] call BIS_fnc_dynamicGroups;
- player addEventHandler ["Respawn", btc_fnc_eh_player_respawn];
- player addEventHandler ["CuratorObjectPlaced", btc_fnc_eh_CuratorObjectPlaced];
- ["ace_treatmentSucceded", btc_fnc_eh_treatment] call CBA_fnc_addEventHandler;
+ player addEventHandler ["Respawn", btc_fnc_eh_player_respawn];
+ player addEventHandler ["CuratorObjectPlaced", btc_fnc_eh_CuratorObjectPlaced];
+ ["ace_treatmentSucceded", btc_fnc_eh_treatment] call CBA_fnc_addEventHandler;
+ player addEventHandler ["WeaponAssembled", btc_fnc_civ_add_leaflets];
- call btc_fnc_int_add_actions;
+ call btc_fnc_int_add_actions;
+ call btc_fnc_int_shortcuts;
- if (player getVariable ["interpreter", false]) then {player createDiarySubject ["Diary log","Diary log"];};
+ if (player getVariable ["interpreter", false]) then {player createDiarySubject [localize "STR_BTC_HAM_CON_INFO_ASKHIDEOUT_DIARYLOG", localize "STR_BTC_HAM_CON_INFO_ASKHIDEOUT_DIARYLOG"];};
- removeAllWeapons player;
+ removeAllWeapons player;
- waitUntil {scriptDone btc_intro_done};
- {[_x] call btc_fnc_task_create} foreach ((player call BIS_fnc_tasksUnit) select {[_x] call BIS_fnc_taskState isEqualTo "ASSIGNED"});
-};
+ [{scriptDone btc_intro_done}, {
+ {[_x] call btc_fnc_task_create} foreach ((player call BIS_fnc_tasksUnit) select {[_x] call BIS_fnc_taskState isEqualTo "ASSIGNED"});
+ }] call CBA_fnc_waitUntilAndExecute;
+}] call CBA_fnc_waitUntilAndExecute;
if (btc_debug) then {
- private ["_eh"];
-
- onMapSingleClick "if (vehicle player == player) then {player setpos _pos} else {vehicle player setpos _pos}";
- player allowDamage false;
+ onMapSingleClick "if (vehicle player == player) then {player setpos _pos} else {vehicle player setpos _pos}";
+ player allowDamage false;
- waitUntil {!isNull (findDisplay 12)};
- _eh = ((findDisplay 12) displayCtrl 51) ctrlAddEventHandler ["Draw", btc_fnc_marker_debug];
+ waitUntil {!isNull (findDisplay 12)};
+ private _eh = ((findDisplay 12) displayCtrl 51) ctrlAddEventHandler ["Draw", btc_fnc_marker_debug];
- btc_marker_debug_cond = true;
- [_eh] spawn btc_fnc_systemchat_debug;
-};
\ No newline at end of file
+ btc_marker_debug_cond = true;
+ [_eh] spawn btc_fnc_systemchat_debug;
+};
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf
index fec752b40..c4edf7fab 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf
@@ -3,21 +3,21 @@ call compile preprocessFile "core\fnc\city\init.sqf";
{[_x] spawn btc_fnc_task_create} foreach [0,1];
if (btc_db_load && {profileNamespace getVariable [format ["btc_hm_%1_db",worldName],false]}) then {
- if (btc_version isEqualTo (profileNamespace getVariable [format ["btc_hm_%1_version",worldName],1.13])) then {
- call compile preprocessFile "core\fnc\db\load.sqf";
- } else {
- call compile preprocessFile "core\fnc\db\load_old.sqf";
- };
+ if (btc_version isEqualTo (profileNamespace getVariable [format ["btc_hm_%1_version",worldName],1.13])) then {
+ call compile preprocessFile "core\fnc\db\load.sqf";
+ } else {
+ call compile preprocessFile "core\fnc\db\load_old.sqf";
+ };
} else {
- for "_i" from 1 to btc_hideout_n do {[] call btc_fnc_mil_create_hideout;};
+ for "_i" from 1 to btc_hideout_n do {[] call btc_fnc_mil_create_hideout;};
- private _date = date;
- _date set [3, btc_p_time];
- setDate _date;
+ private _date = date;
+ _date set [3, btc_p_time];
+ setDate _date;
- [] execVM "core\fnc\cache\init.sqf";
+ call compile preprocessFile "core\fnc\cache\init.sqf";
- [] spawn {{waitUntil {!isNull _x}; _x call btc_fnc_db_add_veh;} foreach btc_vehicles;};
+ [] spawn {{waitUntil {!isNull _x}; _x call btc_fnc_db_add_veh;} foreach btc_vehicles;};
};
call btc_fnc_db_autosave;
@@ -32,8 +32,10 @@ addMissionEventHandler ["BuildingChanged",btc_fnc_eh_buildingchanged];
setTimeMultiplier btc_p_acctime;
+if (btc_p_arsenalType > 0) then {[btc_gear_object,true] call ace_arsenal_fnc_initBox;};
+
{[_x,30,false] spawn btc_fnc_eh_veh_add_respawn;} forEach btc_helo;
if (btc_p_side_mission_cycle) then {
- [true] spawn btc_fnc_side_create;
-};
\ No newline at end of file
+ [true] spawn btc_fnc_side_create;
+};
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/sounds/sounds.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/sounds/sounds.hpp
index 24388b3e1..1711f8169 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/core/sounds/sounds.hpp
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/sounds/sounds.hpp
@@ -1,7 +1,7 @@
class CfgSounds {
- class btc_sound_allahu_akbar {
- name = "btc_sound_allahu_akbar";
- sound[] = {"core\sounds\allahu_akbar.ogg", 15, 1};
- titles[] = {};
- };
+ class btc_sound_allahu_akbar {
+ name = "btc_sound_allahu_akbar";
+ sound[] = {"core\sounds\allahu_akbar.ogg", 15, 1};
+ titles[] = {};
+ };
};
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/description.ext b/=BTC=co@30_Hearts_and_Minds.Altis/description.ext
index 5b030e121..9ea54af0b 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/description.ext
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/description.ext
@@ -1,16 +1,14 @@
loadScreen = "core\img\btc.paa";
-author = Giallustio;
-onLoadName = Hearts and Minds;
-onLoadMission = www.blacktemplars.altervista.org;
+author = $STR_BTC_HAM_DESCR_AUTHOR;
+onLoadName = $STR_BTC_HAM_DESCR_NAME;
+onLoadMission = $STR_BTC_HAM_DESCR_MISSION;
enabledebugconsole = 1;
#include "core\def\dlg_def.hpp"
#include "core\fnc\fob\dlg.hpp"
-#include "core\fnc\int\progress_bar.hpp"
#include "core\fnc\log\dlg.hpp"
-//#include "core\fnc\rev\dlg.hpp"
class RscTitles {
class Default {
@@ -19,8 +17,7 @@ class RscTitles {
fadeout = 0;
duration = 0;
};
- //#include "core\fnc\rev\rsc.hpp"
- #include "core\fnc\log\rsc.hpp"
+ #include "core\fnc\log\rsc.hpp"
};
#include "core\sounds\sounds.hpp"
@@ -31,6 +28,10 @@ class RscTitles {
#include "core\fnc\task\tasktypes.hpp"
-#include "core\def\functions.hpp"
+class CfgFunctions {
+ #include "core\def\functions.hpp"
+ // add your own functions below
+};
#include "core\fnc\eh\extended_InitPost_EH.hpp"
+#include "core\fnc\eh\extended_PreInit_EH.hpp"
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/init.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/init.sqf
index 7fd04b2a5..b9000e333 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/init.sqf
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/init.sqf
@@ -1,6 +1,4 @@
enableSaving [false,false];
-//Server
-call compile preprocessFile "core\fnc\compile.sqf";
if (hasInterface) then {btc_intro_done = [] spawn btc_fnc_intro;};
@@ -8,15 +6,15 @@ call compile preprocessFile "core\def\mission.sqf";
call compile preprocessFile "define_mod.sqf";
if (isServer) then {
- call compile preprocessFile "core\init_server.sqf";
+ call compile preprocessFile "core\init_server.sqf";
};
call compile preprocessFile "core\init_common.sqf";
if (!isDedicated && hasInterface) then {
- call compile preprocessFile "core\init_player.sqf";
+ call compile preprocessFile "core\init_player.sqf";
};
if (!isDedicated && !hasInterface) then {
- call compile preprocessFile "core\init_headless.sqf";
+ call compile preprocessFile "core\init_headless.sqf";
};
\ No newline at end of file
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm
index 60ee41c20..392b73295 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm
@@ -8,7 +8,7 @@ class EditorData
toggles=513;
class ItemIDProvider
{
- nextID=156;
+ nextID=179;
};
class MarkerIDProvider
{
@@ -16,19 +16,16 @@ class EditorData
};
class Camera
{
- pos[]={8297.6123,93.258369,10061.557};
- dir[]={0.58210856,-0.81064433,0.064327784};
- up[]={0.80575699,0.58552009,0.089042641};
- aside[]={0.10984567,4.5113848e-007,-0.99401075};
+ pos[]={8264.4326,84.748459,10065.584};
+ dir[]={0.89768684,-0.43750682,0.054335855};
+ up[]={0.43681347,0.89917308,0.026440112};
+ aside[]={0.060424324,1.1197553e-006,-0.99826705};
};
};
binarizationWanted=0;
addons[]=
{
"A3_Ui_F",
- "rhsusf_vehicles",
- "RHS_US_A2Port_Armor",
- "RHS_US_A2_AirImport",
"A3_Structures_F_Ind_Cargo",
"ace_cargo",
"A3_Structures_F_Mil_Helipads",
@@ -41,14 +38,19 @@ addons[]=
"A3_Characters_F",
"ace_explosives",
"A3_Modules_F_Curator_Curator",
- "rhsusf_c_fmtv",
- "rhsusf_c_RG33L"
+ "A3_Air_F_Heli_Heli_Transport_03",
+ "A3_Soft_F_Beta_Truck_01",
+ "A3_Soft_F_Exp_LSV_01",
+ "A3_Soft_F_MRAP_01",
+ "A3_Armor_F_Beta_APC_Wheeled_01",
+ "A3_Air_F_Beta_Heli_Transport_01",
+ "A3_Air_F_Beta_Heli_Attack_01"
};
class AddonsMetaData
{
class List
{
- items=16;
+ items=17;
class Item0
{
className="A3_Ui_F";
@@ -57,103 +59,116 @@ class AddonsMetaData
url="https://www.arma3.com";
};
class Item1
- {
- className="rhsusf_vehicles";
- name="rhsusf_vehicles";
- };
- class Item2
- {
- className="RHS_US_A2Port_Armor";
- name="M2 Bradley IFV";
- url="http://www.rhsmods.org/";
- };
- class Item3
- {
- className="RHS_US_A2_AirImport";
- name="RHSUSF A2 Air Ports";
- url="http://www.rhsmods.org/";
- };
- class Item4
{
className="A3_Structures_F_Ind";
name="Arma 3 - Industrial Structures";
author="Bohemia Interactive";
url="https://www.arma3.com";
};
- class Item5
+ class Item2
{
className="ace_cargo";
name="ACE3 - Cargo";
author="ACE-Team";
url="http://ace3mod.com/";
};
- class Item6
+ class Item3
{
className="A3_Structures_F_Mil";
name="Arma 3 - Military Buildings and Structures";
author="Bohemia Interactive";
url="https://www.arma3.com";
};
- class Item7
+ class Item4
{
className="A3_Soft_F_Gamma";
name="Arma 3 - Unarmored Land Vehicles";
author="Bohemia Interactive";
url="https://www.arma3.com";
};
- class Item8
+ class Item5
{
className="A3_Characters_F";
name="Arma 3 Alpha - Characters and Clothing";
author="Bohemia Interactive";
url="https://www.arma3.com";
};
- class Item9
+ class Item6
{
className="ace_rearm";
name="ACE3 - Rearm";
author="ACE-Team";
url="http://ace3mod.com/";
};
- class Item10
+ class Item7
{
className="ace_refuel";
name="ACE3 - Refuel";
author="ACE-Team";
url="http://ace3mod.com/";
};
- class Item11
+ class Item8
{
className="ace_repair";
name="ACE3 - Repair";
author="ACE-Team";
url="http://ace3mod.com/";
};
- class Item12
+ class Item9
{
className="ace_explosives";
name="ACE3 - Explosives";
author="ACE-Team";
url="http://ace3mod.com/";
};
- class Item13
+ class Item10
{
className="A3_Modules_F_Curator";
name="Arma 3 Zeus Update - Scripted Modules";
author="Bohemia Interactive";
url="https://www.arma3.com";
};
+ class Item11
+ {
+ className="A3_Air_F_Heli";
+ name="Arma 3 Helicopters - Aircraft";
+ author="Bohemia Interactive";
+ url="https://www.arma3.com";
+ };
+ class Item12
+ {
+ className="A3_Soft_F_Beta";
+ name="Arma 3 Beta - Unarmored Land Vehicles";
+ author="Bohemia Interactive";
+ url="https://www.arma3.com";
+ };
+ class Item13
+ {
+ className="A3_Soft_F_Exp";
+ name="Arma 3 Apex - Unarmored Land Vehicles";
+ author="Bohemia Interactive";
+ url="https://www.arma3.com";
+ };
class Item14
{
- className="rhsusf_c_fmtv";
- name="FMTV Trucks";
- url="http://www.rhsmods.org/";
+ className="A3_Soft_F";
+ name="Arma 3 Alpha - Unarmored Land Vehicles";
+ author="Bohemia Interactive";
+ url="https://www.arma3.com";
};
class Item15
{
- className="rhsusf_c_RG33L";
- name="RG33L MRAP";
- url="http://www.rhsmods.org/";
+ className="A3_Armor_F_Beta";
+ name="Arma 3 Beta - Armored Land Vehicles";
+ author="Bohemia Interactive";
+ url="https://www.arma3.com";
+ };
+ class Item16
+ {
+ className="A3_Air_F_Beta";
+ name="Arma 3 Beta - Aircraft";
+ author="Bohemia Interactive";
+ url="https://www.arma3.com";
};
};
};
@@ -611,7 +626,7 @@ class Mission
dataType="Marker";
position[]={8323.1348,73.933266,10113.239};
name="btc_log_point";
- text="Logistic Point";
+ text=$STR_BTC_HAM_MSQM_MRK_LOGPOINT;
type="mil_flag";
colorName="ColorGreen";
a=0.5;
@@ -623,144 +638,43 @@ class Mission
dataType="Object";
class PositionInfo
{
- position[]={8303.2588,78.415161,10074.801};
- angles[]={0.0080110608,5.6580257,6.2392201};
+ position[]={8320.2842,75.246689,10105.996};
+ angles[]={0.054611351,5.6770496,6.2631841};
};
side="Empty";
flags=4;
class Attributes
{
skill=0.60000002;
- init="this setVariable [""btc_dont_delete"",true]";
- name="btc_veh_3";
- };
- id=3;
- type="rhsusf_m1025_d_m2";
- class CustomAttributes
- {
- class Attribute0
- {
- property="rhs_decalMask";
- expression="if(_value != 'NoChange')then{ [_this,'unitdecals_1',_value] call rhs_fnc_hmmwv_setDecal}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="NoChange";
- };
- };
- };
- class Attribute1
- {
- property="rhs_decalDoors";
- expression="if(_value != 'NoChange')then{ [_this,'unitdecals_2',_value] call rhs_fnc_hmmwv_setDecal}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="NoChange";
- };
- };
- };
- class Attribute2
- {
- property="ammoBox";
- expression="[_this,_value] call bis_fnc_initAmmoBox;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="[[[[""rhs_weap_m4_carryhandle"",""rhs_weap_M136_hedp"",""FirstAidKit""],[2,2,4]],[[""rhs_m136_hedp_mag"",""rhs_mag_30Rnd_556x45_M855A1_Stanag"",""rhsusf_100Rnd_556x45_soft_pouch"",""rhs_mag_M441_HE"",""rhs_mag_m714_White"",""rhs_mag_m662_red"",""rhs_mag_m67"",""rhs_mag_m18_green"",""rhs_mag_m18_red"",""rhs_mag_an_m8hc""],[2,20,8,16,4,2,4,2,2,4]],[[],[]],[[""rhsusf_falconii""],[2]]],false]";
- };
- };
- };
- nAttributes=3;
+ init="call{this allowDamage false; this enableSimulation false;}";
+ name="btc_create_object";
};
+ id=13;
+ type="Land_CargoBox_V1_F";
};
class Item4
{
dataType="Object";
class PositionInfo
{
- position[]={8297.6514,78.657707,10071.11};
- angles[]={6.2418733,5.6580257,6.2325706};
+ position[]={8323.1582,73.944031,10113.102};
+ angles[]={0.074525557,0.89397508,0.018657569};
};
side="Empty";
flags=4;
class Attributes
{
skill=0.60000002;
- init="this setVariable [""btc_dont_delete"",true]";
- name="btc_veh_2";
+ name="btc_create_object_point";
};
- id=4;
- type="rhsusf_m1025_d_m2";
- atlOffset=7.6293945e-006;
+ id=14;
+ type="Land_HelipadSquare_F";
class CustomAttributes
{
class Attribute0
{
- property="rhs_decalMask";
- expression="if(_value != 'NoChange')then{ [_this,'unitdecals_1',_value] call rhs_fnc_hmmwv_setDecal}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="NoChange";
- };
- };
- };
- class Attribute1
- {
- property="rhs_decalDoors";
- expression="if(_value != 'NoChange')then{ [_this,'unitdecals_2',_value] call rhs_fnc_hmmwv_setDecal}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="NoChange";
- };
- };
- };
- class Attribute2
- {
- property="ammoBox";
- expression="[_this,_value] call bis_fnc_initAmmoBox;";
+ property="ace_isRepairFacility";
+ expression="_this setVariable ['ace_isRepairFacility',_value, true];";
class Value
{
class data
@@ -769,14 +683,14 @@ class Mission
{
type[]=
{
- "STRING"
+ "SCALAR"
};
};
- value="[[[[""rhs_weap_m4_carryhandle"",""rhs_weap_M136_hedp"",""FirstAidKit""],[2,2,4]],[[""rhs_m136_hedp_mag"",""rhs_mag_30Rnd_556x45_M855A1_Stanag"",""rhsusf_100Rnd_556x45_soft_pouch"",""rhs_mag_M441_HE"",""rhs_mag_m714_White"",""rhs_mag_m662_red"",""rhs_mag_m67"",""rhs_mag_m18_green"",""rhs_mag_m18_red"",""rhs_mag_an_m8hc""],[2,20,8,16,4,2,4,2,2,4]],[[],[]],[[""rhsusf_falconii""],[2]]],false]";
+ value=1;
};
};
};
- nAttributes=3;
+ nAttributes=1;
};
};
class Item5
@@ -784,45 +698,44 @@ class Mission
dataType="Object";
class PositionInfo
{
- position[]={8295.166,77.579712,10052.532};
- angles[]={0,5.7184772,0};
+ position[]={8309.2861,76.695534,10068.324};
+ angles[]={0.0026744273,5.6770415,6.2392135};
};
side="Empty";
flags=4;
class Attributes
{
skill=0.60000002;
- init="this setVariable [""btc_dont_delete"",true];";
- name="btc_veh_1";
+ init="this allowDamage false;";
+ name="btc_gear_object";
};
- id=5;
- type="RHS_M2A3";
+ id=15;
+ type="Land_CargoBox_V1_F";
};
class Item6
{
dataType="Object";
class PositionInfo
{
- position[]={8332.2256,78.478668,10088.2};
- angles[]={0.049293593,5.7068849,6.2325621};
+ position[]={8213.54,76.510483,10025.129};
+ angles[]={6.2631893,0.89397335,6.2139621};
};
side="Empty";
flags=4;
class Attributes
{
skill=0.60000002;
- name="btc_helo_1";
};
- id=6;
- type="RHS_CH_47F_10";
+ id=17;
+ type="Land_HelipadSquare_F";
};
class Item7
{
dataType="Object";
class PositionInfo
{
- position[]={8317.3643,77.782211,10084.248};
- angles[]={0.013334315,5.6580257,6.2591867};
+ position[]={8358.7637,75.2911,10101.058};
+ angles[]={0.078505196,5.6318169,6.2445364};
};
side="Empty";
flags=4;
@@ -830,80 +743,19 @@ class Mission
{
skill=0.60000002;
init="this setVariable [""btc_dont_delete"",true]";
- name="btc_veh_4";
- };
- id=7;
- type="rhsusf_m1025_d_m2";
- atlOffset=7.6293945e-006;
- class CustomAttributes
- {
- class Attribute0
- {
- property="rhs_decalMask";
- expression="if(_value != 'NoChange')then{ [_this,'unitdecals_1',_value] call rhs_fnc_hmmwv_setDecal}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="NoChange";
- };
- };
- };
- class Attribute1
- {
- property="rhs_decalDoors";
- expression="if(_value != 'NoChange')then{ [_this,'unitdecals_2',_value] call rhs_fnc_hmmwv_setDecal}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="NoChange";
- };
- };
- };
- class Attribute2
- {
- property="ammoBox";
- expression="[_this,_value] call bis_fnc_initAmmoBox;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="[[[[""rhs_weap_m4_carryhandle"",""rhs_weap_M136_hedp"",""FirstAidKit""],[2,2,4]],[[""rhs_m136_hedp_mag"",""rhs_mag_30Rnd_556x45_M855A1_Stanag"",""rhsusf_100Rnd_556x45_soft_pouch"",""rhs_mag_M441_HE"",""rhs_mag_m714_White"",""rhs_mag_m662_red"",""rhs_mag_m67"",""rhs_mag_m18_green"",""rhs_mag_m18_red"",""rhs_mag_an_m8hc""],[2,20,8,16,4,2,4,2,2,4]],[[],[]],[[""rhsusf_falconii""],[2]]],false]";
- };
- };
- };
- nAttributes=3;
+ name="btc_veh_11";
};
+ id=18;
+ type="B_Truck_01_ammo_F";
+ atlOffset=0.00021362305;
};
class Item8
{
dataType="Object";
class PositionInfo
{
- position[]={8278.1641,79.440773,10076.579};
- angles[]={0.030647982,1.4514159,0.033318337};
+ position[]={8353.5449,75.482399,10097.687};
+ angles[]={0.025327841,5.6318169,6.247201};
};
side="Empty";
flags=4;
@@ -911,233 +763,16 @@ class Mission
{
skill=0.60000002;
init="this setVariable [""btc_dont_delete"",true]";
- name="btc_veh_7";
+ name="btc_veh_12";
};
- id=9;
- type="rhsusf_m1025_d_m2";
- atlOffset=-7.6293945e-006;
- class CustomAttributes
- {
- class Attribute0
- {
- property="rhs_decalMask";
- expression="if(_value != 'NoChange')then{ [_this,'unitdecals_1',_value] call rhs_fnc_hmmwv_setDecal}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="NoChange";
- };
- };
- };
- class Attribute1
- {
- property="rhs_decalDoors";
- expression="if(_value != 'NoChange')then{ [_this,'unitdecals_2',_value] call rhs_fnc_hmmwv_setDecal}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="NoChange";
- };
- };
- };
- class Attribute2
- {
- property="ammoBox";
- expression="[_this,_value] call bis_fnc_initAmmoBox;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="[[[[""rhs_weap_m4_carryhandle"",""rhs_weap_M136_hedp"",""FirstAidKit""],[2,2,4]],[[""rhs_m136_hedp_mag"",""rhs_mag_30Rnd_556x45_M855A1_Stanag"",""rhsusf_100Rnd_556x45_soft_pouch"",""rhs_mag_M441_HE"",""rhs_mag_m714_White"",""rhs_mag_m662_red"",""rhs_mag_m67"",""rhs_mag_m18_green"",""rhs_mag_m18_red"",""rhs_mag_an_m8hc""],[2,20,8,16,4,2,4,2,2,4]],[[],[]],[[""rhsusf_falconii""],[2]]],false]";
- };
- };
- };
- nAttributes=3;
- };
- };
- class Item9
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={8320.2842,75.246689,10105.996};
- angles[]={0.054611351,5.6770496,6.2631841};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="call{this allowDamage false; this enableSimulation false;}";
- name="btc_create_object";
- };
- id=13;
- type="Land_CargoBox_V1_F";
- };
- class Item10
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={8323.1582,73.944031,10113.102};
- angles[]={0.074525557,0.89397508,0.018657569};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- name="btc_create_object_point";
- };
- id=14;
- type="Land_HelipadSquare_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="ace_isRepairFacility";
- expression="_this setVariable ['ace_isRepairFacility',_value, true];";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1;
- };
- };
- };
- nAttributes=1;
- };
- };
- class Item11
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={8309.2861,76.695534,10068.324};
- angles[]={0.0026744273,5.6770415,6.2392135};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="this allowDamage false;";
- name="btc_gear_object";
- };
- id=15;
- type="Land_CargoBox_V1_F";
- };
- class Item12
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={8213.6924,78.541695,10023.983};
- angles[]={6.2631893,5.7956276,6.2139621};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="this setVariable [""btc_dont_delete"",true]";
- name="btc_veh_10";
- };
- id=16;
- type="RHS_AH64D";
- atlOffset=-0.159729;
- };
- class Item13
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={8213.54,76.510483,10025.129};
- angles[]={6.2631893,0.89397335,6.2139621};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- };
- id=17;
- type="Land_HelipadSquare_F";
- };
- class Item14
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={8358.7637,75.2911,10101.058};
- angles[]={0.078505196,5.6318169,6.2445364};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="this setVariable [""btc_dont_delete"",true]";
- name="btc_veh_11";
- };
- id=18;
- type="B_Truck_01_ammo_F";
- atlOffset=0.00021362305;
- };
- class Item15
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={8353.5449,75.482399,10097.687};
- angles[]={0.025327841,5.6318169,6.247201};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="this setVariable [""btc_dont_delete"",true]";
- name="btc_veh_12";
- };
- id=19;
- type="B_Truck_01_fuel_F";
- atlOffset=0.00020599365;
- };
- class Item16
- {
- dataType="Object";
- class PositionInfo
+ id=19;
+ type="B_Truck_01_fuel_F";
+ atlOffset=0.00020599365;
+ };
+ class Item9
+ {
+ dataType="Object";
+ class PositionInfo
{
position[]={8348.8496,76.13974,10094.677};
angles[]={6.247201,5.6318169,6.2418756};
@@ -1154,7 +789,7 @@ class Mission
type="B_Truck_01_Repair_F";
atlOffset=0.00020599365;
};
- class Item17
+ class Item10
{
dataType="Object";
class PositionInfo
@@ -1172,26 +807,7 @@ class Mission
type="Flag_NATO_F";
atlOffset=0.0030288696;
};
- class Item18
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={8241.4199,79.564301,10048.12};
- angles[]={6.2591896,5.7956276,0.017332481};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="this setVariable [""btc_dont_delete"",true]";
- name="btc_veh_14";
- };
- id=22;
- type="RHS_UH1Y_d";
- };
- class Item19
+ class Item11
{
dataType="Object";
class PositionInfo
@@ -1208,7 +824,7 @@ class Mission
id=23;
type="Land_HelipadSquare_F";
};
- class Item20
+ class Item12
{
dataType="Group";
side="West";
@@ -1229,7 +845,7 @@ class Mission
{
skill=0.60000002;
init="this setVariable [""side_mission"",true]";
- description="Officer";
+ description=$STR_BTC_HAM_MSQM_OFFICER;
isPlayer=1;
isPlayable=1;
};
@@ -1242,7 +858,7 @@ class Mission
};
id=24;
};
- class Item21
+ class Item13
{
dataType="Group";
side="West";
@@ -1263,7 +879,7 @@ class Mission
{
skill=0.60000002;
init="this setVariable [""interpreter"",true]";
- description="Interpreter";
+ description=$STR_BTC_HAM_MSQM_INTERPRETER;
isPlayable=1;
};
id=29;
@@ -1277,7 +893,7 @@ class Mission
id=28;
atlOffset=-3.8146973e-005;
};
- class Item22
+ class Item14
{
dataType="Group";
side="West";
@@ -1297,7 +913,7 @@ class Mission
class Attributes
{
skill=0.60000002;
- description="Advanced engineer";
+ description=$STR_ACE_Repair_AssignEngineerRole_role_advanced;
isPlayable=1;
};
id=31;
@@ -1370,7 +986,7 @@ class Mission
};
id=30;
};
- class Item23
+ class Item15
{
dataType="Logic";
class PositionInfo
@@ -1481,7 +1097,7 @@ class Mission
nAttributes=5;
};
};
- class Item24
+ class Item16
{
dataType="Group";
side="West";
@@ -1511,7 +1127,7 @@ class Mission
};
id=89;
};
- class Item25
+ class Item17
{
dataType="Group";
side="West";
@@ -1541,7 +1157,7 @@ class Mission
};
id=91;
};
- class Item26
+ class Item18
{
dataType="Group";
side="West";
@@ -1571,7 +1187,7 @@ class Mission
};
id=93;
};
- class Item27
+ class Item19
{
dataType="Group";
side="West";
@@ -1601,7 +1217,7 @@ class Mission
};
id=95;
};
- class Item28
+ class Item20
{
dataType="Group";
side="West";
@@ -1631,7 +1247,7 @@ class Mission
};
id=97;
};
- class Item29
+ class Item21
{
dataType="Group";
side="West";
@@ -1661,7 +1277,7 @@ class Mission
};
id=99;
};
- class Item30
+ class Item22
{
dataType="Group";
side="West";
@@ -1691,7 +1307,7 @@ class Mission
};
id=101;
};
- class Item31
+ class Item23
{
dataType="Group";
side="West";
@@ -1721,7 +1337,7 @@ class Mission
};
id=103;
};
- class Item32
+ class Item24
{
dataType="Group";
side="West";
@@ -1753,7 +1369,7 @@ class Mission
id=105;
atlOffset=0.028755188;
};
- class Item33
+ class Item25
{
dataType="Group";
side="West";
@@ -1785,7 +1401,7 @@ class Mission
id=107;
atlOffset=0.072166443;
};
- class Item34
+ class Item26
{
dataType="Group";
side="West";
@@ -1815,7 +1431,7 @@ class Mission
};
id=109;
};
- class Item35
+ class Item27
{
dataType="Group";
side="West";
@@ -1845,7 +1461,7 @@ class Mission
};
id=111;
};
- class Item36
+ class Item28
{
dataType="Group";
side="West";
@@ -1875,7 +1491,7 @@ class Mission
};
id=113;
};
- class Item37
+ class Item29
{
dataType="Group";
side="West";
@@ -1905,7 +1521,7 @@ class Mission
};
id=115;
};
- class Item38
+ class Item30
{
dataType="Group";
side="West";
@@ -1935,7 +1551,7 @@ class Mission
};
id=117;
};
- class Item39
+ class Item31
{
dataType="Group";
side="West";
@@ -1965,7 +1581,7 @@ class Mission
};
id=119;
};
- class Item40
+ class Item32
{
dataType="Group";
side="West";
@@ -1995,7 +1611,7 @@ class Mission
};
id=121;
};
- class Item41
+ class Item33
{
dataType="Group";
side="West";
@@ -2025,7 +1641,7 @@ class Mission
};
id=123;
};
- class Item42
+ class Item34
{
dataType="Group";
side="West";
@@ -2057,7 +1673,7 @@ class Mission
id=125;
atlOffset=0.0039749146;
};
- class Item43
+ class Item35
{
dataType="Group";
side="West";
@@ -2089,7 +1705,7 @@ class Mission
id=127;
atlOffset=0.0039749146;
};
- class Item44
+ class Item36
{
dataType="Group";
side="West";
@@ -2119,7 +1735,7 @@ class Mission
};
id=129;
};
- class Item45
+ class Item37
{
dataType="Group";
side="West";
@@ -2149,13 +1765,66 @@ class Mission
};
id=131;
};
- class Item46
+ class Item38
+ {
+ dataType="Logic";
+ class PositionInfo
+ {
+ position[]={8302.7266,75.940002,10058.99};
+ };
+ name="btc_hc_1";
+ isPlayable=1;
+ id=153;
+ type="HeadlessClient_F";
+ };
+ class Item39
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8332.2158,78.290398,10088.188};
+ angles[]={0.049288094,5.7068777,6.232553};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ name="btc_helo_1";
+ };
+ id=156;
+ type="B_Heli_Transport_03_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ammoBox";
+ expression="[_this,_value] call bis_fnc_initAmmoBox;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="[[[[""FirstAidKit"",""Medikit""],[10,1]],[[],[]],[[""ToolKit""],[1]],[[""B_Parachute""],[20]]],false]";
+ };
+ };
+ };
+ nAttributes=1;
+ };
+ };
+ class Item40
{
dataType="Object";
class PositionInfo
{
- position[]={8308.083,78.147247,10095.771};
- angles[]={0.08248426,0.94293159,6.224577};
+ position[]={8309.2617,77.484642,10096.77};
+ angles[]={0.06656827,0.94293159,6.2405434};
};
side="Empty";
flags=4;
@@ -2165,8 +1834,9 @@ class Mission
init="this setVariable [""btc_dont_delete"",true]";
name="btc_veh_9";
};
- id=145;
- type="rhsusf_M1078A1P2_B_M2_D_open_fmtv_usarmy";
+ id=158;
+ type="B_Truck_01_transport_F";
+ atlOffset=-0.0005645752;
class CustomAttributes
{
class Attribute0
@@ -2191,12 +1861,54 @@ class Mission
nAttributes=1;
};
};
- class Item47
+ class Item41
{
dataType="Object";
class PositionInfo
{
- position[]={8288.5078,79.64241,10081.821};
+ position[]={8299.2021,78.316971,10089.534};
+ angles[]={0.0013439035,0.94247776,6.232553};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ init="this setVariable [""btc_dont_delete"",true]";
+ name="btc_veh_15";
+ };
+ id=160;
+ type="B_Truck_01_covered_F";
+ atlOffset=-0.095001221;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ammoBox";
+ expression="[_this,_value] call bis_fnc_initAmmoBox;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="[[[[""FirstAidKit""],[10]],[[],[]],[[],[]],[[],[]]],false]";
+ };
+ };
+ };
+ nAttributes=1;
+ };
+ };
+ class Item42
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8288.4736,79.124588,10081.791};
angles[]={0.058590703,0.94293159,6.2179446};
};
side="Empty";
@@ -2207,8 +1919,8 @@ class Mission
init="this setVariable [""btc_dont_delete"",true]";
name="btc_veh_8";
};
- id=146;
- type="rhsusf_M1078A1P2_B_M2_D_open_fmtv_usarmy";
+ id=161;
+ type="B_Truck_01_transport_F";
class CustomAttributes
{
class Attribute0
@@ -2233,24 +1945,25 @@ class Mission
nAttributes=1;
};
};
- class Item48
+ class Item43
{
dataType="Object";
class PositionInfo
{
- position[]={8299.1973,78.215668,10089.534};
- angles[]={0.0013439035,0.94247776,6.232553};
+ position[]={8317.3564,77.744057,10084.226};
+ angles[]={0.013334315,5.6580257,6.2591867};
};
side="Empty";
flags=4;
class Attributes
{
+ skill=0.60000002;
init="this setVariable [""btc_dont_delete"",true]";
- name="btc_veh_15";
+ name="btc_veh_4";
};
- id=152;
- type="rhsusf_M1078A1P2_B_D_fmtv_usarmy";
- atlOffset=-0.095359802;
+ id=164;
+ type="B_LSV_01_armed_F";
+ atlOffset=7.6293945e-006;
class CustomAttributes
{
class Attribute0
@@ -2268,7 +1981,219 @@ class Mission
"STRING"
};
};
- value="[[[[""rhs_weap_m4_carryhandle"",""FirstAidKit""],[2,4]],[[""rhs_mag_30Rnd_556x45_M855A1_Stanag"",""rhs_mag_m67"",""rhs_mag_m18_green"",""rhs_mag_m18_red"",""rhs_mag_an_m8hc""],[10,2,2,2,4]],[[""ToolKit""],[1]],[[""rhsusf_falconii""],[1]]],false]";
+ value="[[[[""arifle_MX_F"",""FirstAidKit""],[2,10]],[[""30Rnd_65x39_caseless_mag"",""100Rnd_65x39_caseless_mag"",""HandGrenade"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""1Rnd_SmokeOrange_Grenade_shell"",""1Rnd_SmokeBlue_Grenade_shell"",""16Rnd_9x21_Mag"",""SmokeShell"",""SmokeShellGreen"",""SmokeShellOrange"",""SmokeShellBlue"",""NLAW_F""],[16,6,10,10,4,4,4,4,12,4,4,4,4,2]],[[],[]],[[],[]]],false]";
+ };
+ };
+ };
+ nAttributes=1;
+ };
+ };
+ class Item44
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8303.251,78.377045,10074.778};
+ angles[]={0.0080110608,5.6580257,6.2392201};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""btc_dont_delete"",true]";
+ name="btc_veh_3";
+ };
+ id=165;
+ type="B_LSV_01_armed_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ammoBox";
+ expression="[_this,_value] call bis_fnc_initAmmoBox;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="[[[[""arifle_MX_F"",""FirstAidKit""],[2,10]],[[""30Rnd_65x39_caseless_mag"",""100Rnd_65x39_caseless_mag"",""HandGrenade"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""1Rnd_SmokeOrange_Grenade_shell"",""1Rnd_SmokeBlue_Grenade_shell"",""16Rnd_9x21_Mag"",""SmokeShell"",""SmokeShellGreen"",""SmokeShellOrange"",""SmokeShellBlue"",""NLAW_F""],[16,6,10,10,4,4,4,4,12,4,4,4,4,2]],[[],[]],[[],[]]],false]";
+ };
+ };
+ };
+ nAttributes=1;
+ };
+ };
+ class Item45
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8297.6436,78.618568,10071.089};
+ angles[]={6.2418733,5.6580257,6.2325706};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""btc_dont_delete"",true]";
+ name="btc_veh_2";
+ };
+ id=166;
+ type="B_LSV_01_armed_F";
+ atlOffset=7.6293945e-006;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ammoBox";
+ expression="[_this,_value] call bis_fnc_initAmmoBox;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="[[[[""arifle_MX_F"",""FirstAidKit""],[2,10]],[[""30Rnd_65x39_caseless_mag"",""100Rnd_65x39_caseless_mag"",""HandGrenade"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""1Rnd_SmokeOrange_Grenade_shell"",""1Rnd_SmokeBlue_Grenade_shell"",""16Rnd_9x21_Mag"",""SmokeShell"",""SmokeShellGreen"",""SmokeShellOrange"",""SmokeShellBlue"",""NLAW_F""],[16,6,10,10,4,4,4,4,12,4,4,4,4,2]],[[],[]],[[],[]]],false]";
+ };
+ };
+ };
+ nAttributes=1;
+ };
+ };
+ class Item46
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8272.083,80.947021,10065.467};
+ angles[]={0.17032668,0.95726073,6.2392201};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""btc_dont_delete"",true]";
+ name="btc_veh_6";
+ };
+ id=168;
+ type="B_MRAP_01_hmg_F";
+ atlOffset=0.0022201538;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ammoBox";
+ expression="[_this,_value] call bis_fnc_initAmmoBox;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="[[[[""arifle_MX_F"",""FirstAidKit""],[2,10]],[[""30Rnd_65x39_caseless_mag"",""100Rnd_65x39_caseless_mag"",""HandGrenade"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""1Rnd_SmokeOrange_Grenade_shell"",""1Rnd_SmokeBlue_Grenade_shell"",""16Rnd_9x21_Mag"",""SmokeShell"",""SmokeShellGreen"",""SmokeShellOrange"",""SmokeShellBlue""],[16,6,10,10,4,4,4,4,12,4,4,4,4]],[[],[]],[[],[]]],false]";
+ };
+ };
+ };
+ nAttributes=1;
+ };
+ };
+ class Item47
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8277.1621,80.921341,10059.937};
+ angles[]={0.12205087,0.3543193,6.1297359};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""btc_dont_delete"",true]";
+ name="btc_veh_5";
+ };
+ id=169;
+ type="B_MRAP_01_hmg_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ammoBox";
+ expression="[_this,_value] call bis_fnc_initAmmoBox;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="[[[[""arifle_MX_F"",""FirstAidKit""],[2,10]],[[""30Rnd_65x39_caseless_mag"",""100Rnd_65x39_caseless_mag"",""HandGrenade"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""1Rnd_SmokeOrange_Grenade_shell"",""1Rnd_SmokeBlue_Grenade_shell"",""16Rnd_9x21_Mag"",""SmokeShell"",""SmokeShellGreen"",""SmokeShellOrange"",""SmokeShellBlue""],[16,6,10,10,4,4,4,4,12,4,4,4,4]],[[],[]],[[],[]]],false]";
+ };
+ };
+ };
+ nAttributes=1;
+ };
+ };
+ class Item48
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8295.166,78.402695,10052.533};
+ angles[]={-0,5.7184839,0};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""btc_dont_delete"",true];";
+ name="btc_veh_1";
+ };
+ id=170;
+ type="B_APC_Wheeled_01_cannon_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ammoBox";
+ expression="[_this,_value] call bis_fnc_initAmmoBox;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="[[[[""arifle_MX_F"",""FirstAidKit""],[2,10]],[[""30Rnd_65x39_caseless_mag"",""100Rnd_65x39_caseless_mag"",""HandGrenade"",""MiniGrenade"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""1Rnd_SmokeOrange_Grenade_shell"",""1Rnd_SmokeBlue_Grenade_shell"",""SmokeShell"",""SmokeShellGreen"",""SmokeShellOrange"",""SmokeShellBlue"",""Titan_AT"",""Titan_AP"",""Titan_AA""],[12,6,6,6,6,3,3,3,3,8,8,8,8,2,2,2]],[[],[]],[[],[]]],false]";
};
};
};
@@ -2277,23 +2202,73 @@ class Mission
};
class Item49
{
- dataType="Logic";
+ dataType="Object";
class PositionInfo
{
- position[]={8302.7266,75.940002,10058.99};
+ position[]={8241.4209,79.516441,10048.122};
+ angles[]={6.2591867,5.7956276,0.01733112};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""btc_dont_delete"",true]";
+ name="btc_veh_14";
+ };
+ id=174;
+ type="B_Heli_Transport_01_camo_F";
+ atlOffset=7.6293945e-006;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ammoBox";
+ expression="[_this,_value] call bis_fnc_initAmmoBox;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="[[[[""arifle_MXC_F"",""FirstAidKit"",""Medikit""],[2,8,1]],[[""SmokeShell"",""SmokeShellBlue"",""30Rnd_65x39_caseless_mag""],[2,2,4]],[[""ToolKit"",""ItemGPS""],[1,1]],[[""B_Parachute""],[8]]],false]";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="ace_fastroping_equipFRIES";
+ expression="if (_value) then {[_this] call ace_fastroping_fnc_equipFRIES}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ nAttributes=2;
};
- name="btc_hc_1";
- isPlayable=1;
- id=153;
- type="HeadlessClient_F";
};
class Item50
{
dataType="Object";
class PositionInfo
{
- position[]={8272.0283,79.696327,10065.254};
- angles[]={0.17033349,0.95726073,6.2392135};
+ position[]={8213.6719,78.245605,10023.996};
+ angles[]={6.2631841,5.7956276,6.2139654};
};
side="Empty";
flags=4;
@@ -2301,11 +2276,11 @@ class Mission
{
skill=0.60000002;
init="this setVariable [""btc_dont_delete"",true]";
- name="btc_veh_6";
+ name="btc_veh_10";
};
- id=154;
- type="rhsusf_M1237_M2_usarmy_d";
- atlOffset=-0.0018463135;
+ id=175;
+ type="B_Heli_Attack_01_dynamicLoadout_F";
+ atlOffset=-0.16000366;
class CustomAttributes
{
class Attribute0
@@ -2323,7 +2298,7 @@ class Mission
"STRING"
};
};
- value="[[[[""rhs_weap_m4_carryhandle"",""FirstAidKit"",""Medikit""],[2,8,1]],[[""rhs_mag_30Rnd_556x45_M855A1_Stanag"",""rhs_mag_M433_HEDP"",""rhsusf_100Rnd_556x45_soft_pouch"",""rhs_mag_M441_HE"",""rhs_mag_m714_White"",""rhs_mag_m662_red"",""rhs_mag_m67"",""rhs_mag_m18_green"",""rhs_mag_m18_red"",""rhs_mag_an_m8hc""],[30,20,11,10,4,2,4,2,2,4]],[[],[]],[[""rhsusf_falconii""],[4]]],false]";
+ value="[[[[""arifle_MXC_F"",""FirstAidKit""],[2,2]],[[""SmokeShell"",""SmokeShellBlue"",""30Rnd_65x39_caseless_mag""],[2,2,4]],[[""ToolKit"",""ItemGPS""],[1,1]],[[""B_Parachute""],[2]]],false]";
};
};
};
@@ -2335,8 +2310,8 @@ class Mission
dataType="Object";
class PositionInfo
{
- position[]={8276.9688,79.675079,10059.785};
- angles[]={0.12205668,0.35431969,6.1297355};
+ position[]={8278.1592,79.402664,10076.555};
+ angles[]={0.030647982,1.4514159,0.033318337};
};
side="Empty";
flags=4;
@@ -2344,10 +2319,11 @@ class Mission
{
skill=0.60000002;
init="this setVariable [""btc_dont_delete"",true]";
- name="btc_veh_5";
+ name="btc_veh_7";
};
- id=155;
- type="rhsusf_M1237_M2_usarmy_d";
+ id=178;
+ type="B_LSV_01_armed_F";
+ atlOffset=-7.6293945e-006;
class CustomAttributes
{
class Attribute0
@@ -2365,7 +2341,7 @@ class Mission
"STRING"
};
};
- value="[[[[""rhs_weap_m4_carryhandle"",""FirstAidKit"",""Medikit""],[2,8,1]],[[""rhs_mag_30Rnd_556x45_M855A1_Stanag"",""rhs_mag_M433_HEDP"",""rhsusf_100Rnd_556x45_soft_pouch"",""rhs_mag_M441_HE"",""rhs_mag_m714_White"",""rhs_mag_m662_red"",""rhs_mag_m67"",""rhs_mag_m18_green"",""rhs_mag_m18_red"",""rhs_mag_an_m8hc""],[30,20,11,10,4,2,4,2,2,4]],[[],[]],[[""rhsusf_falconii""],[4]]],false]";
+ value="[[[[""arifle_MX_F"",""FirstAidKit""],[2,10]],[[""30Rnd_65x39_caseless_mag"",""100Rnd_65x39_caseless_mag"",""HandGrenade"",""1Rnd_HE_Grenade_shell"",""1Rnd_Smoke_Grenade_shell"",""1Rnd_SmokeGreen_Grenade_shell"",""1Rnd_SmokeOrange_Grenade_shell"",""1Rnd_SmokeBlue_Grenade_shell"",""16Rnd_9x21_Mag"",""SmokeShell"",""SmokeShellGreen"",""SmokeShellOrange"",""SmokeShellBlue"",""NLAW_F""],[16,6,10,10,4,4,4,4,12,4,4,4,4,2]],[[],[]],[[],[]]],false]";
};
};
};
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission_RHSUS_Altis.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission_RHSUS_Altis.sqm
new file mode 100644
index 000000000..dca842ca4
--- /dev/null
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission_RHSUS_Altis.sqm
@@ -0,0 +1,2376 @@
+version=53;
+class EditorData
+{
+ moveGridStep=1;
+ angleGridStep=0.2617994;
+ scaleGridStep=1;
+ autoGroupingDist=10;
+ toggles=513;
+ class ItemIDProvider
+ {
+ nextID=156;
+ };
+ class MarkerIDProvider
+ {
+ nextID=3;
+ };
+ class Camera
+ {
+ pos[]={8297.6123,93.258369,10061.557};
+ dir[]={0.58210856,-0.81064433,0.064327784};
+ up[]={0.80575699,0.58552009,0.089042641};
+ aside[]={0.10984567,4.5113848e-007,-0.99401075};
+ };
+};
+binarizationWanted=0;
+addons[]=
+{
+ "A3_Ui_F",
+ "rhsusf_vehicles",
+ "RHS_US_A2Port_Armor",
+ "RHS_US_A2_AirImport",
+ "A3_Structures_F_Ind_Cargo",
+ "ace_cargo",
+ "A3_Structures_F_Mil_Helipads",
+ "A3_Soft_F_Gamma_Truck_01",
+ "ace_realisticnames",
+ "ace_rearm",
+ "ace_refuel",
+ "ace_repair",
+ "A3_Structures_F_Mil_Flags",
+ "A3_Characters_F",
+ "ace_explosives",
+ "A3_Modules_F_Curator_Curator",
+ "rhsusf_c_fmtv",
+ "rhsusf_c_RG33L"
+};
+class AddonsMetaData
+{
+ class List
+ {
+ items=16;
+ class Item0
+ {
+ className="A3_Ui_F";
+ name="Arma 3 - User Interface";
+ author="Bohemia Interactive";
+ url="https://www.arma3.com";
+ };
+ class Item1
+ {
+ className="rhsusf_vehicles";
+ name="rhsusf_vehicles";
+ };
+ class Item2
+ {
+ className="RHS_US_A2Port_Armor";
+ name="M2 Bradley IFV";
+ url="http://www.rhsmods.org/";
+ };
+ class Item3
+ {
+ className="RHS_US_A2_AirImport";
+ name="RHSUSF A2 Air Ports";
+ url="http://www.rhsmods.org/";
+ };
+ class Item4
+ {
+ className="A3_Structures_F_Ind";
+ name="Arma 3 - Industrial Structures";
+ author="Bohemia Interactive";
+ url="https://www.arma3.com";
+ };
+ class Item5
+ {
+ className="ace_cargo";
+ name="ACE3 - Cargo";
+ author="ACE-Team";
+ url="http://ace3mod.com/";
+ };
+ class Item6
+ {
+ className="A3_Structures_F_Mil";
+ name="Arma 3 - Military Buildings and Structures";
+ author="Bohemia Interactive";
+ url="https://www.arma3.com";
+ };
+ class Item7
+ {
+ className="A3_Soft_F_Gamma";
+ name="Arma 3 - Unarmored Land Vehicles";
+ author="Bohemia Interactive";
+ url="https://www.arma3.com";
+ };
+ class Item8
+ {
+ className="A3_Characters_F";
+ name="Arma 3 Alpha - Characters and Clothing";
+ author="Bohemia Interactive";
+ url="https://www.arma3.com";
+ };
+ class Item9
+ {
+ className="ace_rearm";
+ name="ACE3 - Rearm";
+ author="ACE-Team";
+ url="http://ace3mod.com/";
+ };
+ class Item10
+ {
+ className="ace_refuel";
+ name="ACE3 - Refuel";
+ author="ACE-Team";
+ url="http://ace3mod.com/";
+ };
+ class Item11
+ {
+ className="ace_repair";
+ name="ACE3 - Repair";
+ author="ACE-Team";
+ url="http://ace3mod.com/";
+ };
+ class Item12
+ {
+ className="ace_explosives";
+ name="ACE3 - Explosives";
+ author="ACE-Team";
+ url="http://ace3mod.com/";
+ };
+ class Item13
+ {
+ className="A3_Modules_F_Curator";
+ name="Arma 3 Zeus Update - Scripted Modules";
+ author="Bohemia Interactive";
+ url="https://www.arma3.com";
+ };
+ class Item14
+ {
+ className="rhsusf_c_fmtv";
+ name="FMTV Trucks";
+ url="http://www.rhsmods.org/";
+ };
+ class Item15
+ {
+ className="rhsusf_c_RG33L";
+ name="RG33L MRAP";
+ url="http://www.rhsmods.org/";
+ };
+ };
+};
+randomSeed=2442963;
+class ScenarioData
+{
+ respawnDialog=0;
+ disabledAI=1;
+ respawn=3;
+ respawnDelay=5;
+ class Header
+ {
+ gameType="Coop";
+ minPlayers=1;
+ maxPlayers=30;
+ };
+};
+class CustomAttributes
+{
+ class Category0
+ {
+ name="Multiplayer";
+ class Attribute0
+ {
+ property="RespawnButton";
+ expression="true";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="RespawnTemplates";
+ expression="true";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ };
+ };
+ };
+ nAttributes=2;
+ };
+ class Category1
+ {
+ name="Scenario";
+ class Attribute0
+ {
+ property="cba_settings_hash";
+ expression="false";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=4;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="#CBA_HASH#";
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=4;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_respawn_savepredeathgear";
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_medical_enablefor";
+ };
+ };
+ class Item2
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_cargo_enable";
+ };
+ };
+ class Item3
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_rearm_level";
+ };
+ };
+ };
+ };
+ };
+ class Item2
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=4;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=1;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item2
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item3
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ };
+ };
+ };
+ class Item3
+ {
+ class data
+ {
+ nil=1;
+ class type
+ {
+ type[]=
+ {
+ "ANY"
+ };
+ };
+ };
+ };
+ };
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="EnableDebugConsole";
+ expression="true";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ nAttributes=2;
+ };
+};
+class Mission
+{
+ class Intel
+ {
+ briefingName="=BTC= co 30 HEARTS AND MINDS";
+ overviewText="by Giallustio";
+ resistanceWest=0;
+ resistanceEast=1;
+ startWeather=0.29999998;
+ startWind=0.099999994;
+ startWaves=0.099999994;
+ forecastWeather=0.29999998;
+ forecastWind=0.099999994;
+ forecastWaves=0.099999994;
+ forecastLightnings=0.099999994;
+ rainForced=1;
+ lightningsForced=1;
+ wavesForced=1;
+ windForced=1;
+ year=2035;
+ month=6;
+ day=24;
+ hour=12;
+ minute=0;
+ startFogDecay=0.013;
+ forecastFogDecay=0.013;
+ };
+ class Entities
+ {
+ items=52;
+ class Item0
+ {
+ dataType="Marker";
+ position[]={8300.7275,76.093613,10061.531};
+ name="respawn_west";
+ type="Empty";
+ id=0;
+ };
+ class Item1
+ {
+ dataType="Marker";
+ position[]={8313.793,75.752388,10073.04};
+ name="btc_base";
+ type="flag_NATO";
+ id=1;
+ };
+ class Item2
+ {
+ dataType="Marker";
+ position[]={8323.1348,73.933266,10113.239};
+ name="btc_log_point";
+ text=$STR_BTC_HAM_MSQM_MRK_LOGPOINT;
+ type="mil_flag";
+ colorName="ColorGreen";
+ a=0.5;
+ b=0.5;
+ id=2;
+ };
+ class Item3
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8303.2588,78.415161,10074.801};
+ angles[]={0.0080110608,5.6580257,6.2392201};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""btc_dont_delete"",true]";
+ name="btc_veh_3";
+ };
+ id=3;
+ type="rhsusf_m1025_d_m2";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="rhs_decalMask";
+ expression="if(_value != 'NoChange')then{ [_this,'unitdecals_1',_value] call rhs_fnc_hmmwv_setDecal}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="NoChange";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="rhs_decalDoors";
+ expression="if(_value != 'NoChange')then{ [_this,'unitdecals_2',_value] call rhs_fnc_hmmwv_setDecal}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="NoChange";
+ };
+ };
+ };
+ class Attribute2
+ {
+ property="ammoBox";
+ expression="[_this,_value] call bis_fnc_initAmmoBox;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="[[[[""rhs_weap_m4_carryhandle"",""rhs_weap_M136_hedp"",""FirstAidKit""],[2,2,4]],[[""rhs_m136_hedp_mag"",""rhs_mag_30Rnd_556x45_M855A1_Stanag"",""rhsusf_100Rnd_556x45_soft_pouch"",""rhs_mag_M441_HE"",""rhs_mag_m714_White"",""rhs_mag_m662_red"",""rhs_mag_m67"",""rhs_mag_m18_green"",""rhs_mag_m18_red"",""rhs_mag_an_m8hc""],[2,20,8,16,4,2,4,2,2,4]],[[],[]],[[""rhsusf_falconii""],[2]]],false]";
+ };
+ };
+ };
+ nAttributes=3;
+ };
+ };
+ class Item4
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8297.6514,78.657707,10071.11};
+ angles[]={6.2418733,5.6580257,6.2325706};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""btc_dont_delete"",true]";
+ name="btc_veh_2";
+ };
+ id=4;
+ type="rhsusf_m1025_d_m2";
+ atlOffset=7.6293945e-006;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="rhs_decalMask";
+ expression="if(_value != 'NoChange')then{ [_this,'unitdecals_1',_value] call rhs_fnc_hmmwv_setDecal}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="NoChange";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="rhs_decalDoors";
+ expression="if(_value != 'NoChange')then{ [_this,'unitdecals_2',_value] call rhs_fnc_hmmwv_setDecal}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="NoChange";
+ };
+ };
+ };
+ class Attribute2
+ {
+ property="ammoBox";
+ expression="[_this,_value] call bis_fnc_initAmmoBox;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="[[[[""rhs_weap_m4_carryhandle"",""rhs_weap_M136_hedp"",""FirstAidKit""],[2,2,4]],[[""rhs_m136_hedp_mag"",""rhs_mag_30Rnd_556x45_M855A1_Stanag"",""rhsusf_100Rnd_556x45_soft_pouch"",""rhs_mag_M441_HE"",""rhs_mag_m714_White"",""rhs_mag_m662_red"",""rhs_mag_m67"",""rhs_mag_m18_green"",""rhs_mag_m18_red"",""rhs_mag_an_m8hc""],[2,20,8,16,4,2,4,2,2,4]],[[],[]],[[""rhsusf_falconii""],[2]]],false]";
+ };
+ };
+ };
+ nAttributes=3;
+ };
+ };
+ class Item5
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8295.166,77.579712,10052.532};
+ angles[]={0,5.7184772,0};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""btc_dont_delete"",true];";
+ name="btc_veh_1";
+ };
+ id=5;
+ type="RHS_M2A3";
+ };
+ class Item6
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8332.2256,78.478668,10088.2};
+ angles[]={0.049293593,5.7068849,6.2325621};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ name="btc_helo_1";
+ };
+ id=6;
+ type="RHS_CH_47F_10";
+ };
+ class Item7
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8317.3643,77.782211,10084.248};
+ angles[]={0.013334315,5.6580257,6.2591867};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""btc_dont_delete"",true]";
+ name="btc_veh_4";
+ };
+ id=7;
+ type="rhsusf_m1025_d_m2";
+ atlOffset=7.6293945e-006;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="rhs_decalMask";
+ expression="if(_value != 'NoChange')then{ [_this,'unitdecals_1',_value] call rhs_fnc_hmmwv_setDecal}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="NoChange";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="rhs_decalDoors";
+ expression="if(_value != 'NoChange')then{ [_this,'unitdecals_2',_value] call rhs_fnc_hmmwv_setDecal}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="NoChange";
+ };
+ };
+ };
+ class Attribute2
+ {
+ property="ammoBox";
+ expression="[_this,_value] call bis_fnc_initAmmoBox;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="[[[[""rhs_weap_m4_carryhandle"",""rhs_weap_M136_hedp"",""FirstAidKit""],[2,2,4]],[[""rhs_m136_hedp_mag"",""rhs_mag_30Rnd_556x45_M855A1_Stanag"",""rhsusf_100Rnd_556x45_soft_pouch"",""rhs_mag_M441_HE"",""rhs_mag_m714_White"",""rhs_mag_m662_red"",""rhs_mag_m67"",""rhs_mag_m18_green"",""rhs_mag_m18_red"",""rhs_mag_an_m8hc""],[2,20,8,16,4,2,4,2,2,4]],[[],[]],[[""rhsusf_falconii""],[2]]],false]";
+ };
+ };
+ };
+ nAttributes=3;
+ };
+ };
+ class Item8
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8278.1641,79.440773,10076.579};
+ angles[]={0.030647982,1.4514159,0.033318337};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""btc_dont_delete"",true]";
+ name="btc_veh_7";
+ };
+ id=9;
+ type="rhsusf_m1025_d_m2";
+ atlOffset=-7.6293945e-006;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="rhs_decalMask";
+ expression="if(_value != 'NoChange')then{ [_this,'unitdecals_1',_value] call rhs_fnc_hmmwv_setDecal}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="NoChange";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="rhs_decalDoors";
+ expression="if(_value != 'NoChange')then{ [_this,'unitdecals_2',_value] call rhs_fnc_hmmwv_setDecal}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="NoChange";
+ };
+ };
+ };
+ class Attribute2
+ {
+ property="ammoBox";
+ expression="[_this,_value] call bis_fnc_initAmmoBox;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="[[[[""rhs_weap_m4_carryhandle"",""rhs_weap_M136_hedp"",""FirstAidKit""],[2,2,4]],[[""rhs_m136_hedp_mag"",""rhs_mag_30Rnd_556x45_M855A1_Stanag"",""rhsusf_100Rnd_556x45_soft_pouch"",""rhs_mag_M441_HE"",""rhs_mag_m714_White"",""rhs_mag_m662_red"",""rhs_mag_m67"",""rhs_mag_m18_green"",""rhs_mag_m18_red"",""rhs_mag_an_m8hc""],[2,20,8,16,4,2,4,2,2,4]],[[],[]],[[""rhsusf_falconii""],[2]]],false]";
+ };
+ };
+ };
+ nAttributes=3;
+ };
+ };
+ class Item9
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8320.2842,75.246689,10105.996};
+ angles[]={0.054611351,5.6770496,6.2631841};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="call{this allowDamage false; this enableSimulation false;}";
+ name="btc_create_object";
+ };
+ id=13;
+ type="Land_CargoBox_V1_F";
+ };
+ class Item10
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8323.1582,73.944031,10113.102};
+ angles[]={0.074525557,0.89397508,0.018657569};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ name="btc_create_object_point";
+ };
+ id=14;
+ type="Land_HelipadSquare_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ace_isRepairFacility";
+ expression="_this setVariable ['ace_isRepairFacility',_value, true];";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ nAttributes=1;
+ };
+ };
+ class Item11
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8309.2861,76.695534,10068.324};
+ angles[]={0.0026744273,5.6770415,6.2392135};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this allowDamage false;";
+ name="btc_gear_object";
+ };
+ id=15;
+ type="Land_CargoBox_V1_F";
+ };
+ class Item12
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8213.6924,78.541695,10023.983};
+ angles[]={6.2631893,5.7956276,6.2139621};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""btc_dont_delete"",true]";
+ name="btc_veh_10";
+ };
+ id=16;
+ type="RHS_AH64D";
+ atlOffset=-0.159729;
+ };
+ class Item13
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8213.54,76.510483,10025.129};
+ angles[]={6.2631893,0.89397335,6.2139621};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ };
+ id=17;
+ type="Land_HelipadSquare_F";
+ };
+ class Item14
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8358.7637,75.2911,10101.058};
+ angles[]={0.078505196,5.6318169,6.2445364};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""btc_dont_delete"",true]";
+ name="btc_veh_11";
+ };
+ id=18;
+ type="B_Truck_01_ammo_F";
+ atlOffset=0.00021362305;
+ };
+ class Item15
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8353.5449,75.482399,10097.687};
+ angles[]={0.025327841,5.6318169,6.247201};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""btc_dont_delete"",true]";
+ name="btc_veh_12";
+ };
+ id=19;
+ type="B_Truck_01_fuel_F";
+ atlOffset=0.00020599365;
+ };
+ class Item16
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8348.8496,76.13974,10094.677};
+ angles[]={6.247201,5.6318169,6.2418756};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""btc_dont_delete"",true]";
+ name="btc_veh_13";
+ };
+ id=20;
+ type="B_Truck_01_Repair_F";
+ atlOffset=0.00020599365;
+ };
+ class Item17
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8317.1514,79.59433,10075.261};
+ angles[]={6.2791886,0,6.2445378};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ };
+ id=21;
+ type="Flag_NATO_F";
+ atlOffset=0.0030288696;
+ };
+ class Item18
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8241.4199,79.564301,10048.12};
+ angles[]={6.2591896,5.7956276,0.017332481};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""btc_dont_delete"",true]";
+ name="btc_veh_14";
+ };
+ id=22;
+ type="RHS_UH1Y_d";
+ };
+ class Item19
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8240.2227,77.387703,10049.465};
+ angles[]={6.2591896,0.89397335,0.017332481};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ };
+ id=23;
+ type="Land_HelipadSquare_F";
+ };
+ class Item20
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8311.1689,75.934975,10067.474};
+ angles[]={0.0026520467,2.552031,0};
+ };
+ side="West";
+ flags=6;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""side_mission"",true]";
+ description=$STR_BTC_HAM_MSQM_OFFICER;
+ isPlayer=1;
+ isPlayable=1;
+ };
+ id=25;
+ type="B_officer_F";
+ };
+ };
+ class Attributes
+ {
+ };
+ id=24;
+ };
+ class Item21
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8305.6074,76.029839,10067.188};
+ angles[]={6.2418771,2.5247488,0};
+ };
+ side="West";
+ flags=6;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""interpreter"",true]";
+ description=$STR_BTC_HAM_MSQM_INTERPRETER;
+ isPlayable=1;
+ };
+ id=29;
+ type="B_Soldier_F";
+ atlOffset=-3.8146973e-005;
+ };
+ };
+ class Attributes
+ {
+ };
+ id=28;
+ atlOffset=-3.8146973e-005;
+ };
+ class Item22
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8306.8721,76.060417,10067.928};
+ angles[]={6.2418733,2.3351631,0};
+ };
+ side="West";
+ flags=6;
+ class Attributes
+ {
+ skill=0.60000002;
+ description=$STR_ACE_Repair_AssignEngineerRole_role_advanced;
+ isPlayable=1;
+ };
+ id=31;
+ type="B_engineer_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ace_isEngineer";
+ expression="if (_value != -1) then {_this setVariable ['ace_isEngineer',_value, true];}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=2;
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male02ENG";
+ };
+ };
+ };
+ class Attribute2
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.99000001;
+ };
+ };
+ };
+ nAttributes=3;
+ };
+ };
+ };
+ class Attributes
+ {
+ };
+ id=30;
+ };
+ class Item23
+ {
+ dataType="Logic";
+ class PositionInfo
+ {
+ position[]={8255.6289,55.908749,9942.9063};
+ };
+ name="btc_curator";
+ init="this addEventHandler ['CuratorObjectPlaced',{_this call btc_fnc_eh_CuratorObjectPlaced}];";
+ id=71;
+ type="ModuleCurator_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ModuleCurator_F_Owner";
+ expression="_this setVariable ['Owner',_value,true];";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="#adminLogged";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="ModuleCurator_F_Forced";
+ expression="_this setVariable ['Forced',_value,true];";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ class Attribute2
+ {
+ property="ModuleCurator_F_Name";
+ expression="_this setVariable ['Name',_value,true];";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="";
+ };
+ };
+ };
+ class Attribute3
+ {
+ property="ModuleInfo";
+ expression="false";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ class Attribute4
+ {
+ property="ModuleCurator_F_Addons";
+ expression="_this setVariable ['Addons',_value,true];";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=3;
+ };
+ };
+ };
+ nAttributes=5;
+ };
+ };
+ class Item24
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8304.6758,75.941444,10055.586};
+ angles[]={0,1.0172668,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=90;
+ type="B_medic_F";
+ };
+ };
+ class Attributes
+ {
+ };
+ id=89;
+ };
+ class Item25
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8303.626,75.941444,10057.26};
+ angles[]={0,1.0172668,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=92;
+ type="B_medic_F";
+ };
+ };
+ class Attributes
+ {
+ };
+ id=91;
+ };
+ class Item26
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8310.3896,75.941444,10060.23};
+ angles[]={0,5.701921,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=94;
+ type="B_Soldier_F";
+ };
+ };
+ class Attributes
+ {
+ };
+ id=93;
+ };
+ class Item27
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8311.8945,75.941444,10061.161};
+ angles[]={0,5.701921,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=96;
+ type="B_Soldier_F";
+ };
+ };
+ class Attributes
+ {
+ };
+ id=95;
+ };
+ class Item28
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8313.1982,75.941444,10061.99};
+ angles[]={0,5.701921,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=98;
+ type="B_Soldier_F";
+ };
+ };
+ class Attributes
+ {
+ };
+ id=97;
+ };
+ class Item29
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8314.7031,75.941444,10062.921};
+ angles[]={0,5.701921,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=100;
+ type="B_Soldier_F";
+ };
+ };
+ class Attributes
+ {
+ };
+ id=99;
+ };
+ class Item30
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8316.1523,75.941444,10063.82};
+ angles[]={0,5.701921,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=102;
+ type="B_Soldier_F";
+ };
+ };
+ class Attributes
+ {
+ };
+ id=101;
+ };
+ class Item31
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8317.6572,75.941444,10064.751};
+ angles[]={0,5.701921,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=104;
+ type="B_Soldier_F";
+ };
+ };
+ class Attributes
+ {
+ };
+ id=103;
+ };
+ class Item32
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8318.9609,75.945419,10065.58};
+ angles[]={0,5.701921,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=106;
+ type="B_Soldier_F";
+ atlOffset=0.028755188;
+ };
+ };
+ class Attributes
+ {
+ };
+ id=105;
+ atlOffset=0.028755188;
+ };
+ class Item33
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8320.4658,75.945419,10066.511};
+ angles[]={0,5.701921,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=108;
+ type="B_Soldier_F";
+ atlOffset=0.072166443;
+ };
+ };
+ class Attributes
+ {
+ };
+ id=107;
+ atlOffset=0.072166443;
+ };
+ class Item34
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8321.874,75.83403,10067.351};
+ angles[]={0,5.701921,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=110;
+ type="B_Soldier_F";
+ };
+ };
+ class Attributes
+ {
+ };
+ id=109;
+ };
+ class Item35
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8323.3789,75.865822,10068.281};
+ angles[]={0,5.701921,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=112;
+ type="B_Soldier_F";
+ };
+ };
+ class Attributes
+ {
+ };
+ id=111;
+ };
+ class Item36
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8311.5381,75.941444,10058.645};
+ angles[]={0,5.701921,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=114;
+ type="B_Soldier_F";
+ };
+ };
+ class Attributes
+ {
+ };
+ id=113;
+ };
+ class Item37
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8313.043,75.941444,10059.575};
+ angles[]={0,5.701921,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=116;
+ type="B_Soldier_F";
+ };
+ };
+ class Attributes
+ {
+ };
+ id=115;
+ };
+ class Item38
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8314.3467,75.941444,10060.404};
+ angles[]={0,5.701921,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=118;
+ type="B_Soldier_F";
+ };
+ };
+ class Attributes
+ {
+ };
+ id=117;
+ };
+ class Item39
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8315.8516,75.941444,10061.335};
+ angles[]={0,5.701921,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=120;
+ type="B_Soldier_F";
+ };
+ };
+ class Attributes
+ {
+ };
+ id=119;
+ };
+ class Item40
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8317.3008,75.941444,10062.234};
+ angles[]={0,5.701921,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=122;
+ type="B_Soldier_F";
+ };
+ };
+ class Attributes
+ {
+ };
+ id=121;
+ };
+ class Item41
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8318.8057,75.941444,10063.165};
+ angles[]={0,5.701921,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=124;
+ type="B_Soldier_F";
+ };
+ };
+ class Attributes
+ {
+ };
+ id=123;
+ };
+ class Item42
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8320.1094,75.945419,10063.994};
+ angles[]={0,5.701921,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=126;
+ type="B_Soldier_F";
+ atlOffset=0.0039749146;
+ };
+ };
+ class Attributes
+ {
+ };
+ id=125;
+ atlOffset=0.0039749146;
+ };
+ class Item43
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8321.6143,75.945419,10064.925};
+ angles[]={0,5.701921,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=128;
+ type="B_Soldier_F";
+ atlOffset=0.0039749146;
+ };
+ };
+ class Attributes
+ {
+ };
+ id=127;
+ atlOffset=0.0039749146;
+ };
+ class Item44
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8323.0225,75.908073,10065.765};
+ angles[]={0,5.701921,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=130;
+ type="B_Soldier_F";
+ };
+ };
+ class Attributes
+ {
+ };
+ id=129;
+ };
+ class Item45
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8324.5273,75.919395,10066.695};
+ angles[]={0,5.701921,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=132;
+ type="B_Soldier_F";
+ };
+ };
+ class Attributes
+ {
+ };
+ id=131;
+ };
+ class Item46
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8308.083,78.147247,10095.771};
+ angles[]={0.08248426,0.94293159,6.224577};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""btc_dont_delete"",true]";
+ name="btc_veh_9";
+ };
+ id=145;
+ type="rhsusf_M1078A1P2_B_M2_D_open_fmtv_usarmy";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ammoBox";
+ expression="[_this,_value] call bis_fnc_initAmmoBox;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="[[[[""FirstAidKit""],[10]],[[],[]],[[],[]],[[],[]]],false]";
+ };
+ };
+ };
+ nAttributes=1;
+ };
+ };
+ class Item47
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8288.5078,79.64241,10081.821};
+ angles[]={0.058590703,0.94293159,6.2179446};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""btc_dont_delete"",true]";
+ name="btc_veh_8";
+ };
+ id=146;
+ type="rhsusf_M1078A1P2_B_M2_D_open_fmtv_usarmy";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ammoBox";
+ expression="[_this,_value] call bis_fnc_initAmmoBox;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="[[[[""FirstAidKit""],[10]],[[],[]],[[],[]],[[],[]]],false]";
+ };
+ };
+ };
+ nAttributes=1;
+ };
+ };
+ class Item48
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8299.1973,78.215668,10089.534};
+ angles[]={0.0013439035,0.94247776,6.232553};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ init="this setVariable [""btc_dont_delete"",true]";
+ name="btc_veh_15";
+ };
+ id=152;
+ type="rhsusf_M1078A1P2_B_D_fmtv_usarmy";
+ atlOffset=-0.095359802;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ammoBox";
+ expression="[_this,_value] call bis_fnc_initAmmoBox;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="[[[[""rhs_weap_m4_carryhandle"",""FirstAidKit""],[2,4]],[[""rhs_mag_30Rnd_556x45_M855A1_Stanag"",""rhs_mag_m67"",""rhs_mag_m18_green"",""rhs_mag_m18_red"",""rhs_mag_an_m8hc""],[10,2,2,2,4]],[[""ToolKit""],[1]],[[""rhsusf_falconii""],[1]]],false]";
+ };
+ };
+ };
+ nAttributes=1;
+ };
+ };
+ class Item49
+ {
+ dataType="Logic";
+ class PositionInfo
+ {
+ position[]={8302.7266,75.940002,10058.99};
+ };
+ name="btc_hc_1";
+ isPlayable=1;
+ id=153;
+ type="HeadlessClient_F";
+ };
+ class Item50
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8272.0283,79.696327,10065.254};
+ angles[]={0.17033349,0.95726073,6.2392135};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""btc_dont_delete"",true]";
+ name="btc_veh_6";
+ };
+ id=154;
+ type="rhsusf_M1237_M2_usarmy_d";
+ atlOffset=-0.0018463135;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ammoBox";
+ expression="[_this,_value] call bis_fnc_initAmmoBox;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="[[[[""rhs_weap_m4_carryhandle"",""FirstAidKit"",""Medikit""],[2,8,1]],[[""rhs_mag_30Rnd_556x45_M855A1_Stanag"",""rhs_mag_M433_HEDP"",""rhsusf_100Rnd_556x45_soft_pouch"",""rhs_mag_M441_HE"",""rhs_mag_m714_White"",""rhs_mag_m662_red"",""rhs_mag_m67"",""rhs_mag_m18_green"",""rhs_mag_m18_red"",""rhs_mag_an_m8hc""],[30,20,11,10,4,2,4,2,2,4]],[[],[]],[[""rhsusf_falconii""],[4]]],false]";
+ };
+ };
+ };
+ nAttributes=1;
+ };
+ };
+ class Item51
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8276.9688,79.675079,10059.785};
+ angles[]={0.12205668,0.35431969,6.1297355};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""btc_dont_delete"",true]";
+ name="btc_veh_5";
+ };
+ id=155;
+ type="rhsusf_M1237_M2_usarmy_d";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ammoBox";
+ expression="[_this,_value] call bis_fnc_initAmmoBox;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="[[[[""rhs_weap_m4_carryhandle"",""FirstAidKit"",""Medikit""],[2,8,1]],[[""rhs_mag_30Rnd_556x45_M855A1_Stanag"",""rhs_mag_M433_HEDP"",""rhsusf_100Rnd_556x45_soft_pouch"",""rhs_mag_M441_HE"",""rhs_mag_m714_White"",""rhs_mag_m662_red"",""rhs_mag_m67"",""rhs_mag_m18_green"",""rhs_mag_m18_red"",""rhs_mag_an_m8hc""],[30,20,11,10,4,2,4,2,2,4]],[[],[]],[[""rhsusf_falconii""],[4]]],false]";
+ };
+ };
+ };
+ nAttributes=1;
+ };
+ };
+ };
+};
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission_Tanoa.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission_RHSUS_Tanoa.sqm
similarity index 94%
rename from =BTC=co@30_Hearts_and_Minds.Altis/mission_Tanoa.sqm
rename to =BTC=co@30_Hearts_and_Minds.Altis/mission_RHSUS_Tanoa.sqm
index 1857d241d..582515ccc 100644
--- a/=BTC=co@30_Hearts_and_Minds.Altis/mission_Tanoa.sqm
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission_RHSUS_Tanoa.sqm
@@ -1,3840 +1,3840 @@
-version=53;
-class EditorData
-{
- moveGridStep=0.125;
- angleGridStep=0.2617994;
- scaleGridStep=0.1;
- autoGroupingDist=10;
- toggles=517;
- class ItemIDProvider
- {
- nextID=249;
- };
- class MarkerIDProvider
- {
- nextID=3;
- };
- class Camera
- {
- pos[]={4207.9165,39.892441,4004.0476};
- dir[]={0.23425245,-0.75864172,0.60809433};
- up[]={0.2727313,0.6514526,0.70798182};
- aside[]={0.93324167,-1.1265511e-006,-0.35950708};
- };
-};
-binarizationWanted=0;
-addons[]=
-{
- "A3_Ui_F",
- "RHS_US_A2_AirImport",
- "A3_Structures_F_Ind_Cargo",
- "ace_cargo",
- "A3_Structures_F_Mil_Helipads",
- "A3_Soft_F_Gamma_Truck_01",
- "ace_realisticnames",
- "ace_rearm",
- "ace_refuel",
- "ace_repair",
- "A3_Structures_F_Mil_Flags",
- "A3_Characters_F",
- "ace_explosives",
- "A3_Modules_F_Curator_Curator",
- "RHS_US_A2Port_Armor",
- "rhsusf_vehicles",
- "rhsusf_c_fmtv",
- "rhsusf_c_RG33L"
-};
-class AddonsMetaData
-{
- class List
- {
- items=16;
- class Item0
- {
- className="A3_Ui_F";
- name="Arma 3 - User Interface";
- author="Bohemia Interactive";
- url="https://www.arma3.com";
- };
- class Item1
- {
- className="RHS_US_A2_AirImport";
- name="RHSUSF A2 Air Ports";
- url="http://www.rhsmods.org/";
- };
- class Item2
- {
- className="A3_Structures_F_Ind";
- name="Arma 3 - Industrial Structures";
- author="Bohemia Interactive";
- url="https://www.arma3.com";
- };
- class Item3
- {
- className="ace_cargo";
- name="ACE3 - Cargo";
- author="ACE-Team";
- url="http://ace3mod.com/";
- };
- class Item4
- {
- className="A3_Structures_F_Mil";
- name="Arma 3 - Military Buildings and Structures";
- author="Bohemia Interactive";
- url="https://www.arma3.com";
- };
- class Item5
- {
- className="A3_Soft_F_Gamma";
- name="Arma 3 - Unarmored Land Vehicles";
- author="Bohemia Interactive";
- url="https://www.arma3.com";
- };
- class Item6
- {
- className="A3_Characters_F";
- name="Arma 3 Alpha - Characters and Clothing";
- author="Bohemia Interactive";
- url="https://www.arma3.com";
- };
- class Item7
- {
- className="ace_rearm";
- name="ACE3 - Rearm";
- author="ACE-Team";
- url="http://ace3mod.com/";
- };
- class Item8
- {
- className="ace_refuel";
- name="ACE3 - Refuel";
- author="ACE-Team";
- url="http://ace3mod.com/";
- };
- class Item9
- {
- className="ace_repair";
- name="ACE3 - Repair";
- author="ACE-Team";
- url="http://ace3mod.com/";
- };
- class Item10
- {
- className="ace_explosives";
- name="ACE3 - Explosives";
- author="ACE-Team";
- url="http://ace3mod.com/";
- };
- class Item11
- {
- className="A3_Modules_F_Curator";
- name="Arma 3 Zeus Update - Scripted Modules";
- author="Bohemia Interactive";
- url="https://www.arma3.com";
- };
- class Item12
- {
- className="RHS_US_A2Port_Armor";
- name="M2 Bradley IFV";
- url="http://www.rhsmods.org/";
- };
- class Item13
- {
- className="rhsusf_vehicles";
- name="rhsusf_vehicles";
- };
- class Item14
- {
- className="rhsusf_c_fmtv";
- name="FMTV Trucks";
- url="http://www.rhsmods.org/";
- };
- class Item15
- {
- className="rhsusf_c_RG33L";
- name="RG33L MRAP";
- url="http://www.rhsmods.org/";
- };
- };
-};
-randomSeed=2442963;
-class ScenarioData
-{
- respawnDialog=0;
- disabledAI=1;
- respawn=3;
- respawnDelay=5;
- class Header
- {
- gameType="Coop";
- minPlayers=1;
- maxPlayers=30;
- };
-};
-class CustomAttributes
-{
- class Category0
- {
- name="Multiplayer";
- class Attribute0
- {
- property="RespawnButton";
- expression="true";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1;
- };
- };
- };
- class Attribute1
- {
- property="RespawnTemplates";
- expression="true";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "ARRAY"
- };
- };
- };
- };
- };
- nAttributes=2;
- };
- class Category1
- {
- name="Scenario";
- class Attribute0
- {
- property="cba_settings_hash";
- expression="false";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "ARRAY"
- };
- };
- class value
- {
- items=4;
- class Item0
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="#CBA_HASH#";
- };
- };
- class Item1
- {
- class data
- {
- class type
- {
- type[]=
- {
- "ARRAY"
- };
- };
- class value
- {
- items=4;
- class Item0
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="ace_medical_enablefor";
- };
- };
- class Item1
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="ace_rearm_level";
- };
- };
- class Item2
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="ace_respawn_savepredeathgear";
- };
- };
- class Item3
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="ace_cargo_enable";
- };
- };
- };
- };
- };
- class Item2
- {
- class data
- {
- class type
- {
- type[]=
- {
- "ARRAY"
- };
- };
- class value
- {
- items=4;
- class Item0
- {
- class data
- {
- class type
- {
- type[]=
- {
- "ARRAY"
- };
- };
- class value
- {
- items=2;
- class Item0
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1;
- };
- };
- class Item1
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=1;
- };
- };
- };
- };
- };
- class Item1
- {
- class data
- {
- class type
- {
- type[]=
- {
- "ARRAY"
- };
- };
- class value
- {
- items=2;
- class Item0
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1;
- };
- };
- class Item1
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=1;
- };
- };
- };
- };
- };
- class Item2
- {
- class data
- {
- class type
- {
- type[]=
- {
- "ARRAY"
- };
- };
- class value
- {
- items=2;
- class Item0
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=1;
- };
- };
- class Item1
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=1;
- };
- };
- };
- };
- };
- class Item3
- {
- class data
- {
- class type
- {
- type[]=
- {
- "ARRAY"
- };
- };
- class value
- {
- items=2;
- class Item0
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- class Item1
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=1;
- };
- };
- };
- };
- };
- };
- };
- };
- class Item3
- {
- class data
- {
- nil=1;
- class type
- {
- type[]=
- {
- "ANY"
- };
- };
- };
- };
- };
- };
- };
- };
- class Attribute1
- {
- property="EnableDebugConsole";
- expression="true";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0;
- };
- };
- };
- nAttributes=2;
- };
-};
-class Mission
-{
- class Intel
- {
- briefingName="=BTC= co 30 HEARTS AND MINDS";
- overviewText="by Giallustio";
- resistanceWest=0;
- resistanceEast=1;
- startWeather=0.29999998;
- startWind=0.099999994;
- startWaves=0.099999994;
- forecastWeather=0.29999998;
- forecastWind=0.099999994;
- forecastWaves=0.099999994;
- forecastLightnings=0.099999994;
- rainForced=1;
- lightningsForced=1;
- wavesForced=1;
- windForced=1;
- year=2035;
- month=6;
- day=24;
- hour=12;
- minute=0;
- startFogDecay=0.013;
- forecastFogDecay=0.013;
- };
- class Entities
- {
- items=52;
- class Item0
- {
- dataType="Marker";
- position[]={4231.5,360.625,4011.125};
- name="respawn_west";
- type="Empty";
- angle=33.149483;
- id=0;
- atlOffset=341.63031;
- };
- class Item1
- {
- dataType="Marker";
- position[]={4223.375,6.159635e+026,3993.75};
- name="btc_base";
- type="flag_NATO";
- id=1;
- atlOffset=6.159635e+026;
- };
- class Item2
- {
- dataType="Marker";
- position[]={4253.5,6.159635e+026,3990.375};
- name="btc_log_point";
- text="Logistic Point";
- type="mil_flag";
- colorName="ColorGreen";
- a=0.5;
- b=0.5;
- id=2;
- atlOffset=6.159635e+026;
- };
- class Item3
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4290.125,25.662582,3962.6953};
- angles[]={6.2432079,4.8979063,0.0053265258};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- name="btc_helo_1";
- };
- id=6;
- type="RHS_CH_47F_10";
- atlOffset=0.0007686615;
- class CustomAttributes
- {
- class Attribute0
- {
- property="ammoBox";
- expression="[_this,_value] call bis_fnc_initAmmoBox;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="[[[[""rhs_weap_m4_carryhandle"",""FirstAidKit"",""Medikit""],[2,10,2]],[[""rhs_mag_30Rnd_556x45_M855A1_Stanag"",""rhs_mag_m67"",""rhs_mag_m18_green"",""rhs_mag_m18_red"",""rhs_mag_an_m8hc""],[12,4,2,2,4]],[[],[]],[[""B_Parachute""],[4]]],false]";
- };
- };
- };
- nAttributes=1;
- };
- };
- class Item4
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4245.125,19.769165,3990.25};
- angles[]={0,3.7038331,0.047961645};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="call{this allowDamage false; this enableSimulation false;}";
- name="btc_create_object";
- };
- id=13;
- type="Land_CargoBox_V1_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="ace_isMedicalFacility";
- expression="_this setVariable [""ace_medical_isMedicalFacility"",_value,true];";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- nAttributes=1;
- };
- };
- class Item5
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4253.375,19.517353,3990.375};
- angles[]={6.2671809,0.52167892,0.058608156};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- name="btc_create_object_point";
- };
- id=14;
- type="Land_HelipadSquare_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="ace_isRepairFacility";
- expression="_this setVariable ['ace_isRepairFacility',_value, true];";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1;
- };
- };
- };
- class Attribute1
- {
- property="ace_isMedicalFacility";
- expression="_this setVariable [""ace_medical_isMedicalFacility"",_value,true];";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item6
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4225.4805,19.707785,4010.2305};
- angles[]={6.256525,1.0466481,0.0053265258};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="this allowDamage false;";
- name="btc_gear_object";
- };
- id=15;
- type="Land_CargoBox_V1_F";
- atlOffset=-0.00018310547;
- class CustomAttributes
- {
- class Attribute0
- {
- property="ace_isMedicalFacility";
- expression="_this setVariable [""ace_medical_isMedicalFacility"",_value,true];";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- nAttributes=1;
- };
- };
- class Item7
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4294.6011,23.503742,3994.0601};
- angles[]={0.034652505,4.8737464,0.039977662};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="this setVariable [""btc_dont_delete"",true]";
- name="btc_veh_10";
- };
- id=16;
- type="RHS_AH64D";
- atlOffset=-0.16130447;
- class CustomAttributes
- {
- class Attribute0
- {
- property="ammoBox";
- expression="[_this,_value] call bis_fnc_initAmmoBox;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="[[[[""rhs_weap_m4_carryhandle"",""FirstAidKit""],[2,4]],[[""rhs_mag_30Rnd_556x45_M855A1_Stanag"",""rhs_mag_m18_green"",""rhs_mag_m18_yellow"",""rhs_mag_m18_red"",""rhs_mag_m18_purple"",""rhs_mag_an_m8hc""],[8,2,2,2,2,2]],[[],[]],[[""B_Parachute""],[2]]],false]";
- };
- };
- };
- nAttributes=1;
- };
- };
- class Item8
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4293.625,21.394325,3994.5};
- angles[]={0.034652505,4.7827449,6.2805333};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- };
- id=17;
- type="Land_HelipadSquare_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="ace_isMedicalFacility";
- expression="_this setVariable [""ace_medical_isMedicalFacility"",_value,true];";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- nAttributes=1;
- };
- };
- class Item9
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4244.6074,22.12014,3918.6768};
- angles[]={0.050623242,1.6752416,0.12468291};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="this setVariable [""btc_dont_delete"",true]";
- name="btc_veh_11";
- };
- id=18;
- type="B_Truck_01_ammo_F";
- atlOffset=-0.017528534;
- class CustomAttributes
- {
- class Attribute0
- {
- property="ammoBox";
- expression="[_this,_value] call bis_fnc_initAmmoBox;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="[[[[""FirstAidKit""],[10]],[[],[]],[[],[]],[[],[]]],false]";
- };
- };
- };
- nAttributes=1;
- };
- };
- class Item10
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4245.75,21.995382,3924.875};
- angles[]={0.021328852,1.6752416,0.14562827};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="this setVariable [""btc_dont_delete"",true]";
- name="btc_veh_12";
- };
- id=19;
- type="B_Truck_01_fuel_F";
- atlOffset=-0.020908356;
- class CustomAttributes
- {
- class Attribute0
- {
- property="ammoBox";
- expression="[_this,_value] call bis_fnc_initAmmoBox;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="[[[[""FirstAidKit""],[10]],[[],[]],[[],[]],[[],[]]],false]";
- };
- };
- };
- nAttributes=1;
- };
- };
- class Item11
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4246.6548,22.44026,3930.334};
- angles[]={0.095706634,1.6752416,0.095706634};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="this setVariable [""btc_dont_delete"",true]";
- name="btc_veh_13";
- };
- id=20;
- type="B_Truck_01_Repair_F";
- atlOffset=-0.02120018;
- class CustomAttributes
- {
- class Attribute0
- {
- property="ammoBox";
- expression="[_this,_value] call bis_fnc_initAmmoBox;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="[[[[""FirstAidKit""],[10]],[[],[]],[[],[]],[[],[]]],false]";
- };
- };
- };
- nAttributes=1;
- };
- };
- class Item12
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4224.5,22.85014,4002.75};
- angles[]={6.2778587,1.6527834,0.0026520467};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- };
- id=21;
- type="Flag_NATO_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="ace_isMedicalFacility";
- expression="_this setVariable [""ace_medical_isMedicalFacility"",_value,true];";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- nAttributes=1;
- };
- };
- class Item13
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4321.6724,24.29775,3992.0872};
- angles[]={6.2645216,4.9720054,0.039977662};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="this setVariable [""btc_dont_delete"",true]";
- name="btc_veh_14";
- };
- id=22;
- type="RHS_UH1Y_d";
- atlOffset=-0.004776001;
- class CustomAttributes
- {
- class Attribute0
- {
- property="ammoBox";
- expression="[_this,_value] call bis_fnc_initAmmoBox;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="[[[[""rhs_weap_m4_carryhandle"",""FirstAidKit"",""Medikit""],[2,10,2]],[[""rhs_mag_30Rnd_556x45_M855A1_Stanag"",""rhs_mag_m67"",""rhs_mag_m18_green"",""rhs_mag_m18_red"",""rhs_mag_an_m8hc""],[12,4,2,2,4]],[[],[]],[[""B_Parachute""],[4]]],false]";
- };
- };
- };
- nAttributes=1;
- };
- };
- class Item14
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4319.625,22.049675,3992.5};
- angles[]={6.2645183,0.1613543,0.018667053};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- };
- id=23;
- type="Land_HelipadSquare_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="ace_isMedicalFacility";
- expression="_this setVariable [""ace_medical_isMedicalFacility"",_value,true];";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- nAttributes=1;
- };
- };
- class Item15
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=1;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4212.5469,19.360876,4017.093};
- angles[]={6.2698536,4.3477578,6.259192};
- };
- side="West";
- flags=6;
- class Attributes
- {
- skill=0.60000002;
- init="this setVariable [""side_mission"",true]";
- description="Officer";
- isPlayer=1;
- isPlayable=1;
- };
- id=25;
- type="B_officer_F";
- atlOffset=-3.8146973e-006;
- class CustomAttributes
- {
- class Attribute0
- {
- property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.98000002;
- };
- };
- };
- class Attribute2
- {
- property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- nAttributes=3;
- };
- };
- };
- class Attributes
- {
- };
- id=24;
- atlOffset=-3.8146973e-006;
- };
- class Item16
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=1;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4213.5083,19.405031,4022.5779};
- angles[]={6.2698536,4.3204784,6.2698536};
- };
- side="West";
- flags=6;
- class Attributes
- {
- skill=0.60000002;
- init="this setVariable [""interpreter"",true]";
- description="Interpreter";
- isPlayable=1;
- };
- id=29;
- type="B_Soldier_F";
- atlOffset=-1.9073486e-006;
- class CustomAttributes
- {
- class Attribute0
- {
- property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1.04;
- };
- };
- };
- class Attribute2
- {
- property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- nAttributes=3;
- };
- };
- };
- class Attributes
- {
- };
- id=28;
- atlOffset=-1.9073486e-006;
- };
- class Item17
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=1;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4213.9482,19.380543,4021.1812};
- angles[]={6.2698507,4.1308804,6.2698507};
- };
- side="West";
- flags=6;
- class Attributes
- {
- skill=0.60000002;
- description="Advanced engineer";
- isPlayable=1;
- };
- id=31;
- type="B_engineer_F";
- atlOffset=1.9073486e-006;
- class CustomAttributes
- {
- class Attribute0
- {
- property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- class Attribute1
- {
- property="ace_isEngineer";
- expression="if (_value != -1) then {_this setVariable ['ace_isEngineer',_value, true];}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=2;
- };
- };
- };
- class Attribute2
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male02ENG";
- };
- };
- };
- class Attribute3
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.99000001;
- };
- };
- };
- class Attribute4
- {
- property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- nAttributes=5;
- };
- };
- };
- class Attributes
- {
- };
- id=30;
- atlOffset=1.9073486e-006;
- };
- class Item18
- {
- dataType="Logic";
- class PositionInfo
- {
- position[]={3985.1992,-5.0633116,3906.0693};
- angles[]={6.272521,0,0.093063653};
- };
- name="btc_curator";
- init="this addEventHandler ['CuratorObjectPlaced',{_this call btc_fnc_eh_CuratorObjectPlaced}];";
- id=71;
- type="ModuleCurator_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="ModuleCurator_F_Owner";
- expression="_this setVariable ['Owner',_value,true];";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="#adminLogged";
- };
- };
- };
- class Attribute1
- {
- property="ModuleCurator_F_Forced";
- expression="_this setVariable ['Forced',_value,true];";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0;
- };
- };
- };
- class Attribute2
- {
- property="ModuleCurator_F_Name";
- expression="_this setVariable ['Name',_value,true];";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="";
- };
- };
- };
- class Attribute3
- {
- property="ModuleInfo";
- expression="false";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=1;
- };
- };
- };
- class Attribute4
- {
- property="ModuleCurator_F_Addons";
- expression="_this setVariable ['Addons',_value,true];";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=3;
- };
- };
- };
- nAttributes=5;
- };
- };
- class Item19
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=1;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4202.4067,19.632608,4026.0737};
- angles[]={0,2.8130026,0};
- };
- side="West";
- flags=7;
- class Attributes
- {
- isPlayable=1;
- };
- id=90;
- type="B_medic_F";
- atlOffset=1.9073486e-006;
- class CustomAttributes
- {
- class Attribute0
- {
- property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1;
- };
- };
- };
- class Attribute2
- {
- property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- nAttributes=3;
- };
- };
- };
- class Attributes
- {
- };
- id=89;
- atlOffset=1.9073486e-006;
- };
- class Item20
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=1;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4204.2739,19.586445,4026.7244};
- angles[]={0,2.8130026,0};
- };
- side="West";
- flags=7;
- class Attributes
- {
- isPlayable=1;
- };
- id=92;
- type="B_medic_F";
- atlOffset=-3.8146973e-006;
- class CustomAttributes
- {
- class Attribute0
- {
- property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.98000002;
- };
- };
- };
- class Attribute2
- {
- property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- nAttributes=3;
- };
- };
- };
- class Attributes
- {
- };
- id=91;
- atlOffset=-3.8146973e-006;
- };
- class Item21
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=1;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4205.6602,19.529768,4019.4685};
- angles[]={0,1.2144552,0};
- };
- side="West";
- flags=7;
- class Attributes
- {
- isPlayable=1;
- };
- id=94;
- type="B_Soldier_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1;
- };
- };
- };
- class Attribute2
- {
- property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- nAttributes=3;
- };
- };
- };
- class Attributes
- {
- };
- id=93;
- };
- class Item22
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=1;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4206.125,19.507095,4017.9248};
- angles[]={0,1.2144552,0};
- };
- side="West";
- flags=7;
- class Attributes
- {
- isPlayable=1;
- };
- id=96;
- type="B_Soldier_F";
- atlOffset=-3.8146973e-006;
- class CustomAttributes
- {
- class Attribute0
- {
- property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1;
- };
- };
- };
- class Attribute2
- {
- property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- nAttributes=3;
- };
- };
- };
- class Attributes
- {
- };
- id=95;
- atlOffset=-3.8146973e-006;
- };
- class Item23
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=1;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4206.751,19.485619,4016.3379};
- angles[]={0,1.2144552,0};
- };
- side="West";
- flags=7;
- class Attributes
- {
- isPlayable=1;
- };
- id=98;
- type="B_Soldier_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1.01;
- };
- };
- };
- class Attribute2
- {
- property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- nAttributes=3;
- };
- };
- };
- class Attributes
- {
- };
- id=97;
- };
- class Item24
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=1;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4207.3213,19.4573,4014.6621};
- angles[]={0,1.2144552,0};
- };
- side="West";
- flags=7;
- class Attributes
- {
- isPlayable=1;
- };
- id=100;
- type="B_Soldier_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1.01;
- };
- };
- };
- class Attribute2
- {
- property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- nAttributes=3;
- };
- };
- };
- class Attributes
- {
- };
- id=99;
- };
- class Item25
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=1;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4207.875,19.426762,4013.0498};
- angles[]={0,1.2144552,0};
- };
- side="West";
- flags=7;
- class Attributes
- {
- isPlayable=1;
- };
- id=102;
- type="B_Soldier_F";
- atlOffset=1.9073486e-006;
- class CustomAttributes
- {
- class Attribute0
- {
- property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.99000001;
- };
- };
- };
- class Attribute2
- {
- property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- nAttributes=3;
- };
- };
- };
- class Attributes
- {
- };
- id=101;
- atlOffset=1.9073486e-006;
- };
- class Item26
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=1;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4208.4458,19.392982,4011.3767};
- angles[]={0,1.2144552,0};
- };
- side="West";
- flags=7;
- class Attributes
- {
- isPlayable=1;
- };
- id=104;
- type="B_Soldier_F";
- atlOffset=-3.8146973e-006;
- class CustomAttributes
- {
- class Attribute0
- {
- property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1.03;
- };
- };
- };
- class Attribute2
- {
- property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- nAttributes=3;
- };
- };
- };
- class Attributes
- {
- };
- id=103;
- atlOffset=-3.8146973e-006;
- };
- class Item27
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=1;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4208.9639,19.36977,4009.9202};
- angles[]={0,1.2144552,0};
- };
- side="West";
- flags=7;
- class Attributes
- {
- isPlayable=1;
- };
- id=106;
- type="B_Soldier_F";
- atlOffset=-1.9073486e-006;
- class CustomAttributes
- {
- class Attribute0
- {
- property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1.02;
- };
- };
- };
- class Attribute2
- {
- property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- nAttributes=3;
- };
- };
- };
- class Attributes
- {
- };
- id=105;
- atlOffset=-1.9073486e-006;
- };
- class Item28
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=1;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4209.5347,19.338087,4008.2456};
- angles[]={0,1.2144552,0};
- };
- side="West";
- flags=7;
- class Attributes
- {
- isPlayable=1;
- };
- id=108;
- type="B_Soldier_F";
- atlOffset=3.8146973e-006;
- class CustomAttributes
- {
- class Attribute0
- {
- property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1.05;
- };
- };
- };
- class Attribute2
- {
- property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- nAttributes=3;
- };
- };
- };
- class Attributes
- {
- };
- id=107;
- atlOffset=3.8146973e-006;
- };
- class Item29
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=1;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4210.04,19.298412,4006.6853};
- angles[]={0,1.2144643,0};
- };
- side="West";
- flags=7;
- class Attributes
- {
- isPlayable=1;
- };
- id=110;
- type="B_Soldier_F";
- atlOffset=-1.9073486e-006;
- };
- };
- class Attributes
- {
- };
- id=109;
- atlOffset=-1.9073486e-006;
- };
- class Item30
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=1;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4210.6113,19.249859,4005.011};
- angles[]={0,1.2144643,0};
- };
- side="West";
- flags=7;
- class Attributes
- {
- isPlayable=1;
- };
- id=112;
- type="B_Soldier_F";
- };
- };
- class Attributes
- {
- };
- id=111;
- };
- class Item31
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=1;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4203.8584,19.552221,4018.7021};
- angles[]={0,1.2144552,0};
- };
- side="West";
- flags=7;
- class Attributes
- {
- isPlayable=1;
- };
- id=114;
- type="B_Soldier_F";
- atlOffset=-3.8146973e-006;
- class CustomAttributes
- {
- class Attribute0
- {
- property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1;
- };
- };
- };
- class Attribute2
- {
- property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- nAttributes=3;
- };
- };
- };
- class Attributes
- {
- };
- id=113;
- atlOffset=-3.8146973e-006;
- };
- class Item32
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=1;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4204.375,19.535097,4017.2998};
- angles[]={0,1.2144552,0};
- };
- side="West";
- flags=7;
- class Attributes
- {
- isPlayable=1;
- };
- id=116;
- type="B_Soldier_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.95999998;
- };
- };
- };
- class Attribute2
- {
- property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- nAttributes=3;
- };
- };
- };
- class Attributes
- {
- };
- id=115;
- };
- class Item33
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=1;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4204.9468,19.511341,4015.573};
- angles[]={0,1.2144552,0};
- };
- side="West";
- flags=7;
- class Attributes
- {
- isPlayable=1;
- };
- id=118;
- type="B_Soldier_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.95999998;
- };
- };
- };
- class Attribute2
- {
- property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- nAttributes=3;
- };
- };
- };
- class Attributes
- {
- };
- id=117;
- };
- class Item34
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=1;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4205.519,19.489536,4013.8979};
- angles[]={0,1.2144552,0};
- };
- side="West";
- flags=7;
- class Attributes
- {
- isPlayable=1;
- };
- id=120;
- type="B_Soldier_F";
- atlOffset=-3.8146973e-006;
- class CustomAttributes
- {
- class Attribute0
- {
- property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.97000003;
- };
- };
- };
- class Attribute2
- {
- property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- nAttributes=3;
- };
- };
- };
- class Attributes
- {
- };
- id=119;
- atlOffset=-3.8146973e-006;
- };
- class Item35
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=1;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4206.125,19.470091,4011.9248};
- angles[]={0,1.2144552,0};
- };
- side="West";
- flags=7;
- class Attributes
- {
- isPlayable=1;
- };
- id=122;
- type="B_Soldier_F";
- atlOffset=-3.8146973e-006;
- class CustomAttributes
- {
- class Attribute0
- {
- property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.99000001;
- };
- };
- };
- class Attribute2
- {
- property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- nAttributes=3;
- };
- };
- };
- class Attributes
- {
- };
- id=121;
- atlOffset=-3.8146973e-006;
- };
- class Item36
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=1;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4206.75,19.44743,4010.2998};
- angles[]={0,1.2144552,0};
- };
- side="West";
- flags=7;
- class Attributes
- {
- isPlayable=1;
- };
- id=124;
- type="B_Soldier_F";
- atlOffset=-3.8146973e-006;
- class CustomAttributes
- {
- class Attribute0
- {
- property="ace_isHandcuffed";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1.03;
- };
- };
- };
- class Attribute2
- {
- property="ace_isSurrendered";
- expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=0;
- };
- };
- };
- nAttributes=3;
- };
- };
- };
- class Attributes
- {
- };
- id=123;
- atlOffset=-3.8146973e-006;
- };
- class Item37
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=1;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4207.1621,19.432291,4009.155};
- angles[]={0,1.2144643,0};
- };
- side="West";
- flags=7;
- class Attributes
- {
- isPlayable=1;
- };
- id=126;
- type="B_Soldier_F";
- atlOffset=-5.7220459e-006;
- };
- };
- class Attributes
- {
- };
- id=125;
- atlOffset=-5.7220459e-006;
- };
- class Item38
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=1;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4207.7329,19.386436,4007.4795};
- angles[]={0,1.2144643,0};
- };
- side="West";
- flags=7;
- class Attributes
- {
- isPlayable=1;
- };
- id=128;
- type="B_Soldier_F";
- atlOffset=-3.8146973e-006;
- };
- };
- class Attributes
- {
- };
- id=127;
- atlOffset=-3.8146973e-006;
- };
- class Item39
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=1;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4208.2378,19.338343,4005.9192};
- angles[]={0,1.2144643,0};
- };
- side="West";
- flags=7;
- class Attributes
- {
- isPlayable=1;
- };
- id=130;
- type="B_Soldier_F";
- atlOffset=5.7220459e-006;
- };
- };
- class Attributes
- {
- };
- id=129;
- atlOffset=5.7220459e-006;
- };
- class Item40
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=1;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4208.8101,19.29657,4004.2451};
- angles[]={0,1.2144643,0};
- };
- side="West";
- flags=7;
- class Attributes
- {
- isPlayable=1;
- };
- id=132;
- type="B_Soldier_F";
- };
- };
- class Attributes
- {
- };
- id=131;
- };
- class Item41
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4265.0215,22.082785,3986.5215};
- angles[]={6.2698536,3.7083344,0.079830162};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="this setVariable [""btc_dont_delete"",true];";
- name="btc_veh_1";
- };
- id=213;
- type="RHS_M2A3_wd";
- atlOffset=-0.0076828003;
- class CustomAttributes
- {
- class Attribute0
- {
- property="ammoBox";
- expression="[_this,_value] call bis_fnc_initAmmoBox;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="[[[[""rhs_weap_m4_carryhandle_pmag"",""rhs_weap_fgm148"",""FirstAidKit"",""Medikit""],[4,2,10,2]],[[""rhs_mag_30Rnd_556x45_M855A1_Stanag"",""rhsusf_100Rnd_556x45_soft_pouch"",""rhsusf_100Rnd_762x51"",""rhs_fgm148_magazine_AT"",""rhs_mag_M441_HE"",""rhs_mag_m714_White"",""rhs_mag_m662_red"",""rhs_mag_m67"",""rhs_mag_m18_green"",""rhs_mag_m18_red"",""rhs_mag_an_m8hc""],[75,11,11,4,20,8,4,10,4,4,10]],[[""ToolKit""],[1]],[[""rhsusf_falconii""],[8]]],false]";
- };
- };
- };
- nAttributes=1;
- };
- };
- class Item42
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4213.5605,20.973347,3988.6531};
- angles[]={6.2007008,0.836833,0.0053407075};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="this setVariable [""btc_dont_delete"",true]";
- name="btc_veh_7";
- };
- id=214;
- type="rhsusf_m1025_w_m2";
- class CustomAttributes
- {
- class Attribute0
- {
- property="rhs_decalMask";
- expression="if(_value != 'NoChange')then{ [_this,'unitdecals_1',_value] call rhs_fnc_hmmwv_setDecal}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="NoChange";
- };
- };
- };
- class Attribute1
- {
- property="rhs_decalDoors";
- expression="if(_value != 'NoChange')then{ [_this,'unitdecals_2',_value] call rhs_fnc_hmmwv_setDecal}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="NoChange";
- };
- };
- };
- class Attribute2
- {
- property="ammoBox";
- expression="[_this,_value] call bis_fnc_initAmmoBox;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="[[[[""rhs_weap_m4_carryhandle"",""rhs_weap_M136_hedp"",""FirstAidKit""],[2,2,4]],[[""rhs_m136_hedp_mag"",""rhs_mag_30Rnd_556x45_M855A1_Stanag"",""rhsusf_100Rnd_556x45_soft_pouch"",""rhs_mag_M441_HE"",""rhs_mag_m714_White"",""rhs_mag_m662_red"",""rhs_mag_m67"",""rhs_mag_m18_green"",""rhs_mag_m18_red"",""rhs_mag_an_m8hc""],[2,20,8,16,4,2,4,2,2,4]],[[],[]],[[""rhsusf_falconii""],[2]]],false]";
- };
- };
- };
- nAttributes=3;
- };
- };
- class Item43
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4219.061,20.742113,3984.6533};
- angles[]={6.2405472,0.43331289,0.010663962};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="this setVariable [""btc_dont_delete"",true]";
- name="btc_veh_2";
- };
- id=215;
- type="rhsusf_m1025_w_m2";
- class CustomAttributes
- {
- class Attribute0
- {
- property="rhs_decalMask";
- expression="if(_value != 'NoChange')then{ [_this,'unitdecals_1',_value] call rhs_fnc_hmmwv_setDecal}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="NoChange";
- };
- };
- };
- class Attribute1
- {
- property="rhs_decalDoors";
- expression="if(_value != 'NoChange')then{ [_this,'unitdecals_2',_value] call rhs_fnc_hmmwv_setDecal}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="NoChange";
- };
- };
- };
- class Attribute2
- {
- property="ammoBox";
- expression="[_this,_value] call bis_fnc_initAmmoBox;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="[[[[""rhs_weap_m4_carryhandle"",""rhs_weap_M136_hedp"",""FirstAidKit""],[2,2,4]],[[""rhs_m136_hedp_mag"",""rhs_mag_30Rnd_556x45_M855A1_Stanag"",""rhsusf_100Rnd_556x45_soft_pouch"",""rhs_mag_M441_HE"",""rhs_mag_m714_White"",""rhs_mag_m662_red"",""rhs_mag_m67"",""rhs_mag_m18_green"",""rhs_mag_m18_red"",""rhs_mag_an_m8hc""],[2,20,8,16,4,2,4,2,2,4]],[[],[]],[[""rhsusf_falconii""],[2]]],false]";
- };
- };
- };
- nAttributes=3;
- };
- };
- class Item44
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4224.6836,20.637239,3981.2756};
- angles[]={6.2272477,0.45174354,0.0079936078};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="this setVariable [""btc_dont_delete"",true]";
- name="btc_veh_3";
- };
- id=216;
- type="rhsusf_m1025_w_m2";
- atlOffset=1.9073486e-006;
- class CustomAttributes
- {
- class Attribute0
- {
- property="rhs_decalMask";
- expression="if(_value != 'NoChange')then{ [_this,'unitdecals_1',_value] call rhs_fnc_hmmwv_setDecal}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="NoChange";
- };
- };
- };
- class Attribute1
- {
- property="rhs_decalDoors";
- expression="if(_value != 'NoChange')then{ [_this,'unitdecals_2',_value] call rhs_fnc_hmmwv_setDecal}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="NoChange";
- };
- };
- };
- class Attribute2
- {
- property="ammoBox";
- expression="[_this,_value] call bis_fnc_initAmmoBox;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="[[[[""rhs_weap_m4_carryhandle"",""rhs_weap_M136_hedp"",""FirstAidKit""],[2,2,4]],[[""rhs_m136_hedp_mag"",""rhs_mag_30Rnd_556x45_M855A1_Stanag"",""rhsusf_100Rnd_556x45_soft_pouch"",""rhs_mag_M441_HE"",""rhs_mag_m714_White"",""rhs_mag_m662_red"",""rhs_mag_m67"",""rhs_mag_m18_green"",""rhs_mag_m18_red"",""rhs_mag_an_m8hc""],[2,20,8,16,4,2,4,2,2,4]],[[],[]],[[""rhsusf_falconii""],[2]]],false]";
- };
- };
- };
- nAttributes=3;
- };
- };
- class Item45
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4242.1729,20.918491,3972.4004};
- angles[]={6.251193,0.4537856,0.14301229};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="this setVariable [""btc_dont_delete"",true]";
- name="btc_veh_4";
- };
- id=217;
- type="rhsusf_m1025_w_m2";
- class CustomAttributes
- {
- class Attribute0
- {
- property="rhs_decalMask";
- expression="if(_value != 'NoChange')then{ [_this,'unitdecals_1',_value] call rhs_fnc_hmmwv_setDecal}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="NoChange";
- };
- };
- };
- class Attribute1
- {
- property="rhs_decalDoors";
- expression="if(_value != 'NoChange')then{ [_this,'unitdecals_2',_value] call rhs_fnc_hmmwv_setDecal}";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="NoChange";
- };
- };
- };
- class Attribute2
- {
- property="ammoBox";
- expression="[_this,_value] call bis_fnc_initAmmoBox;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="[[[[""rhs_weap_m4_carryhandle"",""rhs_weap_M136_hedp"",""FirstAidKit""],[2,2,4]],[[""rhs_m136_hedp_mag"",""rhs_mag_30Rnd_556x45_M855A1_Stanag"",""rhsusf_100Rnd_556x45_soft_pouch"",""rhs_mag_M441_HE"",""rhs_mag_m714_White"",""rhs_mag_m662_red"",""rhs_mag_m67"",""rhs_mag_m18_green"",""rhs_mag_m18_red"",""rhs_mag_an_m8hc""],[2,20,8,16,4,2,4,2,2,4]],[[],[]],[[""rhsusf_falconii""],[2]]],false]";
- };
- };
- };
- nAttributes=3;
- };
- };
- class Item46
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4248.0615,21.338169,3969.1675};
- angles[]={0.045302324,0.4537856,0.10890055};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- init="this setVariable [""btc_dont_delete"",true]";
- name="btc_veh_15";
- };
- id=241;
- type="rhsusf_M1078A1P2_B_WD_fmtv_usarmy";
- atlOffset=-0.27951813;
- class CustomAttributes
- {
- class Attribute0
- {
- property="ammoBox";
- expression="[_this,_value] call bis_fnc_initAmmoBox;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="[[[[""rhs_weap_m4_carryhandle"",""FirstAidKit""],[2,4]],[[""rhs_mag_30Rnd_556x45_M855A1_Stanag"",""rhs_mag_m67"",""rhs_mag_m18_green"",""rhs_mag_m18_red"",""rhs_mag_an_m8hc""],[10,2,2,2,4]],[[""ToolKit""],[1]],[[""rhsusf_falconii""],[1]]],false]";
- };
- };
- };
- nAttributes=1;
- };
- };
- class Item47
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4233.0352,21.638979,3999.2959};
- angles[]={0,3.3611374,0.0079936078};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="this setVariable [""btc_dont_delete"",true]";
- name="btc_veh_8";
- };
- id=244;
- type="rhsusf_M1078A1P2_B_M2_WD_open_fmtv_usarmy";
- class CustomAttributes
- {
- class Attribute0
- {
- property="ammoBox";
- expression="[_this,_value] call bis_fnc_initAmmoBox;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="[[[[""FirstAidKit""],[10]],[[],[]],[[],[]],[[],[]]],false]";
- };
- };
- };
- nAttributes=1;
- };
- };
- class Item48
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4240.4561,21.697552,3995.7307};
- angles[]={6.2805324,3.3253233,0.016004669};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="this setVariable [""btc_dont_delete"",true]";
- name="btc_veh_9";
- };
- id=245;
- type="rhsusf_M1078A1P2_B_M2_WD_open_fmtv_usarmy";
- class CustomAttributes
- {
- class Attribute0
- {
- property="ammoBox";
- expression="[_this,_value] call bis_fnc_initAmmoBox;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="[[[[""FirstAidKit""],[10]],[[],[]],[[],[]],[[],[]]],false]";
- };
- };
- };
- nAttributes=1;
- };
- };
- class Item49
- {
- dataType="Logic";
- class PositionInfo
- {
- position[]={4206.125,19.548992,4027.375};
- angles[]={6.2805109,0,6.2618566};
- };
- name="btc_hc_1";
- isPlayable=1;
- id=246;
- type="HeadlessClient_F";
- };
- class Item50
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4230.4194,19.875408,3979.3396};
- angles[]={6.2352238,0.38933057,0.0079936078};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="this setVariable [""btc_dont_delete"",true]";
- name="btc_veh_6";
- };
- id=247;
- type="rhsusf_M1237_M2_usarmy_wd";
- atlOffset=-0.0060005188;
- class CustomAttributes
- {
- class Attribute0
- {
- property="ammoBox";
- expression="[_this,_value] call bis_fnc_initAmmoBox;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="[[[[""rhs_weap_m4_carryhandle"",""FirstAidKit"",""Medikit""],[2,8,1]],[[""rhs_mag_30Rnd_556x45_M855A1_Stanag"",""rhs_mag_M433_HEDP"",""rhsusf_100Rnd_556x45_soft_pouch"",""rhs_mag_M441_HE"",""rhs_mag_m714_White"",""rhs_mag_m662_red"",""rhs_mag_m67"",""rhs_mag_m18_green"",""rhs_mag_m18_red"",""rhs_mag_an_m8hc""],[30,20,11,10,4,2,4,2,2,4]],[[],[]],[[""rhsusf_falconii""],[4]]],false]";
- };
- };
- };
- nAttributes=1;
- };
- };
- class Item51
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4235.7686,19.755186,3975.4988};
- angles[]={6.1980653,0.46773079,0.071872659};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="this setVariable [""btc_dont_delete"",true]";
- name="btc_veh_5";
- };
- id=248;
- type="rhsusf_M1237_M2_usarmy_wd";
- class CustomAttributes
- {
- class Attribute0
- {
- property="ammoBox";
- expression="[_this,_value] call bis_fnc_initAmmoBox;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="[[[[""rhs_weap_m4_carryhandle"",""FirstAidKit"",""Medikit""],[2,8,1]],[[""rhs_mag_30Rnd_556x45_M855A1_Stanag"",""rhs_mag_M433_HEDP"",""rhsusf_100Rnd_556x45_soft_pouch"",""rhs_mag_M441_HE"",""rhs_mag_m714_White"",""rhs_mag_m662_red"",""rhs_mag_m67"",""rhs_mag_m18_green"",""rhs_mag_m18_red"",""rhs_mag_an_m8hc""],[30,20,11,10,4,2,4,2,2,4]],[[],[]],[[""rhsusf_falconii""],[4]]],false]";
- };
- };
- };
- nAttributes=1;
- };
- };
- };
-};
+version=53;
+class EditorData
+{
+ moveGridStep=0.125;
+ angleGridStep=0.2617994;
+ scaleGridStep=0.1;
+ autoGroupingDist=10;
+ toggles=517;
+ class ItemIDProvider
+ {
+ nextID=249;
+ };
+ class MarkerIDProvider
+ {
+ nextID=3;
+ };
+ class Camera
+ {
+ pos[]={4207.9165,39.892441,4004.0476};
+ dir[]={0.23425245,-0.75864172,0.60809433};
+ up[]={0.2727313,0.6514526,0.70798182};
+ aside[]={0.93324167,-1.1265511e-006,-0.35950708};
+ };
+};
+binarizationWanted=0;
+addons[]=
+{
+ "A3_Ui_F",
+ "RHS_US_A2_AirImport",
+ "A3_Structures_F_Ind_Cargo",
+ "ace_cargo",
+ "A3_Structures_F_Mil_Helipads",
+ "A3_Soft_F_Gamma_Truck_01",
+ "ace_realisticnames",
+ "ace_rearm",
+ "ace_refuel",
+ "ace_repair",
+ "A3_Structures_F_Mil_Flags",
+ "A3_Characters_F",
+ "ace_explosives",
+ "A3_Modules_F_Curator_Curator",
+ "RHS_US_A2Port_Armor",
+ "rhsusf_vehicles",
+ "rhsusf_c_fmtv",
+ "rhsusf_c_RG33L"
+};
+class AddonsMetaData
+{
+ class List
+ {
+ items=16;
+ class Item0
+ {
+ className="A3_Ui_F";
+ name="Arma 3 - User Interface";
+ author="Bohemia Interactive";
+ url="https://www.arma3.com";
+ };
+ class Item1
+ {
+ className="RHS_US_A2_AirImport";
+ name="RHSUSF A2 Air Ports";
+ url="http://www.rhsmods.org/";
+ };
+ class Item2
+ {
+ className="A3_Structures_F_Ind";
+ name="Arma 3 - Industrial Structures";
+ author="Bohemia Interactive";
+ url="https://www.arma3.com";
+ };
+ class Item3
+ {
+ className="ace_cargo";
+ name="ACE3 - Cargo";
+ author="ACE-Team";
+ url="http://ace3mod.com/";
+ };
+ class Item4
+ {
+ className="A3_Structures_F_Mil";
+ name="Arma 3 - Military Buildings and Structures";
+ author="Bohemia Interactive";
+ url="https://www.arma3.com";
+ };
+ class Item5
+ {
+ className="A3_Soft_F_Gamma";
+ name="Arma 3 - Unarmored Land Vehicles";
+ author="Bohemia Interactive";
+ url="https://www.arma3.com";
+ };
+ class Item6
+ {
+ className="A3_Characters_F";
+ name="Arma 3 Alpha - Characters and Clothing";
+ author="Bohemia Interactive";
+ url="https://www.arma3.com";
+ };
+ class Item7
+ {
+ className="ace_rearm";
+ name="ACE3 - Rearm";
+ author="ACE-Team";
+ url="http://ace3mod.com/";
+ };
+ class Item8
+ {
+ className="ace_refuel";
+ name="ACE3 - Refuel";
+ author="ACE-Team";
+ url="http://ace3mod.com/";
+ };
+ class Item9
+ {
+ className="ace_repair";
+ name="ACE3 - Repair";
+ author="ACE-Team";
+ url="http://ace3mod.com/";
+ };
+ class Item10
+ {
+ className="ace_explosives";
+ name="ACE3 - Explosives";
+ author="ACE-Team";
+ url="http://ace3mod.com/";
+ };
+ class Item11
+ {
+ className="A3_Modules_F_Curator";
+ name="Arma 3 Zeus Update - Scripted Modules";
+ author="Bohemia Interactive";
+ url="https://www.arma3.com";
+ };
+ class Item12
+ {
+ className="RHS_US_A2Port_Armor";
+ name="M2 Bradley IFV";
+ url="http://www.rhsmods.org/";
+ };
+ class Item13
+ {
+ className="rhsusf_vehicles";
+ name="rhsusf_vehicles";
+ };
+ class Item14
+ {
+ className="rhsusf_c_fmtv";
+ name="FMTV Trucks";
+ url="http://www.rhsmods.org/";
+ };
+ class Item15
+ {
+ className="rhsusf_c_RG33L";
+ name="RG33L MRAP";
+ url="http://www.rhsmods.org/";
+ };
+ };
+};
+randomSeed=2442963;
+class ScenarioData
+{
+ respawnDialog=0;
+ disabledAI=1;
+ respawn=3;
+ respawnDelay=5;
+ class Header
+ {
+ gameType="Coop";
+ minPlayers=1;
+ maxPlayers=30;
+ };
+};
+class CustomAttributes
+{
+ class Category0
+ {
+ name="Multiplayer";
+ class Attribute0
+ {
+ property="RespawnButton";
+ expression="true";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="RespawnTemplates";
+ expression="true";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ };
+ };
+ };
+ nAttributes=2;
+ };
+ class Category1
+ {
+ name="Scenario";
+ class Attribute0
+ {
+ property="cba_settings_hash";
+ expression="false";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=4;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="#CBA_HASH#";
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=4;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_medical_enablefor";
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_rearm_level";
+ };
+ };
+ class Item2
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_respawn_savepredeathgear";
+ };
+ };
+ class Item3
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="ace_cargo_enable";
+ };
+ };
+ };
+ };
+ };
+ class Item2
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=4;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item2
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=1;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ class Item3
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "ARRAY"
+ };
+ };
+ class value
+ {
+ items=2;
+ class Item0
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ class Item1
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ };
+ };
+ };
+ };
+ };
+ class Item3
+ {
+ class data
+ {
+ nil=1;
+ class type
+ {
+ type[]=
+ {
+ "ANY"
+ };
+ };
+ };
+ };
+ };
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="EnableDebugConsole";
+ expression="true";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ nAttributes=2;
+ };
+};
+class Mission
+{
+ class Intel
+ {
+ briefingName="=BTC= co 30 HEARTS AND MINDS";
+ overviewText="by Giallustio";
+ resistanceWest=0;
+ resistanceEast=1;
+ startWeather=0.29999998;
+ startWind=0.099999994;
+ startWaves=0.099999994;
+ forecastWeather=0.29999998;
+ forecastWind=0.099999994;
+ forecastWaves=0.099999994;
+ forecastLightnings=0.099999994;
+ rainForced=1;
+ lightningsForced=1;
+ wavesForced=1;
+ windForced=1;
+ year=2035;
+ month=6;
+ day=24;
+ hour=12;
+ minute=0;
+ startFogDecay=0.013;
+ forecastFogDecay=0.013;
+ };
+ class Entities
+ {
+ items=52;
+ class Item0
+ {
+ dataType="Marker";
+ position[]={4231.5,360.625,4011.125};
+ name="respawn_west";
+ type="Empty";
+ angle=33.149483;
+ id=0;
+ atlOffset=341.63031;
+ };
+ class Item1
+ {
+ dataType="Marker";
+ position[]={4223.375,6.159635e+026,3993.75};
+ name="btc_base";
+ type="flag_NATO";
+ id=1;
+ atlOffset=6.159635e+026;
+ };
+ class Item2
+ {
+ dataType="Marker";
+ position[]={4253.5,6.159635e+026,3990.375};
+ name="btc_log_point";
+ text=$STR_BTC_HAM_MSQM_MRK_LOGPOINT;
+ type="mil_flag";
+ colorName="ColorGreen";
+ a=0.5;
+ b=0.5;
+ id=2;
+ atlOffset=6.159635e+026;
+ };
+ class Item3
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4290.125,25.662582,3962.6953};
+ angles[]={6.2432079,4.8979063,0.0053265258};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ name="btc_helo_1";
+ };
+ id=6;
+ type="RHS_CH_47F_10";
+ atlOffset=0.0007686615;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ammoBox";
+ expression="[_this,_value] call bis_fnc_initAmmoBox;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="[[[[""rhs_weap_m4_carryhandle"",""FirstAidKit"",""Medikit""],[2,10,2]],[[""rhs_mag_30Rnd_556x45_M855A1_Stanag"",""rhs_mag_m67"",""rhs_mag_m18_green"",""rhs_mag_m18_red"",""rhs_mag_an_m8hc""],[12,4,2,2,4]],[[],[]],[[""B_Parachute""],[4]]],false]";
+ };
+ };
+ };
+ nAttributes=1;
+ };
+ };
+ class Item4
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4245.125,19.769165,3990.25};
+ angles[]={0,3.7038331,0.047961645};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="call{this allowDamage false; this enableSimulation false;}";
+ name="btc_create_object";
+ };
+ id=13;
+ type="Land_CargoBox_V1_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ace_isMedicalFacility";
+ expression="_this setVariable [""ace_medical_isMedicalFacility"",_value,true];";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ nAttributes=1;
+ };
+ };
+ class Item5
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4253.375,19.517353,3990.375};
+ angles[]={6.2671809,0.52167892,0.058608156};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ name="btc_create_object_point";
+ };
+ id=14;
+ type="Land_HelipadSquare_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ace_isRepairFacility";
+ expression="_this setVariable ['ace_isRepairFacility',_value, true];";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="ace_isMedicalFacility";
+ expression="_this setVariable [""ace_medical_isMedicalFacility"",_value,true];";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ nAttributes=2;
+ };
+ };
+ class Item6
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4225.4805,19.707785,4010.2305};
+ angles[]={6.256525,1.0466481,0.0053265258};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this allowDamage false;";
+ name="btc_gear_object";
+ };
+ id=15;
+ type="Land_CargoBox_V1_F";
+ atlOffset=-0.00018310547;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ace_isMedicalFacility";
+ expression="_this setVariable [""ace_medical_isMedicalFacility"",_value,true];";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ nAttributes=1;
+ };
+ };
+ class Item7
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4294.6011,23.503742,3994.0601};
+ angles[]={0.034652505,4.8737464,0.039977662};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""btc_dont_delete"",true]";
+ name="btc_veh_10";
+ };
+ id=16;
+ type="RHS_AH64D";
+ atlOffset=-0.16130447;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ammoBox";
+ expression="[_this,_value] call bis_fnc_initAmmoBox;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="[[[[""rhs_weap_m4_carryhandle"",""FirstAidKit""],[2,4]],[[""rhs_mag_30Rnd_556x45_M855A1_Stanag"",""rhs_mag_m18_green"",""rhs_mag_m18_yellow"",""rhs_mag_m18_red"",""rhs_mag_m18_purple"",""rhs_mag_an_m8hc""],[8,2,2,2,2,2]],[[],[]],[[""B_Parachute""],[2]]],false]";
+ };
+ };
+ };
+ nAttributes=1;
+ };
+ };
+ class Item8
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4293.625,21.394325,3994.5};
+ angles[]={0.034652505,4.7827449,6.2805333};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ };
+ id=17;
+ type="Land_HelipadSquare_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ace_isMedicalFacility";
+ expression="_this setVariable [""ace_medical_isMedicalFacility"",_value,true];";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ nAttributes=1;
+ };
+ };
+ class Item9
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4244.6074,22.12014,3918.6768};
+ angles[]={0.050623242,1.6752416,0.12468291};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""btc_dont_delete"",true]";
+ name="btc_veh_11";
+ };
+ id=18;
+ type="B_Truck_01_ammo_F";
+ atlOffset=-0.017528534;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ammoBox";
+ expression="[_this,_value] call bis_fnc_initAmmoBox;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="[[[[""FirstAidKit""],[10]],[[],[]],[[],[]],[[],[]]],false]";
+ };
+ };
+ };
+ nAttributes=1;
+ };
+ };
+ class Item10
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4245.75,21.995382,3924.875};
+ angles[]={0.021328852,1.6752416,0.14562827};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""btc_dont_delete"",true]";
+ name="btc_veh_12";
+ };
+ id=19;
+ type="B_Truck_01_fuel_F";
+ atlOffset=-0.020908356;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ammoBox";
+ expression="[_this,_value] call bis_fnc_initAmmoBox;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="[[[[""FirstAidKit""],[10]],[[],[]],[[],[]],[[],[]]],false]";
+ };
+ };
+ };
+ nAttributes=1;
+ };
+ };
+ class Item11
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4246.6548,22.44026,3930.334};
+ angles[]={0.095706634,1.6752416,0.095706634};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""btc_dont_delete"",true]";
+ name="btc_veh_13";
+ };
+ id=20;
+ type="B_Truck_01_Repair_F";
+ atlOffset=-0.02120018;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ammoBox";
+ expression="[_this,_value] call bis_fnc_initAmmoBox;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="[[[[""FirstAidKit""],[10]],[[],[]],[[],[]],[[],[]]],false]";
+ };
+ };
+ };
+ nAttributes=1;
+ };
+ };
+ class Item12
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4224.5,22.85014,4002.75};
+ angles[]={6.2778587,1.6527834,0.0026520467};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ };
+ id=21;
+ type="Flag_NATO_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ace_isMedicalFacility";
+ expression="_this setVariable [""ace_medical_isMedicalFacility"",_value,true];";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ nAttributes=1;
+ };
+ };
+ class Item13
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4321.6724,24.29775,3992.0872};
+ angles[]={6.2645216,4.9720054,0.039977662};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""btc_dont_delete"",true]";
+ name="btc_veh_14";
+ };
+ id=22;
+ type="RHS_UH1Y_d";
+ atlOffset=-0.004776001;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ammoBox";
+ expression="[_this,_value] call bis_fnc_initAmmoBox;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="[[[[""rhs_weap_m4_carryhandle"",""FirstAidKit"",""Medikit""],[2,10,2]],[[""rhs_mag_30Rnd_556x45_M855A1_Stanag"",""rhs_mag_m67"",""rhs_mag_m18_green"",""rhs_mag_m18_red"",""rhs_mag_an_m8hc""],[12,4,2,2,4]],[[],[]],[[""B_Parachute""],[4]]],false]";
+ };
+ };
+ };
+ nAttributes=1;
+ };
+ };
+ class Item14
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4319.625,22.049675,3992.5};
+ angles[]={6.2645183,0.1613543,0.018667053};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ };
+ id=23;
+ type="Land_HelipadSquare_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ace_isMedicalFacility";
+ expression="_this setVariable [""ace_medical_isMedicalFacility"",_value,true];";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ nAttributes=1;
+ };
+ };
+ class Item15
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4212.5469,19.360876,4017.093};
+ angles[]={6.2698536,4.3477578,6.259192};
+ };
+ side="West";
+ flags=6;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""side_mission"",true]";
+ description=$STR_BTC_HAM_MSQM_OFFICER;
+ isPlayer=1;
+ isPlayable=1;
+ };
+ id=25;
+ type="B_officer_F";
+ atlOffset=-3.8146973e-006;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ace_isHandcuffed";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.98000002;
+ };
+ };
+ };
+ class Attribute2
+ {
+ property="ace_isSurrendered";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ nAttributes=3;
+ };
+ };
+ };
+ class Attributes
+ {
+ };
+ id=24;
+ atlOffset=-3.8146973e-006;
+ };
+ class Item16
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4213.5083,19.405031,4022.5779};
+ angles[]={6.2698536,4.3204784,6.2698536};
+ };
+ side="West";
+ flags=6;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""interpreter"",true]";
+ description=$STR_BTC_HAM_MSQM_INTERPRETER;
+ isPlayable=1;
+ };
+ id=29;
+ type="B_Soldier_F";
+ atlOffset=-1.9073486e-006;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ace_isHandcuffed";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1.04;
+ };
+ };
+ };
+ class Attribute2
+ {
+ property="ace_isSurrendered";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ nAttributes=3;
+ };
+ };
+ };
+ class Attributes
+ {
+ };
+ id=28;
+ atlOffset=-1.9073486e-006;
+ };
+ class Item17
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4213.9482,19.380543,4021.1812};
+ angles[]={6.2698507,4.1308804,6.2698507};
+ };
+ side="West";
+ flags=6;
+ class Attributes
+ {
+ skill=0.60000002;
+ description=$STR_ACE_Repair_AssignEngineerRole_role_advanced;
+ isPlayable=1;
+ };
+ id=31;
+ type="B_engineer_F";
+ atlOffset=1.9073486e-006;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ace_isHandcuffed";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="ace_isEngineer";
+ expression="if (_value != -1) then {_this setVariable ['ace_isEngineer',_value, true];}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=2;
+ };
+ };
+ };
+ class Attribute2
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male02ENG";
+ };
+ };
+ };
+ class Attribute3
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.99000001;
+ };
+ };
+ };
+ class Attribute4
+ {
+ property="ace_isSurrendered";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ nAttributes=5;
+ };
+ };
+ };
+ class Attributes
+ {
+ };
+ id=30;
+ atlOffset=1.9073486e-006;
+ };
+ class Item18
+ {
+ dataType="Logic";
+ class PositionInfo
+ {
+ position[]={3985.1992,-5.0633116,3906.0693};
+ angles[]={6.272521,0,0.093063653};
+ };
+ name="btc_curator";
+ init="this addEventHandler ['CuratorObjectPlaced',{_this call btc_fnc_eh_CuratorObjectPlaced}];";
+ id=71;
+ type="ModuleCurator_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ModuleCurator_F_Owner";
+ expression="_this setVariable ['Owner',_value,true];";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="#adminLogged";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="ModuleCurator_F_Forced";
+ expression="_this setVariable ['Forced',_value,true];";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ class Attribute2
+ {
+ property="ModuleCurator_F_Name";
+ expression="_this setVariable ['Name',_value,true];";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="";
+ };
+ };
+ };
+ class Attribute3
+ {
+ property="ModuleInfo";
+ expression="false";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ class Attribute4
+ {
+ property="ModuleCurator_F_Addons";
+ expression="_this setVariable ['Addons',_value,true];";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=3;
+ };
+ };
+ };
+ nAttributes=5;
+ };
+ };
+ class Item19
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4202.4067,19.632608,4026.0737};
+ angles[]={0,2.8130026,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=90;
+ type="B_medic_F";
+ atlOffset=1.9073486e-006;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ace_isHandcuffed";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ class Attribute2
+ {
+ property="ace_isSurrendered";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ nAttributes=3;
+ };
+ };
+ };
+ class Attributes
+ {
+ };
+ id=89;
+ atlOffset=1.9073486e-006;
+ };
+ class Item20
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4204.2739,19.586445,4026.7244};
+ angles[]={0,2.8130026,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=92;
+ type="B_medic_F";
+ atlOffset=-3.8146973e-006;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ace_isHandcuffed";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.98000002;
+ };
+ };
+ };
+ class Attribute2
+ {
+ property="ace_isSurrendered";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ nAttributes=3;
+ };
+ };
+ };
+ class Attributes
+ {
+ };
+ id=91;
+ atlOffset=-3.8146973e-006;
+ };
+ class Item21
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4205.6602,19.529768,4019.4685};
+ angles[]={0,1.2144552,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=94;
+ type="B_Soldier_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ace_isHandcuffed";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ class Attribute2
+ {
+ property="ace_isSurrendered";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ nAttributes=3;
+ };
+ };
+ };
+ class Attributes
+ {
+ };
+ id=93;
+ };
+ class Item22
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4206.125,19.507095,4017.9248};
+ angles[]={0,1.2144552,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=96;
+ type="B_Soldier_F";
+ atlOffset=-3.8146973e-006;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ace_isHandcuffed";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ class Attribute2
+ {
+ property="ace_isSurrendered";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ nAttributes=3;
+ };
+ };
+ };
+ class Attributes
+ {
+ };
+ id=95;
+ atlOffset=-3.8146973e-006;
+ };
+ class Item23
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4206.751,19.485619,4016.3379};
+ angles[]={0,1.2144552,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=98;
+ type="B_Soldier_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ace_isHandcuffed";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1.01;
+ };
+ };
+ };
+ class Attribute2
+ {
+ property="ace_isSurrendered";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ nAttributes=3;
+ };
+ };
+ };
+ class Attributes
+ {
+ };
+ id=97;
+ };
+ class Item24
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4207.3213,19.4573,4014.6621};
+ angles[]={0,1.2144552,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=100;
+ type="B_Soldier_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ace_isHandcuffed";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1.01;
+ };
+ };
+ };
+ class Attribute2
+ {
+ property="ace_isSurrendered";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ nAttributes=3;
+ };
+ };
+ };
+ class Attributes
+ {
+ };
+ id=99;
+ };
+ class Item25
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4207.875,19.426762,4013.0498};
+ angles[]={0,1.2144552,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=102;
+ type="B_Soldier_F";
+ atlOffset=1.9073486e-006;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ace_isHandcuffed";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.99000001;
+ };
+ };
+ };
+ class Attribute2
+ {
+ property="ace_isSurrendered";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ nAttributes=3;
+ };
+ };
+ };
+ class Attributes
+ {
+ };
+ id=101;
+ atlOffset=1.9073486e-006;
+ };
+ class Item26
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4208.4458,19.392982,4011.3767};
+ angles[]={0,1.2144552,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=104;
+ type="B_Soldier_F";
+ atlOffset=-3.8146973e-006;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ace_isHandcuffed";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1.03;
+ };
+ };
+ };
+ class Attribute2
+ {
+ property="ace_isSurrendered";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ nAttributes=3;
+ };
+ };
+ };
+ class Attributes
+ {
+ };
+ id=103;
+ atlOffset=-3.8146973e-006;
+ };
+ class Item27
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4208.9639,19.36977,4009.9202};
+ angles[]={0,1.2144552,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=106;
+ type="B_Soldier_F";
+ atlOffset=-1.9073486e-006;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ace_isHandcuffed";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1.02;
+ };
+ };
+ };
+ class Attribute2
+ {
+ property="ace_isSurrendered";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ nAttributes=3;
+ };
+ };
+ };
+ class Attributes
+ {
+ };
+ id=105;
+ atlOffset=-1.9073486e-006;
+ };
+ class Item28
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4209.5347,19.338087,4008.2456};
+ angles[]={0,1.2144552,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=108;
+ type="B_Soldier_F";
+ atlOffset=3.8146973e-006;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ace_isHandcuffed";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1.05;
+ };
+ };
+ };
+ class Attribute2
+ {
+ property="ace_isSurrendered";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ nAttributes=3;
+ };
+ };
+ };
+ class Attributes
+ {
+ };
+ id=107;
+ atlOffset=3.8146973e-006;
+ };
+ class Item29
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4210.04,19.298412,4006.6853};
+ angles[]={0,1.2144643,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=110;
+ type="B_Soldier_F";
+ atlOffset=-1.9073486e-006;
+ };
+ };
+ class Attributes
+ {
+ };
+ id=109;
+ atlOffset=-1.9073486e-006;
+ };
+ class Item30
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4210.6113,19.249859,4005.011};
+ angles[]={0,1.2144643,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=112;
+ type="B_Soldier_F";
+ };
+ };
+ class Attributes
+ {
+ };
+ id=111;
+ };
+ class Item31
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4203.8584,19.552221,4018.7021};
+ angles[]={0,1.2144552,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=114;
+ type="B_Soldier_F";
+ atlOffset=-3.8146973e-006;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ace_isHandcuffed";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ class Attribute2
+ {
+ property="ace_isSurrendered";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ nAttributes=3;
+ };
+ };
+ };
+ class Attributes
+ {
+ };
+ id=113;
+ atlOffset=-3.8146973e-006;
+ };
+ class Item32
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4204.375,19.535097,4017.2998};
+ angles[]={0,1.2144552,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=116;
+ type="B_Soldier_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ace_isHandcuffed";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.95999998;
+ };
+ };
+ };
+ class Attribute2
+ {
+ property="ace_isSurrendered";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ nAttributes=3;
+ };
+ };
+ };
+ class Attributes
+ {
+ };
+ id=115;
+ };
+ class Item33
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4204.9468,19.511341,4015.573};
+ angles[]={0,1.2144552,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=118;
+ type="B_Soldier_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ace_isHandcuffed";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.95999998;
+ };
+ };
+ };
+ class Attribute2
+ {
+ property="ace_isSurrendered";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ nAttributes=3;
+ };
+ };
+ };
+ class Attributes
+ {
+ };
+ id=117;
+ };
+ class Item34
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4205.519,19.489536,4013.8979};
+ angles[]={0,1.2144552,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=120;
+ type="B_Soldier_F";
+ atlOffset=-3.8146973e-006;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ace_isHandcuffed";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.97000003;
+ };
+ };
+ };
+ class Attribute2
+ {
+ property="ace_isSurrendered";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ nAttributes=3;
+ };
+ };
+ };
+ class Attributes
+ {
+ };
+ id=119;
+ atlOffset=-3.8146973e-006;
+ };
+ class Item35
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4206.125,19.470091,4011.9248};
+ angles[]={0,1.2144552,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=122;
+ type="B_Soldier_F";
+ atlOffset=-3.8146973e-006;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ace_isHandcuffed";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.99000001;
+ };
+ };
+ };
+ class Attribute2
+ {
+ property="ace_isSurrendered";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ nAttributes=3;
+ };
+ };
+ };
+ class Attributes
+ {
+ };
+ id=121;
+ atlOffset=-3.8146973e-006;
+ };
+ class Item36
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4206.75,19.44743,4010.2998};
+ angles[]={0,1.2144552,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=124;
+ type="B_Soldier_F";
+ atlOffset=-3.8146973e-006;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ace_isHandcuffed";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleHandcuffed}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1.03;
+ };
+ };
+ };
+ class Attribute2
+ {
+ property="ace_isSurrendered";
+ expression="if (_value) then {[objNull,[_this],true] call ace_captives_fnc_moduleSurrender}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ nAttributes=3;
+ };
+ };
+ };
+ class Attributes
+ {
+ };
+ id=123;
+ atlOffset=-3.8146973e-006;
+ };
+ class Item37
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4207.1621,19.432291,4009.155};
+ angles[]={0,1.2144643,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=126;
+ type="B_Soldier_F";
+ atlOffset=-5.7220459e-006;
+ };
+ };
+ class Attributes
+ {
+ };
+ id=125;
+ atlOffset=-5.7220459e-006;
+ };
+ class Item38
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4207.7329,19.386436,4007.4795};
+ angles[]={0,1.2144643,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=128;
+ type="B_Soldier_F";
+ atlOffset=-3.8146973e-006;
+ };
+ };
+ class Attributes
+ {
+ };
+ id=127;
+ atlOffset=-3.8146973e-006;
+ };
+ class Item39
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4208.2378,19.338343,4005.9192};
+ angles[]={0,1.2144643,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=130;
+ type="B_Soldier_F";
+ atlOffset=5.7220459e-006;
+ };
+ };
+ class Attributes
+ {
+ };
+ id=129;
+ atlOffset=5.7220459e-006;
+ };
+ class Item40
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=1;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4208.8101,19.29657,4004.2451};
+ angles[]={0,1.2144643,0};
+ };
+ side="West";
+ flags=7;
+ class Attributes
+ {
+ isPlayable=1;
+ };
+ id=132;
+ type="B_Soldier_F";
+ };
+ };
+ class Attributes
+ {
+ };
+ id=131;
+ };
+ class Item41
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4265.0215,22.082785,3986.5215};
+ angles[]={6.2698536,3.7083344,0.079830162};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""btc_dont_delete"",true];";
+ name="btc_veh_1";
+ };
+ id=213;
+ type="RHS_M2A3_wd";
+ atlOffset=-0.0076828003;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ammoBox";
+ expression="[_this,_value] call bis_fnc_initAmmoBox;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="[[[[""rhs_weap_m4_carryhandle_pmag"",""rhs_weap_fgm148"",""FirstAidKit"",""Medikit""],[4,2,10,2]],[[""rhs_mag_30Rnd_556x45_M855A1_Stanag"",""rhsusf_100Rnd_556x45_soft_pouch"",""rhsusf_100Rnd_762x51"",""rhs_fgm148_magazine_AT"",""rhs_mag_M441_HE"",""rhs_mag_m714_White"",""rhs_mag_m662_red"",""rhs_mag_m67"",""rhs_mag_m18_green"",""rhs_mag_m18_red"",""rhs_mag_an_m8hc""],[75,11,11,4,20,8,4,10,4,4,10]],[[""ToolKit""],[1]],[[""rhsusf_falconii""],[8]]],false]";
+ };
+ };
+ };
+ nAttributes=1;
+ };
+ };
+ class Item42
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4213.5605,20.973347,3988.6531};
+ angles[]={6.2007008,0.836833,0.0053407075};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""btc_dont_delete"",true]";
+ name="btc_veh_7";
+ };
+ id=214;
+ type="rhsusf_m1025_w_m2";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="rhs_decalMask";
+ expression="if(_value != 'NoChange')then{ [_this,'unitdecals_1',_value] call rhs_fnc_hmmwv_setDecal}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="NoChange";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="rhs_decalDoors";
+ expression="if(_value != 'NoChange')then{ [_this,'unitdecals_2',_value] call rhs_fnc_hmmwv_setDecal}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="NoChange";
+ };
+ };
+ };
+ class Attribute2
+ {
+ property="ammoBox";
+ expression="[_this,_value] call bis_fnc_initAmmoBox;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="[[[[""rhs_weap_m4_carryhandle"",""rhs_weap_M136_hedp"",""FirstAidKit""],[2,2,4]],[[""rhs_m136_hedp_mag"",""rhs_mag_30Rnd_556x45_M855A1_Stanag"",""rhsusf_100Rnd_556x45_soft_pouch"",""rhs_mag_M441_HE"",""rhs_mag_m714_White"",""rhs_mag_m662_red"",""rhs_mag_m67"",""rhs_mag_m18_green"",""rhs_mag_m18_red"",""rhs_mag_an_m8hc""],[2,20,8,16,4,2,4,2,2,4]],[[],[]],[[""rhsusf_falconii""],[2]]],false]";
+ };
+ };
+ };
+ nAttributes=3;
+ };
+ };
+ class Item43
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4219.061,20.742113,3984.6533};
+ angles[]={6.2405472,0.43331289,0.010663962};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""btc_dont_delete"",true]";
+ name="btc_veh_2";
+ };
+ id=215;
+ type="rhsusf_m1025_w_m2";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="rhs_decalMask";
+ expression="if(_value != 'NoChange')then{ [_this,'unitdecals_1',_value] call rhs_fnc_hmmwv_setDecal}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="NoChange";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="rhs_decalDoors";
+ expression="if(_value != 'NoChange')then{ [_this,'unitdecals_2',_value] call rhs_fnc_hmmwv_setDecal}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="NoChange";
+ };
+ };
+ };
+ class Attribute2
+ {
+ property="ammoBox";
+ expression="[_this,_value] call bis_fnc_initAmmoBox;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="[[[[""rhs_weap_m4_carryhandle"",""rhs_weap_M136_hedp"",""FirstAidKit""],[2,2,4]],[[""rhs_m136_hedp_mag"",""rhs_mag_30Rnd_556x45_M855A1_Stanag"",""rhsusf_100Rnd_556x45_soft_pouch"",""rhs_mag_M441_HE"",""rhs_mag_m714_White"",""rhs_mag_m662_red"",""rhs_mag_m67"",""rhs_mag_m18_green"",""rhs_mag_m18_red"",""rhs_mag_an_m8hc""],[2,20,8,16,4,2,4,2,2,4]],[[],[]],[[""rhsusf_falconii""],[2]]],false]";
+ };
+ };
+ };
+ nAttributes=3;
+ };
+ };
+ class Item44
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4224.6836,20.637239,3981.2756};
+ angles[]={6.2272477,0.45174354,0.0079936078};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""btc_dont_delete"",true]";
+ name="btc_veh_3";
+ };
+ id=216;
+ type="rhsusf_m1025_w_m2";
+ atlOffset=1.9073486e-006;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="rhs_decalMask";
+ expression="if(_value != 'NoChange')then{ [_this,'unitdecals_1',_value] call rhs_fnc_hmmwv_setDecal}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="NoChange";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="rhs_decalDoors";
+ expression="if(_value != 'NoChange')then{ [_this,'unitdecals_2',_value] call rhs_fnc_hmmwv_setDecal}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="NoChange";
+ };
+ };
+ };
+ class Attribute2
+ {
+ property="ammoBox";
+ expression="[_this,_value] call bis_fnc_initAmmoBox;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="[[[[""rhs_weap_m4_carryhandle"",""rhs_weap_M136_hedp"",""FirstAidKit""],[2,2,4]],[[""rhs_m136_hedp_mag"",""rhs_mag_30Rnd_556x45_M855A1_Stanag"",""rhsusf_100Rnd_556x45_soft_pouch"",""rhs_mag_M441_HE"",""rhs_mag_m714_White"",""rhs_mag_m662_red"",""rhs_mag_m67"",""rhs_mag_m18_green"",""rhs_mag_m18_red"",""rhs_mag_an_m8hc""],[2,20,8,16,4,2,4,2,2,4]],[[],[]],[[""rhsusf_falconii""],[2]]],false]";
+ };
+ };
+ };
+ nAttributes=3;
+ };
+ };
+ class Item45
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4242.1729,20.918491,3972.4004};
+ angles[]={6.251193,0.4537856,0.14301229};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""btc_dont_delete"",true]";
+ name="btc_veh_4";
+ };
+ id=217;
+ type="rhsusf_m1025_w_m2";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="rhs_decalMask";
+ expression="if(_value != 'NoChange')then{ [_this,'unitdecals_1',_value] call rhs_fnc_hmmwv_setDecal}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="NoChange";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="rhs_decalDoors";
+ expression="if(_value != 'NoChange')then{ [_this,'unitdecals_2',_value] call rhs_fnc_hmmwv_setDecal}";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="NoChange";
+ };
+ };
+ };
+ class Attribute2
+ {
+ property="ammoBox";
+ expression="[_this,_value] call bis_fnc_initAmmoBox;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="[[[[""rhs_weap_m4_carryhandle"",""rhs_weap_M136_hedp"",""FirstAidKit""],[2,2,4]],[[""rhs_m136_hedp_mag"",""rhs_mag_30Rnd_556x45_M855A1_Stanag"",""rhsusf_100Rnd_556x45_soft_pouch"",""rhs_mag_M441_HE"",""rhs_mag_m714_White"",""rhs_mag_m662_red"",""rhs_mag_m67"",""rhs_mag_m18_green"",""rhs_mag_m18_red"",""rhs_mag_an_m8hc""],[2,20,8,16,4,2,4,2,2,4]],[[],[]],[[""rhsusf_falconii""],[2]]],false]";
+ };
+ };
+ };
+ nAttributes=3;
+ };
+ };
+ class Item46
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4248.0615,21.338169,3969.1675};
+ angles[]={0.045302324,0.4537856,0.10890055};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ init="this setVariable [""btc_dont_delete"",true]";
+ name="btc_veh_15";
+ };
+ id=241;
+ type="rhsusf_M1078A1P2_B_WD_fmtv_usarmy";
+ atlOffset=-0.27951813;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ammoBox";
+ expression="[_this,_value] call bis_fnc_initAmmoBox;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="[[[[""rhs_weap_m4_carryhandle"",""FirstAidKit""],[2,4]],[[""rhs_mag_30Rnd_556x45_M855A1_Stanag"",""rhs_mag_m67"",""rhs_mag_m18_green"",""rhs_mag_m18_red"",""rhs_mag_an_m8hc""],[10,2,2,2,4]],[[""ToolKit""],[1]],[[""rhsusf_falconii""],[1]]],false]";
+ };
+ };
+ };
+ nAttributes=1;
+ };
+ };
+ class Item47
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4233.0352,21.638979,3999.2959};
+ angles[]={0,3.3611374,0.0079936078};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""btc_dont_delete"",true]";
+ name="btc_veh_8";
+ };
+ id=244;
+ type="rhsusf_M1078A1P2_B_M2_WD_open_fmtv_usarmy";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ammoBox";
+ expression="[_this,_value] call bis_fnc_initAmmoBox;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="[[[[""FirstAidKit""],[10]],[[],[]],[[],[]],[[],[]]],false]";
+ };
+ };
+ };
+ nAttributes=1;
+ };
+ };
+ class Item48
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4240.4561,21.697552,3995.7307};
+ angles[]={6.2805324,3.3253233,0.016004669};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""btc_dont_delete"",true]";
+ name="btc_veh_9";
+ };
+ id=245;
+ type="rhsusf_M1078A1P2_B_M2_WD_open_fmtv_usarmy";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ammoBox";
+ expression="[_this,_value] call bis_fnc_initAmmoBox;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="[[[[""FirstAidKit""],[10]],[[],[]],[[],[]],[[],[]]],false]";
+ };
+ };
+ };
+ nAttributes=1;
+ };
+ };
+ class Item49
+ {
+ dataType="Logic";
+ class PositionInfo
+ {
+ position[]={4206.125,19.548992,4027.375};
+ angles[]={6.2805109,0,6.2618566};
+ };
+ name="btc_hc_1";
+ isPlayable=1;
+ id=246;
+ type="HeadlessClient_F";
+ };
+ class Item50
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4230.4194,19.875408,3979.3396};
+ angles[]={6.2352238,0.38933057,0.0079936078};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""btc_dont_delete"",true]";
+ name="btc_veh_6";
+ };
+ id=247;
+ type="rhsusf_M1237_M2_usarmy_wd";
+ atlOffset=-0.0060005188;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ammoBox";
+ expression="[_this,_value] call bis_fnc_initAmmoBox;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="[[[[""rhs_weap_m4_carryhandle"",""FirstAidKit"",""Medikit""],[2,8,1]],[[""rhs_mag_30Rnd_556x45_M855A1_Stanag"",""rhs_mag_M433_HEDP"",""rhsusf_100Rnd_556x45_soft_pouch"",""rhs_mag_M441_HE"",""rhs_mag_m714_White"",""rhs_mag_m662_red"",""rhs_mag_m67"",""rhs_mag_m18_green"",""rhs_mag_m18_red"",""rhs_mag_an_m8hc""],[30,20,11,10,4,2,4,2,2,4]],[[],[]],[[""rhsusf_falconii""],[4]]],false]";
+ };
+ };
+ };
+ nAttributes=1;
+ };
+ };
+ class Item51
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4235.7686,19.755186,3975.4988};
+ angles[]={6.1980653,0.46773079,0.071872659};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="this setVariable [""btc_dont_delete"",true]";
+ name="btc_veh_5";
+ };
+ id=248;
+ type="rhsusf_M1237_M2_usarmy_wd";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ammoBox";
+ expression="[_this,_value] call bis_fnc_initAmmoBox;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="[[[[""rhs_weap_m4_carryhandle"",""FirstAidKit"",""Medikit""],[2,8,1]],[[""rhs_mag_30Rnd_556x45_M855A1_Stanag"",""rhs_mag_M433_HEDP"",""rhsusf_100Rnd_556x45_soft_pouch"",""rhs_mag_M441_HE"",""rhs_mag_m714_White"",""rhs_mag_m662_red"",""rhs_mag_m67"",""rhs_mag_m18_green"",""rhs_mag_m18_red"",""rhs_mag_an_m8hc""],[30,20,11,10,4,2,4,2,2,4]],[[],[]],[[""rhsusf_falconii""],[4]]],false]";
+ };
+ };
+ };
+ nAttributes=1;
+ };
+ };
+ };
+};
diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml
new file mode 100644
index 000000000..1ace2e281
--- /dev/null
+++ b/=BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml
@@ -0,0 +1,1465 @@
+
+
- - + + @@ -25,7 +25,7 @@ A new formed group, known as "Oplitas", is against the NATO intervention and is - Repair wreck system - Logistic system - Interaction system -- Realistic IED/Suicide bomber system +- Realistic IED/Suicide/Drone bomber system - Civilian interaction/fleeing - Reputation system - Deep ACE3 support