SpaceDock.ru - моды, гайды, детали, ракеты, самолеты для Kerbal Space Program

Добро пожаловать, войдите или зарегистрируйтесь
Забыли?
Закрыть

Вопрос по KOS'у

2017-06-21T16:24:40+02:00 2017-06-22T14:14:42+02:00
Начинающий
  1. Офлайн
  2. Посетители
  3. 9 сообщений
  4. Репутация: 0
  5. Личка /  Профиль
Полезность: 0 | сообщение № 1 отправлено 16:24, 21.06.2017
Написал скрипт по выводу простенького корабля на орбиту ~80 000 м.
Проблема со сходом с орбиты.
Летаю, летаю по орбите. Подходит время схода. Но вот проблема: двигатель никак не реагирует ни на скрипт, ни на мои ручные попытки поднять тягу. Что бы я ни делал, такое чувство, что нет связи с кораблем. Проблема решается только когда я вручную выключаю терминал, вручную поднимаю тягу и вручную прикербиняюсь. Хотелось бы, чтобы не утруждать пилота, спустить его автоматически.   
p.s. перед стартом все фалы копируются на "1:". 
p.s.s. листок с кодом сделал для каждой ступени отдельно, поэтому прицеплю только скриншот кусок по сходу с орбиты. 
Местный Джебедай
  1. Офлайн
  2. Модераторы
  3. 110 сообщений
  4. Репутация: 0
  5. Личка /  Профиль
Полезность: 0 | сообщение № 2 отправлено 23:08, 21.06.2017
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
Начинающий
  1. Офлайн
  2. Посетители
  3. 9 сообщений
  4. Репутация: 0
  5. Личка /  Профиль
Полезность: 0 | сообщение № 3 отправлено 13:39, 22.06.2017
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.
}
Спасибо! Благодаря вам первый полет огурца признан успешным :)
Местный Джебедай
  1. Офлайн
  2. Модераторы
  3. 110 сообщений
  4. Репутация: 0
  5. Личка /  Профиль
Полезность: 0 | сообщение № 4 отправлено 14:14, 22.06.2017
rmnsr1254,
Пожалуйста. Ещё совет: если стоит wait на долгое время, на всякий случай перед критичной фазой лучше вставить "set warp to 0." (или kuniverse:timewarp:cancelwarp).
Конкретно в этом скрипте: если проматывать два витка на варпе и схватить лишнего, то скрипт начнёт поворачивать корабль, но во время варпа не сможет это сделать. В итоге при ручном отключении варпа сразу же начнётся прожиг в той ориентации, в которой корабль на этот момент находится, и одновременно с этим поворот в ретроград. Если топлива достаточно, то ничего страшного не будет - но я иногда на сход с орбиты оставляю 20-30 м/с, и их не в ту сторону прожигать уже недопустимо.


------------------------------------------
Мои kOS скрипты: https://github.com/pand5461/kOS
 
Перейти
Найти

Доступ закрыт.

  1. Вам запрещено отвечать в темах данного форума.
Наверх