Всем доброго времени суток.
Данный гайд -
практически полностью переведенная
официальная английская инструкция по kOS. Теперь вы можете ознакомится с ней
в полном русском варианте с моими комментариями
для самых маленьких.
Руководство полностью переведено, разъяснено и дополнено мною (
Finn163), и по сути является дословным переводом английского руководства с некоторыми комментариями. Надеюсь всем вам оно окажется полезным.
Всем приятного изучения замечательного языка kOS.
Правка от 20.06.14
Внимание! Совсем недавно вышла новая версия kOS где убрана команда EDIT, которая раньше позволяла писать программы прямо в игре. Теперь же мы пишем программы вот здесь - Kerbal Space Program\Plugins\PluginData\Archive. Создаем тут TXT файл и пишем в нем программу. Дабы получить доступ к архиву из игры необходимо в интерфейсе kOS написать "switch to 0." или "switch to archive." Для просмотра из игры программ содержащихся в архиве можно написать команду "List." Так же можно загрузить программу в текущую активную директорию с помощью команды copy X from 0. (где Х - название программы). Далее при написании команды LIST. мы увидим что теперь программа в нашей директории.
Честно не понимаю зачем сделали это запутавание, я лично принял это за баг кОС, но выяснилось, что таки не баг, а фича!(20.06.2014)
На 2015 год уже не актуально
За последний год язык неплохо оброс, в ближайшее время адаптирую инструкцию к новой версии
Русскоязычная инструкция по моду kOS.Описание мода kOS
kOS - мод на скриптовый автопилот для Kerbal Space Program. Он позволит вам писать небольшие программы для автоматизации некоторых задач.
Установка.
http://kerbalspaceport.com/kos-autopilot/
Как и останльные моды, распаковать zip архив в папку с игрой.
Как использовать?
Добавьте модуль kOS в ангаре на свой корабль, он находится во вкладке "Контроль". После перехода на стартовый стол\взлетную полосу,
кликаем на модуль правой кнопкой мыши и выбираем функцию "Open Terminal". Это предоставит нам доступ к интерфейсу мода kOS, в нем вы как в командной строке, можете начать с ним работу.
Кербоскрипт.
Кербоскрипт - это язык програмирования планеты кербин, звучащий как Английский. Синтаксис языка "показательный"(имеется ввиду, что всё названо своими именами).
Язык достаточно прост, даже для начинающих програмистов, поэтому язык
НЕ зависит от регистра и автоматически коректирует некоторые команды.
Типичные команды Кербоскрипта выглядят примерно так:
PRINT "Hello World”. \\ Напечатай "Привет мир"
Выражения.
Кербоскрипт использует систему оценки выражений, которая позволяет выполнять математические операции над переменными.
Некоторые переменные определены Вами. Другие определяется системой.
Базовых типов всего
три:
1.
Числа.
Вы можете использовать математические операции с числами, например вот так:
SET X TO 4 + 2.5. // сделай Х равным 4+2,5; Заметьте Несмотря на то, что все команды кончаются точками, нецелые числа так же используют точку как разделитель.
PRINT X. // Напечатай Х. Напечатается "6.5"
Система соответствует порядку операций, но в настоящее время реализация несовершенна. Например, умножение всегда будет выполняться до разделения, независимо от "физического" положения операторов. Это будет исправлено в будущих версиях.
2.
Строчные данные (Strings). // по сути слова
Строчные данные - это текст, который к примеру надо написать на мониторе. Например:
PRINT "Hello World!”. // Напиши "Привет мир!".
Для объединения строк, вы можете использовать оператор "+". Это так же работает со смесями чисел и строк.
3.
Directions(Направления)
Направление(Direction) существуют прежде всего для включения автоматического рулевого управления. Вы можете инициализировать направление с помощью вектора или вращения.
SET Direction TO V(0,1,0). // Установить направление - вектор
SET Direction TO R(0,90,0). // Установить направление поворотом в градусах
Также, вы можете использовать математические операции направлений. Следующий пример использует вращение "UP" (системная переменная, описывающая вектор непосредственно от небесного тела во влиянии которого вы находитесь).
SET Direction TO UP + R(0,-45,0). // Установить направление на 45 градусов западней от "UP" (верха).
Справочник по командам
-
Математические функции.
- Базовые.
ABS(1). // Возвращает абсолютное значение входного сигнала. например 1.
CEILING(1.887). // (Ceiling - потолок) Возвращает ближайшее целое число выше данного, в данном случае 2.
FLOOR(1.887). // (Floor - пол) Возвращает ближайшее цело число ниже данного в данном случае 1.
LN(5) // Считает и выдает натуральный логарифм заданного числа (можно запрограммировать формулу Циалковского и считать дельту)
LOG10(5) // Считает данный логарифм с основанием 10.
MOD(21,6). // Возвращает остаток от деления. В данном случае 3 (Тобишь 21 делит на 6 = 18 и остаток = 3)
MIN(0,100). // Возвращает минимальное число из 2-х переменных. В данном случае 0 (не забываем что вместо числа может стоять X или Y)
MAX(0,100). // Возвращает максимальное число из 2-х переменных. В данном случае 100.
ROUND(1.887). // Округляет до ближайшего целого числа, в данном случае до 2.
ROUND(1.887, 2). // Округляет до указанного количества знаков. В данном случае до второго знака за запятой тобишь = 1.89
SQRT(7.89). // Возвращает квадратный корень, в данном случае 2.80891438103763
- Тригонометрические.
SIN(6). // Возвращает синус от введенного, в данном случае 0.10452846326
COS(6). // Возвращает косинус от введенного, в данном случае 0.99452189536
TAN(6). // Возвращает тангенс от введенного, в данном случае 0.10510423526
ARCSIN(0.67). // Возвращает арксинус, в данном случае 42.0670648
ARCCOS(0.67). // Возвращает арккосинус, в данном случае 47.9329352
ARCTAN(0.67). // Возвращает арктангенс, в данном случае 33.8220852
ARCTAN2(0.67, 0.89). // Возвращает угол, тангенс которого равен отношению двух указанных чисел в градусах.В данном случае 36.9727625 (может быть очень полезно)
-
Полет.
ADD // Добавить
Добавляет маневровый нод в планировщике полётов.
Пример: Данная команда добавляет нод через 30 секунд от текущего положения и который имеет dV = 100 м/с радиальной внешней, 0 м/с нормальной, и 200 м/с прогрейда.
ADD NODE(TIME + 30, 100, 0, 200). // Добавить нод (время + 30, 100, 0, 200) // что бы понять как это работает, проверьте это опытным путем.
REMOVE // Удалить
Удаляет маневровый узел(нод) из плана полета.
Невозможно удалить голые(пустые) узлы примеры:
SET X TO NODE(0,0,0,0).
ADD X.
REMOVE X.
ADD NODE(0,0,0,0).
REMOVE. // Узел не удалится
---------------------------------------------------------
STAGE // Ступень
Команда переключения ступени на данном аппарате. Пример:
STAGE. // Да да, вот так просто. Просто пишем STAGE и ставим точку.
---------------------------------------------------------
WARP //Варп
Устанавливаем силу варпа по меркам игры (треугольнички в углу экрана)( от 0 до 7).
SET WARP TO 5. // Поставить варп на 1000x.
SET WARP TO 0. // Поставить варп на 0x (тобишь реальное время).
-
Файлы ввода/вывода (имеется ввиду работа с файлами в которых вы пишите программу из самой игры)
COPY // Копирование
Копирует файл из другого тома. ТомА могут ссылаться на свои идентификационные номера(ID) или на их имена, если они были им даны. Смотри LIST, SWITCH и RENAME команды.
Пример:
SWITCH TO 1. // Сделай том 1 - активным томом (активируй том 1 по сути)
COPY file1 FROM 0. // Копируй файл под названием "file1" из тома 0 в том 1
COPY file2 TO 0. // Копируй файл под названием "file1" из тома 1 в том 0
------------------------------------------------------
DELETE // Удалить
Удаляет файл. Вы можете удалить файл из текущего тома, или из другого, используя его(тома) номер.
Пример:
DELETE file1. // Удаляет "file1" из активного тома.
DELETE file1 FROM 1. // Удаляет "file1" из тома 1.
------------------------------------------------------
EDIT // редактировать
Редактировать программу из выделенного тома. Пример:
EDIT filename. // редактировать файл с именем "filename".
------------------------------------------------------
LOG.. TO // Записывать.. В
Записывает нужный текст в файл в локальном томе. Может печатать строковые переменные или результаты выражения.
Например:
LOG "Hello” to mylog. // Запиши "Hello" в файл с именем "mylog".
LOG 4+1 to mylog .
LOG "4 times 8 is: " + (4*8) to mylog. // "Запиши 4 раза по 8 это: " + (4*8) в файл с именем "mylog". (результат этой строки будет"4 times 8 is: 32")
-------------------------------------------------------
RENAME // Переименовать
Переименовывает файл или том
Например:
RENAME VOLUME 1 TO AwesomeDisk // Переименуй том 1 в "КрутоДиск"
RENAME FILE MyFile TO AutoLaunch. // Переименуй файл "MyFile" в "автозапуск"
-------------------------------------------------------
Remove // Снять
Снимает(удаляет маневровый нод(узлел на планировщике)).
Например:
REMOVE NEXTNODE. // Удаляет следующий маневровый нод(узел)
--------------------------------------------------------
RUN // Запустить
Запускает указанный файл в качестве программы.
Например:
RUN AutoLaunch. // Запустить файл "AutoLaunch" как программу.
------------------------------------------------------
SWITCH TO // Переключись на
Переключает на указанный том. Тома могут быть идентифицированы по номерам, или по именам(как я понял, имя можно задавать только 1 раз).
Смотри LIST и RENAME - команды.
Например:
SWITCH TO 0. // Переключается на том 0.
RENAME VOLUME 1 TO AwesomeDisk. // Переименуй том 1 в "КрутоДиск".
SWITCH TO AwesomeDisk. // Переключись на том "КрутоДиск".
PRINT VOLUME:NAME. // Напечатай имя тома. Выходное значение - "AwesomeDisk".
-
Управление потоком (имеется ввиду поток информации поступающей в консоль от программы во время её работы)
BREAK // Прерывание
При встрече в цикле, прерывает цикл.
Например:
SET X TO 1. // Установи Х=1
UNTIL 0 { //Пока не ноль
SET X TO X + 1. // На каждой итерации цикла прибавляем к Х единицу
IF X > 10 { BREAK. }. // Если Х Больше 10, прекращаем цикл.
}.
---------------------------------------
IF // Если
Проверяет, является ли данное выражение правдой. Если является, выполняется следующий командный блок.
Например:
SET X TO 1.
IF X = 1 { PRINT "X equals one.". }. // Если Х=1 напечатай "Х=1". Поскольку Х=1 то этот IF напечатает нам "Х=1".
IF X > 10 { PRINT "X is greater than ten.". }. // Если Х>10 печатай "Х>10". Поскольку Х=1 то этот IF ничего не сделает.
Оператор IF так же поддерживает использование логических операций(конъюнкция(и), дизъюнкция(или)).
Например:
IF X = 1 AND Y > 4 { PRINT "Both conditions are true". }. //Если X=1 и Y>4
IF X = 1 OR Y > 4 { PRINT "At least one condition is true". }. //Если Х=1 или Y>4
------------------------------------------------------------
LOCK // Закрепление
LOCK - вариативная операция. На каждом обращении она проверяет и высчитывает закрепленную часть.
Например:
SET X TO 1. //Назначаем Х хранить значение 1
LOCK Y TO X + 2. // Закрепляем в Y значение Х+2
PRINT Y. // Выводим Y на экран. Выведет 3
SET X TO 4. // Назначаем X = 4.
PRINT Y. // Выводим Y на экран. Выведет 6.
------------------------------------------------------------
ON // НА (не путать с Вкл.)
Ждет изменение в логической переменной, затем запускает выбранную команду. Эту команду лучше всего использовать для мониторинга и активации
групповых действий.
Например:
ON AG3 PRINT "Action Group 3 Activated!”. //На включение ЭкшнГруппы 3 напиши "ЭкшнГруппа 3 активирована"
ON SAS PRINT "SAS system has been toggled”. //На включение SAS напиши "Сас система была включена"
Так же с помощью AG мы можем успешно прогать робототехнику, назначая механизмы на Action Groups.
--------------------------------------------------------------
UNLOCK // Раскрепить
Освобождает переменную от закрепления(от команды LOCK).См.описание команды LOCK.
Например:
UNLOCK X. // Разблокирует переменную Х.
UNLOCK ALL. // Разблокирует все закрепленные переменные.
--------------------------------------------------------------
UNTIL // До
Выполняет цикл, пока данное условие не будет выполнено.
Например:
SET X to 1. //х=1
UNTIL X > 10 { // Пока Х не равен десяти будет выполнятся цикл в скобках.
PRINT X. // Пиши Х
SET X to X + 1. //Прибавь к Х единицу
}. // Итогом цикла будут напечатанные числа от 1234..и так до 10.
-------------------------------------------------------------
WAIT // Ждите(Дословно)
Останавливает выполнение программы в течение определенного промежутка времени, или до определенного набора критериев. Обратите внимание, такой паузой можно повесить программу навсегда, если условия выхода из паузы никогда не встретятся.
Примеры:
WAIT 6.2. // Жди шесть целых и две десятых секунды.
WAIT UNTIL X > 40. // Жди пока Х не будет больше сорока.
WAIT UNTIL APOAPSIS > 150000. // Жди пока Апогей не будет больше 150000.
-------------------------------------------------------------
WHEN.. THEN // Когда что-то, тогда то-то.
Выполняет команду,при соблюдении определенных критериев. В отличие WAIT, не останавливает выполнение программы.
Например:
WHEN BCount < 99 THEN PRINT BCount + " bottles of beer on the wall”. // Когда BCount < 99 то пиши BCount + "Бутылок пива на стене".
-
Команды вывода и т.п.
CLEARSCREEN.
Очищает экран консоли и ставит курсор в верхний левый угол.
Например:
CLEARSCREEN. // Вот так просто.
---------------------------------
PRINT // Печать (дословно)
Печатает указанный текст на экран. Может печатать строчные данные, или результаты выражений.
Например:
PRINT "Hello”. //Напишет "Привет"
PRINT 4+1. //Напишет 5
PRINT "4 times 8 is: " + (4*8). // Напишет "4 раза по 8 это 32"
----------------------------------
PRINT.. AT(COLUMN,LINE) //Напиши в (столбец,строку).
Печать выбранного текста на экран в указанное место. Может печатать строки, или результат выражений.
Например:
PRINT "Hello” at (0,10).
PRINT 4+1 at (0,10).
PRINT "4 times 8 is: " + (4*8) at (0,10).
--------------------------------
REBOOT
Перезагружает консоль kOS.
Например:
REBOOT.
---------------------------------
SHUTDOWN.
Выключает консоль kOS. (Именно выключает, а не скрывает с экрана.)
----------------------------------
Справочник по структурам.
Структуры это элементы, которые могут содержать больше одной единицы информации. Структуры можно использовать с командой SET.. TO как и с обычными переменными.
К их под элементам можно получить доступ через имя вложенного элемента.
-
Atmosphere // атмосфера
Структура атмосферы:
EXISTS - bool // Существует ли? (есть ли у тела атмосфера(на орбите которого ты находишься)). Выходная переменная булевая тобишь либо 1 либо 0. (либо существует либо нет)
HASOXYGEN - bool // Есть ли в атмосфере воздух? Выходная переменная так же булевая, либо есть(1) либо нет(0).
SCALE - double // Масштаб. Выходное число типа Дабл, тобишь огромное. Что имеется ввиду под масштабом я не понял.
HEIGHT - float // Высота атмосферы. Число типа Float.
Структура Atmosphere тесно связанная со следующей структурой - Тело(Body)
-
Body // Тело
Небесное тело
Структура:
NAME - string // Название (строчное)
DESCRIPTION - string // Описание (строчное)
MASS - Number (kilogram) // Масса. Число килограмм
POSITION - Vector // Позиция. Выходное значение вектор.
ALTITUDE - Number (meters) // Высота. Число метров. Высота тела относительно солнца как я понял, а не ваша относительно тела.
APOAPSIS - Number (meters) // Апогей. Число метров. Та же история. Апогей тела, а не ваш.
PERIAPSIS - Number (meters) // Перегей. Число метров.
RADIUS - Number (meters) // Радиус. Число метров.
MU - Number // Стандартный гравитационный параметр. Число. Загуглите. Как я понимаю нужно, что бы расчитывать автоматом ноды для перелетов.
ATM - Atmosphere //Атмосфера (как я понял выводит структуру "Атмосфера" описанную выше)
VELOCITY - Vector //Скорость. Выводит структуру "Вектор"(будет описана ниже).
DISTANCE - From active Vessel // Дистанция от текущего ЛА.
BODY - Parent Body // Выводит структуру (Body)тела на орбите которого данное тело вращается.
-
Direction // Направление
Направление существует прежде всего для автоматизации управления ориентацией. Вы можете инициализировать направление с использованием вектора или вращения.
Структура:
PITCH - Number (degrees) // Питч. Число градусов.
YAW - Number (degrees) // Yaw.Число градусов
ROLL - Number (degrees) // Ролл. Число градусов.
VECTOR - Vector // Вектор. Выводится в виде структуры "Вектор" о ней будет ниже.
Создание:
R (pitch, yaw, roll) // Пишем R далее в скобках указываем значения pitch,yaw и roll
HEADING (degreesFromNorth, pitchAboveHorizon) // Можем указывать курс пишем Heading(курс англ.) и далее в скобках указываем через запятую сколько градусов от севера и Пич(наклон) относительно горизонта. (Первое для ракет, второе полезно для самолетов).
Например:
SET X TO PROGRADE + R(90,0,0). // Закладываем Х значения вектора Прогрэйда + 90 градусов в питч.
LOCK STEERING TO X. // Закрепляем направление ориентации в Х. (Это развернет корабль на заданный нами вектор и будет его держать железно).
SET Y TO HEADING(45, 10). // Развернуть на 45 градусов от Севера(На северо-восток получается), на 10 градусов выше горизонта.
LOCK STEERING TO Y. // Закрепить направление ориентации в Y. (Возможно если направление было раньше закреплено в другой точки и вы его не раскрепили с прошлой точки, то ничего не произойдет или произойдет что-то непонятное).
SET Direction TO R(0,90,0). // Указание разворота в градусах (Внимание в данном случае, скорее всего он просто развернет и не закрепит.)
Так же вы можете использовать математические операции направления. Следующий пример использует направление "UP"(верх), которое является системной переменной, описывающий вектор непосредственно от небесного тела у которого вы под влиянием.
SET Direction TO UP + R(0,-45,0). // Указываем направление в 45 градусов западней от "UP”(верха).
-
Engine //Двигатель
Структура:
MAXTHRUST - Number (kilonewton) // Максимальная тяга. Число килоНьютон.
THRUST - Number (kilonewton) // Текущая тяга. Число килоНьютон.
FUELFLOW - Number (Liters/s? maybe) // Потребление топлива. Автор ошибся. На сколько мне известно - Галонов в секунду.
ISP - Specific impulse // Удельный импульс
FLAMEOUT - bool // Работает ли в данный момент (как я понял). Если да то 1, если нет то 0.
IGNITION - bool // Перегрелся ли? Если да то 1, если нет то 0.
-
GeoCordinates // Геокоординаты
Представляет набор Геокоординат.
Структура:
LAT - Degrees // Широта. В градусах.
LNG - Degrees // Долгота. В градусах
DISTANCE - Number (meters from calling vessel) // Дистанция. Число метров от текущего аппарата.
HEADING // Курс.
BEARING // Азимут.
Создание:
LATLNG (latitude, longitude) // Указание точки по широте и долготе
Пример:
SET X TO LATLNG(10, 20). // Дать Х значение точки 10 градусов широты и 20 градусов долготы.
PRINT X:LAT. // Напечатать широту точки Х (напишет 10).
PRINT X:LNG. // Напечатать долготу точки Х (напишет 20).
PRINT X:DISTANCE. // Напишет дистанцию от текущего аппарата до Х (На той же высоте что и предпологается)
PRINT LATLNG(10,20):HEADING. // Напишет направление точки по общему градусу.
PRINT X:BEARING. // Напишет направление точки считая от направления "носа" корабля.
-
List // Список
Структура:
(Единственная тема где многое не понял и многое перевести не смог, слишком много всего непонятного и я сомневаюсь что нужного.)
Выводит данные на консоль. Списки файлов по умолчанию.
Например:
LIST. // Список файлов в активном томе.
LIST FILES. // Список файлов в активном томе.
LIST VOLUMES. // Список всех томов с их ID номерами и именами.
LIST BODIES. // Список всех небесных тел и дистанция до них.
LIST TARGETS. // Список целей-аппаратов и дистанция(вроде).
LIST RESOURCES. // Список ресурсов в ступени.
LIST PARTS. // Список деталей из которых состоит корабль.
LIST ENGINES. // Список двигателей.
-
Node // Узел
Структура:
Получаемые:
DELTAV or BURNVECTOR - Vector // Дельты или Прожигвектор. В виде вектора
ETA - Number (seconds) // Время до Нода. В секундах.
PROGRADE - Number (meters/s) // Прогрейд. Число метров в секунду
RADIALOUT - Number (meters/s) // ВнешнеРадиальная скорость. Число метров в секунду.
NORMAL - Number (meters/s) // Нормальная скорость. Число метров в секунду.
ORBIT- Orbit // Орбита. В виде структуры "Orbit", о ней ниже.
Вводимые:
ETA - Number (seconds) // Время до Нода. В секундах.
PROGRADE - Number (meters/s) // Прогрейд. Число метров в секунду
RADIALOUT - Number (meters/s) // ВнешнеРадиальная скорсоть. Число метров в секунду.
NORMAL - Number (meters/s) // Нормальная скорость. Число метров в секунду.
Создание:
NODE (universalTime, radialOut, normal, prograde) // Нод (Универсальное время, Внешнерадиальная скорость, нормальная, по прогрейду). Речь идет об установке Нода на планировщике полетов с помощью указаний направлений прожига по трём измерениям в определенном количестве через какое-то время.
Например:
SET X TO NODE(TIME+60, 0, 0, 100). // Задает переменной Х значения нода в виде вектора. Нод будет через 60 секунд от текущего положени с увеличением прогрейда
// в 100 метров в секунду.
ADD X. // Добавить Х. Добавит нод на карту, тобишь на планировщик полёта.
PRINT X:PROGRADE. // Возвращает значение изменения скорости по прогрейду у нода Х.
PRINT X:ETA. // Возвращает время до нода Х.
PRINT X:DELTAV // Возвращает вектор Дельты.
REMOVE X. // Убирает нод с планировщика полетов.
SET X TO NODE(0, 0, 0, 0). // Создает пустой нод(узел) Х.
ADD X. // Добавляет нод Х на планировщик полетов
SET X:PROGRADE to 500. // Устанавливает на нод Х значение увеличения скорости по прогрейду на 500 м\с.
SET X:ETA to 30. // Устанавливает нод Х на 30 секунд от текущего нашего положения.
PRINT X:OBT:APOAPSIS. // Возвращает апогей нода Х.
PRINT X:OBT:PERIAPSIS. // Возвращает перегей нода Х.
-
Orbit // Орбита
Структура:
APOAPSIS - Number (meters) //Апогей. Число в метрах.
PERIAPSIS - Number (meters) //Перегей. Число в метрах.
BODY - Body // Тело. Возвращает структуру тела на орбите которого мы находимся.
PERIOD - Number (seconds) // Период обращения вокруг данного тела в секундах.
INCLINATION - Number (degree) // Отклонение в градусах(обычно считают отклонение от Востока тобишь от 90 градусов)
ECCENTRICITY - Number // Эксцентриситет.
SEMIMAJORAXIS - Number (meters) // Еще пара сложных орбитальных данных
SEMIMINORAXIS - Number (meters) // Кто сказал что будет легко.
PATCHES - list of Orbit // Список от Орбиты(Структуры)
TRANSITION - Enum // Трансфер
-INITIAL // Инициация
-FINAL // Финал?
-ENCOUNTER // Вход в зону влияния
-ESCAPE // Выход из зоны влияния
-MANEUVER // Маневр?
-
Time // Время
Возвращает время в разных форматах.
Структура:
CLOCK - Time (HH:MM:SS) // Время часов в левом верхнем углу
CALENDAR - Date (Year #, day #) // Дата
YEAR - Number //Год
DAY - Number (1-365) // День. Число от 1 до 365
HOUR - Number (0-23) // Час. Число от 0 до 23.
MINUTE - Number (0-59) //Минута. Число от 0 до 59.
SECOND - Number (0-59) // Секунда. Число от 0 до 59.
SECONDS - Number (Total Seconds) // Секунды. Число. Сколько всего секунд прошло.
-
Vector // Вектор
Структура:
X - Number (degrees) // Грубо говоря питч. Число градусов.
Y - Number (degrees) // Yaw. Число градусов.
Z - Number (degrees) // Ролл. Число градусов.
MAG - Number // Величина вектора. Число.
Создание:
V (x, y, z)
Например:
SET varname TO V(100,5,0). // инициализируем вектор с названием "varname" с х=100, y=5, и z=0
varname:X. // Возвращает Х из вектора varname 100.
V(100,5,0):Y. // Возвращает 5.
V(100,5,0):Z. // Возвращает 0.
varname:MAG. // В данном случае возвращает величину вектора.
SET varname:X TO 111. // Изменяет параметр Х вектора varname на 111.
SET varname:MAG to 10. // Изменяет величину вектора. В данном случае на выходе V(9.98987,0.44999,0)
-
Vessel // Корабль
Все Корабли делят структуру.
Структура:
DIRECTION - Direction To Active Ship // Направление(структура - Direction) активного корабля
DISTANCE - Meters To Active Ship // Дистанция до активного корабля
BEARING - To Active Ship // Азимут активного корабля
HEADING - To Active Ship // Курс активного корабля
PROGRADE - Direction // структура - Direction
RETROGRADE - Direction // структура - Direction
MAXTHRUST - Max thrust of all active engines // Максимальная тяга всех активных двигателей
VELOCITY - Structure // скорость:
_ORBIT - Vector // Орбитальная.Структура Вектор
_SURFACE - Vector // Относительно грунта.Структура вектор
GEOPOSITION - GeoCordinates // Структура - GeoCordinates
LATITUDE - Number (degrees) // Широта в градусах.
LONGITUDE - Number (degrees) // Долгота в градусах.
FACING - Direction // структура - Direction
UP - Direction // структура - Direction
NORTH - Direction // структура - Direction
BODY - Body // структура - Body
ANGULARMOMENTUM - Direction // структура - Direction
ANGULARVEL - Direction // структура - Direction
MASS - Number (kilogram) // Масса. Число в КГ.
VERTICALSPEED - Number (meters/s) // Вертикальная скорость в м/с
SURFACESPEED - Number (meters/s) // Скорость относительно грунта в м/с
AIRSPEED - Number (meters/s) // Скорость встречного потока в м/с
VESSELNAME - string // Название корабля. Строчное.
ALTITUDE - Number (meters) // Высота в метрах
APOAPSIS - Number (meters) // Апогей в метрах
PERIAPSIS - Number (meters) // Перегей в метрах
SENSORS - Structure // Сенсоры - структура
_ACC - Vector ----
_P RES - Number (Atmosphere) // Данные со стандартных научных датчиков
_TEMP - Number (Celsius) \\
_GRAV - Vector ----
TERMVELOCITY - Number (meters/s) // честно, не знаю.
OBT - Structure - Orbit // Орбита. Структура - Orbit
Летная статистика.
Вы можете получить полезную статистику во время полета вашего корабля.
ALTITUDE // Абсолютная высота (над грунтом)
ALT:RADAR // Радарная высота (Та же что на счетчике сверху)
BODY // Текущее тело у которого ты под влиянием.
MISSIONTIME // Текущее время миссии.
VELOCITY // Текущая ОРБИТАЛЬНАЯ скорость
VERTICALSPEED // Вертикальная скорость
SURFACESPEED // Горизонтальная скорость
STATUS // Статус (посажен, разбился, летишь на орбите и т.п.): LANDED, SPLASHED, PRELAUNCH, FLYING, SUB_ORBITAL, ORBITING, ESCAPING, or DOCKED
INLIGHT // Возвращает единицу если никакие небесные тела не блокирует свет Кербола.(выдает 1 если ты не в тени).
INCOMMRANGE // Не понял точно, но скорее всего возвращает расстояние необходимое для вхождения в зону влияния
COMMRANGE // Непонятно
MASS // Масса
MAXTHRUST // Максимальная тяга всех активных двигателей
VESSELNAME // Название аппарата
Вектора
Это возвращает векторные значения. Может быть использовано с командой
LOCK для осуществления управления аппаратом.
PROGRADE
RETROGRADE
UP // Направление от текущего небесного тела (как я понимаю есть и Down и Forward и т.д.)
Геометрические значения орбиты.
Возвращает необходимые значения
APOAPSIS // Высота апогея
ALT:APOAPSIS // Так же высота апогея
PERIAPSIS // Высота перегея
ALT:PERIAPSIS // Так же высота перегея
ETA:APOAPSIS // Время до апогея
ETA:PERIAPSIS // Время до перегея.
Маневровые узлы
NODE // Направление следующего маневрового узла(нода), может быть использовано для команды LOCK STEERING (Закрепление ориентации)
ETA:NODE // Время до следующего нода.
ENCOUNTER // Возвращает небесное тело которое встретишь.
NEXTNODE // Следующий нод.
Ресурсы
Типы ресурсов
LIQUIDFUEL
OXIDIZER
ELECTRICCHARGE
MONOPROPELLANT
INTAKEAIR
SOLIDFUEL //В принципе можно задать цикл, который пишет в консоль каждую секунду и указать например любой из этих ресурсов.
Конкретные значения ступеней
STAGE:LIQUIDFUEL // Жидкое топливо в данной ступени.
STAGE:OXIDIZER
Глобальные значения
PRINT
. // Пишет всё жидкое топливо во всех баках. УСТАРЕЛО
PRINT SHIP:LIQUIDFUEL. // Пишет всё жидкое топливо во всех баках..
PRINT VESSEL("kerbRoller2"):LIQUIDFUEL. // Пишет всё жидкое топливо во всех баках аппарата с именем "kerbroller2".
PRINT TARGET:LIQUIDFUEL. // Пишет всё жидкое топливо во всех баках цели.
Контроль полёта
Эти значения могут быть использованы с командами SET, TOGGLED, или LOCKED. Некоторые значения, такие как THROTTLE(Дроссель) и STEERING(Управление ориентацией), явно требуют использования команды LOCK(закрепить).
Контроль с использованием команд ON и OFF
SAS // Для этих пяти, используй ON и OFF, например: SAS ON. RCS OFF.
GEAR
RCS
LIGHTS
BRAKES
LEGS
CHUTES // Не могут быть не развернуты(?)
PANELS
Элементы управления использующие команду TOGGLE
ABORT
AGX // Х - номер Экшен группы(может быть от 1 до 10). Используй toggle, например: TOGGLE AG1.(Переключить Экшн группу №1)
Контроль который должен использвать команду LOCK
THROTTLE // Закрепляй(LOCK) значение от 0 до 1(если надо половину то пиши так(LOCK THROTTLE TO 0.5.)).
STEERING // Закрепление направление.
WHEELTHROTTLE // Отдельные дроссельные заслонки для колес
WHEELSTEERING // Отдельная управляющая система для колёс
Система кОС
Возвращает значения версий
Новость отредактировал: Finn - 16 июн 2015 в 06:43
Причина: Исправлены ссылки и грамматические ошибки в тексте...