On event 49 change "Else" to "'pistol ammo' greater than 0". It seems that while ELSE works in most cases it doesn't work in that case.
Only one "playercone" is needed so instead of spawning a "playercone" set it's position to "player1box".
Change "player1box pick closest to zombiebox.X, .Y" to "zombiebox pick closest to player1box.X, .Y" as we want the closest zombie not the closest player.
The condition "zombiebox overlaps playercone" needs to be changed to "zombiebox overlaps at offset (0,0) playercone" because otherwise a bullet will be shot at each zombiebox in the playercone.
Here is a modification of your cap with those fixes and a few more: download
+Muzzle animation unchecked Loop so it can be destroyed when it's animation is finished.
+added else event (event 52) so if there are no zombieboxes to shoot, a bullet will just be shot in the same direction as the player.
+cleaned up events 10-17 so they just set the angle of Player1 and set a global variable "DirectionPressed" to 1 which is previously set to 0 in event 3. "DirectionPressed" is then used in the weapon handling (event 48) so you don't have to handle all 8 directions all over again.
+ Finally Event 18 is changed to:
[code:3a1mu8cq]+ Player1box: is moving
-> Player1: Set animation to "Walk" & Player1 ('Weaponout')
+ System: Else
-> Player1: Set animation to "Stand" & Player1 ('Weaponout')[/code:3a1mu8cq]
I hope all that makes sense, let me know if anything doesn't. Cool project, has that gta feel to it.