Well anyways, here it is:
Code: Select all
thread elevator
elevator:
//////////////////////////////////////
//////////INIT ELEVATOR THINGS////////
//////////////////////////////////////
//
//NOTE: All elevator objects and threads are denoted with "elevator_" prefix
//
//thread elevator_lights
//
level.elevator_currentlevel = 1
level.elevator_enroute = 0
level.elevator_level0_doors_status = 0
level.elevator_level1_doors_status = 1
level.elevator_cab_doors_status = 1
thread elevator_level0_triggered
thread elevator_level1_triggered
thread elevator_button_triggered
///BINDING///
$elevator_light bind $elevator_cab
$elevator_button bind $elevator_cab
$elevator_cab_door1 bind $elevator_cab
$elevator_cab_door2 bind $elevator_cab
$elevator_cab_speaker bind $elevator_cab
$elevator_button_speaker bind $elevator_cab
$elevator_cab_doors_speaker bind $elevator_cab
thread elevator_debug1
//////////////////////////////////////
//////////ELEVATOR LIGHTS/////////////
//////////////////////////////////////
elevator_lights:
iprintln "LIGHTS ON"
$elevator_light light 1 1 1 256
end
//2728
////////////////////////////////////
///////////LEVEL 0 TRIGGER//////////
////////////////////////////////////
elevator_level0_triggered:
$elevator_level0_trigger waittill trigger
$elevator_level0_trigger nottriggerable
$elevator_level1_trigger nottriggerable
if (level.elevator_enroute == 0 && level.elevator_currentlevel == 0)
{
iprintln "Stopped: Level 0"
//if elevator is stopped at level 0
$elevator_level0_trigger triggerable
$elevator_level1_trigger triggerable
}
else
{
if (level.elevator_enroute == 1)
{
iprintln "Moving"
//moving, either level
$elevator_level0_trigger triggerable
$elevator_level1_trigger triggerable
}
else
{
if (level.elevator_enroute == 0 && level.elevator_currentlevel == 1)
{
iprintln "Stopped: Level 1"
//if stopped at level 1
thread elevator_level0_recall
}
else
{
iprintln "INVALID"
//if neither
$elevator_level0_trigger triggerable
$elevator_level1_trigger triggerable
}
}
}
goto elevator_level0_triggered
end
////////////////////////////////////
///////////LEVEL 1 TRIGGER//////////
////////////////////////////////////
elevator_level1_triggered:
$elevator_level1_trigger waittill trigger
$elevator_level0_trigger nottriggerable
$elevator_level1_trigger nottriggerable
if (level.elevator_enroute == 0 && level.elevator_currentlevel == 0)
{
iprintln "Stopped: Level 0"
//if elevator is stopped at level 0
thread elevator_level1_recall
}
else
{
if (level.elevator_enroute == 1)
{
iprintln "Moving"
//moving, either level
$elevator_level0_trigger triggerable
$elevator_level1_trigger triggerable
}
else
{
if (level.elevator_enroute == 0 && level.elevator_currentlevel == 1)
{
iprintln "Stopped: Level 1"
//if stopped at level 1
$elevator_level0_trigger triggerable
$elevator_level1_trigger triggerable
}
else
{
iprintln "INVALID"
//if neither
$elevator_level0_trigger triggerable
$elevator_level1_trigger triggerable
}
}
}
goto elevator_level1_triggered
end
//////////////////////////////
/////LEVEL0 RECALL////////////
//////////////////////////////
elevator_level0_recall:
thread elevator_cab_doors_do
wait .5
thread elevator_level1_doors_do
wait 4.5
iprintln "RECALLING to level 0"
level.elevator_enroute = 1
thread elevator_cab_move_down
wait 45
level.elevator_enroute = 0
level.elevator_currentlevel = 0
wait 2.5
thread elevator_cab_doors_do
wait .5
thread elevator_level0_doors_do
wait 5
$elevator_level0_trigger triggerable
$elevator_level1_trigger triggerable
iprintln "Triggerable again"
///LIGHTS///
end
//////////////////////////////
/////LEVEL1 RECALL////////////
//////////////////////////////
elevator_level1_recall:
thread elevator_cab_doors_do
wait .5
thread elevator_level0_doors_do
wait 4.5
iprintln "RECALLING to level 1"
level.elevator_enroute = 1
thread elevator_cab_move_up
wait 45
level.elevator_enroute = 0
level.elevator_currentlevel = 1
wait 2.5
thread elevator_cab_doors_do
wait .5
thread elevator_level1_doors_do
wait 5
$elevator_level0_trigger triggerable
$elevator_level1_trigger triggerable
iprintln "Triggerable again"
///LIGHTS///
end
///////////////////////////////
/////MOVE UP///////////////////
///////////////////////////////
elevator_cab_move_up:
$elevator_cab moveUp 2592
$elevator_cab time 45
$elevator_cab move
$elevator_cab_speaker loopsound sub_idle1
level.elevator_enroute = 1
$elevator_cab waittill movedone
wait 45
$elevator_cab_speaker stoploopsound
$elevator_cab_speaker playsound subclamp_open
level.elevator_enroute = 0
level.elevator_currentlevel = 1
$elevator_button_trigger triggerable
iprintln "Move done"
end
///////////////////////////////
/////MOVE DOWN/////////////////
///////////////////////////////
elevator_cab_move_down:
$elevator_cab moveDown 2592
$elevator_cab time 45
$elevator_cab move
$elevator_cab_speaker loopsound sub_idle1
level.elevator_enroute = 1
$elevator_cab waittill movedone
wait 45
$elevator_cab_speaker stoploopsound
$elevator_cab_speaker playsound subclamp_open
level.elevator_enroute = 0
level.elevator_currentlevel = 0
$elevator_button_trigger triggerable
iprintln "Move done"
end
///////////////////////////////////
/////////ELEVATOR BUTTON///////////
///////////////////////////////////
elevator_button_triggered:
$elevator_button_trigger triggerable
$elevator_button_trigger waittill trigger
$elevator_button_trigger nottriggerable
$elevator_button_speaker playsound switchbox1
if (level.elevator_enroute == 0 && level.elevator_currentlevel == 0)
{
iprintln "Stopped: Level 0"
//if elevator is stopped at level 0
wait 2.5
thread elevator_cab_doors_do
//$elevator_level0_doors_speaker loopsound tank_snd_move
wait .5
thread elevator_level0_doors_do
wait 2
//$elevator_level0_doors_speaker stoploopsound
$elevator_cab_speaker playsound subclamp_open
wait 2
thread elevator_go_level0
wait 47.5
thread elevator_cab_doors_do
wait .5
thread elevator_level1_doors_do
wait 5
$elevator_button_trigger triggerable
}
else
{
if (level.elevator_enroute == 1)
{
iprintln "Moving"
//moving, either level
$elevator_button_trigger triggerable
}
else
{
if (level.elevator_enroute == 0 && level.elevator_currentlevel == 1)
{
iprintln "Stopped: Level 1"
//if stopped at level 1
wait 2.5
thread elevator_cab_doors_do
//$elevator_level0_doors_speaker loopsound tank_snd_move
wait .5
thread elevator_level1_doors_do
wait 2
//$elevator_level0_doors_speaker stoploopsound
$elevator_cab_speaker playsound subclamp_open
wait 2
thread elevator_go_level1
wait 47.5
thread elevator_cab_doors_do
wait .5
thread elevator_level0_doors_do
wait 5
$elevator_button_trigger triggerable
}
else
{
iprintln "INVALID"
//if neither
$elevator_button_trigger triggerable
}
}
}
//thread elevator_cab_button_do
$elevator_button_trigger triggerable
goto elevator_button_triggered
end
/////////////////////////////////////
////////////////GO LEVEL 0///////////
/////////////////////////////////////
elevator_go_level0:
iprintln "GOING to level1"
thread elevator_cab_move_up
wait 45
level.elevator_currentlevel = 1
$elevator_button_trigger triggerable
iprintln "Button triggerable"
end
/////////////////////////////////////
////////////////GO LEVEL 1///////////
/////////////////////////////////////
elevator_go_level1:
iprintln "GOING to level0"
thread elevator_cab_move_down
wait 45
level.elevator_currentlevel = 0
$elevator_button_trigger triggerable
iprintln "Button triggerable"
end
/////DEBUG1////
elevator_debug1:
iprintln "En route: " level.elevator_enroute
wait 5
goto elevator_debug1
end
///
//////////////////////////////////////
//////////CAB DOORS OPEN//////////////
//////////////////////////////////////
elevator_cab_doors_open:
$elevator_cab_door1 moveEast 96
$elevator_cab_door1 time 2
$elevator_cab_door1 move
$elevator_cab_door2 moveWest 96
$elevator_cab_door2 time 2
$elevator_cab_door2 move
wait 2
level.elevator_cab_doors_status = 1
end
//////////////////////////////////////
//////////CAB DOORS CLOSE/////////////
//////////////////////////////////////
elevator_cab_doors_close:
$elevator_cab_door1 moveWest 96
$elevator_cab_door1 time 2
$elevator_cab_door1 move
$elevator_cab_door2 moveEast 96
$elevator_cab_door2 time 2
$elevator_cab_door2 move
level.elevator_cab_doors_status = 0
end
///////////////////////////////////////
/////////LEVEL 0 DOORS OPEN////////////
///////////////////////////////////////
elevator_level0_doors_open:
$elevator_level0_door1 moveWest 96
$elevator_level0_door1 time 2
$elevator_level0_door1 move
$elevator_level0_door2 moveEast 96
$elevator_level0_door2 time 2
$elevator_level0_door2 move
wait 2
level.elevator_level0_doors_status = 1
end
///////////////////////////////////////
/////////LEVEL 0 DOORS CLOSE///////////
///////////////////////////////////////
elevator_level0_doors_close:
$elevator_level0_door1 moveEast 96
$elevator_level0_door1 time 2
$elevator_level0_door1 move
$elevator_level0_door2 moveWest 96
$elevator_level0_door2 time 2
$elevator_level0_door2 move
wait 2
level.elevator_level0_doors_status = 0
end
///////////////////////////////////////
/////////LEVEL 1 DOORS OPEN////////////
///////////////////////////////////////
elevator_level1_doors_open:
$elevator_level1_door1 moveEast 96
$elevator_level1_door1 time 2
$elevator_level1_door1 move
$elevator_level1_door2 moveWest 96
$elevator_level1_door2 time 2
$elevator_level1_door2 move
wait 2
level.elevator_level1_doors_status = 1
end
///////////////////////////////////////
/////////LEVEL 1 DOORS CLOSE///////////
///////////////////////////////////////
elevator_level1_doors_close:
$elevator_level1_door1 moveWest 96
$elevator_level1_door1 time 2
$elevator_level1_door1 move
$elevator_level1_door2 moveEast 96
$elevator_level1_door2 time 2
$elevator_level1_door2 move
wait 2
level.elevator_level1_doors_status = 0
end
////////////////////////////////////////
/////////LEVEL 0 DOORS DO///////////////
////////////////////////////////////////
elevator_level0_doors_do:
if (level.elevator_level0_doors_status == 0)
{
//$elevator_generator1_speaker loopsound e1l4_machine_loop
//$elevator_generator2_speaker loopsound e1l4_machine_loop
thread elevator_level0_doors_open
wait 2.5
$elevator_cab_speaker playsound subclamp_open
//wait 47.5
//$elevator_generator1_speaker stoploopsound
//$elevator_generator2_speaker stoploopsound
}
else
{
if (level.elevator_level0_doors_status == 1)
{
//$elevator_generator1_speaker loopsound e1l4_machine_loop
//$elevator_generator2_speaker loopsound e1l4_machine_loop
thread elevator_level0_doors_close
wait 2.5
$elevator_cab_speaker playsound subclamp_open
//wait 47.5
//$elevator_generator1_speaker stoploopsound
//$elevator_generator2_speaker stoploopsound
}
else
{
iprintln "INVALID"
}
}
end
////////////////////////////////////////
/////////LEVEL 1 DOORS DO///////////////
////////////////////////////////////////
elevator_level1_doors_do:
if (level.elevator_level1_doors_status == 0)
{
//$elevator_generator1_speaker loopsound e1l4_machine_loop
//$elevator_generator2_speaker loopsound e1l4_machine_loop
thread elevator_level1_doors_open
wait 2.5
$elevator_cab_speaker playsound subclamp_open
//wait 47.5
//$elevator_generator1_speaker stoploopsound
//$elevator_generator2_speaker stoploopsound
}
else
{
if (level.elevator_level1_doors_status == 1)
{
//$elevator_generator1_speaker loopsound e1l4_machine_loop
//$elevator_generator2_speaker loopsound e1l4_machine_loop
thread elevator_level1_doors_close
wait 2.5
$elevator_cab_speaker playsound subclamp_open
//wait 47.5
//$elevator_generator1_speaker stoploopsound
//$elevator_generator2_speaker stoploopsound
}
else
{
iprintln "INVALID"
}
}
end
////////////////////////////////////////
/////////CAB DOORS DO///////////////////
////////////////////////////////////////
elevator_cab_doors_do:
if (level.elevator_cab_doors_status == 0)
{
$elevator_generator1_speaker loopsound e1l4_machine_loop
$elevator_generator2_speaker loopsound e1l4_machine_loop
thread elevator_cab_doors_open
$elevator_cab_doors_speaker loopsound tank_snd_move
wait 2.5
//$elevator_cab_speaker playsound subclamp_open
$elevator_cab_doors_speaker stoploopsound
wait 47.5
$elevator_generator1_speaker stoploopsound
$elevator_generator2_speaker stoploopsound
}
else
{
if (level.elevator_cab_doors_status == 1)
{
$elevator_generator1_speaker loopsound e1l4_machine_loop
$elevator_generator2_speaker loopsound e1l4_machine_loop
thread elevator_cab_doors_close
$elevator_cab_doors_speaker loopsound tank_snd_move
wait 2.5
//$elevator_cab_speaker playsound subclamp_open
$elevator_cab_doors_speaker stoploopsound
wait 47.5
$elevator_generator1_speaker stoploopsound
$elevator_generator2_speaker stoploopsound
}
else
{
iprintln "INVALID"
}
}
end
/*
////////////////////////////////////////////
////////////CAB BUTTON DOORS DO/////////////
////////////////////////////////////////////
elevator_cab_button_do:
if (level.elevator_enroute == 0 && level.elevator_currentlevel == 0)
{
//if elevator is stopped at level 0
wait 2.5
thread elevator_cab_doors_do
wait .5
thread elevator_level0_doors_do
}
else
{
if (level.elevator_enroute == 1)
{
//moving, either level
}
else
{
if (level.elevator_enroute == 0 && level.elevator_currentlevel == 1)
{
//if stopped at level 1
thread elevator_cab_doors_do
thread elevator_level1_doors_do
}
else
{
iprintln "INVALID"
//if neither
$elevator_button_trigger triggerable
}
}
}
end
*/
end
I think I have moved up a notch on my scripting ability....


