AutoUpdater своими руками

Тема в разделе "No-Steam", создана пользователем KapaT, 25 июл 2015.

  1. KapaT

    KapaT Эгоист

    Сообщения:
    1.983
    Симпатии:
    408
    Вот решил нацарапать статейку как можно сделать обновлятор самим, точнее сказать не сделать, а запихнуть в него ваши файлы.
    Приступим.

    Требования:
    1. LameUpdater
    2. Restorator
    3. Хост

    Начали.

    Шаг 1. Создание Патча и патчлиста

    Скачиваем LameUpdater распаковываем куда душе угодно и запускаем PatchBuilder.exe

    Появится окно
    [​IMG]

    Нажимаем Options и перетаскиваем ползунок вправо, чтобы было Ultra64 (максимальное сжатие).

    [​IMG]

    Теперь создаем наш патч (файлы для закачки на клиент). Для этого создаем две папки например In и Out.
    В папку In запихуем файлы которые хотим чтобы обновлятор загрузил клиенту.
    В папке Out будет создан наш патч и патчлист.
    Пример содержания наших файлов
    [​IMG]

    В PatchBuilder выбираем меню File - New, в появившемся окне New Project

    [​IMG]

    В поле Input folder выбираем папку с нашими файлами.
    В поле Output folder выбираем папку где будет сохранён патчлист и архивы файлов.
    Нажимаем OK, происходит сканирование наших файлов в папке In, в следуйшем окне Add Files видим список наших исходных файлов.

    [​IMG]

    В этом окне мы можем выбрать один или несколько файлов на основе которых будет создан наш патчлист. После того как выбрали файлы жмем OK.

    [​IMG]

    Ждём, пока программа сжимает файлы, и получаем список, подобный этому:

    [​IMG]

    Содержимое нашей папке Out будет иметь следующий вид:

    [​IMG]

    Тут содержатся архивы входных файлов и patchlist.xml (файл описания патчей, в формате, понятном апдейтеру). Содержимое этой папке предназначено для размещения на веб-сервере.

    Пример содержимого patchlist.xml:
    PHP:

    <list>
        <
    archive filename="cstrike\materials\models\player\slavgame\ct_sas_spectr\ct_sas.vmt" checksum="C7D4D87D" original="583E422A" size="301"/>
        <
    archive filename="cstrike\materials\models\player\slavgame\ct_sas_spectr\ct_sas.vtf" checksum="CCBBBADD" original="422E2B21" size="699256"/>
        <
    archive filename="cstrike\materials\models\player\slavgame\ct_sas_spectr\ct_sas_glass.vmt" checksum="1C8BF684" original="7B066461" size="266"/>
        <
    archive filename="cstrike\materials\models\player\slavgame\ct_sas_spectr\ct_sas_glass.vtf" checksum="ED9CF5BA" original="2CDB3DC6" size="174908"/>
        <
    archive filename="cstrike\materials\models\player\slavgame\ct_sas_spectr\ct_sas_glass_spec.vtf" checksum="88D2E6D6" original="C8EE7F13" size="808"/>
        <
    archive filename="cstrike\materials\models\player\slavgame\greyskull_t\t_phoenix.vmt" checksum="FE3503B7" original="723A5A8A" size="286"/>
        <
    archive filename="cstrike\materials\models\player\slavgame\greyskull_t\t_phoenix.vtf" checksum="3EEBF43B" original="FEC4847A" size="699256"/>
        <
    archive filename="cstrike\models\player\slavgame\ct_sas_spectr\ct_sas.dx80.vtx" checksum="89A5B3C4" original="508AA8B1" size="166603"/>
        <
    archive filename="cstrike\models\player\slavgame\ct_sas_spectr\ct_sas.dx90.vtx" checksum="0BF51935" original="0BF36B97" size="161720"/>
        <
    archive filename="cstrike\models\player\slavgame\ct_sas_spectr\ct_sas.mdl" checksum="E195E286" original="7ABB4330" size="17336"/>
        <
    archive filename="cstrike\models\player\slavgame\ct_sas_spectr\ct_sas.phy" checksum="F1540A9D" original="B6CF4DAD" size="17096"/>
        <
    archive filename="cstrike\models\player\slavgame\ct_sas_spectr\ct_sas.sw.vtx" checksum="40CEECE3" original="C921FFFE" size="159736"/>
        <
    archive filename="cstrike\models\player\slavgame\ct_sas_spectr\ct_sas.vvd" checksum="F0D007FD" original="D98F4676" size="280112"/>
        <
    archive filename="cstrike\models\player\slavgame\ct_sas_spectr\ct_sas.xbox.vtx" checksum="28FAF885" original="064A4B2A" size="161720"/>
        <
    archive filename="cstrike\models\player\slavgame\greyskull_t\terror.dx80.vtx" checksum="FE4EB2AD" original="D2D05E09" size="170464"/>
        <
    archive filename="cstrike\models\player\slavgame\greyskull_t\terror.dx90.vtx" checksum="CF2AAB69" original="577E631F" size="164276"/>
        <
    archive filename="cstrike\models\player\slavgame\greyskull_t\terror.mdl" checksum="0313FFCF" original="03AD05B6" size="18144"/>
        <
    archive filename="cstrike\models\player\slavgame\greyskull_t\terror.phy" checksum="6A7606ED" original="660563C5" size="32183"/>
        <
    archive filename="cstrike\models\player\slavgame\greyskull_t\terror.sw.vtx" checksum="795F50C9" original="90688165" size="161884"/>
        <
    archive filename="cstrike\models\player\slavgame\greyskull_t\terror.vvd" checksum="BF9EBF27" original="16EE2FAE" size="397632"/>
        <
    archive filename="cstrike\models\player\slavgame\greyskull_t\terror.xbox.vtx" checksum="33A66AB5" original="CE246AEF" size="164276"/>
        <
    archive filename="cstrike\skinchooserdownloads.ini" checksum="9E8BBE09" original="83287DC8" size="1178"/>
        <
    archive filename="hl2.exe" checksum="CDBBC88A" original="AA99FC97" size="106496"/>
    </list>

    ВНИМАНИЕ при добавление новых файлов процедуру проходить заново!

    Шаг 2. Настройка Апдейтера

    Запускаем ConfigBuilder.exe

    Вкладка Options
    На этой вкладке находятся основные настройки апдейтера, ссылки на патчлист, новости и серверные настройки.

    [​IMG]

    Window title – название программы апдейтера на панели задач. Параметр может быть не задан.
    Unique ID – это идентификатор апдейтера, он должен быть уникальным для корректной работы нескольких апдейтеров на компьютере пользователя. Параметр должен быть задан обязательно.
    URL to server-side options – настройки, которые могут хранится на сервере. Эта ссылка может быть пустая, если вы хотите все настройки хранить только на стороне пользователя, но если она присутствует, апдейтер будет пытаться закачивать серверные настройки, они могут дополнять или перекрывать настройки на стороне пользователя.
    URL to news page – ссылка на страницу с новостями. Ссылка может быть пустая.
    URL to patchlist – ссылка на патчлист, созданный PatchBuilder. По нему апдейтер проверяет валидность и наличие файлов на стороне пользователя. Ссылка может быть пустая.
    URL to self-update – ссылка на новую версию апдейтера. По этой ссылке апдейтер будет скачивать самообновление. Сигналом того, что на стороне сервера версия новее, чем у пользователя, является дата файла на веб-сервере. Эта ссылка может быть пустая.

    Заместо example.org мы указываем свою ссылку.
    ВАЖНО: все сылки которые прописываете должны иметь протокол HTTP, с HTTPS апдейтер работать не будет!

    Вкладка Run
    В этой вкладке производится настройка запуска игрового клиента.

    [​IMG]

    Program to run – относительный путь до исполняемого файла.
    Program parameters – параметры для запуска.
    close updater when program started – закрывать ли апдейтер после запуска игрового клиента.
    allow multiple program instances running – разрешить ли запускать несколько приложений игрового клиента.
    restore last updater folder – запоминать последний каталог, из которого был запущен апдейтер. В случае, если опция включена, закачка обновлений будет производится в последний рабочий каталог.
    allow to run program if files check failed – разрешить запуск клиента, даже если проверка файлов не была удачной.

    Вкладка Check
    В этой вкладке находятся настройки проверки валидности файлов апдейтером.

    [​IMG]

    Force full check of files every n day(s) – период, в который апдейтер будет принудительно перепроверять все файлы из патчлиста, если 0 – то опция отключена.
    force to reload patchlist on full check – загружать ли патчлист с веб-сервера, в случае полной проверки. Полная проверка может быть по запросу пользователя, либо по наступлению срока полной проверки, если такой выставлен.
    cache patches locally – включить локальное кэширование архивов патчей. В случае нарушения целостности клиента, апдейтер будет пытаться восстановить файл используя локальные архивы, и только потом внешний сайт.
    List of files that must be checked every updater run – список файлов, валидность которых необходимо проверять при каждом запуске апдейтера. Это может быть список особо критичных файлов, также в списке могут присутствовать файловые маски.
    List of files that updater can skip from check – список файлов, которые можно пропускать из проверки в случае их изменения, но в случае отсутствия, эти файлы всё равно будут восстановлены апдейтером. Сюда имеет смысл вносить, например, файлы первоначальных настроек, которые в будущем могут быть изменены в процессе эксплуатации игрового клиента пользователем. Список также поддерживает файловые маски.

    Сохраните все что выше написали одним из двух способов.

    1. Если Вы решили использовать настройки в отдельном файле, необходимо чтобы имя файла настроек совпадало с именем файла апдейтера

    [​IMG]

    [​IMG]

    2. Если же Вы хотите встроить настройки в сам апдейтер, тогда на стороне пользователя достаточно лишь одного исполняемого файла.

    [​IMG]

    Если вы ленивы и Вам в падлу делать Шаг 2 можно просто скачать любой апдейтер Запустить ConfigBuilder.exe Дальше выберите File - Open в появившемся окне выберите скаченный апдейтер. Просто поменяйте во вкладках Options, Run,
    Check, все на свою инфу.

    Для тех кто хочет иметь свой оригинальный апдейтер тогда:

    Шаг 3. Меняем картинки - инфу на свои.

    Запускаем Restorator.exe

    [​IMG]
    Дальше жмем

    Файл -> Открыть и открываем любой апдейтер.

    [​IMG]

    Папка RCData содержит 99% графические файлы, их мы будем заменять на свои.
    (имена заменяемых файлов должны быть такие же, как и у файлов внутри апдейтера)
    Разрешение картинок должно быть таким же, как и в апдейтере. Если разрешение отличается, то Вам нужно будет править TFORMMAIN в папке RCData апдейтера.
    Нажимаем F6, чтобы активировать режим редактирования.
    Дальше копируем параметры из options.xml в OPTIONS (RCData). Переключаемся на любой другой элемент, выскакивает диалог изменения - нажимаем "Да"

    [​IMG]

    TFORMMAIN - отвечает за положение графических элементов и текста в главном окне апдейтера
    Папки Точечный рисунок, Диалог, Строковая таблица, Курсор и Manifest можно удалить, они не используются апдейтером.

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

    [​IMG]
    Спасибо за внимание.
     

    Вложения:

  2. Webman

    Webman Developer

    Сообщения:
    702
    Симпатии:
    182
    Оффтоп
     
  3. SaInT.P

    SaInT.P

    Сообщения:
    1.270
    Симпатии:
    237
    не мог бы, скинуть обновлятор как на скрине?
     
  4. SaInT.P

    SaInT.P

    Сообщения:
    1.270
    Симпатии:
    237
  5. KapaT

    KapaT Эгоист

    Сообщения:
    1.983
    Симпатии:
    408
    Парни он еще не доделан, доделаю скину!
     
  6. SaInT.P

    SaInT.P

    Сообщения:
    1.270
    Симпатии:
    237
    KapaT, Благодарю
     
  7. -=Batista=-

    -=Batista=- Просвященный

    Сообщения:
    279
    Симпатии:
    73
    Напоминает статью с кс мании. Идея хорошая, но есть пара нюансов:

    1)Нужен хороший хост;
    2)Породит кучу ♥♥♥♥♥сборок;
    3)В нынешних реалиях такие сборки потеряли актуальность, ввиду того, что большинство файлов запаковали в архивы (хотя, часто бывают небольшие обновления)
     
  8. KapaT

    KapaT Эгоист

    Сообщения:
    1.983
    Симпатии:
    408
    1) +
    2) их так до фига
    3) Что мешает запаковать файлы в архив?
     
  9. Sergey Petrichenko

    Sergey Petrichenko

    Сообщения:
    111
    Симпатии:
    0
    Все таки выложили :).... Где же вы были 3 месяца назад? Я тогда 2 дня убил пока все настроил, теперь уже не нужно, но все равно +1
     
  10. mcrooff

    mcrooff

    Сообщения:
    2
    Симпатии:
    0
    KapaT, привет!братан скинь обновлятор как на скрине плиззз. ну или любой другой но без всяих реклам ссылок и т.д. спасибо заранее
     
  11. EXTM

    EXTM

    Сообщения:
    2
    Симпатии:
    0
    Подскажите, я никак не могу понять.
    Куда загружать файлы, которые должны с качаться в папку с игрой?
    Знаю, что на свой сервер. Но куда именно и каким образом они от туда с качаются, если в updat'оре не указывается откуда им качаться на компьютер.
     
  12. KapaT

    KapaT Эгоист

    Сообщения:
    1.983
    Симпатии:
    408
    EXTM,все указано и разжовано читаем внимательно
     
  13. EXTM

    EXTM

    Сообщения:
    2
    Симпатии:
    0
    KapaT, спасибо за статью.
    Внимательнее прочитал и разобрался, что к чему.
     
  14. KapaT

    KapaT Эгоист

    Сообщения:
    1.983
    Симпатии:
    408
    Вот мой апдейтер как просили.
     

    Вложения:

    • Updater.rar
      Размер файла:
      384,2 КБ
      Просмотров:
      44
    SaInT.P и Monomizer нравится это.