Instead of firing whenever a weapon's magazine is replaced like Reloaded does, this proposed Unloaded event handler would only occur when the magazine is removed without being replaced. This could be a result of a player removing the magazine manually from within the inventory, and potentially via scripting command such as removePrimaryWeaponItem.
this addEventHandler ["Unloaded", { params ["_unit", "_weapon", "_muzzle", "_oldMagazine"]; }];
unit: Object - unit or vehicle to which EH is assigned
weapon: String - weapon that got unloaded
muzzle: String - weapon's muzzle that got unloaded
oldMagazine: Array - old magazine info