Code:
stuff()
{
	trigs = [];
	trigs[trigs.size] = getent("trig_first", "targetname");
	trigs[trigs.size] = getent("trig_second", "targetname");
	trigs[trigs.size] = getent("trig_third", "targetname");
	
	for(i = 0; i < trigs.size; i++)
		trigs[i] thread dotrig(i, trigs[0]);
	nextnum = 0;
	while(true)
	{
		trigs[0] waittill("triggernum", num);
		if(num == nextnum)
		{
			nextnum++;
			if(nextnum == trigs.size)
			{
				nextnum = 0;
				//do elevator
			}
		}
		else
			nextnum = 0; //failed to do correct order
	}
}

dotrig(num, parent)
{
	while(true)
	{
		self waittill("trigger");
		parent notify("triggernum", num);
	}
}
Now added with press-wrong-button-you-have-to-start-again functionality