All pastes #824 Raw Edit

Snuffkin

public text v1 · immutable
#824 ·published 2004-09-01 19:59 UTC
rendered paste body







START




** Initialisation

(0:100) When 1 seconds have passed, offset by 0,
   (1:202) and variable %restartNotNeeded is less than 1.
            (5:300) set variable %motion to the value 0.  ** Not moving
            (5:300) set variable %ncard to the value 0.   ** ncard is zero
            (5:300) set variable %newDeck to the value 1. ** Current Deck is 1
            (5:300) set variable %nowDeck to the value 1. ** Current Deck is 1
            (5:300) set variable %speed to the value 5.   ** Default Speed
            (5:300) set variable %lda to the value 0.     ** do not lockdown
            (5:300) set variable %breakChance to the value 4. ** breakdown chance
            (5:104) activate text filter number 1.
            (5:300) set variable %restartNotNeeded to the value 1.


** Duplicate this chunk for each deck people can enter at.
(0:7) When somebody moves into position (44,25), ** Enter from Deck 1
      (3:2) at position (10,57) on the map,      ** Unblockable Doorway
            (5:17) move any furre present to (12,54), or to someplace nearby if it's occupied.
            (5:14) move the triggering furre to (10,57) if there's nobody already there.

(0:31) When a furre says {Turbolift Emergency Stop}, ** Allows Exit at Current Floor
   (1:201) and variable %ncard is greater than 0.
            (5:50) set countdown timer 14 to go off in 0 seconds.
            (5:50) set countdown timer 8 to go off in 0 seconds.
            (5:41) place object type 344 at (10,52).
            (5:300) set variable %motion to the value 0.
            (5:41) place object type 2403 at (8,58).
(0:31) When a furre says {Turbolift Emergency Stop},
   (1:201) and variable %ncard is greater than 0.
   (1:200) and variable %nowDeck is equal to 1.
            (5:41) place object type 2403 at (42,26).
(0:31) When a furre says {Turbolift Emergency Stop},
   (1:201) and variable %ncard is greater than 0.
   (1:200) and variable %nowDeck is equal to 2.
            (5:41) place object type 2403 at (26,70).
(0:31) When a furre says {Turbolift Emergency Stop},
   (1:201) and variable %ncard is greater than 0.
   (1:200) and variable %nowDeck is equal to 3.
            (5:41) place object type 2403 at (98,27).
(0:31) When a furre says {Turbolift Emergency Stop},
   (1:201) and variable %ncard is greater than 0.
   (1:200) and variable %nowDeck is equal to 4.
            (5:41) place object type 2403 at (100,85).


(0:31) When a furre says {Turbolift Reset},  ** Allows repair of a broken turbolift and takes it down to deck one.
   (1:201) and variable %ncard is greater than 0.
            (5:300) set variable %motion to the value 1. ** We are in motion.
            (5:300) set variable %newDeck to the value 1. ** New deck is Deck 1.
            (5:41) place object type 2402 at (8,58). ** Close Interior doors
            *      Microsoft: Closing Doors Everwhere. Close all exterior doors.
            (5:41) place object type 2402 at (26,70).
            (5:41) place object type 2402 at (42,26).
            (5:41) place object type 2402 at (98,27).
            (5:41) place object type 2402 at (100,85).

            (5:300) set variable %speed to the value 5. ** One floor every 5 seconds.

            (5:300) set variable %itemFrom to the value 339. ** Base item number for deck meter
            (5:303) take variable %itemFrom and add variable %nowDeck to it. ** Then add current deck number to it to get appropriate reading
            (5:300) set variable %itemTo to the value 339. ** Base item number for deck meter
            (5:303) take variable %itemTo and add variable %newDeck to it. ** Add destination deck number to it to get reading to use when at appropriate deck.
      (3:2) at position (10,52) on the map,
            (5:4) place object type %itemFrom. ** Place current meter.

            (5:11) play sound 20 to every furre who can see the triggering furre. ** Small sound to indicate start of turbolift.
            (5:301) copy the value of variable %itemFrom into variable %itemCurrent. ** What we started at is the item for the meter we're using now.
            (5:50) set countdown timer 14 to go off in %speed seconds. ** This starts the turbolift going.


** The following allows the turbolift to activate.

(0:32) When a furre says something with {Deck} in it, ** These two blocks check we're not already on the destination deck.
   (1:8) and they can see position (12,55), ** Is Inside Turbolift
   (1:200) and variable %motion is equal to 0. ** Not Already In Motion
   (1:1014) and position (10,52) is not object type 344, ** Lift Not Broken-Down
                    ** (coordinates for deck indicator, object number is broken meter)
            (5:314) set variable %newDeck to the number the triggering furre just said.
            (5:300) set variable %sameDeck to the value 0.

(0:32) When a furre says something with {Deck} in it,
   (1:8) and they can see position (12,55),
   (1:200) and variable %motion is equal to 0.
   (1:203) and variable %nowDeck is equal to variable %newDeck.
   (1:1014) and position (10,52) is not object type 344,
            (5:300) set variable %sameDeck to the value 1.


(0:32) When a furre says something with {Deck} in it, **** Main function to start turbolift
   (1:8) and they can see position (12,55),
   (1:200) and variable %motion is equal to 0.
   (1:201) and variable %newDeck is greater than 0.
   (1:202) and variable %newDeck is less than 5.
   (1:200) and variable %sameDeck is equal to 0.
   (1:1014) and position (10,52) is not object type 344,
            (5:300) set variable %motion to the value 1.
            (5:41) place object type 2402 at (8,58).

            *      Microsoft: Closing Doors Everwhere. 
            (5:41) place object type 2402 at (26,70).
            (5:41) place object type 2402 at (42,26).
            (5:41) place object type 2402 at (98,27).
            (5:41) place object type 2402 at (100,85).

            (5:300) set variable %itemFrom to the value 339.
            (5:303) take variable %itemFrom and add variable %nowDeck to it.
            (5:300) set variable %itemTo to the value 339.
            (5:303) take variable %itemTo and add variable %newDeck to it.

      (3:2) at position (10,52) on the map,
            (5:4) place object type %itemFrom.

            (5:11) play sound 20 to every furre who can see the triggering furre.
            (5:301) copy the value of variable %itemFrom into variable %itemCurrent.
            (5:50) set countdown timer 14 to go off in %speed seconds.

** Main loop. Called again and again and again every %speed seconds til we're at destination.

(0:50) When countdown timer 14 goes off,
            (5:300) set variable %tlSF to the value 0. ** This is slightly confusing.
                                                       ** It essentially says 'we've done our work for
						       ** now.' It stops things like the elevator going
						       ** up one deck, then the DS to take it down
						       ** activating and working against it.

(0:50) When countdown timer 14 goes off,
   (1:204) and variable %itemCurrent is greater than variable %itemTo. ** We're going down.
   (1:200) and variable %tlSF is equal to 0.
            (5:304) take variable %itemCurrent and subtract 1 from it. ** Go down.
      (3:2) at position (10,52) on the map,
            (5:4) place object type %itemCurrent.
            (5:300) set variable %tlSF to the value 1.

(0:50) When countdown timer 14 goes off,
   (1:205) and variable %itemCurrent is less than variable %itemTo. ** We're going up.
   (1:200) and variable %tlSF is equal to 0.
            (5:302) take variable %itemCurrent and add 1 to it. ** Go down.
      (3:2) at position (10,52) on the map,
            (5:4) place object type %itemCurrent.
            (5:300) set variable %tlSF to the value 1.

(0:50) When countdown timer 14 goes off,
            (5:300) set variable %there to the value 0. ** Are we there yet?

(0:31) When a furre says {TURBOLIFT DEBUG},
            (5:200) emit message {motion: %motion , nowDeck: %nowDeck , newDeck: %newDeck , itemFrom: %itemFrom , itemTo: %itemTo , itemCurrent: %itemCurrent } to whoever set off the trigger.
            (5:200) emit message {speed: %speed , there: %there , tlSF: %tlSF } to whoever set off the trigger.

(0:50) When countdown timer 14 goes off,
   (1:203) and variable %itemCurrent is equal to variable %itemTo.
            (5:300) set variable %there to the value 1. ** We're at destination.

(0:50) When countdown timer 14 goes off,
   (1:200) and variable %there is equal to 1.
            (5:50) set countdown timer 8 to go off in 1 seconds. ** Opens the doors and lets people out.

(0:50) When countdown timer 14 goes off,
   (1:200) and variable %there is equal to 0.
            (5:50) set countdown timer 14 to go off in %speed seconds. ** If we're not there run this timer again.

** Stop lift
(0:50) When countdown timer 8 goes off,
            (5:300) set variable %motion to the value 0. ** Stopped
            (5:301) copy the value of variable %newDeck into variable %nowDeck. ** Update current floor variable
      (3:2) at position (10,52) on the map,
            (5:4) place object type %itemTo. ** Update meter
      (3:1) everywhere on the whole map,
            (5:41) place object type 2403 at (8,58). ** Open interior door

* ** What door do we open to allow entry when there? (Open exterior door)

(0:50) When countdown timer 8 goes off,
   (1:200) and variable %nowDeck is equal to 1.
            (5:41) place object type 2403 at (42,26).

(0:50) When countdown timer 8 goes off,
   (1:200) and variable %nowDeck is equal to 2.
            (5:41) place object type 2403 at (26,70).

(0:50) When countdown timer 8 goes off,
   (1:200) and variable %nowDeck is equal to 3.
            (5:41) place object type 2403 at (98,27).

(0:50) When countdown timer 8 goes off,
   (1:200) and variable %nowDeck is equal to 4.
            (5:41) place object type 2403 at (100,85).


(0:50) When countdown timer 8 goes off,
   (1:200) and variable %lda is equal to 1. ** LDA says "lockdown/break lift on next stop?"
            (5:41) place object type 344 at (10,52).

** Breakdowns
(0:50) When countdown timer 14 goes off,
   (1:1000) and a random dice roll comes up (%breakChance percent of the time),
            (5:202) emit message { Turbolift Error. Sending automatic distress signal in 10 seconds. } to every furre who can see (12,55).
            (5:50) set countdown timer 18 to go off in 10 seconds. ** Distress signal timer
            (5:50) set countdown timer 8 to go off in 0 seconds. ** Cancel all operation
            (5:50) set countdown timer 14 to go off in 0 seconds. ** Cancel all operation
            (5:41) place object type 344 at (10,52). ** Make meter "broken/locked down"

(0:50) When countdown timer 18 goes off,
            (5:204) emitloud message { Turbolift Error, please send assistance } to everyone on the map.
            (5:300) set variable %alarm to the value 1.


**** You want to duplicate this code for each floor, changing only the Cause coordinates
**** and the "newDeck" setting line to the appropriate floor.

(0:7) When somebody moves into position (26,70), ** Bump into exterior turbolift door to call lift
   (1:3) and they move into object type 2402, ** and the door is closed
   (1:200) and variable %motion is equal to 0. ** and the lift is not busy
   (1:1014) and position (10,52) is not object type 344, ** and the lift is not brokendown/lockdown
            (5:300) set variable %motion to the value 1. ** Move the lift..
            (5:300) set variable %newDeck to the value 2. ** to the appropriate deck...

            (5:41) place object type 2402 at (8,58). ** Close the interior door...

            *      Microsoft: Closing Doors Everwhere. 
            (5:41) place object type 2402 at (26,70). ** Close the exterior door...
            (5:41) place object type 2402 at (42,26).
            (5:41) place object type 2402 at (98,27).

            (5:300) set variable %itemFrom to the value 339. ** Setup the meter
            (5:303) take variable %itemFrom and add variable %nowDeck to it.
            (5:300) set variable %itemTo to the value 339.
            (5:303) take variable %itemTo and add variable %newDeck to it.

      (3:2) at position (10,52) on the map,
            (5:4) place object type %itemFrom. ** Update the meter

            (5:11) play sound 20 to every furre who can see the triggering furre. ** Notification sound
            (5:301) copy the value of variable %itemFrom into variable %itemCurrent. ** Where we started from is where we are now
            (5:50) set countdown timer 14 to go off in %speed seconds. ** Start the loop of movement

            (5:200) emit message {Turbolift called.} to whoever set off the trigger.


** Allow people to leave the lift

(0:7) When somebody moves into position (8,58), ** Move into interior doorway
   (1:200) and variable %motion is equal to 0. ** and we're stopped
   (1:200) and variable %nowDeck is equal to 1. ** and on deck one
      (3:2) at position (42,26) on the map, ** Unblockable doorwat
            (5:17) move any furre present to (40,29), or to someplace nearby if it's occupied.
      (3:5) where the triggering furre (moved from/is standing at),
            (5:14) move the triggering furre to (42,26) if there's nobody already there. ** put us at Deck 1 exterior doorway

(0:7) When somebody moves into position (8,58),
   (1:200) and variable %motion is equal to 0.
   (1:200) and variable %nowDeck is equal to 2.
      (3:2) at position (26,70) on the map,
            (5:17) move any furre present to (24,69), or to someplace nearby if it's occupied.
      (3:5) where the triggering furre (moved from/is standing at),
            (5:14) move the triggering furre to (26,70) if there's nobody already there.

(0:7) When somebody moves into position (8,58),
   (1:200) and variable %motion is equal to 0.
   (1:200) and variable %nowDeck is equal to 3.
      (3:2) at position (98,27) on the map,
            (5:17) move any furre present to (98,30), or to someplace nearby if it's occupied.
      (3:5) where the triggering furre (moved from/is standing at),
            (5:14) move the triggering furre to (98,27) if there's nobody already there.

(0:7) When somebody moves into position (8,58),
   (1:200) and variable %motion is equal to 0.
   (1:200) and variable %nowDeck is equal to 4.
      (3:2) at position (100,85) on the map,
            (5:17) move any furre present to (96,86), or to someplace nearby if it's occupied.
      (3:5) where the triggering furre (moved from/is standing at),
            (5:14) move the triggering furre to (100,85) if there's nobody already there.








END