Jump to content

Recommended Posts

I am currently trying to make it so that when a hold action is preformed on a crate, it will put the crate in the back of a non specific Zamak Truck.
Currently, it will put the crate in the nearest Zamak Truck (destroyed or alive). I need it to only pick the closest alive Zamak Truck.

 

I've tried loads of different methods, but I'm now quite stuck. Please help!

This is my script so far, all working fine.

[
	this,
	"Load.",
	"\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_loaddevice_ca.paa",
	"\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_loaddevice_ca.paa",
	"_this distance _target < 3",
	"_caller distance _target < 3",
	{},
	{},
	{ _this call 
		{
		_ZamakTrans = nearestObjects [ _this select 0, [ "Truck_02_transport_base_F" ], 25 ];
		
		if  ( count _ZamakTrans > 0 ) then
			{
			target = ( _ZamakTrans select 0 );
			_lockIndexes = [ 2, 3, 4, 5, 6, 7 ];
			{ if ( ( _x select 2 ) in _lockIndexes ) then { moveOut ( _x select 0 ) }; } forEach fullCrew target;
			{ target lockCargo [ _x, true ]; } forEach _lockIndexes;
			box attachTo [ target, [ 0, 0.25, -0.15 ] ];
			box setVectorDirAndUp [ [ 1, 0, 0], [0, 0, 1 ] ];
			};
		}
	},
	{},
	[],
	2,
	Nil,
	true,
	false
] remoteExec [ "BIS_fnc_holdActionAdd", 0, this ];

What I need is to pick the closest alive Zamak Truck, not just the closest one.

 

(any advice/criticism on my script will be greatly appreciated.)

Share this post


Link to post
Share on other sites
_liveTrucks = nearestObjects[ _this # 0, ["Truck_02_transport_base_F"], 25 ]select{alive _x};

^ Selects alive trucks

 

_truckDistances=[];

{ _truckDistances pushBack (_x distance _this#0)}forEach _liveTrucks;

_truckDistances sort true;

_closestTruck=_truckDistances # 0;

^ Finds the closet truck & selects it

  • Thanks 1

Share this post


Link to post
Share on other sites

NearestObjects is already ordered nearest first.

 

  • Thanks 1

Share this post


Link to post
Share on other sites
[
	this,
	"Load.",
	"\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_loaddevice_ca.paa",
	"\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_loaddevice_ca.paa",
	"_this distance _target < 3",
	"_caller distance _target < 3",
	{},
	{},
	{ _this call 
		{
		_ZamakTrans = nearestObjects [ _this select 0, [ "Truck_02_transport_base_F" ], 25 ] select { alive _x };
		
		if  ( count _ZamakTrans > 0 ) then
			{
			target = ( _ZamakTrans select 0 );
			_lockIndexes = [ 2, 3, 4, 5, 6, 7 ];
			{ if ( ( _x select 2 ) in _lockIndexes ) then { moveOut ( _x select 0 ) }; } forEach fullCrew target;
			{ target lockCargo [ _x, true ]; } forEach _lockIndexes;
			box attachTo [ target, [ 0, 0.25, -0.15 ] ];
			box setVectorDirAndUp [ [ 1, 0, 0], [0, 0, 1 ] ];
			};
		}
	},
	{},
	[],
	2,
	Nil,
	true,
	false
] remoteExec [ "BIS_fnc_holdActionAdd", 0, this ];

For anyone who is interested in recreating ^^

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

×