An event handler that triggers when the unit's inventory (getUnitLoadout) changes would be nice. If it could also tell "how" it was changed (e.g. a new magazine added to the vest) that would be even better.
this addEventHandler ["InventoryChanged", { params ["_unit", "_oldInventory", "_newInventory"]; }]