No prob.
Yes, it works. Had to remove that trigger part though.
final code (for others maybe
);
Code: Select all
main(){
thread elevator_init();
}
elevator_init(){
// elevator 1
thread elevator_start(getent ("elevatorright_base", "targetname"),
getent ("elevatorright", "targetname"),
getent ("elevatorhit", "targetname"),
getent ("speaker_one", "targetname"),
"elevator1_hit_player");
}
elevator_start(elevator, move_trig, hit_trig, speaker, elendon){
move_trig enablelinkto();
move_trig linkto(elevator);
hit_trig enablelinkto();
hit_trig linkto(elevator);
thread elevator(elevator, move_trig, speaker, elendon);
thread elevator_hit(elevator, move_trig, hit_trig, speaker, elendon);
}
elevator(elevator, move_trig, speaker, elendon){
level endon(elendon);
// if we are already at this position it the elevator won't move
elevator moveTo((-128, 2128, 10), 1.4);
if(elevator.origin != (-128, 2128, 10))
speaker playsound ("elevator_move");
elevator waittill("movedone");
speaker playsound ("elevator_stop");
while(1)
{
move_trig waittill("trigger");
elevator moveTo((-128, 2128, 304), 1.4);
speaker playsound ("elevator_move");
elevator waittill("movedone");
speaker playsound ("elevator_stop");
wait 2;
elevator moveTo((-128, 2128, 10), 1.4);
speaker playsound ("elevator_move");
elevator waittill("movedone");
speaker playsound ("elevator_stop");
}
}
elevator_hit(elevator, move_trig, hit_trig, speaker, elendon){
// all elevator parts and triggers
while(1)
{
hit_trig waittill("trigger");
level notify(elendon);
elevator moveTo((-128, 2128, 304), 1.4);
speaker playsound ("elevator_move");
elevator waittill("movedone");
speaker playsound ("elevator_stop");
wait 2;
thread elevator(elevator, move_trig, speaker, elendon);
wait 0.5;
}
}