Echter DLC Unlocker für Steamworks
? Echte DLC-Freischaltung
? Inventaremulation
Konfigurationsloser Betrieb
Mehrere Installationsmethoden:
?️ Store-Modus
? Spielmodus
? Hook-Modus
? Proxy-Modus
? Laden Sie die neueste Version herunter
Thema im SmokeAPI-Forum
SmokeAPI ist ein DLC-Freischalter für die Spiele, die sich rechtmäßig in Ihrem Steam-Konto befinden. Es wird versucht, Spiele, die das Steamworks SDK verwenden, vorzutäuschen, dass Sie die gewünschten DLCs besitzen. Allerdings verändert SmokeAPI den Rest des Steamworks SDK nicht, sodass Funktionen wie Multiplayer, Erfolge usw. weiterhin voll funktionsfähig bleiben.
SmokeAPI zielt darauf ab, alle veröffentlichten SteamAPI-Versionen zu unterstützen. Wenn eine neue, nicht unterstützte Schnittstellenversion auftritt, wird auf die neueste unterstützte Version zurückgegriffen. Nachfolgend finden Sie eine Liste der unterstützten Schnittstellenversionen:
ISteamClient v6 – v20. (Versionen vor 6 enthielten keine DLC-bezogenen Schnittstellen)
ISteamApps v2 – v8. (Version 1 enthielt keine DLC-bezogenen Funktionen)
ISteamUser v12 – v21. (Versionen vor 12 enthielten keine DLC-bezogenen Funktionen)
ISteamInventory v1 – v3.
Steam-Inventar funktioniert aufgrund der benutzerdefinierten Implementierung und Online-Überprüfungen nicht in allen Spielen mit Steam-Inventar. Eine Liste der Spiele, bei denen die Inventaremulation nachweislich funktioniert, ist wie folgt:
Projekt Winter
Euro Truck Simulator 2
Hero Siege (wenn Sie EAC umgehen)
Warnung | Bitte führen Sie die Installation auf eigenes Risiko durch. Die Verwendung dieses Entsperrers führt zu einem Verstoß gegen eine oder mehrere Nutzungsbedingungen, was zum dauerhaften Verlust Ihres Kontos führen kann. |
SmokeAPI unterstützt zwei Hauptinstallationsmodi: Store -Modus und Game -Modus, die im nächsten Abschnitt beschrieben werden.
Notiz | Es ist zu beachten, dass die folgenden Anweisungen eine manuelle Installationsmethode beschreiben. Mit Koalageddon v2 können Sie von der automatischen Installation und GUI-Konfiguration profitieren. |
In diesem Installationsmodus wird SmokeAPI in den Steam-Prozess geladen, wodurch es alle Steam-Spiele beeinflussen kann.
Laden Sie die neueste Koaloader-Release-ZIP-Datei von Koaloader Releases herunter.
Entpacken Sie version.dll
aus dem Koaloader-Archiv von version-32
und legen Sie es im Steam-Verzeichnis [1] ab.
Erstellen Sie im Steam-Verzeichnis [1] die folgende Koaloader-Konfigurationsdatei:
Koaloader.config.json
{
"auto_load" : false ,
"targets" : [
" Steam.exe "
],
"modules" : [
{
"path" : " SmokeAPI.dll " ,
"required" : true
}
]
}
Laden Sie die neueste SmokeAPI-Release-ZIP-Datei von SmokeAPI Releases herunter.
Entpacken Sie steam_api.dll
aus dem SmokeAPI-Archiv, benennen Sie es in SmokeAPI.dll
um und legen Sie es im Steam-Verzeichnis [1] ab.
In diesem Installationsmodus wird SmokeAPI in einen Spielprozess geladen, wodurch es nur auf dieses bestimmte Spiel beschränkt ist. Dieser Modus selbst unterstützt zwei Modi: Hook-Modus und Proxy-Modus. Versuchen Sie zunächst, den Entsperrer im Hook-Modus zu installieren. Wenn es nicht funktioniert, versuchen Sie, es im Proxy-Modus zu installieren.
Laden Sie die neueste Koaloader-Release-ZIP-Datei von Koaloader Releases herunter.
Entpacken Sie aus dem Koaloader-Archiv version.dll
von Version 32/64, je nach Bitanzahl des Spiels, und platzieren Sie es neben der EXE-Datei des Spiels.
Laden Sie die neueste SmokeAPI-Release-ZIP-Datei von SmokeAPI Releases herunter.
Entpacken Sie aus dem SmokeAPI-Archiv steam_api.dll
/ steam_api64.dll
(abhängig von der Bitanzahl des Spiels), benennen Sie es in SmokeAPI.dll
um und platzieren Sie es neben der exe-Datei des Spiels.
Suchen Sie die Datei steam_api.dll
/ steam_api64.dll
im Spielverzeichnis und benennen Sie sie in steam_api_o.dll
“ / steam_api64_o.dll
um.
Laden Sie die neueste SmokeAPI-Release-ZIP-Datei von SmokeAPI Releases herunter.
Entpacken Sie steam_api.dll
/ steam_api64.dll
aus dem SmokeAPI-Archiv, abhängig von der Bitanzahl des Spiels, und platzieren Sie es neben der ursprünglichen Steam_api-DLL-Datei.
Wenn der Unlocker nicht wie erwartet funktioniert, lesen Sie bitte die allgemeinen Installationsanweisungen für den Unlocker vollständig durch, bevor Sie im SmokeAPI-Forumsthema Unterstützung suchen.
Notiz | Dieses Dokument beschreibt die Konfiguration für Version 2 von SmokeAPI. Die Dokumentation zur Version 1 finden Sie hier. |
SmokeAPI erfordert keine manuelle Konfiguration. Standardmäßig verwendet es die sinnvollsten Optionen und versucht, alle verfügbaren DLCs freizuschalten. Es kann jedoch Umstände geben, in denen Sie ein individuelleres Verhalten benötigen, z. B. die Deaktivierung bestimmter DLCs oder die selektive Aktivierung einiger weniger davon. In diesem Fall können Sie eine Konfigurationsdatei SmokeAPI.config.json verwenden, die Sie hier in diesem Repository oder in der Release-Zip finden. Um es zu verwenden, platzieren Sie es einfach neben der SmokeAPI-DLL. Es wird bei jedem Start eines Spiels oder Stores gelesen. Wenn die Konfigurationsdatei nicht vorhanden ist, werden die unten angegebenen Standardwerte verwendet. Es wird erwartet, dass die Konfigurationsdatei dem Json-Standard entspricht.
logging
Schaltet die Generierung einer SmokeAPI.log.log
-Datei um.
Typ | Boolescher Wert |
Standard | |
unlock_family_sharing
Nur Store-Modus . Schaltet die Umgehung der Familienfreigabe um, die es dem Ausleiher einer gemeinsam genutzten Bibliothek ermöglicht, Spiele zu starten und weiterzuspielen, während auch der Bibliotheksbesitzer spielt.
Typ | Boolescher Wert |
Standard | |
default_app_status
Diese Option legt das Standardverhalten beim Entsperren von DLCs fest.
Mögliche Werte |
| ||||
Typ | Zeichenfolge | ||||
Standard | |
override_app_status
Diese Option überschreibt den Status aller DLCs, die zu einer angegebenen App-ID [2] gehören.
Mögliche Werte | Ein Objekt mit Schlüssel-Wert-Paaren, wobei der Schlüssel der App-ID und der Wert dem App-Status entspricht. Mögliche App-Statuswerte werden in der Option |
Typ | Objekt |
Standard | |
override_dlc_status
Diese Option überschreibt den Status einzelner DLCs, unabhängig vom entsprechenden App-Status.
Mögliche Werte | Ein Objekt mit Schlüssel-Wert-Paaren, wobei der Schlüssel der App-ID und der Wert dem App-Status entspricht. Mögliche App-Statuswerte werden in der Option |
Typ | Objekt |
Standard | |
auto_inject_inventory
Schaltet um, ob SmokeAPI automatisch eine Liste aller registrierten Inventargegenstände einfügen soll, wenn ein Spiel das Benutzerinventar abfragt
Typ | Boolescher Wert |
Standard | |
extra_inventory_items
Eine Liste der Inventarartikel-IDs [2] , die zusätzlich zu den automatisch hinzugefügten Artikeln hinzugefügt werden.
Typ | Array (von Ganzzahlen) |
Standard | |
$version
Ein technischer Bereich, der für die Verwendung durch Tools wie GUI-Konfigurationseditoren reserviert ist. Ändern Sie diesen Wert nicht.
Typ | Ganze Zahl |
Standard | |
extra_dlcs
Sehen Sie sich an, wie SmokeAPI in Spielen mit einer großen Anzahl an DLCs funktioniert, um den Anwendungsfall dieser Option zu verstehen.
Mögliche Werte | Ein Objekt mit Schlüssel-Wert-Paaren, wobei der Schlüssel der App-ID und der Wert dem Objekt entspricht, das DLC-IDs enthält. Das Format ist das gleiche wie in der oben genannten GitHub-Konfiguration. |
Typ | Objekt |
Standard | |
store_config
Nur Store-Modus . Ein Objekt, das die für den Speichermodusbetrieb erforderlichen Offsets angibt. Die von der Remote-Quelle oder dem lokalen Cache abgerufene Konfiguration wird dadurch überschrieben. Ändern Sie diesen Wert nicht, es sei denn, Sie wissen, was Sie tun.
Typ | Objekt |
Standard | Siehe Online-Konfiguration |
{
"$version" : 2 ,
"logging" : true ,
"unlock_family_sharing" : true ,
"default_app_status" : " unlocked " ,
"override_app_status" : {
"1234" : " original " ,
"4321" : " unlocked "
},
"override_dlc_status" : {
"1234" : " original " ,
"4321" : " unlocked " ,
"5678" : " locked "
},
"auto_inject_inventory" : true ,
"extra_inventory_items" : [],
"extra_dlcs" : {
"1234" : {
"dlcs" : {
"56789" : " Example DLC 1 "
}
},
"4321" : {
"dlcs" : {
"98765" : " Example DLC 2 " ,
"98766" : " Example DLC 3 "
}
}
},
"store_config" : {
"client_engine_steam_client_internal_ordinal" : 12 ,
"steam_client_internal_interface_selector_ordinal" : 18 ,
"vstdlib_callback_address_offset" : 20 ,
"vstdlib_callback_data_offset" : 0 ,
"vstdlib_callback_interceptor_address_offset" : 1 ,
"vstdlib_callback_name_offset" : 4
}
}
Bei einigen Spielen, die über eine große Anzahl an DLCs verfügen, wird mit der Überprüfung des Besitzes begonnen, indem die Steamworks-API nach einer Liste aller verfügbaren DLCs abgefragt wird. Sobald das Spiel die Liste erhält, geht es jeden Gegenstand durch und überprüft den Besitz. Das Problem ergibt sich aus der Tatsache, dass die Antwort vom Steamworks SDK maximal 64 erreichen kann, je nachdem, wie viele nicht im Besitz des Benutzers befindliche DLCs. Um dieses Problem zu beheben, sendet SmokeAPI eine Webanfrage an die Steam-API, um eine vollständige Liste der DLCs zu erhalten, was in den meisten Fällen gut funktioniert. Leider löst selbst die Web-API nicht alle unsere Probleme, da sie nur DLCs zurückgibt, die im Steam-Store verfügbar sind. Das bedeutet, dass DLCs ohne spezielles Store-Angebot, wie zum Beispiel Vorbesteller-DLCs, weggelassen werden. Hier kommt die Konfigurationsoption extra_dlcs
ins Spiel. Dort können Sie die fehlenden DLC-IDs angeben und SmokeAPI stellt sie dem Spiel zur Verfügung. Dies führt jedoch dazu, dass eine manuelle Konfiguration erforderlich ist, was den Idealen dieses Projekts zuwiderläuft. Um dieses Problem zu beheben, ruft SmokeAPI auch eine manuell gepflegte Liste zusätzlicher DLCs ab, die in einem GitHub-Repository gespeichert sind. Der Zweck dieses Dokuments besteht darin, alle DLC-IDs zu enthalten, für die keine Steam-Store-Seite vorhanden ist. Dadurch kann SmokeAPI alle DLCs freischalten, ohne dass eine Konfigurationsdatei erforderlich ist. Melden Sie gerne im SmokeAPI-Forum Themenspiele mit mehr als 64 DLCs und DLCs ohne eigene Store-Seite. Sie werden zur Liste der fehlenden DLC-IDs hinzugefügt, um den konfigurationslosen Betrieb zu erleichtern.
CMake v3.24 (Stellen Sie sicher, dass cmake über Powershell verfügbar ist)
Visual Studio 2022 [3] .
Getestet auf Windows 11 SDK (10.0.22621.0) [3] .
Erstellen Sie das Projekt
.build.ps1 <arch> <config>
Wo
Bogen | |
config | |
Zum Beispiel:
.build.ps1 32 Debug
Dieses Projekt nutzt die in der KoalaBox-Readme-Datei angegebenen Open-Source-Projekte
Diese Software ist unter der Unlicense-Lizenz lizenziert, deren Bedingungen in UNLICENSE.txt verfügbar sind