Code:
Gear_Save_ACE =
{
private ["_MagazinesList","_WeaponsList"];
INS_WeaponsOnDeath = []; INS_MagazinesOnDeath = []; INS_WOBOnDeath = []; INS_RuckMagazinesOnDeath = []; INS_RuckWeaponsOnDeath = [];
INS_WeaponsOnDeath = weapons player;
INS_MagazinesOnDeath = magazines player;
INS_WOBOnDeath = player getVariable "ACE_weapononback";
INS_RuckMagazinesOnDeath = player getVariable "ACE_RuckMagContents";
INS_RuckWeaponsOnDeath = player getVariable "ACE_RuckWepContents";
_MagazinesList = [player] call ACE_fnc_RuckMagazinesList;
_WeaponsList = [player] call ACE_fnc_RuckWeaponsList;
};
Gear_Return_ACE =
{
private ["_muzzles","_primw","_hasRuck","_ruckName"];
_hasRuck = false;
if (player call ACE_Sys_Ruck_fnc_hasRuck) then {_hasRuck = true; _ruckName = [player] call ACE_fnc_FindRuck;};
removeAllWeapons player;
removeAllItems player;
[player, "ALL"] call ACE_fnc_RemoveGear;
{ player addMagazine _x } forEach INS_MagazinesOnDeath;
{if (getNumber (configFile >> "CfgWeapons" >> _x >> "ace_isusedweapon") == 0) then {player addWeapon _x;};} forEach INS_WeaponsOnDeath;
if (_hasRuck) then
{
{[player, _x select 0, _x select 1] call ACE_fnc_PackMagazine;} forEach INS_RuckMagazinesOnDeath;
{[player, _x select 0, _x select 1] call ACE_fnc_PackWeapon} forEach INS_RuckWeaponsOnDeath;
};
if (INS_WOBOnDeath != "") then { player setVariable ["ACE_WeaponOnBack", INS_WOBOnDeath]; };
if !(player hasWeapon "ACE_Earplugs") then {player addWeapon "ACE_Earplugs";};
_primw = primaryWeapon player;
if (_primw != "") then {
player selectWeapon _primw;
_muzzles = getArray(configFile>>"cfgWeapons" >> _primw >> "muzzles");
player selectWeapon (_muzzles select 0);
};
};