ok first:
-In init field of ammo box: this addAction ["Drag", "crate_ac.sqf", [0]]
===========================
crate_ac.sqf
_case = ((_this select 3) select 0);
switch (_case) do
{
case 0:
{
crate_dropped = false;
_crate = _this select 0;
_crate removeAction (_this select 2);
_user = _this select 1;
_user addAction ["Drop Crate", "crate_ac.sqf", [1]];
while {!crate_dropped} do
{
_pos = _user modelToWorld [0,4,0];
_crate setPos (_pos);
_crate setDir (getDir _user);
Sleep 0.5;
};
_crate setPos [(getPos _crate select 0), (getPos _crate select 1), (getPos _crate select 2)];
_crate addAction ["Drag", "crate_ac.sqf", [0]];
};
case 1:
{
_user = _this select 1;
_user removeAction (_this select 2);
crate_dropped = true;
};
};
===========================
This is untested, but should work.
ALSO
This will work just fine in MP, though there is more I could do if you want to make it work for Join in Progress players and players currently in the map as far as the actions 'state' would be at.