My script tries to be the more realistic it can... but it would be much better if I could handle bullets, giving players appropriate amount of bullets depending on the amount of the player's respective ammo inventory. So I suggest the following 2 procedures:
function OnWeaponStartReload():Boolean;
procedure OnWeaponEndReload();
(I think there might be better procedure names...)
There's no need to add parameters to those. But I would suggest having the boolean there for canceling the reload. This boolean would be very useful if used along with a change to ForceWeapon to consider the ammo of 0 as it is, and leave the "-1" or "255" ammo to set the maximum ammo of the current weapon. That would allow to purposely jam weapons (this already happens sometimes from bugs, but I want this controlled). Already possible with fists (jamming fists? rofl).