main:
$dummy hide //hides the step that is drawn as the "master step"
$dummy notsolid
level.modelstep = "*29"
level.stepspeed = 0.5
level.stepmovecount = 0 //counts the number of steps moved
level.stepset = 0 //counts the number of sets of steps
level.Anorth = ( 0 16 0 );level.Aeast = ( 16 0 270 );level.Asouth = ( 0 -16 180 );level.Awest = ( -16 0 90 );level waittill prespawn
level waittill spawn
wait 3 //to delete
iprintlnbold "is it working" //to delete
thread escalator_prep (level.stepset + 1 ) (1000 148 264) level.Awest 18;wait (1.25 + (level.stepsnumber * 0.05))
thread escalator_prep (level.stepset + 1 ) (912 148 264) level.Anorth 18 //position direction stepsnumber setnumber
end
// Moving Escalator !!!1st release!!!
//credit also goes to WACKO for escalator mapping
/////////////////////////////////////////////////////
//__________________the beginning__________________//
/////////////////////////////////////////////////////
//sets the steps to the typed in commands (positions and directions number_of_steps set_no.)
escalator_prep level.stepset level.escstepposition level.stepdirection level.stepsnumber:
level.idnumber = -2 //steps position in set
thread stepspawnertop
end
//setup to create the stairs
stepspawnertop:
wait 0.05;local.step = spawn script_object;local.step time level.stepspeed;local.step model level.modelstep;local.step.origin = ((level.escstepposition[0] + (level.idnumber * level.stepdirection[0])) (level.escstepposition[1] + (level.idnumber * level.stepdirection[1])) (level.escstepposition[2] + (level.idnumber * 0)));local.step.angles = (0 level.stepdirection[2] 0);local.step.targetname = ("escalator_step" + level.stepset);level.idnumber = (level.idnumber + 1)
if (level.idnumber < 1)
{thread stepspawnertop}
else
{thread stepspawnercentre}
end
//setup to create the stairs continued
stepspawnercentre:
wait 0.05;local.step = spawn script_object;local.step time level.stepspeed;local.step model level.modelstep;local.step.origin = ((level.escstepposition[0] + (level.idnumber * level.stepdirection[0])) (level.escstepposition[1] + (level.idnumber * level.stepdirection[1])) (level.escstepposition[2] + (level.idnumber * -16)));local.step.angles = (0 level.stepdirection[2] 0);local.step.targetname = ("escalator_step" + level.stepset);level.idnumber = (level.idnumber + 1)
if (level.idnumber < level.stepsnumber)
{thread stepspawnercentre}
else
{level.idnumberbottom = (level.idnumber - 1);thread stepspawnerbottom}
end
//setup to create the stairs end
stepspawnerbottom:
wait 0.05;local.step = spawn script_object;local.step time level.stepspeed;local.step model level.modelstep;local.step.origin = ((level.escstepposition[0] + (level.idnumber * level.stepdirection[0])) (level.escstepposition[1] + (level.idnumber * level.stepdirection[1])) (level.escstepposition[2] + (level.idnumberbottom * -16)));local.step.angles = (0 level.stepdirection[2] 0);local.step.targetname = ("escalator_step" + level.stepset);level.idnumber = (level.idnumber + 1)
if (level.idnumber < (level.stepsnumber + 3))
{thread stepspawnerbottom}
else
{iprintlnbold "completed"}
end
///////////////////////////////////////////////////
//__________________the calling__________________//
///////////////////////////////////////////////////
//finding the distance for stairs to move
//including test at top
escalator1_down:
thread escalator_down 2
end
escalator_down level.stepset:
$escalator1_trigger_down nottriggerable
if (level.stepmovecount < (level.stepsnumber + 7))
{
$(escalator_step + level.stepset) thread move_down1
wait level.stepspeed
level.stepmovecount = (level.stepmovecount + 1)
thread escalator1_down
}
else
{
level.stepmovecount = 0
$escalator1_trigger_down triggerable
}
// }
end
//////////////////////////////////////////////////
//__________________the motion__________________//
//////////////////////////////////////////////////
//moving stairs from top to bottom
move_down1:
//moving top steps //moving bottoms steps
if ((self.origin == (level.escstepposition + (0 -32 0))) || (self.origin == (level.escstepposition + (0 -16 0))))
{self thread showme;self moveNorth 16;self waitmove}
else
//moving bottoms steps
if (self.origin == (level.escstepposition + (0 272 -272))) //(912 420 -8))
{self moveNorth 16;self waitmove}
else
if (self.origin == (level.escstepposition + (0 288 -272))) //(912 436 -8))
{self moveNorth 16;self waitmove}
else
if (self.origin == (level.escstepposition + (0 304 -272))) //(912 452 -8))
{self thread hideme;self moveNorth 16;self waitmove}
else
if (self.origin == (level.escstepposition + (0 320 -272))) //(912 468 -8))
{self thread hideme;self moveto (level.escstepposition + (0 -32 0));self waitmove}
else
//moving centre steps
{self moveNorth 16;self moveDown 16;self waitmove}
end
//moving stairs from bottom to top
move_up1:
end
//////////////////////////////////////////////////////
//__________________the tricky bit__________________//
//////////////////////////////////////////////////////
////////////////////////////////////////////////////
//__________________the easy bit__________________//
////////////////////////////////////////////////////
//temporarily removes the object
hideme:
self hide
self notsolid
end
//retrieves the removed object
showme:
self show
self solid
end
////////////////////////////////////////////////////
//__________________the triggers__________________//
////////////////////////////////////////////////////
/*this will spawn the steps from 1 previously made otherwise moving
steps currently made will look odd with the lighting
if ur still wanting this then i'll finish it off within the week
*/