-------------------------beginning of code----------------------------
Flags have all been set to false.
llListen is running.
//Stage 1
if ( message == "Object 1 POWER ON"

{
llSay ( Yes yes, object 1 is now ON)
flag1 = TRUE;
}
//Stage 2
if(message == "object 2 POWER ON"

{
llSay( Object 2 is now ON)
flag2 = TRUE;
}
//Stage3
if(message == "Can Object 1 talk to Object 2?" && flag1)
{
llSay(no, object 2 needs to be powered up first.)
}
//Stage 4
if (message == "Can Object 1 now talk to object 2?" && flag2)
{
llSay( Yes, they both can talk to each other because now they're both ON"

}
-------------------------end of code----------------------------
The problem I have is when the user successfully go through Stage 4, Stage 3 is also carried out automatically (they are assuming flag 2 is already achieved, they will post everything from then until the flag on the current input)
I'm gonna give a run through if some people still don't understand:
User types all the necessary inputs for Stage 1 and Stage 2 (in order to get to Stage 4). When User finally types Stage 4 "Can Object 1 now talk to object 2?", we expect the program to run and say "Yes, they can... etc". But instead, it ALSO posts Stage 3 which is "No, they can't because both objects have to be ON". Which is NOT right.
How do I solve this problem? Thank you for your time