pierremgi 4851 Posted January 6, 2017 Hi all, I'm frequently scripting around BI modules overriding. I scripted some "multiple bombs" + "napalm" CAS for thus who knows MGI tactical pack addon. Today, I'd like to share a little script if you would like to drop a car (any vehicle) instead of a crate. Place a BI support module (virtual drop). It should work also with a real support. Not tested. Name it. Don't forget the BI support requester, sync modules as usual. In the BI module, write all vehicle types you want (helicopter classes existing in your cfgVehicles); In my example, as I'm fond of UNSUNG: ["uns_ach47_m200","uns_ch47_m60_army"] and this remark: the APEX V44 Blackfish ("B_T_VTOL_01_armed_F") is a plane but you can use it for faster drop! add what you want in the crate init, for example, I like to signal the crate with smoke/flare and add virtual arsenal on it: [_this,{ _this addAction ["<t color='#ffff11'>Arsenal</t>", {["Open",true] spawn BIS_fnc_arsenal},nil,10,false,true,"", ""]} ] remoteExec ["call"]; _flare = if (sunOrMoon <0.5) then [{"F_20mm_Yellow"},{"smokeShellYellow"}]; _fumi = _flare createvehicle getPosATL _this; _fumi attachTo [_this,[0,0,-2]]; Remark: this code is for standard drop of a crate, but will be overridden with vehicle code. add a simple calling code in the Vehicle init of the module (here vehicle is the helicopter, not the parcel!): _this spawn MGI_fnc_dropVeh with the following remark: I use to compile sqf in init.sqf: MGI_fnc_dropVeh = compileFinal preprocessFileLineNumbers "MGI_fnc_dropVeh.sqf"; (You can also directly execVM it, writing _this execVM "MGI_fnc_dropVeh.sqf" in vehicle init of the module). Now, the sqf code: MGI_fnc_dropVeh.sqf:Last version 03rd/08/18 _veh = _this; if !(_veh isKindOf "uns_ach47_m200") exitWith {}; comment "choose the helicopter class you want for car drop, the other ones will drop simple crates."; _home = getpos _this; _grpVeh = group _veh; sleep 3; _currentwpt = [_grpVeh, currentWaypoint _grpVeh]; _currentwptPos = waypointPosition _currentwpt; _currentwptdesc = waypointDescription _currentwpt; deleteWaypoint _currentwpt; _wpt = _grpVeh addWaypoint [_currentwptPos,0]; _wpt setWaypointDescription _currentwptdesc; _wpt setWaypointStatements ["TRUE", " if (isServer) then { [this, this getVariable 'BIS_SUPP_supportRunCoords', 'B_Parachute_02_F', 'B_MRAP_01_hmg_f', this getVariable 'BIS_SUPP_selectedModule'] spawn { _pilot = _this select 0; _wpPos = _this select 1; _chuteType = _this select 2; _crateType = _this select 3; _crateCode = compile ""[_this,{_this addAction ['Arsenal',{['Open',true] spawn BIS_fnc_arsenal},nil,10,false,true,'', '']}] remoteExec ['call']; _flare = if (sunOrMoon <0.5) then [{'F_20mm_Yellow'},{'smokeShellYellow'}]; _fumi = _flare createvehicle getPosATL _this; _fumi attachTo [_this,[0,0,-2]]""; comment 'optional remove the _crateCode line if you dont want an arsenal'; _oldDist = _pilot distance _wpPos; while {_oldDist >= _pilot distance _wpPos} do { _oldDist = _pilot distance _wpPos; sleep 0.1 }; _pilot setVariable ['BIS_SUPP_supporting', FALSE]; _chute = createVehicle [_chuteType, [100, 100, 200], [], 0, 'FLY']; _chute setPos [position _pilot select 0, position _pilot select 1, (position _pilot select 2) - 50]; _crate = createVehicle [_crateType, position _chute, [], 0, 'NONE']; vehicle _pilot setVariable ['MGI_crate',_crate,true]; _crate call _crateCode; comment 'to be removed also, if the _crateCode line is removed above.'; _crate attachTo [_chute, [0, 0, 0]]; waitUntil {position _crate select 2 < 3 || isNull _chute}; detach _crate; _chute setVelocity [0,5,0]; vehicle _pilot setVariable ['MGI_crate',nil,true]; }; }; "]; _grpVeh setCurrentWaypoint _wpt; _wp2 = _grpVeh addWaypoint [_home, 0]; _wp2 setWaypointType "Move"; _wp2 setWaypointBehaviour "SAFE"; _wp2 setWaypointStatements ["TRUE", "vehicle this land 'LAND'"]; _veh land "none"; waitUntil {!isnil {_veh getVariable "MGI_crate"}}; sleep 60; {deleteVehicle _x} forEach crew _veh; deleteVehicle _veh; Hope you'll have fun with that. An adapted version is now included in the MGI advanced Modules addon. 8 Share this post Link to post Share on other sites
Vanished00One 1 Posted May 19, 2017 (edited) Have this working in my mission. Only problem is, after dropping the vehicle (which btw is awesome, thanks for the script) The Heli just stays there. Using the virtual module so I expected it to return to the module location and disappear but it just hangs around. When using the "B_T_VTOL_01_armed_F" it circles the waypoint of the supply drop without returning to the modules position. Edited May 19, 2017 by Vanished00One More information Share this post Link to post Share on other sites
pierremgi 4851 Posted May 19, 2017 Due to scenario scripts and scheduler. That works fine in Vanilla and simple scenario, that can fail if heavier. Added some lines for deleting the virtual chopper in case of staying around. 1 Share this post Link to post Share on other sites
Vanished00One 1 Posted May 19, 2017 6 hours ago, pierremgi said: Due to scenario scripts and scheduler. That works fine in Vanilla and simple scenario, that can fail if heavier. Added some lines for deleting the virtual chopper in case of staying around. I have a simple test mission set up so I can test MP and SP situation. Unfortunately it seems the new script is not dropping anything. Neither the supply ammo drop or vehicle drop deploy anything. Both vehicles are also landing at the last waypoint and not being deleted. Suppy drop Virtual module set up Player set up. Im using the BIS_fnc_addSupportLink for multiplayer/server This is my basic set up just for testing purposes This is my basic set up just for testing purposes no mods enabled It does seem to work on and off. Odd behavior at times then works perfectly. I don't think there is anything wrong with the script just Arma being Arma. Share this post Link to post Share on other sites
pierremgi 4851 Posted May 20, 2017 21 hours ago, Vanished00One said: It does seem to work on and off. Odd behavior at times then works perfectly. I don't think there is anything wrong with the script just Arma being Arma. No, Arma is OK. It's my bad trying to alter a working module "on the fly". I changed some lines. I Hope it's OK now. Share this post Link to post Share on other sites
Vanished00One 1 Posted May 20, 2017 3 hours ago, pierremgi said: No, Arma is OK. It's my bad trying to alter a working module "on the fly". I changed some lines. I Hope it's OK now. Its working, VR supply vehicles are deleting themselves. There are two issues I've found. _crateCode = compile ""[_this,{_this addAction ['Arsenal',{['Open',true] spawn BIS_fnc_arsenal},nil,10,false,true,'', '']}] remoteExec ['call']; _flare = if (sunOrMoon <0.5) then [{'F_20mm_Yellow'},{'smokeShellYellow'}]; _fumi = _flare createvehicle getPosATL _this; _fumi attachTo [_this,[0,0,-2]]""; // optional remove the _crateCode line if you don't want an arsenal Removing this optional line for arsenal also requires removal of _crate call _crateCode; Or you receive an error message Last issue is both crate and vehicle drops are deploying a vehicle. I have found a work around for this by simply adding another virtual supply drop set only with defaults of the module and it works. Share this post Link to post Share on other sites
pierremgi 4851 Posted June 10, 2017 Yep, two lines to be removed if the crate code for arsenal is not wanted. You can keep the smokes and flares. The script exits if the helicopter/plane is not of the right type. If you want to drop a normal crate, just let the code exit if the type of helo doesn't meet the type(s) you declared in 2nd line (and the vehicles line in module of course). Thanks 1 Share this post Link to post Share on other sites
Jnr4817 215 Posted July 20, 2017 For some reason I an get everything to work except the dropping of the car. I am using a Blackfish and its suppose to drop a tracked vehicle. When I choose the other 2 helos I have in the support module they drop a crate. The blackfish doesn't drop anything. _veh = _this; if !(_veh isKindOf "B_T_VTOL_01_armed_F") exitWith {}; // optional, choose the helicopter class you want for car drop, the other ones will drop crates. _home = getpos _this; _grpVeh = group _veh; sleep 3; _currentwpt = [_grpVeh, currentWaypoint _grpVeh]; _currentwptPos = waypointPosition _currentwpt; _currentwptdesc = waypointDescription _currentwpt; deleteWaypoint _currentwpt; _wpt = _grpVeh addWaypoint [_currentwptPos,0]; _wpt setWaypointDescription _currentwptdesc; _wpt setWaypointStatements ["TRUE", " if (isServer) then { [this, this getVariable 'BIS_SUPP_supportRunCoords', 'B_Parachute_02_F', 'B_APC_Tracked_01_rcws_F', this getVariable 'BIS_SUPP_selectedModule'] spawn { _pilot = _this select 0; _wpPos = _this select 1; _chuteType = _this select 2; _crateType = _this select 3; _crateCode = compile ""[_this,{_this addAction ['Arsenal',{['Open',true] spawn BIS_fnc_arsenal},nil,10,false,true,'', '']}] remoteExec ['call']; _flare = if (sunOrMoon <0.5) then [{'F_20mm_Yellow'},{'smokeShellYellow'}]; _fumi = _flare createvehicle getPosATL _this; _fumi attachTo [_this,[0,0,-2]]""; // optional remove the _crateCode line if you don't want an arsenal _oldDist = _pilot distance _wpPos; while {_oldDist >= _pilot distance _wpPos} do { _oldDist = _pilot distance _wpPos; sleep 0.1 }; _pilot setVariable ['BIS_SUPP_supporting', FALSE]; _chute = createVehicle [_chuteType, [100, 100, 200], [], 0, 'FLY']; _chute setPos [position _pilot select 0, position _pilot select 1, (position _pilot select 2) - 50]; _crate = createVehicle [_crateType, position _chute, [], 0, 'NONE']; _crate call _crateCode; // to be removed if the _crateCode line is removed above. _crate attachTo [_chute, [0, 0, 0]]; waitUntil {position _crate select 2 < 3 || isNull _chute}; detach _crate; MGI_crate = true; _chute setVelocity [0,5,0]; MGI_crate = nil; }; }; "]; _grpVeh setCurrentWaypoint _wpt; _wp2 = _grpVeh addWaypoint [_home, 0]; _wp2 setWaypointType "Move"; _wp2 setWaypointBehaviour "SAFE"; _wp2 setWaypointStatements ["TRUE", "vehicle this land 'LAND'"]; _veh land "none"; waitUntil {!isnil "MGI_crate"}; sleep 60; {deleteVehicle _x} forEach crew _veh; deleteVehicle _veh; Thanks for helping in advance, Reed Share this post Link to post Share on other sites
pierremgi 4851 Posted July 20, 2017 Working fine for me. You must have a 3 sec flight, at least, to obtain the vehicle instead of the standard crate. If you Blackfish doesn't drop anything, check where you are running the code. You have probably one comment line remaining where they are not accepted (function placed in a trigger or else). You can place a: hint "ok" , step by step, in different lines to find where your code halts. Share this post Link to post Share on other sites
Jnr4817 215 Posted July 20, 2017 Got it figured. Thanks for quick response. If I wanted to have the Blackfish drop 2 prowlers, how would I do this? Also sunOrMoon only returns a 1 or 0 after 1.70. Can we get rid of that parameter and just have a chemlight yellow, yellow flare, and yellow smoke attached to supply crate when it spawns? Thanks again, Reed Share this post Link to post Share on other sites
pierremgi 4851 Posted July 20, 2017 Replace the code by: Spoiler _veh = _this; if !(_veh isKindOf "B_T_VTOL_01_armed_F") exitWith {}; _home = getpos _this; _grpVeh = group _veh; sleep 3; _currentwpt = [_grpVeh, currentWaypoint _grpVeh]; _currentwptPos = waypointPosition _currentwpt; _currentwptdesc = waypointDescription _currentwpt; deleteWaypoint _currentwpt; _wpt = _grpVeh addWaypoint [_currentwptPos,0]; _wpt setWaypointDescription _currentwptdesc; _wpt setWaypointStatements ["TRUE", " if (isServer) then { [this, this getVariable 'BIS_SUPP_supportRunCoords', 'B_Parachute_02_F', 'B_T_LSV_01_armed_F', this getVariable 'BIS_SUPP_selectedModule'] spawn { _pilot = _this select 0; _wpPos = _this select 1; _chuteType = _this select 2; _crateType = _this select 3; _crateCode = compile ""[_this,{_this addAction ['Arsenal',{['Open',true] spawn BIS_fnc_arsenal},nil,10,false,true,'', '']}] remoteExec ['call']; _flare = 'F_20mm_Yellow' createvehicle getPosATL _this; _flare attachTo [_this,[0,0,-2]]; _fumi = 'smokeShellYellow' createvehicle getPosATL _this; _fumi attachTo [_this,[0,0,-2]]""; _oldDist = _pilot distance _wpPos; while {_oldDist >= _pilot distance _wpPos} do { _oldDist = _pilot distance _wpPos; sleep 0.1 }; _pilot setVariable ['BIS_SUPP_supporting', FALSE]; private '_chute'; for '_i' from 0 to 1 do { _chute = createVehicle [_chuteType, [100, 100, 200], [], 0, 'FLY']; _chute setPos [position _pilot select 0, position _pilot select 1, (position _pilot select 2) - 50]; _crate = createVehicle [_crateType, position _chute, [], 0, 'NONE']; _crate call _crateCode; _crate attachTo [_chute, [0, 0, 0]]; [_chute,_crate] spawn { params ['_chute','_crate']; waitUntil {position _crate select 2 < 3 || isNull _chute}; detach _crate; _chute setVelocity [0,5,0]; }; sleep 1; }; MGI_crate = true; }; }; "]; _grpVeh setCurrentWaypoint _wpt; _wp2 = _grpVeh addWaypoint [_home, 0]; _wp2 setWaypointType "Move"; _wp2 setWaypointBehaviour "SAFE"; _wp2 setWaypointStatements ["TRUE", "vehicle this land 'LAND'"]; _veh land "none"; waitUntil {!isnil "MGI_crate"}; sleep 60; {deleteVehicle _x} forEach crew _veh; deleteVehicle _veh; MGI_crate = nil; Share this post Link to post Share on other sites
Jnr4817 215 Posted July 21, 2017 Do I still need the code in the crate init of the support module if we've added it to the .sqf file being called? Thanks again, Reed Share this post Link to post Share on other sites
pierremgi 4851 Posted July 21, 2017 Yes, for normal crates. I just changed the code for vehicle. SunOrMoon still works fine but if you want something simpler and always true, just copy / paste the 4 lines about _flare and _fumi and change that also in the crate code. Share this post Link to post Share on other sites
Jnr4817 215 Posted July 21, 2017 Makes since and thank you for helping. Added this script to my teams template. Share this post Link to post Share on other sites
Jnr4817 215 Posted July 21, 2017 18:38:24 Error in expression < _flare = 'F_20mm_Yellow' createvehicle getPosATL _this; _flare attachTo [> 18:38:24 Error position: <getPosATL _this; _flare attachTo [> 18:38:24 Error getposatl: Type Array, expected Object I'm getting this error Share this post Link to post Share on other sites
pierremgi 4851 Posted July 22, 2017 I can't reproduce your error. If you use my last code for vehicle or: [_this,{ _this addAction ["<t color='#ffff11'>Arsenal</t>", {["Open",true] spawn BIS_fnc_arsenal},nil,10,false,true,"", ""]} ] remoteExec ["call"]; _flare = 'F_20mm_Yellow' createvehicle getPosATL _this; _flare attachTo [_this,[0,0,-2]]; _fumi = 'smokeShellYellow' createvehicle getPosATL _this; _fumi attachTo [_this,[0,0,-2]]; in crate init for standard crate, you will get the flare + smoke, (+ arsenal), any time, without error. Did you script something else with a spawn code and some crate's position for _this instead of the crate itself? 1 Share this post Link to post Share on other sites
Jnr4817 215 Posted July 22, 2017 Got it sorted. The double drop works. What would be the best way for me to have the ability to choose the single APC or the Double LSV drop. Could I just add an additional supply drop module with the APC drop code and change the kind of Blackfish so it uses a different class name? This script really is awesome, used it last night in our online COOP mission. Thanks, Again Reed Share this post Link to post Share on other sites
Jnr4817 215 Posted July 26, 2017 Thanks for your help. Share this post Link to post Share on other sites
pierremgi 4851 Posted July 26, 2017 Didn't see your last posts. Do you want to choose between one or two vehicles drop? As far as i'm using the BI module menu, the way I can suggest is to manage two different air assets for vehicle drop, say one armed for single drop, unarmed version for dual drop. (All others can be classical for crates). There is no problem to change for any existing classes (within your addons possibilities) but you need for manually add it in the module and correct the script to exit or not before running the replacement code. Then, for mono/dual drop, you need an extra condition, not very difficult. Share this post Link to post Share on other sites
Jnr4817 215 Posted July 27, 2017 Yes, I would like to be able to call either a single drop or a double drop dependent on the situation. Having both available would be best. I think your right. Use a different asset to determine which gets dropped. Say the BlackFish for the APC and the Huron for the double prowlers. I just didn't know if you could have 2 supply drop modules at same time. I assume your code for the double drop or single drop will work fine is either module. I also like how you added the flare and smoke as default true for the double drop, how can I adjust the single drop to reflect this? Thanks again for any help and awesome script. Reed Share this post Link to post Share on other sites
pierremgi 4851 Posted July 27, 2017 Just need one module. Don't forget to add ["B_T_VTOL_01_vehicle_F","B_Heli_Transport_03_unarmed_F"] at least in vehicle types of the module. You can add all extra helo (example "B_Heli_Light_01_F") you want for standard crate. Add also some init crate in the module if needed (as explained above). It's better like this. Spoiler _veh = _this; if !(typeOf _veh in ["B_T_VTOL_01_vehicle_F","B_Heli_Transport_03_unarmed_F"]) exitWith {}; _home = getpos _this; _grpVeh = group _veh; sleep 3; _currentwpt = [_grpVeh, currentWaypoint _grpVeh]; _currentwptPos = waypointPosition _currentwpt; _currentwptdesc = waypointDescription _currentwpt; deleteWaypoint _currentwpt; _wpt = _grpVeh addWaypoint [_currentwptPos,0]; _wpt setWaypointDescription _currentwptdesc; _wpt setWaypointStatements ["TRUE", " if (isServer) then { [this, this getVariable 'BIS_SUPP_supportRunCoords', 'B_Parachute_02_F', ['B_APC_Tracked_01_rcws_F','B_T_LSV_01_armed_F'], this getVariable 'BIS_SUPP_selectedModule'] spawn { _pilot = _this select 0; _wpPos = _this select 1; _chuteType = _this select 2; _crates = _this select 3; _crateType = _crates select (vehicle _pilot isKindOf 'B_Heli_Transport_03_unarmed_F'); _crateCode = compile ""[_this,{_this addAction ['Arsenal',{['Open',true] spawn BIS_fnc_arsenal},nil,10,false,true,'', '']}] remoteExec ['call']; _flare = 'F_20mm_Yellow' createvehicle getPosATL _this; _flare attachTo [_this,[0,0,-2]]; _fumi = 'smokeShellYellow' createvehicle getPosATL _this; _fumi attachTo [_this,[0,0,-2]]""; _oldDist = _pilot distance _wpPos; while {_oldDist >= _pilot distance _wpPos} do { _oldDist = _pilot distance _wpPos; sleep 0.1 }; _pilot setVariable ['BIS_SUPP_supporting', FALSE]; private ['_chute1','_chute2','_chute3']; call { if (vehicle _pilot isKindOf 'B_T_VTOL_01_vehicle_F') exitWith { _chute1 = createVehicle [_chuteType, [0, 0, 200], [], 0, 'FLY']; _chute2 = createVehicle [_chuteType, [0, 0, 200], [], 0, 'FLY']; _chute3 = createVehicle [_chuteType, [0, 0, 200], [], 0, 'FLY']; _posRef = [position _pilot select 0, position _pilot select 1, (position _pilot select 2) - 50]; _chute1 setpos (_posRef vectorAdd [0.58,0,0]); _chute2 setpos (_posRef vectorAdd [-0.5,0.3,0]); _chute3 setpos (_posRef vectorAdd [-0.5,-0.3,0]); _crate = createVehicle [_crateType, position _chute1, [], 0, 'NONE']; _crate call _crateCode; _crate attachTo [_chute1,[0,1.5,-4]]; _chute2 attachTo [_chute1,[0,0,0]]; _chute3 attachTo [_chute1,[0,0,0]]; _chute1 setVectorUp [0.6,0,0.6]; _chute2 setVectorUp [-0.5,0.4,0.6]; _chute3 setVectorUp [-0.5,-0.4,0.6]; waitUntil {position _crate select 2 < 3 || isNull _chute1}; detach _crate; deleteVehicle _chute1; detach _chute3; detach _chute2; MGI_crate = true; _chute1 setVelocity [0,5,0]; }; for '_i' from 0 to 1 do { _chute1 = createVehicle [_chuteType, [100, 100, 200], [], 0, 'FLY']; _chute1 setPos [position _pilot select 0, position _pilot select 1, (position _pilot select 2) - 50]; _crate = createVehicle [_crateType, position _chute1, [], 0, 'NONE']; _crate call _crateCode; _crate attachTo [_chute1, [0, 0, 0]]; [_chute1,_crate] spawn { params ['_chute1','_crate']; waitUntil {position _crate select 2 < 3 || isNull _chute1}; detach _crate; _chute1 setVelocity [0,5,0]; }; sleep 1; }; }; MGI_crate = true; }; }; "]; _grpVeh setCurrentWaypoint _wpt; _wp2 = _grpVeh addWaypoint [_home, 0]; _wp2 setWaypointType "Move"; _wp2 setWaypointBehaviour "SAFE"; _wp2 setWaypointStatements ["TRUE", "vehicle this land 'LAND'"]; _veh land "none"; waitUntil {!isnil "MGI_crate"}; sleep 60; {deleteVehicle _x} forEach crew _veh; deleteVehicle _veh; MGI_crate = nil; Share this post Link to post Share on other sites
Jnr4817 215 Posted July 27, 2017 THis is awesome work. Thank you again for accommodating my request. Sincerely, Reed Share this post Link to post Share on other sites
slammandan 4 Posted July 31, 2018 On 7/26/2017 at 11:06 PM, pierremgi said: Just need one module. Don't forget to add ["B_T_VTOL_01_vehicle_F","B_Heli_Transport_03_unarmed_F"] at least in vehicle types of the module. You can add all extra helo (example "B_Heli_Light_01_F") you want for standard crate. Add also some init crate in the module if needed (as explained above). It's better like this. Hide contents _veh = _this; if !(typeOf _veh in ["B_T_VTOL_01_vehicle_F","B_Heli_Transport_03_unarmed_F"]) exitWith {}; _home = getpos _this; _grpVeh = group _veh; sleep 3; _currentwpt = [_grpVeh, currentWaypoint _grpVeh]; _currentwptPos = waypointPosition _currentwpt; _currentwptdesc = waypointDescription _currentwpt; deleteWaypoint _currentwpt; _wpt = _grpVeh addWaypoint [_currentwptPos,0]; _wpt setWaypointDescription _currentwptdesc; _wpt setWaypointStatements ["TRUE", " if (isServer) then { [this, this getVariable 'BIS_SUPP_supportRunCoords', 'B_Parachute_02_F', ['B_APC_Tracked_01_rcws_F','B_T_LSV_01_armed_F'], this getVariable 'BIS_SUPP_selectedModule'] spawn { _pilot = _this select 0; _wpPos = _this select 1; _chuteType = _this select 2; _crates = _this select 3; _crateType = _crates select (vehicle _pilot isKindOf 'B_Heli_Transport_03_unarmed_F'); _crateCode = compile ""[_this,{_this addAction ['Arsenal',{['Open',true] spawn BIS_fnc_arsenal},nil,10,false,true,'', '']}] remoteExec ['call']; _flare = 'F_20mm_Yellow' createvehicle getPosATL _this; _flare attachTo [_this,[0,0,-2]]; _fumi = 'smokeShellYellow' createvehicle getPosATL _this; _fumi attachTo [_this,[0,0,-2]]""; _oldDist = _pilot distance _wpPos; while {_oldDist >= _pilot distance _wpPos} do { _oldDist = _pilot distance _wpPos; sleep 0.1 }; _pilot setVariable ['BIS_SUPP_supporting', FALSE]; private ['_chute1','_chute2','_chute3']; call { if (vehicle _pilot isKindOf 'B_T_VTOL_01_vehicle_F') exitWith { _chute1 = createVehicle [_chuteType, [0, 0, 200], [], 0, 'FLY']; _chute2 = createVehicle [_chuteType, [0, 0, 200], [], 0, 'FLY']; _chute3 = createVehicle [_chuteType, [0, 0, 200], [], 0, 'FLY']; _posRef = [position _pilot select 0, position _pilot select 1, (position _pilot select 2) - 50]; _chute1 setpos (_posRef vectorAdd [0.58,0,0]); _chute2 setpos (_posRef vectorAdd [-0.5,0.3,0]); _chute3 setpos (_posRef vectorAdd [-0.5,-0.3,0]); _crate = createVehicle [_crateType, position _chute1, [], 0, 'NONE']; _crate call _crateCode; _crate attachTo [_chute1,[0,1.5,-4]]; _chute2 attachTo [_chute1,[0,0,0]]; _chute3 attachTo [_chute1,[0,0,0]]; _chute1 setVectorUp [0.6,0,0.6]; _chute2 setVectorUp [-0.5,0.4,0.6]; _chute3 setVectorUp [-0.5,-0.4,0.6]; waitUntil {position _crate select 2 < 3 || isNull _chute1}; detach _crate; deleteVehicle _chute1; detach _chute3; detach _chute2; MGI_crate = true; _chute1 setVelocity [0,5,0]; }; for '_i' from 0 to 1 do { _chute1 = createVehicle [_chuteType, [100, 100, 200], [], 0, 'FLY']; _chute1 setPos [position _pilot select 0, position _pilot select 1, (position _pilot select 2) - 50]; _crate = createVehicle [_crateType, position _chute1, [], 0, 'NONE']; _crate call _crateCode; _crate attachTo [_chute1, [0, 0, 0]]; [_chute1,_crate] spawn { params ['_chute1','_crate']; waitUntil {position _crate select 2 < 3 || isNull _chute1}; detach _crate; _chute1 setVelocity [0,5,0]; }; sleep 1; }; }; MGI_crate = true; }; }; "]; _grpVeh setCurrentWaypoint _wpt; _wp2 = _grpVeh addWaypoint [_home, 0]; _wp2 setWaypointType "Move"; _wp2 setWaypointBehaviour "SAFE"; _wp2 setWaypointStatements ["TRUE", "vehicle this land 'LAND'"]; _veh land "none"; waitUntil {!isnil "MGI_crate"}; sleep 60; {deleteVehicle _x} forEach crew _veh; deleteVehicle _veh; MGI_crate = nil; Sorry to bring up an old thread. I really like this script, but im having trouble in MP if any joined players call supply drops the vehicles that are dropping the supplies still do not get deleted. It works fine when host calls supply drop. Thanks For Any Help Dan Share this post Link to post Share on other sites
pierremgi 4851 Posted August 1, 2018 Probably a variable localization on server instead of clients. I can't test right now. Try to publicVariable the MGI_crate variable: Write: MGI_crate = true; publicVariable "MGI_crate"; for the 2 occurrences. Share this post Link to post Share on other sites
slammandan 4 Posted August 1, 2018 9 hours ago, pierremgi said: Probably a variable localization on server instead of clients. I can't test right now. Try to publicVariable the MGI_crate variable: Write: MGI_crate = true; publicVariable "MGI_crate"; for the 2 occurrences. Ok, I will try this when I get home. Thank You Sir Dan Share this post Link to post Share on other sites