Показать сообщение отдельно
Старый 22.03.2009, 11:19   #30
mr N
Местный
 
Регистрация: 08.10.2007
Адрес: Россия, Екатеринбург
Сообщений: 112
Отправить сообщение для mr N с помощью ICQ
По умолчанию

Помоему ты не совсем понял (ничего что на Ты ?).
Можно я приведу текст (писал давненько чтобы объяснить одному человеку азы), в нем конечно много бояна, но править так чтобы в нем не повторялось уже обсуждавшееся некогда

У Ила все (почти) данные хранятся в SFS файлах. Они добавлялись по мере
выхода новых версий и обновлений Ила. Я так понял, что SFS файлы - это типа такие зашифрованные архивы, внутри которых есть типа файловой системы (ну как архивы с сохранением структуры файлов и папок). Напр. те же карты внутри SFS файлов лежат в папках Maps/<Имя карты>. Полный список доступных карт лежит в файле Maps/all.ini
По мере выхода обновлений Ила (добавления новых SFS файлов), часть файлов, имеющихся в старых SFS файлах заменялась новыми (лежащими в новых SFS файлах).

Приведу вымышленный пример (аналогичные случаи точно есть, просто не помню конкретно на каких картах и в которых SFS файлах).
В fb_maps_02.SFS добавлена карта Italy_DF (в нем лежат все файлы
Maps/italy_df/map_...tga и всё остальное задающее карту). Затем обнаружили
косяк в карте текстур map_t.tga, и выпустили обновление fb_maps_03.SFS, в котором помимо всяких прочих добавлений есть исправление карты Италии, только один файл Maps/italy_df/map_t.tga.

Повидимому Ил точно знает в каком порядке добавлялись его SFS файлы и просматривает их с конца, как только необходимый файл найден, поиск его в SFS файлах прекращается.

Есть утилита от Qtim, т.н. SFS extractor. Позволяет вытаскивать любые файлы из SFS файлов.
К ней приложен файл filelist.txt - перечислены имена файлов, лежащих внутри всех Иловских SFS файлов. Так вот этот список не совсем полный, некоторых файлов в нем не хватает. Если точно знаешь что файл должен быть но в файллисте его нету - можно его туда вписать и тогда скорее всего его удастся вытащить.

Теперь про модифицированный Ил. Современная его версия при поиске нужного файла сначала ищет его в папках MODs/<любое имя мода>/<такой же путь и имя файла как было бы в SFS файле>.
Напр. для той же Италии путь должен быть такой:
<Папка куда установлен Ил>/MODs/<имя твоего мода>/Maps/italy_df/map_t.tga.
Насколько я помню папки с модами перебираются по алфавиту, если два файла с одинаковым путем и именем есть в двух разных модах, будет использован из того мода, название которого первое по алфавиту.
Если в модах файл не найден, то дальше он ищется в SFS файлах как это делает немодифицированный Ил.

Поэтому при работе над модификацией какой-либо стандартной карты, если кроме положения всяких аэродромных маршрутов, точек взлёта и зданий (эта инфа лежит в actors.static) ничего менять не нужно, весь мод может состоять из одного файла Maps/<название карты>/actors.static
(а полностью <Il-2 folder>/MODs/<название твого мода>/Maps/<название карты>/actors.static).
Если не устраивает что то в других файлах карты - то соотв. в мод должны входить и другие файлы.

Я так понял что Полный редактор - это просто один из режимов Ила - так что разницы нет и игра и полный редактор берут исходные файлы по одинаковым правилам.

Редактор Разлоченный правкой bld_conf открывает карту по тем же самым правилам (из Модов, затем из SFS файлов), а вот сохраняет в папку <Il-2 folder>/Maps/<map_name> - этот путь должен быть создан заранее, иначе сохранить не сможет.
Насколько я знаю он сохраняет только те файлы, что изменились.

Итерационный процесс редактирования повидимому должен выглядеть так:
Создать путь для сохранения, запустить ил, в полном редакторе поредактировать, сохранить, закрыть Ил.
Перенести файлы из <Il-2 folder>/Maps/<map name> в <IL-2 folder>/MODs/<mod name>/Maps/<map name>.

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

Если actors.static большой - то полный редактор его открыть не сможет - упадёт. Есть наработки по разрезанию actors.static на куски и обратной сборки из кусков. Вроде последняя из них - SimpleCutter, который позволяет это делать без преобразования их в текстовые файлы.

Чтобы загружать какие то файлы Ил должен "знать" о них. Напр. применительно к картам это примерно так:
есть Maps/all.ini (знает ли про него Ил изначально, или он тоже прописан где то выше - не знаю) в нем перечислены все доступные карты. Если просто так подложить в MODs/<mod name>/Ural_map/<files> -
то эти файлы что есть что нету - Ил их читать не будет. Должно быть упоминание о нем в Maps/all.ini

В Maps/all.ini карты задаются как:
Murmansk murmansk/load.ini
т.е.
<имя> <путь к load.ini>
причем имя - английскими буквами.
Для имени может быть русский эквивалент где то в папках i18n что ли, а если локализованного не найдется - будет выводиться прямо как написано в all.ini

Не знаю только больше ли ты стал понимать после прочтения этого или ещё больше запутался

Последний раз редактировалось mr N; 22.03.2009 в 11:22.
mr N вне форума   Ответить с цитированием