[Util] Command Line CF Updater v3.6.3

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

#31 Сообщение 19.01.2012, 13:36

Пардон. Теперь и это исправил.

Аватара пользователя
Jiffs
Steam Content Support
Steam Content Support
Сообщения: 474
Зарегистрирован: 10.05.2008
Откуда: Красноярск
Поблагодарили: 48 раз
Контактная информация:

#32 Сообщение 19.01.2012, 14:11

Теперь все работает отлично. Спасибо.
Изображение Изображение Изображение Изображение Изображение Изображение Изображение

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

#33 Сообщение 19.01.2012, 17:52

Jiffs
Тебе там пакетная обработка нужна? А то тут как-то просили, а я только-только в Phx реализовал. Вот думаю, нужно ли кому-то это в CFU?

Аватара пользователя
Jiffs
Steam Content Support
Steam Content Support
Сообщения: 474
Зарегистрирован: 10.05.2008
Откуда: Красноярск
Поблагодарили: 48 раз
Контактная информация:

#34 Сообщение 19.01.2012, 18:53

Лично мне такая функция не требуется, так как данную программу я использую только для обновления файла team fortress 2 conent.gcf в силу того, что он больше 4 ГБ, а CF Toolbox не поддерживает такие объемы. Но, если добавить такой функционал не сложно, то, думаю, программа станет только лучше.

Пока писал предыдущий абзац, вспомнил о том чего мне не хватает. Очень бы хотелось поддержку регулярных выражений. В частности, как я уже писал выше, я обновляю файл team fortress 2 conent.gcf и приходится каждый раз в батнике запуска изменять версию манифест-файла:

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

start cfUpdater3.exe 1 "team fortress 2 content.gcf" "team fortress 2 content.308.CFUmanifest"
А хотелось бы иметь возможность сделать так:

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

start cfUpdater3.exe 1 "team fortress 2 content.gcf" "team fortress 2 content.???.CFUmanifest"
Или так:

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

start cfUpdater3.exe 1 "team fortress 2 content.gcf" "team fortress 2 content.*.CFUmanifest"
Если бы такой функционал был реализован, то, тогда мне бы очень пригодилась функции пакетной обработки. Ибо в таком случае я бы полностью слез с CF Toolbox и делал бы все патчи в данной программе.

P.S.: заметил незначительный косметический баг: если просто запустить программу без параметров, то отображаемая версия все еще 3.6 вместо 3.6.1.
Последний раз редактировалось Jiffs 19.01.2012, 20:52, всего редактировалось 2 раза.
Изображение Изображение Изображение Изображение Изображение Изображение Изображение

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

#35 Сообщение 19.01.2012, 19:10

Хорошо, я обязательно попробую. Пардон за рекламу лишний раз, но я на неделе дотестирую и залью новый Phx и там уже есть пакетная обработка. Как там закончу и всё будет нормально, перенесу код сюда.

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#36 Сообщение 19.01.2012, 19:35

А есть под другие ОС? Или основано на чём-то таком, что не даёт возможности использовать вне Windows?
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#37 Сообщение 19.01.2012, 23:31

Jiffs
Поставь уже Ruby/Perl/Python! Это намного, существенно упрощает жизнь. Батники ни в какое сравнение не идут с нормальным языком.

На Ruby:

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

dir = "any/directory"
cache_name = "team fortress 2 content"
cache_file = "#{dir}/#{cache_name}.gcf"
manifest_file = Dir["#{dir}/#{cache_name}.*.CFUmanifest"].first  # Dir["mask"] возвращает массив файлов по маске

# Запускаем внешнюю утилиту
puts system("cfUpdater3.exe 1 "#{cache_file}" "#{manifest_file}"") # тут должно быть экранирование кавычек, но форум его убивает %) до сих пор не поправили такое >_<
Добавлено спустя 7 минут 55 секунд:
$t@t!c_V()1D
Вообще, для такой маленькой утилиты встроенная пакетная обработка - это не очень нужная вещь (если в ней, конечно, нет чего-то специфического, например автоматического поиска обновления, которое можно применить к данному файлу, среди кучи обновлений по содержимому, в смысле не по названию файла а по каким-нибудь внутренним заголовкам). Хотя, коль скоро программа под Windows, и нормальных встроенных средств для такого нет... Может и не будет лишним %)

Добавлено спустя 1 минуту 45 секунд:
NiGHt-LEshiY
Насколько я понимаю, у этой штучки зависимость на Rain.dll, исходников которой, как я понимаю, у нас нету. Наверное это и есть основная проблема.

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

#38 Сообщение 20.01.2012, 01:23

NiGHt-LEshiY
Да, увы и ах, MOZGIII прав - есть зависимость от rain.dll и я ничего с этим не могу поделать...пока %) .

MOZGIII
если в ней, конечно, нет чего-то специфического, например автоматического поиска обновления, которое можно применить к данному файлу, среди кучи обновлений по содержимому, в смысле не по названию файла а по каким-нибудь внутренним заголовкам
Вот это уже есть в Phx RC1. Это был, так сказать, первый этап: поиск и применение обновлений. Единственный минус: если нет каких-либо промежуточных обновлений - он не скажет каких. Будут просто неимпортированные файлы, а там уж либо докачивать, либо создавать *.PhxManifest и тогда уже на его основе создавать патч, в который будут включены недостающие файлы.

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#39 Сообщение 20.01.2012, 06:34

А что за rain.dll? Можно немного подробнее про эту библиотеку и про то, что именно мешает портированию?
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

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

#40 Сообщение 20.01.2012, 09:50

NiGHt-LEshiY
Rain.dll - библиотека, которую написал steamcooker, чтобы удовлетворить те запросы от разработчиков, которые к нему поступали, мол, сделай то, сделай это. Вот он и решил - на те вам либу. Заодно и я попросил несколько функций из CFT. Потом он спросил после случая с TF2 content, ставшей 4+Гб, мол кто соберётся сделать плагин для CFT, который будет работать с 4+Гб GCF? Ну, никто кроме меня и не вызвался. Далее я попросил добавить больше функционала в связи с этим, ну и в итоге всё вылилось вот в это. Исходники либы он открывать не хочет.

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#41 Сообщение 20.01.2012, 10:14

А что там непортируемого? Какие-то зависимости от стимовского добра или просто неизвестные/малоисследованные алгоритмы?
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

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

#42 Сообщение 20.01.2012, 14:57

неизвестные/малоисследованные алгоритмы
мной да. В принципе, если у andreil похожие работоспособные наработки есть, то можно позаимствовать - не всё ж ему осиливать. Я ему предлагал. Ты делаешь одно, я делаю другое. Компонетная модель, так сказать...нет, не вышло. Потому и обратился к steamCooker'y - на рине как-то коллективная работа лучше что ли...или со мной что не так?

В принципе, мне неизвестно только общение со Steam-овскими серверами. Но это можно как-нибудь позаимствовать из SteamRE. Было бы время...

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#43 Сообщение 20.01.2012, 17:40

$t@t!c_V()1D
$t@t!c_V()1D писал(а):или со мной что не так?
Это у нас на ксм вообще такая тенденция - всё делать самому, хоть и медленно... Хотя, в последнее время, уже немного лучше, кое-какие попытки к организации совместной работы уже есть. %)

А вообще, кажется, andreil выложил недавно свой проект в наши репы svn. Можно посмотреть/покомпилить. Я, к сожалению, ещё не успел, сейчас мало-мало под виндой бываю.

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

#44 Сообщение 20.01.2012, 18:18

MOZGIII писал(а):Это у нас на ксм вообще такая тенденция - всё делать самому, хоть и медленно
Печальная тенденция, вообще говоря...Steam-коммунизм так никогда и не наступит, если мы так дальше будем.

И да, я не могу его наработки в SVN посмотреть - пароль просит :S . C GitHub всё проще %)

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#45 Сообщение 20.01.2012, 18:21

Ну и введи пароль. У тебя есть аккаунт на сервере.. Ну всё же просто, ё-моё.
Последний раз редактировалось NiGHt-LEshiY 20.01.2012, 18:21, всего редактировалось 4 раза.
Причина: Я думал, эта штука как-то по-другому работает %)
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

Ответить