(недо)Гайд по редактору: Киллер фичи и пути к их созданию

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

Введение (Первый раздел)

Введение

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

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

Значит краткая вводная, что вообще может редактор на данный момент (Лето 2023 года):

  1. Создание миссий
  2. Создание своего ангара (Задник в главном меню)
  3. Ограниченное редактирование игровой карты
    Перенести свою модель из любого 3д пакета невозможно, создать ещё какой либо кастомный контент, который можно внести в игру – невозможно (Не берется в учет возможность менять файлы игры, из за некоторых механизмов это не будет работать в мультиплеере)

Выходит урезанная версия редактора War thunder, причем даже многие фишки от него не раскрыли пользователю в версии для Enlisted (К примеру прикольная штука spline. Ну то есть нам доступен только редактор миссий, в то время как ещё должен быть редактор локаций, для листка наверное так же они являются отдельными программами, как и для тундры)

Каких либо перспектив на данный момент по развитию особо не наблюдается, так что такой скудный и ограниченный набор инструментов будет оставаться долгое время. То есть времени придется тратить очень много на создание и редактирование свои миссий.

Запуск и интерфейс редактора (Второй раздел)

Глава 1 Знакомимся с редактором

1/1

Запуск редактора (Тык)

1.1 Нахождение и запуск редактора

  1. Сначала находим иконку лаунчера

image (4)

  1. Тыкаем по иконке правой кнопкой мыши и жмем “Расположение файла”

image (5)

  1. После этой манипуляции мы попадаем в корневую папку игры, где надо найти “modsEditor.bat”

image (6)

  1. После двойного клика по нему он запускается и перед нами появляется окошко, в котором хранятся все наши scene (Они же миссии, моды). Тыкаем (New scene)

image (7)

  1. Появляется следующее окно. В нижнюю строчку надо написать название scene (Миссии, мода), писать можно что угодно. В верхней строчке надо тыкнуть “Select location” и выбрать карту на которой будем чет делать. После этих действий разблокируется кнопка “Create”, тыкаем на неё.

image (8)

image (9)

  1. Всё, scene создана. Теперь она будет появляться при запуске, в окне, которое мы встретили в пункте 4.

1/2

Интерфейс (Тык)

1.2 Знакомство с интерфейсом редактора

  1. И так. После запуска нас встречает обычное меню спауна. Чтобы войти в режим редактирования – необходимо нажать кнопку F12, после чего у вас появится интерфейс редактора. Появится жёлтая рамка и сверху надпись "Free camera mode" (Летать WASD, переключаться между статичной и динамичной камерой - пробел, для движения)

image (17)

  1. Разберем верхний хотбар, слева-направо

Find entity – открывает окном, в котором содержится список всех ентити, содержащихся в нашей миссии (scene.blk)

image (11)

Select - включает обычный режим, в котором мы можем водить курсором и выделять что нибудь.

Move – включает режим, в котором выбранная нами entity разблокирует движения по осям (Дает возможность двигать выбранные объекты)

Rotate – включает режим, в котором выбранная нами entity разблокирует вращение по осям (Дает возможность крутить выбранные объекты)

Scale – включает режим, в котором выбранная нами entity разблокирует увеличение и уменьшение объема по осям (Дает возможность уменьшать и увеличивать выбранные объекты, менять его масштаб)

Create entity – открывает окно, в котором представлены все доступные entity для размещения (Считай 90% работы выполняется за счет этой менюшки - расстановка пропов, оружия, нужных ентити погоды и прочей мишуры)

image (12)

Разделы:

image (13)

0000000000000000000000000000000000000000000000000000000000000000000000000000000

Mission respawn – распауны (Техника, люди)

Mission objective zones – разные точки захвата (Для штурма, вторжения, захвата)

Mission supplies – пополнение техники (Люди не пополняются. Самолеты, танки, поплавки)

Mission battle area – серые зоны (боксы, поинты, сферы)

Mission teams – команды (В том числе брифинги, дикторы)

Aircrafts – самолеты

Tanks - танки

Other vehicles – другие машины (Которые стоят на картах, мотоциклы, стационарные орудия)

Weapons – оружие

Equipment – одежда, в том числе предметы типа гранат

Other items – прочие предметы, аптечки, прицелы

RendInsts – пропы (рендисты, то чем заполнять карту, чтобы она не была пустой)

Effects – эффекты (пожар, дым, в том числе, которые используются при стрельбе)

Level – эффекты левела (Идет ли снег, настройка воды и прочее)

Shaders – шейдеры это шейдеры

All placeable – всё, что можно поставить

All singletons – всё, что может быть на карте в количестве 1 единицы

All – всё, что есть в редакторе
0000000000000000000000000000000000000000000000000000000000000000000000000000000

Delet selected – удаляет выбранный объект

Surf over ground – включает режим при котором выбранный объект может передвигаться только по двум осям (XY) и при этом он клипится (Прижимается) к земле. клипит проп к поверхности и работют только XY оси

Drop – если объект находится в воздухе и нажать данную кнопку, то он упадет на землю.

Drop on normal – тоже самое, что и Drop, только при падении объект ещё будет стараться занять такое положение, чтобы его нижняя поверхность максимально соприкасалась с землей и не было выпадающих за мир частей.

Reset scale - сбрасывает изменения масштаба объекта (Отменяет действия Scale)

Reset rotation - сбрасывает изменения поворота объекта (Отменяет действия Rotate)

Zoom and center - приближение (Работает в режиме Free camera)

Property panel - панель настройки ентити, его параметры. Появляется, когда выбираешь любой объект и жмешь на эту кнопку.

Hide - спрятать выбранные объекты (пропадет только квадрат, который позволяет взаимодействовать с entity)

Unhide all - показать спрятанное (Возвращает видимость квадратикам)

Show UI - включить интерфейс в режиме редактирования

Toggle time – включить время (По дефолту при переходе в режим редактирования время в игре останавливается, эта кнопка позволяет возобновлять течение времени, либо его останавливать)

Save - сохранить (Сохраняет изменения в папку Корневая_папка_игры/userGamemods/Название_папки/scene.blk)

Help - содержит только хоткеи (Клавиши для быстрого взаимодействия с инструментами на хотбаре)

Основные частые хоткеи - пробел, T - вызов меню спавна ентити, хоткеи скейла, поворота, переход между глобальными и локальными координатами - X, с зажатым шифтом двигать предмет - копию создавать, таб - список ентити, P - панель настройки ентити, Z - в режиме статичной камеры (Когда нету надписи free camera mode) телепортирует к выбранному объекту.

Developer - режим разработчика, меняется на Disegner - отличаются только тем, что в режиме дизайнера пропадают интерактивные квадратики для взаимодействия с entity (Которые расположены на карте изначально)

3)Вкладка toolbox

image (16)

3.1 Playtest – использовать только когда имеется спавн, где появился игровой персонаж, в этом случае это работает как телепорт на место камеры. Иначе спавнит немца без каски, с ножом и там куча проблем с ним.

3.2 DevMode – убирает время возрождения, выключается автоматически после рестарта

3.3 CollGeom – включает показ коллизии предметов.

3.4 NavMesh – включает показ навигационного меша для ботов (Точки и линии, по которым они бегают). Без наличия battle area не работает

3.5 terraform, с помощью неё и можно осуществлять воздействие на почву

Режим EV – поднимаем / опускаем почву (Первый ползунок отвечает за радиус кисти, второй за силу кисти, как она будет глубоко или высоко поднимать землю)

Режим CE – отменяет действия EV с точно такой же силой, с которой они были наложены (То бишь аналог Ctrl + Z, только сам выбираешь, что именно отменить)

Режим GE – удаление травы и растительности в целом (кусты, деревья). (Ползунок настраивает размер кисти. Зажимать кнопку и водить кистью не получится, необходимо прокликивать)

Режим XG – отменяет действие GE (Сработает после рестарта миссии)

3.6 RendInsts – нужен для взаимодействия с уже расставленными rendinsts на карте. Так же через него можно спавнить rendinsts обычные и décor, отличия в том, что у вторых можно настроить коллизию (Включить или отключить)

image (14)

image (15)

При клике на любой проп появляется сфера и появляется возможность воздействовать на них

Unbake – если просто, то сделать объект передвигаемым.

Enbake – снова сделать не сдвигаемым.

Rebake – возвращает объект на место

Instance - копирует и вставляет выделенный объект

With in... - выделяет объекты рядом

3.7 PolyBattleAreas – выделяет полигоны, которыми расставляешь боевую зону (Красные и синии)

image

3.8 CapZonePoly – выделяет полигоны, которыми расставляешь зону захвата (Там зеленый квадрат / сфера будет поверх точки)

3.9 Respawn – выделяет респавны (Просто вроде черная надпись над точкой или в точке)

3.10 Groups Override – содержит группы объектов (Точки, респавны, но не пропы), которые объединены через groupName (Выделяют сразу все, что находится в группе или прячет, если надо)

3.11 Build commands – первая кнопка нужна для того, чтобы перестроить NavMesh в боевой зоне (делается, чтобы боты увидели новые расставленные препятствия)

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

  1. Значок с гаечным ключом(При нажатии всплывает окно):

image (18)

  1. Dificility (Сложность. Отвечает просто за наличие интерфейса и наличия френдлифаера):

А)Стандартная – режим, который сейчас в отрядах

Б) Хардкор – режим, который в одиночках, убирается интерфейс и включается френдлифаер

  1. Gamemode:

А) Отряды – режим с отрядами

Б) Одиночки – режим одиночек, где нет отрядов

3)Spawn mode

А) Безлимитный спавн (Можно сколько угодно раз появляться на одном и том же отряде)
Б) Ограниченный спавн (Как и в рандоме, можно взять отряд 1 раз и после смерти придется брать другой)

  1. Bots count – количество ботов

5) Team – за какую команду будет спавнить игрока. 1 – союзники, 2 – страны оси.

Show hint – показывать ли подсказку при старте редактора

Backup – сохранять ли автоматически сцену каждые 1 минут (Сохраняется в Корневая_папка_игры/userGameMods/Куча_цифирок_название_мода.blk. Не в папку со scene.blk, перед ней)

1/3

Консоль (Тык)

1.3 Знакомство с консолью

  1. Чтобы вызвать консоль – необходимо нажать “ё”. В консоли множество команд, из которых полезными для нас будет небольшая горстка.

  2. Для быстрого поискать можно использовать ТАБ, он будет перебрасывать по каталогам, чтобы внутри каталога пробежаться табом – необходимо добавить после точки букву, чтобы он понял, что надо внутри прыгать между названиями.

  3. Пример команды squad.suicide – позволяет убить весь сквад под управлением игрока сразу, чтобы через esc по одному не убивать, так же различные debug, которые позволяют отслеживать происходящие процессы

Продолжение в комментариях из за ограничение на количество символов

26 лайков

Третий раздел появиться чуть позже

Дополнительная настройка уровня (Четвертый раздел)

3/1

Настройка level

Ищем через таб, обычно называется просто level, но так же может быть normandy_level, pacific_level

Из всего перечня нас интересуют только эти параметры и настройка генератора навмеша, если шарите за него (Я не успел начать разбираться в генераторе навмеша)

level__blk - какую карту загружать
level_fpsLimit - ограничение количества кадров (Для ангаров используется)
level__timeVec - какое время выпадает на левеле

image

Через - убираем, через + добавляем, переменная real

level_weather - какая погода на левеле

image

Через - убираем, через + добавляем, переменная real, варианты погоды через создание ентити, в разделе All искать - ключевое слово weather, либо там ниже вкладка weatherRemaps

level_weatherChoice - какая погода может выпасть (Цифры означают вероятность выпадения)
level_latitude – широта, в которой обитает солнце (Убей врага ярким солнцем в лицо)

Из интересного - в level самих картах, на которую ссылается level__blk задаются параметры для генерации травы на разных ландшафтах.

3/2

Настройка weather

Ищем через таб, если создавали, обычно её нету в списке ентити, потому что она генерируется автоматически

Для создания своей погоды идем в level, убираем всё, что содержится в массиве Weather_choice, либо можно вероятность выпадения просто на 0 поставить, без разницы. Создаем свою ентити погоды, через создание ентити, в разделе All, по ключевому слову weather.

image

Данный параметр отвечает насколько блекло светит солнце, что то в этом духе

Значение 1.0

image

Значение 0.1

image

image (19)

Параметры настройки облаков, ширина, размер и прочее

image (20)

Размер отражающих лучей, насколько светится земля

Значение 1.0

image

Значение 0.1

image

image (21)

Параметр влияет насколько облака объединены, что то в этом духе

Значение 5

image

Значение 105

image

image

Параметр размера шума в облаках

Значение 15

image

Значение 150

image

Параметры рендера, которые влияют на визуальное составляющее (Осветление облаков и прочее)

image

Покрытие облаками, при 1.0 облаков почти нет, при 0 плотные облака

Так же можно редактировать по слоям

image

image

Размер мира, тоже влияет на плотность облаков

image
image

Яркость луны и солнца

image

Настройка озонового слоя для создания неоновых ночей

image

image

Ещё параметр настройки света от земли

image

3/3

Настройка shaders

land_selfillum_strength & land_selfillum_worldscale и autodetect_land_selfillum_color - смена цвета террейна.
paint_details_tex - замена текстур у зданий
envi_cover_specular_albedo - цвет текстуры альбедо (это которая цветная)
envi_cover_specular_color - допольнительный цвет
envi_cover_intensity_map - наложение текстуры поверх имеющихся.
envi_cover_normal - карта нормали, насколько объемно будет ложиться
envi_cover_normal_mask_threshold - множитель наложения карты нормали.
leaves_ss_profile - замена цвета у растений
river0 - Замена цвета под водой.
water_color_noise_size - размер шума цвета

Тут можно посмотреть что будет, если менять envi_cover_intensity_map
Shaders, How to

3/4

Настройка water

Тут нас тоже мало что интересует

image

Water_level - высота уровня моря
Water_strengh - сила волн, при нуле вода спокойная, при больших значениях появляются волны
Water_wind_dir - направление ветра
Water_wind_strengh - сила ветра

Остальные параметры влияют на текстуру, на волны и прочее взаимодействие с ветром и т.д.

3/5

Прочее

1)Как сделать кастомную модель?

Руками

image

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

Другого способа ещё нету. (В теории конечно можно заменить имеющиеся модели, но не факт, что прошедшее через специальный плагин для 3д макса будет здесь восприниматься корректно. Это которым пользуются, чтобы 3д модели танков и самолетов в тундру добавлять, если кто видел эпичный ролик по тундре, где кастомные модели и кастомные анимации один человек полгода готовил ради такого, ну хотя он там на самом деле много готового брал и просто компоновал.)

  1. Как сделать разрушаемый объект?

image

У game_rendinst_decor есть показатель ri_extra__overrideHitPoints - он отвечает за то, что будет уничтожаться объект или нет, так же если навести там появится вспомогательное окно, которое подскажет какое значение за что отвечает

image

По дефолту идёт -2, это значит, что объект бессмертен, так же не все объекты будут разрушаться, если им прописать значение, которое подразумевает, что их можно уничтожить, потому что у некоторых объектов изначально нету здоровья, к примеру каменные дома.

  1. Как повторить фишку аэростатов на карте аэродром (нормандия)

Для реализации механики начисления очков за разрушение объектов нужно добавить разрушаемому объекту в миссии, например barrage_balloon, шаблон add_score_to_destroyable_ri и создать сущность teamScoreFromRiGroup.

При этом параметр destroyable_ri__group у объекта должен совпадать с ri_group_score__destroyableRiGroup у teamScoreFromRiGroup.

Параметр ri_group_score__addScoreForTeam задаёт, какой команде будут начислены очки за уничтожение объекта, ri_group_score__addScoreAmount — количество очков.

Можно задавать несколько групп таких объектов, очки начисляются при уничтожении всех объектов в группе.

  1. Как сделать cuisine royale

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

  1. Как подсмотреть, в обучающих целях, чужую работу?

image

Вот она

image

Заходим на портал модов, выбираем любую работу, нажимаем на неё, слева снизу на скриншоте видна кнопка download, нажимаем её и если нам скачалась scene.blk, то смело тащим её в корневую папку, папка userGameMods (Если такой нету, то просто создать - ПКМ, создать папку, назовите её userGameMods). Внутри этой папки создаем ещё одну папку, в отличии от создания сцены в редакторе, здесь уже можно создавать папку на кириллице, игра увидит эту папку, туда суём полученную scene.blk, она должна быть без цифр, и менно такой.

Если скачался hangar.blk, всё тоже самое, но в конце переименовываем в hangar.blk, потому что ангар это всё та же сцена

Если скачивается файл с расширением vfroms.bin - как повезет, инструменты котика могут помочь, а могут не сработать, тут я не помощник. Так же что за инструменты - не скажу, секрет :kissing_heart:

  1. Как разместить пожар или дым

Всё через создание ентити, вкладка effects

  1. Как разместить звуки

Всё через создание ентити, вкладка не помню какая. Так же требуется иногда добавить через postfx game_rendinst, чтобы звук можно было поставить. И соответственно можно редактировать sound_effect__path в настройках ентити, это влияет на то, какой звук будет

Некоторые звуки можно подгружать через import определенных вещей в scene.blk, к примеру звуки боя из Берлина. Потерял, поэтому просто звуки, для этого открываем scene.blk с помощью блокнота (рекомендую скачать notepad++) и вставляем в самый конец, после всех фигурных скобок следующее:

import{
  scene:t="content/enlisted/gamedata/scenes/_berlin_opera_background_fx.blk"
  scene:t="content/enlisted/gamedata/scenes/_berlin_opera_tracers.blk"
}

Возможно в одном из этих файлов есть звуки, а возможно нет, трассеры это трассеры - типо ПВО будет в небо стрелять, только если вы загружаете это не на карте берлина, то из за разных координат трассеры могут оказаться под землей, возможно они будут простреливать земную твердь, не проверял.

Создание ангара (Пятый раздел)

Ничего сложного нет.

Для создания ангара потребуется несколько ентити, которые можно поставить только разового, камеры и воображение, где и что поставить или что построить рядом из кучи пропов. Главное вначале поставить ентити menu_camera, armor_analyzer, vehicle_decals_manager а в конце добавить ентити ui_disabled и удалить static_cam

После того, как будут расставлены все камеры и прочие ентити - переименовываем файл из scene.blk в hangar.blk и смело заливаем на портал модов.

На примере официального ангара:

4/1

Главное меню

Много квадратиков - это в основном спавн солдат и расстановка света.

Первым делом ставим camera_scenic_place_dof - между ними прыгает как раз menu_camera. Камера смотрит на синюю полоску

image

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

image

И название сцены, чтобы игра понимала, за что отвечает данная камера, в наше случае сцена главного меню, значит название у неё следующее main_menu

image

Далее размещаются ентити спавнов солдат и техники:

menu_soldier_respawnbase - место где появляются солдаты, камера смотрит на красную линию, всего должно быть 9 штук, отсчет начинается с 0. Танкисты появляются тут же, если выбирать их в главном меню

menu_machinegun_respawnbase - место спавна тяжелого пулемета, сейчас он 1, поэтому и пулеметы союзников и пулеметы оси спавнятся только на нем

Так же дополнительно поставить 3 menu_soldier_respawnbase в menuPosFilter прописать bike, отсчет так же начинается с 0. Это места спавна мотоциклистов, когда выбран мотоциклетный отряд

menu_vehicle_respawnbase - на ней будет появляться техника

Продублировать menu_vehicle_respawnbase и в menuPosFilter прописать bike, на этом месте будет появляться байк.

Всё, настройка главного меню закончена

4/2

Отряды

В месте где разместили камеру для главного меню добавляем рядом ещё одну камеру camera_scenic_place_dof , в scene указываем squad - всё, настройка закончена, эта камера показывает выбранные отряды пехоты

4/3

Выбранный солдат / покупка солдат / кастомизация солдат / солдат в казарме

Находим новое место или ставим всё там же, всё так же ставим camera_scenic_place_dof, в scene указываем soldier_in_middle - это выбранный солдат

Так же важно добавить углы возможного движения, иначе будет баг

image

используется singletone ентити - menu_soldier, это значит что данная штука может быть только 1 в нашей сцене, поэтому несколько камер могут располагаться в одном и том же месте, на ней появляются солдаты

ставим ещё одну camera_scenic_place_dof, теперь в scene указываем soldier_customization, эта камера отвечает за показ бойцов во время кастомизации и так же добавить углы возможного движения.

image

ставим ещё одну camera_scenic_place_dof, теперь в scene указываем soldiers_quarters - это камера для бойцов, которых листаем в обеспечении. Так же задаются углы осмотра

image

ставим ещё одну camera_scenic_place_dof, теперь в scene указываем soldiers - это камера покупки бойца. Так же задаются углы осмотра.

image

4/4

Покупка предмета / предмет в инвентаре / предмет в магазине

Не знаю зачем нужна эта камера, но она явно зачем то нужна. Снова ставим camera_scenic_place_dof , в сцене указываем inv_items. Так же задаем лимиты. Плюс активируем menu_cam__shouldRotateTarget - чтобы иметь возможность крутить предмет

image

image

Снова ставим camera_scenic_place_dof, в сцене указываем items_inventory - эта камера показывает предметы инвентаря. Так же настраиваем углы вращения. Плюс активируем menu_cam__shouldRotateTarget - чтобы иметь возможность крутить предмет

image

image

Снова ставим camera_scenic_place_dof, в сцене указываем new_items - эта камера включается, когда покупаем предмет. Так же задаем углы поворотов. Плюс активируем menu_cam__shouldRotateTarget - чтобы иметь возможность крутить предмет

image

image

image

Снова ставим camera_scenic_place_dof , в сцене указываем shop_items - эта камера включается, когда смотрим предметы в магазине. Так же задаем углы поворотов. Плюс активируем menu_cam__shouldRotateTarget - чтобы иметь возможность крутить предмет

image

image

Далее ставим menu_shop_items - здесь будет появляться предмет, который мы смотрим в магазине

Далее ставим menu_new_items - здесь будут появляться предметы после покупки

Далее ставим menu_weapon - здесь появляются предметы из инвентаря

Далее ставим menu_inv_items - по идее предметы инвентаря, но по факту не ясно

Далее ставятся 9 штук menu_item_respawnbase - не ясно зачем, без них всё тоже работает

На этом всё

4/5

Исследования

Просто ставим camera_scenic_place_dof , в сцене указываем researches - эта камера включается, когда мы смотрим исследования, прогресс, вкладку магазина и небольшие события (Там какой то ивент про какую то британскую операцию и ему подобные, на 3 дня)

На этом всё

4/6

Боевой пропуск

Ставим camera_scenic_place_dof , в сцене указываем battle_pass. Так же задаем углы поворотов. Плюс активируем menu_cam__shouldRotateTarget - чтобы иметь возможность крутить предмет

Далее добавляем menu_battle_pass

На этом всё

4/7

Отдельное окно поплавкового самолета

Ставим camera_scenic_place_dof, в сцене указываем squad_plane_floating - эта камера включается, когда мы выбираем отряд с поплавковым самолетом во вкладке отряды

Ставим camera_scenic_place_dof, в сцене указываем main_menu_plane_floating - эта камера включается, когда мы выбираем отряд с поплавковым самолетом во вкладке главного меню

Далее ставим menu_soldier_respawnbase - 2 штуки, отсчет начинается с 0, в menuPosFilter пишем plane_floating

Далее ставим menu_vehicle_respawnbase - в menuPosFilter пишем plane_floating - здесь будет появляться поплавковый самолет

На этом всё

4/8

Окно кастомизации поплавкового самолета

Ставим camera_scenic_place_dof, в сцене указываем aircrafts_floating. Ещё рекомендуется увеличить параметры расположение камеры.

Данные значения выставить на 7.0, все 3

image

Далее ставим menu_aircraft_floating - здесь будет появляться самолет

На этом всё

4/9

Отдельное окно самолета

Ставим camera_scenic_place_dof, в сцене указываем squad_plane - эта камера активируется, когда мы во вкладке отряды выбираем отряд с самолетом

Ставим camera_scenic_place_dof, в сцене указываем main_menu_plane - эта камера активируется, когда мы во вкладке главное меню выбираем отряд с самолетом

Далее ставим menu_vehicle_respawnbase в menuPosFilter пишем plane - здесь будет появляться самолет

На этом всё

4/10

Отдельное окно кастомизации самолета

Ставим camera_scenic_place_dof, в сцене указываем aircrafts - эта камера будет активироваться, когда мы будем в окне кастомизации самолета. Так же задаем углы поворотов. Ещё рекомендуется увеличить параметры расположение камеры.

Данные значения выставить на 7.0, все 3

image

Далее ставим menu_aircraft - здесь будет появляться самолет

На этом всё

4/11

Отдельное окно кастомизации танков

Ставим camera_scenic_place_dof, в сцене указываем vehicles - эта камера активируется, когда мы переходим в окно кастомизации техники. Так же задаем углы поворотов. Ещё рекомендуется увеличить параметры расположение камеры.

Данные значения выставить на 7.0, все 3

image

Далее добавляем menu_inspected_vehicle_pos - здесь будет появляться техника

На этом всё

4/12

События

Ставим camera_scenic_place_dof, в сцене указываем events - данная камера активируется когда мы заходим в профиль, кастомные бои, крупные события типа боя на равных или 1 апреля. Так же рекомендуется задать значения углов осмотра

На этом всё

Кастомные ентити (Шестой раздел)

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

Для начала в папке с нашей scene.blk необходимо создать entities.blk, куда мы будем записывать наши кастомные ентити.

Ещё раз пробежимся, что из себя представляет ентити

У ентити имеется название, тело и в теле содержатся разные значения, которые дают свойства этой ентити . Рассмотрим ентити оружия ППС 43

pps_43_gun{          // - pps_43_gun это имя ентити, далее фигурная скобка обозначает начало тела ентити
  _extends:t="equipable_gun" //  Это параметр в теле, схема построения параметров проста НазваниеПараметра:ТипПараметра:"ЗначениеПараметра". В данном случае название _extends - расширение, этот параметр позволяет наследовать параметры одного ентити к другому, тип параметра - t (текст) это дает понять, что параметру надо задавать значение text - текста, equipable_gun - значение параметра, в данном случае показывает какое расширение использовать для ентити pps_43_gun
  _extends:t="mp_ww2_preset"
  _extends:t="pps_43"
  _extends:t="smg_muzzle_break_3_preset"
  _extends:t="hit_effect_group_8_12mm"
  _extends:t="gun_switch_firing_mode_sound"
  _extends:t="mgun_gun_aim_sound"
  gun__standOffset:p3=0.2, 0.05, 0.15     // p - без понятия, но наверное массив какой нибудь или матрица, цифры влияют на оси XYZ, вроде бы в таком порядке
  gun__crouchOffset:p3=0.2, -0.07, 0.25
  gun__length:r=0.4                    // r - real, число с плавающей запятой
  gun__recoilAmount:r=0.043
  gun__recoilDirAmount:r=0.75
  gun__recoilDir:r=0.4
  gun__visualRecoilMult:r=1.6
  meleeSoundType:t="mgun"
  gun__recoilControlMult:r=0.4
  gun__recoilOffsMult:r=0.3
  gun__rotationSpringMult:p3=0.75, 0.9, 0.9
  gun__barrelTipOffsetOverride:p3=0.65, 0.02, 0.0
  gun_anim_var__fpsGunOffsetAlong:r=0.09
  gun_anim_var__fpsGunOffsetAcross:r=0.035
  gun_anim_var__fpsGunOffsetUp:r=0.065

  _group{
    _tags:t="sound"       // - тег это тоже своего рода ссылка на готовое решение
    gun_sound__forceOneshot:b=yes    // b - bool, данная переменная может быть в двух состояниях yes или no, работает или нет
  }

  "gun_sound__shotPath:shared:object"{    // массив, который содержит в себе параметры звука
    _tags:t="sound"
    path:t="/weapon/mgun/pps_42"
  }

  "sound_irqs:shared:object"{
    _tags:t="sound"

    "reload1:object"{
      path:t="/weapon/mgun/pps_42/reload1/change_ammo"
    }

    "reload2:object"{
      path:t="/weapon/mgun/pps_42/reload2/change_ammo"
    }

    "reload3:object"{
      path:t="/weapon/mgun/ppsh/reload3/change_ammo"
    }
  }

  "gun__mountPoints:shared:array"{

    "point:object"{
      type:t="rest"
      recoil:r=0.5
      offset:p3=0.45, 0.0, 0.0
    }

    "point:object"{
      type:t="rest"
      recoil:r=0.5
      offset:p3=0.34, -0.17, 0.0
    }
  }
}    // Конец тела ентити pps_43_gun закрывается так же скобкой

Так же ещё есть тип i - integer - целое число принимает

  gunCheckHitResult:i=-1

В мультиплерее работают кастомные ентити, но крайне ограниченно. И это конечно тяжело назвать прям полностью кастомным ентити, но всё таки мы берем и меняем в нем целый 1 параметр.

Разберу пример работы @tommyZZM в его эпической миссии BIG-ACTION!SQ-Battle-Of-Volomlask https://sandbox.enlisted.net/post/lIXaTtfV9x0bZT61/. Естественно не всё, а самое банальное - постройка машины.

czech_hedgehog_a_preview{
_override:b=yes
  _extends:t="base_rendinst_builder_preview"
  instantiateTemplate:t="a5m4"
  ri_previeww__name:t="obstacle_czech_hedgehog_a"
  buildingSoundTag:t="fortification"
  previeww_phys__blk:t="content/enlisted/gamedata/gameobjs/czech_hedgehog_previeww_phys.blk"
  building_builder__maxTimeToBuild:r=1.0
  buildingCost:r=1.0
  building_menu__text:t="building_tool/hedgehog"
  building_menu__image:t="building_hedgehog"
}

Берется готовая ентити , к ней добавляется _override:b=yes - это позволяет сохранять изменения и в случае с машиной меняется параметр instantiateTemplate с ентити ежа на ентити машины, я поставил вместо машины самолет и теперь у меня при постройке ежа появляется самолет

Так же можно редактировать переменные real, bool, integer, text, эти изменения так же будут учитываться игрой, не получится использовать _extends (Добавляет функции одной ентити к другой) - расширения, которые изначально не идут с ентити. Из примера выше, я понизил стоимость постройки buildingCost и увеличил скорость постройки building_builder__maxTimeToBuild.

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

Изменения в entities применяются ко всем ентити в игре из за чего, если поменять параметр скорострельности у winchester_1912_gun, то любой игрок, имеющий в руках винчестер будет иметь повышенную скорострельность

Вторая киллер фича - без надобности включать после перезахода постоянно DevMode, чтобы спавниться без задержки, просто создаем entities.blk и суем туда это, что позволяет убрать таймер на респаун

enlisted_player{
_override:b=yes
respawner__canSpawnMinTime:r="0.0"
respawner__respTime:r="0.0"
respawner__respTimeout:r="0.0"
respawner__missionStartDelay:r="0.0"
}

На этом в принципе всё, весь смысл “кастомных” ентити это скрещивать ентити и переписывать пути к их патронам / моделям / различным темплейтам

Более продвинутый уровень кастомных ентити заключается в том, что мы создаем ентити со своим набором параметров (Но естественно нельзя выходить за рамки готовых параметров, потому что редактировать сам код игры нету возможности) на которые потом ссылаемся и получаем по итогу такие штуки Not Dev News#1 But Something New For Enlisted Made By Player Without Pay. Ссылка начинается с %ugm - %ugm/нужный.blk либо там по папкам, смотря как далеко засунули.

Так же предметы находящиеся в scene.blk можно редактировать, менять пути и прочее, к примеру sky ships. На карте расставлены ентити стационарных пулеметов и через scene.blk изменен путь патронов, каждому ентити соответственно всё прописывалось отдельно, потому что в scene.blk каждая ентити уникальна, поэтому какие то стационарки стреляют гранатами дъяконова, какие то артиллерийским дымовым снарядом, а каике то дробью, изначально все стационарные орудия были в виде максимов, но потом появилось больше видов стационарок и для визуального отличия добавились ДШК и че там ещё.

image

Заключение (Седьмой раздел)

Поздравляю, ты прошел базовый курс владения редактором миссий и стал на шаг ближе к главной цели - построению киллер фишек. Ты осилил 8 тысяч слов (Страницы без учета картинок, так что наверное будет под 90-100). За что заслуживаешь орден “читатель”

image

Вперед, к построению галактической республики киллер фишек!

13 лайков
Создание режимов (Третий раздел / часть первая)

Глава 2. Создание режимов

2/1

Entity - сущность (Тык)

2.1 Entity (Сущность)

И так, большинство объектов на карте это entity. Сущность, которая содержит в себе разную информацию, которую можно редактировать и тем самым менять свойства ентити, так настраиваются точки и прочие объекты.

Что можно редактировать в ентитях:

  1. Пути к файлам

image

  1. Включать или отключать некоторый функционал

image

  1. Задавать значения, которые потом высчитываются где то в темных уголках игры. Умное название - значение с плавающей запятой

image

  1. Задавать определенные значения

Текст:

image

Целое число:

image

  1. объединять ентити с помощью postfx или специального значка в настройках ентити (У одного ентити появляется свойство добавляемого - могут возникать ошибки или не работать)

image

Пример с FG 42, имеется название оружия и дополнительно добавлено свойство item_in_world, которое заставляет объект появляться в мире.

Добавляются свойства таким образом через postfx

image

Либо через +, в настройках ентити

image

2/2

Компоненты режима (Тык)

2.2Что необходимо для создания режима

  1. Entity точек

  2. Entity спавнов и точек пополнения

  3. Entity команд

  4. Entity, который активирует определенную группу, если стоит задача сделать постепенное смещение точек и боевой зоны

  5. Entity боевой зоны

  6. Entity кастомного профиля, если есть желание сделать гангейм или поставить набор определенных отрядов

(Можно обойтись без точек пополнения, точек спавна техники, если будет влом ставить)

2/3

Чудо group_activator

Самая важная вещь, которая пригодится, если хотим сделать режим типа вторжения, штурма, конфронтации. Находится в списке всех ентити (На ТАБ)

image

Чтобы заставить работать, надо выбрать ентити, открыть его свойства, нажать +, выбрать тип real, указать название зоны, в следующий примерах показываются официальные карты, поэтому для примера так же укажем sector_1

image

После чего будет такая картина и остается лишь задать вероятность выпадения от 0% до 100% 0.0 и 1.0 соответственно

image

2/4

Параметры боевой зоны (Тык)

2.2.1 Настройка боевой зоны

В официальном гайде имеется построение боевой зоны, поэтому тут просто немного углубимся в значения, которые есть и что в них можно изменить. На примере боксовой боевой зоны (box_battle_area. Так же указываются не все значения, потому что некоторые либо не надо трогать, либо они принимают значения от других значений, либо и вовсе не нужны)

active - активна ли боевая зона.

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

battle_area__damage - сколько урона наносит серая зона

Стандартное значение ХП бойца 10 единиц, чем больше значение – тем быстрее серая зона убьет бойца

battle_area__isVisible - видна ли боевая зона.

battle_area__nodamageborderwidth - ширина, где боевая зона не наносит урона, но работает предупреждение (Серый экран. Распространяется на границу серой зоны, а не боевой)

battle_area__team - к какой команде принадлежит боевая зона. -1 – обе команды смогут в ней бегать, 1 только союзники, 2 только страны оси

battle_area__timetodamage - сколько времени боевая зона бьет по игроку (Тут идет таймер и задается тип. Трогать не надо, вся информацию берется из массива, представленного ниже)

Ниже идет array по типам сущностей - самолетики, злые человеки, бесполезные танчики, каждому по отдельности прописывается время, через которое боевая зона начнет по ним бить, вот эти параметры уже можно изменять.

deactivationdelay - время через которое зона пропадет (перейдет в следующую)

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

transform - расположение зоны, координаты по XYZ

zone_keepDead – сохраняет серую зону опасной для игроков

Эти зоны можно совмещать и так строить красивые или не очень рисунки на карте

2/5

Параметры команды (Тык)

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

artillery_limit__max - сколько может быть артиллерии

score_bleed__domBleed - сколько очков будет сниматься при доминировании вражеской команды в захвате

score_bleed__domBleedOn - включено ли убывание очков

score_bleed__staticBleed - сколько постоянно отнимается очков

score_bleed__totalDomBleedMult - насколько умножается значение отнимаеых очков, когда вражеская команда имеет тотальное превосхводство в захвате

score_bleed__totalDomBleedMultOn - работает ли превосходство (Включается, когда достигается значение в score_bleed__totalDomZoneCount)

score_bleed__totalDomZoneCount - при каком количестве захваченных точек включается превосходство

teamaircraftRequestInterval - через какое время будет доступен вызов самолетов

team_armies - какая сторона будет показываться при спавне

team_botCount - количество ботов за команду

team_botTemplate - какие боты будут спавниться

нижеobj - вероятность по отдельным ботам

team_briefing - подсказа в начале матча, что делать

team_capturePenalty - штраф команде, если точка будет захвачена

team_captureSpeedMult - скорость захвата командой. Его ускорение

team_deathPenalty - сколько очков снимается за смерть отряда

team_deathPenaltyByMember - сколько очков снимается за смерть каждого человечка

team_deserterSubtitle - надпись за выход из идущего боя

team_failEndTime – отчет до того, как команда проиграет

team_firstSpawnCostMult – на это значение умножается число, которое стоит в team_SpawnSquadCost

team_icon - иконка команды

team__id - айди команды, определяет что ты союзник или мемец (вообще надо, чтобы другие ентити понимали кто взаимодействует)

team__locked - заблокирована ли команда

team__loseSubtitle - надпись при поражении

team_name - название команды

team__noMoreSpawn - есть ли у команды ещё возможность появляться

team_randomizeTemplate - рандом template солдат включен или нет

team__score - сколько очков в начале раунда

team__scoreCap - максимальное количество очков на раунд

team_showEnemyHint – работают ли маркера

team__showQuickHint - работают ли подсказки

team_spawnBotArmy - каких ботов спавнить

teamSquadSpawnCost - стоимость спавна отряда

team__sqaudsCanSpawn - могут ли спавнится отряды

team__vehicleSquadSpawnCost - стоимость спавна техники

team_winSubtitle - надпись под надписью при победе

team__winTitle - надпись при победе

team_zeroScoreFailTimer - время через которое будет зачет фейл команде, если у неё количество очков равно нулю

team_bots__buildWaitForTime - время которое бот ждет, чтобы начать строить

team_bots__customSpawnDesstoyedAvoidStatus - на каком расстоянии боты строят спавны или на каком расстоянии от спавна игрока уничтожается спавн бота

team__customSpawnDestroyedMaxAmount - какие количество спавно максимально может быть рядом, после чего остальные удаляются?

team_bots__customSpawns - максимальное количество спавнов, которые могут построить боты

team_bots__placeMedBoxWaitForTime - бот ждет когда начать срать аптечками

2/6

Параметры точки (Тык)

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

capzone__advantageDivisor - влияет на скорость захвата, когда территория оспаривается (когда на точке есть союзник и враг). Чем больше значение - тем дольше времени происходит захват при оспаривании территории.

capzone_alwaysShow - показывать ли постоянно иконку точки

capzone_attackRadiusAdd – на каком расстоянии засчитывается убийство атакующим, как убийство при атаке точки.

capzone_autocap - если начался захват зоны и кто то вышел, то продолжается захват

capzone_autodecap - если захват зоны прекратился, то автоматически снимает захват и начинается сброс захвата постепенный

capzone_canCaptureByPresenceDomination - может ли происходит захват, когда количество союзников на точке больше чем врагов или надо чтобы были только союзники на точке

capzone_canCaptureOnVehicle - возможно ли захватить точку находясь в технике

capzone_capTeam - какая команда начала захватывать точку

capzone_canTeamAdvantage - на сколько человек превосходит команда захвата

capzone_capTime - время захвата зоны (В секундах)

capzone_caption - как обзывается точка захвата (надпись под круглешочком, еле заметная)

capzone_captureStatus - статус захвата точки (Захвачена ли и кем.)

capzone_decapTime - время для отхвата захваченной зоны

capzone_icon - картинка, которая показывается в центре кружка

capzone_iconOffsetY - смещение иконки по оси Y

capzone__isMultipleTeamPresence - включает или отключает параметр, который учитывает количество людей на точке

capzone_maxCapDecapSpeedMult - увеличивает скорость захвата / отхавата, если представителей команды на точке больше одного

capzone_maxTeamPresence - максимальное количество игроков, которые складываются при подсчете сколько людей на точке

capzone_ownTeamIcon - иконки когда зона захвачена

capzone__owningTeam - кому принадлежит точка

capzone_presenceAdvantageToDominate - какие количество игроков активирует противовес борьбы за точку (На сколько атакующих должно быть больше)

Ниже можно врубить подкрутки

capzone_smokeDropHeight - насколько высоко подымается облачко дыма от точки

capzone_smokeTemplate - какой эффект воспроизводится при нейтральном состоянии флага или захваченном

capzone_stopFailTimerForTeam - останавливает таймер отчета до поражения для одной из команд

capzone_title - какое название будет в круглешочке

capzone_titleSize - какой размер у надписи в круглешочке

capzone_award_ProgressStep - сколько очков дают за каждую секунду захвата

capzone_timer__isSet - установлен ли таймер

capzone_timer__timeLeft - сколько времени осталось

decal_height - высота контура точки

decal__id - возможно необходима, чтобы игра понимала где рисовать круг, у какой точки

decal_isVisible – виден ли контур точки

decal_thickness - ширина контура точки

sphere_zone__radius - радиус сферы захвата

2/7

Режим "захват" (Тык)

2.3 Создание захвата. Далее представлен пример настройки точек на карте – рейхсканцелярия:

2.3.1 Настройка одной из команды

Для настройки команды необходимо найти entity команды через таб и заменить следующие значения:

  1. team_germany_berlin+team_narrator_domination+respawn_creators_team

Добавить через <<+>> team_narrator_domination, чтобы игра понимала, что надо воспроизводить фразы диктора для режима захват, если имеется какой либо другой диктор, то его следует удалить через <<->>

  1. team__score - 3100.0

team__scoreCap - 3100.0

Выставить два эти значения так, как нам надо, сколько у команды будет очков на раунд

  1. score_bleed__domBleed - 4.0

Установить значения для потери очков, когда у врага захвачено больше очков, чем у нас, в данном случае будет отниматься по 4 очка в секунду от 3100 очков.

  1. score_bleed__totalDomZoneCount:i=5

Здесь задать значение, при котором будет активироваться увеличение траты очков, то есть если враг захватит 5 точек, то активируется score_bleed__totalDomBleedOn, а от него уже score_bleed__totalDomBleedMul, которая будет увеличивать score_bleed__domBleed

  1. score_bleed__totalDomBleedMul - 2.0

Тут задается значение во сколько раз будет увеличиваться параметр score_bleed__domBleed, если произойдет событие, при котором активируется score_bleed__totalDomBleedOn

  1. team__briefing - domination/common_goals

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

  1. team__deathPenalty - 2.0

Добавляем штраф за смерть, дополнительно от 3100 будет отниматься это значение, если игрок полностью теряет отряд (Опционально, можно просто увеличить скорость потери очков, если не стоит цель затянуть бой)

  1. Соответственно все эти изменения применяются и к противоположной команде, если не стоит цель сделать одну команду сильней

2.3.2 Настройка одной из точек

  1. capzone__title – D

В обозначении точки пишем её обозначение, в этом случае 5 точка обозначается D, в центре круга будет видна буква D, можно вставлять надписи, но тогда это всё будет выезжать за круг

2)capzone__caption - capzone/artillery_emplacement

В названии точки пишется её название или указывается путь к уже готовым надписям

3)decal__height - 1.0

Здесь значение влияет на то, какая будет высота у контура точки (Белая полоса на границе точки) Если её слишком сильно углубить или наоборот, слишком сильно завысить, то отображение контура пропадает, так это можно компенсировать.

  1. sphere_zone__radius - 16.0

Радиус сферы точки захвата, если выбрана сферическая точка, тоже самое можно делать через режим Scale, если же точка квадратная (box) то там это делается только через scale

5)capzone__iconOffsetY - 1.5

На сколько по оси Y надо сместить иконку точки (По высоте регулируются иконка, которая находится в центре точки, а не в центре круга, который появляется при захвате)

  1. Прочие точки расставляют и настраиваются идентично, можно 5, 10, сколько душе угодно

2/8

Режим "уничтожения" (Тык)

2.4 Создание режима уничтожение на примере какой то карты из Туниса

2.4.1 Настройка команд

Команда атаки:

  1. team_tunisia_allies+team_narrator_destruction_attack+respawn_creators_team

Добавляется диктор для атаки, в режиме уничтожения team_narrator_destruction_attack

2)team__scoreCap - 1700.0

team__score - 1700.0

Задаются очки для команды на раунд

3)team__squadSpawnCost - 250

team__firstSpawnCostMul - 0.0

team_vehicleSpawnCost - 250

Настройка убывания очков возможна двумя способами

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

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

  1. team__zeroScoreFailTimer - 60.0

Чтобы при условии окончания очков игра не завершалась сразу – необходимо задать какое нибудь значение для этого параметра. Время указывается только в секундах

  1. team__briefing - destruction/attackers_goals

team__winSubtitle - debriefing/won_invasion_destruction

team__loseSubtitle - debriefing/lost_invasion_destruction

team__winTitle - debriefing/britain_won_destruction_attack_title

Настройка различных надписей, первая для высвечивания надписи при спавне, которая объясняет цель миссии, второе это надпись, когда команда победит в миссии, третья это когда проиграет в миссии, четвертая это заголовок, когда команда победит в миссии

Команда защиты

1)team_tunisia_axis+team_narrator_destruction_defence+respawn_creators_team

Добавляет диктора, который говорит разные фразочки для обороны, в режиме разрушения team_narrator_destruction_defence

  1. team__scoreCap - 3000.0

team__capturePenalty - 1001.0

team__score - 3000.0

Точно так же настраиваем очки на команду, только теперь ещё необходимо прописать параметр team__capturePenalty, чтобы после уничтожения всех целей в одном секторе снимались очки и в конце оборона проиграла, а не был бесконечный матч. В данном примере 3 сектора, в каждой по 1-2 бомбы, уничтожение сектора вычитает из очков команды значение 1001 и после уничтожения третьего взрыва у обороны остается -3 очка из за чего игра понимает, что оборона проиграла и миссия завершается.

  1. team__briefing - destruction/defenders_goals

team__winSubtitle - debriefing/won_defence_destruction

team__loseSubtitle - debriefing/lost_defence_destruction

team__winTitle - debriefing/axis_won_destruction_defence_title

Всё тоже самое, что и у атаки, только теперь эти все надписи будут показываться обороняющимся

2.4.2 настройка точки

  1. bomb_site_zone_chained_box+defend_zone_respawnbase

Из списка выбирается данная точка и настраивается

  1. capzone__capRewardPartCap - 1.8

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

  1. capzone__mustBeCapturedByTeam - 1

Здесь указываем какая команда должна захватить точку

  1. groupName - sector_1

Тут пишется название группы, в которую входит данная точка

  1. active - no (Квадратик черный)

Активна ли данная точка, по дефолту всегда ставим No, потому что точки активируются через group_activator в начале миссии и в последствии через capzone__activateChoice

  1. ui_order - 0

Порядковый номер значка (Сверху которые, под иконками подкрепов)

  1. capzone__capReward - 250.0

Количество очков, которое будет даваться игрокам, принимающим участие в атаке на точку (находящиеся в радиусе точки бомбы). Выдаваться чуть меньше очков через capzone__capRewardPartCap

  1. capzone__caption - capzone/street

Название точки (Показывается, когда заходишь на точку, под кругом сверху). Можно писать сюда что угодно или указать путь к готовой фразе

  1. capzone__checkAllZonesInGroup - yes (В черном квадратике синий квадратик)

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

  1. capzone__deactivateAfterTimeout - 0.0

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

  1. capzone__spawnAtZoneTimeout - 35.0

Здесь сам таймер, который является триггером для capzone__deactivateAfterTimeout

  1. capzone__createRespawnBaseForTeam - 2

Для какой команды устанавливается респаун на точке – 1 союзники, 2 страны оси

  1. capzone__createdRespawnBaseGroup - 3

Сколько всего будет устанавливаться спавном для точки

  1. capzone__createRespawnBase - respawnBaseGroupActivator

Тут указывается пусть до активатора точки спавна на точке

  1. capzone__plantingTeam - 1

Здесь пишется какая команда должна пленитить – закладывать бомбу (цифры должны совпадать с capzone__mustBeCapturedByTeam)

  1. capzone__timeToPlant - 20.0

Время на то, сколько боец будет закладывать бомбу

  1. capzone__timeToDefuse - 30.0

Время для того, чтобы обезвредить бомбу

  1. capzone__timeToExplosion - 40.0

Время – сколько будет длиться отчет до взрыва

18)capzone__bombTemplate - bomb_site+bomb_site_radar_hardware_animchar_05_without_antenna

Важная составляющая, обычно идет без bomb_site_radar_hardware_animchar_05_without_antenna, собственно на её место необходимо прописывать это или напрямую названия других пропов, bomb_site – не трогать, это сама бомба, она генерируется.

  1. capzone__activateChoice

sector_2 - 1.0

Ещё один основной параметр, который влияет на то, какая groupName будет следующей, нажимается <<+>> и добавляется переменная real, которая называется так же, как следующая groupName, если следующая точка только 1, то значение вероятности должно быть 1, если точек больше 1, то для каждой точки выставляется своё значение вероятности выпадения, главное, чтобы итоговое значение при сумме всех точек составляло 1.0

  1. Если по задумке атакующим надо уничтожить 2(А может и все 10) точки, то просто копируем (Сколько душа пожелает) эту настроенную точку и ставим где хотим, потому что нужный параметр на проверку, уничтожены ли все зоны у нас включен, если нужна 1 точка, то просто оставляется всё так же. В принципе всё.

2/9

Режим "конфронтация" (Тык)

2.5 Создание режима конфронтация

2.5.1 Настройка команд

Всё идентично, как и с командой атаки в режиме уничтожения, отличаются только значения, если требуется

team_ussr_berlin+team_narrator_confrontation_attack+respawn_creators_team

team__scoreCap - 2000.0

team__score - 2000.0

team__squadSpawnCost - 250

team__firstSpawnCostMul - 0.0

team__zeroScoreFailTimer - 60.0

team__briefing - confrontation/attackers_goals

team__winSubtitle - debriefing/won_invasion_subtitle

team__loseSubtitle - debriefing/lost_invasion_subtitle

team__winTitle - debriefing/ussr_won_invasion

У второй атакующей команды всё тоже самое, только на данном примере у немцев в берлине на 100 стартовых очков меньше и меньше сам возможный потолок очков.

team_germany_berlin+team_narrator_confrontation_attack+respawn_creators_team

team__memberCount - 0.0

team__scoreCap - 1900.0

team__score - 1900.0

team__squadSpawnCost - 250

team__firstSpawnCostMul - 0.0

team__zeroScoreFailTimer - 60.0

team__briefing - confrontation/attackers_goals

team__winSubtitle - debriefing/won_invasion_subtitle

team__loseSubtitle - debriefing/lost_invasion_subtitle

team__winTitle - debriefing/ger_won_invasion

2.5.2 Настройка точки

Центральная

1)zone_bidirectional_two_chains_box+separate_cap_decap_time+lockable_capzone

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

  1. capzone__capRewardPartCap - 1.25

Всё так же указывается сколько люди буду получать очков за участие в захвате

  1. capzone__curTeamCapturingZone - (-1) (В скобках, потому что тире и минус)

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

  1. groupName - sector_3

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

  1. capzone__capReward - 350.0

Всё так же указывается сколько очков получит за захват точки.

  1. capzone__lockAfterActivate - yes

Заблокирована ли точка сразу после активации

  1. capzone__unlockAfterTime - 160.0

Это таймер, который разблокирует точку после активации через определенное время

  1. capzone__capTimeTeam1 - 60.0

capzone__capTimeTeam2 - 60.0

Параметры настройки времени захвата для каждой команды

  1. capzone__decapTimeTeam1 - 40.0

capzone__decapTimeTeam2 - 30.0

Параметры настройки времени отзахвата (Надо вспомнить умное слово)

  1. capzone__capTeam - (-1)

Так же как и с capzone__curTeamCapturingZone – значение выставляется в виден -1. Параметр отвечает за то, какая команда может атаковать точку

  1. active - no

Активирована ли точка, так же указывается no, потому что точку активирует в начале миссии group_activator или capzone__activateChoice

  1. ui_order - 2

Расположение иконки на шкале точек

  1. capzone__icon - AAA

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

  1. capzone__caption - capzone/banquet_hall

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

  1. capzone__deactivateAfterTimeout - 25.0

Через какое время деактивируется точка захвата

  1. decal__height - 1.0

Высота контура на краю точки

decal__thickness - 0.15

Ширина контура на краю точки

  1. capzone__activateChoiceTeam1

sector_4_b - 1.0

sector_4_a - 1.0

capzone__activateChoiceTeam2

sector_2_a - 1.0

sector_2_b - 1.0

Настройка того, какие сектора будут следующими для точки, вероятность выпадения у каждого значения 1.0 – всё равно будет выпадать случайная точка.

Точки, которые идут после центральной настраиваются так же, но меняются значения, если надо и обязательно два этих параметра, которые указывают какие точки будут активированы после захвата каждой из команд capzone__activateChoiceTeam1 capzone__activateChoiceTeam2

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

zone_bidirectional_two_chains_sphere+separate_cap_decap_time+lockable_capzone

capzone__capRewardPartCap - 1.5

capzone__curTeamCapturingZone - (-1)

groupName - sector_1

capzone__capReward - 350.0

capzone__lockAfterActivate - yes

capzone__unlockAfterTime - 150.0

capzone__capTimeTeam1 - 70.0

capzone__capTimeTeam2 - 70.0

capzone__decapTimeTeam1 - 40.0

capzone__decapTimeTeam2 - 40.0

capzone__capTeam - (-1)

active - no

ui_order - 1

capzone__icon - AAA

capzone__caption - capzone/artillery_emplacement

capzone__deactivateAfterTimeout - 25.0

decal__height - 0.3

decal__thickness - 0.15

sphere_zone__radius - 15.0

capzone__iconOffsetY - 1.5

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

  1. capzone__activateChoiceTeam1

sector_2_a - 1.0

sector_2_b - 1.0

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

12 лайков
Создание режимов (Третий раздел / часть вторая)

2/10

Режим "штурм" (Тык)

2.6 Штурм

2.6.1 Настройка команд

  1. team_ussr_berlin+team_narrator_assault_attack+respawn_creators_team

Идентично настройке других команд, меняется / добавляется диктор

  1. team__scoreCap - 1800.0
    team__score - 1800.0
    team__squadSpawnCost - 250
    team__firstSpawnCostMul - 0.0
    team__zeroScoreFailTimer - 60.0
    team__id - 1
    team__briefing - assault/attackers_goals
    team__winSubtitle - debriefing/won_invasion_subtitle
    team__loseSubtitle - debriefing/lost_invasion_subtitle
    team__winTitle - debriefing/ussr_won_invasion

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

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

team_germany_berlin+team_narrator_assault_defence+respawn_creators_team
team__scoreCap - 3000.0
team__capturePenalty - 1001.0
team__score - 3000.0
team__id - 2
team__briefing - assault/defenders_goals
team__winSubtitle - debriefing/won_defence_subtitle
team__loseSubtitle - debriefing/lost_defence_subtitle
team__winTitle - debriefing/ger_won_defence

2.6.2 Настройка точки

Настройка одновременно двух точек

  1. defend_zone_chained_box+defend_zone_respawnbase
    Используется такого типа точка для создания штурма
  2. capzone__capRewardPartCap - 1.8
    capzone__mustBeCapturedByTeam - 1
    capzone__curTeamCapturingZone - (-1)
    groupName - sector_1
    capzone__capTime - 25.0
    capzone__capTeam - 2
    capzone__progress - 1.0
    active - no
    capzone__decapTime - 25.0
    capzone__autoDecap - no
    capzone__autoCap - no
    capzone__owningTeam - 2
    ui_order - 2
    capzone__capReward - 200.0
    capzone__title - A
    capzone__caption - capzone/goebbels_villa
    capzone__checkAllZonesInGroup - yes
    decal__height - 0.9
    decal__thickness - 0.15
    capzone__deactivateAfterTimeout - 0.0
    capzone__spawnAtZoneTimeout - 25.0
    capzone__createRespawnBaseForTeam - 2
    capzone__createRespawnBase - respawnBaseGroupActivator
    capzone__createdRespawnBaseGroup - 3

capzone__activateChoice
sector_2 - 1.0

Единственный момент это capzone__progress – чтобы защитника не приходилось захватывать точку обороны

  1. Вторая точка для 1 сектора настраивается точно так же, если есть желания можно крутить параметры, главное не трогать capzone__checkAllZonesInGroup - yes и
    defend_zone_chained_sphere+defend_zone_respawnbase
    capzone__capRewardPartCap - 1.8
    capzone__mustBeCapturedByTeam - 1
    capzone__curTeamCapturingZone - (-1)
    groupName - sector_1
    capzone__capTime - 25.0
    capzone__capTeam - 2
    capzone__progress - 1.0
    active - no
    capzone__decapTime - 25.0
    capzone__autoDecap - no
    capzone__autoCap - no
    capzone__owningTeam - 2
    ui_order - 3
    capzone__capReward - 200.0
    capzone__title - B
    capzone__caption - capzone/goering_strasse
    sphere_zone__radius - 10.0
    capzone__checkAllZonesInGroup - yes
    decal__thickness - 0.15
    decal__height - 0.2
    capzone__deactivateAfterTimeout - 0.0
    capzone__spawnAtZoneTimeout - 25.0
    capzone__createRespawnBaseForTeam - 2
    capzone__createRespawnBase - respawnBaseGroupActivator
    capzone__createdRespawnBaseGroup - 4
    capzone__iconOffsetY - 1.5

capzone__activateChoice
sector_2 - 1.0

Настройка конечной точки происходит точно так же, просто ставится 1 точка и не указывается capzone__activateChoice

2/11

Создание режима "gungame" + настройка кастомных профилей (Тык)

Достаточно просто добавить через создание ентити gun_game_mode_logic

В нем можно настраивать когда делать объявления, что кто то достиг определенного уровня

image

Так же задавать сколько уровней будет и что на них выдавать

image

LevelKills - сколько нужно сделать с него убийств
selectedsessionAmmo - какие патроны выдавать
selectedsessionWeapon - какое оружие выдавать
weaponSlot - в какой слот выдавать
Зачем там ещё дублируется выдаваемое оружие не знаю, но возможно это важно, так что дублируем туда selectedsessionWeapon

Названия оружия пишется в ентити оружия, патроны к нему указываются так же в ентити оружия

image

image

Так же важно добавить ентити custom_profile

image

В настройках ентити указать путь до профиля

%enlSqGlob/data/gun_game_profile.json

Для ботов так же можно настроить профиль

Создается ентити custom_bot_profile и там так же указывается путь к профилю. Можно выдавать точно такой же, как и у игрока, но есть шанс, что бот займет слот техники и будет стоять на респе

Список профилей

image

Способ создания кастомного профиля (Для ботов будет работать в мультиплеере, для игроков нет)

Существуют ли гайды по созданию кастомных отрядов? - #5 by 1327954

Custom Profiles Guide

2/12

Комбинирование режимов

Возможно, просто ставятся точки, так же важно иметь capzone__checkAllZonesInGroup - yes и чтобы они были в одной groupName. То есть спокойно в одном секторе может быть точка из вторжения и уничтожения, а во втором уже две точки из штурма, последняя может быть точка захвата.

10 лайков

Картинки не красивые

Киллер фич не будет

2 лайка

Не порядок, ну может кто нибудь потом потратит больше времени и сил, и вот тогда то, тогда то чёт будет

5 лайков

Молодец, что выкатил. Засяду погляжу

4 лайка

Удачи

image

7 лайков

Бонус для любителей позинг

Как создать сцену со статичными человечками, чтобы по 100 раз не перезапускать повтор

Настройка статики:

Способ 1.

Заспавнить customizable_benchmark_animchar - появится в такой позе человечек

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

Другие возможные персонажи:
uk_tropical_1_char
ussr_summer_1_char
ussr_winter_1_char
ger_winter_1_char
us_winter_1_char

Выдаем оружие, путем добавления нового свойства в ентити через + в его настройках - human_weap

Находим human_weap__weapTemplates и туда пишем названия оружия с припиской _gun, не забываем продублировать персонажа, чтобы изменения вступили в силу

image

Количество поз ограничено, какие ещё рабочие - методом тыка выясняйте, я не сидел, не выяснял, точно могу сказать, что анимации кузинки выпилены (Это странные названия типо beast, vampir и прочее)

All animStateNames

Пихать их сюда, в animchar__animStateNames

image

Способ 2.

Ставим customizable_menu_animchar, прописываем дополнительное свойство

Находим human_equipment__initialEquip, жмём плюс и пишем названия одежды.

All clothing list Ids ( Portal )

image

В появившейся строке, которая будет пустая - указываем слот, куда надевается этот предмет и получаем стилягу нашего

image

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

И последнее, что надо знать, это консольную команду camera.free - с помощью неё можно уйти в свободное плавание и делать скриншоты, плюсом будет app.timeSpeed, чтобы замедлять время и успевать запечатлеть эффекты, которые невозможно регулировать, чтобы их анимация останавливалась на определенном кадре.

5 лайков

И на этом кончается поддержка этой темы мной, я пропадаю до новой кампании, потому что новый остров на ТО такой себе. Если кто то хочет что то дополнять или пополнять - пишите

4 лайка

:uk:

i’m sorry for invading this place, but i had a couple of questions,

is it possible to fix a few behaviors even present from the default hangar?

for example, when i try to look up the vehicles of the gold order, the camera is fixed. and does not allow to rotate the visual to actually see the vehicle.

for example;



yet, the customization tab has no issue with rotation:

second issue that i noticed is, when i press the " squad " tab, the game puts me in the customization camera:

but otherwise, thanks for this in depth guide! really useful!

:ru: ( sorry in advance )

извините за вторжение в это место, но у меня есть пара вопросов,

Можно ли исправить несколько поведений, даже присутствующих в ангаре по умолчанию?

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

например;



тем не менее, на вкладке настройки нет проблем с вращением:

Вторая проблема, которую я заметил, это то, что когда я нажимаю вкладку «Отряд», игра помещает меня в камеру настройки:

но в остальном, спасибо за это подробное руководство! действительно полезно!

(перевод сделан с помощью гугл переводчика)

4 лайка

Probably not, it’s not possible :frowning:
I too sometimes have this issue for gold order vehicles.

Did you add camera_scenic_place with squad in scene property?
Maybe it’s because that you selected soldier, but not squad (looking to white line that under soldier)?

3 лайка

unfortunate.

yes.

i do not have the issue of the camera not showing up,
but the fact that my game selects a soldier each time when switching to squads. each time i have to select and deselect one soldier, to get a view of the whole squad.

sometimes it’s a bit annoying. and i was wondering if it happens to other as well.

3 лайка

_extends:t="рандомноеназвание" в обновлении от 18.12.2023 изменен на _use:t="рандомноеназвание" - функционал остался прежним

5 лайков