Jump to content
Kelsey Allen

help needed - Supply Drop on Smoke Grenade

Recommended Posts

Hello! I'm very new to scripting in Arma, or any form of code in general. I"m struggling to get this script to work. My current goal is to throw a green smoke grenade and have a helicopter spawn, fly to the smoke grenade position, drop a supply crate, and fly away.

Any help would be amazing!

 

 

Original script credits go to Tym Cooper's video on helicopter positon to smoke grenades - "https://www.youtube.com/watch?v=e_hOKoOfqfw"

and Soolie's supply drop script - "https://forums.bohemia.net/forums/topic/177299-customizable-supply-drop-release/"

 

Arma tells me my error is in  this line of code (around line 44)

places "lxl" before select 0

 

_supplyWP2 = _supplyGrp addWaypoint [[(_dropPos select 0)+_supplyRandomLocX,
                                                  (_dropPos select 1)+_supplyRandomLocY,

                                                  _dropPos select 2], 2];


 

HERE is the full script

 

 

//script start

_shooter = _this Select 0;
_ammotype = _this Select 4;
_dropPos = getpos player nearestObject "SmokeShellBlue";
_supplyBoxFnc = "b_supplycrate_f";
_supplyCargoFnc = {
                    _supplyBoxFnc addWeaponCargoGlobal ["hgun_Pistol_Signal_F",3];
                    _supplyBoxFnc addMagazineCargoGlobal ["6Rnd_RedSignal_F", 10];
                    _supplyBoxFnc addWeaponCargoGlobal ["hgun_Pistol_heavy_01_snds_F",3];
                    _supplyBoxFnc addMagazineCargoGlobal ["11Rnd_45ACP_Mag", 10];
                    _supplyBoxFnc addWeaponCargoGlobal ["srifle_GM6_LRPS_F",3];
                    _supplyBoxFnc addMagazineCargoGlobal ["5Rnd_127x108_APDS_Mag", 10];
                    _supplyBoxFnc addItemCargoGlobal ["V_PlateCarrierGL_rgr", 10];
                    _supplyBoxFnc addItemCargoGlobal ["U_I_GhillieSuit", 10];
                    _supplyBoxFnc addBackpackCargoGlobal ["B_AssaultPack_ocamo", 10];
                    };


//hint format["%1",_ammotype];

sleep 2;
switch (_ammotype) do
{
  case "SmokeShellBlue":
//add script below
  {
    //_supplyLocArray = [+1000,-1375,-1500,-1125,+1250,-1000,+1375,-1250,+1500,+1125];
    _supplyLocArray = [+100,-100];
    _supplyRandomLocX = _supplyLocArray select floor random count _supplyLocArray;
    _supplyRandomLocY = _supplyLocArray select floor random count _supplyLocArray;
    _supply = [[( _player select 0)+_supplyRandomLocX,
          ( _player select 1)+_supplyRandomLocY,
          ( _player select 2)+50], 180, "I_Heli_Transport_02_F", WEST] call bis_fnc_spawnvehicle;

          _supplyHeli = _supply select 0;
          _supplyHeliPos = getPos _supplyHeli;
          _supplyMrkrHeli = createMarker ["supplyMrkrHeli", _supplyHeliPos];
          _supplyCrew = _supply select 1;
              _supplyGrp = _supply select 2;
              _supplyGrp setSpeedMode "FULL";
              _supplyGrp setBehaviour "CARELESS";
          _supplyWP1 =_supplyGrp addWaypoint [(_dropPos),1];
          _supplyWP1 setWaypointType "MOVE";


          _supplyWP2 = _supplyGrp addWaypoint [[(_dropPos select 0)+_supplyRandomLocX,
                                                  (_dropPos select 1)+_supplyRandomLocY,
                                                  _dropPos select 2], 2];


          _supplyMrkrLZ = createMarker ["supplyMrkrLZ", _dropPos];
          "supplyMrkrLZ" setMarkerType "Empty";
              "supplyMrkrHeli" setMarkerType "Empty";
              _supplyHeli flyInHeight 150;

    hint "The supplies are on the way";
    _supplyMrkrHeliPos = getMarkerPos "supplyMrkrHeli";
    _supplyMrkrHeliPos2 = [_supplyMrkrHeliPos select 0,
                          _supplyMrkrHeliPos select 1,
                          (_supplyMrkrHeliPos select 2)+50];
          _supplyHeli = _supplyMrkrHeliPos2 nearestObject "I_Heli_Transport_02_F";
          _supplyMrkrLZPos = getMarkerPos "supplyMrkrLZ";
              _supplyLZ = createVehicle ["Land_Laptop_device_F", getMarkerPos "supplyMrkrLZ", [], 0, "NONE"];
              deleteMarker "supplyMrkrHeli";
              deleteMarker "supplyMrkrLZ";
              _supplyLZ hideObject true;

          waitUntil {( _supplyLZ distance _supplyHeli)<400};
            _supplyHeli animateDoor ["CargoRamp_Open",1];
          waitUntil {( _supplyLZ distance _supplyHeli)<200};
            sleep 2;
            _supplyHeli allowDammage false;
            _supplyBox = createVehicle
                    [_supplyBoxFnc, position _supplyHeli, [], 0, "CAN_COLLIDE"];
                    clearBackpackCargoGlobal _supplyBox;
                    clearWeaponCargoGlobal _supplyBox;
                    clearMagazineCargoGlobal _supplyBox;
                    clearItemCargoGlobal _supplyBox;
            _supplyBox disableCollisionWith _supplyHeli;
            _supplyHeli disableCollisionWith _supplyBox;
            _supplyBox allowDammage false;
            _supplyBox attachTo [_supplyHeli, [0, 0, 0], "CargoRamp"];
            _supplyBox setDir ([_supplyBox, _supplyHeli] call BIS_fnc_dirTo);
            detach _supplyBox;
            deleteVehicle _supplyLZ;
            //concerned area
            [_supplyBox,_supplyCargoFnc,nil,true] call BIS_fnc_MP;
                [_supplyBox,"FncSupplyLight",nil,true] call BIS_fnc_MP;
            //concerned area
            _supplyChute = createVehicle ["B_parachute_02_F", position _supplyBox, [], 0, "CAN_COLLIDE"];
              _supplyBox attachTo [_supplyChute,[0,0,-0.5]];
              _supplyChute hideObject true;
              _supplyChute setPos getPos _supplyBox;

         
              _supplyLight = "Chemlight_green" createVehicle (position _supplyBox);
              _supplyLight attachTo [_supplyBox, [0,0,0]];
         

              sleep 1;
              hint "The supplies have been dropped";
              _supplyChute hideObject false;
              _supplyHeli allowDammage true;
              _supplyBox allowDammage true;
              _supplyHeli animateDoor ["CargoRamp_Open",0];

          //:::::::::::|SMOKE|:::::::::::
              _supplySmoke = "SmokeShell" createVehicle (position _supplyBox);
              _supplySmoke attachTo [_supplyBox, [0,0,0]];
          //:::::::::::::::::::::::::::::

              waitUntil {(getPos _supplyBox select 2)<2};
              detach _supplyBox;
                  _supplyChute setPos [ (getPos _supplyChute select 0)+0.75, getPos _supplyChute select 1, getPos _supplyChute select 2];
                  hint "";
                  sleep 5;
                  {deleteVehicle _x;}forEach crew _supplyHeli;deleteVehicle _supplyHeli;

    };
        case "1Rnd_SmokeGreen_Grenade_shell":
      {
         Hint "Green SmokeShell Detected";
      };

          case "FlareGreen_F":
      {
         Hint "Green Flare Detected";
      };

         case "3Rnd_SmokeGreen_Grenade_shell":
      {
         Hint "Green SmokeShell Detected";
      };

          case "UGL_FlareGreen_F":
      {
         Hint "Green Flare Detected";
      };

        case "3Rnd_UGL_FlareGreen_F":
      {
         Hint "Green Flare Detected";
      };
  };

//script end

 

 

used for players unit init

 

        player addEventHandler ["fired",{_this execvm "supply_smoke.sqf"}]

Share this post


Link to post
Share on other sites

Odd, it seems smoke grenades/shells are objNull after they are thrown/fired now? I don't believe that has always been the case. Found another method HERE that gets the position of the projectile (index 6 from Fired EH) where it stops moving.

Share this post


Link to post
Share on other sites

Okay, that could definitely be an issue. I'll try replacing my find smoke function with this one, see if that works. 👍👍👍

Share this post


Link to post
Share on other sites

OKAY! That took forever. But script is mostly working! After a blue smoke grenade is thrown by the player, a helicopter will spawn, fly to the smoke grenades position, drop a supply box with a parachute and smoke grenade, fly away, then delete. But... the Supply Box spawns empty in this script. Trying to come up with a way to add random loot to the supply box.

 

If anyone has ideas how to accomplish this let me know!

 

 

Here is the full script!

 

 

//script start

player addEventHandler ["Fired",
{
    if ((_this select 4) isEqualTo "SmokeShellBlue") then
    {
        _grenadeObj = (_this select 6);
        _doArsenalCrateDrop = [_grenadeObj] spawn
        {
      //
            private ["_grenadePos","_grenadeObj"];
            params ["_grenadeObj"];
            waitUntil {speed _grenadeObj == 0}; // wait until smoke grenade has stopped moving
            _grenadeLPos = getPosATL _grenadeObj; // get position of smoke grenade
            _grenadePos = createMarker ["grenadepos", _grenadeLPos];
      //

            _supplyType = selectRandom ["B_supplyCrate_F"]; // crate type(s)
            _arsenalParachuteType = selectRandom ["O_Parachute_02_F"]; // parachute type(s)
            //_supplyLocArray = [+1000,-1000,1500,-1500, 1300,-1300];
            _supplyLocArray = [+500,-500];
            _supplyRandomLocX = _supplyLocArray select floor random count _supplyLocArray;
            _supplyRandomLocY = _supplyLocArray select floor random count _supplyLocArray;
            ///////////////////////////////////////////////////////////////////////////////////////
            _heliSpawn = [(_grenadeLPos select 0)+_supplyRandomLocX,(_grenadeLPos select 1)+_supplyRandomLocY, (_grenadeLPos select 2) + 50];
            _heliDeSpawn = [(_grenadeLPos select 0)+_supplyRandomLocX,(_grenadeLPos select 1)+_supplyRandomLocY, (_grenadeLPos select 2) + 100];
            _heli0 = [_helispawn, 180, "I_Heli_Transport_02_F", WEST] call bis_fnc_spawnvehicle;

            _helisupp = _heli0 select 0;
            _supplyHeliPos = getPos _helisupp;
            _supplyMrkrHeli = createMarker ["supplyMrkrHeli", _supplyHeliPos];
            _helicrew = _heli0 select 1;
            _heligroup = _heli0 select 2;
            _heligroup setSpeedMode "FULL";
            _heligroup setBehaviour "CARELESS";
            _wp0 = _heligroup addWaypoint [_grenadeLPos,-1];
            _wp0 setWaypointType "MOVE";
            _wp1 = _heligroup addWaypoint [_heliDeSpawn,-1];
            _wp1 setWaypointType "MOVE";
            _supplyMrkrLZ = createMarker ["supplyMrkrLZ", _grenadeLpos];
            "supplyMrkrLZ" setMarkerType "Empty";
            "supplyMrkrHeli" setMarkerType "Empty";
            _helisupp flyInHeight 150;
//
            _supplyMrkrHeliPos = getMarkerPos "supplyMrkrHeli";
            _supplyMrkrHeliPos2 = [_supplyMrkrHeliPos select 0,
                                    _supplyMrkrHeliPos select 1,
                                    (_supplyMrkrHeliPos select 2)+50];

            _helisupp = _supplyMrkrHeliPos2 nearestObject "I_Heli_Transport_02_F";
            _supplyMrkrLZPos = getMarkerPos "supplyMrkrLZ";
            _supplyLZ = createVehicle ["Land_Laptop_device_F", getMarkerPos "supplyMrkrLZ", [], 0, "NONE"];
            deleteMarker "supplyMrkrHeli";
            deleteMarker "supplyMrkrLZ";
            _supplyLZ hideObject true;

            waitUntil {( _supplyLZ distance _helisupp)<400};
                _helisupp animateDoor ["CargoRamp_Open",1];
                _helisupp flyInHeight 80;
            waitUntil {( _supplyLZ distance _helisupp)<120};
                sleep 2;
                _helisupp flyInHeight 150;

                _supplyBox = createVehicle
                                ["B_supplyCrate_F", position _helisupp, [], 0, "CAN_COLLIDE"];
                                clearBackpackCargoGlobal _supplyBox;
                                clearWeaponCargoGlobal _supplyBox;
                                clearMagazineCargoGlobal _supplyBox;
                                clearItemCargoGlobal _supplyBox;

                _supplyBox disableCollisionWith _helisupp;
                _helisupp disableCollisionWith _supplybox;
                _supplyBox allowDammage false;
                _supplyBox attachTo [_helisupp, [0, 0, 0], "CargoRamp"];
                _supplyBox setDir ([_supplyBox, _helisupp] call BIS_fnc_dirTo);
                detach _supplyBox;
                deleteVehicle _supplyLZ;

                _supplyChute = createVehicle ["B_parachute_02_F", position _supplyBox, [], 0, "CAN_COLLIDE"];
                _supplyBox attachTo [_supplyChute,[0,0,-0.5]];
                _supplyChute hideObject true;
                _supplyChute setPos getPos _supplyBox;

                sleep .1;
                //hint "The supplies have been dropped";
                _supplyChute hideObject false;
                _helisupp allowDammage true;
                _supplyBox allowDammage true;
                _helisupp animateDoor ["CargoRamp_Open",0];

                //:::::::::::|SMOKE|:::::::::::
                _supplySmoke = "SmokeShell" createVehicle (position _supplyBox);
                _supplySmoke attachTo [_supplyBox, [0,0,0]];

                waitUntil {(getPos _supplyBox select 2)<2};
                detach _supplyBox;
                    _supplyChute setPos [ (getPos _supplyChute select 0)+0.75, getPos _supplyChute select 1, getPos _supplyChute select 2];
                    hint "";
                    sleep 5;
                    {deleteVehicle _x;}forEach crew _helisupp;deleteVehicle _helisupp;
                    //hint "end";


        };
    };
}];
//script end

 

Share this post


Link to post
Share on other sites

You are spawning an empty crate.

  _supplyBox = createVehicle
                                ["B_supplyCrate_F", position _helisupp, [], 0, "CAN_COLLIDE"];
                                clearBackpackCargoGlobal _supplyBox;  
                                clearWeaponCargoGlobal _supplyBox;
                                clearMagazineCargoGlobal _supplyBox;
                                clearItemCargoGlobal _supplyBox;

That's fine if you want it to have a random assortment of items, but you'll need to add those items at some point.

 

Share this post


Link to post
Share on other sites

Yea I was trying to clear it then have a call out to another .sqf to assign random items to  _suppyBox. I have found some script that can select and add random loot but I'm not getting how to reference it properly in my script. I've made sure the add item command is referencing the same _supplyBox.

 

I tried to "ExecVM" the random loot .sqf after cleaning the cargo but it errors.

Share this post


Link to post
Share on other sites
1 hour ago, Kelsey Allen said:

I tried to "ExecVM" the random loot .sqf after cleaning the cargo but it errors.

 

Depends on the script you are calling. Assuming that it takes the target supply crate as a param, you might call it thusly:

0 = [_supplyBox] execVM "randomLootScript.sqf";

Where/when you call it probably doesn't matter, as long as it is after you empty the box of course. You might want to wait until it is on the ground and stopped, just to avoid any possible explodey-ness.

 

Next level would be to store this as a function.

Share this post


Link to post
Share on other sites

OKAY! So here is a working script! It can defiantly be cleaned up and optimized but it works!

 If any player throws a blue smoke grenade a helicopter will spawn, fly over the some grenades position, and drop a supply crate attached to a parachute. The supply crate will spawn random vanilla loot and supply a random amount of magazines for the chosen random weapons. the helicopter will then fly away and delete. (FYI: sometimes the helicopter fly's a little too high and misses the drop zone trigger and wont delete after flying away) 

 

Add this script to a .sqf file and execute it in your init.sqf

 

Spoiler

player addEventHandler ["Fired",
{
	if ((_this select 4) isEqualTo "SmokeShellBlue") then
	{
		_grenadeObj = (_this select 6);
		_doArsenalCrateDrop = [_grenadeObj] spawn
		{

			private ["_grenadePos","_grenadeObj"];
			params ["_grenadeObj"];
			waitUntil {speed _grenadeObj == 0}; // wait until smoke grenade has stopped moving
			_grenadeLPos = getPosATL _grenadeObj; // get position of smoke grenade
			_grenadePos = createMarker ["grenadepos", _grenadeLPos];

			_supplyType = selectRandom ["B_supplyCrate_F"]; // crate type(s)
			_arsenalParachuteType = selectRandom ["O_Parachute_02_F"]; // parachute type(s)

			_supplyLocArray = [+1000,-1000,1500,-1500, 1300,-1300]; //heli spawn/despawn distance
			_supplyRandomLocX = _supplyLocArray select floor random count _supplyLocArray;
			_supplyRandomLocY = _supplyLocArray select floor random count _supplyLocArray;

			_heliSpawn = [(_grenadeLPos select 0) + _supplyRandomLocX,
										(_grenadeLPos select 1) + _supplyRandomLocY,
										(_grenadeLPos select 2) + 150]; //grenade position plus helispawn distance
			_heliDeSpawn = [(_grenadeLPos select 0) + _supplyRandomLocX,
											(_grenadeLPos select 1) + _supplyRandomLocY,
											(_grenadeLPos select 2) + 200];//grenade position plus heli despawn distance

//HELICOPTER SPAWN
			_heli0 = [_helispawn, 180, "I_Heli_Transport_02_F", WEST] call bis_fnc_spawnvehicle;
			_helisupp = _heli0 select 0;
			_supplyHeliPos = getPos _helisupp;
			_supplyMrkrHeli = createMarker ["supplyMrkrHeli", _supplyHeliPos];
			_helicrew = _heli0 select 1;
			_heligroup = _heli0 select 2;

//WAYPOINT AND MARKER SPAWNS
			_heligroup setSpeedMode "FULL";
			_heligroup setBehaviour "CARELESS";
			_wp0 = _heligroup addWaypoint [_grenadeLPos,-1];
			_wp0 setWaypointType "MOVE";
			_wp1 = _heligroup addWaypoint [_heliDeSpawn,-1];
			_wp1 setWaypointType "MOVE";
			_supplyMrkrLZ = createMarker ["supplyMrkrLZ", _grenadeLpos];
			"supplyMrkrLZ" setMarkerType "Empty";
			"supplyMrkrHeli" setMarkerType "Empty";
			_helisupp flyInHeight 150;
			_supplyMrkrHeliPos = getMarkerPos "supplyMrkrHeli";
			_supplyMrkrHeliPos2 = [_supplyMrkrHeliPos select 0,
									_supplyMrkrHeliPos select 1,
									(_supplyMrkrHeliPos select 2)+50];

//creates object to assign marker position??? idk
			_helisupp = _supplyMrkrHeliPos2 nearestObject "I_Heli_Transport_02_F";
			_supplyMrkrLZPos = getMarkerPos "supplyMrkrLZ";
			_supplyLZ = createVehicle ["Land_Laptop_device_F", getMarkerPos "supplyMrkrLZ", [], 0, "NONE"];
			deleteMarker "supplyMrkrHeli";
			deleteMarker "supplyMrkrLZ";
			_supplyLZ hideObject true;

//WAITS TILL HELICOPTER IS CLOSE TO GRENADE POSITION
			waitUntil {( _supplyLZ distance _helisupp)<400};
				_helisupp animateDoor ["CargoRamp_Open",1];
				_helisupp flyInHeight 80;
			waitUntil {( _supplyLZ distance _helisupp)<180};
				sleep 2;
				_helisupp flyInHeight 100;

//CREATES AND CLEARS SUPPLY BOX
				_supplyBox = createVehicle
								["B_supplyCrate_F", position _helisupp, [], 0, "CAN_COLLIDE"];
								clearBackpackCargoGlobal _supplyBox;
								clearWeaponCargoGlobal _supplyBox;
								clearMagazineCargoGlobal _supplyBox;
								clearItemCargoGlobal _supplyBox;


//DISABLES BOX AND HELI COLISION
				_supplyBox disableCollisionWith _helisupp;
				_helisupp disableCollisionWith _supplybox;
				_supplyBox allowDammage false;
				_supplyBox attachTo [_helisupp, [0, 0, 0], "CargoRamp"];
				_supplyBox setDir ([_supplyBox, _helisupp] call BIS_fnc_dirTo);
				detach _supplyBox;
				deleteVehicle _supplyLZ;
//CREATE PARACHUTE ON SUPPLYBOX
				_supplyChute = createVehicle ["B_parachute_02_F", position _supplyBox, [], 0, "CAN_COLLIDE"];
				_supplyBox attachTo [_supplyChute,[0,0,-0.5]];
				_supplyChute hideObject true;
				_supplyChute setPos getPos _supplyBox;
				sleep .1;
				_supplyChute hideObject false;
				_helisupp allowDammage true;
				_supplyBox allowDammage true;
				_helisupp animateDoor ["CargoRamp_Open",0]; //close cargo door

						//Spawns smoke on Box
				_supplySmoke = "SmokeShell" createVehicle (position _supplyBox);
				_supplySmoke attachTo [_supplyBox, [0,0,0]];

				waitUntil {(getPos _supplyBox select 2)<2};
				detach _supplyBox;
					_supplyChute setPos [ (getPos _supplyChute select 0)+0.75, getPos _supplyChute select 1, getPos _supplyChute select 2];


////	LOOT LISTS	////

//FIRST RANDOM WEAPON LIST
				_weapons_Loot1 = selectRandom[
				//LightMachineGuns
				"arifle_MX_SW_Black_F",
				"arifle_MX_SW_F",
				"LMG_Mk200_F",
				"LMG_Zafir_F",
				"LMG_03_F",
				"MMG_01_hex_F",
				"MMG_01_tan_F",
				"MMG_02_black_F",
				"MMG_02_camo_F",
				"MMG_02_sand_F",
				//Apex
				"LMG_03_F",

				//AssaultRifles
				"arifle_Katiba_C_F",
				"arifle_Katiba_F",
				"arifle_Katiba_GL_F",
				"arifle_Mk20_F",
				"arifle_Mk20_GL_F",
				"arifle_Mk20_GL_plain_F",
				"arifle_Mk20_plain_F",
				"arifle_Mk20C_F",
				"arifle_Mk20C_plain_F",
				"arifle_MX_Black_F",
				"arifle_MX_F",
				"arifle_MX_GL_Black_F",
				"arifle_MX_GL_F",
				"arifle_MXC_Black_F",
				"arifle_MXC_F",
				"arifle_SDAR_F",
				"arifle_TRG20_F",
				"arifle_TRG21_F",
				"arifle_TRG21_GL_F",
				//Apex AssaultRifles
				"arifle_AK12_F",
				"arifle_AK12_GL_F",
				"arifle_AKM_F",
				"arifle_AKM_FL_F",
				"arifle_AKS_F",
				//AK x2
				"arifle_AK12_F",
				"arifle_AK12_GL_F",
				"arifle_AKM_F",
				"arifle_AKM_FL_F",
				"arifle_AKS_F",
				//
				"arifle_ARX_blk_F",
				"arifle_ARX_ghex_F",
				"arifle_ARX_hex_F",
				"arifle_CTAR_blk_F",
				"arifle_CTAR_hex_F",
				"arifle_CTAR_ghex_F",
				"arifle_CTAR_GL_blk_F",
				"arifle_CTARS_blk_F",
				"arifle_CTARS_hex_F",
				"arifle_CTARS_ghex_F",
				"arifle_SPAR_01_blk_F",
				"arifle_SPAR_01_khk_F",
				"arifle_SPAR_01_snd_F",
				"arifle_SPAR_01_GL_blk_F",
				"arifle_SPAR_01_GL_khk_F",
				"arifle_SPAR_01_GL_snd_F",
				"arifle_SPAR_02_blk_F",
				"arifle_SPAR_02_khk_F",
				"arifle_SPAR_02_snd_F",
				"arifle_SPAR_03_blk_F",
				"arifle_SPAR_03_khk_F",
				"arifle_SPAR_03_snd_F",
				"arifle_MX_khk_F",
				"arifle_MX_GL_khk_F",
				"arifle_MXC_khk_F",
				"arifle_MXM_khk_F",

				//SniperRifles
				"arifle_MXM_Black_F",
				"arifle_MXM_F",
				"srifle_DMR_01_F",
				"srifle_DMR_02_camo_F",
				"srifle_DMR_02_F",
				"srifle_DMR_02_sniper_F",
				"srifle_DMR_03_F",
				"srifle_DMR_03_khaki_F",
				"srifle_DMR_03_multicam_F",
				"srifle_DMR_03_tan_F",
				"srifle_DMR_03_woodland_F",
				"srifle_DMR_04_F",
				"srifle_DMR_04_Tan_F",
				"srifle_DMR_05_blk_F",
				"srifle_DMR_05_hex_F",
				"srifle_DMR_05_tan_f",
				"srifle_DMR_06_camo_F",
				"srifle_DMR_06_olive_F",
				"srifle_EBR_F",
				"srifle_GM6_camo_F",
				"srifle_GM6_F",
				"srifle_LRR_camo_F",
				"srifle_LRR_F",
				//Apex SniperRifles
				"srifle_LRR_tna_F",
				"srifle_GM6_ghex_F",
				"srifle_DMR_07_blk_F",
				"srifle_DMR_07_hex_F",
				"srifle_DMR_07_ghex_F"
				];

//SECOND RANDOM WEAPON LIST
				_weapons_Loot2 = selectRandom[
				//LightMachineGuns
				"arifle_MX_SW_Black_F",
				"arifle_MX_SW_F",
				"LMG_Mk200_F",
				"LMG_Zafir_F",
				"LMG_03_F",
				"MMG_01_hex_F",
				"MMG_01_tan_F",
				"MMG_02_black_F",
				"MMG_02_camo_F",
				"MMG_02_sand_F",
				//Apex
				"LMG_03_F",

				//AssaultRifles
				"arifle_Katiba_C_F",
				"arifle_Katiba_F",
				"arifle_Katiba_GL_F",
				"arifle_Mk20_F",
				"arifle_Mk20_GL_F",
				"arifle_Mk20_GL_plain_F",
				"arifle_Mk20_plain_F",
				"arifle_Mk20C_F",
				"arifle_Mk20C_plain_F",
				"arifle_MX_Black_F",
				"arifle_MX_F",
				"arifle_MX_GL_Black_F",
				"arifle_MX_GL_F",
				"arifle_MXC_Black_F",
				"arifle_MXC_F",
				"arifle_SDAR_F",
				"arifle_TRG20_F",
				"arifle_TRG21_F",
				"arifle_TRG21_GL_F",
				//Apex AssaultRifles
				"arifle_AK12_F",
				"arifle_AK12_GL_F",
				"arifle_AKM_F",
				"arifle_AKM_FL_F",
				"arifle_AKS_F",
				//AK x2
				"arifle_AK12_F",
				"arifle_AK12_GL_F",
				"arifle_AKM_F",
				"arifle_AKM_FL_F",
				"arifle_AKS_F",
				//
				"arifle_ARX_blk_F",
				"arifle_ARX_ghex_F",
				"arifle_ARX_hex_F",
				"arifle_CTAR_blk_F",
				"arifle_CTAR_hex_F",
				"arifle_CTAR_ghex_F",
				"arifle_CTAR_GL_blk_F",
				"arifle_CTARS_blk_F",
				"arifle_CTARS_hex_F",
				"arifle_CTARS_ghex_F",
				"arifle_SPAR_01_blk_F",
				"arifle_SPAR_01_khk_F",
				"arifle_SPAR_01_snd_F",
				"arifle_SPAR_01_GL_blk_F",
				"arifle_SPAR_01_GL_khk_F",
				"arifle_SPAR_01_GL_snd_F",
				"arifle_SPAR_02_blk_F",
				"arifle_SPAR_02_khk_F",
				"arifle_SPAR_02_snd_F",
				"arifle_SPAR_03_blk_F",
				"arifle_SPAR_03_khk_F",
				"arifle_SPAR_03_snd_F",
				"arifle_MX_khk_F",
				"arifle_MX_GL_khk_F",
				"arifle_MXC_khk_F",
				"arifle_MXM_khk_F",

				//SniperRifles
				"arifle_MXM_Black_F",
				"arifle_MXM_F",
				"srifle_DMR_01_F",
				"srifle_DMR_02_camo_F",
				"srifle_DMR_02_F",
				"srifle_DMR_02_sniper_F",
				"srifle_DMR_03_F",
				"srifle_DMR_03_khaki_F",
				"srifle_DMR_03_multicam_F",
				"srifle_DMR_03_tan_F",
				"srifle_DMR_03_woodland_F",
				"srifle_DMR_04_F",
				"srifle_DMR_04_Tan_F",
				"srifle_DMR_05_blk_F",
				"srifle_DMR_05_hex_F",
				"srifle_DMR_05_tan_f",
				"srifle_DMR_06_camo_F",
				"srifle_DMR_06_olive_F",
				"srifle_EBR_F",
				"srifle_GM6_camo_F",
				"srifle_GM6_F",
				"srifle_LRR_camo_F",
				"srifle_LRR_F",
				//Apex SniperRifles
				"srifle_LRR_tna_F",
				"srifle_GM6_ghex_F",
				"srifle_DMR_07_blk_F",
				"srifle_DMR_07_hex_F",
				"srifle_DMR_07_ghex_F"
				];

//LAUNCHERS LIST
				_weapons_Loot3 = selectRandom[

				"launch_NLAW_F",
				"launch_RPG32_F",
				"launch_RPG32_ghex_F",
				"launch_RPG7_F",
				"launch_RPG7_F",	//x2
				"launch_Titan_F",
				"launch_I_Titan_F",
				"launch_O_Titan_ghex_F",
				"launch_O_Titan_F",
				"launch_B_Titan_F",
				"launch_B_Titan_tna_F",
				"launch_Titan_short_F",
				"launch_O_Titan_short_F",
				"launch_O_Titan_short_ghex_F",
				"launch_I_Titan_short_F",
				"launch_B_Titan_short_F",
				"launch_B_Titan_short_tna_F"
				];
//GRENADES,FLARES,SMOKES,EXPOLSIVES LIST
				_items_loot3 = [

		//	"Chemlight_blue",
		//	"Chemlight_green",
		//	"Chemlight_red",
				"SmokeShell",
				"SmokeShellGreen",
				"SmokeShellOrange",
				"SmokeShellPurple",
				"SmokeShellRed",
		//	"SmokeShellYellow",
		//	"1Rnd_Smoke_Grenade_shell",
		//	"1Rnd_SmokeGreen_Grenade_shell",
		//	"1Rnd_SmokeOrange_Grenade_shell",
		//	"1Rnd_SmokePurple_Grenade_shell",
		//	"1Rnd_SmokeRed_Grenade_shell",
		//	"1Rnd_SmokeYellow_Grenade_shell",
		//	"3Rnd_Smoke_Grenade_shell",
		//	"3Rnd_SmokeGreen_Grenade_shell",
	 	//	"3Rnd_SmokeOrange_Grenade_shell",
		//	"3Rnd_SmokePurple_Grenade_shell",
	 	//	"3Rnd_SmokeRed_Grenade_shell",
	 	//	"3Rnd_SmokeYellow_Grenade_shell",
				"HandGrenade",
				"MiniGrenade",
				"B_IR_Grenade",
				"O_IR_Grenade",
				"I_IR_Grenade",
				"1Rnd_HE_Grenade_shell",
				"3Rnd_HE_Grenade_shell",
				"APERSBoundingMine_Range_Mag",
				"APERSMine_Range_Mag",
				"APERSTripMine_Wire_Mag",
				"ClaymoreDirectionalMine_Remote_Mag",
				"DemoCharge_Remote_Mag",
				"IEDLandBig_Remote_Mag",
				"IEDLandSmall_Remote_Mag",
				"IEDUrbanBig_Remote_Mag",
				"IEDUrbanSmall_Remote_Mag",
				"SatchelCharge_Remote_Mag",
				"SLAMDirectionalMine_Wire_Mag"
					];

//FIRST ITEMS LIST
					_items_loot2 = [
						//Here ONLY :items , PointerAttachments , BipodAttachments , MuzzleAttachments , OpticAttachments , NVG
					//	"ItemCompass",
						"ItemWatch",
						//"ItemRadio",
						//"ItemGPS",
						//"ItemMap",
						//x2
						"MediKit",
						"FirstAidKit",
						"FirstAidKit",
						//Tools
						"Binocular",
						"Rangefinder",
					//	"ItemWatch",
					//	"ItemRadio",
					//	"ItemGPS",
					//	"ItemMap",
						//PointerAttachments
						"acc_flashlight",
						"acc_pointer_IR",
						//BipodAttachments
						"bipod_01_F_blk",
						"bipod_02_F_blk",
						"bipod_03_F_blk",
						//Apex
					//	"bipod_01_F_khk",
						//MuzzleAttachments
						"muzzle_snds_338_black",
					//	"muzzle_snds_338_green",
						"muzzle_snds_338_sand",
						"muzzle_snds_93mmg",
					//	"muzzle_snds_93mmg_tan",
						"muzzle_snds_acp",
						"muzzle_snds_B",
						"muzzle_snds_H",
						"muzzle_snds_H_MG",
						"muzzle_snds_H_SW",
						"muzzle_snds_L",
						"muzzle_snds_M",
						//Apex
						"muzzle_snds_H_khk_F",
					//	"muzzle_snds_H_snd_F",
						"muzzle_snds_58_blk_F",
						"muzzle_snds_m_khk_F",
				//		"muzzle_snds_m_snd_F",
						"muzzle_snds_B_khk_F",
					//	"muzzle_snds_B_snd_F",
						"muzzle_snds_58_wdm_F",
						"muzzle_snds_65_TI_blk_F",
					//	"muzzle_snds_65_TI_hex_F",
					//	"muzzle_snds_65_TI_ghex_F",
						"muzzle_snds_H_MG_blk_F",
					//	"muzzle_snds_H_MG_khk_F",
						//OpticAttachments
						"optic_Aco",
						"optic_ACO_grn",
						"optic_ACO_grn_smg",
						"optic_Aco_smg",
						"optic_AMS",
						"optic_AMS_khk",
						"optic_AMS_snd",
						"optic_Arco",
						"optic_DMS",
						"optic_Hamr",
						"optic_Holosight",
						"optic_Holosight_smg",
						"optic_KHS_blk",
						"optic_KHS_hex",
						"optic_KHS_old",
						"optic_KHS_tan",
						"optic_LRPS",
						"optic_MRCO",
						"optic_MRD",
						"optic_Nightstalker",
						"optic_NVS",
						"optic_SOS",
						"optic_Yorris",
						//Apex
						"optic_Arco_blk_F",
						"optic_Arco_ghex_F",
						"optic_DMS_ghex_F",
						"optic_Hamr_khk_F",
						"optic_ERCO_blk_F",
						"optic_ERCO_khk_F",
						"optic_ERCO_snd_F",
						"optic_SOS_khk_F",
						"optic_LRPS_tna_F",
						"optic_LRPS_ghex_F",
						"optic_Holosight_blk_F",
						"optic_Holosight_khk_F",
						"optic_Holosight_smg_blk_F",

						//NVG
						"NVGoggles",
						"NVGoggles_INDEP",
						"NVGoggles_OPFOR"
						//Apex
					//	"O_NVGoggles_hex_F",
					//	"O_NVGoggles_urb_F",
					//	"O_NVGoggles_ghex_F",
					//	"NVGoggles_tna_F"
						];

//SECOND ITEMS LIST
						_items_loot3 = [
							//Here ONLY :items , PointerAttachments , BipodAttachments , MuzzleAttachments , OpticAttachments , NVG
				//	"ItemCompass",
				//	"ItemWatch",
				//	"ItemRadio",
				//	"ItemGPS",
				//	"ItemMap",
						"MediKit",
						"FirstAidKit",
				//	"Binocular",
						"Rangefinder",
				//	"ItemWatch",
			  //	"ItemRadio",
			  //	"ItemGPS",
			  //	"ItemMap",
//PointerAttachments
						"acc_flashlight",
       //		"acc_pointer_IR",
	     //		BipodAttachments
			 //		"bipod_01_F_blk",
			 //		"bipod_02_F_blk",
			 //	  "bipod_03_F_blk",
							//Apex
			//	  "bipod_01_F_khk",
	//MuzzleAttachments
						"muzzle_snds_338_black",
			//	  "muzzle_snds_338_green",
						"muzzle_snds_338_sand",
						"muzzle_snds_93mmg",
						//	"muzzle_snds_93mmg_tan",
						"muzzle_snds_acp",
						"muzzle_snds_B",
						//	"muzzle_snds_H",
						"muzzle_snds_H_MG",
						//	"muzzle_snds_H_SW",
						"muzzle_snds_L",
						"muzzle_snds_M",
							//Apex
						"muzzle_snds_H_khk_F",
						//	"muzzle_snds_H_snd_F",
						"muzzle_snds_58_blk_F",
						"muzzle_snds_m_khk_F",
						//		"muzzle_snds_m_snd_F",
						"muzzle_snds_B_khk_F",
						//	"muzzle_snds_B_snd_F",
						"muzzle_snds_58_wdm_F",
						"muzzle_snds_65_TI_blk_F",
						//	"muzzle_snds_65_TI_hex_F",
						//	"muzzle_snds_65_TI_ghex_F",
						"muzzle_snds_H_MG_blk_F",
						//	"muzzle_snds_H_MG_khk_F",
							//OpticAttachments
						"optic_Aco",
						"optic_ACO_grn",
							"optic_ACO_grn_smg",
							"optic_Aco_smg",
							"optic_AMS",
							"optic_AMS_khk",
							"optic_AMS_snd",
							"optic_Arco",
							"optic_DMS",
							"optic_Hamr",
							"optic_Holosight",
							"optic_Holosight_smg",
							"optic_KHS_blk",
							"optic_KHS_hex",
							"optic_KHS_old",
							"optic_KHS_tan",
							"optic_LRPS",
							"optic_MRCO",
							"optic_MRD",
							"optic_Nightstalker",
							"optic_NVS",
							"optic_SOS",
						//	"optic_tws",
						//	"optic_tws_mg",
							"optic_Yorris",
							//Apex
							"optic_Arco_blk_F",
							"optic_Arco_ghex_F",
							"optic_DMS_ghex_F",
							"optic_Hamr_khk_F",
							"optic_ERCO_blk_F",
							"optic_ERCO_khk_F",
							"optic_ERCO_snd_F",
							"optic_SOS_khk_F",
							"optic_LRPS_tna_F",
							"optic_LRPS_ghex_F",
							"optic_Holosight_blk_F",
							"optic_Holosight_khk_F",
							"optic_Holosight_smg_blk_F",

						//	"NVGoggles",
						//	"NVGoggles_INDEP",
						//	"NVGoggles_OPFOR",
							//Apex
							"O_NVGoggles_hex_F",
							"O_NVGoggles_urb_F",
							"O_NVGoggles_ghex_F",
							"NVGoggles_tna_F"
							];

_supplyLocArray2 = [+2,+1,-1,-2,-3,-4];// ammount randomly added or subtracted from magazine quantities
_supplySmallRndm = _supplyLocArray2 select floor random count _supplyLocArray2;

            _supplyBox addweaponcargoGlobal [_weapons_Loot1, 1]; // [from what loot list, quantity of one random item]
						_supplyBox addweaponcargoGlobal [_weapons_Loot2, 1];
						_supplyBox addweaponcargoGlobal [_weapons_Loot3, 1]; //only launchers
						_supplyBox addMagazineCargoGlobal [selectRandom _items_loot3, 2]; //[from what loot list,how many different items from list]
						_supplyBox addItemCargoGlobal [selectRandom _items_loot2, 1];
						_supplyBox addItemCargoGlobal [selectRandom _items_loot3, 1];

						_magazines_weapon1 = getArray (configFile / "CfgWeapons" / _weapons_Loot1 / "magazines");
						_magazineClass_weapon1 = selectRandom _magazines_weapon1;
						_magazines_weapon2 = getArray (configFile / "CfgWeapons" / _weapons_Loot2 / "magazines");
						_magazineClass_weapon2 = selectRandom _magazines_weapon2;
						_magazines_weapon3 = getArray (configFile / "CfgWeapons" / _weapons_Loot3 / "magazines");
						_magazineClass_weapon3 = selectRandom _magazines_weapon3;

						_supplyBox addMagazineCargoGlobal [_magazineClass_weapon1, 8 +_supplySmallRndm];		//weapon_loot1 magazine quantity
						_supplyBox addMagazineCargoGlobal [_magazineClass_weapon2, 7 +_supplySmallRndm];		//weapon_loot2 magazine quantity
						_supplyBox addMagazineCargoGlobal [_magazineClass_weapon3, 3]; //weapon_loot3 (launchers) magazine quantity

					hint "";
					sleep 5;
					{deleteVehicle _x;}forEach crew _helisupp;deleteVehicle _helisupp;
					//hint "end";


		};
	};
}];

 

Edited by Dedmen
Put the Code into a Spoiler tag, please don't just paste blobs of text into a post without a spoiler tag
  • Like 1

Share this post


Link to post
Share on other sites

For some reason that last script stopped working and wouldn't drop the cargo... this one should work. My bad!

 

Spoiler

player addEventHandler ["Fired",
{
    if ((_this select 4) isEqualTo "SmokeShellRed") then
    {
        _grenadeObj = (_this select 6);
        _doArsenalCrateDrop = [_grenadeObj] spawn
        {
      //
            private ["_grenadePos","_grenadeObj"];
            params ["_grenadeObj"];
            waitUntil {speed _grenadeObj == 0}; // wait until smoke grenade has stopped moving
            _grenadeLPos = getPosATL _grenadeObj; // get position of smoke grenade
            _grenadePos = createMarker ["grenadepos", _grenadeLPos];
      //

            _supplyType = selectRandom ["B_supplyCrate_F"]; // crate type(s)
            _arsenalParachuteType = selectRandom ["O_Parachute_02_F"]; // parachute type(s)
            //_supplyLocArray = [+1000,-1000,1500,-1500, 1300,-1300];
            _supplyLocArray = [+500,-500];
            _supplyRandomLocX = _supplyLocArray select floor random count _supplyLocArray;
            _supplyRandomLocY = _supplyLocArray select floor random count _supplyLocArray;
            ///////////////////////////////////////////////////////////////////////////////////////
            _heliSpawn = [(_grenadeLPos select 0)+_supplyRandomLocX,(_grenadeLPos select 1)+_supplyRandomLocY, (_grenadeLPos select 2) + 50];
            _heliDeSpawn = [(_grenadeLPos select 0)+_supplyRandomLocX,(_grenadeLPos select 1)+_supplyRandomLocY, (_grenadeLPos select 2) + 100];
            _heli0 = [_helispawn, 180, "I_Heli_Transport_02_F", WEST] call bis_fnc_spawnvehicle;

            _helisupp = _heli0 select 0;
            _supplyHeliPos = getPos _helisupp;
            _supplyMrkrHeli = createMarker ["supplyMrkrHeli", _supplyHeliPos];
            _helicrew = _heli0 select 1;
            _heligroup = _heli0 select 2;
            _heligroup setSpeedMode "FULL";
            _heligroup setBehaviour "CARELESS";
            _wp0 = _heligroup addWaypoint [_grenadeLPos,-1];
            _wp0 setWaypointType "MOVE";
            _wp1 = _heligroup addWaypoint [_heliDeSpawn,-1];
            _wp1 setWaypointType "MOVE";
            _supplyMrkrLZ = createMarker ["supplyMrkrLZ", _grenadeLpos];
            "supplyMrkrLZ" setMarkerType "Empty";
            "supplyMrkrHeli" setMarkerType "Empty";
            _helisupp flyInHeight 150;
//
            _supplyMrkrHeliPos = getMarkerPos "supplyMrkrHeli";
            _supplyMrkrHeliPos2 = [_supplyMrkrHeliPos select 0,
                                    _supplyMrkrHeliPos select 1,
                                    (_supplyMrkrHeliPos select 2)+50];

            _helisupp = _supplyMrkrHeliPos2 nearestObject "I_Heli_Transport_02_F";
            _supplyMrkrLZPos = getMarkerPos "supplyMrkrLZ";
            _supplyLZ = createVehicle ["Land_Laptop_device_F", getMarkerPos "supplyMrkrLZ", [], 0, "NONE"];
            deleteMarker "supplyMrkrHeli";
            deleteMarker "supplyMrkrLZ";
            _supplyLZ hideObject true;

            waitUntil {( _supplyLZ distance _helisupp)<400};
                _helisupp animateDoor ["CargoRamp_Open",1];
                _helisupp flyInHeight 80;
            waitUntil {( _supplyLZ distance _helisupp)<120};
                sleep 1;
              //  _helisupp flyInHeight 150;
								_supplyBox = createVehicle
                                ["B_supplyCrate_F", position _helisupp, [], 0, "CAN_COLLIDE"];
                                clearBackpackCargoGlobal _supplyBox;
                                clearWeaponCargoGlobal _supplyBox;
                                clearMagazineCargoGlobal _supplyBox;
                                clearItemCargoGlobal _supplyBox;

                _supplyBox disableCollisionWith _helisupp;
                _helisupp disableCollisionWith _supplybox;
                _supplyBox allowDammage false;
                _supplyBox attachTo [_helisupp, [0, 0, 0], "CargoRamp"];
                _supplyBox setDir ([_supplyBox, _helisupp] call BIS_fnc_dirTo);
                detach _supplyBox;
                deleteVehicle _supplyLZ;

                _supplyChute = createVehicle ["B_parachute_02_F", position _supplyBox, [], 0, "CAN_COLLIDE"];
                _supplyBox attachTo [_supplyChute,[0,0,-0.5]];
                _supplyChute hideObject true;
                _supplyChute setPos getPos _supplyBox;

                sleep .1;
                //hint "The supplies have been dropped";
                _supplyChute hideObject false;
                _helisupp allowDammage true;
                _supplyBox allowDammage true;
                _helisupp animateDoor ["CargoRamp_Open",0];

                //:::::::::::|SMOKE|:::::::::::
                _supplySmoke = "SmokeShell" createVehicle (position _supplyBox);
                _supplySmoke attachTo [_supplyBox, [0,0,0]];

                waitUntil {(getPos _supplyBox select 2)<2};
                detach _supplyBox;
                    _supplyChute setPos [ (getPos _supplyChute select 0)+0.75, getPos _supplyChute select 1, getPos _supplyChute select 2];
										_weapons_Loot1 = selectRandom[
										//LightMachineGuns
										"arifle_MX_SW_Black_F",
										"arifle_MX_SW_F",
										"LMG_Mk200_F",
										"LMG_Zafir_F",
										"LMG_03_F",
										"MMG_01_hex_F",
										"MMG_01_tan_F",
										"MMG_02_black_F",
										"MMG_02_camo_F",
										"MMG_02_sand_F",
										//Apex
										"LMG_03_F",

										//AssaultRifles
										"arifle_Katiba_C_F",
										"arifle_Katiba_F",
										"arifle_Katiba_GL_F",
										"arifle_Mk20_F",
										"arifle_Mk20_GL_F",
										"arifle_Mk20_GL_plain_F",
										"arifle_Mk20_plain_F",
										"arifle_Mk20C_F",
										"arifle_Mk20C_plain_F",
										"arifle_MX_Black_F",
										"arifle_MX_F",
										"arifle_MX_GL_Black_F",
										"arifle_MX_GL_F",
										"arifle_MXC_Black_F",
										"arifle_MXC_F",
										"arifle_SDAR_F",
										"arifle_TRG20_F",
										"arifle_TRG21_F",
										"arifle_TRG21_GL_F",
										//Apex AssaultRifles
										"arifle_AK12_F",
										"arifle_AK12_GL_F",
										"arifle_AKM_F",
										"arifle_AKM_FL_F",
										"arifle_AKS_F",
										//AK x2
										"arifle_AK12_F",
										"arifle_AK12_GL_F",
										"arifle_AKM_F",
										"arifle_AKM_FL_F",
										"arifle_AKS_F",
										//
										"arifle_ARX_blk_F",
										"arifle_ARX_ghex_F",
										"arifle_ARX_hex_F",
										"arifle_CTAR_blk_F",
										"arifle_CTAR_hex_F",
										"arifle_CTAR_ghex_F",
										"arifle_CTAR_GL_blk_F",
										"arifle_CTARS_blk_F",
										"arifle_CTARS_hex_F",
										"arifle_CTARS_ghex_F",
										"arifle_SPAR_01_blk_F",
										"arifle_SPAR_01_khk_F",
										"arifle_SPAR_01_snd_F",
										"arifle_SPAR_01_GL_blk_F",
										"arifle_SPAR_01_GL_khk_F",
										"arifle_SPAR_01_GL_snd_F",
										"arifle_SPAR_02_blk_F",
										"arifle_SPAR_02_khk_F",
										"arifle_SPAR_02_snd_F",
										"arifle_SPAR_03_blk_F",
										"arifle_SPAR_03_khk_F",
										"arifle_SPAR_03_snd_F",
										"arifle_MX_khk_F",
										"arifle_MX_GL_khk_F",
										"arifle_MXC_khk_F",
										"arifle_MXM_khk_F",

										//SniperRifles
										"arifle_MXM_Black_F",
										"arifle_MXM_F",
										"srifle_DMR_01_F",
										"srifle_DMR_02_camo_F",
										"srifle_DMR_02_F",
										"srifle_DMR_02_sniper_F",
										"srifle_DMR_03_F",
										"srifle_DMR_03_khaki_F",
										"srifle_DMR_03_multicam_F",
										"srifle_DMR_03_tan_F",
										"srifle_DMR_03_woodland_F",
										"srifle_DMR_04_F",
										"srifle_DMR_04_Tan_F",
										"srifle_DMR_05_blk_F",
										"srifle_DMR_05_hex_F",
										"srifle_DMR_05_tan_f",
										"srifle_DMR_06_camo_F",
										"srifle_DMR_06_olive_F",
										"srifle_EBR_F",
										"srifle_GM6_camo_F",
										"srifle_GM6_F",
										"srifle_LRR_camo_F",
										"srifle_LRR_F",
										//Apex SniperRifles
										"srifle_LRR_tna_F",
										"srifle_GM6_ghex_F",
										"srifle_DMR_07_blk_F",
										"srifle_DMR_07_hex_F",
										"srifle_DMR_07_ghex_F"
										];

						//SECOND RANDOM WEAPON LIST
										_weapons_Loot2 = selectRandom[
										//LightMachineGuns
										"arifle_MX_SW_Black_F",
										"arifle_MX_SW_F",
										"LMG_Mk200_F",
										"LMG_Zafir_F",
										"LMG_03_F",
										"MMG_01_hex_F",
										"MMG_01_tan_F",
										"MMG_02_black_F",
										"MMG_02_camo_F",
										"MMG_02_sand_F",
										//Apex
										"LMG_03_F",

										//AssaultRifles
										"arifle_Katiba_C_F",
										"arifle_Katiba_F",
										"arifle_Katiba_GL_F",
										"arifle_Mk20_F",
										"arifle_Mk20_GL_F",
										"arifle_Mk20_GL_plain_F",
										"arifle_Mk20_plain_F",
										"arifle_Mk20C_F",
										"arifle_Mk20C_plain_F",
										"arifle_MX_Black_F",
										"arifle_MX_F",
										"arifle_MX_GL_Black_F",
										"arifle_MX_GL_F",
										"arifle_MXC_Black_F",
										"arifle_MXC_F",
										"arifle_SDAR_F",
										"arifle_TRG20_F",
										"arifle_TRG21_F",
										"arifle_TRG21_GL_F",
										//Apex AssaultRifles
										"arifle_AK12_F",
										"arifle_AK12_GL_F",
										"arifle_AKM_F",
										"arifle_AKM_FL_F",
										"arifle_AKS_F",
										//AK x2
										"arifle_AK12_F",
										"arifle_AK12_GL_F",
										"arifle_AKM_F",
										"arifle_AKM_FL_F",
										"arifle_AKS_F",
										//
										"arifle_ARX_blk_F",
										"arifle_ARX_ghex_F",
										"arifle_ARX_hex_F",
										"arifle_CTAR_blk_F",
										"arifle_CTAR_hex_F",
										"arifle_CTAR_ghex_F",
										"arifle_CTAR_GL_blk_F",
										"arifle_CTARS_blk_F",
										"arifle_CTARS_hex_F",
										"arifle_CTARS_ghex_F",
										"arifle_SPAR_01_blk_F",
										"arifle_SPAR_01_khk_F",
										"arifle_SPAR_01_snd_F",
										"arifle_SPAR_01_GL_blk_F",
										"arifle_SPAR_01_GL_khk_F",
										"arifle_SPAR_01_GL_snd_F",
										"arifle_SPAR_02_blk_F",
										"arifle_SPAR_02_khk_F",
										"arifle_SPAR_02_snd_F",
										"arifle_SPAR_03_blk_F",
										"arifle_SPAR_03_khk_F",
										"arifle_SPAR_03_snd_F",
										"arifle_MX_khk_F",
										"arifle_MX_GL_khk_F",
										"arifle_MXC_khk_F",
										"arifle_MXM_khk_F",

										//SniperRifles
										"arifle_MXM_Black_F",
										"arifle_MXM_F",
										"srifle_DMR_01_F",
										"srifle_DMR_02_camo_F",
										"srifle_DMR_02_F",
										"srifle_DMR_02_sniper_F",
										"srifle_DMR_03_F",
										"srifle_DMR_03_khaki_F",
										"srifle_DMR_03_multicam_F",
										"srifle_DMR_03_tan_F",
										"srifle_DMR_03_woodland_F",
										"srifle_DMR_04_F",
										"srifle_DMR_04_Tan_F",
										"srifle_DMR_05_blk_F",
										"srifle_DMR_05_hex_F",
										"srifle_DMR_05_tan_f",
										"srifle_DMR_06_camo_F",
										"srifle_DMR_06_olive_F",
										"srifle_EBR_F",
										"srifle_GM6_camo_F",
										"srifle_GM6_F",
										"srifle_LRR_camo_F",
										"srifle_LRR_F",
										//Apex SniperRifles
										"srifle_LRR_tna_F",
										"srifle_GM6_ghex_F",
										"srifle_DMR_07_blk_F",
										"srifle_DMR_07_hex_F",
										"srifle_DMR_07_ghex_F"
										];

						//LAUNCHERS LIST
										_weapons_Loot3 = selectRandom[

										"launch_NLAW_F",
										"launch_RPG32_F",
										"launch_RPG32_ghex_F",
										"launch_RPG7_F",
										"launch_RPG7_F",	//x2
										"launch_Titan_F",
										"launch_I_Titan_F",
										"launch_O_Titan_ghex_F",
										"launch_O_Titan_F",
										"launch_B_Titan_F",
										"launch_B_Titan_tna_F",
										"launch_Titan_short_F",
										"launch_O_Titan_short_F",
										"launch_O_Titan_short_ghex_F",
										"launch_I_Titan_short_F",
										"launch_B_Titan_short_F",
										"launch_B_Titan_short_tna_F"
										];
						//GRENADES,FLARES,SMOKES,EXPOLSIVES LIST
										_items_loot3 = [

								//	"Chemlight_blue",
								//	"Chemlight_green",
								//	"Chemlight_red",
										"SmokeShell",
										"SmokeShellGreen",
										"SmokeShellOrange",
										"SmokeShellPurple",
										"SmokeShellRed",
								//	"SmokeShellYellow",
								//	"1Rnd_Smoke_Grenade_shell",
								//	"1Rnd_SmokeGreen_Grenade_shell",
								//	"1Rnd_SmokeOrange_Grenade_shell",
								//	"1Rnd_SmokePurple_Grenade_shell",
								//	"1Rnd_SmokeRed_Grenade_shell",
								//	"1Rnd_SmokeYellow_Grenade_shell",
								//	"3Rnd_Smoke_Grenade_shell",
								//	"3Rnd_SmokeGreen_Grenade_shell",
								//	"3Rnd_SmokeOrange_Grenade_shell",
								//	"3Rnd_SmokePurple_Grenade_shell",
								//	"3Rnd_SmokeRed_Grenade_shell",
								//	"3Rnd_SmokeYellow_Grenade_shell",
										"HandGrenade",
										"MiniGrenade",
										"B_IR_Grenade",
										"O_IR_Grenade",
										"I_IR_Grenade",
										"1Rnd_HE_Grenade_shell",
										"3Rnd_HE_Grenade_shell",
										"APERSBoundingMine_Range_Mag",
										"APERSMine_Range_Mag",
										"APERSTripMine_Wire_Mag",
										"ClaymoreDirectionalMine_Remote_Mag",
										"DemoCharge_Remote_Mag",
										"IEDLandBig_Remote_Mag",
										"IEDLandSmall_Remote_Mag",
										"IEDUrbanBig_Remote_Mag",
										"IEDUrbanSmall_Remote_Mag",
										"SatchelCharge_Remote_Mag",
										"SLAMDirectionalMine_Wire_Mag"
											];

						//FIRST ITEMS LIST
											_items_loot2 = [
												//Here ONLY :items , PointerAttachments , BipodAttachments , MuzzleAttachments , OpticAttachments , NVG
											//	"ItemCompass",
												"ItemWatch",
												//"ItemRadio",
												//"ItemGPS",
												//"ItemMap",
												//x2
												"MediKit",
												"FirstAidKit",
												"FirstAidKit",
												//Tools
												"Binocular",
												"Rangefinder",
											//	"ItemWatch",
											//	"ItemRadio",
											//	"ItemGPS",
											//	"ItemMap",
												//PointerAttachments
												"acc_flashlight",
												"acc_pointer_IR",
												//BipodAttachments
												"bipod_01_F_blk",
												"bipod_02_F_blk",
												"bipod_03_F_blk",
												//Apex
											//	"bipod_01_F_khk",
												//MuzzleAttachments
												"muzzle_snds_338_black",
											//	"muzzle_snds_338_green",
												"muzzle_snds_338_sand",
												"muzzle_snds_93mmg",
											//	"muzzle_snds_93mmg_tan",
												"muzzle_snds_acp",
												"muzzle_snds_B",
												"muzzle_snds_H",
												"muzzle_snds_H_MG",
												"muzzle_snds_H_SW",
												"muzzle_snds_L",
												"muzzle_snds_M",
												//Apex
												"muzzle_snds_H_khk_F",
											//	"muzzle_snds_H_snd_F",
												"muzzle_snds_58_blk_F",
												"muzzle_snds_m_khk_F",
										//		"muzzle_snds_m_snd_F",
												"muzzle_snds_B_khk_F",
											//	"muzzle_snds_B_snd_F",
												"muzzle_snds_58_wdm_F",
												"muzzle_snds_65_TI_blk_F",
											//	"muzzle_snds_65_TI_hex_F",
											//	"muzzle_snds_65_TI_ghex_F",
												"muzzle_snds_H_MG_blk_F",
											//	"muzzle_snds_H_MG_khk_F",
												//OpticAttachments
												"optic_Aco",
												"optic_ACO_grn",
												"optic_ACO_grn_smg",
												"optic_Aco_smg",
												"optic_AMS",
												"optic_AMS_khk",
												"optic_AMS_snd",
												"optic_Arco",
												"optic_DMS",
												"optic_Hamr",
												"optic_Holosight",
												"optic_Holosight_smg",
												"optic_KHS_blk",
												"optic_KHS_hex",
												"optic_KHS_old",
												"optic_KHS_tan",
												"optic_LRPS",
												"optic_MRCO",
												"optic_MRD",
												"optic_Nightstalker",
												"optic_NVS",
												"optic_SOS",
												"optic_Yorris",
												//Apex
												"optic_Arco_blk_F",
												"optic_Arco_ghex_F",
												"optic_DMS_ghex_F",
												"optic_Hamr_khk_F",
												"optic_ERCO_blk_F",
												"optic_ERCO_khk_F",
												"optic_ERCO_snd_F",
												"optic_SOS_khk_F",
												"optic_LRPS_tna_F",
												"optic_LRPS_ghex_F",
												"optic_Holosight_blk_F",
												"optic_Holosight_khk_F",
												"optic_Holosight_smg_blk_F",

												//NVG
												"NVGoggles",
												"NVGoggles_INDEP",
												"NVGoggles_OPFOR"
												//Apex
											//	"O_NVGoggles_hex_F",
											//	"O_NVGoggles_urb_F",
											//	"O_NVGoggles_ghex_F",
											//	"NVGoggles_tna_F"
												];

						//SECOND ITEMS LIST
												_items_loot3 = [
													//Here ONLY :items , PointerAttachments , BipodAttachments , MuzzleAttachments , OpticAttachments , NVG
										//	"ItemCompass",
										//	"ItemWatch",
										//	"ItemRadio",
										//	"ItemGPS",
										//	"ItemMap",
												"MediKit",
												"FirstAidKit",
										//	"Binocular",
												"Rangefinder",
										//	"ItemWatch",
										//	"ItemRadio",
										//	"ItemGPS",
										//	"ItemMap",
						//PointerAttachments
												"acc_flashlight",
									 //		"acc_pointer_IR",
									 //		BipodAttachments
									 //		"bipod_01_F_blk",
									 //		"bipod_02_F_blk",
									 //	  "bipod_03_F_blk",
													//Apex
									//	  "bipod_01_F_khk",
							//MuzzleAttachments
												"muzzle_snds_338_black",
									//	  "muzzle_snds_338_green",
												"muzzle_snds_338_sand",
												"muzzle_snds_93mmg",
												//	"muzzle_snds_93mmg_tan",
												"muzzle_snds_acp",
												"muzzle_snds_B",
												//	"muzzle_snds_H",
												"muzzle_snds_H_MG",
												//	"muzzle_snds_H_SW",
												"muzzle_snds_L",
												"muzzle_snds_M",
													//Apex
												"muzzle_snds_H_khk_F",
												//	"muzzle_snds_H_snd_F",
												"muzzle_snds_58_blk_F",
												"muzzle_snds_m_khk_F",
												//		"muzzle_snds_m_snd_F",
												"muzzle_snds_B_khk_F",
												//	"muzzle_snds_B_snd_F",
												"muzzle_snds_58_wdm_F",
												"muzzle_snds_65_TI_blk_F",
												//	"muzzle_snds_65_TI_hex_F",
												//	"muzzle_snds_65_TI_ghex_F",
												"muzzle_snds_H_MG_blk_F",
												//	"muzzle_snds_H_MG_khk_F",
													//OpticAttachments
												"optic_Aco",
												"optic_ACO_grn",
													"optic_ACO_grn_smg",
													"optic_Aco_smg",
													"optic_AMS",
													"optic_AMS_khk",
													"optic_AMS_snd",
													"optic_Arco",
													"optic_DMS",
													"optic_Hamr",
													"optic_Holosight",
													"optic_Holosight_smg",
													"optic_KHS_blk",
													"optic_KHS_hex",
													"optic_KHS_old",
													"optic_KHS_tan",
													"optic_LRPS",
													"optic_MRCO",
													"optic_MRD",
													"optic_Nightstalker",
													"optic_NVS",
													"optic_SOS",
												//	"optic_tws",
												//	"optic_tws_mg",
													"optic_Yorris",
													//Apex
													"optic_Arco_blk_F",
													"optic_Arco_ghex_F",
													"optic_DMS_ghex_F",
													"optic_Hamr_khk_F",
													"optic_ERCO_blk_F",
													"optic_ERCO_khk_F",
													"optic_ERCO_snd_F",
													"optic_SOS_khk_F",
													"optic_LRPS_tna_F",
													"optic_LRPS_ghex_F",
													"optic_Holosight_blk_F",
													"optic_Holosight_khk_F",
													"optic_Holosight_smg_blk_F",

												//	"NVGoggles",
												//	"NVGoggles_INDEP",
												//	"NVGoggles_OPFOR",
													//Apex
													"O_NVGoggles_hex_F",
													"O_NVGoggles_urb_F",
													"O_NVGoggles_ghex_F",
													"NVGoggles_tna_F"
													];

						_supplyLocArray2 = [+2,+1,-1,-2,-3,-4];// ammount randomly added or subtracted from magazine quantities
						_supplySmallRndm = _supplyLocArray2 select floor random count _supplyLocArray2;

												_supplyBox addweaponcargoGlobal [_weapons_Loot1, 1]; // [from what loot list, quantity of one random item]
												_supplyBox addweaponcargoGlobal [_weapons_Loot2, 1];
												_supplyBox addweaponcargoGlobal [_weapons_Loot3, 1]; //only launchers
												_supplyBox addMagazineCargoGlobal [selectRandom _items_loot3, 2]; //[from what loot list,how many different items from list]
												_supplyBox addItemCargoGlobal [selectRandom _items_loot2, 1];
												_supplyBox addItemCargoGlobal [selectRandom _items_loot3, 1];

												_magazines_weapon1 = getArray (configFile / "CfgWeapons" / _weapons_Loot1 / "magazines");
												_magazineClass_weapon1 = selectRandom _magazines_weapon1;
												_magazines_weapon2 = getArray (configFile / "CfgWeapons" / _weapons_Loot2 / "magazines");
												_magazineClass_weapon2 = selectRandom _magazines_weapon2;
												_magazines_weapon3 = getArray (configFile / "CfgWeapons" / _weapons_Loot3 / "magazines");
												_magazineClass_weapon3 = selectRandom _magazines_weapon3;

												_supplyBox addMagazineCargoGlobal [_magazineClass_weapon1, 8 +_supplySmallRndm];		//weapon_loot1 magazine quantity
												_supplyBox addMagazineCargoGlobal [_magazineClass_weapon2, 7 +_supplySmallRndm];		//weapon_loot2 magazine quantity
												_supplyBox addMagazineCargoGlobal [_magazineClass_weapon3, 3]; //weapon_loot3 (launchers) magazine quantity
									  hint "";
                    sleep 5;
                    {deleteVehicle _x;}forEach crew _helisupp;deleteVehicle _helisupp;
                    //hint "end";


        };
    };
}];

 

Edited by Dedmen
Put the Code into a Spoiler tag, please don't just paste blobs of text into a post without a spoiler tag

Share this post


Link to post
Share on other sites
6 hours ago, Kelsey Allen said:

player addEventHandler ["Fired", {

That script is a significant performance killer.

Engine Eventhandlers get recompiled on every execution, the bigger your script is, the worse.

And your script is HUGE. And it runs on every shot being fired. Give the player a machine gun and watch the fps drop.

I'd recommend you use CfgFunctions, and then

addEventHandler ["Fired", {call My_fnc_FiredHandler}]

 

 

Share this post


Link to post
Share on other sites
On 2/3/2020 at 10:08 PM, Kelsey Allen said:

My current goal is to throw a green smoke grenade and have a helicopter spawn, fly to the smoke grenade position, drop a supply crate, and fly away.

Hmm great idea!

Already been done my friend:

@Rydygier and myself came up with the same idea but more in depth, heli can pick you up, drop you off, you can have a heli to cas, sling load ammo, or paradrop

ammo with or without smoke, pick you up, ect. and you can configure it all through a module for the mod version on through script.

 

      The idea for it i had back in 2013 was called green smoker back then, since then we spent a portion of last year testing and making the idea work.

I dont want to tread on what you have already figured out or want to do, but i just dont want to see someone reinvent the wheel so to speak, just my humble opinion.

But if you have something more specific and want to do it a different way hey thats cool too, just working with code, im sure it will better your coding skills none the less.

  • Like 1

Share this post


Link to post
Share on other sites
On 2/12/2020 at 11:12 AM, Dedmen said:

That script is a significant performance killer.

Engine Eventhandlers get recompiled on every execution, the bigger your script is, the worse.

And your script is HUGE. And it runs on every shot being fired. Give the player a machine gun and watch the fps drop.

I'd recommend you use CfgFunctions, and then

addEventHandler ["Fired", {call My_fnc_FiredHandler}]

 

 

Yea, I was realizing that it was eating my fps. I'll definitely try to slim it down but my skills are pretty low with this stuff.

 

On 2/12/2020 at 4:32 PM, Gunter Severloh said:

Hmm great idea!

Already been done my friend:

@Rydygier and myself came up with the same idea but more in depth, heli can pick you up, drop you off, you can have a heli to cas, sling load ammo, or paradrop

ammo with or without smoke, pick you up, ect. and you can configure it all through a module for the mod version on through script.

 

      The idea for it i had back in 2013 was called green smoker back then, since then we spent a portion of last year testing and making the idea work.

I dont want to tread on what you have already figured out or want to do, but i just dont want to see someone reinvent the wheel so to speak, just my humble opinion.

But if you have something more specific and want to do it a different way hey thats cool too, just working with code, im sure it will better your coding skills none the less.

I'll definitely try your's out! Thanks!

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

×