Advertisement
tomte55

kOS Lander Script

May 8th, 2017
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.15 KB | None | 0 0
  1.  
  2. CLEARSCREEN.
  3. SET SHIP:CONTROL:PILOTMAINTHROTTLE TO 0.
  4.  
  5. LOCAL lnd IS FALSE.
  6. LOCAL safeAlt IS 6000.
  7. LOCAL phase IS 1.
  8.  
  9. FUNCTION nextPhase {
  10. SET phase TO phase + 1.
  11. }
  12.  
  13. LOCAL xPos IS 17.
  14. LOCAL zPos1 IS 15.
  15. LOCAL zPos2 IS zPos1 + 1.
  16. LOCAL zPos3 IS zPos1 + 2.
  17.  
  18. PRINT "|----------------|" AT(xPos,zPos1).
  19. PRINT "| PHASE |" AT(xPos,zPos2).
  20. PRINT "|----------------|" AT(xPos,zPos3).
  21. PRINT "|CHUTES: |" AT(xPos,zPos3+1).
  22. PRINT "|----------------|" AT(xPos,zPos3+2).
  23.  
  24. WHEN ALT:RADAR > 0 AND lnd = FALSE THEN {
  25. PRINT "|ALTITUDE: |" AT(xPos,zPos3+3). PRINT ROUND(ALT:RADAR) AT(xPos+11,zPos3+3).
  26. PRINT "|----------------|" AT(xPos,zPos3+4).
  27. PRINT "|vSPEED: |" AT(xPos,zPos3+5). PRINT ROUND(SHIP:VERTICALSPEED) AT(xPos+8,zPos3+5).
  28. PRINT "|----------------|" AT(xPos,zPos3+6).
  29. PRINT "|hSPEED: |" AT(xPos,zPos3+7). PRINT ROUND(SHIP:GROUNDSPEED) AT(xPos+8,zPos3+7).
  30. PRINT "|----------------|" AT(xPos,zPos3+8).
  31.  
  32. IF CHUTES {
  33. PRINT " " AT(xPos+8,zPos3+1).
  34. PRINT "ON" AT(xPos+9,zPos3+1).
  35. } ELSE {
  36. PRINT " " AT(xPos+8,zPos3+1).
  37. PRINT "OFF" AT(xPos+9,zPos3+1).
  38. }
  39. PRINT phase AT(xPos+11,zPos2).
  40. PRESERVE.
  41. }
  42.  
  43. PRINT "LANDING SEQUENCE STARTED".
  44.  
  45. IF SAS {
  46. SAS OFF.
  47. }
  48.  
  49. IF ALT:RADAR > 7000 {
  50. RCS ON.
  51. }
  52.  
  53. IF SHIP:GROUNDSPEED > 300 AND ALT:RADAR > 8000 {
  54. LOCK STEERING TO SRFRETROGRADE.
  55. }
  56.  
  57. LOCK THROTTLE TO 0.
  58. PRINT "WAITING UNTIL DESCENDING" AT(xPos-3,zPos1-2).
  59. WAIT UNTIL SHIP:VERTICALSPEED < 0.5.
  60. PRINT " " AT(xPos-3,zPos1-2).
  61.  
  62. LOCK STEERING TO SRFRETROGRADE.
  63.  
  64. WHEN ALT:RADAR < 7500 THEN {
  65. RCS OFF.
  66. }
  67.  
  68. WHEN ALT:RADAR < 3000 THEN {
  69. IF CHUTES {
  70.  
  71. } ELSE {
  72. CHUTES ON.
  73. PRINT "DEPLOYING CHUTES".
  74. PRINT " " AT(xPos+9,zPos3+3).
  75. PRINT "ON" AT(xPos+9,zPos3+3).
  76. }
  77. IF CHUTES {
  78. PRINT "ON" AT(xPos+9,zPos3+3).
  79. } ELSE {
  80. PRINT "OFF" AT(xPos+9,zPos3+3).
  81. PRINT "CHUTES FAILED TO DEPLOY".
  82. }
  83. }
  84.  
  85. WAIT 0.
  86.  
  87. nextPhase().
  88.  
  89. PRINT "WAITING FOR CORRECT ALTITUDE: " + safeAlt.
  90. WAIT UNTIL ALT:RADAR < safeAlt.
  91. SET DESIREDVEL TO 200.
  92. SET T TO 0.
  93. LOCK THROTTLE TO T.
  94.  
  95. WAIT 0.
  96. nextPhase().
  97. UNTIL ALT:RADAR < 5 {
  98.  
  99. IF ( ALT:RADAR < 10 ) {
  100. SET DESIREDVEL TO 1.
  101. }
  102. ELSE IF( ALT:RADAR < 25 ) {
  103. SET DESIREDVEL TO 2.
  104. }
  105. ELSE IF( ALT:RADAR < 50 ) {
  106. SET DESIREDVEL TO 5.
  107. }
  108. ELSE IF( ALT:RADAR < 100 ) {
  109. SET DESIREDVEL TO 10.
  110. GEAR ON.
  111. // LOCK STEERING TO UP.
  112. }
  113. ELSE IF( ALT:RADAR < 250 ) {
  114. SAS OFF.
  115. // LOCK STEERING TO UP.
  116. }
  117. ELSE IF( ALT:RADAR < 500 ) {
  118. SET DESIREDVEL TO 25.
  119. }
  120. ELSE IF( ALT:RADAR < 1500 ) {
  121. SET DESIREDVEL TO 50.
  122.  
  123. }
  124.  
  125. IF SHIP:GROUNDSPEED < 0.5 AND ALT:RADAR < 50 {
  126. LOCK STEERING TO UP.
  127. }
  128.  
  129. IF( SHIP:VELOCITY:SURFACE:MAG > DESIREDVEL ) {
  130. SET T TO MIN(1, T + 0.01).
  131. }
  132. ELSE {
  133. SET T TO MAX(0, T - 0.1).
  134. }
  135.  
  136. IF(SHIP:VERTICALSPEED > 0) {
  137. SET T TO 0.
  138. }
  139.  
  140. IF SHIP:VERTICALSPEED = 0 AND SHIP:GROUNDSPEED < 0.1 {
  141. PRINT "vSPEED AND hSPEED ALMOST 0 BREAKING LOOP".
  142. BREAK.
  143. }
  144.  
  145. WAIT 0.001.
  146. }
  147.  
  148.  
  149. SET lnd TO TRUE.
  150. nextPhase().
  151. PRINT "|ALTITUDE: |" AT(xPos,zPos3+3).
  152. PRINT "LANDED" AT(xPos+11,zPos3+3).
  153.  
  154. LOCK THROTTLE TO 0.
  155. WAIT 3.
  156.  
  157. WAIT UNTIL lnd = TRUE.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement