Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- core:doevent("open terminal").
- wait 3.
- local shipheight to alt:radar + vdot(core:part:position, up:vector).
- local lptgt to latlng(latitude, longitude).
- local tth to lptgt:terrainheight.
- lock steering to lookdirup(up:vector, facing:upvector).
- lock throttle to 1.
- stage.
- lock steering to lookdirup(up:vector + north:vector * 0.01, facing:upvector).
- wait until apoapsis > 3000 + tth.
- lock throttle to 0.
- wait until verticalspeed < -40.
- local hnow to alt:radar + vdot(core:part:position, up:vector) - shipheight.
- set drawVel to vecdraw(v(0,0,0), v(0,0,0), blue, "Landing target", 1.0, true).
- until hnow < 0.3 {
- set hnow to altitude - tth + vdot(core:part:position, up:vector) - shipheight.
- local vs to velocity:surface.
- local vv to verticalspeed.
- local tpos to lptgt:position.
- set drawVel:vecupdater to { return tpos. }.
- local bp to body:position.
- local avmag to vv * vv * 0.5 / hnow.
- local avthrmag to avmag + body:mu / bp:sqrmagnitude.
- local tti to abs(vv) / avmag.
- local ah to vxcl(bp, (12 * tpos / tti - 6 * vs)) / tti.
- if ah:mag / avthrmag > 0.1 set ah to 0.1 * ah:normalized * avthrmag.
- local steervec to up:vector * avthrmag + ah.
- lock steering to lookdirup(steervec, facing:upvector).
- local hovslthrot to mass * sqrt(ah:sqrmagnitude + avthrmag^2) / availablethrust.
- if throttle > 0 or hovslthrot > 0.95 {
- set throttle to hovslthrot.
- }
- wait 0.
- }
- lock throttle to 0.
- wait until ship:status = "landed".
- set ship:control:pilotmainthrottle to 0.
- unlock all.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement