Редактирование sandbox-миров

Принцип работы кода

Все кто проходил дисциплину информатики, понимает или примерно представляет, как строятся алгоритмы операций на языке техники (1 – обозначает “да”, 0 - “нет” и в зависимости от выбранного варианта выполняются те или иные операции, после которых выбор встает вновь и вновь, 1 или 0 – и сотни, а то и тысячи таких операций происходят ежесекундно в любом ЭВМ). Как-то так:

редактирование sandbox-миров - student2.ru

редактирование sandbox-миров - student2.ru

Итак, перейдем непосредственно к коду Space Agency. Рассмотрим на примере Шаттла (все строки которого относятся именно ему):

modspace,module save id 01,33

modspace,part id 01,140

modspace,debug id 01,6033

modspace,state 01,1

modspace,effect counter 01,0

modspace,show in selector 01,0

modspace,cargo item 01,0,503,0.00

modspace,cargo item 01,1,500,1.00

modspace,cargo item 01,2,501,1.00

modspace,air 01,1.00,0.00,0.00

modspace,power state 01,0,0,0,0

modspace,navicomp state 01,0,0,0,1.00

modspace,collision state 01,1,0

modspace,position 01,63594.238268,191676.106569,195.320000

modspace,movement 01,17.270000,0.110000,-0.050000,0.000000

modspace,launch timestamp 01,1

modspace,last used timestamp 01,1

modspace,fuel levels 01,35.00,0.00,96.00,0.00

modspace,dock point 01,0,0,0,0,-1

Общие положения и параметры по коду:

После названия каждого из параметров ставится число 01 – величина измену не подлежит (так понял, цифра описывает существование данного параметра в алгоритме игры, будь 00 – этого параметра не было бы в списке), просто примите это как должное и не обращайте на нее внимания.

Потом, в большинстве случаев, через запятую ставится вариант 0 или 1 (учтите, 0 – это не ничего, это тоже вариант). Существуют так же и другие варианты, может быть не 0 или 1, а к примеру 2 – это, скорее всего, перебор вариантов поведения параметра, с боку от которого стоит величина (их можно отредактировать и понаблюдать, как изменится поведение объекта в игре; количество вариантов ограничено рамками, запрограммированными разработчиком).

modspace,state 01,1 – (вариантов которых всего три).

Так же, это может быть отсчет, который здесь начинается не с единицы, как мы привыкли, а с нуля. Пример в строчках грузовых ячеек шаттла:

modspace,cargo item 01,0,503,0.00 – первая ячейка.

modspace,cargo item 01,1,500,1.00 – вторая ячейка.

modspace,cargo item 01,2,501,1.00 – третья ячейка.

Детальный разбор каждой строчки:

Каждая деталь (будь то шаттл, модуль или солнечная батарея) начинается с данной строчки:

modspace,module save id 01,33 – идентификационный номер модуля в Sandbox-мире. У каждого модуля он свой и не дублируется (а если сдублировать вручную при редактировании – то он не появится, либо исчезнет другой с таким же id). Внимание! Меньший № id всегда имеет приоритет над последующими. Т.е., когда игра считывает сохранение, первыми в sandbox-мире загружаются Id с меньшим показателем и только потом решает, стоит ли загружать остальные, ибо они могут содержать ошибки в коде (например, координаты разные объектов, а изменено, что они стыкованы в одном месте – тогда последующий id пристыкуется к предыдущему – не наоборот!).

modspace,part id 01,140 – номер детали, каждый из которых подразумевает собой конкретную деталь (140 обозначает шаттл, допустим 102 - телескоп).

modspace,debug id 01,6033 – неизвестно (debug переводится как отлаживать/отладка), редактирование - изменений не выявило.У каждого модуля свое поведение на те или иные ситуации. Кто-то может не взрываться в атмосфере, а кто-то даже садиться на Землю. 6033 – характеристики для Шаттла. Если прописать характеристику, присущую спасательной капсуле, то шаттл будет игнорировать атмосферу, да и вообще все объекты. НО, это распространяется не на все характеристики и не на каждый объект. Почему? - пока не разобрался.

Быть может, с шаттлом и не выйдет. Вот модуль с которым данный трюк я гарантирую:

редактирование sandbox-миров - student2.ru

А там, разобравшись, глядите и полностью въедите.

modspace,state 01,1 – положение детали в пространстве (относительно не только окружающего мира, но и прилегающих к ней модулей), 1 - норма, 2 – объект становится неподвижен по осям x и y, но может крутиться.

modspace,effect counter 01,0 – пока не разобрался. В корабле Союз (из 3-х модулей) у всех модулей стоит “0” за исключением того, которым управляем, т.е. последнего (нижнего), у него стоит “1”. При отстегивании ступени, у следующей ноль сменяется на единицу. Т.е. можно было бы предположить, что у кого единица – тем модулем в конструкции мы и управляем, а у кого ноль – не активны. Однако, при попытки поменять их местами, управляемым остается все равно нижний модуль (как это обойти я не въехал, может вам пригодится).

modspace,temperature 01,0.50 – отвечает за “нагретость/красноту” модуля. “0.50” говорит о том, что модуль нагрет/красен наполовину (1.00 – максимум; 0.00 – минимум, вернее эта строчка и вовсе отсутствует, следовательно, чтобы добавить красноты модулю, нужно добавить эту строчку). Учтите, показатель красноты как “показатель жизни” в видеоиграх, чем краснее объект, тем меньше он может находиться под нагревом (даже после извлечения из теплой среды).

modspace,show in selector 01,0 – отвечает за отображение/не отображение модуля в меню выбора космических объектов (по факту же, в самой игре – никуда не девается). 0 – обозначает, что объект отображается, 1 – не отображается.
редактирование sandbox-миров - student2.ru редактирование sandbox-миров - student2.ru
Если речь идет не об одиночном модуле, а о целой конструкции, например: “случай 1“ и “случай 2“, тогда в случае 1 достаточно указать не отображаемым тот модуль, который “тащит” все остальные (если они запущены с Земли, без прибегания к Root-правам, то это будет модуль с меньшим “save id”). В случае 2 необходимо делать неотображаемыми все модули конструкции.
редактирование sandbox-миров - student2.ru
Чтобы модуль или конструкция снова отображались, достаточно просто кликнуть на них (пример с шаттлом в тридцатой миссии).

modspace,cargo item 01,0,503,0.00 - грузовая ячейка №1 (0 – позиция ячейки в инвентаре, в данном случае первая сверху; будь цифра 4 – была бы ячейка первая снизу), 503 – груз (батарея), 0.00 – на сколько она заряжена (сейчас она полностью разряжена, максимум это 1.00).

modspace,cargo item 01,1,502,1.00 - грузовая ячейка №2 (1 – вторая сверху), груз (H2O), показатель 1.00 говорит, что бак с водой полон.

modspace,cargo item 01,2,501,1.00 - грузовая ячейка №3 (2 – третья сверху), груз (CO2), бак полон

Т.к. у шаттла 8 ячеек (а тут представлено всего три), значит, остальные пусты. Можем в них что-то добавить, для этого копируем предыдущую строку и вносим изменения.

Пример добавленной строчки в коде:

modspace,cargo item 01,2,501,1.00 - предыдущая строчка.

modspace,cargo item 01,7,500,0.50 – добавленная строчка, последняя ячейка снизу с грузом O2, израсход. Наполовину.

modspace,air 01,1.00,0.00,0.00 – следующая строчка.

Далее:

moreover,cargo item 01,0,503, 1.00 – строчка отвечающая за добавление новых грузовых ячеек помимо имеющихся/отсутствующих. Особо не вникал, однако стоит сказать, что данная строчка отличается от “modspace,cargo item ” только названием в начале, и первой цифрой после “01”, отвечающей уже не только за места, где будет находиться объект, но и за саму позицию ячейки. Я вроде бы пробовал на разных модулях и не на всех сработало (толи я косячил). Вот на этом работоспособность гарантирую, а там, разобравшись, и в других освоитесь.

редактирование sandbox-миров - student2.ru редактирование sandbox-миров - student2.ru

А вот и пример этого модуля и строчки в коде:
редактирование sandbox-миров - student2.ru

modspace,air 01,1.00,0.00,0.00 – состояние внутренней атмосферы, где 1.00 – 100% давления (0.00 – соответственно 0%). 0.00 – уровень диоксида углерода (0.00 – 0%, 1.00 - 100%). 0.00 - не разобрался (у модуля Oxygen Garden данный показатель равен “-0.01” при любых условиях, до которых смог додуматься).

modspace,power state 01,0,0,0,0 – обозначает активность или не активность той или иной системы модуля (снабжение или не снабжение тех или иных функций электроэнергией). ПЕРВЫЙ ноль после единицы пока не разобрался. ВТОРОЙ ноль – управление светом ЭТОГО МОДУЛЯ. ТРЕТИЙ ноль управление навигационным компьютером ЭТОГО МОДУЛЯ. ЧЕТВЕРТЫЙ ноль - пока не разобрался (то что написано к цифре далее – крайне маловероятно), но вроде бы, питает электроэнергией остальные части “корабля” (см. термины в конце документа), если является частью корабля; а если нет – в никуда будет отдавать энергию и будет неуправляем, ибо теперь это элемент корабля, а не независимый модуль (0 – стандарт, 1 - питает).

modspace,navicomp state 01,1,0,0,1.00 – “1” обозначает, что навигационный компьютер включен (0 - выключен), остальное пока не разобрался.

modspace,collision state 01,1,0 - пока не разобрался.

modspace,position 01,63594.238268,191676.106569,195.320000 - местонахождение объекта на карте (изменение по оси x; изменение по оси y; изменение угла, 0.00 – шаттл ровно смотрит вниз, 90.00 – шаттл ровно смотрит влево (т.е. вращается против часовой стрелки), особенно удобно для точечного вырезания объекта в каком-нибудь фотошопе).

modspace,movement 01,17.270000,0.110000,-0.050000,0.000000 - строчка появляется только когда объект движется, “0.110000“ – движение (+ вниз относительно экрана, - вверх), “-0.050000” – вращение (- по часовой, + против часовой), остальные неведомы.

modspace,launch timestamp 01,1 – время с старта и отправки объекта в открытый космос (“1” говорит о том, что объект с начала создания карты уже находился в космосе. Изменение данной величины повлияет на очередность в меню выбора космических объектов).

modspace,last used timestamp 01,1 - время от начала использования объекта (в данном случае “1” говорит о том, что объект не трогали с момента создания карты. Изменения данной величины ни на что не повлияют). Обычно на месте единицы можно обнаружить колоссальные цифры, которые на самом деле являются секундами.

modspace,fuel levels 01,35.00,34.00,96.00,95.00 – показатель уровня топлива, 35.00 - объем бака двигателей сближения (можно подправить на величину побольше, тогда и топлива при каждой заправке будет помещаться больше), 34.00 – на сколько бак двигателей сближения заполнен (максимум 35.00, можно прописать и больше этой величины, все будет работать, однако заправиться в рамках игры более величины в 35.00 единиц не получится), 96.00 – объем бака двигателей ориентации (те которые пшикают), 95.00 – на сколько бак двигателей ориентации заполнен (максимум 96.00).

Так же, можно дописать топливный бак тем объектам, которые не обладают ими изначально. Для этого добавьте строчку modspace,fuel levels 01,35.00,34.00,96.00,95.00 (отредактировав ее параметры под свои нужды) в параметры модуля, не обладающего топливными баками изначально.

Примечание! Обычно, уникальные возможности, вроде топлива или модулей стыковки прописываются после строчки ”timestamp”, как в примере:

modspace,last used timestamp 01,1

modspace,fuel levels 01,35.00,34.00,96.00,95.00

modspace,dock point 01,0,0,0,0,-1

modspace,dock point 01,0,0,0,0,-1 - стыковочный модуль, последняя цифра (-1) обозначает, что стыковочный модуль ни к чему не пристыкован. Была бы любая другая цифра (в зависимости от модуля, например у Space Station Hub в стыкованном состоянии пишется 0) - пристыкован. Чтобы было понятно, вот два примера с лунным модулем, где первый случай не стыкован, а второй стыкован: ”modspace,dock point 01,0,0,0,0,-1”, ”modspace,dock point 01,0,0,0,0,5,0”, заметьте, что “-1” сменился “0”, а перед ним появилась новая цифра “5” – «это save id модуля к которому пристыкован лунный модуль». Первый “0” в цепочке обозначает номер модуля (у лунного модуля всего один стыковочный модуль, а ноль потому, что отсчет идет не с единицы в этой игре. А с нуля: 0,1,2,3 – итого 4). Таким образом можно строить целые базы без единого запуска. Важно, при правильном написании стыковки модулей между собой – не обязательно указывать координаты их обоих в пространстве, главное, указать координаты save id того, который старше (т.е. меньшей цифры), тогда тот модуль, который вы хотите пристыковать, будь он хоть в другом конце карты – пристыкуется к тому, чей save id меньше/старше (наоборот не выйдет, если только в ручную не поменять их save id местами). Таким образом можно стыковывать разные ступени и элементы ракет между собой (хотя физически они не касаются друг друга), вот пример наложения модулей друг на друга, который так же можно прописать (да что там модуленй, станций над станциями):

редактирование sandbox-миров - student2.ru

Оставшиеся три нуля перед “-1” обозначают проводку заправочного шланга, электрического кабеля, открытие/закрытие двери – именно в такой последовательности (0 – все перекрыто, 1 – все включено/открыто).

Все, больше строчек, касаемо шаттла нет.
Рассмотрим последнюю строчку, только уже не от шаттла, а от Space Station Hub, у данного модуля их четыре:

modspace,dock point 01,0,0,0,0,9 ,0

modspace,dock point 01,1,0,0,0,5 ,0

modspace,dock point 01,2,0,0,0,-1

modspace,dock point 01,3,0,0,0,6 ,0

Вот, как это выглядит в игре:

редактирование sandbox-миров - student2.ru

(позиции: 0,1,2,3 располагаются именно в такой последовательности: верх, низ, лево, право)

Величины, на концах которых “-1” – свободны, где “0” - стыкованы (заметьте, перед ними появляется еще одна цифра – это id модулей из строчки “modspace,module save id”).

Рассмотрим строчку (соединение/стыковка безстыковочного модуля)

modspace,parent module 01,2 – она есть лишь там, где существует соединение ”не с помощью” стыковочных модулей. В данном случае пристыкован советский лунный корабль к советскому лунному шасси, а эта строчка принадлежит именно лунному кораблю. Если строчку удалить (находится после ”modspace,fuel levels”) – произойдет расстыковка. Цифра 2 в конце строчки обозначает ”modspace,module save id 01,2”, т.е. привязку к id шасси. При стыковке с чем-либо, подобного рода, конструкции не распадаются на ступени.

Рассмотрим строчку (портал с орбиты на орбиту, плюя на координаты объекта)

modspace,orbital state 01,2,1,1627.92,291.10 – появляется в описании лишь тех объектов, которые кружат на орбите. 2- обозначение того, что объект находится на орбите (если поменять на 3 – сойдет с орбиты; если успеть затормозить до полного улета с нее, то можно полностью остановиться, находясь на орбите), 1 – планета HOM (0 – SOL, 2 – LUN, 3 – GRN, 4 – RED, 5 – YEL, 6 – ENC, 7 – PUR, 8 – GOL, 9 – BLU, 10 – KAT, 11 – EMA, 12 – JOR, 13 - ), 1627.92 – высота, 291.10 – скорость.

Рассмотрим строчку (солнечные батареи/открытие, закрытие/регулировка длины и их наличие)

modspace,solar panel state 01,3,1.00 – строчка обладателей солнечными батареями, 3 – батарея раскрыта (1 – закроет ее, 2 – откроет), но всегда после сохранения стоять будет 3. Так же встречается 0 – состояние до ее первой эксплуатации (будь то под обтекателями).

Далее: 1.00 – длина солнечной батареи (можно удлинить или укоротить до нуля – на количество вырабатываемой энергии это не повлияет).

Рассмотрим строчку (крепление ”без модулей стыковки”)

редактирование sandbox-миров - student2.ru modspace,payload parent 01,1 – строчка принадлежит оранжевому кораблю (всегда в аналогичных ситуациях), а не тому объекту, который ”тащит” . В данном случае ”1” - save id белого двигателя. Для копирования подобного рода конструкций, не стоит забывать изменять save id и в этой строчке. На скриншоте они разъединены, т.к. вместо единицы стоит “0” (кстати, save id ”0” тоже может быть). А так, они соединены. При стыковке с чем-либо, белый объект отстегнется в никуда.

Рассмотрим строчку

modspace,side panel state 01,3,121.000000,121.000000,0.00 – да нечего ее разбирать, т.к. не въехал

Пару слов о строчках ”navicomp”:

Это маркеры / точки, которые служат ориентиром координат тех или иных планет. Вот пример Земли и установленной точки лично:

navicomp,label,HOM – наименование точки.

navicomp,center,-13860.00,-180000.00 – изменение по оси x, изменение по оси y.

navicomp,position,-13298.163086,-185121.500000– не въехал.

navicomp,object radius,600.000000 – не въехал.

navicomp,orbit radius,5920.000000 – не въехал.

navicomp,rescale radius,10800.000000 – на каком расстоянии от объекта будет происходить увеличение движущегося к нему объекта (фокусировка), измеряется не в тех единицах, что отсчитывает навигационный компьютер, а в величинах самого кода (поэтому отслеживать не удобно).

navicomp,scale,1.00 – не въехал.

navicomp,end – подразумевает конец данной координаты.

Эти все строчки, в принципе, можно удалить для удобной работы с файлом. Учтите, что при отсутствии всех модулей и навигационных точек сохранение может не запуститься (не то, чтобы обязательно не будет работать; просто наводка тем, кто чутка где-то подкосячил, например указал другое общее количество модулей и т.д.).

Своя точка (прямо над орбитой Земли):

navicomp,label,TRE – вооот…

navicomp,center,-14402.36,-186072.56 – вооот…

navicomp,position,-14402.356445,-186072.562500 – не въехал.

navicomp,object radius,0.000000– не въехал.

navicomp,orbit radius,0.000000– не въехал.

navicomp,rescale radius,0.000000 – вооот…

navicomp,scale,1.00– не въехал.

navicomp,end – вооот…

редактирование sandbox-миров - student2.ru

ДРУГОЕ ПОЛЕЗНОЕ

Для новичков в root-редактировании!

Чтобы было проще во всем разобраться, я сделал несколько скриншотов модулей из игры, представив их полный код под фотографией. Пример, где каждый из цветов что-то обозначает:
- черный (без изменений)
- синий (новодобавленные строки)
- красный (измененные строки)

редактирование sandbox-миров - student2.ru

Если, по какой-то причине, эти фотокоды не приложены к данному документу, их и другие файлы к игре можно найти здесь:

https://vk.com/topic-121108885_33828514

Наши рекомендации