Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CLEARSCREEN.
- SET SHIP:CONTROL:PILOTMAINTHROTTLE TO 0.
- LOCAL lnd IS FALSE.
- LOCAL safeAlt IS 6000.
- LOCAL phase IS 1.
- FUNCTION nextPhase {
- SET phase TO phase + 1.
- }
- LOCAL xPos IS 17.
- LOCAL zPos1 IS 15.
- LOCAL zPos2 IS zPos1 + 1.
- LOCAL zPos3 IS zPos1 + 2.
- PRINT "|----------------|" AT(xPos,zPos1).
- PRINT "| PHASE |" AT(xPos,zPos2).
- PRINT "|----------------|" AT(xPos,zPos3).
- PRINT "|CHUTES: |" AT(xPos,zPos3+1).
- PRINT "|----------------|" AT(xPos,zPos3+2).
- WHEN ALT:RADAR > 0 AND lnd = FALSE THEN {
- PRINT "|ALTITUDE: |" AT(xPos,zPos3+3). PRINT ROUND(ALT:RADAR) AT(xPos+11,zPos3+3).
- PRINT "|----------------|" AT(xPos,zPos3+4).
- PRINT "|vSPEED: |" AT(xPos,zPos3+5). PRINT ROUND(SHIP:VERTICALSPEED) AT(xPos+8,zPos3+5).
- PRINT "|----------------|" AT(xPos,zPos3+6).
- PRINT "|hSPEED: |" AT(xPos,zPos3+7). PRINT ROUND(SHIP:GROUNDSPEED) AT(xPos+8,zPos3+7).
- PRINT "|----------------|" AT(xPos,zPos3+8).
- IF CHUTES {
- PRINT " " AT(xPos+8,zPos3+1).
- PRINT "ON" AT(xPos+9,zPos3+1).
- } ELSE {
- PRINT " " AT(xPos+8,zPos3+1).
- PRINT "OFF" AT(xPos+9,zPos3+1).
- }
- PRINT phase AT(xPos+11,zPos2).
- PRESERVE.
- }
- PRINT "LANDING SEQUENCE STARTED".
- IF SAS {
- SAS OFF.
- }
- IF ALT:RADAR > 7000 {
- RCS ON.
- }
- IF SHIP:GROUNDSPEED > 300 AND ALT:RADAR > 8000 {
- LOCK STEERING TO SRFRETROGRADE.
- }
- LOCK THROTTLE TO 0.
- PRINT "WAITING UNTIL DESCENDING" AT(xPos-3,zPos1-2).
- WAIT UNTIL SHIP:VERTICALSPEED < 0.5.
- PRINT " " AT(xPos-3,zPos1-2).
- LOCK STEERING TO SRFRETROGRADE.
- WHEN ALT:RADAR < 7500 THEN {
- RCS OFF.
- }
- WHEN ALT:RADAR < 3000 THEN {
- IF CHUTES {
- } ELSE {
- CHUTES ON.
- PRINT "DEPLOYING CHUTES".
- PRINT " " AT(xPos+9,zPos3+3).
- PRINT "ON" AT(xPos+9,zPos3+3).
- }
- IF CHUTES {
- PRINT "ON" AT(xPos+9,zPos3+3).
- } ELSE {
- PRINT "OFF" AT(xPos+9,zPos3+3).
- PRINT "CHUTES FAILED TO DEPLOY".
- }
- }
- WAIT 0.
- nextPhase().
- PRINT "WAITING FOR CORRECT ALTITUDE: " + safeAlt.
- WAIT UNTIL ALT:RADAR < safeAlt.
- SET DESIREDVEL TO 200.
- SET T TO 0.
- LOCK THROTTLE TO T.
- WAIT 0.
- nextPhase().
- UNTIL ALT:RADAR < 5 {
- IF ( ALT:RADAR < 10 ) {
- SET DESIREDVEL TO 1.
- }
- ELSE IF( ALT:RADAR < 25 ) {
- SET DESIREDVEL TO 2.
- }
- ELSE IF( ALT:RADAR < 50 ) {
- SET DESIREDVEL TO 5.
- }
- ELSE IF( ALT:RADAR < 100 ) {
- SET DESIREDVEL TO 10.
- GEAR ON.
- // LOCK STEERING TO UP.
- }
- ELSE IF( ALT:RADAR < 250 ) {
- SAS OFF.
- // LOCK STEERING TO UP.
- }
- ELSE IF( ALT:RADAR < 500 ) {
- SET DESIREDVEL TO 25.
- }
- ELSE IF( ALT:RADAR < 1500 ) {
- SET DESIREDVEL TO 50.
- }
- IF SHIP:GROUNDSPEED < 0.5 AND ALT:RADAR < 50 {
- LOCK STEERING TO UP.
- }
- IF( SHIP:VELOCITY:SURFACE:MAG > DESIREDVEL ) {
- SET T TO MIN(1, T + 0.01).
- }
- ELSE {
- SET T TO MAX(0, T - 0.1).
- }
- IF(SHIP:VERTICALSPEED > 0) {
- SET T TO 0.
- }
- IF SHIP:VERTICALSPEED = 0 AND SHIP:GROUNDSPEED < 0.1 {
- PRINT "vSPEED AND hSPEED ALMOST 0 BREAKING LOOP".
- BREAK.
- }
- WAIT 0.001.
- }
- SET lnd TO TRUE.
- nextPhase().
- PRINT "|ALTITUDE: |" AT(xPos,zPos3+3).
- PRINT "LANDED" AT(xPos+11,zPos3+3).
- LOCK THROTTLE TO 0.
- WAIT 3.
- WAIT UNTIL lnd = TRUE.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement