okay. so once again, look at this part of the script:
#out
? ammoa : goto "out2"
ammoa = true
player groupchat "d**n IM OUT OF AMMO"
#out2
if (50 > random 100) then {player groupchat "GOD d**n IM OUT AGAIN!"} else {player groupchat "d**n I NEED MORE AMMO"}
assuming 'ammoa' is set to 'true' someplace else - as it isn't in this script - the script jumps to "out2".
if 'ammoa' is false, the script goes to the next line, which sets 'ammoa' to true, shows the first group chat, then moves down to the next line, #out2, and shows one of the other group chats.
looking at the rest of the code, let's say the unit has an m16. the script will get to the first line of #checkammo, and if the unit has no ammo, it will go to the #out sequence. fine.
what if the unit still has ammo in his m16?
then the script continues onto the next line. it then looks for xm3 ammo, finds none - as the unit has an m16 - and triggers the #out sequence.
what if the unit doesn't have an m16. what if the unit has the m21, with plenty of ammo? then the script goes to the first check, the m16, finds no m16 ammo, and jumps to the #out sequence....