1) Booleans are variables that can be either true or false. I made two instance booleans in the player object to keep track of whether or not the player is crouching or shooting.
As you know, the platform behaviour keeps track of jumping, moving and falling. By adding these booleans you can do additional checks to make sure the character is not crouching or shooting when you want to apply the other animations (standing, jumping etc..)
2) I'm not sure what you mean exactly. The gun's image point is at the tip of gun, the origin of the effect is then put to the left so that it spawns with the back part right where the gun image point is.
3) I used the "Spawn another object" action on the "PlayerImages" sprite. This allows you to create an object at another sprites image point. Since we have image points at the gun we want the "PlayerImages" object to spawn an effect at image point 1. You can also select which layer, but we only had one.