Universal Steam Extractor

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

#91 Сообщение 18.05.2008, 05:50

Слушай, ты вообще тестируешь перед тем, как отправить. Создается ощущение, что "нет" или "недостаточно". Суди сам: После этого
USE version: 1.0.2
Package D:\Games\HL2_World\SteamApps\counter-strike source shared.gcf opened.
Extracting "cstrike\bin\client.dll" to "C:\"...

Выходит это:

AppName: test.exe AppVer: 0.0.0.0 ModName: use.dll
ModVer: 0.0.0.0 Offset: 000018af

В таком случае пусть уж все сразу извлекает :lol: (шучу).

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

#92 Сообщение 18.05.2008, 11:43

Package D:\Games\HL2_World\SteamApps\counter-strike source shared.gcf opened.
Extracting "cstrike\bin\client.dll" to "C:\"...
Вообщето клиентская либа находится в отдельном архиве ;)
А так - все ОК, потому что, если Item по имени не найден, то функция возвращает -1, из-за этого при распаковке все и вылетает. Щас поправим...

-----------------------

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

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

#93 Сообщение 18.05.2008, 11:56

Ну, я не только клиент извлекал (это я пытался проверить то, как test.exe реагирует на извлечение несуществующих файлов)
А вообще если извлекать только GameInfo.txt, то все равно он извлекает все файлы в данной папке:

[spoiler=""Листинг""]D:USE1.0>test -p "D:GamesHL2_WorldSteamAppscounter-strike source shared.gc
f" -e cstrikeGameInfo.txt C:1
USE version: 1.0.2
Package D:GamesHL2_WorldSteamAppscounter-strike source shared.gcf opened.
Extracting "cstrikeGameInfo.txt" to "C:1"...
Start extracting "cstrikegameinfo.txt"...
Extract: cstrikegameinfo.txt Incomplete
Extract: cstrikemapcycle.txt Incomplete
Extract: cstrikemaplist.txt Incomplete
Extract: cstrikemotd.txt OK
Extract: cstrike
ebuy.txt OK
Extract: cstrikesteam.inf Incomplete

All operations complete! Pres any key to continue...[/spoiler]

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

#94 Сообщение 18.05.2008, 12:17

Епть, этож у меня еще в рекурсии заложено так... Надо поправить...

-------------------------

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

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

#95 Сообщение 18.05.2008, 16:05

Куда лучше :good: . Но, если пытаться извлечь несуществующий файл, DLL все равно рвет (или ты просто ещё не доделал?)

P.S.: В принципе, мне не хватает только API :wink: ...Ладно, работай-работай :) .

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

#96 Сообщение 18.05.2008, 19:41

$t@t!c_V()1D писал(а):Куда лучше :good: . Но, если пытаться извлечь несуществующий файл, DLL все равно рвет (или ты просто ещё не доделал?)
Блин, проверю насчетэтого еще кучу раз... Но когда я пытался извлечь cstrike\bin\client.dll выдало ошибку, что файл не найден, и все ОК, но проверю...

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

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

#97 Сообщение 19.05.2008, 06:41

Слушай, у меня вопрос:
Какой можно сделать аналог следущего кода:

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

     Value:=true;
     SetValue(VALUE_BREAK, @Value); //Прерываем распаковку

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

#98 Сообщение 19.05.2008, 09:12

$t@t!c_V()1D писал(а):Слушай, у меня вопрос:
Какой можно сделать аналог следущего кода:

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

     Value:=true;
     SetValue(VALUE_BREAK, @Value); //Прерываем распаковку
Мда, об этом я забыл... Надо сделать.

--------------------

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

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

#99 Сообщение 19.05.2008, 10:41

Посмотри что не так: Ну не хочет он прерывать просто так
Вложения
USE_Exec.rar
Исходники моего аналога
(5.04 КБ) 200 скачиваний
USE_Exec.rar
Исходники моего аналога
(5.04 КБ) 200 скачиваний

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

#100 Сообщение 19.05.2008, 12:19

$t@t!c_V()1D писал(а):Посмотри что не так: Ну не хочет он прерывать просто так
Все, пофиксил. Просто опять забыл код написать.
Сорри, если не зарабротает, некогда тестить, бегу на экзамен.

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

Аватара пользователя
ZUKMAN
Нович0к
Нович0к
Сообщения: 20
Зарегистрирован: 11.01.2007

#101 Сообщение 19.05.2008, 21:39

Отличная работа. Продолжай дальше и удачи тебе в этом нелегком деле

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

#102 Сообщение 20.05.2008, 05:46

Нет, все же кое-что из глюков осталось - его рандомно рвет после извлечения последнего файла в указанной папке. И пофикси все же отмену :pardon: .

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

#103 Сообщение 20.05.2008, 12:19

$t@t!c_V()1D писал(а):Нет, все же кое-что из глюков осталось - его рандомно рвет после извлечения последнего файла в указанной папке. И пофикси все же отмену :pardon: .
1) Хм, надо составить БАТник для проверки. В общем, ща посмторим..
2) А ее разве еще нету? вроде как добавил.

Прогресс: Уже почти сделал распаковку WAD-архивов. Застопорился на преобразовании 8-битного цвета в 24-битный TColor.

----------------------------

Чуть не забыл сказать. Консольная прога может за раз производить по несколько операций. Главное условие - соблюдение свичей и их параметров. Те возможна следующая строка запуска:

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

test.exe -p half-life.gcf -v \ -e valve C:\hl1 -e valve\liblist.gam C:\
Существует только два ограничения:
1) строка - до 255 символов (ограничение ОСи);
2) за один присест обрабатывается только один архив.
[url=svn://forum.csmania.ru/andreil]Репозиторий с моими проектами[/url]
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).

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

#104 Сообщение 20.05.2008, 22:46

Итак, переколбасил рекурсию при распаковке на 100%, тк старый вариант был написан мною, тогда еще не сильно в рекурсии разббирающемся, поэтому занимала 2 экрана (а сейчас - 1,2).

ЗЫ: На валидации рекурсия прежняя.

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

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

#105 Сообщение 21.05.2008, 09:19

Сорри за вчерашнюю версию ДЛЛки, там два глюка в рекурсии:
1) если в архиве есть пустая папака, то распаковка после нее опять начинается с 0, те идет по кольцу;
2) Идет распаковка Item'ов, следующих за указанным.

UPD
Итак, USE доведена до пре-релиз версии!
На данный момент реализованно все, что хотелось (за исключением XZP-файлов).
Если будут пожелания к программе - я готов выслушать.

Есть у меня одно предложение: USE извлекает файл в адрессное пространство головной программы, те эта программа передает USE указательна область памяти. по окончании распаковки там уже будет файл.

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

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