It'd be fairly simple-to-do, let me write something up really quickly.
something like this
function Player::ammoIncLoop(%this, %slot, %amt)
{
cancel(%this.ammoIncLoop);
if(%this.ammoCt[%slot] < 20)
%this.ammoCt[%slot]++;
%this.ammoIncLoop = %this.schedule(500, ammoIncLoop, %slot, %amt);
}