kOS. Полное руководство на русском языке.

Kerbal Space Program » Гайды

Всем доброго времени суток.


Данный гайд - практически полностью переведенная официальная английская инструкция по kOS. Теперь вы можете ознакомится с ней в полном русском варианте с моими комментариями для самых маленьких.

Руководство полностью переведено, разъяснено и дополнено мною (Finn163), и по сути является дословным переводом английского руководства с некоторыми комментариями. Надеюсь всем вам оно окажется полезным.

Всем приятного изучения замечательного языка kOS.
 
Правка от 20.06.14
 
За последний год язык неплохо оброс, в ближайшее время адаптирую инструкцию к новой версии

Русскоязычная инструкция по моду kOS.


Описание мода kOS

kOS - мод на скриптовый автопилот для Kerbal Space Program. Он позволит вам писать небольшие программы для автоматизации некоторых задач.

Установка.

Как и останльные моды, распаковать 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" (верха).

Справочник по командам

- Математические функции.


- Полет.


- Файлы ввода/вывода (имеется ввиду работа с файлами в которых вы пишите программу из самой игры)



- Управление потоком (имеется ввиду поток информации поступающей в консоль от программы во время её работы)


- Команды вывода и т.п.


Справочник по структурам.

Структуры это элементы, которые могут содержать больше одной единицы информации. Структуры можно использовать с командой SET.. TO как и с обычными переменными. К их под элементам можно получить доступ через имя вложенного элемента.

- Atmosphere // атмосфера


- Body // Тело


- Direction // Направление


- Engine //Двигатель


- GeoCordinates // Геокоординаты


- List // Список


- Node // Узел


- Orbit // Орбита


- Time // Время


- Vector // Вектор


- Vessel // Корабль



Летная статистика.

Вы можете получить полезную статистику во время полета вашего корабля.

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 // Отдельная управляющая система для колёс


Система кОС

Возвращает значения версий
Изучаем kOS - Условия Мат.Логика и AG [Гайд по kOS часть 3]
Изучаем kOS - Условия Мат.Логика и AG [Гайд по kOS часть 3]
20 дек 2015 в 15:03, Гайды
Введения в kOS [Гайд по kOS часть 1]
Введения в kOS [Гайд по kOS часть 1]
15 дек 2015 в 16:58, Гайды
  1. GigGalaxy

    GigGalaxy @Рома 2 марта 2014 19:21

    Сделали язык программирования для KSP, круто.
    Спойлеры настрой.

  2. 12sd

    12sd 2 марта 2014 19:28

    Круто.
    А чем конкретно ты дёргал ножки своего шагохода? на экшн-группы биндил или как?

  3. Nebula

    Nebula @Александр 2 марта 2014 19:39

    Finn, сделай спойлерами части текста... и ошибок куча просто дурацких neo поправил на скорую руку...
    + 100! Хорошая и полезная работа.

  4. GigGalaxy

    GigGalaxy @Рома 2 марта 2014 19:41

    У меня на компьютере где-то валяется HTML сайта с оценками)
    P.S. Nebula, спасибо что удалил.

  5. kostikc

    kostikc @kostik 2 марта 2014 19:45

    Спасибо. Придется вспомнить Бейсик. Эх.
    *пускает слезу умиления* tears

  6. GigGalaxy

    GigGalaxy @Рома 2 марта 2014 19:51

    Цитата: kostikc
    Спасибо. Придется вспомнить Бейсик. Эх.
    *пускает слезу умиления* tears

    Basic знаешь?
    Клуб программистов)

  7. Finn

    Finn @Николай 2 марта 2014 19:58 Автор

    Ноги дергал через Action группс.

    Не могу понять как спойлеры настроить. А то без них тьма не удобно.

    Кстати забыл написать. Программу вашу программу написанную в игре можно сохранить навсегда и использовать в других крафтах. Для этого надо свичнутся на том 0. Это архив. Там программы всегда сохраняются.

    Если написал программу просто в игре и не в архиве и хочешь её сохранить. Пиши Copy *имяпрограммы* to 0. // это скопирует в архив программую
    Что бы зайти в архив (свичнуть используемый том с 1 на 0) пиши switch to 0.

    Узнать в каком томе ты находишься и содержание тома можно написав команду List.

  8. dizertir

    dizertir @Павел 2 марта 2014 20:10

    Finn-Огромнейшее тебе спасибо! Ты как всегда всё сделал красиво.
    А как на счет стрима,будешь делать? если да.то когда?

  9. MrKerbMan

    MrKerbMan Гость 2 марта 2014 21:59

    Oh Shi~ Lexi4, сюда!

  10. TAL

    TAL @Андрей 3 марта 2014 01:16

    Любители хардкора - вам сюда!

  11. Aqrimuss

    Aqrimuss 3 марта 2014 03:40

    Интересно. А можно с помощью этой программы заставить неподконтрольные объекты действовать по программе? Например, запустил ракету с самолета, и она сама достигла цели?

  12. Mesklin

    Mesklin @Олег 3 марта 2014 07:01

    Цитата: Aqrimuss
    Интересно. А можно с помощью этой программы заставить неподконтрольные объекты действовать по программе? Например, запустил ракету с самолета, и она сама достигла цели?

    Если ракета будет в радиусе 2.5 км от активного корабля, то можно. Был мод в версии 0.21 увеличивающий это расстояние до 100 км.

  13. Finn

    Finn @Николай 3 марта 2014 08:38 Автор

    Цитата: Aqrimuss
    Интересно. А можно с помощью этой программы заставить неподконтрольные объекты действовать по программе? Например, запустил ракету с самолета, и она сама достигла цели?


    Да можно. Но она должна быть в пределе видимости. Как только она пропадет из физической подгрузки программа вырубится, а когда снова войдет в дистанцию и физически подгрузится - снова врубится. Был мод до 100 км или даже больший делающий подгрузку.

  14. Parasitius

    Parasitius @Александр 3 марта 2014 12:36

    О! Молоток, Финн! Несешь в русские массы. Полезное дело сделал. И ведь не поленился! Хвалю. Ей-богу, молодец! Так держать!

  15. Dunwell

    Dunwell @Дмитрий 3 марта 2014 13:56

    Поправил спойлеры. Лишний [/spoiler] был, нашел и вырезал его.

  16. Adamsite

    Adamsite 3 марта 2014 18:56

    Поддержка многопоточности имеется?

  17. Finn

    Finn @Николай 3 марта 2014 21:17 Автор

    Цитата: Adamsite
    Поддержка многопоточности имеется?


    Ну что-то типо того есть.

  18. Adamsite

    Adamsite 3 марта 2014 22:16

    Цитата: Finn
    Цитата: Adamsite
    Поддержка многопоточности имеется?


    Ну что-то типо того есть.

    А можно ли тогда примерчик с ними? hmhm (Только не управление потоком как в спойлере)
    Например вывод в определенном месте консоли текущего времени (time:clock), времени T (missiontime) и координат. Имеется ввиду чтобы все это постоянно обновлялось, не мешая работе самого автопилота.

  19. MrKerbMan

    MrKerbMan Гость 4 марта 2014 07:50

    Боже, это Ассемблер чтоль? Нахрена вам многопоточность?

  20. Finn

    Finn @Николай 4 марта 2014 12:58 Автор

    Цитата: Adamsite
    Цитата: Finn
    Цитата: Adamsite
    Поддержка многопоточности имеется?


    Ну что-то типо того есть.

    А можно ли тогда примерчик с ними? hmhm (Только не управление потоком как в спойлере)
    Например вывод в определенном месте консоли текущего времени (time:clock), времени T (missiontime) и координат. Имеется ввиду чтобы все это постоянно обновлялось, не мешая работе самого автопилота.


    Из программы можно запускать другую программу. Задаешь цикл. И в цикле пишешь RUN monitor. например. А в программе мониторе делаешь clearscreen. print ALT:RADAR. и т.д. и всё. У тебя из цикла будет туда доступ.

    К тому же есть команда ON если ставить её перед включением какой нибудь экшн группы, получим бесконечное дерево вариантов развития программы.

  21. Adamsite

    Adamsite 4 марта 2014 22:35

    Цитата: Finn
    Цитата: Adamsite
    Цитата: Finn
    Цитата: Adamsite
    Поддержка многопоточности имеется?


    Ну что-то типо того есть.

    А можно ли тогда примерчик с ними? hmhm (Только не управление потоком как в спойлере)
    Например вывод в определенном месте консоли текущего времени (time:clock), времени T (missiontime) и координат. Имеется ввиду чтобы все это постоянно обновлялось, не мешая работе самого автопилота.


    Из программы можно запускать другую программу. Задаешь цикл. И в цикле пишешь RUN monitor. например. А в программе мониторе делаешь clearscreen. print ALT:RADAR. и т.д. и всё. У тебя из цикла будет туда доступ.

    К тому же есть команда ON если ставить её перед включением какой нибудь экшн группы, получим бесконечное дерево вариантов развития программы.

    Тут либо я вас не понял, либо вы меня насчет цикла. Тут также получится бесконечный (?!) вызов программы monitor. Таким образом будет постоянно вызываться этот самый ALT:RADAR и т.д.
    Как я понял ваше сообщение, структура такая

    //мой автопилот
    цикл (бесконечный?)
    {
    вызов monitor
    }
    само тело автопилота
    //конец моего автопилота

    //monitor
    вывод missiontime и проч
    //конец monitor

    То есть у меня будет постоянно работать обе программы, но по факту только monitor, тк цикл бесконечен (?) и кроме вывода времени миссии и проч. я больше ничего не увижу (в т.ч. и запуск самой ракеты).
    Похожее получится и если засунуть цикл с вызовом monitor в конец/середину автопилота (нужное подчеркнуть) - тогда мой автопилот либо не доделает свои дела, либо я не увижу missiontime до завершения автопилота.
    Мне же нужно чтобы, грубо говоря, автопилот работал и в той же консольке в уголке показывалось время и т.д. Поэтому я и спросил про многопоточность, которая прекрасно и без лишних закорючек справляется с этим.
    Если вам будет легче и вы знаете шарп, то вот пример того чего я желаю (здесь одновременно и с самого начала программы запускается всем известаная мелодия, а в консольке идет вывод текущей даты и времени, используя другой поток, т.о. не прерывается ни выведение времени, ни мелодия) P.S. мелодию нагло стырил из гугла для наглядности и скобки куда-то исчезли

    Если же я вас неправильно понял, извините

  22. Finn

    Finn @Николай 5 марта 2014 07:56 Автор

    Ой не знаю... Вряд ли получится без извращенств.

  23. DjSapsan

    DjSapsan @Sapsan 5 марта 2014 13:57

    Cool, может я займусь написание книги. По RedPower для майна уже написал

  24. Apps401

    Apps401 14 марта 2014 19:34

    А куда кидать файлы с программами?

  25. andronick83

    andronick83 7 мая 2014 02:16

    А мод в версии 0.23.5 работает? У меня почему-то kOS консоль не реагирует на некоторые команды, "edit" не работает. Кто-то сталкивался с подобным? whut

  26. Finn

    Finn @Николай 11 мая 2014 20:21 Автор

    Цитата: andronick83
    А мод в версии 0.23.5 работает? У меня почему-то kOS консоль не реагирует на некоторые команды, "edit" не работает. Кто-то сталкивался с подобным? whut


    во первых все команды заканчиваются точками. Во вторых команда Edit выглядит так: "Edit X." где X название программы (уже существующей или несуществующей(в этом случае создастся с таким именем)). Набрав "Edit" не получишь никакой реакции - "Edit." - ошибку

  27. andronick83

    andronick83 12 мая 2014 18:42

    Цитата: Finn
    Набрав "Edit" не получишь никакой реакции - "Edit." - ошибку


    Ввожу все правильно. На оф. форуме уже прочел, что это известная проблема:
    Known Issues
    ======
    * There's no built-in editor, the "edit" command is parsed but it doesn't do anything


    http://forum.kerbalspaceprogram.com/threads/68089-0-23-5-kOS-Scriptable-Autopilo
    t-System-v0-12-2014-5-1

  28. Apps401

    Apps401 28 мая 2014 18:33

    Цитата: kostikc
    Спасибо. Придется вспомнить Бейсик. Эх.
    *пускает слезу умиления* tears

    Это же Бубль Гум AppleScript!

  29. Apps401

    Apps401 29 мая 2014 20:48

    Цитата: Adamsite
    Цитата: Finn
    Цитата: Adamsite
    Цитата: Finn
    Цитата: Adamsite
    Поддержка многопоточности имеется?


    Ну что-то типо того есть.

    А можно ли тогда примерчик с ними? hmhm (Только не управление потоком как в спойлере)
    Например вывод в определенном месте консоли текущего времени (time:clock), времени T (missiontime) и координат. Имеется ввиду чтобы все это постоянно обновлялось, не мешая работе самого автопилота.


    Из программы можно запускать другую программу. Задаешь цикл. И в цикле пишешь RUN monitor. например. А в программе мониторе делаешь clearscreen. print ALT:RADAR. и т.д. и всё. У тебя из цикла будет туда доступ.

    К тому же есть команда ON если ставить её перед включением какой нибудь экшн группы, получим бесконечное дерево вариантов развития программы.

    Тут либо я вас не понял, либо вы меня насчет цикла. Тут также получится бесконечный (?!) вызов программы monitor. Таким образом будет постоянно вызываться этот самый ALT:RADAR и т.д.
    Как я понял ваше сообщение, структура такая

    //мой автопилот
    цикл (бесконечный?)
    {
    вызов monitor
    }
    само тело автопилота
    //конец моего автопилота

    //monitor
    вывод missiontime и проч
    //конец monitor

    То есть у меня будет постоянно работать обе программы, но по факту только monitor, тк цикл бесконечен (?) и кроме вывода времени миссии и проч. я больше ничего не увижу (в т.ч. и запуск самой ракеты).
    Похожее получится и если засунуть цикл с вызовом monitor в конец/середину автопилота (нужное подчеркнуть) - тогда мой автопилот либо не доделает свои дела, либо я не увижу missiontime до завершения автопилота.
    Мне же нужно чтобы, грубо говоря, автопилот работал и в той же консольке в уголке показывалось время и т.д. Поэтому я и спросил про многопоточность, которая прекрасно и без лишних закорючек справляется с этим.
    Если вам будет легче и вы знаете шарп, то вот пример того чего я желаю (здесь одновременно и с самого начала программы запускается всем известаная мелодия, а в консольке идет вывод текущей даты и времени, используя другой поток, т.о. не прерывается ни выведение времени, ни мелодия) P.S. мелодию нагло стырил из гугла для наглядности и скобки куда-то исчезли

    Если же я вас неправильно понял, извините

    Цитата: Adamsite
    Цитата: Finn
    Цитата: Adamsite
    Цитата: Finn
    Цитата: Adamsite
    Поддержка многопоточности имеется?


    Ну что-то типо того есть.

    А можно ли тогда примерчик с ними? hmhm (Только не управление потоком как в спойлере)
    Например вывод в определенном месте консоли текущего времени (time:clock), времени T (missiontime) и координат. Имеется ввиду чтобы все это постоянно обновлялось, не мешая работе самого автопилота.


    Из программы можно запускать другую программу. Задаешь цикл. И в цикле пишешь RUN monitor. например. А в программе мониторе делаешь clearscreen. print ALT:RADAR. и т.д. и всё. У тебя из цикла будет туда доступ.

    К тому же есть команда ON если ставить её перед включением какой нибудь экшн группы, получим бесконечное дерево вариантов развития программы.

    Тут либо я вас не понял, либо вы меня насчет цикла. Тут также получится бесконечный (?!) вызов программы monitor. Таким образом будет постоянно вызываться этот самый ALT:RADAR и т.д.
    Как я понял ваше сообщение, структура такая

    //мой автопилот
    цикл (бесконечный?)
    {
    вызов monitor
    }
    само тело автопилота
    //конец моего автопилота

    //monitor
    вывод missiontime и проч
    //конец monitor

    То есть у меня будет постоянно работать обе программы, но по факту только monitor, тк цикл бесконечен (?) и кроме вывода времени миссии и проч. я больше ничего не увижу (в т.ч. и запуск самой ракеты).
    Похожее получится и если засунуть цикл с вызовом monitor в конец/середину автопилота (нужное подчеркнуть) - тогда мой автопилот либо не доделает свои дела, либо я не увижу missiontime до завершения автопилота.
    Мне же нужно чтобы, грубо говоря, автопилот работал и в той же консольке в уголке показывалось время и т.д. Поэтому я и спросил про многопоточность, которая прекрасно и без лишних закорючек справляется с этим.
    Если вам будет легче и вы знаете шарп, то вот пример того чего я желаю (здесь одновременно и с самого начала программы запускается всем известаная мелодия, а в консольке идет вывод текущей даты и времени, используя другой поток, т.о. не прерывается ни выведение времени, ни мелодия) P.S. мелодию нагло стырил из гугла для наглядности и скобки куда-то исчезли

    Если же я вас неправильно понял, извините

    А нельзя поставить 2 таких детали и на одном запустить монитор, а на другом автопилот?

  30. Doc

    Doc @Doc 3 июня 2014 16:18

    Цитата: Adamsite

    А нельзя поставить 2 таких детали и на одном запустить монитор, а на другом автопилот?


    На видео с 5:41 видно как он запускает скрипт на двух разных блоках биндя запуск программы через клавишу цифровой клавы. перед стартом ракета едина, внизу скрепляющая балка между двумя изделиями.

    Но мне повторить не удалось, как только вешаешь запуск скрипта на клавишу, при исполнении скрипт выполняется весь, сразу, одновременно запуская все команды.

    Но там версия 0.2, сейчас уже 0.12.1, так что даже теперь не понятно работают ли такие фишки.

    Может кто знает как лечить?


    http://youtu.be/uzdizR6bJiM?t=5m41s

{login}
  • bowtiesmilelaughingblushsmileyrelaxedsmirk
    heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
    winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
    worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
    expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
    disappointedconfoundedfearfulcold_sweatperseverecrysob
    joyastonishedscreamtired_faceangryragetriumph
    sleepyyummasksunglassesdizzy_faceimpsmiling_imp
    neutral_faceno_mouthinnocent
Последние сообщения с форума
  • Автор
    Тема в разделе: Вопросы по игре
    Просмотров: 1566133
    Ответов: 12701
  • Автор
    Тема в разделе: В ангаре у Боба
    Просмотров: 9487
    Ответов: 55
  • Автор
    Тема в разделе: Технические вопросы
    Просмотров: 25848
    Ответов: 68
  • Автор
    Тема в разделе: Моды
    Просмотров: 2077
    Ответов: 2
  • Автор
    Тема в разделе: В ангаре у Боба
    Просмотров: 219336
    Ответов: 1484
    Все сообщения..
    Полный список последних сообщений
    Loading...

    Нашли ошибку?
    Вы можете сообщить об этом администрации.
    Выделив текст нажмите Ctrl+Alt