There is a good working script by Xeno for this.
Just put a trigger somewhere.
Activation: NONE PRESENT
Size 0,0
Condition: local player
On Activation: nul = execVM "RespawnWeapons.sqf";
RespawnWeapons.sqf:
Code:
// By Xeno
while {true} do {
waitUntil {!alive player};
_weapons = weapons player;
_magazines = magazines player;
waitUntil {alive player};
_p = player;
removeAllItems _p;
removeAllWeapons _p;
{_p addMagazine _x} forEach _magazines;
{_p addWeapon _x} forEach _weapons;
_primw = primaryWeapon _p;
if (_primw != "") then {
_p selectWeapon _primw;
// Fix for weapons with grenade launcher
_muzzles = getArray(configFile>>"cfgWeapons" >> _primw >> "muzzles");
_p selectWeapon (_muzzles select 0);
};
};
For changing default loadout by class i created something for my last mission:
Code:
//// Get soldier class
_Unit = _this select 0;
_UnitType = typeOf _Unit;
//// Maybe this helps
waitUntil {!isNull player};
//// Changed default gear, cause mk16 is unreal :-(
//// Squad leader & Team leader
if (_UnitType == "US_Soldier_SL_EP1" || _UnitType == "US_Soldier_TL_EP1") exitWith {
removeAllWeapons _Unit;
_Unit addWeapon "ACE_M4A1_RCO_GL";
_Unit addWeapon "M9";
_Unit addMagazine "30Rnd_556x45_Stanag";
_Unit addMagazine "30Rnd_556x45_Stanag";
_Unit addMagazine "30Rnd_556x45_Stanag";
_Unit addMagazine "30Rnd_556x45_Stanag";
_Unit addMagazine "30Rnd_556x45_Stanag";
_Unit addMagazine "30Rnd_556x45_Stanag";
_Unit addMagazine "30Rnd_556x45_Stanag";
_Unit addMagazine "30Rnd_556x45_Stanag";
_Unit addMagazine "30Rnd_556x45_Stanag";
_Unit addMagazine "Smokeshell";
_Unit addMagazine "Smokeshellred";
_Unit addMagazine "1Rnd_HE_M203";
_Unit addMagazine "1Rnd_HE_M203";
_Unit addMagazine "1Rnd_HE_M203";
_Unit addMagazine "1Rnd_HE_M203";
_Unit addMagazine "15Rnd_9x19_M9";
_Unit addMagazine "15Rnd_9x19_M9";
_Unit addMagazine "15Rnd_9x19_M9";
_Unit addMagazine "15Rnd_9x19_M9";
_Unit addWeapon "Binocular_Vector";
_Unit addMagazine "ACE_Battery_Rangefinder";
_Unit addWeapon "ACE_Earplugs";
};
//// Auto rifleman
if (_UnitType == "US_Soldier_AR_EP1") exitWith {
removeAllWeapons _Unit;
_Unit addWeapon "M249_m145_EP1";
_Unit addWeapon "M9";
_Unit addMagazine "100Rnd_556x45_M249";
_Unit addMagazine "100Rnd_556x45_M249";
_Unit addMagazine "100Rnd_556x45_M249";
_Unit addMagazine "100Rnd_556x45_M249";
_Unit addMagazine "100Rnd_556x45_M249";
_Unit addMagazine "HandGrenade_West";
_Unit addMagazine "HandGrenade_West";
_Unit addMagazine "15Rnd_9x19_M9";
_Unit addMagazine "15Rnd_9x19_M9";
_Unit addMagazine "15Rnd_9x19_M9";
_Unit addMagazine "15Rnd_9x19_M9";
// he already got them _Unit addWeapon "ACE_Earplugs";
};
AND SO ON ......
Called through unit init line:
nul = [this] execVM "Loadout.sqf";