Instalátor pro hry na EGS

Jetro

7. úroveň
Překladatel
Dárce portálu PH
85%
Příspěvků
1.470
Řešení
1
Skóre reakcí
2.805
Bodů
1.697
Ahoj, neřešil jste už někdo vlastní instalátor pro hry na Epic Games Store? Používám NSIS s upraveným skriptem, který nemá problém s hrami na Steamu a Uplay. Hru si najde podle záznamu v registru a uživateli nabídne instalaci s přednastavenou cestou. Problém je s hrami na EGS, kde žádný takový unikátní záznam v registrech, podle kterého by si instalátor dokázal zjistit, kde je hra nainstalovaná, nemůžu najít. Nemá s tím někdo zkušenosti? Díky.
 
Řešení
Ja som Epic neriešil a zisťujem, že to bude komplikovanejšie, než čítať registre.

Z registrov bude potrebné načítať hodnotu z:
64bit OS = "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Epic Games\EpicGamesLauncher\AppDataPath"

32bit OS (len tipujem) = "HKEY_LOCAL_MACHINE\SOFTWARE\Epic Games\EpicGamesLauncher\AppDataPath"

Tak nájdeš adresár, kam si Epic Launcher ukladá info o nainštalovaných hrách. (u mňa C:\ProgramData\Epic\EpicGamesLauncher\Data\)

V tom adresári sa nachádza adresár "Manifests" a v ňom sú jednotlivé manifesty nainštalovaných hier.
Takže budeš potrebovať zistiť, ktorý .item súbor patrí ku ktorej hre. Nie je to ťažké, lebo .item = JSON formát.

Pozn. Možno je táto cesta k manifestom u každého rovnaká. Ak by...

MerlinSVK

Nováček
61%
Příspěvků
415
Řešení
3
Skóre reakcí
30
Bodů
301
Ja som Epic neriešil a zisťujem, že to bude komplikovanejšie, než čítať registre.

Z registrov bude potrebné načítať hodnotu z:
64bit OS = "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Epic Games\EpicGamesLauncher\AppDataPath"

32bit OS (len tipujem) = "HKEY_LOCAL_MACHINE\SOFTWARE\Epic Games\EpicGamesLauncher\AppDataPath"

Tak nájdeš adresár, kam si Epic Launcher ukladá info o nainštalovaných hrách. (u mňa C:\ProgramData\Epic\EpicGamesLauncher\Data\)

V tom adresári sa nachádza adresár "Manifests" a v ňom sú jednotlivé manifesty nainštalovaných hier.
Takže budeš potrebovať zistiť, ktorý .item súbor patrí ku ktorej hre. Nie je to ťažké, lebo .item = JSON formát.

Pozn. Možno je táto cesta k manifestom u každého rovnaká. Ak by bola, tak netreba čítať registre, ale stačí rovno čítať JSON súbor: $APPDATA\Epic\EpicGamesLauncher\Data\Manifests\__HASH_HRY__.item

V tom .item súbore je parameter "InstallLocation", kde sa (KONEČNE!) dozvieš, kde je reálne hra uložená.

---- TLDR; ----
  1. NSIS číta value z registra: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Epic Games\EpicGamesLauncher\AppDataPath
  2. NSIS parsuje obsah JSON súboru, príklad: C:\ProgramData\Epic\EpicGamesLauncher\Data\Manifests\CEC32ADC4F21045242353C9E0E652520.item (to je pre The Division 2)
  3. NSIS načíta z JSONu hodnotu "InstallLocation"

Čítať JSON v NSIS som ale neskúšal.
 
Komentář
Řešení

Jetro

7. úroveň
Překladatel
Dárce portálu PH
85%
Příspěvků
1.470
Řešení
1
Skóre reakcí
2.805
Bodů
1.697
Díky, Merline, tohle už je pro mě "vyšší dívčí", takže tvé poznatky předám dál, snad se zadaří.
 
Komentář

Top