Jump to content
Korean Random
Mixaill

OpenWG.Utils: комплект полезняшек для InnoSetup (и не только)

Recommended Posts

Описание

 

Библиотека предзназначенная для облегчения написания установщиков модификаций для WoT.

 

Основная функция -- поиск клиентов игры и получение информации о них (версия, локаль, реалм и прочее) а также помощь в разграничении контента для Wargaming/Lesta клиентов.

 

Однако, есть и другие фишки, такие как:

  • распаковка BigWorld XML
  • работа с JSON
  • конвертация PNG -> BMP
  • поиск запущенных процессов в каталоге и их завершение
  • отображение сплэшскрина
  • замена в строке по регулярному выражению
  • детектирование Wine
  • поиск клиентов
    • WGC / Steam / 360 / LGC
    • Получение предпочительного клиента (текущий выбранный в WGC)
  • работа с клиентом
    • получение версии клиента и ее сверка по регулярному выражению
    • получение версии исполняемого файла клиента
    • получение реалма (EU/NA/ASIA/CN/RU)
    • получение типа по контенту (SD/HD)
    • получение типа лаунчера (WGC/Steam/360/LGC)
    • получение типа релиза (Release/Common Test/Super Test/Sandbox)
    • получение пути до активного в клиенте mods/res_mods
    • получение языка клиента
    • детектирование запуска и завершение клиента

 

 

Как пользоваться 

1) скачиваем

 

2) из комплекта поставки утягиваем два файла

  • bin/openwg.utils.x86_32.dll
  • innosetup/openwg.utils.iss

 

3) в своем корневом .iss файле прописываете

#define OPENWGUTILS_DIR_SRC    "bin"
#define OPENWGUTILS_DIR_UNINST APP_DIR_UNINST
#include "openwg.utils.iss"

где

  • OPENWGUTILS_DIR_SRC -- путь к каталогу куда вы положили .dll
  • OPENWGUTILS_DIR_UNINST  -- путь к каталогу файла деинсталляции относительно {app}, в подавляющем большинстве случаев должен совпадать с UninstallFilesDir

 

4)  изучаем пример в innosetup_demo/openwg_utils_demo.iss и вызываем нужные вещи, подробности вызова можно подсмотреть в openwg.utils.iss и  в *.h файлах в каталоге include

 

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

 

Название Сопровождающий Ссылка
XVM.Installer v1 @Mixaill https://gitlab.com/xvm/xvm/-/tree/master/src/installer
XVM.Installer v2 @ktulho https://gitlab.com/xvm/xvm.installer
Protanki @Yusha https://protanki.tv/
Jove's @phantasm https://joves-modpack.ru/
KorbenTeam @phantasm https://korbenteam.org/modpack
Amway921 @AtotIK https://wgmods.net/95/
Vspishka @AtotIK https://wgmods.net/131/
WGMods @AtotIK https://wgmods.net/16/ , RIP начиная с WoT 1.19.0 🥲
LeBwa team @POLIROID https://lebwa.tv/hub/modpack-lebwa-team
Tomato.gg @POLIROID https://wgmods.net/6391/
    напишите в комментариях если про вас забыл/не знал

 

 

Скачать

OpenWG.Utils_v2023.09.21.1.zip

 

Исходный код

https://gitlab.com/openwg/openwg.utils

 

История версий

  • v2022.12.04.1
    • первая для широкой публики
  • v2023.03.17.1
    • переработано API для взаимодействия с JSON
  • v2023.03.18.1
    • добавлены функции `JSON_SetDouble()`, `JSON_SetInteger()`, `JSON_SetString()`
  • v2023.03.18.2
    • исправлена потеря комментариев в JSON-файлах
  • v2023.08.01.1
    • исправлено дублирование клиентов WoT/МТ в случае если регистр имени каталога в файловой системе отличался от такового в конфигурационных файлах WGC/LGC
  • v2023.09.01.1
    • добавлены фукнции `JSON_ContainsKey()`, `JSON_GetString()`
  • v2023.09.17.1
    •  добавлены функции WWISE_OpenFile(), WWISE_CloseFile(), WWISE_Close(), WWISE_LicenseGet(), WWISE_LicenseSet()
  • v2023.09.21.1

    •  добавлены конвертеры лицензий WWISE-файлов в виде exe-файлов: wwise_convert_to_unlicensed, wwise_convert_to_wg

Edited by Mixaill
  • Upvote 14

Share this post


Link to post

Short link
Share on other sites

Немного обновлений:

  • v2023.03.17.1
    • переработано API для взаимодействия с JSON
  • v2023.03.18.1
    • добавлены функции `JSON_SetDouble()`, `JSON_SetInteger()`, `JSON_SetString()`
  • v2023.03.18.2
    • исправлена потеря комментариев в JSON-файлах
  • v2023.08.01.1
    • исправлено дублирование клиентов WoT/МТ в случае если регистр имени каталога в файловой системе отличался от такового в конфигурационных файлах WGC/LGC
  • v2023.09.01.1
    • добавлены фукнции `JSON_ContainsKey()`, `JSON_GetString()`

 

 

Планы на будущее:

* распаковка BWXML в буфер

* смена лицензии банка WWise

Edited by Mixaill
  • Upvote 3

Share this post


Link to post

Short link
Share on other sites

Немного обновлений:

 

 v2023.09.17.1

* добавлены функции
   * WWISE_OpenFile()
   * WWISE_CloseFile()
   * WWISE_Close()
   * WWISE_LicenseGet() //0 - хз/битая банка, 1 - нет лицензии, 2 - лицензия ВГ
   * WWISE_LicenseSet()

 

 

примерный сценарий использования

procedure unlicense_bank(path:String);
var
  Handle: Integer;
begin
  Handle := WWISE_OpenFile(path);
  if WWISE_LicenseGet(Handle) = 2 then
  begin
     WWISE_LicenseSet(Handle, 1)
     WWISE_SaveFile(Handle, path)
  end;
  WWISE_Close(Handle);
end;

лицензию можно менять как в сторону нет -> WG, так и WG -> нет

 

Планы на будущее:

* распаковка BWXML в буфер

* смена лицензии на банки внутри вотмода без ручной распаковки и запаковки

* вынос менялки лицензии в консольную утилиту

Edited by Mixaill
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

v2023.09.21.1

* добавлены конвертеры лицензий в виде exe-файлов (достаточно перетянуть банки на ехешку)

  *  wwise_convert_to_unlicensed - конвертирует банки в Леста-совместимые

  *  wwise_convert_to_wg - конвертирует банки в ВГ-совместимые

 

 

OpenWG.Utils_v2023.09.21.1.zip

Edited by Mixaill
  • Upvote 12

Share this post


Link to post

Short link
Share on other sites
12.09.2023 в 15:52, Mixaill сказал:

Немного обновлений:

  • v2023.03.17.1
    • переработано API для взаимодействия с JSON
  • v2023.03.18.1
    • добавлены функции `JSON_SetDouble()`, `JSON_SetInteger()`, `JSON_SetString()`
  • v2023.03.18.2
    • исправлена потеря комментариев в JSON-файлах
  • v2023.08.01.1
    • исправлено дублирование клиентов WoT/МТ в случае если регистр имени каталога в файловой системе отличался от такового в конфигурационных файлах WGC/LGC
  • v2023.09.01.1
    • добавлены фукнции `JSON_ContainsKey()`, `JSON_GetString()`

 

 

Планы на будущее:

* распаковка BWXML в буфер

* смена лицензии банка WWise

 

Подскажите пожалуйста как сделать так что бы всегда определялся и подставлялся клиент Лесты а не WG . Просто у меня два клиента леста и евро стоят и всегда первым делом в автоматическом поиске игры подставляется Евро клиент. А мне нужно что бы Леста была. Что мне сделать нужно. Не как самостоятельно разобраться не получается. Подскажите пожалуйста. нужно что бы всегда выбиралось первым делом так как на скреншоте 

Screenshot_1.png.181f6efa203d679b35e581917bbd18e5.png

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...