@3
You can check how many bullets are in a units weapon with the 'ammo' command. So (at least with AI), this number will drop from, say 30 with a full m16 mag, down to 3, then 2, then 1, then 0 and back up to 30 once he reloads. So if you made a script that went like this, it would give you the effect you're looking for:
_unit = _this select 0
#loop
_rounds = _unit ammo (primaryweapon _unit)
~1
? _rounds < _unit ammo (primaryweapon _unit) : goto "reloaded"
?alive _unit : goto "loop"
exit
#reloaded
bla bla blah
goto "loop"
And just for reference, there is a tut in the ed depot that lists all the EHs, what they do and what their parameters are.