Universal Steam Extractor

Для тех, кто хочет сделать мир лучше.
Сообщение
Автор
Аватара пользователя
$t@t!c_V()1D
Разработчик
Разработчик
Сообщения: 2639
Зарегистрирован: 06.12.2007
Благодарил (а): 10 раз
Поблагодарили: 29 раз

#106 Сообщение 21.05.2008, 12:43

andreil писал(а):На данный момент реализованно все, что хотелось (за исключением XZP-файлов).
А зачем XZP, если это файлы XboX 360-версии Source. Ты стремишься завоевать рынок этой приставки :lol: ? Все просто ОТЛ., остальное - ИМХО лишняя суета.
Черт возьми, отлично! Функция Sim_ExtractGCF...может "переехать" :) ?

Аватара пользователя
andreil
Разработчик
Разработчик
Сообщения: 781
Зарегистрирован: 14.08.2006
Откуда: Светлогорск, Беларусь
Поблагодарили: 2 раза
Контактная информация:

#107 Сообщение 21.05.2008, 13:19

$t@t!c_V()1D писал(а):А зачем XZP, если это файлы XboX 360-версии Source. Ты стремишься завоевать рынок этой приставки :lol: ? Все просто ОТЛ., остальное - ИМХО лишняя суета.
Черт возьми, отлично! Функция Sim_ExtractGCF...может "переехать" :) ?
1) для универсальности :)
2) вроде может. Сама распаковка иден 100%, да и поиск файла по ГЦФу прост как пробка, о все-таки, надо потестить...

ЗЫ: Все-таки добавил распаковку фала в память (НЕ ИЗВЛЕКАЙТЕ ПАПКИ). Вот образец кода, как это работает:

Код: Выделить всё

//извлечение файла в память с последующей записью на диск
  //узнаем хэндл файла...
  item:=GetItemByPath('cstrike\bin\server.dll', Package);
  //узнаем его размер...
  i:=GetItemSize(item, Package);
  ///получаем память для распаковки...
  GetMem(p, i);
  //распаковываем в память...
  ExtractFileToMem(item, p, Package);
  //сохраняем в файл
  stream:=NewWriteFileStream(GetStartDir+'test.tmp');
  stream.Write(p^, i);
  stream.Free;
  Freemem(p, i);
Так же пофиксил подсчет размера Item'а для ГЦФ, тк раньше он для папок выдавал количество файлов в ней.
[url=svn://forum.csmania.ru/andreil]Репозиторий с моими проектами[/url]
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).

Аватара пользователя
$t@t!c_V()1D
Разработчик
Разработчик
Сообщения: 2639
Зарегистрирован: 06.12.2007
Благодарил (а): 10 раз
Поблагодарили: 29 раз

#108 Сообщение 21.05.2008, 17:25

andreil писал(а):Все-таки добавил распаковку фала в память
Ну это было необязательно ИМХО :no: . Про Sim_ExtractGCF: под "переехать" я имел в виду заменить в моей проге Simpack.exe на соответствующую функцию USE.dll :%)

Нет, ну ты так и не сделал нормальную отмену :( . В прошлой версии (имею в виду, до моего первого сообщения о глюке) он останавливался сразу после извлечения того файла, во время которого нажали отмену. Между прочим, там, где
расположены экспортируемые функции
нет функции SetValue...только не говори мне, что ты опять забыл :suicide: . Напиши ты, наконец, GUI распаковщик для более "наглядного" отлова глюков :wink: , а то выходит что-то типа "Кто в лес, а кто по дрова" - у меня-то GUI.

P.S. Взял бы за базу для теста мой.

Аватара пользователя
andreil
Разработчик
Разработчик
Сообщения: 781
Зарегистрирован: 14.08.2006
Откуда: Светлогорск, Беларусь
Поблагодарили: 2 раза
Контактная информация:

#109 Сообщение 21.05.2008, 19:59

$t@t!c_V()1D писал(а):Ну это было необязательно ИМХО :no: . Про Sim_ExtractGCF: под "переехать" я имел в виду заменить в моей проге Simpack.exe на соответствующую функцию USE.dll :%)

Нет, ну ты так и не сделал нормальную отмену :( . В прошлой версии (имею в виду, до моего первого сообщения о глюке) он останавливался сразу после извлечения того файла, во время которого нажали отмену. Между прочим, там, где
расположены экспортируемые функции
нет функции SetValue...только не говори мне, что ты опять забыл :suicide: . Напиши ты, наконец, GUI распаковщик для более "наглядного" отлова глюков :wink: , а то выходит что-то типа "Кто в лес, а кто по дрова" - у меня-то GUI.

P.S. Взял бы за базу для теста мой.
1) Лишним не будет ;)
2) Можешь переезжать :)
3) ладно, сделаю. А твоя прога вылетает сразуже при запуске :(
[url=svn://forum.csmania.ru/andreil]Репозиторий с моими проектами[/url]
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).

Аватара пользователя
$t@t!c_V()1D
Разработчик
Разработчик
Сообщения: 2639
Зарегистрирован: 06.12.2007
Благодарил (а): 10 раз
Поблагодарили: 29 раз

#110 Сообщение 22.05.2008, 06:34

andreil писал(а):А твоя прога вылетает сразуже при запуске
Потому, что в папке CSIDL_COMMON_APPDATA\ModZ_Launch_Res нету Unpack.ini, а выше означенный GUID можно заменить на тоже GetStartDir - ничего болезненного не будет (только подпапку ещё создать и все :pardon: ). И ещё в качестве параметра нужно передать LangID: либо 1033 (англ), либо 1049 (рус) - "C:\use_exec.exe" 1049 .

Хотя, зачем тебе это, если ты все равно планируешь объединение? Забей :) (на возню с моими исходниками)

Аватара пользователя
andreil
Разработчик
Разработчик
Сообщения: 781
Зарегистрирован: 14.08.2006
Откуда: Светлогорск, Беларусь
Поблагодарили: 2 раза
Контактная информация:

#111 Сообщение 24.05.2008, 13:41

Итак, сообщу о прогрессе.
За два дня почтиии научился создавать нормальную таблицу секторов для ГЦФархивов с 0. Косячит только иногда (на файлах с 0 размером и на некоторых других).
Пачку ГЦФ уже перепаковал таким способом - все ОК.
Насчет первого глюка - нулевые размеры убьются при старте закачки в Стиме или CFToolBox'е.
Насчет второго - иногда требуемое количество секторов больше реального. Никак не могу найти причину...
[url=svn://forum.csmania.ru/andreil]Репозиторий с моими проектами[/url]
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).

Аватара пользователя
$t@t!c_V()1D
Разработчик
Разработчик
Сообщения: 2639
Зарегистрирован: 06.12.2007
Благодарил (а): 10 раз
Поблагодарили: 29 раз

#112 Сообщение 25.05.2008, 07:07

andreil писал(а):научился создавать нормальную таблицу секторов для ГЦФархивов с 0
То есть, ты хочешь сказать, что мы, грубо говоря, можем сами создавать и редактировать GCF :shock: ?

Аватара пользователя
andreil
Разработчик
Разработчик
Сообщения: 781
Зарегистрирован: 14.08.2006
Откуда: Светлогорск, Беларусь
Поблагодарили: 2 раза
Контактная информация:

#113 Сообщение 25.05.2008, 12:11

$t@t!c_V()1D писал(а):То есть, ты хочешь сказать, что мы, грубо говоря, можем сами создавать и редактировать GCF :shock: ?
Ты прав :)
Я уже сейчас пытаюсь создать ГЦФ-архив с другим ГЦФ внутри :%) Пока не получается (слишком уж сложный формат), но еще пытаюсь.
[url=svn://forum.csmania.ru/andreil]Репозиторий с моими проектами[/url]
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).

Аватара пользователя
andreil
Разработчик
Разработчик
Сообщения: 781
Зарегистрирован: 14.08.2006
Откуда: Светлогорск, Беларусь
Поблагодарили: 2 раза
Контактная информация:

#114 Сообщение 28.05.2008, 11:44

Итак, поработа вчера и дороботав сегодня утром, му имем.... ГУЙ оболочку в USE.dll наподобие GcfScap'а :crazy:
Отличия:
  • быстрое открывание файлов ("team fortress 2 content.gcf" открывает за секунду);
  • открытые исходники (пока не публикую);
  • В дереве слева отображаются только папки, а в списке слева - только файлы (сделал так для упрощения работы проги);
  • может есть глюки?
  • В USE.dll вынес функцию для построения дерева папок и еще одну (их имена начинаются с "Gcf_Delphi_KOL_"
Программа сама регается на GCF-архивы :)

ЗЫ: Пока держит только GCF, сейчас разберусь с рекурсией по списку файлов и будут все форматы ;)

[UPD]
Добавил поддержку запуска файла из программы.
[url=svn://forum.csmania.ru/andreil]Репозиторий с моими проектами[/url]
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).

msblast
Нович0к
Нович0к
Сообщения: 29
Зарегистрирован: 21.12.2006

#115 Сообщение 28.05.2008, 19:13

Пока немогу понять смысл проги (например ее преимущество над GCFscape)

насчет создания новых гсф тоже непонял
в данный момент можно ли разобрать GCF, внести в него изменения и запоковать обратно чтобы игра продолжала нормально работать?

Аватара пользователя
andreil
Разработчик
Разработчик
Сообщения: 781
Зарегистрирован: 14.08.2006
Откуда: Светлогорск, Беларусь
Поблагодарили: 2 раза
Контактная информация:

#116 Сообщение 29.05.2008, 13:11

msblast писал(а):Пока немогу понять смысл проги (например ее преимущество над GCFscape)

насчет создания новых гсф тоже непонял
в данный момент можно ли разобрать GCF, внести в него изменения и запоковать обратно чтобы игра продолжала нормально работать?
1.1) Программа делалась как оболочка к USE.dll и как образеч юзания ее АПИ;
1.2) Запускается куда быстрее ;), поскольку построение дерева папок перенесено в библиотеку, где идет поиск по хэндлам, а не по имени, ведь сравнить два числа намнооого бысрее, чем строку длиной до 255 символов ;)
2) Можно, но работоспособность не гарантируется :(
[url=svn://forum.csmania.ru/andreil]Репозиторий с моими проектами[/url]
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).

msblast
Нович0к
Нович0к
Сообщения: 29
Зарегистрирован: 21.12.2006

#117 Сообщение 29.05.2008, 16:19

Теперь понятно
если бы была 100% работоспособностьсоздавемых gcf - проге цены бы небыло

Аватара пользователя
andreil
Разработчик
Разработчик
Сообщения: 781
Зарегистрирован: 14.08.2006
Откуда: Светлогорск, Беларусь
Поблагодарили: 2 раза
Контактная информация:

#118 Сообщение 30.05.2008, 00:29

msblast писал(а):Теперь понятно
если бы была 100% работоспособностьсоздавемых gcf - проге цены бы небыло
Этим и занимаюсь, но времени мало. А освобожусь полностью только через месяц ;)
[url=svn://forum.csmania.ru/andreil]Репозиторий с моими проектами[/url]
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).

Аватара пользователя
andreil
Разработчик
Разработчик
Сообщения: 781
Зарегистрирован: 14.08.2006
Откуда: Светлогорск, Беларусь
Поблагодарили: 2 раза
Контактная информация:

#119 Сообщение 30.05.2008, 20:10

Итак, работа над оболочкай почти завршена. Сейчас добавлю только сохранение/загрузгу состояния формы в/из файл(а) и пару внешник фич и выложу ;)
[url=svn://forum.csmania.ru/andreil]Репозиторий с моими проектами[/url]
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).

Аватара пользователя
andreil
Разработчик
Разработчик
Сообщения: 781
Зарегистрирован: 14.08.2006
Откуда: Светлогорск, Беларусь
Поблагодарили: 2 раза
Контактная информация:

#120 Сообщение 31.05.2008, 00:47

Итак, прошу любить и жаловать: USE VGUI Final! с исходниками
Если будут предложения - говорите.

Возможен запуск файла из программы (файл распаковывается в Temp).

[UPD]
Пофиксил вывод сообщений о повреждении файла в архиве.
[url=svn://forum.csmania.ru/andreil]Репозиторий с моими проектами[/url]
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).

Ответить Вложения 3