Как добавить спавнеры и настроить JSON-файлы для мода корабля в Ostranauts

/ ИгрыГайды

Содержание:


Обзор   

Данное руководство предполагает, что вы создаёте модификацию корабля для личного использования, умеете настраивать файл mod_info.json и уже построили корабль в редакторе, но ещё не добавили на него спавнеры.

В первом разделе мы рассмотрим, как добавить три необходимых спавнера на ваш корабль и вставить файлы корабля в мод. Для этого потребуется доступ к папкам images/ships и data/ships. Откройте файл Ships_files.txt в папке images, чтобы продолжить.

Второй раздел посвящён редактированию JSON-файлов и объяснению назначения каждой части кода. Он предполагает, что вы уже выполнили работу из первого раздела. Вам понадобится доступ к папке data и всем её подпапкам. Откройте файл JSONs_and_code_explained.txt в папке data, чтобы продолжить.

Файлы корабля   

Предполагается, что у вас открыт редактор кораблей с построенным, но ещё не сохранённым кораблём.

Сначала воспользуйтесь поиском компонентов (слева на экране) и введите запрос «spawner».

Найдите спавнеры Boarding (посадка) и Not boarding (без посадки).

Спавнер Boarding определяет, где появятся персонажи, прибывающие на корабль через систему PASS-шаттлов. Спавнер Not boarding задаёт точки появления NPC, уже находящихся на корабле.

Добавьте эти спавнеры. Для Boarding хорошим местом будет шлюз, а для Not boarding — навигационная консоль и другие рабочие станции.

Затем найдите навигационную консоль и спавнер sysloot. Разместите спавнер sysloot в центре консоли и выделите его. В левом нижнем углу экрана можно нажать на имя спавнера, чтобы отредактировать его. Аналогично можно поступить с насосами, чтобы подключить их к подходящему датчику.

В окне настройки спавнера переведите переключатели в верхнее положение, чтобы активировать их, затем в строке поиска введите запрос stationmodspod.

Нажмите Save As. Имя, под которым вы сохраните корабль, будет использоваться в файлах игры как название корабля.

Нажмите Escape и откройте Options. В разделе Files выберите Assets — откроется папка с ресурсами игры. Также до неё можно добраться, кликнув правой кнопкой мыши по Ostranauts в Steam, выбрав Browse files, а затем папку Streaming Assets.

Вам понадобятся два файла. Первый находится в папке images/ships — это папка с названием сохранённого корабля. Второй — в data/ships — это JSON-файл с тем же названием. Оба файла нужно поместить в соответствующие папки вашего мода.

Обзор JSON-файлов   

Предполагается, что у вас уже есть готовый корабль и он корректно добавлен в папку мода.

В папке data примерного мода есть четыре подпапки, три из которых содержат JSON-файлы с одинаковыми названиями: interactions, lifeevents и loot. Скопируйте их в папку вашего мода.

Хотя JSON-файлы можно редактировать в любом порядке, я объясню процесс в следующей последовательности:

loot.json
lifeevents.json
interactions.json

Loot.json   

В этом примерном моде присутствуют три версии блока кода CGEncShipbreakerShipEvents.

CGEncShipbreakerShipEvents— это блок кода в базовом файле loot.

JSON-файл
Наличие этого блока кода в файле мода заменяет соответствующий блок кода в базовом файле игры.

Версия CGEncShipbreakerShipEvents в примерном моде заменяет все стартовые корабли на корабль из примера.
Версия CGEncShipbreakerShipEvents_Example plus Vanilla добавляет примерный корабль к стандартному списку.
Версия CGEncShipbreakerShipEvents_CYOS используется для интеграции с модом Vanilla+.

Для базового мода корабля большинство деталей не имеют значения.

Параметр aCOs указывает игре на следующий этап выбора корабля при создании персонажа, поэтому на нём стоит сосредоточиться.
Этот блок кода случайным образом выбирает вариант и направляет игру к соответствующему коду в файлах interactions и lifeevents.json.
Строка
«ESMCGEncShipbreakerExampleIntro=0.06x1|CGEncShipSalvagePodEnduranceIntro=0.06x1»
выбирает либо примерный корабль, либо один из стандартных. Часть «0.06x1» — это вес выбора, а каждый вариант разделяется символом | (вертикальная черта).

Следующий блок кода:

{
"strName" : "ESMCGEncShipbreakerExample",
"aCOs" : [
"Mod_Guide_Example=1.0x1"
],
"aLoots" : [
],
"strType" : "ship"
}

определяет файл Mod_Guide_Example.json в папке ships как доступный для получения корабль.

Параметр RandomDerelict вызывается каждый раз, когда игра генерирует новый заброшенный корабль. Он выбирает одну из трёх категорий: small, medium или big. Мод добавляет четвёртую категорию — example.

Если выбрана категория example, запускается RandomDerelictExample, который случайным образом выбирает один вариант из своего блока aCOs. В примерном моде это только один корабль.

Параметр RandomShipBrokerOKLG определяет, какие корабли можно купить у брокера на станции OKLG. В моде это только примерный корабль.

Если вы хотите добавить лишь один стартовый корабль, достаточно отредактировать строку Mod_Guide_Example=1.

0x1» в блоке ESMGEncShipbreakerExample, заменив Mod_Guide_Example на название вашего корабля. Блоки кода для случайных заброшенных кораблей и брокера на OKLG можно удалить.

lifeevents.json   

Этот JSON-файл содержит три блока кода:

HLVpCGEncExampleShipEventsList
ESMCGEncShipbreakerExampleIntro
ESMCGEncShipbreakerExampleTake

Ни один из этих блоков не существует в базовых файлах игры.

Расшифровка названия HLVpCGEncExampleShipEventsList:

VP— Vanilla Plus (мод «Ваниль+»)
CG — генерация персонажа
Enc — встреча
Example — относится к примерному моду
Ship Events List — список событий для кораблей

Таким образом, этот блок кода предназначен для работы с модом Vanilla+ и представляет собой событие встречи при генерации персонажа для примерного мода, перечисляющее корабли из мода (в данном случае — только один).

ESMCGEncShipbreakerExampleIntro— это событие, которое запускается, когда примерный корабль выпадает при поиске корабля или выбирается в моде Vanilla+. Аббревиатура ESM означает «Example Ship Mod» (примерный мод корабля).

Аналогично, ESMCGEncShipbreakerExampleTake — это событие, срабатывающее при подтверждении выбора корабля.

{
"strName" : "ESMCGEncShipbreakerExampleIntro",
"strInteraction" : "ESMCGEncShipbreakerExampleIntro",
"fCashRewardMin" : 0.0,
"fStartATCRange" : 0.0,
"strStartATC" : "",
"strShipRewards" : ""
}

Параметр strInteraction указывает на блок кода в файле interactions.json. Параметр fCashRewardMin определяет, сколько денег выдаётся при выпадении этого события во время генерации персонажа.

{
"strName" : "ESMCGEncShipbreakerExampleTake",
"strInteraction" : "ESMCGEncShipbreakerExampleTake",
"fCashRewardMin" : 0.0,
"fShipMortgage" : 100.00,
"bShipOwned" : true,
"fShipDmgMax" : 0.2,
"fStartATCRange" : 0.0,
"strStartATC" : "OKLG",
"strShipRewards" : "ESMCGEncShipbreakerExample"
}

Параметр fShipMortgage определяет сумму ипотеки, которую вы должны выплатить при выборе этого корабля.
bShipOwned указывает, что персонаж будет владеть кораблём после генерации персонажа (один из стандартных кораблей можно украсть в процессе генерации).
fShipDmgMax — общий показатель повреждений корабля на старте игры: 0.0 означает отсутствие повреждений, а 1.0 — полное разрушение.
strShipRewards ссылается на блок кода в Loot.JSON и указывает, какой файл корабля используется для создания вашего стартового корабля.

interactions.json   

Этот JSON-файл в основном понятен без пояснений.
strTitle — текст, отображаемый в качестве заголовка события при его воспроизведении. Если вы используете мод Vanilla+, это текст на кнопке в меню корабля.
strDesc — описательный текст, который показывает событие.
CTTestUs — условный модификатор. Большинство событий генерации персонажа не воспроизводятся, если вы не находитесь в тюрьме (так «теряются» годы при аресте во время генерации персонажа).

aInverseуказывает игре, какие события загружать в качестве кнопок.

TSCCGEncShipbreakerExampleIntroзагружает событие корабля для примерного корабля.
CGEncShipSalvagePodCont возвращает вас в главное меню генерации персонажа.
ESMCGEncShipbreakerExampleTake загружает событие для завершения выбора корабля.

Источник: By Allister Hale | Steam

Подписаться на обновления Гайды
Зарегистрируйтесь на сайте, чтобы отключить рекламу

ℹ️ Помощь от ИИ в комментариях

Вы можете задать вопрос нашему ИИ-помощнику прямо в комментариях к этой статье. Он постарается быстро ответить или уточнить информацию.

⚠️ ИИ может ошибаться — проверяйте важную информацию.

Топ дня 🌶️


0 комментариев

Оставить комментарий


Все комментарии - Игры