oh, I think I found the code that does it
line 494 of Zombie_Overwrite.cs
function armor::onCollision(%this, %obj, %col, %fade, %pos, %norm)
{
if(%col.getdatablock().getname() $= "RAmmoCrateItem" && %col.iszombie != 1)
{
if(isObject(%obj.getmountedimage(0)) && IsInMinigame(%obj) && %obj.getmountedimage(0).melee != 1 && MinigameIncludesItem(%col) && %col.isshutting != 1)
{
if(%obj.zombieammo[%obj.getmountedimage(0).projectile] == -1)
{
%obj.zombieammo[%obj.getmountedimage(0).projectile] = 1;
%obj.mountimage(%obj.getmountedimage(0).RWep,0);
if(%col.isopen == 0)
{
HealthlockerAnim(%col,1);
}
cancel(%col.closedoor);
%col.closedoor = schedule(600,0,HealthlockerAnim,%col,0);
}
if($zombie::ammo::Ammo[%obj.getmountedimage(0).projectile] > 0)
{
if(%obj.zombieammo[%obj.getmountedimage(0).projectile] < $zombie::ammo::Ammo[%obj.getmountedimage(0).projectile])
{
%obj.zombieammo[%obj.getmountedimage(0).projectile]++;
if($zombie::ammo::Ammo[%obj.getmountedimage(0).projectile] >= 30 && %obj.getmountedimage(0).projectile.getname !$= "MiniGunProjectile")
{
%obj.zombieammo[%obj.getmountedimage(0).projectile]+=4;
}
if(%obj.getmountedimage(0).projectile.getname $= "MiniGunProjectile")
{
%obj.zombieammo[%obj.getmountedimage(0).projectile]++;
}
%obj.playaudio(1,ammocratesound);
bottomprintremainingammo(%obj,%obj.getmountedimage(0));
if(%col.isopen == 0)
{
HealthlockerAnim(%col,1);
}
cancel(%col.closedoor);
%col.closedoor = schedule(600,0,HealthlockerAnim,%col,0);
}
if(%obj.zombieammo[%obj.getmountedimage(0).projectile] > $zombie::ammo::Ammo[%obj.getmountedimage(0).projectile])
{
%obj.zombieammo[%obj.getmountedimage(0).projectile] = $zombie::ammo::Ammo[%obj.getmountedimage(0).projectile];
%obj.playaudio(1,ammocratesound);
bottomprintremainingammo(%obj,%obj.getmountedimage(0));
if(%col.isopen == 0)
{
HealthlockerAnim(%col,1);
}
cancel(%col.closedoor);
%col.closedoor = schedule(600,0,HealthlockerAnim,%col,0);
}
}
else
{
if(%obj.zombieammo[%obj.getmountedimage(0).projectile] < 20)
{
%obj.zombieammo[%obj.getmountedimage(0).projectile]++;
%obj.playaudio(1,ammocratesound);
bottomprintremainingammo(%obj,%obj.getmountedimage(0));
if(%col.isopen == 0)
{
HealthlockerAnim(%col,1);
}
cancel(%col.closedoor);
%col.closedoor = schedule(600,0,HealthlockerAnim,%col,0);
}
}
}
return;
}
if(%col.getdatablock().getname() $= "RHealthLockerItem" && %col.iszombie != 1)
{
if(IsInMinigame(%obj) && MinigameIncludesItem(%col) && %obj.getdamagelevel() > 0 && %obj.getstate() !$= "Dead" && %col.isshutting != 1)
{
%obj.addhealth(5);
%obj.mountimage(RHealImage,2);
%obj.playaudio(2,PrintFireSound);
if(%col.isopen == 0)
{
HealthlockerAnim(%col,1);
}
cancel(%col.closedoor);
%col.closedoor = schedule(600,0,HealthlockerAnim,%col,0);
}
return;
}
if(%obj.getclassname() $= "AiPlayer")
{
parent::onCollision(%this, %obj, %col, %fade, %pos, %norm);
return;
}
if(IsInMinigame(%obj))
{
for(%i=0;%i<5;%i++)
{
%toolDB = %obj.tool[%i].image;
if(%toolDB $= %col.getdatablock().image)
{
return;
break;
}
}
if(%col.getclassname()$= "Item" && isobject(%col.spawnbrick))
{
%col.RemAmmo = 0;
}
if(%col.getclassname() $= "Item" && %col.RemAmmo != 0)
{
%projectile = %col.getdatablock().image.projectile;
%obj.zombieammo[%col.getdatablock().image.projectile] = %col.RemAmmo;
}
}
parent::onCollision(%this, %obj, %col, %fade, %pos, %norm);
}
looks like you just need to set $zombie::ammo::Ammo[%obj.getmountedimage(0).projectile]; for it to have an ammo value