Lineage 2 Patch Downloader

Lineage 2 Patch Downloader Version_01-06-03

Нет прав для скачивания

MrKirill1232

Великий мудрец
Проверенный
Магистр реакций
Знаток письма высшего ранга
Куратор Данных
Победитель в номинации 2023
Мастер реакций
Неукротимое пламя
Медаль Благодарности
Победитель в номинации 2022
Старожил I степени
Сообщения
2 307
Розыгрыши
0
Решения
47
Репутация
1 245
Реакции
2 082
Баллы
2 058
MrKirill1232 добавил(а) новый ресурс:

Lineage 2 Patch Downloader - Скачиваем патчи как в старые времена с acmi

Програмулина, которая была набросана за парочку вечеров после осознания того, что Японская версия игры ушла на 474 протокол...
По функционалу похожа на , но с рабочими ссылками и некоторыми улучшениями (возможность возобновить загрузку и все?).
Сейчас доступны всего 04 источника загрузки клиентов:
- Корейский клиент;
- Японский клиент;
- Тайваньский клиент;
- Американский клиент;

Вся настройка...

Узнать больше об этом ресурсе...
 

В: Что это такое?
О: Это утилита, которая формирует ссылки и выгружает данные оригинального клиента л2 по версии патча.

В: Зачем это нужно?
О: Условно можно скачать последнюю версию предыдущего протокола (если патч будет доступен на CDN) или отдельные файлы, которые можно выгрузить при помощи фильтра (указать какие именно файлы нужно выгрузить);

В: Почему нельзя использовать обычный лаунчер?
О: Лаунчер отдает только последнюю патч версию и скачать предыдущие не представляется возможным;

В: Как указывать фильтры?
О: Указатель фильтров примерно такой же, как и у acmi в утилите.
* include_file_filter - для указания, какие файлы загружкать (по состоянию на версию 01_01_03_PRE доступен только 1 для указания);
* exclude_file_filter - для указания, какие файлы нужно игнорировать (неограниченное колличество фильтров);
ФильтрОписаниеПример допустимых значенийПример не допустимых значений
*Загрузка всех файлов без разбора. Если указать в exclude_file_filter - все значения будут игнорироваться.ВсеНикакие
*.datЗагрузка всех файлов с расширением ".dat".\ExcludedUpdateList.dat
.\system\Ability.dat
.\patchw32.dll
.\system\interface.u.\maps\22_20.unr
system\*Загрузка всех файлов, которые находятся в папке system.\system\locales\en-US.dll
.\system\interface.u
.\system\Ability.dat
.\maps\22_20.unr
.\patchw32.dll
system\*.*Загрузка всех файлов именно в папке system.\system\Ability.dat
.\system\ActionName-k.dat
.\system\interface.u
.\system\locales\en-US.dll
.\maps\22_20.unr
system\*.datЗагрузка всех файлов, которые находятся в папке system с расширением ".dat".\system\Ability.dat
.\system\ActionName-k.dat
.\system\interface.u
.\system\locales\en-US.dll.\maps\22_20.unr

В: Будет ли добавлена загрузка с CDN серверов 4game?
О: Скорее всего нет из-за сложности получения списка файлов.
4game отдает part*index* файлы, которые без списка файлов не понять куда к чему относятся... Мое предположение - список файлов и какие файлы клиента где хранятся - лаунчер получает посредством общения напрямую между сервером и клиентом лаунчера.

В: Могу ли я скачать клиент High Five таким способом?
О: Не думаю что такое возможно, ведь он был доступен 10 лет назад. Но если найдете версию патч-а и может нужную ссылку - все возможно :*

В: Как узнать версию последнего обновления игры?
О: Или угадывать и тыкать на-угад или скачать лаунчер и начать обновления игры. Создастся файл, который будет указывать на версию файлов.
 
Последнее редактирование:
MrKirill1232 обновил(а) ресурс Lineage 2 Patch Downloader новой записью:

Version_01-01-04_PRE

* include filter поддерживает несколько значений; (добавлен метод "optional" в ICondition)
* в классе FileUtils переменная "recursive" была заменена на "depth" (глубина);
* для проверки одного символа, были заменены методы "equalsIgnoreCase("символ")" на "charAt[0] == 'символ'";

[include filter example:]
1722705802200.png

Узнать больше об этом обновлении...
 
MrKirill1232 обновил(а) ресурс Lineage 2 Patch Downloader новой записью:

Версия 01.02.01

  • Фильтр "игнорирования файлов" будет игнорировать указание "*" в "загружаемые файлы";
  • exclude_filter > include_filter;
  • Реализация многопоточности;
  • Изменение некоторых Logger на System.out;
  • Тип файлов "FILE_TYPE.UNK_04" тоже обозначен как возможно "разделенный";
  • Добавлен параметр, который логирует загруженные файлы в консоли как у acmi;

Узнать больше об этом обновлении...
 
Шутки шутками, но Японский клиент я выгрузил за 15 минут :D

Нужно бы еще добавить наверное проверку файлов после завершения загрузки и попытаться их перезагрузить если не удалось, но на такой случай есть "восстановление загрузки" :)

хахахах )))0)
Сижу код чищу и на такое наткнулся )00)

1722794417626.png

К будущему апдейту.
- В Main.ini добавлен параметр max_download_attempts.
* Принимает значение -1 и выше. Указывает на колличество попыток повторно загрузить файл (условно при переключении VPN или если отвалился интернет ненадолго или CDN заблокировал Ваш IP адресс за спам).

1722856269019.png
1722856279401.png
- Был переписан класс LinkHolder, который разделил на 2 класса:
* Основной класс теперь FileInfoHolder, который в себя включает:
  • hashsum загружаемого файла;
  • размер загружаемого файла;
  • hashsum конечного файла;
  • размер конечного файла;
* В классе FileInfoHolder есть массив таких же FileInfoHolder, если файл был разбит на части (на НА/Японии/Тайвань - это части файла по 20 мб (20_971_520), на Корее так же 20 мб (20_975_368));
* Класс FileInfoHolder включает в себя информацию о загружаемом файле - LinkInfoHolder. Если файл разделенный - это поле вернет null;
* Класс LinkInfoHolder включает в себя:
  • ссылка доступа;
  • http ответ на запрос;
  • размер загружаемых данных из header-а http при запросе подключения;
- Замена _threadStatus из boolean масива в AtomicBoolean (спасибо ВАСЕК);
- Много дополнительных проверка на "архив" в классе DecodeManager;
- Переделаны некоторые методы в классе NcTaiwanLinkGenerator и NcKoreanLinkGenerator для упрощения читабельности кода и лучшей производительности;
 
MrKirill1232 обновил(а) ресурс Lineage 2 Patch Downloader новой записью:

Версия 01.03.01

  • Добавлен параметр "max_download_attempts" для перезапуска загрузки файла, если подключение не стабильно;
  • Переписан класс "LinkHolder":

  • Разделен на FileInfoHolder и LinkInfoHolder;
  • FileInfoHolder содержит информацию о разделенных файлах (которые дадут исходный файл при обьединении);
  • LinkInfoHolder содержит информацию о ссылках, http статусу и размеру загружаемых данных по http;
  • LinkInfoHolder может быть null при условии, если FileInfoHolder содержит...

Узнать больше об этом обновлении...
 
Ради прикола делаю поддержку лаучнеров UpNova :D

Ссылки на файлы и загрузку уже получены и на сами файлы тоже. Так что - хз зачем - но оно будет )00)
Прийдется таки делать поддержку параметров запуска... (с самой первой версии все еще висит)

Код:
        str += "This program is support arguments, and you can use them!";
        str += "\n";
        str += "[-cdn] - selecting download channel. Supports a 3 options. [NC_SOFT_TAIWAN] | [NC_SOFT_KOREAN] | [NC_SOFT_JAPANESE]";
        str += "\n";
        str += "Example: -cdn NC_SOFT_TAIWAN";
        str += "\n";
        str += "[-version] - selection a patch version. WARNING! THIS OPTION NOT THE SAME VERSION AS \"PROTOCOL VERSION\" OF LINEAGE 2.";
        str += "\n";
        str += "Patch version - its a version of installed client files. Example 89 patch is 486 game protocol on Korean.";
        str += "\n";
        str += "Latest knows versions (on 07/27/2024):";
        str += "\n";
        str += "NC_SOFT_TAIWAN   - 529";
        str += "NC_SOFT_KOREAN   - 089";
        str += "NC_SOFT_JAPANESE - 102";
        str += "\n";
        str += "Example: -version 529";
        str += "\n";
        str += "[-path] - output path of downloaded files.";
        str += "\n";
        str += "Example: -path \"C://downloads/lineage_02/429/\"";
        str += "\n";
        str += "[-request] - request for download path. All requested files will check by \"regex\" patterns.";
        str += "\n";
        str += "Examples: ";
        str += "\n";
        str += "01. -request system/*.u";
        str += "\n";
        str += "02. -request system/*.dat;system/interface.*";
        str += "\n";
        str += "[-sha] - will compare SHA checksum with downloaded file.";
        str += "\n";

Еще переделал в DownloadingManager с HttpURLConnection на HttpRequest . В теории - чуть быстрее должно формироваться подключение и загрузка "потока" предоставляемых данных.
 
MrKirill1232 обновил(а) ресурс Lineage 2 Patch Downloader новой записью:

Версия 01.05.02

[Версия 01.03.02]:
* Улучшение HTTP подключения;
[Версия 01.04.01]:
* Поддержка списка файлов с UpNovaLauncher;
* Переименование "Decode" в "Decompress";
* Добавлен "ArchiveType" enum для корректного понимания какой тип архива представлен в файле;
* Разделение классов разархивации;
[Версия 01.04.02]:
* Добавление новых алгоритмов хэширования;
* Поддержка "Параметров запуска";
* Исправление формирования списка файлов для UpNovaLauncher;
[Версия 01.05.01]:
* Переименование CheckSumManager в...

Узнать больше об этом обновлении...
 
В 1.5.2 почему-то отвалилась загрузка в билдах...
 
MrKirill1232 обновил(а) ресурс Lineage 2 Patch Downloader новой записью:

Версия 01.05.05

[Версия 01.03.02]:
* Улучшение HTTP подключения;

[Версия 01.04.01]:
* Поддержка списка файлов с UpNovaLauncher;
* Переименование "Decode" в "Decompress";
* Добавлен "ArchiveType" enum для корректного понимания какой тип архива представлен в файле;
* Разделение классов разархивации;

[Версия 01.04.02]:
* Добавление новых алгоритмов хэширования;
* Поддержка "Параметров запуска";
* Исправление формирования списка файлов для UpNovaLauncher;

[Версия 01.05.01]:
* Переименование CheckSumManager в...

Узнать больше об этом обновлении...
 
ПАРАМЕТРЫ ЗАПУСКА:
- Их можно использовать или совместно с .ini файлом или вообще без него. В любом случае - параметры запуска будут перезаписывать значения из .ini конфигуционного файла. (Можно наклепать standalone програмы для каждого проекта или для определенных версий патча). Пример, на основе "UP_NOVA_LAUNCHER" с указанием сервера с файлами "flameria" будет ниже.

Теперь по поводу самих параметров запуска:
НаименованиеОписание
-cdnУказывает источник загрузки файлов. Принимает 4 + 1 значение. NC_SOFT_TAIWAN, NC_SOFT_KOREAN, NC_SOFT_JAPANESE, NC_SOFT_AMERICA, UP_NOVA_LAUNCHER.
-versionПри использовании всех, кроме UP_NOVA_LAUNCHER, указывает загружаемую версию патча.
-pathУказатель для загрузки и проверки файлов. Пример "D:/abobus/amogus/". Если не указано - использует значение "папка_запуска/output/". НЕ УКАЗЫВАТЬ ОБРАТНЫЕ СЛЕШИ В ПАРАМЕТРЕ (а именно эти - \)
Значение требуется указать в кавычках! (" - кавычка)
-inner_pathЧто-то потипу параметра выше (-path), но работает от папки загрузки. То-есть если запаковать клиент и указать "/" - програма будет проверять все файлы, которые находятся в папке запуска. Если указать "" - будет ошибка. Если указать "/abobus/" - будет искать в папке запуска папку с названием "abobus" и туда сохранять файлы или же проверять файлы;
Значение требуется указать в кавычках! (" - кавычка)
-include_filterФильтр, который разрешает загрузку файлов с определенными именами. Выше указывал какие параметры можно указывать.
Значение требуется указать в кавычках! (" - кавычка)
-exclude_filterФильтр, для ограничения загружаемых файлов.
Значение требуется указать в кавычках! (" - кавычка)
-sizeНе принимает параметры. После загрузки и распаковки файла сравнит размер с оригинальным размером файла;
-hashНе принимает параметры. После загрузки и распаковки файла сравнит hash-sum с оригинальной hash-sum файла;
-agentДля указания рабочего user-agent при http подключении;
Значение требуется указать в кавычках! (" - кавычка)
-upnova_urlИспользуется только при cdn = UP_NOVA_LAUNCHER. Указывается ссылка, которая используется лаунчером для получения файла "UpdateConfig.xml". (без самого указания "UpdateConfig.xml");
Значение требуется указать в кавычках! (" - кавычка)
-upnova_patch_pathУказатель на название "ноды" в XML файле "UpdateConfig", а именно аналога "PatchPath". Некоторые сервера имеют в лаунчере несколько доступных для загрузки клиентов и PatchPath может быть с каким-то изменениями.
-restoreНе принимает параметры. Перед загрузкой файлов, проверит имеющиеся в каталоге.
-r_sizeНе принимает параметры. При включенном -restore - будет сравнивать файлы по размеру; (не рекомендуется при работе с HDD, почему-то чтение файла происходит быстрее чем получение его размера).
-r_hashНе принимает параметры. При включенном -restore - будет сравнивать файлы по hash-sum-е;
-threadНе принимает параметры. Разрешает использование Thread (потоков) для работы програмы.
-threads_downloadПри включенном -thread - указывает колличество потоков на загрузку файлов;
-threads_decompressПри включенном -thread - указывает колличество потоков на распаковку файлов;
-threads_savingПри включенном -thread - указывает колличество потоков на сохранение файлов;
-threads_checkКолличество потоков при проверке файлов перед загрузкой. Указание значения меньше 1 отключит разделение на потоки.
-log_checkПри формировании списка файлов, которые не требуют обновления, будет отображать прогресс его формирования.

Пример использование "параметров запуска":
java -jar Lineage_02_Patch_Downloader.jar -cdn UP_NOVA_LAUNCHER -inner_path "/" -upnova_url "https://flameria.com/" -upnova_patch_path "PatchPath" -restore -r_hash -thread -threads_download 3 -threads_decompress 10 -threads_saving 1 -threads_check 10
1723045342254.png
java -jar Lineage_02_Patch_Downloader.jar -cdn UP_NOVA_LAUNCHER -inner_path "/" -upnova_url "https://flameria.com/" -upnova_patch_path "PatchPath" -restore -r_hash -thread -threads_download 3 -threads_decompress 10 -threads_saving 1 -threads_check 10 -log_check
1723045480764.png
 
Is it possible to add to download all protocols in sequence? 😇
example 101 - 464
 
Назад
Сверху Снизу