You need to introduce some variables in there rather than keep using the OSS as a condition, give me a while and I'll dig out my old test maps and see what triggers I used. I think in the end I went for having two shafts one up one down, but I'll doublecheck. I do know that reseting the OSS can be a little buggy and doesn't always happen.
Edit Okay I've looked at my test map and you can go up or down as many times as you like, so if you're moving your squad seperately you can send them up one at a time, but if you go straight up/down, up/down more than twice you'll go into a feedback loop. So I put a staircase in so that once your squad goes up it can come down via a different route.
Edit(2) Okay I've fixed the looping, basically I'd forgotten to change the action which resets the 'off' variable when I copied the trigger.
What I did was
I set up 4 variables, two switches tagged named 'lvl1' & 'lvl2' and two zones 'lvl1' & 'lvl2'.
trigger - 'start up'
condition :
always
action :
set mission variable 'up' is 'f'
set mission variable 'down' is 'f'
set mission variable 'on' is 'f'
set mission variable 'off' is 'f'
all the following triggers are preserved.
trigger - 'set variable up true'
condition :
object script state lvl1 checked
action :
set mission variable 'up' is 't'
trigger - 'set variable up false'
condition :
object script state lvl1 unchecked
action :
set mission variable 'up' is 'f'
trigger - 'set variable down true'
condition :
object script state lvl2 checked
action :
set mission variable 'down' is 't'
trigger - 'set variable down false'
condition :
object script state lvl2 unchecked
action :
set mission variable 'down' is 'f'
then to move the squad members
trigger - 'move recruit1 up'
condition :
recruit1 has more than 0 alive in lvl1 zone
mission variable up is 't'
mission variable on is 'f'
action :
move unit recruit1 to lvl2_wp
centerview for Human on lvl2_wp
B wait 1
set mission variable 'on' is 't'
trigger - 'move recruit1 up (2)'
condition :
recruit1 has more than 0 alive in lvl1 zone
mission variable up is 'f'
mission variable on is 't'
action :
move unit recruit1 to lvl2_wp
centerview for Human on lvl2_wp
B wait 1
set mission variable 'on' is 'f'
trigger - 'move recruit1 down'
condition :
recruit1 has more than 0 alive in lvl2 zone
mission variable down is 't'
mission variable off is 'f'
action :
move unit recruit1 to lvl1_wp
centerview for Human on lvl1_wp
B wait 1
set mission variable 'down' is 't'
trigger - 'move recruit1 down (2)'
condition :
recruit1 has more than 0 alive in lvl2 zone
mission variable down is 'f'
mission variable off is 't'
action :
move unit recruit1 to lvl1_wp
centerview for Human on lvl1_wp
B wait 1
set mission variable 'off' is 'f'
And the same for the other 5 squad members.
Basically the variables 'on' & 'off' just prevent the trigger from firing when you enter the elevator, before you've had a chance to hit the switch. Rather than having a trigger to try and reset the OSS of the switches by using the variables I can then just fire the triggers by turning the switches on or off with my squad members. Though that does mean using two triggers to move each actor up and another two triggers to move them down.