Авторизация
или
или
Зарегистрироваться на сайте
Возник вопрос? Столкнулись с проблемой? Есть предложение?

Мы вам поможем!

Пишите нам на почту: [email protected] и мы вам ответим в ближайшее время, так же вы можете воспользоваться формой обратной связи прямо с сайта.

Последние комментарии
Показать все
2017-06-21T16:24:40+02:00 2017-06-22T14:14:42+02:00
0

Вопрос по KOS'у

Посетители
0
Начинающий
Написал скрипт по выводу простенького корабля на орбиту ~80 000 м.
Проблема со сходом с орбиты.
Летаю, летаю по орбите. Подходит время схода. Но вот проблема: двигатель никак не реагирует ни на скрипт, ни на мои ручные попытки поднять тягу. Что бы я ни делал, такое чувство, что нет связи с кораблем. Проблема решается только когда я вручную выключаю терминал, вручную поднимаю тягу и вручную прикербиняюсь. Хотелось бы, чтобы не утруждать пилота, спустить его автоматически.   
p.s. перед стартом все фалы копируются на "1:". 
p.s.s. листок с кодом сделал для каждой ступени отдельно, поэтому прицеплю только скриншот кусок по сходу с орбиты. 
Модераторы
0
Местный Джебедай
rmnsr1254,
Если работает кОС скрипт и не сброшена команда lock throttle, то кОС перехватывает управление тягой и не даёт вручную её менять, это нормально. Аналогично с lock steering.
Я поэтому на всякий случай везде, где перехватить управление нужно только временно (при выполнении манёвра, например), в конце скрипта добавляю
unlock steering.
set ship:control:pilotmainthrottle to 0. // чтобы после unlock тяга сбросилась не на стандартную 0.5, а на 0.
unlock throttle.

Так что скрипт явно работает, но почему-то зацикливается.
when ... then явно лишние в скрипте, т.к. после выхода из цикла ttd уже меньше 5, зачем ещё раз проверять.
Главный вопрос - а OKOS3A вообще запускается? Если нет, то проблема где-то в более ранних скриптах. Так-то я не вижу, почему именно этот скрипт не должен работать.

По мелочи ещё, обратный отсчёт я бы делал так:
set braketime to time:seconds + ttd.
until ttd < 5 {
  set ttd to braketime - time:seconds.
  wait 1.
}
Мои kOS скрипты: https://github.com/pand5461/kOS
Посетители
0
Начинающий
Pand5461 (21.06.2017, 23:08) писал:
rmnsr1254,Если работает кОС скрипт и не сброшена команда lock throttle, то кОС перехватывает управление тягой и не даёт вручную её менять, это нормально. Аналогично с lock steering.
Я поэтому на всякий случай везде, где перехватить управление нужно только временно (при выполнении манёвра, например), в конце скрипта добавляю
unlock steering.
set ship:control:pilotmainthrottle to 0. // чтобы после unlock тяга сбросилась не на стандартную 0.5, а на 0.
unlock throttle.

Так что скрипт явно работает, но почему-то зацикливается.
when ... then явно лишние в скрипте, т.к. после выхода из цикла ttd уже меньше 5, зачем ещё раз проверять.
Главный вопрос - а OKOS3A вообще запускается? Если нет, то проблема где-то в более ранних скриптах. Так-то я не вижу, почему именно этот скрипт не должен работать.

По мелочи ещё, обратный отсчёт я бы делал так:
set braketime to time:seconds + ttd.
until ttd < 5 {
  set ttd to braketime - time:seconds.
  wait 1.
}
Спасибо! Благодаря вам первый полет огурца признан успешным :)
Модераторы
0
Местный Джебедай
rmnsr1254,
Пожалуйста. Ещё совет: если стоит wait на долгое время, на всякий случай перед критичной фазой лучше вставить "set warp to 0." (или kuniverse:timewarp:cancelwarp).
Конкретно в этом скрипте: если проматывать два витка на варпе и схватить лишнего, то скрипт начнёт поворачивать корабль, но во время варпа не сможет это сделать. В итоге при ручном отключении варпа сразу же начнётся прожиг в той ориентации, в которой корабль на этот момент находится, и одновременно с этим поворот в ретроград. Если топлива достаточно, то ничего страшного не будет - но я иногда на сход с орбиты оставляю 20-30 м/с, и их не в ту сторону прожигать уже недопустимо.
Мои kOS скрипты: https://github.com/pand5461/kOS
 
Доступ закрыт.
  • Вам запрещено отвечать в темах данного форума.