to make it so that multiple people can use the 2nd option, use printcount loops instead of relays
bricks can only handle one relay loop at once, but can handle many printcount loops
onrelay>self>firerelay
becomes
onprintcountunderflow>self>decrementprintcount[9]
onprintcountunderflow>self>decrementprintcount[1]
and so on
That's what VCE Functions are for. It would also be wise to add a last message check, so you could be like "Gun Attack!" in chat, then right click the fire bullets.
This is the easiest way to do it, and multiple clients can use the function from one brick, although it's always best to use separate bricks and fire the functions off those instead

After clicking the brick, right click to fire bullets. They will shoot out every one second. You may increase or decrease this time, but keep in mind the more loops you have with a short time distance, the greater your lag may be if your computer processor cannot handle it.