Function which allow to grab all dropped gear into nearest vehicle.
fnc_collector = {
private [
"_veh", "_holders", "_nearDead", "_droppedguns", "_droppedbags", "_eqweapons",
"_eqvests", "_eqbackpacks", "_eqitems", "_eqhelmets", "_mags", "_unnest",
"_remEmpty", "_weapons", "_vests", "_backpacks", "_items", "_guns", "_helmets",
"_stealedBags", "_torem"
];
_veh = nearestObject [player, "LandVehicle"];
if (
isNull _veh ||
{(_veh distance player) > 50 ||
{!(getNumber (configFile >> "CfgVehicles" >> typeOf _veh >> "hasDriver") isEqualTo 1)}
}
) exitWith {hint "You need any land vehicle near to collect gear"};
_holders = [];
_nearDead = [];
_droppedguns = [];
_droppedbags = [];
_eqweapons = [];
_eqvests = [];
_eqbackpacks = [];
_eqitems = [];
_eqhelmets = [];
_mags = [];
_unnest = {
private ["_unnested", "_ignored"];
_ignored = ["ItemMap", "ItemCompass", "ItemWatch"];
_unnested = [];
{
{
_unnested pushBack _x;
} forEach _x;
} forEach _this;
_unnested = _unnested - _ignored;
_unnested
};
_remEmpty = {
private ["_unnested", "_ignored"];
_ignored = [""];
_unnested = _this - _ignored;
_unnested
};
{_holders pushBack _x} forEach (nearestObjects [player, ["WeaponHolder", "WeaponHolderSimulated", "GroundWeaponHolder"], 800]);
{if ((_x distance player) <= 800) then {_nearDead pushBack _x}} forEach allDeadMen;
if (_holders isEqualTo [] && _nearDead isEqualTo []) exitWith {hint "There is nothing to collect"};
{
_droppedguns pushBack ((getWeaponCargo _x) select 0);
if ((count (getBackpackCargo _x select 0)) == 1) then {
_droppedbags pushBack ((getBackpackCargo _x) select 0);
};
} forEach _holders;
{
_eqweapons pushBack ((weapons _x) select 0);
_eqvests pushBack (vest _x);
_eqbackpacks pushBack (backpack _x);
_eqitems pushBack (assignedItems _x);
_eqhelmets pushBack (headgear _x);
} forEach _nearDead;
_weapons = _eqweapons call _remEmpty;
_vests = _eqvests call _remEmpty;
_backpacks = _eqbackpacks call _remEmpty;
_items = _eqitems call _unnest;
_guns = _droppedguns call _unnest;
_helmets = _eqhelmets call _remEmpty;
_stealedBags = _droppedbags call _unnest;
{{_mags pushBack _x} forEach getArray (configFile >> "CfgWeapons" >> _x >> "magazines")} forEach _guns;
{_veh addItemCargoGlobal [_x,1]} forEach (_items + _helmets + _vests);
{_veh addWeaponCargoGlobal [_x,1]} forEach (_weapons + _guns);
{_veh addBackpackCargoGlobal [_x,1]} forEach (_backpacks + _stealedBags);
{_veh addMagazineCargoGlobal [_x,3]} forEach _mags;
_torem = _nearDead + _holders;
{deleteVehicle _x} forEach _torem;
hint format ["Dropped gear collected into nearest vehicle: %1", typeOf _veh];
};
Function which allow to grab all dropped gear into nearest vehicle.
fnc_collector = {
private [
"_veh", "_holders", "_nearDead", "_droppedguns", "_droppedbags", "_eqweapons",
"_eqvests", "_eqbackpacks", "_eqitems", "_eqhelmets", "_mags", "_unnest",
"_remEmpty", "_weapons", "_vests", "_backpacks", "_items", "_guns", "_helmets",
"_stealedBags", "_torem"
];
_veh = nearestObject [player, "LandVehicle"];
if (
isNull _veh ||
{(_veh distance player) > 50 ||
{!(getNumber (configFile >> "CfgVehicles" >> typeOf _veh >> "hasDriver") isEqualTo 1)}
}
) exitWith {hint "You need any land vehicle near to collect gear"};
_holders = [];
_nearDead = [];
_droppedguns = [];
_droppedbags = [];
_eqweapons = [];
_eqvests = [];
_eqbackpacks = [];
_eqitems = [];
_eqhelmets = [];
_mags = [];
_unnest = {
private ["_unnested", "_ignored"];
_ignored = ["ItemMap", "ItemCompass", "ItemWatch"];
_unnested = [];
{
{
_unnested pushBack _x;
} forEach _x;
} forEach _this;
_unnested = _unnested - _ignored;
_unnested
};
_remEmpty = {
private ["_unnested", "_ignored"];
_ignored = [""];
_unnested = _this - _ignored;
_unnested
};
{_holders pushBack _x} forEach (nearestObjects [player, ["WeaponHolder", "WeaponHolderSimulated", "GroundWeaponHolder"], 800]);
{if ((_x distance player) <= 800) then {_nearDead pushBack _x}} forEach allDeadMen;
if (_holders isEqualTo [] && _nearDead isEqualTo []) exitWith {hint "There is nothing to collect"};
{
_droppedguns pushBack ((getWeaponCargo _x) select 0);
if ((count (getBackpackCargo _x select 0)) == 1) then {
_droppedbags pushBack ((getBackpackCargo _x) select 0);
};
} forEach _holders;
{
_eqweapons pushBack ((weapons _x) select 0);
_eqvests pushBack (vest _x);
_eqbackpacks pushBack (backpack _x);
_eqitems pushBack (assignedItems _x);
_eqhelmets pushBack (headgear _x);
} forEach _nearDead;
_weapons = _eqweapons call _remEmpty;
_vests = _eqvests call _remEmpty;
_backpacks = _eqbackpacks call _remEmpty;
_items = _eqitems call _unnest;
_guns = _droppedguns call _unnest;
_helmets = _eqhelmets call _remEmpty;
_stealedBags = _droppedbags call _unnest;
{{_mags pushBack _x} forEach getArray (configFile >> "CfgWeapons" >> _x >> "magazines")} forEach _guns;
{_veh addItemCargoGlobal [_x,1]} forEach (_items + _helmets + _vests);
{_veh addWeaponCargoGlobal [_x,1]} forEach (_weapons + _guns);
{_veh addBackpackCargoGlobal [_x,1]} forEach (_backpacks + _stealedBags);
{_veh addMagazineCargoGlobal [_x,3]} forEach _mags;
_torem = _nearDead + _holders;
{deleteVehicle _x} forEach _torem;
hint format ["Dropped gear collected into nearest vehicle: %1", typeOf _veh];
};