Jump to content
Guest

Help Making whitelisted arsenal for Zeus.

Recommended Posts

Guest

Trying to make a limited arsenal for public Zeus by putting together different pieces of code I've found. I want my arsenal to have save, load, and random features disabled. Also, I want the arsenal to have context options of "Save Respawn Loadout" and "Get Saved Loadout". I did the limited arsenal part and I have load/save/random features disabled but I don't know how to save a players loadout. 

Here's the code so far

 

[myBox, ["H_HelmetSpecB","ItemMap","ItemCompass","ItemWatch","ItemGPS","Binocular","16Rnd_9x21_Mag","U_B_CombatUniform_mcam_vest","30Rnd_65x39_caseless_mag","SmokeShellRed","SmokeShellGreen","SmokeShell","HandGrenade","V_PlateCarrierGL_rgr","arifle_MX_Hamr_pointer_F","hgun_P07_F","acc_pointer_IR","optic_Hamr","H_HelmetB_light","B_Kitbag_rgr","U_B_CombatUniform_mcam_tshirt","V_PlateCarrierSpec_rgr","optic_ACO_grn","H_HelmetB","U_B_CTRG_2","100Rnd_65x39_caseless_mag","V_PlateCarrier1_rgr","arifle_MX_SW_F","bipod_01_F_snd","MineDetector","DemoCharge_Remote_Mag","SatchelCharge_Remote_Mag","ClaymoreDirectionalMine_Remote_Mag","ATMine_Range_Mag","optic_Holosight_smg","launch_NLAW_F","G_Combat","ItemRadio","NVGoggles","FirstAidKit","Chemlight_green","U_B_CombatUniform_mcam","arifle_MX_ACO_pointer_F","optic_Aco","H_HelmetB_desert","G_Aviator","30Rnd_65x39_caseless_mag_Tracer","B_IR_Grenade","SmokeShellBlue","SmokeShellOrange","130Rnd_338_Mag","MMG_02_sand_RCO_LP_F","H_HelmetSpecB_blk","1Rnd_HE_Grenade_shell","MiniGrenade","1Rnd_Smoke_Grenade_shell","1Rnd_SmokeBlue_Grenade_shell","1Rnd_SmokeGreen_Grenade_shell","1Rnd_SmokeOrange_Grenade_shell","arifle_MX_GL_ACO_F","H_HelmetB_light_desert","Medikit","B_AssaultPack_rgr_Medic","arifle_MX_pointer_F","ToolKit","B_Kitbag_mcamo_Eng","V_Chestrig_rgr","arifle_MXC_Holo_pointer_F","optic_Holosight","20Rnd_762x51_Mag","srifle_DMR_03_tan_AMS_LP_F","optic_AMS_snd","H_HelmetB_light_sand","B_AssaultPack_rgr_Repair","arifle_MX_Holo_pointer_F","H_HelmetB_grass","arifle_MXM_Hamr_LP_BI_F","G_Bandanna_khk","Rangefinder","11Rnd_45ACP_Mag","B_Patrol_Soldier_Marksman_weapon_F","B_Patrol_Soldier_Pistol_F","muzzle_snds_B","optic_DMS","muzzle_snds_acp","optic_MRD","G_Bandanna_oli","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer","B_Patrol_Soldier_MachineGunner_weapon_F","muzzle_snds_H_snd_F","bipod_01_F_blk","H_HelmetB_snakeskin","100Rnd_65x39_caseless_mag_Tracer","V_PlateCarrier2_rgr","B_Patrol_Soldier_Autorifleman_weapon_F","H_HelmetB_camo","G_Tactical_Black","150Rnd_762x54_Box","Titan_AP","B_Patrol_Supply_bag_F","B_Patrol_Soldier_Carrier_weapon_F","optic_Arco","H_HelmetSpecB_paint2","APERSBoundingMine_Range_Mag","SLAMDirectionalMine_Wire_Mag","B_Kitbag_rgr_Exp","V_PlateCarrierGL_mtp","B_Patrol_Soldier_Specialist_weapon_F","H_HelmetSpecB_sand","SmokeShellYellow","B_Patrol_Medic_bag_F","B_Patrol_Soldier_Medic_weapon_F"], true] call BIS_fnc_addVirtualWeaponCargo;  
[myBox, ["H_HelmetSpecB","ItemMap","ItemCompass","ItemWatch","ItemGPS","Binocular","16Rnd_9x21_Mag","U_B_CombatUniform_mcam_vest","30Rnd_65x39_caseless_mag","SmokeShellRed","SmokeShellGreen","SmokeShell","HandGrenade","V_PlateCarrierGL_rgr","arifle_MX_Hamr_pointer_F","hgun_P07_F","acc_pointer_IR","optic_Hamr","H_HelmetB_light","B_Kitbag_rgr","U_B_CombatUniform_mcam_tshirt","V_PlateCarrierSpec_rgr","optic_ACO_grn","H_HelmetB","U_B_CTRG_2","100Rnd_65x39_caseless_mag","V_PlateCarrier1_rgr","arifle_MX_SW_F","bipod_01_F_snd","MineDetector","DemoCharge_Remote_Mag","SatchelCharge_Remote_Mag","ClaymoreDirectionalMine_Remote_Mag","ATMine_Range_Mag","optic_Holosight_smg","launch_NLAW_F","G_Combat","ItemRadio","NVGoggles","FirstAidKit","Chemlight_green","U_B_CombatUniform_mcam","arifle_MX_ACO_pointer_F","optic_Aco","H_HelmetB_desert","G_Aviator","30Rnd_65x39_caseless_mag_Tracer","B_IR_Grenade","SmokeShellBlue","SmokeShellOrange","130Rnd_338_Mag","MMG_02_sand_RCO_LP_F","H_HelmetSpecB_blk","1Rnd_HE_Grenade_shell","MiniGrenade","1Rnd_Smoke_Grenade_shell","1Rnd_SmokeBlue_Grenade_shell","1Rnd_SmokeGreen_Grenade_shell","1Rnd_SmokeOrange_Grenade_shell","arifle_MX_GL_ACO_F","H_HelmetB_light_desert","Medikit","B_AssaultPack_rgr_Medic","arifle_MX_pointer_F","ToolKit","B_Kitbag_mcamo_Eng","V_Chestrig_rgr","arifle_MXC_Holo_pointer_F","optic_Holosight","20Rnd_762x51_Mag","srifle_DMR_03_tan_AMS_LP_F","optic_AMS_snd","H_HelmetB_light_sand","B_AssaultPack_rgr_Repair","arifle_MX_Holo_pointer_F","H_HelmetB_grass","arifle_MXM_Hamr_LP_BI_F","G_Bandanna_khk","Rangefinder","11Rnd_45ACP_Mag","B_Patrol_Soldier_Marksman_weapon_F","B_Patrol_Soldier_Pistol_F","muzzle_snds_B","optic_DMS","muzzle_snds_acp","optic_MRD","G_Bandanna_oli","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer","B_Patrol_Soldier_MachineGunner_weapon_F","muzzle_snds_H_snd_F","bipod_01_F_blk","H_HelmetB_snakeskin","100Rnd_65x39_caseless_mag_Tracer","V_PlateCarrier2_rgr","B_Patrol_Soldier_Autorifleman_weapon_F","H_HelmetB_camo","G_Tactical_Black","150Rnd_762x54_Box","Titan_AP","B_Patrol_Supply_bag_F","B_Patrol_Soldier_Carrier_weapon_F","optic_Arco","H_HelmetSpecB_paint2","APERSBoundingMine_Range_Mag","SLAMDirectionalMine_Wire_Mag","B_Kitbag_rgr_Exp","V_PlateCarrierGL_mtp","B_Patrol_Soldier_Specialist_weapon_F","H_HelmetSpecB_sand","SmokeShellYellow","B_Patrol_Medic_bag_F","B_Patrol_Soldier_Medic_weapon_F"], true] call BIS_fnc_addVirtualBackpackCargo; 
[myBox, ["H_HelmetSpecB","ItemMap","ItemCompass","ItemWatch","ItemGPS","Binocular","16Rnd_9x21_Mag","U_B_CombatUniform_mcam_vest","30Rnd_65x39_caseless_mag","SmokeShellRed","SmokeShellGreen","SmokeShell","HandGrenade","V_PlateCarrierGL_rgr","arifle_MX_Hamr_pointer_F","hgun_P07_F","acc_pointer_IR","optic_Hamr","H_HelmetB_light","B_Kitbag_rgr","U_B_CombatUniform_mcam_tshirt","V_PlateCarrierSpec_rgr","optic_ACO_grn","H_HelmetB","U_B_CTRG_2","100Rnd_65x39_caseless_mag","V_PlateCarrier1_rgr","arifle_MX_SW_F","bipod_01_F_snd","MineDetector","DemoCharge_Remote_Mag","SatchelCharge_Remote_Mag","ClaymoreDirectionalMine_Remote_Mag","ATMine_Range_Mag","optic_Holosight_smg","launch_NLAW_F","G_Combat","ItemRadio","NVGoggles","FirstAidKit","Chemlight_green","U_B_CombatUniform_mcam","arifle_MX_ACO_pointer_F","optic_Aco","H_HelmetB_desert","G_Aviator","30Rnd_65x39_caseless_mag_Tracer","B_IR_Grenade","SmokeShellBlue","SmokeShellOrange","130Rnd_338_Mag","MMG_02_sand_RCO_LP_F","H_HelmetSpecB_blk","1Rnd_HE_Grenade_shell","MiniGrenade","1Rnd_Smoke_Grenade_shell","1Rnd_SmokeBlue_Grenade_shell","1Rnd_SmokeGreen_Grenade_shell","1Rnd_SmokeOrange_Grenade_shell","arifle_MX_GL_ACO_F","H_HelmetB_light_desert","Medikit","B_AssaultPack_rgr_Medic","arifle_MX_pointer_F","ToolKit","B_Kitbag_mcamo_Eng","V_Chestrig_rgr","arifle_MXC_Holo_pointer_F","optic_Holosight","20Rnd_762x51_Mag","srifle_DMR_03_tan_AMS_LP_F","optic_AMS_snd","H_HelmetB_light_sand","B_AssaultPack_rgr_Repair","arifle_MX_Holo_pointer_F","H_HelmetB_grass","arifle_MXM_Hamr_LP_BI_F","G_Bandanna_khk","Rangefinder","11Rnd_45ACP_Mag","B_Patrol_Soldier_Marksman_weapon_F","B_Patrol_Soldier_Pistol_F","muzzle_snds_B","optic_DMS","muzzle_snds_acp","optic_MRD","G_Bandanna_oli","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer","B_Patrol_Soldier_MachineGunner_weapon_F","muzzle_snds_H_snd_F","bipod_01_F_blk","H_HelmetB_snakeskin","100Rnd_65x39_caseless_mag_Tracer","V_PlateCarrier2_rgr","B_Patrol_Soldier_Autorifleman_weapon_F","H_HelmetB_camo","G_Tactical_Black","150Rnd_762x54_Box","Titan_AP","B_Patrol_Supply_bag_F","B_Patrol_Soldier_Carrier_weapon_F","optic_Arco","H_HelmetSpecB_paint2","APERSBoundingMine_Range_Mag","SLAMDirectionalMine_Wire_Mag","B_Kitbag_rgr_Exp","V_PlateCarrierGL_mtp","B_Patrol_Soldier_Specialist_weapon_F","H_HelmetSpecB_sand","SmokeShellYellow","B_Patrol_Medic_bag_F","B_Patrol_Soldier_Medic_weapon_F"], true] call BIS_fnc_addVirtualItemCargo; 
[myBox, ["H_HelmetSpecB","ItemMap","ItemCompass","ItemWatch","ItemGPS","Binocular","16Rnd_9x21_Mag","U_B_CombatUniform_mcam_vest","30Rnd_65x39_caseless_mag","SmokeShellRed","SmokeShellGreen","SmokeShell","HandGrenade","V_PlateCarrierGL_rgr","arifle_MX_Hamr_pointer_F","hgun_P07_F","acc_pointer_IR","optic_Hamr","H_HelmetB_light","B_Kitbag_rgr","U_B_CombatUniform_mcam_tshirt","V_PlateCarrierSpec_rgr","optic_ACO_grn","H_HelmetB","U_B_CTRG_2","100Rnd_65x39_caseless_mag","V_PlateCarrier1_rgr","arifle_MX_SW_F","bipod_01_F_snd","MineDetector","DemoCharge_Remote_Mag","SatchelCharge_Remote_Mag","ClaymoreDirectionalMine_Remote_Mag","ATMine_Range_Mag","optic_Holosight_smg","launch_NLAW_F","G_Combat","ItemRadio","NVGoggles","FirstAidKit","Chemlight_green","U_B_CombatUniform_mcam","arifle_MX_ACO_pointer_F","optic_Aco","H_HelmetB_desert","G_Aviator","30Rnd_65x39_caseless_mag_Tracer","B_IR_Grenade","SmokeShellBlue","SmokeShellOrange","130Rnd_338_Mag","MMG_02_sand_RCO_LP_F","H_HelmetSpecB_blk","1Rnd_HE_Grenade_shell","MiniGrenade","1Rnd_Smoke_Grenade_shell","1Rnd_SmokeBlue_Grenade_shell","1Rnd_SmokeGreen_Grenade_shell","1Rnd_SmokeOrange_Grenade_shell","arifle_MX_GL_ACO_F","H_HelmetB_light_desert","Medikit","B_AssaultPack_rgr_Medic","arifle_MX_pointer_F","ToolKit","B_Kitbag_mcamo_Eng","V_Chestrig_rgr","arifle_MXC_Holo_pointer_F","optic_Holosight","20Rnd_762x51_Mag","srifle_DMR_03_tan_AMS_LP_F","optic_AMS_snd","H_HelmetB_light_sand","B_AssaultPack_rgr_Repair","arifle_MX_Holo_pointer_F","H_HelmetB_grass","arifle_MXM_Hamr_LP_BI_F","G_Bandanna_khk","Rangefinder","11Rnd_45ACP_Mag","B_Patrol_Soldier_Marksman_weapon_F","B_Patrol_Soldier_Pistol_F","muzzle_snds_B","optic_DMS","muzzle_snds_acp","optic_MRD","G_Bandanna_oli","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer","B_Patrol_Soldier_MachineGunner_weapon_F","muzzle_snds_H_snd_F","bipod_01_F_blk","H_HelmetB_snakeskin","100Rnd_65x39_caseless_mag_Tracer","V_PlateCarrier2_rgr","B_Patrol_Soldier_Autorifleman_weapon_F","H_HelmetB_camo","G_Tactical_Black","150Rnd_762x54_Box","Titan_AP","B_Patrol_Supply_bag_F","B_Patrol_Soldier_Carrier_weapon_F","optic_Arco","H_HelmetSpecB_paint2","APERSBoundingMine_Range_Mag","SLAMDirectionalMine_Wire_Mag","B_Kitbag_rgr_Exp","V_PlateCarrierGL_mtp","B_Patrol_Soldier_Specialist_weapon_F","H_HelmetSpecB_sand","SmokeShellYellow","B_Patrol_Medic_bag_F","B_Patrol_Soldier_Medic_weapon_F"], true] call BIS_fnc_addVirtualMagazineCargo; 

[missionNamespace, "arsenalOpened", { 
  disableSerialization; 
  params ["_display"]; 
  _display displayAddEventHandler ["keydown", "_this select 3"]; 
  {(_display displayCtrl _x) ctrlShow false} forEach [44151, 44150, 44146, 44147, 44148, 44149, 44346]; 
 }] call BIS_fnc_addScriptedEventHandler;

 

Share this post


Link to post
Share on other sites
Guest

I've found an arsenal composition that has what im looking for in the way of saving respawn loadouts but I don't know how to read its code and incorporate it into my composition.

 

Here's that compositions code
 

if(isNil "MAZ_createFullArsenalModule") then { 
 MAZ_createFullArsenalModule = { 
  params ["_logic"]; 
  private _closestObjects = (nearestObjects [(getPos _logic),["Thing"],5]); 
  private _closestObject = nil; 
  if(count _closestObjects == 0) then { 
   _closestObject = createVehicle ["B_supplyCrate_F",getPos _logic,[],0,"CAN_COLLIDE"]; 
   [[_closestObject],{ 
    params ["_closestObject"]; 
    { 
     _x addCuratorEditableObjects [[_closestObject],true]; 
    } foreach allCurators; 
   }] remoteExec ["Spawn",2]; 
  } else { 
   _closestObject = _closestObjects select 0; 
  }; 
  deleteVehicle _logic; 
   
  clearItemCargoGlobal _closestObject; 
  clearWeaponCargoGlobal _closestObject; 
  clearMagazineCargoGlobal _closestObject; 
  clearBackpackCargoGlobal _closestObject; 
 
  private _secondObject = "Land_HelipadEmpty_F" createVehicle position _closestObject; 
  _secondObject setPos (getPos _closestObject); 
  [_secondObject,_closestObject] call BIS_fnc_attachToRelative; 
  _closestObject setVariable ['attachedObjArsenal',_secondObject,true]; 
 
  private _thirdObject = "Land_HelipadEmpty_F" createVehicle position _closestObject; 
  _thirdObject setPos (getPos _closestObject); 
  [_thirdObject,_closestObject] call BIS_fnc_attachToRelative; 
  _closestObject setVariable ['attachedObjArsenal2',_thirdObject,true]; 
  [ 
   _closestObject, 
   [ 
    "<t color='#FFFFFF' size='0.9'><img image='a3\ui_f\data\logos\a_64_ca.paa'></img><t color='#1a7e00' size='1'> Open Full Arsenal</t>", 
    { 
     params ["_target", "_caller", "_actionId", "_arguments"]; 
     ["Preload"] call BIS_fnc_arsenal; 
     ["Open", true] call BIS_fnc_arsenal; 
     showChat true; 
     playSound 'addItemOk'; 
    }, 
    nil, 
    6, 
    true, 
    true, 
    "", 
    "_target distance _this < 6" 
   ] 
  ] remoteExec ['addAction',0,_closestObject]; 
  [ 
   _closestObject, 
   [ 
    "<t color='#FFFFFF' size='1'><img image='a3\ui_f\data\igui\cfg\actions\obsolete\ui_action_gear_ca.paa'></img><t color='#1a7e00' size='1'> Save Respawn Loadout</t>", 
    { 
     params ["_target", "_caller", "_actionId", "_arguments"]; 
     if(!isNil "MAZ_customArsenalRespawnEH") then { 
      player removeEventHandler ["Respawn",MAZ_customArsenalRespawnEH]; 
     }; 
     MAZ_customArsenalRespawnEH = player addEventHandler ["Respawn",{ 
      [] spawn { 
       private _unitLoadout = player getVariable 'MAZ_customLoadoutFromModule'; 
       if(!isNil "_unitLoadout") then { 
        if(count (_unitLoadout select 1) != 0) then { 
         _unitLoadout set [1,[]]; 
         titleText [ "<t color='#004c99' size='1.5'>Arsenal</t><t color='#FFFFFF' size='1.5'>: You lost your launcher during the respawn. You can get a new one at an arsenal.</t>","PLAIN DOWN",2,true,true]; 
        }; 
        player setUnitLoadout _unitLoadout; 
        systemChat "[Z.A.M.] - Respawn loadout applied."; 
        playSound 'addItemOk'; 
       }; 
      }; 
     }]; 
     [player,"PutDown"] remoteExec ["playAction",0]; 
     player setVariable ['MAZ_customLoadoutFromModule',getUnitLoadout player]; 
     playSound 'addItemOk'; 
     systemChat "[Z.A.M.] - Respawn loadout saved."; 
    }, 
    nil, 
    6, 
    true, 
    true, 
    "", 
    "_target distance _this < 6" 
   ] 
  ] remoteExec ['addAction',0,_secondObject]; 
  [ 
   _closestObject, 
   [ 
    "<t color='#FFFFFF' size='1'><img image='a3\ui_f\data\igui\cfg\actions\obsolete\ui_action_gear_ca.paa'></img><t color='#1a7e00' size='1'> Get Saved Loadout</t>", 
    { 
     params ["_target", "_caller", "_actionId", "_arguments"]; 
     if(!isNil "MAZ_customArsenalRespawnEH") then { 
      player removeEventHandler ["Respawn",MAZ_customArsenalRespawnEH]; 
     }; 
     [player,"PutDown"] remoteExec ["playAction",0]; 
     private _loadout = player getVariable ['MAZ_customLoadoutFromModule',getUnitLoadout player]; 
     player setUnitLoadout _loadout; 
     playSound 'addItemOk'; 
     systemChat "[Z.A.M.] - Saved loadout re-equipped."; 
    }, 
    nil, 
    6, 
    true, 
    true, 
    "", 
    "_target distance _this < 6" 
   ] 
  ] remoteExec ['addAction',0,_thirdObject]; 
  _closestObject addEventHandler ["Deleted", { 
   params ["_entity"]; 
   private _secondObject = _entity getVariable 'attachedObjArsenal'; 
   private _thirdObject = _entity getVariable 'attachedObjArsenal2'; 
   deleteVehicle _secondObject; 
   deleteVehicle _thirdObject; 
  }]; 
  private _displayText = getText (configFile >> "CfgVehicles" >> typeOf _closestObject >> "displayName"); 
  systemChat format ["[Z.A.M.] - %1 is now a full arsenal",_displayText]; 
  playSound 'addItemOk'; 
 }; 
}; 
[this] call MAZ_createFullArsenalModule;

the part I think I need is around the middle where it says "respawn loadout saved"

Share this post


Link to post
Share on other sites

This will add action menu entry for save/load players loadout on your object myBox. If you change the version string in the first line then all players which already saved a loadout can not load those old loadout. They have to save the loadout again before they can load.

This is handy for changing your arsenal inventory in the future. If you change it then you should change the version string as well and no player can load a loadout which was created out of the old arsenal inventory...

 

initPlayerLocal.sqf

//loadout version string
#define SARO_LOADOUT_VERSION "version 1.0"

SARO_fnc_saveLoadout =
{

    //get current layout of player but with full magazines
    private _loadout = getUnitLoadout  [player, true ];

    //store loadout in players profile data
    profileNamespace setVariable ["SARO_playerLoadout", [SARO_LOADOUT_VERSION, _loadout] ];
};

SARO_fnc_loadLoadout =
{
    //get saved loadout
    private _loadout = ( profileNamespace getVariable "SARO_playerLoadout" ) select 1;

    //apply loadout to player if loadout was available and if the version fits.
    if ([] call SARO_fnc_loadoutCondition) then { player setUnitLoadout _loadout select 1 };
};

SARO_fnc_loadoutCondition =
{
    //get stored loadout
    private _loadout = profileNamespace getVariable "SARO_playerLoadout";

    //returns true if loadout was available and if version fits
    !isNil "_loadout" && { _loadout select 0 isEqualTo SARO_LOADOUT_VERSION }
};

myBox addAction ["Save Loadout", "[] call SARO_fnc_saveLoadout", nil, 1, false, true, "" ];
myBox addAction ["Load Loadout", "[] call SARO_fnc_loadLoadout", nil, 1, false, true, "", "[] call SARO_fnc_loadoutCondition"];

this is all tested but without respawn.

to get the saved inventory loaded on respawn it should be enough to do this in

 

onPlayerRespawn.sqf

[] call SARO_fnc_loadLoadout;

 

Share this post


Link to post
Share on other sites
Guest
12 hours ago, sarogahtyp said:

This will add action menu entry for save/load players loadout on your object myBox. If you change the version string in the first line then all players which already saved a loadout can not load those old loadout

Thank you so much for the quick and thorough response but I'm trying to use this as a composition to use on the fly on so I only have the objects init box available to me so I don't have access to mission files like onPlayerRespawn.sqf or initPlayerLocal.sqf like you recommended. 

The MAZ or ZAM arsenal code doesn't use anything outside of the object init box, but I don't know how to transplant only the "save respawn loadout" and "get saved loadout" aspects of the code without bricking it.

Share this post


Link to post
Share on other sites

Here again all together in bite-sized bites for the init box:

 

if (not hasInterface) exitWith {};

SARO_loadoutVersion = "1.0";

[this, ["H_HelmetSpecB","ItemMap","ItemCompass","ItemWatch","ItemGPS","Binocular","16Rnd_9x21_Mag","U_B_CombatUniform_mcam_vest","30Rnd_65x39_caseless_mag","SmokeShellRed","SmokeShellGreen","SmokeShell","HandGrenade","V_PlateCarrierGL_rgr","arifle_MX_Hamr_pointer_F","hgun_P07_F","acc_pointer_IR","optic_Hamr","H_HelmetB_light","B_Kitbag_rgr","U_B_CombatUniform_mcam_tshirt","V_PlateCarrierSpec_rgr","optic_ACO_grn","H_HelmetB","U_B_CTRG_2","100Rnd_65x39_caseless_mag","V_PlateCarrier1_rgr","arifle_MX_SW_F","bipod_01_F_snd","MineDetector","DemoCharge_Remote_Mag","SatchelCharge_Remote_Mag","ClaymoreDirectionalMine_Remote_Mag","ATMine_Range_Mag","optic_Holosight_smg","launch_NLAW_F","G_Combat","ItemRadio","NVGoggles","FirstAidKit","Chemlight_green","U_B_CombatUniform_mcam","arifle_MX_ACO_pointer_F","optic_Aco","H_HelmetB_desert","G_Aviator","30Rnd_65x39_caseless_mag_Tracer","B_IR_Grenade","SmokeShellBlue","SmokeShellOrange","130Rnd_338_Mag","MMG_02_sand_RCO_LP_F","H_HelmetSpecB_blk","1Rnd_HE_Grenade_shell","MiniGrenade","1Rnd_Smoke_Grenade_shell","1Rnd_SmokeBlue_Grenade_shell","1Rnd_SmokeGreen_Grenade_shell","1Rnd_SmokeOrange_Grenade_shell","arifle_MX_GL_ACO_F","H_HelmetB_light_desert","Medikit","B_AssaultPack_rgr_Medic","arifle_MX_pointer_F","ToolKit","B_Kitbag_mcamo_Eng","V_Chestrig_rgr","arifle_MXC_Holo_pointer_F","optic_Holosight","20Rnd_762x51_Mag","srifle_DMR_03_tan_AMS_LP_F","optic_AMS_snd","H_HelmetB_light_sand","B_AssaultPack_rgr_Repair","arifle_MX_Holo_pointer_F","H_HelmetB_grass","arifle_MXM_Hamr_LP_BI_F","G_Bandanna_khk","Rangefinder","11Rnd_45ACP_Mag","B_Patrol_Soldier_Marksman_weapon_F","B_Patrol_Soldier_Pistol_F","muzzle_snds_B","optic_DMS","muzzle_snds_acp","optic_MRD","G_Bandanna_oli","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer","B_Patrol_Soldier_MachineGunner_weapon_F","muzzle_snds_H_snd_F","bipod_01_F_blk","H_HelmetB_snakeskin","100Rnd_65x39_caseless_mag_Tracer","V_PlateCarrier2_rgr","B_Patrol_Soldier_Autorifleman_weapon_F","H_HelmetB_camo","G_Tactical_Black","150Rnd_762x54_Box","Titan_AP","B_Patrol_Supply_bag_F","B_Patrol_Soldier_Carrier_weapon_F","optic_Arco","H_HelmetSpecB_paint2","APERSBoundingMine_Range_Mag","SLAMDirectionalMine_Wire_Mag","B_Kitbag_rgr_Exp","V_PlateCarrierGL_mtp","B_Patrol_Soldier_Specialist_weapon_F","H_HelmetSpecB_sand","SmokeShellYellow","B_Patrol_Medic_bag_F","B_Patrol_Soldier_Medic_weapon_F"], true] call BIS_fnc_addVirtualWeaponCargo;  
[this, ["H_HelmetSpecB","ItemMap","ItemCompass","ItemWatch","ItemGPS","Binocular","16Rnd_9x21_Mag","U_B_CombatUniform_mcam_vest","30Rnd_65x39_caseless_mag","SmokeShellRed","SmokeShellGreen","SmokeShell","HandGrenade","V_PlateCarrierGL_rgr","arifle_MX_Hamr_pointer_F","hgun_P07_F","acc_pointer_IR","optic_Hamr","H_HelmetB_light","B_Kitbag_rgr","U_B_CombatUniform_mcam_tshirt","V_PlateCarrierSpec_rgr","optic_ACO_grn","H_HelmetB","U_B_CTRG_2","100Rnd_65x39_caseless_mag","V_PlateCarrier1_rgr","arifle_MX_SW_F","bipod_01_F_snd","MineDetector","DemoCharge_Remote_Mag","SatchelCharge_Remote_Mag","ClaymoreDirectionalMine_Remote_Mag","ATMine_Range_Mag","optic_Holosight_smg","launch_NLAW_F","G_Combat","ItemRadio","NVGoggles","FirstAidKit","Chemlight_green","U_B_CombatUniform_mcam","arifle_MX_ACO_pointer_F","optic_Aco","H_HelmetB_desert","G_Aviator","30Rnd_65x39_caseless_mag_Tracer","B_IR_Grenade","SmokeShellBlue","SmokeShellOrange","130Rnd_338_Mag","MMG_02_sand_RCO_LP_F","H_HelmetSpecB_blk","1Rnd_HE_Grenade_shell","MiniGrenade","1Rnd_Smoke_Grenade_shell","1Rnd_SmokeBlue_Grenade_shell","1Rnd_SmokeGreen_Grenade_shell","1Rnd_SmokeOrange_Grenade_shell","arifle_MX_GL_ACO_F","H_HelmetB_light_desert","Medikit","B_AssaultPack_rgr_Medic","arifle_MX_pointer_F","ToolKit","B_Kitbag_mcamo_Eng","V_Chestrig_rgr","arifle_MXC_Holo_pointer_F","optic_Holosight","20Rnd_762x51_Mag","srifle_DMR_03_tan_AMS_LP_F","optic_AMS_snd","H_HelmetB_light_sand","B_AssaultPack_rgr_Repair","arifle_MX_Holo_pointer_F","H_HelmetB_grass","arifle_MXM_Hamr_LP_BI_F","G_Bandanna_khk","Rangefinder","11Rnd_45ACP_Mag","B_Patrol_Soldier_Marksman_weapon_F","B_Patrol_Soldier_Pistol_F","muzzle_snds_B","optic_DMS","muzzle_snds_acp","optic_MRD","G_Bandanna_oli","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer","B_Patrol_Soldier_MachineGunner_weapon_F","muzzle_snds_H_snd_F","bipod_01_F_blk","H_HelmetB_snakeskin","100Rnd_65x39_caseless_mag_Tracer","V_PlateCarrier2_rgr","B_Patrol_Soldier_Autorifleman_weapon_F","H_HelmetB_camo","G_Tactical_Black","150Rnd_762x54_Box","Titan_AP","B_Patrol_Supply_bag_F","B_Patrol_Soldier_Carrier_weapon_F","optic_Arco","H_HelmetSpecB_paint2","APERSBoundingMine_Range_Mag","SLAMDirectionalMine_Wire_Mag","B_Kitbag_rgr_Exp","V_PlateCarrierGL_mtp","B_Patrol_Soldier_Specialist_weapon_F","H_HelmetSpecB_sand","SmokeShellYellow","B_Patrol_Medic_bag_F","B_Patrol_Soldier_Medic_weapon_F"], true] call BIS_fnc_addVirtualBackpackCargo; 
[this, ["H_HelmetSpecB","ItemMap","ItemCompass","ItemWatch","ItemGPS","Binocular","16Rnd_9x21_Mag","U_B_CombatUniform_mcam_vest","30Rnd_65x39_caseless_mag","SmokeShellRed","SmokeShellGreen","SmokeShell","HandGrenade","V_PlateCarrierGL_rgr","arifle_MX_Hamr_pointer_F","hgun_P07_F","acc_pointer_IR","optic_Hamr","H_HelmetB_light","B_Kitbag_rgr","U_B_CombatUniform_mcam_tshirt","V_PlateCarrierSpec_rgr","optic_ACO_grn","H_HelmetB","U_B_CTRG_2","100Rnd_65x39_caseless_mag","V_PlateCarrier1_rgr","arifle_MX_SW_F","bipod_01_F_snd","MineDetector","DemoCharge_Remote_Mag","SatchelCharge_Remote_Mag","ClaymoreDirectionalMine_Remote_Mag","ATMine_Range_Mag","optic_Holosight_smg","launch_NLAW_F","G_Combat","ItemRadio","NVGoggles","FirstAidKit","Chemlight_green","U_B_CombatUniform_mcam","arifle_MX_ACO_pointer_F","optic_Aco","H_HelmetB_desert","G_Aviator","30Rnd_65x39_caseless_mag_Tracer","B_IR_Grenade","SmokeShellBlue","SmokeShellOrange","130Rnd_338_Mag","MMG_02_sand_RCO_LP_F","H_HelmetSpecB_blk","1Rnd_HE_Grenade_shell","MiniGrenade","1Rnd_Smoke_Grenade_shell","1Rnd_SmokeBlue_Grenade_shell","1Rnd_SmokeGreen_Grenade_shell","1Rnd_SmokeOrange_Grenade_shell","arifle_MX_GL_ACO_F","H_HelmetB_light_desert","Medikit","B_AssaultPack_rgr_Medic","arifle_MX_pointer_F","ToolKit","B_Kitbag_mcamo_Eng","V_Chestrig_rgr","arifle_MXC_Holo_pointer_F","optic_Holosight","20Rnd_762x51_Mag","srifle_DMR_03_tan_AMS_LP_F","optic_AMS_snd","H_HelmetB_light_sand","B_AssaultPack_rgr_Repair","arifle_MX_Holo_pointer_F","H_HelmetB_grass","arifle_MXM_Hamr_LP_BI_F","G_Bandanna_khk","Rangefinder","11Rnd_45ACP_Mag","B_Patrol_Soldier_Marksman_weapon_F","B_Patrol_Soldier_Pistol_F","muzzle_snds_B","optic_DMS","muzzle_snds_acp","optic_MRD","G_Bandanna_oli","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer","B_Patrol_Soldier_MachineGunner_weapon_F","muzzle_snds_H_snd_F","bipod_01_F_blk","H_HelmetB_snakeskin","100Rnd_65x39_caseless_mag_Tracer","V_PlateCarrier2_rgr","B_Patrol_Soldier_Autorifleman_weapon_F","H_HelmetB_camo","G_Tactical_Black","150Rnd_762x54_Box","Titan_AP","B_Patrol_Supply_bag_F","B_Patrol_Soldier_Carrier_weapon_F","optic_Arco","H_HelmetSpecB_paint2","APERSBoundingMine_Range_Mag","SLAMDirectionalMine_Wire_Mag","B_Kitbag_rgr_Exp","V_PlateCarrierGL_mtp","B_Patrol_Soldier_Specialist_weapon_F","H_HelmetSpecB_sand","SmokeShellYellow","B_Patrol_Medic_bag_F","B_Patrol_Soldier_Medic_weapon_F"], true] call BIS_fnc_addVirtualItemCargo; 
[this, ["H_HelmetSpecB","ItemMap","ItemCompass","ItemWatch","ItemGPS","Binocular","16Rnd_9x21_Mag","U_B_CombatUniform_mcam_vest","30Rnd_65x39_caseless_mag","SmokeShellRed","SmokeShellGreen","SmokeShell","HandGrenade","V_PlateCarrierGL_rgr","arifle_MX_Hamr_pointer_F","hgun_P07_F","acc_pointer_IR","optic_Hamr","H_HelmetB_light","B_Kitbag_rgr","U_B_CombatUniform_mcam_tshirt","V_PlateCarrierSpec_rgr","optic_ACO_grn","H_HelmetB","U_B_CTRG_2","100Rnd_65x39_caseless_mag","V_PlateCarrier1_rgr","arifle_MX_SW_F","bipod_01_F_snd","MineDetector","DemoCharge_Remote_Mag","SatchelCharge_Remote_Mag","ClaymoreDirectionalMine_Remote_Mag","ATMine_Range_Mag","optic_Holosight_smg","launch_NLAW_F","G_Combat","ItemRadio","NVGoggles","FirstAidKit","Chemlight_green","U_B_CombatUniform_mcam","arifle_MX_ACO_pointer_F","optic_Aco","H_HelmetB_desert","G_Aviator","30Rnd_65x39_caseless_mag_Tracer","B_IR_Grenade","SmokeShellBlue","SmokeShellOrange","130Rnd_338_Mag","MMG_02_sand_RCO_LP_F","H_HelmetSpecB_blk","1Rnd_HE_Grenade_shell","MiniGrenade","1Rnd_Smoke_Grenade_shell","1Rnd_SmokeBlue_Grenade_shell","1Rnd_SmokeGreen_Grenade_shell","1Rnd_SmokeOrange_Grenade_shell","arifle_MX_GL_ACO_F","H_HelmetB_light_desert","Medikit","B_AssaultPack_rgr_Medic","arifle_MX_pointer_F","ToolKit","B_Kitbag_mcamo_Eng","V_Chestrig_rgr","arifle_MXC_Holo_pointer_F","optic_Holosight","20Rnd_762x51_Mag","srifle_DMR_03_tan_AMS_LP_F","optic_AMS_snd","H_HelmetB_light_sand","B_AssaultPack_rgr_Repair","arifle_MX_Holo_pointer_F","H_HelmetB_grass","arifle_MXM_Hamr_LP_BI_F","G_Bandanna_khk","Rangefinder","11Rnd_45ACP_Mag","B_Patrol_Soldier_Marksman_weapon_F","B_Patrol_Soldier_Pistol_F","muzzle_snds_B","optic_DMS","muzzle_snds_acp","optic_MRD","G_Bandanna_oli","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer","B_Patrol_Soldier_MachineGunner_weapon_F","muzzle_snds_H_snd_F","bipod_01_F_blk","H_HelmetB_snakeskin","100Rnd_65x39_caseless_mag_Tracer","V_PlateCarrier2_rgr","B_Patrol_Soldier_Autorifleman_weapon_F","H_HelmetB_camo","G_Tactical_Black","150Rnd_762x54_Box","Titan_AP","B_Patrol_Supply_bag_F","B_Patrol_Soldier_Carrier_weapon_F","optic_Arco","H_HelmetSpecB_paint2","APERSBoundingMine_Range_Mag","SLAMDirectionalMine_Wire_Mag","B_Kitbag_rgr_Exp","V_PlateCarrierGL_mtp","B_Patrol_Soldier_Specialist_weapon_F","H_HelmetSpecB_sand","SmokeShellYellow","B_Patrol_Medic_bag_F","B_Patrol_Soldier_Medic_weapon_F"], true] call BIS_fnc_addVirtualMagazineCargo; 

[missionNamespace, "arsenalOpened", { 
  disableSerialization; 
  params ["_display"]; 
  _display displayAddEventHandler ["keydown", "_this select 3"]; 
  {(_display displayCtrl _x) ctrlShow false} forEach [44151, 44150, 44146, 44147, 44148, 44149, 44346]; 
 }] call BIS_fnc_addScriptedEventHandler;

SARO_fnc_saveLoadout =
{
    private _loadout = getUnitLoadout  [player, true ];
    private _fireMode = currentWeaponMode player;

    _fireMode = if (!isNil "_fireMode" and { typeName _fireMode isEqualTo "STRING" } ) then { _fireMode } else { "FullAuto" };

    profileNamespace setVariable ["SARO_playerLoadout", [SARO_loadoutVersion, _loadout, _fireMode] ];
};

SARO_fnc_loadLoadout =
{
    if ( not ([] call SARO_fnc_loadoutCondition) ) exitWith {};

    private _loadout = ( profileNamespace getVariable "SARO_playerLoadout" ) select 1;

    private _firemode = ( profileNamespace getVariable "SARO_playerLoadout" ) select 2;

    player setUnitLoadout _loadout;

    private _weapon = currentWeapon player;
    private _ammo = player ammo _weapon;

    player setAmmo [_weapon, 0];
    player forceWeaponFire [_weapon, _firemode];
    player setAmmo [_weapon, _ammo];
};

SARO_fnc_loadoutCondition =
{
    private _loadout = profileNamespace getVariable "SARO_playerLoadout";

    !isNil "_loadout" and { _loadout select 0 isEqualTo SARO_loadoutVersion }
};

this addAction ["Save Loadout", "[] call SARO_fnc_saveLoadout", nil, 1, false, true, "" ];
this addAction ["Load Loadout", "[] call SARO_fnc_loadLoadout", nil, 1, false, true, "", "[] call SARO_fnc_loadoutCondition"];

player addEventHandler ["Respawn", { [] call SARO_fnc_loadLoadout }];

 

Share this post


Link to post
Share on other sites
Guest

Thank you so much for the help, this works great. 

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

×