При добавлении новых объектов в файлы, поддерживающие многофакторный подход (например, road_look.sii), ВЫСОКО РЕКОМЕНДУЕТ использовать суффиксы или префикс в имени, чтобы избежать конфликтов с новыми объектами, которые мы добавляем в патчи. В противном случае вам, возможно, придется использовать функцию переименования пакетов (см. Переименование пачек ), чтобы исправить конфликты при появлении нового патча.
Некоторые новые модели, использующие суффикс или префикс «sc», все еще работают, и вполне вероятно, что они могут значительно измениться в следующем патче. По этой причине рекомендуется избегать использования их в ваших моделях в это время.
У грузовиков теперь есть дополнительные третьи координаты UV с улучшенной компоновкой, и некоторые paintjobs были обновлены, чтобы воспользоваться этим. Paintjobs могут использовать эту координату uv, используя новый параметр alternate_uvset в определении paintjob. Обратите внимание: это ошибка, когда paintjob требует координаты, которой нет у модели, и полученное поведение не определено. Это может произойти, если вы модифицируете стандартный грузовик и плеер, который я использую один из красок, которые мы обновили. В этом случае вы можете включить более старую версию определений рисования и текстур в свой мод.
Файлы шрифтов теперь содержат информацию о размерах базовых текстур. Вам нужно обновить все строки определения изображения, чтобы добавить размер.
Например
Изображение: /font/big_0.mat
Если текстура, связанная с /font/big_0.mat, имела бы размеры 256x512, новая строка должна быть.
image: /font/big_0.mat, 256, 512
Многие из файлов определения мира (например, /world/sign.sii) ожидают, что имена полных блоков начинаются с фиксированного компонента префикса (например, «знак»), за которым следует один компонент с именем (Есть несколько исключений. Если у вас есть сомнения, обратитесь к именованию, используемому в исходном файле, который является частью игры). В зависимости от ситуации игра может иногда находить единицы измерения только с использованием компонента имени или может содержать полное имя из фиксированного префикса и имя и определять местоположение с помощью этого полного имени. Чтобы гарантировать, что игра найдет устройство с использованием обоих методов, юниты должны использовать ожидаемое соглашение об именах.
Например, ожидается, что имена знаковых единиц начинаются со «знака». поэтому «fkmm070» или «add.navsg001» не являются допустимыми именами и не будут найдены при преобразовании карты.
Теперь игра проверяет имена в файлах определений определенных единиц и ошибки печати, если имя не соответствует ожидаемому соглашению.
Формат определения паром был расширен для поддержки добавления новых соединений к существующим паромам без необходимости переопределять базовый файл .sii.
Помимо стандартного определения в файлах /def/ferry/<name>.sii , игра также загружает все файлы из / def / ferry / connection . Каждый из этих файлов должен содержать единый блок ferry_connection (см. Пример ниже), который определяет соединение между двумя паромами и должен быть назван conn. <From>. < To > где от и до имен соответствующих паромов. Игра добавит указанное соединение к определению базового парома или переопределит его параметры, если соединение уже существует. В настоящее время нет способа удалить существующее соединение с помощью этого механизма.
Если несколько файлов определяют одно и то же соединение, он не определен, какой из них выигрывает. По этой причине файлы должны быть названы как <from> _ <to> .sii (например, europoort_harwich.sii), даже если игра в настоящее время не обеспечивает этого.
Пример определения соединения из eurpoort в harwich с использованием модуля подключения, хранящегося в /def/ferry/connection/europoort_harwich.sii
SiiNunit {ferry_connection: conn.europoort.harwich {цена: 960 раз: 480 расстояние: 207}}
Добавлены атрибуты, связанные с движением:
Дороги теперь поддерживают указание различного количества полос движения в левой и правой частях. Они определяются с использованием новых атрибутов lane_count_left и lane_count_right . Атрибуты ai_lane_count и one_way теперь устарели. Чтобы сохранить обратную совместимость с существующими определениями, игра переопределит значение новых атрибутов, если в определении установлены атрибуты ai_lane_count или one_way . Обратите внимание, что этот резерв может быть отключен в будущем патче, поэтому настоятельно рекомендуется обновить внешний вид, чтобы использовать новый механизм. Функция контролирует только поведение ИИ на дороге и не влияет на визуализацию дорог. Поддержка большего пользовательского определения дорожной визуализации, включая больше полос, планируется для некоторого будущего патча.
Атрибуты ai_road_offset и actor_lane_count устарели и игнорируются.
Атрибут ai_speed_type теперь имеет перечисление со следующими значениями: none (-1), city (0), regular (1), шоссе (2). Прямые числовые значения все еще работают в это время и совместимы с предыдущим состоянием, однако использование имени является предпочтительным.
Чтобы обеспечить независимое добавление дорожных и тротуарных материалов, мы выделили их для разделения файлов ( road_material.sii и road_sidewalk.sii ), которые поддерживают соглашение. <Idofyourmod> .sii и имена суффикса / префикса. Значения соответствующих массивов внутри road.sii игнорируются.
При преобразовании карты из старого формата индексы материала преобразуются в единицы, которые имеют суффикс того же значения (т. Е. Индекс 5 сопоставляется с единицей road_mat.5). Если вы добавили материалы, которые противоречат материалам, которые мы добавили в этот патч, вы можете использовать функцию переименования, чтобы переместить новый материал в новое суффиксное представление.
Как и в дорожных материалах, terrain_material.sii был изменен, чтобы обеспечить независимое дополнение . Поддерживаются соглашения . <Idofyourmod> .sii и имена суффикса / префикса.
При преобразовании карты из старого формата индексы материала преобразуются в единицы, которые имеют суффикс того же значения (т. Е. Индекс 5 сопоставляется с единицей terrain_mat.5). Если вы добавили материалы, которые противоречат материалам, которые мы добавили в этот патч, вы можете использовать функцию переименования, чтобы переместить новый материал в новое суффиксное представление.
Игра теперь поддерживает профили семафора, на которые ссылаются из сборных.
Характеристики семафоров определены в файле semaphore_profile.sii . При поиске используемого профиля игра находит узел с именем tr_sem_prof. <Имя_файла>. <Country_code>, и если это не удается, он пытается найти tr_sem_prof. <Имя_файла>
Модели визуализации семафора определены в semaphore_model.sii . При поиске используемой модели игра находит узел с именем tr_sem_mdl. <Имя_файла>. <Country_code>, и если это не удается, он пытается найти tr_sem_mdl. <Имя_файла>
Большинство атрибутов профиля - это массивы. При применении профиля идентификаторы семафора используются в качестве индексов. У сборных семафоров должен быть установлен «тип» для «(использовать профиль)».
Если для некоторого ID нет значения, используется последнее значение из соответствующего атрибута массива
Новые атрибуты min_scale и max_scale блока building_model могут использоваться для рандомизации масштаба модели. Атрибут model_size_override теперь устарел и не должен использоваться для новых определений.
Новый атрибут rand_rot указывает максимальный диапазон в градусах, по которым может быть модель, случайным образом повернутая вдоль вертикальной оси. Модель будет повернута случайным значением в <-rand_rot / 2; rand_rot / 2> из его ориентации по умолчанию (т.е. указание 360 degress даст полностью случайное вращение). Чтобы избежать визуальных ошибок на существующих картах, не устанавливайте атрибут для ненулевого значения для моделей, которые уже используются на карте.
ИИ теперь использует дополнительную информацию, определенную в знаках (см. Ниже) для контроля ее поведения (например, скорости), поэтому важно использовать правильные знаки.
Знаки sign_models, определенные в /dev/world/sign.sii, теперь имеют новый необязательный атрибут traffic_rule, который ссылается на правило, определенное в traffic_rules.sii, определяющее дополнительную связанную с трафиком семантику для этого знака (например, ограничение скорости).
Добавлен дополнительный файл конфигурации (/def/traffic_data.sii), который контролирует поведение ИИ. Существует много атрибутов, которые контролируют поведение транспортных средств AI. Однако, поскольку некоторые из них могут быть изменены или удалены в ближайшем будущем, официально поддерживаются только атрибуты, уже находящиеся в файле конфигурации . В ближайшем будущем появятся новые атрибуты.
В настоящее время поддерживаются атрибуты трафика:
Максимальная скорость транспортных средств AI теперь указана в новом атрибуте max_speed блока traffic_vehicle, который указан в км / ч. Скорость атрибута является устаревшей и игнорируются.
Тип транспортного средства теперь определяется как тип атрибута на основе перечисления, который может иметь один из следующих значений: автомобиль , грузовик , автобус . Атрибуты speed_class и use_truck_path теперь устарели и игнорируются.
Теперь поведение переключателя транспортного средства описывается с использованием атрибута коробки передач . Он позволяет определять различные ускорения для разных скоростей транспортного средства: (скорость [км / ч], ускорение [м / с / с]).
Значения по умолчанию:
# автомобиль по умолчанию коробка передач коробка передач []: (0, 4.5) коробка передач []: (20, 3.5) коробка передач []: (45, 2.5) коробка передач []: (70, 1.8) коробка передач []: (100, 1.2) # (10, 1.06) коробка передач []: (20, 0.89) коробка передач []: (32, 0.74) коробка передач []: (45, 0.61) коробка передач [ ]: (57, 0.49) коробка передач []: (70, 0.40) коробка передач []: (80, 0.33) # автобус по умолчанию коробка передач []: (0, 2.5) коробка передач []: (15, 1.8) коробка передач [] : (25, 1,5) коробка передач []: (50, 1.2) коробка передач []: (70, 0,9)
Новый ИИ использует модифицированный формат сборника с дополнительной предварительно вычисленной информацией. Игра автоматически попытается преобразовать предыдущий формат в новый во время загрузки.
ПРЕДУПРЕЖДЕНИЕ: любая информация в этом разделе может меняться без предупреждения !
struct ppd_curve_t {имя token_t; флагов u32; u32 ведет_то_ноды; float3_t pos0; float3_t pos1; float3_t dir0; float roll0; float3_t dir1; float roll1; длина поплавка; u32 next_curves [4]; u32 prev_curves [4]; u32 next_count; u32 previous_count; u32 tr_light_id; float speed_limit; // устаревший, не используется};
кривые флагов:
const unsigned PNCF_STOPPER = 0x00000001;
const unsigned PNCF_FORCE_NO_BLINKER = 0x00000004;
const unsigned PNCF_RIGHT_BLINKER = 0x00000008;
const unsigned PNCF_LEFT_BLINKER = 0x00000010;
const unsigned PNCF_SMALL_VEHICLES = 0x00000020;
const unsigned PNCF_LARGE_VEHICLES = 0x00000040;
const unsigned PNCF_PRIORITY_MASK = 0x000F0000;
const unsigned PNCF_PRIORITY_SHIFT = 16;
const unsigned PNCF_LOW_PROBABILITY = 0x00002000;
const unsigned PNCF_ADDITIVE_PRIORITY = 0x00008000;
(другие флаги, известные из предыдущей версии, устарели)
leads_to_nodes:
const unsigned PNLF_END_NODE_MASK = 0x000000FF;
const unsigned PNLF_END_NODE_SHIFT = 0;
const unsigned PNLF_END_LANE_MASK = 0x0000FF00;
const unsigned PNLF_END_LANE_SHIFT = 8;
const unsigned PNLF_START_NODE_MASK = 0x00FF0000;
const unsigned PNLF_START_NODE_SHIFT = 16;
const unsigned PNLF_START_LANE_MASK = 0xFF000000;
const unsigned PNLF_START_LANE_SHIFT = 24;
ПРИМЕЧАНИЕ: использование профилей семафора вместо установки атрибутов для каждого экземпляра настоятельно рекомендуется
struct ppd_tr_light_t {float3_t pos; quat_t qrot; тип u32; u32 id; интервалы float4_t; поплавковый цикл; Профиль token_t; флагов u32; };
семафоры:
const unsigned TST_PROFILE = 0; // использование значений из semaphore_profile.sii вместо prefab
const unsigned TST_MODEL_ONLY = 1;
const unsigned TST_TRAFFIC_LIGHT = 2;
const unsigned TST_TRAFFIC_LIGHT_MINOR = 3;
const unsigned TST_TRAFFIC_LIGHT_MAJOR = 4;
const unsigned TST_BARRIER_MANUAL_TIMED = 5;
const unsigned TST_BARRIER_DISTANCE = 6;
const unsigned TST_TRAFFIC_LIGHT_BLOCKABLE = 7;
пересечения:
struct ppd_intersection_t {u32 curve_id; поплавковая позиция; радиус плавания; флагов u32; };
флаги пересечения:
const unsigned PIF_SIBLING_COUNT_MASK = 0x000000F0;
const unsigned PIF_SIBLING_COUNT_SHIFT = 4;
const unsigned PIF_TYPE_START = 0x00010000;
const unsigned PIF_TYPE_END = 0x00020000;
Теперь редактор поддерживает пакетное переименование некоторых типов объектов на основе файла конфигурации. Сначала вам нужно подготовить файл конфигурации, описывающий изменения, которые должны быть применены (см. Ниже). После этого вам нужно загрузить карту в редакторе, нажмите F3, чтобы открыть диалог замены, нажмите кнопку «Замена партии» и подтвердите изменение. После этого вы должны сохранить и перезагрузить карту.
Операция требует, чтобы во время операции существовали единицы как для старого, так и для нового имени, поэтому вам нужно будет выполнить операцию отдельными шагами, сначала добавив единицы к новым именам в определения, затем выполнив переименование, а затем удалив единицы с помощью старые имена из определений.
Конфигурационный файл должен быть сохранен как Documents \ Euro Truck Simulator 2 \ replace.sii . Файл должен содержать одну единицу типа editor_search_replace . Блок содержит секторы атрибутов строковых массивов, которые должны содержать имена всех секторов, в которых применяются изменения. Имя сектора соответствует базовому имени файлов, используемых для хранения этого сектора (например, sec + 0001-0001). Устройство также содержит дополнительные атрибуты массива строк, которые определяют замены. Формат строки замены - «old_name | new_name». Поддерживаются следующие массивы:
Пример файла замены
SiiNunit {editor_search_replace: .edit_replace {# Список секторов, где необходимо заменить поиск секторов []: секторы «sec-0002-0007» []: «sec-0002-0008» # Суффикс материала для ландшафтного материала | новый суффикс субстрата материала ter_material []: "24 | 121" ter_material []: "103 | 129" # Блок-схема замены старого блока суффикса схемы | новый суффикс блока схемы bld_scheme []: «22 | 2sc» # Суффикс старой модели замены модели | модель суффикса модели новой модели []: модель «122 | 1sc» []: модель «757 | 2sc» []: «56a | 3sc»}}
Новая атрибутная категория объектов model_def, sign_model, prefab_model и building_scheme указывает строку с категорией, к которой принадлежит устройство. Это можно использовать в соответствующих диалоговых окнах редактора, чтобы отфильтровать набор элементов только для элементов, принадлежащих выбранной категории.
Знаки теперь появляются как автономные элементы в редакторе. Если вы изменили файл editor_data.sii, вам нужно обновить массив sub_mode_types, чтобы сделать соответствующую запись видимой в ui.
В определение знака добавлен новый атрибут distance_type (0 - короткий, 1 - закрытие, 2 - средний, 3 - далеко). Атрибут short_distance теперь устарел и игнорируется.
В свойствах «Значок» был добавлен новый флажок « Следующий дорожный каталог». Он выравнивает ориентацию знака в соответствии с ближайшей дорогой и сохраняет относительное положение, когда дорога движется.