Как быстрее производить запуск кораблей?
Как быстрее производить запуск кораблей?
5. РАСПОЗНАВАНИЕ МОДУЛЕЙ ПО PART ID ТАБЛИЦЕ………………………………………………………………
ПОЛНОСТЬЮ НАПИСАННЫЕ ДЕТАЛИ И КОНСТРУКЦИИ С КООРДИНАТАМИ У ЗЕМЛИ
РАСШИФРОВКА МОИХ ТЕРМИНОЛОГИЙ
8. МОИ КОНТАКТЫ………………………………………………………………………………………………………………………………
ВВЕДЕНИЕ
Главное – терпение!
Итак, у вас есть “root-права” (ГЛАВНОЕ УСЛОВИЕ – без них редактирование и просмотр невозможен), программа “ES Проводник”, с помощью которой мы будем шарить по папкам и редактировать файлы. Приступаем.
ГДЕ НАХОДЯТСЯ ФАЙЛЫ ДЛЯ РЕДАКТИРОВАНИЯ
Файлы sandbox-миров находятся по адресу: /Android/data/com.nooleus.android.spaceagency/cache/
В этой папке дублируются sandbox-миры, которые, вы отправляли на почту или еще куда; если не отправляли – не появятся). Если же вы, наоборот, скачали sandbox-мир – не важно, в какую папку – просто откройте его с помощью приложения “Space Agency” - он добавится в игру.
Но редактировать будем не их, вернее, не конкретно эти файлы, и не конкретно в этой папке.
Переходим по адресу: /data/data/com.nooleus.android.spaceagency/
Здесь должно отображаться 4 папки: "cache", "files", "lib", "shared_prefs" (если не отображаются или отображаются не все, проверьте ES Проводник на сопряжение с root-правами).
РЕДАКТИРОВАНИЕ КАРЬЕРЫ
Переходим в папку: "files" и выбираем, интересующий нас, файл: "game_state.gfs" (отвечает за общий игровой прогресс, здесь можно открыть все уровни обучения, карьеры на золото + открыть все демо-ролики и запчасти для sandbox-миров), "sandbox_000.gfs" (здесь происходит редактирование конкретного sandbox-мира, добавление кучи шаттлов и других запчастей, их копирование и изменение некоторых параметров).
Редактирование файла: "game_state.gfs"
system,format version,0 – пропускаем строчку (это ориентировка для алгоритма игры к конкретному файлу)
system,file type,4 – пока не понял
global,tutorials total,11 – количество открытых обучающих миссий (если поставить меньше – и в игре их будет меньше)
global,tutorial state,5,5,5,5,5,5,5,5,5,5,5 – пятерочки обозначают, что вы прошли обучение на золото (каждая пятерка привязана к конкретной миссии в обучении, по порядку), если поставить значения меньше (то и будет серебро или бронза)
global,missions total,30 – количество открытых миссий в карьере
global,mission state,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5 – оценки за миссии в карьере
global,demo state,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 –открытые демо-ролики к миссиям (0- закрыто, 1 - открыто)
global,sandbox unlock,30 – чем больше проходите карьеру, тем больше деталей открывается в песочнице (поставив показатель на 30, игра будет полагать, что вы прошли игру полностью и откроет доступ ко всем деталям), соответственно, чем показатель меньше, тем меньше будет открыто (если вы заплатили денежку за открытие модулей - они будут открыты при любом показателе в строке)
Редактирование файла: "sandbox_000.gfs" (000, 001, 003 – нумеруются согласно дате создания, от наименования sandbox -мира не зависит)
system,format version,0 – пропускаем
system,file type,1 – пропускаем
sandbox,version,1 – пропускаем
sandbox,high mission,30 –количество открытых деталей (будто вы прошли 30 миссий)
sandbox,name,My Sandbox –наименование файла в игре (русский язык не поддерживает)
sandbox,uid,66222491 – уникальный идентификационный номер sandbox-карты, и у каждой он свой (одинаковые не допускается, ибо могут перестать корректно работать/запускаться карты)
modspace,record count 01,1 – показатель общего количества модулей в sandbox-мире; изменение данной строчки бессмысленно, т.к., игра после редактирования файла все исправит (под реальное количество модулей).
РЕДАКТИРОВАНИЕ SANDBOX-МИРОВ
Принцип работы кода
Все кто проходил дисциплину информатики, понимает или примерно представляет, как строятся алгоритмы операций на языке техники (1 – обозначает “да”, 0 - “нет” и в зависимости от выбранного варианта выполняются те или иные операции, после которых выбор встает вновь и вновь, 1 или 0 – и сотни, а то и тысячи таких операций происходят ежесекундно в любом ЭВМ). Как-то так:
Итак, перейдем непосредственно к коду 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 переводится как отлаживать/отладка), редактирование - изменений не выявило.
modspace,state 01,1 – положение детали в пространстве (относительно не только окружающего мира, но и прилегающих к ней модулей), 1 - норма, 2 – объект становится неподвижен по осям x и y, но может крутиться.
modspace,effect counter 01,0 – пока не разобрался
modspace,show in selector 01,0 - пока не разобрался
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 – следующая строчка
Далее:
modspace,air 01,1.00,0.00,0.00 - пока не разобрался
modspace,power state 01,0,0,0,0 - пока не разобрался
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 местами). Таким образом можно стыковывать разные ступени и элементы ракет между собой (хотя физически они не касаются друг друга), вот пример наложения модулей друг на друга, который так же можно прописать (да что там модуленй, станций над станциями):
Оставшиеся три нуля перед “-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
Вот, как это выглядит в игре:
(позиции: 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 – длина солнечной батареи (можно удлинить или укоротить до нуля – на количество вырабатываемой энергии это не повлияет).
Рассмотрим строчку (крепление ”без модулей стыковки”)
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 – вооот…
ДРУГОЕ ПОЛЕЗНОЕ
МОИ КОНТАКТЫ
Пишите в группу в ВКонтакте, в тему: “ВОПРОС – ОТВЕТ”: https://vk.com/topic-121108885_33828520
Помогу, чем смогу.
За тех, кто может и делает!
Как быстрее производить запуск кораблей?
5. РАСПОЗНАВАНИЕ МОДУЛЕЙ ПО PART ID ТАБЛИЦЕ………………………………………………………………