From ac22c9708ae988adbce5d46409368c549e3b66ec Mon Sep 17 00:00:00 2001 From: fallingsheep Date: Fri, 13 Feb 2015 21:29:42 +1100 Subject: [PATCH] lift script --- .../=BTC=_logistic/=BTC=_addAction.sqf | 4 + .../=BTC=_cargo_system_init.sqf | 83 +++++ .../=BTC=_cargo_system/=BTC=_functions.sqf | 321 ++++++++++++++++++ .../=BTC=_fast_roping_init.sqf | 22 ++ .../=BTC=_fast_roping/=BTC=_functions.sqf | 32 ++ .../=BTC=_logistic/=BTC=_lift/=BTC=_Hud.h | 94 +++++ .../=BTC=_lift/=BTC=_lift_init.sqf | 190 +++++++++++ .../=BTC=_lift/img/=BTC=_Obj.paa | Bin 0 -> 1522 bytes .../=BTC=_lift/img/arrow_down_ca.paa | Bin 0 -> 1522 bytes .../=BTC=_lift/img/arrow_up_ca.paa | Bin 0 -> 1522 bytes .../=BTC=_lift/img/igui_radar_air_ca.paa | Bin 0 -> 28312 bytes .../=BTC=_lift/img/objective_complete_ca.paa | Bin 0 -> 22016 bytes .../img/objective_incomplete_ca.paa | Bin 0 -> 5625 bytes .../=BTC=_logistic/=BTC=_logistic_init.sqf | 130 +++++++ .../epoch.Altis/=BTC=_logistic/Hint&Tips.sqf | 27 ++ MPMissions/epoch.Altis/=BTC=_logo.paa | Bin 0 -> 87559 bytes 16 files changed, 903 insertions(+) create mode 100644 MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_addAction.sqf create mode 100644 MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_cargo_system/=BTC=_cargo_system_init.sqf create mode 100644 MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_cargo_system/=BTC=_functions.sqf create mode 100644 MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_fast_roping/=BTC=_fast_roping_init.sqf create mode 100644 MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_fast_roping/=BTC=_functions.sqf create mode 100644 MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_lift/=BTC=_Hud.h create mode 100644 MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_lift/=BTC=_lift_init.sqf create mode 100644 MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_lift/img/=BTC=_Obj.paa create mode 100644 MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_lift/img/arrow_down_ca.paa create mode 100644 MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_lift/img/arrow_up_ca.paa create mode 100644 MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_lift/img/igui_radar_air_ca.paa create mode 100644 MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_lift/img/objective_complete_ca.paa create mode 100644 MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_lift/img/objective_incomplete_ca.paa create mode 100644 MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_logistic_init.sqf create mode 100644 MPMissions/epoch.Altis/=BTC=_logistic/Hint&Tips.sqf create mode 100644 MPMissions/epoch.Altis/=BTC=_logo.paa diff --git a/MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_addAction.sqf b/MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_addAction.sqf new file mode 100644 index 0000000..75085a6 --- /dev/null +++ b/MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_addAction.sqf @@ -0,0 +1,4 @@ +_array = _this select 3; +_param = _array select 0; +_code = _array select 1; +_spawn = _param spawn _code; \ No newline at end of file diff --git a/MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_cargo_system/=BTC=_cargo_system_init.sqf b/MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_cargo_system/=BTC=_cargo_system_init.sqf new file mode 100644 index 0000000..168d4ee --- /dev/null +++ b/MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_cargo_system/=BTC=_cargo_system_init.sqf @@ -0,0 +1,83 @@ +waitUntil {!isNull player}; +waitUntil {player == player}; +#include "=BTC=_functions.sqf" +BTC_action_cargo = false; +BTC_l_dragging = false; +BTC_l_actions_cond = true; + + +_dlg = player addaction [("") + ("Check Vehicle") + "",BTC_dir_action,[[],BTC_l_check_vehicle],-7,false,false,"","BTC_l_actions_cond && count (nearestObjects [player, BTC_def_vehicles, 5]) > 0 || {vehicle player isKindOf _x} count BTC_def_vehicles > 0"]; +_sel = player addaction [("") + ("Select") + "",BTC_dir_action,[[],BTC_l_select],-7,false,false,"","BTC_l_actions_cond && vehicle player == player && count (nearestObjects [player, BTC_def_cargo, 5]) > 0"]; +_load = player addaction [("") + ("Load") + "",BTC_dir_action,[[],BTC_l_load],-7,false,false,"","BTC_l_actions_cond && vehicle player == player && !isNull BTC_cargo_selected && count (nearestObjects [player, BTC_def_vehicles, 5]) > 0"]; +_drag = player addaction [("") + ("Drag") + "",BTC_dir_action,[[],BTC_l_drag],-7,false,false,"","BTC_l_actions_cond && vehicle player == player && count (nearestObjects [player, BTC_def_drag, 5]) > 0"]; +_plac = player addaction [("") + ("Place") + "",BTC_dir_action,[[],BTC_l_placement],-7,false,false,"","BTC_l_actions_cond && vehicle player == player && count (nearestObjects [player, BTC_def_placement, 5]) > 0"]; +_eh = player addEventHandler ["respawn", +{ + _actions = [] spawn + { + waitUntil {Alive player}; + BTC_action_cargo = false; + BTC_l_dragging = false; + BTC_l_actions_cond = true; + _dlg = player addaction [("") + ("Check Vehicle") + "",BTC_dir_action,[[],BTC_l_check_vehicle],-7,false,false,"","BTC_l_actions_cond && count (nearestObjects [player, BTC_def_vehicles, 5]) > 0 || {vehicle player isKindOf _x} count BTC_def_vehicles > 0"]; + _sel = player addaction [("") + ("Select") + "",BTC_dir_action,[[],BTC_l_select],-7,false,false,"","BTC_l_actions_cond && vehicle player == player && count (nearestObjects [player, BTC_def_cargo, 5]) > 0"]; + _load = player addaction [("") + ("Load") + "",BTC_dir_action,[[],BTC_l_load],-7,false,false,"","BTC_l_actions_cond && vehicle player == player && !isNull BTC_cargo_selected && count (nearestObjects [player, BTC_def_vehicles, 5]) > 0"]; + _drag = player addaction [("") + ("Drag") + "",BTC_dir_action,[[],BTC_l_drag],-7,false,false,"","BTC_l_actions_cond && vehicle player == player && count (nearestObjects [player, BTC_def_drag, 5]) > 0"]; + _plac = player addaction [("") + ("Place") + "",BTC_dir_action,[[],BTC_l_placement],-7,false,false,"","BTC_l_actions_cond && vehicle player == player && count (nearestObjects [player, BTC_def_placement, 5]) > 0"]; + }; +}]; +BTC_main_cc = +[ + "Motorcycle",1, + "Car",3, + "Truck",10, + "Wheeled_APC",5, + "Tank",5, + "Ship",3, + "Helicopter",6 +]; +BTC_main_rc = +[ + "ReammoBox_F",2, + "Strategic",2, + "Motorcycle",3, + "Car",11, + "Truck",15, + "Wheeled_APC",20, + "Tank",25, + "Ship",15, + "Helicopter",9999 +]; +/* +BTC_main_c_c = +[ + [ + //Cars + "B_MRAP_01_F", + "B_MRAP_01_gmg_F", + "B_MRAP_01_hmg_F", + "O_MRAP_02_F", + "O_MRAP_02_gmg_F", + "O_MRAP_02_hmg_F", + "B_Quadbike_01_F", + "C_Offroad_01_F", + "O_Quadbike_01_F", + "I_Quadbike_01_F", + "I_MRAP_03_F", + "I_MRAP_03_gmg_F", + "I_MRAP_03_hmg_F", + //Trucks + "B_Truck_01_transport_F", + "B_Truck_01_covered_F", + "I_Truck_02_covered_F", + "O_Truck_02_covered_F", + "I_Truck_02_transport_F", + "O_Truck_02_transport_F", + "O_Truck_02_transport_F" + ] + , + [ + + ] +]; +*/ \ No newline at end of file diff --git a/MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_cargo_system/=BTC=_functions.sqf b/MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_cargo_system/=BTC=_functions.sqf new file mode 100644 index 0000000..b5fcbbf --- /dev/null +++ b/MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_cargo_system/=BTC=_functions.sqf @@ -0,0 +1,321 @@ +/* +Created by =BTC= Giallustio + +Date: 20/03/2013 +Visit us at: http://www.blacktemplars.altervista.org/ +*/ +//Cargo system +BTC_l_check_vehicle = +{ + //Open dlg + _veh = objNull;_array = []; + if (vehicle player == player) then {_array = nearestObjects [player, BTC_def_vehicles, 5];} else {_array = [vehicle player];}; + if (count _array > 0) then {_veh = _array select 0;}; + if (!isNull _veh) then + { + //if (!isNil {_veh getVariable "BTC_cargo_cont"}) then + if (isNil {_veh getVariable "BTC_cargo_cont"}) then {_veh setVariable ["BTC_cargo_cont",[],false];}; + private ["_cargo"]; + _text = ""; + _cargo = _veh getVariable "BTC_cargo_cont"; + _text = _text + "Vehicle: " + getText (configFile >> "cfgVehicles" >> typeof _veh >> "displayName") + format ["
CC: %1/%2",[_veh] call BTC_check_cc,[_veh] call BTC_get_cc] + "
Cargo:
"; + if (count _cargo > 0) then + { + { + _text = _text + getText (configFile >> "cfgVehicles" >> typeof _x >> "displayName") + format [" [%1]",[_x] call BTC_get_rc] + "
"; + [_x,_veh] spawn + { + _obj = _this select 0; + _veh = _this select 1; + private ["_sleep"]; + //player sideChat format ["%1",_obj]; + _unload = _veh addaction [("") + (format ["UnLoad %1",getText (configFile >> "cfgVehicles" >> typeof _obj >> "displayName")]) + "",BTC_dir_action,[[_veh,_obj],BTC_l_unload],7,true,false,"","true"]; + _sleep = time + 15; + waitUntil {BTC_action_cargo || (time > _sleep)}; + _veh removeAction _unload; + }; + } foreach _cargo; + hint parseText _text; + } else {_text = _text + "Empty";hint parseText _text;}; + }; +}; +BTC_l_select = +{ + _array = nearestObjects [player, BTC_def_cargo, 5]; + if (count _array > 0) then + { + BTC_cargo_selected = _array select 0; + if (format ["%1", BTC_cargo_selected getVariable "BTC_cannot_load"] == "1") then + {hint "You can not load this object";BTC_cargo_selected = objNull;} else {hint parseText format ["%1 selected
CR: %2",getText (configFile >> "cfgVehicles" >> typeof BTC_cargo_selected >> "displayName"),[BTC_cargo_selected] call BTC_get_rc];}; + }; +}; +BTC_l_load = +{ + private ["_array","_veh_name","_obj_name"]; + _veh = objNull;_cargo_cont = [];_cond = true; + if (count _this == 0) then {_array = nearestObjects [player, BTC_def_vehicles, 5];} else {_array = _this;}; + if (count _array > 0) then {_veh = _array select 0;} else {hint "Get closer";}; + if (!isNull _veh) then + { + _veh_name = getText (configFile >> "cfgVehicles" >> typeof _veh >> "displayName"); + _obj_name = getText (configFile >> "cfgVehicles" >> typeof BTC_cargo_selected >> "displayName"); + if (([_veh] call BTC_check_cc) + ([BTC_cargo_selected] call BTC_get_rc) > ([_veh] call BTC_get_cc)) then {_cond = false;}; + if (BTC_cargo_selected distance _veh < 15 && speed _veh < 2 && _cond) then + { + hint format ["Loading %1 in %2",_obj_name,_veh_name];BTC_l_dragging = false; + sleep 3; + if (Alive BTC_cargo_selected && Alive _veh && BTC_cargo_selected distance _veh < 15 && speed _veh <= 2 && speed _veh >= -2) then + { + if (isNil {_veh getVariable "BTC_cargo_cont"}) then {_veh setVariable ["BTC_cargo_cont",[],false];}; + _cargo_cont = _veh getVariable "BTC_cargo_cont"; + _cargo_cont = _cargo_cont + [BTC_cargo_selected]; + _veh setVariable ["BTC_cargo_cont",_cargo_cont,true]; + BTC_cargo_selected attachTo [BTC_cargo_repo,[0,0,BTC_id_repo]]; + BTC_id_repo = BTC_id_repo + 15;publicVariable "BTC_id_repo"; + BTC_cargo_selected = objNull; + hint format ["%1 has been loaded in %2",_obj_name,_veh_name]; + } else {hint format ["%1 has not been loaded",_obj_name];}; + } else {if (!_cond) then {hint "There is no enough space in the cargo!";} else {hint "The object is too far from the vehicle or the vehicle is moving!";};}; + }; +}; +BTC_l_unload = +{ + _veh = _this select 0; + _obj = _this select 1; + BTC_action_cargo = true; + _cargo_cont = _veh getVariable "BTC_cargo_cont"; + _id = _cargo_cont find _obj; + if (_id != -1) then + { + _veh_name = getText (configFile >> "cfgVehicles" >> typeof _veh >> "displayName"); + _obj_name = getText (configFile >> "cfgVehicles" >> typeof _obj >> "displayName"); + hint format ["Unloading %1 from %2",_obj_name,_veh_name]; + sleep 3; + hint format ["%1 has been unloaded",_obj_name,_veh_name]; + _cargo_cont set [_id,0]; + _cargo_cont = _cargo_cont - [0]; + _veh setVariable ["BTC_cargo_cont",_cargo_cont,true]; + _height = getPos (vehicle player) select 2; + deTach _obj; + _obj setVelocity [0,0,0]; + _obj setpos (_veh modelToWorld [-3,0,0]); + switch (true) do + { + case (_height >= 20): + { + _obj_para = [_veh,_obj,"B_Parachute_02_F"] spawn BTC_l_paradrop; + }; + case ((_height < 20) && (_height >= 2)): + { + _obj setPos [getpos _veh select 0,getpos _veh select 1,(getpos _veh select 2) -1]; + sleep 0.1; + if (_obj isKindOf "Strategic") then {_obj_fall = [_obj] spawn BTC_l_obj_fall;}; + }; + case (_height < 2): + { + _obj setpos (_veh modelToWorld [-3,0,0]); + }; + }; + }; + sleep 1; + BTC_action_cargo = false; +}; +BTC_l_release = +{ + BTC_l_dragging = false; +}; +BTC_l_drag = +{ + private ["_drag","_veh"]; + _array = nearestObjects [player, BTC_def_drag, 5]; + if (count _array > 0) then {_drag = _array select 0;}; + if (isNull _drag) exitWith {}; + if (format ["%1", _drag getVariable "BTC_cannot_drag"] == "1") exitWith {hint "You can't drag this object!";}; + if (_drag distance player > 4) exitWith {hint "Too distance from the object!";}; + if (BTC_l_dragging) exitWith {hint "You can't drag more than one object!";}; + if (format ["%1", _drag getVariable "BTC_being_drag"] == "1") exitWith {hint "You can't drag this object! it's being dragged!";}; + BTC_l_dragging = true; + _drag setvariable ["BTC_Being_Drag",1,true]; + BTC_display_EH_l = (findDisplay 46) displayAddEventHandler ["KeyDown", "if (_this select 1 == 45) then {_anim = [] spawn {sleep 0.01;player switchMove ""acinpknlmstpsraswrfldnon"";};};"]; + player playMove "acinpknlmstpsraswrfldnon"; + _drag attachto [player,[0,2,0.2]]; + sleep 0.1; + if ((position _drag select 2) < - 0.5) then {_drag attachto [player,[0,1,1.2]];}; + _release = player addaction [("") + ("Release") + "",BTC_dir_action,[[],BTC_l_release],7,true,false,"","true"]; + WaitUntil {!Alive player || ((animationstate player == "acinpknlmstpsraswrfldnon") || (animationstate player == "acinpknlmwlksraswrfldb"))}; + _act = 0; + While {BTC_l_dragging && vehicle player == player && Alive player && ((animationstate player == "acinpknlmstpsraswrfldnon") || (animationstate player == "acinpknlmwlksraswrfldb"))} do + { + /*_array = nearestObjects [player, BTC_def_vehicles, 5]; + if (count _array == 0) then {_veh = objNull;}; + if (count _array > 0 && _veh != _array select 0) then + { + _veh = _array select 0; + _name_veh = getText (configFile >> "cfgVehicles" >> typeof _veh >> "displayName"); + _text_action = ("" + "Load in " + (_name_veh) + ""); + _load = player addAction [_text_action,BTC_dir_action, [[_veh],BTC_l_load], 7, true, true]; + _act = 1; + }; + if (count _array == 0 && _act == 1) then {player removeAction _load;_act = 0;};*/ + sleep 0.1; + }; + player playMoveNow "AmovPknlMstpSrasWrflDnon";BTC_l_dragging = false; + player removeAction _release;//player removeAction _load; + (findDisplay 46) displayRemoveEventHandler ["KeyDown",BTC_display_EH_l]; + if !(isNull _drag) then + { + detach _drag; + //_rel_pos = player modelToWorld [0,1,0]; + //BTC_cargo_selected setpos _rel_pos; + _drag setvariable ["BTC_Being_Drag",0,true]; + }; +}; +BTC_get_cc = +{ + private ["_n","_array_class"]; + _obj = _this select 0; + _type = typeOf _obj; + _cc = 0;_cond = false; + for "_i" from 0 to (count BTC_def_cc - 1) do + { + if (typeName (BTC_def_cc select _i) == "STRING" && !_cond) then + { + if (!_cond && _type == (BTC_def_cc select _i)) then {_cc = (BTC_def_cc select (_i + 1));_cond = true;}; + }; + }; + if (!_cond) then + { + for "_i" from 0 to (count BTC_main_cc - 1) do + { + if (typeName (BTC_main_cc select _i) == "STRING") then + { + if (!_cond && _type isKindOf (BTC_main_cc select _i)) then {_cc = (BTC_main_cc select (_i + 1));_cond = true;}; + }; + }; + }; + _cc +}; +BTC_get_rc = +{ + private ["_n","_array_class"]; + _obj = _this select 0; + _type = typeOf _obj; + _rc = 0;_cond = false; + for "_i" from 0 to (count BTC_def_rc - 1) do + { + if (typeName (BTC_def_rc select _i) == "STRING" && !_cond) then + { + if (!_cond && _type == (BTC_def_rc select _i)) then {_rc = (BTC_def_rc select (_i + 1));_cond = true;}; + }; + }; + if (!_cond) then + { + for "_i" from 0 to (count BTC_main_rc - 1) do + { + if (typeName (BTC_main_rc select _i) == "STRING" && !_cond) then + { + if (!_cond && _type isKindOf (BTC_main_rc select _i)) then {_rc = (BTC_main_rc select (_i + 1));_cond = true;}; + }; + }; + }; + _rc +}; +BTC_check_cc = +{ + private ["_n","_array_class","_cargo"]; + _veh = _this select 0; + if (isNil {_veh getVariable "BTC_cargo_cont"}) then {_veh setVariable ["BTC_cargo_cont",[],false];}; + _cargo = _veh getVariable "BTC_cargo_cont"; + _tot_rc = 0; + {_tot_rc = _tot_rc + ([_x] call BTC_get_rc);} foreach _cargo; + _tot_rc +}; +//Placement +BTC_l_placement = +{ + private ["_plac","_veh","_array"]; + _array = nearestObjects [player, BTC_def_placement, 5]; + if (count _array > 0) then {_plac = _array select 0;}; + if (isNull _plac) exitWith {}; + if (format ["%1", _plac getVariable "BTC_cannot_place"] == "1") exitWith {hint "You can't place this object!";}; + BTC_l_plac_obj = _plac; + BTC_l_camera = objNull; + BTC_l_end = false; + BTC_l_camera_placement = false; + BTC_l_camera_created = false; + BTC_l_camera_nvg = false; + BTC_l_camera_EH_keydown = (findDisplay 46) displayAddEventHandler ["KeyDown", "_keydown = _this spawn BTC_l_keydown"]; + BTC_l_central_pos = getposATL BTC_l_plac_obj; + BTC_cam_rel_pos = [0,-6,15]; + BTC_l_plac_obj enableSimulation false; + BTC_l_actions_cond = false; + while {!BTC_l_end && Alive player} do + { + if (!BTC_l_camera_placement) then {player playMoveNow "amovpercmstpsraswrfldnon";}; + if (BTC_l_camera_placement && !BTC_l_camera_created) then {_cam = [BTC_l_plac_obj] spawn BTC_l_create_camera;}; + if (!BTC_l_camera_placement && BTC_l_camera_created) then {_cam = [BTC_l_plac_obj] spawn BTC_l_destroy_camera;}; + if (BTC_l_camera_nvg) then {camusenvg true;} else {camusenvg false;}; + BTC_l_camera camSetPos (BTC_l_plac_obj modelToWorld BTC_cam_rel_pos); + BTC_l_camera camCommit 0; + hintSilent parseText "Keys:
W to move the object towards Nord
A to move the object towards West
S to move the object towards South
D to move the object towards East
Q and Z to modify the elevation
ALT + A/D to modify the direction
C to open/close the camera
CTRL + WASDQZ to move the camera
N to use the nightvision
Back to get back to the game"; + sleep 0.01; + }; + BTC_l_actions_cond = true; + BTC_l_plac_obj enableSimulation true; + BTC_l_plac_obj = objNull; + hintSilent "";titleText ["", "PLAIN"]; + if (BTC_l_camera_placement) then {_cam = [BTC_l_plac_obj] spawn BTC_l_destroy_camera;}; + (findDisplay 46) displayRemoveEventHandler ["KeyDown",BTC_l_camera_EH_keydown]; +}; +BTC_l_create_camera = +{ + _obj = _this select 0; + BTC_l_camera = "camera" camCreate (position _obj); + BTC_l_camera camSetTarget _obj; + BTC_l_camera cameraEffect ["internal", "BACK"]; + BTC_l_camera camSetPos (_obj modelToWorld [0,-6,15]); + BTC_l_camera camCommit 0; + showCinemaBorder false; + BTC_l_camera_created = true; +}; +BTC_l_destroy_camera = +{ + player cameraEffect ["TERMINATE", "BACK"]; + camDestroy BTC_l_camera; + BTC_l_camera = objNull; + BTC_l_camera_placement = false; + BTC_l_camera_created = false; + BTC_l_camera_nvg = false; +}; +BTC_l_keydown = +{ + private ["_key","_dir"]; + if (count _this > 1) then + { + _key = _this select 1; + _ctrl = _this select 3; + _alt = _this select 4; + //player globalchat format ["%1 - %2",_key,_this]; + switch (true) do + { + case (_key == 14) : {BTC_l_end = true;}; + case (_key == 30 && !_alt && !_ctrl) : {BTC_l_plac_obj setpos [(getpos BTC_l_plac_obj select 0) - 0.1,(getpos BTC_l_plac_obj select 1),(getposATL BTC_l_plac_obj select 2)];if ([BTC_l_central_pos,BTC_l_plac_obj] call BIS_fnc_distance2D > BTC_l_placement_area) then {player sideChat "Out of the placement zone!";BTC_l_plac_obj setpos [(getpos BTC_l_plac_obj select 0) + 0.1,(getpos BTC_l_plac_obj select 1),(getposATL BTC_l_plac_obj select 2)];};}; + case (_key == 32 && !_alt && !_ctrl) : {BTC_l_plac_obj setpos [(getpos BTC_l_plac_obj select 0) + 0.1,(getpos BTC_l_plac_obj select 1),(getposATL BTC_l_plac_obj select 2)];if ([BTC_l_central_pos,BTC_l_plac_obj] call BIS_fnc_distance2D > BTC_l_placement_area) then {player sideChat "Out of the placement zone!";BTC_l_plac_obj setpos [(getpos BTC_l_plac_obj select 0) - 0.1,(getpos BTC_l_plac_obj select 1),(getposATL BTC_l_plac_obj select 2)];};}; + case (_key == 31 && !_ctrl) : {BTC_l_plac_obj setpos [(getpos BTC_l_plac_obj select 0),(getpos BTC_l_plac_obj select 1) - 0.1,(getposATL BTC_l_plac_obj select 2)];if ([BTC_l_central_pos,BTC_l_plac_obj] call BIS_fnc_distance2D > BTC_l_placement_area) then {player sideChat "Out of the placement zone!";BTC_l_plac_obj setpos [(getpos BTC_l_plac_obj select 0),(getpos BTC_l_plac_obj select 1) + 0.1,(getposATL BTC_l_plac_obj select 2)];};}; + case (_key == 17 && !_ctrl) : {BTC_l_plac_obj setpos [(getpos BTC_l_plac_obj select 0),(getpos BTC_l_plac_obj select 1) + 0.1,(getposATL BTC_l_plac_obj select 2)];if ([BTC_l_central_pos,BTC_l_plac_obj] call BIS_fnc_distance2D > BTC_l_placement_area) then {player sideChat "Out of the placement zone!";BTC_l_plac_obj setpos [(getpos BTC_l_plac_obj select 0),(getpos BTC_l_plac_obj select 1) - 0.1,(getposATL BTC_l_plac_obj select 2)];};}; + case (_key == 44 && !_ctrl) : {BTC_l_plac_obj setpos [(getpos BTC_l_plac_obj select 0),(getpos BTC_l_plac_obj select 1),(getposATL BTC_l_plac_obj select 2) - 0.1];if (abs (((BTC_l_central_pos) select 2) - ((getposATL BTC_l_plac_obj) select 2)) > BTC_l_placement_area) then {BTC_l_plac_obj setpos [(getpos BTC_l_plac_obj select 0),(getpos BTC_l_plac_obj select 1),(getposATL BTC_l_plac_obj select 2) + 0.1];};}; + case (_key == 16 && !_ctrl) : {BTC_l_plac_obj setpos [(getpos BTC_l_plac_obj select 0),(getpos BTC_l_plac_obj select 1),(getposATL BTC_l_plac_obj select 2) + 0.1];if (abs (((BTC_l_central_pos) select 2) - ((getposATL BTC_l_plac_obj) select 2)) > BTC_l_placement_area) then {BTC_l_plac_obj setpos [(getpos BTC_l_plac_obj select 0),(getpos BTC_l_plac_obj select 1),(getposATL BTC_l_plac_obj select 2) - 0.1];};}; + case (_key == 30 && _alt && !_ctrl) : {_dir = getdir BTC_l_plac_obj;BTC_l_plac_obj setDir (_dir - 1);}; + case (_key == 32 && _alt && !_ctrl) : {_dir = getdir BTC_l_plac_obj;BTC_l_plac_obj setDir (_dir + 1);}; + case (_key == 46) : {if (BTC_l_camera_placement) then {BTC_l_camera_placement = false;} else {BTC_l_camera_placement = true;};}; + case (_key == 49) : {if (BTC_l_camera_nvg) then {BTC_l_camera_nvg = false;} else {BTC_l_camera_nvg = true;};}; + + case (BTC_l_camera_placement && _key == 30 && _ctrl) : {private ["_n"];_n = (BTC_cam_rel_pos select 0) - 0.5;if !((abs _n) > BTC_l_placement_area) then {BTC_cam_rel_pos = [_n,BTC_cam_rel_pos select 1,BTC_cam_rel_pos select 2];};}; + case (BTC_l_camera_placement && _key == 32 && _ctrl) : {private ["_n"];_n = (BTC_cam_rel_pos select 0) + 0.5;if !((abs _n) > BTC_l_placement_area) then {BTC_cam_rel_pos = [_n,BTC_cam_rel_pos select 1,BTC_cam_rel_pos select 2];};}; + case (BTC_l_camera_placement && _key == 31 && _ctrl) : {private ["_n"];_n = (BTC_cam_rel_pos select 1) - 0.5;if !((abs _n) > BTC_l_placement_area) then {BTC_cam_rel_pos = [BTC_cam_rel_pos select 0,_n,BTC_cam_rel_pos select 2];};}; + case (BTC_l_camera_placement && _key == 17 && _ctrl) : {private ["_n"];_n = (BTC_cam_rel_pos select 1) + 0.5;if !((abs _n) > BTC_l_placement_area) then {BTC_cam_rel_pos = [BTC_cam_rel_pos select 0,_n,BTC_cam_rel_pos select 2];};}; + case (BTC_l_camera_placement && _key == 44 && _ctrl) : {private ["_n"];_n = (BTC_cam_rel_pos select 2) - 0.5;if !((abs _n) > BTC_l_placement_area) then {BTC_cam_rel_pos = [BTC_cam_rel_pos select 0,BTC_cam_rel_pos select 1,_n];};}; + case (BTC_l_camera_placement && _key == 16 && _ctrl) : {private ["_n"];_n = (BTC_cam_rel_pos select 2) + 0.5;if !((abs _n) > BTC_l_placement_area) then {BTC_cam_rel_pos = [BTC_cam_rel_pos select 0,BTC_cam_rel_pos select 1,_n];};}; + }; + }; +}; \ No newline at end of file diff --git a/MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_fast_roping/=BTC=_fast_roping_init.sqf b/MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_fast_roping/=BTC=_fast_roping_init.sqf new file mode 100644 index 0000000..865c68b --- /dev/null +++ b/MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_fast_roping/=BTC=_fast_roping_init.sqf @@ -0,0 +1,22 @@ +/* +Created by =BTC= Giallustio + +Date: 20/03/2013 +Visit us at: http://www.blacktemplars.altervista.org/ +*/ +waitUntil {!isNull player}; +waitUntil {player == player}; +#include "=BTC=_functions.sqf" +_rope = player addaction [("") + ("Deploy rope") + "",BTC_dir_action,[[],BTC_deploy_rope],-10,true,false,"","typeOf (vehicle player) in BTC_roping_chopper && player == driver vehicle player && format [""%1"",(vehicle player) getVariable ""BTC_rope""] != ""1"" && ((getPos (vehicle player)) select 2) < BTC_fast_rope_h && ((getPos (vehicle player)) select 2) > BTC_fast_rope_h_min && speed (vehicle player) < 2"]; +_rope = player addaction [("") + ("Cut rope") + "",BTC_dir_action,[[],BTC_cut_rope],-10,true,false,"","typeOf (vehicle player) in BTC_roping_chopper && player == driver (vehicle player) && format [""%1"",(vehicle player) getVariable ""BTC_rope""] == ""1"""]; +_out = player addaction [("") + ("Fast rope") + "",BTC_dir_action,[[player],BTC_fast_rope],-10,true,false,"","player in (assignedCargo (vehicle player)) && format [""%1"",(vehicle player) getVariable ""BTC_rope""] == ""1"""]; +_eh = player addEventHandler ["respawn", +{ + _actions = [] spawn + { + waitUntil {Alive player}; + _rope = player addaction [("") + ("Deploy rope") + "",BTC_dir_action,[[],BTC_deploy_rope],-10,true,false,"","typeOf (vehicle player) in BTC_roping_chopper && player == driver vehicle player && format [""%1"",(vehicle player) getVariable ""BTC_rope""] != ""1"" && ((getPos (vehicle player)) select 2) < BTC_fast_rope_h && ((getPos (vehicle player)) select 2) > BTC_fast_rope_h_min && speed (vehicle player) < 2"]; + _rope = player addaction [("") + ("Cut rope") + "",BTC_dir_action,[[],BTC_cut_rope],-10,true,false,"","typeOf (vehicle player) in BTC_roping_chopper && player == driver (vehicle player) && format [""%1"",(vehicle player) getVariable ""BTC_rope""] == ""1"""]; + _out = player addaction [("") + ("Fast rope") + "",BTC_dir_action,[[player],BTC_fast_rope],-10,true,false,"","player in (assignedCargo (vehicle player)) && format [""%1"",(vehicle player) getVariable ""BTC_rope""] == ""1"""]; + }; +}]; \ No newline at end of file diff --git a/MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_fast_roping/=BTC=_functions.sqf b/MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_fast_roping/=BTC=_functions.sqf new file mode 100644 index 0000000..0570753 --- /dev/null +++ b/MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_fast_roping/=BTC=_functions.sqf @@ -0,0 +1,32 @@ +BTC_deploy_rope = +{ + hint "Rope deployed"; + _veh = vehicle player; + _veh setVariable ["BTC_rope",1,true]; + WaitUntil {!Alive _veh || !Alive player || (((getPos player) select 2) > BTC_fast_rope_h) || format ["%1",_veh getVariable "BTC_rope"] != "1"}; + _veh setVariable ["BTC_rope",0,true]; +}; +BTC_cut_rope = +{ + hint "Rope cut"; + _veh = vehicle player; + _veh setVariable ["BTC_rope",0,true]; +}; +BTC_fast_rope = +{ + hint "Fast roping"; + _unit = _this select 0; + _veh = vehicle _unit; + _unit action ["EJECT",_veh];unassignVehicle _unit; + _unit setPos (_veh modelToWorld [2,1,-2]); + _unit switchMove "LadderRifleStatic"; + _unit setDir (getDir _veh - 90); + While {Alive _unit && (((getPos _unit) select 2) > 1.5)} do {_unit switchMove "LadderRifleStatic";}; + if (Alive _unit && format ["%1",_veh getVariable "BTC_rope"] == "1") then + { + _unit setVelocity [0,0,0]; + _unit playMove "LadderRifleDownOff"; + if !(isPlayer _unit) then {_unit move [((getPos _unit) select 0) + 3,((getPos _unit) select 1) + 3,0];}; + }; + if (format ["%1",_veh getVariable "BTC_rope"] != "1") then {hint "The chopper flew away! The rope has been cut!";_unit playMove "LadderRifleDownOff";}; +}; \ No newline at end of file diff --git a/MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_lift/=BTC=_Hud.h b/MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_lift/=BTC=_Hud.h new file mode 100644 index 0000000..bd33524 --- /dev/null +++ b/MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_lift/=BTC=_Hud.h @@ -0,0 +1,94 @@ +/* +x = (_xPos/100) * safezoneW + safezoneX; +y = (_yPos/100) * safezoneH + safezoneY; +w = (_width/100) * safezoneW; +h = (_height/100) * safezoneH; +*/ +class BTC_Hud +{ + idd = 1000; + movingEnable=0; + duration=1e+011; + name = "BTC_Hud_Name"; + onLoad = "uiNamespace setVariable [""HUD"", _this select 0];"; + controlsBackground[] = {}; + objects[] = {}; + class controls + { + class Radar + { + type = 0; + idc = 1001; + style = 48; + x = (SafeZoneW+2*SafeZoneX) - 0.3;//safezonex + 0.1;//0.9//- 0.1 + y = (SafeZoneH+2*SafeZoneY) - 0.15;//safezoney + 0.1;//0.85 + w = 0.3; + h = 0.4; + font = "PuristaMedium"; + sizeEx = 0.03; + colorBackground[] = {0, 0, 0, 0}; + colorText[] = {1, 1, 1, 1}; + text = "=BTC=_Logistic\=BTC=_Lift\img\igui_radar_air_ca.paa"; + }; + class Img_Obj + { + type = 0; + idc = 1002; + style = 48; + x = (SafeZoneW+2*SafeZoneX) - 0.155; + y = (SafeZoneH+2*SafeZoneY) + 0.045; + w = 0.01; + h = 0.01; + font = "PuristaMedium"; + sizeEx = 0.04; + colorBackground[] = {0, 0, 0, 0}; + colorText[] = {1, 1, 1, 1}; + text = "=BTC=_Logistic\=BTC=_Lift\img\=BTC=_Obj.paa"; + }; + class Pic_Obj + { + type = 0; + idc = 1003; + style = 48; + x = (SafeZoneW+2*SafeZoneX) - 0.325; + y = (SafeZoneH+2*SafeZoneY) - 0.23; + w = 0.1; + h = 0.1; + font = "PuristaMedium"; + sizeEx = 0.03; + colorBackground[] = {0, 0, 0, 0}; + colorText[] = {1, 1, 1, 1}; + text = ""; + }; + class Arrow + { + type = 0; + idc = 1004; + style = 48; + x = (SafeZoneW+2*SafeZoneX) - 0.05; + y = (SafeZoneH+2*SafeZoneY) - 0.15; + w = 0.05; + h = 0.05; + font = "PuristaMedium"; + sizeEx = 0.03; + colorBackground[] = {0, 0, 0, 0}; + colorText[] = {1, 1, 1, 1}; + text = ""; + }; + class Type_Obj + { + type = 0; + idc = 1005; + style = 0x00; + x = (SafeZoneW+2*SafeZoneX) - 0.23; + y = (SafeZoneH+2*SafeZoneY) - 0.335; + w = 0.3; + h = 0.3; + font = "PuristaMedium"; + sizeEx = 0.03; + colorBackground[] = {0, 0, 0, 0}; + colorText[] = {1, 1, 1, 1}; + text = ""; + }; + }; + }; \ No newline at end of file diff --git a/MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_lift/=BTC=_lift_init.sqf b/MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_lift/=BTC=_lift_init.sqf new file mode 100644 index 0000000..3d157e5 --- /dev/null +++ b/MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_lift/=BTC=_lift_init.sqf @@ -0,0 +1,190 @@ +/* +Created by =BTC= Giallustio + +Date: 20/03/2013 +Visit us at: http://www.blacktemplars.altervista.org/ +*/ +waitUntil {!isNull player}; +waitUntil {player == player}; + +_cond = true; +if ((count BTC_lift_pilot) > 0) then +{ + if ((BTC_lift_pilot find (typeof player)) == - 1) exitWith {hint "No lift";_cond = false;}; +}; +if !(_cond) exitWith {hint "No lift";}; +if (BTC_def_hud == 1) then +{ + disableSerialization; + cutRsc ["BTC_Hud","PLAIN"]; + _ui = uiNamespace getVariable "HUD"; + _radar = _ui displayCtrl 1001; + _obj_img = _ui displayCtrl 1002; + _obj_pic = _ui displayCtrl 1003; + _arrow = _ui displayCtrl 1004; + _obj_name = _ui displayCtrl 1005; + _array_hud = [_radar,_obj_img,_obj_pic,_arrow,_obj_name]; + {_x ctrlShow false;} foreach _array_hud; + BTC_arrow_up = "=BTC=_Logistic\=BTC=_Lift\img\arrow_up_ca.paa"; + BTC_arrow_down = "=BTC=_Logistic\=BTC=_Lift\img\arrow_down_ca.paa"; + BTC_complete = "=BTC=_Logistic\=BTC=_Lift\img\objective_complete_ca.paa"; + BTC_incomplete = "=BTC=_Logistic\=BTC=_Lift\img\objective_incomplete_ca.paa"; +}; +BTC_cargo = ObjNull; +//Functions +BTC_lift_check = +{ + private ["_rel_pos"]; + if (!(vehicle player isKindOf "Helicopter") || BTC_lifted == 1) exitWith {false}; + _array = [vehicle player] call BTC_get_liftable_array; + _chopper = vehicle player; + _can_lift = false; + _cargo_array = nearestObjects [_chopper, _array, 50]; + if (count _cargo_array > 0) then {if (driver (_cargo_array select 0) == player) then {_cargo_array set [0,0];_cargo_array = _cargo_array - [0];};}; + if (count _cargo_array > 0) then {BTC_cargo = _cargo_array select 0;} else {BTC_cargo = objNull;_can_lift = false;}; + if (({BTC_cargo isKindOf _x} count _array) > 0 && speed BTC_cargo < 2) then {_can_lift = true;} else {_can_lift = false;}; + if (_can_lift && ((BTC_cargo isKindOf "Air" && getdammage BTC_cargo != 1) || (format ["%1", BTC_cargo getVariable "BTC_cannot_lift"] == "1"))) then {_can_lift = false;}; + if (!isNull BTC_cargo && _can_lift) then + { + _cargo_pos = getPosATL BTC_cargo; + _rel_pos = _chopper worldToModel _cargo_pos; + BTC_cargo_x = _rel_pos select 0; + BTC_cargo_y = _rel_pos select 1; + BTC_cargo_z = _rel_pos select 2;//hintSilent format ["%1 - %2 - %3",BTC_cargo_x,BTC_cargo_y,BTC_cargo_z]; + }; + if (((abs BTC_cargo_z) < BTC_lift_max_h) && ((abs BTC_cargo_z) > BTC_lift_min_h) && ((abs BTC_cargo_x) < BTC_lift_radius) && ((abs BTC_cargo_y) < BTC_lift_radius)) then + {_can_lift = true;} else {_can_lift = false;}; + //hintSilent format ["%1 - %2", BTC_cargo,_cargo_array]; + _can_lift +}; +BTC_attach_cargo = +{ + private ["_cargo"]; + _chopper = vehicle player; + _array = [vehicle player] call BTC_get_liftable_array; + _cargo_array = nearestObjects [_chopper, _array, 50]; + if (count _cargo_array > 0 && driver (_cargo_array select 0) == player) then {_cargo_array set [0,0];_cargo_array = _cargo_array - [0];}; + if (count _cargo_array > 0) then {_cargo = _cargo_array select 0;} else {_cargo = objNull;}; + if (isNull _cargo) exitWith {}; + BTC_lifted = 1; + _cargo_pos = getPosATL _cargo; + _rel_pos = _chopper worldToModel _cargo_pos; + _height = (_rel_pos select 2) + 2.5; + _cargo attachTo [_chopper, [0,0,_height]]; + _name_cargo = getText (configFile >> "cfgVehicles" >> typeof _cargo >> "displayName"); + _chopper vehicleChat format ["%1 lifted", _name_cargo]; + BTC_cargo_lifted = _cargo; +}; +BTC_detach_cargo = +{ + detach BTC_cargo_lifted; + _name_cargo = getText (configFile >> "cfgVehicles" >> typeof BTC_cargo_lifted >> "displayName"); + vehicle player vehicleChat format ["%1 dropped", _name_cargo]; + if (BTC_cargo_lifted isKindOf "Strategic") then {_obj_fall = [BTC_cargo_lifted] spawn BTC_l_Obj_Fall;} else + { + _vel = velocity (vehicle player); + BTC_cargo_lifted setVelocity _vel; + }; + BTC_cargo_lifted = ObjNull; + BTC_lifted = 0; +}; +BTC_fnc_hud = +{ + private ["_can_lift"]; + disableSerialization; + _ui = uiNamespace getVariable "HUD"; + _radar = _ui displayCtrl 1001; + _obj_img = _ui displayCtrl 1002; + _obj_pic = _ui displayCtrl 1003; + _arrow = _ui displayCtrl 1004; + _obj_name = _ui displayCtrl 1005; + _array_hud = [_radar,_obj_img,_obj_pic,_arrow,_obj_name]; + {_x ctrlShow true;} foreach _array_hud;_obj_img ctrlShow false; + _can_lift = false; + while {(Alive player && vehicle player != player) && BTC_Hud_Cond} do + { + private ["_cargo"]; + _array = [vehicle player] call BTC_get_liftable_array; + _cargo_array = nearestObjects [vehicle player, _array, 50]; + if (count _cargo_array > 0 && driver (_cargo_array select 0) == player) then {_cargo_array set [0,0];_cargo_array = _cargo_array - [0];}; + if (count _cargo_array > 0) then {_cargo = _cargo_array select 0;} else {_cargo = objNull;}; + if (({_cargo isKindOf _x} count _array) > 0) then {_can_lift = true;} else {_can_lift = false;}; + if (_can_lift && ((_cargo isKindOf "Air" && getdammage _cargo != 1) || !(isNil {_cargo getVariable "BTC_cannot_lift"}))) then {_can_lift = false;}; + if (!isNull _cargo) then + { + _cargo_pos = getPosATL _cargo; + _rel_pos = (vehicle player) worldToModel _cargo_pos; + _cargo_x = _rel_pos select 0; + _cargo_y = _rel_pos select 1; + _cargo_z = _rel_pos select 2; + _obj_img ctrlShow true; + _hud_x = _cargo_x / 100; + _hud_y = 0; + switch (true) do + { + case (_cargo_y < 0): {_hud_y = (abs _cargo_y) / 100}; + case (_cargo_y > 0): {_hud_y = (0 - _cargo_y) / 100}; + }; + _hud_x_1 = BTC_HUD_x + _hud_x; + _hud_y_1 = BTC_HUD_y + _hud_y; + _obj_img ctrlsetposition [_hud_x_1, _hud_y_1]; + _obj_img ctrlCommit 0; + _pic_cargo = ""; + if (_cargo isKindOf "LandVehicle") then {_pic_cargo = getText (configFile >> "cfgVehicles" >> typeof _cargo >> "picture");} else {_pic_cargo = "";}; + _name_cargo = getText (configFile >> "cfgVehicles" >> typeof _cargo >> "displayName"); + _obj_pic ctrlSetText _pic_cargo; + if (BTC_lifted == 1) then {_obj_name ctrlSetText (format ["[%1 m] ",(round((getpos _cargo select 2) * 10))/10] + _name_cargo);} else {_obj_name ctrlSetText _name_cargo;}; + if ((abs _cargo_z) > BTC_lift_max_h) then {_arrow ctrlSetText BTC_arrow_down;}; + if ((abs _cargo_z) < BTC_lift_min_h) then {_arrow ctrlSetText BTC_arrow_up;}; + if ((abs _cargo_z) > BTC_lift_min_h && (abs _cargo_z) < BTC_lift_max_h) then {_arrow ctrlSetText BTC_complete;}; + if !(_can_lift) then {_arrow ctrlSetText BTC_incomplete;}; + } else {_obj_img ctrlShow false;_obj_pic ctrlSetText "";_obj_name ctrlSetText "";_arrow ctrlSetText "";}; + sleep 0.1; + }; + {_x ctrlShow false;} foreach _array_hud; +}; +BTC_l_camera = +{ + if (BTC_l_pip_cond) then + { + BTC_l_pip_cond = false; + [] call BIS_fnc_liveFeedTerminate; + } + else + { + hint "Activating camera..."; + BTC_l_pip_cond = true; + BTC_l_feed_target = "Land_HelipadEmpty_F" createVehicle (position player); + [] spawn {while {BTC_l_pip_cond} do {BTC_l_feed_target setpos [getPos (vehicle player) select 0,(getPos (vehicle player) select 1) + 1,0];sleep 0.1;};deleteVehicle BTC_l_feed_target;}; + [player, player, player] call BIS_fnc_liveFeed; + waitUntil {!(isNil "BIS_liveFeed")}; + hintSilent ""; + BIS_liveFeed attachTo [vehicle player,[0, - 1, -3]]; + BTC_l_feed_target call BIS_fnc_liveFeedSetTarget; + WaitUntil {sleep 1; (!(vehicle player isKindOf "Helicopter") || !Alive player)}; + if (BTC_l_pip_cond) then {BTC_l_pip_cond = false;[] call BIS_fnc_liveFeedTerminate;}; + }; +}; +[] spawn +{ + + if (BTC_def_hud == 1) then {player addAction [("" + ("Hud On\Off") + ""),BTC_dir_action, [[],{if (BTC_Hud_Cond) then {BTC_Hud_Cond = false;} else {BTC_Hud_Cond = true;_hud = [] spawn BTC_fnc_hud;};}], -8, false, false, "", "(vehicle player) isKindOf ""Helicopter"" && driver (vehicle player) == player"];}; + if (BTC_def_pip == 1) then {player addAction [("" + ("Camera On\Off") + ""),BTC_dir_action, [[],BTC_l_camera], -9, false, false, "", "typeOf (vehicle player) in BTC_l_def_veh_pip"];}; + player addAction [("" + ("Lift") + ""),BTC_dir_action, [[],BTC_attach_cargo], 9, true, false, "", "[] call BTC_lift_check"]; + player addAction [("" + ("Release") + ""),BTC_dir_action, [[],BTC_detach_cargo], -9, true, false, "", "BTC_lifted == 1"]; + player addEventHandler ["Respawn", + { + [] spawn + { + WaitUntil {sleep 1; Alive player}; + BTC_l_pip_cond = false; + BTC_cargo = ObjNull; + BTC_Hud_Cond = false; + BTC_lifted = 0; + if (BTC_def_hud == 1) then {player addAction [("" + ("Hud On\Off") + ""),BTC_dir_action, [[],{if (BTC_Hud_Cond) then {BTC_Hud_Cond = false;} else {BTC_Hud_Cond = true;_hud = [] spawn BTC_fnc_hud;};}], -8, false, false, "", "(vehicle player) isKindOf ""Helicopter"" && driver (vehicle player) == player"];}; + if (BTC_def_pip == 1) then {player addAction [("" + ("Camera On\Off") + ""),BTC_dir_action, [[],BTC_l_camera], -9, false, false, "", "typeOf (vehicle player) in BTC_l_def_veh_pip"];}; + player addAction [("" + ("Lift") + ""),BTC_dir_action, [[],BTC_attach_cargo], 9, true, false, "", "[] call BTC_lift_check"]; + player addAction [("" + ("Release") + ""),BTC_dir_action, [[],BTC_detach_cargo], -9, true, false, "", "BTC_lifted == 1"]; + }; + }]; +}; \ No newline at end of file diff --git a/MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_lift/img/=BTC=_Obj.paa b/MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_lift/img/=BTC=_Obj.paa new file mode 100644 index 0000000000000000000000000000000000000000..bebf73aa194f2bbac60639983a0b63a97fe4fc51 GIT binary patch literal 1522 zcmeH{Q3}E^42HAW!h9Q^VBik2BCI|r7PR6aJjC97lbyp$cna^*7p+Na1qE5%UKa@K zN0KJ{x0YKe#cm<@f&suRu~)|ju_m@?#8Rwk;sl*|Ti2Tk*A4m!17{9!L;v3jC;%8X z@}(1#m4StdJ!3gk_0>1@jP3WGKlb;E^woc;euL}pG=F=1&;M{-Msvsc z&LOAUC5$;Ysi9wOD0|U=ACs>Aht^vsQx383lR*X*j!S*3w6r!gT66Ar+M+zfN?8hG e3NhzeTfpFpmC~Bwjf#3=S;Lk-O$(tZ1>gxp#vjW7 literal 0 HcmV?d00001 diff --git a/MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_lift/img/arrow_down_ca.paa b/MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_lift/img/arrow_down_ca.paa new file mode 100644 index 0000000000000000000000000000000000000000..8bfac0bb261862ba5db072f672ad63e9d1ad4c59 GIT binary patch literal 1522 zcmZSm@9ypx;_M#g$il$D@csLDDKJ06(HF%34+J2-yQ7aAh|dVbAbzl$o4*5)-2lYx zK#4w928OFZOgd0tP+(vH84Up-3t?;!J<5lKhf3kL+}jKjK*0eHpZ^S=lT`lm!^1~e z1t`z?2`(?42;@)tU=LFd3sZ9W+IP?8|1HaZ4AT#bC0u;Ti}im_udlrUlc&^v;Yr() zrGZ|8nV0zC|NQ?y-v5K~gP#BYZ~y<}br_$wVI%KtB=wZqkFH;N&$ayLW_hz=_DRm) z|K~=#FWi0T>Z#4=WAL1y0!jiv05Y44!DA9KpW61(+B^XU0Z8cru?XfZimlzwaA4c- z{y#ADoc?dy>+3n;0*p_{e32g1Xl8i6zkrF+0G{m#>1RQUCT0TB#KFM9;K0D(&;U%j wW+}il4T)X*8X&*vFFZGKJv2+IMoQfw_fbtq*Fh9_WFFAi( z=Hs%wzcBNa_iU-X(f{`}j8AR*c^kLo-rkmI4KqLZ#k>ChKS4Z5d?kLU|11ChGn_9x z38;R9>}{AlrS6fuXqNZ=+WS8+^I)k27hn5M``=sp{~U+OQ)<6-;!l20pqF6gDXaXS zuYkk{CfX1Gfk^@;uTuD*nE^?jQu~LyegOsnNa+IcC@dJ6(XttYPeL|(&cLR?zz@$R zB0Z#K6Q}=aO)9t2;L*;oz5YXeE+@^3B@PA-1_uTP&ilZmvn^d277Sbuf&9&~H(-4G knzB4+q}1im(64&~iO&KoQGwy<-?T0FfL{*6_29q-0PG&m_5c6? literal 0 HcmV?d00001 diff --git a/MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_lift/img/igui_radar_air_ca.paa b/MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_lift/img/igui_radar_air_ca.paa new file mode 100644 index 0000000000000000000000000000000000000000..36e60136709ca024bc8e868ef36dc9463058f84d GIT binary patch literal 28312 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 literal 0 HcmV?d00001 diff --git a/MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_lift/img/objective_incomplete_ca.paa b/MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_lift/img/objective_incomplete_ca.paa new file mode 100644 index 0000000000000000000000000000000000000000..7f20fbcca2faca8cb9acda1889e0a4e1405f9b14 GIT binary patch literal 5625 zcmeHLPiP!f7=Ig5x`Js2t+d!KGmvO61}ef(2y`YEHVG&>DB?wSlcEh`cBF?vX>}$! zSbDH)1uu%7fCtfwO%Fo_VM8KKKxm^Lc9T(dwAvh6npCaZH8XjBZ+5;n+mR60m~6y8 zm}P(Seee7CzVCbQ%?{ez+w<&^-sgH+2_cEZLT7-V?|GVG3WMR^o~P0Q9o{kgOgcTF z!haKPh&$RDj^^NhfC%@g@KUV!}sE`4e~*B?U8-*kdOH&73}Y) z46lf|+4(A#?Gfk1Sq1HpNdLQ?{bQYo8@10UfWN=r^l*O0y~BDzB)_0|^Al|j(i@fk zZ}W@pingk29o!yET;4-}rHI8zh>x8rA&%>Z_zixPKEwT`_3W2Z+)A8W6k+- zd0UND(*I5;EIIlomT7_B)P6#&xb0pB77#J>x8um_n*NF|rIz7OBEL!cAfF=nTkT(? z`lPI!>xLyq`>6;Lb_fZMX(%yV->e0}p|@s`E~%$dPTl-Q^*5d0B19s2-mhrk?tF$! zsEyEnDo(bj>`jQF-?cfT{w!if3PwmrxLxR?!Rq_yRkVjn2`R7<{mTSMLb_^DP2#mWd%A0(qVsTb0++)+aKJy_SM-d3fEsSywWD_$7-g!1o4RSBNh+S zGCZ*^9#AhM&cx>Jm!er6oN8u&R;zhW-No}Q-cKdB;O(RW$IcJUj_3bPzXYch!oD!nhUAhGbQ5ecWV_(xH|&`4;nZ68Tnozl z+V>{;@q>6?^alIrjw0JGf{pPuA&++n3R6*AC<-7vT=-wXY%`9*1Mo$Nn_p z`208?(Df|4hWuUr_;lN1aPxM{FnLRi>;yy?8q73RO-xb zVW$bWy`vfOD}d!6UqHN`*?SisyYW&w=Ocgedbd9{nwm!(pD%yL^bK|+{ozXArP;Gx zd>Nk9l`q808ZWyaSlJJZ9YFra!`nFGxcpaR^q1%IZ!gp>bCM+4XVE=l_Q|5X#B*Pwn3^?z0)J8KQUCw| literal 0 HcmV?d00001 diff --git a/MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_logistic_init.sqf b/MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_logistic_init.sqf new file mode 100644 index 0000000..0b15af0 --- /dev/null +++ b/MPMissions/epoch.Altis/=BTC=_logistic/=BTC=_logistic_init.sqf @@ -0,0 +1,130 @@ +/* +Created by =BTC= Giallustio +Version: 0.14 rc 1 +Date: 20/03/2013 +Visit us at: http://www.blacktemplars.altervista.org/ +*/ +if (isServer) then +{ + BTC_id_repo = 10;publicVariable "BTC_id_repo"; + BTC_cargo_repo = "Land_HBarrierBig_F" createVehicle [- 5000,- 5000,0];publicVariable "BTC_cargo_repo"; +}; +if (isDedicated) exitwith {}; +BTC_active_lift = 1; +BTC_active_fast_rope = 1; +BTC_active_cargo = 1; +//Common +BTC_dir_action = "=BTC=_logistic\=BTC=_addAction.sqf"; +BTC_l_placement_area = 20; +if (BTC_active_lift == 1) then +{ + //Lift + BTC_lift_pilot = ["B_Helipilot_F"]; + BTC_lift = 1; + BTC_lifted = 0; + BTC_lift_min_h = 7; + BTC_lift_max_h = 12; + BTC_lift_radius = 3; + BTC_def_hud = 1; + BTC_def_pip = 1; + BTC_l_def_veh_pip = ["B_Heli_Light_01_F","O_Heli_Light_02_F","B_Heli_Transport_01_F","I_Heli_Transport_02_F"]; + BTC_l_pip_cond = false; + BTC_cargo_lifted = objNull; + BTC_Hud_Cond = false; + BTC_HUD_x = (SafeZoneW+2*SafeZoneX) - 0.155;//+ 0.045; + BTC_HUD_y = (SafeZoneH+2*SafeZoneY) + 0.045; + _lift = [] execVM "=BTC=_logistic\=BTC=_lift\=BTC=_lift_init.sqf"; + BTC_get_liftable_array = + { + _chopper = _this select 0; + _array = []; + switch (typeOf _chopper) do + { + //MH9 + case "B_Heli_Light_01_F" : {_array = ["Motorcycle","ReammoBox","ReammoBox_F","Quadbike_01_base_F","Strategic"];}; + //PO-30 + case "O_Heli_Light_02_F" : {_array = ["Motorcycle","ReammoBox","ReammoBox_F","Strategic","StaticWeapon","Car"];}; + //UH80 + case "B_Heli_Transport_01_F" : {_array = ["Motorcycle","ReammoBox","ReammoBox_F","Strategic","StaticWeapon","Car","Truck","Wheeled_APC","Air","Ship"];}; + //CH49 + case "I_Heli_Transport_02_F" : {_array = ["Motorcycle","ReammoBox","ReammoBox_F","Strategic","StaticWeapon","Car","Truck","Wheeled_APC","Tracked_APC","APC_Tracked_01_base_F","APC_Tracked_02_base_F","Air","Ship"];}; + + }; + _array + }; +}; +if (BTC_active_fast_rope == 1) then +{ + //Fast roping + BTC_fast_rope_h = 35; + BTC_fast_rope_h_min = 5; + BTC_roping_chopper = ["B_Heli_Light_01_F","O_Heli_Light_02_F","B_Heli_Transport_01_F","I_Heli_Transport_02_F"]; + _rope = [] execVM "=BTC=_logistic\=BTC=_fast_roping\=BTC=_fast_roping_init.sqf"; +}; +if (BTC_active_cargo == 1) then +{ + //Cargo System + _cargo = [] execVM "=BTC=_logistic\=BTC=_cargo_system\=BTC=_cargo_system_init.sqf"; + BTC_def_vehicles = ["Tank","Wheeled_APC","Truck","Car","Helicopter"]; + BTC_def_cargo = ["Motorcycle","ReammoBox","ReammoBox_F","Strategic"]; + BTC_def_drag = ["ReammoBox","ReammoBox_F","Strategic"]; + BTC_def_placement = ["ReammoBox","ReammoBox_F","Strategic"]; + BTC_cargo_selected = objNull; + BTC_def_cc = + [ + "B_Quadbike_01_F",2, + //Trucks + "B_Truck_01_transport_F",10, + "B_Truck_01_covered_F",10, + "I_Truck_02_covered_F",10, + "O_Truck_02_covered_F",10, + "I_Truck_02_transport_F",10, + "O_Truck_02_transport_F",10, + "O_Truck_02_transport_F",10 + ]; + BTC_def_rc = + [ + "Land_BagBunker_Small_F",4 + ]; +}; +//Functions +BTC_l_paradrop = +{ + _veh = _this select 0; + _dropped = _this select 1; + _chute_type = _this select 2; + private ["_chute"]; + _dropped_type = typeOf _dropped; + _dropped attachTo [_veh,[0,2,-5]]; + sleep 0.1; + detach _dropped; + _dropped setvariable ["BTC_cannot_lift",1,false]; + waitUntil {_dropped distance _veh > 50}; + _dropped setvariable ["BTC_cannot_lift",0,false]; + _chute = createVehicle [_chute_type, getposatl _dropped, [], 0, "FLY"]; + _smoke = "SmokeshellGreen" createVehicle position _dropped; + _chem = "Chemlight_green" createVehicle position _dropped; + _smoke attachto [_dropped,[0,0,0]]; + _chem attachto [_dropped,[0,0,0]]; + _dropped attachTo [_chute,[0,0,0]]; + _heigh = 0; + while {((getPos _chute) select 2) > 0.3} do {sleep 1;_heigh = (getPos _chute) select 2;}; + detach _dropped; + +}; +BTC_l_obj_fall = +{ + _obj = _this select 0; + _height = (getPos _obj) select 2; + _fall = 0.09; + while {((getPos _obj) select 2) > 0.1} do + { + + _fall = (_fall * 1.1); + _obj setPos [getPos _obj select 0, getPos _obj select 1, _height]; + _height = _height - _fall; + //hint format ["%1 - %2", (getPos _obj) select 2,_height]; + sleep 0.01; + }; + //if (((getPos _obj) select 2) < 0.3) then {_obj setPos [getPos _obj select 0, getPos _obj select 1, 0.2];}; +}; \ No newline at end of file diff --git a/MPMissions/epoch.Altis/=BTC=_logistic/Hint&Tips.sqf b/MPMissions/epoch.Altis/=BTC=_logistic/Hint&Tips.sqf new file mode 100644 index 0000000..1b3429d --- /dev/null +++ b/MPMissions/epoch.Altis/=BTC=_logistic/Hint&Tips.sqf @@ -0,0 +1,27 @@ +/* +Hint & Tips + +obj setvariable ["BTC_cannot_lift",1,true]; // Make an object not liftable +obj setVariable ["BTC_cannot_drag",1,true]; // Make an object not draggable +obj setVariable ["BTC_cannot_load",1,true]; // Make an object not loadable +BTC_lift_min_h = 7; // Min height required to lift an object +BTC_lift_max_h = 12; // Max height required to lift an object +BTC_lift_radius = 2; // You have to stay in this radius to lift an object +BTC_lift_pilot = []; // Leave empty if all soldiers can use choppers to lift. If only pilot can -> BTC_lift_pilot = ["US_Soldier_Pilot_EP1","USMC_Soldier_Pilot", ...etc etc]; + +BTC_Get_liftable_array = +{ + _chopper = _this select 0; + _array = []; + switch (typeOf _chopper) do + { + case "MH6J_EP1" : {_array = ["Motorcycle","ReammoBox"];}; // Modify the array to change liftable objects by the chopper ex -> _array = ["Motorcycle","ReammoBox","Wheeled_APC", ... etc etc]; + // To add a new chopper class: copy the previous line: + // case "MH6J_EP1" : {_array = ["Motorcycle","ReammoBox"];}; + // modify the class in the "" -> "Mi17_Ins" + // case "Mi17_Ins" : {_array = ["Motorcycle","ReammoBox"];}; + // modify the _array as u want like above + }; + _array +}; +*/ \ No newline at end of file diff --git a/MPMissions/epoch.Altis/=BTC=_logo.paa b/MPMissions/epoch.Altis/=BTC=_logo.paa new file mode 100644 index 0000000000000000000000000000000000000000..9edd6128a1a300640f66dbb7e84f2076c2d748c0 GIT binary patch literal 87559 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 literal 0 HcmV?d00001