Well... i'm not too sure about the ammo crate... you'll have to count the amount of ammo that is in it at the start and then set up some sort of condition via a trigger that when the ammo is below a certain amount the trigger goes off
For the targets being destroyed.. here is what I would do...
make sure the targets are named..... then make yourself a trigger and throw this in the condition field...
(target1 getdammage > .9) and (target2 getdammage > .9) and (target3 getdammage > .9)
now.. when all three targets are damaged more than 90% the trigger will go off... and whatever you place in the init field ( the bit about objectives completed
) will occur