» TeamX (Архив Форума)«


Форум TeamX » Исследования » Как движок Fallout2 обнаруживает файлы с данными

Переход по темам
<< Пред. След. >>
Страницы этой темы [ 1 2 3 ] Все собщения

 
ABel
Партизан

Откуда: Krasnoyarsk
Регистрация: Дек. 2002

Всего: 307 сообщений

Очень интересная тема была замечена на форуме NMA: How the FO2 engine finds it's data.
В ней Red рассказывает о своих наработках по поводу порядка поиска модифицированных файлов Фоллаутом.
Тема на английском наречии. Есть ли желающие перевести сий труд на русский?

-----
Семь раз об дверь, один - об рельс.

Отправлено: 17:06 - 11 Июля, 2004
Perceptron
Модератор

Откуда: Ivanovo
Регистрация: Май 2003

Всего: 502 сообщения

Перевод "How the FO2 engine finds it's data" от red'а (точнее, я полагаю, Red!’а) – третий удар:

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

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

Теперь о том, почему я толкую о "корне данных" - да потому что движок использует особые корневые директории (или DAT'ы...), когда ищет данные. Вот порядок поиска:

1. patchXXX.dat
2. critter_patch
3. critter_dat
4. master_patch
5. master_dat
6. Текущая директория
7. Если найти данные не получилось, он пытается продолжить без них, настолько изящно, насколько может.

Расскажу, как я использовал _dat вместо .dat. Замечу, что "корень" может быть как файлом, так и каталогом. На самом деле это значения, используемые в Fallout2.cfg, в противоположность файлу "корневых данных", на который они ссылаются. Если файл/директория отсутствуют, движок их создаст. И наконец, если пути к "корню данных" совпадают, движок не будет искать файл в той же директории дважды.

Особые замечания:
- patchXXX.dat: пишется так потому, что движок на самом деле ищет (в текущей директории, не в директории Фоллаута) файлы от patch000.dat до patch998.dat через два шага. Если он находит файл или каталог с этим именем, он будет их использовать, иначе будет полностью их игнорировать (т.е. не будет пытаться создать каталог patch000.dat и, таким образом, движок не будет искать файлы в пустой директории)
- critter_patch: обычно указывает на "data", если вы не пытались забавляться со своим CFG после инсталляции. Вот почему моды работают, позволяя вам управлять файлами вручную.
- critter_dat: обычно указывает на critter.dat (может находится на CD, в зависимости от типа установки).
- master_patch: очень важный путь для моддеров. Обычно указывает на data (как critter_patch). Теперь он не имеет такого большого значения, однако игра удаляет все master_patch\proto\items\*.pro и master_patch\proto\critters\*.pro. Так как он по умолчанию указывает на "data", куда моддеры стараются положить свои PRO файлы, чтобы движок их загрузил (по пути critter_patch), тут может возникнуть проблема. Самое распространенное решение - просто пометить файлы как read-only (только чтение) (выберите файлы, правый клик, пометьте "только чтение", нажмите "OK" и подождите).  Элегантное решение, подсказанное Haenlomal'ом на этом самом форуме - поместить ваши файлы в каталог patch000.dat, и наконец я прописал бы в master_patch какое-нибудь место, где нет PRO файлов, в идеале указал бы на пустую (быструю для обработки) директорию. [Дополнение: игра на самом деле создает список файлов для удаления из всех "корней", не только из директории master_patch, так что вы не сможете заставить игру не удалять файлы, указав один из путей на пустую директорию - она даже пытается удалить master.dat/proto/items/XXXXXXXX.PRO (что у нее, к счастью, не получается), если все "корни" - DAT'ы!]
- master_dat: добавить нечего, см. critter_dat.
- Текущая директория: Во-первых, это не директория Fallout2, но директория, в который вы запускаете игру. Обычно они совпадают. Для тех, кто не совсем понимает, щелкните правой клавишей на иконке Fallout2 и "создайте ярлык". Затем щелкните правой клавишей на только что полученном ярлыке, выберите "Свойства", вы должны попасть на закладку "Ярлык" и увидеть поле для ввода текста под названием "Рабочая папка". Это "текущая директория". Замечу, что, в отличие от других "корней" этот, очевидно, не может быть DAT файлом, по существу движок "не равняет" его с другими "корнями". Это значит, что даже если вы укажите все "корни" на текущую директорию, игра все-таки будет искать файл дважды!

Последние замечания:
- Для "быстрого" Фоллаута: Извлеките все в главную директорию Фоллаута (не в "data"!) Таким образом, если файл отсутствует, будет проверяться тот же файл (что должно быть быстрее, чем проверять другой файл, так как он непременно будет кеширован). Отредактируйте Fallout2.cfg и пропишите полный путь до главной директории Фоллаута. Наконец, не забудьте поставить на ваши proto/items/*.pro и proto/critters/*.pro флаг "только чтение"! После этого загрузочный экран на моем p3-600, 640MB RAM появлялся лишь на 1/2 секунды (при втором запуске - помните, что при первом запуске он может создавать файлы (wolrdmap.dat) и кеш не заполнен. Главной причиной увеличения скорости была, однако, распаковка, а не изменения "корней", хотя все, конечно, помогает.).
- Для моддеров: Я советую использовать critter_patch как "базу" для моддинга, и распаковывать ВСЕ в главную директорию Фола. Пропишите в master_patch какое-нибудь несуществующее место, так как вы, скорей всего, нуждаетесь в PRO файлах, если вы, конечно, не работаете с TC или чем-нибудь подобным. Пропишите во все остальные пути главную директорию Фола. Переименуйте patch000.dat во что-нибудь другое, чтобы сохранить до той поры, когда будете подготавливать свой мод к распространению. Таким образом, вы можете назвать директорию мода как захотите! Дополнение для тех моддеров, кто, возможно, думает целиком пропустить суровое испытание "перемещение patch000.dat": к сожалению, CFG файл, используемый игрой, ТОТ же самый, что находится в одной директории с fallout2.exe, но не тот, что находится в текущей директории. Это значит, что вы не можете создать директорию и просто сделать ссылку на Fallout, используя свой собственный CFG файл, у вас также должен быть исполняемый файл (что делает ссылку в первом случае бесполезной).

Дополнение для моддеров:
- mapper2 в основном работает также, однако он не ищет patchXXX.dat!
- Он сохраняет свои данные в master_patch.
Чтобы наилучшим образом пройти это суровое испытание, во-первых удостоверьтесь, что все распаковали (чтобы удостовериться, что патчи загружены); пропишите в critter_dat (в mapper2.cfg) путь к данным  Фола, пропишите в critter_patch и master_patch путь к директории мода. Таким образом, он загрузит все, а вам не придется записывать свои данные поверх исходных данных Фола, причем они будут сохраняться в директории мода; если вы отредактировали их, то тогда он будет загружать их из директории мода, так как critter_patch загружается перед critter_dat! Ну разве это не прекрасно?

Не стесняйтесь задавать вопросы, если что-то непонятно.
Надеюсь, что это поможет!"

"Я только что обнаружил (скажите, вы работаете над переводом – все-таки умные люди могут найти этому другие стоящие применения) что, при изменении опции "language" в Fallout2.cfg, движок будет видеть все, что вы положите в директорию с текстом. К примеру, переименуйте "english", замените CFG, и игра загрузится нормально. Я думал, это была фикция для "поддержки" двоичных опций, но оказалось, что нет. Это также весьма интересно для людей, работающих над многоязычными модами (здесь я в основном имею в виду русских и поляков, так как они, кажется, единственные делают подобные вещи): вы можете сделать релиз с поддержкой обоих языков, подготовив два cfg, и устанавливая нужный (или, если вы немного ленивы, сделайте программу, которая сама создаст их). Хотя у вас все еще останется один набор роликов (и звуков) – но, по крайней мере, субтитры могут быть переведены. Это очень печально, так как они могут сделать то же самое со звуком/речью…

Еще интересны опции music_path1 и music_path2. По существу игра ищет в этих папках (сначала в первой, я полагаю) музыку. Отмечу, что, в отличие от dat’ов, она не смотрит в текущих директориях и плюс ко всему, ищет в обеих, даже если они совпадают. Также вы не можете указать их на DAT файлы.

Особое  замечание по поводу "порядка следования" файлов в DAT’е: это только предположения! – Когда игра загружает структуру DAT файла в память, она сравнивает первые буквы (скажем, proto\critters\00000001.pro), без учета регистра символа (очевидно). Итак, она находит первый файл (который должен быть art\background\Adobe.frm). Она ищет "a", которую не находит, и продолжает пока не найдет "p". Затем ищет "r".
Теперь расположим файлы в неправильной последовательности, (скажем, добавим proto\critters\00000002.pro в конец файла), она найдет proto\critters\00000001.pro, затем proto\critters\00000003. Видя, что 2 находится ниже, чем 3, она решает, что файлы отсутствуют, вместо того, чтобы проверить. Весьма незначительная оптимизация, я полагаю, даже используя хэш-таблицу, будет, вероятно, значительно лучше, чем это."

Далее следует вопрос Haenlomal’а:

"Ты не пытался случаем выяснить, почему движок пишет в директорию Patch000.dat, пока не поставишь в системе запрет на запись? Когда я игрался с этим, и сохранял игру, движок, по видимому, пытался записать файлы сохраненки в папку Patch000.dat, а не в обычное место.
Это, безусловно, быстро ломало игру – нехорошо!

С другой стороны, если поставить на директорию Patch000.dat "Запрет на запись",  попытка записи не удастся, и движок, проявляя признаки разумной жизни, запишет сохраненку туда, куда нужно. Если бы не это, мое решение было бы, несомненно, наиболее изящным (установка "Запрета на запись" сделает смену модов в дальнейшем источником большой головной боли)."

И ответ red’а:

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

Ты упоминал про директорию patch???.dat (которую я бы, вероятно, обследовал, тем более что я использую упомянутый трюк при работе с маппером) – Очевидно, если игра не находит патч, она не пытается писать в него. Обнаружив его, она может попытаться удалить patch000.dat/proto/items и другие пути, этого я не проверял."

"Хорошо, я обнаружил кое-что новое:

Во-первых, чтобы сохраненки работали, нужно чтобы critter_patches и master_patches указывали на одну и ту же директорию! Во-вторых, если игра находит *.SAV файлы в любой другой <root>/MAPS (root – корневая директория – прим. перев.) директории, кроме master_patch, игра будет жаловаться, что сохранение невозможно; так что удостоверьтесь, что удалили все *.SAV файлы, находящиеся не в директории SAVEGAME – даже теоретически это не может случиться, если вы не намудрили что-нибудь с Fallout2...

Всякий раз, когда вы выходите с карты (это означает, что вы переходите с карты на карту, сохраняете игру или выходите на карту мира), сначала игра пытается создать <master_patches>\MAPS, <master_patches>\proto\items и <master_patches>\proto\critters (я не пытался помешать этому, чтобы посмотреть, не пытается ли игра создать другие директории, если не получится создать эти); затем игра записывает все critter PIDs, содержащиеся в data/party.txt (она вычисляет proto ID, используя число - 16777216) в первую доступную директорию proto/critters, также записывается proto/items/00000455.pro (я не знаю, откуда она узнает, что его надо сохранять) в первую найденную proto/items в списке корней и наконец, сохраняет карту под ее стандартным именем, изменяя расширение на SAV, в первой найденной директории MAPS. [Есть еще несколько обновляемых файлов, но они не заслуживают внимания. ]

Итак, вот почему так много proto директорий могут быть заполнены неверными PRO файлами. Единственные два обходных пути – это использовать дополнительную директорию (скажем, вы используете critter_patches для испытаний, кроме того используете patch00.dat/proto/items и т.п.), или сделать их "только для чтения". Так как маппер не использует патч, для него нет красивого решения, позволяющего вам также редактировать PRO файлы.

Когда сохраняете игру (после того, как пройден предыдущий шаг), это много раз повторяется для корректных слотов <master_patches>/SAVEGAME/SLOTXX.

Когда переходите на другую карту, игра находит прохи, которые она только что записала и использует их вместо тех, что лежат в данных (это могло быть причиной того, почему пути должны совпадать, хотя это может не соблюдаться, если patch.dat – файл, а не директория… недосмотр? Или, возможно, они не позаботились об этом, потому что в патче нет "рискованных" прох… Ни один NPC, измененный в patch.dat не сможет оправиться от того, что он вернется в свое первоначальное состояние, когда вы будете переходить на другую карту (или перезагружать игру).)"


(Отредактировал(а) Perceptron - 2:11 - 15 Июля, 2004)

-----
Into The New Year - With A New Vision!
Документация по скриптам, туториал по скриптам, вопросы по скриптам, FAQ по моддингу, "Утилиты", fallmods-tutor.

Отправлено: 4:44 - 12 Июля, 2004
Perceptron
Модератор

Откуда: Ivanovo
Регистрация: Май 2003

Всего: 502 сообщения

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

Кто-нибудь знает, что такое “Deny Write”, или «Запрет на запись»?

Очень интересная инфа для Тимикс – по поводу многоязычности.



(Добавление от  0:57 - 13 Июля, 2004.)

Резюме по вышепрочитанному – второй удар

I. Движок читает инфу одновременно из DAT файлов и из директорий.

II. Порядок загрузки данных:
1. patchXXX.dat
2. critter_patch
3. critter_dat
4. master_patch
5. master_dat
6. Текущая директория
7. Если найти данные не получилось, он пытается продолжить без них, настолько изящно, насколько может.

III. Если файл/директория по пути в Fallout2.cfg отсутствуют, движок их создаст (за исключением patchXXX.dat).

IV. Если пути к "корню данных" совпадают, движок не будет искать файл в той же директории дважды.

V. Движок ищет (в текущей директории, не в директории Фоллаута) файлы от patch000.dat до patch998.dat через два шага.

VI. Игра удаляет все master_patch\proto\items\*.pro и master_patch\proto\critters\*.pro.
1. Самое распространенное решение - просто пометить файлы как read-only.
2. Элегантное решение, подсказанное Haenlomal'ом на этом самом форуме - поместить ваши файлы в каталог patch000.dat.
(Но при сохранении файлов мода в директорию Patch000.dat, игра туда же сохраняет сейв-файлы, если не поставить «запрета на запись».)
(Так как маппер не использует патч, для него нет красивого решения, позволяющего вам также редактировать PRO файлы.)
3. Red! предлагает прописать в master_patch какое-нибудь место, где нет PRO файлов, в идеале указать на пустую (быструю для обработки) директорию.
Но, игра на самом деле создает список файлов для удаления из всех "корней", не только из директории master_patch, так что вы не сможете заставить игру не удалять файлы, указав один из путей на пустую директорию - она даже пытается удалить master.dat/proto/items/XXXXXXXX.PRO (что у нее, к счастью, не получается), если все "корни" - DAT'ы!
Чтобы сохраненки работали, нужно чтобы critter_patches и master_patches указывали на одну и ту же директорию!

VII. Для моддеров: Я советую использовать critter_patch как "базу" для моддинга, и распаковывать ВСЕ в главную директорию Фола. Пропишите в master_patch какое-нибудь несуществующее место, чтобы PRO файлы не были перезаписаны игрой. Пропишите во все остальные пути главную директорию Фола. Переименуйте patch000.dat во что-нибудь другое. (Это уже не актуально – см. следующие посты – прим. перев.)

VIII. mapper2 в основном работает также, однако он не ищет patchXXX.dat!
- Он сохраняет свои данные в master_patch.
Чтобы наилучшим образом работать с ним, во-первых удостоверьтесь, что все распаковали (чтобы удостовериться, что патчи загружены); пропишите в critter_dat (в mapper2.cfg) путь к данным  Фола, пропишите в critter_patch и master_patch путь к директории мода. Таким образом, он загрузит все, а вам не придется записывать свои данные поверх исходных данных Фола, причем они будут сохраняться в директории мода; если вы отредактировали их, то тогда он будет загружать их из директории мода, так как critter_patch загружается перед critter_dat! Ну разве это не прекрасно?

IX. Я обнаружил что, при изменении опции "language" в Fallout2.cfg, движок будет видеть то, что вы положите в директорию с текстом. Т.е., если language=russian, то игра будет читать текстовые файлы из папки text/russian.

X. Интересны пути music_path1 и music_path2. По существу, игра ищет в этих папках (сначала в первой, я полагаю) музыку. Отмечу, что, в отличие от dat’ов, она не смотрит в текущих директориях и плюс ко всему, ищет в обеих, даже если они совпадают. Также вы не можете указать их на DAT файлы.

XI. Игра не видит файлы в DAT’е, если они расположены в неправильной последовательности (не в соответствии со структурой файла). Игра не различает регистра символов при поиске в DAT’е.

XII. Если игра находит *.SAV файлы в любой другой root/MAPS директории, кроме master_patch, игра будет жаловаться, что сохранение невозможно. Так что удостоверьтесь, что удалили все *.SAV файлы, находящиеся не в директории SAVEGAME.

XIII. Многие proto директории могут быть заполнены неверными PRO файлами. Единственные два обходных пути – это использовать дополнительную директорию (т.е., вы кладете в critter_patches свои файлы, кроме того, создаете patch000.dat/proto/items и patch000.dat/proto/critters, чтобы игра сохраняла туда свои прохи), или сделать ваши прохи "только для чтения".



(Отредактировал(а) Perceptron - 2:56 - 15 Июля, 2004)

-----
Into The New Year - With A New Vision!
Документация по скриптам, туториал по скриптам, вопросы по скриптам, FAQ по моддингу, "Утилиты", fallmods-tutor.

Отправлено: 0:47 - 13 Июля, 2004
ABel
Партизан

Откуда: Krasnoyarsk
Регистрация: Дек. 2002

Всего: 307 сообщений

"Deny Write" - это то же самое, что и атрибут "Read Only" (только для чтения).

-----
Семь раз об дверь, один - об рельс.

Отправлено: 5:26 - 13 Июля, 2004
Perceptron
Модератор

Откуда: Ivanovo
Регистрация: Май 2003

Всего: 502 сообщения

>"Deny Write" - это то же самое, что и атрибут "Read Only" (только для чтения).
Дело в том, что человек, написавший это, обыгрывал такой аспект: не просто файлы нельзя удалять или перезаписывать, но в директорию нельзя писать новые файлы.
Вот я и зачесался...

-----
Into The New Year - With A New Vision!
Документация по скриптам, туториал по скриптам, вопросы по скриптам, FAQ по моддингу, "Утилиты", fallmods-tutor.

Отправлено: 2:00 - 14 Июля, 2004
ABel
Партизан

Откуда: Krasnoyarsk
Регистрация: Дек. 2002

Всего: 307 сообщений

Ну в таком случае, это права доступа к каталогу.
Только вот в Виндовс 9х без специального софта права доступа к каталогу не прикрутить, если я не ошибаюсь.

-----
Семь раз об дверь, один - об рельс.

Отправлено: 5:25 - 14 Июля, 2004
Perceptron
Модератор

Откуда: Ivanovo
Регистрация: Май 2003

Всего: 502 сообщения

Haenlomal предлагает следующее, дабы запретить игре писать сохраненки в директорию patch000.dat:
"Для Win98 вы можете лишь пометить все директории и поддиректории «Только для чтения». Я не уверен насчет системы безопасности в WinME, но я думаю, она такая же.
Для WinNT, Win2000, and WinXP ситуация немного сложнее, «благодаря» улучшенной системе безопасности в этих системах. Здесь недостаточно просто пометить директории как «Только для чтения». Вы должны также выставить флаги «Запрет на запись». Вот порядок действий:
(Замечание: я написал эти инструкции для WinXP Pro. Имена и метки в других системах могут немного отличаться.)
1) Зайдите в систему с правами Администратора
2) Кликните ПКМ на папке Patch000.dat и выберите «Свойства»
3) Выберите вкладку «Доступ». (Если ее нет, вы должны запретить «простой общий доступ к файлам». См. ниже.)
4) В списке «Группы или пользователи» (сначала нажмите на кнопку «Разрешения» - прим. перев.) выберите SYSTEM (видимо, «Система» - прим. перев.).
5) Под надписью «Разрешения для Система» поставьте галочку «Запретить» на «Изменение»
6) Если логин, который вы используете, также есть в списке «Группы или пользователи», вы должны убрать «Запрет на Изменение» для него, просто для уверенности.
7) Нажмите «ОК» для сохранения изменений.
Таким образом, .SAV файлы не будут записаны в директорию патча, позволяя вам нормально сохранять игру.
Для отмены «простого общего доступа к файлам»:
1) Откройте какую-нибудь папку
2) Выберите в меню: Сервис->Свойства папки
3) Выберите вкладку «Вид»
4) В списке «Дополнительные параметры» уберите галочку «Использовать простой общий доступ к файлам (рекомендуется)»
5) Нажмите ОК чтобы сохранить изменения."

На что red ему возражает:

«Это работает, но это не лучшее решение: допустим у вас есть единственная директория со всеми файлами (неважно где) – так что вы можете назвать ее как угодно, не только patchxxx.dat и пометить файлы «только для чтения». (скажем, в critter_dat). На самом деле, это не будет быстрее так как если движок не найдет файл (что иногда случается), он все еще будет смотреть во всех других папках (приведенных в моем первом посте); чтобы использовать кэширование файлов (для лучшей производительности), вам нужно будет указать все пути на «текущую директорию» (несмотря на то, что чисто технически вы можете указать все на patch000.dat).

Для комфортной работы с маппером я предлагаю совершенно другую установку:

a. Вам нужно чтобы маппер мог сохранять карты и прохи.
b. Вам нужно, чтобы и Фол и маппер могли загружать/сохранять игру и использовали модифицированные данные.
c. Вам нужно, чтобы игра не затирала ваши данные.
d. Вы хотите, чтобы все выполнялось как можно быстрее.

Итак, вы должны сделать следующее:

1. Распаковать master.dat в папку (назовем ее <src> )
2. Распаковать critter.dat в <src>
3. Распаковать  patch000.dat в <src>
4. Создать папку для мода (НЕ используйте ту, в которую распаковали DAT), скопировать в нее: Fallout2.exe, Mapper2.exe, Fallout2.cfg, Mapper2.cfg (назовем эту папку <mod> )
5. Создать <drive>:\fallout2\dev\proto, в ней создать critters, items, mist, scenery, tiles, walls, где <drive> - диск, с которого вы запускаете маппер (это для обеспечения редактирования прох в маппере)
6. В fallout2.cfg изменить critter_dat, master_dat на <src>, а critter_patches and master_patches на <mod>; Это обеспечит быструю загрузку при использовании модифицированных данных (плюс игра будет работать правильно). Пропишите music_path1=<mod>\sound\music, а music_path2 еще куда-нибудь, где лежит музыка (обычно при инсталляции с CD, он указывает на CD… Я предлагаю просто скопировать файлы на винчестер, например в <src>\sound\music) (у Фаргуса, по крайней мере, вся музыка сразу на HD копируется – прим. перев.)
7. Отредактируйте mapper2.cfg так же, как fallout2.cfg. Таким образом, вы дадите моду доступ к исходным файлам, однако все, что мы «отредактировали», маппер будет сохранять в директорию <mod>. Если вы создали свои FRM, вы также должны положить их в директорию <mod> (таким образом, мы легко определим, какие файлы относятся к моду).
8. Создайте папку patch000.dat в директории <mod>, чтобы игра сохраняла свои файлы там, а не в critter_patches (т.е. прохи items/critters не будут затерты).

Цитата (Haenlomal’а): >Для WinNT, Win2000, and WinXP ситуация немного сложнее…
Нет, не сложнее. В NTFS вы можете поставить флаг «Только для чтения», и это будет работать абсолютно так же.»


(Отредактировал(а) Perceptron - 4:36 - 15 Июля, 2004)

-----
Into The New Year - With A New Vision!
Документация по скриптам, туториал по скриптам, вопросы по скриптам, FAQ по моддингу, "Утилиты", fallmods-tutor.

Отправлено: 2:00 - 15 Июля, 2004
Perceptron
Модератор

Откуда: Ivanovo
Регистрация: Май 2003

Всего: 502 сообщения

Добавление к предыдущему посту:

1. Чтобы Фол сохранял свои данные в директорию patch000.dat, нужно там предварительно создать каталоги patch000.dat\proto\critters\, patch000.dat\proto\items\, patch000.dat\maps\, т.к. сам Фол их не создает.

2. Однако если это сделать, то Фол свои временные данные удалять из patch000.dat не будет – и в следующий раз будет грузить прохи (которые сам же сохранил) из патча, а не из директорий <src> и <mod>. Это все равно что в новой игре грузить файлы из предыдущей сохраненки – мало ли к чему приведет, так что эти файлы придется удалять каждый раз при выходе из Фола самостоятельно.

3. Так что папку patch000.dat\maps\ лучше не создавать, и игра будет сохранять и удалять временные файлы карт (.sav и .db) как обычно. Ни к каким нехорошим последствиям это привести не должно.

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

5. С прохами можно поступить и по-другому: пусть игра сохраняет свои временные файлы в <mod>\proto\critters и <mod>\proto\items, а вы свои прохи – в patch000.dat\proto\critters и patch000.dat\proto\items\.
Для этого сначала скопируйте из <src>\proto\critters\ все прохи партийцев (их PID’ы можно найти в файле \data\party.txt) в patch000.dat\proto\critters\, а также из <src>\proto\items\ проху 00000455.pro в patch000.dat\proto\items\, и пометьте их только для чтения. Если будете потом эти прохи редактировать – не забудьте, что они лежат в патче!
Все прохи, создаваемые маппером в <mod>proto\critters\ и <mod>\proto\items\ сразу же после создания перемещайте в patch000.dat, и помечайте только для чтения. Если не успеете их спасти и запустите игру – помрут ваши прохи.
Игра будет сохранять свои прохи в mod>proto\critters\ и <mod>\proto\items\ и нормально их удалять.

6. Еще игра сохраняет музыку в <mod>\sound\music\, так что если будете создавать свою музыку – либо файлы называйте по-другому (не как в игре), либо кладите их в patch000.dat\sound\music\ - туда игра их не сохраняет, так что даже не надо помечать их только для чтения.


-----
Into The New Year - With A New Vision!
Документация по скриптам, туториал по скриптам, вопросы по скриптам, FAQ по моддингу, "Утилиты", fallmods-tutor.

Отправлено: 0:27 - 1 Авг., 2004
Perceptron
Модератор

Откуда: Ivanovo
Регистрация: Май 2003

Всего: 502 сообщения

Небольшое добавление: если в master_patches\\sound\music\ файл с музыкой уже есть, движок не пытается его перезаписать. Он записывает туда файл, только если файла там нет.

Отправлено: 1:05 - 6 Авг., 2004
Gatling
Пользователь

Откуда: БОМЖ
Регистрация: Февр. 2004

Всего: 115 сообщений

думаю мой вопрос в тему...

Все изменения которые я внес в scripts.lst и proto.msg
не хотят показываться в мэппере.
чтоб не было недоразумений:
1) у меня распакован патч000.дат и удален
2) у меня бисовский мэппер
3) все пути во всех кфг файлах ПРАВИЛЬНЫЕ ибо сам их проверял не один раз
4) самое странное что critter.lst invent.lst и другие лист прекрасно дают информацию мэпперу (то есть изменения в них отображаются)
5) скрипт прописанный в scripts.lst лежит в data/scripts (то есть все правильно)
6) в прото.мсдж я прописал 2 новых вида патронов
7) раньше все работало...


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

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

-----
"Гизмо...Гизмо-кака!" Gremlin.

Отправлено: 20:08 - 6 Авг., 2004
 

Переход по темам
<< Пред. След. >>
Страницы этой темы [ 1 2 3 ] Все собщения


Powered by Ikonboard 2.1.9 RUS
Modified by RU.Board Team
© 2000 Ikonboard.com