When you use
Actionscript Code:
"shot"+i.hitTest()

you're not really accessing the "shot" MC's at all. Try:

Actionscript Code:
this["shot"+i].hitTest()

To lookup a property of a symbol with AS2 you need to use the array syntax ( "[]" ) described above. This finds an object based on its instance name. With your code, Flash is actually looking for a method called hitTest() on a string value ("shot"+i) but of course there is none so it fails silently.