Advertisement
_Ziper_YT_

rocket fizma

Jun 23rd, 2025 (edited)
542
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.09 KB | None | 0 0
  1. port = 31415
  2. term.clear()
  3. read = io.read()
  4. -- read = 0
  5.  
  6. if read == "run" then
  7.     start = 1
  8.     sleep(5)
  9. else
  10.     start = 0
  11. end
  12.  
  13. xp = "left" -- x+
  14. xm = "right" -- x-
  15. zp = "front" -- z+
  16. zm = "back" -- z-
  17.  
  18. term.clear()
  19. print(start)
  20. thrust = peripheral.wrap("redstone_relay_1")
  21. inter = peripheral.wrap("redstone_relay_2")
  22.  
  23. function up(analog) -- Функция двигателей подъёма
  24.     thrust.setAnalogOutput("front", analog)
  25.     thrust.setAnalogOutput("back", analog)
  26.     thrust.setAnalogOutput("right", analog)
  27.     thrust.setAnalogOutput("left", analog)
  28. end
  29. function down(bool) -- Функция двигателей возврата
  30.     rs.setOutput("front", bool)
  31.     rs.setOutput("back", bool)
  32. end
  33. function gyro(bool) -- Функция гироскопа
  34.     rs.setOutput("top", bool)
  35. end
  36. function dock(bool) -- Функция отстыковки
  37.     inter.setOutput("top", bool)
  38. end
  39. function opt() -- Функция оптического датчика
  40.     return thrust.getAnalogInput("bottom")
  41. end
  42. function move(side, side2) -- Функция движения
  43.     a = thrust.getAnalogOutput(side)
  44.     b = thrust.getAnalogOutput(side2)
  45.     thrust.setAnalogOutput(side, a - 2)
  46.     thrust.setAnalogOutput(side2, b + 2)
  47. end
  48. function tele(mes)
  49.     local modem = peripheral.wrap("right")
  50.     local pos = ship.getWorldspacePosition()
  51.     local vel = ship.getVelocity()
  52.     local rot = ship.getEulerAnglesXYZ()
  53.     local time = os.time("utc")+3
  54.     local send = {pos = pos, vel = vel, rot = rot, mes = mes, time = time}
  55.     modem.transmit(port, port, send)
  56.     print(mes)
  57. end
  58. -- Отключаем выводы
  59. dock(false)
  60. up(0)
  61. down(false)
  62. gyro(false)
  63. tele("podgotovka")
  64. if start == 1 then
  65. local pos = ship.getWorldspacePosition()
  66. local y = pos.y - 2
  67. -- Включаем гироскоп и двигатели на подъём
  68. gyro(true)
  69. sleep(2)
  70. up(15)
  71. tele("vzlet")
  72. -- Ждём высоту
  73. while pos.y < 240 do
  74.     pos = ship.getWorldspacePosition()
  75.     sleep(0.5)
  76.     tele("vzlet")
  77. end
  78. -- Включаем отстыковка и двигатели на возврат
  79. tele("otstikovka")
  80. dock(true)
  81. down(true)
  82. -- Отключаем двигатели на подъём
  83. up(0)
  84.  
  85. -- Ждём остановки
  86. local vel = ship.getVelocity()
  87. while vel.y > 1 do
  88.     vel = ship.getVelocity()
  89.     sleep(0.5)
  90. end
  91. -- Отключаем двигатели на возврат
  92. down(false)
  93. dock(false)
  94. tele("padenie")
  95. sleep(1)
  96. -- Посадка
  97. local g = 0
  98. while opt() < 2 do
  99.     -- Поддержка скорости
  100.     sleep(0.05)
  101.     vel = ship.getVelocity()
  102.     if vel.y < -10 then
  103.         up(7)
  104.     else
  105.         up(4)
  106.     end
  107.     sleep(0.45)
  108.     tele("posadka 1")
  109.     -- Наводка
  110.     if g < 3 then
  111.         move(xm,xp)
  112.         move (zm, zp)
  113.     elseif g == 6 then
  114.         move(xp,xm)
  115.         move(zp,zm)
  116.     end
  117.     g = g + 1
  118. end
  119. up(15)
  120. sleep(0.3)
  121. up(0)
  122. local t = 0
  123. while opt() < 15 and t < 30 do
  124. t = t + 0.5
  125. -- Поддержка скорости 2
  126.     tele("posadka 2")
  127.     vel = ship.getVelocity()
  128.     if vel.y < -3 then
  129.         up(5)
  130.     else
  131.         up(4)
  132.     end
  133.     sleep(0.5)
  134. end
  135. up(0)
  136. local pos = ship.getWorldspacePosition()
  137. sleep(5)
  138. gyro(false)
  139. tele("Uspeh!")
  140. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement