You've got R0J0Hound's Sprite Sheet plugin, but you aren't using it.
Don't break things out so much. Remember, everything that isn't a trigger gets run 60 times a second, so checking if HasWeapon is 1, 60 times a second is wasteful. You know when the weapon has changed, so do the code right then, or use a function if you feel you will be calling this in different places. Also, use Else instead of checking for the opposite of something you just checked.