If you have your guy create a new bullet when he fires as opposed to using the built in shoot event. Then Have the condition [Bullet collides with Wall] - [Bounce]; however that is unpredictable sometimes. A better way would be to set the direction of the bullet when it collides. And remember, most objects will bounce off at the same angle they hit the surface at, a way to simulate this would be to set the direction of the bullet to it's current direction - 16. This method sometime causes wierd glitches, but at least you get the idea. Also, you would want to have the bullet bounce off of a couple walls then be destroyed. The alterable values of the bullet could be used to track how many times it have collided with a wall. Would have to use a"onle once when event loops" part in there though (for the collisions.)
What I'd do is make 2 bullet's, one is shot, and the other is given Bouncing Movement. (Call em Bullet shot and Bullet bound) Now then, player shoots "Bullet shot" at whatever and when it hit's a wall, kill "Bullet shot" and cereat "Bullet bound" and wherever "Bullet bound" hit's a wall it bounces.
When you're facing a genneral "left" direction, create the bullet and set the direction left.
When you're facing a genneral "right" direction, create the bullet and set the direction right.
If bullet is not overlapping backdrop/active object bullet can bounce off
start fastloop 0 for 500 loops(can be changed)
Loop 0
If bullet is not overlapping backdrop/active object bullet can bounce off
Set position to "whereever" depending on direction
If bullet is overlapping backdrop/active object bullet can bounce off
create semi-transparent "bounce effect"(small yellow flash, etc.)
Set direction to bullet dir + 12 + random( 9 )
add 1 to alt.a
Alt a = 4
destroy bullet.
------------------------------------------
That creates a cool richochet effect, provided I described it properly. Using that you don't actually need to "see" the bullet.