Universal Steam Extractor

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

#76 Сообщение 10.05.2008, 12:48

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

Аватара пользователя
impulse666
Полковник
Полковник
Сообщения: 7405
Зарегистрирован: 08.12.2005
Откуда: Atman
Благодарил (а): 2340 раз
Поблагодарили: 590 раз

#77 Сообщение 10.05.2008, 15:09

эх, ну чтож это тоже выход
Изображение
Негласные Правила
1. Пропаганда лицензии запрещена.
2. На форуме режим многоступенчатых стандартов Ψ. То что можно одним, нельзя другим. Решается правящей партией
3. Ники членов правящей партии (impulse666, NiGHt-LEshiY, SHADOW) искажают только в случае необходимости получить БАН.

...воздержитесь от этого, изучите вот это.
Лучшая статья о моих взглядах. Настоятельно рекомендую.

Аватара пользователя
Ethan Cole
CSmania Linux Group
CSmania Linux Group
Сообщения: 161
Зарегистрирован: 28.09.2006
Откуда: г.Егорьевск МО
Благодарил (а): 6 раз
Поблагодарили: 57 раз
Контактная информация:

#78 Сообщение 10.05.2008, 15:44

Все ниже описанное - мое личное мнение.
удалено.
______________________
варажаемое мнение недолжно никого оскорблять.
предупреждение №1

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

#79 Сообщение 12.05.2008, 13:15

Мда, на меня уже и матюгаются :crazy: А что там кстати было? А то я неуспел, уже было затерто...
Насчет проги: так как я по диплому иду впереди графика (на неделю), с завтрашнего дня переделаю пару вещей, в том числе:
  • поиск Item'а в GCF-архиве. Надо искать не по его имени, а по GCF-овски :%)
  • попробую более правильно организовать создание таблицы секторов при перепаковке GCF.
Если у меня получится хотя бы 2 пункт, можно будет приниматься за серьезный патчер GCF.
[url=svn://forum.csmania.ru/andreil]Репозиторий с моими проектами[/url]
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).

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

#80 Сообщение 13.05.2008, 10:28

andreil, чувак, глюк замечен:
При распаковке недокачанного контента мою версию экстрактора жестко выносит с ошибкой, а твоя версия при вылете просто жалуется на use.dll. Посмотри-ка, а то как-то неудобно...на первом же файле прерывать все (недокачанным оказался 1-ый файл по списку, дальше все норм)

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

#81 Сообщение 13.05.2008, 17:19

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

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

#82 Сообщение 14.05.2008, 08:09

andreil писал(а):Ты имеешь в виду, если в GCF есть недокачанный файл? Насчет этого я пока не смотрел.
Да, именно так (на днях, когда просил у тебя portal the first slice.gcf, я также начал обновлять counter-strike source shared.gcf, а, т.к. до Gameinfo.txt ему ещё качать и качать, он остается незаполненным).
В чем весь прикол: На ошибку-то он ссылается (то есть пишет в логе, что GameInfo.txt недокачан (0/1543 байт)) и на диске файл нулевой длины создает, а потом все сразу завершается - переход наподобие "exit;" (если по Trace into смотреть) - у меня он в loop'e извлекает,
Код моей петли

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

for Current:=1 to GCFCount do begin
... (здесь типа код извлечения :) )
end;
но вместо нормального выхода он ещё и ошибку выдает (Runtime error ... at ...).

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

#83 Сообщение 16.05.2008, 09:58

Спасибо за багрепорт, буду искать причину.

Насчет хода работы: за вчера почти написал с 0 часть USE, касающуюся распаковки ГЦФ и ПАК. Вроде как работает :)
Почему переделывал с 0? Да потому, что теперь работа с программой будет основанна не на передаче имени распаковываемого файла, а только его хэндла. Говорю сразу, есть функция, которая выдает хэндл файла по его имени.
Инаконец-то, самое главное - все-таки сделал рекурсию распаковки ГЦФ-архива :crazy: Теперь там правильнее некуда.

Сейчас работаю над освобождением ресурсов, а затем - над перепаковкой ГЦФ с созданием новой таблицы секторов.

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

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

#84 Сообщение 16.05.2008, 16:52

Итак, народ, налетай!!!
Готова версия 1.0.
Изменения и отличия:
  • ПРока поддерживает только GCF и PAK. Как только разберусь до конца с GCF, добавлю остальные типы файлов;
  • Работа с GCF-архивом переведена 100% на другие рельсы;
  • Да и вообще, практически вся ДЛЛка писалась с 0 (оставил только модули для работы с файлами, да и в них полазил);
  • Убрал перечислимые типы, что не переваривают некоторые программы (доказано StaticVoid'ом. теперь все типы данны (например, код ошибки передаются в виде байта.
Буду рад, если кто найдет баг :)

Оболочка - консольная, поэтому у некоторых будут сложность с использованием.
Зато все сообщения стали намного заметнее, поскольку вывод текста в ходе тойже валидации песрит многоцветием (разукрашивал, как мог).

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

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

#85 Сообщение 16.05.2008, 18:31

А что так, без описания API и исходников тестовой проги? Или потом, когда доделаешь все функции, все сразу и скинешь?
__________________________________
Странно как-то у тебя это все реализовано. - отдельные команды для открытия и извлечения. Наверное из-за этого прога и пишет:
[spoiler=""То, что прога пишет в командной строке""]

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


D:USE1.0>test.exe -p "D:GamesHL2_WorldSteamAppscounter-strike s
ource shared.gcf"
Package D:GamesHL2_WorldSteamAppscounter-strike source shared.gcf opened.

All operations complete! Pres any key to continue...


D:USE1.0>test.exe -e "cstrikeGameInfo.txt" C:
Extracting "cstrikeGameInfo.txt" to "C:"...
Start extracting ""...

All operations complete! Pres any key to continue...


D:USE1.0>test.exe -e "cstrikeGameInfo.txt" C:GameInfo.txt
Extracting "cstrikeGameInfo.txt" to "C:GameInfo.txt"...
Start extracting ""...

All operations complete! Pres any key to continue...


D:USE1.0>test.exe -e "cstrikeGameInfo.txt" C:
Extracting "cstrikeGameInfo.txt" to "C:"...
Start extracting ""...

All operations complete! Pres any key to continue...
(это не весь список :D )[/spoiler]
Я уж просто по-разному извращался - не получалось. И, повторюсь, скинь, пожалуйста, исходники проги и API, если можно :) ?

P.S.: Ох уж твой английский :D ...
Последний раз редактировалось $t@t!c_V()1D 16.05.2008, 18:51, всего редактировалось 1 раз.

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

#86 Сообщение 16.05.2008, 18:45

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

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

#87 Сообщение 16.05.2008, 22:07

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

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

#88 Сообщение 17.05.2008, 08:15

Эм-м-м, ну извлекать-то он извлекает и даже на неполных не спотыкается, но то ли он извлекает, что я его прошу?...
[spoiler=""Листинг""]D:USE1.0>test -p "D:GamesHL2_WorldSteamAppscounter-strike source shared.gc
f" -e "cstrikeinclient.dll" C:
USE version: 1.0.2
Package D:GamesHL2_WorldSteamAppscounter-strike source shared.gcf opened.
Extracting "cstrikeinclient.dll" to "C:"...
Start extracting ""...

cstrike
cstrikein
Extract: cstrikeinserver.dll OK
Extract: cstrikeinserver_i486.so OK
cstrikein: 27286482 bytes. OK
cstrikecfg
Extract: cstrikecfgai.cfg OK
Extract: cstrikecfguypresetsdefault_ct.vdf OK
Extract: cstrikecfguypresetsdefault_ter.vdf OK
Extract: cstrikecfgconfig_default.cfg OK
Extract: cstrikecfggame.cfg OK
Extract: cstrikecfgsettings_default.scr OK
Extract: cstrikecfgskill1.cfg OK
Extract: cstrikecfguser_default.scr OK
Extract: cstrikecfgvalve.rc OK
cstrikecfg: 27320337 bytes. OK
cstrikeclasses
Extract: cstrikeclassesak47.res OK
Extract: cstrikeclassesarctic.res OK
Extract: cstrikeclassesaug.res OK
Extract: cstrikeclassesautoselect_ct.res OK
Extract: cstrikeclassesautoselect_t.res OK
Extract: cstrikeclassesawp.res OK
Extract: cstrikeclassescancelbutton.res OK
Extract: cstrikeclassesdefault.res OK
Extract: cstrikeclassesdefuser.res OK
Extract: cstrikeclassesdeserteagle.res OK
Extract: cstrikeclasseselites.res OK
Extract: cstrikeclassesequipment.res OK
Extract: cstrikeclassesfamas.res OK
Extract: cstrikeclassesfiveseven.res OK
Extract: cstrikeclassesflashbang.res OK
Extract: cstrikeclassesg3sg1.res OK
Extract: cstrikeclassesgalil.res OK
Extract: cstrikeclassesgign.res OK
Extract: cstrikeclassesglock18.res OK
Extract: cstrikeclassesgsg9.res OK
Extract: cstrikeclassesguerilla.res OK
Extract: cstrikeclasseshegrenade.res OK
Extract: cstrikeclasseskevlar.res OK
Extract: cstrikeclasseskevlar_helmet.res OK
Extract: cstrikeclassesleet.res OK
Extract: cstrikeclassesm249.res OK
Extract: cstrikeclassesm3.res OK
Extract: cstrikeclassesm4a1.res OK
Extract: cstrikeclassesmac10.res OK
Extract: cstrikeclassesmachineguns.res OK
Extract: cstrikeclassesmp5.res OK
Extract: cstrikeclasses
ightvision.res OK
Extract: cstrikeclasses
ot_available.res OK
Extract: cstrikeclassesp228.res OK
Extract: cstrikeclassesp90.res OK
Extract: cstrikeclassespistols.res OK
Extract: cstrikeclassesprimaryammo.res OK
Extract: cstrikeclasses
ifles.res OK
Extract: cstrikeclassessas.res OK
Extract: cstrikeclassesscout.res OK
Extract: cstrikeclassessecammo.res OK
Extract: cstrikeclassessg550.res OK
Extract: cstrikeclassessg552.res OK
Extract: cstrikeclassesshield.res OK
Extract: cstrikeclassesshotguns.res OK
Extract: cstrikeclassessmokegrenade.res OK
Extract: cstrikeclassessubmachineguns.res OK
Extract: cstrikeclasses error.res OK
Extract: cstrikeclasses mp.res OK
Extract: cstrikeclassesump45.res OK
Extract: cstrikeclassesurban.res OK
Extract: cstrikeclassesusp45.res OK
Extract: cstrikeclassesxm1014.res OK
cstrikeclasses: 33103015 bytes. OK
cstrikemaps
cstrikemapsgraphs
Extract: cstrikemapsgraphscs_assault.ain OK
Extract: cstrikemapsgraphscs_compound.ain OK
Extract: cstrikemapsgraphscs_havana.ain OK
Extract: cstrikemapsgraphscs_italy.ain OK
Extract: cstrikemapsgraphscs_office.ain OK
Extract: cstrikemapsgraphsde_aztec.ain OK
Extract: cstrikemapsgraphsde_cbble.ain OK
Extract: cstrikemapsgraphsde_chateau.ain OK
Extract: cstrikemapsgraphsde_dust.ain OK
Extract: cstrikemapsgraphsde_dust2.ain OK
Extract: cstrikemapsgraphsde_inferno.ain OK
Extract: cstrikemapsgraphsde_nuke.ain OK
Extract: cstrikemapsgraphsde_piranesi.ain OK
Extract: cstrikemapsgraphsde_port.ain OK
Extract: cstrikemapsgraphsde_prodigy.ain OK
Extract: cstrikemapsgraphsde_tides.ain OK
Extract: cstrikemapsgraphsde_train.ain OK
Extract: cstrikemapsgraphs est_hardware.ain OK
cstrikemapsgraphs: 664114 bytes. OK
cstrikemapssoundcache
Extract: cstrikemapssoundcache\_other.cache OK
Extract: cstrikemapssoundcache\_other_rebuild.cache OK
Extract: cstrikemapssoundcache\_sharedprecache.cache OK
Extract: cstrikemapssoundcachecs_assault.cache OK
Extract: cstrikemapssoundcachecs_assault.manifest OK
Extract: cstrikemapssoundcachecs_compound.cache OK
Extract: cstrikemapssoundcachecs_compound.manifest OK
Extract: cstrikemapssoundcachecs_havana.cache OK
Extract: cstrikemapssoundcachecs_havana.manifest OK
Extract: cstrikemapssoundcachecs_italy.cache OK
Extract: cstrikemapssoundcachecs_italy.manifest OK
Extract: cstrikemapssoundcachecs_militia.cache OK
Extract: cstrikemapssoundcachecs_militia.manifest Incomplete
Extract: cstrikemapssoundcachecs_office.cache OK
Extract: cstrikemapssoundcachecs_office.manifest OK
Extract: cstrikemapssoundcachede_aztec.cache OK
Extract: cstrikemapssoundcachede_aztec.manifest OK
Extract: cstrikemapssoundcachede_cbble.cache OK
Extract: cstrikemapssoundcachede_cbble.manifest OK
Extract: cstrikemapssoundcachede_chateau.cache OK
Extract: cstrikemapssoundcachede_chateau.manifest OK
Extract: cstrikemapssoundcachede_dust.cache OK
Extract: cstrikemapssoundcachede_dust.manifest OK
Extract: cstrikemapssoundcachede_dust2.cache OK
Extract: cstrikemapssoundcachede_dust2.manifest OK
Extract: cstrikemapssoundcachede_inferno.cache OK
Extract: cstrikemapssoundcachede_inferno.manifest OK
Extract: cstrikemapssoundcachede_nuke.cache Incomplete
Extract: cstrikemapssoundcachede_nuke.manifest Incomplete
Extract: cstrikemapssoundcachede_piranesi.cache OK
Extract: cstrikemapssoundcachede_piranesi.manifest OK
Extract: cstrikemapssoundcachede_port.cache OK
Extract: cstrikemapssoundcachede_port.manifest OK
Extract: cstrikemapssoundcachede_prodigy.cache OK
Extract: cstrikemapssoundcachede_prodigy.manifest OK
Extract: cstrikemapssoundcachede_tides.cache OK
Extract: cstrikemapssoundcachede_tides.manifest OK
Extract: cstrikemapssoundcachede_train.cache OK
Extract: cstrikemapssoundcachede_train.manifest OK
Extract: cstrikemapssoundcache est_hardware.cache
...[/spoiler]

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

#89 Сообщение 17.05.2008, 10:23

$t@t!c_V()1D писал(а):Эм-м-м, ну извлекать-то он извлекает и даже на неполных не спотыкается, но то ли он извлекает, что я его прошу?...
Млять, забыл, видимо, в одном месте 0 поменять на Item (0 означает корень архива). Через пару часиков приду домой - посмотрю ;)
И еще - размер извлеченных папок корректен только иногда, это никак не могу исправить, как и индикацию ROOT'а в конце распаковки.
[url=svn://forum.csmania.ru/andreil]Репозиторий с моими проектами[/url]
Занимаюсь переносом всех своих библиотек на С++, а так же созданием их кроссплатформенных версий.
В команду переводчиков манги "Ah! My Goddess!" требуются переводчики с английского и тайперы (последних можем обучить, главное - желание).

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

#90 Сообщение 17.05.2008, 20:00

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

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