From 1f970c7f2a61e401eaf03a45dc633904f43790b7 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 5 Nov 2016 13:11:17 +0100 Subject: [PATCH 001/120] Add: cycle side mission --- .../core/fnc/side/create.sqf | 40 ++++++++++++------- .../core/init_server.sqf | 6 ++- 2 files changed, 30 insertions(+), 16 deletions(-) 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 13bb1ccbb..609e1ec23 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 @@ -1,8 +1,14 @@ -private ["_side"]; - if (btc_side_assigned) exitWith {}; +private ["_side","_cycle"]; + +if (_this isEqualTo []) then { + _cycle = false; +} else { + _cycle = true; +}; + if (count btc_side_list_use == 0) then {btc_side_list_use = + btc_side_list;}; _side = selectRandom btc_side_list_use; @@ -14,17 +20,21 @@ btc_side_done = false; btc_side_failed = false; switch (_side) do { - case 0 : {[] spawn btc_fnc_side_supply;}; - case 1 : {[] spawn btc_fnc_side_mines;}; - case 2 : {[] spawn btc_fnc_side_vehicle;}; - case 3 : {[] spawn btc_fnc_side_get_city;}; - case 4 : {[] spawn btc_fnc_side_tower;}; - case 5 : {[] spawn btc_fnc_side_civtreatment;}; - case 6 : {[] spawn btc_fnc_side_checkpoint;}; - case 7 : {[] spawn btc_fnc_side_civtreatment_boat;}; - case 8 : {[] spawn btc_fnc_side_underwater_generator;}; - case 9 : {[] spawn btc_fnc_side_convoy;}; - case 10 : {[] spawn btc_fnc_side_rescue;}; - case 11 : {[] spawn btc_fnc_side_capture_officer;}; - case 12 : {[] spawn btc_fnc_side_hostage;}; + 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;}; +}; + +if (_cycle) then { + [true] spawn btc_fnc_side_create; }; \ No newline at end of file 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 ad7cb63e6..f9096bc57 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 @@ -22,4 +22,8 @@ if (btc_db_load && {profileNamespace getVariable [format ["btc_hm_%1_db",worldNa }; }; -{[_x,30,false] spawn btc_fnc_eh_veh_add_respawn;} forEach btc_helo; \ No newline at end of file +{[_x,30,false] spawn btc_fnc_eh_veh_add_respawn;} forEach btc_helo; + +if (false) then { + [true] spawn btc_fnc_side_create; +}; \ No newline at end of file From 55c8202c3f7ac8aa87600f6cd664eca18f58068e Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 5 Nov 2016 13:21:26 +0100 Subject: [PATCH 002/120] fix: parameter takes by create side fnc --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/create.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 609e1ec23..e1df78968 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 @@ -6,7 +6,7 @@ private ["_side","_cycle"]; if (_this isEqualTo []) then { _cycle = false; } else { - _cycle = true; + _cycle = _this select 0; }; if (count btc_side_list_use == 0) then {btc_side_list_use = + btc_side_list;}; From 4998724ba4799df24b5238492e67eee4831cd8b7 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 30 Dec 2016 15:23:05 +0100 Subject: [PATCH 003/120] Add: use class name parent for civil orders. --- .../core/fnc/int/add_actions.sqf | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) 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 151a549f7..78d26225d 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 @@ -65,21 +65,22 @@ _action = ["Civil_Get_down","Get down","\A3\ui_f\data\igui\cfg\simpleTasks\types _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; [player, 1, ["ACE_SelfActions","Civil_Orders"], _action] call ace_interact_menu_fnc_addActionToObject; - +player sideChat "Civil_Orders start"; _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;} foreach btc_civ_type_units; +["Civilian", 0, ["ACE_MainActions"], _action, true] 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;} foreach btc_civ_type_units; +["Civilian", 0, ["ACE_MainActions","Civil_Orders"], _action, true] 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;} foreach btc_civ_type_units; +["Civilian", 0, ["ACE_MainActions","Civil_Orders"], _action, true] 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;} foreach btc_civ_type_units; +["Civilian", 0, ["ACE_MainActions","Civil_Orders"], _action, true] 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;} foreach btc_civ_type_units; +["Civilian", 0, ["ACE_MainActions","Civil_Orders"], _action, true] 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;} foreach btc_civ_type_units; +["Civilian", 0, ["ACE_MainActions"], _action, true] 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;} foreach btc_civ_type_units; +["Civilian", 0, ["ACE_MainActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; +player sideChat "Civil_Orders end"; //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; From d77c8a41b401932b2a2d5656c7552d3985f15626 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 30 Dec 2016 16:29:39 +0100 Subject: [PATCH 004/120] Rmv debug --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf | 2 -- 1 file changed, 2 deletions(-) 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 78d26225d..47276fd60 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 @@ -65,7 +65,6 @@ _action = ["Civil_Get_down","Get down","\A3\ui_f\data\igui\cfg\simpleTasks\types _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; [player, 1, ["ACE_SelfActions","Civil_Orders"], _action] call ace_interact_menu_fnc_addActionToObject; -player sideChat "Civil_Orders start"; _action = ["Civil_Orders","Civil Orders","\A3\ui_f\data\igui\cfg\simpleTasks\types\meet_ca.paa",{},{true}] call ace_interact_menu_fnc_createAction; ["Civilian", 0, ["ACE_MainActions"], _action, true] 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; @@ -80,7 +79,6 @@ _action = ["Ask_Info", "Ask info", "\A3\ui_f\data\igui\cfg\simpleTasks\types\tal ["Civilian", 0, ["ACE_MainActions"], _action, true] 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; ["Civilian", 0, ["ACE_MainActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; -player sideChat "Civil_Orders end"; //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; From 107403ea67d2206355105a3742c2d6c247db26ae Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 9 Feb 2017 23:25:36 +0100 Subject: [PATCH 005/120] Add global variable for cycle --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 1 + =BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) 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 81d7fe73e..05f08c8e7 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 @@ -51,6 +51,7 @@ _p_rep = (paramsArray select 34); ace_rearm_level = (paramsArray select 35); btc_p_sea = if ((paramsArray select 36) isEqualTo 0) then {false} else {true}; _p_city_radius = (paramsArray select 37) * 100; +btc_side_mission_cycle = true; btc_p_debug = (paramsArray select 38); //MED 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 f9096bc57..77301855b 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 @@ -24,6 +24,6 @@ if (btc_db_load && {profileNamespace getVariable [format ["btc_hm_%1_db",worldNa {[_x,30,false] spawn btc_fnc_eh_veh_add_respawn;} forEach btc_helo; -if (false) then { +if (btc_side_mission_cycle) then { [true] spawn btc_fnc_side_create; }; \ No newline at end of file From 75bbe1d91b1984fa5bd63efa351c3be25d7f0d96 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 9 Feb 2017 23:27:32 +0100 Subject: [PATCH 006/120] false by default --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 05f08c8e7..ee132cb1d 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 @@ -51,7 +51,7 @@ _p_rep = (paramsArray select 34); ace_rearm_level = (paramsArray select 35); btc_p_sea = if ((paramsArray select 36) isEqualTo 0) then {false} else {true}; _p_city_radius = (paramsArray select 37) * 100; -btc_side_mission_cycle = true; +btc_side_mission_cycle = false; btc_p_debug = (paramsArray select 38); //MED From fbe05a4b1cdadacf4b75302f44fdc01b6f4d63db Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 11 Feb 2017 09:21:26 +0100 Subject: [PATCH 007/120] Add automatic veh motororized detection base on faction --- .../core/def/mission.sqf | 13 +++++++------ .../core/fnc/common/find_veh_with_turret.sqf | 19 +++++++++++++++++++ .../core/fnc/compile.sqf | 1 + 3 files changed, 27 insertions(+), 6 deletions(-) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/find_veh_with_turret.sqf 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 4ee416884..bcc5c7814 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 @@ -236,12 +236,7 @@ btc_supplies_mat = "Land_Cargo20_red_F"; if (isServer) then { #define REARM_TURRET_PATHS [[-1], [0], [0,0], [0,1], [1], [2], [0,2]] - _btc_rearming_vehicles = []; - { - if (count (configFile >> "CfgVehicles" >> typeOf _x >> "Turrets") > 0) then { - _btc_rearming_vehicles pushBackUnique typeOf _x; - }; - } forEach (btc_vehicles + btc_helo); + _btc_rearming_vehicles = [btc_vehicles + btc_helo] call btc_fnc_find_veh_with_turret; _btc_rearming_static = [ @@ -479,6 +474,9 @@ btc_lift_HUD_y = 0.848; //Mil btc_player_side = west; btc_respawn_marker = "respawn_west"; +private _allvehicles = (("(configName _x) isKindOf 'AllVehicles'" configClasses (configFile >> "CfgVehicles")) apply {configName _x}) select { + ((_x isKindOf "Air") || (_x isKindOf "Helicopter") || (_x isKindOf "Tank") || (_x isKindOf "Car")) +}; switch (true) do { case (_p_en == 0) : { btc_hq = btc_hq_red; @@ -628,6 +626,9 @@ switch (true) do { btc_type_gl = ["O_GMG_01_F","O_GMG_01_high_F"]; } }; +private _veh_armed = [_allvehicles] call btc_fnc_find_veh_with_turret; +btc_type_motorized_armed = _veh_armed select {getText(configFile >> "cfgvehicles" >> _x >> "faction") isEqualTo getText(configFile >> "cfgvehicles" >> btc_type_motorized select (count (btc_type_motorized) -1) >> "faction")}; + //Rep btc_rep_bonus_cache = 100; 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 new file mode 100644 index 000000000..951c470e4 --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/find_veh_with_turret.sqf @@ -0,0 +1,19 @@ + +private ["_veh_array","_veh_with_turret"]; + +if ((_this select 0) isEqualTypeAll objNull) then { + _veh_array = (_this select 0) apply {typeOf _x}; +} else { + _veh_array = _this select 0; +}; + +_veh_with_turret = []; +{ + private _turrets = "true" configClasses (configFile >> "CfgVehicles" >> _x >> "Turrets"); + + if ({!("CargoTurret" in ([_x,true] call BIS_fnc_returnParents))} count _turrets > 0) 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/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 26cc42068..5b5445e7b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -146,6 +146,7 @@ if (isServer OR (!isDedicated && !hasInterface)) then { //COMMON //btc_fnc_veh_track_marker = compile preprocessFile "core\fnc\common\veh_track_marker.sqf"; +btc_fnc_find_veh_with_turret = compile preprocessFile "core\fnc\common\find_veh_with_turret.sqf"; //DB btc_fnc_db_add_veh = compile preprocessFile "core\fnc\db\add_veh.sqf"; From c3e15f60f982d621eccbbe6999b866c0e9af59d1 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 11 Feb 2017 09:30:15 +0100 Subject: [PATCH 008/120] Add p_ convention --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/init_server.sqf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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 ee132cb1d..8b40753f2 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 @@ -51,7 +51,7 @@ _p_rep = (paramsArray select 34); ace_rearm_level = (paramsArray select 35); btc_p_sea = if ((paramsArray select 36) isEqualTo 0) then {false} else {true}; _p_city_radius = (paramsArray select 37) * 100; -btc_side_mission_cycle = false; +btc_p_side_mission_cycle = false; btc_p_debug = (paramsArray select 38); //MED 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 77301855b..3ccdff0aa 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 @@ -24,6 +24,6 @@ if (btc_db_load && {profileNamespace getVariable [format ["btc_hm_%1_db",worldNa {[_x,30,false] spawn btc_fnc_eh_veh_add_respawn;} forEach btc_helo; -if (btc_side_mission_cycle) then { +if (btc_p_side_mission_cycle) then { [true] spawn btc_fnc_side_create; }; \ No newline at end of file From 9f5fa4e89f525055275b8122d1927e531970e085 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 11 Feb 2017 12:57:30 +0100 Subject: [PATCH 009/120] Add: send motorized armed for hideout send random number of armed motorized --- .../core/def/mission.sqf | 1 + .../core/fnc/city/activate.sqf | 6 +++ .../core/fnc/data/add_group.sqf | 40 ++++++------------- .../core/fnc/mil/send.sqf | 12 +++++- 4 files changed, 29 insertions(+), 30 deletions(-) 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 bcc5c7814..74402d006 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 @@ -52,6 +52,7 @@ _p_rep = (paramsArray select 35); ace_rearm_level = (paramsArray select 36); btc_p_sea = if ((paramsArray select 37) isEqualTo 0) then {false} else {true}; _p_city_radius = (paramsArray select 38) * 100; +btc_p_veh_armed = true; btc_p_debug = (paramsArray select 39); //MED 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 bb512efaf..8108ca6e1 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 @@ -133,6 +133,12 @@ if (_has_ho && {!(_city getVariable ["ho_units_spawned",false])}) then { [[(_pos select 0) - 7,(_pos select 1) - 7,0],_statics,225] call btc_fnc_mil_create_static; }; }; + if (btc_p_veh_armed) 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 { + [_closest,_pos,1,selectRandom btc_type_motorized_armed] spawn btc_fnc_mil_send; + }; + }; }; if (count _ieds > 0) then { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/add_group.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/add_group.sqf index a3aceac7d..7ef7379cb 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/add_group.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/add_group.sqf @@ -1,51 +1,35 @@ +/* + If player is around, initiate patrol around the destination, ifnot save in database and delete units by calling btc_fnc_data_get_group. +*/ private ["_group","_city","_wp","_marker"]; _group = _this; _group setVariable ["no_cache",nil]; -diag_log format ["ADD GROUP = %1",_group]; +if (btc_debug_log) then {diag_log format ["ADD GROUP = %1",_group];}; _city = [leader _group,btc_city_all,false] call btc_fnc_find_closecity; -if (isNull _city) exitWith -{ - while {(count (waypoints _group)) > 0} do - { - deleteWaypoint ((waypoints _group) select 0); - }; - diag_log format ["IS NULL CITY = %1",_group]; - _group setBehaviour "AWARE"; - _wp = _group addWaypoint [position leader _group, 0]; - _wp setWaypointType "GUARD"; - _wp setWaypointCompletionRadius 20; - _wp setWaypointCombatMode "RED"; +while {(count (waypoints _group)) > 0} do { + deleteWaypoint ((waypoints _group) select 0); }; _city setVariable ["occupied",true]; -if (btc_debug) then {(format ["loc_%1",_city getVariable "id"]) setMarkerColor "ColorRed";}; - if (_city getVariable ["marker",""] != "") then {_marker = _city getVariable ["marker",""]; _marker setMarkerColor "ColorRed";_marker setMarkerAlpha 0.3;}; -if !(_city getVariable ["active",false]) then -{ - private ["_n","_data_units","_data_group"]; - - while {(count (waypoints _group)) > 0} do - { - deleteWaypoint ((waypoints _group) select 0); - }; +[_group,_city,200, if (vehicle leader _group isEqualTo leader _group) then {random 1} else {0.3 + random 0.7}] call btc_fnc_mil_addWP; - [_group,_city,600,(random 1)] call btc_fnc_mil_addWP; +if !(_city getVariable ["active",false]) then { + private ["_data_units","_data_group"]; _data_units = _city getVariable ["data_units",[]]; _data_group = _group call btc_fnc_data_get_group; _data_units pushBack _data_group; _city setVariable ["data_units",_data_units]; - diag_log format ["PUSHBACK = %1",_data_group]; + if (btc_debug_log) then {diag_log format ["PUSHBACK = %1",_data_group];}; }; -if (btc_final_phase) then -{ +if (btc_final_phase) then { btc_city_remaining pushBack _city; }; -diag_log format ["END = %1",[]]; \ No newline at end of file +if (btc_debug_log) then {diag_log format ["END = %1",[]];}; \ 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 bdac3bdc6..78444b451 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,4 +1,7 @@ //[_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. +*/ private ["_pos","_dest"]; @@ -32,7 +35,7 @@ switch (_this select 2) do { _veh_type = (_this select 3); if (_veh_type == "") then {_veh_type = selectRandom btc_type_motorized}; - _return_pos = [_pos,0,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; @@ -49,7 +52,7 @@ switch (_this select 2) do { _wp setWaypointType "MOVE"; _wp setWaypointCombatMode "RED"; _wp setWaypointBehaviour "AWARE"; - _wp setWaypointSpeed "FULL"; + _wp setWaypointSpeed "NORMAL"; _wp_1 = _group addWaypoint [_dest, 60]; _wp_1 setWaypointType "GET OUT"; _wp_3 = _group addWaypoint [_dest, 60]; @@ -58,4 +61,9 @@ switch (_this select 2) do { {_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; }; \ No newline at end of file From b65882e25cbe1710dadfcff3da4f9952dfceaed5 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 11 Feb 2017 13:28:46 +0100 Subject: [PATCH 010/120] Remove UAV and UGV from automatic motorized detection --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 1 + 1 file changed, 1 insertion(+) 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 74402d006..e63d5f5c7 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 @@ -629,6 +629,7 @@ switch (true) do { }; private _veh_armed = [_allvehicles] call btc_fnc_find_veh_with_turret; btc_type_motorized_armed = _veh_armed select {getText(configFile >> "cfgvehicles" >> _x >> "faction") isEqualTo getText(configFile >> "cfgvehicles" >> btc_type_motorized select (count (btc_type_motorized) -1) >> "faction")}; +btc_type_motorized_armed = (btc_type_motorized_armed select {(_x find "UAV") isEqualTo -1}) select {(_x find "UGV") isEqualTo -1}; //Rep From c42cbc1e1f2bc41786a919a31de9400030c69397 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 11 Feb 2017 14:01:16 +0100 Subject: [PATCH 011/120] add motorise to spawnmore town --- .../core/def/mission.sqf | 3 ++- .../core/fnc/city/activate.sqf | 12 ++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) 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 e63d5f5c7..3b2dab486 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 @@ -52,7 +52,8 @@ _p_rep = (paramsArray select 35); ace_rearm_level = (paramsArray select 36); btc_p_sea = if ((paramsArray select 37) isEqualTo 0) then {false} else {true}; _p_city_radius = (paramsArray select 38) * 100; -btc_p_veh_armed = true; +btc_p_veh_armed_ho = true; +btc_p_veh_armed_spawn_more = true; btc_p_debug = (paramsArray select 39); //MED 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 8108ca6e1..9d16181ea 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 @@ -98,7 +98,15 @@ if (_has_en) then { 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;}; + 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 { + [_closest,getpos _city,1,selectRandom btc_type_motorized_armed] spawn btc_fnc_mil_send; + }; + }; }; if !(btc_cache_pos isEqualTo []) then { @@ -133,7 +141,7 @@ if (_has_ho && {!(_city getVariable ["ho_units_spawned",false])}) then { [[(_pos select 0) - 7,(_pos select 1) - 7,0],_statics,225] call btc_fnc_mil_create_static; }; }; - if (btc_p_veh_armed) then { + 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 { [_closest,_pos,1,selectRandom btc_type_motorized_armed] spawn btc_fnc_mil_send; From 84502839946c4972d2095520ecf95c8cbf369433 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 12 Feb 2017 21:57:22 +0100 Subject: [PATCH 012/120] Add garage --- .../core/def/mission.sqf | 1 + .../core/fnc/compile.sqf | 1 + .../core/fnc/int/add_actions.sqf | 2 ++ .../core/fnc/log/garage.sqf | 28 +++++++++++++++++++ .../core/fnc/log/server_repair_wreck.sqf | 6 ++-- 5 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/garage.sqf 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 dae85fb7b..debf541e8 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 @@ -52,6 +52,7 @@ _p_rep = (paramsArray select 35); ace_rearm_level = (paramsArray select 36); btc_p_sea = if ((paramsArray select 37) isEqualTo 0) then {false} else {true}; _p_city_radius = (paramsArray select 38) * 100; +btc_p_garage = true; btc_p_debug = (paramsArray select 39); //MED diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 26cc42068..dd6fa4e20 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -130,6 +130,7 @@ if (isServer) then { //LOG btc_fnc_log_getconfigmagazines = compile preprocessFile "core\fnc\log\getconfigmagazines.sqf"; btc_fnc_log_CuratorObjectPlaced_s = compile preprocessFile "core\fnc\log\CuratorObjectPlaced_s.sqf"; + btc_fnc_log_garage = compile preprocessFile "core\fnc\common\garage.sqf"; //DEAF btc_fnc_deaf_earringing = compile preprocessFile "core\fnc\deaf\earringing.sqf"; 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 f1338f7b3..3008a11c7 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 @@ -24,6 +24,8 @@ _action = ["Require_object", "Require object", "\A3\ui_f\data\igui\cfg\simpleTas [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; [btc_create_object, 0, ["ACE_MainActions","Logistic"], _action] call ace_interact_menu_fnc_addActionToObject; +_action = ["Require_veh", "Require veh", "\A3\ui_f\data\igui\cfg\simpleTasks\types\repair_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; //Logistic _action = ["Logistic","Logistic","\A3\ui_f\data\igui\cfg\simpleTasks\letters\L_ca.paa",{},{true}] call ace_interact_menu_fnc_createAction; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/garage.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/garage.sqf new file mode 100644 index 000000000..d393356f3 --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/garage.sqf @@ -0,0 +1,28 @@ + +if (count (nearestObjects [getpos btc_log_create_obj,["All"],5]) > 1) exitWith {hint "Clear the area before create another object!"}; + +disableSerialization; +uiNamespace setVariable [ "current_garage", ( _this select 0 ) ]; +private _fullVersion = missionNamespace getVariable [ "BIS_fnc_arsenal_fullGarage", false ]; +if !( isNull ( uiNamespace getVariable [ "BIS_fnc_arsenal_cam", objNull ] ) ) exitwith { "Garage Viewer is already running" call bis_fnc_logFormat; }; +{ deleteVehicle _x; } forEach nearestObjects [ getPos ( _this select 0 ), [ "AllVehicles" ], 10 ]; +private _veh = createVehicle [ "Land_HelipadEmpty_F", getPos ( _this select 0 ), [], 0, "CAN_COLLIDE" ]; +_veh setPosASL getPosASL ( _this select 0 ); +uiNamespace setVariable [ "garage_pad", _veh ]; +missionNamespace setVariable [ "BIS_fnc_arsenal_fullGarage", [ true, 0, false, [ false ] ] call bis_fnc_param ]; +with missionNamespace do { BIS_fnc_garage_center = _veh }; +with uiNamespace do { + private _displayMission = [] call ( uiNamespace getVariable "bis_fnc_displayMission" ); + if !( isNull findDisplay 312 ) then { _displayMission = findDisplay 312; }; + _displayMission createDisplay "RscDisplayGarage"; + uiNamespace setVariable [ "running_garage", true ]; + waitUntil { sleep 0.25; isNull ( uiNamespace getVariable [ "BIS_fnc_arsenal_cam", objNull ] ) }; + private _logistic_point = uiNamespace getVariable "current_garage"; + private _pad = uiNamespace getVariable "garage_pad"; + deleteVehicle _pad; + private _veh_list = ( getPos _logistic_point ) nearEntities 5; + { + {deleteVehicle _x;} forEach crew _x; + [[_x], {[_this select 0] call btc_fnc_log_server_repair_wreck}] remoteExec ["call", 2]; + } forEach _veh_list; +}; \ No newline at end of file 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 bee52eb04..6a61b1ee8 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 @@ -1,10 +1,11 @@ -private ["_veh","_type","_pos","_dir","_marker"]; +private ["_veh","_type","_pos","_dir","_marker","_textures"]; _veh = _this select 0; _type = typeOf _veh; _pos = getPos _veh; _dir = getDir _veh; +_textures = getObjectTextures _veh; _marker = _veh getVariable ["marker",""]; btc_vehicles = btc_vehicles - [_veh]; @@ -14,6 +15,7 @@ deleteVehicle _veh; sleep 1; _veh = createVehicle [_type, [_pos select 0, _pos select 1, 0], [], 0, "CAN_COLLIDE"]; _veh setDir _dir; +{_veh setObjectTexture [ _foreachindex, _x ];} forEach _textures; _veh setVariable ["btc_dont_delete",true]; if ((isNumber (configfile >> "CfgVehicles" >> typeof _veh >> "ace_fastroping_enabled")) && !(typeof _veh isEqualTo "RHS_UH1Y_d")) then {[_veh] call ace_fastroping_fnc_equipFRIES}; @@ -21,4 +23,4 @@ if(getNumber(configFile >> "CfgVehicles" >> typeof _veh >> "isUav")==1) then { createVehicleCrew _veh; }; -btc_vehicles = btc_vehicles + [_veh]; \ No newline at end of file +btc_vehicles pushBack _veh; \ No newline at end of file From d3721c945e2ce159aa6b9c6478c35fbda3b94ed9 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 13 Feb 2017 20:09:17 +0100 Subject: [PATCH 013/120] Add: dedicate compatibility --- .../core/fnc/compile.sqf | 5 +++- .../core/fnc/db/load.sqf | 6 +---- .../core/fnc/int/add_actions.sqf | 2 +- .../core/fnc/log/createVehicle.sqf | 24 +++++++++++++++++++ .../core/fnc/log/garage.sqf | 11 ++++++--- .../core/fnc/log/server_repair_wreck.sqf | 13 +++------- 6 files changed, 41 insertions(+), 20 deletions(-) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index dd6fa4e20..d408bafcc 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -130,7 +130,7 @@ if (isServer) then { //LOG btc_fnc_log_getconfigmagazines = compile preprocessFile "core\fnc\log\getconfigmagazines.sqf"; btc_fnc_log_CuratorObjectPlaced_s = compile preprocessFile "core\fnc\log\CuratorObjectPlaced_s.sqf"; - btc_fnc_log_garage = compile preprocessFile "core\fnc\common\garage.sqf"; + btc_fnc_log_createVehicle = compile preprocessFile "core\fnc\log\createVehicle.sqf"; //DEAF btc_fnc_deaf_earringing = compile preprocessFile "core\fnc\deaf\earringing.sqf"; @@ -239,6 +239,9 @@ if (!isDedicated) then { btc_fnc_info_troops = compile preprocessFile "core\fnc\info\troops.sqf"; btc_fnc_info_ask_reputation = compile preprocessFile "core\fnc\info\ask_reputation.sqf"; + //LOG + btc_fnc_log_garage = compile preprocessFile "core\fnc\log\garage.sqf"; + //TASK btc_fnc_task_create = compile preprocessFileLineNumbers "core\fnc\task\create.sqf"; btc_fnc_task_fail = compile preprocessFileLineNumbers "core\fnc\task\fail.sqf"; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index fe2e7c851..d9eaec931 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -198,14 +198,10 @@ diag_log format ["5: %1",(_x select 5)]; */ { private ["_veh","_cont","_weap","_mags","_items"]; - _veh = (_x select 0) createVehicle (_x select 1); - _veh setPosASL (_x select 1); - _veh setDir (_x select 2); + _veh = [(_x select 0),(_x select 1),(_x select 2)] call btc_fnc_log_createVehicle; if ((getPos _veh) select 2 < 0) then {_veh setVectorUp surfaceNormal position _veh;}; _veh setFuel (_x select 3); _veh setDamage (_x select 4); - _veh setVariable ["btc_dont_delete",true]; - _veh call btc_fnc_db_add_veh; { private ["_type","_cargo_obj","_obj","_weap_obj","_mags_obj","_items_obj"]; //{_cargo pushBack [(typeOf _x),[getWeaponCargo _x,getMagazineCargo _x,getItemCargo _x]]} foreach (_x getVariable ["cargo",[]]); 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 3008a11c7..e905fdae7 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 @@ -24,7 +24,7 @@ _action = ["Require_object", "Require object", "\A3\ui_f\data\igui\cfg\simpleTas [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; [btc_create_object, 0, ["ACE_MainActions","Logistic"], _action] call ace_interact_menu_fnc_addActionToObject; -_action = ["Require_veh", "Require veh", "\A3\ui_f\data\igui\cfg\simpleTasks\types\repair_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", "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; [btc_create_object, 0, ["ACE_MainActions","Logistic"], _action] call ace_interact_menu_fnc_addActionToObject; //Logistic diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf new file mode 100644 index 000000000..3c4637169 --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf @@ -0,0 +1,24 @@ + +private _type = _this select 0; +private _pos = _this select 1; +private _dir = _this select 2; +if (count _this > 3) then { + private _textures = _this select 4; +} else { + private _textures = nil; +}; + +_veh = createVehicle [_type, [_pos select 0, _pos select 1, 0], [], 0, "CAN_COLLIDE"]; +_veh setPosASL _pos; +_veh setDir _dir; + +if !(isNull _textures) then {{_veh setObjectTextureGlobal [ _foreachindex, _x ];} forEach _textures;}; +_veh setVariable ["btc_dont_delete",true]; + +if(getNumber(configFile >> "CfgVehicles" >> typeof _veh >> "isUav")==1) then { + createVehicleCrew _veh; +}; + +_veh call btc_fnc_db_add_veh; + +_veh \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/garage.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/garage.sqf index d393356f3..63df28aaf 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/garage.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/garage.sqf @@ -1,11 +1,10 @@ -if (count (nearestObjects [getpos btc_log_create_obj,["All"],5]) > 1) exitWith {hint "Clear the area before create another object!"}; +if (count (nearestObjects [getpos ( _this select 0 ),["All"],5]) > 1) exitWith {hint "Clear the area before create another object!"}; disableSerialization; uiNamespace setVariable [ "current_garage", ( _this select 0 ) ]; private _fullVersion = missionNamespace getVariable [ "BIS_fnc_arsenal_fullGarage", false ]; if !( isNull ( uiNamespace getVariable [ "BIS_fnc_arsenal_cam", objNull ] ) ) exitwith { "Garage Viewer is already running" call bis_fnc_logFormat; }; -{ deleteVehicle _x; } forEach nearestObjects [ getPos ( _this select 0 ), [ "AllVehicles" ], 10 ]; private _veh = createVehicle [ "Land_HelipadEmpty_F", getPos ( _this select 0 ), [], 0, "CAN_COLLIDE" ]; _veh setPosASL getPosASL ( _this select 0 ); uiNamespace setVariable [ "garage_pad", _veh ]; @@ -23,6 +22,12 @@ with uiNamespace do { private _veh_list = ( getPos _logistic_point ) nearEntities 5; { {deleteVehicle _x;} forEach crew _x; - [[_x], {[_this select 0] call btc_fnc_log_server_repair_wreck}] remoteExec ["call", 2]; + + private _type = typeOf _x; + private _pos = getPosASL _x; + private _dir = getDir _x; + private _textures = getObjectTextures _x; + deleteVehicle _x; + [[_type, _pos, _dir, _textures], {_this call btc_fnc_log_createVehicle}] remoteExec ["call", 2]; } forEach _veh_list; }; \ No newline at end of file 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 b51748a50..f545810ef 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 @@ -3,7 +3,7 @@ private ["_veh","_type","_pos","_dir","_marker","_textures"]; _veh = _this select 0; _type = typeOf _veh; -_pos = getPos _veh; +_pos = getPosASL _veh; _dir = getDir _veh; _textures = getObjectTextures _veh; _marker = _veh getVariable ["marker",""]; @@ -13,13 +13,6 @@ btc_vehicles = btc_vehicles - [_veh]; if (_marker != "") then {deleteMarker _marker;}; deleteVehicle _veh; sleep 1; -_veh = createVehicle [_type, [_pos select 0, _pos select 1, 0], [], 0, "CAN_COLLIDE"]; -_veh setDir _dir; -{_veh setObjectTexture [ _foreachindex, _x ];} forEach _textures; -_veh setVariable ["btc_dont_delete",true]; +_veh = [_type,_pos,_dir,_textures] call btc_fnc_log_createVehicle; -if(getNumber(configFile >> "CfgVehicles" >> typeof _veh >> "isUav")==1) then { - createVehicleCrew _veh; -}; - -_veh call btc_fnc_db_add_veh; \ No newline at end of file +_veh \ No newline at end of file From bb851aaa8cb6ffb014d85b6e63b9611b03d4a1ac Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 18 Feb 2017 18:35:24 +0100 Subject: [PATCH 014/120] Add: Load is the new reference for load_old --- .../core/fnc/db/load_old.sqf | 29 ++++--------------- 1 file changed, 6 insertions(+), 23 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf index 033d750c7..fe2e7c851 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf @@ -36,9 +36,7 @@ _cities_status = profileNamespace getVariable [format ["btc_hm_%1_cities",_name] _city setVariable ["data_units",(_x select 4)]; _city setVariable ["has_ho",(_x select 5)]; _city setVariable ["ho_units_spawned",(_x select 6)]; - _city setVariable ["ieds",(_x select 7) apply { - [_x select 0 ,(toLower gettext(configfile >> "CfgVehicles" >> (_x select 1) >> "model")) select [1],_x select 2 ,_x select 3] - }]; + _city setVariable ["ieds",(_x select 7)]; if (btc_debug) then {//_debug @@ -140,10 +138,7 @@ btc_cache_pos = _array_cache select 0; btc_cache_n = _array_cache select 1; btc_cache_info = _array_cache select 2; -btc_cache_obj = selectRandom btc_cache_type createVehicle btc_cache_pos; -btc_cache_obj setPosATL (_array_cache select 0); -clearWeaponCargoGlobal btc_cache_obj;clearItemCargoGlobal btc_cache_obj;clearMagazineCargoGlobal btc_cache_obj; -btc_cache_obj addEventHandler ["HandleDamage", btc_fnc_cache_hd_cache]; +call btc_fnc_cache_create; { private ["_marker"]; @@ -152,20 +147,9 @@ btc_cache_obj addEventHandler ["HandleDamage", btc_fnc_cache_hd_cache]; _marker setMarkerText (_x select 1); _marker setMarkerSize [0.5, 0.5]; _marker setMarkerColor "ColorRed"; - btc_cache_markers = btc_cache_markers + [_marker]; + btc_cache_markers pushBack _marker; } foreach (_array_cache select 3); -if (btc_debug_log) then {diag_log format ["CACHE SPAWNED: ID %1 POS %2",btc_cache_n,btc_cache_pos];}; - -if (btc_debug) then { - player sideChat 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]; -}; - //REP btc_global_reputation = profileNamespace getVariable [format ["btc_hm_%1_rep",_name],0]; @@ -215,14 +199,13 @@ diag_log format ["5: %1",(_x select 5)]; { private ["_veh","_cont","_weap","_mags","_items"]; _veh = (_x select 0) createVehicle (_x select 1); - _veh setPos (_x select 1); + _veh setPosASL (_x select 1); _veh setDir (_x select 2); if ((getPos _veh) select 2 < 0) then {_veh setVectorUp surfaceNormal position _veh;}; _veh setFuel (_x select 3); _veh setDamage (_x select 4); _veh setVariable ["btc_dont_delete",true]; - btc_vehicles pushBack _veh; - _veh addEventHandler ["Killed", {_this call btc_fnc_eh_veh_killed}]; + _veh call btc_fnc_db_add_veh; { private ["_type","_cargo_obj","_obj","_weap_obj","_mags_obj","_items_obj"]; //{_cargo pushBack [(typeOf _x),[getWeaponCargo _x,getMagazineCargo _x,getItemCargo _x]]} foreach (_x getVariable ["cargo",[]]); @@ -354,4 +337,4 @@ _objs = profileNamespace getVariable [format ["btc_hm_%1_objs",_name],[]]; _obj addItemCargoGlobal[((_items select 0) select _i),((_items select 1) select _i)]; }; }; -} foreach _objs; \ No newline at end of file +} foreach _objs; From ba9bf9c086e8756ac2257d01adb7dd07b0597420 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 22 Feb 2017 19:41:47 +0100 Subject: [PATCH 015/120] Add: optimize trigger It is NOT a good idea to disable spawn for Helicopter because city will not be activate until player get out. The AI will spawn directly infront of players ... A clever way could be to activate city when the pilot start to decrease the helicopter speed for landing. So during the travel, no AI will spawn until you start to apporch your landing zone. --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 1 + .../core/fnc/city/trigger_player_side.sqf | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) 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 bcc97d075..1c86e3ab9 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 @@ -52,6 +52,7 @@ _p_rep = (paramsArray select 35); ace_rearm_level = (paramsArray select 36); btc_p_sea = if ((paramsArray select 37) isEqualTo 0) then {false} else {true}; _p_city_radius = (paramsArray select 38) * 100; +btc_p_trigger = if (true) 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 = (paramsArray select 39); //MED 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 f79942d35..863e436f2 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 @@ -13,7 +13,7 @@ _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]; _trigger setTriggerActivation[str(btc_player_side),"PRESENT",true]; -_trigger setTriggerStatements ["this && !btc_db_is_saving", format ["[%1] spawn btc_fnc_city_activate",_id], format ["[%1] spawn btc_fnc_city_de_activate",_id]]; +_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 From 59dcf0ac801063551147cb4b186476d23f4da112 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 26 Feb 2017 12:05:45 +0100 Subject: [PATCH 016/120] add: disable by default --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 1c86e3ab9..ae04da612 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 @@ -52,7 +52,7 @@ _p_rep = (paramsArray select 35); ace_rearm_level = (paramsArray select 36); btc_p_sea = if ((paramsArray select 37) isEqualTo 0) then {false} else {true}; _p_city_radius = (paramsArray select 38) * 100; -btc_p_trigger = if (true) 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_trigger = if (false) 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 = (paramsArray select 39); //MED From 9179a40683cf84ea8b24bbd3c0c0a16492008222 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 26 Feb 2017 15:12:19 +0100 Subject: [PATCH 017/120] FIX: heli destroy durin spawn --- .../core/fnc/city/activate.sqf | 10 ++++++++-- .../core/fnc/mil/send.sqf | 4 +--- 2 files changed, 9 insertions(+), 5 deletions(-) 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 9d16181ea..445054113 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 @@ -104,7 +104,7 @@ if (_city getVariable ["spawn_more",false]) then { 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 { - [_closest,getpos _city,1,selectRandom btc_type_motorized_armed] spawn btc_fnc_mil_send; + [{_this call btc_fnc_mil_send}, [_closest,getpos _city,1,selectRandom btc_type_motorized_armed], _i * 1] call CBA_fnc_waitAndExecute; }; }; }; @@ -114,6 +114,12 @@ if !(btc_cache_pos isEqualTo []) 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 * 1] call CBA_fnc_waitAndExecute; + }; + }; }; }; @@ -144,7 +150,7 @@ if (_has_ho && {!(_city getVariable ["ho_units_spawned",false])}) then { 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 { - [_closest,_pos,1,selectRandom btc_type_motorized_armed] spawn btc_fnc_mil_send; + [{_this call btc_fnc_mil_send}, [_closest,_pos,1,selectRandom btc_type_motorized_armed], _i * 1] call CBA_fnc_waitAndExecute; }; }; }; 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 78444b451..0015a2351 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 @@ -41,9 +41,7 @@ switch (_this select 2) do { [_veh,_group,false,"",btc_type_crewmen] call BIS_fnc_spawnCrew; _cargo = (_veh emptyPositions "cargo") - 1; for "_i" from 0 to _cargo do { - private "_unit_type"; - _unit_type = selectRandom btc_type_units; - _unit_type createUnit [_pos, _group, "this moveinCargo _veh;this assignAsCargo _veh;"]; + (selectRandom btc_type_units) createUnit [[0,0,0], _group, "this moveinCargo _veh;this assignAsCargo _veh;"]; }; _group selectLeader (driver _veh); From 72967bbfba0ffc7fb1d61daa8ce62b094cc6506b Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 27 Feb 2017 19:49:57 +0100 Subject: [PATCH 018/120] Add: FOW units --- .../core/def/mission.sqf | 56 +++++++++++++------ 1 file changed, 39 insertions(+), 17 deletions(-) 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 99df0280a..217f06125 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 @@ -480,6 +480,7 @@ btc_lift_HUD_y = 0.848; //Mil btc_player_side = west; btc_respawn_marker = "respawn_west"; +_allclasse = ("(configName _x) isKindOf 'AllVehicles'" configClasses (configFile >> "CfgVehicles")) apply {configName _x}; switch (true) do { case (_p_en == 0) : { btc_hq = btc_hq_red; @@ -487,8 +488,6 @@ switch (true) do { btc_type_units = ["O_G_Soldier_F","O_G_Soldier_TL_F","O_G_Soldier_AR_F","O_G_engineer_F","O_G_Soldier_exp_F","O_G_Soldier_GL_F","O_G_Soldier_LAT_F"]; btc_type_divers = ["O_diver_F","O_diver_exp_F","O_diver_TL_F"]; btc_type_crewmen = "O_G_Soldier_F"; - btc_type_vehicles = ["I_G_Offroad_01_F","I_G_Offroad_01_armed_F"]; - btc_type_boats = ["I_Boat_Armed_01_minigun_F","I_Boat_Transport_01_F","I_SDV_01_F","I_G_Boat_Transport_01_F"]; btc_type_motorized = ["I_G_Offroad_01_F","I_G_Offroad_01_armed_F","I_Truck_02_transport_F","I_G_Offroad_01_armed_F","I_Truck_02_covered_F"]; btc_type_mg = ["O_HMG_01_F","O_HMG_01_high_F"]; btc_type_gl = ["O_GMG_01_F","O_GMG_01_high_F"]; @@ -499,8 +498,6 @@ switch (true) do { btc_type_units = ["CAF_AG_ME_AK47","CAF_AG_ME_T_AK74","CAF_AG_ME_T_PKM","CAF_AG_ME_T_RPK74","CAF_AG_ME_T_RPG","CAF_AG_ME_T_GL"]; btc_type_divers = ["O_diver_F","O_diver_exp_F","O_diver_TL_F"]; btc_type_crewmen = "CAF_AG_ME_T_AK47"; - btc_type_vehicles = ["CAF_AG_ME_T_Offroad_armed_01"]; - btc_type_boats = ["I_Boat_Armed_01_minigun_F","I_Boat_Transport_01_F","I_SDV_01_F","I_G_Boat_Transport_01_F"]; btc_type_motorized = ["CAF_AG_ME_T_Offroad","I_Truck_02_transport_F","CAF_AG_ME_T_Offroad_armed_01","CAF_AG_ME_T_van_01"]; btc_type_mg = ["O_HMG_01_F","O_HMG_01_high_F"]; btc_type_gl = ["O_GMG_01_F","O_GMG_01_high_F"]; @@ -513,8 +510,6 @@ switch (true) do { btc_type_units = ["I_Soldier_F","I_Soldier_TL_F","I_Soldier_AR_F","I_engineer_F","I_Soldier_exp_F","I_Soldier_GL_F","I_Soldier_LAT_F","I_Soldier_AT_F","I_Soldier_AA_F","I_Spotter_F","I_Sniper_F"]; btc_type_divers = ["I_diver_F","I_diver_exp_F","I_diver_TL_F"]; btc_type_crewmen = "I_Soldier_F"; - btc_type_vehicles = ["I_G_Offroad_01_F","I_G_Offroad_01_armed_F","I_MRAP_03_F","I_MRAP_03_hmg_F","I_MRAP_03_gmg_F"]; - btc_type_boats = ["I_Boat_Armed_01_minigun_F","I_Boat_Transport_01_F","I_SDV_01_F","I_G_Boat_Transport_01_F"]; btc_type_motorized = ["I_G_Offroad_01_F","I_G_Offroad_01_armed_F","I_Truck_02_transport_F","I_G_Offroad_01_armed_F","I_Truck_02_covered_F","I_MRAP_03_F","I_MRAP_03_hmg_F","I_MRAP_03_gmg_F","I_Heli_light_03_F","I_APC_tracked_03_cannon_F"]; btc_type_mg = ["I_HMG_01_F","I_HMG_01_high_F"]; btc_type_gl = ["I_GMG_01_F","I_GMG_01_high_F"]; @@ -525,7 +520,6 @@ switch (true) do { btc_type_units = ["rhs_g_Soldier_F","rhs_g_medic_F","rhs_g_engineer_F","rhs_g_Soldier_exp_F","rhs_g_Soldier_GL_F","rhs_g_Soldier_AAT_F","rhs_g_Soldier_AR_F","rhs_g_Soldier_AAR_F","rhs_g_Soldier_M_F","rhs_g_uniform5_base","rhs_g_uniform1_base","rhs_g_uniform2_base","rhs_g_uniform3_base","rhs_g_uniform4_base","rhs_g_Soldier_F2","rhs_g_Soldier_F","rhs_g_Soldier_LAT_F","rhs_g_Soldier_lite_F","rhs_g_Soldier_AT_F","rhs_g_Soldier_AA_F","rhs_g_Soldier_TL_F","rhs_g_Soldier_SL_F"]; btc_type_divers = ["I_diver_F","I_diver_exp_F","I_diver_TL_F"]; btc_type_crewmen = "rhs_g_Crew_F"; - btc_type_vehicles = ["RHS_UAZ_MSV_01","rhs_uaz_open_MSV_01","rhs_btr60_msv","rhs_btr70_msv","rhs_bmd1_chdkz","rhs_bmd2_chdkz","RHS_Ural_MSV_01","RHS_Ural_Open_MSV_01","RHS_Ural_Open_Flat_MSV_01","RHS_Ural_Flat_MSV_01"]; btc_type_boats = ["I_Boat_Armed_01_minigun_F","I_Boat_Transport_01_F","I_SDV_01_F","I_G_Boat_Transport_01_F"]; btc_type_motorized = ["RHS_UAZ_MSV_01","rhs_uaz_open_MSV_01","rhs_btr60_msv","rhs_btr70_msv","rhs_bmd1_chdkz","rhs_bmd2_chdkz","RHS_Ural_MSV_01","RHS_Ural_Open_MSV_01","RHS_Ural_Open_Flat_MSV_01","RHS_Ural_Flat_MSV_01"]; btc_type_mg = ["I_HMG_01_F","I_HMG_01_high_F","rhs_KORD_INS","rhs_KORD_high_INS","RHS_NSV_TriPod_INS","rhs_DSHKM_ins","rhs_DSHKM_Mini_TriPod_ins"]; @@ -537,8 +531,6 @@ switch (true) do { btc_type_units = ["btc_am_mg","btc_am_m","btc_am_medic","btc_am_r","btc_am_amg","btc_am_at","btc_am_gl","btc_afghan_1_2","btc_afghan_1_3","btc_afghan_1_4","btc_afghan_1_5","btc_am_tl"]; btc_type_divers = ["O_diver_F","O_diver_exp_F","O_diver_TL_F"]; btc_type_crewmen = "btc_am_r"; - btc_type_vehicles = ["btc_am_offroad","btc_am_offroad_armed"]; - btc_type_boats = ["I_Boat_Armed_01_minigun_F","I_Boat_Transport_01_F","I_SDV_01_F","I_G_Boat_Transport_01_F"]; btc_type_motorized = ["btc_am_offroad","btc_am_offroad_armed","btc_am_ural","btc_am_ural_open","btc_am_btr60","btc_am_bmd1","btc_am_brm1k"]; btc_type_mg = ["O_HMG_01_F","O_HMG_01_high_F"]; btc_type_gl = ["O_GMG_01_F","O_GMG_01_high_F"]; @@ -549,8 +541,6 @@ switch (true) do { btc_type_units = ["aif_oficial","aif_oficial2","aif_oficial3","aif_support_MG","aif_specialist_Ex","aif_rifleman","aif_riflemanAK103","aif_riflemanM4","aif_support_AT","aif_riflemanGL","aif_TeamLeader","aif_sniper","aif_riflemanGLM4","aif_support_rpg26","aif_TeamLeader_G","aif_medic_G","aif_rifleman_G"]; btc_type_divers = ["I_diver_F","I_diver_exp_F","I_diver_TL_F"]; btc_type_crewmen = "aif_driver"; - btc_type_vehicles = ["aif_offroad","aif_offroad2","aif_car"]; - btc_type_boats = ["I_Boat_Armed_01_minigun_F","I_Boat_Transport_01_F","I_SDV_01_F","I_G_Boat_Transport_01_F"]; btc_type_motorized = ["aif_armed","aif_offroad","aif_offroad2","aif_car","aif_truck_ural","aif_truck","aif_heli_MH6","aif_heli_K60","aif_uaz_dshkm","aif_uaz_spg9","aif_apc","aif_uaz_open"]; btc_type_mg = ["aif_Static_M2","aif_Static_M2_MiniTripod"]; btc_type_gl = ["O_GMG_01_F","O_GMG_01_high_F","aif_Static_Mk19_TriPod"]; @@ -561,7 +551,6 @@ switch (true) do { btc_type_units = ["I_C_Soldier_Bandit_5_F","I_C_Soldier_Bandit_6_F","I_C_Soldier_Bandit_3_F","I_C_Soldier_Bandit_8_F","I_C_Soldier_Bandit_2_F","I_C_Soldier_Bandit_4_F","I_C_Soldier_Bandit_7_F","I_C_Soldier_Bandit_1_F","I_C_Soldier_Para_6_F","I_C_Soldier_Para_7_F","I_C_Soldier_Para_2_F","I_C_Soldier_Para_3_F","I_C_Soldier_Para_4_F","I_C_Soldier_Para_8_F","I_C_Soldier_Para_1_F","I_C_Soldier_Para_5_F"]; btc_type_divers = ["I_diver_F","I_diver_exp_F","I_diver_TL_F"]; btc_type_crewmen = "I_C_Soldier_Bandit_5_F"; - btc_type_vehicles = ["I_G_Offroad_01_F","I_G_Offroad_01_armed_F","I_C_Van_01_transport_F","O_T_LSV_02_armed_F","O_T_LSV_02_unarmed_F","I_C_Offroad_02_unarmaed_F"]; btc_type_boats = ["I_Boat_Armed_01_minigun_F","I_Boat_Transport_01_F","I_SDV_01_F","I_G_Boat_Transport_01_F","I_C_Boat_Transport_01_F","I_C_Boat_Transport_02_F"]; btc_type_motorized = ["I_G_Offroad_01_F","I_C_Van_01_transport_F","O_T_LSV_02_armed_F","O_T_LSV_02_unarmed_F","I_Truck_02_transport_F","I_C_Offroad_02_unarmaed_F","I_G_Offroad_01_armed_F","I_Truck_02_covered_F"]; btc_type_mg = ["I_HMG_01_F","I_HMG_01_high_F"]; @@ -585,7 +574,6 @@ switch (true) do { btc_type_units = ["LOP_ISTS_Infantry_Engineer","LOP_ISTS_Infantry_Corpsman","LOP_ISTS_Infantry_GL","LOP_ISTS_Infantry_Rifleman","LOP_ISTS_Infantry_Rifleman_2","LOP_ISTS_Infantry_Rifleman_3","LOP_ISTS_Infantry_AT","LOP_ISTS_Infantry_Marksman","LOP_ISTS_Infantry_AR_Asst","LOP_ISTS_Infantry_AR"]; btc_type_divers = ["I_diver_F","I_diver_exp_F","I_diver_TL_F"]; btc_type_crewmen = "LOP_ISTS_Infantry_Engineer"; - btc_type_vehicles = ["LOP_ISTS_BMP1","LOP_ISTS_BMP2","LOP_ISTS_Landrover_M2","LOP_ISTS_BTR60","LOP_ISTS_M113_W","LOP_ISTS_T34","LOP_ISTS_M1025_W_Mk19","LOP_ISTS_M1025_W_M2","LOP_ISTS_Offroad_M2"]; btc_type_boats = ["I_Boat_Transport_01_F","I_G_Boat_Transport_01_F","I_C_Boat_Transport_01_F","I_C_Boat_Transport_02_F"]; btc_type_motorized = ["LOP_ISTS_Offroad","LOP_ISTS_Truck","LOP_AM_Truck","LOP_ISTS_M998_D_4DR","LOP_ISTS_M1025_D","LOP_ISTS_Landrover"]; btc_type_mg = ["LOP_ISTS_Static_DSHKM","LOP_ISTS_Kord","LOP_ISTS_Kord_High","LOP_ISTS_NSV_TriPod","LOP_ISTS_Static_ZU23"]; @@ -597,7 +585,6 @@ switch (true) do { btc_type_units = ["LOP_UA_Infantry_AT_Asst","LOP_UA_Infantry_Corpsman","LOP_UA_Infantry_GL","LOP_UA_Infantry_AT","LOP_UA_Infantry_Rifleman","LOP_UA_Infantry_Rifleman_2","LOP_UA_Infantry_Rifleman_3","LOP_UA_Infantry_Marksman","LOP_UA_Infantry_MG_Asst","LOP_UA_Infantry_MG","LOP_UA_Officer","LOP_UA_Infantry_SL","LOP_UA_Infantry_TL"]; btc_type_divers = ["I_diver_F","I_diver_exp_F","I_diver_TL_F"]; btc_type_crewmen = "LOP_UA_Infantry_AT_Asst"; - btc_type_vehicles = ["LOP_UA_BMP1","LOP_UA_BMP2","LOP_UA_T72BA","LOP_UA_UAZ_AGS","LOP_UA_UAZ_DshKM","LOP_UA_ZSU234","LOP_UA_UAZ_SPG","LOP_UA_BM21"]; btc_type_boats = ["I_Boat_Transport_01_F","I_G_Boat_Transport_01_F","I_C_Boat_Transport_01_F","I_C_Boat_Transport_02_F"]; btc_type_motorized = ["LOP_UA_UAZ","LOP_UA_UAZ_Open","LOP_UA_Ural_open","LOP_UA_Ural","LOP_UA_Ural_fuel"]; btc_type_mg = ["LOP_UA_Kord","LOP_UA_Kord_High","LOP_UA_NSV_TriPod"]; @@ -610,26 +597,61 @@ switch (true) do { ; btc_type_divers = ["O_T_Diver_F","O_T_Diver_TL_F","O_T_Diver_Exp_F"]; btc_type_crewmen = "O_T_Crew_F"; - btc_type_vehicles = ["O_G_Offroad_01_F","O_G_Offroad_01_armed_F","O_T_LSV_02_armed_F","O_T_LSV_02_unarmed_F","O_T_MRAP_02_gmg_ghex_F","O_T_MRAP_02_hmg_ghex_F","O_T_MRAP_02_ghex_F"]; btc_type_boats = ["O_T_Boat_Armed_01_hmg_F","O_T_Boat_Transport_01_F","0_SDV_01_F","I_G_Boat_Transport_01_F"]; btc_type_motorized = ["O_G_Offroad_01_F","O_G_Offroad_01_armed_F","O_T_LSV_02_armed_F","O_T_LSV_02_unarmed_F","O_T_MRAP_02_gmg_ghex_F","O_T_MRAP_02_hmg_ghex_F","O_T_MRAP_02_ghex_F","O_T_Truck_03_transport_ghex_F","O_T_Truck_03_covered_ghex_F"]; btc_type_mg = ["O_HMG_01_F","O_HMG_01_high_F"]; btc_type_gl = ["O_GMG_01_F","O_GMG_01_high_F"]; }; + case (_p_en == 11 && isClass(configfile >> "CfgFactionClasses" >> "fow_usmc")) : { + _allclasse = _allclasse select {getText(configFile >> "cfgvehicles" >> _x >> "faction") isEqualTo "fow_usmc"}; + btc_hq = btc_hq_green; + btc_enemy_side = resistance; + btc_type_units = _allclasse select {_x isKindOf "Man"}; + btc_type_divers = ["I_diver_F","I_diver_exp_F","I_diver_TL_F"]; + btc_type_crewmen = btc_type_units select 0; + btc_type_boats = _allclasse select {_x isKindOf "Ship"}; + btc_type_motorized = _allclasse select {((_x isKindOf "Tank") || (_x isKindOf "Car") || (_x isKindOf "Truck"))}; + btc_type_mg = _allclasse select {_x isKindOf "StaticGrenadeLauncher"}; + btc_type_gl = _allclasse select {_x isKindOf "StaticMGWeapon"}; + }; + case (_p_en == 12 && isClass(configfile >> "CfgFactionClasses" >> "fow_usa")) : { + _allclasse = _allclasse select {getText(configFile >> "cfgvehicles" >> _x >> "faction") isEqualTo "fow_usa"}; + btc_hq = btc_hq_green; + btc_enemy_side = resistance; + btc_type_units = _allclasse select {_x isKindOf "Man"}; + btc_type_divers = ["I_diver_F","I_diver_exp_F","I_diver_TL_F"]; + btc_type_crewmen = btc_type_units select 0; + btc_type_boats = _allclasse select {_x isKindOf "Ship"}; + btc_type_motorized = _allclasse select {((_x isKindOf "Tank") || (_x isKindOf "Car") || (_x isKindOf "Truck"))}; + btc_type_mg = _allclasse select {_x isKindOf "StaticGrenadeLauncher"}; + btc_type_gl = _allclasse select {_x isKindOf "StaticMGWeapon"}; + }; + case (_p_en == 13 && isClass(configfile >> "CfgFactionClasses" >> "fow_uk")) : { + _allclasse = _allclasse select {getText(configFile >> "cfgvehicles" >> _x >> "faction") isEqualTo "fow_uk"}; + btc_hq = btc_hq_green; + btc_enemy_side = resistance; + btc_type_units = _allclasse select {_x isKindOf "Man"}; + btc_type_divers = ["I_diver_F","I_diver_exp_F","I_diver_TL_F"]; + btc_type_crewmen = btc_type_units select 0; + btc_type_boats = _allclasse select {_x isKindOf "Ship"}; + btc_type_motorized = _allclasse select {((_x isKindOf "Tank") || (_x isKindOf "Car") || (_x isKindOf "Truck"))}; + btc_type_mg = _allclasse select {_x isKindOf "StaticGrenadeLauncher"}; + btc_type_gl = _allclasse select {_x isKindOf "StaticMGWeapon"}; + }; default { btc_hq = btc_hq_red; btc_enemy_side = east; btc_type_units = ["O_G_Soldier_F","O_G_Soldier_TL_F","O_G_Soldier_AR_F","O_G_engineer_F","O_G_Soldier_exp_F","O_G_Soldier_GL_F","O_G_Soldier_LAT_F"]; btc_type_divers = ["O_diver_F","O_diver_exp_F","O_diver_TL_F"]; btc_type_crewmen = "O_G_Soldier_F"; - btc_type_vehicles = ["I_G_Offroad_01_F","I_G_Offroad_01_armed_F"]; - btc_type_boats = ["I_Boat_Armed_01_minigun_F","I_Boat_Transport_01_F","I_SDV_01_F","I_G_Boat_Transport_01_F"]; btc_type_motorized = ["I_G_Offroad_01_F","I_G_Offroad_01_armed_F","I_Truck_02_transport_F","I_G_Offroad_01_armed_F","I_Truck_02_covered_F"]; btc_type_mg = ["O_HMG_01_F","O_HMG_01_high_F"]; btc_type_gl = ["O_GMG_01_F","O_GMG_01_high_F"]; } }; +if (btc_type_boats isEqualTo []) then {btc_p_sea = false}; + //Rep btc_rep_bonus_cache = 100; btc_rep_bonus_civ_hh = 3; From 874bda04c06e3f8076b483405665920c76394fcc Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 27 Feb 2017 20:14:27 +0100 Subject: [PATCH 019/120] FIX: some classe name don't have weapond --- .../core/def/mission.sqf | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) 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 217f06125..ecc2afbb8 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 @@ -483,7 +483,7 @@ btc_respawn_marker = "respawn_west"; _allclasse = ("(configName _x) isKindOf 'AllVehicles'" configClasses (configFile >> "CfgVehicles")) apply {configName _x}; switch (true) do { case (_p_en == 0) : { - btc_hq = btc_hq_red; + btc_hq = btc_hq_red; btc_enemy_side = east; btc_type_units = ["O_G_Soldier_F","O_G_Soldier_TL_F","O_G_Soldier_AR_F","O_G_engineer_F","O_G_Soldier_exp_F","O_G_Soldier_GL_F","O_G_Soldier_LAT_F"]; btc_type_divers = ["O_diver_F","O_diver_exp_F","O_diver_TL_F"]; @@ -603,10 +603,10 @@ switch (true) do { btc_type_gl = ["O_GMG_01_F","O_GMG_01_high_F"]; }; case (_p_en == 11 && isClass(configfile >> "CfgFactionClasses" >> "fow_usmc")) : { - _allclasse = _allclasse select {getText(configFile >> "cfgvehicles" >> _x >> "faction") isEqualTo "fow_usmc"}; + _allclasse = _allclasse select {getText(configFile >> "cfgvehicles" >> _x >> "faction") isEqualTo "fow_usmc"}; btc_hq = btc_hq_green; btc_enemy_side = resistance; - btc_type_units = _allclasse select {_x isKindOf "Man"}; + btc_type_units = (_allclasse select {_x isKindOf "Man"}) - ["fow_s_usmc_base","fow_s_usmc_01_private"]; btc_type_divers = ["I_diver_F","I_diver_exp_F","I_diver_TL_F"]; btc_type_crewmen = btc_type_units select 0; btc_type_boats = _allclasse select {_x isKindOf "Ship"}; @@ -615,10 +615,10 @@ switch (true) do { btc_type_gl = _allclasse select {_x isKindOf "StaticMGWeapon"}; }; case (_p_en == 12 && isClass(configfile >> "CfgFactionClasses" >> "fow_usa")) : { - _allclasse = _allclasse select {getText(configFile >> "cfgvehicles" >> _x >> "faction") isEqualTo "fow_usa"}; + _allclasse = _allclasse select {getText(configFile >> "cfgvehicles" >> _x >> "faction") isEqualTo "fow_usa"}; btc_hq = btc_hq_green; btc_enemy_side = resistance; - btc_type_units = _allclasse select {_x isKindOf "Man"}; + btc_type_units = (_allclasse select {_x isKindOf "Man"}) - ["fow_s_usa_base","fow_s_usa_01_private"]; btc_type_divers = ["I_diver_F","I_diver_exp_F","I_diver_TL_F"]; btc_type_crewmen = btc_type_units select 0; btc_type_boats = _allclasse select {_x isKindOf "Ship"}; @@ -627,10 +627,10 @@ switch (true) do { btc_type_gl = _allclasse select {_x isKindOf "StaticMGWeapon"}; }; case (_p_en == 13 && isClass(configfile >> "CfgFactionClasses" >> "fow_uk")) : { - _allclasse = _allclasse select {getText(configFile >> "cfgvehicles" >> _x >> "faction") isEqualTo "fow_uk"}; + _allclasse = _allclasse select {getText(configFile >> "cfgvehicles" >> _x >> "faction") isEqualTo "fow_uk"}; btc_hq = btc_hq_green; btc_enemy_side = resistance; - btc_type_units = _allclasse select {_x isKindOf "Man"}; + btc_type_units = (_allclasse select {_x isKindOf "Man"}) - ["fow_s_uk_base","fow_s_uk_01_private"]; btc_type_divers = ["I_diver_F","I_diver_exp_F","I_diver_TL_F"]; btc_type_crewmen = btc_type_units select 0; btc_type_boats = _allclasse select {_x isKindOf "Ship"}; From 33666205026091da29692b0eb83708e5c53bd2f2 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 27 Feb 2017 20:21:13 +0100 Subject: [PATCH 020/120] FIX: private --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 ecc2afbb8..d7e9c4267 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 @@ -480,7 +480,7 @@ btc_lift_HUD_y = 0.848; //Mil btc_player_side = west; btc_respawn_marker = "respawn_west"; -_allclasse = ("(configName _x) isKindOf 'AllVehicles'" configClasses (configFile >> "CfgVehicles")) apply {configName _x}; +private _allclasse = ("(configName _x) isKindOf 'AllVehicles'" configClasses (configFile >> "CfgVehicles")) apply {configName _x}; switch (true) do { case (_p_en == 0) : { btc_hq = btc_hq_red; From 51ee5d0114f29d5c8e83ea7457f2c5d30d1b96e1 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 27 Feb 2017 20:24:44 +0100 Subject: [PATCH 021/120] tweak --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) 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 3b2dab486..dd60e7b02 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 @@ -476,9 +476,7 @@ btc_lift_HUD_y = 0.848; //Mil btc_player_side = west; btc_respawn_marker = "respawn_west"; -private _allvehicles = (("(configName _x) isKindOf 'AllVehicles'" configClasses (configFile >> "CfgVehicles")) apply {configName _x}) select { - ((_x isKindOf "Air") || (_x isKindOf "Helicopter") || (_x isKindOf "Tank") || (_x isKindOf "Car")) -}; +private _allclasse = ("(configName _x) isKindOf 'AllVehicles'" configClasses (configFile >> "CfgVehicles")) apply {configName _x}; switch (true) do { case (_p_en == 0) : { btc_hq = btc_hq_red; @@ -628,7 +626,7 @@ switch (true) do { btc_type_gl = ["O_GMG_01_F","O_GMG_01_high_F"]; } }; -private _veh_armed = [_allvehicles] call btc_fnc_find_veh_with_turret; +private _veh_armed = [_allclasse select {((_x isKindOf "Air") || (_x isKindOf "Helicopter") || (_x isKindOf "Tank") || (_x isKindOf "Car"))}] call btc_fnc_find_veh_with_turret; btc_type_motorized_armed = _veh_armed select {getText(configFile >> "cfgvehicles" >> _x >> "faction") isEqualTo getText(configFile >> "cfgvehicles" >> btc_type_motorized select (count (btc_type_motorized) -1) >> "faction")}; btc_type_motorized_armed = (btc_type_motorized_armed select {(_x find "UAV") isEqualTo -1}) select {(_x find "UGV") isEqualTo -1}; From 0619e906310d5285d090283f1dd809d61ea9ce5b Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 1 Mar 2017 00:24:16 +0100 Subject: [PATCH 022/120] Add: 100 factions... --- .../core/def/mission.sqf | 201 +++--------------- .../core/def/param.hpp | 13 +- .../core/fnc/compile.sqf | 2 + .../core/fnc/mil/classes.sqf | 47 ++++ 4 files changed, 92 insertions(+), 171 deletions(-) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/classes.sqf 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 d7e9c4267..b57827b5d 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,5 +1,5 @@ -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"]; +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"]; btc_version = 1.16; diag_log format ["=BTC= HEARTS AND MINDS VERSION %1",(str(btc_version) + ".1")]; @@ -13,6 +13,8 @@ btc_p_auto_db = (paramsArray select 4); //<< Faction options >> _p_en = (paramsArray select 6); +_p_en_AA = false; +_p_en_tank = false; _p_civ = (paramsArray select 7); _p_civ_veh = (paramsArray select 8); @@ -480,178 +482,41 @@ btc_lift_HUD_y = 0.848; //Mil btc_player_side = west; btc_respawn_marker = "respawn_west"; -private _allclasse = ("(configName _x) isKindOf 'AllVehicles'" configClasses (configFile >> "CfgVehicles")) apply {configName _x}; -switch (true) do { - case (_p_en == 0) : { - btc_hq = btc_hq_red; - btc_enemy_side = east; - btc_type_units = ["O_G_Soldier_F","O_G_Soldier_TL_F","O_G_Soldier_AR_F","O_G_engineer_F","O_G_Soldier_exp_F","O_G_Soldier_GL_F","O_G_Soldier_LAT_F"]; - btc_type_divers = ["O_diver_F","O_diver_exp_F","O_diver_TL_F"]; - btc_type_crewmen = "O_G_Soldier_F"; - btc_type_motorized = ["I_G_Offroad_01_F","I_G_Offroad_01_armed_F","I_Truck_02_transport_F","I_G_Offroad_01_armed_F","I_Truck_02_covered_F"]; - btc_type_mg = ["O_HMG_01_F","O_HMG_01_high_F"]; - btc_type_gl = ["O_GMG_01_F","O_GMG_01_high_F"]; - }; - case (_p_en == 1 && isClass(configFile >> "cfgVehicles" >> "CAF_AG_ME_T_AK47")) : { - btc_hq = btc_hq_red; - btc_enemy_side = east; - btc_type_units = ["CAF_AG_ME_AK47","CAF_AG_ME_T_AK74","CAF_AG_ME_T_PKM","CAF_AG_ME_T_RPK74","CAF_AG_ME_T_RPG","CAF_AG_ME_T_GL"]; - btc_type_divers = ["O_diver_F","O_diver_exp_F","O_diver_TL_F"]; - btc_type_crewmen = "CAF_AG_ME_T_AK47"; - btc_type_motorized = ["CAF_AG_ME_T_Offroad","I_Truck_02_transport_F","CAF_AG_ME_T_Offroad_armed_01","CAF_AG_ME_T_van_01"]; - btc_type_mg = ["O_HMG_01_F","O_HMG_01_high_F"]; - btc_type_gl = ["O_GMG_01_F","O_GMG_01_high_F"]; - btc_civ_type_units = ["CAF_AG_ME_CIV","CAF_AG_ME_CIV_02","CAF_AG_ME_CIV_03","CAF_AG_ME_CIV_04"]; - }; - case (_p_en == 2) : - { - btc_hq = btc_hq_green; - btc_enemy_side = resistance; - btc_type_units = ["I_Soldier_F","I_Soldier_TL_F","I_Soldier_AR_F","I_engineer_F","I_Soldier_exp_F","I_Soldier_GL_F","I_Soldier_LAT_F","I_Soldier_AT_F","I_Soldier_AA_F","I_Spotter_F","I_Sniper_F"]; - btc_type_divers = ["I_diver_F","I_diver_exp_F","I_diver_TL_F"]; - btc_type_crewmen = "I_Soldier_F"; - btc_type_motorized = ["I_G_Offroad_01_F","I_G_Offroad_01_armed_F","I_Truck_02_transport_F","I_G_Offroad_01_armed_F","I_Truck_02_covered_F","I_MRAP_03_F","I_MRAP_03_hmg_F","I_MRAP_03_gmg_F","I_Heli_light_03_F","I_APC_tracked_03_cannon_F"]; - btc_type_mg = ["I_HMG_01_F","I_HMG_01_high_F"]; - btc_type_gl = ["I_GMG_01_F","I_GMG_01_high_F"]; - }; - case (_p_en == 3 && isClass(configFile >> "cfgVehicles" >> "rhs_g_Soldier_F")) : { - btc_hq = btc_hq_green; - btc_enemy_side = resistance; - btc_type_units = ["rhs_g_Soldier_F","rhs_g_medic_F","rhs_g_engineer_F","rhs_g_Soldier_exp_F","rhs_g_Soldier_GL_F","rhs_g_Soldier_AAT_F","rhs_g_Soldier_AR_F","rhs_g_Soldier_AAR_F","rhs_g_Soldier_M_F","rhs_g_uniform5_base","rhs_g_uniform1_base","rhs_g_uniform2_base","rhs_g_uniform3_base","rhs_g_uniform4_base","rhs_g_Soldier_F2","rhs_g_Soldier_F","rhs_g_Soldier_LAT_F","rhs_g_Soldier_lite_F","rhs_g_Soldier_AT_F","rhs_g_Soldier_AA_F","rhs_g_Soldier_TL_F","rhs_g_Soldier_SL_F"]; - btc_type_divers = ["I_diver_F","I_diver_exp_F","I_diver_TL_F"]; - btc_type_crewmen = "rhs_g_Crew_F"; - btc_type_boats = ["I_Boat_Armed_01_minigun_F","I_Boat_Transport_01_F","I_SDV_01_F","I_G_Boat_Transport_01_F"]; - btc_type_motorized = ["RHS_UAZ_MSV_01","rhs_uaz_open_MSV_01","rhs_btr60_msv","rhs_btr70_msv","rhs_bmd1_chdkz","rhs_bmd2_chdkz","RHS_Ural_MSV_01","RHS_Ural_Open_MSV_01","RHS_Ural_Open_Flat_MSV_01","RHS_Ural_Flat_MSV_01"]; - btc_type_mg = ["I_HMG_01_F","I_HMG_01_high_F","rhs_KORD_INS","rhs_KORD_high_INS","RHS_NSV_TriPod_INS","rhs_DSHKM_ins","rhs_DSHKM_Mini_TriPod_ins"]; - btc_type_gl = ["I_GMG_01_F","I_GMG_01_high_F","RHS_AGS30_TriPod_INS"]; - }; - case (_p_en == 4 && isClass(configFile >> "cfgVehicles" >> "btc_am_mg")) : { - btc_hq = btc_hq_red; - btc_enemy_side = east; - btc_type_units = ["btc_am_mg","btc_am_m","btc_am_medic","btc_am_r","btc_am_amg","btc_am_at","btc_am_gl","btc_afghan_1_2","btc_afghan_1_3","btc_afghan_1_4","btc_afghan_1_5","btc_am_tl"]; - btc_type_divers = ["O_diver_F","O_diver_exp_F","O_diver_TL_F"]; - btc_type_crewmen = "btc_am_r"; - btc_type_motorized = ["btc_am_offroad","btc_am_offroad_armed","btc_am_ural","btc_am_ural_open","btc_am_btr60","btc_am_bmd1","btc_am_brm1k"]; - btc_type_mg = ["O_HMG_01_F","O_HMG_01_high_F"]; - btc_type_gl = ["O_GMG_01_F","O_GMG_01_high_F"]; - }; - case (_p_en == 5 && isClass(configFile >> "cfgVehicles" >> "aif_oficial")) : { - btc_hq = btc_hq_green; - btc_enemy_side = resistance; - btc_type_units = ["aif_oficial","aif_oficial2","aif_oficial3","aif_support_MG","aif_specialist_Ex","aif_rifleman","aif_riflemanAK103","aif_riflemanM4","aif_support_AT","aif_riflemanGL","aif_TeamLeader","aif_sniper","aif_riflemanGLM4","aif_support_rpg26","aif_TeamLeader_G","aif_medic_G","aif_rifleman_G"]; - btc_type_divers = ["I_diver_F","I_diver_exp_F","I_diver_TL_F"]; - btc_type_crewmen = "aif_driver"; - btc_type_motorized = ["aif_armed","aif_offroad","aif_offroad2","aif_car","aif_truck_ural","aif_truck","aif_heli_MH6","aif_heli_K60","aif_uaz_dshkm","aif_uaz_spg9","aif_apc","aif_uaz_open"]; - btc_type_mg = ["aif_Static_M2","aif_Static_M2_MiniTripod"]; - btc_type_gl = ["O_GMG_01_F","O_GMG_01_high_F","aif_Static_Mk19_TriPod"]; - }; - case (_p_en == 6) : { - btc_hq = btc_hq_green; - btc_enemy_side = resistance; - btc_type_units = ["I_C_Soldier_Bandit_5_F","I_C_Soldier_Bandit_6_F","I_C_Soldier_Bandit_3_F","I_C_Soldier_Bandit_8_F","I_C_Soldier_Bandit_2_F","I_C_Soldier_Bandit_4_F","I_C_Soldier_Bandit_7_F","I_C_Soldier_Bandit_1_F","I_C_Soldier_Para_6_F","I_C_Soldier_Para_7_F","I_C_Soldier_Para_2_F","I_C_Soldier_Para_3_F","I_C_Soldier_Para_4_F","I_C_Soldier_Para_8_F","I_C_Soldier_Para_1_F","I_C_Soldier_Para_5_F"]; - btc_type_divers = ["I_diver_F","I_diver_exp_F","I_diver_TL_F"]; - btc_type_crewmen = "I_C_Soldier_Bandit_5_F"; - btc_type_boats = ["I_Boat_Armed_01_minigun_F","I_Boat_Transport_01_F","I_SDV_01_F","I_G_Boat_Transport_01_F","I_C_Boat_Transport_01_F","I_C_Boat_Transport_02_F"]; - btc_type_motorized = ["I_G_Offroad_01_F","I_C_Van_01_transport_F","O_T_LSV_02_armed_F","O_T_LSV_02_unarmed_F","I_Truck_02_transport_F","I_C_Offroad_02_unarmaed_F","I_G_Offroad_01_armed_F","I_Truck_02_covered_F"]; - btc_type_mg = ["I_HMG_01_F","I_HMG_01_high_F"]; - btc_type_gl = ["I_GMG_01_F","I_GMG_01_high_F"]; +/*// Get all faction from mod there are currently running +allfaction = (("true" configClasses (configFile >> "CfgFactionClasses")) apply {configName _x}) select {getNumber(configfile >> "CfgFactionClasses" >> _x >> "side") < 3 AND getNumber(configfile >> "CfgFactionClasses" >> _x >> "side") > -1}; +texts = allfaction apply {getText(configfile >> "CfgFactionClasses" >> _x >> "displayName")}; +values = []; +for "_i" from 0 to (count allfaction) - 1 do { + values pushBack _i; +};*/ + +private _allfaction = ["caf_ag_afr_p","caf_ag_eeur_r","caf_ag_me_t","BLU_F","OPF_F","IND_F","IND_G_F","BLU_G_F","OPF_G_F","CUP_B_USMC","CUP_B_US_Army","CUP_B_CDF","CUP_O_RU","CUP_O_ChDKZ","CUP_I_NAPA","CUP_B_RNZN","CUP_O_TK","CUP_O_TK_MILITIA","CUP_B_US","CUP_B_CZ","CUP_B_GER","CUP_I_TK_GUE","CUP_I_UN","CUP_O_SLA","CUP_I_RACS","CUP_B_GB","CUP_I_PMC_ION","rhs_faction_usarmy","rhs_faction_usmc","rhs_faction_usarmy_wd","rhs_faction_usarmy_d","rhs_faction_usmc_wd","rhs_faction_usmc_d","rhs_faction_usaf","rhs_faction_usn","rhs_faction_socom","fow_wehrmacht","fow_ija","fow_usa","fow_usmc","fow_uk","Tban","rhs_faction_msv","rhs_faction_vdv","rhs_faction_vdv_45","rhs_faction_vmf","rhs_faction_vv","rhs_faction_tv","rhs_faction_vpvo","rhs_faction_vvs","rhs_faction_vvs_c","rhs_faction_rva","usml_aif","IND_C_F","BLU_T_F","BLU_CTRG_F","BLU_GEN_F","OPF_T_F","OPF_V_F","rhs_faction_insurgents","LIB_RKKA","LIB_NKVD","LIB_USSR_TANK_TROOPS","LIB_USSR_AIRFORCE","LIB_WEHRMACHT","LIB_PANZERWAFFE","LIB_LUFTWAFFE","SG_STURMPANZER","SG_STURM","LIB_GUER","LIB_US_ARMY","LIB_US_TANK_TROOPS","LIB_US_AIRFORCE","LIB_DAK","LIB_NAC","LIB_US_RANGERS","LIB_CIV","LIB_FFI","LIB_MKHL","LIB_ARR","LIB_RBAF","btc_am","LOP_UN","LOP_CDF","LOP_AA","LOP_IA","LOP_US","LOP_ChDKZ","LOP_TKA","LOP_SLA","LOP_RACS","LOP_PMC","LOP_ISTS","LOP_ISTS_OPF","LOP_NAPA","LOP_AM","LOP_AM_OPF","LOP_AFR","LOP_AFR_OPF","LOP_UA","LOP_PESH","LOP_PESH_IND","LOP_UKR","LOP_BH","LOP_IRA","LIB_RKKA_w","LIB_USSR_TANK_TROOPS_w","LIB_USSR_AIRFORCE_w","LIB_WEHRMACHT_w","LIB_PANZERWAFFE_w","LIB_LUFTWAFFE_w","LIB_US_ARMY_w","LIB_US_TANK_TROOPS_w","LIB_US_AIRFORCE_w","SG_STURM_w"]; //All factions +_p_en = _allfaction select _p_en; //Select faction selected from mission parameter +[_p_en, _p_en_AA, _p_en_tank] call btc_fnc_mil_classes; //Create classes from the corresponding faction + +//Sometimes you need to remove units: - ["Blabla","moreBlabla"]; +//Sometimes you need to add units: + ["Blabla","moreBlabla"]; +switch (_p_en) do { + /*case "Myfactionexmple" : { + 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 "fow_usmc" : { + btc_type_units = btc_type_units - ["fow_s_usmc_01_private"]; }; - case (_p_en == 7 && isClass(configFile >> "cfgVehicles" >> "LOP_AM_Infantry_Engineer")) : { - btc_hq = btc_hq_green; - btc_enemy_side = resistance; - btc_type_units = ["LOP_AM_Infantry_Engineer","LOP_AM_Infantry_Corpsman","LOP_AM_Infantry_GL","LOP_AM_Infantry_Rifleman","LOP_AM_Infantry_Rifleman_2","LOP_AM_Infantry_Rifleman_3","LOP_AM_Infantry_Marksman","LOP_AM_Infantry_AT","LOP_AM_Infantry_AR","LOP_AM_Infantry_AR_Asst","LOP_AM_Infantry_SL"]; - btc_type_divers = ["I_diver_F","I_diver_exp_F","I_diver_TL_F"]; - btc_type_crewmen = "LOP_AM_Infantry_Engineer"; - btc_type_vehicle = ["LOP_AM_BTR60","LOP_AM_UAZ_SPG","LOP_AM_UAZ_DshKM","LOP_AM_UAZ_AGS","LOP_AM_Landrover_M2"]; - btc_type_boats = ["I_Boat_Transport_01_F","I_G_Boat_Transport_01_F","I_C_Boat_Transport_01_F","I_C_Boat_Transport_02_F"]; - btc_type_motorized = ["LOP_AM_Offroad","LOP_AM_Landrover","LOP_AM_Truck","LOP_AM_UAZ","LOP_AM_UAZ_Open"]; - btc_type_mg = ["LOP_AM_NSV_TriPod","LOP_AM_Kord","LOP_AM_Static_DSHKM","LOP_AM_Kord_High"]; - btc_type_gl = ["LOP_AM_AGS30_TriPod","LOP_AM_Static_SPG9"]; + case "fow_usa" : { + btc_type_units = btc_type_units - ["fow_s_usa_01_private"]; }; - case (_p_en == 8 && isClass(configFile >> "cfgVehicles" >> "LOP_ISTS_Infantry_Engineer")) : { - btc_hq = btc_hq_green; - btc_enemy_side = resistance; - btc_type_units = ["LOP_ISTS_Infantry_Engineer","LOP_ISTS_Infantry_Corpsman","LOP_ISTS_Infantry_GL","LOP_ISTS_Infantry_Rifleman","LOP_ISTS_Infantry_Rifleman_2","LOP_ISTS_Infantry_Rifleman_3","LOP_ISTS_Infantry_AT","LOP_ISTS_Infantry_Marksman","LOP_ISTS_Infantry_AR_Asst","LOP_ISTS_Infantry_AR"]; - btc_type_divers = ["I_diver_F","I_diver_exp_F","I_diver_TL_F"]; - btc_type_crewmen = "LOP_ISTS_Infantry_Engineer"; - btc_type_boats = ["I_Boat_Transport_01_F","I_G_Boat_Transport_01_F","I_C_Boat_Transport_01_F","I_C_Boat_Transport_02_F"]; - btc_type_motorized = ["LOP_ISTS_Offroad","LOP_ISTS_Truck","LOP_AM_Truck","LOP_ISTS_M998_D_4DR","LOP_ISTS_M1025_D","LOP_ISTS_Landrover"]; - btc_type_mg = ["LOP_ISTS_Static_DSHKM","LOP_ISTS_Kord","LOP_ISTS_Kord_High","LOP_ISTS_NSV_TriPod","LOP_ISTS_Static_ZU23"]; - btc_type_gl = ["LOP_ISTS_AGS30_TriPod","LOP_ISTS_Static_SPG9"]; - }; - case (_p_en == 9 && isClass(configFile >> "cfgVehicles" >> "LOP_UA_Infantry_AT_Asst")) : { - btc_hq = btc_hq_green; - btc_enemy_side = resistance; - btc_type_units = ["LOP_UA_Infantry_AT_Asst","LOP_UA_Infantry_Corpsman","LOP_UA_Infantry_GL","LOP_UA_Infantry_AT","LOP_UA_Infantry_Rifleman","LOP_UA_Infantry_Rifleman_2","LOP_UA_Infantry_Rifleman_3","LOP_UA_Infantry_Marksman","LOP_UA_Infantry_MG_Asst","LOP_UA_Infantry_MG","LOP_UA_Officer","LOP_UA_Infantry_SL","LOP_UA_Infantry_TL"]; - btc_type_divers = ["I_diver_F","I_diver_exp_F","I_diver_TL_F"]; - btc_type_crewmen = "LOP_UA_Infantry_AT_Asst"; - btc_type_boats = ["I_Boat_Transport_01_F","I_G_Boat_Transport_01_F","I_C_Boat_Transport_01_F","I_C_Boat_Transport_02_F"]; - btc_type_motorized = ["LOP_UA_UAZ","LOP_UA_UAZ_Open","LOP_UA_Ural_open","LOP_UA_Ural","LOP_UA_Ural_fuel"]; - btc_type_mg = ["LOP_UA_Kord","LOP_UA_Kord_High","LOP_UA_NSV_TriPod"]; - btc_type_gl = ["LOP_UA_AGS30_TriPod"]; + case "fow_uk" : { + btc_type_units = btc_type_units - ["fow_s_uk_01_private"]; }; - case (_p_en == 10) : { - btc_hq = btc_hq_red; - btc_enemy_side = east; - btc_type_units = ["O_T_Soldier_A_F","O_T_Soldier_AAR_F","O_T_Soldier_AR_F","O_T_Medic_F","O_T_Engineer_F","O_T_Soldier_Exp_F","O_T_Soldier_GL_F","O_T_Soldier_M_F","O_V_Soldier_JTAC_ghex_F","O_V_Soldier_Exp_ghex_F","O_V_Soldier_M_ghex_F","O_V_Soldier_ghex_F","O_V_Soldier_Medic_ghex_F","O_V_Soldier_LAT_ghex_F","O_V_Soldier_TL_ghex_F","O_T_Recon_JTAC_F","O_T_Recon_M_F","O_T_Recon_Medic_F","O_T_Recon_LAT_F","O_T_ghillie_tna_F"] -; - btc_type_divers = ["O_T_Diver_F","O_T_Diver_TL_F","O_T_Diver_Exp_F"]; - btc_type_crewmen = "O_T_Crew_F"; - btc_type_boats = ["O_T_Boat_Armed_01_hmg_F","O_T_Boat_Transport_01_F","0_SDV_01_F","I_G_Boat_Transport_01_F"]; - btc_type_motorized = ["O_G_Offroad_01_F","O_G_Offroad_01_armed_F","O_T_LSV_02_armed_F","O_T_LSV_02_unarmed_F","O_T_MRAP_02_gmg_ghex_F","O_T_MRAP_02_hmg_ghex_F","O_T_MRAP_02_ghex_F","O_T_Truck_03_transport_ghex_F","O_T_Truck_03_covered_ghex_F"]; - btc_type_mg = ["O_HMG_01_F","O_HMG_01_high_F"]; - btc_type_gl = ["O_GMG_01_F","O_GMG_01_high_F"]; - }; - case (_p_en == 11 && isClass(configfile >> "CfgFactionClasses" >> "fow_usmc")) : { - _allclasse = _allclasse select {getText(configFile >> "cfgvehicles" >> _x >> "faction") isEqualTo "fow_usmc"}; - btc_hq = btc_hq_green; - btc_enemy_side = resistance; - btc_type_units = (_allclasse select {_x isKindOf "Man"}) - ["fow_s_usmc_base","fow_s_usmc_01_private"]; - btc_type_divers = ["I_diver_F","I_diver_exp_F","I_diver_TL_F"]; - btc_type_crewmen = btc_type_units select 0; - btc_type_boats = _allclasse select {_x isKindOf "Ship"}; - btc_type_motorized = _allclasse select {((_x isKindOf "Tank") || (_x isKindOf "Car") || (_x isKindOf "Truck"))}; - btc_type_mg = _allclasse select {_x isKindOf "StaticGrenadeLauncher"}; - btc_type_gl = _allclasse select {_x isKindOf "StaticMGWeapon"}; - }; - case (_p_en == 12 && isClass(configfile >> "CfgFactionClasses" >> "fow_usa")) : { - _allclasse = _allclasse select {getText(configFile >> "cfgvehicles" >> _x >> "faction") isEqualTo "fow_usa"}; - btc_hq = btc_hq_green; - btc_enemy_side = resistance; - btc_type_units = (_allclasse select {_x isKindOf "Man"}) - ["fow_s_usa_base","fow_s_usa_01_private"]; - btc_type_divers = ["I_diver_F","I_diver_exp_F","I_diver_TL_F"]; - btc_type_crewmen = btc_type_units select 0; - btc_type_boats = _allclasse select {_x isKindOf "Ship"}; - btc_type_motorized = _allclasse select {((_x isKindOf "Tank") || (_x isKindOf "Car") || (_x isKindOf "Truck"))}; - btc_type_mg = _allclasse select {_x isKindOf "StaticGrenadeLauncher"}; - btc_type_gl = _allclasse select {_x isKindOf "StaticMGWeapon"}; - }; - case (_p_en == 13 && isClass(configfile >> "CfgFactionClasses" >> "fow_uk")) : { - _allclasse = _allclasse select {getText(configFile >> "cfgvehicles" >> _x >> "faction") isEqualTo "fow_uk"}; - btc_hq = btc_hq_green; - btc_enemy_side = resistance; - btc_type_units = (_allclasse select {_x isKindOf "Man"}) - ["fow_s_uk_base","fow_s_uk_01_private"]; - btc_type_divers = ["I_diver_F","I_diver_exp_F","I_diver_TL_F"]; - btc_type_crewmen = btc_type_units select 0; - btc_type_boats = _allclasse select {_x isKindOf "Ship"}; - btc_type_motorized = _allclasse select {((_x isKindOf "Tank") || (_x isKindOf "Car") || (_x isKindOf "Truck"))}; - btc_type_mg = _allclasse select {_x isKindOf "StaticGrenadeLauncher"}; - btc_type_gl = _allclasse select {_x isKindOf "StaticMGWeapon"}; - }; - default { - btc_hq = btc_hq_red; - btc_enemy_side = east; - btc_type_units = ["O_G_Soldier_F","O_G_Soldier_TL_F","O_G_Soldier_AR_F","O_G_engineer_F","O_G_Soldier_exp_F","O_G_Soldier_GL_F","O_G_Soldier_LAT_F"]; - btc_type_divers = ["O_diver_F","O_diver_exp_F","O_diver_TL_F"]; - btc_type_crewmen = "O_G_Soldier_F"; - btc_type_motorized = ["I_G_Offroad_01_F","I_G_Offroad_01_armed_F","I_Truck_02_transport_F","I_G_Offroad_01_armed_F","I_Truck_02_covered_F"]; - btc_type_mg = ["O_HMG_01_F","O_HMG_01_high_F"]; - btc_type_gl = ["O_GMG_01_F","O_GMG_01_high_F"]; - } }; -if (btc_type_boats isEqualTo []) then {btc_p_sea = false}; - //Rep btc_rep_bonus_cache = 100; btc_rep_bonus_civ_hh = 3; 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 9ff68b351..e65ad8df6 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 @@ -43,10 +43,17 @@ class Params { }; class btc_p_en { //paramsArray[6] + /*// Get all faction from mod there are currently running + allfaction = (("true" configClasses (configFile >> "CfgFactionClasses")) apply {configName _x}) select {getNumber(configfile >> "CfgFactionClasses" >> _x >> "side") < 3 AND getNumber(configfile >> "CfgFactionClasses" >> _x >> "side") > -1}; + texts = allfaction apply {getText(configfile >> "CfgFactionClasses" >> _x >> "displayName")}; + values = []; + for "_i" from 0 to (count allfaction) - 1 do { + values pushBack _i; + };*/ title = " Enemy type:"; - values[]={0,1,2,3,4,5,6,7,8,9,10}; - texts[]={"Guerrilla (A3)","CAF (@CAF Aggressors)","AAF (A3)","RHS Insurgents (@RHS_AFRF)","Militia (@=BTC= Militia)","Militia (@IWAR: Irregular Warfare)","Syndikat (A3)","Middle East Militia (@Project Opfor)","ISTS (@Project Opfor)","Ultranationalists (@Project Opfor)","CSAT Pacific (A3)"}; - default = 0; + 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}; + texts[]={"Africa - Pirates","East Europe - Rebels","Middle East - Tribal","OTAN","CSAT","AAF","FIA","FIA","FIA","United States Marine Corps","United States Army","Chenarus Defense Force (CDF)","Russian Federation","ChDKZ (Chenarus)","NAPA (Chenarus)","Royal New Zealand Navy","Takistani Army","Takistani Militia","United States of America","Czech Republic","Germany","Takistani Locals","United Nations","Sahrani Liberation Army","Royal Army Corp of Sahrani","United Kingdom","ION PMC","USA (Army)","USA (USMC)","USA (Army - W)","USA (Army - D)","USA (USMC - W)","USA (USMC - D)","USA (USAF)","USA (Navy)","USA (SOCOM)","Wehrmacht","Imperial Japanese Army","US Army","US Marines Corps","UK","Taliban","Russia (MSV)","Russia (VDV)","","Russia (VMF)","Russia (VV)","Russia (TV)","Russia (VPVO)","Russia (VVS - Grey)","Russia (VVS - Camo)","Russia (RVA)","Armed Islamic Front","Syndikat","OTAN (Pacifique)","CTRG","Gendarmerie","CSAT (Pacifique)","Viper","Eastern Militia","Red Army","NKVD","Tank troops of USSR","USSR Airforce","Wehrmacht","Panzerwaffe","Luftwaffe","Tank Sturmtroopers","Sturmtroopers","Armia Krajowa (Polonais)","US Army","US Tank Troops","US Army Air Forces","Deutsches Afrikakorps","US North African Corps","US 2nd Ranger Battalion","40s Civilians","FFI","MKHL","ARR","RBAF","Afghan Militia","United Nations","Chernarussian Defence Forces","Afghan National Army and Police","Iraqi Armed Forces","United Armed Forces of Novorossiya","ChDKZ","Takistani Armed Forces","Sahrani Liberation Army","Royal Army Corps of Sahrani","Private Military Company","Islamic State","Islamic State","Chernarussian National Insurgents","Middle Eastern Militia","Middle Eastern Militia","African Militia","African Militia","Ultranationalists","Kurdish Peshmerga Forces","Kurdish Peshmerga Forces","Ukraine's Armed Forces","Boko Haram","Irish Republican Army","[Winter] Red Army","[Winter] Tank troops of USSR","[Winter] USSR Airforce","[Winter] Wehrmacht","[Winter] Panzerwaffe","[Winter] Luftwaffe","[Winter] US Army","[Winter] US Tank Troops","[Winter] US Airforce","[Winter] Sturmtroopers"}; + default = 6; }; class btc_p_civ { //paramsArray[7] diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 1301f12b1..b3890a8c2 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -197,6 +197,8 @@ btc_fnc_log_tow = compile preprocessFile "core\fnc\log\tow.sqf"; btc_fnc_log_unhook = compile preprocessFile "core\fnc\log\unhook.sqf"; btc_fnc_log_unload = compile preprocessFile "core\fnc\log\unload.sqf"; +//MIL +btc_fnc_mil_classes = compile preprocessFile "core\fnc\mil\classes.sqf"; //TASK btc_fnc_task_create = compile preprocessFileLineNumbers "core\fnc\task\create.sqf"; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/classes.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/classes.sqf new file mode 100644 index 000000000..01e87f42a --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/classes.sqf @@ -0,0 +1,47 @@ + +private _faction = _this select 0; + +private _allclasse = ("(configName _x) isKindOf 'AllVehicles'" configClasses (configFile >> "CfgVehicles")) apply {configName _x}; + +if !isClass(configFile >> "CfgFactionClasses" >> _faction) then {_faction = "IND_G_F";}; +_allclasse = _allclasse select {getText(configFile >> "cfgvehicles" >> _x >> "faction") isEqualTo _faction}; + +private _hq = [btc_hq_red,btc_hq_blu,btc_hq_green] select getNumber(configfile >> "CfgFactionClasses" >> _faction >> "side"); +private _enemy_side = [east,west,independent,civilian] select getNumber(configfile >> "CfgFactionClasses" >> _faction >> "side"); + +private _type_divers = _allclasse select {!((_x find "diver") isEqualTo -1)}; +if (_type_divers isEqualTo []) then {_type_divers = ["O_diver_F","O_diver_exp_F","O_diver_TL_F"];}; +private _type_units = (_allclasse select {_x isKindOf "Man"}) - [_type_divers]; +if !(_this select 1) then { + //Remove Anti-Air Units + _type_units = _type_units select {(_x find "AA") isEqualTo -1}; +}; + +private _type_crewmen = _type_units select 0; +private _type_boats = _allclasse select {_x isKindOf "Ship"}; +if (_type_boats isEqualTo []) then {_type_boats = ["I_Boat_Armed_01_minigun_F","I_Boat_Transport_01_F","I_SDV_01_F","I_G_Boat_Transport_01_F"];}; +private _type_motorized = if (_this select 2) then { + _allclasse select {(_x isKindOf "Tank") || (_x isKindOf "Car") || (_x isKindOf "Truck")} +} else { + _allclasse select {(_x isKindOf "Car") || (_x isKindOf "Truck")} +}; + +private _type_mg = _allclasse select {_x isKindOf "StaticGrenadeLauncher"}; +if (_type_mg isEqualTo []) then {_type_mg = ["O_HMG_01_F","O_HMG_01_high_F"];}; +private _type_gl = _allclasse select {_x isKindOf "StaticMGWeapon"}; +if (_type_gl isEqualTo []) then {_type_mg = ["O_GMG_01_F","O_GMG_01_high_F"];}; + +//Filter unwanted units type +_type_units = _type_units select {(_x find "_base") isEqualTo -1}; +_type_motorized = (_type_motorized select {(_x find "UAV") isEqualTo -1}) select {(_x find "UGV") isEqualTo -1}; + +//Save classe name to global variable +btc_hq = _hq; +btc_enemy_side = _enemy_side; +btc_type_units = _type_units; +btc_type_divers = _type_divers; +btc_type_crewmen = _type_crewmen; +btc_type_boats = _type_boats; +btc_type_motorized = _type_motorized; +btc_type_mg = _type_mg; +btc_type_gl = _type_gl; \ No newline at end of file From a3689a5b1eda25460d52924a53345a19715f3376 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 1 Mar 2017 00:38:39 +0100 Subject: [PATCH 023/120] Add comment --- .../core/fnc/mil/classes.sqf | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/classes.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/classes.sqf index 01e87f42a..7c5316812 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/classes.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/classes.sqf @@ -1,14 +1,17 @@ private _faction = _this select 0; +//Get all vehicles private _allclasse = ("(configName _x) isKindOf 'AllVehicles'" configClasses (configFile >> "CfgVehicles")) apply {configName _x}; +//Get all vehicles of the _faction selected if !isClass(configFile >> "CfgFactionClasses" >> _faction) then {_faction = "IND_G_F";}; _allclasse = _allclasse select {getText(configFile >> "cfgvehicles" >> _x >> "faction") isEqualTo _faction}; private _hq = [btc_hq_red,btc_hq_blu,btc_hq_green] select getNumber(configfile >> "CfgFactionClasses" >> _faction >> "side"); private _enemy_side = [east,west,independent,civilian] select getNumber(configfile >> "CfgFactionClasses" >> _faction >> "side"); +//Units private _type_divers = _allclasse select {!((_x find "diver") isEqualTo -1)}; if (_type_divers isEqualTo []) then {_type_divers = ["O_diver_F","O_diver_exp_F","O_diver_TL_F"];}; private _type_units = (_allclasse select {_x isKindOf "Man"}) - [_type_divers]; @@ -16,8 +19,9 @@ if !(_this select 1) then { //Remove Anti-Air Units _type_units = _type_units select {(_x find "AA") isEqualTo -1}; }; - private _type_crewmen = _type_units select 0; + +//Vehicles private _type_boats = _allclasse select {_x isKindOf "Ship"}; if (_type_boats isEqualTo []) then {_type_boats = ["I_Boat_Armed_01_minigun_F","I_Boat_Transport_01_F","I_SDV_01_F","I_G_Boat_Transport_01_F"];}; private _type_motorized = if (_this select 2) then { @@ -26,12 +30,13 @@ private _type_motorized = if (_this select 2) then { _allclasse select {(_x isKindOf "Car") || (_x isKindOf "Truck")} }; +//Static private _type_mg = _allclasse select {_x isKindOf "StaticGrenadeLauncher"}; if (_type_mg isEqualTo []) then {_type_mg = ["O_HMG_01_F","O_HMG_01_high_F"];}; private _type_gl = _allclasse select {_x isKindOf "StaticMGWeapon"}; if (_type_gl isEqualTo []) then {_type_mg = ["O_GMG_01_F","O_GMG_01_high_F"];}; -//Filter unwanted units type +//Final filter unwanted units type _type_units = _type_units select {(_x find "_base") isEqualTo -1}; _type_motorized = (_type_motorized select {(_x find "UAV") isEqualTo -1}) select {(_x find "UGV") isEqualTo -1}; From f4197f809827b550ec7006d64d366cdb89a7632e Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 3 Mar 2017 19:08:07 +0100 Subject: [PATCH 024/120] add: allow SDV to lift object under water --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 2 ++ .../core/fnc/eh/extended_InitPost_EH.hpp | 5 +++++ .../core/fnc/eh/veh_init.sqf | 8 ++++++++ .../core/fnc/log/lift_check.sqf | 4 ++-- .../core/fnc/log/lift_hud_loop.sqf | 4 ++-- 5 files changed, 19 insertions(+), 4 deletions(-) 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 6486ec4c9..f273bac15 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 @@ -458,6 +458,8 @@ btc_fnc_log_get_liftable = { case "RHS_CH_47F_10" : {_array = (["Motorcycle","ReammoBox","ReammoBox_F","StaticWeapon","Car","Truck","Wheeled_APC","Tracked_APC","APC_Tracked_01_base_F","APC_Tracked_02_base_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 "B_SDV_01_F" : {_array = (["Motorcycle","ReammoBox","ReammoBox_F","StaticWeapon","Car","Truck","Wheeled_APC","Tracked_APC","APC_Tracked_01_base_F","APC_Tracked_02_base_F","Air","Ship"]) + ((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"); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/extended_InitPost_EH.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/extended_InitPost_EH.hpp index e91e62b1f..b15cccd07 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/extended_InitPost_EH.hpp +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/extended_InitPost_EH.hpp @@ -8,6 +8,11 @@ class Extended_InitPost_EventHandlers { class btc_actions { init = "_this call btc_fnc_eh_veh_init"; }; + }; + class Ship { + class btc_actions { + init = "_this call btc_fnc_eh_veh_init"; + }; }; /*class CAManBase { class btc_actions { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/veh_init.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/veh_init.sqf index c326324b0..05e30f583 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/veh_init.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/veh_init.sqf @@ -56,4 +56,12 @@ switch true do { _action = ["Cut_ropes","Cut ropes","\z\ace\addons\logistics_wirecutter\ui\wirecutter_ca.paa",{[] spawn btc_fnc_log_lift_destroy_ropes;},{btc_ropes_deployed && {((driver vehicle player) isEqualTo player)}}] call ace_interact_menu_fnc_createAction; [_type, 1, ["ACE_SelfActions"], _action,true] call ace_interact_menu_fnc_addActionToClass; }; + case (_type isKindOf "Ship") : { + private ["_action"]; + //Lift + _action = ["Deploy_ropes","Deploy ropes","\A3\Structures_F_Heli\VR\Helpers\Data\VR_Symbol_Heli_Slingloading_CA.paa",{[] spawn btc_fnc_log_lift_deploy_ropes;},{!btc_ropes_deployed && {((driver vehicle player) isEqualTo player)}}] call ace_interact_menu_fnc_createAction; + [_type, 1, ["ACE_SelfActions"], _action,true] call ace_interact_menu_fnc_addActionToClass; + _action = ["Cut_ropes","Cut ropes","\z\ace\addons\logistics_wirecutter\ui\wirecutter_ca.paa",{[] spawn btc_fnc_log_lift_destroy_ropes;},{btc_ropes_deployed && {((driver vehicle player) isEqualTo player)}}] call ace_interact_menu_fnc_createAction; + [_type, 1, ["ACE_SelfActions"], _action,true] call ace_interact_menu_fnc_addActionToClass; + }; }; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/lift_check.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/lift_check.sqf index 91de3653b..dd0fc8754 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/lift_check.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/lift_check.sqf @@ -1,7 +1,7 @@ private ["_array","_chopper","_can_lift","_cargo_array","_cargo","_cargo_pos","_cargo_x","_cargo_y","_cargo_z"]; -if (!(vehicle player isKindOf "Helicopter") || !isNull ((vehicle player) getVariable ["cargo",objNull])) exitWith {false}; +if (!(vehicle player isKindOf "Helicopter" || (vehicle player isKindOf "Ship")) || !isNull ((vehicle player) getVariable ["cargo",objNull])) exitWith {false}; _array = [vehicle player] call btc_fnc_log_get_liftable; if (count _array == 0) exitWith {false}; _chopper = vehicle player; @@ -22,7 +22,7 @@ _cargo_pos = getPosATL _cargo; _rel_pos = _chopper worldToModel _cargo_pos; _cargo_x = _rel_pos select 0; _cargo_y = _rel_pos select 1; -_cargo_z = _rel_pos select 2;//hintSilent format ["%1 - %2 - %3",_cargo_x,_cargo_y,_cargo_z]; +_cargo_z = ((getPosATL _chopper) select 2) - (_cargo_pos select 2);//hintSilent format ["%1 - %2 - %3",_cargo_x,_cargo_y,_cargo_z]; if (((abs _cargo_z) < btc_lift_max_h) && ((abs _cargo_z) > btc_lift_min_h) && ((abs _cargo_x) < btc_lift_radius) && ((abs _cargo_y) < btc_lift_radius)) then {_can_lift = true;} else {_can_lift = false;}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/lift_hud_loop.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/lift_hud_loop.sqf index b9aa74af0..dee31c28f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/lift_hud_loop.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/lift_hud_loop.sqf @@ -30,10 +30,10 @@ if (({_cargo isKindOf _x} count _array) > 0) then {_can_lift = true;} else {_can if (!isNull _cargo) then { _cargo_pos = getPosATL _cargo; - _rel_pos = (_chopper) worldToModel _cargo_pos; + _rel_pos = _chopper worldToModel _cargo_pos; _cargo_x = _rel_pos select 0; _cargo_y = _rel_pos select 1; - _cargo_z = _rel_pos select 2; + _cargo_z = ((getPosATL _chopper) select 2) - (_cargo_pos select 2); _obj_img ctrlShow true; _hud_x = _cargo_x / 100; switch (true) do { From 8c7d6cb07e0f7cafa01e0593fb5366dd1efef4de Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 3 Mar 2017 21:37:33 +0100 Subject: [PATCH 025/120] Add: now we can combine faction from the same side --- .../core/def/mission.sqf | 14 +++- .../core/fnc/mil/classes.sqf | 84 ++++++++++--------- 2 files changed, 58 insertions(+), 40 deletions(-) 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 b57827b5d..c4494e46b 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 @@ -489,10 +489,20 @@ values = []; for "_i" from 0 to (count allfaction) - 1 do { values pushBack _i; };*/ - private _allfaction = ["caf_ag_afr_p","caf_ag_eeur_r","caf_ag_me_t","BLU_F","OPF_F","IND_F","IND_G_F","BLU_G_F","OPF_G_F","CUP_B_USMC","CUP_B_US_Army","CUP_B_CDF","CUP_O_RU","CUP_O_ChDKZ","CUP_I_NAPA","CUP_B_RNZN","CUP_O_TK","CUP_O_TK_MILITIA","CUP_B_US","CUP_B_CZ","CUP_B_GER","CUP_I_TK_GUE","CUP_I_UN","CUP_O_SLA","CUP_I_RACS","CUP_B_GB","CUP_I_PMC_ION","rhs_faction_usarmy","rhs_faction_usmc","rhs_faction_usarmy_wd","rhs_faction_usarmy_d","rhs_faction_usmc_wd","rhs_faction_usmc_d","rhs_faction_usaf","rhs_faction_usn","rhs_faction_socom","fow_wehrmacht","fow_ija","fow_usa","fow_usmc","fow_uk","Tban","rhs_faction_msv","rhs_faction_vdv","rhs_faction_vdv_45","rhs_faction_vmf","rhs_faction_vv","rhs_faction_tv","rhs_faction_vpvo","rhs_faction_vvs","rhs_faction_vvs_c","rhs_faction_rva","usml_aif","IND_C_F","BLU_T_F","BLU_CTRG_F","BLU_GEN_F","OPF_T_F","OPF_V_F","rhs_faction_insurgents","LIB_RKKA","LIB_NKVD","LIB_USSR_TANK_TROOPS","LIB_USSR_AIRFORCE","LIB_WEHRMACHT","LIB_PANZERWAFFE","LIB_LUFTWAFFE","SG_STURMPANZER","SG_STURM","LIB_GUER","LIB_US_ARMY","LIB_US_TANK_TROOPS","LIB_US_AIRFORCE","LIB_DAK","LIB_NAC","LIB_US_RANGERS","LIB_CIV","LIB_FFI","LIB_MKHL","LIB_ARR","LIB_RBAF","btc_am","LOP_UN","LOP_CDF","LOP_AA","LOP_IA","LOP_US","LOP_ChDKZ","LOP_TKA","LOP_SLA","LOP_RACS","LOP_PMC","LOP_ISTS","LOP_ISTS_OPF","LOP_NAPA","LOP_AM","LOP_AM_OPF","LOP_AFR","LOP_AFR_OPF","LOP_UA","LOP_PESH","LOP_PESH_IND","LOP_UKR","LOP_BH","LOP_IRA","LIB_RKKA_w","LIB_USSR_TANK_TROOPS_w","LIB_USSR_AIRFORCE_w","LIB_WEHRMACHT_w","LIB_PANZERWAFFE_w","LIB_LUFTWAFFE_w","LIB_US_ARMY_w","LIB_US_TANK_TROOPS_w","LIB_US_AIRFORCE_w","SG_STURM_w"]; //All factions _p_en = _allfaction select _p_en; //Select faction selected from mission parameter -[_p_en, _p_en_AA, _p_en_tank] call btc_fnc_mil_classes; //Create classes from the corresponding faction +private _allclasses = [[_p_en /*, "IND_F"*/], _p_en_AA, _p_en_tank] call btc_fnc_mil_classes; //Create classes from the corresponding factions [_p_en , "IND_F"], can combine factions from the SAME side. + +//Save classe name to global variable +btc_hq = _allclasses select 0; +btc_enemy_side = _allclasses select 1; +btc_type_units = _allclasses select 2; +btc_type_divers = _allclasses select 3; +btc_type_crewmen = _allclasses select 4; +btc_type_boats = _allclasses select 5; +btc_type_motorized = _allclasses select 6; +btc_type_mg = _allclasses select 7; +btc_type_gl = _allclasses select 8; //Sometimes you need to remove units: - ["Blabla","moreBlabla"]; //Sometimes you need to add units: + ["Blabla","moreBlabla"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/classes.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/classes.sqf index 7c5316812..43e18e89b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/classes.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/classes.sqf @@ -1,52 +1,60 @@ -private _faction = _this select 0; +private _factions = _this select 0; + +private _hq = []; +private _enemy_side = []; +private _type_units = []; +private _type_divers = []; +private _type_crewmen = []; +private _type_boats = []; +private _type_motorized = []; +private _type_mg = []; +private _type_gl = []; //Get all vehicles private _allclasse = ("(configName _x) isKindOf 'AllVehicles'" configClasses (configFile >> "CfgVehicles")) apply {configName _x}; -//Get all vehicles of the _faction selected -if !isClass(configFile >> "CfgFactionClasses" >> _faction) then {_faction = "IND_G_F";}; -_allclasse = _allclasse select {getText(configFile >> "cfgvehicles" >> _x >> "faction") isEqualTo _faction}; +_factions = _factions apply {if !isClass(configFile >> "CfgFactionClasses" >> _x) then {"IND_G_F";} else {_x};}; -private _hq = [btc_hq_red,btc_hq_blu,btc_hq_green] select getNumber(configfile >> "CfgFactionClasses" >> _faction >> "side"); -private _enemy_side = [east,west,independent,civilian] select getNumber(configfile >> "CfgFactionClasses" >> _faction >> "side"); +_hq = [btc_hq_red,btc_hq_blu,btc_hq_green] select getNumber(configfile >> "CfgFactionClasses" >> (_factions select 0) >> "side"); +_enemy_side = [east,west,independent,civilian] select getNumber(configfile >> "CfgFactionClasses" >> (_factions select 0) >> "side"); -//Units -private _type_divers = _allclasse select {!((_x find "diver") isEqualTo -1)}; -if (_type_divers isEqualTo []) then {_type_divers = ["O_diver_F","O_diver_exp_F","O_diver_TL_F"];}; -private _type_units = (_allclasse select {_x isKindOf "Man"}) - [_type_divers]; +{ + private _faction = _x; + + //Get all vehicles of the _faction selected + private _allclasse_f = _allclasse select {getText(configFile >> "cfgvehicles" >> _x >> "faction") isEqualTo _faction}; + + //Units + private _divers = _allclasse_f select {!((_x find "diver") isEqualTo -1)}; + if (_divers isEqualTo []) then {_divers = ["O_diver_F","O_diver_exp_F","O_diver_TL_F"];}; + _type_divers append _divers; + _type_units append ((_allclasse_f select {_x isKindOf "Man"}) - _divers); + _type_crewmen = _type_units select 0; + + //Vehicles + _type_boats append _allclasse_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 (_this select 2) then { + _allclasse_f select {(_x isKindOf "Tank") || (_x isKindOf "Car") || (_x isKindOf "Truck")} + } else { + _allclasse_f select {(_x isKindOf "Car") || (_x isKindOf "Truck")} + }); + + //Static + _type_mg append _allclasse_f select {_x isKindOf "StaticGrenadeLauncher"}; + if (_type_mg isEqualTo []) then {_type_mg = ["O_HMG_01_F","O_HMG_01_high_F"];}; + _type_gl append _allclasse_f select {_x isKindOf "StaticMGWeapon"}; + if (_type_gl isEqualTo []) then {_type_mg = ["O_GMG_01_F","O_GMG_01_high_F"];}; + +} forEach _factions; + +//Final filter unwanted units type if !(_this select 1) then { //Remove Anti-Air Units _type_units = _type_units select {(_x find "AA") isEqualTo -1}; }; -private _type_crewmen = _type_units select 0; - -//Vehicles -private _type_boats = _allclasse select {_x isKindOf "Ship"}; -if (_type_boats isEqualTo []) then {_type_boats = ["I_Boat_Armed_01_minigun_F","I_Boat_Transport_01_F","I_SDV_01_F","I_G_Boat_Transport_01_F"];}; -private _type_motorized = if (_this select 2) then { - _allclasse select {(_x isKindOf "Tank") || (_x isKindOf "Car") || (_x isKindOf "Truck")} -} else { - _allclasse select {(_x isKindOf "Car") || (_x isKindOf "Truck")} -}; - -//Static -private _type_mg = _allclasse select {_x isKindOf "StaticGrenadeLauncher"}; -if (_type_mg isEqualTo []) then {_type_mg = ["O_HMG_01_F","O_HMG_01_high_F"];}; -private _type_gl = _allclasse select {_x isKindOf "StaticMGWeapon"}; -if (_type_gl isEqualTo []) then {_type_mg = ["O_GMG_01_F","O_GMG_01_high_F"];}; - -//Final filter unwanted units type _type_units = _type_units select {(_x find "_base") isEqualTo -1}; _type_motorized = (_type_motorized select {(_x find "UAV") isEqualTo -1}) select {(_x find "UGV") isEqualTo -1}; -//Save classe name to global variable -btc_hq = _hq; -btc_enemy_side = _enemy_side; -btc_type_units = _type_units; -btc_type_divers = _type_divers; -btc_type_crewmen = _type_crewmen; -btc_type_boats = _type_boats; -btc_type_motorized = _type_motorized; -btc_type_mg = _type_mg; -btc_type_gl = _type_gl; \ No newline at end of file +[_hq,_enemy_side,_type_units,_type_divers,_type_crewmen,_type_boats,_type_motorized,_type_mg,_type_gl] \ No newline at end of file From 5e4824e66f424d4396cfcd9742d250c67975f741 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 4 Mar 2017 19:59:06 +0100 Subject: [PATCH 026/120] add: interaction compatibility --- .../core/fnc/eh/extended_InitPost_EH.hpp | 4 ++-- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/veh_init.sqf | 6 +----- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/garage.sqf | 3 ++- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/extended_InitPost_EH.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/extended_InitPost_EH.hpp index e91e62b1f..1d6743572 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/extended_InitPost_EH.hpp +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/extended_InitPost_EH.hpp @@ -1,12 +1,12 @@ class Extended_InitPost_EventHandlers { class LandVehicle { class btc_actions { - init = "_this call btc_fnc_eh_veh_init"; + init = "[typeof (_this select 0)] call btc_fnc_eh_veh_init"; }; }; class Air { class btc_actions { - init = "_this call btc_fnc_eh_veh_init"; + init = "[typeof (_this select 0)] call btc_fnc_eh_veh_init"; }; }; /*class CAManBase { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/veh_init.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/veh_init.sqf index c326324b0..0f59f7869 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/veh_init.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/veh_init.sqf @@ -1,9 +1,5 @@ -private ["_veh","_type"]; - -_veh = _this select 0; - -_type = typeOf _veh; +private _type = _this select 0; if (isNil "btc_actions_veh") then {btc_actions_veh = [];}; if ((btc_actions_veh pushBackUnique _type) isEqualTo -1) exitWith {}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/garage.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/garage.sqf index 63df28aaf..84291849e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/garage.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/garage.sqf @@ -28,6 +28,7 @@ with uiNamespace do { private _dir = getDir _x; private _textures = getObjectTextures _x; deleteVehicle _x; - [[_type, _pos, _dir, _textures], {_this call btc_fnc_log_createVehicle}] remoteExec ["call", 2]; + [_type, _pos, _dir, _textures] remoteExec ["btc_fnc_log_createVehicle", 2]; + [_type] remoteExec [["btc_fnc_eh_veh_init", -2]; } forEach _veh_list; }; \ No newline at end of file From 8c4730016f7e511f16b48b85ce3a4925ab139234 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 5 Mar 2017 00:35:05 +0100 Subject: [PATCH 027/120] FIX: syntaxe error --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/garage.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/garage.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/garage.sqf index 84291849e..3faaf8abd 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/garage.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/garage.sqf @@ -29,6 +29,6 @@ with uiNamespace do { private _textures = getObjectTextures _x; deleteVehicle _x; [_type, _pos, _dir, _textures] remoteExec ["btc_fnc_log_createVehicle", 2]; - [_type] remoteExec [["btc_fnc_eh_veh_init", -2]; + [_type] remoteExec ["btc_fnc_eh_veh_init", -2]; } forEach _veh_list; }; \ No newline at end of file From 3bbcc3de29d6f88871b7bd53927d0c1813b5c899 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 5 Mar 2017 23:55:56 +0100 Subject: [PATCH 028/120] FIX: wrong select --- .../core/def/mission.sqf | 2 +- .../core/fnc/log/createVehicle.sqf | 12 +++++------- 2 files changed, 6 insertions(+), 8 deletions(-) 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 33c3f210a..cb2808546 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 @@ -52,7 +52,7 @@ _p_rep = (paramsArray select 35); ace_rearm_level = (paramsArray select 36); btc_p_sea = if ((paramsArray select 37) isEqualTo 0) then {false} else {true}; _p_city_radius = (paramsArray select 38) * 100; -btc_p_garage = true; +btc_p_garage = false; btc_p_debug = (paramsArray select 39); //MED diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf index 3c4637169..5b580cda2 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf @@ -2,20 +2,18 @@ private _type = _this select 0; private _pos = _this select 1; private _dir = _this select 2; -if (count _this > 3) then { - private _textures = _this select 4; -} else { - private _textures = nil; -}; +private _textures = if (count _this > 3) then {_this select 3} else {[]}; _veh = createVehicle [_type, [_pos select 0, _pos select 1, 0], [], 0, "CAN_COLLIDE"]; _veh setPosASL _pos; _veh setDir _dir; -if !(isNull _textures) then {{_veh setObjectTextureGlobal [ _foreachindex, _x ];} forEach _textures;}; +{ + _veh setObjectTextureGlobal [ _foreachindex, _x ]; +} forEach _textures; _veh setVariable ["btc_dont_delete",true]; -if(getNumber(configFile >> "CfgVehicles" >> typeof _veh >> "isUav")==1) then { +if (getNumber(configFile >> "CfgVehicles" >> typeof _veh >> "isUav") isEqualTo 1) then { createVehicleCrew _veh; }; From cbe8fe03d95ca22e2d0697c36d337bd7edcabfc7 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 7 Mar 2017 18:49:06 +0100 Subject: [PATCH 029/120] FIX unwanted units --- .../core/fnc/mil/classes.sqf | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/classes.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/classes.sqf index 43e18e89b..01ee00c42 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/classes.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/classes.sqf @@ -5,9 +5,11 @@ private _hq = []; private _enemy_side = []; private _type_units = []; private _type_divers = []; -private _type_crewmen = []; +private _divers = []; +private _type_crewmen = ""; private _type_boats = []; private _type_motorized = []; +private _type_motorized_armed = []; private _type_mg = []; private _type_gl = []; @@ -26,8 +28,8 @@ _enemy_side = [east,west,independent,civilian] select getNumber(configfile >> " private _allclasse_f = _allclasse select {getText(configFile >> "cfgvehicles" >> _x >> "faction") isEqualTo _faction}; //Units - private _divers = _allclasse_f select {!((_x find "diver") isEqualTo -1)}; - if (_divers isEqualTo []) then {_divers = ["O_diver_F","O_diver_exp_F","O_diver_TL_F"];}; + _divers = _allclasse_f select {!((_x find "diver") isEqualTo -1)}; + if (_divers isEqualTo []) then {_divers = if (_hq isEqualTo btc_hq_red) 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 ((_allclasse_f select {_x isKindOf "Man"}) - _divers); _type_crewmen = _type_units select 0; @@ -36,10 +38,11 @@ _enemy_side = [east,west,independent,civilian] select getNumber(configfile >> " _type_boats append _allclasse_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 (_this select 2) then { - _allclasse_f select {(_x isKindOf "Tank") || (_x isKindOf "Car") || (_x isKindOf "Truck")} + _allclasse_f select {(_x isKindOf "Tank") || (_x isKindOf "Car") || (_x isKindOf "Truck") || (_x isKindOf "Truck_F")} } else { - _allclasse_f select {(_x isKindOf "Car") || (_x isKindOf "Truck")} + _allclasse_f select {(_x isKindOf "Car") || (_x isKindOf "Truck") || (_x isKindOf "Truck_F")} }); + _type_motorized_armed append (_allclasse_f select {((_x isKindOf "Air") || (_x isKindOf "Helicopter") || (_x isKindOf "Tank") || (_x isKindOf "Car"))}); //need call btc_fnc_find_veh_with_turret //Static _type_mg append _allclasse_f select {_x isKindOf "StaticGrenadeLauncher"}; @@ -54,7 +57,8 @@ if !(_this select 1) then { //Remove Anti-Air Units _type_units = _type_units select {(_x find "AA") isEqualTo -1}; }; -_type_units = _type_units select {(_x find "_base") isEqualTo -1}; +_type_units = _type_units select {((_x find "_base") isEqualTo -1) && ((_x find "_unarmed_") isEqualTo -1) && ((_x find "_VR_") isEqualTo -1)}; _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}; -[_hq,_enemy_side,_type_units,_type_divers,_type_crewmen,_type_boats,_type_motorized,_type_mg,_type_gl] \ No newline at end of file +[_hq,_enemy_side,_type_units,_type_divers,_type_crewmen,_type_boats,_type_motorized,_type_mg,_type_gl,_type_motorized_armed] \ No newline at end of file From 2cfbf2c42945619d35c12dc95099b50da369f26d Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 7 Mar 2017 19:20:42 +0100 Subject: [PATCH 030/120] FIX: tank classe name --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 f273bac15..e75e94589 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 @@ -458,7 +458,7 @@ btc_fnc_log_get_liftable = { case "RHS_CH_47F_10" : {_array = (["Motorcycle","ReammoBox","ReammoBox_F","StaticWeapon","Car","Truck","Wheeled_APC","Tracked_APC","APC_Tracked_01_base_F","APC_Tracked_02_base_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 "B_SDV_01_F" : {_array = (["Motorcycle","ReammoBox","ReammoBox_F","StaticWeapon","Car","Truck","Wheeled_APC","Tracked_APC","APC_Tracked_01_base_F","APC_Tracked_02_base_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 "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"]; From 6ac120d5f4c287e0efffdafe0ec1c48cb291f8db Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 10 Mar 2017 22:14:52 +0100 Subject: [PATCH 031/120] Improve Mod selection display --- .../core/def/mission.sqf | 26 ++++++++++++++++--- .../core/def/param.hpp | 13 +++------- .../core/fnc/mil/classes.sqf | 17 +++++++++--- 3 files changed, 39 insertions(+), 17 deletions(-) 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 c4494e46b..6afcbcaa8 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 @@ -484,12 +484,28 @@ btc_player_side = west; btc_respawn_marker = "respawn_west"; /*// Get all faction from mod there are currently running allfaction = (("true" configClasses (configFile >> "CfgFactionClasses")) apply {configName _x}) select {getNumber(configfile >> "CfgFactionClasses" >> _x >> "side") < 3 AND getNumber(configfile >> "CfgFactionClasses" >> _x >> "side") > -1}; -texts = allfaction apply {getText(configfile >> "CfgFactionClasses" >> _x >> "displayName")}; +allfaction = allfaction apply { + private _mod_folder = getText(configfile >> "CfgFactionClasses" >> _x >> "icon") select [if ((getText(configfile >> "CfgFactionClasses" >> _x >> "icon") select [0,1]) isEqualTo "\") then {1} else {0}]; + private _mod = _mod_folder select [0, _mod_folder find "\"]; + if (_mod isEqualTo "") then { + _mod = _x select [0, _x find "_"]; + }; + [ + _mod + , _x + ] +}; +allfaction sort true; +texts = allfaction apply {Format ["%3: %1 (Side: %2)", getText(configfile >> "CfgFactionClasses" >> _x select 1 >> "displayName"), [East,West,Independent,Civilian] select getNumber(configfile >> "CfgFactionClasses" >> _x select 1 >> "side") , toUpper(_x select 0)]}; +allmod = []; +{allmod pushBackUnique _x} forEach (allfaction apply {_x select 0}); +allfaction = allfaction apply {_x select 1}; values = []; for "_i" from 0 to (count allfaction) - 1 do { values pushBack _i; -};*/ -private _allfaction = ["caf_ag_afr_p","caf_ag_eeur_r","caf_ag_me_t","BLU_F","OPF_F","IND_F","IND_G_F","BLU_G_F","OPF_G_F","CUP_B_USMC","CUP_B_US_Army","CUP_B_CDF","CUP_O_RU","CUP_O_ChDKZ","CUP_I_NAPA","CUP_B_RNZN","CUP_O_TK","CUP_O_TK_MILITIA","CUP_B_US","CUP_B_CZ","CUP_B_GER","CUP_I_TK_GUE","CUP_I_UN","CUP_O_SLA","CUP_I_RACS","CUP_B_GB","CUP_I_PMC_ION","rhs_faction_usarmy","rhs_faction_usmc","rhs_faction_usarmy_wd","rhs_faction_usarmy_d","rhs_faction_usmc_wd","rhs_faction_usmc_d","rhs_faction_usaf","rhs_faction_usn","rhs_faction_socom","fow_wehrmacht","fow_ija","fow_usa","fow_usmc","fow_uk","Tban","rhs_faction_msv","rhs_faction_vdv","rhs_faction_vdv_45","rhs_faction_vmf","rhs_faction_vv","rhs_faction_tv","rhs_faction_vpvo","rhs_faction_vvs","rhs_faction_vvs_c","rhs_faction_rva","usml_aif","IND_C_F","BLU_T_F","BLU_CTRG_F","BLU_GEN_F","OPF_T_F","OPF_V_F","rhs_faction_insurgents","LIB_RKKA","LIB_NKVD","LIB_USSR_TANK_TROOPS","LIB_USSR_AIRFORCE","LIB_WEHRMACHT","LIB_PANZERWAFFE","LIB_LUFTWAFFE","SG_STURMPANZER","SG_STURM","LIB_GUER","LIB_US_ARMY","LIB_US_TANK_TROOPS","LIB_US_AIRFORCE","LIB_DAK","LIB_NAC","LIB_US_RANGERS","LIB_CIV","LIB_FFI","LIB_MKHL","LIB_ARR","LIB_RBAF","btc_am","LOP_UN","LOP_CDF","LOP_AA","LOP_IA","LOP_US","LOP_ChDKZ","LOP_TKA","LOP_SLA","LOP_RACS","LOP_PMC","LOP_ISTS","LOP_ISTS_OPF","LOP_NAPA","LOP_AM","LOP_AM_OPF","LOP_AFR","LOP_AFR_OPF","LOP_UA","LOP_PESH","LOP_PESH_IND","LOP_UKR","LOP_BH","LOP_IRA","LIB_RKKA_w","LIB_USSR_TANK_TROOPS_w","LIB_USSR_AIRFORCE_w","LIB_WEHRMACHT_w","LIB_PANZERWAFFE_w","LIB_LUFTWAFFE_w","LIB_US_ARMY_w","LIB_US_TANK_TROOPS_w","LIB_US_AIRFORCE_w","SG_STURM_w"]; //All factions +}; +copyToClipboard str [allmod,texts,allfaction,values];*/ +private _allfaction = ["BLU_CTRG_F","BLU_F","BLU_G_F","BLU_GEN_F","BLU_T_F","CAR","CUP_B_GB","CUP_B_US","CUP_I_UN","IND_C_F","IND_F","IND_G_F","OPF_F","OPF_G_F","OPF_T_F","OPF_V_F","usml_aif","btc_am","caf_ag_afr_p","caf_ag_eeur_r","caf_ag_me_t","CUP_B_CDF","CUP_B_CZ","CUP_B_GER","CUP_B_RNZN","CUP_B_US_Army","CUP_B_USMC","CUP_I_NAPA","CUP_I_PMC_ION","CUP_I_RACS","CUP_I_TK_GUE","CUP_O_ChDKZ","CUP_O_RU","CUP_O_SLA","CUP_O_TK","CUP_O_TK_MILITIA","fow_ija","fow_uk","fow_usa","fow_usmc","fow_wehrmacht","LIB_ARR","LIB_CIV","LIB_FFI","LIB_MKHL","LIB_RBAF","LOP_AA","LOP_AFR","LOP_AFR_OPF","LOP_AM","LOP_AM_OPF","LOP_BH","LOP_CDF","LOP_ChDKZ","LOP_IA","LOP_IRA","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","rhs_faction_insurgents","rhs_faction_msv","rhs_faction_rva","rhs_faction_tv","rhs_faction_vdv","rhs_faction_vdv_45","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_nationalist","rhsgref_faction_un","rhssaf_faction_airforce","rhssaf_faction_army","rhssaf_faction_un","rhs_faction_socom","rhs_faction_usaf","rhs_faction_usarmy","rhs_faction_usarmy_d","rhs_faction_usarmy_wd","rhs_faction_usmc","rhs_faction_usmc_d","rhs_faction_usmc_wd","rhs_faction_usn","Tban","LIB_DAK","LIB_GUER","LIB_LUFTWAFFE","LIB_LUFTWAFFE_w","LIB_NAC","LIB_NKVD","LIB_PANZERWAFFE","LIB_PANZERWAFFE_w","LIB_RKKA","LIB_RKKA_w","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","SG_STURM","SG_STURM_w","SG_STURMPANZER"]; //All factions _p_en = _allfaction select _p_en; //Select faction selected from mission parameter private _allclasses = [[_p_en /*, "IND_F"*/], _p_en_AA, _p_en_tank] call btc_fnc_mil_classes; //Create classes from the corresponding factions [_p_en , "IND_F"], can combine factions from the SAME side. @@ -516,6 +532,10 @@ switch (_p_en) do { 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_units = btc_type_units - ["I_G_Survivor_F"]; + }; case "fow_usmc" : { btc_type_units = btc_type_units - ["fow_s_usmc_01_private"]; }; 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 e65ad8df6..1d68dbb7e 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 @@ -43,17 +43,10 @@ class Params { }; class btc_p_en { //paramsArray[6] - /*// Get all faction from mod there are currently running - allfaction = (("true" configClasses (configFile >> "CfgFactionClasses")) apply {configName _x}) select {getNumber(configfile >> "CfgFactionClasses" >> _x >> "side") < 3 AND getNumber(configfile >> "CfgFactionClasses" >> _x >> "side") > -1}; - texts = allfaction apply {getText(configfile >> "CfgFactionClasses" >> _x >> "displayName")}; - values = []; - for "_i" from 0 to (count allfaction) - 1 do { - values pushBack _i; - };*/ 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}; - texts[]={"Africa - Pirates","East Europe - Rebels","Middle East - Tribal","OTAN","CSAT","AAF","FIA","FIA","FIA","United States Marine Corps","United States Army","Chenarus Defense Force (CDF)","Russian Federation","ChDKZ (Chenarus)","NAPA (Chenarus)","Royal New Zealand Navy","Takistani Army","Takistani Militia","United States of America","Czech Republic","Germany","Takistani Locals","United Nations","Sahrani Liberation Army","Royal Army Corp of Sahrani","United Kingdom","ION PMC","USA (Army)","USA (USMC)","USA (Army - W)","USA (Army - D)","USA (USMC - W)","USA (USMC - D)","USA (USAF)","USA (Navy)","USA (SOCOM)","Wehrmacht","Imperial Japanese Army","US Army","US Marines Corps","UK","Taliban","Russia (MSV)","Russia (VDV)","","Russia (VMF)","Russia (VV)","Russia (TV)","Russia (VPVO)","Russia (VVS - Grey)","Russia (VVS - Camo)","Russia (RVA)","Armed Islamic Front","Syndikat","OTAN (Pacifique)","CTRG","Gendarmerie","CSAT (Pacifique)","Viper","Eastern Militia","Red Army","NKVD","Tank troops of USSR","USSR Airforce","Wehrmacht","Panzerwaffe","Luftwaffe","Tank Sturmtroopers","Sturmtroopers","Armia Krajowa (Polonais)","US Army","US Tank Troops","US Army Air Forces","Deutsches Afrikakorps","US North African Corps","US 2nd Ranger Battalion","40s Civilians","FFI","MKHL","ARR","RBAF","Afghan Militia","United Nations","Chernarussian Defence Forces","Afghan National Army and Police","Iraqi Armed Forces","United Armed Forces of Novorossiya","ChDKZ","Takistani Armed Forces","Sahrani Liberation Army","Royal Army Corps of Sahrani","Private Military Company","Islamic State","Islamic State","Chernarussian National Insurgents","Middle Eastern Militia","Middle Eastern Militia","African Militia","African Militia","Ultranationalists","Kurdish Peshmerga Forces","Kurdish Peshmerga Forces","Ukraine's Armed Forces","Boko Haram","Irish Republican Army","[Winter] Red Army","[Winter] Tank troops of USSR","[Winter] USSR Airforce","[Winter] Wehrmacht","[Winter] Panzerwaffe","[Winter] Luftwaffe","[Winter] US Army","[Winter] US Tank Troops","[Winter] US Airforce","[Winter] Sturmtroopers"}; - default = 6; + 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}; + texts[]={"A3: CTRG (Side: WEST)","A3: OTAN (Side: WEST)","A3: FIA (Side: WEST)","A3: Gendarmerie (Side: WEST)","A3: OTAN (Pacifique) (Side: WEST)","A3: Central African Militia (Side: EAST)","A3: United Kingdom (Side: WEST)","A3: United States of America (Side: WEST)","A3: United Nations (Side: GUER)","A3: Syndikat (Side: GUER)","A3: AAF (Side: GUER)","A3: FIA (Side: GUER)","A3: CSAT (Side: EAST)","A3: FIA (Side: EAST)","A3: CSAT (Pacifique) (Side: EAST)","A3: Viper (Side: EAST)","AIF_ALL: Armed Islamic Front (Side: GUER)","BTC: Afghan Militia (Side: EAST)","CAF: Africa - Pirates (Side: EAST)","CAF: East Europe - Rebels (Side: EAST)","CAF: Middle East - Tribal (Side: EAST)","CUP: Chenarus Defense Force (CDF) (Side: WEST)","CUP: Czech Republic (Side: WEST)","CUP: Germany (Side: WEST)","CUP: Royal New Zealand Navy (Side: WEST)","CUP: United States Army (Side: WEST)","CUP: United States Marine Corps (Side: WEST)","CUP: NAPA (Chenarus) (Side: GUER)","CUP: ION PMC (Side: GUER)","CUP: Royal Army Corp of Sahrani (Side: GUER)","CUP: Takistani Locals (Side: GUER)","CUP: ChDKZ (Chenarus) (Side: EAST)","CUP: Russian Federation (Side: EAST)","CUP: Sahrani Liberation Army (Side: EAST)","CUP: Takistani Army (Side: EAST)","CUP: Takistani Militia (Side: EAST)","FOW: Imperial Japanese Army (Side: WEST)","FOW: UK (Side: GUER)","FOW: US Army (Side: GUER)","FOW: US Marines Corps (Side: GUER)","FOW: Wehrmacht (Side: WEST)","LIB: ARR (Side: WEST)","LIB: 40s Civilians (Side: GUER)","LIB: FFI (Side: GUER)","LIB: MKHL (Side: WEST)","LIB: RBAF (Side: WEST)","PO_MAIN: Afghan National Army and Police (Side: WEST)","PO_MAIN: African Militia (Side: GUER)","PO_MAIN: African Militia (Side: EAST)","PO_MAIN: Middle Eastern Militia (Side: GUER)","PO_MAIN: Middle Eastern Militia (Side: EAST)","PO_MAIN: Boko Haram (Side: GUER)","PO_MAIN: Chernarussian Defence Forces (Side: WEST)","PO_MAIN: ChDKZ (Side: EAST)","PO_MAIN: Iraqi Armed Forces (Side: WEST)","PO_MAIN: Irish Republican Army (Side: GUER)","PO_MAIN: Islamic State (Side: GUER)","PO_MAIN: Islamic State (Side: EAST)","PO_MAIN: Chernarussian National Insurgents (Side: GUER)","PO_MAIN: Kurdish Peshmerga Forces (Side: WEST)","PO_MAIN: Kurdish Peshmerga Forces (Side: GUER)","PO_MAIN: Private Military Company (Side: GUER)","PO_MAIN: Royal Army Corps of Sahrani (Side: GUER)","PO_MAIN: Sahrani Liberation Army (Side: EAST)","PO_MAIN: Takistani Armed Forces (Side: EAST)","PO_MAIN: Ultranationalists (Side: GUER)","PO_MAIN: Ukraine's Armed Forces (Side: GUER)","PO_MAIN: United Nations (Side: GUER)","PO_MAIN: United Armed Forces of Novorossiya (Side: EAST)","RHSAFRF: Eastern Militia (Side: GUER)","RHSAFRF: Russia (MSV) (Side: EAST)","RHSAFRF: Russia (RVA) (Side: EAST)","RHSAFRF: Russia (TV) (Side: EAST)","RHSAFRF: Russia (VDV) (Side: EAST)","RHSAFRF: (Side: EAST)","RHSAFRF: Russia (VMF) (Side: EAST)","RHSAFRF: Russia (VPVO) (Side: EAST)","RHSAFRF: Russia (VV) (Side: EAST)","RHSAFRF: Russia (VVS - Grey) (Side: EAST)","RHSAFRF: Russia (VVS - Camo) (Side: EAST)","RHSGREF: Chernarus (Air Force) (Side: GUER)","RHSGREF: Chernarus (Air Force) (Side: WEST)","RHSGREF: Chernarus (Ground Forces) (Side: GUER)","RHSGREF: Chernarus (Ground Forces) (Side: WEST)","RHSGREF: Chernarus (National Guard) (Side: GUER)","RHSGREF: Chernarus (National Guard) (Side: WEST)","RHSGREF: ChDKZ Insurgents (Side: EAST)","RHSGREF: ChDKZ Insurgents (Side: GUER)","RHSGREF: Nationalist Troops (Side: GUER)","RHSGREF: Chernarus (U.N. Peacekeepers) (Side: GUER)","RHSSAF: SAF (RVIPVO) (Side: GUER)","RHSSAF: SAF (KOV) (Side: GUER)","RHSSAF: SAF (Casques Bleus) (Side: GUER)","RHSUSF: USA (SOCOM) (Side: WEST)","RHSUSF: USA (USAF) (Side: WEST)","RHSUSF: USA (Army) (Side: WEST)","RHSUSF: USA (Army - D) (Side: WEST)","RHSUSF: USA (Army - W) (Side: WEST)","RHSUSF: USA (USMC) (Side: WEST)","RHSUSF: USA (USMC - D) (Side: WEST)","RHSUSF: USA (USMC - W) (Side: WEST)","RHSUSF: USA (Navy) (Side: WEST)","TALIBAN_FIGHTERS: Taliban (Side: EAST)","WW2: Deutsches Afrikakorps (Side: GUER)","WW2: Armia Krajowa (Polonais) (Side: GUER)","WW2: Luftwaffe (Side: WEST)","WW2: [Winter] Luftwaffe (Side: WEST)","WW2: US North African Corps (Side: GUER)","WW2: NKVD (Side: EAST)","WW2: Panzerwaffe (Side: WEST)","WW2: [Winter] Panzerwaffe (Side: WEST)","WW2: Red Army (Side: EAST)","WW2: [Winter] Red Army (Side: EAST)","WW2: US Army Air Forces (Side: GUER)","WW2: [Winter] US Airforce (Side: GUER)","WW2: US Army (Side: GUER)","WW2: [Winter] US Army (Side: GUER)","WW2: US 2nd Ranger Battalion (Side: GUER)","WW2: US Tank Troops (Side: GUER)","WW2: [Winter] US Tank Troops (Side: GUER)","WW2: USSR Airforce (Side: EAST)","WW2: [Winter] USSR Airforce (Side: EAST)","WW2: Tank troops of USSR (Side: EAST)","WW2: [Winter] Tank troops of USSR (Side: EAST)","WW2: Wehrmacht (Side: WEST)","WW2: [Winter] Wehrmacht (Side: WEST)","WW2: Sturmtroopers (Side: WEST)","WW2: [Winter] Sturmtroopers (Side: WEST)","WW2: Tank Sturmtroopers (Side: WEST)"}; + default = 11; }; class btc_p_civ { //paramsArray[7] diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/classes.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/classes.sqf index 01ee00c42..34e9ca41c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/classes.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/classes.sqf @@ -16,10 +16,20 @@ private _type_gl = []; //Get all vehicles private _allclasse = ("(configName _x) isKindOf 'AllVehicles'" configClasses (configFile >> "CfgVehicles")) apply {configName _x}; -_factions = _factions apply {if !isClass(configFile >> "CfgFactionClasses" >> _x) then {"IND_G_F";} else {_x};}; +//Check if faction existe +_factions = _factions apply {if !isClass(configFile >> "CfgFactionClasses" >> _x) then {"IND_G_F"} else {_x};}; -_hq = [btc_hq_red,btc_hq_blu,btc_hq_green] select getNumber(configfile >> "CfgFactionClasses" >> (_factions select 0) >> "side"); _enemy_side = [east,west,independent,civilian] select getNumber(configfile >> "CfgFactionClasses" >> (_factions select 0) >> "side"); +_hq = [btc_hq_red,btc_hq_blu,btc_hq_green] select getNumber(configfile >> "CfgFactionClasses" >> (_factions select 0) >> "side"); + + + +//Select only faction from the same side +_factions = _factions select {([east,west,independent,civilian] select getNumber(configfile >> "CfgFactionClasses" >> _x >> "side")) isEqualTo _enemy_side}; +//Prevent selecting same side as player side +if (_enemy_side isEqualTo btc_player_side) exitWith { + [["IND_G_F"], _this select 1, _this select 2] call btc_fnc_mil_classes; +}; { private _faction = _x; @@ -32,7 +42,6 @@ _enemy_side = [east,west,independent,civilian] select getNumber(configfile >> " if (_divers isEqualTo []) then {_divers = if (_hq isEqualTo btc_hq_red) 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 ((_allclasse_f select {_x isKindOf "Man"}) - _divers); - _type_crewmen = _type_units select 0; //Vehicles _type_boats append _allclasse_f select {_x isKindOf "Ship"}; @@ -49,7 +58,6 @@ _enemy_side = [east,west,independent,civilian] select getNumber(configfile >> " if (_type_mg isEqualTo []) then {_type_mg = ["O_HMG_01_F","O_HMG_01_high_F"];}; _type_gl append _allclasse_f select {_x isKindOf "StaticMGWeapon"}; if (_type_gl isEqualTo []) then {_type_mg = ["O_GMG_01_F","O_GMG_01_high_F"];}; - } forEach _factions; //Final filter unwanted units type @@ -58,6 +66,7 @@ if !(_this select 1) then { _type_units = _type_units select {(_x find "AA") isEqualTo -1}; }; _type_units = _type_units select {((_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}; From 31c8363dab9031cf5efc2f2dd41c2c50e779899a Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 11 Mar 2017 13:10:55 +0100 Subject: [PATCH 032/120] Add civilian semi automatic support --- .../core/def/mission.sqf | 104 +++++------------- .../core/def/param.hpp | 8 +- .../core/fnc/civ/class.sqf | 34 ++++++ .../core/fnc/common/get_class.sqf | 37 +++++++ .../core/fnc/compile.sqf | 6 +- .../core/fnc/mil/{classes.sqf => class.sqf} | 0 6 files changed, 107 insertions(+), 82 deletions(-) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/class.sqf create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/get_class.sqf rename =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/{classes.sqf => class.sqf} (100%) 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 6afcbcaa8..7ea589786 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 @@ -159,48 +159,19 @@ if (isServer) then { btc_city_type = "Land_Ammobox_rounds_F"; //Civ -btc_civ_type_boats = ["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"]; -switch (true) do { - case (_p_civ == 0) : { - btc_civ_type_units = ["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"]; - }; - case (_p_civ == 1 && isClass(configFile >> "cfgVehicles" >> "Afghan_Civilian2")) : { - btc_civ_type_units = ["Afghan_Civilian2","Afghan_Civilian2NH","Afghan_civilian3","Afghan_civilian3NH","Afghan_Civilian4","Afghan_Civilian5","Afghan_Civilian6","Afghan_Civilian6NH","Afghan_civilian1","Afghan_civilian1NH"]; - }; - case (_p_civ == 2 && isClass(configFile >> "cfgVehicles" >> "btc_ac_1")) : { - btc_civ_type_units = ["btc_ac_1"]; - }; - case (_p_civ == 3 && isClass(configFile >> "cfgVehicles" >> "RDS_Assistant")) : { - btc_civ_type_units = ["RDS_Assistant","RDS_Functionary2","RDS_Functionary1","RDS_Woodlander1","RDS_Woodlander3","RDS_Woodlander2","RDS_Woodlander4","RDS_Citizen2","RDS_Citizen3","RDS_Citizen1","RDS_Citizen4","RDS_SchoolTeacher","RDS_Doctor","RDS_Worker3","RDS_Worker1","RDS_Worker4","RDS_Worker2","RDS_Policeman","RDS_Priest","RDS_Profiteer2","RDS_Profiteer1","RDS_Profiteer3","RDS_Profiteer4","RDS_Villager4","RDS_Villager1","RDS_Villager2","RDS_Villager3"]; - }; - case (_p_civ == 4 && isClass(configFile >> "cfgVehicles" >> "CUP_C_C_Assistant_01")) : { - btc_civ_type_units = ["CUP_C_C_Assistant_01","CUP_C_C_Citizen_02","CUP_C_C_Citizen_01","CUP_C_C_Citizen_04","CUP_C_C_Citizen_03","CUP_C_C_Functionary_01","CUP_C_C_Functionary_02","CUP_C_C_Worker_05","CUP_C_C_Mechanic_02","CUP_C_C_Mechanic_03","CUP_C_C_Mechanic_01","CUP_C_C_Priest_01","CUP_C_C_Profiteer_02","CUP_C_C_Profiteer_03","CUP_C_C_Profiteer_01","CUP_C_C_Profiteer_04","CUP_C_C_Rocker_01","CUP_C_C_Rocker_03","CUP_C_C_Rocker_02","CUP_C_C_Rocker_04","CUP_C_C_Schoolteacher_01","CUP_C_C_Villager_01","CUP_C_C_Villager_04","CUP_C_C_Villager_02","CUP_C_C_Villager_03","CUP_C_C_Woodlander_01","CUP_C_C_Woodlander_02","CUP_C_C_Woodlander_03","CUP_C_C_Woodlander_04","CUP_C_C_Worker_03","CUP_C_C_Worker_04","CUP_C_C_Worker_02","CUP_C_C_Worker_01"]; - }; - case (_p_civ == 5 && isClass(configFile >> "cfgVehicles" >> "LOP_CHR_Civ_Doctor_01")) : { - btc_civ_type_units = ["LOP_CHR_Civ_Doctor_01","LOP_CHR_Civ_Functionary_01","LOP_CHR_Civ_Priest_01","LOP_CHR_Civ_Profiteer_01","LOP_CHR_Civ_Rocker_01","LOP_CHR_Civ_Villager_01","LOP_CHR_Civ_Woodlander_01","LOP_CHR_Civ_Worker_01"]; - }; - default { - btc_civ_type_units = ["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"]; - } -}; -switch (true) do { - case (_p_civ_veh == 0): { - btc_civ_type_veh = ["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"]; - }; - case (_p_civ_veh == 1 && isClass(configFile >> "cfgVehicles" >> "RDS_Van_01_transport_F")): { - btc_civ_type_veh = ["RDS_Van_01_transport_F","RDS_Van_01_fuel_F","RDS_Van_01_box_F","RDS_Gaz24_Civ_03","RDS_Gaz24_Civ_01","RDS_Gaz24_Civ_02","RDS_Golf4_Civ_01","RDS_Ikarus_Civ_01","RDS_Ikarus_Civ_02","RDS_S1203_Civ_01","RDS_S1203_Civ_02","RDS_S1203_Civ_03","RDS_Octavia_Civ_01","RDS_SUV_01_F","RDS_Zetor6945_Base","RDS_Lada_Civ_01","RDS_Lada_Civ_04","RDS_Lada_Civ_03","RDS_Lada_Civ_05","RDS_Lada_Civ_02","RDS_Hatchback_01_F"]; - }; - case (_p_civ_veh == 2 && isClass(configFile >> "cfgVehicles" >> "CUP_C_SUV_CIV")): { - btc_civ_type_veh = ["CUP_C_SUV_CIV","CUP_C_LR_Transport_CTK","CUP_C_SUV_TK","CUP_C_UAZ_Unarmed_TK_CIV","CUP_C_UAZ_Open_TK_CIV"]; - btc_civ_type_boats pushBack "CUP_C_Fishing_Boat_Chernarus"; - }; - case (_p_civ_veh == 3 && isClass(configFile >> "cfgVehicles" >> "LOP_CHR_Civ_Hatchback")): { - btc_civ_type_veh = ["LOP_CHR_Civ_Hatchback","LOP_CHR_Civ_Landrover","LOP_CHR_Civ_Offroad","LOP_CHR_Civ_UAZ","LOP_CHR_Civ_UAZ_Open","LOP_CHR_Civ_Ural","LOP_CHR_Civ_Ural_open"]; - }; - default { - btc_civ_type_veh = ["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"]; - }; -}; +// Get all faction from mod there are currently running +//copyToClipboard str (["CIV"] call btc_fnc_get_class); +private _allfaction = ["CIV_F","CUP_C_Special","btc_ac","caf_ag_afr_civ","caf_ag_me_civ","CUP_C_CHERNARUS","CUP_C_RU","CUP_C_SAHRANI","CUP_C_TK","Interactive_F","LIB_ACI","LIB_RAAF","LIB_RAF","LOP_AFR_Civ","LOP_CHR_Civ","LOP_IRAN","LOP_TAK_Civ","LOP_UVF","rds_rus_civ","AFGCIV","Virtual_F"]; //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 +private _allclasse = [[_p_civ]] call btc_fnc_civ_class; //Create classes from the corresponding factions [_p_civ , "btc_ac"], can combine factions from the SAME side. + +//Save class name to global variable +btc_civ_type_units = _allclasse select 0; +_allclasse = [[_p_civ_veh]] call btc_fnc_civ_class; +btc_civ_type_veh = _allclasse select 2; +btc_civ_type_boats = _allclasse select 1; + btc_civ_max_veh = 10; btc_w_civs = ["V_Rangemaster_belt","arifle_Mk20_F","30Rnd_556x45_Stanag","hgun_ACPC2_F","9Rnd_45ACP_Mag"]; @@ -482,43 +453,22 @@ btc_lift_HUD_y = 0.848; //Mil btc_player_side = west; btc_respawn_marker = "respawn_west"; -/*// Get all faction from mod there are currently running -allfaction = (("true" configClasses (configFile >> "CfgFactionClasses")) apply {configName _x}) select {getNumber(configfile >> "CfgFactionClasses" >> _x >> "side") < 3 AND getNumber(configfile >> "CfgFactionClasses" >> _x >> "side") > -1}; -allfaction = allfaction apply { - private _mod_folder = getText(configfile >> "CfgFactionClasses" >> _x >> "icon") select [if ((getText(configfile >> "CfgFactionClasses" >> _x >> "icon") select [0,1]) isEqualTo "\") then {1} else {0}]; - private _mod = _mod_folder select [0, _mod_folder find "\"]; - if (_mod isEqualTo "") then { - _mod = _x select [0, _x find "_"]; - }; - [ - _mod - , _x - ] -}; -allfaction sort true; -texts = allfaction apply {Format ["%3: %1 (Side: %2)", getText(configfile >> "CfgFactionClasses" >> _x select 1 >> "displayName"), [East,West,Independent,Civilian] select getNumber(configfile >> "CfgFactionClasses" >> _x select 1 >> "side") , toUpper(_x select 0)]}; -allmod = []; -{allmod pushBackUnique _x} forEach (allfaction apply {_x select 0}); -allfaction = allfaction apply {_x select 1}; -values = []; -for "_i" from 0 to (count allfaction) - 1 do { - values pushBack _i; -}; -copyToClipboard str [allmod,texts,allfaction,values];*/ +// Get all faction from mod there are currently running +//copyToClipboard str (["EN"] call btc_fnc_get_class); private _allfaction = ["BLU_CTRG_F","BLU_F","BLU_G_F","BLU_GEN_F","BLU_T_F","CAR","CUP_B_GB","CUP_B_US","CUP_I_UN","IND_C_F","IND_F","IND_G_F","OPF_F","OPF_G_F","OPF_T_F","OPF_V_F","usml_aif","btc_am","caf_ag_afr_p","caf_ag_eeur_r","caf_ag_me_t","CUP_B_CDF","CUP_B_CZ","CUP_B_GER","CUP_B_RNZN","CUP_B_US_Army","CUP_B_USMC","CUP_I_NAPA","CUP_I_PMC_ION","CUP_I_RACS","CUP_I_TK_GUE","CUP_O_ChDKZ","CUP_O_RU","CUP_O_SLA","CUP_O_TK","CUP_O_TK_MILITIA","fow_ija","fow_uk","fow_usa","fow_usmc","fow_wehrmacht","LIB_ARR","LIB_CIV","LIB_FFI","LIB_MKHL","LIB_RBAF","LOP_AA","LOP_AFR","LOP_AFR_OPF","LOP_AM","LOP_AM_OPF","LOP_BH","LOP_CDF","LOP_ChDKZ","LOP_IA","LOP_IRA","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","rhs_faction_insurgents","rhs_faction_msv","rhs_faction_rva","rhs_faction_tv","rhs_faction_vdv","rhs_faction_vdv_45","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_nationalist","rhsgref_faction_un","rhssaf_faction_airforce","rhssaf_faction_army","rhssaf_faction_un","rhs_faction_socom","rhs_faction_usaf","rhs_faction_usarmy","rhs_faction_usarmy_d","rhs_faction_usarmy_wd","rhs_faction_usmc","rhs_faction_usmc_d","rhs_faction_usmc_wd","rhs_faction_usn","Tban","LIB_DAK","LIB_GUER","LIB_LUFTWAFFE","LIB_LUFTWAFFE_w","LIB_NAC","LIB_NKVD","LIB_PANZERWAFFE","LIB_PANZERWAFFE_w","LIB_RKKA","LIB_RKKA_w","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","SG_STURM","SG_STURM_w","SG_STURMPANZER"]; //All factions _p_en = _allfaction select _p_en; //Select faction selected from mission parameter -private _allclasses = [[_p_en /*, "IND_F"*/], _p_en_AA, _p_en_tank] call btc_fnc_mil_classes; //Create classes from the corresponding factions [_p_en , "IND_F"], can combine factions from the SAME side. - -//Save classe name to global variable -btc_hq = _allclasses select 0; -btc_enemy_side = _allclasses select 1; -btc_type_units = _allclasses select 2; -btc_type_divers = _allclasses select 3; -btc_type_crewmen = _allclasses select 4; -btc_type_boats = _allclasses select 5; -btc_type_motorized = _allclasses select 6; -btc_type_mg = _allclasses select 7; -btc_type_gl = _allclasses select 8; +_allclasse = [[_p_en /*, "IND_F"*/], _p_en_AA, _p_en_tank] call btc_fnc_mil_class; //Create classes from the corresponding factions [_p_en , "IND_F"], can combine factions from the SAME side. + +//Save class name to global variable +btc_hq = _allclasse select 0; +btc_enemy_side = _allclasse select 1; +btc_type_units = _allclasse select 2; +btc_type_divers = _allclasse select 3; +btc_type_crewmen = _allclasse select 4; +btc_type_boats = _allclasse select 5; +btc_type_motorized = _allclasse select 6; +btc_type_mg = _allclasse select 7; +btc_type_gl = _allclasse select 8; //Sometimes you need to remove units: - ["Blabla","moreBlabla"]; //Sometimes you need to add units: + ["Blabla","moreBlabla"]; 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 1d68dbb7e..1c9a109ba 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 @@ -51,15 +51,15 @@ class Params { class btc_p_civ { //paramsArray[7] title = " Civil type:"; - values[]={0,1,2,3,4,5}; - texts[]={"Civilian (A3)","Afghan (@Ericj_Taliban)","Afghan (@=BTC= Militia)","Russian (@RDS A2 Civilian Pack)","A2 civils (@CUP Units)", "Eastern Europe civils (@Project Opfor)"}; + values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}; + texts[]={"A3: Civils (Side: CIV)","A3: Civilian (Special) (Side: CIV)","BTC: Afghan Civilians (Side: CIV)","CAF: African (Side: CIV)","CAF: Middle Eastern (Side: CIV)","CUP: Civilians (Chenarus) (Side: CIV)","CUP: Civilians (Russian) (Side: CIV)","CUP: Civilians (Sahrani) (Side: CIV)","CUP: Civilians (Takistan) (Side: CIV)","INTERACTIVE: Autre (interactif) (Side: CIV)","LIB: ACI (Side: CIV)","LIB: RAAF (Side: CIV)","LIB: RAF (Side: CIV)","PO_MAIN: African Civilians (Side: CIV)","PO_MAIN: Eastern European Civilians (Side: CIV)","PO_MAIN: Iranian Armed Forces (Side: CIV)","PO_MAIN: Middle Eastern Civilians (Side: CIV)","PO_MAIN: Ulster Volunteer Force (Side: CIV)","RDS_A2PORT_CMAN: Russians (Side: CIV)","TALIBAN_FIGHTERS: Afghan Civilians (Side: CIV)","VIRTUAL: Virtuel (Side: CIV)"}; default = 0; }; class btc_p_civ_veh { //paramsArray[8] title = " Civil vehicle type:"; - values[]={0,1,2,3}; - texts[]={"Vanilla (A3)","A2 vehicles (@RDS A2 Civilian Pack)","A2 vehicles (@CUP Vehicles)", "Eastern Europe civils (@Project Opfor)"}; + values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}; + texts[]={"A3: Civils (Side: CIV)","A3: Civilian (Special) (Side: CIV)","BTC: Afghan Civilians (Side: CIV)","CAF: African (Side: CIV)","CAF: Middle Eastern (Side: CIV)","CUP: Civilians (Chenarus) (Side: CIV)","CUP: Civilians (Russian) (Side: CIV)","CUP: Civilians (Sahrani) (Side: CIV)","CUP: Civilians (Takistan) (Side: CIV)","INTERACTIVE: Autre (interactif) (Side: CIV)","LIB: ACI (Side: CIV)","LIB: RAAF (Side: CIV)","LIB: RAF (Side: CIV)","PO_MAIN: African Civilians (Side: CIV)","PO_MAIN: Eastern European Civilians (Side: CIV)","PO_MAIN: Iranian Armed Forces (Side: CIV)","PO_MAIN: Middle Eastern Civilians (Side: CIV)","PO_MAIN: Ulster Volunteer Force (Side: CIV)","RDS_A2PORT_CMAN: Russians (Side: CIV)","TALIBAN_FIGHTERS: Afghan Civilians (Side: CIV)","VIRTUAL: Virtuel (Side: CIV)"}; default = 0; }; class btc_p_IED_title { 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 new file mode 100644 index 000000000..837b2c0e0 --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/class.sqf @@ -0,0 +1,34 @@ + +private _factions = _this select 0; + +private _type_units = []; +private _type_boats = []; +private _type_veh = []; + +//Get all vehicles +private _allclasse = ("(configName _x) isKindOf 'AllVehicles'" configClasses (configFile >> "CfgVehicles")) apply {configName _x}; + +//Check if faction existe +_factions = _factions apply {if !isClass(configFile >> "CfgFactionClasses" >> _x) then {"CIV_F"} else {_x};}; + +{ + private _faction = _x; + + //Get all vehicles of the _faction selected + private _allclasse_f = _allclasse select {getText(configFile >> "cfgvehicles" >> _x >> "faction") isEqualTo _faction}; + + //Units + _type_units append (_allclasse_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 (_allclasse_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 (_allclasse_f select {(_x isKindOf "Car") || (_x isKindOf "Truck") || (_x isKindOf "Truck_F")}); +} forEach _factions; + +//Final filter unwanted units type +_type_units = _type_units select {((_x find "_base") isEqualTo -1) && ((_x find "_unarmed_") isEqualTo -1) && ((_x find "_VR_") isEqualTo -1)}; +_type_veh = (_type_veh select {(_x find "UAV") isEqualTo -1}) select {(_x find "UGV") 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/common/get_class.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/get_class.sqf new file mode 100644 index 000000000..6fe4b2bbe --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/get_class.sqf @@ -0,0 +1,37 @@ + +private _faction_list = if ((_this select 0) isEqualTo "CIV") then {[3]} else {[0,1,2]}; + +// Get all faction from mod there are currently running +private _allfaction = (("true" configClasses (configFile >> "CfgFactionClasses")) apply {configName _x}) select { + getNumber(configfile >> "CfgFactionClasses" >> _x >> "side") in _faction_list +}; + +_allfaction = _allfaction apply { + private _mod_folder = getText(configfile >> "CfgFactionClasses" >> _x >> "icon") select [if ((getText(configfile >> "CfgFactionClasses" >> _x >> "icon") select [0,1]) isEqualTo "\") then {1} else {0}]; + private _mod = _mod_folder select [0, _mod_folder find "\"]; + if (_mod isEqualTo "") then { + _mod = _x select [0, _x find "_"]; + }; + /*if (_mod isEqualTo "a3") then { + private _modcheck = _x select [0, _x find "_"]; + if !(_modcheck isEqualTo _mod) then { + _mod = _modcheck; + }; + };*/ + [ + _mod + , _x + ] +}; + +_allfaction sort true; +private _texts = _allfaction apply {Format ["%3: %1 (Side: %2)", getText(configfile >> "CfgFactionClasses" >> _x select 1 >> "displayName"), [East,West,Independent,Civilian] select getNumber(configfile >> "CfgFactionClasses" >> _x select 1 >> "side") , toUpper(_x select 0)]}; +private _allmod = []; +{_allmod pushBackUnique _x} forEach (_allfaction apply {_x select 0}); +_allfaction = _allfaction apply {_x select 1}; +private _values = []; +for "_i" from 0 to (count _allfaction) - 1 do { + _values pushBack _i; +}; + +[_allmod,_texts,_allfaction,_values] \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index b3890a8c2..9cbe08926 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -146,10 +146,14 @@ if (isServer OR (!isDedicated && !hasInterface)) then { //COMMON //btc_fnc_veh_track_marker = compile preprocessFile "core\fnc\common\veh_track_marker.sqf"; +btc_fnc_get_class = compile preprocessFile "core\fnc\common\get_class.sqf"; //DB btc_fnc_db_add_veh = compile preprocessFile "core\fnc\db\add_veh.sqf"; +//CIV +btc_fnc_civ_class = compile preprocessFile "core\fnc\civ\class.sqf"; + //EH btc_fnc_eh_unit_init = compile preprocessFile "core\fnc\eh\unit_init.sqf"; @@ -198,7 +202,7 @@ btc_fnc_log_unhook = compile preprocessFile "core\fnc\log\unhook.sqf"; btc_fnc_log_unload = compile preprocessFile "core\fnc\log\unload.sqf"; //MIL -btc_fnc_mil_classes = compile preprocessFile "core\fnc\mil\classes.sqf"; +btc_fnc_mil_class = compile preprocessFile "core\fnc\mil\class.sqf"; //TASK btc_fnc_task_create = compile preprocessFileLineNumbers "core\fnc\task\create.sqf"; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/classes.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/class.sqf similarity index 100% rename from =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/classes.sqf rename to =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/class.sqf From 995c3d4a82eab9095e82a66324076fdc9b868142 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 11 Mar 2017 14:39:54 +0100 Subject: [PATCH 033/120] remove CAR mod --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) 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 7ea589786..40ef878de 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 @@ -455,7 +455,7 @@ btc_player_side = west; btc_respawn_marker = "respawn_west"; // Get all faction from mod there are currently running //copyToClipboard str (["EN"] call btc_fnc_get_class); -private _allfaction = ["BLU_CTRG_F","BLU_F","BLU_G_F","BLU_GEN_F","BLU_T_F","CAR","CUP_B_GB","CUP_B_US","CUP_I_UN","IND_C_F","IND_F","IND_G_F","OPF_F","OPF_G_F","OPF_T_F","OPF_V_F","usml_aif","btc_am","caf_ag_afr_p","caf_ag_eeur_r","caf_ag_me_t","CUP_B_CDF","CUP_B_CZ","CUP_B_GER","CUP_B_RNZN","CUP_B_US_Army","CUP_B_USMC","CUP_I_NAPA","CUP_I_PMC_ION","CUP_I_RACS","CUP_I_TK_GUE","CUP_O_ChDKZ","CUP_O_RU","CUP_O_SLA","CUP_O_TK","CUP_O_TK_MILITIA","fow_ija","fow_uk","fow_usa","fow_usmc","fow_wehrmacht","LIB_ARR","LIB_CIV","LIB_FFI","LIB_MKHL","LIB_RBAF","LOP_AA","LOP_AFR","LOP_AFR_OPF","LOP_AM","LOP_AM_OPF","LOP_BH","LOP_CDF","LOP_ChDKZ","LOP_IA","LOP_IRA","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","rhs_faction_insurgents","rhs_faction_msv","rhs_faction_rva","rhs_faction_tv","rhs_faction_vdv","rhs_faction_vdv_45","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_nationalist","rhsgref_faction_un","rhssaf_faction_airforce","rhssaf_faction_army","rhssaf_faction_un","rhs_faction_socom","rhs_faction_usaf","rhs_faction_usarmy","rhs_faction_usarmy_d","rhs_faction_usarmy_wd","rhs_faction_usmc","rhs_faction_usmc_d","rhs_faction_usmc_wd","rhs_faction_usn","Tban","LIB_DAK","LIB_GUER","LIB_LUFTWAFFE","LIB_LUFTWAFFE_w","LIB_NAC","LIB_NKVD","LIB_PANZERWAFFE","LIB_PANZERWAFFE_w","LIB_RKKA","LIB_RKKA_w","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","SG_STURM","SG_STURM_w","SG_STURMPANZER"]; //All factions +private _allfaction = ["BLU_CTRG_F","BLU_F","BLU_G_F","BLU_GEN_F","BLU_T_F","CUP_B_GB","CUP_B_US","CUP_I_UN","IND_C_F","IND_F","IND_G_F","OPF_F","OPF_G_F","OPF_T_F","OPF_V_F","usml_aif","btc_am","caf_ag_afr_p","caf_ag_eeur_r","caf_ag_me_t","CUP_B_CDF","CUP_B_CZ","CUP_B_GER","CUP_B_RNZN","CUP_B_US_Army","CUP_B_USMC","CUP_I_NAPA","CUP_I_PMC_ION","CUP_I_RACS","CUP_I_TK_GUE","CUP_O_ChDKZ","CUP_O_RU","CUP_O_SLA","CUP_O_TK","CUP_O_TK_MILITIA","fow_ija","fow_uk","fow_usa","fow_usmc","fow_wehrmacht","LIB_ARR","LIB_CIV","LIB_FFI","LIB_MKHL","LIB_RBAF","LOP_AA","LOP_AFR","LOP_AFR_OPF","LOP_AM","LOP_AM_OPF","LOP_BH","LOP_CDF","LOP_ChDKZ","LOP_IA","LOP_IRA","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","rhs_faction_insurgents","rhs_faction_msv","rhs_faction_rva","rhs_faction_tv","rhs_faction_vdv","rhs_faction_vdv_45","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_nationalist","rhsgref_faction_un","rhssaf_faction_airforce","rhssaf_faction_army","rhssaf_faction_un","rhs_faction_socom","rhs_faction_usaf","rhs_faction_usarmy","rhs_faction_usarmy_d","rhs_faction_usarmy_wd","rhs_faction_usmc","rhs_faction_usmc_d","rhs_faction_usmc_wd","rhs_faction_usn","Tban","LIB_DAK","LIB_GUER","LIB_LUFTWAFFE","LIB_LUFTWAFFE_w","LIB_NAC","LIB_NKVD","LIB_PANZERWAFFE","LIB_PANZERWAFFE_w","LIB_RKKA","LIB_RKKA_w","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","SG_STURM","SG_STURM_w","SG_STURMPANZER"]; //All factions _p_en = _allfaction select _p_en; //Select faction selected from mission parameter _allclasse = [[_p_en /*, "IND_F"*/], _p_en_AA, _p_en_tank] call btc_fnc_mil_class; //Create classes from the corresponding factions [_p_en , "IND_F"], can combine factions from the SAME side. 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 1c9a109ba..3de680fc6 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 @@ -44,9 +44,9 @@ class Params { class btc_p_en { //paramsArray[6] 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}; - texts[]={"A3: CTRG (Side: WEST)","A3: OTAN (Side: WEST)","A3: FIA (Side: WEST)","A3: Gendarmerie (Side: WEST)","A3: OTAN (Pacifique) (Side: WEST)","A3: Central African Militia (Side: EAST)","A3: United Kingdom (Side: WEST)","A3: United States of America (Side: WEST)","A3: United Nations (Side: GUER)","A3: Syndikat (Side: GUER)","A3: AAF (Side: GUER)","A3: FIA (Side: GUER)","A3: CSAT (Side: EAST)","A3: FIA (Side: EAST)","A3: CSAT (Pacifique) (Side: EAST)","A3: Viper (Side: EAST)","AIF_ALL: Armed Islamic Front (Side: GUER)","BTC: Afghan Militia (Side: EAST)","CAF: Africa - Pirates (Side: EAST)","CAF: East Europe - Rebels (Side: EAST)","CAF: Middle East - Tribal (Side: EAST)","CUP: Chenarus Defense Force (CDF) (Side: WEST)","CUP: Czech Republic (Side: WEST)","CUP: Germany (Side: WEST)","CUP: Royal New Zealand Navy (Side: WEST)","CUP: United States Army (Side: WEST)","CUP: United States Marine Corps (Side: WEST)","CUP: NAPA (Chenarus) (Side: GUER)","CUP: ION PMC (Side: GUER)","CUP: Royal Army Corp of Sahrani (Side: GUER)","CUP: Takistani Locals (Side: GUER)","CUP: ChDKZ (Chenarus) (Side: EAST)","CUP: Russian Federation (Side: EAST)","CUP: Sahrani Liberation Army (Side: EAST)","CUP: Takistani Army (Side: EAST)","CUP: Takistani Militia (Side: EAST)","FOW: Imperial Japanese Army (Side: WEST)","FOW: UK (Side: GUER)","FOW: US Army (Side: GUER)","FOW: US Marines Corps (Side: GUER)","FOW: Wehrmacht (Side: WEST)","LIB: ARR (Side: WEST)","LIB: 40s Civilians (Side: GUER)","LIB: FFI (Side: GUER)","LIB: MKHL (Side: WEST)","LIB: RBAF (Side: WEST)","PO_MAIN: Afghan National Army and Police (Side: WEST)","PO_MAIN: African Militia (Side: GUER)","PO_MAIN: African Militia (Side: EAST)","PO_MAIN: Middle Eastern Militia (Side: GUER)","PO_MAIN: Middle Eastern Militia (Side: EAST)","PO_MAIN: Boko Haram (Side: GUER)","PO_MAIN: Chernarussian Defence Forces (Side: WEST)","PO_MAIN: ChDKZ (Side: EAST)","PO_MAIN: Iraqi Armed Forces (Side: WEST)","PO_MAIN: Irish Republican Army (Side: GUER)","PO_MAIN: Islamic State (Side: GUER)","PO_MAIN: Islamic State (Side: EAST)","PO_MAIN: Chernarussian National Insurgents (Side: GUER)","PO_MAIN: Kurdish Peshmerga Forces (Side: WEST)","PO_MAIN: Kurdish Peshmerga Forces (Side: GUER)","PO_MAIN: Private Military Company (Side: GUER)","PO_MAIN: Royal Army Corps of Sahrani (Side: GUER)","PO_MAIN: Sahrani Liberation Army (Side: EAST)","PO_MAIN: Takistani Armed Forces (Side: EAST)","PO_MAIN: Ultranationalists (Side: GUER)","PO_MAIN: Ukraine's Armed Forces (Side: GUER)","PO_MAIN: United Nations (Side: GUER)","PO_MAIN: United Armed Forces of Novorossiya (Side: EAST)","RHSAFRF: Eastern Militia (Side: GUER)","RHSAFRF: Russia (MSV) (Side: EAST)","RHSAFRF: Russia (RVA) (Side: EAST)","RHSAFRF: Russia (TV) (Side: EAST)","RHSAFRF: Russia (VDV) (Side: EAST)","RHSAFRF: (Side: EAST)","RHSAFRF: Russia (VMF) (Side: EAST)","RHSAFRF: Russia (VPVO) (Side: EAST)","RHSAFRF: Russia (VV) (Side: EAST)","RHSAFRF: Russia (VVS - Grey) (Side: EAST)","RHSAFRF: Russia (VVS - Camo) (Side: EAST)","RHSGREF: Chernarus (Air Force) (Side: GUER)","RHSGREF: Chernarus (Air Force) (Side: WEST)","RHSGREF: Chernarus (Ground Forces) (Side: GUER)","RHSGREF: Chernarus (Ground Forces) (Side: WEST)","RHSGREF: Chernarus (National Guard) (Side: GUER)","RHSGREF: Chernarus (National Guard) (Side: WEST)","RHSGREF: ChDKZ Insurgents (Side: EAST)","RHSGREF: ChDKZ Insurgents (Side: GUER)","RHSGREF: Nationalist Troops (Side: GUER)","RHSGREF: Chernarus (U.N. Peacekeepers) (Side: GUER)","RHSSAF: SAF (RVIPVO) (Side: GUER)","RHSSAF: SAF (KOV) (Side: GUER)","RHSSAF: SAF (Casques Bleus) (Side: GUER)","RHSUSF: USA (SOCOM) (Side: WEST)","RHSUSF: USA (USAF) (Side: WEST)","RHSUSF: USA (Army) (Side: WEST)","RHSUSF: USA (Army - D) (Side: WEST)","RHSUSF: USA (Army - W) (Side: WEST)","RHSUSF: USA (USMC) (Side: WEST)","RHSUSF: USA (USMC - D) (Side: WEST)","RHSUSF: USA (USMC - W) (Side: WEST)","RHSUSF: USA (Navy) (Side: WEST)","TALIBAN_FIGHTERS: Taliban (Side: EAST)","WW2: Deutsches Afrikakorps (Side: GUER)","WW2: Armia Krajowa (Polonais) (Side: GUER)","WW2: Luftwaffe (Side: WEST)","WW2: [Winter] Luftwaffe (Side: WEST)","WW2: US North African Corps (Side: GUER)","WW2: NKVD (Side: EAST)","WW2: Panzerwaffe (Side: WEST)","WW2: [Winter] Panzerwaffe (Side: WEST)","WW2: Red Army (Side: EAST)","WW2: [Winter] Red Army (Side: EAST)","WW2: US Army Air Forces (Side: GUER)","WW2: [Winter] US Airforce (Side: GUER)","WW2: US Army (Side: GUER)","WW2: [Winter] US Army (Side: GUER)","WW2: US 2nd Ranger Battalion (Side: GUER)","WW2: US Tank Troops (Side: GUER)","WW2: [Winter] US Tank Troops (Side: GUER)","WW2: USSR Airforce (Side: EAST)","WW2: [Winter] USSR Airforce (Side: EAST)","WW2: Tank troops of USSR (Side: EAST)","WW2: [Winter] Tank troops of USSR (Side: EAST)","WW2: Wehrmacht (Side: WEST)","WW2: [Winter] Wehrmacht (Side: WEST)","WW2: Sturmtroopers (Side: WEST)","WW2: [Winter] Sturmtroopers (Side: WEST)","WW2: Tank Sturmtroopers (Side: WEST)"}; - default = 11; + 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}; + texts[]={"A3: CTRG (Side: WEST)","A3: OTAN (Side: WEST)","A3: FIA (Side: WEST)","A3: Gendarmerie (Side: WEST)","A3: OTAN (Pacifique) (Side: WEST)","A3: United Kingdom (Side: WEST)","A3: United States of America (Side: WEST)","A3: United Nations (Side: GUER)","A3: Syndikat (Side: GUER)","A3: AAF (Side: GUER)","A3: FIA (Side: GUER)","A3: CSAT (Side: EAST)","A3: FIA (Side: EAST)","A3: CSAT (Pacifique) (Side: EAST)","A3: Viper (Side: EAST)","AIF_ALL: Armed Islamic Front (Side: GUER)","BTC: Afghan Militia (Side: EAST)","CAF: Africa - Pirates (Side: EAST)","CAF: East Europe - Rebels (Side: EAST)","CAF: Middle East - Tribal (Side: EAST)","CUP: Chenarus Defense Force (CDF) (Side: WEST)","CUP: Czech Republic (Side: WEST)","CUP: Germany (Side: WEST)","CUP: Royal New Zealand Navy (Side: WEST)","CUP: United States Army (Side: WEST)","CUP: United States Marine Corps (Side: WEST)","CUP: NAPA (Chenarus) (Side: GUER)","CUP: ION PMC (Side: GUER)","CUP: Royal Army Corp of Sahrani (Side: GUER)","CUP: Takistani Locals (Side: GUER)","CUP: ChDKZ (Chenarus) (Side: EAST)","CUP: Russian Federation (Side: EAST)","CUP: Sahrani Liberation Army (Side: EAST)","CUP: Takistani Army (Side: EAST)","CUP: Takistani Militia (Side: EAST)","FOW: Imperial Japanese Army (Side: WEST)","FOW: UK (Side: GUER)","FOW: US Army (Side: GUER)","FOW: US Marines Corps (Side: GUER)","FOW: Wehrmacht (Side: WEST)","LIB: ARR (Side: WEST)","LIB: 40s Civilians (Side: GUER)","LIB: FFI (Side: GUER)","LIB: MKHL (Side: WEST)","LIB: RBAF (Side: WEST)","PO_MAIN: Afghan National Army and Police (Side: WEST)","PO_MAIN: African Militia (Side: GUER)","PO_MAIN: African Militia (Side: EAST)","PO_MAIN: Middle Eastern Militia (Side: GUER)","PO_MAIN: Middle Eastern Militia (Side: EAST)","PO_MAIN: Boko Haram (Side: GUER)","PO_MAIN: Chernarussian Defence Forces (Side: WEST)","PO_MAIN: ChDKZ (Side: EAST)","PO_MAIN: Iraqi Armed Forces (Side: WEST)","PO_MAIN: Irish Republican Army (Side: GUER)","PO_MAIN: Islamic State (Side: GUER)","PO_MAIN: Islamic State (Side: EAST)","PO_MAIN: Chernarussian National Insurgents (Side: GUER)","PO_MAIN: Kurdish Peshmerga Forces (Side: WEST)","PO_MAIN: Kurdish Peshmerga Forces (Side: GUER)","PO_MAIN: Private Military Company (Side: GUER)","PO_MAIN: Royal Army Corps of Sahrani (Side: GUER)","PO_MAIN: Sahrani Liberation Army (Side: EAST)","PO_MAIN: Takistani Armed Forces (Side: EAST)","PO_MAIN: Ultranationalists (Side: GUER)","PO_MAIN: Ukraine's Armed Forces (Side: GUER)","PO_MAIN: United Nations (Side: GUER)","PO_MAIN: United Armed Forces of Novorossiya (Side: EAST)","RHSAFRF: Eastern Militia (Side: GUER)","RHSAFRF: Russia (MSV) (Side: EAST)","RHSAFRF: Russia (RVA) (Side: EAST)","RHSAFRF: Russia (TV) (Side: EAST)","RHSAFRF: Russia (VDV) (Side: EAST)","RHSAFRF: (Side: EAST)","RHSAFRF: Russia (VMF) (Side: EAST)","RHSAFRF: Russia (VPVO) (Side: EAST)","RHSAFRF: Russia (VV) (Side: EAST)","RHSAFRF: Russia (VVS - Grey) (Side: EAST)","RHSAFRF: Russia (VVS - Camo) (Side: EAST)","RHSGREF: Chernarus (Air Force) (Side: GUER)","RHSGREF: Chernarus (Air Force) (Side: WEST)","RHSGREF: Chernarus (Ground Forces) (Side: GUER)","RHSGREF: Chernarus (Ground Forces) (Side: WEST)","RHSGREF: Chernarus (National Guard) (Side: GUER)","RHSGREF: Chernarus (National Guard) (Side: WEST)","RHSGREF: ChDKZ Insurgents (Side: EAST)","RHSGREF: ChDKZ Insurgents (Side: GUER)","RHSGREF: Nationalist Troops (Side: GUER)","RHSGREF: Chernarus (U.N. Peacekeepers) (Side: GUER)","RHSSAF: SAF (RVIPVO) (Side: GUER)","RHSSAF: SAF (KOV) (Side: GUER)","RHSSAF: SAF (Casques Bleus) (Side: GUER)","RHSUSF: USA (SOCOM) (Side: WEST)","RHSUSF: USA (USAF) (Side: WEST)","RHSUSF: USA (Army) (Side: WEST)","RHSUSF: USA (Army - D) (Side: WEST)","RHSUSF: USA (Army - W) (Side: WEST)","RHSUSF: USA (USMC) (Side: WEST)","RHSUSF: USA (USMC - D) (Side: WEST)","RHSUSF: USA (USMC - W) (Side: WEST)","RHSUSF: USA (Navy) (Side: WEST)","TALIBAN_FIGHTERS: Taliban (Side: EAST)","WW2: Deutsches Afrikakorps (Side: GUER)","WW2: Armia Krajowa (Polonais) (Side: GUER)","WW2: Luftwaffe (Side: WEST)","WW2: [Winter] Luftwaffe (Side: WEST)","WW2: US North African Corps (Side: GUER)","WW2: NKVD (Side: EAST)","WW2: Panzerwaffe (Side: WEST)","WW2: [Winter] Panzerwaffe (Side: WEST)","WW2: Red Army (Side: EAST)","WW2: [Winter] Red Army (Side: EAST)","WW2: US Army Air Forces (Side: GUER)","WW2: [Winter] US Airforce (Side: GUER)","WW2: US Army (Side: GUER)","WW2: [Winter] US Army (Side: GUER)","WW2: US 2nd Ranger Battalion (Side: GUER)","WW2: US Tank Troops (Side: GUER)","WW2: [Winter] US Tank Troops (Side: GUER)","WW2: USSR Airforce (Side: EAST)","WW2: [Winter] USSR Airforce (Side: EAST)","WW2: Tank troops of USSR (Side: EAST)","WW2: [Winter] Tank troops of USSR (Side: EAST)","WW2: Wehrmacht (Side: WEST)","WW2: [Winter] Wehrmacht (Side: WEST)","WW2: Sturmtroopers (Side: WEST)","WW2: [Winter] Sturmtroopers (Side: WEST)","WW2: Tank Sturmtroopers (Side: WEST)"}; + default = 10; }; class btc_p_civ { //paramsArray[7] From d732987982d20ebbaf287b4cf398f82ecd159904 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 12 Mar 2017 11:00:46 +0100 Subject: [PATCH 034/120] FIX: error link to https://github.com/Vdauphin/HeartsAndMinds/pull/292/files#diff-6e74a324a7e87b737dffb91b179e2df8 --- .../core/fnc/eh/extended_InitPost_EH.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/extended_InitPost_EH.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/extended_InitPost_EH.hpp index 7e3bd1c13..2eda0ca7c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/extended_InitPost_EH.hpp +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/extended_InitPost_EH.hpp @@ -11,7 +11,7 @@ class Extended_InitPost_EventHandlers { }; class Ship { class btc_actions { - init = "_this call btc_fnc_eh_veh_init"; + init = "[typeof (_this select 0)] call btc_fnc_eh_veh_init"; }; }; /*class CAManBase { From 6a18d6f1ac974a23ad9f5a2a4e27454a9d99468d Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 12 Mar 2017 11:28:02 +0100 Subject: [PATCH 035/120] Add units close to the generator --- .../core/fnc/side/underwater_generator.sqf | 3 +++ 1 file changed, 3 insertions(+) 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 bcd2ead2d..e186d4404 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 @@ -54,6 +54,9 @@ _marker setMarkerSize [0.6, 0.6]; _generator = (selectRandom btc_type_generator) createVehicle _pos; _storagebladder = (selectRandom btc_type_storagebladder) createVehicle [(_pos select 0) + 5, (_pos select 1), _pos select 2]; +[_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; + waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || !Alive _generator )}; {deletemarker _x} foreach [_area,_marker]; From 3e684264936df4df69ac24b6517434887ad5f16c Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 17 Mar 2017 20:40:34 +0100 Subject: [PATCH 036/120] FIX: enemy altitude --- .../core/fnc/side/underwater_generator.sqf | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) 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 e186d4404..9c49b627b 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 @@ -1,5 +1,5 @@ -private ["_useful","_city","_pos","_marker","_wrecks","_generator","_objects","_storagebladder","_area"]; +private ["_useful","_city","_pos","_marker","_wrecks","_generator","_objects","_storagebladder","_area","_group"]; //// Choose a Marine location occupied \\\\ _useful = btc_city_all select {((_x getVariable ["occupied",false]) && (_x getVariable ["type",""] == "NameMarine"))}; @@ -52,11 +52,14 @@ _marker setMarkerSize [0.6, 0.6]; //// Create underwater generator \\\\ _generator = (selectRandom btc_type_generator) createVehicle _pos; -_storagebladder = (selectRandom btc_type_storagebladder) createVehicle [(_pos select 0) + 5, (_pos select 1), _pos select 2]; +_storagebladder = (selectRandom btc_type_storagebladder) createVehicle [(_pos select 0) + 5, _pos select 1, _pos select 2]; -[_pos,8, 1 + round random 5,0.8] call btc_fnc_mil_create_group; +_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]; + waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || !Alive _generator )}; {deletemarker _x} foreach [_area,_marker]; From 52966bb9cec02e5d4c85f7e720471022342065cd Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 19 Mar 2017 19:35:45 +0100 Subject: [PATCH 037/120] Better support of side faction --- .../core/def/mission.sqf | 12 ++-- .../core/def/param.hpp | 18 ++--- .../core/fnc/civ/class.sqf | 8 ++- .../core/fnc/common/get_class.sqf | 72 ++++++++++++------- .../core/fnc/mil/class.sqf | 11 +-- 5 files changed, 71 insertions(+), 50 deletions(-) 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 40ef878de..37c304f2d 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 @@ -161,7 +161,7 @@ btc_city_type = "Land_Ammobox_rounds_F"; //Civ // Get all faction from mod there are currently running //copyToClipboard str (["CIV"] call btc_fnc_get_class); -private _allfaction = ["CIV_F","CUP_C_Special","btc_ac","caf_ag_afr_civ","caf_ag_me_civ","CUP_C_CHERNARUS","CUP_C_RU","CUP_C_SAHRANI","CUP_C_TK","Interactive_F","LIB_ACI","LIB_RAAF","LIB_RAF","LOP_AFR_Civ","LOP_CHR_Civ","LOP_IRAN","LOP_TAK_Civ","LOP_UVF","rds_rus_civ","AFGCIV","Virtual_F"]; //All factions +private _allfaction = ["AFGCIV","CIV_F","BTC_AC","CAF_AG_AFR_CIV","CAF_AG_ME_CIV","CUP_C_CHERNARUS","CUP_C_RU","CUP_C_TK","LIB_CIV","LOP_AFR_CIV","LOP_CHR_CIV","LOP_TAK_CIV","RDS_RUS_CIV"]; //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 private _allclasse = [[_p_civ]] call btc_fnc_civ_class; //Create classes from the corresponding factions [_p_civ , "btc_ac"], can combine factions from the SAME side. @@ -455,9 +455,9 @@ btc_player_side = west; btc_respawn_marker = "respawn_west"; // Get all faction from mod there are currently running //copyToClipboard str (["EN"] call btc_fnc_get_class); -private _allfaction = ["BLU_CTRG_F","BLU_F","BLU_G_F","BLU_GEN_F","BLU_T_F","CUP_B_GB","CUP_B_US","CUP_I_UN","IND_C_F","IND_F","IND_G_F","OPF_F","OPF_G_F","OPF_T_F","OPF_V_F","usml_aif","btc_am","caf_ag_afr_p","caf_ag_eeur_r","caf_ag_me_t","CUP_B_CDF","CUP_B_CZ","CUP_B_GER","CUP_B_RNZN","CUP_B_US_Army","CUP_B_USMC","CUP_I_NAPA","CUP_I_PMC_ION","CUP_I_RACS","CUP_I_TK_GUE","CUP_O_ChDKZ","CUP_O_RU","CUP_O_SLA","CUP_O_TK","CUP_O_TK_MILITIA","fow_ija","fow_uk","fow_usa","fow_usmc","fow_wehrmacht","LIB_ARR","LIB_CIV","LIB_FFI","LIB_MKHL","LIB_RBAF","LOP_AA","LOP_AFR","LOP_AFR_OPF","LOP_AM","LOP_AM_OPF","LOP_BH","LOP_CDF","LOP_ChDKZ","LOP_IA","LOP_IRA","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","rhs_faction_insurgents","rhs_faction_msv","rhs_faction_rva","rhs_faction_tv","rhs_faction_vdv","rhs_faction_vdv_45","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_nationalist","rhsgref_faction_un","rhssaf_faction_airforce","rhssaf_faction_army","rhssaf_faction_un","rhs_faction_socom","rhs_faction_usaf","rhs_faction_usarmy","rhs_faction_usarmy_d","rhs_faction_usarmy_wd","rhs_faction_usmc","rhs_faction_usmc_d","rhs_faction_usmc_wd","rhs_faction_usn","Tban","LIB_DAK","LIB_GUER","LIB_LUFTWAFFE","LIB_LUFTWAFFE_w","LIB_NAC","LIB_NKVD","LIB_PANZERWAFFE","LIB_PANZERWAFFE_w","LIB_RKKA","LIB_RKKA_w","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","SG_STURM","SG_STURM_w","SG_STURMPANZER"]; //All factions +private _allfaction = ["BLU_F","BLU_G_F","IND_F","IND_G_F","OPF_F","OPF_G_F","TBAN","BTC_AM","CAF_AG_AFR_P","CAF_AG_EEUR_R","CAF_AG_ME_T","CUP_B_CZ","CUP_B_GER","CUP_B_US_ARMY","CUP_I_NAPA","CUP_I_PMC_ION","CUP_I_RACS","CUP_O_SLA","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","BLU_CTRG_F","BLU_GEN_F","BLU_T_F","IND_C_F","OPF_T_F","FOW_IJA","FOW_UK","FOW_USA","FOW_USMC","FOW_WEHRMACHT","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_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","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","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_NATIONALIST","SG_STURM","SG_STURM_W","SG_STURMPANZER","USML_AIF"]; //All factions _p_en = _allfaction select _p_en; //Select faction selected from mission parameter -_allclasse = [[_p_en /*, "IND_F"*/], _p_en_AA, _p_en_tank] call btc_fnc_mil_class; //Create classes from the corresponding factions [_p_en , "IND_F"], can combine factions from the SAME side. +_allclasse = [[_p_en /*, "IND_F"*/], _p_en_AA, _p_en_tank] call btc_fnc_mil_class; //Create classes from the corresponding factions [_p_en , "IND_F"], you can combine factions from the SAME side. //Save class name to global variable btc_hq = _allclasse select 0; @@ -486,13 +486,13 @@ switch (_p_en) do { btc_type_motorized = btc_type_motorized + ["I_Truck_02_transport_F","I_Truck_02_covered_F"]; btc_type_units = btc_type_units - ["I_G_Survivor_F"]; }; - case "fow_usmc" : { + case "FOW_USMC" : { btc_type_units = btc_type_units - ["fow_s_usmc_01_private"]; }; - case "fow_usa" : { + case "FOW_USA" : { btc_type_units = btc_type_units - ["fow_s_usa_01_private"]; }; - case "fow_uk" : { + case "FOW_UK" : { btc_type_units = btc_type_units - ["fow_s_uk_01_private"]; }; }; 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 3de680fc6..3cedde460 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 @@ -44,23 +44,23 @@ class Params { class btc_p_en { //paramsArray[6] 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}; - texts[]={"A3: CTRG (Side: WEST)","A3: OTAN (Side: WEST)","A3: FIA (Side: WEST)","A3: Gendarmerie (Side: WEST)","A3: OTAN (Pacifique) (Side: WEST)","A3: United Kingdom (Side: WEST)","A3: United States of America (Side: WEST)","A3: United Nations (Side: GUER)","A3: Syndikat (Side: GUER)","A3: AAF (Side: GUER)","A3: FIA (Side: GUER)","A3: CSAT (Side: EAST)","A3: FIA (Side: EAST)","A3: CSAT (Pacifique) (Side: EAST)","A3: Viper (Side: EAST)","AIF_ALL: Armed Islamic Front (Side: GUER)","BTC: Afghan Militia (Side: EAST)","CAF: Africa - Pirates (Side: EAST)","CAF: East Europe - Rebels (Side: EAST)","CAF: Middle East - Tribal (Side: EAST)","CUP: Chenarus Defense Force (CDF) (Side: WEST)","CUP: Czech Republic (Side: WEST)","CUP: Germany (Side: WEST)","CUP: Royal New Zealand Navy (Side: WEST)","CUP: United States Army (Side: WEST)","CUP: United States Marine Corps (Side: WEST)","CUP: NAPA (Chenarus) (Side: GUER)","CUP: ION PMC (Side: GUER)","CUP: Royal Army Corp of Sahrani (Side: GUER)","CUP: Takistani Locals (Side: GUER)","CUP: ChDKZ (Chenarus) (Side: EAST)","CUP: Russian Federation (Side: EAST)","CUP: Sahrani Liberation Army (Side: EAST)","CUP: Takistani Army (Side: EAST)","CUP: Takistani Militia (Side: EAST)","FOW: Imperial Japanese Army (Side: WEST)","FOW: UK (Side: GUER)","FOW: US Army (Side: GUER)","FOW: US Marines Corps (Side: GUER)","FOW: Wehrmacht (Side: WEST)","LIB: ARR (Side: WEST)","LIB: 40s Civilians (Side: GUER)","LIB: FFI (Side: GUER)","LIB: MKHL (Side: WEST)","LIB: RBAF (Side: WEST)","PO_MAIN: Afghan National Army and Police (Side: WEST)","PO_MAIN: African Militia (Side: GUER)","PO_MAIN: African Militia (Side: EAST)","PO_MAIN: Middle Eastern Militia (Side: GUER)","PO_MAIN: Middle Eastern Militia (Side: EAST)","PO_MAIN: Boko Haram (Side: GUER)","PO_MAIN: Chernarussian Defence Forces (Side: WEST)","PO_MAIN: ChDKZ (Side: EAST)","PO_MAIN: Iraqi Armed Forces (Side: WEST)","PO_MAIN: Irish Republican Army (Side: GUER)","PO_MAIN: Islamic State (Side: GUER)","PO_MAIN: Islamic State (Side: EAST)","PO_MAIN: Chernarussian National Insurgents (Side: GUER)","PO_MAIN: Kurdish Peshmerga Forces (Side: WEST)","PO_MAIN: Kurdish Peshmerga Forces (Side: GUER)","PO_MAIN: Private Military Company (Side: GUER)","PO_MAIN: Royal Army Corps of Sahrani (Side: GUER)","PO_MAIN: Sahrani Liberation Army (Side: EAST)","PO_MAIN: Takistani Armed Forces (Side: EAST)","PO_MAIN: Ultranationalists (Side: GUER)","PO_MAIN: Ukraine's Armed Forces (Side: GUER)","PO_MAIN: United Nations (Side: GUER)","PO_MAIN: United Armed Forces of Novorossiya (Side: EAST)","RHSAFRF: Eastern Militia (Side: GUER)","RHSAFRF: Russia (MSV) (Side: EAST)","RHSAFRF: Russia (RVA) (Side: EAST)","RHSAFRF: Russia (TV) (Side: EAST)","RHSAFRF: Russia (VDV) (Side: EAST)","RHSAFRF: (Side: EAST)","RHSAFRF: Russia (VMF) (Side: EAST)","RHSAFRF: Russia (VPVO) (Side: EAST)","RHSAFRF: Russia (VV) (Side: EAST)","RHSAFRF: Russia (VVS - Grey) (Side: EAST)","RHSAFRF: Russia (VVS - Camo) (Side: EAST)","RHSGREF: Chernarus (Air Force) (Side: GUER)","RHSGREF: Chernarus (Air Force) (Side: WEST)","RHSGREF: Chernarus (Ground Forces) (Side: GUER)","RHSGREF: Chernarus (Ground Forces) (Side: WEST)","RHSGREF: Chernarus (National Guard) (Side: GUER)","RHSGREF: Chernarus (National Guard) (Side: WEST)","RHSGREF: ChDKZ Insurgents (Side: EAST)","RHSGREF: ChDKZ Insurgents (Side: GUER)","RHSGREF: Nationalist Troops (Side: GUER)","RHSGREF: Chernarus (U.N. Peacekeepers) (Side: GUER)","RHSSAF: SAF (RVIPVO) (Side: GUER)","RHSSAF: SAF (KOV) (Side: GUER)","RHSSAF: SAF (Casques Bleus) (Side: GUER)","RHSUSF: USA (SOCOM) (Side: WEST)","RHSUSF: USA (USAF) (Side: WEST)","RHSUSF: USA (Army) (Side: WEST)","RHSUSF: USA (Army - D) (Side: WEST)","RHSUSF: USA (Army - W) (Side: WEST)","RHSUSF: USA (USMC) (Side: WEST)","RHSUSF: USA (USMC - D) (Side: WEST)","RHSUSF: USA (USMC - W) (Side: WEST)","RHSUSF: USA (Navy) (Side: WEST)","TALIBAN_FIGHTERS: Taliban (Side: EAST)","WW2: Deutsches Afrikakorps (Side: GUER)","WW2: Armia Krajowa (Polonais) (Side: GUER)","WW2: Luftwaffe (Side: WEST)","WW2: [Winter] Luftwaffe (Side: WEST)","WW2: US North African Corps (Side: GUER)","WW2: NKVD (Side: EAST)","WW2: Panzerwaffe (Side: WEST)","WW2: [Winter] Panzerwaffe (Side: WEST)","WW2: Red Army (Side: EAST)","WW2: [Winter] Red Army (Side: EAST)","WW2: US Army Air Forces (Side: GUER)","WW2: [Winter] US Airforce (Side: GUER)","WW2: US Army (Side: GUER)","WW2: [Winter] US Army (Side: GUER)","WW2: US 2nd Ranger Battalion (Side: GUER)","WW2: US Tank Troops (Side: GUER)","WW2: [Winter] US Tank Troops (Side: GUER)","WW2: USSR Airforce (Side: EAST)","WW2: [Winter] USSR Airforce (Side: EAST)","WW2: Tank troops of USSR (Side: EAST)","WW2: [Winter] Tank troops of USSR (Side: EAST)","WW2: Wehrmacht (Side: WEST)","WW2: [Winter] Wehrmacht (Side: WEST)","WW2: Sturmtroopers (Side: WEST)","WW2: [Winter] Sturmtroopers (Side: WEST)","WW2: Tank Sturmtroopers (Side: WEST)"}; - default = 10; + 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}; + texts[]={" Bohemia Interactive: OTAN (Side: WEST)"," Bohemia Interactive: FIA (Side: WEST)"," Bohemia Interactive: AAF (Side: GUER)"," Bohemia Interactive: FIA (Side: GUER)"," Bohemia Interactive: CSAT (Side: EAST)"," Bohemia Interactive: FIA (Side: EAST)"," EricJ: Taliban (Side: EAST)","btc_militia_mod Giallustio: Afghan Militia (Side: EAST)","CAF CAF MOD TEAM: Africa - Pirates (Side: EAST)","CAF CAF MOD TEAM: East Europe - Rebels (Side: EAST)","CAF CAF MOD TEAM: Middle East - Tribal (Side: EAST)","CUP Community Upgrade Project: Czech Republic (Side: WEST)","CUP Bohemia Interactive: Germany (Side: WEST)","CUP Bohemia Interactive: United States Army (Side: WEST)","CUP Bohemia Interactive: NAPA (Chenarus) (Side: GUER)","CUP $CUP_AUTHOR_STRING: ION PMC (Side: GUER)","CUP Bohemia Interactive: Royal Army Corp of Sahrani (Side: GUER)","CUP Bohemia Interactive: Sahrani Liberation Army (Side: EAST)","CUP Bohemia Interactive: Takistani Army (Side: EAST)","CUP_Units Community Upgrade Project: United Kingdom (Side: WEST)","CUP_Units Bohemia Interactive: Takistani Locals (Side: GUER)","CUP_Units Community Upgrade Project: United Nations (Side: GUER)","CUP_Units Community Upgrade Project: ChDKZ (Chenarus) (Side: EAST)","CUP_Units Bohemia Interactive: Takistani Militia (Side: EAST)","CUP_Vehicles Community Upgrade Project: Chenarus Defense Force (CDF) (Side: WEST)","CUP_Vehicles Community Upgrade Project: Royal New Zealand Navy (Side: WEST)","CUP_Vehicles Community Upgrade Project: United States Marine Corps (Side: WEST)","CUP_Vehicles Community Upgrade Project: Russian Federation (Side: EAST)","Expansion Bohemia Interactive: CTRG (Side: WEST)","Expansion Bohemia Interactive: Gendarmerie (Side: WEST)","Expansion Bohemia Interactive: OTAN (Pacifique) (Side: WEST)","Expansion Bohemia Interactive: Syndikat (Side: GUER)","Expansion Bohemia Interactive: CSAT (Pacifique) (Side: EAST)","FOW Bohemia Interactive: Imperial Japanese Army (Side: WEST)","FOW Bohemia Interactive: UK (Side: GUER)","FOW Bohemia Interactive: US Army (Side: GUER)","FOW Bohemia Interactive: US Marines Corps (Side: GUER)","FOW Bohemia Interactive: Wehrmacht (Side: WEST)","LIB AWAR: ACI (Side: GUER)","LIB AWAR & Lennard: ARR (Side: WEST)","LIB Lennard: Deutsches Afrikakorps (Side: WEST)","LIB AWAR & Joarius: FFI (Side: GUER)","LIB AWAR: Armia Krajowa (Polonais) (Side: GUER)","LIB AWAR: Luftwaffe (Side: WEST)","LIB AWAR & Lennard: [Winter] Luftwaffe (Side: WEST)","LIB AWAR & Lennard: MKHL (Side: WEST)","LIB Lennard: US North African Corps (Side: GUER)","LIB Lennard: NKVD (Side: EAST)","LIB AWAR: Panzerwaffe (Side: WEST)","LIB AWAR & Lennard: [Winter] Panzerwaffe (Side: WEST)","LIB AWAR: RAAF (Side: GUER)","LIB AWAR: RAF (Side: GUER)","LIB AWAR & Lennard: RBAF (Side: WEST)","LIB AWAR: Red Army (Side: EAST)","LIB AWAR & Lennard: [Winter] Red Army (Side: EAST)","LIB LODU: US Army Air Forces (Side: GUER)","LIB AWAR: [Winter] US Airforce (Side: GUER)","LIB LODU: US Army (Side: GUER)","LIB LODU: [Winter] US Army (Side: GUER)","LIB Lennard: US 2nd Ranger Battalion (Side: GUER)","LIB LODU: US Tank Troops (Side: GUER)","LIB AWAR & Lennard: [Winter] US Tank Troops (Side: GUER)","LIB AWAR: USSR Airforce (Side: EAST)","LIB AWAR & Lennard: [Winter] USSR Airforce (Side: EAST)","LIB AWAR: Tank troops of USSR (Side: EAST)","LIB AWAR & Lennard: [Winter] Tank troops of USSR (Side: EAST)","LIB AWAR: Wehrmacht (Side: WEST)","LIB AWAR & Lennard: [Winter] Wehrmacht (Side: WEST)","LOP Project OPFOR: Boko Haram (Side: EAST)","LOP Project OPFOR: Irish Republican Army (Side: EAST)","LOP Project OPFOR: Ulster Volunteer Force (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Afghan National Army and Police (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: African Militia (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: African Militia (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Chernarussian Defence Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: ChDKZ (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Iraqi Armed Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: Iranian Armed Forces (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Chernarussian National Insurgents (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Private Military Company (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Royal Army Corps of Sahrani (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Sahrani Liberation Army (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Takistani Armed Forces (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Ultranationalists (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Ukraine's Armed Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: United Nations (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: United Armed Forces of Novorossiya (Side: EAST)","RHS_AFRF Red Hammer Studios: Eastern Militia (Side: GUER)","RHS_AFRF Red Hammer Studios: Russia (MSV) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (RVA) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (TV) (Side: EAST)","RHS_AFRF Bohemia Interactive: Russia (VDV) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VMF) (Side: EAST)","RHS_AFRF RHS: Russia (VPVO) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VV) (Side: EAST)","RHS_AFRF Bohemia Interactive: Russia (VVS - Grey) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VVS - Camo) (Side: EAST)","RHS_GREF Red Hammer Studios: Chernarus (Air Force) (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (Air Force) (Side: WEST)","RHS_GREF RHS (A2 port): Chernarus (Ground Forces) (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (Ground Forces) (Side: WEST)","RHS_GREF Red Hammer Studios: Chernarus (National Guard) (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (National Guard) (Side: WEST)","RHS_GREF Red Hammer Studios: ChDKZ Insurgents (Side: EAST)","RHS_GREF Red Hammer Studios: ChDKZ Insurgents (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (U.N. Peacekeepers) (Side: GUER)","RHS_SAF Red Hammer Studios: SAF (RVIPVO) (Side: GUER)","RHS_SAF Red Hammer Studios: SAF (KOV) (Side: GUER)","RHS_SAF Red Hammer Studios: SAF (Casques Bleus) (Side: GUER)","RHS_USAF Red Hammer Studios: USA (SOCOM) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (USAF) (Side: WEST)","RHS_USAF RHS (A2 port): USA (Army - D) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (Army - W) (Side: WEST)","RHS_USAF RHS (A2 port): USA (USMC - D) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (USMC - W) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (Navy) (Side: WEST)","RHSGREF Red Hammer Studios: Nationalist Troops (Side: GUER)","SG Stagler: Sturmtroopers (Side: WEST)","SG Stagler: [Winter] Sturmtroopers (Side: WEST)","SG Stagler: Tank Sturmtroopers (Side: WEST)","USML segen: Armed Islamic Front (Side: GUER)"}; + default = 3; }; class btc_p_civ { //paramsArray[7] 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[]={"A3: Civils (Side: CIV)","A3: Civilian (Special) (Side: CIV)","BTC: Afghan Civilians (Side: CIV)","CAF: African (Side: CIV)","CAF: Middle Eastern (Side: CIV)","CUP: Civilians (Chenarus) (Side: CIV)","CUP: Civilians (Russian) (Side: CIV)","CUP: Civilians (Sahrani) (Side: CIV)","CUP: Civilians (Takistan) (Side: CIV)","INTERACTIVE: Autre (interactif) (Side: CIV)","LIB: ACI (Side: CIV)","LIB: RAAF (Side: CIV)","LIB: RAF (Side: CIV)","PO_MAIN: African Civilians (Side: CIV)","PO_MAIN: Eastern European Civilians (Side: CIV)","PO_MAIN: Iranian Armed Forces (Side: CIV)","PO_MAIN: Middle Eastern Civilians (Side: CIV)","PO_MAIN: Ulster Volunteer Force (Side: CIV)","RDS_A2PORT_CMAN: Russians (Side: CIV)","TALIBAN_FIGHTERS: Afghan Civilians (Side: CIV)","VIRTUAL: Virtuel (Side: CIV)"}; - default = 0; + values[]={0,1,2,3,4,5,6,7,8,9,10,11,12}; + texts[]={" EricJ: Afghan Civilians (Side: CIV)"," Bohemia Interactive: Civils (Side: CIV)","btc_militia_mod Giallustio: Afghan Civilians (Side: CIV)","CAF CAF MOD TEAM: African (Side: CIV)","CAF CAF MOD TEAM: Middle Eastern (Side: CIV)","CUP Bohemia Interactive: Civilians (Chenarus) (Side: CIV)","CUP_Units Community Upgrade Project: Civilians (Russian) (Side: CIV)","CUP_Vehicles Community Upgrade Project: Civilians (Takistan) (Side: CIV)","LIB Reyhard & Joarius: 40s Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: African Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Eastern European Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Civilians (Side: CIV)","RDS_CIV_PACK reyhard: Russians (Side: CIV)"}; + default = 1; }; class btc_p_civ_veh { //paramsArray[8] 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[]={"A3: Civils (Side: CIV)","A3: Civilian (Special) (Side: CIV)","BTC: Afghan Civilians (Side: CIV)","CAF: African (Side: CIV)","CAF: Middle Eastern (Side: CIV)","CUP: Civilians (Chenarus) (Side: CIV)","CUP: Civilians (Russian) (Side: CIV)","CUP: Civilians (Sahrani) (Side: CIV)","CUP: Civilians (Takistan) (Side: CIV)","INTERACTIVE: Autre (interactif) (Side: CIV)","LIB: ACI (Side: CIV)","LIB: RAAF (Side: CIV)","LIB: RAF (Side: CIV)","PO_MAIN: African Civilians (Side: CIV)","PO_MAIN: Eastern European Civilians (Side: CIV)","PO_MAIN: Iranian Armed Forces (Side: CIV)","PO_MAIN: Middle Eastern Civilians (Side: CIV)","PO_MAIN: Ulster Volunteer Force (Side: CIV)","RDS_A2PORT_CMAN: Russians (Side: CIV)","TALIBAN_FIGHTERS: Afghan Civilians (Side: CIV)","VIRTUAL: Virtuel (Side: CIV)"}; - default = 0; + values[]={0,1,2,3,4,5,6,7,8,9,10,11,12}; + texts[]={" EricJ: Afghan Civilians (Side: CIV)"," Bohemia Interactive: Civils (Side: CIV)","btc_militia_mod Giallustio: Afghan Civilians (Side: CIV)","CAF CAF MOD TEAM: African (Side: CIV)","CAF CAF MOD TEAM: Middle Eastern (Side: CIV)","CUP Bohemia Interactive: Civilians (Chenarus) (Side: CIV)","CUP_Units Community Upgrade Project: Civilians (Russian) (Side: CIV)","CUP_Vehicles Community Upgrade Project: Civilians (Takistan) (Side: CIV)","LIB Reyhard & Joarius: 40s Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: African Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Eastern European Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Civilians (Side: CIV)","RDS_CIV_PACK reyhard: Russians (Side: CIV)"}; + default = 1; }; class btc_p_IED_title { //paramsArray[9] 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 837b2c0e0..1291ee32c 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 @@ -15,7 +15,7 @@ _factions = _factions apply {if !isClass(configFile >> "CfgFactionClasses" >> _x private _faction = _x; //Get all vehicles of the _faction selected - private _allclasse_f = _allclasse select {getText(configFile >> "cfgvehicles" >> _x >> "faction") isEqualTo _faction}; + private _allclasse_f = _allclasse select {(toUpper getText(configFile >> "cfgvehicles" >> _x >> "faction")) isEqualTo _faction}; //Units _type_units append (_allclasse_f select {_x isKindOf "Man"}); @@ -25,10 +25,12 @@ _factions = _factions apply {if !isClass(configFile >> "CfgFactionClasses" >> _x _type_boats append (_allclasse_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 (_allclasse_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 "_base") isEqualTo -1) && ((_x find "_unarmed_") isEqualTo -1) && ((_x find "_VR_") isEqualTo -1)}; -_type_veh = (_type_veh select {(_x find "UAV") isEqualTo -1}) select {(_x find "UGV") 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/common/get_class.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/get_class.sqf index 6fe4b2bbe..552b4f1de 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 @@ -1,37 +1,55 @@ private _faction_list = if ((_this select 0) isEqualTo "CIV") then {[3]} else {[0,1,2]}; -// Get all faction from mod there are currently running -private _allfaction = (("true" configClasses (configFile >> "CfgFactionClasses")) apply {configName _x}) select { - getNumber(configfile >> "CfgFactionClasses" >> _x >> "side") in _faction_list -}; +//Get all vehicles/Units +private _allvehicles = ("(configName _x) isKindOf 'AllVehicles'" configClasses (configFile >> "CfgVehicles")) apply {configName _x}; +private _allfaction = []; +private _allside = []; +private _allauthor = []; +private _alldlc = []; -_allfaction = _allfaction apply { - private _mod_folder = getText(configfile >> "CfgFactionClasses" >> _x >> "icon") select [if ((getText(configfile >> "CfgFactionClasses" >> _x >> "icon") select [0,1]) isEqualTo "\") then {1} else {0}]; - private _mod = _mod_folder select [0, _mod_folder find "\"]; - if (_mod isEqualTo "") then { - _mod = _x select [0, _x find "_"]; - }; - /*if (_mod isEqualTo "a3") then { - private _modcheck = _x select [0, _x find "_"]; - if !(_modcheck isEqualTo _mod) then { - _mod = _modcheck; +// 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 "_"]; + }; }; - };*/ - [ - _mod - , _x - ] -}; + _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]; +} forEach _allfaction; + +//Select faction depending on side CIV or Enemy +_all = _all select {(_x select 2) in _faction_list && (getNumber(configfile >> "CfgFactionClasses" >> _x select 0 >> "side") in [0,1,2,3])}; +_all sort true; + +//Return the text which be use in param.hpp +private _texts = _all apply {Format ["%3 %4: %1 (Side: %2)", getText(configfile >> "CfgFactionClasses" >> _x select 1 >> "displayName"), [East,West,Independent,Civilian] select (_x select 2), _x select 0, _x select 3]}; -_allfaction sort true; -private _texts = _allfaction apply {Format ["%3: %1 (Side: %2)", getText(configfile >> "CfgFactionClasses" >> _x select 1 >> "displayName"), [East,West,Independent,Civilian] select getNumber(configfile >> "CfgFactionClasses" >> _x select 1 >> "side") , toUpper(_x select 0)]}; -private _allmod = []; -{_allmod pushBackUnique _x} forEach (_allfaction apply {_x select 0}); -_allfaction = _allfaction apply {_x select 1}; +_allauthor = []; +{_allauthor pushBackUnique _x} forEach (_all apply {_x select 0}); private _values = []; -for "_i" from 0 to (count _allfaction) - 1 do { +for "_i" from 0 to (count _all) - 1 do { _values pushBack _i; }; -[_allmod,_texts,_allfaction,_values] \ No newline at end of file +[_allauthor,_texts,_all apply {_x select 1},_values] \ No newline at end of file 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 34e9ca41c..bbbc0ecfb 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 @@ -1,6 +1,7 @@ private _factions = _this select 0; - +private _en_AA = _this select 1; +private _en_tank = _this select 2; private _hq = []; private _enemy_side = []; private _type_units = []; @@ -28,14 +29,14 @@ _hq = [btc_hq_red,btc_hq_blu,btc_hq_green] select getNumber(configfile >> "Cf _factions = _factions select {([east,west,independent,civilian] select getNumber(configfile >> "CfgFactionClasses" >> _x >> "side")) isEqualTo _enemy_side}; //Prevent selecting same side as player side if (_enemy_side isEqualTo btc_player_side) exitWith { - [["IND_G_F"], _this select 1, _this select 2] call btc_fnc_mil_classes; + [["IND_G_F"], _en_AA, _en_tank] call btc_fnc_mil_class; }; { private _faction = _x; //Get all vehicles of the _faction selected - private _allclasse_f = _allclasse select {getText(configFile >> "cfgvehicles" >> _x >> "faction") isEqualTo _faction}; + private _allclasse_f = _allclasse select {(toUpper getText(configFile >> "cfgvehicles" >> _x >> "faction")) isEqualTo _faction}; //Units _divers = _allclasse_f select {!((_x find "diver") isEqualTo -1)}; @@ -46,7 +47,7 @@ if (_enemy_side isEqualTo btc_player_side) exitWith { //Vehicles _type_boats append _allclasse_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 (_this select 2) then { + _type_motorized append (if (_en_tank) then { _allclasse_f select {(_x isKindOf "Tank") || (_x isKindOf "Car") || (_x isKindOf "Truck") || (_x isKindOf "Truck_F")} } else { _allclasse_f select {(_x isKindOf "Car") || (_x isKindOf "Truck") || (_x isKindOf "Truck_F")} @@ -61,7 +62,7 @@ if (_enemy_side isEqualTo btc_player_side) exitWith { } forEach _factions; //Final filter unwanted units type -if !(_this select 1) then { +if !(_en_AA) then { //Remove Anti-Air Units _type_units = _type_units select {(_x find "AA") isEqualTo -1}; }; From 0a97065b1546443864bd61ce96ecc319b0d54727 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 22 Mar 2017 22:11:45 +0100 Subject: [PATCH 038/120] Tweak time --- .../core/def/mission.sqf | 4 ++-- .../core/fnc/city/activate.sqf | 6 +++--- .../core/fnc/common/find_veh_with_turret.sqf | 13 +++++++++---- 3 files changed, 14 insertions(+), 9 deletions(-) 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 dd60e7b02..2e67bc613 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 @@ -238,7 +238,7 @@ btc_supplies_mat = "Land_Cargo20_red_F"; 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; + _btc_rearming_vehicles = [btc_vehicles + btc_helo,[]] call btc_fnc_find_veh_with_turret; _btc_rearming_static = [ @@ -626,7 +626,7 @@ switch (true) do { btc_type_gl = ["O_GMG_01_F","O_GMG_01_high_F"]; } }; -private _veh_armed = [_allclasse select {((_x isKindOf "Air") || (_x isKindOf "Helicopter") || (_x isKindOf "Tank") || (_x isKindOf "Car"))}] call btc_fnc_find_veh_with_turret; +private _veh_armed = [_allclasse 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; btc_type_motorized_armed = _veh_armed select {getText(configFile >> "cfgvehicles" >> _x >> "faction") isEqualTo getText(configFile >> "cfgvehicles" >> btc_type_motorized select (count (btc_type_motorized) -1) >> "faction")}; btc_type_motorized_armed = (btc_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/city/activate.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/activate.sqf index 445054113..8729b14d6 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 @@ -104,7 +104,7 @@ if (_city getVariable ["spawn_more",false]) then { 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 * 1] call CBA_fnc_waitAndExecute; + [{_this call btc_fnc_mil_send}, [_closest,getpos _city,1,selectRandom btc_type_motorized_armed], _i * 2] call CBA_fnc_waitAndExecute; }; }; }; @@ -117,7 +117,7 @@ if !(btc_cache_pos isEqualTo []) then { 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 * 1] call CBA_fnc_waitAndExecute; + [{_this call btc_fnc_mil_send}, [_closest,getpos _city,1,selectRandom btc_type_motorized_armed], _i * 2] call CBA_fnc_waitAndExecute; }; }; }; @@ -150,7 +150,7 @@ if (_has_ho && {!(_city getVariable ["ho_units_spawned",false])}) then { 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 * 1] call CBA_fnc_waitAndExecute; + [{_this call btc_fnc_mil_send}, [_closest,_pos,1,selectRandom btc_type_motorized_armed], _i * 2] call CBA_fnc_waitAndExecute; }; }; }; 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 951c470e4..837b9e896 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 @@ -1,5 +1,5 @@ -private ["_veh_array","_veh_with_turret"]; +private ["_veh_array"]; if ((_this select 0) isEqualTypeAll objNull) then { _veh_array = (_this select 0) apply {typeOf _x}; @@ -7,11 +7,16 @@ if ((_this select 0) isEqualTypeAll objNull) then { _veh_array = _this select 0; }; -_veh_with_turret = []; +private _veh_with_turret = []; { - private _turrets = "true" configClasses (configFile >> "CfgVehicles" >> _x >> "Turrets"); + 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 ({!("CargoTurret" in ([_x,true] call BIS_fnc_returnParents))} count _turrets > 0) then { + if !(_wps isEqualTo []) then { _veh_with_turret pushBackUnique _x; }; } forEach _veh_array; From 4a1d95edaf96f38f9ebc6867dc8e62c51447094b Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 24 Mar 2017 19:13:59 +0100 Subject: [PATCH 039/120] Add: operation trebuchet --- .../core/def/mission.sqf | 4 ++-- =BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) 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 37c304f2d..c403f7eef 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 @@ -161,7 +161,7 @@ btc_city_type = "Land_Ammobox_rounds_F"; //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","CUP_C_CHERNARUS","CUP_C_RU","CUP_C_TK","LIB_CIV","LOP_AFR_CIV","LOP_CHR_CIV","LOP_TAK_CIV","RDS_RUS_CIV"]; //All factions +private _allfaction = ["AFGCIV","CIV_F","BTC_AC","CAF_AG_AFR_CIV","CAF_AG_ME_CIV","CUP_C_CHERNARUS","CUP_C_RU","CUP_C_TK","LIB_CIV","LOP_AFR_CIV","LOP_CHR_CIV","LOP_TAK_CIV","OPTRE_UEG_CIV","RDS_RUS_CIV"]; //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 private _allclasse = [[_p_civ]] call btc_fnc_civ_class; //Create classes from the corresponding factions [_p_civ , "btc_ac"], can combine factions from the SAME side. @@ -455,7 +455,7 @@ btc_player_side = west; btc_respawn_marker = "respawn_west"; // Get all faction from mod there are currently running //copyToClipboard str (["EN"] call btc_fnc_get_class); -private _allfaction = ["BLU_F","BLU_G_F","IND_F","IND_G_F","OPF_F","OPF_G_F","TBAN","BTC_AM","CAF_AG_AFR_P","CAF_AG_EEUR_R","CAF_AG_ME_T","CUP_B_CZ","CUP_B_GER","CUP_B_US_ARMY","CUP_I_NAPA","CUP_I_PMC_ION","CUP_I_RACS","CUP_O_SLA","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","BLU_CTRG_F","BLU_GEN_F","BLU_T_F","IND_C_F","OPF_T_F","FOW_IJA","FOW_UK","FOW_USA","FOW_USMC","FOW_WEHRMACHT","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_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","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","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_NATIONALIST","SG_STURM","SG_STURM_W","SG_STURMPANZER","USML_AIF"]; //All factions +private _allfaction = ["BLU_F","BLU_G_F","IND_F","IND_G_F","OPF_F","OPF_G_F","TBAN","BTC_AM","CAF_AG_AFR_P","CAF_AG_EEUR_R","CAF_AG_ME_T","CUP_B_CZ","CUP_B_GER","CUP_B_US_ARMY","CUP_I_NAPA","CUP_I_PMC_ION","CUP_I_RACS","CUP_O_SLA","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","BLU_CTRG_F","BLU_GEN_F","BLU_T_F","IND_C_F","OPF_T_F","FOW_IJA","FOW_UK","FOW_USA","FOW_USMC","FOW_WEHRMACHT","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_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","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","OPTRE_INS","OPTRE_PD","OPTRE_UNSC","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_NATIONALIST","SG_STURM","SG_STURM_W","SG_STURMPANZER","USML_AIF"]; //All factions _p_en = _allfaction select _p_en; //Select faction selected from mission parameter _allclasse = [[_p_en /*, "IND_F"*/], _p_en_AA, _p_en_tank] call btc_fnc_mil_class; //Create classes from the corresponding factions [_p_en , "IND_F"], you can combine factions from the SAME side. 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 3cedde460..a8703f57f 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 @@ -44,22 +44,22 @@ class Params { class btc_p_en { //paramsArray[6] 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}; - texts[]={" Bohemia Interactive: OTAN (Side: WEST)"," Bohemia Interactive: FIA (Side: WEST)"," Bohemia Interactive: AAF (Side: GUER)"," Bohemia Interactive: FIA (Side: GUER)"," Bohemia Interactive: CSAT (Side: EAST)"," Bohemia Interactive: FIA (Side: EAST)"," EricJ: Taliban (Side: EAST)","btc_militia_mod Giallustio: Afghan Militia (Side: EAST)","CAF CAF MOD TEAM: Africa - Pirates (Side: EAST)","CAF CAF MOD TEAM: East Europe - Rebels (Side: EAST)","CAF CAF MOD TEAM: Middle East - Tribal (Side: EAST)","CUP Community Upgrade Project: Czech Republic (Side: WEST)","CUP Bohemia Interactive: Germany (Side: WEST)","CUP Bohemia Interactive: United States Army (Side: WEST)","CUP Bohemia Interactive: NAPA (Chenarus) (Side: GUER)","CUP $CUP_AUTHOR_STRING: ION PMC (Side: GUER)","CUP Bohemia Interactive: Royal Army Corp of Sahrani (Side: GUER)","CUP Bohemia Interactive: Sahrani Liberation Army (Side: EAST)","CUP Bohemia Interactive: Takistani Army (Side: EAST)","CUP_Units Community Upgrade Project: United Kingdom (Side: WEST)","CUP_Units Bohemia Interactive: Takistani Locals (Side: GUER)","CUP_Units Community Upgrade Project: United Nations (Side: GUER)","CUP_Units Community Upgrade Project: ChDKZ (Chenarus) (Side: EAST)","CUP_Units Bohemia Interactive: Takistani Militia (Side: EAST)","CUP_Vehicles Community Upgrade Project: Chenarus Defense Force (CDF) (Side: WEST)","CUP_Vehicles Community Upgrade Project: Royal New Zealand Navy (Side: WEST)","CUP_Vehicles Community Upgrade Project: United States Marine Corps (Side: WEST)","CUP_Vehicles Community Upgrade Project: Russian Federation (Side: EAST)","Expansion Bohemia Interactive: CTRG (Side: WEST)","Expansion Bohemia Interactive: Gendarmerie (Side: WEST)","Expansion Bohemia Interactive: OTAN (Pacifique) (Side: WEST)","Expansion Bohemia Interactive: Syndikat (Side: GUER)","Expansion Bohemia Interactive: CSAT (Pacifique) (Side: EAST)","FOW Bohemia Interactive: Imperial Japanese Army (Side: WEST)","FOW Bohemia Interactive: UK (Side: GUER)","FOW Bohemia Interactive: US Army (Side: GUER)","FOW Bohemia Interactive: US Marines Corps (Side: GUER)","FOW Bohemia Interactive: Wehrmacht (Side: WEST)","LIB AWAR: ACI (Side: GUER)","LIB AWAR & Lennard: ARR (Side: WEST)","LIB Lennard: Deutsches Afrikakorps (Side: WEST)","LIB AWAR & Joarius: FFI (Side: GUER)","LIB AWAR: Armia Krajowa (Polonais) (Side: GUER)","LIB AWAR: Luftwaffe (Side: WEST)","LIB AWAR & Lennard: [Winter] Luftwaffe (Side: WEST)","LIB AWAR & Lennard: MKHL (Side: WEST)","LIB Lennard: US North African Corps (Side: GUER)","LIB Lennard: NKVD (Side: EAST)","LIB AWAR: Panzerwaffe (Side: WEST)","LIB AWAR & Lennard: [Winter] Panzerwaffe (Side: WEST)","LIB AWAR: RAAF (Side: GUER)","LIB AWAR: RAF (Side: GUER)","LIB AWAR & Lennard: RBAF (Side: WEST)","LIB AWAR: Red Army (Side: EAST)","LIB AWAR & Lennard: [Winter] Red Army (Side: EAST)","LIB LODU: US Army Air Forces (Side: GUER)","LIB AWAR: [Winter] US Airforce (Side: GUER)","LIB LODU: US Army (Side: GUER)","LIB LODU: [Winter] US Army (Side: GUER)","LIB Lennard: US 2nd Ranger Battalion (Side: GUER)","LIB LODU: US Tank Troops (Side: GUER)","LIB AWAR & Lennard: [Winter] US Tank Troops (Side: GUER)","LIB AWAR: USSR Airforce (Side: EAST)","LIB AWAR & Lennard: [Winter] USSR Airforce (Side: EAST)","LIB AWAR: Tank troops of USSR (Side: EAST)","LIB AWAR & Lennard: [Winter] Tank troops of USSR (Side: EAST)","LIB AWAR: Wehrmacht (Side: WEST)","LIB AWAR & Lennard: [Winter] Wehrmacht (Side: WEST)","LOP Project OPFOR: Boko Haram (Side: EAST)","LOP Project OPFOR: Irish Republican Army (Side: EAST)","LOP Project OPFOR: Ulster Volunteer Force (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Afghan National Army and Police (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: African Militia (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: African Militia (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Chernarussian Defence Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: ChDKZ (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Iraqi Armed Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: Iranian Armed Forces (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Chernarussian National Insurgents (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Private Military Company (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Royal Army Corps of Sahrani (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Sahrani Liberation Army (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Takistani Armed Forces (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Ultranationalists (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Ukraine's Armed Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: United Nations (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: United Armed Forces of Novorossiya (Side: EAST)","RHS_AFRF Red Hammer Studios: Eastern Militia (Side: GUER)","RHS_AFRF Red Hammer Studios: Russia (MSV) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (RVA) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (TV) (Side: EAST)","RHS_AFRF Bohemia Interactive: Russia (VDV) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VMF) (Side: EAST)","RHS_AFRF RHS: Russia (VPVO) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VV) (Side: EAST)","RHS_AFRF Bohemia Interactive: Russia (VVS - Grey) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VVS - Camo) (Side: EAST)","RHS_GREF Red Hammer Studios: Chernarus (Air Force) (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (Air Force) (Side: WEST)","RHS_GREF RHS (A2 port): Chernarus (Ground Forces) (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (Ground Forces) (Side: WEST)","RHS_GREF Red Hammer Studios: Chernarus (National Guard) (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (National Guard) (Side: WEST)","RHS_GREF Red Hammer Studios: ChDKZ Insurgents (Side: EAST)","RHS_GREF Red Hammer Studios: ChDKZ Insurgents (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (U.N. Peacekeepers) (Side: GUER)","RHS_SAF Red Hammer Studios: SAF (RVIPVO) (Side: GUER)","RHS_SAF Red Hammer Studios: SAF (KOV) (Side: GUER)","RHS_SAF Red Hammer Studios: SAF (Casques Bleus) (Side: GUER)","RHS_USAF Red Hammer Studios: USA (SOCOM) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (USAF) (Side: WEST)","RHS_USAF RHS (A2 port): USA (Army - D) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (Army - W) (Side: WEST)","RHS_USAF RHS (A2 port): USA (USMC - D) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (USMC - W) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (Navy) (Side: WEST)","RHSGREF Red Hammer Studios: Nationalist Troops (Side: GUER)","SG Stagler: Sturmtroopers (Side: WEST)","SG Stagler: [Winter] Sturmtroopers (Side: WEST)","SG Stagler: Tank Sturmtroopers (Side: WEST)","USML segen: Armed Islamic Front (Side: GUER)"}; + 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}; + texts[]={" Bohemia Interactive: OTAN (Side: WEST)"," Bohemia Interactive: FIA (Side: WEST)"," Bohemia Interactive: AAF (Side: GUER)"," Bohemia Interactive: FIA (Side: GUER)"," Bohemia Interactive: CSAT (Side: EAST)"," Bohemia Interactive: FIA (Side: EAST)"," EricJ: Taliban (Side: EAST)","btc_militia_mod Giallustio: Afghan Militia (Side: EAST)","CAF CAF MOD TEAM: Africa - Pirates (Side: EAST)","CAF CAF MOD TEAM: East Europe - Rebels (Side: EAST)","CAF CAF MOD TEAM: Middle East - Tribal (Side: EAST)","CUP Community Upgrade Project: Czech Republic (Side: WEST)","CUP Bohemia Interactive: Germany (Side: WEST)","CUP Bohemia Interactive: United States Army (Side: WEST)","CUP Bohemia Interactive: NAPA (Chenarus) (Side: GUER)","CUP $CUP_AUTHOR_STRING: ION PMC (Side: GUER)","CUP Bohemia Interactive: Royal Army Corp of Sahrani (Side: GUER)","CUP Bohemia Interactive: Sahrani Liberation Army (Side: EAST)","CUP Bohemia Interactive: Takistani Army (Side: EAST)","CUP_Units Community Upgrade Project: United Kingdom (Side: WEST)","CUP_Units Bohemia Interactive: Takistani Locals (Side: GUER)","CUP_Units Community Upgrade Project: United Nations (Side: GUER)","CUP_Units Community Upgrade Project: ChDKZ (Chenarus) (Side: EAST)","CUP_Units Bohemia Interactive: Takistani Militia (Side: EAST)","CUP_Vehicles Community Upgrade Project: Chenarus Defense Force (CDF) (Side: WEST)","CUP_Vehicles Community Upgrade Project: Royal New Zealand Navy (Side: WEST)","CUP_Vehicles Community Upgrade Project: United States Marine Corps (Side: WEST)","CUP_Vehicles Community Upgrade Project: Russian Federation (Side: EAST)","Expansion Bohemia Interactive: CTRG (Side: WEST)","Expansion Bohemia Interactive: Gendarmerie (Side: WEST)","Expansion Bohemia Interactive: OTAN (Pacifique) (Side: WEST)","Expansion Bohemia Interactive: Syndikat (Side: GUER)","Expansion Bohemia Interactive: CSAT (Pacifique) (Side: EAST)","FOW Bohemia Interactive: Imperial Japanese Army (Side: WEST)","FOW Bohemia Interactive: UK (Side: GUER)","FOW Bohemia Interactive: US Army (Side: GUER)","FOW Bohemia Interactive: US Marines Corps (Side: GUER)","FOW Bohemia Interactive: Wehrmacht (Side: WEST)","LIB AWAR: ACI (Side: GUER)","LIB AWAR & Lennard: ARR (Side: WEST)","LIB Lennard: Deutsches Afrikakorps (Side: WEST)","LIB AWAR & Joarius: FFI (Side: GUER)","LIB AWAR: Armia Krajowa (Polonais) (Side: GUER)","LIB AWAR: Luftwaffe (Side: WEST)","LIB AWAR & Lennard: [Winter] Luftwaffe (Side: WEST)","LIB AWAR & Lennard: MKHL (Side: WEST)","LIB Lennard: US North African Corps (Side: GUER)","LIB Lennard: NKVD (Side: EAST)","LIB AWAR: Panzerwaffe (Side: WEST)","LIB AWAR & Lennard: [Winter] Panzerwaffe (Side: WEST)","LIB AWAR: RAAF (Side: GUER)","LIB AWAR: RAF (Side: GUER)","LIB AWAR & Lennard: RBAF (Side: WEST)","LIB AWAR: Red Army (Side: EAST)","LIB AWAR & Lennard: [Winter] Red Army (Side: EAST)","LIB LODU: US Army Air Forces (Side: GUER)","LIB AWAR: [Winter] US Airforce (Side: GUER)","LIB AWAR: US Army (Side: GUER)","LIB LODU: [Winter] US Army (Side: GUER)","LIB Lennard: US 2nd Ranger Battalion (Side: GUER)","LIB I44: US Tank Troops (Side: GUER)","LIB AWAR & Lennard: [Winter] US Tank Troops (Side: GUER)","LIB AWAR: USSR Airforce (Side: EAST)","LIB AWAR & Lennard: [Winter] USSR Airforce (Side: EAST)","LIB AWAR: Tank troops of USSR (Side: EAST)","LIB AWAR & Lennard: [Winter] Tank troops of USSR (Side: EAST)","LIB AWAR: Wehrmacht (Side: WEST)","LIB AWAR & Lennard: [Winter] Wehrmacht (Side: WEST)","LOP Project OPFOR: Boko Haram (Side: EAST)","LOP Project OPFOR: Irish Republican Army (Side: EAST)","LOP Project OPFOR: Ulster Volunteer Force (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Afghan National Army and Police (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: African Militia (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: African Militia (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Chernarussian Defence Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: ChDKZ (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Iraqi Armed Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: Iranian Armed Forces (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Chernarussian National Insurgents (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Private Military Company (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Royal Army Corps of Sahrani (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Sahrani Liberation Army (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Takistani Armed Forces (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Ultranationalists (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Ukraine's Armed Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: United Nations (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: United Armed Forces of Novorossiya (Side: EAST)","OPTRE Article 2 Studios: Insurrectionists (Side: EAST)","OPTRE Article 2 Studios: Colonial Police (Side: GUER)","OPTRE Article 2 Studios: UNSCDF (Side: WEST)","RHS_AFRF Red Hammer Studios: Eastern Militia (Side: GUER)","RHS_AFRF Red Hammer Studios: Russia (MSV) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (RVA) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (TV) (Side: EAST)","RHS_AFRF Bohemia Interactive: Russia (VDV) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VMF) (Side: EAST)","RHS_AFRF RHS: Russia (VPVO) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VV) (Side: EAST)","RHS_AFRF Bohemia Interactive: Russia (VVS - Grey) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VVS - Camo) (Side: EAST)","RHS_GREF Red Hammer Studios: Chernarus (Air Force) (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (Air Force) (Side: WEST)","RHS_GREF RHS (A2 port): Chernarus (Ground Forces) (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (Ground Forces) (Side: WEST)","RHS_GREF Red Hammer Studios: Chernarus (National Guard) (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (National Guard) (Side: WEST)","RHS_GREF Red Hammer Studios: ChDKZ Insurgents (Side: EAST)","RHS_GREF Red Hammer Studios: ChDKZ Insurgents (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (U.N. Peacekeepers) (Side: GUER)","RHS_SAF Red Hammer Studios: SAF (RVIPVO) (Side: GUER)","RHS_SAF Red Hammer Studios: SAF (KOV) (Side: GUER)","RHS_SAF Red Hammer Studios: SAF (Casques Bleus) (Side: GUER)","RHS_USAF Red Hammer Studios: USA (SOCOM) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (USAF) (Side: WEST)","RHS_USAF RHS (A2 port): USA (Army - D) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (Army - W) (Side: WEST)","RHS_USAF RHS (A2 port): USA (USMC - D) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (USMC - W) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (Navy) (Side: WEST)","RHSGREF Red Hammer Studios: Nationalist Troops (Side: GUER)","SG Stagler: Sturmtroopers (Side: WEST)","SG Stagler: [Winter] Sturmtroopers (Side: WEST)","SG Stagler: Tank Sturmtroopers (Side: WEST)","USML segen: Armed Islamic Front (Side: GUER)"}; default = 3; }; class btc_p_civ { //paramsArray[7] title = " Civil type:"; - values[]={0,1,2,3,4,5,6,7,8,9,10,11,12}; - texts[]={" EricJ: Afghan Civilians (Side: CIV)"," Bohemia Interactive: Civils (Side: CIV)","btc_militia_mod Giallustio: Afghan Civilians (Side: CIV)","CAF CAF MOD TEAM: African (Side: CIV)","CAF CAF MOD TEAM: Middle Eastern (Side: CIV)","CUP Bohemia Interactive: Civilians (Chenarus) (Side: CIV)","CUP_Units Community Upgrade Project: Civilians (Russian) (Side: CIV)","CUP_Vehicles Community Upgrade Project: Civilians (Takistan) (Side: CIV)","LIB Reyhard & Joarius: 40s Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: African Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Eastern European Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Civilians (Side: CIV)","RDS_CIV_PACK reyhard: Russians (Side: CIV)"}; + values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13}; + texts[]={" EricJ: Afghan Civilians (Side: CIV)"," Bohemia Interactive: Civils (Side: CIV)","btc_militia_mod Giallustio: Afghan Civilians (Side: CIV)","CAF CAF MOD TEAM: African (Side: CIV)","CAF CAF MOD TEAM: Middle Eastern (Side: CIV)","CUP Bohemia Interactive: Civilians (Chenarus) (Side: CIV)","CUP_Units Community Upgrade Project: Civilians (Russian) (Side: CIV)","CUP_Vehicles Community Upgrade Project: Civilians (Takistan) (Side: CIV)","LIB Reyhard & Joarius: 40s Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: African Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Eastern European Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Civilians (Side: CIV)","OPTRE Article 2 Studios: Civilians (UEG) (Side: CIV)","RDS_CIV_PACK reyhard: Russians (Side: CIV)"}; default = 1; }; class btc_p_civ_veh { //paramsArray[8] title = " Civil vehicle type:"; - values[]={0,1,2,3,4,5,6,7,8,9,10,11,12}; - texts[]={" EricJ: Afghan Civilians (Side: CIV)"," Bohemia Interactive: Civils (Side: CIV)","btc_militia_mod Giallustio: Afghan Civilians (Side: CIV)","CAF CAF MOD TEAM: African (Side: CIV)","CAF CAF MOD TEAM: Middle Eastern (Side: CIV)","CUP Bohemia Interactive: Civilians (Chenarus) (Side: CIV)","CUP_Units Community Upgrade Project: Civilians (Russian) (Side: CIV)","CUP_Vehicles Community Upgrade Project: Civilians (Takistan) (Side: CIV)","LIB Reyhard & Joarius: 40s Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: African Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Eastern European Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Civilians (Side: CIV)","RDS_CIV_PACK reyhard: Russians (Side: CIV)"}; + values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13}; + texts[]={" EricJ: Afghan Civilians (Side: CIV)"," Bohemia Interactive: Civils (Side: CIV)","btc_militia_mod Giallustio: Afghan Civilians (Side: CIV)","CAF CAF MOD TEAM: African (Side: CIV)","CAF CAF MOD TEAM: Middle Eastern (Side: CIV)","CUP Bohemia Interactive: Civilians (Chenarus) (Side: CIV)","CUP_Units Community Upgrade Project: Civilians (Russian) (Side: CIV)","CUP_Vehicles Community Upgrade Project: Civilians (Takistan) (Side: CIV)","LIB Reyhard & Joarius: 40s Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: African Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Eastern European Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Civilians (Side: CIV)","OPTRE Article 2 Studios: Civilians (UEG) (Side: CIV)","RDS_CIV_PACK reyhard: Russians (Side: CIV)"}; default = 1; }; class btc_p_IED_title { From 049422d7ad0a3f4401c5856568797073b4a5ad8e Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 25 Mar 2017 18:04:58 +0100 Subject: [PATCH 040/120] Add: side mission hack --- .../core/fnc/compile.sqf | 1 + .../core/fnc/mil/send.sqf | 12 +- .../core/fnc/side/hack.sqf | 132 ++++++++++++++++++ .../core/fnc/task/create.sqf | 5 + .../core/fnc/task/fail.sqf | 4 + .../core/fnc/task/set_done.sqf | 3 + 6 files changed, 152 insertions(+), 5 deletions(-) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hack.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index f93ae59e6..0422b630f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -126,6 +126,7 @@ if (isServer) then { btc_fnc_side_rescue = compile preprocessFileLineNumbers "core\fnc\side\rescue.sqf"; btc_fnc_side_capture_officer = compile preprocessFileLineNumbers "core\fnc\side\capture_officer.sqf"; btc_fnc_side_hostage = compile preprocessFileLineNumbers "core\fnc\side\hostage.sqf"; + btc_fnc_side_hack = compile preprocessFileLineNumbers "core\fnc\side\hack.sqf"; //LOG btc_fnc_log_getconfigmagazines = compile preprocessFile "core\fnc\log\getconfigmagazines.sqf"; 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 78444b451..abc94a6b8 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 @@ -12,10 +12,10 @@ switch (typeName (_this select 1)) do { case "OBJECT": {_dest = getPos (_this select 1);}; }; - +private ["_group"]; switch (_this select 2) do { case 0 : { - private ["_group","_wp_0","_wp"]; + 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); }; @@ -29,8 +29,8 @@ switch (_this select 2) do { _wp setWaypointStatements ["true", "(group this) spawn btc_fnc_data_add_group;"]; }; case 1 : { - private ["_group","_veh_type","_return_pos","_veh","_gunner","_commander","_cargo","_wp","_wp_1","_wp_3"]; - _group = createGroup btc_enemy_side; + 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}; @@ -66,4 +66,6 @@ switch (_this select 2) do { //Check if HC is connected if !((entities "HeadlessClient_F") isEqualTo []) then { [_group] call btc_fnc_set_groupowner; -}; \ No newline at end of file +}; + +_group \ No newline at end of file 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 new file mode 100644 index 000000000..247723b4a --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hack.sqf @@ -0,0 +1,132 @@ +//https://forums.bistudio.com/forums/topic/186316-how-to-open-the-land_dataterminal_01_f-data-terminal-nexus-update/ +//http://killzonekid.com/arma-scripting-tutorials-uav-r2t-and-pip/ +//http://killzonekid.com/arma-scripting-tutorials-scripted-charges/ + +private ["_useful","_city","_pos","_road","_roads","_marker","_statics","_tower_type","_tower","_direction","_area","_power_type","_cord_type","_btc_composition","_btc_composition_tower"]; + +_useful = btc_city_all select {(_x getVariable ["occupied",false] && {_x getVariable ["type",""] != "NameLocal"} && {_x getVariable ["type",""] != "Hill"} && (_x getVariable ["type",""] != "NameMarine"))}; + +if (_useful isEqualTo []) exitWith {[] spawn btc_fnc_side_create;}; + +_city = selectRandom _useful; + +_pos = [getPos _city, 100] call btc_fnc_randomize_pos; + +_roads = _pos nearRoads 100; +_roads = _roads select {isOnRoad _x}; +if (_roads isEqualTo []) exitWith {[] spawn btc_fnc_side_create;}; +_road = selectRandom _roads; +_pos = getPos _road; +_direction = [_road] call btc_fnc_road_direction; + +btc_side_aborted = false; +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; + +btc_side_jip_data = [16,_pos,_city getVariable "name"]; + +_city setVariable ["spawn_more",true]; + +_area = createmarker [format ["sm_%1",_pos],_pos]; +_area setMarkerShape "ELLIPSE"; +_area setMarkerBrush "SolidBorder"; +_area setMarkerSize [30, 30]; +_area setMarkerAlpha 0.3; +_area setmarkercolor "colorBlue"; + +_marker = createmarker [format ["sm_2_%1",_pos],_pos]; +_marker setmarkertype "hd_flag"; +_marker setmarkertext "Radio Tower"; +_marker setMarkerSize [0.6, 0.6]; + +//// Create terminal \\\\ +_terminal = createVehicle ["Land_DataTerminal_01_F", _pos, [], 0, "CAN_COLLIDE"]; +btc_side_hack_start = false; +_pos = [[_pos, 100] call btc_fnc_randomize_pos, 50, 500, 30, 0, 60 * (pi / 180), 0] call BIS_fnc_findSafePos; +_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_hack_start = true} remoteExec ["call", 0]; + },{true}] call ace_interact_menu_fnc_createAction; + [_this select 0, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToObject; + +}] remoteExec ["call", 2];//-2 + +waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || btc_side_hack_start)}; + +_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); +}; + +_terminal setObjectTexture [0, "#(argb,512,512,1)r2t(uavrtt,1)"]; + +/* create camera and stream to render surface */ +_cam = "camera" camCreate (_launchsite modelToWorld [0,100,10]); +_cam cameraEffect ["Internal", "Back", "uavrtt"]; + +_y = -180; _p = 50; _r = 0; +_cam setVectorDirAndUp [ + [ sin _y * cos _p,cos _y * cos _p,sin _p], + [ [ sin _r,-sin _p,cos _r * cos _p],-_y] call BIS_fnc_rotateVector2D +]; + +{player commandChat "Defend the terminal until it is hacked!"} remoteExec ["call", -2]; + +waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || ({_x isEqualTo grpNull} count _groups > 0))}; + +//// Launch to hacked missile \\\\ +private _altitude = 20; +while {_altitude < 400} do { + _altitude = _altitude + 1.5; + (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"]; +_fx attachTo [_rocket,[0,0,0]]; + +btc_side_hack_start = false; +{deletemarker _x} foreach [_area,_marker]; + +if (btc_side_aborted || btc_side_failed ) exitWith { + {16 call btc_fnc_task_fail} remoteExec ["call", 0]; + btc_side_assigned = false;publicVariable "btc_side_assigned"; + [_fx] spawn { + waitUntil {sleep 5; ({_x distance (_this select 0) < 500} count playableUnits == 0)}; + (_this select 0) call btc_fnc_deleteTestObj; + deleteVehicle (_this select 0); + }; + { + [_x] spawn { + waitUntil {sleep 5; ({_x distance (_this select 0) < 500} count playableUnits == 0)}; + deleteVehicle (_this select 0); + }; + } forEach [_rocket, _terminal]; +}; + +80 call btc_fnc_rep_change; + +{16 call btc_fnc_task_set_done} remoteExec ["call", 0]; + +[_fx] spawn { + waitUntil {sleep 5; ({_x distance (_this select 0) < 500} count playableUnits == 0)}; + (_this select 0) call btc_fnc_deleteTestObj; + deleteVehicle (_this select 0); +}; +{ + [_x] spawn { + waitUntil {sleep 5; ({_x distance (_this select 0) < 500} count playableUnits == 0)}; + deleteVehicle (_this select 0); + }; +} forEach [_rocket, _terminal]; + +btc_side_assigned = false;publicVariable "btc_side_assigned"; \ No newline at end of file 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 a1e36b4b1..5ea9b88f8 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 @@ -95,6 +95,11 @@ switch (_this select 0) do _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 in %1. Defend your position until the process is done!",_location],("Hack missile near " + _location),("Hack missile near " + _location)]; + _type = "intel"; + }; }; [btc_player_side,[str(_this select 0)],_description,_destination,true,2,true,_type,true] call BIS_fnc_taskCreate; \ No newline at end of file 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 860b229a2..c76cc8dca 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 @@ -57,5 +57,9 @@ switch _this do { _description = ["Side mission failed!","The hostage has not been liberated"]; }; + case 16 : + { + _description = ["Side mission failed!","The missile has not been 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 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 3fa5bdbb6..93e7e021b 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 @@ -56,5 +56,8 @@ switch _this do case 15 : { _description = ["Side mission Accomplished!","The hostage has been liberated!"]; }; + case 16 : { + _description = ["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 From 0fd5b4e72434d32ed19bd4c2c296b8874a7faf31 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 25 Mar 2017 18:45:10 +0100 Subject: [PATCH 041/120] Add: unsung --- .../core/def/mission.sqf | 4 ++-- =BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) 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 c403f7eef..33dd2bd54 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 @@ -161,7 +161,7 @@ btc_city_type = "Land_Ammobox_rounds_F"; //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","CUP_C_CHERNARUS","CUP_C_RU","CUP_C_TK","LIB_CIV","LOP_AFR_CIV","LOP_CHR_CIV","LOP_TAK_CIV","OPTRE_UEG_CIV","RDS_RUS_CIV"]; //All factions +private _allfaction = ["AFGCIV","CIV_F","BTC_AC","CAF_AG_AFR_CIV","CAF_AG_ME_CIV","CUP_C_CHERNARUS","CUP_C_RU","CUP_C_TK","LIB_CIV","LOP_AFR_CIV","LOP_CHR_CIV","LOP_TAK_CIV","OPTRE_UEG_CIV","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 private _allclasse = [[_p_civ]] call btc_fnc_civ_class; //Create classes from the corresponding factions [_p_civ , "btc_ac"], can combine factions from the SAME side. @@ -455,7 +455,7 @@ btc_player_side = west; btc_respawn_marker = "respawn_west"; // Get all faction from mod there are currently running //copyToClipboard str (["EN"] call btc_fnc_get_class); -private _allfaction = ["BLU_F","BLU_G_F","IND_F","IND_G_F","OPF_F","OPF_G_F","TBAN","BTC_AM","CAF_AG_AFR_P","CAF_AG_EEUR_R","CAF_AG_ME_T","CUP_B_CZ","CUP_B_GER","CUP_B_US_ARMY","CUP_I_NAPA","CUP_I_PMC_ION","CUP_I_RACS","CUP_O_SLA","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","BLU_CTRG_F","BLU_GEN_F","BLU_T_F","IND_C_F","OPF_T_F","FOW_IJA","FOW_UK","FOW_USA","FOW_USMC","FOW_WEHRMACHT","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_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","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","OPTRE_INS","OPTRE_PD","OPTRE_UNSC","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_NATIONALIST","SG_STURM","SG_STURM_W","SG_STURMPANZER","USML_AIF"]; //All factions +private _allfaction = ["BLU_F","BLU_G_F","IND_F","IND_G_F","OPF_F","OPF_G_F","TBAN","UNSUNG","BTC_AM","CAF_AG_AFR_P","CAF_AG_EEUR_R","CAF_AG_ME_T","CUP_B_CZ","CUP_B_GER","CUP_B_US_ARMY","CUP_I_NAPA","CUP_I_PMC_ION","CUP_I_RACS","CUP_O_SLA","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","BLU_CTRG_F","BLU_GEN_F","BLU_T_F","IND_C_F","OPF_T_F","FOW_IJA","FOW_UK","FOW_USA","FOW_USMC","FOW_WEHRMACHT","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_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","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","OPTRE_INS","OPTRE_PD","OPTRE_UNSC","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_NATIONALIST","SG_STURM","SG_STURM_W","SG_STURMPANZER","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 /*, "IND_F"*/], _p_en_AA, _p_en_tank] call btc_fnc_mil_class; //Create classes from the corresponding factions [_p_en , "IND_F"], you can combine factions from the SAME side. 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 a8703f57f..8dac8cfb3 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 @@ -44,22 +44,22 @@ class Params { class btc_p_en { //paramsArray[6] 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}; - texts[]={" Bohemia Interactive: OTAN (Side: WEST)"," Bohemia Interactive: FIA (Side: WEST)"," Bohemia Interactive: AAF (Side: GUER)"," Bohemia Interactive: FIA (Side: GUER)"," Bohemia Interactive: CSAT (Side: EAST)"," Bohemia Interactive: FIA (Side: EAST)"," EricJ: Taliban (Side: EAST)","btc_militia_mod Giallustio: Afghan Militia (Side: EAST)","CAF CAF MOD TEAM: Africa - Pirates (Side: EAST)","CAF CAF MOD TEAM: East Europe - Rebels (Side: EAST)","CAF CAF MOD TEAM: Middle East - Tribal (Side: EAST)","CUP Community Upgrade Project: Czech Republic (Side: WEST)","CUP Bohemia Interactive: Germany (Side: WEST)","CUP Bohemia Interactive: United States Army (Side: WEST)","CUP Bohemia Interactive: NAPA (Chenarus) (Side: GUER)","CUP $CUP_AUTHOR_STRING: ION PMC (Side: GUER)","CUP Bohemia Interactive: Royal Army Corp of Sahrani (Side: GUER)","CUP Bohemia Interactive: Sahrani Liberation Army (Side: EAST)","CUP Bohemia Interactive: Takistani Army (Side: EAST)","CUP_Units Community Upgrade Project: United Kingdom (Side: WEST)","CUP_Units Bohemia Interactive: Takistani Locals (Side: GUER)","CUP_Units Community Upgrade Project: United Nations (Side: GUER)","CUP_Units Community Upgrade Project: ChDKZ (Chenarus) (Side: EAST)","CUP_Units Bohemia Interactive: Takistani Militia (Side: EAST)","CUP_Vehicles Community Upgrade Project: Chenarus Defense Force (CDF) (Side: WEST)","CUP_Vehicles Community Upgrade Project: Royal New Zealand Navy (Side: WEST)","CUP_Vehicles Community Upgrade Project: United States Marine Corps (Side: WEST)","CUP_Vehicles Community Upgrade Project: Russian Federation (Side: EAST)","Expansion Bohemia Interactive: CTRG (Side: WEST)","Expansion Bohemia Interactive: Gendarmerie (Side: WEST)","Expansion Bohemia Interactive: OTAN (Pacifique) (Side: WEST)","Expansion Bohemia Interactive: Syndikat (Side: GUER)","Expansion Bohemia Interactive: CSAT (Pacifique) (Side: EAST)","FOW Bohemia Interactive: Imperial Japanese Army (Side: WEST)","FOW Bohemia Interactive: UK (Side: GUER)","FOW Bohemia Interactive: US Army (Side: GUER)","FOW Bohemia Interactive: US Marines Corps (Side: GUER)","FOW Bohemia Interactive: Wehrmacht (Side: WEST)","LIB AWAR: ACI (Side: GUER)","LIB AWAR & Lennard: ARR (Side: WEST)","LIB Lennard: Deutsches Afrikakorps (Side: WEST)","LIB AWAR & Joarius: FFI (Side: GUER)","LIB AWAR: Armia Krajowa (Polonais) (Side: GUER)","LIB AWAR: Luftwaffe (Side: WEST)","LIB AWAR & Lennard: [Winter] Luftwaffe (Side: WEST)","LIB AWAR & Lennard: MKHL (Side: WEST)","LIB Lennard: US North African Corps (Side: GUER)","LIB Lennard: NKVD (Side: EAST)","LIB AWAR: Panzerwaffe (Side: WEST)","LIB AWAR & Lennard: [Winter] Panzerwaffe (Side: WEST)","LIB AWAR: RAAF (Side: GUER)","LIB AWAR: RAF (Side: GUER)","LIB AWAR & Lennard: RBAF (Side: WEST)","LIB AWAR: Red Army (Side: EAST)","LIB AWAR & Lennard: [Winter] Red Army (Side: EAST)","LIB LODU: US Army Air Forces (Side: GUER)","LIB AWAR: [Winter] US Airforce (Side: GUER)","LIB AWAR: US Army (Side: GUER)","LIB LODU: [Winter] US Army (Side: GUER)","LIB Lennard: US 2nd Ranger Battalion (Side: GUER)","LIB I44: US Tank Troops (Side: GUER)","LIB AWAR & Lennard: [Winter] US Tank Troops (Side: GUER)","LIB AWAR: USSR Airforce (Side: EAST)","LIB AWAR & Lennard: [Winter] USSR Airforce (Side: EAST)","LIB AWAR: Tank troops of USSR (Side: EAST)","LIB AWAR & Lennard: [Winter] Tank troops of USSR (Side: EAST)","LIB AWAR: Wehrmacht (Side: WEST)","LIB AWAR & Lennard: [Winter] Wehrmacht (Side: WEST)","LOP Project OPFOR: Boko Haram (Side: EAST)","LOP Project OPFOR: Irish Republican Army (Side: EAST)","LOP Project OPFOR: Ulster Volunteer Force (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Afghan National Army and Police (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: African Militia (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: African Militia (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Chernarussian Defence Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: ChDKZ (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Iraqi Armed Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: Iranian Armed Forces (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Chernarussian National Insurgents (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Private Military Company (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Royal Army Corps of Sahrani (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Sahrani Liberation Army (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Takistani Armed Forces (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Ultranationalists (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Ukraine's Armed Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: United Nations (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: United Armed Forces of Novorossiya (Side: EAST)","OPTRE Article 2 Studios: Insurrectionists (Side: EAST)","OPTRE Article 2 Studios: Colonial Police (Side: GUER)","OPTRE Article 2 Studios: UNSCDF (Side: WEST)","RHS_AFRF Red Hammer Studios: Eastern Militia (Side: GUER)","RHS_AFRF Red Hammer Studios: Russia (MSV) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (RVA) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (TV) (Side: EAST)","RHS_AFRF Bohemia Interactive: Russia (VDV) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VMF) (Side: EAST)","RHS_AFRF RHS: Russia (VPVO) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VV) (Side: EAST)","RHS_AFRF Bohemia Interactive: Russia (VVS - Grey) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VVS - Camo) (Side: EAST)","RHS_GREF Red Hammer Studios: Chernarus (Air Force) (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (Air Force) (Side: WEST)","RHS_GREF RHS (A2 port): Chernarus (Ground Forces) (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (Ground Forces) (Side: WEST)","RHS_GREF Red Hammer Studios: Chernarus (National Guard) (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (National Guard) (Side: WEST)","RHS_GREF Red Hammer Studios: ChDKZ Insurgents (Side: EAST)","RHS_GREF Red Hammer Studios: ChDKZ Insurgents (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (U.N. Peacekeepers) (Side: GUER)","RHS_SAF Red Hammer Studios: SAF (RVIPVO) (Side: GUER)","RHS_SAF Red Hammer Studios: SAF (KOV) (Side: GUER)","RHS_SAF Red Hammer Studios: SAF (Casques Bleus) (Side: GUER)","RHS_USAF Red Hammer Studios: USA (SOCOM) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (USAF) (Side: WEST)","RHS_USAF RHS (A2 port): USA (Army - D) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (Army - W) (Side: WEST)","RHS_USAF RHS (A2 port): USA (USMC - D) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (USMC - W) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (Navy) (Side: WEST)","RHSGREF Red Hammer Studios: Nationalist Troops (Side: GUER)","SG Stagler: Sturmtroopers (Side: WEST)","SG Stagler: [Winter] Sturmtroopers (Side: WEST)","SG Stagler: Tank Sturmtroopers (Side: WEST)","USML segen: Armed Islamic Front (Side: GUER)"}; + 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}; + texts[]={" Bohemia Interactive: OTAN (Side: WEST)"," Bohemia Interactive: FIA (Side: WEST)"," Bohemia Interactive: AAF (Side: GUER)"," Bohemia Interactive: FIA (Side: GUER)"," Bohemia Interactive: CSAT (Side: EAST)"," Bohemia Interactive: FIA (Side: EAST)"," EricJ: Taliban (Side: EAST)"," Bohemia Interactive: (Side: WEST)","btc_militia_mod Giallustio: Afghan Militia (Side: EAST)","CAF CAF MOD TEAM: Africa - Pirates (Side: EAST)","CAF CAF MOD TEAM: East Europe - Rebels (Side: EAST)","CAF CAF MOD TEAM: Middle East - Tribal (Side: EAST)","CUP Community Upgrade Project: Czech Republic (Side: WEST)","CUP Bohemia Interactive: Germany (Side: WEST)","CUP Bohemia Interactive: United States Army (Side: WEST)","CUP Bohemia Interactive: NAPA (Chenarus) (Side: GUER)","CUP $CUP_AUTHOR_STRING: ION PMC (Side: GUER)","CUP Bohemia Interactive: Royal Army Corp of Sahrani (Side: GUER)","CUP Bohemia Interactive: Sahrani Liberation Army (Side: EAST)","CUP Bohemia Interactive: Takistani Army (Side: EAST)","CUP_Units Community Upgrade Project: United Kingdom (Side: WEST)","CUP_Units Bohemia Interactive: Takistani Locals (Side: GUER)","CUP_Units Community Upgrade Project: United Nations (Side: GUER)","CUP_Units Community Upgrade Project: ChDKZ (Chenarus) (Side: EAST)","CUP_Units Bohemia Interactive: Takistani Militia (Side: EAST)","CUP_Vehicles Community Upgrade Project: Chenarus Defense Force (CDF) (Side: WEST)","CUP_Vehicles Community Upgrade Project: Royal New Zealand Navy (Side: WEST)","CUP_Vehicles Community Upgrade Project: United States Marine Corps (Side: WEST)","CUP_Vehicles Community Upgrade Project: Russian Federation (Side: EAST)","Expansion Bohemia Interactive: CTRG (Side: WEST)","Expansion Bohemia Interactive: Gendarmerie (Side: WEST)","Expansion Bohemia Interactive: OTAN (Pacifique) (Side: WEST)","Expansion Bohemia Interactive: Syndikat (Side: GUER)","Expansion Bohemia Interactive: CSAT (Pacifique) (Side: EAST)","FOW Bohemia Interactive: Imperial Japanese Army (Side: WEST)","FOW Bohemia Interactive: UK (Side: GUER)","FOW Bohemia Interactive: US Army (Side: GUER)","FOW Bohemia Interactive: US Marines Corps (Side: GUER)","FOW Bohemia Interactive: Wehrmacht (Side: WEST)","LIB AWAR: ACI (Side: GUER)","LIB AWAR & Lennard: ARR (Side: WEST)","LIB Lennard: Deutsches Afrikakorps (Side: WEST)","LIB AWAR & Joarius: FFI (Side: GUER)","LIB AWAR: Armia Krajowa (Polonais) (Side: GUER)","LIB AWAR: Luftwaffe (Side: WEST)","LIB AWAR & Lennard: [Winter] Luftwaffe (Side: WEST)","LIB AWAR & Lennard: MKHL (Side: WEST)","LIB Lennard: US North African Corps (Side: GUER)","LIB Lennard: NKVD (Side: EAST)","LIB AWAR: Panzerwaffe (Side: WEST)","LIB AWAR & Lennard: [Winter] Panzerwaffe (Side: WEST)","LIB AWAR: RAAF (Side: GUER)","LIB AWAR: RAF (Side: GUER)","LIB AWAR & Lennard: RBAF (Side: WEST)","LIB AWAR: Red Army (Side: EAST)","LIB AWAR & Lennard: [Winter] Red Army (Side: EAST)","LIB LODU: US Army Air Forces (Side: GUER)","LIB AWAR: [Winter] US Airforce (Side: GUER)","LIB AWAR: US Army (Side: GUER)","LIB LODU: [Winter] US Army (Side: GUER)","LIB Lennard: US 2nd Ranger Battalion (Side: GUER)","LIB I44: US Tank Troops (Side: GUER)","LIB AWAR & Lennard: [Winter] US Tank Troops (Side: GUER)","LIB AWAR: USSR Airforce (Side: EAST)","LIB AWAR & Lennard: [Winter] USSR Airforce (Side: EAST)","LIB AWAR: Tank troops of USSR (Side: EAST)","LIB AWAR & Lennard: [Winter] Tank troops of USSR (Side: EAST)","LIB AWAR: Wehrmacht (Side: WEST)","LIB AWAR & Lennard: [Winter] Wehrmacht (Side: WEST)","LOP Project OPFOR: Boko Haram (Side: EAST)","LOP Project OPFOR: Irish Republican Army (Side: EAST)","LOP Project OPFOR: Ulster Volunteer Force (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Afghan National Army and Police (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: African Militia (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: African Militia (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Chernarussian Defence Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: ChDKZ (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Iraqi Armed Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: Iranian Armed Forces (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Chernarussian National Insurgents (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Private Military Company (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Royal Army Corps of Sahrani (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Sahrani Liberation Army (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Takistani Armed Forces (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Ultranationalists (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Ukraine's Armed Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: United Nations (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: United Armed Forces of Novorossiya (Side: EAST)","OPTRE Article 2 Studios: Insurrectionists (Side: EAST)","OPTRE Article 2 Studios: Colonial Police (Side: GUER)","OPTRE Article 2 Studios: UNSCDF (Side: WEST)","RHS_AFRF Red Hammer Studios: Eastern Militia (Side: GUER)","RHS_AFRF Red Hammer Studios: Russia (MSV) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (RVA) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (TV) (Side: EAST)","RHS_AFRF Bohemia Interactive: Russia (VDV) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VMF) (Side: EAST)","RHS_AFRF RHS: Russia (VPVO) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VV) (Side: EAST)","RHS_AFRF Bohemia Interactive: Russia (VVS - Grey) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VVS - Camo) (Side: EAST)","RHS_GREF Red Hammer Studios: Chernarus (Air Force) (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (Air Force) (Side: WEST)","RHS_GREF RHS (A2 port): Chernarus (Ground Forces) (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (Ground Forces) (Side: WEST)","RHS_GREF Red Hammer Studios: Chernarus (National Guard) (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (National Guard) (Side: WEST)","RHS_GREF Red Hammer Studios: ChDKZ Insurgents (Side: EAST)","RHS_GREF Red Hammer Studios: ChDKZ Insurgents (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (U.N. Peacekeepers) (Side: GUER)","RHS_SAF Red Hammer Studios: SAF (RVIPVO) (Side: GUER)","RHS_SAF Red Hammer Studios: SAF (KOV) (Side: GUER)","RHS_SAF Red Hammer Studios: SAF (Casques Bleus) (Side: GUER)","RHS_USAF Red Hammer Studios: USA (SOCOM) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (USAF) (Side: WEST)","RHS_USAF RHS (A2 port): USA (Army - D) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (Army - W) (Side: WEST)","RHS_USAF RHS (A2 port): USA (USMC - D) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (USMC - W) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (Navy) (Side: WEST)","RHSGREF Red Hammer Studios: Nationalist Troops (Side: GUER)","SG Stagler: Sturmtroopers (Side: WEST)","SG Stagler: [Winter] Sturmtroopers (Side: WEST)","SG Stagler: Tank Sturmtroopers (Side: WEST)","UNSUNG Bohemia Interactive: Australia (UNSUNG) (Side: GUER)","UNSUNG Razorback: N.V.A. (UNSUNG) (Side: EAST)","UNSUNG Bohemia Interactive: V.C. (UNSUNG) (Side: EAST)","UNSUNG Bohemia Interactive: A.R.V.N. (UNSUNG) (Side: GUER)","UNSUNG Bohemia Interactive: New Zealand (UNSUNG) (Side: GUER)","UNSUNG Bohemia Interactive: U.S. (UNSUNG) (Side: WEST)","USML segen: Armed Islamic Front (Side: GUER)"}; default = 3; }; class btc_p_civ { //paramsArray[7] title = " Civil type:"; - values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13}; - texts[]={" EricJ: Afghan Civilians (Side: CIV)"," Bohemia Interactive: Civils (Side: CIV)","btc_militia_mod Giallustio: Afghan Civilians (Side: CIV)","CAF CAF MOD TEAM: African (Side: CIV)","CAF CAF MOD TEAM: Middle Eastern (Side: CIV)","CUP Bohemia Interactive: Civilians (Chenarus) (Side: CIV)","CUP_Units Community Upgrade Project: Civilians (Russian) (Side: CIV)","CUP_Vehicles Community Upgrade Project: Civilians (Takistan) (Side: CIV)","LIB Reyhard & Joarius: 40s Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: African Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Eastern European Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Civilians (Side: CIV)","OPTRE Article 2 Studios: Civilians (UEG) (Side: CIV)","RDS_CIV_PACK reyhard: Russians (Side: CIV)"}; + values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14}; + texts[]={" EricJ: Afghan Civilians (Side: CIV)"," Bohemia Interactive: Civils (Side: CIV)","btc_militia_mod Giallustio: Afghan Civilians (Side: CIV)","CAF CAF MOD TEAM: African (Side: CIV)","CAF CAF MOD TEAM: Middle Eastern (Side: CIV)","CUP Bohemia Interactive: Civilians (Chenarus) (Side: CIV)","CUP_Units Community Upgrade Project: Civilians (Russian) (Side: CIV)","CUP_Vehicles Community Upgrade Project: Civilians (Takistan) (Side: CIV)","LIB Reyhard & Joarius: 40s Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: African Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Eastern European Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Civilians (Side: CIV)","OPTRE Article 2 Studios: Civilians (UEG) (Side: CIV)","RDS_CIV_PACK reyhard: Russians (Side: CIV)","UNSUNG Bohemia Interactive: Vietnamese (UNSUNG) (Side: CIV)"}; default = 1; }; class btc_p_civ_veh { //paramsArray[8] title = " Civil vehicle type:"; - values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13}; - texts[]={" EricJ: Afghan Civilians (Side: CIV)"," Bohemia Interactive: Civils (Side: CIV)","btc_militia_mod Giallustio: Afghan Civilians (Side: CIV)","CAF CAF MOD TEAM: African (Side: CIV)","CAF CAF MOD TEAM: Middle Eastern (Side: CIV)","CUP Bohemia Interactive: Civilians (Chenarus) (Side: CIV)","CUP_Units Community Upgrade Project: Civilians (Russian) (Side: CIV)","CUP_Vehicles Community Upgrade Project: Civilians (Takistan) (Side: CIV)","LIB Reyhard & Joarius: 40s Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: African Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Eastern European Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Civilians (Side: CIV)","OPTRE Article 2 Studios: Civilians (UEG) (Side: CIV)","RDS_CIV_PACK reyhard: Russians (Side: CIV)"}; + values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14}; + texts[]={" EricJ: Afghan Civilians (Side: CIV)"," Bohemia Interactive: Civils (Side: CIV)","btc_militia_mod Giallustio: Afghan Civilians (Side: CIV)","CAF CAF MOD TEAM: African (Side: CIV)","CAF CAF MOD TEAM: Middle Eastern (Side: CIV)","CUP Bohemia Interactive: Civilians (Chenarus) (Side: CIV)","CUP_Units Community Upgrade Project: Civilians (Russian) (Side: CIV)","CUP_Vehicles Community Upgrade Project: Civilians (Takistan) (Side: CIV)","LIB Reyhard & Joarius: 40s Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: African Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Eastern European Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Civilians (Side: CIV)","OPTRE Article 2 Studios: Civilians (UEG) (Side: CIV)","RDS_CIV_PACK reyhard: Russians (Side: CIV)","UNSUNG Bohemia Interactive: Vietnamese (UNSUNG) (Side: CIV)"}; default = 1; }; class btc_p_IED_title { From 73f69e8c3ef85a654f0312dbb72ab5557e02b19f Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 26 Mar 2017 14:54:22 +0200 Subject: [PATCH 042/120] Add: remove btc_hq most of the time mission maker forgot to move btc_hq red blu green to there templates witch results bug and error --- .../core/def/mission.sqf | 16 +- .../core/fnc/civ/get_weapons.sqf | 3 +- .../core/fnc/db/load.sqf | 2 +- .../core/fnc/db/load_old.sqf | 2 +- .../core/fnc/db/save.sqf | 2 +- .../core/fnc/ied/suicider_active.sqf | 3 +- .../core/fnc/info/hideout.sqf | 6 +- .../core/fnc/mil/hd_hideout.sqf | 22 +- =BTC=co@30_Hearts_and_Minds.Altis/mission.sqm | 289 ++---------------- .../mission_Tanoa.sqm | Bin 54961 -> 51718 bytes 10 files changed, 53 insertions(+), 292 deletions(-) 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 68049f27b..29532d5c5 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 @@ -487,9 +487,9 @@ btc_lift_HUD_y = 0.848; //Mil btc_player_side = west; btc_respawn_marker = "respawn_west"; +btc_hq = objNull; switch (true) do { case (_p_en == 0) : { - btc_hq = btc_hq_red; btc_enemy_side = east; btc_type_units = ["O_G_Soldier_F","O_G_Soldier_TL_F","O_G_Soldier_AR_F","O_G_engineer_F","O_G_Soldier_exp_F","O_G_Soldier_GL_F","O_G_Soldier_LAT_F"]; btc_type_divers = ["O_diver_F","O_diver_exp_F","O_diver_TL_F"]; @@ -501,7 +501,6 @@ switch (true) do { btc_type_gl = ["O_GMG_01_F","O_GMG_01_high_F"]; }; case (_p_en == 1 && isClass(configFile >> "cfgVehicles" >> "CAF_AG_ME_T_AK47")) : { - btc_hq = btc_hq_red; btc_enemy_side = east; btc_type_units = ["CAF_AG_ME_AK47","CAF_AG_ME_T_AK74","CAF_AG_ME_T_PKM","CAF_AG_ME_T_RPK74","CAF_AG_ME_T_RPG","CAF_AG_ME_T_GL"]; btc_type_divers = ["O_diver_F","O_diver_exp_F","O_diver_TL_F"]; @@ -513,9 +512,7 @@ switch (true) do { btc_type_gl = ["O_GMG_01_F","O_GMG_01_high_F"]; btc_civ_type_units = ["CAF_AG_ME_CIV","CAF_AG_ME_CIV_02","CAF_AG_ME_CIV_03","CAF_AG_ME_CIV_04"]; }; - case (_p_en == 2) : - { - btc_hq = btc_hq_green; + case (_p_en == 2) : { btc_enemy_side = resistance; btc_type_units = ["I_Soldier_F","I_Soldier_TL_F","I_Soldier_AR_F","I_engineer_F","I_Soldier_exp_F","I_Soldier_GL_F","I_Soldier_LAT_F","I_Soldier_AT_F","I_Soldier_AA_F","I_Spotter_F","I_Sniper_F"]; btc_type_divers = ["I_diver_F","I_diver_exp_F","I_diver_TL_F"]; @@ -527,7 +524,6 @@ switch (true) do { btc_type_gl = ["I_GMG_01_F","I_GMG_01_high_F"]; }; case (_p_en == 3 && isClass(configFile >> "cfgVehicles" >> "rhs_g_Soldier_F")) : { - btc_hq = btc_hq_green; btc_enemy_side = resistance; btc_type_units = ["rhs_g_Soldier_F","rhs_g_medic_F","rhs_g_engineer_F","rhs_g_Soldier_exp_F","rhs_g_Soldier_GL_F","rhs_g_Soldier_AAT_F","rhs_g_Soldier_AR_F","rhs_g_Soldier_AAR_F","rhs_g_Soldier_M_F","rhs_g_uniform5_base","rhs_g_uniform1_base","rhs_g_uniform2_base","rhs_g_uniform3_base","rhs_g_uniform4_base","rhs_g_Soldier_F2","rhs_g_Soldier_F","rhs_g_Soldier_LAT_F","rhs_g_Soldier_lite_F","rhs_g_Soldier_AT_F","rhs_g_Soldier_AA_F","rhs_g_Soldier_TL_F","rhs_g_Soldier_SL_F"]; btc_type_divers = ["I_diver_F","I_diver_exp_F","I_diver_TL_F"]; @@ -539,7 +535,6 @@ switch (true) do { btc_type_gl = ["I_GMG_01_F","I_GMG_01_high_F","RHS_AGS30_TriPod_INS"]; }; case (_p_en == 4 && isClass(configFile >> "cfgVehicles" >> "btc_am_mg")) : { - btc_hq = btc_hq_red; btc_enemy_side = east; btc_type_units = ["btc_am_mg","btc_am_m","btc_am_medic","btc_am_r","btc_am_amg","btc_am_at","btc_am_gl","btc_afghan_1_2","btc_afghan_1_3","btc_afghan_1_4","btc_afghan_1_5","btc_am_tl"]; btc_type_divers = ["O_diver_F","O_diver_exp_F","O_diver_TL_F"]; @@ -551,7 +546,6 @@ switch (true) do { btc_type_gl = ["O_GMG_01_F","O_GMG_01_high_F"]; }; case (_p_en == 5 && isClass(configFile >> "cfgVehicles" >> "aif_oficial")) : { - btc_hq = btc_hq_green; btc_enemy_side = resistance; btc_type_units = ["aif_oficial","aif_oficial2","aif_oficial3","aif_support_MG","aif_specialist_Ex","aif_rifleman","aif_riflemanAK103","aif_riflemanM4","aif_support_AT","aif_riflemanGL","aif_TeamLeader","aif_sniper","aif_riflemanGLM4","aif_support_rpg26","aif_TeamLeader_G","aif_medic_G","aif_rifleman_G"]; btc_type_divers = ["I_diver_F","I_diver_exp_F","I_diver_TL_F"]; @@ -563,7 +557,6 @@ switch (true) do { btc_type_gl = ["O_GMG_01_F","O_GMG_01_high_F","aif_Static_Mk19_TriPod"]; }; case (_p_en == 6) : { - btc_hq = btc_hq_green; btc_enemy_side = resistance; btc_type_units = ["I_C_Soldier_Bandit_5_F","I_C_Soldier_Bandit_6_F","I_C_Soldier_Bandit_3_F","I_C_Soldier_Bandit_8_F","I_C_Soldier_Bandit_2_F","I_C_Soldier_Bandit_4_F","I_C_Soldier_Bandit_7_F","I_C_Soldier_Bandit_1_F","I_C_Soldier_Para_6_F","I_C_Soldier_Para_7_F","I_C_Soldier_Para_2_F","I_C_Soldier_Para_3_F","I_C_Soldier_Para_4_F","I_C_Soldier_Para_8_F","I_C_Soldier_Para_1_F","I_C_Soldier_Para_5_F"]; btc_type_divers = ["I_diver_F","I_diver_exp_F","I_diver_TL_F"]; @@ -575,7 +568,6 @@ switch (true) do { btc_type_gl = ["I_GMG_01_F","I_GMG_01_high_F"]; }; case (_p_en == 7 && isClass(configFile >> "cfgVehicles" >> "LOP_AM_Infantry_Engineer")) : { - btc_hq = btc_hq_green; btc_enemy_side = resistance; btc_type_units = ["LOP_AM_Infantry_Engineer","LOP_AM_Infantry_Corpsman","LOP_AM_Infantry_GL","LOP_AM_Infantry_Rifleman","LOP_AM_Infantry_Rifleman_2","LOP_AM_Infantry_Rifleman_3","LOP_AM_Infantry_Marksman","LOP_AM_Infantry_AT","LOP_AM_Infantry_AR","LOP_AM_Infantry_AR_Asst","LOP_AM_Infantry_SL"]; btc_type_divers = ["I_diver_F","I_diver_exp_F","I_diver_TL_F"]; @@ -587,7 +579,6 @@ switch (true) do { btc_type_gl = ["LOP_AM_AGS30_TriPod","LOP_AM_Static_SPG9"]; }; case (_p_en == 8 && isClass(configFile >> "cfgVehicles" >> "LOP_ISTS_Infantry_Engineer")) : { - btc_hq = btc_hq_green; btc_enemy_side = resistance; btc_type_units = ["LOP_ISTS_Infantry_Engineer","LOP_ISTS_Infantry_Corpsman","LOP_ISTS_Infantry_GL","LOP_ISTS_Infantry_Rifleman","LOP_ISTS_Infantry_Rifleman_2","LOP_ISTS_Infantry_Rifleman_3","LOP_ISTS_Infantry_AT","LOP_ISTS_Infantry_Marksman","LOP_ISTS_Infantry_AR_Asst","LOP_ISTS_Infantry_AR"]; btc_type_divers = ["I_diver_F","I_diver_exp_F","I_diver_TL_F"]; @@ -599,7 +590,6 @@ switch (true) do { btc_type_gl = ["LOP_ISTS_AGS30_TriPod","LOP_ISTS_Static_SPG9"]; }; case (_p_en == 9 && isClass(configFile >> "cfgVehicles" >> "LOP_UA_Infantry_AT_Asst")) : { - btc_hq = btc_hq_green; btc_enemy_side = resistance; btc_type_units = ["LOP_UA_Infantry_AT_Asst","LOP_UA_Infantry_Corpsman","LOP_UA_Infantry_GL","LOP_UA_Infantry_AT","LOP_UA_Infantry_Rifleman","LOP_UA_Infantry_Rifleman_2","LOP_UA_Infantry_Rifleman_3","LOP_UA_Infantry_Marksman","LOP_UA_Infantry_MG_Asst","LOP_UA_Infantry_MG","LOP_UA_Officer","LOP_UA_Infantry_SL","LOP_UA_Infantry_TL"]; btc_type_divers = ["I_diver_F","I_diver_exp_F","I_diver_TL_F"]; @@ -611,7 +601,6 @@ switch (true) do { btc_type_gl = ["LOP_UA_AGS30_TriPod"]; }; case (_p_en == 10) : { - btc_hq = btc_hq_red; btc_enemy_side = east; btc_type_units = ["O_T_Soldier_A_F","O_T_Soldier_AAR_F","O_T_Soldier_AR_F","O_T_Medic_F","O_T_Engineer_F","O_T_Soldier_Exp_F","O_T_Soldier_GL_F","O_T_Soldier_M_F","O_V_Soldier_JTAC_ghex_F","O_V_Soldier_Exp_ghex_F","O_V_Soldier_M_ghex_F","O_V_Soldier_ghex_F","O_V_Soldier_Medic_ghex_F","O_V_Soldier_LAT_ghex_F","O_V_Soldier_TL_ghex_F","O_T_Recon_JTAC_F","O_T_Recon_M_F","O_T_Recon_Medic_F","O_T_Recon_LAT_F","O_T_ghillie_tna_F"] ; @@ -624,7 +613,6 @@ switch (true) do { btc_type_gl = ["O_GMG_01_F","O_GMG_01_high_F"]; }; default { - btc_hq = btc_hq_red; btc_enemy_side = east; btc_type_units = ["O_G_Soldier_F","O_G_Soldier_TL_F","O_G_Soldier_AR_F","O_G_engineer_F","O_G_Soldier_exp_F","O_G_Soldier_GL_F","O_G_Soldier_LAT_F"]; btc_type_divers = ["O_diver_F","O_diver_exp_F","O_diver_TL_F"]; 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 cd66c8ecc..1ce43e4cf 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 @@ -21,8 +21,7 @@ _units = _units select {side _x isEqualTo civilian}; [_x] call btc_fnc_civ_add_weapons; - [_x] joinSilent btc_hq; - [_x] joinSilent GrpNull; + [_x] joinSilent createGroup [btc_enemy_side, true]; (group _x) setVariable ["getWeapons",true]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index d9eaec931..2d8a96821 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -123,7 +123,7 @@ _array_ho = profileNamespace getVariable [format ["btc_hm_%1_ho",_name],[]]; } foreach _array_ho; _ho = profileNamespace getVariable [format ["btc_hm_%1_ho_sel",_name],0]; -btc_hq setVariable ["info_hideout", btc_hideouts select _ho]; +btc_hq = btc_hideouts select _ho; if (count btc_hideouts == 0) then {[] execVM "core\fnc\common\final_phase.sqf";}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf index fe2e7c851..f36ddf3a3 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf @@ -123,7 +123,7 @@ _array_ho = profileNamespace getVariable [format ["btc_hm_%1_ho",_name],[]]; } foreach _array_ho; _ho = profileNamespace getVariable [format ["btc_hm_%1_ho_sel",_name],0]; -btc_hq setVariable ["info_hideout", btc_hideouts select _ho]; +btc_hq = btc_hideouts select _ho; if (count btc_hideouts == 0) then {[] execVM "core\fnc\common\final_phase.sqf";}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf index e509c783e..53e491b3e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf @@ -77,7 +77,7 @@ _array_ho = []; } foreach btc_hideouts; profileNamespace setVariable [format ["btc_hm_%1_ho",_name],_array_ho]; -profileNamespace setVariable [format ["btc_hm_%1_ho_sel",_name],(btc_hq getVariable ["info_hideout",objNull]) getVariable ["id",0]]; +profileNamespace setVariable [format ["btc_hm_%1_ho_sel",_name],btc_hq getVariable ["id",0]]; //CACHE _array_cache = []; 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 9689f72a1..4a1dd7fcb 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 @@ -1,8 +1,7 @@ private ["_trigger","_array","_expl1","_expl2","_expl3","_man","_cond"]; -[_this] joinSilent btc_hq; -[_this] joinSilent GrpNull; +[_this] joinSilent createGroup [btc_enemy_side, true]; _this call btc_fnc_rep_remove_eh; 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 65646d0b9..6e4940881 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 @@ -1,15 +1,13 @@ -private ["_ho","_pos","_marker","_array"]; - if (count btc_hideouts == 0) exitWith {}; private ["_ho","_pos","_marker","_array"]; -_ho = btc_hq getVariable ["info_hideout",objNull]; +_ho = btc_hq; if (isNull _ho) then { _ho = selectRandom btc_hideouts; - btc_hq setVariable ["info_hideout",_ho]; + btc_hq =_ho; }; _pos = [ 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 aea941e62..50f9acbfe 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 @@ -9,7 +9,7 @@ _explosive = (getNumber(configFile >> "cfgAmmo" >> _ammo >> "explosive") > 0); if (_explosive && {_damage > 0.6}) then { private ["_id","_marker","_city","_array"]; - + _id = _hideout getVariable "id"; for "_i" from 0 to (count btc_hideouts - 1) do { @@ -18,27 +18,27 @@ if (_explosive && {_damage > 0.6}) then { btc_hideouts = btc_hideouts - [0]; 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"; - + _city = _hideout getVariable ["assigned_to",_hideout]; _city setVariable ["has_ho",false]; - - deleteVehicle (nearestObject [(getpos _hideout), "Flag_Red_F"]); + + deleteVehicle (nearestObject [getpos _hideout, "Flag_Red_F"]); _hideout setDamage 1; - + _array = _hideout getVariable ["markers",[]]; - + {deleteMarker _x} foreach _array; - - if (btc_hq getVariable ["info_hideout",objNull] isEqualTo _hideout) then {btc_hq setVariable ["info_hideout",objNull]}; - + + if (btc_hq isEqualTo _hideout) then {btc_hq = objNull}; + if (count btc_hideouts == 0) then {[] execVM "core\fnc\common\final_phase.sqf";}; - + //Notification [[2,count btc_hideouts],"btc_fnc_show_hint"] spawn BIS_fnc_MP; if (btc_debug_log) then {diag_log format ["btc_fnc_mil_hd_hideout: _this = %1 ; POS %2 ID %3",_this,getpos _hideout,_id];}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm index 7ee4680dc..647e24779 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm @@ -1,11 +1,11 @@ -version=52; +version=53; class EditorData { moveGridStep=1; angleGridStep=0.2617994; scaleGridStep=1; autoGroupingDist=10; - toggles=641; + toggles=513; class ItemIDProvider { nextID=156; @@ -16,10 +16,10 @@ class EditorData }; class Camera { - pos[]={8266.585,120.9651,10141.467}; - dir[]={0.288046,-0.6332072,-0.71844208}; - up[]={0.2356492,0.77396113,-0.58775413}; - aside[]={-0.92821151,-2.332381e-007,-0.37215087}; + pos[]={8299.5635,88.859444,10062.84}; + dir[]={0.19380462,-0.91093928,-0.36432019}; + up[]={0.42781401,0.41256225,-0.80421793}; + aside[]={-0.88289464,-5.0268136e-007,-0.46966758}; }; }; binarizationWanted=0; @@ -58,7 +58,7 @@ class AddonsMetaData className="A3_Ui_F"; name="Arma 3 - User Interface"; author="Bohemia Interactive"; - url="http://www.arma3.com"; + url="https://www.arma3.com"; }; class Item1 { @@ -82,7 +82,7 @@ class AddonsMetaData className="A3_Structures_F_Ind"; name="Arma 3 - Industrial Structures"; author="Bohemia Interactive"; - url="http://www.arma3.com"; + url="https://www.arma3.com"; }; class Item5 { @@ -96,21 +96,21 @@ class AddonsMetaData className="A3_Structures_F_Mil"; name="Arma 3 - Military Buildings and Structures"; author="Bohemia Interactive"; - url="http://www.arma3.com"; + url="https://www.arma3.com"; }; class Item7 { className="A3_Soft_F_Gamma"; name="Arma 3 - Unarmored Land Vehicles"; author="Bohemia Interactive"; - url="http://www.arma3.com"; + url="https://www.arma3.com"; }; class Item8 { className="A3_Characters_F"; name="Arma 3 Alpha - Characters and Clothing"; author="Bohemia Interactive"; - url="http://www.arma3.com"; + url="https://www.arma3.com"; }; class Item9 { @@ -145,7 +145,7 @@ class AddonsMetaData className="A3_Modules_F_Curator"; name="Arma 3 Zeus Update - Scripted Modules"; author="Bohemia Interactive"; - url="http://www.arma3.com"; + url="https://www.arma3.com"; }; class Item14 { @@ -210,7 +210,7 @@ class CustomAttributes name="Multiplayer"; class Attribute0 { - property="RespawnButton"; + property="RespawnTemplates"; expression="true"; class Value { @@ -220,16 +220,15 @@ class CustomAttributes { type[]= { - "SCALAR" + "ARRAY" }; }; - value=1; }; }; }; class Attribute1 { - property="RespawnTemplates"; + property="RespawnButton"; expression="true"; class Value { @@ -239,9 +238,10 @@ class CustomAttributes { type[]= { - "ARRAY" + "SCALAR" }; }; + value=1; }; }; }; @@ -301,7 +301,7 @@ class Mission }; class Entities { - items=62; + items=59; class Item0 { dataType="Marker"; @@ -496,8 +496,8 @@ class Mission dataType="Object"; class PositionInfo { - position[]={8295.0449,77.596947,10054.31}; - angles[]={0,5.7184772,6.1089697}; + position[]={8295.166,77.579712,10052.532}; + angles[]={-0,5.7184772,0}; }; side="Empty"; flags=4; @@ -509,7 +509,6 @@ class Mission }; id=5; type="RHS_M2A3"; - atlOffset=0.017234802; }; class Item6 { @@ -957,12 +956,14 @@ class Mission }; id=29; type="B_Soldier_F"; + atlOffset=-3.8146973e-005; }; }; class Attributes { }; id=28; + atlOffset=-3.8146973e-005; }; class Item22 { @@ -2463,230 +2464,6 @@ class Mission id=131; }; class Item53 - { - dataType="Group"; - side="East"; - class Entities - { - items=1; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={8133.771,74.474968,9941.1045}; - angles[]={0,3.1415927,0}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - init="if (isServer) then {this enableSimulation false;hideObjectGlobal this;this allowDamage false;};"; - name="btc_hq_red"; - }; - id=134; - type="O_officer_F"; - class CustomAttributes - { - class Attribute0 - { - 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; - }; - }; - }; - class Attribute1 - { - 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; - }; - }; - }; - nAttributes=2; - }; - }; - }; - class Attributes - { - }; - id=133; - }; - class Item54 - { - dataType="Group"; - side="West"; - class Entities - { - items=1; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={8135.3682,74.47419,9941.0234}; - angles[]={0,3.1415927,0}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - init="if (isServer) then {this enableSimulation false;hideObjectGlobal this;this allowDamage false;};"; - name="btc_hq_blu"; - }; - id=136; - type="B_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - 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; - }; - }; - }; - class Attribute1 - { - 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; - }; - }; - }; - nAttributes=2; - }; - }; - }; - class Attributes - { - }; - id=135; - }; - class Item55 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=1; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={8136.916,74.475258,9941.0234}; - angles[]={0,3.1415927,0}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - init="if (isServer) then {this enableSimulation false;hideObjectGlobal this;this allowDamage false;};"; - name="btc_hq_green"; - }; - id=138; - type="I_soldier_F"; - atlOffset=-0.00099945068; - class CustomAttributes - { - class Attribute0 - { - 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; - }; - }; - }; - class Attribute1 - { - 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; - }; - }; - }; - nAttributes=2; - }; - }; - }; - class Attributes - { - }; - id=137; - atlOffset=-0.00099945068; - }; - class Item56 { dataType="Object"; class PositionInfo @@ -2704,6 +2481,7 @@ class Mission }; id=145; type="rhsusf_M1078A1P2_B_M2_d_open_fmtv_usarmy"; + atlOffset=7.6293945e-005; class CustomAttributes { class Attribute0 @@ -2728,7 +2506,7 @@ class Mission nAttributes=1; }; }; - class Item57 + class Item54 { dataType="Object"; class PositionInfo @@ -2771,7 +2549,7 @@ class Mission nAttributes=1; }; }; - class Item58 + class Item55 { dataType="Object"; class PositionInfo @@ -2813,26 +2591,25 @@ class Mission nAttributes=1; }; }; - class Item59 + class Item56 { dataType="Logic"; class PositionInfo { - position[]={8131.314,74.493202,9941.0576}; - angles[]={6.2765183,0,6.2751913}; + position[]={8302.7266,75.940002,10058.99}; }; name="btc_hc_1"; isPlayable=1; id=153; type="HeadlessClient_F"; }; - class Item60 + class Item57 { dataType="Object"; class PositionInfo { - position[]={8267.8828,79.948425,10064.716}; - angles[]={0.12205087,0.95726073,6.2392201}; + position[]={8272.0283,79.696327,10065.254}; + angles[]={0.17033349,0.95726073,6.2392135}; }; side="Empty"; flags=4; @@ -2868,13 +2645,13 @@ class Mission nAttributes=1; }; }; - class Item61 + class Item58 { dataType="Object"; class PositionInfo { - position[]={8273.5693,80.364021,10058.454}; - angles[]={0.12205087,0.65331161,6.1297359}; + position[]={8276.9688,79.675079,10059.785}; + angles[]={0.12205668,0.35431969,6.1297355}; }; side="Empty"; flags=4; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission_Tanoa.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission_Tanoa.sqm index b8f4ed8d3895b4f84fca7a36134df3cf1a86e769..8088ccee43efd01363e6c30a82eda8bec045322b 100644 GIT binary patch literal 51718 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 F{9isP1=Rom From a90fe0f95600e9abfec27f4f96780953eb9a8516 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 28 Mar 2017 23:41:22 +0200 Subject: [PATCH 043/120] RMV module cargo and captive --- .../core/def/mission.sqf | 3 +- =BTC=co@30_Hearts_and_Minds.Altis/mission.sqm | 209 ++++-------------- .../mission_Tanoa.sqm | Bin 51718 -> 80242 bytes 3 files changed, 51 insertions(+), 161 deletions(-) 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 29532d5c5..4bf5c0d5a 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 @@ -57,9 +57,10 @@ btc_p_side_mission_cycle = false; btc_p_garage = false; btc_p_debug = (paramsArray select 39); -//MED +//OPTION must be use for H&M if (ace_medical_maxReviveTime > 0) then {ace_medical_enableRevive = 1;ace_medical_preventInstaDeath = true}; ace_medical_enableFor = 1; +ace_cargo_enable = true; //btc_acre_mod = isClass(configFile >> "cfgPatches" >> "acre_main"); //btc_tfr_mod = isClass(configFile >> "cfgPatches" >> "task_force_radio"); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm index 647e24779..cfc50cd5a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm @@ -16,10 +16,10 @@ class EditorData }; class Camera { - pos[]={8299.5635,88.859444,10062.84}; - dir[]={0.19380462,-0.91093928,-0.36432019}; - up[]={0.42781401,0.41256225,-0.80421793}; - aside[]={-0.88289464,-5.0268136e-007,-0.46966758}; + pos[]={8250.9043,117.55215,10056.634}; + dir[]={0.63489479,-0.76769865,-0.087500997}; + up[]={0.76053244,0.64078408,-0.10481572}; + aside[]={-0.13653453,-2.9675721e-007,-0.99068516}; }; }; binarizationWanted=0; @@ -42,7 +42,6 @@ addons[]= "ace_explosives", "A3_Modules_F_Curator_Curator", "ace_respawn", - "ace_captives", "ace_advanced_ballistics", "ace_winddeflection", "rhsusf_c_fmtv", @@ -52,7 +51,7 @@ class AddonsMetaData { class List { - items=20; + items=19; class Item0 { className="A3_Ui_F"; @@ -155,33 +154,26 @@ class AddonsMetaData url="http://ace3mod.com/"; }; class Item15 - { - className="ace_captives"; - name="ACE3 - Captives"; - author="ACE-Team"; - url="http://ace3mod.com/"; - }; - class Item16 { className="ace_advanced_ballistics"; name="ACE3 - Advanced Ballistics"; author="ACE-Team"; url="http://ace3mod.com/"; }; - class Item17 + class Item16 { className="ace_winddeflection"; name="ACE3 - Wind Deflection"; author="ACE-Team"; url="http://ace3mod.com/"; }; - class Item18 + class Item17 { className="rhsusf_c_fmtv"; name="FMTV Trucks"; url="http://www.rhsmods.org/"; }; - class Item19 + class Item18 { className="rhsusf_c_RG33L"; name="RG33L MRAP"; @@ -210,7 +202,7 @@ class CustomAttributes name="Multiplayer"; class Attribute0 { - property="RespawnTemplates"; + property="RespawnButton"; expression="true"; class Value { @@ -220,15 +212,16 @@ class CustomAttributes { type[]= { - "ARRAY" + "SCALAR" }; }; + value=1; }; }; }; class Attribute1 { - property="RespawnButton"; + property="RespawnTemplates"; expression="true"; class Value { @@ -238,10 +231,9 @@ class CustomAttributes { type[]= { - "SCALAR" + "ARRAY" }; }; - value=1; }; }; }; @@ -301,7 +293,7 @@ class Mission }; class Entities { - items=59; + items=57; class Item0 { dataType="Marker"; @@ -497,7 +489,7 @@ class Mission class PositionInfo { position[]={8295.166,77.579712,10052.532}; - angles[]={-0,5.7184772,0}; + angles[]={0,5.7184772,0}; }; side="Empty"; flags=4; @@ -998,39 +990,6 @@ class Mission id=30; }; class Item23 - { - dataType="Logic"; - class PositionInfo - { - position[]={8269.3535,59.91309,9963.1123}; - }; - id=70; - type="ACE_moduleCargoSettings"; - class CustomAttributes - { - class Attribute0 - { - property="ACE_moduleCargoSettings_enable"; - expression="_this setVariable ['enable',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "BOOL" - }; - }; - value=0; - }; - }; - }; - nAttributes=1; - }; - }; - class Item24 { dataType="Logic"; class PositionInfo @@ -1141,7 +1100,7 @@ class Mission nAttributes=5; }; }; - class Item25 + class Item24 { dataType="Logic"; class PositionInfo @@ -1193,78 +1152,7 @@ class Mission nAttributes=2; }; }; - class Item26 - { - dataType="Logic"; - class PositionInfo - { - position[]={8269.8047,57.457603,9954.5703}; - }; - id=73; - type="ace_captives_moduleSettings"; - class CustomAttributes - { - class Attribute0 - { - property="ace_captives_moduleSettings_requireSurrender"; - expression="_this setVariable ['requireSurrender',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1; - }; - }; - }; - class Attribute1 - { - property="ace_captives_moduleSettings_allowHandcuffOwnSide"; - expression="_this setVariable ['allowHandcuffOwnSide',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "BOOL" - }; - }; - value=0; - }; - }; - }; - class Attribute2 - { - property="ace_captives_moduleSettings_allowSurrender"; - expression="_this setVariable ['allowSurrender',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "BOOL" - }; - }; - value=0; - }; - }; - }; - nAttributes=3; - }; - }; - class Item27 + class Item25 { dataType="Logic"; class PositionInfo @@ -1316,7 +1204,7 @@ class Mission nAttributes=2; }; }; - class Item28 + class Item26 { dataType="Logic"; class PositionInfo @@ -1501,7 +1389,7 @@ class Mission nAttributes=9; }; }; - class Item29 + class Item27 { dataType="Logic"; class PositionInfo @@ -1705,7 +1593,7 @@ class Mission nAttributes=10; }; }; - class Item30 + class Item28 { dataType="Logic"; class PositionInfo @@ -1795,7 +1683,7 @@ class Mission nAttributes=4; }; }; - class Item31 + class Item29 { dataType="Group"; side="West"; @@ -1825,7 +1713,7 @@ class Mission }; id=89; }; - class Item32 + class Item30 { dataType="Group"; side="West"; @@ -1855,7 +1743,7 @@ class Mission }; id=91; }; - class Item33 + class Item31 { dataType="Group"; side="West"; @@ -1885,7 +1773,7 @@ class Mission }; id=93; }; - class Item34 + class Item32 { dataType="Group"; side="West"; @@ -1915,7 +1803,7 @@ class Mission }; id=95; }; - class Item35 + class Item33 { dataType="Group"; side="West"; @@ -1945,7 +1833,7 @@ class Mission }; id=97; }; - class Item36 + class Item34 { dataType="Group"; side="West"; @@ -1975,7 +1863,7 @@ class Mission }; id=99; }; - class Item37 + class Item35 { dataType="Group"; side="West"; @@ -2005,7 +1893,7 @@ class Mission }; id=101; }; - class Item38 + class Item36 { dataType="Group"; side="West"; @@ -2035,7 +1923,7 @@ class Mission }; id=103; }; - class Item39 + class Item37 { dataType="Group"; side="West"; @@ -2067,7 +1955,7 @@ class Mission id=105; atlOffset=0.028755188; }; - class Item40 + class Item38 { dataType="Group"; side="West"; @@ -2099,7 +1987,7 @@ class Mission id=107; atlOffset=0.072166443; }; - class Item41 + class Item39 { dataType="Group"; side="West"; @@ -2129,7 +2017,7 @@ class Mission }; id=109; }; - class Item42 + class Item40 { dataType="Group"; side="West"; @@ -2159,7 +2047,7 @@ class Mission }; id=111; }; - class Item43 + class Item41 { dataType="Group"; side="West"; @@ -2189,7 +2077,7 @@ class Mission }; id=113; }; - class Item44 + class Item42 { dataType="Group"; side="West"; @@ -2219,7 +2107,7 @@ class Mission }; id=115; }; - class Item45 + class Item43 { dataType="Group"; side="West"; @@ -2249,7 +2137,7 @@ class Mission }; id=117; }; - class Item46 + class Item44 { dataType="Group"; side="West"; @@ -2279,7 +2167,7 @@ class Mission }; id=119; }; - class Item47 + class Item45 { dataType="Group"; side="West"; @@ -2309,7 +2197,7 @@ class Mission }; id=121; }; - class Item48 + class Item46 { dataType="Group"; side="West"; @@ -2339,7 +2227,7 @@ class Mission }; id=123; }; - class Item49 + class Item47 { dataType="Group"; side="West"; @@ -2371,7 +2259,7 @@ class Mission id=125; atlOffset=0.0039749146; }; - class Item50 + class Item48 { dataType="Group"; side="West"; @@ -2403,7 +2291,7 @@ class Mission id=127; atlOffset=0.0039749146; }; - class Item51 + class Item49 { dataType="Group"; side="West"; @@ -2433,7 +2321,7 @@ class Mission }; id=129; }; - class Item52 + class Item50 { dataType="Group"; side="West"; @@ -2463,7 +2351,7 @@ class Mission }; id=131; }; - class Item53 + class Item51 { dataType="Object"; class PositionInfo @@ -2506,7 +2394,7 @@ class Mission nAttributes=1; }; }; - class Item54 + class Item52 { dataType="Object"; class PositionInfo @@ -2549,7 +2437,7 @@ class Mission nAttributes=1; }; }; - class Item55 + class Item53 { dataType="Object"; class PositionInfo @@ -2591,7 +2479,7 @@ class Mission nAttributes=1; }; }; - class Item56 + class Item54 { dataType="Logic"; class PositionInfo @@ -2603,7 +2491,7 @@ class Mission id=153; type="HeadlessClient_F"; }; - class Item57 + class Item55 { dataType="Object"; class PositionInfo @@ -2621,6 +2509,7 @@ class Mission }; id=154; type="rhsusf_M1237_M2_usarmy_d"; + atlOffset=-0.0018463135; class CustomAttributes { class Attribute0 @@ -2645,7 +2534,7 @@ class Mission nAttributes=1; }; }; - class Item58 + class Item56 { dataType="Object"; class PositionInfo diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission_Tanoa.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission_Tanoa.sqm index 8088ccee43efd01363e6c30a82eda8bec045322b..1f3a83f94617caa3fc060c2bbb4209588f6f89ef 100644 GIT binary patch literal 80242 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 Date: Sat, 1 Apr 2017 11:52:21 +0200 Subject: [PATCH 044/120] Merge remote-tracking branch 'refs/remotes/origin/master_daily' into Add-FOW_units_enemy # Conflicts: # =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf Merge remote-tracking branch 'refs/remotes/origin/master_daily' into Add-FOW_units_enemy # Conflicts: # =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf --- .../core/def/mission.sqf | 58 ++- .../core/doc.sqf | 4 +- .../core/fnc/city/trigger_player_side.sqf | 4 +- .../core/fnc/civ/get_weapons.sqf | 3 +- .../core/fnc/civ/traffic_add_WP.sqf | 2 +- .../core/fnc/civ/traffic_create.sqf | 2 +- .../core/fnc/common/find_closecity.sqf | 2 +- .../core/fnc/common/task_patrol.sqf | 16 +- .../core/fnc/compile.sqf | 9 + .../core/fnc/db/load.sqf | 8 +- .../core/fnc/db/load_old.sqf | 2 +- .../core/fnc/db/save.sqf | 2 +- .../core/fnc/eh/extended_InitPost_EH.hpp | 9 +- .../core/fnc/eh/veh_init.sqf | 22 +- .../core/fnc/ied/suicider_active.sqf | 3 +- .../core/fnc/info/hideout.sqf | 6 +- .../core/fnc/int/add_actions.sqf | 17 +- .../core/fnc/log/can_tow.sqf | 15 +- .../core/fnc/log/createVehicle.sqf | 22 + .../core/fnc/log/garage.sqf | 34 ++ .../core/fnc/log/lift_check.sqf | 4 +- .../core/fnc/log/lift_hook.sqf | 33 +- .../core/fnc/log/lift_hook_fake.sqf | 29 +- .../core/fnc/log/lift_hud_loop.sqf | 4 +- .../core/fnc/log/repair_wreck.sqf | 2 +- .../core/fnc/log/server_repair_wreck.sqf | 15 +- .../core/fnc/log/tow.sqf | 16 +- .../core/fnc/mil/addWP.sqf | 2 +- .../core/fnc/mil/class.sqf | 8 +- .../core/fnc/mil/create_group.sqf | 2 +- .../core/fnc/mil/hd_hideout.sqf | 22 +- .../core/fnc/mil/patrol_create.sqf | 2 +- .../core/fnc/side/capture_officer.sqf | 2 +- .../core/fnc/side/convoy.sqf | 2 +- .../core/fnc/side/create.sqf | 40 +- .../core/fnc/side/underwater_generator.sqf | 10 +- .../core/init_server.sqf | 6 +- =BTC=co@30_Hearts_and_Minds.Altis/mission.sqm | 456 +++--------------- .../mission_Tanoa.sqm | Bin 54961 -> 80242 bytes README.md | 14 +- 40 files changed, 337 insertions(+), 572 deletions(-) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/garage.sqf 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 33dd2bd54..37a673acb 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,7 +1,7 @@ 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"]; -btc_version = 1.16; diag_log format ["=BTC= HEARTS AND MINDS VERSION %1",(str(btc_version) + ".1")]; +btc_version = 1.16; diag_log format ["=BTC= HEARTS AND MINDS VERSION %1",(str(btc_version) + ".2")]; //Param @@ -54,11 +54,15 @@ _p_rep = (paramsArray select 35); ace_rearm_level = (paramsArray select 36); btc_p_sea = if ((paramsArray select 37) isEqualTo 0) then {false} else {true}; _p_city_radius = (paramsArray select 38) * 100; +btc_p_trigger = if (false) 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_side_mission_cycle = false; +btc_p_garage = false; btc_p_debug = (paramsArray select 39); -//MED +//OPTION must be use for H&M if (ace_medical_maxReviveTime > 0) then {ace_medical_enableRevive = 1;ace_medical_preventInstaDeath = true}; ace_medical_enableFor = 1; +ace_cargo_enable = true; //btc_acre_mod = isClass(configFile >> "cfgPatches" >> "acre_main"); //btc_tfr_mod = isClass(configFile >> "cfgPatches" >> "task_force_radio"); @@ -396,14 +400,16 @@ btc_log_def_rc = "Land_Cargo40_military_green_F",40 ]; -btc_fnc_log_get_towable = { +btc_fnc_log_get_nottowable = { + //Return array of objects not towable by "car". _tower = _this select 0; switch (true) do { - case (_tower isKindOf "Wheeled_APC") : {_array = ["Car","Truck","Truck_F","Wheeled_APC"];}; - case (_tower isKindOf "Truck") : {_array = ["Car","Truck","Truck_F","Wheeled_APC"];}; - case (_tower isKindOf "Truck_F") : {_array = ["Car","Truck","Truck_F","Wheeled_APC"];}; - case (_tower isKindOf "Car") : {_array = ["Car"];}; - default {_array = [];}; + case (_tower isKindOf "Tank") : {_array = ["Plane","Helicopter"];}; + case (_tower isKindOf "Truck_F") : {_array = ["Plane","Helicopter"];}; + case (_tower isKindOf "Truck") : {_array = ["Plane","Helicopter"];}; + case (_tower isKindOf "Ship") : {_array = ["Car","Truck","Truck_F","Tank","Plane","Helicopter"];}; + case (_tower isKindOf "Car") : {_array = ["Truck","Truck_F","Tank","Plane","Helicopter"];}; + default {_array = ["Car","Truck","Truck_F","Tank","Plane","Helicopter","Ship"];}; }; _array }; @@ -418,25 +424,27 @@ btc_fnc_log_get_liftable = { //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","Air","Ship"]) + ((btc_construction_array select 1) select 3) + ((btc_construction_array select 1) select 4) + ((btc_construction_array select 1) select 5);}; + 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","Air","Ship"]) + ((btc_construction_array select 1) select 3) + ((btc_construction_array select 1) select 4) + ((btc_construction_array select 1) select 5);}; + 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","Air","Ship"]) + ((btc_construction_array select 1) select 3) + ((btc_construction_array select 1) select 4) + ((btc_construction_array select 1) select 5);}; + 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","Tracked_APC","APC_Tracked_01_base_F","APC_Tracked_02_base_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 "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","Tracked_APC","APC_Tracked_01_base_F","APC_Tracked_02_base_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 "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","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","Tracked_APC","APC_Tracked_01_base_F","APC_Tracked_02_base_F","Air","Ship"]) + ((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"]) + ((btc_construction_array select 1) select 3) + ((btc_construction_array select 1) select 4) + ((btc_construction_array select 1) select 5);}; + 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);}; }; }; }; @@ -453,6 +461,7 @@ btc_lift_HUD_y = 0.848; //Mil btc_player_side = west; btc_respawn_marker = "respawn_west"; +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","IND_F","IND_G_F","OPF_F","OPF_G_F","TBAN","UNSUNG","BTC_AM","CAF_AG_AFR_P","CAF_AG_EEUR_R","CAF_AG_ME_T","CUP_B_CZ","CUP_B_GER","CUP_B_US_ARMY","CUP_I_NAPA","CUP_I_PMC_ION","CUP_I_RACS","CUP_O_SLA","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","BLU_CTRG_F","BLU_GEN_F","BLU_T_F","IND_C_F","OPF_T_F","FOW_IJA","FOW_UK","FOW_USA","FOW_USMC","FOW_WEHRMACHT","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_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","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","OPTRE_INS","OPTRE_PD","OPTRE_UNSC","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_NATIONALIST","SG_STURM","SG_STURM_W","SG_STURMPANZER","UNSUNG_AUS","UNSUNG_E","UNSUNG_EV","UNSUNG_G","UNSUNG_NZ","UNSUNG_W","USML_AIF"]; //All factions @@ -460,15 +469,14 @@ _p_en = _allfaction select _p_en; //Select faction selected from mission paramet _allclasse = [[_p_en /*, "IND_F"*/], _p_en_AA, _p_en_tank] call btc_fnc_mil_class; //Create classes from the corresponding factions [_p_en , "IND_F"], you can combine factions from the SAME side. //Save class name to global variable -btc_hq = _allclasse select 0; -btc_enemy_side = _allclasse select 1; -btc_type_units = _allclasse select 2; -btc_type_divers = _allclasse select 3; -btc_type_crewmen = _allclasse select 4; -btc_type_boats = _allclasse select 5; -btc_type_motorized = _allclasse select 6; -btc_type_mg = _allclasse select 7; -btc_type_gl = _allclasse select 8; +btc_enemy_side = _allclasse select 0; +btc_type_units = _allclasse select 1; +btc_type_divers = _allclasse select 2; +btc_type_crewmen = _allclasse select 3; +btc_type_boats = _allclasse select 4; +btc_type_motorized = _allclasse select 5; +btc_type_mg = _allclasse select 6; +btc_type_gl = _allclasse select 7; //Sometimes you need to remove units: - ["Blabla","moreBlabla"]; //Sometimes you need to add units: + ["Blabla","moreBlabla"]; 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 eae23450e..6ac2624f0 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/doc.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/doc.sqf @@ -90,7 +90,7 @@ To destroy an hideout just place a satchel near the ammo box close to the flag a ]; player createDiaryRecord ["Documentation", ["IED", " - Any object could be an IED, approach it carefully. Turn On your mine detector (VMH3 or VMMH3) and search for a charge in a circle of 2 meter around.
+ Any object could be an IED, approach it carefully (DO NOT rotate while your 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. @@ -147,6 +147,6 @@ player createDiaryRecord ["Documentation", ["Interaction", " player createDiaryRecord ["Documentation", [ "Version", - format [" Version %1 ",(str(btc_version) + ".1")] + format [" Version %1 ",(str(btc_version) + ".2")] ] ]; \ No newline at end of file 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 f79942d35..c57aec3ed 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 @@ -12,8 +12,8 @@ _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]; -_trigger setTriggerActivation[str(btc_player_side),"PRESENT",true]; -_trigger setTriggerStatements ["this && !btc_db_is_saving", format ["[%1] spawn btc_fnc_city_activate",_id], format ["[%1] spawn btc_fnc_city_de_activate",_id]]; +_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 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 cd66c8ecc..1ce43e4cf 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 @@ -21,8 +21,7 @@ _units = _units select {side _x isEqualTo civilian}; [_x] call btc_fnc_civ_add_weapons; - [_x] joinSilent btc_hq; - [_x] joinSilent GrpNull; + [_x] joinSilent createGroup [btc_enemy_side, true]; (group _x) setVariable ["getWeapons",true]; 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 90265f6cd..31d9a85a6 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 @@ -19,7 +19,7 @@ if ({_x distance _active_city < (_area/2) || _x distance leader _group < (_area/ {deleteVehicle _x;} foreach units _group;deleteGroup _group; }; -//Sometimes the waypoints is completed but too far do to obstacle (water for island etc) +//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; 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 2a73a4a6e..8dee28e50 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 @@ -36,7 +36,7 @@ if ((_pos nearRoads 200) isEqualTo []) then { _veh = createVehicle [_veh_type, _Spos, [], 0, "FLY"]; -_group = createGroup civilian; +_group = createGroup [civilian, true]; (selectRandom btc_civ_type_units) createUnit [_Spos, _group, "this moveinDriver _veh; this assignAsDriver _veh;"]; _group setVariable ["no_cache",true]; _group setVariable ["btc_patrol",true]; 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 335c5ab35..c8e9671e8 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 @@ -6,10 +6,10 @@ _array = _this select 1; if (_this select 2) then { _btc_city_all_distance = _array select {!(_x getVariable ["occupied",false])}; - if (_btc_city_all_distance isEqualTo []) exitWith {[]}; } else { _btc_city_all_distance = _array; }; +if (_btc_city_all_distance isEqualTo []) exitWith {[]}; _btc_city_all_distance = _btc_city_all_distance apply {[ _x distance _obj, _x]}; _btc_city_all_distance sort true; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/task_patrol.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/task_patrol.sqf index eaacf074b..e961092bc 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/task_patrol.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/task_patrol.sqf @@ -1,9 +1,10 @@ -private ["_group","_pos","_area","_behav","_allowwater"]; +private ["_group","_pos","_max_area","_behav","_allowwater","_min_area"]; _group = _this select 0; _pos = _this select 1; -_area = _this select 2; +_max_area = _this select 2; +if (_max_area < 50) then {_min_area = 0;} else {_min_area = 50;}; _behav = _this select 3; if (count _this > 4) then { _allowwater = _this select 4; @@ -13,16 +14,14 @@ if (count _this > 4) then { _group setBehaviour _behav; {_x setBehaviour _behav;} foreach units _group; -private ["_prevPos"]; -_prevPos = _pos; +private _prevPos = _pos; for "_i" from 0 to (2 + (floor (random 3))) do { - private ["_wp", "_newPos"]; - _newPos = [_prevPos, 50, _area, 1, [0,1] select _allowwater, 60 * (pi / 180), 0, []] call BIS_fnc_findSafePos; + private _newPos = [_prevPos, _min_area, _max_area, 1, [0,1] select _allowwater, 60 * (pi / 180), 0, []] call BIS_fnc_findSafePos; _prevPos = _newPos; - _wp = _group addWaypoint [_newPos, 0]; + private _wp = _group addWaypoint [_newPos, 0]; _wp setWaypointType "MOVE"; _wp setWaypointCompletionRadius 20; _wp setWaypointCombatMode "RED"; @@ -36,7 +35,6 @@ for "_i" from 0 to (2 + (floor (random 3))) do }; }; -private ["_wp"]; -_wp = _group addWaypoint [_pos, 0]; +private _wp = _group addWaypoint [_pos, 0]; _wp setWaypointType "CYCLE"; _wp setWaypointCompletionRadius 20; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 9cbe08926..3e320cb32 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -130,6 +130,7 @@ if (isServer) then { //LOG btc_fnc_log_getconfigmagazines = compile preprocessFile "core\fnc\log\getconfigmagazines.sqf"; btc_fnc_log_CuratorObjectPlaced_s = compile preprocessFile "core\fnc\log\CuratorObjectPlaced_s.sqf"; + btc_fnc_log_createVehicle = compile preprocessFile "core\fnc\log\createVehicle.sqf"; //DEAF btc_fnc_deaf_earringing = compile preprocessFile "core\fnc\deaf\earringing.sqf"; @@ -250,6 +251,14 @@ if (!isDedicated) then { btc_fnc_info_troops = compile preprocessFile "core\fnc\info\troops.sqf"; btc_fnc_info_ask_reputation = compile preprocessFile "core\fnc\info\ask_reputation.sqf"; + //LOG + btc_fnc_log_garage = compile preprocessFile "core\fnc\log\garage.sqf"; + + //TASK + btc_fnc_task_create = compile preprocessFileLineNumbers "core\fnc\task\create.sqf"; + btc_fnc_task_fail = compile preprocessFileLineNumbers "core\fnc\task\fail.sqf"; + btc_fnc_task_set_done = compile preprocessFileLineNumbers "core\fnc\task\set_done.sqf"; + //SIDE btc_fnc_side_request = compile preprocessFileLineNumbers "core\fnc\side\request.sqf"; }; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index fe2e7c851..2d8a96821 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -123,7 +123,7 @@ _array_ho = profileNamespace getVariable [format ["btc_hm_%1_ho",_name],[]]; } foreach _array_ho; _ho = profileNamespace getVariable [format ["btc_hm_%1_ho_sel",_name],0]; -btc_hq setVariable ["info_hideout", btc_hideouts select _ho]; +btc_hq = btc_hideouts select _ho; if (count btc_hideouts == 0) then {[] execVM "core\fnc\common\final_phase.sqf";}; @@ -198,14 +198,10 @@ diag_log format ["5: %1",(_x select 5)]; */ { private ["_veh","_cont","_weap","_mags","_items"]; - _veh = (_x select 0) createVehicle (_x select 1); - _veh setPosASL (_x select 1); - _veh setDir (_x select 2); + _veh = [(_x select 0),(_x select 1),(_x select 2)] call btc_fnc_log_createVehicle; if ((getPos _veh) select 2 < 0) then {_veh setVectorUp surfaceNormal position _veh;}; _veh setFuel (_x select 3); _veh setDamage (_x select 4); - _veh setVariable ["btc_dont_delete",true]; - _veh call btc_fnc_db_add_veh; { private ["_type","_cargo_obj","_obj","_weap_obj","_mags_obj","_items_obj"]; //{_cargo pushBack [(typeOf _x),[getWeaponCargo _x,getMagazineCargo _x,getItemCargo _x]]} foreach (_x getVariable ["cargo",[]]); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf index fe2e7c851..f36ddf3a3 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf @@ -123,7 +123,7 @@ _array_ho = profileNamespace getVariable [format ["btc_hm_%1_ho",_name],[]]; } foreach _array_ho; _ho = profileNamespace getVariable [format ["btc_hm_%1_ho_sel",_name],0]; -btc_hq setVariable ["info_hideout", btc_hideouts select _ho]; +btc_hq = btc_hideouts select _ho; if (count btc_hideouts == 0) then {[] execVM "core\fnc\common\final_phase.sqf";}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf index e509c783e..53e491b3e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf @@ -77,7 +77,7 @@ _array_ho = []; } foreach btc_hideouts; profileNamespace setVariable [format ["btc_hm_%1_ho",_name],_array_ho]; -profileNamespace setVariable [format ["btc_hm_%1_ho_sel",_name],(btc_hq getVariable ["info_hideout",objNull]) getVariable ["id",0]]; +profileNamespace setVariable [format ["btc_hm_%1_ho_sel",_name],btc_hq getVariable ["id",0]]; //CACHE _array_cache = []; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/extended_InitPost_EH.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/extended_InitPost_EH.hpp index e91e62b1f..2eda0ca7c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/extended_InitPost_EH.hpp +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/extended_InitPost_EH.hpp @@ -1,12 +1,17 @@ class Extended_InitPost_EventHandlers { class LandVehicle { class btc_actions { - init = "_this call btc_fnc_eh_veh_init"; + init = "[typeof (_this select 0)] call btc_fnc_eh_veh_init"; }; }; class Air { class btc_actions { - init = "_this call btc_fnc_eh_veh_init"; + init = "[typeof (_this select 0)] call btc_fnc_eh_veh_init"; + }; + }; + class Ship { + class btc_actions { + init = "[typeof (_this select 0)] call btc_fnc_eh_veh_init"; }; }; /*class CAManBase { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/veh_init.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/veh_init.sqf index c326324b0..8cd2c891a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/veh_init.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/veh_init.sqf @@ -1,22 +1,18 @@ -private ["_veh","_type"]; - -_veh = _this select 0; - -_type = typeOf _veh; +private _type = _this select 0; if (isNil "btc_actions_veh") then {btc_actions_veh = [];}; if ((btc_actions_veh pushBackUnique _type) isEqualTo -1) exitWith {}; switch true do { case (_type isKindOf "StaticWeapon"): { private ["_action"]; - _action = ["Logistic","Logistic","",{},{true}] call ace_interact_menu_fnc_createAction; + _action = ["Logistic","Logistic","\A3\ui_f\data\igui\cfg\simpleTasks\letters\L_ca.paa",{},{true}] call ace_interact_menu_fnc_createAction; [_type, 0, ["ACE_MainActions"], _action] call ace_interact_menu_fnc_addActionToClass; - _action = ["log_tow", "Tow", "", {(_this select 0) spawn btc_fnc_log_tow;}, {!isNull btc_log_vehicle_selected && {btc_log_vehicle_selected != (_this select 0)} && {[(_this select 0),btc_log_vehicle_selected] call btc_fnc_log_can_tow}}] call ace_interact_menu_fnc_createAction; + _action = ["log_tow", "Tow", "\z\ace\addons\attach\UI\attach_ca.paa", {(_this select 0) spawn btc_fnc_log_tow;}, {!isNull btc_log_vehicle_selected && {btc_log_vehicle_selected != (_this select 0)} && {[(_this select 0),btc_log_vehicle_selected] call btc_fnc_log_can_tow}}] call ace_interact_menu_fnc_createAction; [_type, 0, ["ACE_MainActions","Logistic"], _action] call ace_interact_menu_fnc_addActionToClass; - _action = ["log_hook", "Hook", "", {(_this select 0) spawn btc_fnc_log_hook;}, {true}] call ace_interact_menu_fnc_createAction; + _action = ["log_hook", "Hook", "\z\ace\addons\attach\UI\attach_ca.paa", {(_this select 0) spawn btc_fnc_log_hook;}, {true}] call ace_interact_menu_fnc_createAction; [_type, 0, ["ACE_MainActions","Logistic"], _action] call ace_interact_menu_fnc_addActionToClass; - _action = ["log_hook", "Unhook", "", {(_this select 0) spawn btc_fnc_log_unhook;}, {true}] call ace_interact_menu_fnc_createAction; + _action = ["log_hook", "Unhook", "\z\ace\addons\attach\UI\detach_ca.paa", {(_this select 0) spawn btc_fnc_log_unhook;}, {true}] call ace_interact_menu_fnc_createAction; [_type, 0, ["ACE_MainActions","Logistic"], _action] call ace_interact_menu_fnc_addActionToClass; }; case (_type isKindOf "LandVehicle") : { @@ -56,4 +52,12 @@ switch true do { _action = ["Cut_ropes","Cut ropes","\z\ace\addons\logistics_wirecutter\ui\wirecutter_ca.paa",{[] spawn btc_fnc_log_lift_destroy_ropes;},{btc_ropes_deployed && {((driver vehicle player) isEqualTo player)}}] call ace_interact_menu_fnc_createAction; [_type, 1, ["ACE_SelfActions"], _action,true] call ace_interact_menu_fnc_addActionToClass; }; + case (_type isKindOf "Ship") : { + private ["_action"]; + //Lift + _action = ["Deploy_ropes","Deploy ropes","\A3\Structures_F_Heli\VR\Helpers\Data\VR_Symbol_Heli_Slingloading_CA.paa",{[] spawn btc_fnc_log_lift_deploy_ropes;},{!btc_ropes_deployed && {((driver vehicle player) isEqualTo player)}}] call ace_interact_menu_fnc_createAction; + [_type, 1, ["ACE_SelfActions"], _action,true] call ace_interact_menu_fnc_addActionToClass; + _action = ["Cut_ropes","Cut ropes","\z\ace\addons\logistics_wirecutter\ui\wirecutter_ca.paa",{[] spawn btc_fnc_log_lift_destroy_ropes;},{btc_ropes_deployed && {((driver vehicle player) isEqualTo player)}}] call ace_interact_menu_fnc_createAction; + [_type, 1, ["ACE_SelfActions"], _action,true] call ace_interact_menu_fnc_addActionToClass; + }; }; \ No newline at end of file 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 9689f72a1..4a1dd7fcb 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 @@ -1,8 +1,7 @@ private ["_trigger","_array","_expl1","_expl2","_expl3","_man","_cond"]; -[_this] joinSilent btc_hq; -[_this] joinSilent GrpNull; +[_this] joinSilent createGroup [btc_enemy_side, true]; _this call btc_fnc_rep_remove_eh; 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 65646d0b9..6e4940881 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 @@ -1,15 +1,13 @@ -private ["_ho","_pos","_marker","_array"]; - if (count btc_hideouts == 0) exitWith {}; private ["_ho","_pos","_marker","_array"]; -_ho = btc_hq getVariable ["info_hideout",objNull]; +_ho = btc_hq; if (isNull _ho) then { _ho = selectRandom btc_hideouts; - btc_hq setVariable ["info_hideout",_ho]; + btc_hq =_ho; }; _pos = [ 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 f1338f7b3..1214ae53a 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 @@ -24,6 +24,8 @@ _action = ["Require_object", "Require object", "\A3\ui_f\data\igui\cfg\simpleTas [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; [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; +[btc_create_object, 0, ["ACE_MainActions","Logistic"], _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; @@ -54,21 +56,20 @@ _action = ["Civil_Get_down","Get down","\A3\ui_f\data\igui\cfg\simpleTasks\types _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; [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;} foreach btc_civ_type_units; +["Civilian", 0, ["ACE_MainActions"], _action, true] 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;} foreach btc_civ_type_units; +["Civilian", 0, ["ACE_MainActions","Civil_Orders"], _action, true] 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;} foreach btc_civ_type_units; +["Civilian", 0, ["ACE_MainActions","Civil_Orders"], _action, true] 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;} foreach btc_civ_type_units; +["Civilian", 0, ["ACE_MainActions","Civil_Orders"], _action, true] 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;} foreach btc_civ_type_units; +["Civilian", 0, ["ACE_MainActions","Civil_Orders"], _action, true] 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;} foreach btc_civ_type_units; +["Civilian", 0, ["ACE_MainActions"], _action, true] 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;} foreach btc_civ_type_units; +["Civilian", 0, ["ACE_MainActions"], _action, true] call ace_interact_menu_fnc_addActionToClass; //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; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/can_tow.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/can_tow.sqf index 958aacbb3..ceddce8e6 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/can_tow.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/can_tow.sqf @@ -4,20 +4,19 @@ private ["_tower","_towed","_array","_can_tow","_pos_towed","_pos_tower"]; _tower = _this select 0; _towed = _this select 1; -_array = [_tower] call btc_fnc_log_get_towable; - -if (count _array == 0) exitWith {false}; +_array = [_tower] call btc_fnc_log_get_nottowable; -if ({_towed isKindOf _x} count _array == 0) exitWith {false}; +if !({_towed isKindOf _x} count _array == 0) exitWith {false}; _can_tow = false; - - + + _pos_towed = []; _pos_tower = []; _pos_towed = _towed modeltoworld [0,5,0]; _pos_tower = _tower modeltoworld [0,-6,0]; - + if (_pos_tower distance _pos_towed < 4) then {_can_tow = true;}; -_can_tow \ No newline at end of file + +_can_tow \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf new file mode 100644 index 000000000..5b580cda2 --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf @@ -0,0 +1,22 @@ + +private _type = _this select 0; +private _pos = _this select 1; +private _dir = _this select 2; +private _textures = if (count _this > 3) then {_this select 3} else {[]}; + +_veh = createVehicle [_type, [_pos select 0, _pos select 1, 0], [], 0, "CAN_COLLIDE"]; +_veh setPosASL _pos; +_veh setDir _dir; + +{ + _veh setObjectTextureGlobal [ _foreachindex, _x ]; +} forEach _textures; +_veh setVariable ["btc_dont_delete",true]; + +if (getNumber(configFile >> "CfgVehicles" >> typeof _veh >> "isUav") isEqualTo 1) then { + createVehicleCrew _veh; +}; + +_veh call btc_fnc_db_add_veh; + +_veh \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/garage.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/garage.sqf new file mode 100644 index 000000000..3faaf8abd --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/garage.sqf @@ -0,0 +1,34 @@ + +if (count (nearestObjects [getpos ( _this select 0 ),["All"],5]) > 1) exitWith {hint "Clear the area before create another object!"}; + +disableSerialization; +uiNamespace setVariable [ "current_garage", ( _this select 0 ) ]; +private _fullVersion = missionNamespace getVariable [ "BIS_fnc_arsenal_fullGarage", false ]; +if !( isNull ( uiNamespace getVariable [ "BIS_fnc_arsenal_cam", objNull ] ) ) exitwith { "Garage Viewer is already running" call bis_fnc_logFormat; }; +private _veh = createVehicle [ "Land_HelipadEmpty_F", getPos ( _this select 0 ), [], 0, "CAN_COLLIDE" ]; +_veh setPosASL getPosASL ( _this select 0 ); +uiNamespace setVariable [ "garage_pad", _veh ]; +missionNamespace setVariable [ "BIS_fnc_arsenal_fullGarage", [ true, 0, false, [ false ] ] call bis_fnc_param ]; +with missionNamespace do { BIS_fnc_garage_center = _veh }; +with uiNamespace do { + private _displayMission = [] call ( uiNamespace getVariable "bis_fnc_displayMission" ); + if !( isNull findDisplay 312 ) then { _displayMission = findDisplay 312; }; + _displayMission createDisplay "RscDisplayGarage"; + uiNamespace setVariable [ "running_garage", true ]; + waitUntil { sleep 0.25; isNull ( uiNamespace getVariable [ "BIS_fnc_arsenal_cam", objNull ] ) }; + private _logistic_point = uiNamespace getVariable "current_garage"; + private _pad = uiNamespace getVariable "garage_pad"; + deleteVehicle _pad; + private _veh_list = ( getPos _logistic_point ) nearEntities 5; + { + {deleteVehicle _x;} forEach crew _x; + + private _type = typeOf _x; + private _pos = getPosASL _x; + private _dir = getDir _x; + private _textures = getObjectTextures _x; + deleteVehicle _x; + [_type, _pos, _dir, _textures] remoteExec ["btc_fnc_log_createVehicle", 2]; + [_type] remoteExec ["btc_fnc_eh_veh_init", -2]; + } forEach _veh_list; +}; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/lift_check.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/lift_check.sqf index 91de3653b..dd0fc8754 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/lift_check.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/lift_check.sqf @@ -1,7 +1,7 @@ private ["_array","_chopper","_can_lift","_cargo_array","_cargo","_cargo_pos","_cargo_x","_cargo_y","_cargo_z"]; -if (!(vehicle player isKindOf "Helicopter") || !isNull ((vehicle player) getVariable ["cargo",objNull])) exitWith {false}; +if (!(vehicle player isKindOf "Helicopter" || (vehicle player isKindOf "Ship")) || !isNull ((vehicle player) getVariable ["cargo",objNull])) exitWith {false}; _array = [vehicle player] call btc_fnc_log_get_liftable; if (count _array == 0) exitWith {false}; _chopper = vehicle player; @@ -22,7 +22,7 @@ _cargo_pos = getPosATL _cargo; _rel_pos = _chopper worldToModel _cargo_pos; _cargo_x = _rel_pos select 0; _cargo_y = _rel_pos select 1; -_cargo_z = _rel_pos select 2;//hintSilent format ["%1 - %2 - %3",_cargo_x,_cargo_y,_cargo_z]; +_cargo_z = ((getPosATL _chopper) select 2) - (_cargo_pos select 2);//hintSilent format ["%1 - %2 - %3",_cargo_x,_cargo_y,_cargo_z]; if (((abs _cargo_z) < btc_lift_max_h) && ((abs _cargo_z) > btc_lift_min_h) && ((abs _cargo_x) < btc_lift_radius) && ((abs _cargo_y) < btc_lift_radius)) then {_can_lift = true;} else {_can_lift = false;}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/lift_hook.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/lift_hook.sqf index 0dc783476..820f4b714 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/lift_hook.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/lift_hook.sqf @@ -2,21 +2,19 @@ private ["_chopper","_array","_cargo_array","_cargo","_bbr","_rope_length"]; _chopper = vehicle player; -_array = [vehicle player] call btc_fnc_log_get_liftable; +_array = [_chopper] call btc_fnc_log_get_liftable; _cargo_array = nearestObjects [_chopper, _array, 30]; _cargo_array = _cargo_array - [_chopper]; if (count _cargo_array > 0 && ((_cargo_array select 0) isKindOf "ACE_friesGantry") OR (typeof (_cargo_array select 0) isEqualTo "ACE_friesAnchorBar")) then {_cargo_array deleteAt 0;}; if (count _cargo_array > 0) then {_cargo = _cargo_array select 0;} else {_cargo = objNull;}; if (isNull _cargo) exitWith {}; -if (!Alive _cargo) exitWith {_cargo spawn btc_fnc_log_lift_hook_fake;}; - -private ["_rope","_max_cargo","_mass"]; +private ["_rope","_max_cargo","_mass","_support","_bbr_z"]; {ropeDestroy _x;} foreach ropes _chopper; _bbr = getArray (configfile >> "CfgVehicles" >> typeof _cargo >> "slingLoadCargoMemoryPoints"); -if (_bbr isEqualTo [] OR !(vehicle player canSlingLoad _cargo)) then { +if (_bbr isEqualTo [] OR !(_chopper canSlingLoad _cargo)) then { _bbr = boundingBoxReal _cargo; if (abs((_bbr select 0) select 0) < 5) then { @@ -25,17 +23,28 @@ if (_bbr isEqualTo [] OR !(vehicle player canSlingLoad _cargo)) then { _rope_length = 10 + abs((_bbr select 0) select 0); }; - ropeCreate [vehicle player, "slingload0", _cargo, [((_bbr select 0) select 0), ((_bbr select 1) select 1), 0], _rope_length]; - ropeCreate [vehicle player, "slingload0", _cargo, [((_bbr select 0) select 0), ((_bbr select 0) select 1), 0], _rope_length]; - ropeCreate [vehicle player, "slingload0", _cargo, [((_bbr select 1) select 0), ((_bbr select 0) select 1), 0], _rope_length]; - ropeCreate [vehicle player, "slingload0", _cargo, [((_bbr select 1) select 0), ((_bbr select 1) select 1), 0], _rope_length]; + if (!Alive _cargo) then { + _support = [_cargo, _chopper] call btc_fnc_log_lift_hook_fake; + _bbr = [(_bbr select 0) apply {_x/2}, (_bbr select 1) apply {_x/2}]; + _bbr_z = _support distance _cargo; + sleep 0.3; + } else { + _support = _cargo; + _bbr_z = 0; + }; + + ropeCreate [_chopper, "slingload0", _support, [((_bbr select 0) select 0), ((_bbr select 1) select 1), _bbr_z], _rope_length]; + ropeCreate [_chopper, "slingload0", _support, [((_bbr select 0) select 0), ((_bbr select 0) select 1), _bbr_z], _rope_length]; + ropeCreate [_chopper, "slingload0", _support, [((_bbr select 1) select 0), ((_bbr select 0) select 1), _bbr_z], _rope_length]; + ropeCreate [_chopper, "slingload0", _support, [((_bbr select 1) select 0), ((_bbr select 1) select 1), _bbr_z], _rope_length]; } else { { - ropeCreate [vehicle player, "slingload0", _cargo, _x, 11]; + ropeCreate [_chopper, "slingload0", _cargo, _x, 11]; } forEach _bbr; + _rope_length = 10; }; -if (btc_debug) then {hint str(_bbr);}; +if (btc_debug) then {hint format ["boundingBoxReal : %1 rope length : %2", _bbr, _rope_length];}; _max_cargo = getNumber (configFile >> "cfgVehicles" >> typeof _chopper >> "slingLoadMaxCargoMass"); _mass = getMass _cargo; @@ -54,7 +63,7 @@ if ((_mass + 400) > _max_cargo) then { //if (local _cargo) then {_cargo setMass _new_mass;} else {[[_cargo,_new_mass],"btc_fnc_log_set_mass",_cargo] spawn BIS_fnc_MP;}; }; -(vehicle player) setVariable ["cargo",_cargo]; +_chopper setVariable ["cargo",_cargo]; btc_lifted = true; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/lift_hook_fake.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/lift_hook_fake.sqf index 7099ad534..1bc58c24e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/lift_hook_fake.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/lift_hook_fake.sqf @@ -1,10 +1,27 @@ -btc_lifted = true; -_this attachTo [vehicle player,[0,0,-10]]; +private _cargo = _this select 0; +private _chopper = _this select 1; -btc_lift_action_unhook_fake = player addAction [("" + ("UnHook") + ""),{btc_lifted = false;}, [], 9, true, false, "", "true"]; +_cargo setVectorUp surfaceNormal position _cargo; +private _support1 = "Box_T_NATO_WpsSpecial_F" createVehicle [0,0,0]; +private _pos = getPosATL _cargo; +_support1 setDir getDir _cargo; +_support1 setPosATL _pos; +_support1 setVectorUp surfaceNormal _pos; +_cargo attachTo [_support1, [0,0, -((_cargo worldToModel _pos) select 2)]]; -waitUntil {sleep 1; (!btc_lifted || !Alive player || isNull _this || vehicle player == player)}; +_chopper addEventHandler ["RopeBreak", { + (_this select 0) removeEventHandler ["RopeBreak", _thisEventHandler]; + btc_lifted = false; + { + detach _x; + _x setVectorUp surfaceNormal position _x; + } forEach attachedObjects (_this select 2); + deleteVehicle (_this select 2); +}]; -detach _this; -player removeAction btc_lift_action_unhook_fake; \ No newline at end of file +clearWeaponCargoGlobal _support1; +clearItemCargoGlobal _support1; +clearMagazineCargoGlobal _support1; + +_support1 \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/lift_hud_loop.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/lift_hud_loop.sqf index b9aa74af0..dee31c28f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/lift_hud_loop.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/lift_hud_loop.sqf @@ -30,10 +30,10 @@ if (({_cargo isKindOf _x} count _array) > 0) then {_can_lift = true;} else {_can if (!isNull _cargo) then { _cargo_pos = getPosATL _cargo; - _rel_pos = (_chopper) worldToModel _cargo_pos; + _rel_pos = _chopper worldToModel _cargo_pos; _cargo_x = _rel_pos select 0; _cargo_y = _rel_pos select 1; - _cargo_z = _rel_pos select 2; + _cargo_z = ((getPosATL _chopper) select 2) - (_cargo_pos select 2); _obj_img ctrlShow true; _hud_x = _cargo_x / 100; switch (true) do { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/repair_wreck.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/repair_wreck.sqf index e2af58193..131a1e754 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/repair_wreck.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/repair_wreck.sqf @@ -2,7 +2,7 @@ private ["_object","_array"]; _object = _this select 0; -_array = nearestObjects [position _object, ["LandVehicle","Air"], 10]; +_array = (nearestObjects [position _object, ["LandVehicle","Air"], 10]) select {!((_x isKindOf "ACE_friesGantry") OR (typeof _x isEqualTo "ACE_friesAnchorBar"))}; if (count _array == 0) exitWith {hint "No wreck";}; 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 23accfc57..f545810ef 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 @@ -1,10 +1,11 @@ -private ["_veh","_type","_pos","_dir","_marker"]; +private ["_veh","_type","_pos","_dir","_marker","_textures"]; _veh = _this select 0; _type = typeOf _veh; -_pos = getPos _veh; +_pos = getPosASL _veh; _dir = getDir _veh; +_textures = getObjectTextures _veh; _marker = _veh getVariable ["marker",""]; btc_vehicles = btc_vehicles - [_veh]; @@ -12,12 +13,6 @@ btc_vehicles = btc_vehicles - [_veh]; if (_marker != "") then {deleteMarker _marker;}; deleteVehicle _veh; sleep 1; -_veh = createVehicle [_type, [_pos select 0, _pos select 1, 0], [], 0, "CAN_COLLIDE"]; -_veh setDir _dir; -_veh setVariable ["btc_dont_delete",true]; +_veh = [_type,_pos,_dir,_textures] call btc_fnc_log_createVehicle; -if(getNumber(configFile >> "CfgVehicles" >> typeof _veh >> "isUav")==1) then { - createVehicleCrew _veh; -}; - -_veh call btc_fnc_db_add_veh; \ No newline at end of file +_veh \ No newline at end of file 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 ceb29825f..da44c1f2d 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 @@ -1,7 +1,5 @@ -private ["_tower","_ground0","_ground1","_h0","_h1","_rel","_normg","_normh","_boundt","_boundb"]; - -_tower = _this; +private _tower = _this; btc_int_ask_data = nil; [[4,_tower,player],"btc_fnc_int_ask_var",false] spawn BIS_fnc_MP; @@ -10,17 +8,9 @@ waitUntil {!(isNil "btc_int_ask_data")}; if (!isNull btc_int_ask_data) exitWith {hint "This vehicle is already attached to another!"}; -_boundt = boundingBoxReal _tower; -_boundb = boundingBoxReal btc_log_vehicle_selected; -_ground0 = (_boundt select 0) select 2; -_ground1 = (_boundt select 1) select 2; -_h0 = (_boundb select 0) select 2; -_h1 = (_boundb select 1) select 2; -_normg = abs(_ground1 - _ground0); -_normh = abs(_h1 - _h0); -_rel = _ground0 - _h0 - (_normh - _normg)/2; +private _relative_pos = _tower worldToModel getPosATL btc_log_vehicle_selected; -btc_log_vehicle_selected attachTo [_tower, [0,-(sizeOf typeOf _tower)/1.5,_rel]]; +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)]]; [[_tower,"tow",btc_log_vehicle_selected],"btc_fnc_int_change_var",false] spawn BIS_fnc_MP; [[btc_log_vehicle_selected,"tow",_tower],"btc_fnc_int_change_var",false] spawn BIS_fnc_MP; \ 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 fd3b5bb68..0b39e12c2 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 @@ -31,7 +31,7 @@ switch (true) do { } else {[_group,_rpos,_area,"SAFE"] call btc_fnc_task_patrol;}; }; case (_wp > 0.3 && _wp < 0.75) : { - [_group,_rpos,(_area*2),"AWARE"] call btc_fnc_task_patrol; + [_group,_rpos,_area,"AWARE"] call btc_fnc_task_patrol; }; case (_wp > 0.75) : { private ["_wpa"]; 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 bbbc0ecfb..fffe8c0df 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 @@ -2,7 +2,6 @@ private _factions = _this select 0; private _en_AA = _this select 1; private _en_tank = _this select 2; -private _hq = []; private _enemy_side = []; private _type_units = []; private _type_divers = []; @@ -21,9 +20,6 @@ private _allclasse = ("(configName _x) isKindOf 'AllVehicles'" configClasses (co _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"); -_hq = [btc_hq_red,btc_hq_blu,btc_hq_green] select getNumber(configfile >> "CfgFactionClasses" >> (_factions select 0) >> "side"); - - //Select only faction from the same side _factions = _factions select {([east,west,independent,civilian] select getNumber(configfile >> "CfgFactionClasses" >> _x >> "side")) isEqualTo _enemy_side}; @@ -40,7 +36,7 @@ if (_enemy_side isEqualTo btc_player_side) exitWith { //Units _divers = _allclasse_f select {!((_x find "diver") isEqualTo -1)}; - if (_divers isEqualTo []) then {_divers = if (_hq isEqualTo btc_hq_red) then {["O_diver_F","O_diver_exp_F","O_diver_TL_F"]} else {["I_diver_F","I_diver_exp_F","I_diver_TL_F"]};}; + 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 ((_allclasse_f select {_x isKindOf "Man"}) - _divers); @@ -71,4 +67,4 @@ _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}; -[_hq,_enemy_side,_type_units,_type_divers,_type_crewmen,_type_boats,_type_motorized,_type_mg,_type_gl,_type_motorized_armed] \ No newline at end of file +[_enemy_side,_type_units,_type_divers,_type_crewmen,_type_boats,_type_motorized,_type_mg,_type_gl,_type_motorized_armed] \ No newline at end of file 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 1b205df5c..a7e467920 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 @@ -42,7 +42,7 @@ switch (true) do { } else {[_group,_rpos,_area,"SAFE",_pos_iswater] spawn btc_fnc_task_patrol;}; }; case (_wp > 0.3 && _wp < 0.75) : { - [_group,_rpos,(_area*2),"AWARE",_pos_iswater] spawn btc_fnc_task_patrol; + [_group,_rpos,_area,"AWARE",_pos_iswater] spawn btc_fnc_task_patrol; }; case (_wp > 0.75) : { private ["_wpa"]; 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 aea941e62..50f9acbfe 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 @@ -9,7 +9,7 @@ _explosive = (getNumber(configFile >> "cfgAmmo" >> _ammo >> "explosive") > 0); if (_explosive && {_damage > 0.6}) then { private ["_id","_marker","_city","_array"]; - + _id = _hideout getVariable "id"; for "_i" from 0 to (count btc_hideouts - 1) do { @@ -18,27 +18,27 @@ if (_explosive && {_damage > 0.6}) then { btc_hideouts = btc_hideouts - [0]; 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"; - + _city = _hideout getVariable ["assigned_to",_hideout]; _city setVariable ["has_ho",false]; - - deleteVehicle (nearestObject [(getpos _hideout), "Flag_Red_F"]); + + deleteVehicle (nearestObject [getpos _hideout, "Flag_Red_F"]); _hideout setDamage 1; - + _array = _hideout getVariable ["markers",[]]; - + {deleteMarker _x} foreach _array; - - if (btc_hq getVariable ["info_hideout",objNull] isEqualTo _hideout) then {btc_hq setVariable ["info_hideout",objNull]}; - + + if (btc_hq isEqualTo _hideout) then {btc_hq = objNull}; + if (count btc_hideouts == 0) then {[] execVM "core\fnc\common\final_phase.sqf";}; - + //Notification [[2,count btc_hideouts],"btc_fnc_show_hint"] spawn BIS_fnc_MP; if (btc_debug_log) then {diag_log format ["btc_fnc_mil_hd_hideout: _this = %1 ; POS %2 ID %3",_this,getpos _hideout,_id];}; 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 c1803569f..f62085fb3 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 @@ -40,7 +40,7 @@ if (_useful getVariable ["hasbeach",false]) then { _pos = getPos _useful; }; -_group = createGroup btc_enemy_side; +_group = createGroup [btc_enemy_side, true]; _group setVariable ["city",_city]; _group setVariable ["no_cache",true]; _group setVariable ["btc_patrol",true]; 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 7a1a32bd3..434f733dc 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,7 +29,7 @@ btc_side_done = false; btc_side_failed = false; btc_side_assigned = true;publicVariable "btc_side_assigned"; -[14,_pos,_city getVariable "name"] call btc_fnc_task_create; +[14,_pos2,_city2 getVariable "name"] call btc_fnc_task_create; btc_side_jip_data = [14,getPos _city1,_city1 getVariable "name"]; 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 8a3d51aad..8d6b64656 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,7 +26,7 @@ btc_side_done = false; btc_side_failed = false; btc_side_assigned = true;publicVariable "btc_side_assigned"; -[12,_pos,_city getVariable "name"] call btc_fnc_task_create; +[12,_pos2,_city2 getVariable "name"] call btc_fnc_task_create; btc_side_jip_data = [12,_pos1,_city1 getVariable "name"]; 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 13bb1ccbb..e1df78968 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 @@ -1,8 +1,14 @@ -private ["_side"]; - if (btc_side_assigned) exitWith {}; +private ["_side","_cycle"]; + +if (_this isEqualTo []) then { + _cycle = false; +} else { + _cycle = _this select 0; +}; + if (count btc_side_list_use == 0) then {btc_side_list_use = + btc_side_list;}; _side = selectRandom btc_side_list_use; @@ -14,17 +20,21 @@ btc_side_done = false; btc_side_failed = false; switch (_side) do { - case 0 : {[] spawn btc_fnc_side_supply;}; - case 1 : {[] spawn btc_fnc_side_mines;}; - case 2 : {[] spawn btc_fnc_side_vehicle;}; - case 3 : {[] spawn btc_fnc_side_get_city;}; - case 4 : {[] spawn btc_fnc_side_tower;}; - case 5 : {[] spawn btc_fnc_side_civtreatment;}; - case 6 : {[] spawn btc_fnc_side_checkpoint;}; - case 7 : {[] spawn btc_fnc_side_civtreatment_boat;}; - case 8 : {[] spawn btc_fnc_side_underwater_generator;}; - case 9 : {[] spawn btc_fnc_side_convoy;}; - case 10 : {[] spawn btc_fnc_side_rescue;}; - case 11 : {[] spawn btc_fnc_side_capture_officer;}; - case 12 : {[] spawn btc_fnc_side_hostage;}; + 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;}; +}; + +if (_cycle) then { + [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/underwater_generator.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/underwater_generator.sqf index bcd2ead2d..9c49b627b 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 @@ -1,5 +1,5 @@ -private ["_useful","_city","_pos","_marker","_wrecks","_generator","_objects","_storagebladder","_area"]; +private ["_useful","_city","_pos","_marker","_wrecks","_generator","_objects","_storagebladder","_area","_group"]; //// Choose a Marine location occupied \\\\ _useful = btc_city_all select {((_x getVariable ["occupied",false]) && (_x getVariable ["type",""] == "NameMarine"))}; @@ -52,7 +52,13 @@ _marker setMarkerSize [0.6, 0.6]; //// Create underwater generator \\\\ _generator = (selectRandom btc_type_generator) createVehicle _pos; -_storagebladder = (selectRandom btc_type_storagebladder) createVehicle [(_pos select 0) + 5, (_pos select 1), _pos select 2]; +_storagebladder = (selectRandom btc_type_storagebladder) createVehicle [(_pos select 0) + 5, _pos select 1, _pos select 2]; + +_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]; waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || !Alive _generator )}; 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 37e54ef58..55b7ee133 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 @@ -33,4 +33,8 @@ addMissionEventHandler ["HandleDisconnect",{ setTimeMultiplier btc_p_acctime; -{[_x,30,false] spawn btc_fnc_eh_veh_add_respawn;} forEach btc_helo; \ No newline at end of file +{[_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 diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm index 7ee4680dc..cfc50cd5a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm @@ -1,11 +1,11 @@ -version=52; +version=53; class EditorData { moveGridStep=1; angleGridStep=0.2617994; scaleGridStep=1; autoGroupingDist=10; - toggles=641; + toggles=513; class ItemIDProvider { nextID=156; @@ -16,10 +16,10 @@ class EditorData }; class Camera { - pos[]={8266.585,120.9651,10141.467}; - dir[]={0.288046,-0.6332072,-0.71844208}; - up[]={0.2356492,0.77396113,-0.58775413}; - aside[]={-0.92821151,-2.332381e-007,-0.37215087}; + pos[]={8250.9043,117.55215,10056.634}; + dir[]={0.63489479,-0.76769865,-0.087500997}; + up[]={0.76053244,0.64078408,-0.10481572}; + aside[]={-0.13653453,-2.9675721e-007,-0.99068516}; }; }; binarizationWanted=0; @@ -42,7 +42,6 @@ addons[]= "ace_explosives", "A3_Modules_F_Curator_Curator", "ace_respawn", - "ace_captives", "ace_advanced_ballistics", "ace_winddeflection", "rhsusf_c_fmtv", @@ -52,13 +51,13 @@ class AddonsMetaData { class List { - items=20; + items=19; class Item0 { className="A3_Ui_F"; name="Arma 3 - User Interface"; author="Bohemia Interactive"; - url="http://www.arma3.com"; + url="https://www.arma3.com"; }; class Item1 { @@ -82,7 +81,7 @@ class AddonsMetaData className="A3_Structures_F_Ind"; name="Arma 3 - Industrial Structures"; author="Bohemia Interactive"; - url="http://www.arma3.com"; + url="https://www.arma3.com"; }; class Item5 { @@ -96,21 +95,21 @@ class AddonsMetaData className="A3_Structures_F_Mil"; name="Arma 3 - Military Buildings and Structures"; author="Bohemia Interactive"; - url="http://www.arma3.com"; + url="https://www.arma3.com"; }; class Item7 { className="A3_Soft_F_Gamma"; name="Arma 3 - Unarmored Land Vehicles"; author="Bohemia Interactive"; - url="http://www.arma3.com"; + url="https://www.arma3.com"; }; class Item8 { className="A3_Characters_F"; name="Arma 3 Alpha - Characters and Clothing"; author="Bohemia Interactive"; - url="http://www.arma3.com"; + url="https://www.arma3.com"; }; class Item9 { @@ -145,7 +144,7 @@ class AddonsMetaData className="A3_Modules_F_Curator"; name="Arma 3 Zeus Update - Scripted Modules"; author="Bohemia Interactive"; - url="http://www.arma3.com"; + url="https://www.arma3.com"; }; class Item14 { @@ -155,33 +154,26 @@ class AddonsMetaData url="http://ace3mod.com/"; }; class Item15 - { - className="ace_captives"; - name="ACE3 - Captives"; - author="ACE-Team"; - url="http://ace3mod.com/"; - }; - class Item16 { className="ace_advanced_ballistics"; name="ACE3 - Advanced Ballistics"; author="ACE-Team"; url="http://ace3mod.com/"; }; - class Item17 + class Item16 { className="ace_winddeflection"; name="ACE3 - Wind Deflection"; author="ACE-Team"; url="http://ace3mod.com/"; }; - class Item18 + class Item17 { className="rhsusf_c_fmtv"; name="FMTV Trucks"; url="http://www.rhsmods.org/"; }; - class Item19 + class Item18 { className="rhsusf_c_RG33L"; name="RG33L MRAP"; @@ -301,7 +293,7 @@ class Mission }; class Entities { - items=62; + items=57; class Item0 { dataType="Marker"; @@ -496,8 +488,8 @@ class Mission dataType="Object"; class PositionInfo { - position[]={8295.0449,77.596947,10054.31}; - angles[]={0,5.7184772,6.1089697}; + position[]={8295.166,77.579712,10052.532}; + angles[]={0,5.7184772,0}; }; side="Empty"; flags=4; @@ -509,7 +501,6 @@ class Mission }; id=5; type="RHS_M2A3"; - atlOffset=0.017234802; }; class Item6 { @@ -957,12 +948,14 @@ class Mission }; id=29; type="B_Soldier_F"; + atlOffset=-3.8146973e-005; }; }; class Attributes { }; id=28; + atlOffset=-3.8146973e-005; }; class Item22 { @@ -997,39 +990,6 @@ class Mission id=30; }; class Item23 - { - dataType="Logic"; - class PositionInfo - { - position[]={8269.3535,59.91309,9963.1123}; - }; - id=70; - type="ACE_moduleCargoSettings"; - class CustomAttributes - { - class Attribute0 - { - property="ACE_moduleCargoSettings_enable"; - expression="_this setVariable ['enable',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "BOOL" - }; - }; - value=0; - }; - }; - }; - nAttributes=1; - }; - }; - class Item24 { dataType="Logic"; class PositionInfo @@ -1140,7 +1100,7 @@ class Mission nAttributes=5; }; }; - class Item25 + class Item24 { dataType="Logic"; class PositionInfo @@ -1192,78 +1152,7 @@ class Mission nAttributes=2; }; }; - class Item26 - { - dataType="Logic"; - class PositionInfo - { - position[]={8269.8047,57.457603,9954.5703}; - }; - id=73; - type="ace_captives_moduleSettings"; - class CustomAttributes - { - class Attribute0 - { - property="ace_captives_moduleSettings_requireSurrender"; - expression="_this setVariable ['requireSurrender',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "SCALAR" - }; - }; - value=1; - }; - }; - }; - class Attribute1 - { - property="ace_captives_moduleSettings_allowHandcuffOwnSide"; - expression="_this setVariable ['allowHandcuffOwnSide',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "BOOL" - }; - }; - value=0; - }; - }; - }; - class Attribute2 - { - property="ace_captives_moduleSettings_allowSurrender"; - expression="_this setVariable ['allowSurrender',_value,true];"; - class Value - { - class data - { - class type - { - type[]= - { - "BOOL" - }; - }; - value=0; - }; - }; - }; - nAttributes=3; - }; - }; - class Item27 + class Item25 { dataType="Logic"; class PositionInfo @@ -1315,7 +1204,7 @@ class Mission nAttributes=2; }; }; - class Item28 + class Item26 { dataType="Logic"; class PositionInfo @@ -1500,7 +1389,7 @@ class Mission nAttributes=9; }; }; - class Item29 + class Item27 { dataType="Logic"; class PositionInfo @@ -1704,7 +1593,7 @@ class Mission nAttributes=10; }; }; - class Item30 + class Item28 { dataType="Logic"; class PositionInfo @@ -1794,7 +1683,7 @@ class Mission nAttributes=4; }; }; - class Item31 + class Item29 { dataType="Group"; side="West"; @@ -1824,7 +1713,7 @@ class Mission }; id=89; }; - class Item32 + class Item30 { dataType="Group"; side="West"; @@ -1854,7 +1743,7 @@ class Mission }; id=91; }; - class Item33 + class Item31 { dataType="Group"; side="West"; @@ -1884,7 +1773,7 @@ class Mission }; id=93; }; - class Item34 + class Item32 { dataType="Group"; side="West"; @@ -1914,7 +1803,7 @@ class Mission }; id=95; }; - class Item35 + class Item33 { dataType="Group"; side="West"; @@ -1944,7 +1833,7 @@ class Mission }; id=97; }; - class Item36 + class Item34 { dataType="Group"; side="West"; @@ -1974,7 +1863,7 @@ class Mission }; id=99; }; - class Item37 + class Item35 { dataType="Group"; side="West"; @@ -2004,7 +1893,7 @@ class Mission }; id=101; }; - class Item38 + class Item36 { dataType="Group"; side="West"; @@ -2034,7 +1923,7 @@ class Mission }; id=103; }; - class Item39 + class Item37 { dataType="Group"; side="West"; @@ -2066,7 +1955,7 @@ class Mission id=105; atlOffset=0.028755188; }; - class Item40 + class Item38 { dataType="Group"; side="West"; @@ -2098,7 +1987,7 @@ class Mission id=107; atlOffset=0.072166443; }; - class Item41 + class Item39 { dataType="Group"; side="West"; @@ -2128,7 +2017,7 @@ class Mission }; id=109; }; - class Item42 + class Item40 { dataType="Group"; side="West"; @@ -2158,7 +2047,7 @@ class Mission }; id=111; }; - class Item43 + class Item41 { dataType="Group"; side="West"; @@ -2188,7 +2077,7 @@ class Mission }; id=113; }; - class Item44 + class Item42 { dataType="Group"; side="West"; @@ -2218,7 +2107,7 @@ class Mission }; id=115; }; - class Item45 + class Item43 { dataType="Group"; side="West"; @@ -2248,7 +2137,7 @@ class Mission }; id=117; }; - class Item46 + class Item44 { dataType="Group"; side="West"; @@ -2278,7 +2167,7 @@ class Mission }; id=119; }; - class Item47 + class Item45 { dataType="Group"; side="West"; @@ -2308,7 +2197,7 @@ class Mission }; id=121; }; - class Item48 + class Item46 { dataType="Group"; side="West"; @@ -2338,7 +2227,7 @@ class Mission }; id=123; }; - class Item49 + class Item47 { dataType="Group"; side="West"; @@ -2370,7 +2259,7 @@ class Mission id=125; atlOffset=0.0039749146; }; - class Item50 + class Item48 { dataType="Group"; side="West"; @@ -2402,7 +2291,7 @@ class Mission id=127; atlOffset=0.0039749146; }; - class Item51 + class Item49 { dataType="Group"; side="West"; @@ -2432,7 +2321,7 @@ class Mission }; id=129; }; - class Item52 + class Item50 { dataType="Group"; side="West"; @@ -2462,231 +2351,7 @@ class Mission }; id=131; }; - class Item53 - { - dataType="Group"; - side="East"; - class Entities - { - items=1; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={8133.771,74.474968,9941.1045}; - angles[]={0,3.1415927,0}; - }; - side="East"; - flags=6; - class Attributes - { - skill=0.60000002; - init="if (isServer) then {this enableSimulation false;hideObjectGlobal this;this allowDamage false;};"; - name="btc_hq_red"; - }; - id=134; - type="O_officer_F"; - class CustomAttributes - { - class Attribute0 - { - 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; - }; - }; - }; - class Attribute1 - { - 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; - }; - }; - }; - nAttributes=2; - }; - }; - }; - class Attributes - { - }; - id=133; - }; - class Item54 - { - dataType="Group"; - side="West"; - class Entities - { - items=1; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={8135.3682,74.47419,9941.0234}; - angles[]={0,3.1415927,0}; - }; - side="West"; - flags=6; - class Attributes - { - skill=0.60000002; - init="if (isServer) then {this enableSimulation false;hideObjectGlobal this;this allowDamage false;};"; - name="btc_hq_blu"; - }; - id=136; - type="B_Soldier_F"; - class CustomAttributes - { - class Attribute0 - { - 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; - }; - }; - }; - class Attribute1 - { - 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; - }; - }; - }; - nAttributes=2; - }; - }; - }; - class Attributes - { - }; - id=135; - }; - class Item55 - { - dataType="Group"; - side="Independent"; - class Entities - { - items=1; - class Item0 - { - dataType="Object"; - class PositionInfo - { - position[]={8136.916,74.475258,9941.0234}; - angles[]={0,3.1415927,0}; - }; - side="Independent"; - flags=6; - class Attributes - { - skill=0.60000002; - init="if (isServer) then {this enableSimulation false;hideObjectGlobal this;this allowDamage false;};"; - name="btc_hq_green"; - }; - id=138; - type="I_soldier_F"; - atlOffset=-0.00099945068; - class CustomAttributes - { - class Attribute0 - { - 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; - }; - }; - }; - class Attribute1 - { - 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; - }; - }; - }; - nAttributes=2; - }; - }; - }; - class Attributes - { - }; - id=137; - atlOffset=-0.00099945068; - }; - class Item56 + class Item51 { dataType="Object"; class PositionInfo @@ -2704,6 +2369,7 @@ class Mission }; id=145; type="rhsusf_M1078A1P2_B_M2_d_open_fmtv_usarmy"; + atlOffset=7.6293945e-005; class CustomAttributes { class Attribute0 @@ -2728,7 +2394,7 @@ class Mission nAttributes=1; }; }; - class Item57 + class Item52 { dataType="Object"; class PositionInfo @@ -2771,7 +2437,7 @@ class Mission nAttributes=1; }; }; - class Item58 + class Item53 { dataType="Object"; class PositionInfo @@ -2813,26 +2479,25 @@ class Mission nAttributes=1; }; }; - class Item59 + class Item54 { dataType="Logic"; class PositionInfo { - position[]={8131.314,74.493202,9941.0576}; - angles[]={6.2765183,0,6.2751913}; + position[]={8302.7266,75.940002,10058.99}; }; name="btc_hc_1"; isPlayable=1; id=153; type="HeadlessClient_F"; }; - class Item60 + class Item55 { dataType="Object"; class PositionInfo { - position[]={8267.8828,79.948425,10064.716}; - angles[]={0.12205087,0.95726073,6.2392201}; + position[]={8272.0283,79.696327,10065.254}; + angles[]={0.17033349,0.95726073,6.2392135}; }; side="Empty"; flags=4; @@ -2844,6 +2509,7 @@ class Mission }; id=154; type="rhsusf_M1237_M2_usarmy_d"; + atlOffset=-0.0018463135; class CustomAttributes { class Attribute0 @@ -2868,13 +2534,13 @@ class Mission nAttributes=1; }; }; - class Item61 + class Item56 { dataType="Object"; class PositionInfo { - position[]={8273.5693,80.364021,10058.454}; - angles[]={0.12205087,0.65331161,6.1297359}; + position[]={8276.9688,79.675079,10059.785}; + angles[]={0.12205668,0.35431969,6.1297355}; }; side="Empty"; flags=4; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission_Tanoa.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission_Tanoa.sqm index b8f4ed8d3895b4f84fca7a36134df3cf1a86e769..1f3a83f94617caa3fc060c2bbb4209588f6f89ef 100644 GIT binary patch literal 80242 zcmeHQTW{M)vVPVA`yX_49G)RL# z|LOam|J0eqU&2>OG`>v3#ZVhC-NK=rV16@IH|sWYJkO+E%TZ9;#rW~7G=7!Dt3@=w zIgOU-kZH6zjc;(B<ANKU5{<(Io4@1#&OH2fz6WS(xD2#8nsZ^25jBcavG}z%xy^&m3o9F++3vrlvasN4FTiS7#h0 zbfh-WE$nwqqyJPJxGvLm+cN39;knGRY)>4%T8N`f$1*M3ar)Z8badObU5^fSOy)VD zr8qcP;z{Xvx}>RVCNo(7DH~t}uIsVzsixUy*Q?NS%iLLN3I{w|FJPoO4K!ActaGG7Gv!_i6W+ zWteo&z;($rNZJ#}1gmrsC&S*ecoNQ{K^$l{$DO%c2D#!*t|>BURLifZx15R;_-42CpUj<9)aFC zf~o{SUgRArbi$6+GEJgj+ARc39=d;W8I6N2q*o=<$@3TVB88Nf-ye28y$S>QPCEHZ z1JQ6T0~Dh-wuWG4;~1(0gRC|a3_GGUNN&5&R?&0}*jRRh`S|xBp0#%1iY99w^e<4w zkmhjQeM5tNp9ylAtosuSd)-h=3a|9Gh2Wk{7n6YAdaf8bb)Qe;bOKsG7-Kq(11824 z`o1(&!I&2u2+9=vO^oSo7y}2H#z821GI{+?qwqG2fW83k)r`Sd~*bZi*P zivm0M_-a_Qo^Jx?CIS4vaJB6IvKR+x2;RONCD8)rP*;NbgE2L0#s{GX<;gatJnOd!emwN%C~gSFHYX=M#0PhN&vO->@tMoqnoDg*@ZKEISR=+iVIs9ZVg%Q zr!d6g8}2Bk`La3<~}i4Jv-XXVj=9-OJnP#0Hx zA52#v-B)@C(r198B~QB8EVrj1h1i}Q-|5gc?v2vn`E~HEcXDxY@((yMe7kVf>8s%8 z{8RiCe=CovfJW^xpRLjqewX04$9u-h=O=GYF4jL}=L=C-GD_n!&-1ss9P0EqoD^mD zAVMhYk#Ya_yzydAl5iS+THQQH^dO#QY;f?D;{sK1jmj-5<+y;;PWoRE?>ypMuZkP_ zv(t>0pOPrNhD|J-;o-BZ=fmzO?iyP6^^22>tIO`m+tcp(+1t}gL1)Cvk}pyC^$G#2 zVeivz_Z4)_6v7?F;sA&lTyY8+{2C$>CPrRtd=XH1jNWhuME4%wN+t7OQytaPA^p;INT zIay!EH>aS*Ee(@#Ro}Um)T!@MWbMT~jnatJvk)~AO0jtSvN@DOT2g?62vtgDgwP`{ z6wfK{XX*wUSbf9R2DWY?^vD=RS_KzNWe*M^6xy0tWG2%f{>0No&J1%y$sW#VX}d3Xog@kaU&rQ6n<4S>Q7R%`W+UN2{&$l1&gR!KDVhwX%RC8UfC>A$ zHL$^zt`7Rx`oQ)qLo%kA2H+8Nd!UVm!G5Q6m+sR{!bD~$_TO7B%H=RlaDL!2WkrSz|9cYK!|@of9;#j zOP^`-&_Xt7+?s<}z0Kr{kuY1c&rl%FhaS{P@=4QmFPva4>SsXMENT4`UWcX@Sj z_V!h7$mFI9D3M!i_$thq-Us~a^Itp76tt%ZF%>9`=8SxP?y>Iq){Acn}U?g%h&-`~Zqc8!e@B^{`WB)ps zF2j%c+bQUgiA(lbvq&=9i318fthmd2kZ054^31#enA@ zvKHVHeMQfKtZar>B)N)G>b)ep~p{`t+8+95O9Gv-$` zhcA)13|&Wv|$-l!$6S~;GXR;*I|$oOJ}yLTQ-S|_%QWMSL2-TXpZA@ zR|Jlyp=D-#ne{EQ?fOVmFm2m(Nd|sDi*HA?xPi;K7AvHgr-%ig4!r{_m}@Z2GFzmmg>xJSUY0yXemtm&Rk1M0qC&<{>W{-|NLH;dCNgWbFuRbQQaDWtwA37| zlh?L++H7Vq$8s%XMhVThN3dzVtM%R$_o##;Q}{{Sx>IZ2r`wQB^^ylQYw)UQ+hUb0 zq}!LdX{xj3a!-rAE#dR6_qMSAA-pYR=4u~`!Qinxogp(2p%Fy)NG~+tXjv&Z-eDJa+)hXt4kEp=2#r{tLIfuT)8Is^oC9bp8GnP6z<4s65{ zBo8UJA$dTWts6S<5P@dL(oIHw5z|e$NL~hw55?3S#W?&;I9HD&GBN!k1BuV_j8>l_ zd%6Eq1QRK&0Jzg#%V^=QWE|cvm{DUv=w!b4b{ zhuC#844Yv>XNK;&Rz;+cU#H`x+95fMWU|P>GCC8Ov%Cj8JwhglcQ(Ct5 zScJ-`36(CROv0K|aOxtYB+_+a1!UJUh-;-v2-T5FRpW&Cy`>7U1f0?bu0^JwscCvK zx35SP+!l%(x(>;ch598(7Azo$p@q68`=L>)02N)P5D5OKav+{!kn{Z>nY)c}KV*cP z?KP>vfT?9WI=mPY`BV;UFSzCUKy#fe_Eu(Q+oV|?1nWEpnh}+Lay7Ak+qrAKy_ZWJRw8VsRXaO(hX+O~fJ-v|3(Ze*I3ToEymWfo0kr51HyeT{6X(dzmdnQ_^z$~j8Wb@wkKP4TZ?B&W~2-#;J?>+Nbf?TaMFk7D*vj#L5yv2iiWoWFL^U7TKu(wEM!6{6srf^X^=a%w%D<>7_7vCx*dl6?iKNS-gVIqkt>QBfU; zcH~c)iWm600ZiotLII|iF?vRXMU=AyrkHHe9K&?&7EGz*Qwyd)D40@SW-ddD3Q)i1 z3PM^=xtZ9)XsKSgY*5gz2Q?G-4x=(_L4nZ*Em(um##G7Ufl-t|Vy+w>Dl(}|%4J6I zm!V}_!Su~AO8wtlLw_U~E%}-+<~PwitUH_Q!BCcTfZzffMI(Y0)_rf{k-r5X!g z6vMh=!L^>{W2%hG%V<4IQquG<_bff`S;~0~zN=6Kif3AEtdO*Y#K+|CeM6$?!J;|_ z4XUt)h>bbIR0uwjff~UxwLq#2MyNqlGz>*SCT1V|Pc7677zV>cqk+n4{3ybxC4@pd zQXN$`Gy#E}7Td6^6A(q3{z&w%l%rDeA<-E0#g}lNQuu9(=8Yeo$X1skH2{%JbZB_e z|1OMTQG|@z04hR8=6}Pn|H&&3;jcTTX?M|iD{G~h)m#b^HG+#IQ$_G9LF^(zR=K|a z^Vhiom5uSTqN?%b5x zBacGfMN@J3ArZCQc}Mkq6rG=eMD8wSWXq4qHdN>+G2w1HzD0|ut*J-{9}*3BD*Df# zGN)bsWepK|hDTvnR^^+zROA;`8IV_o=X=DPQ6t{jTWOdz$agi(7!*7ASHV`89T^es zq6(kzUQd-=tNNnnZ%zl5LV09EQG4R>Lt?L8L^Ka7=j6-3WQ0{M1v$+oc8R}&Pk5NP zu|VQ}XpZSmN-02FaI{Wv42Fb%fVmDZN0~%6vI5M3;K=4Sm~Emgf;*Z#$v_?`KL}4t znL6k=DqB=vl)FdfeSOeooT1VHrG!86=&5+vePC_v-u^{M&EZec3GZ2qXzLP<-AD0! zj%G6oBHhJ}n=W!dJX)C(%w8zG2<5BrGEsnknzxqv>WM!r zZB^-)LLgp|_*+Q7&do}p>x;aIdrChRKtNuhVNe|~v(PPtq~FCnjA!QICPn)D*1%&Z zVPIBYlMEz3NakhKR>W_J2gHQ=2^!Vi%tiiorG-cl*E5i8i*|74-a8j<9*3V4%>v80 z0!^7TQ)d;P2RMK?z3+rPDx7pEK&dG~ETZZG0ov+ha6u?PoE z%)0%jDDOuWJkzK#43eH~Piw9%p(H`WwLIam1Mblw&B}5N6?reUpD5%^Ncv@%rqoYS z^1yxpU2tFdM*cPOc*LeR@rbW0vNiwJPdy|)+{Mn6(4lI8Oci9G;#K4`W*bqwk-Q;kX%UYp5gZ0e7^1iM@#)oz;peb ze_2Cxp0&3V(Hq$nhI3`o{H`Fx=F1%I3qby0Wy&)n{9SK?Cw}boCaRG7D~ZF_YNzq+ zqow=KjL&BkcOo}t@h%tW*oZc?`J!fbtC-SR2SnceM%PsLP-cb-z88OmrYGI3bIWmG z?qOCE^Ax$dn(4wR6aipn<+Y_!{1D@DOXc~Lmfo;JkBs$JJisE>gOHPMp!R0}T`;y9 zkH3s&E36@cqL_gQMkepj=y`Sjx?{_ecb(}|kg_$`Sa z^5yroH{#{-$4TBTcw2SknLK`tC(q5weR=Yj=%wZ`SOv$!iU>tFPQ`tf%pp=V==GM@ zuf5B2H?cq)CWmbqo)C`7KC-m#9E#$!|B(%7n!&$kY;>dlzL5D_sOI3akh1_k6AZZ3HnO(R^FCU{PYLxxKt=J zMHJPqg(O!fDbc!_l4OUrjh4!bA*xhW^9u33R)1DHws-}_Hx*&>nwV_2{FEP+_a@Y) z@Rj5dG$AQn5p{O4)+R?BF0RKXP>;EVp@t5?j=@_PVzow7G>EVVXbzlb^Bxv@J7#rwV=GwwSLXYEy37r)^)MWD8J_$<})ZDB-Qu5a^hD?P0=<(L&%JGG84mo<#uU3_RV; zmxeqn0LmN5uLq#b_CxMivCH((G*vc=K!enUwC}^mp|V?P(@n=bXjjdOUTqOd zzLgfCj=Bx<-VsXHqimwCHD>3SDCAIaD#9DIX8VU6xog^8>Ycc3p zmtNaD28oP`Dh3&iZ3T}9gOKjd{UF_TY@I*|9R*GAFavo^tK~%09ihUFZFBmhE^8g7 zC11(&2X&ORf!D5eam)*w?Hj6C<~VQEg*7DO0rF~5)v+L%J3xwqOHhU?E)NSq0m|6G zaO^d?>5m-JW5rr+>;0+X^))56K)JUL7e}~b3XQZ5*If=*p5BaitGHyv*Wz1+m~H07 zV@|j3AH^gmY*vFc7~@=UyfEh3B1zrA`tJ@=SM*H;ReL_k7D)oiUu`UL$SsV7suj^Au-S}d7-d@#duu~W9~pV zExWMY4k$yNXr^2sl$yZDSCZl*F^@(!xC3qndbqKRf<8g|tusqREQnhRqPi!zjavdOLx+2icb>vvpOx(9% zjHeCPu5rdOSCWG>Y$h^ybWD|E!6)zr)^uhYQ+FPbHF95MEo;bEzSEm$B0I14YLB|M z61JV?ak0MF^%939IW0cY11h7k5*gB*cQc=ifFc`D>r2_i|k=du1b^PT)&DT z6#RtW!r;nPIJPLei?7AEigIpiTjYCfYg^jdmP~fg<_0ibGfx_HppYveQ`G3jIO^(5 z6Vu+JI@7Q;kAg3#&eXj_P3mG>%pr(Z(`FXu(Sr=Z4mXh6BGkr-ZX|74ShyKdnfYxy zgMK^R{XY(0wdi0)J_jcZ-yHqb9j z?e8rX{V0L{7K^4q>o%3#rsjf65j`uz{&FWK-Tg3Rxqb}UcJFuA$29LW{ zn07tX4s1-ndkV7CVp)r26D4Wt50EF^R&KVAR}uE5`6~Th{jANSF5RSNY}_p~9i&ge zE7J~mwn}dkE?x)o@o05@9ghE_sB7VNJ!+0?n{ct8X~FyD3b+1P>yLFfhTSXY!aVA_ zO=rN+x{aflq3hfsL*XW~HZIBVcqyU!7C9G+KW1T>BwaHtFMNtDXgOgmXYk}lWx9V& zwy<6=hHAKWbqdrx>S8Eo;21iOI~!PcipQNbXJ9(sq4LHSbD#=uG=y66?8V)9qgGH@prI(va75PJIzTni1s~MqZZ+7xO9y(j=9DF zoZ+I44*`nq*%q&$!~%AvwJ{I<5gFs|0H0I_JLv?YxyHb3tTFic(?7#eDqRwRNAKcg zl%n_7+59@@)|m{HFXVPqXni+z8^s$sv--L|&|KYdEvy9Z+5-#Q9ChhqGfj(rtgC!qBX|5A9}q{>Bt|)^VA=Q(=ZKty?&ak!jE|!;yjpzLw*!i zW%ijIj~poMHZ-FZ$S$TEFJ52z=lY4^f6W#!SCl>;Si{Owx~pmOB=IPX8Jd#jm4}t9 zH_4sKs;t3m7C(!><*ua~2mHV%wfZ9Q;$wFdOsCyX(bB)3k9?xci8wcZW;q$6dZpP7 zGEwaqhy($MB~3lDgS*Qj-$`?{bT=w*~bE5 zT3`Q&@ACS%ly7Jk^RaJP_BYe=&t1zpVg6+r%!|9Mme)R-{VInoRPQ@(t?5mkjd>))0S%d{Fwi*_eKQZ}o;O2g}x= z-VknfpsyTKZ|=ahj2ujg96YEuh_;5sy|saB*wAmJ-89tmW2=+tL&?$ypx!dNm$jSI zpxva-71|8~M{je6mZFyb)t~9|g#D>866tXW4RszYKWC#XH9v{2{~{Dw_rHeSCvW5D z5c-?&$zRh+IRD<2s_w}OYK>oK>9Z$g%}2K&%{Q6NzJBom2d8wuA}A*w=75!7_RKkX za#_j0WXiLG9gbLp_Shar3%bgZ!oQ=Z zcYnIKpo_*y!_BU8j+HIwZt{H(4Rjj|3hoWMIuI64E1|A!I64}s0(H^p+bJ5)l~7lA zbQ4Whfw~q$?uo@Cc?jishOIf-8W@M}>lzY`RoIntbemzfi03tQ?2(Fb9|67A6DIJ_ zJ=*eD83w#RIJBN{slVus;n(}qy#?hKlo6%gM?m_(K-p@njJP)_oBDt`NPwX5GjmPk z#u%QX570Bsl#o@PT|=R`M?q)P!qm8B;~O(EwT7%3dHA6Nve^L0GPhwfAh*Hi%tt0V zoVEc0PftKrRB!fLcvAbaHtTg|%)l8QV@x9pIlq91}J@tCq=6)bAuz)Zy7TQHEoe!r6G)Ll8hli8JODW;JV1B0@gy- zbbJvBRt#yLrfnaKi|aLrTGLeT)}q!5l#r(*6{yA{j5qO3G?I)W-tTtl*jQ(Q>7s!x zIyHH;^n&hCPuq3U1kU z>o7nH?sEBj8imNJekq{BfRm*QtEi`%8 zkeOajWIm(Tnde+ zm{VH$E~#zsgdW7+*>Aaw0o%rQZK_RjEXWxuVLZngU@4Sr%3O&qK$m;2hP*e5E!Yl> zB8TU;Im~rXcylZUPgBf6>X%B)VU3DvwNR^te%C6O!_Y$9Xpy`h&*!MmLp2^1hx5R> z*zqQse?B{Xm&9M9ahOo}O+?k_;kWecR2pci-9;zx0&{U3N{434%#IV6B+E<`n2AF= zQ+|(OR=!H7XhSFK0*)rqGmvlOgbm_6w#X4f<$bV5FKruu?3y6Xe1U*Wap#?GTFSKzjo%cgWdVTtecC?ip@#) z#G2#TzKjs@Za3B~FN>wx6UkVcn@kMEdvdamOm7~oXU9{ic&rQkEsa%&WfxgDo=oKO ziSBef$1s!z(fMUp-20AU>3qM0b23FB?)v@t)=Jbhq0RTM|!7rIo@%iF8ko z+naQ|^W^b@FXzLHv1m4xf!f*r++eOZw%qMcbYpyv(H-ke<(C^|$LyM#xlom-sNK!S zdD`Y}BZO0xji-AusZQ7J5zo*1tPq{uZaSV#WLV^jAID5L59acjR5YK@CYB85G0xtf z0JlAn<6sEy>;;IE$}D$hXA?c0d3S(fWQOC!(|yST@6z$-fS2oz8@y*WZJG|b!F*t(USQw<*A*Kaabm~4 zj{EEMqf!Aemy9|IW3f*^=~N|PO-}5AaoMnHv2a^;85U3K%ZT{gIK{0I>-1%<*ls(; ztrJ)1%X+c*_KG`MT(2)1#6R@q6mbHmnj@UP!)*kc&H|HXlOys z&4%Wrfw*3PL^uM$(T{+indx^^iMad|5D6UNkAvBy=+EZ|jyU}Ap`oF}0Q7jxVcnUO zbmBJVfI%5a4URu8=$sXbMnXtdAwpTs-!}l4%Jk$8%VhfwmlIQLPjPNTAGU4CcYsqi z5l@B+vRiB-M}(yVWfhr3^~lYw9_9S+>))$k>;al}X)_XU z@~Yw+A*e302aBr8DKxWCIgMmoUcr3h7L{H0kjJ7X3$+xAvXKnOi)8RxWK?u&y!J?F zW;WiFbcaK8W-UZ;6fJSqGQ>-6mAT3lmxZd=Vm7bOmP$%Om5-{~toE*jA+E5?Er_(p zqxvxxc&|fQfT|vu2(@=a=a(^!D~53>QDx+|VA0I?jS38b93 zc(Fj|$>7&Kx{7H>L_0d7$ICVWL(Uw`=W!cSa=dz|%Id1|W@)-gaQ{m{JI->}O^7v( zQdW=M*&Ll4?eOen*Xi33!%x-XF6zee6U{xl+*GW% z$#7^k(2ztanaDst!~kwD=vMMrm+zfO=>oGg&dfE9xc5SFmOs{w=lcPMwQJYX?HIF= z+{7ln6_a$F?rtTc7d2Ejy0Dvh+(Ju_70`HYqOU)nrh-uRiW|>FdR8WjyI)vG^P2P| zEcOs}W^*v2#TZ7JBi_bs4ltZa=lccS5+O$b`+M_Me`YW%C_ORAaTAM65YqHnnZ6d- zH!R-yXV)~x=~dQRY@WtOebY9BTGMS*wb+Jk;P{S8tkRbe@w&dO5tn^Z3Dk;%Ng0x@ z6Ni0DUDk__@24&&i=8RUkU)cYHKZ=5i0db)OWd?=JWyYU#VeoF*AY>5u)eMl_kUhr z*NRn#>gzgj#Nqn7UYuB?uP2M_WPRNrj-RTpr--Mgsq09!h)4BxSp2kEUq{4#v-Ne2 zIBkx;t`*@9eO)K^IZ8zH^U8=7m;=wEQb&XhkmAzzP@e{_ifVG zQ^c=+sIKd)#qf{xby$4=Il);BaV4Y+khMXh0rgafUI*qUH?J@ny#PBW#po z^;%=05{V6D5@|M)Qu5qPAMZM1??7>Bp-o{YkyL>K-I-)2%bC8Ju4ZRl7b~h0CpRE5 zFOmNxWvhxDL*sKA*}+iu=q0CMNfBbcnvgl^-i$b8PqA5j94@02>&+Vx#)vaT9p+QyPnhP{B7--C9=7E zG|_WZA`hzF?MW=f)#6EuB9p?^lOl_8C7Y)Zvo+Nn*b=X+t6x!D7i({*tBZ!QV;)b( z`_PugAfZ(KWRnUv#QG?lig?)hFgWpaEY;B8P2+|mlWHeL@V{Cf8yu;_%-DR|>h8w^ zNn-fx;z_;nWX@eIos9ih3Tj7mc6H2|H(N5x2IY6zQxyc|KS_{+QdX`!7VX@~0|Lxw zY+)E%@OES_c+el2v-c5lg|#E|HemVk&t4nFj1C)-i4YRb89Sz$ocnVv(@6=0s}-3P zAA-Usgs903wZt(8ZiqcI72e>)M}gaoJ(#>3%SdRF7Iyq*!133wTnkw7i`|?=j^YGS zIxF5yTWZLkW;Am!hmbWFVy~X6-O!>5bnBmzjr`3gsK}p0w+V~ADF3tel#22XHLaq2 zU(_i$_)&$s@~RgGGmk!cu5|Rr%4Md9siR6V(>pvOf&hg%S`>mno&R($8;oaNI*IX} zOMG@;A*(5S+W&xQKktBRFzra;g@m-}f~T6Ce_k-I(YbZIf$21C$%JIht4jMcm_57g z;P_{k%eyg}-Dk8z)a<^jX*Ij=v&MzlWnJyrWmZ{;--;TxqS<|g1PS6h7tJp3PX|L> zG(F&->x2G}kma&9*FW76bAA48UyC~5x^bm3*ZDfk^(B8hyO9?kQesOX-iKQa4RF%I z4uSdL_(Oop`Y{TDXSJVH2)v?c6$1ZYjSC^by4oSYtg<0+1MXca3W1-KAcep#g%F_9 zBidG9+ftO=Ukga?hksg#S3~4^v+Vd$Ey|8{+dmw2-o4&L`O|;?#B}GOzh2$sT)W|b z=`?ofnYYs^C3GBV=VLu?(#3)(Gbe2H(mf7dsZt_^>@YYM9Df+R8sfnV`#Gahr`)aG zp(gk-O{)psgi*JkPQmi8%LA|KsH`+8QH%_`v~(KvND6{>g+iQx!R!DRO}f-E%9aMM zS*UK2HB+g&1%LJG7IwN9&#G==X4xex^O*`G`W6zTh^D=sku6ydpef(qTfr<2MKE7B z@pdd(xB7y)@#AZooX`CIsU{j0crhv!>dlVCS6Q{b&yehy6>^Q|O2HXRNvW zbd+;|HXRd4s(r@gWB&iVtR%jgQq6D~ykO zNs!`$Hhoq4H}Xe^O9$D-5%SGD0wQGmL6{HP$+aS6`n`ydTh9JY)H&`OW`w-tJfSiO zU6B@}93goA2MXB{5&_2_A*}SMN5}=*9V$Yu(X@(?KanmUH9}Z*Z+%e(0yE1N2$!)}98^#joJE2(YqSrkW{qxC7PN(rk6}yM*iIH}u6f8`5c~`s@Bxf9iSbXI+v@xv z{&>`JPdAIZcb8)lZ~xSF@=k>YA7wb#3R1|917{N1SR4nev=s-VQ4lP`SlqLk;iZ~Z zGu(@_Dhtm4fA6SDSLgs%iHDhG6VDEZk*6vM;V21G2xIeFhcNG`mfuY4L{mO7w1QXs z6L%&LyQpTx7tP@PGX?K1M|^gMbMqgroJPai8HjqbBX1R}RvdXeq7`{tF9Us`EmrZl zfjKb$Vi7)EyCf! zyuoC0l02_kEO(vcaTRUw>u2xy+zQX?;)e%?&R6ThtM5U1R#=7di<(xc_Aj8#P?oYf z7jY;v%d})5k?-z@vkdjUQwaWBNLn&gD{&M&L|#H0eh6uirj-&yOsP zLOm43Oj8YVLL%2Wn9aIrJka$o@u=6k=g_@?FrHgw%S25pTbdcWg>6(Rt8HP2GD|*q zQE7%)Pq_ACGAELFQiG968`yS+5bOCdj-U+jJbIy)yX$$x&9I^AIm9xaqz`+6_nxYwG=l!&~Tr zm9o;p6?Y*mEZPxi;k6E5T8LDiCDQ^8Uwp@8mIAFx5kJgnR2$|EQ^4_D92Qkam~=#Z z3A7*Pthqlbw>HfG3(B*?Dk`7Xw2I0ew?P25_$5V zg85AYs~e@PRzks?nWh?J1M@uq6P{b;&;vECY-wTu7GN%AwJi*DX33{3O_fr!_HI?D08yr<>37le8wyJko1 zHT3rkw!Q@!`{r!#X~pqPRWtWvPDcr~V)zBAEUbfS#ljOS6Q$h5;73!=gAP)2Sw3E+ zY323xtYg9J%1ZW^BiQTAGM{1$^7l2vA`pCnP7`Y-rI$ z^#fn|5FTzU@D%gJNvmW%EFUey=`lT8h9lwt+0}Rghg0S3!W_%r0x99ZO~DtSX*^1E zWzJ>w?wHG)x4U7Zv)^aT1Ey2&$88mag>%rAk4~qyc-YU&Y54KN3~)R;EZ(%}h*;Zb z{=G&_Z!+mxu^zOY1IIyt^)q9n$gJ4WLutAn3%rdmLW9LhM8-|fl(kiOyhqb2GJXbH zZzLTM@4?SHFz}`Fx8d|GdHKP_o#W9XqIv%bUqH=WREJH`!%g}J`1$Yhj62k z^;DI=kl+qBrz$^QTGqEDRYJ`Vp~iGfEd0m!Y&+wcX{F{tptWn2pr@mJCXl85I`ZSG zmS+6;oW55aLcbJHdfan0t;W3(v|h6)sHLnPn!(O2|G*xgV)Ezj7@^EOO1Tma3ITs{ z{HqnM*0fS|F6hEMHZ@6Et*Bbpm|1Qec#e9aa;l9-^VR_gs1E&WKBw>i_5533nBiXm z#?KV;k$o#`{B6prR_Cpi%QiaKpKKl~-LnD5ju=olw53OF#Wsa3Q7vW?$H*G{G?SL* zHeMA3_$LD9T+m8kDIV)^>1_cm_*K@-3~n29_|bp2{FzMgExotPV5Eo5wJtGpKZoX| zt)96zG_7WCJGMlwC*%Pst7ncwj9HsEs}sLgnV%)Q^8K^vXDMaFt++)A_18i@cB?|> zZJJi;}?<0-|PPJt!JPUlQ$@&{lJJ@W5FtP(`L zi)Cxg;ukkK5C03lt*^pZ36)w$DEo4hZ4#r0StBxN1T({?c=9ETco|B{NR+GFpERwE*a793 zUS(jaj#{&%@r0c|QEV^DibhP>R$>O^CCfy*G9YfAAi;x{4!1e`)f$g7I zFAiKJYi_1H&OdJ}8wmb3B?6)Y&R~bAfLNkw6%eO_E`+pblCoY*$jYCY71^Tq+tlP6 zwju1wRKBI#may$GOe{~XvTcT@m2D@0Hf&R}MYeGVTV$J@vys~++m*1X3c<+%s%+X# z)5@m9Ko@LU(Z!6>R-F-|#!ld<7wBiI=e8 zFVK*eN@YP+hb|4|!S4Q`bx};kq?FYbaAnV|az*id+z%=iTD;Zq5Z#>xyz5786?pZF zxy@buiyt-m>zS9(IlpJXy2sr36zZAK{Ln_{tR;i3BqMe#)Fsv8;!be9IwdUJE|ZRk zV-}cnjW~FrN!N;Pjx}l2Ef!rb9y!kZ`($zX@h06MhE6c)DdN~gCD^$ ztCrxW)oyYwFq-ejrXt>UgSVc@s=R`QW^=7eSi2j7fCE8UJ3-UR+8Lltd`MYsE#re( zTVgBfQa9g)pJb1~LSLH_cD(_;IiQtYf7i6KYfl8bX_u6>>|)jy*j0!#e*6Nv2IZ5o zzfB3d9*5oxOl8+|npSqbNp=|-S;}g=RCF?P3oO&GrJ9qTg?WhLrKZ^RtY9Z5xLpYg zZ$g^kRHH1sN7Kr}XF=~JPsfpGziN?3L(5+)~2 zW!XiVR+g;;ZCWN}Ez6ko(JbpsC-B0p%JU_8L$xVk*Fq$IPX5ZSUQH{z&H%0LqBT~^ zT6Qt(quIp|qqe)LB_lP?Y*@m=1}tT~oGA<2G_5S`0j({hn3S@Xh0NLl3+V@XU3e!N z-uO#zm9BU#2yR!xzP+(D)AFqAyn{5Y>}%nryKs6SWi9)dwFUOMe41Xt;-&;kSnzXb zC`%++slK6UWx;kQ+B2leDRc9aS>@`ytGFN3d9o_z_EfRh?^fJgiTCPbX9etkK8Svs zPNo?!Prt<}^y(p=my-rtNk)t-lyuc%x5eNXCEn{69T7L3Wd6NI48~{xvjp1~0z7W< z)NR%vqx$+6tZ_HP3bsU{ZM~+|Ts{X{uW`?8nmb*}>S$DJ95Y8|)F_3b3#YT=mHLC4 zR_b2@S|1|ctL>&NqzP9(g3Eh0{~22+5rAKaXjaR z#nN7rj)=d2w#$)iAi!$*<85mLcoLLjg;l&w)3l1W<5>B^GXYZ8iZ^DNmW&v{cViIp zk_PZ&npR4@OiCyK)31!AtX4t+n3<*;V*}vT007Uea_EJcR<_*6&?-1o%4%B}z|4}b zQ#Fr}H@5EmnE;^|Wd@1D}kgNo-|4ni< zE|ugSU<tX4l~536rm4o*Ks1Dq=ebo5t=6=%WiErK08uHcZDEKqO9HFXHFg65&5OaD zn2@1q1625~!!e8GHS77E$w83)C3>Nj<=5DOBu$q8CqLVxv8l(cBu9Fj41NG)?fN}v zmEC|ISSJg@Vi_R(#hn1*P5YOIFpVAnVd~O`@b)QiJokmgk1aYPj!Tmn#bq+9<&U_n z4dF|nEGw)c?gmY(hDw`$Xc`=w1-_6pr0XlRG$FDXI zg6zd;MUv%L+1&?da>_&YD3YUbapMyNS^p}#1T9zx3!+ua0nrQoFMgEQKdv-HX|w={ zQkOPF*Ad5aPgvxanRG;a0NM{xR?8nzTN|QvP>vN=5!I?`6;W|kz7SDT)`}=*nU;(g zq7Pya@{)$=_cg7Qc#V`$5WREu>5WoWE1@9DOjC`qf#^91d7fM4&?_{pZ22~Wr{GX2 zt8HP3GD`xhQiy&sXU1Gk^e?BF15|L|EWbDq1kngukz{#@u7_kL5Pg&6Xk5Cp4p>$F z5FM9SI#>|BbR{5q;jMt^m2a4@i$br$@d{xYEdZj_r47+`;usL!YtW=4;#$yth_Y+^ z5w*1;`co*+3ag0vou*YpZOh6RB1+0y5ydRik`Y66F$N(oX^5sYt(5o@DPcfV%4#JP zM44%-F*XoA7$MJds~kE-)5?|w44#5RrL4AvA<8TXtV#>vrwC|X4CcfkD=Fpx6}jPJ z7Q&*QKMWEC+5bi_)UtdbJUm2`Ren{yo8(9jxf8*=;hT9QM!h`>j10wBz4`6F&?L-=Ya%L=QAyIs>N;+_O; z7Q#~2ia2JOmW&v}A$W+qq#<0bX{E$m@}Pn+{jOcgY9$nenQ5vqHW2(KjOAFginI9tgwo>w5C4u#~kTj#;K9BZlyAFbH`` zL-=h?DT9$|KhmfoU!jn%^ddSVja;tE_ zd#UE32iD1g@cMHB;UoWwH`hIIZD|P8=m8L>E^P>3K^z0ZC$BMSd_4}dzmR6N{1Lac zA^aIA#|o>63u{_MTstdYSTv-p6>-cmEg3O{Z^j_xB@N;AnpR3Y2UXU?|Ctp6Zx|#<^W;Z zX|^G}rk=l^7X;zM&aPON{g~uv26@-q?>QdL^3-oH zgQwPixHjq>I={51sNVojad*L?O!%nEq|8V+RMhiP>vN=S?&-`t1LI0l`mvDDQjgpW|@|Zc-gofgOHan z$^3iEZ)sX7v5AyW%Z9-7dQw&^p_UD1nre*AvXKM?cy5&~U(mF&cmxm6DRw5F9UQyDx3h)P*)3qzDy5?GZ&^jeB0F9vhse=enI161hj z=sgf32%-<66-kzdXycb@a>{Rs4v`#z)oex(l(Jz_6F^pN*`Rf=~I zNuvcol)AJb`XX^W_k_jumzZ=!Ok{TzLzLC>N7UAaXdKG2!YZPcX<9|pg`iD{N?9wS zm}OcrVu-$mLC8xQqVH;2DX|-Q(156v)k-LcGSgIJY#{n==*n}e9QwGXl`X#_TZ}DG zDXVQ^h%!q8tI|UFn6H>ImlO9~L8AaF@+i(OgdfBo10kD6FVwPpAzXDCO;&lx9zk-X z2c7H%K-Ru53@U_=K@Y5x1>uQFK={%(aEfu#uS!FhMh}26b!kI*EpZG8cVBMO5%C6S z|0>IB`6F&?L-;@_#|o>6tJSoMxcRJnVNsB>R>U#Ov}D8(z72zrmo$VQ(6mzGC!~ae z@E?y^(I{oL5(>i1G}Raz2oC}RJh#fBXKPy7@^#QAgr%&ug(1u=!9c4N!h3wxjJcc` zx{5{tbZ`s`*VzzWjXwrLIE-GXWqAmH7m}4g_@5+4dfH!guJT9R)`sxwP@WZ55%->^RmAPi$`>Fk zWvz%~mTAd|A)Le@Rw;yELa&7w%!wnerBMJKd75rRxCws@gz!7)g<6(}@E5P9$tu4J zZzMU=14qkS2H}^`1M6f%m>#-aco{+XrqU3m(E}h%UD^=-^fllZ5dOVIN5sI_$c*Ab zn$_}0+}4KhIw;EutB8A0(<+sxdYY{s6l2+$x9e2uR2flsnNA8C->&C}p)R3}I#o23n;MzKVe7#b8dH zbsbF`ptG91>X;DTxc)r+F%ZJ{p%-dd{@%Ba`mX@ODXqt;q=$bmzF0LL-2&^}VSshP zAi%onQXg2oQw$m>0Ib}dV0$a|Pva3xPp(=20{$52Ne6$RmgPNp z8l)=m^Yo_rdTm3Y$8dYnOel#R)H9^LZf>!-t$f1+dXdrvCu zNg5}>liZzPdn?_^>ZhIzPtLp%9aAjO`FR_NK+m0xRwP;eWbJK8R^qus^td=x4)Pq2 zW_fDWIq=lUF?i~a&80m>{RVi7yOZ{n^i*p+mlwkO8tA3eli{i3Z&9A2Q{EVeKu_I; zRwP+I#%gZzJjElI`ugWmlA{^o(^VN`N5=|Z|MYLmzl#>EgXKT*$`@OmePbJ<&NIU2 zzhCS;r^(svq9>-&XxKORf6I?vI)OJRxLLeqOn)0Q-=D~Z}ai_&Xv~`|-ki zdGUv7x!I(KL)0W7tsr~EPsb{%B|=&pgh_RjZHmnAUVzKf<+luu&i3pW8$){1gwnU;(=ZJdok$V)nHT&`)Q z#NDKXaaSc}wGt|AFw<0HY|_RtfE~}Ra%f!B%9hoj&9ot9wJn@Bm?aq8CDX0qp3CCR8JgjLg9j02Ls?c>Mg6gwR#Be=ZAQJ6wW6L`CVoepMmAv(@{&#? zztpr+;%}scN+a~CVJWMXP-%pjrW#|DMy`Y%Jh#fBw`yA1@&stpp;A`c!fAwAf>FMM z?4_&ZJA1OQL(mk=dy80Ehb+Pt_y1HmM)|ro|b?<|@ z-dMQW6v}0K^Ra=$5IXb-Q%ac zx<}#gMMS3B8bV}{TB&e#q%JlTOGWTuo55T@lk!%TocIFTPc>P4pd@{9cputs@pTI-hdxno47SH1t7J@58$UzR9eQy$(J>qj(yJ#Z~v3bVMv$ zUkuJ|Aiy@6;3SyzxPV`KJh#+_XrlL^7+18R&rASO(G&j6Ta9tGkf$ey)cJ^<>JB;_|F z_k8qpN*#_}dW4yj6~pzEANgNxHhkcjUz`rHrg-U4&Ph=SFtcnr{E(-tf^<0f0n9Cx zB`PIIy@ik&U^%ItaP~gr$~oC`|~%VPJXnSoY~K{`AFjwk2qbaf%rI$TJCln#H&@mV4rTK8&!FEw9> zer|XieOT#n#kjLton7}qdQ7~q!uYw~*IJPt-#qg58P0X@RZSxuMmIgy2-3$+kAESK zkshDgVA2tB-A3|6ae8E%OvH_0dOQOfv(^fymugz!^gEz6PQCOf8x#c*GXt#}gYSXlT1yjCTrJ85MP@P6 zG;37S;m5wGLR;y#x2BbT*C6b*e*Z~_TQ40lG@YUlU}o8B@x-TS$|^{QmysZ)!~fy< zG}B>wxO#F!G(0~Nn~B~1SZ^x7JT{n%XHz&KaEzV)8-M+XKV80ze%E{-eOl@A)Qw1& zm)^53>fE`TnJ(YFXv%b%E~DH3dOGPOsvJRE=Az==eb{U5FNW&`DPiyKk9(TTHFF^C z?z5t!4yzc(;+_?(GMZMfS_=162rJ+Alezg+!M;6jBcz@cXslOHdeg8T1Wkv9!8bt7m;<~7lxz}93-#G`nKMNN=DR+NJ zm(h*jdO`Zw5&SG$T%71w=TVQ~&;M9?Lq+frnpP2fFFa*MFx^B29Mq$BG-KO3k&n1=2Le%X|McL2~~%;B=95` z7skviyCf`rzCu7pS3dvpO*CrBR~K)b#`78V1Dbslv9EyY;evjWg6O)CJs`;-3w$av6YbEgoa z0U$XQMT@13Rxvk`UOJ~`em1ilKeNb+YKmdvcs?$!)=eF?-gXYByXD{z F{9isP1=Rom diff --git a/README.md b/README.md index f2d711cd4..f15e6ac85 100644 --- a/README.md +++ b/README.md @@ -5,8 +5,8 @@

- - H&M Version + + H&M Version H&M Downloads @@ -24,16 +24,16 @@ The mission has a lot of features: - Logistic system - Deep ACE3 support - Interaction system -- IED/Suicide bomber system +- Realistic IED/Suicide bomber system - Dynamic caching system -- Civilian interaction +- Civilian interaction/fleeing - Reputation system -- More than 5 side mission -- Full saving DataBase -- Extend battlefield to sea - Rearm system - More than 12 side mission - Tanoa map +- Full saving DataBase +- Extend battlefield to sea +- Headless support - Something I forgot for sure From 6cd9d65d3985bfea4ebf4a2f7e786b98b2952e68 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 1 Apr 2017 12:29:11 +0200 Subject: [PATCH 045/120] add: english --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 8dac8cfb3..4f743eb11 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 @@ -45,21 +45,21 @@ class Params { //paramsArray[6] 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}; - texts[]={" Bohemia Interactive: OTAN (Side: WEST)"," Bohemia Interactive: FIA (Side: WEST)"," Bohemia Interactive: AAF (Side: GUER)"," Bohemia Interactive: FIA (Side: GUER)"," Bohemia Interactive: CSAT (Side: EAST)"," Bohemia Interactive: FIA (Side: EAST)"," EricJ: Taliban (Side: EAST)"," Bohemia Interactive: (Side: WEST)","btc_militia_mod Giallustio: Afghan Militia (Side: EAST)","CAF CAF MOD TEAM: Africa - Pirates (Side: EAST)","CAF CAF MOD TEAM: East Europe - Rebels (Side: EAST)","CAF CAF MOD TEAM: Middle East - Tribal (Side: EAST)","CUP Community Upgrade Project: Czech Republic (Side: WEST)","CUP Bohemia Interactive: Germany (Side: WEST)","CUP Bohemia Interactive: United States Army (Side: WEST)","CUP Bohemia Interactive: NAPA (Chenarus) (Side: GUER)","CUP $CUP_AUTHOR_STRING: ION PMC (Side: GUER)","CUP Bohemia Interactive: Royal Army Corp of Sahrani (Side: GUER)","CUP Bohemia Interactive: Sahrani Liberation Army (Side: EAST)","CUP Bohemia Interactive: Takistani Army (Side: EAST)","CUP_Units Community Upgrade Project: United Kingdom (Side: WEST)","CUP_Units Bohemia Interactive: Takistani Locals (Side: GUER)","CUP_Units Community Upgrade Project: United Nations (Side: GUER)","CUP_Units Community Upgrade Project: ChDKZ (Chenarus) (Side: EAST)","CUP_Units Bohemia Interactive: Takistani Militia (Side: EAST)","CUP_Vehicles Community Upgrade Project: Chenarus Defense Force (CDF) (Side: WEST)","CUP_Vehicles Community Upgrade Project: Royal New Zealand Navy (Side: WEST)","CUP_Vehicles Community Upgrade Project: United States Marine Corps (Side: WEST)","CUP_Vehicles Community Upgrade Project: Russian Federation (Side: EAST)","Expansion Bohemia Interactive: CTRG (Side: WEST)","Expansion Bohemia Interactive: Gendarmerie (Side: WEST)","Expansion Bohemia Interactive: OTAN (Pacifique) (Side: WEST)","Expansion Bohemia Interactive: Syndikat (Side: GUER)","Expansion Bohemia Interactive: CSAT (Pacifique) (Side: EAST)","FOW Bohemia Interactive: Imperial Japanese Army (Side: WEST)","FOW Bohemia Interactive: UK (Side: GUER)","FOW Bohemia Interactive: US Army (Side: GUER)","FOW Bohemia Interactive: US Marines Corps (Side: GUER)","FOW Bohemia Interactive: Wehrmacht (Side: WEST)","LIB AWAR: ACI (Side: GUER)","LIB AWAR & Lennard: ARR (Side: WEST)","LIB Lennard: Deutsches Afrikakorps (Side: WEST)","LIB AWAR & Joarius: FFI (Side: GUER)","LIB AWAR: Armia Krajowa (Polonais) (Side: GUER)","LIB AWAR: Luftwaffe (Side: WEST)","LIB AWAR & Lennard: [Winter] Luftwaffe (Side: WEST)","LIB AWAR & Lennard: MKHL (Side: WEST)","LIB Lennard: US North African Corps (Side: GUER)","LIB Lennard: NKVD (Side: EAST)","LIB AWAR: Panzerwaffe (Side: WEST)","LIB AWAR & Lennard: [Winter] Panzerwaffe (Side: WEST)","LIB AWAR: RAAF (Side: GUER)","LIB AWAR: RAF (Side: GUER)","LIB AWAR & Lennard: RBAF (Side: WEST)","LIB AWAR: Red Army (Side: EAST)","LIB AWAR & Lennard: [Winter] Red Army (Side: EAST)","LIB LODU: US Army Air Forces (Side: GUER)","LIB AWAR: [Winter] US Airforce (Side: GUER)","LIB AWAR: US Army (Side: GUER)","LIB LODU: [Winter] US Army (Side: GUER)","LIB Lennard: US 2nd Ranger Battalion (Side: GUER)","LIB I44: US Tank Troops (Side: GUER)","LIB AWAR & Lennard: [Winter] US Tank Troops (Side: GUER)","LIB AWAR: USSR Airforce (Side: EAST)","LIB AWAR & Lennard: [Winter] USSR Airforce (Side: EAST)","LIB AWAR: Tank troops of USSR (Side: EAST)","LIB AWAR & Lennard: [Winter] Tank troops of USSR (Side: EAST)","LIB AWAR: Wehrmacht (Side: WEST)","LIB AWAR & Lennard: [Winter] Wehrmacht (Side: WEST)","LOP Project OPFOR: Boko Haram (Side: EAST)","LOP Project OPFOR: Irish Republican Army (Side: EAST)","LOP Project OPFOR: Ulster Volunteer Force (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Afghan National Army and Police (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: African Militia (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: African Militia (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Chernarussian Defence Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: ChDKZ (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Iraqi Armed Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: Iranian Armed Forces (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Chernarussian National Insurgents (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Private Military Company (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Royal Army Corps of Sahrani (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Sahrani Liberation Army (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Takistani Armed Forces (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Ultranationalists (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Ukraine's Armed Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: United Nations (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: United Armed Forces of Novorossiya (Side: EAST)","OPTRE Article 2 Studios: Insurrectionists (Side: EAST)","OPTRE Article 2 Studios: Colonial Police (Side: GUER)","OPTRE Article 2 Studios: UNSCDF (Side: WEST)","RHS_AFRF Red Hammer Studios: Eastern Militia (Side: GUER)","RHS_AFRF Red Hammer Studios: Russia (MSV) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (RVA) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (TV) (Side: EAST)","RHS_AFRF Bohemia Interactive: Russia (VDV) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VMF) (Side: EAST)","RHS_AFRF RHS: Russia (VPVO) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VV) (Side: EAST)","RHS_AFRF Bohemia Interactive: Russia (VVS - Grey) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VVS - Camo) (Side: EAST)","RHS_GREF Red Hammer Studios: Chernarus (Air Force) (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (Air Force) (Side: WEST)","RHS_GREF RHS (A2 port): Chernarus (Ground Forces) (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (Ground Forces) (Side: WEST)","RHS_GREF Red Hammer Studios: Chernarus (National Guard) (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (National Guard) (Side: WEST)","RHS_GREF Red Hammer Studios: ChDKZ Insurgents (Side: EAST)","RHS_GREF Red Hammer Studios: ChDKZ Insurgents (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (U.N. Peacekeepers) (Side: GUER)","RHS_SAF Red Hammer Studios: SAF (RVIPVO) (Side: GUER)","RHS_SAF Red Hammer Studios: SAF (KOV) (Side: GUER)","RHS_SAF Red Hammer Studios: SAF (Casques Bleus) (Side: GUER)","RHS_USAF Red Hammer Studios: USA (SOCOM) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (USAF) (Side: WEST)","RHS_USAF RHS (A2 port): USA (Army - D) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (Army - W) (Side: WEST)","RHS_USAF RHS (A2 port): USA (USMC - D) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (USMC - W) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (Navy) (Side: WEST)","RHSGREF Red Hammer Studios: Nationalist Troops (Side: GUER)","SG Stagler: Sturmtroopers (Side: WEST)","SG Stagler: [Winter] Sturmtroopers (Side: WEST)","SG Stagler: Tank Sturmtroopers (Side: WEST)","UNSUNG Bohemia Interactive: Australia (UNSUNG) (Side: GUER)","UNSUNG Razorback: N.V.A. (UNSUNG) (Side: EAST)","UNSUNG Bohemia Interactive: V.C. (UNSUNG) (Side: EAST)","UNSUNG Bohemia Interactive: A.R.V.N. (UNSUNG) (Side: GUER)","UNSUNG Bohemia Interactive: New Zealand (UNSUNG) (Side: GUER)","UNSUNG Bohemia Interactive: U.S. (UNSUNG) (Side: WEST)","USML segen: Armed Islamic Front (Side: GUER)"}; + texts[]={" Bohemia Interactive: NATO (Side: WEST)"," Bohemia Interactive: FIA (Side: WEST)"," Bohemia Interactive: AAF (Side: GUER)"," Bohemia Interactive: FIA (Side: GUER)"," Bohemia Interactive: CSAT (Side: EAST)"," Bohemia Interactive: FIA (Side: EAST)"," EricJ: Taliban (Side: EAST)"," Bohemia Interactive: (Side: WEST)","btc_militia_mod Giallustio: Afghan Militia (Side: EAST)","CAF CAF MOD TEAM: Africa - Pirates (Side: EAST)","CAF CAF MOD TEAM: East Europe - Rebels (Side: EAST)","CAF CAF MOD TEAM: Middle East - Tribal (Side: EAST)","CUP Community Upgrade Project: Czech Republic (Side: WEST)","CUP Bohemia Interactive: Germany (Side: WEST)","CUP Bohemia Interactive: United States Army (Side: WEST)","CUP Bohemia Interactive: NAPA (Chenarus) (Side: GUER)","CUP $CUP_AUTHOR_STRING: ION PMC (Side: GUER)","CUP Bohemia Interactive: Royal Army Corp of Sahrani (Side: GUER)","CUP Bohemia Interactive: Sahrani Liberation Army (Side: EAST)","CUP Bohemia Interactive: Takistani Army (Side: EAST)","CUP_Units Community Upgrade Project: United Kingdom (Side: WEST)","CUP_Units Bohemia Interactive: Takistani Locals (Side: GUER)","CUP_Units Community Upgrade Project: United Nations (Side: GUER)","CUP_Units Community Upgrade Project: ChDKZ (Chenarus) (Side: EAST)","CUP_Units Bohemia Interactive: Takistani Militia (Side: EAST)","CUP_Vehicles Community Upgrade Project: Chenarus Defense Force (CDF) (Side: WEST)","CUP_Vehicles Community Upgrade Project: Royal New Zealand Navy (Side: WEST)","CUP_Vehicles Community Upgrade Project: United States Marine Corps (Side: WEST)","CUP_Vehicles Community Upgrade Project: Russian Federation (Side: EAST)","Expansion Bohemia Interactive: CTRG (Side: WEST)","Expansion Bohemia Interactive: Gendarmerie (Side: WEST)","Expansion Bohemia Interactive: NATO (Pacific) (Side: WEST)","Expansion Bohemia Interactive: Syndikat (Side: GUER)","Expansion Bohemia Interactive: CSAT (Pacific) (Side: EAST)","FOW Bohemia Interactive: Imperial Japanese Army (Side: WEST)","FOW Bohemia Interactive: UK (Side: GUER)","FOW Bohemia Interactive: US Army (Side: GUER)","FOW Bohemia Interactive: US Marines Corps (Side: GUER)","FOW Bohemia Interactive: Wehrmacht (Side: WEST)","LIB AWAR: ACI (Side: GUER)","LIB AWAR & Lennard: ARR (Side: WEST)","LIB Lennard: Deutsches Afrikakorps (Side: WEST)","LIB AWAR & Joarius: FFI (Side: GUER)","LIB AWAR: Home Army (Polish) (Side: GUER)","LIB AWAR: Luftwaffe (Side: WEST)","LIB AWAR & Lennard: [Winter] Luftwaffe (Side: WEST)","LIB AWAR & Lennard: MKHL (Side: WEST)","LIB Lennard: US North African Corps (Side: GUER)","LIB Lennard: NKVD (Side: EAST)","LIB AWAR: Panzerwaffe (Side: WEST)","LIB AWAR & Lennard: [Winter] Panzerwaffe (Side: WEST)","LIB AWAR: RAAF (Side: GUER)","LIB AWAR: RAF (Side: GUER)","LIB AWAR & Lennard: RBAF (Side: WEST)","LIB AWAR: Red Army (Side: EAST)","LIB AWAR & Lennard: [Winter] Red Army (Side: EAST)","LIB LODU: US Army Air Forces (Side: GUER)","LIB AWAR: [Winter] US Airforce (Side: GUER)","LIB AWAR: US Army (Side: GUER)","LIB LODU: [Winter] US Army (Side: GUER)","LIB Lennard: US 2nd Ranger Battalion (Side: GUER)","LIB I44: US Tank Troops (Side: GUER)","LIB AWAR & Lennard: [Winter] US Tank Troops (Side: GUER)","LIB AWAR: USSR Airforce (Side: EAST)","LIB AWAR & Lennard: [Winter] USSR Airforce (Side: EAST)","LIB AWAR: Tank troops of USSR (Side: EAST)","LIB AWAR & Lennard: [Winter] Tank troops of USSR (Side: EAST)","LIB AWAR: Wehrmacht (Side: WEST)","LIB AWAR & Lennard: [Winter] Wehrmacht (Side: WEST)","LOP Project OPFOR: Boko Haram (Side: EAST)","LOP Project OPFOR: Irish Republican Army (Side: EAST)","LOP Project OPFOR: Ulster Volunteer Force (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Afghan National Army and Police (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: African Militia (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: African Militia (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Chernarussian Defence Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: ChDKZ (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Iraqi Armed Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: Iranian Armed Forces (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Chernarussian National Insurgents (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Private Military Company (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Royal Army Corps of Sahrani (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Sahrani Liberation Army (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Takistani Armed Forces (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Ultranationalists (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Ukraine's Armed Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: United Nations (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: United Armed Forces of Novorossiya (Side: EAST)","OPTRE Article 2 Studios: Insurrectionists (Side: EAST)","OPTRE Article 2 Studios: Colonial Police (Side: GUER)","OPTRE Article 2 Studios: UNSCDF (Side: WEST)","RHS_AFRF Red Hammer Studios: Eastern Militia (Side: GUER)","RHS_AFRF Red Hammer Studios: Russia (MSV) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (RVA) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (TV) (Side: EAST)","RHS_AFRF Bohemia Interactive: Russia (VDV) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VMF) (Side: EAST)","RHS_AFRF RHS: Russia (VPVO) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VV) (Side: EAST)","RHS_AFRF Bohemia Interactive: Russia (VVS - Grey) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VVS - Camo) (Side: EAST)","RHS_GREF Red Hammer Studios: Chernarus (Air Force) (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (Air Force) (Side: WEST)","RHS_GREF RHS (A2 port): Chernarus (Ground Forces) (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (Ground Forces) (Side: WEST)","RHS_GREF Red Hammer Studios: Chernarus (National Guard) (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (National Guard) (Side: WEST)","RHS_GREF Red Hammer Studios: ChDKZ Insurgents (Side: EAST)","RHS_GREF Red Hammer Studios: ChDKZ Insurgents (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (U.N. Peacekeepers) (Side: GUER)","RHS_SAF Red Hammer Studios: SAF (RVIPVO) (Side: GUER)","RHS_SAF Red Hammer Studios: SAF (KOV) (Side: GUER)","RHS_SAF Red Hammer Studios: SAF (UN Peacekeepers) (Side: GUER)","RHS_USAF Red Hammer Studios: USA (SOCOM) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (USAF) (Side: WEST)","RHS_USAF RHS (A2 port): USA (Army - D) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (Army - W) (Side: WEST)","RHS_USAF RHS (A2 port): USA (USMC - D) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (USMC - W) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (Navy) (Side: WEST)","RHSGREF Red Hammer Studios: Nationalist Troops (Side: GUER)","SG Stagler: Sturmtroopers (Side: WEST)","SG Stagler: [Winter] Sturmtroopers (Side: WEST)","SG Stagler: Tank Sturmtroopers (Side: WEST)","UNSUNG Bohemia Interactive: Australia (UNSUNG) (Side: GUER)","UNSUNG Razorback: N.V.A. (UNSUNG) (Side: EAST)","UNSUNG Bohemia Interactive: V.C. (UNSUNG) (Side: EAST)","UNSUNG Bohemia Interactive: A.R.V.N. (UNSUNG) (Side: GUER)","UNSUNG Bohemia Interactive: New Zealand (UNSUNG) (Side: GUER)","UNSUNG Bohemia Interactive: U.S. (UNSUNG) (Side: WEST)","USML segen: Armed Islamic Front (Side: GUER)"}; default = 3; }; class btc_p_civ { //paramsArray[7] title = " Civil type:"; values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14}; - texts[]={" EricJ: Afghan Civilians (Side: CIV)"," Bohemia Interactive: Civils (Side: CIV)","btc_militia_mod Giallustio: Afghan Civilians (Side: CIV)","CAF CAF MOD TEAM: African (Side: CIV)","CAF CAF MOD TEAM: Middle Eastern (Side: CIV)","CUP Bohemia Interactive: Civilians (Chenarus) (Side: CIV)","CUP_Units Community Upgrade Project: Civilians (Russian) (Side: CIV)","CUP_Vehicles Community Upgrade Project: Civilians (Takistan) (Side: CIV)","LIB Reyhard & Joarius: 40s Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: African Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Eastern European Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Civilians (Side: CIV)","OPTRE Article 2 Studios: Civilians (UEG) (Side: CIV)","RDS_CIV_PACK reyhard: Russians (Side: CIV)","UNSUNG Bohemia Interactive: Vietnamese (UNSUNG) (Side: CIV)"}; + texts[]={" EricJ: Afghan Civilians (Side: CIV)"," Bohemia Interactive: Civilians (Side: CIV)","btc_militia_mod Giallustio: Afghan Civilians (Side: CIV)","CAF CAF MOD TEAM: African (Side: CIV)","CAF CAF MOD TEAM: Middle Eastern (Side: CIV)","CUP Bohemia Interactive: Civilians (Chenarus) (Side: CIV)","CUP_Units Community Upgrade Project: Civilians (Russian) (Side: CIV)","CUP_Vehicles Community Upgrade Project: Civilians (Takistan) (Side: CIV)","LIB Reyhard & Joarius: 40s Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: African Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Eastern European Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Civilians (Side: CIV)","OPTRE Article 2 Studios: Civilians (UEG) (Side: CIV)","RDS_CIV_PACK reyhard: Russians (Side: CIV)","UNSUNG Bohemia Interactive: Vietnamese (UNSUNG) (Side: CIV)"}; default = 1; }; class btc_p_civ_veh { //paramsArray[8] title = " Civil vehicle type:"; values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14}; - texts[]={" EricJ: Afghan Civilians (Side: CIV)"," Bohemia Interactive: Civils (Side: CIV)","btc_militia_mod Giallustio: Afghan Civilians (Side: CIV)","CAF CAF MOD TEAM: African (Side: CIV)","CAF CAF MOD TEAM: Middle Eastern (Side: CIV)","CUP Bohemia Interactive: Civilians (Chenarus) (Side: CIV)","CUP_Units Community Upgrade Project: Civilians (Russian) (Side: CIV)","CUP_Vehicles Community Upgrade Project: Civilians (Takistan) (Side: CIV)","LIB Reyhard & Joarius: 40s Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: African Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Eastern European Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Civilians (Side: CIV)","OPTRE Article 2 Studios: Civilians (UEG) (Side: CIV)","RDS_CIV_PACK reyhard: Russians (Side: CIV)","UNSUNG Bohemia Interactive: Vietnamese (UNSUNG) (Side: CIV)"}; + texts[]={" EricJ: Afghan Civilians (Side: CIV)"," Bohemia Interactive: Civilians (Side: CIV)","btc_militia_mod Giallustio: Afghan Civilians (Side: CIV)","CAF CAF MOD TEAM: African (Side: CIV)","CAF CAF MOD TEAM: Middle Eastern (Side: CIV)","CUP Bohemia Interactive: Civilians (Chenarus) (Side: CIV)","CUP_Units Community Upgrade Project: Civilians (Russian) (Side: CIV)","CUP_Vehicles Community Upgrade Project: Civilians (Takistan) (Side: CIV)","LIB Reyhard & Joarius: 40s Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: African Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Eastern European Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Civilians (Side: CIV)","OPTRE Article 2 Studios: Civilians (UEG) (Side: CIV)","RDS_CIV_PACK reyhard: Russians (Side: CIV)","UNSUNG Bohemia Interactive: Vietnamese (UNSUNG) (Side: CIV)"}; default = 1; }; class btc_p_IED_title { From 122408a45c14671be4c6d45839ac03e75fde4733 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 1 Apr 2017 19:26:57 +0200 Subject: [PATCH 046/120] FIX: case to find diver --- .../core/def/mission.sqf | 14 +++++++++----- .../core/fnc/mil/class.sqf | 4 ++-- 2 files changed, 11 insertions(+), 7 deletions(-) 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 37a673acb..03adb6d9e 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 @@ -168,7 +168,7 @@ btc_city_type = "Land_Ammobox_rounds_F"; private _allfaction = ["AFGCIV","CIV_F","BTC_AC","CAF_AG_AFR_CIV","CAF_AG_ME_CIV","CUP_C_CHERNARUS","CUP_C_RU","CUP_C_TK","LIB_CIV","LOP_AFR_CIV","LOP_CHR_CIV","LOP_TAK_CIV","OPTRE_UEG_CIV","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 -private _allclasse = [[_p_civ]] call btc_fnc_civ_class; //Create classes from the corresponding factions [_p_civ , "btc_ac"], can combine factions from the SAME side. +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 btc_civ_type_units = _allclasse select 0; @@ -466,7 +466,7 @@ btc_hq = objNull; //copyToClipboard str (["EN"] call btc_fnc_get_class); private _allfaction = ["BLU_F","BLU_G_F","IND_F","IND_G_F","OPF_F","OPF_G_F","TBAN","UNSUNG","BTC_AM","CAF_AG_AFR_P","CAF_AG_EEUR_R","CAF_AG_ME_T","CUP_B_CZ","CUP_B_GER","CUP_B_US_ARMY","CUP_I_NAPA","CUP_I_PMC_ION","CUP_I_RACS","CUP_O_SLA","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","BLU_CTRG_F","BLU_GEN_F","BLU_T_F","IND_C_F","OPF_T_F","FOW_IJA","FOW_UK","FOW_USA","FOW_USMC","FOW_WEHRMACHT","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_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","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","OPTRE_INS","OPTRE_PD","OPTRE_UNSC","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_NATIONALIST","SG_STURM","SG_STURM_W","SG_STURMPANZER","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 /*, "IND_F"*/], _p_en_AA, _p_en_tank] call btc_fnc_mil_class; //Create classes from the corresponding factions [_p_en , "IND_F"], you can combine factions from the SAME side. +_allclasse = [[_p_en /*, "IND_F"*/], _p_en_AA, _p_en_tank] call btc_fnc_mil_class; //Create classes from factions, you can combine factions from the SAME side 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; @@ -493,15 +493,19 @@ switch (_p_en) do { case "IND_G_F" : { btc_type_motorized = btc_type_motorized + ["I_Truck_02_transport_F","I_Truck_02_covered_F"]; btc_type_units = btc_type_units - ["I_G_Survivor_F"]; + btc_type_crewmen = "I_soldier_F"; + }; + case "IND_F" : { + btc_type_units = btc_type_units - ["I_Soldier_02_F","I_Soldier_03_F","I_Soldier_04_F"]; }; case "FOW_USMC" : { - btc_type_units = btc_type_units - ["fow_s_usmc_01_private"]; + 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"]; + 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"]; + btc_type_units = btc_type_units - ["fow_s_uk_01_private"]; }; }; 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 fffe8c0df..48240c3f6 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 @@ -35,7 +35,7 @@ if (_enemy_side isEqualTo btc_player_side) exitWith { private _allclasse_f = _allclasse select {(toUpper getText(configFile >> "cfgvehicles" >> _x >> "faction")) isEqualTo _faction}; //Units - _divers = _allclasse_f select {!((_x find "diver") isEqualTo -1)}; + _divers = _allclasse_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 ((_allclasse_f select {_x isKindOf "Man"}) - _divers); @@ -62,7 +62,7 @@ if !(_en_AA) then { //Remove Anti-Air Units _type_units = _type_units select {(_x find "AA") isEqualTo -1}; }; -_type_units = _type_units select {((_x find "_base") isEqualTo -1) && ((_x find "_unarmed_") isEqualTo -1) && ((_x find "_VR_") isEqualTo -1)}; +_type_units = _type_units select {((_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}; From 3b94db9ae273688ad3c04d0bbc6741227c4b1252 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 1 Apr 2017 20:14:28 +0200 Subject: [PATCH 047/120] FIX: mysterious class name https://forums.bistudio.com/forums/topic/203331-mysterious-class-name-in-config-viewer/#comment-3171564 --- .../core/def/mission.sqf | 3 --- .../core/fnc/civ/class.sqf | 11 +++++----- .../core/fnc/mil/class.sqf | 21 ++++++++++--------- 3 files changed, 17 insertions(+), 18 deletions(-) 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 03adb6d9e..56aba5408 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 @@ -495,9 +495,6 @@ switch (_p_en) do { btc_type_units = btc_type_units - ["I_G_Survivor_F"]; btc_type_crewmen = "I_soldier_F"; }; - case "IND_F" : { - btc_type_units = btc_type_units - ["I_Soldier_02_F","I_Soldier_03_F","I_Soldier_04_F"]; - }; case "FOW_USMC" : { btc_type_units = btc_type_units - ["fow_s_usmc_01_private"]; }; 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 1291ee32c..743a1c478 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 @@ -6,7 +6,8 @@ private _type_boats = []; private _type_veh = []; //Get all vehicles -private _allclasse = ("(configName _x) isKindOf 'AllVehicles'" configClasses (configFile >> "CfgVehicles")) apply {configName _x}; +private _allclass = ("(configName _x) isKindOf 'AllVehicles'" configClasses (configFile >> "CfgVehicles")) apply {configName _x}; +_allclass = _allclass select {getNumber(configfile >> "CfgVehicles" >> _x >> "scope") isEqualTo 2}; //Check if faction existe _factions = _factions apply {if !isClass(configFile >> "CfgFactionClasses" >> _x) then {"CIV_F"} else {_x};}; @@ -15,16 +16,16 @@ _factions = _factions apply {if !isClass(configFile >> "CfgFactionClasses" >> _x private _faction = _x; //Get all vehicles of the _faction selected - private _allclasse_f = _allclasse select {(toUpper getText(configFile >> "cfgvehicles" >> _x >> "faction")) isEqualTo _faction}; + private _allclass_f = _allclass select {(toUpper getText(configFile >> "cfgvehicles" >> _x >> "faction")) isEqualTo _faction}; //Units - _type_units append (_allclasse_f select {_x isKindOf "Man"}); + _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 (_allclasse_f select {_x isKindOf "Ship"}); + _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 (_allclasse_f select {(_x isKindOf "Car") || (_x isKindOf "Truck") || (_x isKindOf "Truck_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; 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 48240c3f6..72867f787 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 @@ -14,7 +14,8 @@ private _type_mg = []; private _type_gl = []; //Get all vehicles -private _allclasse = ("(configName _x) isKindOf 'AllVehicles'" configClasses (configFile >> "CfgVehicles")) apply {configName _x}; +private _allclass = ("(configName _x) isKindOf 'AllVehicles'" configClasses (configFile >> "CfgVehicles")) apply {configName _x}; +_allclass = _allclass select {getNumber(configfile >> "CfgVehicles" >> _x >> "scope") isEqualTo 2}; //Check if faction existe _factions = _factions apply {if !isClass(configFile >> "CfgFactionClasses" >> _x) then {"IND_G_F"} else {_x};}; @@ -32,28 +33,28 @@ if (_enemy_side isEqualTo btc_player_side) exitWith { private _faction = _x; //Get all vehicles of the _faction selected - private _allclasse_f = _allclasse select {(toUpper getText(configFile >> "cfgvehicles" >> _x >> "faction")) isEqualTo _faction}; + private _allclass_f = _allclass select {(toUpper getText(configFile >> "cfgvehicles" >> _x >> "faction")) isEqualTo _faction}; //Units - _divers = _allclasse_f select {!(((toLower _x) find "diver") isEqualTo -1)}; + _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 ((_allclasse_f select {_x isKindOf "Man"}) - _divers); + _type_units append ((_allclass_f select {_x isKindOf "Man"}) - _divers); //Vehicles - _type_boats append _allclasse_f select {_x isKindOf "Ship"}; + _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 { - _allclasse_f select {(_x isKindOf "Tank") || (_x isKindOf "Car") || (_x isKindOf "Truck") || (_x isKindOf "Truck_F")} + _allclass_f select {(_x isKindOf "Tank") || (_x isKindOf "Car") || (_x isKindOf "Truck") || (_x isKindOf "Truck_F")} } else { - _allclasse_f select {(_x isKindOf "Car") || (_x isKindOf "Truck") || (_x isKindOf "Truck_F")} + _allclass_f select {(_x isKindOf "Car") || (_x isKindOf "Truck") || (_x isKindOf "Truck_F")} }); - _type_motorized_armed append (_allclasse_f select {((_x isKindOf "Air") || (_x isKindOf "Helicopter") || (_x isKindOf "Tank") || (_x isKindOf "Car"))}); //need call btc_fnc_find_veh_with_turret + _type_motorized_armed append (_allclass_f select {((_x isKindOf "Air") || (_x isKindOf "Helicopter") || (_x isKindOf "Tank") || (_x isKindOf "Car"))}); //need call btc_fnc_find_veh_with_turret //Static - _type_mg append _allclasse_f select {_x isKindOf "StaticGrenadeLauncher"}; + _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 _allclasse_f select {_x isKindOf "StaticMGWeapon"}; + _type_gl append _allclass_f select {_x isKindOf "StaticMGWeapon"}; if (_type_gl isEqualTo []) then {_type_mg = ["O_GMG_01_F","O_GMG_01_high_F"];}; } forEach _factions; From 7a9ba9e358cf5a4e1bda4508b67736d50c3651ce Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 1 Apr 2017 20:42:26 +0200 Subject: [PATCH 048/120] RMV: crewnen --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 1 - 1 file changed, 1 deletion(-) 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 56aba5408..5430805c0 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 @@ -493,7 +493,6 @@ switch (_p_en) do { case "IND_G_F" : { btc_type_motorized = btc_type_motorized + ["I_Truck_02_transport_F","I_Truck_02_covered_F"]; btc_type_units = btc_type_units - ["I_G_Survivor_F"]; - btc_type_crewmen = "I_soldier_F"; }; case "FOW_USMC" : { btc_type_units = btc_type_units - ["fow_s_usmc_01_private"]; From 6c45449630e0d24037dffd63a3dff066217d4b98 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 2 Apr 2017 00:48:07 +0200 Subject: [PATCH 049/120] FIX: ace_cargo_enable disable --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 4bf5c0d5a..97a59ce27 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 @@ -60,7 +60,7 @@ btc_p_debug = (paramsArray select 39); //OPTION must be use for H&M if (ace_medical_maxReviveTime > 0) then {ace_medical_enableRevive = 1;ace_medical_preventInstaDeath = true}; ace_medical_enableFor = 1; -ace_cargo_enable = true; +ace_cargo_enable = false; //btc_acre_mod = isClass(configFile >> "cfgPatches" >> "acre_main"); //btc_tfr_mod = isClass(configFile >> "cfgPatches" >> "task_force_radio"); From bd523173d30bb62e4aec77ae1a635b521a1ce1ee Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 3 Apr 2017 23:27:44 +0200 Subject: [PATCH 050/120] FIX: ( --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 5 +++-- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/class.sqf | 8 ++++---- 2 files changed, 7 insertions(+), 6 deletions(-) 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 5430805c0..7a6c033fc 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 @@ -475,8 +475,9 @@ btc_type_divers = _allclasse select 2; btc_type_crewmen = _allclasse select 3; btc_type_boats = _allclasse select 4; btc_type_motorized = _allclasse select 5; -btc_type_mg = _allclasse select 6; -btc_type_gl = _allclasse select 7; +btc_type_motorized_armed = _allclasse select 6; +btc_type_mg = _allclasse select 7; +btc_type_gl = _allclasse select 8; //Sometimes you need to remove units: - ["Blabla","moreBlabla"]; //Sometimes you need to add units: + ["Blabla","moreBlabla"]; 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 72867f787..cab33fd2f 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 @@ -42,7 +42,7 @@ if (_enemy_side isEqualTo btc_player_side) exitWith { _type_units append ((_allclass_f select {_x isKindOf "Man"}) - _divers); //Vehicles - _type_boats append _allclass_f select {_x isKindOf "Ship"}; + _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")} @@ -52,9 +52,9 @@ if (_enemy_side isEqualTo btc_player_side) exitWith { _type_motorized_armed append (_allclass_f select {((_x isKindOf "Air") || (_x isKindOf "Helicopter") || (_x isKindOf "Tank") || (_x isKindOf "Car"))}); //need call btc_fnc_find_veh_with_turret //Static - _type_mg append _allclass_f select {_x isKindOf "StaticGrenadeLauncher"}; + _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"}; + _type_gl append (_allclass_f select {_x isKindOf "StaticMGWeapon"}); if (_type_gl isEqualTo []) then {_type_mg = ["O_GMG_01_F","O_GMG_01_high_F"];}; } forEach _factions; @@ -68,4 +68,4 @@ _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}; -[_enemy_side,_type_units,_type_divers,_type_crewmen,_type_boats,_type_motorized,_type_mg,_type_gl,_type_motorized_armed] \ No newline at end of file +[_enemy_side,_type_units,_type_divers,_type_crewmen,_type_boats,_type_motorized,_type_motorized_armed,_type_mg,_type_gl] \ No newline at end of file From 5e0ceaedf0b2e2d4a708f04aded03c1d16341a07 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 5 Apr 2017 20:05:22 +0200 Subject: [PATCH 051/120] FIX: copy and paste --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 4 ++++ =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/class.sqf | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) 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 7a6c033fc..99535b682 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 @@ -495,6 +495,10 @@ switch (_p_en) do { btc_type_motorized = btc_type_motorized + ["I_Truck_02_transport_F","I_Truck_02_covered_F"]; btc_type_units = btc_type_units - ["I_G_Survivor_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_units = btc_type_units - ["I_C_Soldier_Camo_F"]; + }; case "FOW_USMC" : { btc_type_units = btc_type_units - ["fow_s_usmc_01_private"]; }; 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 cab33fd2f..1cba55096 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 @@ -55,7 +55,7 @@ if (_enemy_side isEqualTo btc_player_side) exitWith { _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_mg = ["O_GMG_01_F","O_GMG_01_high_F"];}; + if (_type_gl isEqualTo []) then {_type_gl = ["O_GMG_01_F","O_GMG_01_high_F"];}; } forEach _factions; //Final filter unwanted units type From 18b798b871771cee75f2816bb3ee1cf7f00320c1 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 5 Apr 2017 20:28:43 +0200 Subject: [PATCH 052/120] FIX: filter Survivor --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 1 - =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/class.sqf | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) 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 99535b682..4f81401b7 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 @@ -493,7 +493,6 @@ switch (_p_en) do { };*/ case "IND_G_F" : { btc_type_motorized = btc_type_motorized + ["I_Truck_02_transport_F","I_Truck_02_covered_F"]; - btc_type_units = btc_type_units - ["I_G_Survivor_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"]; 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 1cba55096..5cd3eee3d 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 @@ -63,7 +63,7 @@ if !(_en_AA) then { //Remove Anti-Air Units _type_units = _type_units select {(_x find "AA") isEqualTo -1}; }; -_type_units = _type_units select {((_x find "_Story") isEqualTo -1) && ((_x find "_base") isEqualTo -1) && ((_x find "_unarmed_") isEqualTo -1) && ((_x find "_VR_") isEqualTo -1)}; +_type_units = _type_units select {((_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}; From e28990ea6a2afd89eb799b5813b17cfd12280aa0 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 7 Apr 2017 22:35:09 +0200 Subject: [PATCH 053/120] Add: private/abort/delete --- .../core/def/mission.sqf | 2 +- .../core/fnc/common/delete.sqf | 27 +++++ .../core/fnc/compile.sqf | 1 + .../core/fnc/log/place_create_camera.sqf | 25 ++-- .../core/fnc/log/place_destroy_camera.sqf | 4 +- .../core/fnc/side/create.sqf | 1 + .../core/fnc/side/hack.sqf | 109 ++++++------------ .../core/fnc/task/create.sqf | 2 +- 8 files changed, 84 insertions(+), 87 deletions(-) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/delete.sqf 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 68049f27b..f375a1f84 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 @@ -136,7 +136,7 @@ if (isServer) then { 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]} else {[0,1,2,3,4,5,6,9,10,11,12]}; + 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"]; 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 new file mode 100644 index 000000000..c4cc2f50b --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/delete.sqf @@ -0,0 +1,27 @@ +// [marker array], [object array],[fx object array (test_EmptyObjectForSmoke)] , [group array] + +{ + deletemarker _x; +} foreach (_this select 0); + +{ + [_x] spawn { + waitUntil {sleep 5; ({_x distance (_this select 0) < 1000} count playableUnits == 0)}; + deleteVehicle (_this select 0); + }; +} forEach (_this select 1); + +{ + [_fx] spawn { + waitUntil {sleep 5; ({_x distance (_this select 0) < 1000} count playableUnits == 0)}; + (_this select 0) call btc_fnc_deleteTestObj; + }; +} forEach (_this select 2); + +{ + [_x] spawn { + waitUntil {sleep 5; ({_x distance leader (_this select 0) < 1000} count playableUnits == 0)}; + {deleteVehicle _x} foreach units (_this select 0); + [_this select 0] call btc_fnc_deletegroup; + }; +} forEach (_this select 3); \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 0422b630f..524f85ca7 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -25,6 +25,7 @@ if (isServer) then { btc_fnc_set_groupowner = compile preprocessFile "core\fnc\common\set_groupowner.sqf"; btc_fnc_find_closecity = compile preprocessFile "core\fnc\common\find_closecity.sqf"; btc_fnc_deletegroup = compile preprocessFile "core\fnc\common\deletegroup.sqf"; + btc_fnc_delete = compile preprocessFile "core\fnc\common\delete.sqf"; //CITY btc_fnc_city_activate = compile preprocessFile "core\fnc\city\activate.sqf"; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/place_create_camera.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/place_create_camera.sqf index b854ec266..e934dcfee 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/place_create_camera.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/place_create_camera.sqf @@ -1,11 +1,18 @@ -private ["_obj"]; - -_obj = _this select 0; -btc_log_place_camera = "camera" camCreate (position _obj); -btc_log_place_camera camSetTarget _obj; -btc_log_place_camera cameraEffect ["internal", "BACK"]; -btc_log_place_camera camSetPos (_obj modelToWorld [0,-6,15]); -btc_log_place_camera camCommit 0; -showCinemaBorder false; +private _terminal = _this select 0; +private _campos = _this select 1; + +_terminal setObjectTexture [0, "#(argb,512,512,1)r2t(uavrtt,1)"]; + +/* create camera and stream to render surface */ +private _cam = "camera" camCreate _campos; +_cam cameraEffect ["Internal", "Back", "uavrtt"]; + +private _y = -180; private _p = 50; private _r = 0; +_cam setVectorDirAndUp [ + [ sin _y * cos _p,cos _y * cos _p,sin _p], + [ [ sin _r,-sin _p,cos _r * cos _p],-_y] call BIS_fnc_rotateVector2D +]; + +btc_log_place_camera = _cam; btc_log_place_camera_created = true; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/place_destroy_camera.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/place_destroy_camera.sqf index 57e68eb2a..3f9a9b039 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/place_destroy_camera.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/place_destroy_camera.sqf @@ -1,6 +1,6 @@ player cameraEffect ["TERMINATE", "BACK"]; -camDestroy btc_log_place_camera; +camDestroy btc_log_place_camera; btc_log_place_camera = objNull; btc_log_place_camera_cond = false; btc_log_place_camera_created = false; -btc_log_place_camera_nvg = false; +btc_log_place_camera_nvg = false; \ No newline at end of file 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 e1df78968..6311dc872 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 @@ -33,6 +33,7 @@ switch (_side) do { 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 { 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 247723b4a..9cf0e5854 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 @@ -2,22 +2,15 @@ //http://killzonekid.com/arma-scripting-tutorials-uav-r2t-and-pip/ //http://killzonekid.com/arma-scripting-tutorials-scripted-charges/ -private ["_useful","_city","_pos","_road","_roads","_marker","_statics","_tower_type","_tower","_direction","_area","_power_type","_cord_type","_btc_composition","_btc_composition_tower"]; - -_useful = btc_city_all select {(_x getVariable ["occupied",false] && {_x getVariable ["type",""] != "NameLocal"} && {_x getVariable ["type",""] != "Hill"} && (_x getVariable ["type",""] != "NameMarine"))}; +private _useful = btc_city_all select {(_x getVariable ["occupied",false] && {_x getVariable ["type",""] != "NameLocal"} && {_x getVariable ["type",""] != "Hill"} && (_x getVariable ["type",""] != "NameMarine"))}; if (_useful isEqualTo []) exitWith {[] spawn btc_fnc_side_create;}; -_city = selectRandom _useful; - -_pos = [getPos _city, 100] call btc_fnc_randomize_pos; +private _city = selectRandom _useful; -_roads = _pos nearRoads 100; -_roads = _roads select {isOnRoad _x}; -if (_roads isEqualTo []) exitWith {[] spawn btc_fnc_side_create;}; -_road = selectRandom _roads; -_pos = getPos _road; -_direction = [_road] call btc_fnc_road_direction; +private _pos = [getPos _city, 100] call btc_fnc_randomize_pos; +private _house = selectRandom ([_pos,50] call btc_fnc_getHouses); +_pos = selectRandom (_house buildingPos -1); btc_side_aborted = false; btc_side_done = false; @@ -30,60 +23,52 @@ btc_side_jip_data = [16,_pos,_city getVariable "name"]; _city setVariable ["spawn_more",true]; -_area = createmarker [format ["sm_%1",_pos],_pos]; -_area setMarkerShape "ELLIPSE"; -_area setMarkerBrush "SolidBorder"; -_area setMarkerSize [30, 30]; -_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 "Radio Tower"; +_marker setmarkertext "Terminal"; _marker setMarkerSize [0.6, 0.6]; //// Create terminal \\\\ -_terminal = createVehicle ["Land_DataTerminal_01_F", _pos, [], 0, "CAN_COLLIDE"]; -btc_side_hack_start = false; +private _terminal = createVehicle ["Land_DataTerminal_01_F", _pos, [], 0, "CAN_COLLIDE"]; +{btc_side_done = false} remoteExec ["call", 0]; _pos = [[_pos, 100] call btc_fnc_randomize_pos, 50, 500, 30, 0, 60 * (pi / 180), 0] call BIS_fnc_findSafePos; -_launchsite = createVehicle ["Land_PenBlack_F", _pos, [], 0, "FLY"]; +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_hack_start = true} remoteExec ["call", 0]; - },{true}] call ace_interact_menu_fnc_createAction; + {btc_side_done = true} remoteExec ["call", 0]; + },{!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]; -}] remoteExec ["call", 2];//-2 - -waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || btc_side_hack_start)}; +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"; +}; -_groups = []; +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); }; -_terminal setObjectTexture [0, "#(argb,512,512,1)r2t(uavrtt,1)"]; - -/* create camera and stream to render surface */ -_cam = "camera" camCreate (_launchsite modelToWorld [0,100,10]); -_cam cameraEffect ["Internal", "Back", "uavrtt"]; - -_y = -180; _p = 50; _r = 0; -_cam setVectorDirAndUp [ - [ sin _y * cos _p,cos _y * cos _p,sin _p], - [ [ sin _r,-sin _p,cos _r * cos _p],-_y] call BIS_fnc_rotateVector2D -]; +[_terminal, _launchsite modelToWorld [0,100,10]] remoteExec ["btc_fnc_log_place_create_camera", -2]; {player commandChat "Defend the terminal until it is hacked!"} remoteExec ["call", -2]; -waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || ({_x isEqualTo grpNull} count _groups > 0))}; +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 { + 16 remoteExec ["btc_fnc_task_fail", 0]; + [[_marker], [_terminal], [], []] call btc_fnc_delete; + btc_side_assigned = false;publicVariable "btc_side_assigned"; +}; + -//// Launch to hacked missile \\\\ +//// Launch the hacked missile \\\\ private _altitude = 20; while {_altitude < 400} do { _altitude = _altitude + 1.5; @@ -94,39 +79,15 @@ private _rocket = createVehicle ["ace_rearm_Missile_AGM_02_F", [_pos select 0, _ private _fx = createVehicle ["test_EmptyObjectForSmoke", [_pos select 0, _pos select 1, _altitude], [], 0, "CAN_COLLIDE"]; _fx attachTo [_rocket,[0,0,0]]; -btc_side_hack_start = false; -{deletemarker _x} foreach [_area,_marker]; - -if (btc_side_aborted || btc_side_failed ) exitWith { - {16 call btc_fnc_task_fail} remoteExec ["call", 0]; +{btc_side_done = false} remoteExec ["call", 0]; +if (btc_side_aborted || btc_side_failed || !(_city getVariable ["active", false])) exitWith { + 16 remoteExec ["btc_fnc_task_fail", 0]; + [[_marker], [_rocket, _terminal], [_fx], []] call btc_fnc_delete; btc_side_assigned = false;publicVariable "btc_side_assigned"; - [_fx] spawn { - waitUntil {sleep 5; ({_x distance (_this select 0) < 500} count playableUnits == 0)}; - (_this select 0) call btc_fnc_deleteTestObj; - deleteVehicle (_this select 0); - }; - { - [_x] spawn { - waitUntil {sleep 5; ({_x distance (_this select 0) < 500} count playableUnits == 0)}; - deleteVehicle (_this select 0); - }; - } forEach [_rocket, _terminal]; }; 80 call btc_fnc_rep_change; -{16 call btc_fnc_task_set_done} remoteExec ["call", 0]; - -[_fx] spawn { - waitUntil {sleep 5; ({_x distance (_this select 0) < 500} count playableUnits == 0)}; - (_this select 0) call btc_fnc_deleteTestObj; - deleteVehicle (_this select 0); -}; -{ - [_x] spawn { - waitUntil {sleep 5; ({_x distance (_this select 0) < 500} count playableUnits == 0)}; - deleteVehicle (_this select 0); - }; -} forEach [_rocket, _terminal]; - +16 remoteExec ["btc_fnc_task_set_done", 0]; +[[_marker], [_rocket, _terminal], [_fx], []] call btc_fnc_delete; btc_side_assigned = false;publicVariable "btc_side_assigned"; \ No newline at end of file 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 5ea9b88f8..43f133e23 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 @@ -97,7 +97,7 @@ switch (_this select 0) do }; case 16 : { - _description = [format ["Hack a prototype missile in %1. Defend your position until the process is done!",_location],("Hack missile near " + _location),("Hack missile near " + _location)]; + _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"; }; }; From 1c58b32275faed4a2f4e947f73148af5068f6dc9 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 7 Apr 2017 23:11:45 +0200 Subject: [PATCH 054/120] Add: replace old bis fnc MP --- .../core/fnc/cache/hd_cache.sqf | 2 +- .../core/fnc/common/clean_up.sqf | 4 ++-- .../core/fnc/common/deletegroup.sqf | 2 +- .../core/fnc/common/final_phase.sqf | 8 ++++---- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf | 4 +++- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/delete.sqf | 2 +- .../core/fnc/db/request_delete.sqf | 3 +-- .../core/fnc/db/request_save.sqf | 3 +-- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf | 4 ++-- .../core/fnc/deaf/earringing.sqf | 2 +- .../core/fnc/eh/player_respawn.sqf | 2 +- .../core/fnc/eh/veh_killed.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/create.sqf | 2 +- .../core/fnc/fob/create_s.sqf | 3 ++- .../core/fnc/fob/dismantle.sqf | 2 +- .../core/fnc/side/capture_officer.sqf | 6 +++--- .../core/fnc/side/checkpoint.sqf | 4 ++-- .../core/fnc/side/civtreatment.sqf | 4 ++-- .../core/fnc/side/civtreatment_boat.sqf | 4 ++-- .../core/fnc/side/convoy.sqf | 6 +++--- .../core/fnc/side/get_city.sqf | 4 ++-- .../core/fnc/side/hostage.sqf | 4 ++-- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/mines.sqf | 4 ++-- .../core/fnc/side/request.sqf | 2 +- .../core/fnc/side/rescue.sqf | 4 ++-- .../core/fnc/side/supply.sqf | 4 ++-- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/tower.sqf | 4 ++-- .../core/fnc/side/underwater_generator.sqf | 4 ++-- .../core/fnc/side/vehicle.sqf | 4 ++-- 29 files changed, 52 insertions(+), 51 deletions(-) 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 c6e9cea0e..66146ea9b 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 @@ -35,7 +35,7 @@ if (isNil {_cache getVariable "btc_hd_cache"} && {_explosive} && {_damage > 0.6} btc_cache_markers = []; //Notification - [[0],"btc_fnc_show_hint"] spawn BIS_fnc_MP; + [0] remoteExec ["btc_fnc_show_hint", 0]; [] spawn {[] call btc_fnc_cache_find_pos;}; } else {0}; \ 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 e970fceb0..7e4276f42 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,9 +1,9 @@ { - private ["_obj"];_obj = _x; + 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"];_dead = _x; + private _dead = _x; if (({_x distance _dead < 300} count playableUnits) == 0 && isNil {_dead getVariable "btc_dont_delete"}) then {deleteVehicle _dead}; } foreach alldead; { 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 7bbfdeaaf..69783c5e3 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 @@ -4,5 +4,5 @@ if (local (_this select 0)) then { deleteGroup (_this select 0); } else { //DeleteGroup where is local - [(_this select 0), {deleteGroup _this}] remoteExec ["call", groupOwner (_this select 0)]; + (_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/final_phase.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/final_phase.sqf index 4e2da0cb1..0653de0ca 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 @@ -1,9 +1,9 @@ private ["_radius_x","_radius_y","_marker"]; -[[6],"btc_fnc_show_hint"] spawn BIS_fnc_MP; +[6] remoteExec ["btc_fnc_show_hint", 0]; -{1 call btc_fnc_task_set_done} remoteExec ["call", 0]; +1 remoteExec ["btc_fnc_task_set_done", 0]; btc_final_phase = true; @@ -26,8 +26,8 @@ btc_city_remaining = []; waitUntil {sleep 15; (btc_city_remaining isEqualTo [])}; -{0 call btc_fnc_task_set_done;} remoteExec ["call", 0]; +0 remoteExec ["btc_fnc_task_set_done", 0]; 2 call btc_fnc_task_set_done; //END -[[],"btc_fnc_end_mission",true,true] spawn BIS_fnc_MP; \ No newline at end of file +[] remoteExec ["btc_fnc_end_mission", 0, true]; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf index f70ba3a9f..6f01e199c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/add_veh.sqf @@ -1,5 +1,7 @@ -if !(isServer) exitWith {[_this,"btc_fnc_db_add_veh",false] spawn BIS_fnc_MP;}; +if !(isServer) exitWith { + _this remoteExec ["btc_fnc_db_add_veh", 2]; +}; btc_vehicles pushBackUnique _this; _this addMPEventHandler ["MPKilled", {if (isServer) then {_this call btc_fnc_eh_veh_killed};}]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/delete.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/delete.sqf index 651679348..ae0d7091a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/delete.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/delete.sqf @@ -17,4 +17,4 @@ profileNamespace setVariable [format ["btc_hm_%1_db",_name],nil]; saveProfileNamespace; -[[10],"btc_fnc_show_hint"] spawn BIS_fnc_MP; \ No newline at end of file +[10] remoteExec ["btc_fnc_show_hint", 0]; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/request_delete.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/request_delete.sqf index c0a5ea09c..d7e4906be 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/request_delete.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/request_delete.sqf @@ -1,2 +1 @@ - -[[],"btc_fnc_db_delete",false] spawn BIS_fnc_MP; \ No newline at end of file +[] remoteExec ["btc_fnc_db_delete", 2]; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/request_save.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/request_save.sqf index e10eb677b..2ef417dc8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/request_save.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/request_save.sqf @@ -1,2 +1 @@ - -[[],"btc_fnc_db_save",false] spawn BIS_fnc_MP; \ No newline at end of file +[] remoteExec ["btc_fnc_db_save", 2]; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf index 53e491b3e..af3b4060a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf @@ -8,7 +8,7 @@ call btc_fnc_db_delete; private ["_cities_status","_fobs","_name","_array_ho","_data","_array_cache","_array_veh","_array_obj","_cargo","_cont","_cache_markers"]; hint "saving..."; -[[8],"btc_fnc_show_hint"] spawn BIS_fnc_MP; +[8] remoteExec ["btc_fnc_show_hint", 0]; btc_db_is_saving = true; _name = worldName; @@ -152,6 +152,6 @@ profileNamespace setVariable [format ["btc_hm_%1_objs",_name],_array_obj]; profileNamespace setVariable [format ["btc_hm_%1_db",_name],true]; saveProfileNamespace; hint "saving...3"; -[[9],"btc_fnc_show_hint"] spawn BIS_fnc_MP; +[9] remoteExec ["btc_fnc_show_hint", 0]; btc_db_is_saving = false; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/deaf/earringing.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/deaf/earringing.sqf index 936939ec1..b481cc28b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/deaf/earringing.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/deaf/earringing.sqf @@ -4,4 +4,4 @@ private ["_players_close","_pos"]; _pos = _this select 0; _players_close = allPlayers select {_pos distance _x < 100}; -{[20] call ace_hearing_fnc_earRinging;} remoteExec ["call", _players_close apply {owner _x}]; \ No newline at end of file +[20] remoteExec ["ace_hearing_fnc_earRinging", _players_close apply {owner _x}]; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player_respawn.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player_respawn.sqf index 0d584adad..6a09e83e0 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player_respawn.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player_respawn.sqf @@ -2,4 +2,4 @@ player addRating 9999; player setCaptive false; -[btc_rep_malus_player_respawn,"btc_fnc_rep_change",false] spawn BIS_fnc_MP; +btc_rep_malus_player_respawn remoteExec ["btc_fnc_rep_change", 2]; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/veh_killed.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/veh_killed.sqf index b64b324d6..a94bd16b4 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/veh_killed.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/veh_killed.sqf @@ -10,4 +10,4 @@ _marker setMarkerText format ["%1 wreck",getText (configFile >> "cfgVehicles" >> _vehicle setVariable ["marker",_marker]; -if (isServer) then {btc_rep_malus_veh_killed spawn btc_fnc_rep_change} else {[btc_rep_malus_veh_killed,"btc_fnc_rep_change",false] spawn BIS_fnc_MP;}; \ No newline at end of file +if (isServer) then {btc_rep_malus_veh_killed spawn btc_fnc_rep_change} else {btc_rep_malus_veh_killed remoteExec ["btc_fnc_rep_change", 2];}; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/create.sqf index 8fd1e6def..f8a2a1109 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/create.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/create.sqf @@ -37,4 +37,4 @@ hint "Get back! Mounting FOB"; closeDialog 0; -[[_mat,_name],"btc_fnc_fob_create_s",false] spawn BIS_fnc_MP; \ No newline at end of file +[_mat,_name] remoteExec ["btc_fnc_fob_create_s", 2]; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/create_s.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/create_s.sqf index db495eb15..e59b02f46 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/create_s.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/create_s.sqf @@ -28,7 +28,8 @@ _marker = createmarker [("FOB " + _name), getPos _flag]; (btc_fobs select 0) pushBack (("FOB " + _name)); (btc_fobs select 1) pushBack _struc; _flag setVariable ["btc_fob",("FOB " + _name)]; -[[7,("FOB " + _name)],"btc_fnc_show_hint"] spawn BIS_fnc_MP; +[7,("FOB " + _name)] remoteExec ["btc_fnc_show_hint", 0]; + /* //_flag setVariable ["BTC_mobile_west",format ["FOB_%1",BTC_fob_id],true]; BTC_fob_placed = BTC_fob_placed + [_flag];publicVariable "BTC_fob_placed";//Till nearestObjects will work again diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/dismantle.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/dismantle.sqf index fbc8ddf36..33c13b76b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/dismantle.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/dismantle.sqf @@ -1,4 +1,4 @@ hint format ["Dismantle, move out ..."]; sleep 10; -[_this,"btc_fnc_fob_dismantle_s",false] spawn BIS_fnc_MP; \ No newline at end of file +_this remoteExec ["btc_fnc_fob_dismantle_s", 2]; \ No newline at end of file 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 434f733dc..c8280fb20 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 @@ -111,7 +111,7 @@ waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || !(Alive _captive) || {deletemarker _x} foreach _markers; if (btc_side_aborted || !(Alive _captive)) exitWith { - {14 call btc_fnc_task_fail} remoteExec ["call", 0]; + 14 remoteExec ["btc_fnc_task_fail", 0]; btc_side_assigned = false;publicVariable "btc_side_assigned"; [_vehs + [_trigger],_group] spawn { waitUntil {sleep 5; ({_x distance ((_this select 0) select 0) < 500} count playableUnits isEqualTo 0)}; @@ -122,7 +122,7 @@ if (btc_side_aborted || !(Alive _captive)) exitWith { }; if (btc_side_failed) exitWith { - [14,"btc_fnc_task_fail",true] spawn BIS_fnc_MP; + 14 remoteExec ["btc_fnc_task_fail", 0]; btc_side_assigned = false;publicVariable "btc_side_assigned"; deleteVehicle _trigger; _group setVariable ["no_cache",false]; @@ -135,7 +135,7 @@ if (btc_side_failed) exitWith { 50 call btc_fnc_rep_change; -{14 call btc_fnc_task_set_done} remoteExec ["call", 0]; +14 remoteExec ["btc_fnc_task_set_done", 0]; [_vehs + [_trigger],_group] spawn { waitUntil {sleep 5; ({_x distance ((_this select 0) select 0) < 500} count playableUnits isEqualTo 0)}; 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 b1bf3451f..92b4d416a 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 @@ -90,7 +90,7 @@ waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || ({Alive _x} count _b {deletemarker _x} foreach _markers; if (btc_side_aborted || btc_side_failed ) exitWith { - {9 call btc_fnc_task_fail} remoteExec ["call", 0]; + 9 remoteExec ["btc_fnc_task_fail", 0]; btc_side_assigned = false;publicVariable "btc_side_assigned"; { _x spawn { @@ -102,7 +102,7 @@ if (btc_side_aborted || btc_side_failed ) exitWith { 80 call btc_fnc_rep_change; -{9 call btc_fnc_task_set_done} remoteExec ["call", 0]; +9 remoteExec ["btc_fnc_task_set_done", 0]; { _x spawn { 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 ffe8cd4d1..f7e97a264 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 @@ -88,13 +88,13 @@ waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || !Alive _unit || {_un }; if (btc_side_aborted || btc_side_failed || !Alive _unit) exitWith { - {8 call btc_fnc_task_fail} remoteExec ["call", 0]; + 8 remoteExec ["btc_fnc_task_fail", 0]; btc_side_assigned = false;publicVariable "btc_side_assigned"; }; 10 call btc_fnc_rep_change; -{8 call btc_fnc_task_set_done} remoteExec ["call", 0]; +8 remoteExec ["btc_fnc_task_set_done", 0]; _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 ea786abeb..0059a9b66 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 @@ -52,7 +52,7 @@ waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || !Alive _unit || {_un {deletemarker _x} foreach [_marker]; if (btc_side_aborted || btc_side_failed || !Alive _unit) exitWith { - {10 call btc_fnc_task_fail} remoteExec ["call", 0]; + 10 remoteExec ["btc_fnc_task_fail", 0]; btc_side_assigned = false;publicVariable "btc_side_assigned"; {_x spawn { waitUntil {sleep 5; ({_x distance _this < 300} count playableUnits == 0)}; @@ -62,7 +62,7 @@ if (btc_side_aborted || btc_side_failed || !Alive _unit) exitWith { 10 call btc_fnc_rep_change; -{10 call btc_fnc_task_set_done} remoteExec ["call", 0]; +10 remoteExec ["btc_fnc_task_set_done", 0]; {_x spawn { waitUntil {sleep 5; ({_x distance _this < 300} count playableUnits == 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 8d6b64656..24bb552fa 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 @@ -95,7 +95,7 @@ waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || ({ canMove _x } coun {deletemarker _x} foreach _markers; if (btc_side_aborted) exitWith { - [12,"btc_fnc_task_fail",true] spawn BIS_fnc_MP; + 12 remoteExec ["btc_fnc_task_fail", 0]; btc_side_assigned = false;publicVariable "btc_side_assigned"; [_vehs,_group] spawn { waitUntil {sleep 5; ({_x distance ((_this select 0) select 0) < 500} count playableUnits isEqualTo 0)}; @@ -106,7 +106,7 @@ if (btc_side_aborted) exitWith { }; if (btc_side_failed) exitWith { - {12 call btc_fnc_task_fail} remoteExec ["call", 0]; + 12 remoteExec ["btc_fnc_task_fail", 0]; btc_side_assigned = false;publicVariable "btc_side_assigned"; _group setVariable ["no_cache",false]; { @@ -118,7 +118,7 @@ if (btc_side_failed) exitWith { 50 call btc_fnc_rep_change; -{12 call btc_fnc_task_set_done} remoteExec ["call", 0]; +12 remoteExec ["btc_fnc_task_set_done", 0]; [_vehs,_group] spawn { waitUntil {sleep 5; ({_x distance ((_this select 0) select 0) < 500} count playableUnits isEqualTo 0)}; 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 5f8612759..8ea431760 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 @@ -23,12 +23,12 @@ waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || !(_city getVariable if (btc_side_aborted || btc_side_failed) exitWith { - {6 call btc_fnc_task_fail} remoteExec ["call", 0]; + 6 remoteExec ["btc_fnc_task_fail", 0]; btc_side_assigned = false;publicVariable "btc_side_assigned"; }; 80 call btc_fnc_rep_change; -{6 call btc_fnc_task_set_done} remoteExec ["call", 0]; +6 remoteExec ["btc_fnc_task_set_done", 0]; btc_side_assigned = false;publicVariable "btc_side_assigned"; \ No newline at end of file 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 445b3293c..cb9b6d774 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 @@ -80,7 +80,7 @@ _group_civ setVariable ["no_cache",false]; {_x setVariable ["no_cache",false];} foreach _group; if (btc_side_aborted || btc_side_failed || !(Alive _captive)) exitWith { - {15 call btc_fnc_task_fail} remoteExec ["call", 0]; + 15 remoteExec ["btc_fnc_task_fail", 0]; btc_side_assigned = false;publicVariable "btc_side_assigned"; [[_captive,_trigger,_mine],_group_civ,_group] spawn { waitUntil {sleep 5; ({_x distance (_this select 0 select 0) < 500} count playableUnits isEqualTo 0)}; @@ -94,6 +94,6 @@ if (btc_side_aborted || btc_side_failed || !(Alive _captive)) exitWith { 40 call btc_fnc_rep_change; -{15 call btc_fnc_task_set_done} remoteExec ["call", 0]; +15 remoteExec ["btc_fnc_task_set_done", 0]; btc_side_assigned = false;publicVariable "btc_side_assigned"; \ No newline at end of file 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 0c772ac40..a6c06d2aa 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 @@ -54,13 +54,13 @@ waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || ({!isNull _x} count {deletemarker _x} foreach [_area,_marker]; if (btc_side_aborted || btc_side_failed) exitWith { - {4 call btc_fnc_task_fail} remoteExec ["call", 0]; + 4 remoteExec ["btc_fnc_task_fail", 0]; btc_side_assigned = false;publicVariable "btc_side_assigned"; {if (!isNull _x) then {deleteVehicle _x}} foreach _mines; }; 30 call btc_fnc_rep_change; -{4 call btc_fnc_task_set_done} remoteExec ["call", 0]; +4 remoteExec ["btc_fnc_task_set_done", 0]; btc_side_assigned = false;publicVariable "btc_side_assigned"; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/request.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/request.sqf index 6fa66e2f1..9a5c04b26 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/request.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/request.sqf @@ -1 +1 @@ -[[],"btc_fnc_side_create",false] spawn BIS_fnc_MP; \ No newline at end of file +[] remoteExec ["btc_fnc_side_create", 2]; \ No newline at end of file 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 80f9690e3..1af643b24 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 @@ -75,13 +75,13 @@ waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || ({_x distance getpos }; if (btc_side_aborted || btc_side_failed || ({Alive _x} count _units isEqualTo 0)) exitWith { - {13 call btc_fnc_task_fail} remoteExec ["call", 0]; + 13 remoteExec ["btc_fnc_task_fail", 0]; btc_side_assigned = false;publicVariable "btc_side_assigned"; }; 50 call btc_fnc_rep_change; -{13 call btc_fnc_task_set_done} remoteExec ["call", 0]; +13 remoteExec ["btc_fnc_task_set_done", 0]; { deleteVehicle _x; 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 64c2b84d9..d998578ce 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 @@ -36,13 +36,13 @@ waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || count (nearestObject {deletemarker _x} foreach [_area,_marker]; if (btc_side_aborted || btc_side_failed) exitWith { - {3 call btc_fnc_task_fail} remoteExec ["call", 0]; + 3 remoteExec ["btc_fnc_task_fail", 0]; btc_side_assigned = false;publicVariable "btc_side_assigned"; }; 50 call btc_fnc_rep_change; -{3 call btc_fnc_task_set_done} remoteExec ["call", 0]; +3 remoteExec ["btc_fnc_task_set_done", 0]; if (count (nearestObjects [_pos, [btc_supplies_mat], 30]) > 0) then { _pos spawn { 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 b2eaa98f8..d4287e4b9 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 @@ -62,7 +62,7 @@ waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || !Alive _tower )}; {deletemarker _x} foreach [_area,_marker]; if (btc_side_aborted || btc_side_failed ) exitWith { - {7 call btc_fnc_task_fail} remoteExec ["call", 0]; + 7 remoteExec ["btc_fnc_task_fail", 0]; btc_side_assigned = false;publicVariable "btc_side_assigned"; _btc_composition spawn { @@ -74,7 +74,7 @@ if (btc_side_aborted || btc_side_failed ) exitWith { 80 call btc_fnc_rep_change; -{7 call btc_fnc_task_set_done} remoteExec ["call", 0]; +7 remoteExec ["btc_fnc_task_set_done", 0]; _btc_composition spawn { 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 9c49b627b..b371da64a 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 @@ -65,7 +65,7 @@ waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || !Alive _generator )} {deletemarker _x} foreach [_area,_marker]; if (btc_side_aborted || btc_side_failed ) exitWith { - {11 call btc_fnc_task_fail} remoteExec ["call", 0]; + 11 remoteExec ["btc_fnc_task_fail", 0]; btc_side_assigned = false;publicVariable "btc_side_assigned"; {_x spawn { @@ -77,7 +77,7 @@ if (btc_side_aborted || btc_side_failed ) exitWith { 80 call btc_fnc_rep_change; -{11 call btc_fnc_task_set_done} remoteExec ["call", 0]; +11 remoteExec ["btc_fnc_task_set_done", 0]; {_x spawn { 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 0f0da986c..bdd36cdda 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 @@ -46,13 +46,13 @@ waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || (_veh getHit "wheel_ {deletemarker _x} foreach [_area,_marker]; if (btc_side_aborted || btc_side_failed || !Alive _veh) exitWith { - {5 call btc_fnc_task_fail} remoteExec ["call", 0]; + 5 remoteExec ["btc_fnc_task_fail", 0]; btc_side_assigned = false;publicVariable "btc_side_assigned"; }; 15 call btc_fnc_rep_change; -{5 call btc_fnc_task_set_done} remoteExec ["call", 0]; +5 remoteExec ["btc_fnc_task_set_done", 0]; _veh spawn { From 4fa57ac0705d89150d676d3d21bfe7c838052322 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 7 Apr 2017 23:22:56 +0200 Subject: [PATCH 055/120] Add: create fonction for EH --- .../core/fnc/compile.sqf | 4 +++- .../core/fnc/eh/explosives_defuse.sqf | 6 ++++++ .../core/fnc/eh/handledisconnect.sqf | 5 +++++ .../core/fnc/eh/treatement.sqf | 5 +++++ .../core/init_player.sqf | 7 +------ .../core/init_server.sqf | 15 ++------------- 6 files changed, 22 insertions(+), 20 deletions(-) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/explosives_defuse.sqf create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/handledisconnect.sqf create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/treatement.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index f93ae59e6..44e234945 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -61,6 +61,8 @@ if (isServer) then { btc_fnc_eh_veh_add_respawn = compile preprocessFile "core\fnc\eh\veh_add_respawn.sqf"; btc_fnc_eh_veh_killed = compile preprocessFile "core\fnc\eh\veh_killed.sqf"; btc_fnc_eh_veh_respawn = compile preprocessFile "core\fnc\eh\veh_respawn.sqf"; + btc_fnc_eh_explosives_defuse = compile preprocessFile "core\fnc\eh\explosives_defuse.sqf"; + btc_fnc_eh_handledisconnect = compile preprocessFile "core\fnc\eh\handledisconnect.sqf"; //IED btc_fnc_ied_boom = compile preprocessFile "core\fnc\ied\boom.sqf"; @@ -225,7 +227,7 @@ if (!isDedicated) then { //EH btc_fnc_eh_player_respawn = compile preprocessFile "core\fnc\eh\player_respawn.sqf"; btc_fnc_eh_CuratorObjectPlaced = compile preprocessFile "core\fnc\eh\CuratorObjectPlaced.sqf"; - + btc_fnc_eh_treatment = compile preprocessFile "core\fnc\eh\treatment.sqf"; //FOB btc_fnc_fob_create = compile preprocessFile "core\fnc\fob\create.sqf"; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/explosives_defuse.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/explosives_defuse.sqf new file mode 100644 index 000000000..492ba44a4 --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/explosives_defuse.sqf @@ -0,0 +1,6 @@ + +params ["_ied", "_unit"]; +private _type_ied = typeOf _ied; +if ((_type_ied select [0, _type_ied find "_"]) in (btc_type_ieds_ace apply {_x select [0, _x find "_"]})) then { + btc_rep_bonus_disarm call btc_fnc_rep_change; +}; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/handledisconnect.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/handledisconnect.sqf new file mode 100644 index 000000000..bbccafb1d --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/handledisconnect.sqf @@ -0,0 +1,5 @@ + +if ((_this select 0) in (entities "HeadlessClient_F")) then { + //Remove HC player when disconnect + deleteVehicle (_this select 0); +}; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/treatement.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/treatement.sqf new file mode 100644 index 000000000..7ad51d4aa --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/treatement.sqf @@ -0,0 +1,5 @@ + +if (isPlayer (_this select 1)) exitWith {}; +if ((Alive (_this select 1)) && (side (_this select 1) isEqualTo civilian) && !((_this select 3) isEqualTo "Diagnose")) then { + _this remoteExec ["btc_fnc_rep_hh",2]; +}; \ No newline at end of file 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 aba11f8e6..4b4a406bf 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 @@ -9,12 +9,7 @@ player addEventHandler ["Respawn", btc_fnc_eh_player_respawn]; player addEventHandler ["CuratorObjectPlaced", btc_fnc_eh_CuratorObjectPlaced]; - ["ace_treatmentSucceded", { - if (isPlayer (_this select 1)) exitWith {}; - if ((Alive (_this select 1)) && (side (_this select 1) isEqualTo civilian) && !((_this select 3) isEqualTo "Diagnose")) then { - _this remoteExec ["btc_fnc_rep_hh",2]; - }; - }] call CBA_fnc_addEventHandler; + ["ace_treatmentSucceded", btc_fnc_eh_treatment] call CBA_fnc_addEventHandler; call btc_fnc_int_add_actions; 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 92cf42194..a3f3f3cfe 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 @@ -22,20 +22,9 @@ if (btc_db_load && {profileNamespace getVariable [format ["btc_hm_%1_db",worldNa call btc_fnc_db_autosave; -addMissionEventHandler ["HandleDisconnect",{ - if ((_this select 0) in (entities "HeadlessClient_F")) then { - //Remove HC player when disconnect - deleteVehicle (_this select 0); - }; -}]; +addMissionEventHandler ["HandleDisconnect",btc_fnc_eh_handledisconnect]; -["ace_explosives_defuse", { - params ["_ied", "_unit"]; - private _type_ied = typeOf _ied; - if ((_type_ied select [0, _type_ied find "_"]) in (btc_type_ieds_ace apply {_x select [0, _x find "_"]})) then { - btc_rep_bonus_disarm call btc_fnc_rep_change; - }; -}] call CBA_fnc_addEventHandler; +["ace_explosives_defuse", btc_fnc_eh_explosives_defuse] call CBA_fnc_addEventHandler; ["Initialize"] call BIS_fnc_dynamicGroups; From 6aeef09443ad2cc7d0bed27fc7bc5491fa56a86b Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 7 Apr 2017 23:37:43 +0200 Subject: [PATCH 056/120] Add: use the EH to delete vehicle --- .../core/fnc/civ/traffic_add_WP.sqf | 6 +----- .../core/fnc/civ/traffic_eh.sqf | 4 +--- .../core/fnc/mil/patrol_addWP.sqf | 7 +------ .../core/fnc/mil/patrol_eh.sqf | 4 +--- .../core/fnc/mil/unit_killed.sqf | 4 +--- 5 files changed, 5 insertions(+), 20 deletions(-) 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 879ac5246..369f9427d 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 @@ -15,11 +15,7 @@ if ({_x distance _active_city < (_area/2) || _x distance leader _group < (_area/ 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]; }; - if (vehicle leader _group != leader _group) then { - (vehicle leader _group) call btc_fnc_civ_traffic_eh_remove; - deleteVehicle (vehicle leader _group); - }; - {deleteVehicle _x;} foreach units _group;deleteGroup _group; + vehicle leader _group setFuel 0; }; //Sometimes the waypoints is completed but too far do to obstacle (water for island etc) 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 c42a4d3aa..eca32473e 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 @@ -2,9 +2,7 @@ //if (count _this > 4 && {!((_this select 1) isEqualTo "engine")}) exitWith {}; -private ["_veh"]; - -_veh = _this select 0; +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]; }; 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 ed9277b80..fc6fab128 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,12 +12,7 @@ _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 (vehicle leader _group != leader _group) then { - (vehicle leader _group) call btc_fnc_mil_patrol_eh_remove; - deleteVehicle (vehicle leader _group); - }; - {deleteVehicle _x;} foreach units _group; - [_group] call btc_fnc_deletegroup; + vehicle leader _group setFuel 0; }; //Sometimes the waypoints is completed but too far do to obstacle (water for island etc) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/patrol_eh.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/patrol_eh.sqf index edf979285..23d133941 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/patrol_eh.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/patrol_eh.sqf @@ -2,9 +2,7 @@ //if (count _this > 4 && {!((_this select 1) isEqualTo "engine")}) exitWith {}; -private ["_veh"]; - -_veh = _this select 0; +private _veh = _this select 0; if (btc_debug_log) then {hint "traffic eh";diag_log text format ["traffic eh: %1",_veh];}; _veh call btc_fnc_mil_patrol_eh_remove; 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 730f5219c..955b4e513 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 @@ -1,7 +1,5 @@ -private ["_killer"]; - -_killer = (_this select 0) getVariable ["ace_medical_lastDamageSource", (_this select 1)]; +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]; From 02e5541428b4406547f2d82143b4862387f8d200 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 8 Apr 2017 10:43:00 +0200 Subject: [PATCH 057/120] Add: magic function btc_fnc_delete --- .../core/fnc/civ/traffic_eh.sqf | 6 +-- .../core/fnc/common/delete.sqf | 39 +++++++++++++++++++ .../core/fnc/compile.sqf | 1 + .../core/fnc/mil/patrol_eh.sqf | 7 +--- .../core/fnc/rep/killed.sqf | 5 +-- .../core/fnc/side/capture_officer.sqf | 25 ++---------- .../core/fnc/side/checkpoint.sqf | 24 +++--------- .../core/fnc/side/civtreatment.sqf | 13 ++----- .../core/fnc/side/civtreatment_boat.sqf | 15 ++----- .../core/fnc/side/convoy.sqf | 20 ++-------- .../core/fnc/side/get_city.sqf | 6 +-- .../core/fnc/side/hostage.sqf | 15 ++----- .../core/fnc/side/mines.sqf | 8 ++-- .../core/fnc/side/rescue.sqf | 17 ++------ .../core/fnc/side/supply.sqf | 17 ++------ .../core/fnc/side/tower.sqf | 21 ++-------- .../core/fnc/side/underwater_generator.sqf | 21 ++-------- .../core/fnc/side/vehicle.sqf | 14 ++----- 18 files changed, 83 insertions(+), 191 deletions(-) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/delete.sqf 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 c42a4d3aa..b95e4f847 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 @@ -11,8 +11,4 @@ if (btc_debug_log) then { _veh call btc_fnc_civ_traffic_eh_remove; -[_veh,(_veh getVariable ["driver",grpNull])] spawn { - waitUntil {sleep 5; ({_x distance (_this select 0) < 600} count playableUnits == 0)}; - {deleteVehicle _x;} foreach ([_this select 0] + units (_this select 1)); - deleteGroup (_this select 1); -}; \ No newline at end of file +[[], [_veh], [], [(_veh getVariable ["driver",grpNull])]] call btc_fnc_delete; \ No newline at end of file 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 new file mode 100644 index 000000000..e97fe8a8c --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/delete.sqf @@ -0,0 +1,39 @@ +// [marker array], [object array],[fx object array (test_EmptyObjectForSmoke)] , [group array] + +{ + deletemarker _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; +} 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; +} 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 diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index f93ae59e6..bf8fe5ca7 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -25,6 +25,7 @@ if (isServer) then { btc_fnc_set_groupowner = compile preprocessFile "core\fnc\common\set_groupowner.sqf"; btc_fnc_find_closecity = compile preprocessFile "core\fnc\common\find_closecity.sqf"; btc_fnc_deletegroup = compile preprocessFile "core\fnc\common\deletegroup.sqf"; + btc_fnc_delete = compile preprocessFile "core\fnc\common\delete.sqf"; //CITY btc_fnc_city_activate = compile preprocessFile "core\fnc\city\activate.sqf"; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/patrol_eh.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/patrol_eh.sqf index edf979285..fbfee526a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/patrol_eh.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/patrol_eh.sqf @@ -8,9 +8,4 @@ _veh = _this select 0; if (btc_debug_log) then {hint "traffic eh";diag_log text format ["traffic eh: %1",_veh];}; _veh call btc_fnc_mil_patrol_eh_remove; -[_veh,(_veh getVariable ["crews",grpNull])] spawn { - waitUntil {sleep 5; ({_x distance (_this select 0) < 1000} count playableUnits == 0)}; - {deleteVehicle _x;} foreach ([_this select 0] + units (_this select 1)); - [_this select 1] call btc_fnc_deletegroup; - if (isNull (_this select 0)) exitWith {};//Just to be sure -}; \ No newline at end of file +[[], [_veh], [], [(_veh getVariable ["crews",grpNull])]] call btc_fnc_delete; \ No newline at end of file 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 06bc69cda..eaa9646dd 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 @@ -10,8 +10,5 @@ if (isPlayer _killer) then { }; if !(isNil {_unit getVariable ["traffic",objNull]}) then { - [getPos _unit,(_unit getVariable ["traffic",objNull])] spawn { - waitUntil {sleep 5; ({_x distance (_this select 0) < 300} count playableUnits == 0)}; - deleteVehicle (_this select 1); - }; + [[], [], [], [_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/side/capture_officer.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf index 434f733dc..68b934cea 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 @@ -108,22 +108,14 @@ _trigger attachTo [_captive,[0,0,0]]; waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || !(Alive _captive) || (_captive distance getpos btc_create_object_point < 100))}; -{deletemarker _x} foreach _markers; - +btc_side_assigned = false;publicVariable "btc_side_assigned"; if (btc_side_aborted || !(Alive _captive)) exitWith { {14 call btc_fnc_task_fail} remoteExec ["call", 0]; - btc_side_assigned = false;publicVariable "btc_side_assigned"; - [_vehs + [_trigger],_group] spawn { - waitUntil {sleep 5; ({_x distance ((_this select 0) select 0) < 500} count playableUnits isEqualTo 0)}; - {if (!isNull _x) then {deleteVehicle _x}} foreach units (_this select 1); - {if (!isNull _x) then {deleteVehicle _x}} foreach (_this select 0); - deleteGroup (_this select 1); - }; + [_markers, _vehs + [_trigger], [], [_group]] call btc_fnc_delete; }; if (btc_side_failed) exitWith { [14,"btc_fnc_task_fail",true] spawn BIS_fnc_MP; - btc_side_assigned = false;publicVariable "btc_side_assigned"; deleteVehicle _trigger; _group setVariable ["no_cache",false]; { @@ -137,15 +129,4 @@ if (btc_side_failed) exitWith { {14 call btc_fnc_task_set_done} remoteExec ["call", 0]; -[_vehs + [_trigger],_group] spawn { - waitUntil {sleep 5; ({_x distance ((_this select 0) select 0) < 500} count playableUnits isEqualTo 0)}; - {if (!isNull _x) then {deleteVehicle _x}} foreach ((units (_this select 1)) - leader (_this select 1)); - {if (!isNull _x) then {deleteVehicle _x}} foreach (_this select 0); - deleteGroup (_this select 1); -}; -[_captive] spawn { - waitUntil {sleep 5; ({_x distance (_this select 0) < 500} count playableUnits isEqualTo 0)}; - if (!isNull (_this select 0)) then {deleteVehicle (_this select 0)}; -}; - -btc_side_assigned = false;publicVariable "btc_side_assigned"; \ No newline at end of file +[_markers, _vehs + [_trigger], [], [_group]] call btc_fnc_delete; \ No newline at end of file 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 b1bf3451f..bd8cd47a2 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 @@ -87,28 +87,14 @@ for "_i" from 1 to (1 + round random 2) do { waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || ({Alive _x} count _boxes == 0))}; -{deletemarker _x} foreach _markers; +btc_side_assigned = false;publicVariable "btc_side_assigned"; +[_markers, _boxes, [], []] call btc_fnc_delete; -if (btc_side_aborted || btc_side_failed ) exitWith { +if (btc_side_aborted || btc_side_failed) exitWith { {9 call btc_fnc_task_fail} remoteExec ["call", 0]; - btc_side_assigned = false;publicVariable "btc_side_assigned"; - { - _x spawn { - waitUntil {sleep 5; ({_x distance _this < 300} count playableUnits == 0)}; - deleteVehicle _this; - }; - } forEach _boxes; + }; 80 call btc_fnc_rep_change; -{9 call btc_fnc_task_set_done} remoteExec ["call", 0]; - -{ - _x spawn { - waitUntil {sleep 5; ({_x distance _this < 300} count playableUnits == 0)}; - deleteVehicle _this; - }; -} forEach _boxes; - -btc_side_assigned = false;publicVariable "btc_side_assigned"; \ No newline at end of file +{9 call btc_fnc_task_set_done} remoteExec ["call", 0]; \ No newline at end of file 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 ffe8cd4d1..fdc658aaa 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 @@ -79,23 +79,16 @@ waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || ({_x distance _unit waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || !Alive _unit || {_unit call ace_medical_fnc_isInStableCondition && [_unit] call ace_common_fnc_isAwake})}; -{deletemarker _x} foreach [_marker]; - -[_fx,_unit,_veh] spawn { - waitUntil {sleep 5; ({_x distance (_this select 1) < 300} count playableUnits == 0)}; - (_this select 0) call btc_fnc_deleteTestObj; - {if (!isNull _x) then {deleteVehicle _x}} forEach _this; -}; +btc_side_assigned = false;publicVariable "btc_side_assigned"; if (btc_side_aborted || btc_side_failed || !Alive _unit) exitWith { {8 call btc_fnc_task_fail} remoteExec ["call", 0]; - btc_side_assigned = false;publicVariable "btc_side_assigned"; }; 10 call btc_fnc_rep_change; {8 call btc_fnc_task_set_done} remoteExec ["call", 0]; -_unit setUnitPos "UP"; +[[_marker], [_veh], [_fx], [_group]] call btc_fnc_delete; -btc_side_assigned = false;publicVariable "btc_side_assigned"; \ No newline at end of file +_unit setUnitPos "UP"; \ No newline at end of file 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 ea786abeb..70871b184 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 @@ -49,24 +49,15 @@ waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || ({_x distance _unit waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || !Alive _unit || {_unit call ace_medical_fnc_isInStableCondition && [_unit] call ace_common_fnc_isAwake})}; -{deletemarker _x} foreach [_marker]; +btc_side_assigned = false;publicVariable "btc_side_assigned"; if (btc_side_aborted || btc_side_failed || !Alive _unit) exitWith { {10 call btc_fnc_task_fail} remoteExec ["call", 0]; - btc_side_assigned = false;publicVariable "btc_side_assigned"; - {_x spawn { - waitUntil {sleep 5; ({_x distance _this < 300} count playableUnits == 0)}; - deleteVehicle _this; - };} forEach [_unit,_veh]; + [[_marker], [_veh], [], [_group]] call btc_fnc_delete; }; 10 call btc_fnc_rep_change; {10 call btc_fnc_task_set_done} remoteExec ["call", 0]; -{_x spawn { - waitUntil {sleep 5; ({_x distance _this < 300} count playableUnits == 0)}; - deleteVehicle _this; -};} forEach [_unit,_veh]; - -btc_side_assigned = false;publicVariable "btc_side_assigned"; \ No newline at end of file +[[_marker], [_veh], [], [_group]] call btc_fnc_delete; \ No newline at end of file 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 8d6b64656..7387d49ff 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 @@ -92,22 +92,15 @@ _wp setWaypointStatements ["true", "btc_side_failed = true"]; waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || ({ canMove _x } count _vehs == 0) || (_group isEqualTo grpNull))}; -{deletemarker _x} foreach _markers; +btc_side_assigned = false;publicVariable "btc_side_assigned"; if (btc_side_aborted) exitWith { [12,"btc_fnc_task_fail",true] spawn BIS_fnc_MP; - btc_side_assigned = false;publicVariable "btc_side_assigned"; - [_vehs,_group] spawn { - waitUntil {sleep 5; ({_x distance ((_this select 0) select 0) < 500} count playableUnits isEqualTo 0)}; - {if (!isNull _x) then {deleteVehicle _x}} foreach units (_this select 1); - {if (!isNull _x) then {deleteVehicle _x}} foreach (_this select 0); - deleteGroup (_this select 1); - }; + [_markers, _vehs, [], [_group]] call btc_fnc_delete; }; if (btc_side_failed) exitWith { {12 call btc_fnc_task_fail} remoteExec ["call", 0]; - btc_side_assigned = false;publicVariable "btc_side_assigned"; _group setVariable ["no_cache",false]; { _group = createGroup btc_enemy_side; @@ -120,11 +113,4 @@ if (btc_side_failed) exitWith { {12 call btc_fnc_task_set_done} remoteExec ["call", 0]; -[_vehs,_group] spawn { - waitUntil {sleep 5; ({_x distance ((_this select 0) select 0) < 500} count playableUnits isEqualTo 0)}; - {if (!isNull _x) then {deleteVehicle _x}} foreach units (_this select 1); - {if (!isNull _x) then {deleteVehicle _x}} foreach (_this select 0); - deleteGroup (_this select 1); -}; - -btc_side_assigned = false;publicVariable "btc_side_assigned"; \ No newline at end of file +[_markers, _vehs, [], [_group]] call btc_fnc_delete; \ 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 5f8612759..0d8310825 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 @@ -21,14 +21,12 @@ _city setVariable ["spawn_more",true]; waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || !(_city getVariable ["occupied",false]))}; +btc_side_assigned = false;publicVariable "btc_side_assigned"; if (btc_side_aborted || btc_side_failed) exitWith { {6 call btc_fnc_task_fail} remoteExec ["call", 0]; - btc_side_assigned = false;publicVariable "btc_side_assigned"; }; 80 call btc_fnc_rep_change; -{6 call btc_fnc_task_set_done} remoteExec ["call", 0]; - -btc_side_assigned = false;publicVariable "btc_side_assigned"; \ No newline at end of file +{6 call btc_fnc_task_set_done} remoteExec ["call", 0]; \ No newline at end of file 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 445b3293c..bfe2c5191 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 @@ -78,22 +78,13 @@ if (!(_captive getVariable ["ace_captives_isHandcuffed", false])) then { deletemarker _marker; _group_civ setVariable ["no_cache",false]; {_x setVariable ["no_cache",false];} foreach _group; +btc_side_assigned = false;publicVariable "btc_side_assigned"; if (btc_side_aborted || btc_side_failed || !(Alive _captive)) exitWith { {15 call btc_fnc_task_fail} remoteExec ["call", 0]; - btc_side_assigned = false;publicVariable "btc_side_assigned"; - [[_captive,_trigger,_mine],_group_civ,_group] spawn { - waitUntil {sleep 5; ({_x distance (_this select 0 select 0) < 500} count playableUnits isEqualTo 0)}; - private ["_unit"]; - _unit = []; - {_unit = _unit + units _x;} forEach (_this select 2); - {if (!isNull _x) then {deleteVehicle _x}} foreach ((_this select 0) + _unit); - {deleteGroup _x} foreach ([_this select 1] + (_this select 2)); - }; + [[], [_trigger,_mine], [], _group + [_group_civ]] call btc_fnc_delete; }; 40 call btc_fnc_rep_change; -{15 call btc_fnc_task_set_done} remoteExec ["call", 0]; - -btc_side_assigned = false;publicVariable "btc_side_assigned"; \ No newline at end of file +{15 call btc_fnc_task_set_done} remoteExec ["call", 0]; \ No newline at end of file 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 0c772ac40..826f2de19 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 @@ -51,16 +51,14 @@ for "_i" from 1 to (round random 2) do { waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || ({!isNull _x} count _mines == 0))}; -{deletemarker _x} foreach [_area,_marker]; - +btc_side_assigned = false;publicVariable "btc_side_assigned"; if (btc_side_aborted || btc_side_failed) exitWith { {4 call btc_fnc_task_fail} remoteExec ["call", 0]; - btc_side_assigned = false;publicVariable "btc_side_assigned"; - {if (!isNull _x) then {deleteVehicle _x}} foreach _mines; + [[_area,_marker], _mines, [], []] call btc_fnc_delete; }; 30 call btc_fnc_rep_change; {4 call btc_fnc_task_set_done} remoteExec ["call", 0]; -btc_side_assigned = false;publicVariable "btc_side_assigned"; \ No newline at end of file +[[_area,_marker], [], [], []] call btc_fnc_delete; \ No newline at end of file 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 80f9690e3..7de1e6743 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 @@ -67,24 +67,13 @@ _triggers = []; 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))}; -[[_fx,_heli] + _triggers,_units,_group] spawn { - waitUntil {sleep 5; ({_x distance ((_this select 1) select 0) < 500} count playableUnits isEqualTo 0)}; - ((_this select 0) select 0) call btc_fnc_deleteTestObj; - {if (!isNull _x) then {deleteVehicle _x}} foreach ((_this select 0) + (_this select 1)); - deleteGroup (_this select 2); -}; +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 call btc_fnc_task_fail} remoteExec ["call", 0]; - btc_side_assigned = false;publicVariable "btc_side_assigned"; }; 50 call btc_fnc_rep_change; -{13 call btc_fnc_task_set_done} remoteExec ["call", 0]; - -{ - deleteVehicle _x; -} foreach _units; - -btc_side_assigned = false;publicVariable "btc_side_assigned"; \ No newline at end of file +{13 call btc_fnc_task_set_done} remoteExec ["call", 0]; \ No newline at end of file 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 64c2b84d9..04fa20861 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 @@ -33,26 +33,15 @@ _marker setMarkerSize [0.6, 0.6]; waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || count (nearestObjects [_pos, [btc_supplies_mat], 30]) > 0)}; -{deletemarker _x} foreach [_area,_marker]; +btc_side_assigned = false;publicVariable "btc_side_assigned"; if (btc_side_aborted || btc_side_failed) exitWith { {3 call btc_fnc_task_fail} remoteExec ["call", 0]; - btc_side_assigned = false;publicVariable "btc_side_assigned"; + [[_area,_marker], [], [], []] call btc_fnc_delete; }; 50 call btc_fnc_rep_change; {3 call btc_fnc_task_set_done} remoteExec ["call", 0]; -if (count (nearestObjects [_pos, [btc_supplies_mat], 30]) > 0) then { - _pos spawn { - private "_obj"; - _obj = (nearestObjects [_this, [btc_supplies_mat], 30]) select 0; - - waitUntil {sleep 5; ({_x distance _this < 300} count playableUnits == 0)}; - - deleteVehicle _obj; - }; -}; - -btc_side_assigned = false;publicVariable "btc_side_assigned"; \ No newline at end of file +[[_area,_marker], [(nearestObjects [_this, [btc_supplies_mat], 30]) select 0], [], []] call btc_fnc_delete; \ No newline at end of file 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 b2eaa98f8..baa716c37 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 @@ -59,28 +59,13 @@ _tower = _btc_composition select ((_btc_composition apply {typeOf _x}) find _tow waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || !Alive _tower )}; -{deletemarker _x} foreach [_area,_marker]; +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 call btc_fnc_task_fail} remoteExec ["call", 0]; - btc_side_assigned = false;publicVariable "btc_side_assigned"; - _btc_composition spawn { - - waitUntil {sleep 5; ({_x distance (_this select 0) < 300} count playableUnits == 0)}; - - {deleteVehicle _x} forEach _this; - }; }; 80 call btc_fnc_rep_change; -{7 call btc_fnc_task_set_done} remoteExec ["call", 0]; - -_btc_composition spawn { - - waitUntil {sleep 5; ({_x distance (_this select 0) < 300} count playableUnits == 0)}; - - {deleteVehicle _x} forEach _this; -}; - -btc_side_assigned = false;publicVariable "btc_side_assigned"; \ No newline at end of file +{7 call btc_fnc_task_set_done} remoteExec ["call", 0]; \ No newline at end of file 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 9c49b627b..dd7192438 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 @@ -62,28 +62,13 @@ leader _group setPosASL [_pos select 0, _pos select 1, (_pos select 2) + 1 + ran waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || !Alive _generator )}; -{deletemarker _x} foreach [_area,_marker]; +[[_area,_marker], [_generator,_storagebladder], [], []] call btc_fnc_delete; +btc_side_assigned = false;publicVariable "btc_side_assigned"; if (btc_side_aborted || btc_side_failed ) exitWith { {11 call btc_fnc_task_fail} remoteExec ["call", 0]; - btc_side_assigned = false;publicVariable "btc_side_assigned"; - {_x spawn { - - waitUntil {sleep 5; ({_x distance _this < 300} count playableUnits == 0)}; - - deleteVehicle _this; - };} forEach [_generator,_storagebladder]; }; 80 call btc_fnc_rep_change; -{11 call btc_fnc_task_set_done} remoteExec ["call", 0]; - -{_x spawn { - - waitUntil {sleep 5; ({_x distance _this < 300} count playableUnits == 0)}; - - deleteVehicle _this; -};} forEach [_generator,_storagebladder]; - -btc_side_assigned = false;publicVariable "btc_side_assigned"; \ No newline at end of file +{11 call btc_fnc_task_set_done} remoteExec ["call", 0]; \ No newline at end of file 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 0f0da986c..e476f27b9 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 @@ -43,23 +43,15 @@ _veh setHit ["wheel_1_1_steering", 1]; waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || (_veh getHit "wheel_1_1_steering" < 1) || !Alive _veh)}; -{deletemarker _x} foreach [_area,_marker]; +btc_side_assigned = false;publicVariable "btc_side_assigned"; if (btc_side_aborted || btc_side_failed || !Alive _veh) exitWith { {5 call btc_fnc_task_fail} remoteExec ["call", 0]; - btc_side_assigned = false;publicVariable "btc_side_assigned"; + [[_area,_marker], [], [], []] call btc_fnc_delete; }; 15 call btc_fnc_rep_change; {5 call btc_fnc_task_set_done} remoteExec ["call", 0]; -_veh spawn { - - waitUntil {sleep 5; ({_x distance _this < 300} count playableUnits == 0)}; - - deleteVehicle _this; -}; - - -btc_side_assigned = false;publicVariable "btc_side_assigned"; \ No newline at end of file +[[_area,_marker], [_veh], [], []] call btc_fnc_delete; \ No newline at end of file From a8b5d5082aab0a4d7cffa6fcb92f80c41acc4870 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 8 Apr 2017 16:19:40 +0200 Subject: [PATCH 058/120] Add: remoteexec --- .../core/fnc/fob/redeploy.sqf | 2 +- .../core/fnc/info/ask.sqf | 6 +- .../core/fnc/info/ask_reputation.sqf | 3 +- .../core/fnc/info/cache.sqf | 2 +- .../core/fnc/info/give_intel.sqf | 5 +- .../core/fnc/info/has_intel.sqf | 4 +- .../core/fnc/info/hideout_asked.sqf | 2 +- .../core/fnc/info/search_for_intel.sqf | 2 +- .../core/fnc/int/open_dlg.sqf | 2 +- .../core/fnc/int/orders.sqf | 8 +- .../core/fnc/log/check_cargo.sqf | 2 +- .../core/fnc/log/create_apply.sqf | 3 +- .../core/fnc/log/load.sqf | 4 +- .../core/fnc/log/place.sqf | 14 +- .../core/fnc/log/repair_wreck.sqf | 2 +- .../core/fnc/log/tow.sqf | 6 +- .../core/fnc/log/unhook.sqf | 6 +- .../core/fnc/log/unload.sqf | 2 +- .../core/fnc/mil/hd_hideout.sqf | 2 +- .../core/fnc/mil/unit_killed.sqf | 2 +- .../core/fnc/rev/ans_var.sqf | 37 ---- .../core/fnc/rev/apply_treat.sqf | 80 ------- .../core/fnc/rev/ask_var.sqf | 16 -- .../core/fnc/rev/carry.sqf | 35 --- .../core/fnc/rev/dlg.hpp | 61 ----- .../core/fnc/rev/drag.sqf | 51 ----- .../core/fnc/rev/effect_pain.sqf | 16 -- .../core/fnc/rev/effects.sqf | 60 ----- .../core/fnc/rev/examine.sqf | 47 ---- .../core/fnc/rev/examine_result.sqf | 44 ---- .../core/fnc/rev/get_gear.sqf | 22 -- .../core/fnc/rev/hd.sqf | 103 --------- .../core/fnc/rev/init.sqf | 5 - .../core/fnc/rev/init_var.sqf | 18 -- .../core/fnc/rev/is_medic.sqf | 3 - .../core/fnc/rev/load.sqf | 17 -- .../core/fnc/rev/rsc.hpp | 208 ------------------ .../core/fnc/rev/set_gear.sqf | 70 ------ .../core/fnc/rev/stateHandler.sqf | 90 -------- .../core/fnc/rev/treat.sqf | 62 ------ .../core/fnc/rev/unc.sqf | 76 ------- .../core/fnc/rev/unit_init.sqf | 4 - .../core/fnc/rev/unload.sqf | 9 - .../core/fnc/side/abort.sqf | 2 +- 44 files changed, 40 insertions(+), 1175 deletions(-) delete mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/ans_var.sqf delete mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/apply_treat.sqf delete mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/ask_var.sqf delete mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/carry.sqf delete mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/dlg.hpp delete mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/drag.sqf delete mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/effect_pain.sqf delete mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/effects.sqf delete mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/examine.sqf delete mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/examine_result.sqf delete mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/get_gear.sqf delete mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/hd.sqf delete mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/init.sqf delete mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/init_var.sqf delete mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/is_medic.sqf delete mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/load.sqf delete mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/rsc.hpp delete mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/set_gear.sqf delete mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/stateHandler.sqf delete mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/treat.sqf delete mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/unc.sqf delete mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/unit_init.sqf delete mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/unload.sqf diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/redeploy.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/redeploy.sqf index bb0ef66ee..bef74a315 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/redeploy.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/redeploy.sqf @@ -7,7 +7,7 @@ closeDialog 0; btc_int_ask_data = nil; -[[6,nil,player],"btc_fnc_int_ask_var",false] spawn BIS_fnc_MP; +[6,nil,player] remoteExec ["btc_fnc_int_ask_var", 2]; waitUntil {!(isNil "btc_int_ask_data")}; 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 c398e507b..0b0b1fab7 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 @@ -27,7 +27,7 @@ if ((round random 3) >= 2 || !_isInterrogate) then { //NO < 200 . FAKE < 600 . REAL > 600 btc_int_ask_data = nil; -[[2,nil,player],"btc_fnc_int_ask_var",false] spawn BIS_fnc_MP; +[2,nil,player] remoteExec ["btc_fnc_int_ask_var", 2]; waitUntil {!(isNil "btc_int_ask_data")}; @@ -62,7 +62,7 @@ switch (_info_type) do { case "CACHE" : { hint format ["%1: I'll show you some hint on the map", name _man]; sleep 2; - [[true,1],"btc_fnc_info_cache",false] spawn BIS_fnc_MP; + [true,1] remoteExec ["btc_fnc_info_cache", 2]; }; }; }; @@ -77,7 +77,7 @@ switch (_info_type) do { case "CACHE" : { hint format ["%1: I'll show you some hint on the map", name _man]; sleep 2; - [[false,1],"btc_fnc_info_cache",false] spawn BIS_fnc_MP; + [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 3cdf1145c..564fa67a7 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 @@ -5,7 +5,8 @@ private ["_man","_rep","_chance","_info","_info_type","_random","_text"]; _man = _this select 0; btc_int_ask_data = nil; -[[2,nil,player],"btc_fnc_int_ask_var",false] spawn BIS_fnc_MP; + +[2,nil,player] remoteExec ["btc_fnc_int_ask_var", 2]; waitUntil {!(isNil "btc_int_ask_data")}; 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 d88932632..f22a6e13a 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 @@ -23,7 +23,7 @@ _marker setMarkerText format ["%1m", btc_cache_info]; _marker setMarkerSize [0.5, 0.5]; _marker setMarkerColor "ColorRed"; -if ((_this select 1) > 0) then {[[1],"btc_fnc_show_hint"] spawn BIS_fnc_MP;}; +if ((_this select 1) > 0) then {[1] remoteExec ["btc_fnc_show_hint", 0];}; btc_cache_info = btc_cache_info - btc_info_cache_ratio; if (btc_cache_info < btc_info_cache_ratio) then {btc_cache_info = btc_info_cache_ratio;}; 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 2f930699c..5cc859560 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 @@ -12,9 +12,8 @@ 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],"btc_fnc_show_hint",(_this select 0)] spawn BIS_fnc_MP;}; + default {_id = 0;[3] remoteExec ["btc_fnc_show_hint", (_this select 0)];}; }; if (_id == 0) exitWith {}; - -[[_id],"btc_fnc_show_hint"] spawn BIS_fnc_MP; \ No newline at end of file +[_id] remoteExec ["btc_fnc_show_hint", 0]; \ No newline at end of file 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 b83fe806a..25f120a87 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 @@ -11,8 +11,8 @@ if (_body getVariable ["intel",false] && !(_body getVariable ["btc_already_inter if (isServer) then { [_asker] spawn btc_fnc_info_give_intel; } else { - [[_asker],"btc_fnc_info_give_intel",false] spawn BIS_fnc_MP; + [_asker] remoteExec ["btc_fnc_info_give_intel", 2]; }; } else { - [[3],"btc_fnc_show_hint",_asker] spawn BIS_fnc_MP; + [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_asked.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/info/hideout_asked.sqf index d84709430..f27a4fe8c 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 @@ -9,7 +9,7 @@ _text = ""; switch _is_real do { case _is_real : { btc_int_ask_data = nil; - [[1,[],player],"btc_fnc_int_ask_var",false] spawn BIS_fnc_MP; + [1,[],player] remoteExec ["btc_fnc_int_ask_var", 2]; waitUntil {!(isNil "btc_int_ask_data")}; 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 517dc1ea8..82d799a27 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 @@ -4,5 +4,5 @@ waitUntil {!(isNil "btc_int_action_result")}; if (btc_int_action_result) then { - [[_this,player],"btc_fnc_info_has_intel",false] spawn BIS_fnc_MP; + [_this,player] remoteExec ["btc_fnc_info_has_intel", 2]; }; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/open_dlg.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/open_dlg.sqf index b26ad2a2f..8c33c7781 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/open_dlg.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/open_dlg.sqf @@ -217,7 +217,7 @@ switch (_this) do { }; }; btc_int_ask_data = nil; - [[4,btc_int_target,player],"btc_fnc_int_ask_var",false] spawn BIS_fnc_MP; + [4,btc_int_target,player] remoteExec ["btc_fnc_int_ask_var", 2]; waitUntil {!(isNil "btc_int_ask_data")}; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders.sqf index c7e9103e5..3f42342bd 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/orders.sqf @@ -19,12 +19,12 @@ _pos = getpos player; if (count (_pos nearEntities [["Car","Civilian_F"], btc_int_radius_orders]) == 0) exitWith {true}; if (isNull _unit) then { - [[_pos,_order],"btc_fnc_int_orders_give",false] spawn BIS_fnc_MP; + [_pos,_order] remoteExec ["btc_fnc_int_orders_give", 2]; } else { if (_order == 4) then { btc_int_ask_data = nil; - [[2,nil,player],"btc_fnc_int_ask_var",false] spawn BIS_fnc_MP; + [2,nil,player] remoteExec ["btc_fnc_int_ask_var", 2]; waitUntil {!(isNil "btc_int_ask_data")}; _rep = btc_int_ask_data; @@ -34,7 +34,7 @@ if (isNull _unit) then { if (surfaceIsWater _pos) then { hintSilent 'Selected area must be on land.'; } else { - [[(getpos (_this select 0)),4,_this select 1,_pos],'btc_fnc_int_orders_give',_this select 1] spawn BIS_fnc_MP; + [(getpos (_this select 0)),4,_this select 1,_pos] remoteExec ["btc_fnc_int_orders_give", _this select 1]; ["1", "onMapSingleClick"] call BIS_fnc_removeStackedEventHandler; }; }, [player, _unit]] call BIS_fnc_addStackedEventHandler; @@ -51,6 +51,6 @@ if (isNull _unit) then { hint _text; }; } else { - [[_pos,_order,_unit],"btc_fnc_int_orders_give",_unit] spawn BIS_fnc_MP; + [_pos,_order,_unit] remoteExec ["btc_fnc_int_orders_give", _unit]; }; }; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/check_cargo.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/check_cargo.sqf index f6ca28554..148bac01b 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/check_cargo.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/check_cargo.sqf @@ -8,7 +8,7 @@ if (isNull _veh) exitWith {}; btc_log_veh_selected = _veh; btc_int_ask_data = nil; -[[3,_veh,player],"btc_fnc_int_ask_var",false] spawn BIS_fnc_MP; +[3,_veh,player] remoteExec ["btc_fnc_int_ask_var", 2]; waitUntil {!(isNil "btc_int_ask_data")}; closeDialog 0; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_apply.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_apply.sqf index e35c7ae6a..8c4ea1d11 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_apply.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_apply.sqf @@ -4,5 +4,4 @@ private ["_class"]; _class = lbData [72, lbCurSel 72]; closeDialog 0; sleep 0.2; - -[[_class],"btc_fnc_log_create_s",false] spawn BIS_fnc_MP; \ No newline at end of file +[_class] remoteExec ["btc_fnc_log_create_s", 2]; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/load.sqf index 77b355ea5..d0a507a56 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/load.sqf @@ -18,7 +18,7 @@ _cc = [_veh] call btc_fnc_log_get_cc; if (_rc > _cc) exitWith {hint format ["Can not load %1 in %2",_obj_name,_veh_name];}; btc_int_ask_data = nil; -[[3,_veh,player],"btc_fnc_int_ask_var",false] spawn BIS_fnc_MP; +[3,_veh,player] remoteExec ["btc_fnc_int_ask_var", 2]; waitUntil {!(isNil "btc_int_ask_data")}; @@ -34,7 +34,7 @@ waitUntil {!(isNil "btc_int_action_result")}; if (btc_int_action_result) then { //player setVariable ["btc_log_isDragging",false]; - [[btc_log_object_selected,_veh],"btc_fnc_log_server_load",false] spawn BIS_fnc_MP; + [btc_log_object_selected,_veh] remoteExec ["btc_fnc_log_server_load", 2]; hint format ["%1 has been loaded in %2",_obj_name,_veh_name]; } else {hint "Loading aborted";}; btc_log_object_selected = objNull; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/place.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/place.sqf index a557c1b86..ced009c48 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/place.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/place.sqf @@ -3,7 +3,7 @@ private ["_bbr","_c"]; btc_log_placing_obj = _this; -[[btc_log_placing_obj,player],"btc_fnc_set_owner",false] spawn BIS_fnc_MP; +[btc_log_placing_obj,player] remoteExec ["btc_fnc_set_owner", 2]; hint composeText [ "Q/Z to raise/lower the object", @@ -12,20 +12,20 @@ hint composeText [ lineBreak, "Shift to increase the movement" ]; - + btc_log_placing = true; btc_log_placing_dir = 180; btc_log_release = player addAction [("" + ("Release") + ""),{btc_log_placing = false;}, [], 9, true, false, "", "true"]; btc_log_place_EH_keydown = (findDisplay 46) displayAddEventHandler ["KeyDown", btc_fnc_log_place_key_down]; - + [player] call ace_weaponselect_fnc_putWeaponAway; player forceWalk true; - + btc_log_placing_obj enableSimulation false; _bbr = boundingBoxReal btc_log_placing_obj; _c = boundingCenter btc_log_placing_obj; - + btc_log_placing_h = (abs ((_bbr select 0) select 2)) - (_c select 2); btc_log_placing_d = 1.5 + (abs (((_bbr select 1) select 1) - ((_bbr select 0) select 1))); @@ -33,11 +33,11 @@ btc_log_placing_obj attachTo [player,[0,(btc_log_placing_d),btc_log_placing_h]]; btc_log_placing_obj setDir btc_log_placing_dir; waitUntil {!alive player || player getVariable ["ACE_isUnconscious",false] || !btc_log_placing}; - + btc_log_placing_obj enableSimulation true; detach btc_log_placing_obj; player forceWalk false; - + btc_log_placing_obj = objNull; (findDisplay 46) displayRemoveEventHandler ["KeyDown",btc_log_place_EH_keydown]; player removeAction btc_log_release; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/repair_wreck.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/repair_wreck.sqf index 131a1e754..59c921989 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/repair_wreck.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/repair_wreck.sqf @@ -8,4 +8,4 @@ if (count _array == 0) exitWith {hint "No wreck";}; if (damage (_array select 0) != 1) exitWith {hint "It is not a wreck!"}; -[[(_array select 0)],"btc_fnc_log_server_repair_wreck",false] spawn BIS_fnc_MP; \ No newline at end of file +[_array select 0] remoteExec ["btc_fnc_log_server_repair_wreck", 2]; \ No newline at end of file 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 da44c1f2d..ded50a06a 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 @@ -2,7 +2,7 @@ private _tower = _this; btc_int_ask_data = nil; -[[4,_tower,player],"btc_fnc_int_ask_var",false] spawn BIS_fnc_MP; +[4,_tower,player] remoteExec ["btc_fnc_int_ask_var", 2]; waitUntil {!(isNil "btc_int_ask_data")}; @@ -12,5 +12,5 @@ private _relative_pos = _tower worldToModel getPosATL btc_log_vehicle_selected; 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)]]; -[[_tower,"tow",btc_log_vehicle_selected],"btc_fnc_int_change_var",false] spawn BIS_fnc_MP; -[[btc_log_vehicle_selected,"tow",_tower],"btc_fnc_int_change_var",false] spawn BIS_fnc_MP; \ No newline at end of file +[_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 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 601aa8855..bcb8a9c13 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 @@ -11,7 +11,7 @@ if ((_pos select 2) < -0.05) then { }; btc_int_ask_data = nil; -[[4,_veh,player],"btc_fnc_int_ask_var",false] spawn BIS_fnc_MP; +[4,_veh,player] remoteExec ["btc_fnc_int_ask_var", 2]; waitUntil {!(isNil "btc_int_ask_data")}; @@ -28,5 +28,5 @@ if ((_pos select 2) < -0.05) then { _towed setVelocity [0, 0, 0.01]; }; -[[_towed,"tow",objNull],"btc_fnc_int_change_var",false] spawn BIS_fnc_MP; -[[_veh,"tow",objNull],"btc_fnc_int_change_var",false] spawn BIS_fnc_MP; \ No newline at end of file +[_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 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 75e696707..518d8ba0b 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 @@ -21,6 +21,6 @@ if (vehicle player != player && {_veh isKindOf "Air"}) then { waitUntil {!(isNil "btc_int_action_result")}; if (btc_int_action_result) then { - [[_obj_type,_veh],"btc_fnc_log_server_unload",false] spawn BIS_fnc_MP; + [_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 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 50f9acbfe..2e2b7de57 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 @@ -40,6 +40,6 @@ if (_explosive && {_damage > 0.6}) then { if (count btc_hideouts == 0) then {[] execVM "core\fnc\common\final_phase.sqf";}; //Notification - [[2,count btc_hideouts],"btc_fnc_show_hint"] spawn BIS_fnc_MP; + [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 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 730f5219c..15ec38ba2 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 @@ -14,7 +14,7 @@ if (!isDedicated && !hasInterface) then { if (isServer) then { btc_rep_bonus_mil_killed call btc_fnc_rep_change; } else { - [btc_rep_bonus_mil_killed,"btc_fnc_rep_change",false] spawn BIS_fnc_MP; + btc_rep_bonus_mil_killed remoteExec ["btc_fnc_rep_change", 2]; }; }; }; 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 [("") + "Release" + "",{player setVariable ["btc_rev_isCarrying",false];},[],9,true,false]; - -WaitUntil {!Alive player || player getVariable ["btc_rev_isUnc",false] || isNull _injured || !Alive _injured || !(player getVariable ["btc_rev_isCarrying",false])}; - -if (vehicle _injured ==_injured) then {[[2,_injured],"btc_fnc_code_on_local",_injured,false] spawn BIS_fnc_MP;}; - -player removeAction _id; -if (player getVariable ["btc_rev_isUnc",false]) then {player switchMove "AinjPpneMstpSnonWrflDnon";} else {player playAction "released"}; -detach _injured; - -player setVariable ["btc_int_busy",false]; -player setVariable ["btc_rev_isCarrying",false]; -player setVariable ["btc_rev_attached",objNull]; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/dlg.hpp b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/dlg.hpp deleted file mode 100644 index 53f03fdf5..000000000 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/dlg.hpp +++ /dev/null @@ -1,61 +0,0 @@ -class btc_rev_dlg_unconscious -{ - name = btc_rev_dlg_unconscious; - idd = -1; - movingEnable = 1; - controlsBackground[] = {Background}; - objects[] = {}; - controls[] = {Respawn}; - - onLoad = "uiNamespace setVariable [""btc_rev_dlg_unconscious"", _this select 0];"; - - class Background - { - colorBackground[] = {0, 0, 0, 0}; - type = 0; - colorText[] = {1, 1, 1, 1}; - sizeEx = 0.04; - style = 48; - font = "PuristaMedium"; - idc=-1; - x = "safeZoneXAbs"; - y = "SafeZoneY"; - w = "safeZoneWAbs + 0.05"; - h = "SafeZoneH + 0.05"; - text = "img\rsc\i_unc.paa"; - }; - class Respawn - { - onMouseButtonClick = "player setDamage 1;closeDialog 0;"; - idc = 1103; - type = 1; - style = 2; - colorText[] = {1, 1, 1, 1}; - colorDisabled[] = {1, 1, 1, 0.25}; - colorBackground[] = {0, 0, 1, 0.1}; - colorBackgroundDisabled[] = {0,0,1,0}; - colorBackgroundActive[] = {0,0,1,0}; - colorFocused[] = {0,0,1,0}; - colorShadow[] = {0,0,0,0}; - colorBorder[] = {0,0,0,0}; - soundEnter[] = {"\A3\ui_f\data\sound\RscButton\soundEnter",0.09,1}; - soundPush[] = {"\A3\ui_f\data\sound\RscButton\soundPush",0.09,1}; - soundClick[] = {"\A3\ui_f\data\sound\RscButton\soundClick",0.09,1}; - soundEscape[] = {"\A3\ui_f\data\sound\RscButton\soundEscape",0.09,1}; - - x = 0.4 * safezoneW + safezoneX; - y = 0.1 * safezoneH + safezoneY; - w = 0.18 * safezoneW; - h = 0.0286915 * safezoneH; - shadow = 2; - font = "PuristaMedium"; - sizeEx = 0.03921; - offsetX = 0.003; - offsetY = 0.003; - offsetPressedX = 0.002; - offsetPressedY = 0.002; - borderSize = 0; - text = "Respawn"; - action = ""; - }; -}; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/drag.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/drag.sqf deleted file mode 100644 index 37bc6ea52..000000000 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/drag.sqf +++ /dev/null @@ -1,51 +0,0 @@ - -closeDialog 0; - -_injured = _this; - -if !(_injured getVariable ["btc_rev_isUnc",false]) exitWith {}; - -player setVariable ["btc_int_busy",true]; -player setVariable ["btc_rev_isDragging",true]; -player setVariable ["btc_rev_attached",_injured]; - -_is_prone = false; -if (stance player == "PRONE") then {_is_prone = true;} else {player playMoveNow "AcinPknlMstpSrasWrflDnon";}; -if (_is_prone) then {_injured attachTo [player, [0, 1.8, 0.092]];} else {_injured attachTo [player, [0, 1.1, 0.092]];}; - -[[0,_injured],"btc_fnc_code_on_local",_injured,false] spawn BIS_fnc_MP; - -WaitUntil {!Alive player || ((animationstate player == "acinpknlmstpsraswrfldnon") || (animationstate player == "acinpknlmwlksraswrfldb") || _is_prone)}; - -_id = player addAction [("") + "Release" + "",{player setVariable ["btc_rev_isDragging",false];},[],9,true,false]; - -while {!isNull player && !(player getVariable ["btc_rev_isUnc",false]) && alive player && !isNull _injured && alive _injured && player getVariable ["btc_rev_isDragging",true]} do -{ - if (_is_prone && stance player != "PRONE") then {player setVariable ["btc_rev_isDragging",false];}; - if (!_is_prone && stance player == "PRONE") then {player setVariable ["btc_rev_isDragging",false];}; - sleep 0.1; -}; - -player removeAction _id; -if (player getVariable ["btc_rev_isUnc",false]) then {player switchMove "AinjPpneMstpSnonWrflDnon";}; - -sleep 0.1; - -if (stance player != "PRONE" && Alive player) then -{ - player switchMove "AcinPknlMstpSrasWrflDnon_AmovPknlMstpSrasWrflDnon"; - sleep 1.3; - //player playActionNow "PlayerCrouch"; - switch (true) do - { - case (currentWeapon player == primaryWeapon player) : {player switchMove "";sleep 0.1;player switchMove "amovpknlmstpsraswrfldnon";}; - case (currentWeapon player == handgunWeapon player) : {player switchMove "";sleep 0.1;player switchMove "amovpknlmstpsraswpstdnon";}; - default {player switchMove "";sleep 0.1;player switchMove "amovpknlmstpsnonwnondnon";}; - }; -}; - -player setVariable ["btc_int_busy",false]; -player setVariable ["btc_rev_isDragging",false]; -player setVariable ["btc_rev_attached",objNull]; - -detach _injured; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/effect_pain.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/effect_pain.sqf deleted file mode 100644 index 06cd009ea..000000000 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/effect_pain.sqf +++ /dev/null @@ -1,16 +0,0 @@ -btc_rev_fx_effect_pain = true; -_bleed = player getVariable "btc_rev_pain"; - -"chromAberration" ppEffectEnable true; -while {player getVariable "btc_rev_pain" > 0} do -{ - _strength = player getVariable "btc_rev_pain"; - "chromAberration" ppEffectAdjust [(_strength / 100), (_strength / 100), false]; - "chromAberration" ppEffectCommit 1; - sleep (3 - _strength); - "chromAberration" ppEffectAdjust [(_strength / 100) + (_strength / 10), (_strength / 100) + (_strength / 10), false]; - "chromAberration" ppEffectCommit 1; - sleep 0.35; -}; -"chromAberration" ppEffectEnable false; -btc_rev_fx_effect_pain = false; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/effects.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/effects.sqf deleted file mode 100644 index bc822ad70..000000000 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/effects.sqf +++ /dev/null @@ -1,60 +0,0 @@ -btc_rev_fx_effects = true; -_bloss = player getVariable "btc_rev_bloss"; -_bleed = player getVariable "btc_rev_bleed"; -_sleep = 3; - -if (_bleed > 0) then -{ - switch (true) do - { - case (_bleed <= 0.2): - { - 939997 cutRsc["btc_rev_dlg_bleeding_1","PLAIN"]; - _sleep = 3; - }; - case (_bleed <= 0.3 && {_bleed > 0.2}): - { - 939997 cutRsc["btc_rev_dlg_bleeding_2","PLAIN"]; - _sleep = 2.5; - }; - case (_bleed <= 0.6 && {_bleed > 0.3}): - { - 939997 cutRsc["btc_rev_dlg_bleeding_3","PLAIN"]; - _sleep = 1.9; - }; - case (_bleed <= 0.8 && {_bleed > 0.6}): - { - 939997 cutRsc["btc_rev_dlg_bleeding_4","PLAIN"]; - _sleep = 1.5; - }; - case (_bleed > 0.8): - { - 939997 cutRsc["btc_rev_dlg_Bleeding_5","PLAIN"]; - _sleep = 1.1; - }; - }; - sleep _sleep; -}; -if (_bloss > 0.4 && {_bleed <= 0}) then -{ - switch (true) do - { - case (_bloss > 0.4 && {_bloss < 0.7}): - { - 939997 cutRsc["btc_rev_dlg_bloss_1","PLAIN"]; - _sleep = 2; - }; - case (_bloss <= 0.9 && {_bloss >= 0.7}): - { - 939997 cutRsc["btc_rev_dlg_bloss_2","PLAIN"]; - _sleep = 3; - }; - case (_bloss > 0.9): - { - 939997 cutRsc["btc_rev_dlg_bloss_3","PLAIN"]; - _sleep = 4; - }; - }; - sleep _sleep; -}; -btc_rev_fx_effects = false; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/examine.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/examine.sqf deleted file mode 100644 index e5d123f3a..000000000 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/examine.sqf +++ /dev/null @@ -1,47 +0,0 @@ - -btc_rev_examined = btc_int_target; -_isMedic = player call btc_fnc_rev_is_medic; - -if (!alive player || {isNull btc_rev_examined} || {!Alive btc_rev_examined}) exitWith {}; - -closeDialog 0; - -sleep 0.01; - -player setVariable ["btc_int_busy",true]; -_delay = btc_rev_examination_time;if (btc_rev_examined == player) then {_delay = btc_rev_examination_time / 3}; -_anim = "AinvPknlMstpSlayWrflDnon_medic";//AinvPknlMstpSnonWnonDnon_medic - -if (_isMedic) then {_delay = (_delay / 3 * 2);}; - -_isProne = (stance player == "PRONE"); -_inVeh = (vehicle player != player); - -_last_ex = btc_rev_examined getVariable ["btc_rev_time_examination", - 300]; -_actual_time = time; -if ((_actual_time - _last_ex) > 300) then -{ - if (_isProne || _inVeh) then {_delay = _delay + 5;} else {player playMove _anim;}; - - [_delay,format ["Examining %1 . . .", name btc_rev_examined],btc_rev_examined] call btc_fnc_int_action_result; - - waitUntil {!(isNil "btc_int_action_result")}; - - if (!btc_int_action_result && {!_isProne && !_inVeh} && {animationState player == _anim}) then {player switchmove "";player playActionNow "PlayerCrouch";}; - - if (btc_int_action_result) then - { - if (btc_rev_examined == player) then - { - player setVariable ["btc_rev_time_examination", time]; - btc_int_target = player; - btc_int_target spawn btc_fnc_rev_examine_result; - 1 spawn btc_fnc_int_open_dlg; - } - else - { - [[player],"btc_fnc_rev_ask_var",btc_rev_examined,false] spawn BIS_fnc_MP; - }; - } else {player setVariable ["btc_int_busy",false];}; -} else {if (btc_rev_examined == player) then {player setVariable ["btc_rev_time_examination", time];btc_int_target = player;btc_int_target spawn btc_fnc_rev_examine_result;1 spawn btc_fnc_int_open_dlg;} else {btc_int_action_result = true;[[player],"btc_fnc_rev_ask_var",btc_rev_examined,false] spawn BIS_fnc_MP;};}; -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/examine_result.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/examine_result.sqf deleted file mode 100644 index f3143ac69..000000000 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rev/examine_result.sqf +++ /dev/null @@ -1,44 +0,0 @@ -_text = format ["%1 ",name _this]; -//unc -_isUnc = _this getVariable ["btc_rev_isUnc",false]; -if (_isUnc) then {_text = _text + "is unconscious.";} else {_text = _text + "is awake.";}; -_text = _text + "
"; -//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/abort.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/abort.sqf index 2b20c6cc6..9fab87fa0 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/abort.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/abort.sqf @@ -1 +1 @@ -if (isServer) then {btc_side_aborted = true;} else {[[],"btc_fnc_side_abort",false] spawn BIS_fnc_MP;}; \ No newline at end of file +if (isServer) then {btc_side_aborted = true;} else {[] remoteExec ["btc_fnc_side_abort", 2];}; \ No newline at end of file From 80ca70ea1f5b53785d39e40fda112e712a02e043 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 8 Apr 2017 17:38:10 +0200 Subject: [PATCH 059/120] Add: CBA for IED check --- .../core/fnc/city/activate.sqf | 2 +- .../core/fnc/ied/check.sqf | 74 +++++++++---------- 2 files changed, 38 insertions(+), 38 deletions(-) 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 bb512efaf..7a2cea3d4 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 @@ -140,7 +140,7 @@ if (count _ieds > 0) then { _ieds_data = []; {private ["_ied"];_ied = _x call btc_fnc_ied_create;_ieds_data pushBack _ied;} foreach _ieds; _city = btc_city_all select (_this select 0); - [_city,_ieds_data] spawn btc_fnc_ied_check; + [_city,_ieds_data] call btc_fnc_ied_check; }; //Suicider 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 ba0bd6189..be26783ff 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 @@ -1,42 +1,42 @@ -private ["_city","_ieds","_ieds_check","_data"]; - -_city = _this select 0; -_ieds = _this select 1; +private _city = _this select 0; +private _ieds = _this select 1; if (btc_debug) then {systemChat format ["START IED CHECK CITY ID %1",_city getVariable "id"];}; if (btc_debug_log) then {diag_log format ["START IED CHECK CITY ID %1",_city getVariable "id"];}; -_ieds_check = (+ _ieds) select {!((_x select 2) isEqualTo objNull)}; - -while {_city getVariable ["active", false]} do { - { - private ["_ied","_wreck"]; - _wreck = _x select 0; - _ied = _x select 2; - if (!isNull _ied && {Alive _ied}) then { - _list = _ied nearEntities ["allvehicles", 10]; - { - if (side _x == btc_player_side && {(speed _x > 5 || vehicle _x != _x)}) then {[_wreck,_ied] spawn btc_fnc_ied_boom;}; - } foreach _list; - } else { - _ieds_check = _ieds_check - [_ied]; - }; - } foreach _ieds_check; - sleep 1; -}; - -_data = []; - -{ - private "_wreck"; - _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"];}; \ No newline at end of file +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"];}; + }; +} , 1, [_city, _ieds, _ieds_check]] call CBA_fnc_addPerFrameHandler; \ No newline at end of file From 66c701c4d80da10b80ae1d6268f004de27734bba Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 9 Apr 2017 11:49:34 +0200 Subject: [PATCH 060/120] FIX: no house found --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hack.sqf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 9cf0e5854..5adc609de 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 @@ -9,7 +9,8 @@ if (_useful isEqualTo []) exitWith {[] spawn btc_fnc_side_create;}; private _city = selectRandom _useful; private _pos = [getPos _city, 100] call btc_fnc_randomize_pos; -private _house = selectRandom ([_pos,50] call btc_fnc_getHouses); +private _house = selectRandom ([_pos,100] call btc_fnc_getHouses); +if (isNil "_house") exitWith {[] spawn btc_fnc_side_create;}; _pos = selectRandom (_house buildingPos -1); btc_side_aborted = false; From 968508d8eef1030bc0f39e742cf628626247d7af Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 10 Apr 2017 19:53:19 +0200 Subject: [PATCH 061/120] RMV: debug --- =BTC=co@30_Hearts_and_Minds.Altis/description.ext | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/description.ext b/=BTC=co@30_Hearts_and_Minds.Altis/description.ext index 6b2d4f070..a793edecd 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/description.ext +++ b/=BTC=co@30_Hearts_and_Minds.Altis/description.ext @@ -1,4 +1,4 @@ -enabledebugconsole = 1; + loadScreen = "core\img\btc.paa"; author = Giallustio; onLoadName = Hearts and Minds; From 2fe8bacbd2823c847df01af205919d0adc108ffc Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 16 Apr 2017 12:02:07 +0200 Subject: [PATCH 062/120] Add heli for FIA, disablesimulation for unit spawn from database --- .../core/def/mission.sqf | 2 + .../core/fnc/data/add_group.sqf | 2 +- .../core/fnc/data/spawn_group.sqf | 38 +++++++------------ .../core/fnc/mil/addWP.sqf | 2 + 4 files changed, 19 insertions(+), 25 deletions(-) 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 f6f991a05..7efdd6a55 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 @@ -490,9 +490,11 @@ switch (_p_en) do { };*/ 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" : { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/add_group.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/add_group.sqf index 7ef7379cb..7d1255f29 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/add_group.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/add_group.sqf @@ -17,7 +17,7 @@ _city setVariable ["occupied",true]; if (_city getVariable ["marker",""] != "") then {_marker = _city getVariable ["marker",""]; _marker setMarkerColor "ColorRed";_marker setMarkerAlpha 0.3;}; -[_group,_city,200, if (vehicle leader _group isEqualTo leader _group) then {random 1} else {0.3 + random 0.7}] call btc_fnc_mil_addWP; +[_group,_city,300, if (vehicle leader _group isEqualTo leader _group) then {random 1} else {0.3 + random 0.7}] call btc_fnc_mil_addWP; if !(_city getVariable ["active",false]) then { private ["_data_units","_data_group"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/spawn_group.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/spawn_group.sqf index 20e652599..781fbf9b1 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/spawn_group.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/spawn_group.sqf @@ -1,33 +1,23 @@ -private ["_type","_array_pos","_array_type","_side","_array_dam","_behaviour","_array_wp","_array_veh","_group"]; +params ["_type","_array_pos","_array_type","_side","_array_dam","_behaviour","_array_wp","_array_veh"]; -_type = _this select 0; -_array_pos = _this select 1; -_array_type = _this select 2; -_side = _this select 3; -_array_dam = _this select 4; -_behaviour = _this select 5; -_array_wp = _this select 6; -_array_veh = _this select 7; - -_group = createGroup _side; +private _group = createGroup _side; for "_i" from 0 to (count _array_pos - 1) do { - private ["_u"]; - _u = _group createUnit [(_array_type select _i), (_array_pos select _i), [], 0, "NONE"];_u setPos (_array_pos select _i); + private _u = _group createUnit [(_array_type select _i), (_array_pos select _i), [], 0, "NONE"]; + _u enableSimulation false; + _u setPosATL (_array_pos select _i); if (btc_debug_log) then {diag_log format ["spawn group : pos %1 in %2 ", (_array_pos select _i),getpos _u];}; _u setDamage (_array_dam select _i); }; if (_type == 1) then { - private ["_veh"]; - _veh = createVehicle [(_array_veh select 0), (_array_veh select 1), [], 0, "FLY"]; - _veh setPos (_array_veh select 1); + private _veh = createVehicle [(_array_veh select 0), (_array_veh select 1), [], 0, "FLY"]; + _veh setPosATL (_array_veh select 1); _veh setDir (_array_veh select 2); _veh setFuel (_array_veh select 3); { - private ["_assigned"]; - _assigned = false; + private _assigned = false; if (!_assigned && _veh emptyPositions "driver" > 0) then {_x moveInDriver _veh;_x assignAsDriver _veh;_assigned = true;}; if (!_assigned && _veh emptyPositions "gunner" > 0) then {_x moveinGunner _veh;_x assignAsGunner _veh;_assigned = true;}; if (!_assigned && _veh emptyPositions "commander" > 0) then {_x moveinCommander _veh;_x assignAsCommander _veh;_assigned = true;}; @@ -35,15 +25,17 @@ if (_type == 1) then { } foreach units _group; }; +(units _group) apply {_x enableSimulation true}; + //[waypointPosition _x,waypointType _x,waypointSpeed _x,waypointFormation _x,waypointCombatMode _x,waypointBehaviour _x] if (_side == civilian && {vehicle leader _group == leader _group}) then { _group spawn btc_fnc_civ_addWP; } else { if (count (_array_wp select 1) > 1) then { { - private "_wp"; //diag_log text format ["TEST X %1",_x]; - _wp = _group addWaypoint [(_x select 0), 0]; + private _wp = _group addWaypoint [(_x select 0), 0]; + _wp setWaypointCompletionRadius 20; _wp setWaypointType (_x select 1); _wp setWaypointSpeed (_x select 2); _wp setWaypointFormation (_x select 3); @@ -65,15 +57,13 @@ if (_type == 3) then { if (_type == 4) then {[[0,0,0],0,units _group] spawn btc_fnc_civ_get_weapons;}; if (_type == 5) then { _group spawn { - private ["_cond","_suicider"]; - _this setVariable ["suicider",true]; - _suicider = leader _this; + private _suicider = leader _this; //Main check - _cond = false; + private _cond = false; while {Alive _suicider && !isNull _suicider && !_cond} do { sleep 5; 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 0b39e12c2..7aac0e861 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 @@ -40,6 +40,8 @@ switch (true) do { _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;"]; }; }; From dfbe6fa0c210d8af6b2d795250d7a9dac57afe35 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 16 Apr 2017 16:27:22 +0200 Subject: [PATCH 063/120] Add: use CBA for suicider --- .../core/fnc/ied/allahu_akbar.sqf | 15 +++--- .../core/fnc/ied/suicider_active.sqf | 46 +++++++++++-------- .../core/fnc/ied/suicider_create.sqf | 23 ++++++---- 3 files changed, 48 insertions(+), 36 deletions(-) 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 a8022f596..37139c038 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 @@ -8,9 +8,12 @@ _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]; }; -sleep 1.4; -if (Alive _suicider && [_suicider] call ace_common_fnc_isAwake) then { - {deleteVehicle _x;} forEach attachedObjects _suicider; - "Bo_GBU12_LGB_MI10" createVehicle getPos _suicider; - [getPos _suicider] call btc_fnc_deaf_earringing; -}; \ No newline at end of file + +[{ + params ["_suicider"]; + if (Alive _suicider && [_suicider] call ace_common_fnc_isAwake) then { + {deleteVehicle _x;} forEach attachedObjects _suicider; + "Bo_GBU12_LGB_MI10" createVehicle getPos _suicider; + [getPos _suicider] 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/suicider_active.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_active.sqf index 4a1dd7fcb..14e1d52f9 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 @@ -1,5 +1,5 @@ -private ["_trigger","_array","_expl1","_expl2","_expl3","_man","_cond"]; +private ["_trigger","_array","_expl1","_expl2","_expl3"]; [_this] joinSilent createGroup [btc_enemy_side, true]; @@ -10,14 +10,14 @@ while {(count (waypoints group _this)) > 0} do { deleteWaypoint ((waypoints grou _trigger = createTrigger["EmptyDetector",getPos _this]; _trigger setTriggerArea[5,5,0,false]; _trigger setTriggerActivation[str(btc_player_side),"PRESENT",false]; -_trigger setTriggerStatements["this", "thisTrigger spawn btc_fnc_ied_allahu_akbar;", ""]; +_trigger setTriggerStatements["this", "thisTrigger call btc_fnc_ied_allahu_akbar;", ""]; _trigger setVariable ["suicider",_this]; _trigger attachTo [_this,[0,0,0]]; _array = getpos _this nearEntities ["SoldierWB", 30]; -if (count _array == 0) exitWith {}; +if (_array isEqualTo []) exitWith {}; _expl1 = "DemoCharge_Remote_Ammo" createVehicle (position _this); _expl1 attachTo [_this, [-0.1,0.1,0.15],"Pelvis"]; @@ -32,27 +32,33 @@ _expl3 attachTo [_this, [0.1,0.1,0.15],"Pelvis"]; (_this select 2) setVectorDirAndUp [[0.5,-0.5,0],[0.5,0.5,0]]; }] remoteExec ["call", 0, false]; -_man = _array select 0; - -_cond = true; (group _this) setBehaviour "CARELESS"; (group _this) setSpeedMode "FULL"; if (btc_debug_log) then {diag_log format ["btc_fnc_ied_suicider_active: _this = %1; POS %2 START LOOP",_this,getpos _this];}; -while {Alive _this && _cond} do { - _this doMove (position _man);//hint format ["MOVING %1",_man]; - //_trigger setPos getPos _this; - if (!Alive _man || _man distance _this > 30) then - { - private ["_array"]; - _array = getpos _this nearEntities ["SoldierWB", 30]; - if (count _array == 0) then {_cond = false;} else {_man = _array select 0;}; +[{ + params ["_args", "_id"]; + _args params ["_suicider"]; + + if (Alive _suicider) then { + private _array = _suicider nearEntities ["SoldierWB", 30]; + if (_array isEqualTo []) then { + [_id] call CBA_fnc_removePerFrameHandler; + if (btc_debug_log) then {diag_log format ["btc_fnc_ied_suicider_active: _suicider = %1; POS %2 END LOOP",_suicider,getpos _suicider];}; + } else { + _suicider doMove (position (_array select 0));//hint format ["MOVING %1",_man]; //_trigger setPos getPos _suicider; + }; + } else { + [_id] call CBA_fnc_removePerFrameHandler; + if (btc_debug_log) then {diag_log format ["btc_fnc_ied_suicider_active: _suicider = %1; POS %2 END LOOP",_suicider,getpos _suicider];}; }; - sleep 0.5; -}; -if (btc_debug_log) then {diag_log format ["btc_fnc_ied_suicider_active: _this = %1; POS %2 END LOOP",_this,getpos _this];}; - -sleep 3; +} , 0.5, [_this]] call CBA_fnc_addPerFrameHandler; -if (Alive _this) then {group _this setVariable ["suicider",true];deleteVehicle _trigger;}; \ No newline at end of file +[{ + params ["_suicider","_trigger"]; + if (Alive _suicider) then { + group _suicider setVariable ["suicider",true]; + deleteVehicle _trigger; + }; +}, [_this,_trigger], 3] call CBA_fnc_waitAndExecute; \ 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 ff5f41d38..f85dd24ac 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,5 +1,5 @@ -private ["_city","_area","_rpos","_unit_type","_group","_suicider","_cond"]; +private ["_city","_area","_rpos","_unit_type","_group","_suicider"]; _city = _this select 0; _area = _this select 1; @@ -34,13 +34,16 @@ _suicider = leader _group; _suicider call btc_fnc_civ_unit_create; //Main check -_suicider spawn -{ - _cond = false; - - while {Alive _this && !isNull _this && !_cond} do - { - sleep 5; - if (count (getpos _this nearEntities ["SoldierWB", 25]) > 0) then {_cond = true;_this spawn btc_fnc_ied_suicider_active}; +[{ + 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; }; -}; \ No newline at end of file +} , 5, [_suicider]] call CBA_fnc_addPerFrameHandler; \ No newline at end of file From 784fb0b83f96834764d723fc55c66dd9af9b6a96 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 18 Apr 2017 00:10:57 +0200 Subject: [PATCH 064/120] Add: empty --- .../core/def/mission.sqf | 1 + .../core/fnc/log/create_change_target.sqf | 6 +++++- .../core/fnc/log/create_s.sqf | 17 ++++++++++++----- 3 files changed, 18 insertions(+), 6 deletions(-) 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 768c21dd7..626b69428 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 @@ -287,6 +287,7 @@ if (isServer) then { //"Ammobox" "rhsusf_mags_crate", "Box_NATO_Ammo_F", + "Box_NATO_Ammo_F_empty", "Box_NATO_Support_F", "ACE_medicalSupplyCrate_advanced", "ACE_medicalSupplyCrate", diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_change_target.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_change_target.sqf index 942538c82..512689e51 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_change_target.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_change_target.sqf @@ -11,7 +11,11 @@ for "_i" from 0 to ((count _category) - 1) do { private ["_class","_display","_index"]; _class = (_category select _i); - _display = getText (configFile >> "cfgVehicles" >> _class >> "displayName"); + if (_class isEqualTo "Box_NATO_Ammo_F_empty") then { + _display = getText (configFile >> "cfgVehicles" >> "Box_NATO_Ammo_F" >> "displayName") + " (Empty)" ; + } else { + _display = getText (configFile >> "cfgVehicles" >> _class >> "displayName"); + }; if (_display isEqualTo "") then { _display = getText (configfile >> "CfgMagazines" >> _class >> "displayName"); }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_s.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_s.sqf index 9b9b9e692..894135114 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_s.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_s.sqf @@ -7,12 +7,19 @@ if (count _this > 1) then { _pos = getpos btc_create_object_point; }; -if (getText (configFile >> "cfgVehicles" >> (_this select 0) >> "displayName") isEqualTo "") then { - _obj = [btc_create_object_point,(_this select 0)] call ace_rearm_fnc_createDummy; - _obj setPos _pos; +if ((_this select 0) isEqualTo "Box_NATO_Ammo_F_empty") then { + _obj = "Box_NATO_Ammo_F" createVehicle [_pos select 0,_pos select 1,0]; + clearWeaponCargoGlobal _obj; + clearItemCargoGlobal _obj; + clearMagazineCargoGlobal _obj; } else { - _obj = (_this select 0) createVehicle [_pos select 0,_pos select 1,0]; + if (getText (configFile >> "cfgVehicles" >> (_this select 0) >> "displayName") isEqualTo "") then { + _obj = [btc_create_object_point,(_this select 0)] call ace_rearm_fnc_createDummy; + _obj setPos _pos; + } else { + _obj = (_this select 0) createVehicle [_pos select 0,_pos select 1,0]; + }; }; -btc_log_obj_created = btc_log_obj_created + [_obj]; +btc_log_obj_created pushBack _obj; btc_curator addCuratorEditableObjects [[_obj], false]; \ No newline at end of file From 6e598d3447e3bbd915bebfaf11e7c89a6a438393 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 19 Apr 2017 00:18:11 +0200 Subject: [PATCH 065/120] FIX: sript error --- .../core/fnc/common/task_patrol.sqf | 2 +- .../core/fnc/compile.sqf | 2 +- .../core/fnc/data/add_group.sqf | 12 +++++++++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/task_patrol.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/task_patrol.sqf index e961092bc..0b4c2ed95 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/task_patrol.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/task_patrol.sqf @@ -4,7 +4,7 @@ private ["_group","_pos","_max_area","_behav","_allowwater","_min_area"]; _group = _this select 0; _pos = _this select 1; _max_area = _this select 2; -if (_max_area < 50) then {_min_area = 0;} else {_min_area = 50;}; +if (_max_area < 100) then {_min_area = 0;} else {_min_area = 100;}; _behav = _this select 3; if (count _this > 4) then { _allowwater = _this select 4; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index 31469f452..34ad8f70d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -128,7 +128,6 @@ if (isServer) then { btc_fnc_side_hostage = compile preprocessFileLineNumbers "core\fnc\side\hostage.sqf"; //LOG - btc_fnc_log_getconfigmagazines = compile preprocessFile "core\fnc\log\getconfigmagazines.sqf"; btc_fnc_log_CuratorObjectPlaced_s = compile preprocessFile "core\fnc\log\CuratorObjectPlaced_s.sqf"; btc_fnc_log_createVehicle = compile preprocessFile "core\fnc\log\createVehicle.sqf"; @@ -202,6 +201,7 @@ btc_fnc_log_set_mass = compile preprocessFile "core\fnc\log\set_mass.sqf"; btc_fnc_log_tow = compile preprocessFile "core\fnc\log\tow.sqf"; btc_fnc_log_unhook = compile preprocessFile "core\fnc\log\unhook.sqf"; btc_fnc_log_unload = compile preprocessFile "core\fnc\log\unload.sqf"; +btc_fnc_log_getconfigmagazines = compile preprocessFile "core\fnc\log\getconfigmagazines.sqf"; //MIL btc_fnc_mil_class = compile preprocessFile "core\fnc\mil\class.sqf"; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/add_group.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/add_group.sqf index 7d1255f29..734b6b4b1 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/add_group.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/add_group.sqf @@ -17,7 +17,17 @@ _city setVariable ["occupied",true]; if (_city getVariable ["marker",""] != "") then {_marker = _city getVariable ["marker",""]; _marker setMarkerColor "ColorRed";_marker setMarkerAlpha 0.3;}; -[_group,_city,300, if (vehicle leader _group isEqualTo leader _group) then {random 1} else {0.3 + random 0.7}] call btc_fnc_mil_addWP; +if (vehicle leader _group isEqualTo leader _group) then { + _wp = random 1; +} else { + if ((vehicle leader _group) isKindOf "Air") then { + _wp = 0.7; + } else { + _wp = 0.3 + random 0.7; + }; +}; + +[_group,_city,200, _wp] call btc_fnc_mil_addWP; if !(_city getVariable ["active",false]) then { private ["_data_units","_data_group"]; From 1a999823488afa9e6e8fc649ca9dbd0a543e5df2 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 22 Apr 2017 17:14:06 +0200 Subject: [PATCH 066/120] Add: btc_fnc_city_create in init.sqf --- .../core/fnc/city/create.sqf | 3 ++ .../core/fnc/city/init.sqf | 29 +++---------------- 2 files changed, 7 insertions(+), 25 deletions(-) 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 c0f9727a2..99a4192b3 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 @@ -24,6 +24,9 @@ _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)]; +}; btc_city_all set [_id,_city]; [_position,_radius_x,_radius_y,_city,_has_en,_name,_type,_id] call btc_fnc_city_trigger_player_side; 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 bcf26e5fc..cc5871651 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 @@ -12,8 +12,7 @@ for "_i" from 0 to (count _locations - 1) do { _type = gettext(_current >> "type"); if (_type in _cities) then { - private ["_id","_city","_position","_name","_position","_radius_x","_radius_y","_has_en","_trigger","_new_position","_area"]; - _id = count btc_city_all; + private ["_position","_name","_position","_radius_x","_radius_y","_new_position","_area"]; _position = getarray(_current >> "position"); if (surfaceIsWater _position) then { if !(_type isEqualTo "NameMarine") then { @@ -31,32 +30,12 @@ for "_i" from 0 to (count _locations - 1) do { if (btc_city_blacklist find _name >= 0) exitWith {}; - /* + /* //if you want a safe area if (_position distance getMarkerPos "YOUR_MARKER_AREA" < 500) exitWith {}; - */ + */ - _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",[]]; - _has_en = (random 1 > 0.45); - _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)]; - }; - btc_city_all set [_id,_city]; - [_position,_radius_x,_radius_y,_city,_has_en,_name,_type,_id] call btc_fnc_city_trigger_player_side; + [_position,_type,_name,_radius_x,_radius_y,random 1 > 0.45] call btc_fnc_city_create; }; }; From 52f2325f08e009e18d74b12f1276ebfa0c215a8c Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 22 Apr 2017 17:20:34 +0200 Subject: [PATCH 067/120] RMV: private --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/city/create.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 99a4192b3..4e0f0f8b3 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,5 +1,5 @@ -private ["_position","_type","_name","_radius_x","_radius_y","_has_en","_id","_city","_trigger"]; +private ["_position","_type","_name","_radius_x","_radius_y","_has_en","_id","_city"]; _position = _this select 0; _type = _this select 1; From 639bcd2ac683d6192ad5e3048bc9e6b81553b5e3 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 23 Apr 2017 15:31:11 +0200 Subject: [PATCH 068/120] FIX wrong file name --- .../core/fnc/eh/{treatement.sqf => treatment.sqf} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/{treatement.sqf => treatment.sqf} (100%) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/treatement.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/treatment.sqf similarity index 100% rename from =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/treatement.sqf rename to =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/treatment.sqf From 8b300480c4f0cf44faa7e3ffc16935f11c1f919b Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 23 Apr 2017 16:03:41 +0200 Subject: [PATCH 069/120] FIX: suicider is not trigger --- .../core/fnc/ied/suicider_active.sqf | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) 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 14e1d52f9..3f4fa5765 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 @@ -39,26 +39,17 @@ if (btc_debug_log) then {diag_log format ["btc_fnc_ied_suicider_active: _this = [{ params ["_args", "_id"]; - _args params ["_suicider"]; + _args params ["_suicider","_trigger"]; if (Alive _suicider) then { private _array = _suicider nearEntities ["SoldierWB", 30]; - if (_array isEqualTo []) then { - [_id] call CBA_fnc_removePerFrameHandler; - if (btc_debug_log) then {diag_log format ["btc_fnc_ied_suicider_active: _suicider = %1; POS %2 END LOOP",_suicider,getpos _suicider];}; - } else { + 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; - 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]] call CBA_fnc_addPerFrameHandler; - -[{ - params ["_suicider","_trigger"]; - if (Alive _suicider) then { - group _suicider setVariable ["suicider",true]; 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];}; }; -}, [_this,_trigger], 3] call CBA_fnc_waitAndExecute; \ No newline at end of file +} , 0.5, [_this,_trigger]] call CBA_fnc_addPerFrameHandler; \ No newline at end of file From 462681f7508f438d1946cfa8d34c532e10972983 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 26 Apr 2017 19:09:04 +0200 Subject: [PATCH 070/120] FIX: rtp error --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/killed.sqf | 2 +- .../core/fnc/side/civtreatment.sqf | 3 ++- .../core/fnc/side/civtreatment_boat.sqf | 6 ++---- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/vehicle.sqf | 6 ++---- 4 files changed, 7 insertions(+), 10 deletions(-) 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 eaa9646dd..f4f70bbdb 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 @@ -10,5 +10,5 @@ if (isPlayer _killer) then { }; 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/side/civtreatment.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/civtreatment.sqf index fdc658aaa..d03799152 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 @@ -80,6 +80,7 @@ waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || ({_x distance _unit waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || !Alive _unit || {_unit call ace_medical_fnc_isInStableCondition && [_unit] call ace_common_fnc_isAwake})}; 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 call btc_fnc_task_fail} remoteExec ["call", 0]; @@ -89,6 +90,6 @@ if (btc_side_aborted || btc_side_failed || !Alive _unit) exitWith { {8 call btc_fnc_task_set_done} remoteExec ["call", 0]; -[[_marker], [_veh], [_fx], [_group]] call btc_fnc_delete; + _unit setUnitPos "UP"; \ No newline at end of file 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 70871b184..7c10b3610 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 @@ -50,14 +50,12 @@ waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || ({_x distance _unit waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || !Alive _unit || {_unit call ace_medical_fnc_isInStableCondition && [_unit] call ace_common_fnc_isAwake})}; 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 call btc_fnc_task_fail} remoteExec ["call", 0]; - [[_marker], [_veh], [], [_group]] call btc_fnc_delete; }; 10 call btc_fnc_rep_change; -{10 call btc_fnc_task_set_done} remoteExec ["call", 0]; - -[[_marker], [_veh], [], [_group]] call btc_fnc_delete; \ No newline at end of file +{10 call btc_fnc_task_set_done} remoteExec ["call", 0]; \ No newline at end of file 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 e476f27b9..6a6d4eb05 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 @@ -44,14 +44,12 @@ _veh setHit ["wheel_1_1_steering", 1]; waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || (_veh getHit "wheel_1_1_steering" < 1) || !Alive _veh)}; 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 call btc_fnc_task_fail} remoteExec ["call", 0]; - [[_area,_marker], [], [], []] call btc_fnc_delete; }; 15 call btc_fnc_rep_change; -{5 call btc_fnc_task_set_done} remoteExec ["call", 0]; - -[[_area,_marker], [_veh], [], []] call btc_fnc_delete; \ No newline at end of file +{5 call btc_fnc_task_set_done} remoteExec ["call", 0]; \ No newline at end of file From 171da03baf9392d51c8f1869fdc85013d5bc8209 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 26 Apr 2017 22:01:02 +0200 Subject: [PATCH 071/120] tweak --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hack.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 5adc609de..8af8b18db 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 @@ -59,7 +59,7 @@ for "_i" from 1 to (2 + round random 1) do { [_terminal, _launchsite modelToWorld [0,100,10]] remoteExec ["btc_fnc_log_place_create_camera", -2]; -{player commandChat "Defend the terminal until it is hacked!"} remoteExec ["call", -2]; +{player commandChat "Defend the terminal until the missile is hacked!"} remoteExec ["call", -2]; 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 { From 968c69e0b984686b8ce817127fd37c67b2fea4c9 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 28 Apr 2017 21:57:29 +0200 Subject: [PATCH 072/120] Add: CBA for fired_near --- .../core/fnc/ied/create.sqf | 2 +- .../core/fnc/ied/fired_near.sqf | 68 +++++++++---------- 2 files changed, 32 insertions(+), 38 deletions(-) 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 10841d41d..63f8f152c 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 @@ -15,7 +15,7 @@ _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] spawn btc_fnc_ied_fired_near; + [_wreck,_ied] call btc_fnc_ied_fired_near; } else { _ied = objNull; }; 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 fa70832a2..1b7007e95 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 @@ -1,5 +1,5 @@ -private ["_pos","_range","_bomb","_bomb_check","_array","_list","_ied","_explosive","_caliber","_wreck"]; +private ["_pos","_range","_array","_ied","_wreck"]; _wreck = _this select 0; _ied = _this select 1; @@ -7,43 +7,37 @@ _pos = getPos _ied; _pos = [_pos select 0, _pos select 1, (_pos select 2) + 0.5]; _range = 2; -_bomb_check = -{ - _ied = _this select 0; - _bomb = _this select 1; - _wreck = _this select 2; - _bomb setVariable ["bullet_check",true]; - waitUntil {!Alive _bomb}; - if (Alive _ied) then {[_wreck,_ied] spawn btc_fnc_ied_boom;}; -}; - _array = []; - -while {alive _ied && !isNull _ied} do -{ - _list = _pos nearObjects ["Default",_range]; - if (count _list > 0) then - { - { - private ["_bullet","_b"]; - _b = _x; - _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 +[{ + 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 { { - if !(_b in _array) then - { - _array pushBack _b; - [_ied,_b,_wreck] spawn _bomb_check; + 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; + }; + }; }; - } - else - { - _explosive = (getNumber(configFile >> "cfgAmmo" >> _bullet >> "explosive") > 0); - _caliber = getNumber(configFile >> "CfgAmmo" >> _bullet >> "caliber"); - if (_explosive || _caliber > 1.6) then {if (Alive _ied) then {[_wreck,_ied] spawn btc_fnc_ied_boom;};}; - }; - } foreach _list; + } foreach _list; + }; + } else { + [_id] call CBA_fnc_removePerFrameHandler; }; - sleep 0.01; -}; \ No newline at end of file +} , 0.01, [_ied, _wreck, _pos, _range, _array]] call CBA_fnc_addPerFrameHandler; \ No newline at end of file From 735cf787468612bf0e3f3da385518f59a64e4b89 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 29 Apr 2017 00:01:48 +0200 Subject: [PATCH 073/120] false by default --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 7efdd6a55..e3a78f0dc 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 @@ -54,8 +54,8 @@ _p_rep = (paramsArray select 35); ace_rearm_level = (paramsArray select 36); btc_p_sea = if ((paramsArray select 37) isEqualTo 0) then {false} else {true}; _p_city_radius = (paramsArray select 38) * 100; -btc_p_veh_armed_ho = true; -btc_p_veh_armed_spawn_more = true; +btc_p_veh_armed_ho = false; +btc_p_veh_armed_spawn_more = false; btc_p_trigger = if (false) 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_side_mission_cycle = false; btc_p_garage = false; From 065342a67683e25a7f8259182a682201f04182b6 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 3 May 2017 19:19:05 +0200 Subject: [PATCH 074/120] FIX: avoid vehicles to take strange roads --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hack.sqf | 1 + 1 file changed, 1 insertion(+) 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 8af8b18db..20845a350 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 @@ -56,6 +56,7 @@ private _closest = [_city,btc_city_all select {!(_x getVariable ["active",false] 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 apply {_x setBehaviour "CARELESS"}; [_terminal, _launchsite modelToWorld [0,100,10]] remoteExec ["btc_fnc_log_place_create_camera", -2]; From c4f481eae5d6fb62a273983c742b552138ca1e9f Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 6 May 2017 12:17:38 +0200 Subject: [PATCH 075/120] Add: random probability to know the number of hideouts left --- .../core/fnc/info/ask_reputation.sqf | 15 +++++++++++++-- .../core/fnc/int/ask_var.sqf | 1 + 2 files changed, 14 insertions(+), 2 deletions(-) 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 3cdf1145c..c3c92676e 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,6 +1,6 @@ if (isNil {player getVariable "interpreter"}) exitWith {hint "I can't understand what is saying";}; -private ["_man","_rep","_chance","_info","_info_type","_random","_text"]; +private ["_man","_rep","_chance","_info","_info_type","_random","_text","_ho_left"]; _man = _this select 0; @@ -11,6 +11,17 @@ waitUntil {!(isNil "btc_int_ask_data")}; _rep = btc_int_ask_data; +if ((round random 2) >= 1) then { + btc_int_ask_data = nil; + [6,nil,player] remoteExec ["btc_fnc_int_ask_var", 2]; + + waitUntil {!(isNil "btc_int_ask_data")}; + + _ho_left = format ["%1 hideouts left.", btc_int_ask_data]; +} else { + _ho_left = ""; +}; + switch (true) do { case (_rep < 200) : {_info_type = "very low";}; case (_rep >= 200 && _rep < 500) : {_info_type = "low";}; @@ -25,4 +36,4 @@ switch (true) do { case (_chance >= 60) : {_text = format ["I am %1 and I think your reputation is", name _man];}; }; -hint format ["%1 %2.", _text, _info_type]; \ No newline at end of file +hint format ["%1 %2. %3", _text, _info_type, _ho_left]; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/ask_var.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/ask_var.sqf index e349c9dce..d7760c11c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/ask_var.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/ask_var.sqf @@ -20,6 +20,7 @@ switch (_id) do { case 5 : {_data = btc_side_jip_data;}; case 6 : {_data = btc_fobs;}; case 7 : {_data = btc_construction_array;}; + case 8 : {_data = count btc_hideouts;}; }; [_data] remoteExec ["btc_fnc_int_ans_var", _asker, false]; \ No newline at end of file From 4c8096b4dfb3bc682be01a22dd2e809079061bab Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 7 May 2017 17:25:25 +0200 Subject: [PATCH 076/120] Add: accurate damage for Database (@dedmen) --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf | 4 +++- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index 2d8a96821..c6bc454ee 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -201,7 +201,9 @@ diag_log format ["5: %1",(_x select 5)]; _veh = [(_x select 0),(_x select 1),(_x select 2)] call btc_fnc_log_createVehicle; if ((getPos _veh) select 2 < 0) then {_veh setVectorUp surfaceNormal position _veh;}; _veh setFuel (_x select 3); - _veh setDamage (_x select 4); + { + [_veh, _foreachindex, _x] call ace_repair_fnc_setHitPointDamage; + } forEach ((_x select 4) select 2); { private ["_type","_cargo_obj","_obj","_weap_obj","_mags_obj","_items_obj"]; //{_cargo pushBack [(typeOf _x),[getWeaponCargo _x,getMagazineCargo _x,getItemCargo _x]]} foreach (_x getVariable ["cargo",[]]); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf index 53e491b3e..09c241fc8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf @@ -116,7 +116,7 @@ _array_veh = []; _data pushBack (getPosASL _x); _data pushBack (getDir _x); _data pushBack (fuel _x); - _data pushBack (damage _x); + _data pushBack (getAllHitPointsDamage _x); _cargo = []; {_cargo pushBack [(typeOf _x),(_x getVariable ["ace_rearm_magazineClass",""]),[getWeaponCargo _x,getMagazineCargo _x,getItemCargo _x]]} foreach (_x getVariable ["cargo",[]]); _data pushBack _cargo; From a2d184b022111b50f1fd338f34b2ce8a82cbd086 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 8 May 2017 22:27:36 +0200 Subject: [PATCH 077/120] Add: grenade to civ when bad stuff happen --- .../core/def/mission.sqf | 2 ++ .../core/fnc/civ/add_grenade.sqf | 12 +++++++++ .../core/fnc/civ/get_grenade.sqf | 26 +++++++++++++++++++ .../core/fnc/compile.sqf | 2 ++ .../core/fnc/rep/add_eh.sqf | 2 +- .../core/fnc/rep/eh_effects.sqf | 2 ++ .../core/fnc/rep/remove_eh.sqf | 1 + 7 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/add_grenade.sqf create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/get_grenade.sqf 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 50cdf3296..a900cf704 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 @@ -180,6 +180,8 @@ btc_civ_type_boats = _allclasse select 1; btc_civ_max_veh = 10; btc_w_civs = ["V_Rangemaster_belt","arifle_Mk20_F","30Rnd_556x45_Stanag","hgun_ACPC2_F","9Rnd_45ACP_Mag"]; +btc_g_civs = ["HandGrenade","MiniGrenade","ACE_M84","ACE_M14"]; + //Cache btc_cache_type = ["Box_East_Ammo_F"]; 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 new file mode 100644 index 000000000..a7de61d22 --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/add_grenade.sqf @@ -0,0 +1,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}, [_this select 0], 5] call CBA_fnc_waitAndExecute; + }; +}]; \ 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 new file mode 100644 index 000000000..1a291289f --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/get_grenade.sqf @@ -0,0 +1,26 @@ + +private ["_pos","_range","_units"]; + +_pos = _this select 0; +_range = _this select 1; +_units = []; +if (count _this > 2) then {_units = _this select 2;} else {_units = _pos nearEntities [btc_civ_type_units, _range];}; + +_units = _units select {side _x isEqualTo civilian}; + +{ + 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_civ_add_grenade; + + [_x] joinSilent createGroup [btc_enemy_side, true]; + + (group _x) setVariable ["getWeapons",true]; + + (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/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index b5ea269fc..9aa42cdd3 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -35,9 +35,11 @@ if (isServer) then { //CIV btc_fnc_civ_add_weapons = compile preprocessFile "core\fnc\civ\add_weapons.sqf"; + btc_fnc_civ_add_grenade = compile preprocessFile "core\fnc\civ\add_grenade.sqf"; btc_fnc_civ_addWP = compile preprocessFile "core\fnc\civ\addWP.sqf"; btc_fnc_civ_create = compile preprocessFile "core\fnc\civ\create.sqf"; btc_fnc_civ_get_weapons = compile preprocessFile "core\fnc\civ\get_weapons.sqf"; + btc_fnc_civ_get_grenade = compile preprocessFile "core\fnc\civ\get_grenade.sqf"; btc_fnc_civ_populate = compile preprocessFile "core\fnc\civ\populate.sqf"; btc_fnc_civ_traffic_add_WP = compile preprocessFile "core\fnc\civ\traffic_add_WP.sqf"; btc_fnc_civ_traffic_create = compile preprocessFile "core\fnc\civ\traffic_create.sqf"; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/add_eh.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/add_eh.sqf index 611e24723..b247fc156 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/add_eh.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/add_eh.sqf @@ -1,4 +1,4 @@ -if (!isNil {_this getVariable "btc_rep_eh_added"}) exitWith {true}; +if !((_this getVariable ["btc_rep_eh_added",[]]) isEqualTo []) exitWith {true}; private ["_id_d","_id_k","_id_f"]; 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 ee450ced6..864e5351b 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 @@ -23,6 +23,8 @@ if (btc_global_reputation < 300) then { [_pos,300] spawn btc_fnc_civ_get_weapons; }; +} else { + [_pos,300] spawn btc_fnc_civ_get_grenade; }; if (btc_debug) then diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/remove_eh.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/remove_eh.sqf index 07939d5a0..19b775c01 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/remove_eh.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/remove_eh.sqf @@ -10,5 +10,6 @@ _this removeEventHandler ["Killed", (_data select 1)]; _this removeEventHandler ["FiredNear", (_data select 2)]; //, [_id_d,_id_k]]; +_this setVariable ["btc_rep_eh_added", []]; true \ No newline at end of file From 790fb9302954aa074190eba7fb7de75a5c9224f1 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 8 May 2017 23:38:47 +0200 Subject: [PATCH 078/120] FIX: wrong ask_var --- .../core/fnc/info/ask_reputation.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 c3c92676e..49677dfc3 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 @@ -13,11 +13,11 @@ _rep = btc_int_ask_data; if ((round random 2) >= 1) then { btc_int_ask_data = nil; - [6,nil,player] remoteExec ["btc_fnc_int_ask_var", 2]; + [8,nil,player] remoteExec ["btc_fnc_int_ask_var", 2]; waitUntil {!(isNil "btc_int_ask_data")}; - _ho_left = format ["%1 hideouts left.", btc_int_ask_data]; + _ho_left = format ["I heard about %1 hideouts left.", btc_int_ask_data]; } else { _ho_left = ""; }; From d0e2688ef1385dcdc7f53425ad00127ba7da78b5 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 8 May 2017 23:42:48 +0200 Subject: [PATCH 079/120] Tweak random --- .../core/fnc/info/ask_reputation.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 49677dfc3..d5f9c9cd7 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 @@ -11,7 +11,7 @@ waitUntil {!(isNil "btc_int_ask_data")}; _rep = btc_int_ask_data; -if ((round random 2) >= 1) then { +if ((round random 1) isEqualTo 1) then { btc_int_ask_data = nil; [8,nil,player] remoteExec ["btc_fnc_int_ask_var", 2]; From c2a4c27f864c509e4cd001452d5b959822deefc0 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 10 May 2017 21:13:43 +0200 Subject: [PATCH 080/120] Increase version --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 50cdf3296..51d6a7fd5 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,7 +1,7 @@ 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"]; -btc_version = 1.16; diag_log format ["=BTC= HEARTS AND MINDS VERSION %1",(str(btc_version) + ".3")]; +btc_version = 1.161; diag_log format ["=BTC= HEARTS AND MINDS VERSION %1",(str(btc_version) + ".3")]; //Param From 06d593379a9407386c950e0706289aa839f98726 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 10 May 2017 21:58:29 +0200 Subject: [PATCH 081/120] Add: more faction available --- .../core/def/mission.sqf | 4 ++-- .../core/def/param.hpp | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) 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 797c4c077..48a5708cd 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 @@ -167,7 +167,7 @@ btc_city_type = "Land_Ammobox_rounds_F"; //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","CUP_C_CHERNARUS","CUP_C_RU","CUP_C_TK","LIB_CIV","LOP_AFR_CIV","LOP_CHR_CIV","LOP_TAK_CIV","OPTRE_UEG_CIV","RDS_RUS_CIV","UNSUNG_C"]; //All factions +private _allfaction = ["AFGCIV","CIV_F","BTC_AC","CAF_AG_AFR_CIV","CAF_AG_ME_CIV","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","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 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. @@ -462,7 +462,7 @@ btc_respawn_marker = "respawn_west"; 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","IND_F","IND_G_F","OPF_F","OPF_G_F","TBAN","UNSUNG","BTC_AM","CAF_AG_AFR_P","CAF_AG_EEUR_R","CAF_AG_ME_T","CUP_B_CZ","CUP_B_GER","CUP_B_US_ARMY","CUP_I_NAPA","CUP_I_PMC_ION","CUP_I_RACS","CUP_O_SLA","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","BLU_CTRG_F","BLU_GEN_F","BLU_T_F","IND_C_F","OPF_T_F","FOW_IJA","FOW_UK","FOW_USA","FOW_USMC","FOW_WEHRMACHT","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_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","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","OPTRE_INS","OPTRE_PD","OPTRE_UNSC","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_NATIONALIST","SG_STURM","SG_STURM_W","SG_STURMPANZER","UNSUNG_AUS","UNSUNG_E","UNSUNG_EV","UNSUNG_G","UNSUNG_NZ","UNSUNG_W","USML_AIF"]; //All factions +private _allfaction = ["BLU_F","BLU_G_F","BUNDESWEHR","CAR","IND_F","IND_G_F","OPF_F","OPF_G_F","TBAN","UNSUNG","AFR_ARMY","ARA_ARMY","ARL_ARMY","BTC_AM","CAF_AG_AFR_P","CAF_AG_EEUR_R","CAF_AG_ME_T","CEC_ARMY","CUP_B_CZ","CUP_B_GER","CUP_B_US_ARMY","CUP_I_NAPA","CUP_I_PMC_ION","CUP_I_RACS","CUP_O_SLA","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","BLU_CTRG_F","BLU_GEN_F","BLU_T_F","IND_C_F","OPF_T_F","OPTRE_OPCAN_CPD","OPTRE_OPCAN_CSD","FOW_IJA","FOW_UK","FOW_USA","FOW_USMC","FOW_WEHRMACHT","GAL_ARMY","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_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","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_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_NATIONALIST","SG_STURM","SG_STURM_W","SG_STURMPANZER","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 /*, "IND_F"*/], _p_en_AA, _p_en_tank] call btc_fnc_mil_class; //Create classes from factions, you can combine factions from the SAME side like that : [[_p_en , "IND_F"], _p_en_AA, _p_en_tank] call btc_fnc_mil_class; 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 4f743eb11..8602492db 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 @@ -44,22 +44,22 @@ class Params { class btc_p_en { //paramsArray[6] 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}; - texts[]={" Bohemia Interactive: NATO (Side: WEST)"," Bohemia Interactive: FIA (Side: WEST)"," Bohemia Interactive: AAF (Side: GUER)"," Bohemia Interactive: FIA (Side: GUER)"," Bohemia Interactive: CSAT (Side: EAST)"," Bohemia Interactive: FIA (Side: EAST)"," EricJ: Taliban (Side: EAST)"," Bohemia Interactive: (Side: WEST)","btc_militia_mod Giallustio: Afghan Militia (Side: EAST)","CAF CAF MOD TEAM: Africa - Pirates (Side: EAST)","CAF CAF MOD TEAM: East Europe - Rebels (Side: EAST)","CAF CAF MOD TEAM: Middle East - Tribal (Side: EAST)","CUP Community Upgrade Project: Czech Republic (Side: WEST)","CUP Bohemia Interactive: Germany (Side: WEST)","CUP Bohemia Interactive: United States Army (Side: WEST)","CUP Bohemia Interactive: NAPA (Chenarus) (Side: GUER)","CUP $CUP_AUTHOR_STRING: ION PMC (Side: GUER)","CUP Bohemia Interactive: Royal Army Corp of Sahrani (Side: GUER)","CUP Bohemia Interactive: Sahrani Liberation Army (Side: EAST)","CUP Bohemia Interactive: Takistani Army (Side: EAST)","CUP_Units Community Upgrade Project: United Kingdom (Side: WEST)","CUP_Units Bohemia Interactive: Takistani Locals (Side: GUER)","CUP_Units Community Upgrade Project: United Nations (Side: GUER)","CUP_Units Community Upgrade Project: ChDKZ (Chenarus) (Side: EAST)","CUP_Units Bohemia Interactive: Takistani Militia (Side: EAST)","CUP_Vehicles Community Upgrade Project: Chenarus Defense Force (CDF) (Side: WEST)","CUP_Vehicles Community Upgrade Project: Royal New Zealand Navy (Side: WEST)","CUP_Vehicles Community Upgrade Project: United States Marine Corps (Side: WEST)","CUP_Vehicles Community Upgrade Project: Russian Federation (Side: EAST)","Expansion Bohemia Interactive: CTRG (Side: WEST)","Expansion Bohemia Interactive: Gendarmerie (Side: WEST)","Expansion Bohemia Interactive: NATO (Pacific) (Side: WEST)","Expansion Bohemia Interactive: Syndikat (Side: GUER)","Expansion Bohemia Interactive: CSAT (Pacific) (Side: EAST)","FOW Bohemia Interactive: Imperial Japanese Army (Side: WEST)","FOW Bohemia Interactive: UK (Side: GUER)","FOW Bohemia Interactive: US Army (Side: GUER)","FOW Bohemia Interactive: US Marines Corps (Side: GUER)","FOW Bohemia Interactive: Wehrmacht (Side: WEST)","LIB AWAR: ACI (Side: GUER)","LIB AWAR & Lennard: ARR (Side: WEST)","LIB Lennard: Deutsches Afrikakorps (Side: WEST)","LIB AWAR & Joarius: FFI (Side: GUER)","LIB AWAR: Home Army (Polish) (Side: GUER)","LIB AWAR: Luftwaffe (Side: WEST)","LIB AWAR & Lennard: [Winter] Luftwaffe (Side: WEST)","LIB AWAR & Lennard: MKHL (Side: WEST)","LIB Lennard: US North African Corps (Side: GUER)","LIB Lennard: NKVD (Side: EAST)","LIB AWAR: Panzerwaffe (Side: WEST)","LIB AWAR & Lennard: [Winter] Panzerwaffe (Side: WEST)","LIB AWAR: RAAF (Side: GUER)","LIB AWAR: RAF (Side: GUER)","LIB AWAR & Lennard: RBAF (Side: WEST)","LIB AWAR: Red Army (Side: EAST)","LIB AWAR & Lennard: [Winter] Red Army (Side: EAST)","LIB LODU: US Army Air Forces (Side: GUER)","LIB AWAR: [Winter] US Airforce (Side: GUER)","LIB AWAR: US Army (Side: GUER)","LIB LODU: [Winter] US Army (Side: GUER)","LIB Lennard: US 2nd Ranger Battalion (Side: GUER)","LIB I44: US Tank Troops (Side: GUER)","LIB AWAR & Lennard: [Winter] US Tank Troops (Side: GUER)","LIB AWAR: USSR Airforce (Side: EAST)","LIB AWAR & Lennard: [Winter] USSR Airforce (Side: EAST)","LIB AWAR: Tank troops of USSR (Side: EAST)","LIB AWAR & Lennard: [Winter] Tank troops of USSR (Side: EAST)","LIB AWAR: Wehrmacht (Side: WEST)","LIB AWAR & Lennard: [Winter] Wehrmacht (Side: WEST)","LOP Project OPFOR: Boko Haram (Side: EAST)","LOP Project OPFOR: Irish Republican Army (Side: EAST)","LOP Project OPFOR: Ulster Volunteer Force (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Afghan National Army and Police (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: African Militia (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: African Militia (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Chernarussian Defence Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: ChDKZ (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Iraqi Armed Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: Iranian Armed Forces (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Chernarussian National Insurgents (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Private Military Company (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Royal Army Corps of Sahrani (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Sahrani Liberation Army (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Takistani Armed Forces (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Ultranationalists (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Ukraine's Armed Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: United Nations (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: United Armed Forces of Novorossiya (Side: EAST)","OPTRE Article 2 Studios: Insurrectionists (Side: EAST)","OPTRE Article 2 Studios: Colonial Police (Side: GUER)","OPTRE Article 2 Studios: UNSCDF (Side: WEST)","RHS_AFRF Red Hammer Studios: Eastern Militia (Side: GUER)","RHS_AFRF Red Hammer Studios: Russia (MSV) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (RVA) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (TV) (Side: EAST)","RHS_AFRF Bohemia Interactive: Russia (VDV) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VMF) (Side: EAST)","RHS_AFRF RHS: Russia (VPVO) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VV) (Side: EAST)","RHS_AFRF Bohemia Interactive: Russia (VVS - Grey) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VVS - Camo) (Side: EAST)","RHS_GREF Red Hammer Studios: Chernarus (Air Force) (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (Air Force) (Side: WEST)","RHS_GREF RHS (A2 port): Chernarus (Ground Forces) (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (Ground Forces) (Side: WEST)","RHS_GREF Red Hammer Studios: Chernarus (National Guard) (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (National Guard) (Side: WEST)","RHS_GREF Red Hammer Studios: ChDKZ Insurgents (Side: EAST)","RHS_GREF Red Hammer Studios: ChDKZ Insurgents (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (U.N. Peacekeepers) (Side: GUER)","RHS_SAF Red Hammer Studios: SAF (RVIPVO) (Side: GUER)","RHS_SAF Red Hammer Studios: SAF (KOV) (Side: GUER)","RHS_SAF Red Hammer Studios: SAF (UN Peacekeepers) (Side: GUER)","RHS_USAF Red Hammer Studios: USA (SOCOM) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (USAF) (Side: WEST)","RHS_USAF RHS (A2 port): USA (Army - D) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (Army - W) (Side: WEST)","RHS_USAF RHS (A2 port): USA (USMC - D) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (USMC - W) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (Navy) (Side: WEST)","RHSGREF Red Hammer Studios: Nationalist Troops (Side: GUER)","SG Stagler: Sturmtroopers (Side: WEST)","SG Stagler: [Winter] Sturmtroopers (Side: WEST)","SG Stagler: Tank Sturmtroopers (Side: WEST)","UNSUNG Bohemia Interactive: Australia (UNSUNG) (Side: GUER)","UNSUNG Razorback: N.V.A. (UNSUNG) (Side: EAST)","UNSUNG Bohemia Interactive: V.C. (UNSUNG) (Side: EAST)","UNSUNG Bohemia Interactive: A.R.V.N. (UNSUNG) (Side: GUER)","UNSUNG Bohemia Interactive: New Zealand (UNSUNG) (Side: GUER)","UNSUNG Bohemia Interactive: U.S. (UNSUNG) (Side: WEST)","USML segen: Armed Islamic Front (Side: GUER)"}; - default = 3; + 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}; + texts[]={" Bohemia Interactive: NATO (Side: WEST)"," Bohemia Interactive: FIA (Side: WEST)"," Aplion: Bundeswehr (Side: WEST)"," jarrad96: Central African Militia (Side: EAST)"," Bohemia Interactive: AAF (Side: GUER)"," Bohemia Interactive: FIA (Side: GUER)"," Bohemia Interactive: CSAT (Side: EAST)"," Bohemia Interactive: FIA (Side: EAST)"," EricJ: Taliban (Side: EAST)"," Bohemia Interactive: (Side: WEST)","AFR BIS/IceBreakr: Afrenian Army (Side: WEST)","ARA Bohemia Interactive: Abramian Rebel Alliance (Side: WEST)","ARL BIS/IceBreakr: ARL Lingor Rebels (Side: EAST)","btc_militia_mod Giallustio: Afghan Militia (Side: EAST)","CAF CAF MOD TEAM: Africa - Pirates (Side: EAST)","CAF CAF MOD TEAM: East Europe - Rebels (Side: EAST)","CAF CAF MOD TEAM: Middle East - Tribal (Side: EAST)","CEC HcPookie: Cecanian Army (Side: EAST)","CUP Community Upgrade Project: Army of the Czech Republic (Side: WEST)","CUP Bohemia Interactive: Bundeswehr (Side: WEST)","CUP Bohemia Interactive: United States Army (Side: WEST)","CUP Bohemia Interactive: National Party of Chernarus (Side: GUER)","CUP Bohemia Interactive: ION PMC (Side: GUER)","CUP Bohemia Interactive: Royal Army Corps of Sahrani (Side: GUER)","CUP Bohemia Interactive: Sahrani Liberation Army (Side: EAST)","CUP Bohemia Interactive: Takistani Army (Side: EAST)","CUP_Units Community Upgrade Project: British Armed Forces (Side: WEST)","CUP_Units Bohemia Interactive: Takistani Locals (Side: GUER)","CUP_Units Community Upgrade Project: United Nations (Side: GUER)","CUP_Units Community Upgrade Project: Chernarussian Movement of the Red Star (Side: EAST)","CUP_Units Bohemia Interactive: Takistani Militia (Side: EAST)","CUP_Vehicles Community Upgrade Project: Chenarus Defense Forces (Side: WEST)","CUP_Vehicles Community Upgrade Project: Royal New Zealand Navy (Side: WEST)","CUP_Vehicles Community Upgrade Project: United States Marine Corps (Side: WEST)","CUP_Vehicles Community Upgrade Project: Armed Forces of the Russian Federation (Side: EAST)","Expansion Bohemia Interactive: CTRG (Side: WEST)","Expansion Bohemia Interactive: Gendarmerie (Side: WEST)","Expansion Bohemia Interactive: NATO (Pacific) (Side: WEST)","Expansion Bohemia Interactive: Syndikat (Side: GUER)","Expansion Bohemia Interactive: CSAT (Pacific) (Side: EAST)","Expansion Burgess: OPCAN (Colonial Police) (Side: WEST)","Expansion Burgess: OPCAN (Colonial Sheriff) (Side: WEST)","FOW Bohemia Interactive: Imperial Japanese Army (Side: WEST)","FOW Bohemia Interactive: UK (Side: GUER)","FOW Bohemia Interactive: US Army (Side: GUER)","FOW Bohemia Interactive: US Marines Corps (Side: GUER)","FOW Bohemia Interactive: Wehrmacht (Side: WEST)","GAL HcPookie: GAL (Government Army of Lingor) (Side: WEST)","GANGBLUE BIS/IceBreakr: Blue Gang (Side: WEST)","GANGRED BIS/IceBreakr: Red Gang (Side: EAST)","IBR Bohemia Interactive: Alienz (Side: GUER)","ISC Bohemia Interactive: [ISC] Iraqi Police (Side: WEST)","ISC Bohemia Interactive: [ISC] YPG (Side: WEST)","LIB AWAR: ACI (Side: GUER)","LIB AWAR & Lennard: ARR (Side: WEST)","LIB Lennard: Deutsches Afrikakorps (Side: WEST)","LIB AWAR & Joarius: FFI (Side: GUER)","LIB AWAR: Home Army (Polish) (Side: GUER)","LIB AWAR: Luftwaffe (Side: WEST)","LIB AWAR & Lennard: [Winter] Luftwaffe (Side: WEST)","LIB AWAR & Lennard: MKHL (Side: WEST)","LIB Lennard: US North African Corps (Side: GUER)","LIB Lennard: NKVD (Side: EAST)","LIB AWAR: Panzerwaffe (Side: WEST)","LIB AWAR & Lennard: [Winter] Panzerwaffe (Side: WEST)","LIB AWAR: RAAF (Side: GUER)","LIB AWAR: RAF (Side: GUER)","LIB AWAR & Lennard: RBAF (Side: WEST)","LIB AWAR: Red Army (Side: EAST)","LIB AWAR & Lennard: [Winter] Red Army (Side: EAST)","LIB LODU: US Army Air Forces (Side: GUER)","LIB AWAR: [Winter] US Airforce (Side: GUER)","LIB AWAR: US Army (Side: GUER)","LIB LODU: [Winter] US Army (Side: GUER)","LIB Lennard: US 2nd Ranger Battalion (Side: GUER)","LIB I44: US Tank Troops (Side: GUER)","LIB AWAR & Lennard: [Winter] US Tank Troops (Side: GUER)","LIB AWAR: USSR Airforce (Side: EAST)","LIB AWAR & Lennard: [Winter] USSR Airforce (Side: EAST)","LIB AWAR: Tank troops of USSR (Side: EAST)","LIB AWAR & Lennard: [Winter] Tank troops of USSR (Side: EAST)","LIB AWAR: Wehrmacht (Side: WEST)","LIB AWAR & Lennard: [Winter] Wehrmacht (Side: WEST)","LM Burgess: UNSCMC (Urban) (Side: WEST)","LM Burgess: UNSCMC (Desert) (Side: WEST)","LM Burgess: ONI Security (Side: WEST)","LM Burgess: UNSCMC (Snow) (Side: WEST)","LM Burgess: UNSCMC (Wood) (Side: WEST)","LM Burgess: OPCANTest (Side: WEST)","LOP Project OPFOR: Boko Haram (Side: EAST)","LOP Project OPFOR: Irish Republican Army (Side: EAST)","LOP Project OPFOR: Ulster Volunteer Force (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Afghan National Army and Police (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: African Militia (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: African Militia (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Chernarussian Defence Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: ChDKZ (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Iraqi Armed Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: Iranian Armed Forces (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Chernarussian National Insurgents (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Private Military Company (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Royal Army Corps of Sahrani (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Sahrani Liberation Army (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Takistani Armed Forces (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Ultranationalists (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Ukraine's Armed Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: United Nations (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: United Armed Forces of Novorossiya (Side: EAST)","MOL HcPookie: Molatian Army (Side: EAST)","OPTRE Article 2 Studios: Insurrectionists (Side: EAST)","OPTRE Burgess: OPCAN (Side: WEST)","OPTRE Burgess: OPCAN (UEG Colonial Guard) (Side: WEST)","OPTRE Burgess: Colonial Militia (OPCAN) (Side: GUER)","OPTRE Burgess: OPCAN (PMC) (Side: GUER)","OPTRE Burgess: Halo Wars Rebels (OPCAN) (Side: EAST)","OPTRE Burgess: Common Criminals (OPCAN) (Side: EAST)","OPTRE Burgess: OPCAN (UNSC Army) (Side: WEST)","OPTRE Burgess: United Rebel Air Force(OPCAN) (Side: EAST)","OPTRE Burgess: United Rebel Army Desert(OPCAN) (Side: EAST)","OPTRE Burgess: United Rebel Army BattleJumpers (OPCAN) (Side: EAST)","OPTRE Burgess: United Rebel Army Tropic(OPCAN) (Side: EAST)","OPTRE Bohemia Interactive: United Rebel Army Ground Vehicles (OPCAN) (Side: EAST)","OPTRE Burgess: United Rebel Army Wood(OPCAN) (Side: EAST)","OPTRE Burgess: OPCAN (WARZONE BLUE) (Side: WEST)","OPTRE Burgess: OPCAN (WARZONE RED) (Side: EAST)","OPTRE Article 2 Studios: UNSCDF (Side: WEST)","RHS_AFRF Bohemia Interactive: [ISC] al-Nusra Front (Side: GUER)","RHS_AFRF Bohemia Interactive: [ISC] Iraqi Army (Side: WEST)","RHS_AFRF Bohemia Interactive: [ISC] Islamic State (Side: GUER)","RHS_AFRF Bohemia Interactive: [ISC] Islamic State (Side: EAST)","RHS_AFRF Bohemia Interactive: [ISC] Peshmerga (Side: WEST)","RHS_AFRF Bohemia Interactive: [ISC] Syrian Arab Army (Side: EAST)","RHS_AFRF Red Hammer Studios: Eastern Militia (Side: GUER)","RHS_AFRF Red Hammer Studios: Russia (MSV) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (RVA) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (TV) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VDV) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VMF) (Side: EAST)","RHS_AFRF RHS: Russia (VPVO) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VV) (Side: EAST)","RHS_AFRF Bohemia Interactive: Russia (VVS - Grey) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VVS - Camo) (Side: EAST)","RHS_GREF Red Hammer Studios: Chernarus (Air Force) (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (Air Force) (Side: WEST)","RHS_GREF RHS (A2 port): Chernarus (Ground Forces) (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (Ground Forces) (Side: WEST)","RHS_GREF Red Hammer Studios: Chernarus (National Guard) (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (National Guard) (Side: WEST)","RHS_GREF Red Hammer Studios: ChDKZ Insurgents (Side: EAST)","RHS_GREF Red Hammer Studios: ChDKZ Insurgents (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (U.N. Peacekeepers) (Side: GUER)","RHS_SAF Red Hammer Studios: SAF (RVIPVO) (Side: GUER)","RHS_SAF Red Hammer Studios: SAF (KOV) (Side: GUER)","RHS_SAF Red Hammer Studios: SAF (UN Peacekeepers) (Side: GUER)","RHS_USAF Red Hammer Studios: USA (SOCOM) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (USAF) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (Army - D) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (Army - W) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (USMC - D) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (USMC - W) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (Navy) (Side: WEST)","RHSGREF Red Hammer Studios: Nationalist Troops (Side: GUER)","SG Stagler: Sturmtroopers (Side: WEST)","SG Stagler: [Winter] Sturmtroopers (Side: WEST)","SG Stagler: Tank Sturmtroopers (Side: WEST)","UNSC Morthon: UNSCMC (Side: WEST)","UNSUNG Bohemia Interactive: Australia (UNSUNG) (Side: GUER)","UNSUNG Razorback: N.V.A. (UNSUNG) (Side: EAST)","UNSUNG Bohemia Interactive: V.C. (UNSUNG) (Side: EAST)","UNSUNG Bohemia Interactive: A.R.V.N. (UNSUNG) (Side: GUER)","UNSUNG Bohemia Interactive: New Zealand (UNSUNG) (Side: GUER)","UNSUNG Bohemia Interactive: U.S. (UNSUNG) (Side: WEST)","USML segen: Armed Islamic Front (Side: GUER)"}; + default = 5; }; class btc_p_civ { //paramsArray[7] title = " Civil type:"; - values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14}; - texts[]={" EricJ: Afghan Civilians (Side: CIV)"," Bohemia Interactive: Civilians (Side: CIV)","btc_militia_mod Giallustio: Afghan Civilians (Side: CIV)","CAF CAF MOD TEAM: African (Side: CIV)","CAF CAF MOD TEAM: Middle Eastern (Side: CIV)","CUP Bohemia Interactive: Civilians (Chenarus) (Side: CIV)","CUP_Units Community Upgrade Project: Civilians (Russian) (Side: CIV)","CUP_Vehicles Community Upgrade Project: Civilians (Takistan) (Side: CIV)","LIB Reyhard & Joarius: 40s Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: African Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Eastern European Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Civilians (Side: CIV)","OPTRE Article 2 Studios: Civilians (UEG) (Side: CIV)","RDS_CIV_PACK reyhard: Russians (Side: CIV)","UNSUNG Bohemia Interactive: Vietnamese (UNSUNG) (Side: CIV)"}; + values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; + texts[]={" EricJ: Afghan Civilians (Side: CIV)"," Bohemia Interactive: Civilians (Side: CIV)","btc_militia_mod Giallustio: Afghan Civilians (Side: CIV)","CAF CAF MOD TEAM: African (Side: CIV)","CAF CAF MOD TEAM: Middle Eastern (Side: CIV)","CUP_Units Community Upgrade Project: Civilians (Russian) (Side: CIV)","CUP_Vehicles Bohemia Interactive: Civilians (Chenarus) (Side: CIV)","CUP_Vehicles Bohemia Interactive: Civilians (Sahrani) (Side: CIV)","CUP_Vehicles Community Upgrade Project: Civilians (Takistan) (Side: CIV)","LIB Reyhard & Joarius: 40s Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: African Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Eastern European Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Civilians (Side: CIV)","OPTRE Bohemia Interactive: Civilians (UEG) (Side: CIV)","RDS_CIV_PACK reyhard: Russians (Side: CIV)","UNSUNG Bohemia Interactive: Vietnamese (UNSUNG) (Side: CIV)"}; default = 1; }; class btc_p_civ_veh { //paramsArray[8] title = " Civil vehicle type:"; - values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14}; - texts[]={" EricJ: Afghan Civilians (Side: CIV)"," Bohemia Interactive: Civilians (Side: CIV)","btc_militia_mod Giallustio: Afghan Civilians (Side: CIV)","CAF CAF MOD TEAM: African (Side: CIV)","CAF CAF MOD TEAM: Middle Eastern (Side: CIV)","CUP Bohemia Interactive: Civilians (Chenarus) (Side: CIV)","CUP_Units Community Upgrade Project: Civilians (Russian) (Side: CIV)","CUP_Vehicles Community Upgrade Project: Civilians (Takistan) (Side: CIV)","LIB Reyhard & Joarius: 40s Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: African Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Eastern European Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Civilians (Side: CIV)","OPTRE Article 2 Studios: Civilians (UEG) (Side: CIV)","RDS_CIV_PACK reyhard: Russians (Side: CIV)","UNSUNG Bohemia Interactive: Vietnamese (UNSUNG) (Side: CIV)"}; + values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; + texts[]={" EricJ: Afghan Civilians (Side: CIV)"," Bohemia Interactive: Civilians (Side: CIV)","btc_militia_mod Giallustio: Afghan Civilians (Side: CIV)","CAF CAF MOD TEAM: African (Side: CIV)","CAF CAF MOD TEAM: Middle Eastern (Side: CIV)","CUP_Units Community Upgrade Project: Civilians (Russian) (Side: CIV)","CUP_Vehicles Bohemia Interactive: Civilians (Chenarus) (Side: CIV)","CUP_Vehicles Bohemia Interactive: Civilians (Sahrani) (Side: CIV)","CUP_Vehicles Community Upgrade Project: Civilians (Takistan) (Side: CIV)","LIB Reyhard & Joarius: 40s Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: African Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Eastern European Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Civilians (Side: CIV)","OPTRE Bohemia Interactive: Civilians (UEG) (Side: CIV)","RDS_CIV_PACK reyhard: Russians (Side: CIV)","UNSUNG Bohemia Interactive: Vietnamese (UNSUNG) (Side: CIV)"}; default = 1; }; class btc_p_IED_title { From ea2728470e602eb1f7a0e55d2bc2e192d296c239 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 11 May 2017 22:52:21 +0200 Subject: [PATCH 082/120] Merge remote-tracking branch 'refs/remotes/origin/master_daily' into Add-accurate_damage_save # Conflicts: # =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf --- .../core/def/mission.sqf | 20 ++-- .../core/doc.sqf | 2 +- .../core/fnc/city/activate.sqf | 2 +- .../core/fnc/civ/traffic_eh.sqf | 6 +- .../core/fnc/common/delete.sqf | 39 +++++++ .../core/fnc/compile.sqf | 2 + .../core/fnc/db/load.sqf | 108 +++++++++--------- .../core/fnc/fob/redeploy.sqf | 4 +- .../core/fnc/ied/allahu_akbar.sqf | 15 ++- .../core/fnc/ied/check.sqf | 74 ++++++------ .../core/fnc/ied/create.sqf | 2 +- .../core/fnc/ied/fired_near.sqf | 68 +++++------ .../core/fnc/ied/suicider_active.sqf | 39 +++---- .../core/fnc/ied/suicider_create.sqf | 23 ++-- .../core/fnc/info/ask_reputation.sqf | 15 ++- .../core/fnc/int/action_result.sqf | 11 +- .../core/fnc/int/ask_var.sqf | 1 + .../core/fnc/log/can_tow.sqf | 3 +- .../core/fnc/log/create.sqf | 2 +- .../core/fnc/log/createVehicle.sqf | 4 +- .../core/fnc/log/hook.sqf | 11 +- .../core/fnc/log/place_create_camera.sqf | 25 ++-- .../core/fnc/log/place_destroy_camera.sqf | 4 +- .../core/fnc/mil/patrol_eh.sqf | 7 +- .../core/fnc/rep/killed.sqf | 5 +- .../core/fnc/side/capture_officer.sqf | 25 +--- .../core/fnc/side/checkpoint.sqf | 24 +--- .../core/fnc/side/civtreatment.sqf | 14 +-- .../core/fnc/side/civtreatment_boat.sqf | 17 +-- .../core/fnc/side/convoy.sqf | 20 +--- .../core/fnc/side/create.sqf | 1 + .../core/fnc/side/get_city.sqf | 6 +- .../core/fnc/side/hack.sqf | 95 +++++++++++++++ .../core/fnc/side/hostage.sqf | 15 +-- .../core/fnc/side/mines.sqf | 8 +- .../core/fnc/side/rescue.sqf | 17 +-- .../core/fnc/side/supply.sqf | 17 +-- .../core/fnc/side/tower.sqf | 21 +--- .../core/fnc/side/underwater_generator.sqf | 21 +--- .../core/fnc/side/vehicle.sqf | 16 +-- .../core/fnc/task/create.sqf | 5 + .../core/fnc/task/fail.sqf | 4 + .../core/fnc/task/set_done.sqf | 3 + 43 files changed, 422 insertions(+), 399 deletions(-) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/delete.sqf create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hack.sqf 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 51d6a7fd5..fbf937f98 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 @@ -141,7 +141,7 @@ if (isServer) then { 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]} else {[0,1,2,3,4,5,6,9,10,11,12]}; + 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"]; @@ -399,17 +399,17 @@ btc_log_def_rc = ]; btc_fnc_log_get_nottowable = { - //Return array of objects not towable by "car". - _tower = _this select 0; + private _tower = _this select 0; switch (true) do { - case (_tower isKindOf "Tank") : {_array = ["Plane","Helicopter"];}; - case (_tower isKindOf "Truck_F") : {_array = ["Plane","Helicopter"];}; - case (_tower isKindOf "Truck") : {_array = ["Plane","Helicopter"];}; - case (_tower isKindOf "Ship") : {_array = ["Car","Truck","Truck_F","Tank","Plane","Helicopter"];}; - case (_tower isKindOf "Car") : {_array = ["Truck","Truck_F","Tank","Plane","Helicopter"];}; - default {_array = ["Car","Truck","Truck_F","Tank","Plane","Helicopter","Ship"];}; + //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"];}; }; - _array }; //Lift 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 c3e103743..73eb62c6e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/doc.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/doc.sqf @@ -69,7 +69,7 @@ Every vehicle has a 'CARGO CAPACITY' (CC in game), and every object has a 'REQUI You can check those values in game with 'LOAD IN' and 'CHECK CARGO' options.


Towing system:
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, the option will be disabled.
+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'.

Place option:
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 8729b14d6..8091186ca 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 @@ -160,7 +160,7 @@ if (count _ieds > 0) then { _ieds_data = []; {private ["_ied"];_ied = _x call btc_fnc_ied_create;_ieds_data pushBack _ied;} foreach _ieds; _city = btc_city_all select (_this select 0); - [_city,_ieds_data] spawn btc_fnc_ied_check; + [_city,_ieds_data] call btc_fnc_ied_check; }; //Suicider 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 eca32473e..068251a38 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 @@ -9,8 +9,4 @@ if (btc_debug_log) then { _veh call btc_fnc_civ_traffic_eh_remove; -[_veh,(_veh getVariable ["driver",grpNull])] spawn { - waitUntil {sleep 5; ({_x distance (_this select 0) < 600} count playableUnits == 0)}; - {deleteVehicle _x;} foreach ([_this select 0] + units (_this select 1)); - deleteGroup (_this select 1); -}; \ No newline at end of file +[[], [_veh], [], [(_veh getVariable ["driver",grpNull])]] call btc_fnc_delete; \ No newline at end of file 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 new file mode 100644 index 000000000..e97fe8a8c --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/delete.sqf @@ -0,0 +1,39 @@ +// [marker array], [object array],[fx object array (test_EmptyObjectForSmoke)] , [group array] + +{ + deletemarker _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; +} 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; +} 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 diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index b5ea269fc..f3371334a 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -25,6 +25,7 @@ if (isServer) then { btc_fnc_set_groupowner = compile preprocessFile "core\fnc\common\set_groupowner.sqf"; btc_fnc_find_closecity = compile preprocessFile "core\fnc\common\find_closecity.sqf"; btc_fnc_deletegroup = compile preprocessFile "core\fnc\common\deletegroup.sqf"; + btc_fnc_delete = compile preprocessFile "core\fnc\common\delete.sqf"; //CITY btc_fnc_city_activate = compile preprocessFile "core\fnc\city\activate.sqf"; @@ -128,6 +129,7 @@ if (isServer) then { btc_fnc_side_rescue = compile preprocessFileLineNumbers "core\fnc\side\rescue.sqf"; btc_fnc_side_capture_officer = compile preprocessFileLineNumbers "core\fnc\side\capture_officer.sqf"; btc_fnc_side_hostage = compile preprocessFileLineNumbers "core\fnc\side\hostage.sqf"; + btc_fnc_side_hack = compile preprocessFileLineNumbers "core\fnc\side\hack.sqf"; //LOG btc_fnc_log_CuratorObjectPlaced_s = compile preprocessFile "core\fnc\log\CuratorObjectPlaced_s.sqf"; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index c6bc454ee..65eb427d9 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -196,65 +196,67 @@ diag_log format ["4: %1",(_x select 4)]; diag_log format ["5: %1",(_x select 5)]; {diag_log format ["5: %1",_x];} foreach (_x select 5)} foreach _vehs; */ -{ - private ["_veh","_cont","_weap","_mags","_items"]; - _veh = [(_x select 0),(_x select 1),(_x select 2)] call btc_fnc_log_createVehicle; - if ((getPos _veh) select 2 < 0) then {_veh setVectorUp surfaceNormal position _veh;}; - _veh setFuel (_x select 3); - { - [_veh, _foreachindex, _x] call ace_repair_fnc_setHitPointDamage; - } forEach ((_x select 4) select 2); +[{ + private _vehs = _this; { - private ["_type","_cargo_obj","_obj","_weap_obj","_mags_obj","_items_obj"]; - //{_cargo pushBack [(typeOf _x),[getWeaponCargo _x,getMagazineCargo _x,getItemCargo _x]]} foreach (_x getVariable ["cargo",[]]); - _type = _x select 0; - _cargo_obj = _x select 2; - _obj = _type createVehicle [0,0,0]; - if ((_x select 1) != "") then {_obj setVariable ["ace_rearm_magazineClass",(_x select 1),true]}; - btc_log_obj_created pushBack _obj; - btc_curator addCuratorEditableObjects [[_obj], false]; - clearWeaponCargoGlobal _obj;clearItemCargoGlobal _obj;clearMagazineCargoGlobal _obj; - _weap_obj = _cargo_obj select 0; - if (count _weap_obj > 0) then { - for "_i" from 0 to ((count (_weap_obj select 0)) - 1) do { - _obj addWeaponCargoGlobal[((_weap_obj select 0) select _i),((_weap_obj select 1) select _i)]; + private ["_veh","_cont","_weap","_mags","_items"]; + _veh = [(_x select 0),(_x select 1),(_x select 2)] call btc_fnc_log_createVehicle; + if ((getPos _veh) select 2 < 0) then {_veh setVectorUp surfaceNormal position _veh;}; + _veh setFuel (_x select 3); + { + [_veh, _foreachindex, _x] call ace_repair_fnc_setHitPointDamage; + } forEach ((_x select 4) select 2); + { + private ["_type","_cargo_obj","_obj","_weap_obj","_mags_obj","_items_obj"]; + _type = _x select 0; + _cargo_obj = _x select 2; + _obj = _type createVehicle [0,0,0]; + if ((_x select 1) != "") then {_obj setVariable ["ace_rearm_magazineClass",(_x select 1),true]}; + btc_log_obj_created pushBack _obj; + btc_curator addCuratorEditableObjects [[_obj], false]; + clearWeaponCargoGlobal _obj;clearItemCargoGlobal _obj;clearMagazineCargoGlobal _obj; + _weap_obj = _cargo_obj select 0; + if (count _weap_obj > 0) then { + for "_i" from 0 to ((count (_weap_obj select 0)) - 1) do { + _obj addWeaponCargoGlobal[((_weap_obj select 0) select _i),((_weap_obj select 1) select _i)]; + }; }; - }; - _mags_obj = _cargo_obj select 1; - if (count _mags_obj > 0) then { - for "_i" from 0 to ((count (_mags_obj select 0)) - 1) do { - _obj addMagazineCargoGlobal[((_mags_obj select 0) select _i),((_mags_obj select 1) select _i)]; + _mags_obj = _cargo_obj select 1; + if (count _mags_obj > 0) then { + for "_i" from 0 to ((count (_mags_obj select 0)) - 1) do { + _obj addMagazineCargoGlobal[((_mags_obj select 0) select _i),((_mags_obj select 1) select _i)]; + }; }; - }; - _items_obj = _cargo_obj select 2; - if (count _items_obj > 0) then { - for "_i" from 0 to ((count (_items_obj select 0)) - 1) do { - _obj addItemCargoGlobal[((_items_obj select 0) select _i),((_items_obj select 1) select _i)]; + _items_obj = _cargo_obj select 2; + if (count _items_obj > 0) then { + for "_i" from 0 to ((count (_items_obj select 0)) - 1) do { + _obj addItemCargoGlobal[((_items_obj select 0) select _i),((_items_obj select 1) select _i)]; + }; + }; + [_obj,_veh] call btc_fnc_log_server_load; + } foreach (_x select 5); + _cont = (_x select 6); + clearWeaponCargoGlobal _veh;clearItemCargoGlobal _veh;clearMagazineCargoGlobal _veh; + _weap = _cont select 0; + if (count _weap > 0) then { + for "_i" from 0 to ((count (_weap select 0)) - 1) do { + _veh addWeaponCargoGlobal[((_weap select 0) select _i),((_weap select 1) select _i)]; }; }; - [_obj,_veh] call btc_fnc_log_server_load; - } foreach (_x select 5); - _cont = (_x select 6); - clearWeaponCargoGlobal _veh;clearItemCargoGlobal _veh;clearMagazineCargoGlobal _veh; - _weap = _cont select 0; - if (count _weap > 0) then { - for "_i" from 0 to ((count (_weap select 0)) - 1) do { - _veh addWeaponCargoGlobal[((_weap select 0) select _i),((_weap select 1) select _i)]; - }; - }; - _mags = _cont select 1; - if (count _mags > 0) then { - for "_i" from 0 to ((count (_mags select 0)) - 1) do { - _veh addMagazineCargoGlobal[((_mags select 0) select _i),((_mags select 1) select _i)]; + _mags = _cont select 1; + if (count _mags > 0) then { + for "_i" from 0 to ((count (_mags select 0)) - 1) do { + _veh addMagazineCargoGlobal[((_mags select 0) select _i),((_mags select 1) select _i)]; + }; }; - }; - _items = _cont select 2; - if (count _items > 0) then { - for "_i" from 0 to ((count (_items select 0)) - 1) do { - _veh addItemCargoGlobal[((_items select 0) select _i),((_items select 1) select _i)]; + _items = _cont select 2; + if (count _items > 0) then { + for "_i" from 0 to ((count (_items select 0)) - 1) do { + _veh addItemCargoGlobal[((_items select 0) select _i),((_items select 1) select _i)]; + }; }; - }; -} foreach _vehs; + } foreach _vehs; +}, _vehs, 0.5] call CBA_fnc_waitAndExecute; //Objs /* @@ -335,4 +337,4 @@ _objs = profileNamespace getVariable [format ["btc_hm_%1_objs",_name],[]]; _obj addItemCargoGlobal[((_items select 0) select _i),((_items select 1) select _i)]; }; }; -} foreach _objs; +} foreach _objs; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/redeploy.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/redeploy.sqf index bb0ef66ee..ed821b7b2 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/redeploy.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/fob/redeploy.sqf @@ -48,13 +48,13 @@ forceMap false; closeDialog 0; -_pos = getMarkerPos _marker; +_pos = ((_fobs select 1) select ((_fobs select 0) find _marker)) buildingPos -1; _text = format ["Moving to %1",_fob]; titleText [_text, "BLACK OUT"]; sleep 3; titleText [_text, "BLACK FADED"]; -player setPosATL [_pos select 0,_pos select 1,0.45]; +player setPosATL selectRandom (_pos select [0, [count _pos,4] select (count _pos >= 4)]); sleep 2; titleText ["", "BLACK IN"]; \ 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 a8022f596..37139c038 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 @@ -8,9 +8,12 @@ _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]; }; -sleep 1.4; -if (Alive _suicider && [_suicider] call ace_common_fnc_isAwake) then { - {deleteVehicle _x;} forEach attachedObjects _suicider; - "Bo_GBU12_LGB_MI10" createVehicle getPos _suicider; - [getPos _suicider] call btc_fnc_deaf_earringing; -}; \ No newline at end of file + +[{ + params ["_suicider"]; + if (Alive _suicider && [_suicider] call ace_common_fnc_isAwake) then { + {deleteVehicle _x;} forEach attachedObjects _suicider; + "Bo_GBU12_LGB_MI10" createVehicle getPos _suicider; + [getPos _suicider] 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/check.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/check.sqf index ba0bd6189..be26783ff 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 @@ -1,42 +1,42 @@ -private ["_city","_ieds","_ieds_check","_data"]; - -_city = _this select 0; -_ieds = _this select 1; +private _city = _this select 0; +private _ieds = _this select 1; if (btc_debug) then {systemChat format ["START IED CHECK CITY ID %1",_city getVariable "id"];}; if (btc_debug_log) then {diag_log format ["START IED CHECK CITY ID %1",_city getVariable "id"];}; -_ieds_check = (+ _ieds) select {!((_x select 2) isEqualTo objNull)}; - -while {_city getVariable ["active", false]} do { - { - private ["_ied","_wreck"]; - _wreck = _x select 0; - _ied = _x select 2; - if (!isNull _ied && {Alive _ied}) then { - _list = _ied nearEntities ["allvehicles", 10]; - { - if (side _x == btc_player_side && {(speed _x > 5 || vehicle _x != _x)}) then {[_wreck,_ied] spawn btc_fnc_ied_boom;}; - } foreach _list; - } else { - _ieds_check = _ieds_check - [_ied]; - }; - } foreach _ieds_check; - sleep 1; -}; - -_data = []; - -{ - private "_wreck"; - _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"];}; \ No newline at end of file +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"];}; + }; +} , 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 10841d41d..63f8f152c 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 @@ -15,7 +15,7 @@ _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] spawn btc_fnc_ied_fired_near; + [_wreck,_ied] call btc_fnc_ied_fired_near; } else { _ied = objNull; }; 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 fa70832a2..1b7007e95 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 @@ -1,5 +1,5 @@ -private ["_pos","_range","_bomb","_bomb_check","_array","_list","_ied","_explosive","_caliber","_wreck"]; +private ["_pos","_range","_array","_ied","_wreck"]; _wreck = _this select 0; _ied = _this select 1; @@ -7,43 +7,37 @@ _pos = getPos _ied; _pos = [_pos select 0, _pos select 1, (_pos select 2) + 0.5]; _range = 2; -_bomb_check = -{ - _ied = _this select 0; - _bomb = _this select 1; - _wreck = _this select 2; - _bomb setVariable ["bullet_check",true]; - waitUntil {!Alive _bomb}; - if (Alive _ied) then {[_wreck,_ied] spawn btc_fnc_ied_boom;}; -}; - _array = []; - -while {alive _ied && !isNull _ied} do -{ - _list = _pos nearObjects ["Default",_range]; - if (count _list > 0) then - { - { - private ["_bullet","_b"]; - _b = _x; - _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 +[{ + 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 { { - if !(_b in _array) then - { - _array pushBack _b; - [_ied,_b,_wreck] spawn _bomb_check; + 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; + }; + }; }; - } - else - { - _explosive = (getNumber(configFile >> "cfgAmmo" >> _bullet >> "explosive") > 0); - _caliber = getNumber(configFile >> "CfgAmmo" >> _bullet >> "caliber"); - if (_explosive || _caliber > 1.6) then {if (Alive _ied) then {[_wreck,_ied] spawn btc_fnc_ied_boom;};}; - }; - } foreach _list; + } foreach _list; + }; + } else { + [_id] call CBA_fnc_removePerFrameHandler; }; - sleep 0.01; -}; \ No newline at end of file +} , 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/suicider_active.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/ied/suicider_active.sqf index 4a1dd7fcb..3f4fa5765 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 @@ -1,5 +1,5 @@ -private ["_trigger","_array","_expl1","_expl2","_expl3","_man","_cond"]; +private ["_trigger","_array","_expl1","_expl2","_expl3"]; [_this] joinSilent createGroup [btc_enemy_side, true]; @@ -10,14 +10,14 @@ while {(count (waypoints group _this)) > 0} do { deleteWaypoint ((waypoints grou _trigger = createTrigger["EmptyDetector",getPos _this]; _trigger setTriggerArea[5,5,0,false]; _trigger setTriggerActivation[str(btc_player_side),"PRESENT",false]; -_trigger setTriggerStatements["this", "thisTrigger spawn btc_fnc_ied_allahu_akbar;", ""]; +_trigger setTriggerStatements["this", "thisTrigger call btc_fnc_ied_allahu_akbar;", ""]; _trigger setVariable ["suicider",_this]; _trigger attachTo [_this,[0,0,0]]; _array = getpos _this nearEntities ["SoldierWB", 30]; -if (count _array == 0) exitWith {}; +if (_array isEqualTo []) exitWith {}; _expl1 = "DemoCharge_Remote_Ammo" createVehicle (position _this); _expl1 attachTo [_this, [-0.1,0.1,0.15],"Pelvis"]; @@ -32,27 +32,24 @@ _expl3 attachTo [_this, [0.1,0.1,0.15],"Pelvis"]; (_this select 2) setVectorDirAndUp [[0.5,-0.5,0],[0.5,0.5,0]]; }] remoteExec ["call", 0, false]; -_man = _array select 0; - -_cond = true; (group _this) setBehaviour "CARELESS"; (group _this) setSpeedMode "FULL"; if (btc_debug_log) then {diag_log format ["btc_fnc_ied_suicider_active: _this = %1; POS %2 START LOOP",_this,getpos _this];}; -while {Alive _this && _cond} do { - _this doMove (position _man);//hint format ["MOVING %1",_man]; - //_trigger setPos getPos _this; - if (!Alive _man || _man distance _this > 30) then - { - private ["_array"]; - _array = getpos _this nearEntities ["SoldierWB", 30]; - if (count _array == 0) then {_cond = false;} else {_man = _array select 0;}; +[{ + 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];}; }; - sleep 0.5; -}; -if (btc_debug_log) then {diag_log format ["btc_fnc_ied_suicider_active: _this = %1; POS %2 END LOOP",_this,getpos _this];}; - -sleep 3; - -if (Alive _this) then {group _this setVariable ["suicider",true];deleteVehicle _trigger;}; \ No newline at end of file +} , 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 ff5f41d38..f85dd24ac 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,5 +1,5 @@ -private ["_city","_area","_rpos","_unit_type","_group","_suicider","_cond"]; +private ["_city","_area","_rpos","_unit_type","_group","_suicider"]; _city = _this select 0; _area = _this select 1; @@ -34,13 +34,16 @@ _suicider = leader _group; _suicider call btc_fnc_civ_unit_create; //Main check -_suicider spawn -{ - _cond = false; - - while {Alive _this && !isNull _this && !_cond} do - { - sleep 5; - if (count (getpos _this nearEntities ["SoldierWB", 25]) > 0) then {_cond = true;_this spawn btc_fnc_ied_suicider_active}; +[{ + 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; }; -}; \ No newline at end of file +} , 5, [_suicider]] call CBA_fnc_addPerFrameHandler; \ No newline at end of file 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 3cdf1145c..d5f9c9cd7 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,6 +1,6 @@ if (isNil {player getVariable "interpreter"}) exitWith {hint "I can't understand what is saying";}; -private ["_man","_rep","_chance","_info","_info_type","_random","_text"]; +private ["_man","_rep","_chance","_info","_info_type","_random","_text","_ho_left"]; _man = _this select 0; @@ -11,6 +11,17 @@ waitUntil {!(isNil "btc_int_ask_data")}; _rep = btc_int_ask_data; +if ((round random 1) isEqualTo 1) then { + btc_int_ask_data = nil; + [8,nil,player] remoteExec ["btc_fnc_int_ask_var", 2]; + + waitUntil {!(isNil "btc_int_ask_data")}; + + _ho_left = format ["I heard about %1 hideouts left.", btc_int_ask_data]; +} else { + _ho_left = ""; +}; + switch (true) do { case (_rep < 200) : {_info_type = "very low";}; case (_rep >= 200 && _rep < 500) : {_info_type = "low";}; @@ -25,4 +36,4 @@ switch (true) do { case (_chance >= 60) : {_text = format ["I am %1 and I think your reputation is", name _man];}; }; -hint format ["%1 %2.", _text, _info_type]; \ No newline at end of file +hint format ["%1 %2. %3", _text, _info_type, _ho_left]; \ No newline at end of file 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 9c45d35a4..22e76f38e 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,14 +1,13 @@ btc_int_action_result = nil; _this spawn { - private ["_time","_title","_target","_pos","_radius","_ctrlProgressBar","_ctrlProgressBarTitle"]; + private ["_time","_title","_target","_radius","_ctrlProgressBar","_ctrlProgressBarTitle"]; _time = _this select 0; _title = _this select 1; _target = _this select 2; - _pos = getPosATL _target; - _radius = 3; - if (_target isKindOf "Man") then {_radius = 1;}; - if (_target isKindOf "Helicopter") then {_radius = 10;}; + _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"; @@ -26,7 +25,7 @@ _this spawn { _time = time + _time; waitUntil { - !dialog || {!alive player} || {player getVariable ["ACE_isUnconscious",false]} || {time > _time} || {_target distance _pos > _radius} + !dialog || {!alive player} || {player getVariable ["ACE_isUnconscious",false]} || {time > _time} || {_target distance player > _radius} }; closeDialog 0; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/ask_var.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/ask_var.sqf index e349c9dce..d7760c11c 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/ask_var.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/ask_var.sqf @@ -20,6 +20,7 @@ switch (_id) do { case 5 : {_data = btc_side_jip_data;}; case 6 : {_data = btc_fobs;}; case 7 : {_data = btc_construction_array;}; + case 8 : {_data = count btc_hideouts;}; }; [_data] remoteExec ["btc_fnc_int_ans_var", _asker, false]; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/can_tow.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/can_tow.sqf index ceddce8e6..d4a2e3ce5 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/can_tow.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/can_tow.sqf @@ -1,8 +1,9 @@ private ["_tower","_towed","_array","_can_tow","_pos_towed","_pos_tower"]; +// _tower ----rope--- (hook)_towed _tower = _this select 0; -_towed = _this select 1; +_towed = _this select 1;//btc_log_vehicle_selected _array = [_tower] call btc_fnc_log_get_nottowable; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create.sqf index 79b998335..e8d22b779 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create.sqf @@ -5,7 +5,7 @@ closeDialog 0; btc_log_create_obj = _this select 0; -if (count (nearestObjects [getpos btc_log_create_obj,["All"],5]) > 1) exitWith {hint "Clear the area before create another object!"}; +if ({!((_x isKindOf "Animal") || (_x isKindOf "Module_F"))} count (nearestObjects [getpos btc_log_create_obj,["All"],5]) > 1) exitWith {hint "Clear the area before create another object!"}; disableSerialization; closeDialog 0; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf index 5b580cda2..6347fd6c8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/createVehicle.sqf @@ -4,9 +4,9 @@ private _pos = _this select 1; private _dir = _this select 2; private _textures = if (count _this > 3) then {_this select 3} else {[]}; -_veh = createVehicle [_type, [_pos select 0, _pos select 1, 0], [], 0, "CAN_COLLIDE"]; -_veh setPosASL _pos; +_veh = _type createVehicle [0,0,0]; _veh setDir _dir; +_veh setPosASL _pos; { _veh setObjectTextureGlobal [ _foreachindex, _x ]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/hook.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/hook.sqf index 525a92939..84b2e4607 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/hook.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/hook.sqf @@ -1,4 +1,11 @@ -btc_log_vehicle_selected = _this; +private _towed = _this; -hint "Interact with a vehicle to tow it!"; \ No newline at end of file +btc_log_vehicle_selected = _towed; + +private _string_array = ""; +{ + _string_array = _string_array + ", " + _x; +} forEach (([_towed] call btc_fnc_log_get_nottowable) - ["Truck_F"]); + +hint format ["Interact with a vehicle to tow it! (This vehicle can't tow %1)", _string_array]; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/place_create_camera.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/place_create_camera.sqf index b854ec266..e934dcfee 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/place_create_camera.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/place_create_camera.sqf @@ -1,11 +1,18 @@ -private ["_obj"]; - -_obj = _this select 0; -btc_log_place_camera = "camera" camCreate (position _obj); -btc_log_place_camera camSetTarget _obj; -btc_log_place_camera cameraEffect ["internal", "BACK"]; -btc_log_place_camera camSetPos (_obj modelToWorld [0,-6,15]); -btc_log_place_camera camCommit 0; -showCinemaBorder false; +private _terminal = _this select 0; +private _campos = _this select 1; + +_terminal setObjectTexture [0, "#(argb,512,512,1)r2t(uavrtt,1)"]; + +/* create camera and stream to render surface */ +private _cam = "camera" camCreate _campos; +_cam cameraEffect ["Internal", "Back", "uavrtt"]; + +private _y = -180; private _p = 50; private _r = 0; +_cam setVectorDirAndUp [ + [ sin _y * cos _p,cos _y * cos _p,sin _p], + [ [ sin _r,-sin _p,cos _r * cos _p],-_y] call BIS_fnc_rotateVector2D +]; + +btc_log_place_camera = _cam; btc_log_place_camera_created = true; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/place_destroy_camera.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/place_destroy_camera.sqf index 57e68eb2a..3f9a9b039 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/place_destroy_camera.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/place_destroy_camera.sqf @@ -1,6 +1,6 @@ player cameraEffect ["TERMINATE", "BACK"]; -camDestroy btc_log_place_camera; +camDestroy btc_log_place_camera; btc_log_place_camera = objNull; btc_log_place_camera_cond = false; btc_log_place_camera_created = false; -btc_log_place_camera_nvg = false; +btc_log_place_camera_nvg = false; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/patrol_eh.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/patrol_eh.sqf index 23d133941..1dd723197 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/patrol_eh.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/patrol_eh.sqf @@ -6,9 +6,4 @@ private _veh = _this select 0; if (btc_debug_log) then {hint "traffic eh";diag_log text format ["traffic eh: %1",_veh];}; _veh call btc_fnc_mil_patrol_eh_remove; -[_veh,(_veh getVariable ["crews",grpNull])] spawn { - waitUntil {sleep 5; ({_x distance (_this select 0) < 1000} count playableUnits == 0)}; - {deleteVehicle _x;} foreach ([_this select 0] + units (_this select 1)); - [_this select 1] call btc_fnc_deletegroup; - if (isNull (_this select 0)) exitWith {};//Just to be sure -}; \ No newline at end of file +[[], [_veh], [], [(_veh getVariable ["crews",grpNull])]] call btc_fnc_delete; \ No newline at end of file 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 06bc69cda..f4f70bbdb 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 @@ -10,8 +10,5 @@ if (isPlayer _killer) then { }; if !(isNil {_unit getVariable ["traffic",objNull]}) then { - [getPos _unit,(_unit getVariable ["traffic",objNull])] spawn { - waitUntil {sleep 5; ({_x distance (_this select 0) < 300} count playableUnits == 0)}; - deleteVehicle (_this select 1); - }; + [[], [_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/side/capture_officer.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/capture_officer.sqf index 434f733dc..68b934cea 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 @@ -108,22 +108,14 @@ _trigger attachTo [_captive,[0,0,0]]; waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || !(Alive _captive) || (_captive distance getpos btc_create_object_point < 100))}; -{deletemarker _x} foreach _markers; - +btc_side_assigned = false;publicVariable "btc_side_assigned"; if (btc_side_aborted || !(Alive _captive)) exitWith { {14 call btc_fnc_task_fail} remoteExec ["call", 0]; - btc_side_assigned = false;publicVariable "btc_side_assigned"; - [_vehs + [_trigger],_group] spawn { - waitUntil {sleep 5; ({_x distance ((_this select 0) select 0) < 500} count playableUnits isEqualTo 0)}; - {if (!isNull _x) then {deleteVehicle _x}} foreach units (_this select 1); - {if (!isNull _x) then {deleteVehicle _x}} foreach (_this select 0); - deleteGroup (_this select 1); - }; + [_markers, _vehs + [_trigger], [], [_group]] call btc_fnc_delete; }; if (btc_side_failed) exitWith { [14,"btc_fnc_task_fail",true] spawn BIS_fnc_MP; - btc_side_assigned = false;publicVariable "btc_side_assigned"; deleteVehicle _trigger; _group setVariable ["no_cache",false]; { @@ -137,15 +129,4 @@ if (btc_side_failed) exitWith { {14 call btc_fnc_task_set_done} remoteExec ["call", 0]; -[_vehs + [_trigger],_group] spawn { - waitUntil {sleep 5; ({_x distance ((_this select 0) select 0) < 500} count playableUnits isEqualTo 0)}; - {if (!isNull _x) then {deleteVehicle _x}} foreach ((units (_this select 1)) - leader (_this select 1)); - {if (!isNull _x) then {deleteVehicle _x}} foreach (_this select 0); - deleteGroup (_this select 1); -}; -[_captive] spawn { - waitUntil {sleep 5; ({_x distance (_this select 0) < 500} count playableUnits isEqualTo 0)}; - if (!isNull (_this select 0)) then {deleteVehicle (_this select 0)}; -}; - -btc_side_assigned = false;publicVariable "btc_side_assigned"; \ No newline at end of file +[_markers, _vehs + [_trigger], [], [_group]] call btc_fnc_delete; \ No newline at end of file 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 b1bf3451f..bd8cd47a2 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 @@ -87,28 +87,14 @@ for "_i" from 1 to (1 + round random 2) do { waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || ({Alive _x} count _boxes == 0))}; -{deletemarker _x} foreach _markers; +btc_side_assigned = false;publicVariable "btc_side_assigned"; +[_markers, _boxes, [], []] call btc_fnc_delete; -if (btc_side_aborted || btc_side_failed ) exitWith { +if (btc_side_aborted || btc_side_failed) exitWith { {9 call btc_fnc_task_fail} remoteExec ["call", 0]; - btc_side_assigned = false;publicVariable "btc_side_assigned"; - { - _x spawn { - waitUntil {sleep 5; ({_x distance _this < 300} count playableUnits == 0)}; - deleteVehicle _this; - }; - } forEach _boxes; + }; 80 call btc_fnc_rep_change; -{9 call btc_fnc_task_set_done} remoteExec ["call", 0]; - -{ - _x spawn { - waitUntil {sleep 5; ({_x distance _this < 300} count playableUnits == 0)}; - deleteVehicle _this; - }; -} forEach _boxes; - -btc_side_assigned = false;publicVariable "btc_side_assigned"; \ No newline at end of file +{9 call btc_fnc_task_set_done} remoteExec ["call", 0]; \ No newline at end of file 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 ffe8cd4d1..d03799152 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 @@ -79,23 +79,17 @@ waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || ({_x distance _unit waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || !Alive _unit || {_unit call ace_medical_fnc_isInStableCondition && [_unit] call ace_common_fnc_isAwake})}; -{deletemarker _x} foreach [_marker]; - -[_fx,_unit,_veh] spawn { - waitUntil {sleep 5; ({_x distance (_this select 1) < 300} count playableUnits == 0)}; - (_this select 0) call btc_fnc_deleteTestObj; - {if (!isNull _x) then {deleteVehicle _x}} forEach _this; -}; +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 call btc_fnc_task_fail} remoteExec ["call", 0]; - btc_side_assigned = false;publicVariable "btc_side_assigned"; }; 10 call btc_fnc_rep_change; {8 call btc_fnc_task_set_done} remoteExec ["call", 0]; -_unit setUnitPos "UP"; -btc_side_assigned = false;publicVariable "btc_side_assigned"; \ No newline at end of file + +_unit setUnitPos "UP"; \ No newline at end of file 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 ea786abeb..7c10b3610 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 @@ -49,24 +49,13 @@ waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || ({_x distance _unit waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || !Alive _unit || {_unit call ace_medical_fnc_isInStableCondition && [_unit] call ace_common_fnc_isAwake})}; -{deletemarker _x} foreach [_marker]; +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 call btc_fnc_task_fail} remoteExec ["call", 0]; - btc_side_assigned = false;publicVariable "btc_side_assigned"; - {_x spawn { - waitUntil {sleep 5; ({_x distance _this < 300} count playableUnits == 0)}; - deleteVehicle _this; - };} forEach [_unit,_veh]; }; 10 call btc_fnc_rep_change; -{10 call btc_fnc_task_set_done} remoteExec ["call", 0]; - -{_x spawn { - waitUntil {sleep 5; ({_x distance _this < 300} count playableUnits == 0)}; - deleteVehicle _this; -};} forEach [_unit,_veh]; - -btc_side_assigned = false;publicVariable "btc_side_assigned"; \ No newline at end of file +{10 call btc_fnc_task_set_done} remoteExec ["call", 0]; \ No newline at end of file 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 8d6b64656..7387d49ff 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 @@ -92,22 +92,15 @@ _wp setWaypointStatements ["true", "btc_side_failed = true"]; waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || ({ canMove _x } count _vehs == 0) || (_group isEqualTo grpNull))}; -{deletemarker _x} foreach _markers; +btc_side_assigned = false;publicVariable "btc_side_assigned"; if (btc_side_aborted) exitWith { [12,"btc_fnc_task_fail",true] spawn BIS_fnc_MP; - btc_side_assigned = false;publicVariable "btc_side_assigned"; - [_vehs,_group] spawn { - waitUntil {sleep 5; ({_x distance ((_this select 0) select 0) < 500} count playableUnits isEqualTo 0)}; - {if (!isNull _x) then {deleteVehicle _x}} foreach units (_this select 1); - {if (!isNull _x) then {deleteVehicle _x}} foreach (_this select 0); - deleteGroup (_this select 1); - }; + [_markers, _vehs, [], [_group]] call btc_fnc_delete; }; if (btc_side_failed) exitWith { {12 call btc_fnc_task_fail} remoteExec ["call", 0]; - btc_side_assigned = false;publicVariable "btc_side_assigned"; _group setVariable ["no_cache",false]; { _group = createGroup btc_enemy_side; @@ -120,11 +113,4 @@ if (btc_side_failed) exitWith { {12 call btc_fnc_task_set_done} remoteExec ["call", 0]; -[_vehs,_group] spawn { - waitUntil {sleep 5; ({_x distance ((_this select 0) select 0) < 500} count playableUnits isEqualTo 0)}; - {if (!isNull _x) then {deleteVehicle _x}} foreach units (_this select 1); - {if (!isNull _x) then {deleteVehicle _x}} foreach (_this select 0); - deleteGroup (_this select 1); -}; - -btc_side_assigned = false;publicVariable "btc_side_assigned"; \ No newline at end of file +[_markers, _vehs, [], [_group]] call btc_fnc_delete; \ No newline at end of file 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 e1df78968..6311dc872 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 @@ -33,6 +33,7 @@ switch (_side) do { 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 { 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 5f8612759..0d8310825 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 @@ -21,14 +21,12 @@ _city setVariable ["spawn_more",true]; waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || !(_city getVariable ["occupied",false]))}; +btc_side_assigned = false;publicVariable "btc_side_assigned"; if (btc_side_aborted || btc_side_failed) exitWith { {6 call btc_fnc_task_fail} remoteExec ["call", 0]; - btc_side_assigned = false;publicVariable "btc_side_assigned"; }; 80 call btc_fnc_rep_change; -{6 call btc_fnc_task_set_done} remoteExec ["call", 0]; - -btc_side_assigned = false;publicVariable "btc_side_assigned"; \ No newline at end of file +{6 call btc_fnc_task_set_done} remoteExec ["call", 0]; \ No newline at end of file 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 new file mode 100644 index 000000000..20845a350 --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hack.sqf @@ -0,0 +1,95 @@ +//https://forums.bistudio.com/forums/topic/186316-how-to-open-the-land_dataterminal_01_f-data-terminal-nexus-update/ +//http://killzonekid.com/arma-scripting-tutorials-uav-r2t-and-pip/ +//http://killzonekid.com/arma-scripting-tutorials-scripted-charges/ + +private _useful = btc_city_all select {(_x getVariable ["occupied",false] && {_x getVariable ["type",""] != "NameLocal"} && {_x getVariable ["type",""] != "Hill"} && (_x getVariable ["type",""] != "NameMarine"))}; + +if (_useful isEqualTo []) exitWith {[] spawn btc_fnc_side_create;}; + +private _city = selectRandom _useful; + +private _pos = [getPos _city, 100] call btc_fnc_randomize_pos; +private _house = selectRandom ([_pos,100] call btc_fnc_getHouses); +if (isNil "_house") exitWith {[] spawn btc_fnc_side_create;}; +_pos = selectRandom (_house buildingPos -1); + +btc_side_aborted = false; +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; + +btc_side_jip_data = [16,_pos,_city getVariable "name"]; + +_city setVariable ["spawn_more",true]; + +private _marker = createmarker [format ["sm_2_%1",_pos],_pos]; +_marker setmarkertype "hd_flag"; +_marker setmarkertext "Terminal"; +_marker setMarkerSize [0.6, 0.6]; + +//// Create terminal \\\\ +private _terminal = createVehicle ["Land_DataTerminal_01_F", _pos, [], 0, "CAN_COLLIDE"]; +{btc_side_done = false} remoteExec ["call", 0]; +_pos = [[_pos, 100] call btc_fnc_randomize_pos, 50, 500, 30, 0, 60 * (pi / 180), 0] call BIS_fnc_findSafePos; +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]; + },{!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]; + +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"; +}; + +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 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]; + +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 { + 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 < 400} do { + _altitude = _altitude + 1.5; + (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"]; +_fx attachTo [_rocket,[0,0,0]]; + +{btc_side_done = false} remoteExec ["call", 0]; +if (btc_side_aborted || btc_side_failed || !(_city getVariable ["active", false])) exitWith { + 16 remoteExec ["btc_fnc_task_fail", 0]; + [[_marker], [_rocket, _terminal], [_fx], []] call btc_fnc_delete; + btc_side_assigned = false;publicVariable "btc_side_assigned"; +}; + +80 call btc_fnc_rep_change; + +16 remoteExec ["btc_fnc_task_set_done", 0]; +[[_marker], [_rocket, _terminal], [_fx], []] call btc_fnc_delete; +btc_side_assigned = false;publicVariable "btc_side_assigned"; \ No newline at end of file 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 445b3293c..bfe2c5191 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 @@ -78,22 +78,13 @@ if (!(_captive getVariable ["ace_captives_isHandcuffed", false])) then { deletemarker _marker; _group_civ setVariable ["no_cache",false]; {_x setVariable ["no_cache",false];} foreach _group; +btc_side_assigned = false;publicVariable "btc_side_assigned"; if (btc_side_aborted || btc_side_failed || !(Alive _captive)) exitWith { {15 call btc_fnc_task_fail} remoteExec ["call", 0]; - btc_side_assigned = false;publicVariable "btc_side_assigned"; - [[_captive,_trigger,_mine],_group_civ,_group] spawn { - waitUntil {sleep 5; ({_x distance (_this select 0 select 0) < 500} count playableUnits isEqualTo 0)}; - private ["_unit"]; - _unit = []; - {_unit = _unit + units _x;} forEach (_this select 2); - {if (!isNull _x) then {deleteVehicle _x}} foreach ((_this select 0) + _unit); - {deleteGroup _x} foreach ([_this select 1] + (_this select 2)); - }; + [[], [_trigger,_mine], [], _group + [_group_civ]] call btc_fnc_delete; }; 40 call btc_fnc_rep_change; -{15 call btc_fnc_task_set_done} remoteExec ["call", 0]; - -btc_side_assigned = false;publicVariable "btc_side_assigned"; \ No newline at end of file +{15 call btc_fnc_task_set_done} remoteExec ["call", 0]; \ No newline at end of file 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 0c772ac40..826f2de19 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 @@ -51,16 +51,14 @@ for "_i" from 1 to (round random 2) do { waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || ({!isNull _x} count _mines == 0))}; -{deletemarker _x} foreach [_area,_marker]; - +btc_side_assigned = false;publicVariable "btc_side_assigned"; if (btc_side_aborted || btc_side_failed) exitWith { {4 call btc_fnc_task_fail} remoteExec ["call", 0]; - btc_side_assigned = false;publicVariable "btc_side_assigned"; - {if (!isNull _x) then {deleteVehicle _x}} foreach _mines; + [[_area,_marker], _mines, [], []] call btc_fnc_delete; }; 30 call btc_fnc_rep_change; {4 call btc_fnc_task_set_done} remoteExec ["call", 0]; -btc_side_assigned = false;publicVariable "btc_side_assigned"; \ No newline at end of file +[[_area,_marker], [], [], []] call btc_fnc_delete; \ No newline at end of file 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 80f9690e3..7de1e6743 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 @@ -67,24 +67,13 @@ _triggers = []; 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))}; -[[_fx,_heli] + _triggers,_units,_group] spawn { - waitUntil {sleep 5; ({_x distance ((_this select 1) select 0) < 500} count playableUnits isEqualTo 0)}; - ((_this select 0) select 0) call btc_fnc_deleteTestObj; - {if (!isNull _x) then {deleteVehicle _x}} foreach ((_this select 0) + (_this select 1)); - deleteGroup (_this select 2); -}; +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 call btc_fnc_task_fail} remoteExec ["call", 0]; - btc_side_assigned = false;publicVariable "btc_side_assigned"; }; 50 call btc_fnc_rep_change; -{13 call btc_fnc_task_set_done} remoteExec ["call", 0]; - -{ - deleteVehicle _x; -} foreach _units; - -btc_side_assigned = false;publicVariable "btc_side_assigned"; \ No newline at end of file +{13 call btc_fnc_task_set_done} remoteExec ["call", 0]; \ No newline at end of file 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 64c2b84d9..04fa20861 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 @@ -33,26 +33,15 @@ _marker setMarkerSize [0.6, 0.6]; waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || count (nearestObjects [_pos, [btc_supplies_mat], 30]) > 0)}; -{deletemarker _x} foreach [_area,_marker]; +btc_side_assigned = false;publicVariable "btc_side_assigned"; if (btc_side_aborted || btc_side_failed) exitWith { {3 call btc_fnc_task_fail} remoteExec ["call", 0]; - btc_side_assigned = false;publicVariable "btc_side_assigned"; + [[_area,_marker], [], [], []] call btc_fnc_delete; }; 50 call btc_fnc_rep_change; {3 call btc_fnc_task_set_done} remoteExec ["call", 0]; -if (count (nearestObjects [_pos, [btc_supplies_mat], 30]) > 0) then { - _pos spawn { - private "_obj"; - _obj = (nearestObjects [_this, [btc_supplies_mat], 30]) select 0; - - waitUntil {sleep 5; ({_x distance _this < 300} count playableUnits == 0)}; - - deleteVehicle _obj; - }; -}; - -btc_side_assigned = false;publicVariable "btc_side_assigned"; \ No newline at end of file +[[_area,_marker], [(nearestObjects [_this, [btc_supplies_mat], 30]) select 0], [], []] call btc_fnc_delete; \ No newline at end of file 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 b2eaa98f8..baa716c37 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 @@ -59,28 +59,13 @@ _tower = _btc_composition select ((_btc_composition apply {typeOf _x}) find _tow waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || !Alive _tower )}; -{deletemarker _x} foreach [_area,_marker]; +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 call btc_fnc_task_fail} remoteExec ["call", 0]; - btc_side_assigned = false;publicVariable "btc_side_assigned"; - _btc_composition spawn { - - waitUntil {sleep 5; ({_x distance (_this select 0) < 300} count playableUnits == 0)}; - - {deleteVehicle _x} forEach _this; - }; }; 80 call btc_fnc_rep_change; -{7 call btc_fnc_task_set_done} remoteExec ["call", 0]; - -_btc_composition spawn { - - waitUntil {sleep 5; ({_x distance (_this select 0) < 300} count playableUnits == 0)}; - - {deleteVehicle _x} forEach _this; -}; - -btc_side_assigned = false;publicVariable "btc_side_assigned"; \ No newline at end of file +{7 call btc_fnc_task_set_done} remoteExec ["call", 0]; \ No newline at end of file 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 9c49b627b..dd7192438 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 @@ -62,28 +62,13 @@ leader _group setPosASL [_pos select 0, _pos select 1, (_pos select 2) + 1 + ran waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || !Alive _generator )}; -{deletemarker _x} foreach [_area,_marker]; +[[_area,_marker], [_generator,_storagebladder], [], []] call btc_fnc_delete; +btc_side_assigned = false;publicVariable "btc_side_assigned"; if (btc_side_aborted || btc_side_failed ) exitWith { {11 call btc_fnc_task_fail} remoteExec ["call", 0]; - btc_side_assigned = false;publicVariable "btc_side_assigned"; - {_x spawn { - - waitUntil {sleep 5; ({_x distance _this < 300} count playableUnits == 0)}; - - deleteVehicle _this; - };} forEach [_generator,_storagebladder]; }; 80 call btc_fnc_rep_change; -{11 call btc_fnc_task_set_done} remoteExec ["call", 0]; - -{_x spawn { - - waitUntil {sleep 5; ({_x distance _this < 300} count playableUnits == 0)}; - - deleteVehicle _this; -};} forEach [_generator,_storagebladder]; - -btc_side_assigned = false;publicVariable "btc_side_assigned"; \ No newline at end of file +{11 call btc_fnc_task_set_done} remoteExec ["call", 0]; \ No newline at end of file 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 0f0da986c..6a6d4eb05 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 @@ -43,23 +43,13 @@ _veh setHit ["wheel_1_1_steering", 1]; waitUntil {sleep 5; (btc_side_aborted || btc_side_failed || (_veh getHit "wheel_1_1_steering" < 1) || !Alive _veh)}; -{deletemarker _x} foreach [_area,_marker]; +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 call btc_fnc_task_fail} remoteExec ["call", 0]; - btc_side_assigned = false;publicVariable "btc_side_assigned"; }; 15 call btc_fnc_rep_change; -{5 call btc_fnc_task_set_done} remoteExec ["call", 0]; - -_veh spawn { - - waitUntil {sleep 5; ({_x distance _this < 300} count playableUnits == 0)}; - - deleteVehicle _this; -}; - - -btc_side_assigned = false;publicVariable "btc_side_assigned"; \ No newline at end of file +{5 call btc_fnc_task_set_done} remoteExec ["call", 0]; \ No newline at end of file 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 a1e36b4b1..43f133e23 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 @@ -95,6 +95,11 @@ switch (_this select 0) do _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"; + }; }; [btc_player_side,[str(_this select 0)],_description,_destination,true,2,true,_type,true] call BIS_fnc_taskCreate; \ No newline at end of file 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 860b229a2..c76cc8dca 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 @@ -57,5 +57,9 @@ switch _this do { _description = ["Side mission failed!","The hostage has not been liberated"]; }; + case 16 : + { + _description = ["Side mission failed!","The missile has not been 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 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 3fa5bdbb6..93e7e021b 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 @@ -56,5 +56,8 @@ switch _this do case 15 : { _description = ["Side mission Accomplished!","The hostage has been liberated!"]; }; + case 16 : { + _description = ["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 From 1b7e6da45c580632f40d3fe09ffff6eecbad0e24 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 13 May 2017 12:00:50 +0200 Subject: [PATCH 083/120] FIX: error supply mission --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/supply.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 04fa20861..99aba6a1a 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 @@ -44,4 +44,4 @@ if (btc_side_aborted || btc_side_failed) exitWith { {3 call btc_fnc_task_set_done} remoteExec ["call", 0]; -[[_area,_marker], [(nearestObjects [_this, [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; \ No newline at end of file From eb89398d2ebacf0590973b4d144d4e7c34aeefad Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 13 May 2017 15:25:50 +0200 Subject: [PATCH 084/120] FIX: speed up --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hack.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 20845a350..84874ddac 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 @@ -72,8 +72,8 @@ if (btc_side_aborted || btc_side_failed) exitWith { //// Launch the hacked missile \\\\ private _altitude = 20; -while {_altitude < 400} do { - _altitude = _altitude + 1.5; +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; }; From 0fb1ad2bc09f43b303dbd6dc613798d54a82b922 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 15 May 2017 19:00:23 +0200 Subject: [PATCH 085/120] Add: markers of players to database now markers from players are persistent. After restart those markers can be delete by player if needed --- .../core/fnc/db/load.sqf | 16 +++++++++++++++- .../core/fnc/db/save.sqf | 5 +++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index 65eb427d9..6d991f7a4 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -337,4 +337,18 @@ _objs = profileNamespace getVariable [format ["btc_hm_%1_objs",_name],[]]; _obj addItemCargoGlobal[((_items select 0) select _i),((_items select 1) select _i)]; }; }; -} foreach _objs; \ No newline at end of file +} foreach _objs; + +//Player Markers +private _markers_properties = profileNamespace getVariable [format ["btc_hm_%1_markers",_name],[]]; +{ + private _marker = createMarker [format ["_USER_DEFINED #0/%1/1", _foreachindex], _x select 1]; + _marker setMarkerText (_x select 0); + _marker setMarkerColor (_x select 2); + _marker setMarkerType (_x select 3); + _marker setMarkerSize (_x select 4); + _marker setmarkerAlpha (_x select 5); + _marker setmarkerBrush (_x select 6); + _marker setmarkerDir (_x select 7); + _marker setmarkerShape (_x select 8); +} forEach _markers_properties; \ No newline at end of file diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf index 09c241fc8..bab954c4d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/save.sqf @@ -148,6 +148,11 @@ _array_obj = []; } foreach btc_log_obj_created; profileNamespace setVariable [format ["btc_hm_%1_objs",_name],_array_obj]; +//Player Markers +private _player_markers = allMapMarkers select {(_x select [0,15]) isEqualTo "_USER_DEFINED #"}; +private _markers_properties = _player_markers apply {[markerText _x,markerPos _x,markerColor _x,markerType _x,markerSize _x, markerAlpha _x, markerBrush _x, markerDir _x, markerShape _x]}; +profileNamespace setVariable [format ["btc_hm_%1_markers",_name],_markers_properties]; + // profileNamespace setVariable [format ["btc_hm_%1_db",_name],true]; saveProfileNamespace; From f2910716fed15a3b02f084c13285a19219dd5547 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 16 May 2017 21:11:35 +0200 Subject: [PATCH 086/120] Update documentation --- =BTC=co@30_Hearts_and_Minds.Altis/core/doc.sqf | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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 73eb62c6e..69550f5d4 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/doc.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/doc.sqf @@ -1,7 +1,8 @@ player createDiarySubject ["Documentation","Documentation"]; -player createDiaryRecord ["Documentation", ["Headless", " - This mission automatically use one Headless client when available. +player createDiaryRecord ["Documentation", ["Headless & Data base", " + This mission automatically use one Headless client when available.

+ This mission has a data base system. Enemy units, towns, hideouts, cache, objects created by players or Zeus, vehicles, players markers (not lines) on global channel are saved. All admin can save mission progress at any time with his self interaction key. "] ]; From 5b9b604f9f054c947c6ccd8d780c1d0336c8020a Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 16 May 2017 23:45:18 +0200 Subject: [PATCH 087/120] Add: random on get grenade --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 2 +- .../core/fnc/civ/add_grenade.sqf | 2 +- .../core/fnc/civ/get_grenade.sqf | 4 +++- .../core/fnc/rep/eh_effects.sqf | 5 ++++- 4 files changed, 9 insertions(+), 4 deletions(-) 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 a900cf704..eb65fa94e 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 @@ -180,7 +180,7 @@ btc_civ_type_boats = _allclasse select 1; btc_civ_max_veh = 10; btc_w_civs = ["V_Rangemaster_belt","arifle_Mk20_F","30Rnd_556x45_Stanag","hgun_ACPC2_F","9Rnd_45ACP_Mag"]; -btc_g_civs = ["HandGrenade","MiniGrenade","ACE_M84","ACE_M14"]; +btc_g_civs = ["HandGrenade","MiniGrenade","ACE_M84","ACE_M84"]; //Cache 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 a7de61d22..3a78b8e35 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 @@ -7,6 +7,6 @@ _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}, [_this select 0], 5] call CBA_fnc_waitAndExecute; + [{(_this select 0) call btc_fnc_rep_add_eh}, [_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/get_grenade.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/civ/get_grenade.sqf index 1a291289f..a1ed8ffcf 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 @@ -6,7 +6,9 @@ _range = _this select 1; _units = []; if (count _this > 2) then {_units = _this select 2;} else {_units = _pos nearEntities [btc_civ_type_units, _range];}; -_units = _units select {side _x isEqualTo civilian}; +_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];}; 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 864e5351b..67e04c945 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 @@ -24,7 +24,10 @@ if (btc_global_reputation < 300) then [_pos,300] spawn btc_fnc_civ_get_weapons; }; } else { - [_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 From 1ac2d25b09e461cff140432e2c272c4db046c354 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 21 May 2017 00:01:26 +0200 Subject: [PATCH 088/120] FIX: clear area message for garage --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/garage.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/garage.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/garage.sqf index 3faaf8abd..6de516347 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/garage.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/garage.sqf @@ -1,5 +1,5 @@ -if (count (nearestObjects [getpos ( _this select 0 ),["All"],5]) > 1) exitWith {hint "Clear the area before create another object!"}; +if (count (nearestObjects [_this select 0,["All"],5]) > 1) exitWith {hint "Clear the area before create another object!"}; disableSerialization; uiNamespace setVariable [ "current_garage", ( _this select 0 ) ]; @@ -19,7 +19,7 @@ with uiNamespace do { private _logistic_point = uiNamespace getVariable "current_garage"; private _pad = uiNamespace getVariable "garage_pad"; deleteVehicle _pad; - private _veh_list = ( getPos _logistic_point ) nearEntities 5; + private _veh_list = _logistic_point nearEntities 5; { {deleteVehicle _x;} forEach crew _x; From f182090f6a9849f6586822cf1e4f2b31d22e26d2 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 22 May 2017 13:37:43 +0200 Subject: [PATCH 089/120] Add: new param link to H&M1.17 --- .../core/def/mission.sqf | 85 +++++++------ .../core/def/param.hpp | 114 ++++++++++-------- 2 files changed, 103 insertions(+), 96 deletions(-) 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 421604355..0ff0bd650 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 @@ -6,60 +6,62 @@ btc_version = 1.161; diag_log format ["=BTC= HEARTS AND MINDS VERSION %1",(str(b //Param //<< Time options >> -btc_p_time = (paramsArray select 1); -btc_p_acctime = (paramsArray select 2); -_p_db = if ((paramsArray select 3) isEqualTo 0) then {false} else {true}; -btc_p_auto_db = (paramsArray select 4); +btc_p_time = "btc_p_time" call BIS_fnc_getParamValue; +btc_p_acctime = "btc_p_acctime" call BIS_fnc_getParamValue; +_p_db = ("btc_p_load" call BIS_fnc_getParamValue) isEqualTo 1; +btc_p_auto_db = "btc_p_auto_db" call BIS_fnc_getParamValue; //<< Faction options >> -_p_en = (paramsArray select 6); -_p_en_AA = false; -_p_en_tank = false; -_p_civ = (paramsArray select 7); -_p_civ_veh = (paramsArray select 8); +_p_en = "btc_p_en" call BIS_fnc_getParamValue; +_p_en_AA = ("btc_p_AA" call BIS_fnc_getParamValue) isEqualTo 1; +_p_en_tank = ("btc_p_tank" call BIS_fnc_getParamValue) isEqualTo 1; +_p_civ = "btc_p_civ" call BIS_fnc_getParamValue; +_p_civ_veh = "btc_p_civ_veh" call BIS_fnc_getParamValue; //<< IED options >> -btc_p_ied = (paramsArray select 10)/2; -ace_explosives_RequireSpecialist = (paramsArray select 11) isEqualTo 0; +btc_p_ied = ("btc_p_ied" call BIS_fnc_getParamValue)/2; +ace_explosives_RequireSpecialist = ("btc_p_engineer" call BIS_fnc_getParamValue) isEqualTo 0; //<< Hideout/Cache options >> -_hideout_n = (paramsArray select 13); -_cache_info_def = (paramsArray select 14); -_cache_info_ratio = (paramsArray select 15); -_info_chance = (paramsArray select 16); +_hideout_n = "btc_p_hideout_n" call BIS_fnc_getParamValue; +_cache_info_def = "btc_p_cache_info_def" call BIS_fnc_getParamValue; +_cache_info_ratio = "btc_p_cache_info_ratio" call BIS_fnc_getParamValue; +_info_chance = "btc_p_info_chance" call BIS_fnc_getParamValue; //<< Medical options >> -btc_p_redeploy = if ((paramsArray select 18) isEqualTo 0) then {false} else {true}; -ace_medical_level = paramsArray select 19; -ace_medical_enableAdvancedWounds = if ((paramsArray select 20) isEqualTo 0) then {false} else {true}; -ace_medical_maxReviveTime = paramsArray select 21; +btc_p_redeploy = ("btc_p_redeploy" call BIS_fnc_getParamValue) isEqualTo 1; +ace_medical_level = "btc_p_med_level" call BIS_fnc_getParamValue; +ace_medical_enableAdvancedWounds = ("btc_p_adv_wounds" call BIS_fnc_getParamValue) isEqualTo 1; +ace_medical_maxReviveTime = "btc_p_rev" call BIS_fnc_getParamValue; //<< Skill options >> -btc_p_set_skill = if ((paramsArray select 23) isEqualTo 0) then {false} else {true}; +btc_p_set_skill = ("btc_p_skill_title" call BIS_fnc_getParamValue) isEqualTo 1; _p_skill = [ - (paramsArray select 24)/10,//general - (paramsArray select 25)/10,//aimingAccuracy - (paramsArray select 26)/10,//aimingShake - (paramsArray select 27)/10,//aimingSpeed - (paramsArray select 28)/10,//endurance - (paramsArray select 29)/10,//spotDistance - (paramsArray select 30)/10,//spotTime - (paramsArray select 31)/10,//courage - (paramsArray select 32)/10,//reloadSpeed - (paramsArray select 33)/10//commanding + ("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 + ("btc_p_set_skill_spotDistance" call BIS_fnc_getParamValue)/10,//spotDistance + ("btc_p_set_skill_spotTime" call BIS_fnc_getParamValue)/10,//spotTime + ("btc_p_set_skill_courage" call BIS_fnc_getParamValue)/10,//courage + ("btc_p_set_skill_reloadSpeed" call BIS_fnc_getParamValue)/10,//reloadSpeed + ("btc_p_set_skill_commanding" call BIS_fnc_getParamValue)/10//commanding ]; +//<< Gameplay options >> +btc_p_sea = ("btc_p_sea" call BIS_fnc_getParamValue) isEqualTo 1; +btc_p_veh_armed_ho = ("btc_p_veh_armed_ho" call BIS_fnc_getParamValue) isEqualTo 1; +btc_p_veh_armed_spawn_more = ("btc_p_veh_armed_spawn_more" call BIS_fnc_getParamValue) isEqualTo 1; +btc_p_side_mission_cycle = ("btc_p_side_mission_cycle" call BIS_fnc_getParamValue) isEqualTo 1; + //<< Other options >> -_p_rep = (paramsArray select 35); -ace_rearm_level = (paramsArray select 36); -btc_p_sea = if ((paramsArray select 37) isEqualTo 0) then {false} else {true}; -_p_city_radius = (paramsArray select 38) * 100; -btc_p_veh_armed_ho = false; -btc_p_veh_armed_spawn_more = false; -btc_p_trigger = if (false) 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_side_mission_cycle = false; -btc_p_garage = false; -btc_p_debug = (paramsArray select 39); +_p_rep = "btc_p_rep" call BIS_fnc_getParamValue; +ace_rearm_level = "btc_p_rearm" 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; //OPTION must be use for H&M if (ace_medical_maxReviveTime > 0) then {ace_medical_enableRevive = 1;ace_medical_preventInstaDeath = true}; @@ -161,9 +163,6 @@ if (isServer) then { btc_helo = [btc_helo_1]; }; -//City -btc_city_type = "Land_Ammobox_rounds_F"; - //Civ // Get all faction from mod there are currently running //copyToClipboard str (["CIV"] call btc_fnc_get_class); 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 8602492db..eafcc89d5 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,282 +1,290 @@ class Params { class btc_p_time_title { - //paramsArray[0] title = "<< Time options >>"; values[]={0}; texts[]={""}; default = 0; }; class btc_p_time { - //paramsArray[1] 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 { - //paramsArray[2] 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 { - //paramsArray[3] title = " Load the savegame (if available)"; values[]={0,1}; - texts[]={"No","Yes"}; + texts[]={"Off","On"}; default = 1; }; class btc_p_auto_db { - //paramsArray[4] 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[]={"No","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 { - //paramsArray[5] title = "<< Faction options >>"; values[]={0}; texts[]={""}; default = 0; }; class btc_p_en { - //paramsArray[6] 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}; texts[]={" Bohemia Interactive: NATO (Side: WEST)"," Bohemia Interactive: FIA (Side: WEST)"," Aplion: Bundeswehr (Side: WEST)"," jarrad96: Central African Militia (Side: EAST)"," Bohemia Interactive: AAF (Side: GUER)"," Bohemia Interactive: FIA (Side: GUER)"," Bohemia Interactive: CSAT (Side: EAST)"," Bohemia Interactive: FIA (Side: EAST)"," EricJ: Taliban (Side: EAST)"," Bohemia Interactive: (Side: WEST)","AFR BIS/IceBreakr: Afrenian Army (Side: WEST)","ARA Bohemia Interactive: Abramian Rebel Alliance (Side: WEST)","ARL BIS/IceBreakr: ARL Lingor Rebels (Side: EAST)","btc_militia_mod Giallustio: Afghan Militia (Side: EAST)","CAF CAF MOD TEAM: Africa - Pirates (Side: EAST)","CAF CAF MOD TEAM: East Europe - Rebels (Side: EAST)","CAF CAF MOD TEAM: Middle East - Tribal (Side: EAST)","CEC HcPookie: Cecanian Army (Side: EAST)","CUP Community Upgrade Project: Army of the Czech Republic (Side: WEST)","CUP Bohemia Interactive: Bundeswehr (Side: WEST)","CUP Bohemia Interactive: United States Army (Side: WEST)","CUP Bohemia Interactive: National Party of Chernarus (Side: GUER)","CUP Bohemia Interactive: ION PMC (Side: GUER)","CUP Bohemia Interactive: Royal Army Corps of Sahrani (Side: GUER)","CUP Bohemia Interactive: Sahrani Liberation Army (Side: EAST)","CUP Bohemia Interactive: Takistani Army (Side: EAST)","CUP_Units Community Upgrade Project: British Armed Forces (Side: WEST)","CUP_Units Bohemia Interactive: Takistani Locals (Side: GUER)","CUP_Units Community Upgrade Project: United Nations (Side: GUER)","CUP_Units Community Upgrade Project: Chernarussian Movement of the Red Star (Side: EAST)","CUP_Units Bohemia Interactive: Takistani Militia (Side: EAST)","CUP_Vehicles Community Upgrade Project: Chenarus Defense Forces (Side: WEST)","CUP_Vehicles Community Upgrade Project: Royal New Zealand Navy (Side: WEST)","CUP_Vehicles Community Upgrade Project: United States Marine Corps (Side: WEST)","CUP_Vehicles Community Upgrade Project: Armed Forces of the Russian Federation (Side: EAST)","Expansion Bohemia Interactive: CTRG (Side: WEST)","Expansion Bohemia Interactive: Gendarmerie (Side: WEST)","Expansion Bohemia Interactive: NATO (Pacific) (Side: WEST)","Expansion Bohemia Interactive: Syndikat (Side: GUER)","Expansion Bohemia Interactive: CSAT (Pacific) (Side: EAST)","Expansion Burgess: OPCAN (Colonial Police) (Side: WEST)","Expansion Burgess: OPCAN (Colonial Sheriff) (Side: WEST)","FOW Bohemia Interactive: Imperial Japanese Army (Side: WEST)","FOW Bohemia Interactive: UK (Side: GUER)","FOW Bohemia Interactive: US Army (Side: GUER)","FOW Bohemia Interactive: US Marines Corps (Side: GUER)","FOW Bohemia Interactive: Wehrmacht (Side: WEST)","GAL HcPookie: GAL (Government Army of Lingor) (Side: WEST)","GANGBLUE BIS/IceBreakr: Blue Gang (Side: WEST)","GANGRED BIS/IceBreakr: Red Gang (Side: EAST)","IBR Bohemia Interactive: Alienz (Side: GUER)","ISC Bohemia Interactive: [ISC] Iraqi Police (Side: WEST)","ISC Bohemia Interactive: [ISC] YPG (Side: WEST)","LIB AWAR: ACI (Side: GUER)","LIB AWAR & Lennard: ARR (Side: WEST)","LIB Lennard: Deutsches Afrikakorps (Side: WEST)","LIB AWAR & Joarius: FFI (Side: GUER)","LIB AWAR: Home Army (Polish) (Side: GUER)","LIB AWAR: Luftwaffe (Side: WEST)","LIB AWAR & Lennard: [Winter] Luftwaffe (Side: WEST)","LIB AWAR & Lennard: MKHL (Side: WEST)","LIB Lennard: US North African Corps (Side: GUER)","LIB Lennard: NKVD (Side: EAST)","LIB AWAR: Panzerwaffe (Side: WEST)","LIB AWAR & Lennard: [Winter] Panzerwaffe (Side: WEST)","LIB AWAR: RAAF (Side: GUER)","LIB AWAR: RAF (Side: GUER)","LIB AWAR & Lennard: RBAF (Side: WEST)","LIB AWAR: Red Army (Side: EAST)","LIB AWAR & Lennard: [Winter] Red Army (Side: EAST)","LIB LODU: US Army Air Forces (Side: GUER)","LIB AWAR: [Winter] US Airforce (Side: GUER)","LIB AWAR: US Army (Side: GUER)","LIB LODU: [Winter] US Army (Side: GUER)","LIB Lennard: US 2nd Ranger Battalion (Side: GUER)","LIB I44: US Tank Troops (Side: GUER)","LIB AWAR & Lennard: [Winter] US Tank Troops (Side: GUER)","LIB AWAR: USSR Airforce (Side: EAST)","LIB AWAR & Lennard: [Winter] USSR Airforce (Side: EAST)","LIB AWAR: Tank troops of USSR (Side: EAST)","LIB AWAR & Lennard: [Winter] Tank troops of USSR (Side: EAST)","LIB AWAR: Wehrmacht (Side: WEST)","LIB AWAR & Lennard: [Winter] Wehrmacht (Side: WEST)","LM Burgess: UNSCMC (Urban) (Side: WEST)","LM Burgess: UNSCMC (Desert) (Side: WEST)","LM Burgess: ONI Security (Side: WEST)","LM Burgess: UNSCMC (Snow) (Side: WEST)","LM Burgess: UNSCMC (Wood) (Side: WEST)","LM Burgess: OPCANTest (Side: WEST)","LOP Project OPFOR: Boko Haram (Side: EAST)","LOP Project OPFOR: Irish Republican Army (Side: EAST)","LOP Project OPFOR: Ulster Volunteer Force (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Afghan National Army and Police (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: African Militia (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: African Militia (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Chernarussian Defence Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: ChDKZ (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Iraqi Armed Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: Iranian Armed Forces (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Chernarussian National Insurgents (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Private Military Company (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Royal Army Corps of Sahrani (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Sahrani Liberation Army (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Takistani Armed Forces (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Ultranationalists (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Ukraine's Armed Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: United Nations (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: United Armed Forces of Novorossiya (Side: EAST)","MOL HcPookie: Molatian Army (Side: EAST)","OPTRE Article 2 Studios: Insurrectionists (Side: EAST)","OPTRE Burgess: OPCAN (Side: WEST)","OPTRE Burgess: OPCAN (UEG Colonial Guard) (Side: WEST)","OPTRE Burgess: Colonial Militia (OPCAN) (Side: GUER)","OPTRE Burgess: OPCAN (PMC) (Side: GUER)","OPTRE Burgess: Halo Wars Rebels (OPCAN) (Side: EAST)","OPTRE Burgess: Common Criminals (OPCAN) (Side: EAST)","OPTRE Burgess: OPCAN (UNSC Army) (Side: WEST)","OPTRE Burgess: United Rebel Air Force(OPCAN) (Side: EAST)","OPTRE Burgess: United Rebel Army Desert(OPCAN) (Side: EAST)","OPTRE Burgess: United Rebel Army BattleJumpers (OPCAN) (Side: EAST)","OPTRE Burgess: United Rebel Army Tropic(OPCAN) (Side: EAST)","OPTRE Bohemia Interactive: United Rebel Army Ground Vehicles (OPCAN) (Side: EAST)","OPTRE Burgess: United Rebel Army Wood(OPCAN) (Side: EAST)","OPTRE Burgess: OPCAN (WARZONE BLUE) (Side: WEST)","OPTRE Burgess: OPCAN (WARZONE RED) (Side: EAST)","OPTRE Article 2 Studios: UNSCDF (Side: WEST)","RHS_AFRF Bohemia Interactive: [ISC] al-Nusra Front (Side: GUER)","RHS_AFRF Bohemia Interactive: [ISC] Iraqi Army (Side: WEST)","RHS_AFRF Bohemia Interactive: [ISC] Islamic State (Side: GUER)","RHS_AFRF Bohemia Interactive: [ISC] Islamic State (Side: EAST)","RHS_AFRF Bohemia Interactive: [ISC] Peshmerga (Side: WEST)","RHS_AFRF Bohemia Interactive: [ISC] Syrian Arab Army (Side: EAST)","RHS_AFRF Red Hammer Studios: Eastern Militia (Side: GUER)","RHS_AFRF Red Hammer Studios: Russia (MSV) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (RVA) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (TV) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VDV) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VMF) (Side: EAST)","RHS_AFRF RHS: Russia (VPVO) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VV) (Side: EAST)","RHS_AFRF Bohemia Interactive: Russia (VVS - Grey) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VVS - Camo) (Side: EAST)","RHS_GREF Red Hammer Studios: Chernarus (Air Force) (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (Air Force) (Side: WEST)","RHS_GREF RHS (A2 port): Chernarus (Ground Forces) (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (Ground Forces) (Side: WEST)","RHS_GREF Red Hammer Studios: Chernarus (National Guard) (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (National Guard) (Side: WEST)","RHS_GREF Red Hammer Studios: ChDKZ Insurgents (Side: EAST)","RHS_GREF Red Hammer Studios: ChDKZ Insurgents (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (U.N. Peacekeepers) (Side: GUER)","RHS_SAF Red Hammer Studios: SAF (RVIPVO) (Side: GUER)","RHS_SAF Red Hammer Studios: SAF (KOV) (Side: GUER)","RHS_SAF Red Hammer Studios: SAF (UN Peacekeepers) (Side: GUER)","RHS_USAF Red Hammer Studios: USA (SOCOM) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (USAF) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (Army - D) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (Army - W) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (USMC - D) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (USMC - W) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (Navy) (Side: WEST)","RHSGREF Red Hammer Studios: Nationalist Troops (Side: GUER)","SG Stagler: Sturmtroopers (Side: WEST)","SG Stagler: [Winter] Sturmtroopers (Side: WEST)","SG Stagler: Tank Sturmtroopers (Side: WEST)","UNSC Morthon: UNSCMC (Side: WEST)","UNSUNG Bohemia Interactive: Australia (UNSUNG) (Side: GUER)","UNSUNG Razorback: N.V.A. (UNSUNG) (Side: EAST)","UNSUNG Bohemia Interactive: V.C. (UNSUNG) (Side: EAST)","UNSUNG Bohemia Interactive: A.R.V.N. (UNSUNG) (Side: GUER)","UNSUNG Bohemia Interactive: New Zealand (UNSUNG) (Side: GUER)","UNSUNG Bohemia Interactive: U.S. (UNSUNG) (Side: WEST)","USML segen: Armed Islamic Front (Side: GUER)"}; default = 5; }; + class btc_p_AA { + title = " Enemy use Anti-Air:"; + values[]={0,1}; + texts[]={"Off","On"}; + default = 0; + }; + class btc_p_tank { + title = " Enemy use Tank:"; + values[]={0,1}; + texts[]={"Off","On"}; + default = 0; + }; class btc_p_civ { - //paramsArray[7] title = " Civil type:"; values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; texts[]={" EricJ: Afghan Civilians (Side: CIV)"," Bohemia Interactive: Civilians (Side: CIV)","btc_militia_mod Giallustio: Afghan Civilians (Side: CIV)","CAF CAF MOD TEAM: African (Side: CIV)","CAF CAF MOD TEAM: Middle Eastern (Side: CIV)","CUP_Units Community Upgrade Project: Civilians (Russian) (Side: CIV)","CUP_Vehicles Bohemia Interactive: Civilians (Chenarus) (Side: CIV)","CUP_Vehicles Bohemia Interactive: Civilians (Sahrani) (Side: CIV)","CUP_Vehicles Community Upgrade Project: Civilians (Takistan) (Side: CIV)","LIB Reyhard & Joarius: 40s Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: African Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Eastern European Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Civilians (Side: CIV)","OPTRE Bohemia Interactive: Civilians (UEG) (Side: CIV)","RDS_CIV_PACK reyhard: Russians (Side: CIV)","UNSUNG Bohemia Interactive: Vietnamese (UNSUNG) (Side: CIV)"}; default = 1; }; class btc_p_civ_veh { - //paramsArray[8] title = " Civil vehicle type:"; values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; texts[]={" EricJ: Afghan Civilians (Side: CIV)"," Bohemia Interactive: Civilians (Side: CIV)","btc_militia_mod Giallustio: Afghan Civilians (Side: CIV)","CAF CAF MOD TEAM: African (Side: CIV)","CAF CAF MOD TEAM: Middle Eastern (Side: CIV)","CUP_Units Community Upgrade Project: Civilians (Russian) (Side: CIV)","CUP_Vehicles Bohemia Interactive: Civilians (Chenarus) (Side: CIV)","CUP_Vehicles Bohemia Interactive: Civilians (Sahrani) (Side: CIV)","CUP_Vehicles Community Upgrade Project: Civilians (Takistan) (Side: CIV)","LIB Reyhard & Joarius: 40s Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: African Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Eastern European Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Civilians (Side: CIV)","OPTRE Bohemia Interactive: Civilians (UEG) (Side: CIV)","RDS_CIV_PACK reyhard: Russians (Side: CIV)","UNSUNG Bohemia Interactive: Vietnamese (UNSUNG) (Side: CIV)"}; default = 1; }; class btc_p_IED_title { - //paramsArray[9] title = "<< IED options >>"; values[]={0}; texts[]={""}; default = 0; }; class btc_p_ied { - //paramsArray[10] title = " IEDs ratio:"; values[]={0, 1, 2, 3}; texts[]={"Off","Low","Normal","High"}; default = 2; }; class btc_p_engineer { - //paramsArray[11] title = " Everybody can disarm IED:"; values[]={0,1}; - texts[]={"No","Yes"}; + texts[]={"Off","On"}; default = 0; }; class btc_p_hideout_cache_title { - //paramsArray[12] title = "<< Hideout/Cache options >>"; values[]={0}; texts[]={""}; default = 0; }; class btc_p_hideout_n { - //paramsArray[13] 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 { - //paramsArray[14] 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 { - //paramsArray[15] title = " Cache info ratio:"; values[]={50,100}; texts[]={"50 m","100 m"}; default = 100; }; class btc_p_info_chance { - //paramsArray[16] 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 { - //paramsArray[17] title = "<< Medical options >>"; values[]={0}; texts[]={""}; default = 0; }; class btc_p_redeploy { - //paramsArray[18] title = " Allow re-deploy?"; values[]={0,1}; - texts[]={"No","Yes"}; + texts[]={"Off","On"}; default = 1; }; class btc_p_med_level { - //paramsArray[19] title = " Medical Level"; values[] = {1,2}; texts[] = {"Basic","Advanced"}; default = 1; }; class btc_p_adv_wounds { - //paramsArray[20] title = " Advanced Wounds"; values[] = {0,1}; texts[] = {"Off","On"}; default = 1; }; class btc_p_rev { - //paramsArray[21] title = " Revive time:"; values[]={0,60,120,180,240,300,600,900,1200,999999}; - texts[]={"0","60","120","180","240","300","600","900","1200","999999"}; + texts[]={"Off","60","120","180","240","300","600","900","1200","999999"}; default = 600; }; class btc_p_skill_title { - //paramsArray[22] - title = "<< Skill options >>"; + title = "<< A3 Skill options >>"; values[]={0}; texts[]={""}; default = 0; }; class btc_p_set_skill { - //paramsArray[23] title = " Set skill?"; values[]={0,1}; - texts[]={"No","Yes"}; + texts[]={"Off","On"}; default = 1; }; class btc_p_set_skill_general { - //paramsArray[24] title = " Set skill, general"; values[]={0,1,2,3,4,5,6,7,8,9,10,20,30,40,50,60,70,80,90,100}; texts[]={"0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1","2","3","4","5","6","7","8","9","10"}; default = 0; }; class btc_p_set_skill_aimingAccuracy { - //paramsArray[25] title = " Set skill, aimingAccuracy"; values[]={0,1,2,3,4,5,6,7,8,9,10,20,30,40,50,60,70,80,90,100}; texts[]={"0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1","2","3","4","5","6","7","8","9","10"}; default = 1; }; class btc_p_set_skill_aimingShake { - //paramsArray[26] title = " Set skill, aimingShake"; values[]={0,1,2,3,4,5,6,7,8,9,10,20,30,40,50,60,70,80,90,100}; texts[]={"0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1","2","3","4","5","6","7","8","9","10"}; default = 7; }; class btc_p_set_skill_aimingSpeed { - //paramsArray[27] title = " Set skill, aimingSpeed"; values[]={0,1,2,3,4,5,6,7,8,9,10,20,30,40,50,60,70,80,90,100}; texts[]={"0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1","2","3","4","5","6","7","8","9","10"}; default = 2; }; class btc_p_set_skill_endurance { - //paramsArray[28] title = " Set skill, endurance"; values[]={0,1,2,3,4,5,6,7,8,9,10,20,30,40,50,60,70,80,90,100}; texts[]={"0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1","2","3","4","5","6","7","8","9","10"}; default = 7; }; class btc_p_set_skill_spotDistance { - //paramsArray[29] title = " Set skill, spotDistance"; values[]={0,1,2,3,4,5,6,7,8,9,10,20,30,40,50,60,70,80,90,100}; texts[]={"0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1","2","3","4","5","6","7","8","9","10"}; default = 100; }; class btc_p_set_skill_spotTime { - //paramsArray[30] title = " Set skill, spotTime"; values[]={0,1,2,3,4,5,6,7,8,9,10,20,30,40,50,60,70,80,90,100}; texts[]={"0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1","2","3","4","5","6","7","8","9","10"}; default = 100; }; class btc_p_set_skill_courage { - //paramsArray[31] title = " Set skill, courage"; values[]={0,1,2,3,4,5,6,7,8,9,10,20,30,40,50,60,70,80,90,100}; texts[]={"0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1","2","3","4","5","6","7","8","9","10"}; default = 1; }; class btc_p_set_skill_reloadSpeed { - //paramsArray[32] title = " Set skill, reloadSpeed"; values[]={0,1,2,3,4,5,6,7,8,9,10,20,30,40,50,60,70,80,90,100}; texts[]={"0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1","2","3","4","5","6","7","8","9","10"}; default = 20; }; class btc_p_set_skill_commanding { - //paramsArray[33] title = " Set skill, commanding"; values[]={0,1,2,3,4,5,6,7,8,9,10,20,30,40,50,60,70,80,90,100}; texts[]={"0","0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1","2","3","4","5","6","7","8","9","10"}; default = 80; }; + 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 { - //paramsArray[34] title = "<< Other options >>"; values[]={0}; texts[]={""}; default = 0; }; class btc_p_rep { - //paramsArray[35] title = " Reputation at start:"; values[]={0, 200, 500, 750}; texts[]={"Very Low","Low","Normal","High"}; default = 200; }; class btc_p_rearm { - //paramsArray[36] title = " Rearm Level:"; values[]={0,1,2}; texts[]={"Entire vehicle","Entire magazine","Amount based on caliber"}; default = 1; }; - class btc_p_sea { - //paramsArray[37] - title = " Extend battlefield to sea:"; - values[] = {0,1}; - texts[] = {"Off","On"}; - default = 1; + class btc_p_garage { + title = " Activate garage for admin:"; + values[]={0,1}; + texts[]={"Off","On"}; + default = 0; }; class btc_p_city_radius { - //paramsArray[38] 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 { - //paramsArray[39] title = " Debug:"; values[]={0,1,2}; - texts[]={"No","Yes", "Log only"}; + texts[]={"Off","On", "Log only"}; default = 0; }; }; \ No newline at end of file From 0e2cc8b24ac1128656710ad5b6ad3a62108be0d4 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 22 May 2017 14:48:44 +0200 Subject: [PATCH 090/120] FIX: plane crash when loaded from database the setposATL et setdir change the speed of plane to 0 so they fall. --- .../core/fnc/data/spawn_group.sqf | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/spawn_group.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/spawn_group.sqf index 781fbf9b1..91dd5dd42 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/spawn_group.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/spawn_group.sqf @@ -13,8 +13,10 @@ for "_i" from 0 to (count _array_pos - 1) do { if (_type == 1) then { private _veh = createVehicle [(_array_veh select 0), (_array_veh select 1), [], 0, "FLY"]; - _veh setPosATL (_array_veh select 1); - _veh setDir (_array_veh select 2); + if !(_veh isKindOf "Plane") then { + _veh setPosATL (_array_veh select 1); + _veh setDir (_array_veh select 2); + }; _veh setFuel (_array_veh select 3); { private _assigned = false; From 1c44e0d6b9abcc69bec518a385f563b40c0f2d2f Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 22 May 2017 23:24:20 +0200 Subject: [PATCH 091/120] Add: waypoint --- .../core/fnc/civ/add_grenade.sqf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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 3a78b8e35..813095460 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 @@ -7,6 +7,9 @@ _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}, [_this select 0], 20] call CBA_fnc_waitAndExecute; + [{ + (_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 From 804b0572142b4eb08a5a14b6ad3294f341ef7eca Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 23 May 2017 00:56:44 +0200 Subject: [PATCH 092/120] Add dynamique logistic point https://github.com/gibfender/CO30_Butts_and_Limes_116.Altis/blob/master/core/def/mission.sqf#L329 --- .../core/def/mission.sqf | 36 +++++++------------ .../core/fnc/log/create_change_target.sqf | 6 +--- .../core/fnc/log/create_s.sqf | 15 +++----- 3 files changed, 18 insertions(+), 39 deletions(-) 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 421604355..1dfcf9ecc 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 @@ -211,25 +211,23 @@ btc_info_hideout_radius = 4000; //Supplies btc_supplies_mat = "Land_Cargo20_red_F"; +//Player +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 _allclass = ("true" configClasses (configFile >> "CfgVehicles")) apply {configName _x}; + _allclass = _allclass select {(getNumber(configfile >> "CfgVehicles" >> _x >> "scope") isEqualTo 2)}; _btc_rearming_static = [ //"Static" - "B_static_AT_F", - "B_static_AA_F", - "B_GMG_01_A_F", - "B_GMG_01_high_F", - "B_GMG_01_F", - "B_HMG_01_A_F", - "B_HMG_01_high_F", - "B_HMG_01_F", "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 = []; { @@ -277,25 +275,18 @@ if (isServer) then { "Land_Mil_ConcreteWall_F", "Land_Mil_WallBig_4m_F", "Land_Mil_WallBig_Corner_F", - "Land_PortableLight_double_F" + "Land_PortableLight_double_F", + "B_Slingload_01_Medevac_F" ], _btc_rearming_static + _magazines_static_clean, [ //"Ammobox" - "rhsusf_mags_crate", - "Box_NATO_Ammo_F", - "Box_NATO_Ammo_F_empty", - "Box_NATO_Support_F", - "ACE_medicalSupplyCrate_advanced", - "ACE_medicalSupplyCrate", - "B_supplyCrate_F", - "B_CargoNet_01_ammo_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" @@ -308,7 +299,8 @@ if (isServer) then { [ //"Vehicle logistic" "ACE_Wheel", - "ACE_Track" + "ACE_Track", + "B_Slingload_01_Fuel_F" ] ] + (_btc_rearming_vehicles apply { _vehicles = _x; @@ -457,8 +449,6 @@ btc_lift_HUD_x = 0.874; btc_lift_HUD_y = 0.848; //Mil -btc_player_side = west; -btc_respawn_marker = "respawn_west"; btc_hq = objNull; // Get all faction from mod there are currently running //copyToClipboard str (["EN"] call btc_fnc_get_class); diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_change_target.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_change_target.sqf index 512689e51..942538c82 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_change_target.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_change_target.sqf @@ -11,11 +11,7 @@ for "_i" from 0 to ((count _category) - 1) do { private ["_class","_display","_index"]; _class = (_category select _i); - if (_class isEqualTo "Box_NATO_Ammo_F_empty") then { - _display = getText (configFile >> "cfgVehicles" >> "Box_NATO_Ammo_F" >> "displayName") + " (Empty)" ; - } else { - _display = getText (configFile >> "cfgVehicles" >> _class >> "displayName"); - }; + _display = getText (configFile >> "cfgVehicles" >> _class >> "displayName"); if (_display isEqualTo "") then { _display = getText (configfile >> "CfgMagazines" >> _class >> "displayName"); }; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_s.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_s.sqf index 894135114..d8c314bb4 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_s.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_s.sqf @@ -7,18 +7,11 @@ if (count _this > 1) then { _pos = getpos btc_create_object_point; }; -if ((_this select 0) isEqualTo "Box_NATO_Ammo_F_empty") then { - _obj = "Box_NATO_Ammo_F" createVehicle [_pos select 0,_pos select 1,0]; - clearWeaponCargoGlobal _obj; - clearItemCargoGlobal _obj; - clearMagazineCargoGlobal _obj; +if (getText (configFile >> "cfgVehicles" >> (_this select 0) >> "displayName") isEqualTo "") then { + _obj = [btc_create_object_point,(_this select 0)] call ace_rearm_fnc_createDummy; + _obj setPos _pos; } else { - if (getText (configFile >> "cfgVehicles" >> (_this select 0) >> "displayName") isEqualTo "") then { - _obj = [btc_create_object_point,(_this select 0)] call ace_rearm_fnc_createDummy; - _obj setPos _pos; - } else { - _obj = (_this select 0) createVehicle [_pos select 0,_pos select 1,0]; - }; + _obj = (_this select 0) createVehicle [_pos select 0,_pos select 1,0]; }; btc_log_obj_created pushBack _obj; From ae9c7afedbe3a1411344ea1bfb7269874ac8170a Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 23 May 2017 13:54:58 +0200 Subject: [PATCH 093/120] Add: medevac and fuel in logistic array --- .../core/def/mission.sqf | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) 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 1dfcf9ecc..5701fdaf0 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 @@ -276,7 +276,8 @@ if (isServer) then { "Land_Mil_WallBig_4m_F", "Land_Mil_WallBig_Corner_F", "Land_PortableLight_double_F", - "B_Slingload_01_Medevac_F" + "B_Slingload_01_Medevac_F", + "B_Slingload_01_Fuel_F" ], _btc_rearming_static + _magazines_static_clean, [ @@ -299,8 +300,7 @@ if (isServer) then { [ //"Vehicle logistic" "ACE_Wheel", - "ACE_Track", - "B_Slingload_01_Fuel_F" + "ACE_Track" ] ] + (_btc_rearming_vehicles apply { _vehicles = _x; @@ -371,6 +371,8 @@ btc_log_def_cc = btc_fob_mat,0, "Land_Cargo20_military_green_F",20, "Land_Cargo40_military_green_F",40, + "B_Slingload_01_Fuel_F",0, + "B_Slingload_01_Medevac_F",0, //Trucks "B_Truck_01_transport_F",10, "B_Truck_01_covered_F",10, @@ -387,7 +389,9 @@ btc_log_def_rc = btc_supplies_mat,10, btc_fob_mat,10, "Land_Cargo20_military_green_F",20, - "Land_Cargo40_military_green_F",40 + "Land_Cargo40_military_green_F",40, + "B_Slingload_01_Fuel_F",20, + "B_Slingload_01_Medevac_F",20 ]; btc_fnc_log_get_nottowable = { From 3f04764641f83ca49ce6f9a1a8da7f2fa79c9198 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Tu=C5=9Bnio?= Date: Sat, 13 May 2017 18:01:48 +0100 Subject: [PATCH 094/120] ADD: a reputation change whenever a building is destroyed --- .../core/def/mission.sqf | 31 +++++++++++++++++++ .../core/doc.sqf | 2 +- .../core/fnc/compile.sqf | 1 + .../core/fnc/eh/buildingchanged.sqf | 29 +++++++++++++++++ .../core/init_server.sqf | 2 ++ 5 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/buildingchanged.sqf 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 d944af25b..301359c8f 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 @@ -159,6 +159,35 @@ if (isServer) then { //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] + ]; }; //City @@ -521,6 +550,8 @@ btc_rep_malus_civ_killed = - 10; btc_rep_malus_civ_firenear = - 5; btc_rep_malus_player_respawn = - 10; btc_rep_malus_veh_killed = - 25; +btc_rep_malus_building_damaged = - 2.5; +btc_rep_malus_building_destroyed = - 5; //Side if (isNil "btc_side_assigned") then {btc_side_assigned = false;}; 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 73eb62c6e..5417f8a37 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/doc.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/doc.sqf @@ -114,7 +114,7 @@ When you destroy an hideout or an ammo cache, all the markers related to it will player createDiaryRecord ["Documentation", ["Reputation", " Reputation can be ask to civilian
Bad actions cause bad effetcs.
- Helping the local population, fighting the Oplitas, disarming IED will rise your reputation; killing civilians, firing near civilians for no reason, losing vehicles, respawns will decrease your repution. At the beginning you have a very low reputation level, so civilians won't help you revealing important information about Oplitas, they will likely lie instead. + Helping the local population, fighting the Oplitas, disarming IED will rise your reputation; killing civilians, firing near civilians for no reason, damaging/destroying buildings, losing vehicles, respawns will decrease your repution. At the beginning you have a very low reputation level, so civilians won't help you revealing important information about Oplitas, they will likely lie instead. "] ]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf index f3371334a..30a72484e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/compile.sqf @@ -64,6 +64,7 @@ if (isServer) then { btc_fnc_eh_veh_respawn = compile preprocessFile "core\fnc\eh\veh_respawn.sqf"; btc_fnc_eh_explosives_defuse = compile preprocessFile "core\fnc\eh\explosives_defuse.sqf"; btc_fnc_eh_handledisconnect = compile preprocessFile "core\fnc\eh\handledisconnect.sqf"; + btc_fnc_eh_buildingchanged = compile preprocessFile "core\fnc\eh\buildingchanged.sqf"; //IED btc_fnc_ied_boom = compile preprocessFile "core\fnc\ied\boom.sqf"; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/buildingchanged.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/buildingchanged.sqf new file mode 100644 index 000000000..cf8773ee1 --- /dev/null +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/buildingchanged.sqf @@ -0,0 +1,29 @@ +params ["_from", "_to", "_isRuin"]; +private _classname = toUpper typeOf _from; +private _malus = [btc_rep_malus_building_damaged, btc_rep_malus_building_destroyed] select _isRuin; +private _skipCategories = false; + +// Accept only static, terrain buildings, discard any dynamically created ones +if (getObjectType _from != 1) exitWith { }; + +{ + if (_classname find (toUpper (_x select 0)) != -1) exitWith { + _malus = _malus * (_x select 1); + _skipCategories = true; + }; +} forEach btc_buildings_multipliers; + +if (!_skipCategories) then { + { + if (_classname find (toUpper (_x select 0)) != -1) then { + _malus = _malus * (_x select 1); + }; + } forEach btc_buildings_categories_multipliers; +}; + +if (btc_debug) then { + systemChat format [ "BuildingChanged: %1 to %2. Malus: %3", + typeOf _from, typeOf _to, _malus ]; +}; + +_malus call btc_fnc_rep_change; \ No newline at end of file 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 a3f3f3cfe..fec752b40 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 @@ -24,6 +24,8 @@ call btc_fnc_db_autosave; addMissionEventHandler ["HandleDisconnect",btc_fnc_eh_handledisconnect]; +addMissionEventHandler ["BuildingChanged",btc_fnc_eh_buildingchanged]; + ["ace_explosives_defuse", btc_fnc_eh_explosives_defuse] call CBA_fnc_addEventHandler; ["Initialize"] call BIS_fnc_dynamicGroups; From c4612ba3d72e12593b9d08528822288094740742 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 23 May 2017 22:42:19 +0200 Subject: [PATCH 095/120] FIX: wrong param --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 0ff0bd650..1d8d8c4d1 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 @@ -35,7 +35,7 @@ ace_medical_enableAdvancedWounds = ("btc_p_adv_wounds" call BIS_fnc_getParamValu ace_medical_maxReviveTime = "btc_p_rev" call BIS_fnc_getParamValue; //<< Skill options >> -btc_p_set_skill = ("btc_p_skill_title" call BIS_fnc_getParamValue) isEqualTo 1; +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 From 31708c5011e78bda65ed29effb43445ba977ffdb Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 23 May 2017 22:44:01 +0200 Subject: [PATCH 096/120] FIX: more accurate AA detection --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/class.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 41c807f76..c562e90e0 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 @@ -61,7 +61,7 @@ if (_enemy_side isEqualTo btc_player_side) exitWith { //Final filter unwanted units type if !(_en_AA) then { //Remove Anti-Air Units - _type_units = _type_units select {(_x find "AA") isEqualTo -1}; + _type_units = _type_units select {(_x find "AA_") isEqualTo -1}; }; _type_units = _type_units select {((_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; From c2da608477c030c75dceadcc17aa8903ae7ba472 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 30 May 2017 23:48:36 +0200 Subject: [PATCH 097/120] FIX: Plane crash setWaypointSpeed need to be "NORMAL" for plane to avoid plane crash --- .../core/fnc/common/task_patrol.sqf | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/task_patrol.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/task_patrol.sqf index 0b4c2ed95..b4ba1e4cb 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/task_patrol.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/common/task_patrol.sqf @@ -1,5 +1,5 @@ -private ["_group","_pos","_max_area","_behav","_allowwater","_min_area"]; +private ["_group","_pos","_max_area","_behav","_allowwater","_min_area","_waypointspeed"]; _group = _this select 0; _pos = _this select 1; @@ -13,6 +13,11 @@ if (count _this > 4) then { }; _group setBehaviour _behav; {_x setBehaviour _behav;} foreach units _group; +if ((vehicle leader _group) isKindOf "Air") then { + _waypointspeed = "NORMAL"; +} else { + _waypointspeed = "LIMITED"; +}; private _prevPos = _pos; for "_i" from 0 to (2 + (floor (random 3))) do @@ -28,7 +33,7 @@ for "_i" from 0 to (2 + (floor (random 3))) do _wp setWaypointTimeout [5, 10, 20]; if (_i == 0) then { - _wp setWaypointSpeed "LIMITED"; + _wp setWaypointSpeed _waypointspeed; _wp setWaypointFormation "STAG COLUMN"; _wp setWaypointCombatMode "RED"; _wp setWaypointBehaviour "SAFE"; From b81b7ce1d5dc40979af762b7ad5d8b26bb6cbf8e Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 31 May 2017 00:03:11 +0200 Subject: [PATCH 098/120] Add: "Land_WoodenBox_F" as an empty box this replace : https://github.com/Vdauphin/HeartsAndMinds/pull/337 by a more simple way --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 2fc2fff56..d9d0377af 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 @@ -168,7 +168,7 @@ if (isServer) then { // 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_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] @@ -313,6 +313,7 @@ if (isServer) then { _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")}), [ From d89268ca898abddcb434a4a72ef3902e32ccef7a Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 2 Jun 2017 18:18:33 +0200 Subject: [PATCH 099/120] Add:icon D to database menu --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/int/add_actions.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 1214ae53a..20ebdc44f 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 @@ -3,7 +3,7 @@ private ["_action"]; //Database //_action = ["Database","Database","",{},{serverCommandAvailable "#logout"}] call ace_interact_menu_fnc_createAction; -_action = ["Database","Database","",{},{serverCommandAvailable "#logout" || !isMultiplayer}] 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; [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; From b7f7771404c4e6682f9b61347eb9eb155795e8bb Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 2 Jun 2017 19:19:02 +0200 Subject: [PATCH 100/120] FIX: "s" --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 eafcc89d5..269e0d6cc 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 @@ -42,13 +42,13 @@ class Params { default = 5; }; class btc_p_AA { - title = " Enemy use Anti-Air:"; + title = " Enemy uses Anti-Air:"; values[]={0,1}; texts[]={"Off","On"}; default = 0; }; class btc_p_tank { - title = " Enemy use Tank:"; + title = " Enemy uses Tank:"; values[]={0,1}; texts[]={"Off","On"}; default = 0; From ad01794f28517574906a1f11fe05c902d84527b6 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 2 Jun 2017 19:31:14 +0200 Subject: [PATCH 101/120] FIX: pilot spawn in patrol city --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/class.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 c562e90e0..531c163c8 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 @@ -63,7 +63,7 @@ if !(_en_AA) then { //Remove Anti-Air Units _type_units = _type_units select {(_x find "AA_") isEqualTo -1}; }; -_type_units = _type_units select {((_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_units = _type_units select {((_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}; From f7675edb429419e57e6cf52ad791c54ead39fbab Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 3 Jun 2017 13:36:45 +0200 Subject: [PATCH 102/120] FIX: Huron medical useless with ace 3 replaced by Taru medical set texture to black --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 6 +++--- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf | 5 +++++ =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_s.sqf | 5 +++++ 3 files changed, 13 insertions(+), 3 deletions(-) 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 22dfa06e1..9aa176396 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 @@ -306,7 +306,7 @@ if (isServer) then { "Land_Mil_WallBig_4m_F", "Land_Mil_WallBig_Corner_F", "Land_PortableLight_double_F", - "B_Slingload_01_Medevac_F", + "Land_Pod_Heli_Transport_04_medevac_F", "B_Slingload_01_Fuel_F" ], _btc_rearming_static + _magazines_static_clean, @@ -403,7 +403,7 @@ btc_log_def_cc = "Land_Cargo20_military_green_F",20, "Land_Cargo40_military_green_F",40, "B_Slingload_01_Fuel_F",0, - "B_Slingload_01_Medevac_F",0, + "Land_Pod_Heli_Transport_04_medevac_F",0, //Trucks "B_Truck_01_transport_F",10, "B_Truck_01_covered_F",10, @@ -422,7 +422,7 @@ btc_log_def_rc = "Land_Cargo20_military_green_F",20, "Land_Cargo40_military_green_F",40, "B_Slingload_01_Fuel_F",20, - "B_Slingload_01_Medevac_F",20 + "Land_Pod_Heli_Transport_04_medevac_F",20 ]; btc_fnc_log_get_nottowable = { diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf index 6d991f7a4..5b9cbe7ee 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf @@ -337,6 +337,11 @@ _objs = profileNamespace getVariable [format ["btc_hm_%1_objs",_name],[]]; _obj addItemCargoGlobal[((_items select 0) select _i),((_items select 1) select _i)]; }; }; + if ((_x select 0) isEqualTo "Land_Pod_Heli_Transport_04_medevac_F") then { + { + _obj setObjectTextureGlobal [ _foreachindex, _x ]; + } forEach ["a3\air_f_heli\heli_transport_04\data\heli_transport_04_pod_ext01_black_co.paa","a3\air_f_heli\heli_transport_04\data\heli_transport_04_pod_ext02_black_co.paa"]; + }; } foreach _objs; //Player Markers diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_s.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_s.sqf index 9eb9b1eeb..da6c8c791 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_s.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/create_s.sqf @@ -17,5 +17,10 @@ if (getText (configFile >> "cfgVehicles" >> (_this select 0) >> "displayName") i _obj setVectorUp _vector; _obj setPosASL _pos; +if ((_this select 0) isEqualTo "Land_Pod_Heli_Transport_04_medevac_F") then { + { + _obj setObjectTextureGlobal [ _foreachindex, _x ]; + } forEach ["a3\air_f_heli\heli_transport_04\data\heli_transport_04_pod_ext01_black_co.paa","a3\air_f_heli\heli_transport_04\data\heli_transport_04_pod_ext02_black_co.paa"]; +}; btc_log_obj_created pushBack _obj; btc_curator addCuratorEditableObjects [[_obj], false]; \ No newline at end of file From c9dac13974ddb709f538dc028bff8490f2eb3fbf Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 4 Jun 2017 13:07:44 +0200 Subject: [PATCH 103/120] FIX: rep malus not apply for building already damaged by player when a building is damaged by player the building become a dynamical object (not a 1 - Primary but a 8 - TypeVehicle ). Before the filter discard those building. Now player receive malus for building already damaged by player. --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 1 + .../core/fnc/eh/buildingchanged.sqf | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) 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 9aa176396..57ed9db80 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 @@ -190,6 +190,7 @@ if (isServer) then { ["spp", 3.0], ["Powerstation", 3.0], ["Pump", 2.5] ]; + btc_buildings_changed = []; }; //Civ diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/buildingchanged.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/buildingchanged.sqf index cf8773ee1..f34714135 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/buildingchanged.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/buildingchanged.sqf @@ -3,8 +3,10 @@ private _classname = toUpper typeOf _from; private _malus = [btc_rep_malus_building_damaged, btc_rep_malus_building_destroyed] select _isRuin; private _skipCategories = false; -// Accept only static, terrain buildings, discard any dynamically created ones -if (getObjectType _from != 1) exitWith { }; +// Accept only static, terrain buildings, discard any dynamically created ones but keep already damaged buildings. +if ((getObjectType _from != 1) && !(_from in btc_buildings_changed)) exitWith {systemChat "buildings ingnore"}; + +btc_buildings_changed pushBack _to; { if (_classname find (toUpper (_x select 0)) != -1) exitWith { @@ -26,4 +28,4 @@ if (btc_debug) then { typeOf _from, typeOf _to, _malus ]; }; -_malus call btc_fnc_rep_change; \ No newline at end of file +_malus call btc_fnc_rep_change; From 5c1300d20f701cf41357c83c671d1e3c5dfa2222 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 5 Jun 2017 01:21:34 +0200 Subject: [PATCH 104/120] FIX: markers are not delete from database --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/delete.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/delete.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/delete.sqf index ae0d7091a..f4aff1d70 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/delete.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/delete.sqf @@ -13,6 +13,7 @@ profileNamespace setVariable [format ["btc_hm_%1_rep",_name],nil]; profileNamespace setVariable [format ["btc_hm_%1_fobs",_name],nil]; profileNamespace setVariable [format ["btc_hm_%1_vehs",_name],nil]; profileNamespace setVariable [format ["btc_hm_%1_objs",_name],nil]; +profileNamespace setVariable [format ["btc_hm_%1_markers",_name],nil]; profileNamespace setVariable [format ["btc_hm_%1_db",_name],nil]; saveProfileNamespace; From 39989fd437ab905bc627f92dc0e925a5ff55c8f1 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 5 Jun 2017 21:10:37 +0200 Subject: [PATCH 105/120] rmv:debug --- .../core/fnc/eh/buildingchanged.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/buildingchanged.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/buildingchanged.sqf index f34714135..8f561e976 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/buildingchanged.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/buildingchanged.sqf @@ -4,7 +4,7 @@ private _malus = [btc_rep_malus_building_damaged, btc_rep_malus_building_destroy private _skipCategories = false; // Accept only static, terrain buildings, discard any dynamically created ones but keep already damaged buildings. -if ((getObjectType _from != 1) && !(_from in btc_buildings_changed)) exitWith {systemChat "buildings ingnore"}; +if ((getObjectType _from != 1) && !(_from in btc_buildings_changed)) exitWith {}; btc_buildings_changed pushBack _to; @@ -28,4 +28,4 @@ if (btc_debug) then { typeOf _from, typeOf _to, _malus ]; }; -_malus call btc_fnc_rep_change; +_malus call btc_fnc_rep_change; \ No newline at end of file From 47b7c2de347b3a9ba0d098cfc3b567128dca46b9 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Tue, 13 Jun 2017 19:30:08 +0200 Subject: [PATCH 106/120] FIX: lift wreck under water --- .../core/fnc/log/lift_hook_fake.sqf | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/lift_hook_fake.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/lift_hook_fake.sqf index 05d19ffdd..c0639305d 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/lift_hook_fake.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/lift_hook_fake.sqf @@ -2,13 +2,12 @@ private _cargo = _this select 0; private _chopper = _this select 1; -_cargo setVectorUp surfaceNormal position _cargo; private _support1 = "Box_T_NATO_WpsSpecial_F" createVehicle [0,0,0]; -private _pos = getPosATL _cargo; +_support1 enableSimulation false; _support1 setDir getDir _cargo; -_support1 setPosATL _pos; -_support1 setVectorUp surfaceNormal _pos; -_cargo attachTo [_support1, [0,0, -((_cargo worldToModel _pos) select 2)]]; +_support1 setPosATL getPosATL _cargo; +_support1 setVectorUp vectorUp _cargo; +_cargo attachTo [_support1, [0,0, 0.2 + abs(((_cargo modelToWorld [0,0,0]) select 2) - ((_support1 modelToWorld [0,0,0]) select 2))]]; _chopper addEventHandler ["RopeBreak", { (_this select 0) removeEventHandler ["RopeBreak", _thisEventHandler]; @@ -20,6 +19,7 @@ _chopper addEventHandler ["RopeBreak", { deleteVehicle (_this select 2); }]; +_support1 enableSimulation true; clearWeaponCargoGlobal _support1; clearItemCargoGlobal _support1; clearMagazineCargoGlobal _support1; From aca1d510ee42d49b827f6b5552631e44027ef41f Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 18 Jun 2017 11:20:38 +0200 Subject: [PATCH 107/120] FIX: rope break lift --- .../core/fnc/log/lift_hook_fake.sqf | 36 +++++++++++-------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/lift_hook_fake.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/lift_hook_fake.sqf index c0639305d..00fa48b1e 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/lift_hook_fake.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/lift_hook_fake.sqf @@ -2,28 +2,36 @@ private _cargo = _this select 0; private _chopper = _this select 1; -private _support1 = "Box_T_NATO_WpsSpecial_F" createVehicle [0,0,0]; -_support1 enableSimulation false; -_support1 setDir getDir _cargo; -_support1 setPosATL getPosATL _cargo; -_support1 setVectorUp vectorUp _cargo; -_cargo attachTo [_support1, [0,0, 0.2 + abs(((_cargo modelToWorld [0,0,0]) select 2) - ((_support1 modelToWorld [0,0,0]) select 2))]]; +private _simulation = createVehicle ["Box_T_NATO_WpsSpecial_F", getPos _cargo , [], 0, "CAN_COLLIDE"]; +_simulation enableSimulation false; +private _pos = getPosATL _cargo; +if ((_pos select 2) < -0.05) then {_pos = [_pos select 0, _pos select 1, (_pos select 2) - ((getPosATL _cargo) select 2)]}; +_simulation setPosATL _pos; +_simulation setDir getDir _cargo; +_simulation setVectorUp vectorUp _cargo; + +_cargo attachTo [_simulation, [0,0, 0.2 + abs(((_cargo modelToWorld [0,0,0]) select 2) - ((_simulation modelToWorld [0,0,0]) select 2))]]; + _chopper addEventHandler ["RopeBreak", { (_this select 0) removeEventHandler ["RopeBreak", _thisEventHandler]; btc_lifted = false; { + private _pos = getPosATL _x; detach _x; - _x setVectorUp surfaceNormal position _x; + if ((_pos select 2) < -0.05) then { + _x setPosATL [_pos select 0, _pos select 1, 0]; + }; + _x setVectorUp surfaceNormal _pos; } forEach attachedObjects (_this select 2); deleteVehicle (_this select 2); }]; -_support1 enableSimulation true; -clearWeaponCargoGlobal _support1; -clearItemCargoGlobal _support1; -clearMagazineCargoGlobal _support1; -_support1 setObjectTextureGlobal [0, ""]; -_support1 setObjectTextureGlobal [1, ""]; +_simulation enableSimulation true; +clearWeaponCargoGlobal _simulation; +clearItemCargoGlobal _simulation; +clearMagazineCargoGlobal _simulation; +_simulation setObjectTextureGlobal [0, ""]; +_simulation setObjectTextureGlobal [1, ""]; -_support1 \ No newline at end of file +_simulation \ No newline at end of file From 79d85f9fa2bc989edaa9bf2eea7eb63d44279b4f Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 19 Jun 2017 17:48:57 +0200 Subject: [PATCH 108/120] FIX: missing info about mutilation of civilian --- =BTC=co@30_Hearts_and_Minds.Altis/core/doc.sqf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 a4a25afc6..ea8eee0ab 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/doc.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/doc.sqf @@ -115,7 +115,8 @@ When you destroy an hideout or an ammo cache, all the markers related to it will player createDiaryRecord ["Documentation", ["Reputation", " Reputation can be ask to civilian
Bad actions cause bad effetcs.
- Helping the local population, fighting the Oplitas, disarming IED will rise your reputation; killing civilians, firing near civilians for no reason, damaging/destroying buildings, losing vehicles, respawns will decrease your repution. At the beginning you have a very low reputation level, so civilians won't help you revealing important information about Oplitas, they will likely lie instead. + Helping the local population, fighting the Oplitas, disarming IED will rise your reputation; killing civilians, mutilate alive/dead civilian, firing near civilians for no reason, damaging/destroying buildings, losing vehicles, respawns will decrease your repution. At the beginning you have a very low reputation level, so civilians won't help you revealing important information about Oplitas, they will likely lie instead.
+Abort a side mission does not affect reputation. "] ]; From 16fbd1ce2b98677f4f0720ff9717a5df46df864e Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 19 Jun 2017 18:25:16 +0200 Subject: [PATCH 109/120] FIX: wrong default faction for 1.16 --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 d5976b72e..d75693736 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 @@ -39,7 +39,7 @@ class Params { 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}; texts[]={" Bohemia Interactive: NATO (Side: WEST)"," Bohemia Interactive: FIA (Side: WEST)"," Aplion: Bundeswehr (Side: WEST)"," jarrad96: Central African Militia (Side: EAST)"," Bohemia Interactive: AAF (Side: GUER)"," Bohemia Interactive: FIA (Side: GUER)"," Bohemia Interactive: CSAT (Side: EAST)"," Bohemia Interactive: FIA (Side: EAST)"," EricJ: Taliban (Side: EAST)"," Bohemia Interactive: (Side: WEST)","AFR BIS/IceBreakr: Afrenian Army (Side: WEST)","ARA Bohemia Interactive: Abramian Rebel Alliance (Side: WEST)","ARL BIS/IceBreakr: ARL Lingor Rebels (Side: EAST)","btc_militia_mod Giallustio: Afghan Militia (Side: EAST)","CAF CAF MOD TEAM: Africa - Pirates (Side: EAST)","CAF CAF MOD TEAM: East Europe - Rebels (Side: EAST)","CAF CAF MOD TEAM: Middle East - Tribal (Side: EAST)","CEC HcPookie: Cecanian Army (Side: EAST)","CUP Community Upgrade Project: Army of the Czech Republic (Side: WEST)","CUP Bohemia Interactive: Bundeswehr (Side: WEST)","CUP Bohemia Interactive: United States Army (Side: WEST)","CUP Bohemia Interactive: National Party of Chernarus (Side: GUER)","CUP Bohemia Interactive: ION PMC (Side: GUER)","CUP Bohemia Interactive: Royal Army Corps of Sahrani (Side: GUER)","CUP Bohemia Interactive: Sahrani Liberation Army (Side: EAST)","CUP Bohemia Interactive: Takistani Army (Side: EAST)","CUP_Units Community Upgrade Project: British Armed Forces (Side: WEST)","CUP_Units Bohemia Interactive: Takistani Locals (Side: GUER)","CUP_Units Community Upgrade Project: United Nations (Side: GUER)","CUP_Units Community Upgrade Project: Chernarussian Movement of the Red Star (Side: EAST)","CUP_Units Bohemia Interactive: Takistani Militia (Side: EAST)","CUP_Vehicles Community Upgrade Project: Chenarus Defense Forces (Side: WEST)","CUP_Vehicles Community Upgrade Project: Royal New Zealand Navy (Side: WEST)","CUP_Vehicles Community Upgrade Project: United States Marine Corps (Side: WEST)","CUP_Vehicles Community Upgrade Project: Armed Forces of the Russian Federation (Side: EAST)","Expansion Bohemia Interactive: CTRG (Side: WEST)","Expansion Bohemia Interactive: Gendarmerie (Side: WEST)","Expansion Bohemia Interactive: NATO (Pacific) (Side: WEST)","Expansion Bohemia Interactive: Syndikat (Side: GUER)","Expansion Bohemia Interactive: CSAT (Pacific) (Side: EAST)","Expansion Burgess: OPCAN (Colonial Police) (Side: WEST)","Expansion Burgess: OPCAN (Colonial Sheriff) (Side: WEST)","FOW Bohemia Interactive: Imperial Japanese Army (Side: WEST)","FOW Bohemia Interactive: UK (Side: GUER)","FOW Bohemia Interactive: US Army (Side: GUER)","FOW Bohemia Interactive: US Marines Corps (Side: GUER)","FOW Bohemia Interactive: Wehrmacht (Side: WEST)","GAL HcPookie: GAL (Government Army of Lingor) (Side: WEST)","GANGBLUE BIS/IceBreakr: Blue Gang (Side: WEST)","GANGRED BIS/IceBreakr: Red Gang (Side: EAST)","IBR Bohemia Interactive: Alienz (Side: GUER)","ISC Bohemia Interactive: [ISC] Iraqi Police (Side: WEST)","ISC Bohemia Interactive: [ISC] YPG (Side: WEST)","LIB AWAR: ACI (Side: GUER)","LIB AWAR & Lennard: ARR (Side: WEST)","LIB Lennard: Deutsches Afrikakorps (Side: WEST)","LIB AWAR & Joarius: FFI (Side: GUER)","LIB AWAR: Home Army (Polish) (Side: GUER)","LIB AWAR: Luftwaffe (Side: WEST)","LIB AWAR & Lennard: [Winter] Luftwaffe (Side: WEST)","LIB AWAR & Lennard: MKHL (Side: WEST)","LIB Lennard: US North African Corps (Side: GUER)","LIB Lennard: NKVD (Side: EAST)","LIB AWAR: Panzerwaffe (Side: WEST)","LIB AWAR & Lennard: [Winter] Panzerwaffe (Side: WEST)","LIB AWAR: RAAF (Side: GUER)","LIB AWAR: RAF (Side: GUER)","LIB AWAR & Lennard: RBAF (Side: WEST)","LIB AWAR: Red Army (Side: EAST)","LIB AWAR & Lennard: [Winter] Red Army (Side: EAST)","LIB LODU: US Army Air Forces (Side: GUER)","LIB AWAR: [Winter] US Airforce (Side: GUER)","LIB AWAR: US Army (Side: GUER)","LIB LODU: [Winter] US Army (Side: GUER)","LIB Lennard: US 2nd Ranger Battalion (Side: GUER)","LIB I44: US Tank Troops (Side: GUER)","LIB AWAR & Lennard: [Winter] US Tank Troops (Side: GUER)","LIB AWAR: USSR Airforce (Side: EAST)","LIB AWAR & Lennard: [Winter] USSR Airforce (Side: EAST)","LIB AWAR: Tank troops of USSR (Side: EAST)","LIB AWAR & Lennard: [Winter] Tank troops of USSR (Side: EAST)","LIB AWAR: Wehrmacht (Side: WEST)","LIB AWAR & Lennard: [Winter] Wehrmacht (Side: WEST)","LM Burgess: UNSCMC (Urban) (Side: WEST)","LM Burgess: UNSCMC (Desert) (Side: WEST)","LM Burgess: ONI Security (Side: WEST)","LM Burgess: UNSCMC (Snow) (Side: WEST)","LM Burgess: UNSCMC (Wood) (Side: WEST)","LM Burgess: OPCANTest (Side: WEST)","LOP Project OPFOR: Boko Haram (Side: EAST)","LOP Project OPFOR: Irish Republican Army (Side: EAST)","LOP Project OPFOR: Ulster Volunteer Force (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Afghan National Army and Police (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: African Militia (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: African Militia (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Chernarussian Defence Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: ChDKZ (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Iraqi Armed Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: Iranian Armed Forces (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Chernarussian National Insurgents (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Private Military Company (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Royal Army Corps of Sahrani (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Sahrani Liberation Army (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Takistani Armed Forces (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Ultranationalists (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Ukraine's Armed Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: United Nations (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: United Armed Forces of Novorossiya (Side: EAST)","MOL HcPookie: Molatian Army (Side: EAST)","OPTRE Article 2 Studios: Insurrectionists (Side: EAST)","OPTRE Burgess: OPCAN (Side: WEST)","OPTRE Burgess: OPCAN (UEG Colonial Guard) (Side: WEST)","OPTRE Burgess: Colonial Militia (OPCAN) (Side: GUER)","OPTRE Burgess: OPCAN (PMC) (Side: GUER)","OPTRE Burgess: Halo Wars Rebels (OPCAN) (Side: EAST)","OPTRE Burgess: Common Criminals (OPCAN) (Side: EAST)","OPTRE Burgess: OPCAN (UNSC Army) (Side: WEST)","OPTRE Burgess: United Rebel Air Force(OPCAN) (Side: EAST)","OPTRE Burgess: United Rebel Army Desert(OPCAN) (Side: EAST)","OPTRE Burgess: United Rebel Army BattleJumpers (OPCAN) (Side: EAST)","OPTRE Burgess: United Rebel Army Tropic(OPCAN) (Side: EAST)","OPTRE Bohemia Interactive: United Rebel Army Ground Vehicles (OPCAN) (Side: EAST)","OPTRE Burgess: United Rebel Army Wood(OPCAN) (Side: EAST)","OPTRE Burgess: OPCAN (WARZONE BLUE) (Side: WEST)","OPTRE Burgess: OPCAN (WARZONE RED) (Side: EAST)","OPTRE Article 2 Studios: UNSCDF (Side: WEST)","RHS_AFRF Bohemia Interactive: [ISC] al-Nusra Front (Side: GUER)","RHS_AFRF Bohemia Interactive: [ISC] Iraqi Army (Side: WEST)","RHS_AFRF Bohemia Interactive: [ISC] Islamic State (Side: GUER)","RHS_AFRF Bohemia Interactive: [ISC] Islamic State (Side: EAST)","RHS_AFRF Bohemia Interactive: [ISC] Peshmerga (Side: WEST)","RHS_AFRF Bohemia Interactive: [ISC] Syrian Arab Army (Side: EAST)","RHS_AFRF Red Hammer Studios: Eastern Militia (Side: GUER)","RHS_AFRF Red Hammer Studios: Russia (MSV) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (RVA) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (TV) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VDV) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VMF) (Side: EAST)","RHS_AFRF RHS: Russia (VPVO) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VV) (Side: EAST)","RHS_AFRF Bohemia Interactive: Russia (VVS - Grey) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VVS - Camo) (Side: EAST)","RHS_GREF Red Hammer Studios: Chernarus (Air Force) (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (Air Force) (Side: WEST)","RHS_GREF RHS (A2 port): Chernarus (Ground Forces) (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (Ground Forces) (Side: WEST)","RHS_GREF Red Hammer Studios: Chernarus (National Guard) (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (National Guard) (Side: WEST)","RHS_GREF Red Hammer Studios: ChDKZ Insurgents (Side: EAST)","RHS_GREF Red Hammer Studios: ChDKZ Insurgents (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (U.N. Peacekeepers) (Side: GUER)","RHS_SAF Red Hammer Studios: SAF (RVIPVO) (Side: GUER)","RHS_SAF Red Hammer Studios: SAF (KOV) (Side: GUER)","RHS_SAF Red Hammer Studios: SAF (UN Peacekeepers) (Side: GUER)","RHS_USAF Red Hammer Studios: USA (SOCOM) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (USAF) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (Army - D) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (Army - W) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (USMC - D) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (USMC - W) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (Navy) (Side: WEST)","RHSGREF Red Hammer Studios: Nationalist Troops (Side: GUER)","SG Stagler: Sturmtroopers (Side: WEST)","SG Stagler: [Winter] Sturmtroopers (Side: WEST)","SG Stagler: Tank Sturmtroopers (Side: WEST)","UNSC Morthon: UNSCMC (Side: WEST)","UNSUNG Bohemia Interactive: Australia (UNSUNG) (Side: GUER)","UNSUNG Razorback: N.V.A. (UNSUNG) (Side: EAST)","UNSUNG Bohemia Interactive: V.C. (UNSUNG) (Side: EAST)","UNSUNG Bohemia Interactive: A.R.V.N. (UNSUNG) (Side: GUER)","UNSUNG Bohemia Interactive: New Zealand (UNSUNG) (Side: GUER)","UNSUNG Bohemia Interactive: U.S. (UNSUNG) (Side: WEST)","USML segen: Armed Islamic Front (Side: GUER)"}; - default = 5; + default = 7; }; class btc_p_AA { title = " Enemy uses Anti-Air:"; From ede0a735f3a0e89bb26371cea32a84ed5be608e7 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 25 Jun 2017 10:48:09 +0200 Subject: [PATCH 110/120] FIX: wreck underwater flip and fly in the sky --- .../core/fnc/log/lift_hook_fake.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/lift_hook_fake.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/lift_hook_fake.sqf index 00fa48b1e..55fb0e4ed 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/lift_hook_fake.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/log/lift_hook_fake.sqf @@ -17,12 +17,12 @@ _chopper addEventHandler ["RopeBreak", { (_this select 0) removeEventHandler ["RopeBreak", _thisEventHandler]; btc_lifted = false; { - private _pos = getPosATL _x; detach _x; + _x setVectorUp surfaceNormal getPosATL _x; + private _pos = getPosATL _x; if ((_pos select 2) < -0.05) then { _x setPosATL [_pos select 0, _pos select 1, 0]; }; - _x setVectorUp surfaceNormal _pos; } forEach attachedObjects (_this select 2); deleteVehicle (_this select 2); }]; From 6b025d651bb27bd605c16aefe4ee29400b34b9ab Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Wed, 28 Jun 2017 19:26:06 +0200 Subject: [PATCH 111/120] FIX: EN en CIV in mission param was not intuitive --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp | 8 ++++---- .../core/fnc/common/get_class.sqf | 1 + 3 files changed, 6 insertions(+), 5 deletions(-) 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 9e2ef7e49..4b78e8ffd 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 @@ -488,7 +488,7 @@ btc_lift_HUD_y = 0.848; 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","BUNDESWEHR","CAR","IND_F","IND_G_F","OPF_F","OPF_G_F","TBAN","UNSUNG","AFR_ARMY","ARA_ARMY","ARL_ARMY","BTC_AM","CAF_AG_AFR_P","CAF_AG_EEUR_R","CAF_AG_ME_T","CEC_ARMY","CUP_B_CZ","CUP_B_GER","CUP_B_US_ARMY","CUP_I_NAPA","CUP_I_PMC_ION","CUP_I_RACS","CUP_O_SLA","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","BLU_CTRG_F","BLU_GEN_F","BLU_T_F","IND_C_F","OPF_T_F","OPTRE_OPCAN_CPD","OPTRE_OPCAN_CSD","FOW_IJA","FOW_UK","FOW_USA","FOW_USMC","FOW_WEHRMACHT","GAL_ARMY","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_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","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_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_NATIONALIST","SG_STURM","SG_STURM_W","SG_STURMPANZER","UNSC_2531","UNSUNG_AUS","UNSUNG_E","UNSUNG_EV","UNSUNG_G","UNSUNG_NZ","UNSUNG_W","USML_AIF"]; //All factions +private _allfaction = ["BLU_F","BLU_G_F","BUNDESWEHR","CAR","IND_F","IND_G_F","OPF_F","OPF_G_F","TBAN","UNSUNG","AFR_ARMY","ARA_ARMY","ARL_ARMY","BTC_AM","CAF_AG_AFR_P","CAF_AG_EEUR_R","CAF_AG_ME_T","CEC_ARMY","CUP_B_CZ","CUP_B_GER","CUP_B_US_ARMY","CUP_I_NAPA","CUP_I_PMC_ION","CUP_I_RACS","CUP_O_SLA","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","BLU_CTRG_F","BLU_GEN_F","BLU_T_F","IND_C_F","OPF_T_F","OPTRE_OPCAN_CPD","OPTRE_OPCAN_CSD","FOW_UK","FOW_IJA","FOW_USA","FOW_USMC","GAL_ARMY","GANGBLUE_ARMY","GANGRED_ARMY","IBR_ZETABORN_FACTION","ISC_IP_B","ISC_YPG_B","LIB_101AB","LIB_82AB","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_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","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_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_NATIONALIST","SG_STURM","SG_STURM_W","SG_STURMPANZER","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 /*, "IND_F"*/], _p_en_AA, _p_en_tank] call btc_fnc_mil_class; //Create classes from factions, you can combine factions from the SAME side like that : [[_p_en , "IND_F"], _p_en_AA, _p_en_tank] call btc_fnc_mil_class; 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 d75693736..949884a25 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 @@ -37,8 +37,8 @@ class Params { }; 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}; - texts[]={" Bohemia Interactive: NATO (Side: WEST)"," Bohemia Interactive: FIA (Side: WEST)"," Aplion: Bundeswehr (Side: WEST)"," jarrad96: Central African Militia (Side: EAST)"," Bohemia Interactive: AAF (Side: GUER)"," Bohemia Interactive: FIA (Side: GUER)"," Bohemia Interactive: CSAT (Side: EAST)"," Bohemia Interactive: FIA (Side: EAST)"," EricJ: Taliban (Side: EAST)"," Bohemia Interactive: (Side: WEST)","AFR BIS/IceBreakr: Afrenian Army (Side: WEST)","ARA Bohemia Interactive: Abramian Rebel Alliance (Side: WEST)","ARL BIS/IceBreakr: ARL Lingor Rebels (Side: EAST)","btc_militia_mod Giallustio: Afghan Militia (Side: EAST)","CAF CAF MOD TEAM: Africa - Pirates (Side: EAST)","CAF CAF MOD TEAM: East Europe - Rebels (Side: EAST)","CAF CAF MOD TEAM: Middle East - Tribal (Side: EAST)","CEC HcPookie: Cecanian Army (Side: EAST)","CUP Community Upgrade Project: Army of the Czech Republic (Side: WEST)","CUP Bohemia Interactive: Bundeswehr (Side: WEST)","CUP Bohemia Interactive: United States Army (Side: WEST)","CUP Bohemia Interactive: National Party of Chernarus (Side: GUER)","CUP Bohemia Interactive: ION PMC (Side: GUER)","CUP Bohemia Interactive: Royal Army Corps of Sahrani (Side: GUER)","CUP Bohemia Interactive: Sahrani Liberation Army (Side: EAST)","CUP Bohemia Interactive: Takistani Army (Side: EAST)","CUP_Units Community Upgrade Project: British Armed Forces (Side: WEST)","CUP_Units Bohemia Interactive: Takistani Locals (Side: GUER)","CUP_Units Community Upgrade Project: United Nations (Side: GUER)","CUP_Units Community Upgrade Project: Chernarussian Movement of the Red Star (Side: EAST)","CUP_Units Bohemia Interactive: Takistani Militia (Side: EAST)","CUP_Vehicles Community Upgrade Project: Chenarus Defense Forces (Side: WEST)","CUP_Vehicles Community Upgrade Project: Royal New Zealand Navy (Side: WEST)","CUP_Vehicles Community Upgrade Project: United States Marine Corps (Side: WEST)","CUP_Vehicles Community Upgrade Project: Armed Forces of the Russian Federation (Side: EAST)","Expansion Bohemia Interactive: CTRG (Side: WEST)","Expansion Bohemia Interactive: Gendarmerie (Side: WEST)","Expansion Bohemia Interactive: NATO (Pacific) (Side: WEST)","Expansion Bohemia Interactive: Syndikat (Side: GUER)","Expansion Bohemia Interactive: CSAT (Pacific) (Side: EAST)","Expansion Burgess: OPCAN (Colonial Police) (Side: WEST)","Expansion Burgess: OPCAN (Colonial Sheriff) (Side: WEST)","FOW Bohemia Interactive: Imperial Japanese Army (Side: WEST)","FOW Bohemia Interactive: UK (Side: GUER)","FOW Bohemia Interactive: US Army (Side: GUER)","FOW Bohemia Interactive: US Marines Corps (Side: GUER)","FOW Bohemia Interactive: Wehrmacht (Side: WEST)","GAL HcPookie: GAL (Government Army of Lingor) (Side: WEST)","GANGBLUE BIS/IceBreakr: Blue Gang (Side: WEST)","GANGRED BIS/IceBreakr: Red Gang (Side: EAST)","IBR Bohemia Interactive: Alienz (Side: GUER)","ISC Bohemia Interactive: [ISC] Iraqi Police (Side: WEST)","ISC Bohemia Interactive: [ISC] YPG (Side: WEST)","LIB AWAR: ACI (Side: GUER)","LIB AWAR & Lennard: ARR (Side: WEST)","LIB Lennard: Deutsches Afrikakorps (Side: WEST)","LIB AWAR & Joarius: FFI (Side: GUER)","LIB AWAR: Home Army (Polish) (Side: GUER)","LIB AWAR: Luftwaffe (Side: WEST)","LIB AWAR & Lennard: [Winter] Luftwaffe (Side: WEST)","LIB AWAR & Lennard: MKHL (Side: WEST)","LIB Lennard: US North African Corps (Side: GUER)","LIB Lennard: NKVD (Side: EAST)","LIB AWAR: Panzerwaffe (Side: WEST)","LIB AWAR & Lennard: [Winter] Panzerwaffe (Side: WEST)","LIB AWAR: RAAF (Side: GUER)","LIB AWAR: RAF (Side: GUER)","LIB AWAR & Lennard: RBAF (Side: WEST)","LIB AWAR: Red Army (Side: EAST)","LIB AWAR & Lennard: [Winter] Red Army (Side: EAST)","LIB LODU: US Army Air Forces (Side: GUER)","LIB AWAR: [Winter] US Airforce (Side: GUER)","LIB AWAR: US Army (Side: GUER)","LIB LODU: [Winter] US Army (Side: GUER)","LIB Lennard: US 2nd Ranger Battalion (Side: GUER)","LIB I44: US Tank Troops (Side: GUER)","LIB AWAR & Lennard: [Winter] US Tank Troops (Side: GUER)","LIB AWAR: USSR Airforce (Side: EAST)","LIB AWAR & Lennard: [Winter] USSR Airforce (Side: EAST)","LIB AWAR: Tank troops of USSR (Side: EAST)","LIB AWAR & Lennard: [Winter] Tank troops of USSR (Side: EAST)","LIB AWAR: Wehrmacht (Side: WEST)","LIB AWAR & Lennard: [Winter] Wehrmacht (Side: WEST)","LM Burgess: UNSCMC (Urban) (Side: WEST)","LM Burgess: UNSCMC (Desert) (Side: WEST)","LM Burgess: ONI Security (Side: WEST)","LM Burgess: UNSCMC (Snow) (Side: WEST)","LM Burgess: UNSCMC (Wood) (Side: WEST)","LM Burgess: OPCANTest (Side: WEST)","LOP Project OPFOR: Boko Haram (Side: EAST)","LOP Project OPFOR: Irish Republican Army (Side: EAST)","LOP Project OPFOR: Ulster Volunteer Force (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Afghan National Army and Police (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: African Militia (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: African Militia (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Chernarussian Defence Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: ChDKZ (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Iraqi Armed Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: Iranian Armed Forces (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Chernarussian National Insurgents (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Private Military Company (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Royal Army Corps of Sahrani (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Sahrani Liberation Army (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Takistani Armed Forces (Side: EAST)","LOP_LeightsOPFOR Project OPFOR: Ultranationalists (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: Ukraine's Armed Forces (Side: WEST)","LOP_LeightsOPFOR Project OPFOR: United Nations (Side: GUER)","LOP_LeightsOPFOR Project OPFOR: United Armed Forces of Novorossiya (Side: EAST)","MOL HcPookie: Molatian Army (Side: EAST)","OPTRE Article 2 Studios: Insurrectionists (Side: EAST)","OPTRE Burgess: OPCAN (Side: WEST)","OPTRE Burgess: OPCAN (UEG Colonial Guard) (Side: WEST)","OPTRE Burgess: Colonial Militia (OPCAN) (Side: GUER)","OPTRE Burgess: OPCAN (PMC) (Side: GUER)","OPTRE Burgess: Halo Wars Rebels (OPCAN) (Side: EAST)","OPTRE Burgess: Common Criminals (OPCAN) (Side: EAST)","OPTRE Burgess: OPCAN (UNSC Army) (Side: WEST)","OPTRE Burgess: United Rebel Air Force(OPCAN) (Side: EAST)","OPTRE Burgess: United Rebel Army Desert(OPCAN) (Side: EAST)","OPTRE Burgess: United Rebel Army BattleJumpers (OPCAN) (Side: EAST)","OPTRE Burgess: United Rebel Army Tropic(OPCAN) (Side: EAST)","OPTRE Bohemia Interactive: United Rebel Army Ground Vehicles (OPCAN) (Side: EAST)","OPTRE Burgess: United Rebel Army Wood(OPCAN) (Side: EAST)","OPTRE Burgess: OPCAN (WARZONE BLUE) (Side: WEST)","OPTRE Burgess: OPCAN (WARZONE RED) (Side: EAST)","OPTRE Article 2 Studios: UNSCDF (Side: WEST)","RHS_AFRF Bohemia Interactive: [ISC] al-Nusra Front (Side: GUER)","RHS_AFRF Bohemia Interactive: [ISC] Iraqi Army (Side: WEST)","RHS_AFRF Bohemia Interactive: [ISC] Islamic State (Side: GUER)","RHS_AFRF Bohemia Interactive: [ISC] Islamic State (Side: EAST)","RHS_AFRF Bohemia Interactive: [ISC] Peshmerga (Side: WEST)","RHS_AFRF Bohemia Interactive: [ISC] Syrian Arab Army (Side: EAST)","RHS_AFRF Red Hammer Studios: Eastern Militia (Side: GUER)","RHS_AFRF Red Hammer Studios: Russia (MSV) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (RVA) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (TV) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VDV) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VMF) (Side: EAST)","RHS_AFRF RHS: Russia (VPVO) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VV) (Side: EAST)","RHS_AFRF Bohemia Interactive: Russia (VVS - Grey) (Side: EAST)","RHS_AFRF Red Hammer Studios: Russia (VVS - Camo) (Side: EAST)","RHS_GREF Red Hammer Studios: Chernarus (Air Force) (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (Air Force) (Side: WEST)","RHS_GREF RHS (A2 port): Chernarus (Ground Forces) (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (Ground Forces) (Side: WEST)","RHS_GREF Red Hammer Studios: Chernarus (National Guard) (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (National Guard) (Side: WEST)","RHS_GREF Red Hammer Studios: ChDKZ Insurgents (Side: EAST)","RHS_GREF Red Hammer Studios: ChDKZ Insurgents (Side: GUER)","RHS_GREF Red Hammer Studios: Chernarus (U.N. Peacekeepers) (Side: GUER)","RHS_SAF Red Hammer Studios: SAF (RVIPVO) (Side: GUER)","RHS_SAF Red Hammer Studios: SAF (KOV) (Side: GUER)","RHS_SAF Red Hammer Studios: SAF (UN Peacekeepers) (Side: GUER)","RHS_USAF Red Hammer Studios: USA (SOCOM) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (USAF) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (Army - D) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (Army - W) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (USMC - D) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (USMC - W) (Side: WEST)","RHS_USAF Red Hammer Studios: USA (Navy) (Side: WEST)","RHSGREF Red Hammer Studios: Nationalist Troops (Side: GUER)","SG Stagler: Sturmtroopers (Side: WEST)","SG Stagler: [Winter] Sturmtroopers (Side: WEST)","SG Stagler: Tank Sturmtroopers (Side: WEST)","UNSC Morthon: UNSCMC (Side: WEST)","UNSUNG Bohemia Interactive: Australia (UNSUNG) (Side: GUER)","UNSUNG Razorback: N.V.A. (UNSUNG) (Side: EAST)","UNSUNG Bohemia Interactive: V.C. (UNSUNG) (Side: EAST)","UNSUNG Bohemia Interactive: A.R.V.N. (UNSUNG) (Side: GUER)","UNSUNG Bohemia Interactive: New Zealand (UNSUNG) (Side: GUER)","UNSUNG Bohemia Interactive: U.S. (UNSUNG) (Side: WEST)","USML segen: Armed Islamic Front (Side: GUER)"}; + 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}; + texts[]={"0 - Bohemia Interactive: OTAN (Side: WEST)","1 - Bohemia Interactive: FIA (Side: WEST)","2 - Aplion: Bundeswehr (Side: WEST)","3 - jarrad96: Central African Militia (Side: EAST)","4 - Bohemia Interactive: AAF (Side: GUER)","5 - Bohemia Interactive: FIA (Side: GUER)","6 - Bohemia Interactive: CSAT (Side: EAST)","7 - Bohemia Interactive: FIA (Side: EAST)","8 - EricJ: Taliban (Side: EAST)","9 - Bohemia Interactive: (Side: WEST)","10 -AFR BIS/IceBreakr: Afrenian Army (Side: WEST)","11 -ARA Bohemia Interactive: Abramian Rebel Alliance (Side: WEST)","12 -ARL BIS/IceBreakr: ARL Lingor Rebels (Side: EAST)","13 -btc_militia_mod Giallustio: Afghan Militia (Side: EAST)","14 -CAF CAF MOD TEAM: Africa - Pirates (Side: EAST)","15 -CAF CAF MOD TEAM: East Europe - Rebels (Side: EAST)","16 -CAF CAF MOD TEAM: Middle East - Tribal (Side: EAST)","17 -CEC HcPookie: Cecanian Army (Side: EAST)","18 -CUP Community Upgrade Project: Army of the Czech Republic (Side: WEST)","19 -CUP Bohemia Interactive: Bundeswehr (Side: WEST)","20 -CUP Bohemia Interactive: United States Army (Side: WEST)","21 -CUP Bohemia Interactive: National Party of Chernarus (Side: GUER)","22 -CUP Bohemia Interactive: ION PMC (Side: GUER)","23 -CUP Bohemia Interactive: Royal Army Corps of Sahrani (Side: GUER)","24 -CUP Bohemia Interactive: Sahrani Liberation Army (Side: EAST)","25 -CUP Bohemia Interactive: Takistani Army (Side: EAST)","26 -CUP_Units Community Upgrade Project: British Armed Forces (Side: WEST)","27 -CUP_Units Bohemia Interactive: Takistani Locals (Side: GUER)","28 -CUP_Units Community Upgrade Project: United Nations (Side: GUER)","29 -CUP_Units Community Upgrade Project: Chernarussian Movement of the Red Star (Side: EAST)","30 -CUP_Units Bohemia Interactive: Takistani Militia (Side: EAST)","31 -CUP_Vehicles Community Upgrade Project: Chenarus Defense Forces (Side: WEST)","32 -CUP_Vehicles Community Upgrade Project: Royal New Zealand Navy (Side: WEST)","33 -CUP_Vehicles Community Upgrade Project: United States Marine Corps (Side: WEST)","34 -CUP_Vehicles Community Upgrade Project: Armed Forces of the Russian Federation (Side: EAST)","35 -Expansion Bohemia Interactive: CTRG (Side: WEST)","36 -Expansion Bohemia Interactive: Gendarmerie (Side: WEST)","37 -Expansion Bohemia Interactive: OTAN (Pacifique) (Side: WEST)","38 -Expansion Bohemia Interactive: Syndikat (Side: GUER)","39 -Expansion Bohemia Interactive: CSAT (Pacifique) (Side: EAST)","40 -Expansion Burgess: OPCAN (Colonial Police) (Side: WEST)","41 -Expansion Burgess: OPCAN (Colonial Sheriff) (Side: WEST)","42 -FOW Bohemia Interactive: UK (Side: GUER)","43 -fow_mod FOW team: Imperial Japanese Army (Side: WEST)","44 -fow_mod FOW team: US Army (Side: GUER)","45 -fow_mod FOW team: US Marines Corps (Side: GUER)","46 -GAL HcPookie: GAL (Government Army of Lingor) (Side: WEST)","47 -GANGBLUE BIS/IceBreakr: Blue Gang (Side: WEST)","48 -GANGRED BIS/IceBreakr: Red Gang (Side: EAST)","49 -IBR Bohemia Interactive: Alienz (Side: GUER)","50 -ISC Bohemia Interactive: [ISC] Iraqi Police (Side: WEST)","51 -ISC Bohemia Interactive: [ISC] YPG (Side: WEST)","52 -LIB El Tyranos: (Side: GUER)","53 -LIB El Tyranos: (Side: GUER)","54 -LIB AWAR: ACI (Side: GUER)","55 -LIB AWAR & Lennard: ARR (Side: WEST)","56 -LIB Lennard: Deutsches Afrikakorps (Side: WEST)","57 -LIB AWAR & Joarius: FFI (Side: GUER)","58 -LIB AWAR: Armia Krajowa (Polonais) (Side: GUER)","59 -LIB AWAR: Luftwaffe (Side: WEST)","60 -LIB AWAR & Lennard: [Winter] Luftwaffe (Side: WEST)","61 -LIB AWAR & Lennard: MKHL (Side: WEST)","62 -LIB Lennard: US North African Corps (Side: GUER)","63 -LIB Lennard: NKVD (Side: EAST)","64 -LIB AWAR: Panzerwaffe (Side: WEST)","65 -LIB AWAR & Lennard: [Winter] Panzerwaffe (Side: WEST)","66 -LIB AWAR: RAAF (Side: GUER)","67 -LIB IFA3 Team: RAF (Side: GUER)","68 -LIB AWAR & Lennard: RBAF (Side: WEST)","69 -LIB AWAR: Red Army (Side: EAST)","70 -LIB AWAR & Lennard: [Winter] Red Army (Side: EAST)","71 -LIB El Tyranos & Jove Chiere: 101st Airborne Division (Side: GUER)","72 -LIB AWAR: US Army Air Forces (Side: GUER)","73 -LIB AWAR: [Winter] US Airforce (Side: GUER)","74 -LIB AWAR: US Army (Side: GUER)","75 -LIB LODU: [Winter] US Army (Side: GUER)","76 -LIB Lennard: US 2nd Ranger Battalion (Side: GUER)","77 -LIB I44: US Tank Troops (Side: GUER)","78 -LIB AWAR & Lennard: [Winter] US Tank Troops (Side: GUER)","79 -LIB AWAR: USSR Airforce (Side: EAST)","80 -LIB AWAR & Lennard: [Winter] USSR Airforce (Side: EAST)","81 -LIB AWAR: Tank troops of USSR (Side: EAST)","82 -LIB AWAR & Lennard: [Winter] Tank troops of USSR (Side: EAST)","83 -LIB AWAR: Wehrmacht (Side: WEST)","84 -LIB AWAR & Lennard: [Winter] Wehrmacht (Side: WEST)","85 -LM Burgess: UNSCMC (Urban) (Side: WEST)","86 -LM Burgess: UNSCMC (Desert) (Side: WEST)","87 -LM Burgess: ONI Security (Side: WEST)","88 -LM Burgess: UNSCMC (Snow) (Side: WEST)","89 -LM Burgess: UNSCMC (Wood) (Side: WEST)","90 -LM Burgess: OPCANTest (Side: WEST)","91 -LOP Project OPFOR: Boko Haram (Side: EAST)","92 -LOP Project OPFOR: Irish Republican Army (Side: EAST)","93 -LOP Project OPFOR: Ulster Volunteer Force (Side: GUER)","94 -LOP_LeightsOPFOR Project OPFOR: Afghan National Army and Police (Side: WEST)","95 -LOP_LeightsOPFOR Project OPFOR: African Militia (Side: GUER)","96 -LOP_LeightsOPFOR Project OPFOR: African Militia (Side: EAST)","97 -LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: GUER)","98 -LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: EAST)","99 -LOP_LeightsOPFOR Project OPFOR: Chernarussian Defence Forces (Side: WEST)","100 -LOP_LeightsOPFOR Project OPFOR: ChDKZ (Side: EAST)","101 -LOP_LeightsOPFOR Project OPFOR: Iraqi Armed Forces (Side: WEST)","102 -LOP_LeightsOPFOR Project OPFOR: Iranian Armed Forces (Side: GUER)","103 -LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: GUER)","104 -LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: EAST)","105 -LOP_LeightsOPFOR Project OPFOR: Chernarussian National Insurgents (Side: GUER)","106 -LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: WEST)","107 -LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: GUER)","108 -LOP_LeightsOPFOR Project OPFOR: Private Military Company (Side: GUER)","109 -LOP_LeightsOPFOR Project OPFOR: Royal Army Corps of Sahrani (Side: GUER)","110 -LOP_LeightsOPFOR Project OPFOR: Sahrani Liberation Army (Side: EAST)","111 -LOP_LeightsOPFOR Project OPFOR: Takistani Armed Forces (Side: EAST)","112 -LOP_LeightsOPFOR Project OPFOR: Ultranationalists (Side: GUER)","113 -LOP_LeightsOPFOR Project OPFOR: Ukraine's Armed Forces (Side: WEST)","114 -LOP_LeightsOPFOR Project OPFOR: United Nations (Side: GUER)","115 -LOP_LeightsOPFOR Project OPFOR: United Armed Forces of Novorossiya (Side: EAST)","116 -MOL HcPookie: Molatian Army (Side: EAST)","117 -OPTRE Article 2 Studios: Insurrectionists (Side: EAST)","118 -OPTRE Burgess: OPCAN (Side: WEST)","119 -OPTRE Burgess: OPCAN (UEG Colonial Guard) (Side: WEST)","120 -OPTRE Burgess: Colonial Militia (OPCAN) (Side: GUER)","121 -OPTRE Burgess: OPCAN (PMC) (Side: GUER)","122 -OPTRE Burgess: Halo Wars Rebels (OPCAN) (Side: EAST)","123 -OPTRE Burgess: Common Criminals (OPCAN) (Side: EAST)","124 -OPTRE Burgess: OPCAN (UNSC Army) (Side: WEST)","125 -OPTRE Burgess: United Rebel Air Force(OPCAN) (Side: EAST)","126 -OPTRE Burgess: United Rebel Army Desert(OPCAN) (Side: EAST)","127 -OPTRE Burgess: United Rebel Army BattleJumpers (OPCAN) (Side: EAST)","128 -OPTRE Burgess: United Rebel Army Tropic(OPCAN) (Side: EAST)","129 -OPTRE Bohemia Interactive: United Rebel Army Ground Vehicles (OPCAN) (Side: EAST)","130 -OPTRE Burgess: United Rebel Army Wood(OPCAN) (Side: EAST)","131 -OPTRE Burgess: OPCAN (WARZONE BLUE) (Side: WEST)","132 -OPTRE Burgess: OPCAN (WARZONE RED) (Side: EAST)","133 -OPTRE Article 2 Studios: UNSCDF (Side: WEST)","134 -RHS_AFRF Bohemia Interactive: [ISC] al-Nusra Front (Side: GUER)","135 -RHS_AFRF Bohemia Interactive: [ISC] Iraqi Army (Side: WEST)","136 -RHS_AFRF Bohemia Interactive: [ISC] Islamic State (Side: GUER)","137 -RHS_AFRF Bohemia Interactive: [ISC] Islamic State (Side: EAST)","138 -RHS_AFRF Bohemia Interactive: [ISC] Peshmerga (Side: WEST)","139 -RHS_AFRF Bohemia Interactive: [ISC] Syrian Arab Army (Side: EAST)","140 -RHS_AFRF Red Hammer Studios: Eastern Militia (Side: GUER)","141 -RHS_AFRF Red Hammer Studios: Russia (MSV) (Side: EAST)","142 -RHS_AFRF Red Hammer Studios: Russia (RVA) (Side: EAST)","143 -RHS_AFRF Red Hammer Studios: Russia (TV) (Side: EAST)","144 -RHS_AFRF Red Hammer Studios: Russia (VDV) (Side: EAST)","145 -RHS_AFRF Red Hammer Studios: Russia (VMF) (Side: EAST)","146 -RHS_AFRF RHS: Russia (VPVO) (Side: EAST)","147 -RHS_AFRF Red Hammer Studios: Russia (VV) (Side: EAST)","148 -RHS_AFRF Bohemia Interactive: Russia (VVS - Grey) (Side: EAST)","149 -RHS_AFRF Red Hammer Studios: Russia (VVS - Camo) (Side: EAST)","150 -RHS_GREF Red Hammer Studios: Chernarus (Air Force) (Side: GUER)","151 -RHS_GREF Red Hammer Studios: Chernarus (Air Force) (Side: WEST)","152 -RHS_GREF RHS (A2 port): Chernarus (Ground Forces) (Side: GUER)","153 -RHS_GREF Red Hammer Studios: Chernarus (Ground Forces) (Side: WEST)","154 -RHS_GREF Red Hammer Studios: Chernarus (National Guard) (Side: GUER)","155 -RHS_GREF Red Hammer Studios: Chernarus (National Guard) (Side: WEST)","156 -RHS_GREF Red Hammer Studios: ChDKZ Insurgents (Side: EAST)","157 -RHS_GREF Red Hammer Studios: ChDKZ Insurgents (Side: GUER)","158 -RHS_GREF Red Hammer Studios: Chernarus (U.N. Peacekeepers) (Side: GUER)","159 -RHS_SAF Red Hammer Studios: SAF (RVIPVO) (Side: GUER)","160 -RHS_SAF Red Hammer Studios: SAF (KOV) (Side: GUER)","161 -RHS_SAF Red Hammer Studios: SAF (Casques Bleus) (Side: GUER)","162 -RHS_USAF Red Hammer Studios: USA (SOCOM) (Side: WEST)","163 -RHS_USAF Red Hammer Studios: USA (USAF) (Side: WEST)","164 -RHS_USAF Red Hammer Studios: USA (Army - D) (Side: WEST)","165 -RHS_USAF Red Hammer Studios: USA (Army - W) (Side: WEST)","166 -RHS_USAF Red Hammer Studios: USA (USMC - D) (Side: WEST)","167 -RHS_USAF Red Hammer Studios: USA (USMC - W) (Side: WEST)","168 -RHS_USAF Red Hammer Studios: USA (Navy) (Side: WEST)","169 -RHSGREF Red Hammer Studios: Nationalist Troops (Side: GUER)","170 -SG Stagler: Sturmtroopers (Side: WEST)","171 -SG Stagler: [Winter] Sturmtroopers (Side: WEST)","172 -SG Stagler: Tank Sturmtroopers (Side: WEST)","173 -UNSC Morthon: UNSCMC (Side: WEST)","174 -UNSUNG Bohemia Interactive: Australia (UNSUNG) (Side: GUER)","175 -UNSUNG Razorback: N.V.A. (UNSUNG) (Side: EAST)","176 -UNSUNG Bohemia Interactive: V.C. (UNSUNG) (Side: EAST)","177 -UNSUNG Bohemia Interactive: A.R.V.N. (UNSUNG) (Side: GUER)","178 -UNSUNG Bohemia Interactive: New Zealand (UNSUNG) (Side: GUER)","179 -UNSUNG Bohemia Interactive: U.S. (UNSUNG) (Side: WEST)","180 -USML segen: Armed Islamic Front (Side: GUER)"}; default = 7; }; class btc_p_AA { @@ -56,13 +56,13 @@ class Params { class btc_p_civ { title = " Civil type:"; values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; - texts[]={" EricJ: Afghan Civilians (Side: CIV)"," Bohemia Interactive: Civilians (Side: CIV)","btc_militia_mod Giallustio: Afghan Civilians (Side: CIV)","CAF CAF MOD TEAM: African (Side: CIV)","CAF CAF MOD TEAM: Middle Eastern (Side: CIV)","CUP_Units Community Upgrade Project: Civilians (Russian) (Side: CIV)","CUP_Vehicles Bohemia Interactive: Civilians (Chenarus) (Side: CIV)","CUP_Vehicles Bohemia Interactive: Civilians (Sahrani) (Side: CIV)","CUP_Vehicles Community Upgrade Project: Civilians (Takistan) (Side: CIV)","LIB Reyhard & Joarius: 40s Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: African Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Eastern European Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Civilians (Side: CIV)","OPTRE Bohemia Interactive: Civilians (UEG) (Side: CIV)","RDS_CIV_PACK reyhard: Russians (Side: CIV)","UNSUNG Bohemia Interactive: Vietnamese (UNSUNG) (Side: CIV)"}; + 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 -CUP_Units Community Upgrade Project: Civilians (Russian) (Side: CIV)","6 -CUP_Vehicles Bohemia Interactive: Civilians (Chenarus) (Side: CIV)","7 -CUP_Vehicles Bohemia Interactive: Civilians (Sahrani) (Side: CIV)","8 -CUP_Vehicles Community Upgrade Project: Civilians (Takistan) (Side: CIV)","9 -LIB Reyhard & Joarius: 40s Civilians (Side: CIV)","10 -LOP_LeightsOPFOR Project OPFOR: African Civilians (Side: CIV)","11 -LOP_LeightsOPFOR Project OPFOR: Eastern European Civilians (Side: CIV)","12 -LOP_LeightsOPFOR Project OPFOR: Middle Eastern Civilians (Side: CIV)","13 -OPTRE Bohemia Interactive: Civilians (UEG) (Side: CIV)","14 -RDS_CIV_PACK reyhard: Russians (Side: CIV)","15 -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}; - texts[]={" EricJ: Afghan Civilians (Side: CIV)"," Bohemia Interactive: Civilians (Side: CIV)","btc_militia_mod Giallustio: Afghan Civilians (Side: CIV)","CAF CAF MOD TEAM: African (Side: CIV)","CAF CAF MOD TEAM: Middle Eastern (Side: CIV)","CUP_Units Community Upgrade Project: Civilians (Russian) (Side: CIV)","CUP_Vehicles Bohemia Interactive: Civilians (Chenarus) (Side: CIV)","CUP_Vehicles Bohemia Interactive: Civilians (Sahrani) (Side: CIV)","CUP_Vehicles Community Upgrade Project: Civilians (Takistan) (Side: CIV)","LIB Reyhard & Joarius: 40s Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: African Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Eastern European Civilians (Side: CIV)","LOP_LeightsOPFOR Project OPFOR: Middle Eastern Civilians (Side: CIV)","OPTRE Bohemia Interactive: Civilians (UEG) (Side: CIV)","RDS_CIV_PACK reyhard: Russians (Side: CIV)","UNSUNG Bohemia Interactive: Vietnamese (UNSUNG) (Side: CIV)"}; + 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 -CUP_Units Community Upgrade Project: Civilians (Russian) (Side: CIV)","6 -CUP_Vehicles Bohemia Interactive: Civilians (Chenarus) (Side: CIV)","7 -CUP_Vehicles Bohemia Interactive: Civilians (Sahrani) (Side: CIV)","8 -CUP_Vehicles Community Upgrade Project: Civilians (Takistan) (Side: CIV)","9 -LIB Reyhard & Joarius: 40s Civilians (Side: CIV)","10 -LOP_LeightsOPFOR Project OPFOR: African Civilians (Side: CIV)","11 -LOP_LeightsOPFOR Project OPFOR: Eastern European Civilians (Side: CIV)","12 -LOP_LeightsOPFOR Project OPFOR: Middle Eastern Civilians (Side: CIV)","13 -OPTRE Bohemia Interactive: Civilians (UEG) (Side: CIV)","14 -RDS_CIV_PACK reyhard: Russians (Side: CIV)","15 -UNSUNG Bohemia Interactive: Vietnamese (UNSUNG) (Side: CIV)"}; default = 1; }; class btc_p_IED_title { 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 552b4f1de..9ceca428e 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 @@ -51,5 +51,6 @@ private _values = []; for "_i" from 0 to (count _all) - 1 do { _values pushBack _i; }; +_texts = _values apply {Format ["%1 -%2",_x,_texts select _x]}; [_allauthor,_texts,_all apply {_x select 1},_values] \ No newline at end of file From 792d2298a1eda1ca417624c0df470956016b2516 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 8 Jul 2017 10:51:32 +0200 Subject: [PATCH 112/120] FIX: disable simultation of logisitc box this avoid logistic box to be moved with accident --- =BTC=co@30_Hearts_and_Minds.Altis/mission.sqm | 22 ++++++++-------- .../mission_Tanoa.sqm | 25 +++++++++---------- 2 files changed, 23 insertions(+), 24 deletions(-) diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm index cfc50cd5a..0922fc0e8 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission.sqm @@ -16,10 +16,10 @@ class EditorData }; class Camera { - pos[]={8250.9043,117.55215,10056.634}; - dir[]={0.63489479,-0.76769865,-0.087500997}; - up[]={0.76053244,0.64078408,-0.10481572}; - aside[]={-0.13653453,-2.9675721e-007,-0.99068516}; + pos[]={8289.3447,98.373016,10083.827}; + dir[]={0.68243599,-0.60383934,0.41202995}; + up[]={0.51696843,0.79707062,0.31212729}; + aside[]={0.51688951,4.6566129e-009,-0.85611039}; }; }; binarizationWanted=0; @@ -202,7 +202,7 @@ class CustomAttributes name="Multiplayer"; class Attribute0 { - property="RespawnButton"; + property="RespawnTemplates"; expression="true"; class Value { @@ -212,16 +212,15 @@ class CustomAttributes { type[]= { - "SCALAR" + "ARRAY" }; }; - value=1; }; }; }; class Attribute1 { - property="RespawnTemplates"; + property="RespawnButton"; expression="true"; class Value { @@ -231,9 +230,10 @@ class CustomAttributes { type[]= { - "ARRAY" + "SCALAR" }; }; + value=1; }; }; }; @@ -688,14 +688,14 @@ class Mission class PositionInfo { position[]={8320.2842,75.246689,10105.996}; - angles[]={0.05461248,5.6770415,6.2631893}; + angles[]={0.054611351,5.6770496,6.2631841}; }; side="Empty"; flags=4; class Attributes { skill=0.60000002; - init="this allowDamage false;"; + init="call{this allowDamage false; this enableSimulation false;}"; name="btc_create_object"; }; id=13; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/mission_Tanoa.sqm b/=BTC=co@30_Hearts_and_Minds.Altis/mission_Tanoa.sqm index 1f3a83f94..9a3941a5f 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/mission_Tanoa.sqm +++ b/=BTC=co@30_Hearts_and_Minds.Altis/mission_Tanoa.sqm @@ -16,10 +16,10 @@ class EditorData }; class Camera { - pos[]={4158.9448,177.51308,4027.7251}; - dir[]={0.25513843,-0.88122654,-0.39815569}; - up[]={0.47545677,0.47268689,-0.74197125}; - aside[]={-0.84204131,-1.0278891e-006,-0.53958178}; + pos[]={4187.1064,150.77098,4030.2402}; + dir[]={0.42801258,-0.83874273,-0.33690152}; + up[]={0.65908843,0.54449618,-0.51878762}; + aside[]={-0.61856627,-8.9913374e-007,-0.78585017}; }; }; binarizationWanted=0; @@ -202,7 +202,7 @@ class CustomAttributes name="Multiplayer"; class Attribute0 { - property="RespawnTemplates"; + property="RespawnButton"; expression="true"; class Value { @@ -212,15 +212,16 @@ class CustomAttributes { type[]= { - "ARRAY" + "SCALAR" }; }; + value=1; }; }; }; class Attribute1 { - property="RespawnButton"; + property="RespawnTemplates"; expression="true"; class Value { @@ -230,10 +231,9 @@ class CustomAttributes { type[]= { - "SCALAR" + "ARRAY" }; }; - value=1; }; }; }; @@ -373,20 +373,19 @@ class Mission dataType="Object"; class PositionInfo { - position[]={4245.125,19.768351,3990.25}; - angles[]={0,3.7038274,0.04796192}; + position[]={4245.125,19.769165,3990.25}; + angles[]={0,3.7038331,0.047961645}; }; side="Empty"; flags=4; class Attributes { skill=0.60000002; - init="this allowDamage false;"; + init="call{this allowDamage false; this enableSimulation false;}"; name="btc_create_object"; }; id=13; type="Land_CargoBox_V1_F"; - atlOffset=-0.00081443787; class CustomAttributes { class Attribute0 From 585343afdf2ad0a427e5804c38e0cc83ae881c65 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 8 Jul 2017 19:50:18 +0200 Subject: [PATCH 113/120] FIX: CUP syntaxe error in param Add Star Wars opposition faction : https://vk.com/swopposition --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) 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 4b78e8ffd..4fb4d393f 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 @@ -488,7 +488,7 @@ btc_lift_HUD_y = 0.848; 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","BUNDESWEHR","CAR","IND_F","IND_G_F","OPF_F","OPF_G_F","TBAN","UNSUNG","AFR_ARMY","ARA_ARMY","ARL_ARMY","BTC_AM","CAF_AG_AFR_P","CAF_AG_EEUR_R","CAF_AG_ME_T","CEC_ARMY","CUP_B_CZ","CUP_B_GER","CUP_B_US_ARMY","CUP_I_NAPA","CUP_I_PMC_ION","CUP_I_RACS","CUP_O_SLA","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","BLU_CTRG_F","BLU_GEN_F","BLU_T_F","IND_C_F","OPF_T_F","OPTRE_OPCAN_CPD","OPTRE_OPCAN_CSD","FOW_UK","FOW_IJA","FOW_USA","FOW_USMC","GAL_ARMY","GANGBLUE_ARMY","GANGRED_ARMY","IBR_ZETABORN_FACTION","ISC_IP_B","ISC_YPG_B","LIB_101AB","LIB_82AB","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_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","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_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_NATIONALIST","SG_STURM","SG_STURM_W","SG_STURMPANZER","UNSC_2531","UNSUNG_AUS","UNSUNG_E","UNSUNG_EV","UNSUNG_G","UNSUNG_NZ","UNSUNG_W","USML_AIF"]; //All factions +private _allfaction = ["BLU_F","BLU_G_F","CAR","EMPIRE","IND_F","IND_G_F","OPF_F","OPF_G_F","REBELLION","TBAN","UNSUNG","AFR_ARMY","ARA_ARMY","ARL_ARMY","BTC_AM","C_I_S","CAA_CARTELHUTT","GALACTIC_REPUBLIC","SWOP_BOBAFETTSYNDACATE","SWOP_TUSKENRAIDERS","CAF_AG_AFR_P","CAF_AG_EEUR_R","CAF_AG_ME_T","CEC_ARMY","CUP_B_CZ","CUP_B_GER","CUP_B_US_ARMY","CUP_I_NAPA","CUP_I_PMC_ION","CUP_I_RACS","CUP_O_SLA","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","BLU_CTRG_F","BLU_GEN_F","BLU_T_F","IND_C_F","OPF_T_F","OPTRE_OPCAN_CPD","OPTRE_OPCAN_CSD","FOW_UK","FOW_IJA","FOW_USA","FOW_USMC","GAL_ARMY","GANGBLUE_ARMY","GANGRED_ARMY","IBR_ZETABORN_FACTION","ISC_IP_B","ISC_YPG_B","LIB_101AB","LIB_82AB","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_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","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_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_NATIONALIST","SG_STURM","SG_STURM_W","SG_STURMPANZER","SWOP_GEONOSIANS","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 /*, "IND_F"*/], _p_en_AA, _p_en_tank] call btc_fnc_mil_class; //Create classes from factions, you can combine factions from the SAME side like that : [[_p_en , "IND_F"], _p_en_AA, _p_en_tank] call btc_fnc_mil_class; 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 949884a25..f76640a61 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 @@ -37,8 +37,8 @@ class Params { }; 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}; - texts[]={"0 - Bohemia Interactive: OTAN (Side: WEST)","1 - Bohemia Interactive: FIA (Side: WEST)","2 - Aplion: Bundeswehr (Side: WEST)","3 - jarrad96: Central African Militia (Side: EAST)","4 - Bohemia Interactive: AAF (Side: GUER)","5 - Bohemia Interactive: FIA (Side: GUER)","6 - Bohemia Interactive: CSAT (Side: EAST)","7 - Bohemia Interactive: FIA (Side: EAST)","8 - EricJ: Taliban (Side: EAST)","9 - Bohemia Interactive: (Side: WEST)","10 -AFR BIS/IceBreakr: Afrenian Army (Side: WEST)","11 -ARA Bohemia Interactive: Abramian Rebel Alliance (Side: WEST)","12 -ARL BIS/IceBreakr: ARL Lingor Rebels (Side: EAST)","13 -btc_militia_mod Giallustio: Afghan Militia (Side: EAST)","14 -CAF CAF MOD TEAM: Africa - Pirates (Side: EAST)","15 -CAF CAF MOD TEAM: East Europe - Rebels (Side: EAST)","16 -CAF CAF MOD TEAM: Middle East - Tribal (Side: EAST)","17 -CEC HcPookie: Cecanian Army (Side: EAST)","18 -CUP Community Upgrade Project: Army of the Czech Republic (Side: WEST)","19 -CUP Bohemia Interactive: Bundeswehr (Side: WEST)","20 -CUP Bohemia Interactive: United States Army (Side: WEST)","21 -CUP Bohemia Interactive: National Party of Chernarus (Side: GUER)","22 -CUP Bohemia Interactive: ION PMC (Side: GUER)","23 -CUP Bohemia Interactive: Royal Army Corps of Sahrani (Side: GUER)","24 -CUP Bohemia Interactive: Sahrani Liberation Army (Side: EAST)","25 -CUP Bohemia Interactive: Takistani Army (Side: EAST)","26 -CUP_Units Community Upgrade Project: British Armed Forces (Side: WEST)","27 -CUP_Units Bohemia Interactive: Takistani Locals (Side: GUER)","28 -CUP_Units Community Upgrade Project: United Nations (Side: GUER)","29 -CUP_Units Community Upgrade Project: Chernarussian Movement of the Red Star (Side: EAST)","30 -CUP_Units Bohemia Interactive: Takistani Militia (Side: EAST)","31 -CUP_Vehicles Community Upgrade Project: Chenarus Defense Forces (Side: WEST)","32 -CUP_Vehicles Community Upgrade Project: Royal New Zealand Navy (Side: WEST)","33 -CUP_Vehicles Community Upgrade Project: United States Marine Corps (Side: WEST)","34 -CUP_Vehicles Community Upgrade Project: Armed Forces of the Russian Federation (Side: EAST)","35 -Expansion Bohemia Interactive: CTRG (Side: WEST)","36 -Expansion Bohemia Interactive: Gendarmerie (Side: WEST)","37 -Expansion Bohemia Interactive: OTAN (Pacifique) (Side: WEST)","38 -Expansion Bohemia Interactive: Syndikat (Side: GUER)","39 -Expansion Bohemia Interactive: CSAT (Pacifique) (Side: EAST)","40 -Expansion Burgess: OPCAN (Colonial Police) (Side: WEST)","41 -Expansion Burgess: OPCAN (Colonial Sheriff) (Side: WEST)","42 -FOW Bohemia Interactive: UK (Side: GUER)","43 -fow_mod FOW team: Imperial Japanese Army (Side: WEST)","44 -fow_mod FOW team: US Army (Side: GUER)","45 -fow_mod FOW team: US Marines Corps (Side: GUER)","46 -GAL HcPookie: GAL (Government Army of Lingor) (Side: WEST)","47 -GANGBLUE BIS/IceBreakr: Blue Gang (Side: WEST)","48 -GANGRED BIS/IceBreakr: Red Gang (Side: EAST)","49 -IBR Bohemia Interactive: Alienz (Side: GUER)","50 -ISC Bohemia Interactive: [ISC] Iraqi Police (Side: WEST)","51 -ISC Bohemia Interactive: [ISC] YPG (Side: WEST)","52 -LIB El Tyranos: (Side: GUER)","53 -LIB El Tyranos: (Side: GUER)","54 -LIB AWAR: ACI (Side: GUER)","55 -LIB AWAR & Lennard: ARR (Side: WEST)","56 -LIB Lennard: Deutsches Afrikakorps (Side: WEST)","57 -LIB AWAR & Joarius: FFI (Side: GUER)","58 -LIB AWAR: Armia Krajowa (Polonais) (Side: GUER)","59 -LIB AWAR: Luftwaffe (Side: WEST)","60 -LIB AWAR & Lennard: [Winter] Luftwaffe (Side: WEST)","61 -LIB AWAR & Lennard: MKHL (Side: WEST)","62 -LIB Lennard: US North African Corps (Side: GUER)","63 -LIB Lennard: NKVD (Side: EAST)","64 -LIB AWAR: Panzerwaffe (Side: WEST)","65 -LIB AWAR & Lennard: [Winter] Panzerwaffe (Side: WEST)","66 -LIB AWAR: RAAF (Side: GUER)","67 -LIB IFA3 Team: RAF (Side: GUER)","68 -LIB AWAR & Lennard: RBAF (Side: WEST)","69 -LIB AWAR: Red Army (Side: EAST)","70 -LIB AWAR & Lennard: [Winter] Red Army (Side: EAST)","71 -LIB El Tyranos & Jove Chiere: 101st Airborne Division (Side: GUER)","72 -LIB AWAR: US Army Air Forces (Side: GUER)","73 -LIB AWAR: [Winter] US Airforce (Side: GUER)","74 -LIB AWAR: US Army (Side: GUER)","75 -LIB LODU: [Winter] US Army (Side: GUER)","76 -LIB Lennard: US 2nd Ranger Battalion (Side: GUER)","77 -LIB I44: US Tank Troops (Side: GUER)","78 -LIB AWAR & Lennard: [Winter] US Tank Troops (Side: GUER)","79 -LIB AWAR: USSR Airforce (Side: EAST)","80 -LIB AWAR & Lennard: [Winter] USSR Airforce (Side: EAST)","81 -LIB AWAR: Tank troops of USSR (Side: EAST)","82 -LIB AWAR & Lennard: [Winter] Tank troops of USSR (Side: EAST)","83 -LIB AWAR: Wehrmacht (Side: WEST)","84 -LIB AWAR & Lennard: [Winter] Wehrmacht (Side: WEST)","85 -LM Burgess: UNSCMC (Urban) (Side: WEST)","86 -LM Burgess: UNSCMC (Desert) (Side: WEST)","87 -LM Burgess: ONI Security (Side: WEST)","88 -LM Burgess: UNSCMC (Snow) (Side: WEST)","89 -LM Burgess: UNSCMC (Wood) (Side: WEST)","90 -LM Burgess: OPCANTest (Side: WEST)","91 -LOP Project OPFOR: Boko Haram (Side: EAST)","92 -LOP Project OPFOR: Irish Republican Army (Side: EAST)","93 -LOP Project OPFOR: Ulster Volunteer Force (Side: GUER)","94 -LOP_LeightsOPFOR Project OPFOR: Afghan National Army and Police (Side: WEST)","95 -LOP_LeightsOPFOR Project OPFOR: African Militia (Side: GUER)","96 -LOP_LeightsOPFOR Project OPFOR: African Militia (Side: EAST)","97 -LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: GUER)","98 -LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: EAST)","99 -LOP_LeightsOPFOR Project OPFOR: Chernarussian Defence Forces (Side: WEST)","100 -LOP_LeightsOPFOR Project OPFOR: ChDKZ (Side: EAST)","101 -LOP_LeightsOPFOR Project OPFOR: Iraqi Armed Forces (Side: WEST)","102 -LOP_LeightsOPFOR Project OPFOR: Iranian Armed Forces (Side: GUER)","103 -LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: GUER)","104 -LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: EAST)","105 -LOP_LeightsOPFOR Project OPFOR: Chernarussian National Insurgents (Side: GUER)","106 -LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: WEST)","107 -LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: GUER)","108 -LOP_LeightsOPFOR Project OPFOR: Private Military Company (Side: GUER)","109 -LOP_LeightsOPFOR Project OPFOR: Royal Army Corps of Sahrani (Side: GUER)","110 -LOP_LeightsOPFOR Project OPFOR: Sahrani Liberation Army (Side: EAST)","111 -LOP_LeightsOPFOR Project OPFOR: Takistani Armed Forces (Side: EAST)","112 -LOP_LeightsOPFOR Project OPFOR: Ultranationalists (Side: GUER)","113 -LOP_LeightsOPFOR Project OPFOR: Ukraine's Armed Forces (Side: WEST)","114 -LOP_LeightsOPFOR Project OPFOR: United Nations (Side: GUER)","115 -LOP_LeightsOPFOR Project OPFOR: United Armed Forces of Novorossiya (Side: EAST)","116 -MOL HcPookie: Molatian Army (Side: EAST)","117 -OPTRE Article 2 Studios: Insurrectionists (Side: EAST)","118 -OPTRE Burgess: OPCAN (Side: WEST)","119 -OPTRE Burgess: OPCAN (UEG Colonial Guard) (Side: WEST)","120 -OPTRE Burgess: Colonial Militia (OPCAN) (Side: GUER)","121 -OPTRE Burgess: OPCAN (PMC) (Side: GUER)","122 -OPTRE Burgess: Halo Wars Rebels (OPCAN) (Side: EAST)","123 -OPTRE Burgess: Common Criminals (OPCAN) (Side: EAST)","124 -OPTRE Burgess: OPCAN (UNSC Army) (Side: WEST)","125 -OPTRE Burgess: United Rebel Air Force(OPCAN) (Side: EAST)","126 -OPTRE Burgess: United Rebel Army Desert(OPCAN) (Side: EAST)","127 -OPTRE Burgess: United Rebel Army BattleJumpers (OPCAN) (Side: EAST)","128 -OPTRE Burgess: United Rebel Army Tropic(OPCAN) (Side: EAST)","129 -OPTRE Bohemia Interactive: United Rebel Army Ground Vehicles (OPCAN) (Side: EAST)","130 -OPTRE Burgess: United Rebel Army Wood(OPCAN) (Side: EAST)","131 -OPTRE Burgess: OPCAN (WARZONE BLUE) (Side: WEST)","132 -OPTRE Burgess: OPCAN (WARZONE RED) (Side: EAST)","133 -OPTRE Article 2 Studios: UNSCDF (Side: WEST)","134 -RHS_AFRF Bohemia Interactive: [ISC] al-Nusra Front (Side: GUER)","135 -RHS_AFRF Bohemia Interactive: [ISC] Iraqi Army (Side: WEST)","136 -RHS_AFRF Bohemia Interactive: [ISC] Islamic State (Side: GUER)","137 -RHS_AFRF Bohemia Interactive: [ISC] Islamic State (Side: EAST)","138 -RHS_AFRF Bohemia Interactive: [ISC] Peshmerga (Side: WEST)","139 -RHS_AFRF Bohemia Interactive: [ISC] Syrian Arab Army (Side: EAST)","140 -RHS_AFRF Red Hammer Studios: Eastern Militia (Side: GUER)","141 -RHS_AFRF Red Hammer Studios: Russia (MSV) (Side: EAST)","142 -RHS_AFRF Red Hammer Studios: Russia (RVA) (Side: EAST)","143 -RHS_AFRF Red Hammer Studios: Russia (TV) (Side: EAST)","144 -RHS_AFRF Red Hammer Studios: Russia (VDV) (Side: EAST)","145 -RHS_AFRF Red Hammer Studios: Russia (VMF) (Side: EAST)","146 -RHS_AFRF RHS: Russia (VPVO) (Side: EAST)","147 -RHS_AFRF Red Hammer Studios: Russia (VV) (Side: EAST)","148 -RHS_AFRF Bohemia Interactive: Russia (VVS - Grey) (Side: EAST)","149 -RHS_AFRF Red Hammer Studios: Russia (VVS - Camo) (Side: EAST)","150 -RHS_GREF Red Hammer Studios: Chernarus (Air Force) (Side: GUER)","151 -RHS_GREF Red Hammer Studios: Chernarus (Air Force) (Side: WEST)","152 -RHS_GREF RHS (A2 port): Chernarus (Ground Forces) (Side: GUER)","153 -RHS_GREF Red Hammer Studios: Chernarus (Ground Forces) (Side: WEST)","154 -RHS_GREF Red Hammer Studios: Chernarus (National Guard) (Side: GUER)","155 -RHS_GREF Red Hammer Studios: Chernarus (National Guard) (Side: WEST)","156 -RHS_GREF Red Hammer Studios: ChDKZ Insurgents (Side: EAST)","157 -RHS_GREF Red Hammer Studios: ChDKZ Insurgents (Side: GUER)","158 -RHS_GREF Red Hammer Studios: Chernarus (U.N. Peacekeepers) (Side: GUER)","159 -RHS_SAF Red Hammer Studios: SAF (RVIPVO) (Side: GUER)","160 -RHS_SAF Red Hammer Studios: SAF (KOV) (Side: GUER)","161 -RHS_SAF Red Hammer Studios: SAF (Casques Bleus) (Side: GUER)","162 -RHS_USAF Red Hammer Studios: USA (SOCOM) (Side: WEST)","163 -RHS_USAF Red Hammer Studios: USA (USAF) (Side: WEST)","164 -RHS_USAF Red Hammer Studios: USA (Army - D) (Side: WEST)","165 -RHS_USAF Red Hammer Studios: USA (Army - W) (Side: WEST)","166 -RHS_USAF Red Hammer Studios: USA (USMC - D) (Side: WEST)","167 -RHS_USAF Red Hammer Studios: USA (USMC - W) (Side: WEST)","168 -RHS_USAF Red Hammer Studios: USA (Navy) (Side: WEST)","169 -RHSGREF Red Hammer Studios: Nationalist Troops (Side: GUER)","170 -SG Stagler: Sturmtroopers (Side: WEST)","171 -SG Stagler: [Winter] Sturmtroopers (Side: WEST)","172 -SG Stagler: Tank Sturmtroopers (Side: WEST)","173 -UNSC Morthon: UNSCMC (Side: WEST)","174 -UNSUNG Bohemia Interactive: Australia (UNSUNG) (Side: GUER)","175 -UNSUNG Razorback: N.V.A. (UNSUNG) (Side: EAST)","176 -UNSUNG Bohemia Interactive: V.C. (UNSUNG) (Side: EAST)","177 -UNSUNG Bohemia Interactive: A.R.V.N. (UNSUNG) (Side: GUER)","178 -UNSUNG Bohemia Interactive: New Zealand (UNSUNG) (Side: GUER)","179 -UNSUNG Bohemia Interactive: U.S. (UNSUNG) (Side: WEST)","180 -USML segen: Armed Islamic Front (Side: GUER)"}; + 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}; + texts[]={"0 - Bohemia Interactive: OTAN (Side: WEST)","1 - Bohemia Interactive: FIA (Side: WEST)","2 - jarrad96: Central African Militia (Side: EAST)","3 - Scar and Jmax: SW Galactic Empire (Side: EAST)","4 - Bohemia Interactive: AAF (Side: GUER)","5 - Bohemia Interactive: FIA (Side: GUER)","6 - Bohemia Interactive: CSAT (Side: EAST)","7 - Bohemia Interactive: FIA (Side: EAST)","8 - Bohemia Interactive: SW Rebel Alliance (Side: WEST)","9 - EricJ: Taliban (Side: EAST)","10 - Bohemia Interactive: (Side: WEST)","11 -AFR BIS/IceBreakr: Afrenian Army (Side: WEST)","12 -ARA Bohemia Interactive: Abramian Rebel Alliance (Side: WEST)","13 -ARL BIS/IceBreakr: ARL Lingor Rebels (Side: EAST)","14 -btc_militia_mod Giallustio: Afghan Militia (Side: EAST)","15 -C SWOP: SW C.I.S. - Separatists (Side: EAST)","16 -CAA SWOP: SW Cartel Hutt (Side: GUER)","17 -CAA_MODs SWOP: SW Galactic Republic (Side: WEST)","18 -CAA_MODs SWOP: SW Boba Fett Syndicate (Side: GUER)","19 -CAA_MODs SWOP: SW Tusken Raiders (Side: GUER)","20 -CAF CAF MOD TEAM: Africa - Pirates (Side: EAST)","21 -CAF CAF MOD TEAM: East Europe - Rebels (Side: EAST)","22 -CAF CAF MOD TEAM: Middle East - Tribal (Side: EAST)","23 -CEC HcPookie: Cecanian Army (Side: EAST)","24 -CUP Community Upgrade Project: Army of the Czech Republic (Side: WEST)","25 -CUP Bohemia Interactive: Bundeswehr (Side: WEST)","26 -CUP Bohemia Interactive: United States Army (Side: WEST)","27 -CUP Bohemia Interactive: National Party of Chernarus (Side: GUER)","28 -CUP Bohemia Interactive: ION PMC (Side: GUER)","29 -CUP Bohemia Interactive: Royal Army Corps of Sahrani (Side: GUER)","30 -CUP Bohemia Interactive: Sahrani Liberation Army (Side: EAST)","31 -CUP Bohemia Interactive: Takistani Army (Side: EAST)","32 -CUP_Units Community Upgrade Project: British Armed Forces (Side: WEST)","33 -CUP_Units Bohemia Interactive: Takistani Locals (Side: GUER)","34 -CUP_Units Community Upgrade Project: United Nations (Side: GUER)","35 -CUP_Units Community Upgrade Project: Chernarussian Movement of the Red Star (Side: EAST)","36 -CUP_Units Bohemia Interactive: Takistani Militia (Side: EAST)","37 -CUP_Vehicles Community Upgrade Project: Chernarus Defense Forces (Side: WEST)","38 -CUP_Vehicles Community Upgrade Project: Royal New Zealand Navy (Side: WEST)","39 -CUP_Vehicles Community Upgrade Project: United States Marine Corps (Side: WEST)","40 -CUP_Vehicles Community Upgrade Project: Armed Forces of the Russian Federation (Side: EAST)","41 -Expansion Bohemia Interactive: CTRG (Side: WEST)","42 -Expansion Bohemia Interactive: Gendarmerie (Side: WEST)","43 -Expansion Bohemia Interactive: OTAN (Pacifique) (Side: WEST)","44 -Expansion Bohemia Interactive: Syndikat (Side: GUER)","45 -Expansion Bohemia Interactive: CSAT (Pacifique) (Side: EAST)","46 -Expansion Burgess: OPCAN (Colonial Police) (Side: WEST)","47 -Expansion Burgess: OPCAN (Colonial Sheriff) (Side: WEST)","48 -FOW Bohemia Interactive: UK (Side: GUER)","49 -fow_mod FOW team: Imperial Japanese Army (Side: WEST)","50 -fow_mod FOW team: US Army (Side: GUER)","51 -fow_mod FOW team: US Marines Corps (Side: GUER)","52 -GAL HcPookie: GAL (Government Army of Lingor) (Side: WEST)","53 -GANGBLUE BIS/IceBreakr: Blue Gang (Side: WEST)","54 -GANGRED BIS/IceBreakr: Red Gang (Side: EAST)","55 -IBR Bohemia Interactive: Alienz (Side: GUER)","56 -ISC Bohemia Interactive: [ISC] Iraqi Police (Side: WEST)","57 -ISC Bohemia Interactive: [ISC] YPG (Side: WEST)","58 -LIB El Tyranos: (Side: GUER)","59 -LIB El Tyranos: (Side: GUER)","60 -LIB AWAR: ACI (Side: GUER)","61 -LIB AWAR & Lennard: ARR (Side: WEST)","62 -LIB Lennard: Deutsches Afrikakorps (Side: WEST)","63 -LIB AWAR & Joarius: FFI (Side: GUER)","64 -LIB AWAR: Armia Krajowa (Polonais) (Side: GUER)","65 -LIB AWAR: Luftwaffe (Side: WEST)","66 -LIB AWAR & Lennard: [Winter] Luftwaffe (Side: WEST)","67 -LIB AWAR & Lennard: MKHL (Side: WEST)","68 -LIB Lennard: US North African Corps (Side: GUER)","69 -LIB Lennard: NKVD (Side: EAST)","70 -LIB AWAR: Panzerwaffe (Side: WEST)","71 -LIB AWAR & Lennard: [Winter] Panzerwaffe (Side: WEST)","72 -LIB AWAR: RAAF (Side: GUER)","73 -LIB IFA3 Team: RAF (Side: GUER)","74 -LIB AWAR & Lennard: RBAF (Side: WEST)","75 -LIB AWAR: Red Army (Side: EAST)","76 -LIB AWAR & Lennard: [Winter] Red Army (Side: EAST)","77 -LIB El Tyranos & Jove Chiere: 101st Airborne Division (Side: GUER)","78 -LIB AWAR: US Army Air Forces (Side: GUER)","79 -LIB AWAR: [Winter] US Airforce (Side: GUER)","80 -LIB AWAR: US Army (Side: GUER)","81 -LIB LODU: [Winter] US Army (Side: GUER)","82 -LIB Lennard: US 2nd Ranger Battalion (Side: GUER)","83 -LIB I44: US Tank Troops (Side: GUER)","84 -LIB AWAR & Lennard: [Winter] US Tank Troops (Side: GUER)","85 -LIB AWAR: USSR Airforce (Side: EAST)","86 -LIB AWAR & Lennard: [Winter] USSR Airforce (Side: EAST)","87 -LIB AWAR: Tank troops of USSR (Side: EAST)","88 -LIB AWAR & Lennard: [Winter] Tank troops of USSR (Side: EAST)","89 -LIB AWAR: Wehrmacht (Side: WEST)","90 -LIB AWAR & Lennard: [Winter] Wehrmacht (Side: WEST)","91 -LM Burgess: UNSCMC (Urban) (Side: WEST)","92 -LM Burgess: UNSCMC (Desert) (Side: WEST)","93 -LM Burgess: ONI Security (Side: WEST)","94 -LM Burgess: UNSCMC (Snow) (Side: WEST)","95 -LM Burgess: UNSCMC (Wood) (Side: WEST)","96 -LM Burgess: OPCANTest (Side: WEST)","97 -LOP Project OPFOR: Boko Haram (Side: EAST)","98 -LOP Project OPFOR: Irish Republican Army (Side: EAST)","99 -LOP Project OPFOR: Ulster Volunteer Force (Side: GUER)","100 -LOP_LeightsOPFOR Project OPFOR: Afghan National Army and Police (Side: WEST)","101 -LOP_LeightsOPFOR Project OPFOR: African Militia (Side: GUER)","102 -LOP_LeightsOPFOR Project OPFOR: African Militia (Side: EAST)","103 -LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: GUER)","104 -LOP_LeightsOPFOR Project OPFOR: Middle Eastern Militia (Side: EAST)","105 -LOP_LeightsOPFOR Project OPFOR: Chernarussian Defence Forces (Side: WEST)","106 -LOP_LeightsOPFOR Project OPFOR: ChDKZ (Side: EAST)","107 -LOP_LeightsOPFOR Project OPFOR: Iraqi Armed Forces (Side: WEST)","108 -LOP_LeightsOPFOR Project OPFOR: Iranian Armed Forces (Side: GUER)","109 -LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: GUER)","110 -LOP_LeightsOPFOR Project OPFOR: Islamic State (Side: EAST)","111 -LOP_LeightsOPFOR Project OPFOR: Chernarussian National Insurgents (Side: GUER)","112 -LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: WEST)","113 -LOP_LeightsOPFOR Project OPFOR: Kurdish Peshmerga Forces (Side: GUER)","114 -LOP_LeightsOPFOR Project OPFOR: Private Military Company (Side: GUER)","115 -LOP_LeightsOPFOR Project OPFOR: Royal Army Corps of Sahrani (Side: GUER)","116 -LOP_LeightsOPFOR Project OPFOR: Sahrani Liberation Army (Side: EAST)","117 -LOP_LeightsOPFOR Project OPFOR: Takistani Armed Forces (Side: EAST)","118 -LOP_LeightsOPFOR Project OPFOR: Ultranationalists (Side: GUER)","119 -LOP_LeightsOPFOR Project OPFOR: Ukraine's Armed Forces (Side: WEST)","120 -LOP_LeightsOPFOR Project OPFOR: United Nations (Side: GUER)","121 -LOP_LeightsOPFOR Project OPFOR: United Armed Forces of Novorossiya (Side: EAST)","122 -MOL HcPookie: Molatian Army (Side: EAST)","123 -OPTRE Article 2 Studios: Insurrectionists (Side: EAST)","124 -OPTRE Burgess: OPCAN (Side: WEST)","125 -OPTRE Burgess: OPCAN (UEG Colonial Guard) (Side: WEST)","126 -OPTRE Burgess: Colonial Militia (OPCAN) (Side: GUER)","127 -OPTRE Burgess: OPCAN (PMC) (Side: GUER)","128 -OPTRE Burgess: Halo Wars Rebels (OPCAN) (Side: EAST)","129 -OPTRE Burgess: Common Criminals (OPCAN) (Side: EAST)","130 -OPTRE Burgess: OPCAN (UNSC Army) (Side: WEST)","131 -OPTRE Burgess: United Rebel Air Force(OPCAN) (Side: EAST)","132 -OPTRE Burgess: United Rebel Army Desert(OPCAN) (Side: EAST)","133 -OPTRE Burgess: United Rebel Army BattleJumpers (OPCAN) (Side: EAST)","134 -OPTRE Burgess: United Rebel Army Tropic(OPCAN) (Side: EAST)","135 -OPTRE Bohemia Interactive: United Rebel Army Ground Vehicles (OPCAN) (Side: EAST)","136 -OPTRE Burgess: United Rebel Army Wood(OPCAN) (Side: EAST)","137 -OPTRE Burgess: OPCAN (WARZONE BLUE) (Side: WEST)","138 -OPTRE Burgess: OPCAN (WARZONE RED) (Side: EAST)","139 -OPTRE Article 2 Studios: UNSCDF (Side: WEST)","140 -RHS_AFRF Bohemia Interactive: [ISC] al-Nusra Front (Side: GUER)","141 -RHS_AFRF Bohemia Interactive: [ISC] Iraqi Army (Side: WEST)","142 -RHS_AFRF Bohemia Interactive: [ISC] Islamic State (Side: GUER)","143 -RHS_AFRF Bohemia Interactive: [ISC] Islamic State (Side: EAST)","144 -RHS_AFRF Bohemia Interactive: [ISC] Peshmerga (Side: WEST)","145 -RHS_AFRF Bohemia Interactive: [ISC] Syrian Arab Army (Side: EAST)","146 -RHS_AFRF Red Hammer Studios: Eastern Militia (Side: GUER)","147 -RHS_AFRF Red Hammer Studios: Russia (MSV) (Side: EAST)","148 -RHS_AFRF Red Hammer Studios: Russia (RVA) (Side: EAST)","149 -RHS_AFRF Red Hammer Studios: Russia (TV) (Side: EAST)","150 -RHS_AFRF Red Hammer Studios: Russia (VDV) (Side: EAST)","151 -RHS_AFRF Red Hammer Studios: Russia (VMF) (Side: EAST)","152 -RHS_AFRF RHS: Russia (VPVO) (Side: EAST)","153 -RHS_AFRF Red Hammer Studios: Russia (VV) (Side: EAST)","154 -RHS_AFRF Bohemia Interactive: Russia (VVS - Grey) (Side: EAST)","155 -RHS_AFRF Red Hammer Studios: Russia (VVS - Camo) (Side: EAST)","156 -RHS_GREF Red Hammer Studios: Chernarus (Air Force) (Side: GUER)","157 -RHS_GREF Red Hammer Studios: Chernarus (Air Force) (Side: WEST)","158 -RHS_GREF RHS (A2 port): Chernarus (Ground Forces) (Side: GUER)","159 -RHS_GREF Red Hammer Studios: Chernarus (Ground Forces) (Side: WEST)","160 -RHS_GREF Red Hammer Studios: Chernarus (National Guard) (Side: GUER)","161 -RHS_GREF Red Hammer Studios: Chernarus (National Guard) (Side: WEST)","162 -RHS_GREF Red Hammer Studios: ChDKZ Insurgents (Side: EAST)","163 -RHS_GREF Red Hammer Studios: ChDKZ Insurgents (Side: GUER)","164 -RHS_GREF Red Hammer Studios: Chernarus (U.N. Peacekeepers) (Side: GUER)","165 -RHS_SAF Red Hammer Studios: SAF (RVIPVO) (Side: GUER)","166 -RHS_SAF Red Hammer Studios: SAF (KOV) (Side: GUER)","167 -RHS_SAF Red Hammer Studios: SAF (Casques Bleus) (Side: GUER)","168 -RHS_USAF Red Hammer Studios: USA (SOCOM) (Side: WEST)","169 -RHS_USAF Red Hammer Studios: USA (USAF) (Side: WEST)","170 -RHS_USAF Red Hammer Studios: USA (Army - D) (Side: WEST)","171 -RHS_USAF Red Hammer Studios: USA (Army - W) (Side: WEST)","172 -RHS_USAF Red Hammer Studios: USA (USMC - D) (Side: WEST)","173 -RHS_USAF Red Hammer Studios: USA (USMC - W) (Side: WEST)","174 -RHS_USAF Red Hammer Studios: USA (Navy) (Side: WEST)","175 -RHSGREF Red Hammer Studios: Nationalist Troops (Side: GUER)","176 -SG Stagler: Sturmtroopers (Side: WEST)","177 -SG Stagler: [Winter] Sturmtroopers (Side: WEST)","178 -SG Stagler: Tank Sturmtroopers (Side: WEST)","179 -SWOP SWOP: SW Geonosians (Side: EAST)","180 -UNSC Morthon: UNSCMC (Side: WEST)","181 -UNSUNG Bohemia Interactive: Australia (UNSUNG) (Side: GUER)","182 -UNSUNG Razorback: N.V.A. (UNSUNG) (Side: EAST)","183 -UNSUNG Bohemia Interactive: V.C. (UNSUNG) (Side: EAST)","184 -UNSUNG Bohemia Interactive: A.R.V.N. (UNSUNG) (Side: GUER)","185 -UNSUNG Bohemia Interactive: New Zealand (UNSUNG) (Side: GUER)","186 -UNSUNG Bohemia Interactive: U.S. (UNSUNG) (Side: WEST)","187 -USML segen: Armed Islamic Front (Side: GUER)"}; default = 7; }; class btc_p_AA { @@ -56,13 +56,13 @@ class Params { class btc_p_civ { title = " Civil type:"; values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; - 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 -CUP_Units Community Upgrade Project: Civilians (Russian) (Side: CIV)","6 -CUP_Vehicles Bohemia Interactive: Civilians (Chenarus) (Side: CIV)","7 -CUP_Vehicles Bohemia Interactive: Civilians (Sahrani) (Side: CIV)","8 -CUP_Vehicles Community Upgrade Project: Civilians (Takistan) (Side: CIV)","9 -LIB Reyhard & Joarius: 40s Civilians (Side: CIV)","10 -LOP_LeightsOPFOR Project OPFOR: African Civilians (Side: CIV)","11 -LOP_LeightsOPFOR Project OPFOR: Eastern European Civilians (Side: CIV)","12 -LOP_LeightsOPFOR Project OPFOR: Middle Eastern Civilians (Side: CIV)","13 -OPTRE Bohemia Interactive: Civilians (UEG) (Side: CIV)","14 -RDS_CIV_PACK reyhard: Russians (Side: CIV)","15 -UNSUNG Bohemia Interactive: Vietnamese (UNSUNG) (Side: CIV)"}; + 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 -CUP_Units Community Upgrade Project: Civilians (Russian) (Side: CIV)","6 -CUP_Vehicles Bohemia Interactive: Civilians (Chernarus) (Side: CIV)","7 -CUP_Vehicles Bohemia Interactive: Civilians (Sahrani) (Side: CIV)","8 -CUP_Vehicles Community Upgrade Project: Civilians (Takistan) (Side: CIV)","9 -LIB Reyhard & Joarius: 40s Civilians (Side: CIV)","10 -LOP_LeightsOPFOR Project OPFOR: African Civilians (Side: CIV)","11 -LOP_LeightsOPFOR Project OPFOR: Eastern European Civilians (Side: CIV)","12 -LOP_LeightsOPFOR Project OPFOR: Middle Eastern Civilians (Side: CIV)","13 -OPTRE Bohemia Interactive: Civilians (UEG) (Side: CIV)","14 -RDS_CIV_PACK reyhard: Russians (Side: CIV)","15 -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}; - 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 -CUP_Units Community Upgrade Project: Civilians (Russian) (Side: CIV)","6 -CUP_Vehicles Bohemia Interactive: Civilians (Chenarus) (Side: CIV)","7 -CUP_Vehicles Bohemia Interactive: Civilians (Sahrani) (Side: CIV)","8 -CUP_Vehicles Community Upgrade Project: Civilians (Takistan) (Side: CIV)","9 -LIB Reyhard & Joarius: 40s Civilians (Side: CIV)","10 -LOP_LeightsOPFOR Project OPFOR: African Civilians (Side: CIV)","11 -LOP_LeightsOPFOR Project OPFOR: Eastern European Civilians (Side: CIV)","12 -LOP_LeightsOPFOR Project OPFOR: Middle Eastern Civilians (Side: CIV)","13 -OPTRE Bohemia Interactive: Civilians (UEG) (Side: CIV)","14 -RDS_CIV_PACK reyhard: Russians (Side: CIV)","15 -UNSUNG Bohemia Interactive: Vietnamese (UNSUNG) (Side: CIV)"}; + 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 -CUP_Units Community Upgrade Project: Civilians (Russian) (Side: CIV)","6 -CUP_Vehicles Bohemia Interactive: Civilians (Chernarus) (Side: CIV)","7 -CUP_Vehicles Bohemia Interactive: Civilians (Sahrani) (Side: CIV)","8 -CUP_Vehicles Community Upgrade Project: Civilians (Takistan) (Side: CIV)","9 -LIB Reyhard & Joarius: 40s Civilians (Side: CIV)","10 -LOP_LeightsOPFOR Project OPFOR: African Civilians (Side: CIV)","11 -LOP_LeightsOPFOR Project OPFOR: Eastern European Civilians (Side: CIV)","12 -LOP_LeightsOPFOR Project OPFOR: Middle Eastern Civilians (Side: CIV)","13 -OPTRE Bohemia Interactive: Civilians (UEG) (Side: CIV)","14 -RDS_CIV_PACK reyhard: Russians (Side: CIV)","15 -UNSUNG Bohemia Interactive: Vietnamese (UNSUNG) (Side: CIV)"}; default = 1; }; class btc_p_IED_title { From 9d3141f0291ff2bb965b95184134d077017e1d33 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 8 Jul 2017 22:01:37 +0200 Subject: [PATCH 114/120] FIX: you can't combine faction from different side --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 6 +++--- .../core/fnc/data/spawn_group.sqf | 1 + =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/class.sqf | 2 -- .../core/fnc/mil/create_group.sqf | 4 ++-- .../core/fnc/mil/create_static.sqf | 1 + .../core/fnc/mil/patrol_create.sqf | 6 ++++-- 6 files changed, 11 insertions(+), 9 deletions(-) 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 4fb4d393f..bb1ba4d12 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 @@ -199,7 +199,7 @@ if (isServer) then { private _allfaction = ["AFGCIV","CIV_F","BTC_AC","CAF_AG_AFR_CIV","CAF_AG_ME_CIV","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","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 -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. +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 btc_civ_type_units = _allclasse select 0; @@ -490,7 +490,7 @@ btc_hq = objNull; //copyToClipboard str (["EN"] call btc_fnc_get_class); private _allfaction = ["BLU_F","BLU_G_F","CAR","EMPIRE","IND_F","IND_G_F","OPF_F","OPF_G_F","REBELLION","TBAN","UNSUNG","AFR_ARMY","ARA_ARMY","ARL_ARMY","BTC_AM","C_I_S","CAA_CARTELHUTT","GALACTIC_REPUBLIC","SWOP_BOBAFETTSYNDACATE","SWOP_TUSKENRAIDERS","CAF_AG_AFR_P","CAF_AG_EEUR_R","CAF_AG_ME_T","CEC_ARMY","CUP_B_CZ","CUP_B_GER","CUP_B_US_ARMY","CUP_I_NAPA","CUP_I_PMC_ION","CUP_I_RACS","CUP_O_SLA","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","BLU_CTRG_F","BLU_GEN_F","BLU_T_F","IND_C_F","OPF_T_F","OPTRE_OPCAN_CPD","OPTRE_OPCAN_CSD","FOW_UK","FOW_IJA","FOW_USA","FOW_USMC","GAL_ARMY","GANGBLUE_ARMY","GANGRED_ARMY","IBR_ZETABORN_FACTION","ISC_IP_B","ISC_YPG_B","LIB_101AB","LIB_82AB","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_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","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_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_NATIONALIST","SG_STURM","SG_STURM_W","SG_STURMPANZER","SWOP_GEONOSIANS","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 /*, "IND_F"*/], _p_en_AA, _p_en_tank] call btc_fnc_mil_class; //Create classes from factions, you can combine factions from the SAME side like that : [[_p_en , "IND_F"], _p_en_AA, _p_en_tank] call btc_fnc_mil_class; +_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; @@ -506,7 +506,7 @@ 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 "Myfactionexmple" : { + /*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"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/spawn_group.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/spawn_group.sqf index 91dd5dd42..ae83cfaf6 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/spawn_group.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/data/spawn_group.sqf @@ -27,6 +27,7 @@ if (_type == 1) then { } foreach units _group; }; +units _group joinSilent _group; (units _group) apply {_x enableSimulation true}; //[waypointPosition _x,waypointType _x,waypointSpeed _x,waypointFormation _x,waypointCombatMode _x,waypointBehaviour _x] 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 531c163c8..c76ec239d 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 @@ -22,8 +22,6 @@ _factions = _factions apply {if !isClass(configFile >> "CfgFactionClasses" >> _x _enemy_side = [east,west,independent,civilian] select getNumber(configfile >> "CfgFactionClasses" >> (_factions select 0) >> "side"); -//Select only faction from the same side -_factions = _factions select {([east,west,independent,civilian] select getNumber(configfile >> "CfgFactionClasses" >> _x >> "side")) isEqualTo _enemy_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; 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 a7e467920..19cd50a84 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 @@ -26,7 +26,7 @@ if (_pos_iswater) then { }; _group = createGroup btc_enemy_side; -_group createUnit [_unit_type, _rpos, [], 0, "NONE"]; +[_group createUnit [_unit_type, _rpos, [], 0, "NONE"]] joinSilent _group; (leader _group) setpos _rpos; _in_house = false; @@ -55,7 +55,7 @@ switch (true) do { 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"]; + [_group createUnit [_unit_type, _rpos, [], 0, "NONE"]] joinSilent _group; sleep 0.5; }; //_group createUnit [btc_type_medic, _pos, [], 0, "NONE"]; diff --git a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_static.sqf b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_static.sqf index 47aba7eb2..852e176f2 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_static.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/create_static.sqf @@ -13,6 +13,7 @@ _static setpos _pos; _group = createGroup btc_enemy_side; _unit_type = selectRandom btc_type_units; _gunner = _group createUnit [_unit_type, _pos, [], 0, "NONE"]; +[_gunner] joinSilent _group; _gunner moveInGunner _static; _gunner setBehaviour "COMBAT"; _gunner setCombatMode "RED"; 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 f62085fb3..71899b4da 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 @@ -53,11 +53,12 @@ sleep 5 + random 10; switch (true) do { case ((_random isEqualTo 1) && !_pos_iswater) : { _n_units = 4 + (round random 8); - _group createUnit [(btc_type_units select 0), _pos, [], 0, "NONE"];(leader _group) setpos _pos; + [_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"]; + [_group createUnit [_unit_type, _pos, [], 0, "NONE"]] joinSilent _group; sleep 1; }; _spawn = [_group,_area,_pos_iswater] spawn btc_fnc_mil_patrol_addWP; @@ -90,6 +91,7 @@ switch (true) do { _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*/]]; From a0fc71529e139e8272f7d799cbce59ed784b207a Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Mon, 24 Jul 2017 21:09:23 +0200 Subject: [PATCH 115/120] Improve readme --- README.md | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index a49bd9f4b..f46c7e2ed 100644 --- a/README.md +++ b/README.md @@ -13,40 +13,43 @@

-Hearts and Minds is a cooperative mission that aims to recreate a post war environment based on an insurgency gameplay. +Hearts and Minds is a cooperative Military Simulation (MilSim) mission that aims to recreate a post war environment based on an insurgency gameplay. CSAT forces retreated from Altis and NATO deployed units and vehicles to help the local population. -A new formed group, known as "Oplitas", is againts the NATO intervention and it is ready to fight back. +A new formed group, known as "Oplitas", is againts the NATO intervention and is ready to fight. -The mission has a lot of features: +### The mission has a lot of features: -- Medical system +- Dynamic battlefield +- Rearm system +- Repair wreck system - Logistic system -- Deep ACE3 support - Interaction system - Realistic IED/Suicide bomber system -- Dynamic caching system - Civilian interaction/fleeing - Reputation system -- Rearm system -- More than 12 side mission -- Tanoa map +- Deep ACE3 support +- 187 enemies factions and 15 civilians factions available +- More than 14 side mission +- Dynamic caching system - Full saving DataBase +- Easy map change - Extend battlefield to sea - Headless support +- Dedicate server support only - Something I forgot for sure You main task is to defeat the "Oplitas" group and restore peace and order in Altis. -The militia has an unknown number in the island that need to be destroyed. +The militia has an unknown number of hideouts in the island that need to be destroyed. They have also ammo caches in various locations, destroy them to weaken its power. Bad actions cause bad effetcs. -Infact there's a reputation system: helping the local population, fighting the "Oplitas", disarming IED will rise your reputation; killing civilians, losing vehicles, respawns will decrease your repution. +Infact there's a reputation system: helping the local population, fighting the "Oplitas", disarming IED will rise your reputation; killing civilians, mutilate alive/dead civilian, firing near civilians for no reason, damaging/destroying buildings, losing vehicles, respawns will decrease your repution. At the beginning you have a very low reputation level, so civilians won't help you revealing important information about Oplitas, they will likely lie instead. Any support or feedback is always welcome and appreciated! -Credits: +### Credits: - =BTC= clan - [Contributors](https://github.com/Vdauphin/HeartsAndMinds/graphs/contributors) \ No newline at end of file From d746bc71b35369917834baa31554818355c237e9 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Thu, 3 Aug 2017 21:48:24 +0200 Subject: [PATCH 116/120] Add: 1.17 --- =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf | 2 +- =BTC=co@30_Hearts_and_Minds.Altis/core/doc.sqf | 2 +- README.md | 5 +++-- 3 files changed, 5 insertions(+), 4 deletions(-) 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 68817eb5e..30a9e6d17 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,7 +1,7 @@ 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"]; -btc_version = 1.161; diag_log format ["=BTC= HEARTS AND MINDS VERSION %1",(str(btc_version) + ".6")]; +btc_version = 1.17; diag_log format ["=BTC= HEARTS AND MINDS VERSION %1",(str(btc_version) + ".0")]; //Param 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 82fa99594..83dd0f439 100644 --- a/=BTC=co@30_Hearts_and_Minds.Altis/core/doc.sqf +++ b/=BTC=co@30_Hearts_and_Minds.Altis/core/doc.sqf @@ -149,6 +149,6 @@ player createDiaryRecord ["Documentation", ["Interaction", " player createDiaryRecord ["Documentation", [ "Version", - format [" Version %1 ",(str(btc_version) + ".6")] + format [" Version %1 ",(str(btc_version) + ".0")] ] ]; \ No newline at end of file diff --git a/README.md b/README.md index 6db86a4b8..e3d835363 100644 --- a/README.md +++ b/README.md @@ -5,8 +5,8 @@

- - H&M Version + + H&M Version H&M Downloads @@ -35,6 +35,7 @@ A new formed group, known as "Oplitas", is againts the NATO intervention and is - Full saving DataBase - Easy map change - Extend battlefield to sea +- Custom gameplay - Headless support - Dedicate server support only - Something I forgot for sure From a8e93b52aebff693ea0c1af6687f0757831ce0ef Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 5 Aug 2017 18:57:41 +0200 Subject: [PATCH 117/120] Add: picture --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e3d835363..66f6b88fc 100644 --- a/README.md +++ b/README.md @@ -49,8 +49,12 @@ Bad actions cause bad effetcs. Infact there's a reputation system: helping the local population, fighting the "Oplitas", disarming IED will rise your reputation; killing civilians, mutilate alive/dead civilian, firing near civilians for no reason, damaging/destroying buildings, losing vehicles, respawns will decrease your repution. At the beginning you have a very low reputation level, so civilians won't help you revealing important information about Oplitas, they will likely lie instead. +

+ +

+ Any support or feedback is always welcome and appreciated! ### Credits: - =BTC= clan -- [Contributors](https://github.com/Vdauphin/HeartsAndMinds/graphs/contributors) \ No newline at end of file +- [Contributors](https://github.com/Vdauphin/HeartsAndMinds/graphs/contributors) From 658d30fdd06c314ea363e6a18a5ef530cff0be96 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sat, 5 Aug 2017 23:16:49 +0200 Subject: [PATCH 118/120] FIX: filter AA/Pilote not accurate --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/mil/class.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 c76ec239d..c51cdb0a7 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 @@ -59,9 +59,9 @@ if (_enemy_side isEqualTo btc_player_side) exitWith { //Final filter unwanted units type if !(_en_AA) then { //Remove Anti-Air Units - _type_units = _type_units select {(_x find "AA_") isEqualTo -1}; + _type_units = _type_units select {((_x find "AAA_") isEqualTo -1) && ((_x find "_AA_") isEqualTo -1)}; }; -_type_units = _type_units select {((_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_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}; From ea1fd2ba4804b90a94d348a74780f2c09871cae4 Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Fri, 11 Aug 2017 00:00:52 +0200 Subject: [PATCH 119/120] Update README.md Add:photo --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 66f6b88fc..8b8794b30 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,7 @@ At the beginning you have a very low reputation level, so civilians won't help y

+

Any support or feedback is always welcome and appreciated! From 0c2e676b715dda84110cccbb6aea6bcec62a92ce Mon Sep 17 00:00:00 2001 From: Vdauphin Date: Sun, 13 Aug 2017 15:22:19 +0200 Subject: [PATCH 120/120] FIX: missing joinsilent --- =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/rep/call_militia.sqf | 1 + .../core/fnc/side/capture_officer.sqf | 1 + =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/convoy.sqf | 1 + =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/side/hostage.sqf | 1 + 4 files changed, 4 insertions(+) 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 8adcaac08..c883f8330 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 @@ -72,6 +72,7 @@ if ((random 1) > _ratio) then _unit_type createUnit [_start_pos, _group, "this moveinCargo _veh;this assignAsCargo _veh;"]; }; + units _group joinSilent _group; _group selectLeader (driver _veh); _wp = _group addWaypoint [_pos, 60]; 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 3a7356748..20c31166d 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 @@ -85,6 +85,7 @@ for "_i" from 0 to _random do { _pos1 = getPos _road; }; +units _group joinSilent _group; {_x call btc_fnc_mil_unit_create} foreach units _group; _group setBehaviour "SAFE"; 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 ad1beecec..5bd791b8e 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 @@ -77,6 +77,7 @@ for "_i" from 0 to (2 + round random 2) do { _pos1 = getPos _road; }; +units _group joinSilent _group; {_x call btc_fnc_mil_unit_create} foreach units _group; _group setBehaviour "SAFE"; 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 c8068b79c..c8c78d7eb 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 @@ -50,6 +50,7 @@ _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];