So I have this code running, but what happens is that the event repeats and acts like a blinking lights. What I need to happen is that after the conditions were met, led 1 and led 2 only lits up for 3 seconds then led 3 will lit up for the entire time.
You need to keep track of what you are doing, and what has been done.
For this, you need some more variables.
In this case i think a variable called event and another called handled would do.
Now if all buttons and handled return 0, you set event to 1.
Then if event is 1, you'll have whatever lights you want lit, to do so.
Now your timer can start.
After the timer has lapsed, you can set the lights you want lit another time, and set handled to 1.
You can easily expand this later with a reset function.
Because this is in loop and runs over and over again.
If you let go of the button and press it again, what would happen then ?
You put a delay() in there, so this takes about 3.000003 seconds to occur.
If you get rid of the delay as you should, the events would occur thousands of times per second.
There's also a way of blocking anything to happen after the first event is completed.
You'd have to reset the Arduino to get it going again.
Well, actually multiple ways, Robin2 mentioned one, i'm not going to mention the other one as it doesn't help you in any way to understand how things work.