kOS (Kerbal Operating System) — это настоящий бортовой компьютер на борту аппарата. Ты пишешь скрипт на собственном языке kOS, кладёшь его в архив, запускаешь на процессоре — и дальше аппарат летит сам, без твоих рук на клавиатуре. Для сборки «Оператор» это ключевой мод: сеть спутников и станции проще разворачивать одинаковыми повторяемыми запусками, чем каждый раз рулить вручную.
Ставим процессор
В сборке доступны четыре процессора:
- CX-4181 Программируемая система управления — обычный «в линию», 1,25 м;
- КомпоМакс Радиальный бескамерный — радиальный, со своей солнечной панелью, самый удобный для спутников;
- KR-2042 b Программируемая система управления — плоский, с подсветкой;
- KAL9000 Программируемая система управления — большой, с запасом памяти.
Процессор ест электричество, так что на спутник ставь его вместе с батареей и панелями — см. Энергетика и тепло. В меню детали (правый клик) есть пункты Активировать этот процессор, Питание вкл/выкл, Открыть окно (по событию) и Аварийное подавление — последний мгновенно возвращает ручное управление, если скрипт повёл себя не так.
Терминал и тома
Кнопка kOS на панели инструментов открывает окно терминала. У тебя два вида хранилищ (томов):
- Архив (том
0) — общий на всю программу, физически это папкаShips/Script/в каталоге игры. Файлы — обычный текст с расширением.ks, их удобно править внешним редактором. - Локальный том процессора (
1) — память самой детали, ограниченного объёма. Архив доступен только пока есть связь с КЦ, локальный том — всегда. Поэтому боевые скрипты для дальних аппаратов копируют на борт заранее.
Полезные команды терминала:
SWITCH TO 0. // перейти в архив
LIST FILES. // что там лежит
COPYPATH("0:/ascent.ks", "1:/"). // скопировать скрипт на борт
RUNPATH("0:/ascent.ks"). // запустить
Из чего состоит скрипт
Базовый набор, которого хватает на 90% задач:
CLEARSCREEN. // очистить экран
PRINT "Поехали". // вывод в терминал
LOCK THROTTLE TO 1. // тяга: 0..1
LOCK STEERING TO HEADING(90, 90). // курс 90°, тангаж 90° (вертикально)
STAGE. // отделить ступень
WAIT 3. // пауза, секунды
WAIT UNTIL SHIP:ALTITUDE > 1000. // пауза до условия
UNTIL SHIP:APOAPSIS > 80000 { // цикл, пока условие ложно
WAIT 0.1.
}
Разница между SET и LOCK принципиальна: SET x TO 5. присваивает значение один раз, а LOCK x TO ... создаёт выражение, которое пересчитывается каждый раз при обращении. Поэтому руль и тяга всегда идут через LOCK — иначе аппарат зафиксирует один старый угол.
Суффиксы
Данные о полёте берутся через двоеточие — это суффикс структуры: SHIP:ALTITUDE, SHIP:APOAPSIS, SHIP:VERTICALSPEED, SHIP:MASS, SHIP:AVAILABLETHRUST, SHIP:BODY:MU, SHIP:BODY:RADIUS, ETA:APOAPSIS, ALT:RADAR. Суффиксы можно сцеплять: SHIP:ORBIT:SEMIMAJORAXIS.
HEADING(азимут, тангаж) — направление: первый аргумент компасный курс (90 — на восток, по вращению Кербина), второй — угол над горизонтом (90 — вверх, 0 — по горизонту).
Отладка
Смотри на терминал: ошибки парсера показывают номер строки. Печатай состояние в фиксированную позицию, чтобы не засорять экран:
PRINT "Ap: " + ROUND(SHIP:APOAPSIS / 1000, 1) + " км " AT (0, 3).
Правило одно: перед первым запуском нового скрипта делай быстрое сохранение. И проверяй скрипт на дешёвой ракете, а не на дорогом ретрансляторе для созвездия.
Почему скрипт «висит», ест кадры или не слушается руля, что означают сообщения парсера и как работать из внешнего редактора — отдельная статья: kOS: отладка и лимиты.
Про язык и перевод
Язык kOS у нас не переведён и переведён не будет — это код. Команды, ключевые слова, суффиксы, имена переменных, сообщения парсера остаются английскими: перевести их означало бы сломать совместимость со всеми существующими скриптами и документацией. А вот обёртка вокруг языка русская: меню деталей процессора, тултипы кнопки на панели, панель управления kOS, окно выбора шрифта и раздел kOS в настройках сложности.
Дальше — готовые рецепты: рабочие скрипты взлёта, циркуляризации и вывода спутника. Про остальные слои автоматизации сборки читай Автоматика полётов и рутина.
Что можно спросить у корабля из скрипта — kOS: справочник по данным корабля. Готовые модули, где всё это уже собрано, — kOS: справочник библиотеки kerbal.ru.