Page 1 of 1

Disable trigger

Posted: June 12th, 2010, 8:35 pm
by BatterY
How i disable trigger B, when trigger A is triggered?

Let's say we have a lift. The lift has 2 triggers: up and down. A player walks into the trigger A, which is down and the lift lowers. But a player walks into trigger B, which is up, causing the lift move back and forth. How to avoid this?

Re: Disable trigger

Posted: June 12th, 2010, 11:06 pm
by Nightmare
Simple:

Code: Select all

elevator(){
	trigDown = getent("triggerDown","targetname");	//Trigger to move elevator down
	trigUp = getent("triggerUp","targetname");	//Trigger to move elevator up
	ele = getent("elevator","targetname");		//Elevator
	while(1){
 		trigDown waittill("trigger");	//Wait until trigger down
		ele moveZ(-300,5,2.5,2.5);
		ele waittill("movedone");
		wait 5;
 		trigUp waittill("trigger");	//Wait until trigger up
		ele moveZ(300,5,2.5,2.5);
		ele waittill("movedone");
		wait 5;
	}
}

Re: Disable trigger

Posted: June 13th, 2010, 12:32 pm
by BatterY
Thanks, but i'm having another problem here: i need to disable the trigger while the thread is running.
So how i disable triggerUp while elevator() is running..?

Code: Select all

elevator()
{
trigUp = getent("triggerUp","targetname");
ele = getent("elevator","targetname");
while(1)
{
trigUp waittill("trigger");
ele moveZ(-300,5,2.5,2.5);
ele waittill("movedone");
wait 5;
ele moveZ(300,5,2.5,2.5);
ele waittill("movedone2);
wait 1;
}
}

Re: Disable trigger

Posted: June 13th, 2010, 1:29 pm
by Drofder2004
Why disable it?

Nightmare posted a fine script to use.

The loop will stop and wait for the first trigger to be pressed and then after being pressed wait for the second trigger. Then restart.

Trigger A/B will only work once and only alternating.

Re: Disable trigger

Posted: June 13th, 2010, 5:24 pm
by BatterY
I have 2 elevators in my map. other has 2 triggers, other has 1.
The other lift has only 1 trigger because its only one-way.

Re: Disable trigger

Posted: June 13th, 2010, 7:04 pm
by Nightmare
One time use elevator:

Code: Select all

elevator2(){
   trig = getent("trigger","targetname");   //Trigger to move elevator 
   ele = getent("elevator","targetname");      //Elevator
   trig waittill("trigger");   //Wait until trigger
   ele moveZ(-300,5,2.5,2.5);
   ele waittill("movedone");
}