Jump to content
soolie

Customizable Supply Drop - Release

Recommended Posts

This is working in S/P or M/P. Please post any problems.

Share this post


Link to post
Share on other sites

Thanks was looking for something like this. The chemlight and smoke addition is cool.. I seem to have a problem where the supply box is detaching just after the parachute deploys, I think the waituntil inside supply.sqf is giving problems for me. I also tried changing it to waitUntil {sleep 1; ((getPosATL _supplyBox) select 2) < 5};

[EDIT]

Nevermind the waituntil, I tested by adding player globalChat "Detaching Chute"; and it does wait until the box hits the ground. Still can't understand why it detaches and falls.

Edited by LowFlyZone

Share this post


Link to post
Share on other sites
Thanks was looking for something like this. The chemlight and smoke addition is cool.. I seem to have a problem where the supply box is detaching just after the parachute deploys, I think the waituntil inside supply.sqf is giving problems for me. I also tried changing it to waitUntil {sleep 1; ((getPosATL _supplyBox) select 2) < 5};

[EDIT]

Nevermind the waituntil, I tested by adding player globalChat "Detaching Chute"; and it does wait until the box hits the ground. Still can't understand why it detaches and falls.

I have never had this happen and don't know what it could be. Possibly line 77 of supply.sqf

_supplyChute setPos getPos _supplyBox;

Comment that out and see how it works.

Share this post


Link to post
Share on other sites

No luck, but I found my problem and tested a few times. I had to change the line _supplyBox attachTo [_supplyChute,[0,0,-0.5]]; to _supplyBox attachTo [_supplyChute,[0,0,-1.0]];

It needed more space between the center positions of both models for me, I guess the parachute was still colliding with the box (despite double checked disableCollisionWith) thinking it's hitting the ground, because it performs the parachute drop animation in mid air too... Weird :P

Anyway, it works fine now.

Share this post


Link to post
Share on other sites

how can we limit calling via radio group leaders only or a certain class of soldier fpr MP ?

Share this post


Link to post
Share on other sites

Create a radio Alpha or whatever. In on activation field put:

(thislist select 0) addaction ["Supply Drop", {[[["","CargoNet_01_box_F","FncSupplyCargo1"],"supply\supply.sqf"], "BIS_fnc_execVM", true] call BIS_fnc_MP;},[],1,false,true,"leader group (_this select 0) == (_this select 0)"];

I have not tested this yet... (thislist select 0) should be the unit that activated the trigger.

leader group (_this select 0) == (_this select 0) makes sure the activation is only available to a group leader.

Technically I think this method is better...

Create a radio Alpha or whatever. In on activation field put:

if(leader group (thislist select 0) == (thislist select 0)) then
{
 [[["","CargoNet_01_box_F","FncSupplyCargo1"],"supply\supply.sqf"], "BIS_fnc_execVM", true] call BIS_fnc_MP;
};

I'm not sure if the latter method will work in MP. I don't know MP coding yet.

Then concerning limiting to a unit class, I presume you mean the classname of the unit. You can use typeOf unit == "classname"

if(leader group (thislist select 0) == (thislist select 0) && typeOf (thislist select 0) == "B_recon_JTAC_F") then
{
 [[["","CargoNet_01_box_F","FncSupplyCargo1"],"supply\supply.sqf"], "BIS_fnc_execVM", true] call BIS_fnc_MP;
};

Edited by LowFlyZone

Share this post


Link to post
Share on other sites

o.k. typeOf unit == "classname" worked on the condition of the trigger.But the reguested vehicles are usually damaged any chance to prevent this ?

Share this post


Link to post
Share on other sites

When using it with vehicles, they will sometimes clip the heli and take damage.

You can try moving this line(line 88)

_supplyBox allowDammage true;

to the end of the script.

Put it here

	waitUntil {(getPos _supplyBox select 2)<2}; 
detach _supplyBox;
xxxxxxxxxxxxxxxxxxxxxPUT IT HERExxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
	_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;
	//hint "end";

This will make the "supplyBox" or vehicle that's being dropped, indestructible until it is just about to land.

Share this post


Link to post
Share on other sites

did you try this on a dedicated server with other players ? it didnt work for us.when a player reguests an supply box ? every other players gets the mapclick hint. and it created paradrops every map click.

Share this post


Link to post
Share on other sites

Works fine, except that i have no stuff in the inventory of the box after it touches ground also there is no menu if i'm using the VAS option. Still testing but currently i have no idea where the problem is.

Idea for a future release (if planned) :

What about a placed box that i can fill with stuff (e.g. placed at a FOB). After requesting the supply drop the box will be "deleted" and dropped by the helicopter. Maybe with an option for several "runs", means after the helicopter "returned to base" the box appears back at the FOB for changing the inventory and/or just being prepared for a second drop.

  • Like 1

Share this post


Link to post
Share on other sites
Works fine, except that i have no stuff in the inventory of the box after it touches ground also there is no menu if i'm using the VAS option. Still testing but currently i have no idea where the problem is.

Idea for a future release .......

I like that idea, will think on it today. As for your mission, pm me a dropbox link to your mission files and I will take a look.

Share this post


Link to post
Share on other sites

I will have a dedicated server up by the end of the week! This will be tested and re-released for dedicated ASAP!

Share this post


Link to post
Share on other sites

Im running your script on a dedicated server.

In general it works but ive encountered some issues :

The script executes for all players. If player requests a supply drop via radio trigger the map opens for all players. The other players are forced to click on the map otherwise its not possible to close the map.

This results in a helicopter for each player.... also i experienced that each helicopter drops several boxes. Result in general .... stuttering and fps-droping down to 4 fps. until all helos are despawned.

Will do some more testing this evening on a blank mission...

Share this post


Link to post
Share on other sites

Its the use of BIS_fnc_MP here that causes the script to run for all players.

Share this post


Link to post
Share on other sites

After the last update supply drop works once again on Dedicated servers :yay:

Share this post


Link to post
Share on other sites

Thank you! will be testing later. Hopefully I can figure it out, I'll put a tut up if I can.

Share this post


Link to post
Share on other sites

Re; Full Bis support.

A question; I have a mission that when a player reaches a radio room (trigger) they can call for (Bis support) Sup drop, or Air strike or whatever is activated in the module. The problem is all players get the same option where ever they are, not just the player who reaches to radio/trigger. Also any one know a way of turning off the support when the trigger is departed from? i.e. you can only call support when in the radio-room/trigger???

Share this post


Link to post
Share on other sites

I think that's the "while present" option, or something like that. At work now won't be able to look for another 8 hrs. Was having the same problem with my script, this leads me to believe it has to do with the trigger maybe? Are you calling it using code in the trigger or synced module to trigger?

Share this post


Link to post
Share on other sites

As I dont want players to have the option until they reach a trigger point every thing is un synced.

The script in trigger is "[player, supreq1, supdrp1] call BIS_fnc_addSupportLink; [player, trans1, suppro1] call BIS_fnc_addSupportLink;" if you name the player & he is down you lose the option. still working on a fix.

Tried the true false stuff, but the only way to end the sup drop after its activated seems to be when the specified module number has been reached.

The "[player, supreq1, supdrp1] call BIS_fnc_addSupportLink; [player, trans1, suppro1] call BIS_fnc_addSupportLink;" also works as a sqf activated at an object.

Edited by jgaz-uk

Share this post


Link to post
Share on other sites

Hello,

i tryed to get this into a Version for the Arma 3 EPOCH Mod.

The idea is to add this as an random timed event script to call an Airdrop.

In this way i get a very nice Event with Loot for my Suvivors to fight for :D

After a few hours of trying to get this to work i ask for help now because i dont get it...:confused:

First of all i tryed to call the supply drop with a very newbie Admin Menu for testing but nothing works for me:

waituntil {!alive player ; !isnull (finddisplay 46)};
if ((getPlayerUID player) in ["xxxxxxxxxxxxxxxx", "xxxxxxxxxxxxxxxx", "xxxxxxxxxxxxxxxx"]) then {
sleep 30;
player addaction ["Supply Drop", {[[["","B_CargoNet_01_ammo_F","FncSupplyCargo1"],"supply\supply.sqf"], "BIS_fnc_execVM", true] call BIS_fnc_MP;},[],1,false,true,"(_this select 0) == (_this select 0)"];
};0

Did i need the Triggers in the Video if i try something like that?

As total newbie in Arma 3 scripting i would be very happy if someone could help me.

Sorry for my bad english :j:

Greetings Salutesh aka Steve

Edited by Salutesh

Share this post


Link to post
Share on other sites

Hello again,

after a brain session i get this to running:

supply.sqf

		openMap [true,true];
clicked = 0;
hintc "Left click on the map where you want the supplies dropped";

["supplymapclick", "onMapSingleClick", {
	_supplyLocArray = [+1000,-1375,-1500,-1125,+1250,-1000,+1375,-1250,+1500,+1125];
//===============Use the one below for testing. It spawns the heli much closer.=====================================
//		_supplyLocArray = [+500,-500];
	_supplyRandomLocX = _supplyLocArray select floor random count _supplyLocArray;
	_supplyRandomLocY = _supplyLocArray select floor random count _supplyLocArray;
	_supply = [[(_pos select 0)+_supplyRandomLocX,
				(_pos select 1)+_supplyRandomLocY, 
				(_pos select 2)+50], 180, "I_Heli_Transport_02_F", CIVILIAN] 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 [(_pos),1];
	_supplyWP1 setWaypointType "MOVE";
	_supplyWP2 = _supplyGrp addWaypoint [[(_pos select 0)+_supplyRandomLocX, 
										(_pos select 1)+_supplyRandomLocY, 
										_pos select 2], 2];
	_supplyMrkrLZ = createMarker ["supplyMrkrLZ", _pos];
	"supplyMrkrLZ" setMarkerType "hd_marker";
	"supplyMrkrHeli" setMarkerType "hd_marker";
	_supplyHeli flyInHeight 150;
	clicked = 1;
	openmap [false,false];
	onMapSingleClick '';}] call BIS_fnc_addStackedEventHandler; 


waitUntil {(clicked == 1)};
	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 false;

waitUntil {( _supplyLZ distance _supplyHeli)<400};
	_supplyHeli animateDoor ["CargoRamp_Open",1];

waitUntil {( _supplyLZ distance _supplyHeli)<200};
	sleep 2;
	_supplyHeli allowDammage false;     
	_supplyBox = createVehicle ["B_CargoNet_01_ammo_F", position _supplyHeli, [], 0, "CAN_COLLIDE"];
					clearBackpackCargoGlobal _supplyBox;
					clearWeaponCargoGlobal _supplyBox;
					clearMagazineCargoGlobal _supplyBox;
					clearItemCargoGlobal _supplyBox;
	[_supplyBox,"Fnc_AddVASAction",nil,true] spawn BIS_fnc_MP; 
	deleteVehicle _supplyLZ;
	_supplyBox attachTo [_supplyHeli, [0, 0, -2] ]; 
	detach _supplyBox;

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

//:::::::::::|LIGHT|:::::::::::
_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 false;
_supplyBox allowDammage false;
_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 60;
	//{deleteVehicle _x;}forEach crew _supplyHeli;deleteVehicle _supplyHeli;
	//hint "end";

I can run it with a simple Admin Menu and it works well until the drop part.

The Crate get dropet and also the paracute apears for a second, then it disappears and the Crate faling down.

Also the Crate is empty and the Heli is despawning instandly to gave the Heli Crew a free fly down to the death :butbut:

Maybe someone can help me with that?

Greeting Salutesh

Edited by Salutesh

Share this post


Link to post
Share on other sites

Haven't been on much lately and I'm currently at work but I will be happy to take a look later.

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

×