declare a global entity pointer for each object you want to use this like so:
then create an action like this:
action Ammo_Pickup_Action()
{
while(condition for being alive)
{
//code to execute while alive (like spinning, moving, detecting when it has been picked up,etc)
wait(1);
}
ent_remove(me); //destroy when its condition to exsist is not met
wait(-10); //to wait 10 seconds after it has been destroyed for example
Ammo_Pickup1=ent_create(ammo.mdl,position,Ammo_Pickup_Action); //create it again re-using the global pointer 10 seconds after it has been removed
}
Then all that is left to do is create your first one like this, and it will automatically work and when it finished destroys itself, waits 10 seconds, and re-creates another copy of itself:
Ammo_Pickup1=ent_create(ammo.mdl,position,Ammo_Pickup_Action);