|
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
|
|
|
|