You're trying to do too many things in one line of code and the game doesn't understand what you want it to do. Brackets might do the trick.
_oldammo != (_unit ammo _weapon)
but it will only work if _oldammo is a number. You may need quotes around "_weapon".
If it still doesn't work tell us a bit more about what is going one. Is this in a trigger, script or where? What are you trying to do?
Solving your second problem is easy - just wear rose tinted spectacles.