If you create a variable for the objects that can be destroyed you can use is to calculate the 3rd hit. You could make an event such as the collision and add a sub event first to check that the Variable ( lets say hitcount) equals 3. If so, destroy itself. Add another subevent to the collision and check to see if hitcount is less than three. If so, add 1 to hitcount. In fact, make it so it doesn't check that hitcount is equal to 3 instead make it check that it is equal to or greater than 3 (or greater than 2). That way if there is an error and for some reason hitcount is 4 it doesn't cause any problems. The variables would also be ones attached to the objects opposed to a global variable.
For creating one bullet at a time create a global variable called say bulletExists. When creating the bullet, test as wellt that bulletExists equals false or 0. If it is, create the bullet and setting to True or 1. If not, don't make the bullet.
When the bullet is destroyed, in the same event add An action that changes the bulletExists back to false or 0.
In fact, there might already be a system variable you could use. Perhaps instance count? If that equals 0 shoot, else don't. That sort of thing. Maybe.
I'll upload a capx when I can. :)
Note: you have uploaded a caproj there. You need to upload a capx.
<img src="smileys/smiley1.gif" border="0" align="middle" />