📌 Обновление Форума
Онлайн всего: 196
Гостей: 186
Пользователей: 10
detroit
Новый сталкер: detroit 
Сталкеров: 9222 🛸
DLTX - Differential LTX Loading

DLTX - Differential LTX Loading

Всего проголосовали: 3
    
        SHARE
👁️ 10648

📆 2022.05.19

💬 0

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

Как мне его установить?
Сделайте резервную копию содержимого папки «bin» и замените ее на прилагаемую. Содержимое «tools» и «example_mod» включает дополнительные ресурсы для создания модов для DLTX или преобразования существующих. Если вы используете Mod Organizer 2, НЕ используйте его для установки DLTX (вы все равно можете использовать его для других модов), вам нужно вставить файлы в вашу настоящую папку «bin».

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

Как мне использовать его в качестве моддера?
Чтобы внести дифференциальное изменение в записи LTX, вам необходимо выполнить следующие шаги:

1. Узнайте, какой корневой файл LTX загружает переменную, которую вы пытаетесь изменить. Вы можете искать файлы вручную и отслеживать цепочку #includes, или вы можете использовать для этой цели LTXDiff.

Код
LTXDiff findroot [Base Folder] [Mod Folder] [Relative Path to File]

2. Найдя корневой файл, создайте новый в том же каталоге с именем «mod_[имя корневого файла]_[имя по вашему выбору].ltx».

3. Сделайте запись для раздела и переменной, которую вы хотите изменить. Раздел, который вы хотите переопределить, должен иметь префикс «!», например, ![medkit]. Вам не нужно снова включать родительские разделы (т.е. делать ![medkit], НЕ ![medkit]:booster_multi), так как они уже есть в базовом определении. Теперь просто перечислите свои переменные, которые вы хотите изменить, как обычно.

Вы можете добавить родителей, объявив их, как обычно, или удалить их, добавив к ним префикс «!», например, «![водка2]:!водка, аптечка» заставляет водку2 вести себя как аптечка, а не ее исходный родитель.

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

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

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

Код
LTXDiff dltxify [Base Folder] [Mod Folder] [Mod Suffix]

Суффикс мода в данном случае — это имя, которое добавляется к файлам мода, как на шаге 2 предыдущего раздела.

Сборка модифицированных исполняемых файлов самостоятельно
Если вы хотите собрать двоичные файлы самостоятельно, или просто взглянуть на код, или являетесь командой разработчиков Anomaly и хотите включить этот код в свой следующий выпуск, я предоставил исправление различий в " другие вещи". Чтобы применить его, вам нужен клиент git и Anomaly XRay Engine версии 1.5.1. После установки git выполните следующие команды:

Код
git clone https://bitbucket.org/anomalymod/xray-monolith.git
cd xray-monolith
git apply "/your/path/to/other_stuff/differential-ltx-loading.diff"

После применения патча добавьте «mezz_stringbuffer.cpp» в проект «XrCore» в Visual Studio, теперь вы сможете скомпилировать Anomaly, как обычно.

Текущие известные проблемы:
- Попытка переопределить погоду приведет к сбою. Игра загружает любые незакрепленные файлы в environment/weathers/ как корневые файлы, что непреднамеренно загружает любые файлы модов как корневые файлы без каких-либо базовых определений.

Изменения v7:
- Добавлена ​​загрузка частиц свободного файла. Файлы в папке "particles" с расширениями *.pg и *.pe переопределяют свои аналоги из частиц.xr (предоставлено Feel_Fried)
- Бинарные файлы для этого релиза были скомпилированы Feel_Fried, так что, надеюсь, русская раскладка клавиатуры снова заработает.
v6.1:
- Исправлена ​​ошибка, из-за которой унаследованные разделы применялись в обратном порядке
. v6:
- Исправлено удаление, которое вообще не работало правильно .
- Включено исправление ошибки анимации FDDA
v5:
- Порядок, в котором разделы перечислены в файле, теперь в значительной степени не имеет значения. Разделы могут наследоваться от других разделов, которые появляются позже в файле, и переопределениям больше не нужно следовать строго после базового раздела, если он вообще существует. Порядок по-прежнему имеет значение для разрешения конфликтов переопределения, т. е. если два переопределения изменяют одно и то же значение, то в конфликте побеждает то, которое появляется позже в файле.
- Удалены файлы "mod__[...]", из-за независимой загрузки порядка, что делает их бесплатными.
- Исправлена ​​ошибка, из-за которой некоторые корневые файлы непреднамеренно применяли к себе неправильный файл мода из-за неоднозначного названия. Если имя файла мода может быть применено к нескольким корневым файлам, будет выбран только тот, у которого самое длинное подходящее имя.
v4:
- Добавлена ​​возможность корректно изменять родительские разделы. Родителей можно добавить, объявив их обычным образом в заголовке раздела переопределения, и удалить, поставив перед добавленным родителем префикс "!"
- Добавлено еще одно автоматическое включение для файлов с именем «mod__[rootfilename]_[suffix].ltx» (два символа подчеркивания после «mod»), которые загружаются до загрузки корневого файла, что можно использовать для определения базовых разделов, которые затем можно будет использовать позже. использоваться для инъекций в качестве родителей, поскольку они загружаются раньше всего остального.
v3:
— Исправлен сбой, связанный с неправильной очисткой выделенных в стеке строковых буферов, что приводило к повреждению при загрузке очень длинных записей LTX.
v2:
- Исправлена ​​ошибка, из-за которой последняя строка корневого файла иногда проглатывалась, из-за чего переопределение приводило к сбою загрузки игры
- Переопределения теперь применяются задним числом, что означает, что любые разделы, у которых есть родительский элемент с переопределениями, теперь затрагиваются этими тоже
- Добавлена ​​возможность удалять переменные и разделы. Переменные удаляются путем добавления к ним префикса "!", разделов - "!!". Разделы удаляются только в том случае, если они полностью пусты, в противном случае флаг удаления не действует.


5.0 | DLTX, ltx, Anomaly, loading, Differential
Обсуждение материала:
💬 0
Указать плюсы и минусы
🔸Войдите, чтоб оставить комментарии! 🔹Быстрый Вход ➞

Вверх 

🔰Заходили сегодня: | Anubis, stalkercom, sashapiskir, sashadevyatov2019, Стриж, SVD1995, mikhail_shurmin, Ruslan9991, Вад8966, proroc0909, jorge, skidrow, d-3av, shnur94132, leks05891, sokol, mori2013, axel_85, monteki9191, vasibarinov, artema2003, Nuker, pigont71, silvanecxl, LISSZ10, nanobot2729, MorganGames, mrgreenfin, hazik240676, markklim47, goshabogdanow2014, KENT1991, yur4ik, Гудвин, garryvrn, Dominator, Polina-c2h, Spic3, avengen77, bagetzenia, xxxramisv32, PaTrAsKoN, сурик, Psixopat, Dezertak, Dvoeshnik, Maximus, mayorbugor1978, frolovsergey2034, timurtokarskij64, slygingerfox, [Полный список]