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


Форум TeamX » Тех. поддержка » F2 DAT файл (модификация DAT файла)

Переход по темам
<< Пред. След. >>
Единственная страница этой темы

 
CryAngel
Пользователь

Регистрация: Май 2006

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

Сразу извинюсь если не там тему создал. У мя возник такой вопрос - как можно изменять сабж? Под изменением я подразумеваю удаление/замену/добавление файлов. Я пока смог придумать только такие варианты: через временную папку DAT->Папка->Модификация->DAT. Минус - Нужно много места на диске под временную папку. Изменение в памяти DAT->загрузка целиком в память->модификация->запись на диск. Минус - нужно много памяти. Не-знаю-как-назвать: DAT->по одному файлу считывается в память->те файлы которые остаются->в новый DAT файл + добавляются нужные файлы, по окончании первый файл удаляется. Минус - опять же место на диске (в конце обработки ~ 2*размер DAT файла). Кто-нить может посоветовать что-то по этому поводу? (Советы "забей на все это, зачем оно тебе надо" не принимаются ). В идеале - все изменения делать напрямую в DAT файле (тоже правда есть минус - если комп потухнет в процессе - каюк DAT файлу), но пока не придумаю возможно ли это вообще, не говоря о том как это сделать . Особенно удаление...

Отправлено: 4:56 - 20 Мая, 2006
Alan Killenger
Пользователь

Откуда: Россия, Ижевск
Регистрация: Июль 2004

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

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

Зачем вам нужно изменять *.dat файлы? С какой целью вы хотит изменять их? Подробно распишите ответ на этот вопрос т.к. от него зависит подробность последующих инструкций и советов.

-----
hit me, nail me, make me god

Отправлено: 6:25 - 20 Мая, 2006
Perceptron
Модератор

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

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

Вообще есть DAT2 - паковщик/распаковщик. Говорят, работает.

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

Про каюк ДАТ-файлу: тоже можно обойти, опять же программно.

А зачем все это?

Отправлено: 12:22 - 20 Мая, 2006
Ray
Модератор

Откуда: Донецк,Украина
Регистрация: Янв. 2004

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

Зачем изобретать велосипед? Посмотри исходники проги dat2 (лежат на этом сайте в файлах). Там работа идёт напрямую с dat файлом.

2Perceptron:

А заголовок в конце файла

-----
Не бывает невозможных задач – бывает мало времени.

Отправлено: 12:33 - 20 Мая, 2006 | ИСПРАВЛЕНО: Ray - 11:35 - 20 Мая, 2006
Tehnokrat
Модератор

Откуда: Новосибирск
Регистрация: Окт. 2003

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

to CryAngel
Прежде чем спрашивать "как?", следовало бы объяснить "зачем"
Тогда, было бы ясно,  возможно ли задуманное тобой вообще. Я вот например не понял насчёт "нужно много памяти". Надеюсь ты не собираешься critter.dat и master.dat распаковывать? На это действительно нужно много памяти, только мне непонятно, зачем их распаковывать.

-----
Прошлое можно узнать, но нельзя изменить. Будущее можно изменить, но нельзя узнать.

Отправлено: 20:37 - 20 Мая, 2006
CryAngel
Пользователь

Регистрация: Май 2006

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

А заголовок в конце файла
Постараюсь ответить всем и по порядку.
2All:
Есть идея написать небольшую прогу для облегчения процесса установки модов. Другими словами - инсталлер. Попутно вопрос - что уважаемый all думает по этому поводу. Коротко основная идея - мод идет вместе с инсталлером, который нужным образом изменяет DAT-ы, заменяя/добвляя необходимые файлы. *подумав* строго говоря все мои вопросы к программистам. Но на программерских форумах придется долго объяснять структуру файла и т.п., а здесь программисты тоже есть, к тому же знающие что такое DAT файл.
2Alan Killenger:
Уже ответил...
2Perceptron:
Именно программно я реализовать и хочу.
2Ray:
dat2 пакует/распаковывает DAT-ы, но он же их не изменяет? Или я ошибаюсь? Вообще тоже можно сделать написав bat-ник, но такой способ мне не нравится...
2Tehnokrat:
"зачем" уже написал. Над остальным какраз думаю...

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

Прощай, Идея...

Отправлено: 4:49 - 21 Мая, 2006
Alan Killenger
Пользователь

Откуда: Россия, Ижевск
Регистрация: Июль 2004

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

ИМХО, идея действительно не будет особенно популярной т.к. любому моддеру проще либо запаковать все сразу в patch000.dat либо вообще не запаковывать (народ и так знает что с этим делать). Доверять свой драгоценный master.dat какой-то утилите, которая будет его постоянно модифицировать... лично мне это по нраву .

-----
hit me, nail me, make me god

Отправлено: 5:02 - 21 Мая, 2006
CryAngel
Пользователь

Регистрация: Май 2006

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

2Alan Killenger и всем.
Тогда другой вопрос - а если уже установлен один мод и появилось желание установить второй, моды однозначно не конфликтуют. Оба в виде patch000.dat. Знают "что делать" то далеко не все. 90% что обычный геймер по незнанию просто заменит patch000.dat и тем убьет первый мод. А разными инсталлерами мы постоянно пользуемся, и ничего .
Все же хотелось бы услышать совет...

Отправлено: 5:18 - 21 Мая, 2006
Tehnokrat
Модератор

Откуда: Новосибирск
Регистрация: Окт. 2003

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

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

-----
Прошлое можно узнать, но нельзя изменить. Будущее можно изменить, но нельзя узнать.

Отправлено: 7:28 - 21 Мая, 2006 | ИСПРАВЛЕНО: Tehnokrat - 10:29 - 21 Мая, 2006
Ray
Модератор

Откуда: Донецк,Украина
Регистрация: Янв. 2004

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

2 CryAngel:

Видишь ли, но ты немного опоздал

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

Но в версии 2.0 инсталятора имеется ряд недостатков: как то - все данные лежат рядом с инсталлером в дат файле, нужен конфиг, временный файл.

А вот что уже сделано или доделывается в версии 3.0:
- уменьшен вес инсталлера (теперь он не на Builder'e а на Visual C++)
- весь инсталятор теперь представляет один файл exe (ресурсы находяться внутри)
- все ресурсы запакованы не дат'ом а winimp'ом (степень сжатия как у winrar'а а скорость распаковки выше) При установке данные распаковываются из архива (.exe - он же инсталлер) и допаковываются напрямую в patch000.dat
- файлы допаковываются напрямую в patch000.dat без создания временного архива (размером с dat)

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

-----
Не бывает невозможных задач – бывает мало времени.

Отправлено: 13:01 - 21 Мая, 2006 | ИСПРАВЛЕНО: Ray - 12:05 - 21 Мая, 2006
Alan Killenger
Пользователь

Откуда: Россия, Ижевск
Регистрация: Июль 2004

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

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

Именнно. Уже если и есть надобность в какой-нибудь утилите, так не в инсталлере.

Лично я уже давно мечтаю о проге, которая изучала бы все файлы двух модов и указывала бы общие места пересечений. К примеру, есть 2 мода mod1 и mod2. В mod1 есть карта map1, на которой валяется предмет с PID pid1. В моде mod2 есть прошник с таким же PID'ом. Моддеру пропустить такое пересечение очень просто, а потом ищи глюки.

-----
hit me, nail me, make me god

Отправлено: 0:05 - 22 Мая, 2006
CryAngel
Пользователь

Регистрация: Май 2006

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

2 Ray:
1.Ну вот, так и знал.
2.Теперь даж не знаю... Если поделишься - тогда может быть. Не охота делать с нуля то, что уже сделано. Я говорю ессно не об исходниках, а об общих приципах, в первую очередь - работа с дат без временных файлов. Так что жди мыло .

2Alan Killenger:
1.Сравнить моды вроде б не сложно - 90% фоловых ресурсов или отдельными файлами, или в виде текстовых списков. Самое сложное - скрипты и карты. С картами я пока не разбирался, а скрипты это вообще отдельный разговор. Они совпадают очень часто, а совместить один и тот же скрипт из разных модов практически не возможно...
2.У мя тоже есь мечта - "подружить" моды AL(Alternative Life) и NV(Новый взгляд) .

2ALL: Вообще основная суть (была?) не в том что бы запихивать по несколько модов, а в том, чтобы после установки одного мода, его можно бы было легко удалить, и установить другой. Пример - когда мод идет в виде архива с ресурсами. Раскидать их легко, а как их потом выгребать?

Отправлено: 3:42 - 22 Мая, 2006
Alan Killenger
Пользователь

Откуда: Россия, Ижевск
Регистрация: Июль 2004

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

Цитата:
Сравнить моды вроде б не сложно - 90% фоловых ресурсов или отдельными файлами, или в виде текстовых списков. Самое сложное - скрипты и карты. С картами я пока не разбирался, а скрипты это вообще отдельный разговор. Они совпадают очень часто, а совместить один и тот же скрипт из разных модов практически не возможно...

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

В принципе, реально написать програмку, которая изучает файлы скриптов на предмет используемых *.msg файлов, GVAR, MVAR и т.д; которая изучает файлы карт на предмет используемых прошников и скриптов; которая изучает те же maps.txt на предмет совместимости. Когда бы только руки дошли...

Цитата:
Вообще основная суть (была?) не в том что бы запихивать по несколько модов, а в том, чтобы после установки одного мода, его можно бы было легко удалить, и установить другой. Пример - когда мод идет в виде архива с ресурсами. Раскидать их легко, а как их потом выгребать?

Вот потому моддеры и пакуют все ресурсы мода в patch000.dat, и нет проблем.

Другой вариант, который я люблю везде выдвигать: слить в один корень master.dat, critter.dat и patch00.dat (1.2d оригинальный), тогда у нас появится левый корень (я называю этот каталог mod), куда можно положить файлы с модом и все его содержимое автоматически будет вноситься в игру. С таким вариантом установка (удаление) и компановка модов легки как никогда, но для этого требуется слить эти *.dat файлы в один.

-----
hit me, nail me, make me god

Отправлено: 4:00 - 22 Мая, 2006
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Успешно создаём себе проблемы, затем успешно их преодолеваем?

Как ставлю моды я, например. В папке Fallout2 у меня лежат master.dat, critter.dat, папка DATA, оригинальный экзешник и fallout2.cfg. Ещё там лежит папка MODS, где лежат папки AL, NV и тэ дэ и тэ пэ. В каждой папке свой экзешник (а он в любом случае свой почти у каждого мода) и свой fallout2.cfg. patch000.dat у меня давно убит . Да и мастер и криттер давно не архивы . Но не в этом суть. Фол ищет patch000.dat в текущей папке. Так что распихивая моды по разным папкам вы получаете сразу много установленных модов, в которые можете играть по очереди, плюс не портите оригинальный Фол и всегда можете к нему вернуться, даже не удаляя модов.

Отправлено: 9:22 - 22 Мая, 2006
Ray
Модератор

Откуда: Донецк,Украина
Регистрация: Янв. 2004

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

А теперь попробуй объяснить это среднестатистическому юзеру Как что и куда распаковывать. Как и на что править конфиг. Да, нам это кажется проще не придумаешь.

Другое дело объяснить: запускаешь exe и ждёшь окончания установки...

-----
Не бывает невозможных задач – бывает мало времени.

Отправлено: 9:56 - 22 Мая, 2006
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Вообще-то такой структурой можно пользоваться и для написания инсталлера. Это во-первых. А во-вторых, пути в конфиге могут быть и относительными . Т.е. сам конфиг, если в нём прописать относительные пути, смело можно класть в дистрибутив мода.

Отправлено: 10:43 - 22 Мая, 2006
Alan Killenger
Пользователь

Откуда: Россия, Ижевск
Регистрация: Июль 2004

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

Нуну, а если у нас моды ставится поверх patch000.dat? Дело вкуса, ИМХО предварительное слияние всех *.dat файлов в один избавляет нас от целой кучи проблем.

-----
hit me, nail me, make me god

Отправлено: 0:09 - 23 Мая, 2006 | ИСПРАВЛЕНО: Alan Killenger - 1:13 - 23 Мая, 2006
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Я о том и говорю, что "поверх" - это стереотип. Патч000 можно запихать в отдельную папку, туда же положить ехе и цфг. И всё будет отлично работать.

Отправлено: 9:42 - 23 Мая, 2006
Perceptron
Модератор

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

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

2CryAngel: а зачем запаковывать обязательно в мастер.дат? Патч для того и создан, чтобы оригинальные данные не портить.
А ДАТ2 вполне может заменять файлы в ДАТах, удалять их и т.д. Для запаковки достаточно батника.
Авот соединение модов - дело ювелирное, автоматически реализовать, думаю, весьма и весьма сложно.

Отправлено: 20:35 - 23 Мая, 2006
Spy
Реалист

Откуда: Все там будем...
Регистрация: Май 2005

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

Была у меня идея написания утилиты по объединению модов. Думал: "а чё там, прототипы переименовал, скрипты декомпилил, фиды и пиды соответствующие заменил, и вуаля!". Ан нет. На деле всё, естествнно, сложнее. При объединении карт локаций, даже если в разных модах на одном и том же гексе лежит предмет, то без вмешательства авторов не обойтись. А если в двух модах одна и та же локация переделана сколько-нибудь сильно разными способами? Вобщем, объединение модов была есть и останется ручной работой.

-----
Хочешь, чтобы что-то было сделано хорошо - сделай сам.

Отправлено: 21:51 - 23 Мая, 2006 | ИСПРАВЛЕНО: Spy - 21:58 - 23 Мая, 2006
CryAngel
Пользователь

Регистрация: Май 2006

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

Ай, ай, не надо меня так пинать!
А если серьезно - то размышлял я примерно как и Ray - т.е. что сейчас многие привыкли к разным визардам шеллам и пр., и объяснять им что, куда и зачем - занятие не для слабонервных. Сами что-нить напортачат, и начинается: тут глючит, там не работает. Кроме того, уверен, некоторая часть отказалась от модов так и не сумев правильно все сделать. Вот откуда появилась мысль об инсталлере. Да ток опередили меня . А с мастер.дат - я вероятно погорячился, в строении фола я только начал разбираться и вероятно допускаю много ошибок . Поэтому сразу извиняюсь, если что-то из сказанного выглядит глупо.
И еще. Распаковка датов, их слияние и пр. - это хорошо для модеров, для обычного же пользователя - это во первых расход дискового места, а во вторых - неумение. Танцевать нужно от сюда: есть установленный фол, просто установленный, ничего не распаковано и т.д. Есть нечто, которое включает в себя мод. Нужно: нажав пару кнопочек получить установленный мод и возможность таким же простым путем вернуть все назад. Поставка модов в виде патч.дат этого вопроса не решает, всеравно нужна утила которая уберет оригинальный патч, и положит с модом. Опять же, нужна мозможность Uninstall.

Отправлено: 3:22 - 27 Мая, 2006
Tehnokrat
Модератор

Откуда: Новосибирск
Регистрация: Окт. 2003

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

Ну сделай инсталлер по методу Wasteland Ghost. Всё элементарно просто. Запрашиваешь у юзера куда ставить мод и путь к папке с Фолом. Смотришь, есть ли в моде файл fallout.exe, если нет, берёшь из папки с фолом. Далее формируешь файл fallout2.cfg, прописываешь в нём пути к ресурсам Фола и к Patch000.dat. Всё, мод теперь лежит в отдельной папочке, хочешь пользуйся, а надоел - стирай всю папку. Куда уж проще.

-----
Прошлое можно узнать, но нельзя изменить. Будущее можно изменить, но нельзя узнать.

Отправлено: 12:09 - 27 Мая, 2006
 

Переход по темам
<< Пред. След. >>
Единственная страница этой темы


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