Jump to content

Recommended Posts

Does it work in multiplayer?

Yes, MultiPlayer and SinglePlayer.

 

What does this script/function do?

This script requests a standard vehicle (unarmed) airdrop for moving purposes on player position.

If there is enough space on the airdrop plane, it parachutes 2 vehicles.

 

Supported factions and vehicles

BLUFOR NATO (Blackfish NATO Apex Expansion, this place can only fit 1 Hunter or 2 Prowlers as unarmed vehicles)

BLU_F
BLU_T_F

BLU_W_F → 1 Hunter or 2 Prowlers (random)

BLUFOR RHS FACTIONS (cargo comes in a C-130 of RHS USAF mod)
rhs_faction_usarmy_d
rhs_faction_usmc_d
rhs_faction_usarmy_wd
rhs_faction_usmc_wd → 2 Unarmed Humvee

INDEPENDENT (Blackfish NATO Apex Expansion)

IND_F

IND_E_F → 1 Strider

OPFOR CSAT (Y-32 Xi'an Apex Expansion, this plane it only fits one vehicle)

OPF_F

OPF_T_F
OPF_R_F → 1 Qilin (unarmed)

OPFOR RHS FACTIONS (cargo comes in a Blackfish NATO Apex Expansion as there is no RHS AFRF plane for cargo (Y-32 Xi'an did not fit GAZ vehicle))

rhs_faction_msv

rhs_faction_vdv → 1 GAZ (unarmed, green)

 

How do I call the script?

[player] execVM "vehicleDrop.sqf";

 

vehicleDrop.sqf

//Uncomment following if used as function
//_unit = param[0];
//Uncomment following if used as script
_unit = _this select 0;

_unitPos = position _unit;
_randomTransportPos = [[_unitPos select 0, _unitPos select 1, 800], 3000, random 360] call BIS_fnc_relPos;
_sideUnit = side _unit;
_factionUnit = faction _unit;
_vehicleType = 0;
_transportType = "B_T_VTOL_01_vehicle_F";
switch(_factionUnit) do
{
  //Vanilla units
  case "BLU_F":   { _vehicleType = ["B_MRAP_01_F","B_LSV_01_unarmed_F"] call BIS_fnc_selectRandom; };
  case "BLU_T_F";
  case "BLU_W_F": { _vehicleType = ["B_T_MRAP_01_F","B_T_LSV_01_unarmed_F"] call BIS_fnc_selectRandom; };
  case "OPF_F": { _vehicleType = "O_LSV_02_unarmed_F"; _transportType = "O_T_VTOL_02_vehicle_dynamicLoadout_F"; };
  case "OPF_T_F";
  case "OPF_R_F": { _vehicleType = "O_T_LSV_02_unarmed_F"; _transportType = "O_T_VTOL_02_vehicle_dynamicLoadout_F"; };
  case "IND_F  ": { _vehicleType = "I_MRAP_03_F"; };
  case "IND_E_F": { _vehicleType = "I_E_Van_02_vehicle_F"; };
  //RHS units
  case "rhs_faction_usarmy_d";
  case "rhs_faction_usmc_d": { _vehicleType = "rhsusf_m1043_d"; _transportType = "RHS_C130J_Cargo"; };
  case "rhs_faction_usarmy_wd";
  case "rhs_faction_usmc_wd": { _vehicleType = "rhsusf_m1043_w"; _transportType = "RHS_C130J_Cargo"; };
  case "rhs_faction_msv";
  case "rhs_faction_vdv": { _vehicleType = "rhs_tigr_msv"; };
};

//Creating transport for cargo drop
_transportArray = [_randomTransportPos, random 360, _transportType, _sideUnit] call BIS_fnc_spawnVehicle;
_transportVeh = _transportArray select 0;
_transportGrp = _transportArray select 2;
//Support call
_unit sideChat format["Crossroad this is %1 requesting vehicle drop at grid %2. Over.", name _unit, mapGridPosition _unitPos];
sleep 5;
[_sideUnit, "HQ"] sideChat format["Solid copy %1, Buzzard it's 1 click out. ETA 1 minute.", name _unit];
//Spawning cargo and loading
_cargoVehicle = _vehicleType createVehicle [0,0,1000];
_transportVeh setVehicleCargo _cargoVehicle;
_cargoVehicle2 = _vehicleType createVehicle [20,20,1000];
if ((_transportVeh canVehicleCargo _cargoVehicle2) select 1) then
{ _transportVeh setVehicleCargo _cargoVehicle2; }
else { deleteVehicle _cargoVehicle2; };

//Setting waypoints
_waypoint = _transportGrp addWaypoint [_unitPos, 0];
_waypoint setWaypointBehaviour "CARELESS";
_waypoint setWaypointCombatMode "NOCHANGE";
_waypoint setWaypointSpeed "FULL";
_waypoint setWaypointType "MOVE";
_waypoint setWaypointStatements ["_transportVeh flyInHeight 200",""];
//Go to drop zone
_transportGrp setCurrentWaypoint [_transportGrp, 0];
waitUntil { (_transportVeh distance _unitPos) < 200 };
//Drop cargo
_transportVeh sideChat "Buzzard is making the drop. Code is purple, Good luck guys.";
_transportVeh setVehicleCargo objNull;
_transportVeh setVehicleCargo objNull;
//Go away
_waypoint2 = _transportGrp addWaypoint [[0,0,1000], 1];
_waypoint2 setWaypointBehaviour "CARELESS";
_waypoint2 setWaypointCombatMode "NOCHANGE";
_waypoint2 setWaypointSpeed "FULL";
_waypoint2 setWaypointType "MOVE";
_waypoint2 setWaypointStatements ["true",""];
_transportGrp setCurrentWaypoint [_transportGrp, 1];
waitUntil { (getPosATL _cargoVehicle) select 2 < 10 };
Signal = "SmokeShellPurple" createVehicle position _cargoVehicle;
Signal = "SmokeShellPurple" createVehicle position _cargoVehicle2;
sleep 30;
//Cleanup
{deleteVehicle _x} forEach (crew _transportVeh) + [_transportVeh];

 

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×