Апдейтер Lineage II на Python

Zion [🌿]

Постоялец
Участник
Сообщения
200
Розыгрыши
0
Репутация
31
Реакции
149
Баллы
1 008

Недавно я предлагал создание простых апдейтеров на заказ по доступной цене. Однако некоторые скептически отнеслись к разработке таких инструментов на платформе Python. Более того, нашлись и те, кто поспешил сделать выводы, заявляя, что подобные решения якобы непрактичны или неудобны.

Чтобы развеять сомнения, я решил предоставить бесплатную версию апдейтера, созданного на Python с нуля. Это даст возможность каждому лично оценить его функционал и простоту интеграции.

Описание​

Функционал бесплатной версии не очень обширный, но его достаточно, чтобы легко интегрировать апдейтер за 5–10 минут. Обновление файлов в данной версии доступно через стандартный хостинг.

В архиве находится три файла:

  1. Lineage II Updater.exe — основной файл апдейтера.
  2. config.ini — файл для настройки кнопок и путей.
  3. File List.exe — утилита для генерации списка файлов патча.

  4. Инструкция по настройке​

    1. Настройка​

    Открываем файл config.ini и редактируем следующие блоки:
    • [Links]
      Указываем ссылки на разделы вашего сайта:

      registration = https://ваш_сайт/регистрация
      personal_area = https://ваш_сайт/личный_кабинет
      site = https://ваш_сайт
      forum = https://ваш_форум

    • [Update]
      Указываем ссылки на хостинг, где находятся файлы патча и клиента:
      quick_check_url = https://ваш_хостинг/путь_до_патча/file_list.txt
      full_check_url = https://ваш_хостинг/путь_до_клиента/file_list.txt

    • [Game]
      Указываем путь к папке и .exe-файл запуска игры. По умолчанию уже прописан стандартный путь и файл:

      start_game_path = system\l2.exe

  5. 2. Размещение файлов​

    1. Поместите файлы Lineage II Updater.exe и config.ini в директорию клиента.

    2. В папке Файл менеджер скопируйте программу File List.exe в папку с патчем и в папку с пропатченным клиентом:
      • Сгенерируйте file_list.txt для пропатченного клиента.
      • Сгенерируйте file_list.txt для папки с патчем.
        1735375899068.webp
        1735375880746.webp

  6. 3. Настройка хостинга​

    1. Загрузите файлы на ваш хостинг в созданные директории. Например:
      • Для патча:


        https://ваш_хостинг/files/patch/
        Сюда поместите патч и файл file_list.txt от патча. После чего укажите ссылку в конфиге апдейтера:

        quick_check_url = https://ваш_хостинг/files/patch/file_list.txt
      • Для клиента:


        https://ваш_хостинг/files/client/
        Сюда поместите клиент и файл file_list.txt от клиента. После чего укажите ссылку в конфиге апдейтерае:


        full_check_url = https://ваш_хостинг/files/client/file_list.txt

  7. Финал​

    После выполнения всех действий, апдейтер готов к работе.

    Примечание: Эта бесплатная версия имеет базовый функционал, но вы всегда можете заказать кастомную версию под свой проект в этой теме: https://mmo-dev.info/threads/Простенькие-Апдейтеры.30752/#post-232705


  8. СКАЧАТЬ


    VirusTotal


    VirusTotal немного ругается на архив, но только малоизвестные антивирусы. Если потребуется, я готов предоставить администрации исходный код для проверки.
 

    PiratD

    Баллов: 4
    За уверенность в своих навыках и отстаивание своей позиции.

    Loveforyou

    Баллов: 2
    Красавчик, продолжай в том же духе !

    CartmanBro

    Баллов: 6
    За труды

что плохого в решении на питоне? а то нытье что это ппц я слышал, а аргументов - нет. впрочем как и всегда от этих нытиков.
спасибо за апдейтер, симпатичный
 
глянем а по сути чи не плевать на чем написан главное что бы выполнял свои действия единое конечно удивляет вес апдейтера
 
Глянуть
 
глянем а по сути чи не плевать на чем написан главное что бы выполнял свои действия единое конечно удивляет вес апдейтера
Исполняемый файл включает в себя встроенный интерпретатор Python, который необходим для запуска скрипта, из-за чего размер .exe автоматически увеличивается.

Кроме того, инструменты компиляции, такие как PyInstaller или cx_Freeze, добавляют в сборку все зависимости проекта — от стандартных модулей Python до внешних библиотек, даже если они используются минимально.

Также для обеспечения совместимости программа включает в себя дополнительные файлы, например, DLL для работы в Windows, что тоже увеличивает общий объём.

Однако в бесплатной версии нет смысла зацикливаться на оптимизации размера — на то она и бесплатная, чтобы сосредоточиться на функционале, а не на деталях.
 
  • Мне нравится
Реакции: raz
что плохого в решении на питоне? а то нытье что это ппц я слышал, а аргументов - нет. впрочем как и всегда от этих нытиков.
спасибо за апдейтер, симпатичный
Да пожалуйста. Питон медленный язык, это похоже на буксировку фуры велосипедом.
Для того чтоб питончик работал, нужно тащить интерпретатор и все зависимости в компил, страшно представить как вес увеличится. Про асинхронность молчу.

Автор, а как же этот аптейдер проверяет файлы в клиенте на актуальность? Ибо как я понял , он только скачивает, без проверок.
 
  • Мне нравится
Реакции: raz
Автор, а как же этот аптейдер проверяет файлы в клиенте на актуальность? Ибо как я понял , он только скачивает, без проверок.
Сверяет размеры файлов: если размер отличается (в большую или меньшую сторону), файл скачивается; если размеры совпадают, файл пропускается; если файл отсутствует, тоже скачивается.
 
а с ней что не так?
Он имел в виду, что в синхронном коде каждая операция выполняется строго по порядку:
сначала одна задача выполняется полностью, и только после её завершения начинается следующая.

Асинхронный код, в отличие от этого, позволяет приостанавливать выполнение одной задачи, чтобы программа могла заняться другой, пока первая ожидает, например, завершения загрузки данных из сети.

Но в данном случае это не касается апдейтера, а имелось в виду в общем смысле разработки на Python.
 
Да пожалуйста. Питон медленный язык, это похоже на буксировку фуры велосипедом.
Для того чтоб питончик работал, нужно тащить интерпретатор и все зависимости в компил, страшно представить как вес увеличится. Про асинхронность молчу.

Автор, а как же этот аптейдер проверяет файлы в клиенте на актуальность? Ибо как я понял , он только скачивает, без проверок.

спасибо, разумный ответ с аргументами. а то обычно ток обосрут, без аргументов, как голуби.

про асинхронность что не так?

про размер - ну 50 мегов по нашим временам это имхо не то, из-за чего стоит париться.
 
Сверяет размеры файлов: если размер отличается (в большую или меньшую сторону), файл скачивается; если размеры совпадают, файл пропускается; если файл отсутствует, тоже скачивается.
То есть, если файл был изменен, но размер остался прежним, то апдейтер такой файл не обновит?
 
Последнее редактирование:
То есть, если файл был изменен, но размер остался прежным, то апдейтер такой файл не обновит?
Нет, не обновит. Тут я упустил этот момент, возможно, из-за того, что уже больше суток не спал. Сейчас всё исправлю: добавлю проверку по дате для папки system и её возможных вариаций, а затем обновлю архив и ссылку.

Для остальных разделов проверка по дате не требуется, так как файлы текстур, анимации, звука и прочего при редактировании всё равно изменяются как минимум на несколько килобайт.
 

Недавно я предлагал создание простых апдейтеров на заказ по доступной цене. Однако некоторые скептически отнеслись к разработке таких инструментов на платформе Python. Более того, нашлись и те, кто поспешил сделать выводы, заявляя, что подобные решения якобы непрактичны или неудобны.

Чтобы развеять сомнения, я решил предоставить бесплатную версию апдейтера, созданного на Python с нуля. Это даст возможность каждому лично оценить его функционал и простоту интеграции.

Описание​

Функционал бесплатной версии не очень обширный, но его достаточно, чтобы легко интегрировать апдейтер за 5–10 минут. Обновление файлов в данной версии доступно через стандартный хостинг.

В архиве находится три файла:

  1. Lineage II Updater.exe — основной файл апдейтера.
  2. config.ini — файл для настройки кнопок и путей.
  3. File List.exe — утилита для генерации списка файлов патча.

  4. Инструкция по настройке​

    1. Настройка​

    Открываем файл config.ini и редактируем следующие блоки:
    • [Links]
      Указываем ссылки на разделы вашего сайта:

      registration = https://ваш_сайт/регистрация
      personal_area = https://ваш_сайт/личный_кабинет
      site = https://ваш_сайт
      forum = https://ваш_форум

    • [Update]
      Указываем ссылки на хостинг, где находятся файлы патча и клиента:
      quick_check_url = https://ваш_хостинг/путь_до_патча/file_list.txt
      full_check_url = https://ваш_хостинг/путь_до_клиента/file_list.txt

    • [Game]
      Указываем путь к папке и .exe-файл запуска игры. По умолчанию уже прописан стандартный путь и файл:

      start_game_path = system\l2.exe

  5. 2. Размещение файлов​

    1. Поместите файлы Lineage II Updater.exe и config.ini в директорию клиента.

    2. В папке Файл менеджер скопируйте программу File List.exe в папку с патчем и в папку с пропатченным клиентом:

  6. 3. Настройка хостинга​

    1. Загрузите файлы на ваш хостинг в созданные директории. Например:
      • Для патча:


        https://ваш_хостинг/files/patch/
        Сюда поместите патч и файл file_list.txt от патча. После чего укажите ссылку в конфиге апдейтера:

        quick_check_url = https://ваш_хостинг/files/patch/file_list.txt
      • Для клиента:


        https://ваш_хостинг/files/client/
        Сюда поместите клиент и файл file_list.txt от клиента. После чего укажите ссылку в конфиге апдейтерае:


        full_check_url = https://ваш_хостинг/files/client/file_list.txt

  7. Финал​

    После выполнения всех действий, апдейтер готов к работе.



  8. СКАЧАТЬ

    *** Скрытый текст не может быть процитирован. ***

    VirusTotal


    VirusTotal немного ругается на архив, но только малоизвестные антивирусы. Если потребуется, я готов предоставить администрации исходный код для проверки.
Это уже что-то интересное.
 
питон ещё жив)
 
Зачем по дате? Почему не сделать нормальным способом, который существует уже 100500 лет?
Намекаете сделать проверку по контрольной сумме? (Для тех, кто не в теме: речь идёт о хэше, чтобы не возникло лишних вопросов.)
 
Интересно
 
не важно как по мне какой язык главное что работает , только один вопрос от языка к примеру скорость загрузки меняется? Если нет то тем более не важен язык
 
Назад
Сверху Снизу