My Kerbal RPC scripts

helloworld.py 1.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import krpc
  2. conn = krpc.connect(name='Hello World')
  3. vessel = conn.space_center.active_vessel
  4. print(vessel.name)
  5. vessel.auto_pilot.target_pitch_and_heading(90, 90)
  6. vessel.auto_pilot.engage()
  7. vessel.auto_pilot.sas = True
  8. vessel.control.throttle = 1
  9. print('Launching!')
  10. vessel.control.activate_next_stage()
  11. mean_altitude = conn.get_call(getattr, vessel.flight(), 'mean_altitude')
  12. expr = conn.krpc.Expression.greater_than(
  13. conn.krpc.Expression.call(mean_altitude),
  14. conn.krpc.Expression.constant_double(1000))
  15. event = conn.krpc.add_event(expr)
  16. with event.condition:
  17. event.wait()
  18. print('Gravity turn')
  19. vessel.auto_pilot.target_pitch_and_heading(60, 90)
  20. fuel_amount = conn.get_call(vessel.resources.amount, 'SolidFuel')
  21. expr = conn.krpc.Expression.equal(
  22. conn.krpc.Expression.call(fuel_amount),
  23. conn.krpc.Expression.constant_float(0.0))
  24. event = conn.krpc.add_event(expr)
  25. with event.condition:
  26. event.wait()
  27. print('Detatching upper stage')
  28. vessel.control.activate_next_stage()
  29. vessel.auto_pilot.disengage()
  30. vessel.auto_pilot.sas = False
  31. srf_altitude = conn.get_call(getattr, vessel.flight(), 'surface_altitude')
  32. expr = conn.krpc.Expression.less_than(
  33. conn.krpc.Expression.call(srf_altitude),
  34. conn.krpc.Expression.constant_double(1000))
  35. event = conn.krpc.add_event(expr)
  36. with event.condition:
  37. event.wait()
  38. print('Deploying chute')
  39. vessel.control.activate_next_stage()