1. 游客, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

Launcher-Updater для MMORPG

本贴由 HammerJade2017-07-30 发布. 版块名称: Услуги

  1. TopicStarter Overlay

    HammerJade Пользователи

    帖子:
    36
    支持:
    17
    性别:
    Репутация:
    0
    Выкладываю демку лаунчера-апдейтера https://goo.gl/dpCfjB. используется консольный тип входа в игру, соответственно подходит для игр (La2, Aion, PW, JD и т.д.). Все вопросы в вк https://goo.gl/AadFaA. Лаунчер написан с нуля на c# wpf
    [​IMG]
    已获得Kreinins的支持.
  2. california Пользователи

    帖子:
    219
    支持:
    76
    Репутация:
    -3
    Страна:
    Zimbabwe Zimbabwe
    Без обид, но внешне шлак
  3. LiptoN[Triton] Пользователи

    帖子:
    441
    支持:
    209
    性别:
    Репутация:
    2
    Страна:
    Russian Federation Russian Federation
    Личку бы хоть открыл, раз хочешь вопросы в ВК принимать...|-(
  4. TopicStarter Overlay

    HammerJade Пользователи

    帖子:
    36
    支持:
    17
    性别:
    Репутация:
    0
    Сори, открою, я забыл что она закрыта
  5. TopicStarter Overlay

    HammerJade Пользователи

    帖子:
    36
    支持:
    17
    性别:
    Репутация:
    0
    Кому шлак, кому нет, внешку сменить не проблема, как не крути, этот скин все равно не останется, разные сервера, разные дизайны(я покуда занят кодом, на дизайн времени нету)
    已获得california的支持.
  6. Фрэнк Кастл Пользователи

    帖子:
    24
    支持:
    7
    性别:
    Репутация:
    0
    Да ты не 1 такой:D
    [​IMG]
    Что он умеет делать?(Твой лаунчер)
  7. TopicStarter Overlay

    HammerJade Пользователи

    帖子:
    36
    支持:
    17
    性别:
    Репутация:
    0
    Качать и устанавливать обновы, всё остальное в демке
    --- добавлено: 1 авг 2017 в 16:56 ---
    немного повозился с оформлением [​IMG]
    Последнее редактирование модератором: 2017-08-09
  8. TopicStarter Overlay

    HammerJade Пользователи

    帖子:
    36
    支持:
    17
    性别:
    Репутация:
    0
    Добавил новую функцию, после загрузки лаунчера, появляется сообщение в системном диалоговом окне с текстом который напишет админ сервера в соответствующем месте, файла апдейта, проверка идёт по версии новости на локалке и сервере(не будет выскакивать постоянно), полезно для важных обьявлений
    [​IMG]
    已获得Фрэнк Кастл的支持.
  9. LiptoN[Triton] Пользователи

    帖子:
    441
    支持:
    209
    性别:
    Репутация:
    2
    Страна:
    Russian Federation Russian Federation
    По-моему, такое есть в Config.pck, там какой то файл отвечает за вывод новостей в выборе персонажей.
  10. TopicStarter Overlay

    HammerJade Пользователи

    帖子:
    36
    支持:
    17
    性别:
    Репутация:
    0
    Возможно, не знаю, но как я подметил в самом начале этот лаунчер предусмотрен не только для пв и jd, лично по мне так удобнее, но это лично моё мнение без колупания архивов игры
  11. Фрэнк Кастл Пользователи

    帖子:
    24
    支持:
    7
    性别:
    Репутация:
    0
    Интересная идея. Добавлю себе такую)
    А обновление по какому алгоритму идёт? Если не секрет. Скачивание архива->удаление старых файлов->распаковка новых->обновление версии->готово?
  12. TopicStarter Overlay

    HammerJade Пользователи

    帖子:
    36
    支持:
    17
    性别:
    Репутация:
    0
    Да именно так, я в сфере си шарп не так давно, потому еще не вкурил потоковой загрузки и проверки хеш, в инете инфи на счёт этого очень мало, те исходники апдейтера что удалось найти для примера, кривые
  13. JoLan Команда форума Администратор AngeliCore Программист

    帖子:
    1,061
    支持:
    948
    性别:
    Репутация:
    6
    Команда:
    AngeliCore
    Страна:
    Russian Federation Russian Federation
    У патчера вполне простой алгоритм. Опишу то, что сам пытался несколько раз делать:
    1. скачивание файла version
    2. если версия больше, чем в клиенте, то:
    2.1.1. скачивание списков обновлений от следующей версии до последней
    - Например текущая == 2, новая == 5 -> качает списки 3, 4, 5 и т.п.
    2.1.2. выделение файлов для обновления*
    2.1.3. в цикле скачивание файла по http протоколу
    2.1.4. распаковка локального файла в оперативку и рассчёт md5-суммы файла
    2.1.5. если md5 локального и скачанного не совпали, то добавить новый файл в архив
    - md5 скачанного файла хранится в самом списке обновления, чтобы не тратить время на подсчёт
    - но с другой стороны доп. рассчёт md5 скачанного файла однозначно информирует, скачан ли файл корректно
    иначе
    2.2. иначе очистка памяти, включение кнопки "играть"

    С полной проверкой тот же самый алгоритм, за исключеним того, что локальная версия форсированно передаётся "1"

    Чуть более стабильный алгоритм патчера:
    1. скачивание файла version
    2. если версия больше, то:
    2.1.1. скачивание списков обновлений
    2.1.2. выделение файлов для обновления*
    2.1.3. в цикле по списку подсчитываются контрольные суммы локальных файлов с занесением файлов в список на скачивание, если md5 не совпали
    2.1.4. в цикле скачивание файлов из списка на скачивание (тут же проверка md5 скачанного файла)
    2.1.5. в цикле добавление всех скачанных файлов в игровые архивы
    2.2. иначе очистка памяти, включение кнопки "играть"

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

    *Алгоритм выделения списка файлов для скачивания
    /!\ Achtung! Применяется только в случае непоследовательного обновления, если есть несколько патчей сразу:
    - Обратный цикл по спискам, начиная с предпоследнего до первого включительно**:
    - - Прямой цикл от первого до последнего файла в списка:
    - - - Если файл из последнего списка отсутствует в текущем списке, то добавляем его в последний список обновления

    **Почему с предпоследнего? Потому что в последний список мы будем собирать полный список файлов из нескольких списков.

    Так же к этому патчеру нужно будет написать билдер, который соберёт информацию о файлах и запишет её в списки для обновления.
    已获得Фрэнк Кастл的支持.
  14. Фрэнк Кастл Пользователи

    帖子:
    24
    支持:
    7
    性别:
    Репутация:
    0
    Полезная инфа! Я в начале скачивал строку с хоста из version(что бы не качать файл), потом пришел к выводу, что проще качать файл(для работы с массивами). Ещё проблема запуска игры: если патчер не лежит в директории с elementclient.exe, то запустить не получается, выдаёт ошибку.
    Сейчас будет проблема с обновлением иконок кланов, т.е. работа с PCK)
  15. ExeMan Пользователи

    帖子:
    15
    支持:
    2
    性别:
    Репутация:
    0
    Команда:
    Insane
    Страна:
    Russian Federation Russian Federation
    Process process = new Process();
    process.StartInfo.WorkingDirectory = "путь к папке";
    process.StartInfo.FileName = "имя файла";
    process.Start(); // запуск

    и не будет ошибки
    已获得Фрэнк Кастл的支持.
  16. TopicStarter Overlay

    HammerJade Пользователи

    帖子:
    36
    支持:
    17
    性别:
    Репутация:
    0
    Решил не морочиться с билдером и взял существующий, тут появилась проблема(при чтении одного атрибута, качает, но когда пытается скачать 2 и больше файла по атрибутам, вылазит ошибка "удаленный сервер возвратил ошибку (403) запрещено"), не имеет значения, чтение патч листа идёт с локалки или сервере, ошибка та же, что может быть?
  17. Фрэнк Кастл Пользователи

    帖子:
    24
    支持:
    7
    性别:
    Репутация:
    0
    От души!) Всё работает.
    А по поводу работы с PCK, есть догадки? Смотрел структуру от Kn1fe, но как-то не понял...
  18. TopicStarter Overlay

    HammerJade Пользователи

    帖子:
    36
    支持:
    17
    性别:
    Репутация:
    0
    Немного изменил выводимое сообщение, думаю так более актуально
    [​IMG][​IMG]
  19. TopicStarter Overlay

    HammerJade Пользователи

    帖子:
    36
    支持:
    17
    性别:
    Репутация:
    0
    И еще дополнил, при наводке мышкой на иконку появляется сообщение, а при двойном клике переход по ссылке указанной в патч листе на сервере(ссылки можно подгонять под выводимые новости)
    [​IMG][​IMG]
  20. TopicStarter Overlay

    HammerJade Пользователи

    帖子:
    36
    支持:
    17
    性别:
    Репутация:
    0
    У многих лаунчеров офф присутствуют трейлеры и я решил сделать, кстати на второй картинке справа внизу видно сделал проверку(находится ли лаунчер в папку или нет, если нет то появляется сообщение с просьбой переместить"если фиг его знает как, то есть ссылка на руководство")
    [​IMG][​IMG]
    [​IMG][​IMG]
Черновик сохранён Черновик удалён

分享此页面