Руководство по созданию сценариев в Империоне

Тип статьи:
Авторская

Изображение

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

Шаг первый. Начало.

Для того, чтобы мод появился в списке сценариев, нам достаточно просто создать свою папку по адресу Каталог_игры/Content/Scenarios/ Но не торопитесь его загружать – сперва нам необходимо указать, как именно будет спавниться стартовая солнечная система. Для этого мы создадим внутри каталога с модом папку Sectors и поместим в неё файл Sectors.yaml

Важное отступление: при изменении конфигурационных файлов крайне важно соблюдать синтаксис. Всего один лишний пробел может сделать сценарий неработоспособным. Так что пользуемся Notepad++ или Notepadqq со включенной опцией показа спецсимволов.

Ещё одно отступление: в большинстве случаев — в названиях папок, звёзд, планет, описании мода — игра поддерживает русский язык. Единственное обнаруженное мной место, где кириллицу точно не принимает — описания планет. Так что можете пользоваться… ну, при условии, что не планируете давать погонять мод иностранцам ;) 

Шаг второй. Звезда стартовой солнечной системы. Правим Sectors.yaml

Для начала определим, будет ли генерироваться остальная галактика, или же нам достаточно тех звёзд, что мы создадим вручную:

GalaxyMode: true

Если хотим, чтобы галактика генерировалась, ставим true, в противном случае false.

Теперь зададим параметры нашей звезды:

SolarSystems:
  — Name: Солнце                           #Название звезды
    Coordinates: [0, 30, 0]                #Координаты звезды по осям X, Y и Z
    StarClass: G

Классы звезд доступны следующие: A, B, BH (чёрная дыра), F, G, G2, K, M, N, O. 
Но можно создавать кастомные типы звёзд, правда на основе вышеперечисленных. Пример таких звёзд – N1a и O1a (они же LegacyHome)

А теперь представим, что наше солнце — куб  :D Потому что нам придётся прописать варп-сектора для каждой из сторон этого куба (плюс нулевой сектор). Код уберу под спойлер, чтобы не растягивать и без того большую простыню текста.

    Sectors:
### Нулевой сектор:
      — Coordinates: [0, 0, 0]
        SectorMapType: None
        Playfields:
          — ['0,0,0', Солнце, SunRandom, '']
### Первый сектор (справа от звезды)
      — Coordinates: [2,0,0]
        SectorMapType: WarpTarget
        Playfields:
          — ['0,0,0', 'Солнце [Справа]', SpaceWarpTarget, '']
### Второй (слева):
      — Coordinates: [-2,0,0]
        SectorMapType: WarpTarget
        Playfields:
          — ['0,0,0', 'Солнце [Слева]', SpaceWarpTarget, '']
### Ну и так далее, оставшиеся четыре:
      — Coordinates: [0,2,0]
        SectorMapType: WarpTarget
        Playfields:
          — ['0,0,0', 'Солнце [Сверху]', SpaceWarpTarget, '']
      — Coordinates: [0,-2,0]
        SectorMapType: WarpTarget
        Playfields:
          — ['0,0,0', 'Солнце [Снизу]', SpaceWarpTarget, '']
      — Coordinates: [0,0,2]
        SectorMapType: WarpTarget
        Playfields:
          — ['0,0,0', 'Солнце [Спереди]', SpaceWarpTarget, '']
      — Coordinates: [0,0,-2]
        SectorMapType: WarpTarget
        Playfields:
          — ['0,0,0', 'Солнце [Сзади]', SpaceWarpTarget, '']


Шаг третий. Прописываем планеты в Sectors.yaml

Изображение
Первым делом нужно задать координаты планеты. Чтобы правильно спозиционировать наш зелёный или не очень шарик относительно светила, представим себя на уроке математики и нарисуем координатную ось, в центре которой будет наша звезда.

Отмерим -10мм по одной оси и -10мм по другой. Получившаяся точка и будет координатами нашей планеты. При этом расстояние от центра, до звезды получится около 1,5 см (округляю).

Перенесём данный пример в конфигурационный файл и получим планету, что находится к юго-западу от светила (как на скрине), при этом расстояние до него составляет около 1,5 ае.

Теперь пропишем сектора, что будут относиться к этой точке орбиты. Минимально нам нужно два игровых поля — сама планета и орбитальный сектор, то бишь, космическое пространство, в которое мы попадём, покинув планету. Но мы также пропишем Луну:

      — Coordinates: [-10,0,-10]                                    #По осям X и Z. Y в этом случае задаёт наклон плоскости орбиты.
        Color: '0.04,0.5,0.1'                                           #Цвет планеты, только для карты звёздной системы.
        Playfields:
          — ['0,0,0', Земля, Temperate,'Human:1', '', '', '']
          — ['0,0,0', Орбита Земли, SpaceOrbit, '']
          — ['-10000,10,-10000', Луна, Moon]

Немного поясню по поводу синтаксиса игровых полей на примере Земли:

'0,0,0' — координаты относительно центра сектора. Планета находится в центре орбитального сектора, поэтому тут указаны нули.
Земля — название нашей планеты/сектора.
Temperate — тип нашей планеты/сектора
После этого в одинарных кавычках задаются дополнительные параметры. Например, параметр 'Human:1' сделает планету стартовой.

Полный список игровых полей, если что, можно найти по адресу /папка_игры/Content/Playfields/

Alien: '0.04,0.75,0.74: 0.57,0.09,0.05'                        #Вот прямо такой длинной строчкой и вставляем, не спрашивайте, почему.
Arid: '0.5,0.47,0.04'
Barren, BarrenMetal: '0.49,0.49,0.49'
Desert: '0.5,0.32,0.04'
Lava, LavaNascent: '0.57,0.09,0.05'
Ocean, Temperate: '0.04,0.5,0.1'
Scorched: '0.9,0.6,0.4'
Snow: '0.16,0.18,0.51'

Газовые гиганты в игре делятся на те, что без колец и те что с кольцами – то есть, «Сатурны» и «Юпитеры».

«Сатурны» прописываются так:

      — Coordinates: [-35,0,42]
        Color: '0.04,0.5,0.1'
        SectorMapType: GasGiantRing
        Playfields:
          — ['0,0,0', Сатурн, GasGiant,'', '', 'SaturnGreen', '8']

А «Юпитеры так»:

      — Coordinates: [-30,0,-30]
        Color: '0.45,0.2,0.09'
        SectorMapType: GasGiant
        Playfields:
          — ['0,0,0', Юпитер, GasGiant,'', '', 'JupiterBrown2', '9']

Координаты спутников газовых гигантов прописываются относительно родительской планеты (возьмём для примера Юпитер, который прописали чуть выше)

      — Coordinates: [-30,-1,-31]
        Color: '0.16,0.18,0.51'
        Playfields:
          — ['0,0,0', Европа, MoonIce,'', '', '', '']
          — ['0,0,0', Сектор Европы, SpaceOrbit, '']

[/code][/spoiler][spoiler=«Астероидные поля»][code]      - Coordinates: [25,0,-20]
        Color: '0.49,0.49,0.49'
        SectorMapType: AsteroidFieldAttention
        Playfields:
        — ['0,0,0', Пояс астероидов, SpaceAsteroidField,'', '', '', ''][/code][/spoiler]
[spoiler=«Торговые станции»][code]      - Coordinates: [0,0,20]
        Color: '0.49,0.49,0.49'
        SectorMapType: Station
        Playfields:
        — ['0,0,0', Торговка, SpaceTradingStation,'', '', '', ''][/code][/spoiler]

Шаг четвёртый. Кастомизируем стартовую планету.


Изображение
Вот мы и создали мод с кастомной солнечной системой! Только вот темперейт наш какой-то не очень-то кастомный… Скучно! И тогда внутри нашего мода появляется папка Playfields!

Идем в /папку_игры/Content/Playfields и копируем оттуда папку Temperate в нашу только что созданную папку. Да, если мы хотим изменить только стартовую планету, а не все темперейты разом, то стоит дать скопированной папке уникальное имя, после чего подправить тип стартовой планеты в Sector.yaml

Я назову скопированную папку TemperateS.

Изображение
Изображение


Откроем файл playfield_dynamic.yaml и начнём править:

Для начала уменьшим нашу планету до размеров Луны.

  SizeRange: [2]                                              #задаёт собственно размер. 2 — малая, 3 — средняя, 4 — большая, 5 — огромная
  SizeProbs: [1]                                               #это вероятность спавна (если мы указваем несколько размеров). Единица — это 100%

Чисто по фану наклоним ось планеты — это даст нам полярные дни и ночи близ полюсов:

PlanetAxis: [28,35]                                         #значения в градусах, в скобках указан разброс чисел для рандомайзера

Гравитация. Поскольку планета у нас маленькая, то гравитацию следует немного уменьшить:

GravityMinMax: [-6, -9]                                  #Между 0.6 и 0.9 G (1G=-10, 1,5G=-15, 4G=-40)

Теперь атмосфера. Раз планета небольшая, то атмосфера должна быть прозрачной (днём будут видны звёзды). Заодно это повысит КПД Солнечных панелей.

AtmosphereDensityMinMax: [0.2, 0.5]           #Звёзды днём перестанут быть заметны при значениях выше 1.3

Теперь вода. Изначально её очень мало, поэтому чуть-чуть подправим соотношение воды и суши:

LandWaterRatio: [0.4, 0.45]                            #40-45% воды

Заодно можно задать её цвет:

Water: [WaterBlue]                                          #Доступны значения WaterGreen, WaterBlue, WaterRed, WaterBrown (последнее вопреки названию не коричневый, а цвет детской неожиданности)

Теперь откроем playfield_static.yaml

Почти первой строчкой можно задать описание планеты. К сожалению, кириллица тут не поддерживается :( Зато поддерживается BB-код, почти как на форумах:

Description: "[b]Testovaya[/b] planeta [i]dlya tutoriala[/i]"


Освещение. Если планета кажется нам слишком тёмной, ищем показатели DayLightIntensity и NightLightIntensity. Показатели темперейта такие:

DayLightIntensity: 1.4
NightLightIntensity: 0.55

Следующие показатели позволят нам рассеять или осветлить плотный облачный покров (там где он есть), или же наоборот, превратить темперейт в хмурую планету, затянутую тучами

CloudsDensity: 0.3                                                #Отвечает за физические размеры облаков. От 0 до 1, единица — максимум (как на 4G)
CloudsSharpness: 0.35                                         #(0-1) Отвечает за плотность облачного покрова, чем выше значения, тем ниже плотность
CloudsBrightness: 0.7                                           #(0-1) Яркость облаков, чем выше, тем они ярче
CloudsOpacity: 0.7                                                #(0-1) Светопроницаемость, чем выше, тем менее прозрачны облака

Ищем строчку RandomResources. Тут мы можем изменить ресурсы, их количество и богатство жил. Изначально на нашей планете нет меди и кремния, но есть заскозий и эреструм. Тут можем это исправить, заменив Erestrum и Zascosium на Copper и Silicon.

Теперь ищем слово POIs. В этом блоке мы можем увидеть все возможные постройки и прочие структуры на планете и при желании изменить их. Все постройки упакованны в группы. Чтобы назначить группу своей структуре, нужно вызвать в игре окно фабрики и дважды кликнуть на своём чертеже. В открывшемся окне можно будет задать группу и изменить положение постройки относительно грунта (для любителей подвалов и тех, кто лепит генераторы под дно постройки)
Изображение
После этого файл с расширением *.ebp (не папку, только сам файл) нужно будет скопировать из папки, где хранятся наши чертежи в /папка_мода/Prefabs/ Для нашего мода я выбрал базу под названием «Печенег». Давайте её заспавним. Для этого в блоке POIs добавим следующие строки:

        — GroupName: testba                    #Имя присвоенной чертежу группы
          Faction: None                             #Это фракция, None=Общий
          CountMinMax: [ 1, 1 ]                 #Количество таких построек на планете с разбросом от и до
          AvoidFactionTerritory: true         #С этой настройкой игра попытается заспавнить данную структуру вне чужих фракционных территорий

Возможно, теперь мы захотим добавить постройке кастомный инвентарь. Для этого в постройке должен быть блок под названием «Личный шкафчик». Строчкой ниже пишем

          Properties: 
            — Key: PersonalContainer
              Value: «Core:1»                          #Содержимое контейнера — Ядро, одна штука

Коды предметов мы можем добыть в первом столбце файла /Content/Extras/Localization.csv

        — GroupName: NomadHV                  #Группа нашего корабля
          Faction: None                                 #Фракция: Общий
          Type: HV_Player                             #Может иметь значения HV_Player, SV_Player, CV_Player для парящего, малого и большого судна соответственно.
          CountMinMax: [ 1, 1 ]                      #Количество кораблей (один)
          SpawnPOINear: [testba]                 #Рядом с какой группой структур спавнить
          SpawnPOINearRange: [10, 20]      #Расстояние до материнской структуры в метрах.

Теперь сделаем так, чтобы игрок спавнился в нашей структуре, а не в Спасательной капсуле. Для этого внутри структуры должен быть блок «Спаунер игрока» (любой из) Ищем строчку FixedPlayerStart (следующая группа после POIs) и заменяем то, что там есть на:

    FixedPlayerStart:
        — Mode: Survival                               #можно задавать кастомные старты как для Выживания, так и для Креатива
          Spawn: Structure                           #Тут могут быть всего два значения — или структура или EscapePod
          Structure: testba                            #Имя присвоенной нашему чертежу группы

На следующей строчке мы по желанию можем добавить броню и инвентарь нашего игрока

          Armor: ArmorLight                                      #ArmorHeavy, ArmorMedium, ArmorLight
          Items: [ «Pistol, 50Caliber:250» ]                #Инвентарь: пистолет и 250 патронов к нему

После этого идут блоки Drones и Creatures, где можно просмотреть и при необходимости изменить параметры дронов, патрулей Зираксов и животных. Но мы займёмся этим как-нибудь в другой раз, чтобы излишне не раздувать гайд.

А теперь подробнее по файлам, которые мы правили:

1. Блок стартового экрана сценария:

Description – тэг позволяет задать описание, что будет отображаться в предпросмотре планеты. К сожалению, тут кириллица не поддерживается(( Так что либо копируем английское описание, либо пишем транслитом, либо удаляем вовсе. Зато поддерживается BB-код почти такого же вида как на форумах.
PlanetType – влияет только на то, что отобразится на экране предпросмотра планеты. На реальные параметры воздействия не оказывает, так что можно написать что угодно, хоть «Umerennaya». Но именно из-за неверного заполнения данного пункта в игре версии 1.1 в предпросмотре не найти планет типа Lava Nacsent, хотя они есть, просто обозначены просто как Lava.
PlayfieldType – тип игрового поля, может принимать значения Moon, Planet, GasGiant, Sun.
Difficulty – уровень сложности планеты, отвечает исключительно за очерёдность расположения планет на экране начала новой игры.

2. Небо, атмосфера и ветер: 

AtmosphereEnabled – (true, false) имеется ли атмосфера в принципе. Отменяет все эффекты, кроме облаков (те задаются отдельно).
AtmosphereColor – цвет атмосферы при взгляде из космоса. RGB, макс. 1,1,1 — белый цвет.
SkyColor – цвет неба с поверхности, когда солнце в зените.
SkyHorizonColor – цвет неба, когда солнце у горизонта.

#Освещение
DayLightIntensity – (от 0 до 2), чем выше, тем ярче, по-умолчанию 0.6
NightLightIntensity  — то же, что и предыдущий параметр, но для ночи
LightZenithColor  — цвет освещения, когда солнце в зените, по-умолчанию почти белый — «1, 0.95, 0.92»
LightHorizonColor  — цвет освещения, когда солнце у горизонта, по-умолчанию оранжевый — «1, 0.6, 0»
NightLightColor  — цвет ночного (лунного) света, по-умолчанию голубоватый «0.67,0.65,0.99»

#Туманы
AtmosphereFog — (0-1) дальность тумана, чем выше значение, тем дальше
FogCloudIntensity (0-1) плотность тумана в облаках, чем выше, тем плотнее
FogColor  — цвет тумана, по-умолчанию белый — 1,1,1
GroundFogIntensity (0-1) плотность тумана у поверхности
GroundFogHeight (0-800) высота «поверхностного» тумана

# Облака
CloudsDensity (0-1) чем выше значения, тем визуально больше облака
CloudsSharpness (0-1) чем выше значения, тем менее плотные облака
CloudsBrightness (0-1) яркость облаков, чем выше, тем ярче
CloudsOpacity (0-1) светонепроницаемость облаков, чем выше значения, тем менее прозрачные облака. По-умолчанию 0.9
CloudsZenithColor  — цвет облаков, когда солнце в зените, по-умолчанию голубой «0.87,0.92,1»
CloudsHorizonColor  — цвет облаков, когда солнце у горизонта, по-умолчанию оранжевый «1,0.76,0.56»
CloudsNightZenithColor  — цвет облаков в самые тёмные ночные часы, по-умолчанию сероватые «0.054, 0.094, 0.152»
CloudsNightHorizonColor  — цвет облаков в сумерках (в предрассветный час), по-умолчанию сероватые «0.054, 0.094, 0.152»

#Ветер
WindSpeed – (0-20) влияет на анимацию облаков, травы и деревьев.

3. Блок RandomResources: прописываем месторождения, их количество и богатство жил.

Name – наименование ресурса (ваш КО).
Biome – типы биомов, в которых вышеуказанный ресурс может появиться (в квадратных скобках, через запятую).
IsImportant – либо True, либо False. Задаёт приоритет перед остальными ресурсами. Пригодится, когда планете назначено слишком много ресурсов и игре не хватает места, чтобы заспавнить их все.
CountMinMax – количество (минимум и максимум) месторождений ресурса на планете (будет просчитываться в зависимости от режима сложности игры и размера планеты).
SizeMinMax – объёмы ресурса в месторождениях.
DepthMinMax – глубина залежей в метрах, при значении «ноль» будет частично выступать над поверхностью.
DroneProb – вероятность нахождения рядом дронов-патрулей.
MaxDroneCount – количество дронов около ресурса (если предыдущий параметр не равен нулю).
AsteroidResources – перечень метеоритов, что будут падать на планету при истощении месторождений.

4. Блок POIs – список всех возможных построек на планете. Убираем ненужные, добавляем нужные. Те, что находятся выше в списке, имеют приоритет спавна. Перечислю лишь основные параметры.

GroupName – группа (не название структуры!), к которой принадлежит структура. Используется для рандомного спавна структур из указанной группы. Чтобы назначить группу собственной постройке, дважды кликаем на фабрике в игре (F2) по названию структуры в списке. Затем файл со структурой (только сам *.ebp, без папки и картинки) нужно поместить в папку Prefabs внутри нашего сценария.
Type – используется когда нужно заспавнить структуру, отличную от Базы. Может принимать значения HV_Player, SV_Player, CV_Player.
SpawnPOIAvoid – используем когда нужно заспавнить одну структуру подле другой. Например, ПС рядом с базой.
SpawnPOIAvoidDistance – параметр связан с предыдущим. Определяет расстояние от одной структуры до другой в метрах.
Faction – фракция, которой будет принадлежать постройка. Чтобы сделать постройку Общей, ставим None.
Territory – True или False. Застолбит ли постройка территорию на карте.
AvoidFactionTerritory – Разрешить или нет структуре спавниться на чужой застолблённой территории.  True или False. Срабатывает не всегда, к сожалению...
NoShieldReload – будут ли регенерировать щиты структуры после того, как их сбили (если они вообще есть). True или False.
Biome – биомы (через запятую), в которых постройка может быть заспавнена.
BiomesExcluded – антипод предыдущего, список биомов, в которых спавн структуры запрещён.
CountMinMax – общее количество построек этой группы на планете.
IsScalingCount — (true, false) масштабирует количество построек под размер планеты (х1 для лун, х2 для малых, х4 для больших и х8 для огромных планет). То есть, если в параметре CountMinMax указана единица, то с этой опцией на огромной планете построек станет ажно восемь штук. В связи с этим, при спавне кастомной стартовой базы с начальным инвентарём, лучше отключать данный параметр.
DroneProb – вероятность присутствия у постройки дронов.
DronesMinMax – минимальное и максимальное количество дронов, патрулирующих постройку (если предыдущий параметр не равен нулю).
ReserveCount – число дронов, что прилетят на смену убитым.
TroopTransport – будут ли прилетать транспортники с десантом. True или False.
InitPower – (true, false) позволяет включить или выключить питание структуры по-умолчанию (полезно, если мы хотим запитать Общую базу).
PlayerStart – True или False. Сможет ли в данных структурах спавниться игрок. Используется для кастомных стартов. Если структуре назначен фиксированный инвентарь, будет разумно установить параметр CountMinMax равным единице (CountMinMax: [ 1, 1 ])

Дополнительные параметры структур:
Properties:
Key: PersonalContainer – задаёт фиксированный инвентарь структуры.
Value: «BioFuel:4, EVABoost» – содержимое инвентаря (х4 Биотопливо, х1 Усилитель EVA). Коды предметов берём в первом столбце файла /Content/Extras/Localization.csv

Key: MapDistance – дистанция, с которой будет виден маркер структуры на карте. Именно благодаря данному параметру появляются бесячие застолблённые зоны с «невидимыми» постройками.
Value: 500 – расстояние от игрока в метрах. Если параметр равен нулю, игрок не увидит структуру на карте никогда.

Key: HudDistance – то же самое, что и выше, только для HUD. Значения те же.

5. Блок FixedPlayerStart – Задаём параметры спавна игрока.

Mode – тип игры. Значения: Debug, Creative, Survival.
Armor – тип стартовой брони.
PlayerArmor – продвинутый вариант предыдущего тэга. Используется, когда нужно задать отдельный тип брони для каждого уровня сложности. Пример: [«ArmorMedium, ArmorLight, ArmorLight»] – на лёгком уровне будет надета средняя броня, на остальных – лёгкая.
Spawn – доступно два значения: EscapePod или Structure. Место, где собираемся спавнить игрока.
Structure – используется, если в предыдущем пункте выбрали в качестве спавна структуру. Указываем название группы структур. Убедитесь, что прописали данную группу в блоке POIs, иначе параметр будет проигнорирован.
Status – редактируем показатели здоровья и пищи. Можно задавать свои значения для каждого из режимов сложности. Каждый новый режим прописывается в новых кавычках. Пример: [«Food: 400, Health: 400», «Food: 250, Health: 250», «Food: 150, Health: 150»] — на лёгком уровне игрок будет иметь при старте по 400 единиц здоровья и пищи, на среднем – 250, а на тяжёлом 150.
Items – правим стартовый инвентарь. Пример: [ «Pistol, 50Caliber:250» ] выдаст пистолет и 250 патронов к нему. Также как и в примере из предыдущего параметра, можно прописать комплект инвентаря для каждого уровня сложности. Коды предметов берём в первом столбце файла /Content/Extras/Localization.csv

Ниже идут блоки: 
6. DroneBaseSetup – здесь прописываются типы вражеских дронов и патрулей, их количество и параметры возрождения.
7. CreatureSpawning – здесь прописываются все прочие существа и биомы их спавна.

SizeRange – размер планеты. Может иметь значения: 2 – крошечная (для лун), 3 – средняя, 4 – большая и 5 – огромная (суперземля). Можно задать как какой-то один размер, так и несколько — и они будут определяться случайно. Ну, почти.
SizeProbs – шанс генерации того или иного размера планеты. Значения от нуля до единицы, допускаются дробные числа, главное чтобы в сумме они давали не больше единицы. Если в параметре SizeRange указан всего один размер, просто ставим 1.
PlanetAxis – наклон оси планеты относительно звезды, разброс от -45 до 45. Влияет на продолжительность дня/ночи. Можно устроить полярный день либо вообще уложить планету на бок, полюсом к звезде и на противоположной стороне глобуса будет вечная ночь.
Radiation – общий радиационный фон, от 0 до 20.
GravityMinMax – гравитация, определяет силу прыжка и грузоподъёмность кораблей.

#Температура
TemperatureMin – (от -200 до 500) минимально возможная температура на планете, два числа задают разброс значений для рандомайзера.
TemperatureMax – максимально возможная температура на планете, также с разбросом от и до.
TemperatureNight – ночные колебания температур. Плюсовые значения температуру понижают, минусовые увеличивают. Разброс значений от -200 до 200.

#Вода
WaterProb – вероятность того, что на планете будет вода. От 0 до 1.
LandWaterRatio – (от 0 до 1) соотношение воды к суше. Земное соотношение получится при значении 0.71, то есть будет 71% воды, 29% суши.
SeaLevel – отвечает за глубину водоёмов. От 0 до 400.

#Ландшафт
TerrainLevel – перепады высот суши, чем выше значения, тем больше перепады. От 0 до 400.
TerrainHeightMapMax – максимальная высота суши, чем ниже, тем более сглаженная поверхность. От 0 до 490.
BaseLevel – высота базовой поверхности, она же бэдрок из Майнкрафта. Вода и стандартная суша суша будут находится над этим уровнем. От 0 до 400.

#Атмосфера
AtmosphereDensityMinMax – регулирует плотность атмосферы, влияет на аэродинамические свойства кораблей, дальнобойность оружия и производительность солнечных панелей. При значениях ниже 1.2 на дневном небосклоне будут видны звёзды.
AtmosphereO2MinMax – уровень кислорода в атмосфере, влияет на скорость работы генераторов кислорода.
AtmoBreathableProb – вероятность того, что атмосфера окажется пригодной для дыхания. От 0 до 1.
HumidityMin, HumidityMax – как следует из перевода, отвечают за влажность, но реально влияют лишь на распределение биомов по планете (больше болот, меньше болот и так далее).

#Туман
GroundFogIntensityRange – плотность тумана у поверхности. От 0 до 1. Чем выше значение, тем туман плотнее.
GroundFogHeightRange – общая высота земного тумана. От 0 до 800.
AtmosphereFogRange – плотность тумана в атмосфере. От 0 до 1, чем выше значение, тем туман плотнее.

PvPProb – вероятность ПВП-режима на планете, от 0 до 1.
Также в этом файле можно изменить цвет воды, музыку и список возможных биомов.

Файлы и папки или «а что ещё можно поменять в сценарии?»


Изображение
Перечислю в обратном порядке, потому что так проще:

preview.jpg – обложка нашего мода, отображается на экране начала игры.
gameoptions.yaml – здесь прописываются настройки сложности по-умолчанию, к примеру, чтобы не выставлять верихард ручками каждый раз. Как для одиночной игры, так и для сервера.
description.txt – описание нашего мода. Можно кириллицей, можно BB-код.
Sectors – здесь, в файле Sectors.yaml прописываются наши кастомные планеты и звёзды.
RandomPresets – здесь можно задать параметры генерации звёздных систем как глобально (файл SolarSystemConfig.yaml), так и для отдельных классов звёзд. Также тут можно прописать собственные классы звёзд (на базе существующих). Кстати, файл  SolarSystemConfig.yaml может заменить функционал Sectors.yaml, например, как это сделано в сценарии Default Multiplayer.
Prebabs – сюда мы помещаем кастомные чертежи, которые собираемся заспавнить в сценарии.
Playfields – тут хранятся папки с кастомными типами планет и секторов. Оставляем только те, которых нет в дефолтной игре (для экономии места).
Extras – империопедия и квесты. Можно написать свою историю, добавить/изъять награды… Прописать переводы на другие языки.
Content/Configuration – а вот тут вообще много чего можно сделать: переписать свойства блоков, оружия, вещей, торговцев и т. д. и т. п. Чтобы узнать больше, смотрите файлы по соответствующему пути в основной папке игры. Отмечу лишь:
-------->Factions.ecf – здесь можно прописать кастомные фракции, если захочется их создать. Имейте в виду, данный файл заменит в сценарии дефолтный, так что дефолтные фракции, если они нужны, лучше тоже прописать.
-------->DefReputation.ecf – тут задаётся репутация с фракциями при старте игры.
-------->GalaxyConfig.ecf – если прописали кастомные фракции, то, возможно, захотите прописать для них и территориальные сферы на карте галактики. Это делается тут.
-------->Dialogues.csv, Dialogues.ecf – продолжение локализации, тут прописываются тексты фраз неписей, а так же квестовые диалоги с вариантами ответов.

Ссылка на обучающий мод к статье

Нет комментариев. Ваш будет первым!
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.