Steamworks 的合法 DLC 解鎖器
?合法 DLC 解鎖
?庫存模擬
無配置操作
多種安裝方式:
?️ 商店模式
?遊戲模式
?掛鉤模式
?代理模式
?下載最新版本
SmokeAPI 論壇主題
SmokeAPI 是一款 DLC 解鎖器,適用於您 Steam 帳戶中合法擁有的遊戲。它試圖欺騙使用 Steamworks SDK 的遊戲,讓其相信您擁有所需的 DLC。然而,SmokeAPI 不會修改 Steamworks SDK 的其餘部分,因此多人遊戲、成就等功能仍保持完整功能。
SmokeAPI 旨在支援所有已發布的 SteamAPI 版本。當遇到新的、不受支援的介面版本時,它將回退到最新支援的版本。以下是支援的介面版本清單:
ISteamClient v6 — v20。 (6之前的版本不包含任何DLC相關介面)
ISteamApps v2 — v8。 (版本1不包含任何DLC相關功能)
ISteamUser v12 — v21。 (12之前的版本不包含任何DLC相關功能)
ISteamInventory v1 — v3。
由於自訂實施和線上檢查,Steam 庫存不適用於所有具有 Steam 庫存的遊戲。庫存模擬已被證明有效的遊戲清單如下:
冬季計劃
歐洲卡車模擬2
英雄圍攻(如果你繞過 EAC)
警告 | 請自行承擔安裝的風險。使用此解鎖器需要違反一項或多項服務條款,這可能會導致您的帳戶永久遺失。 |
SmokeAPI 支援 2 種主要的安裝模式:商店模式和遊戲模式,這將在下一節中介紹。
筆記 | 值得注意的是,以下說明描述的是手動安裝方法。透過使用 Koalgeddon v2,您可以受益於自動安裝和 GUI 配置。 |
在這種安裝模式下,SmokeAPI被載入到Steam進程中,這使得它能夠影響所有Steam遊戲。
從 Koaloader Releases 下載最新的 Koaloader 版本 zip。
從 Koaloader 檔案中解壓縮version-32
中的version.dll
,並將其放入 Steam 目錄[1]中。
在Steam目錄[1]中建立以下Koaloader設定檔:
Koaloader.config.json
{
"auto_load" : false ,
"targets" : [
" Steam.exe "
],
"modules" : [
{
"path" : " SmokeAPI.dll " ,
"required" : true
}
]
}
從 SmokeAPI Releases 下載最新的 SmokeAPI 版本 zip。
從 SmokeAPI 檔案中解壓縮steam_api.dll
,將其重新命名為SmokeAPI.dll
,並將其放入 Steam 目錄[1]中。
在此安裝模式下,SmokeAPI 會載入到遊戲進程中,這將其限制為僅限於該特定遊戲。此模式本身支援2種模式:hook模式和proxy模式。首先嘗試以掛鉤模式安裝解鎖器。如果不起作用,請嘗試以代理模式安裝。
從 Koaloader Releases 下載最新的 Koaloader 版本 zip。
根據遊戲位數,從 Koaloader 檔案中解壓縮版本 32/64 中version.dll
,並將其放置在遊戲 exe 檔案旁邊。
從 SmokeAPI Releases 下載最新的 SmokeAPI 版本 zip。
從 SmokeAPI 檔案中解壓縮steam_api.dll
/ steam_api64.dll
,根據遊戲位數,將其重命名為SmokeAPI.dll
,並將其放置在遊戲 exe 檔案旁。
在遊戲目錄中找到steam_api.dll
/ steam_api64.dll
文件,並將其重新命名為steam_api_o.dll
/ steam_api64_o.dll
。
從 SmokeAPI Releases 下載最新的 SmokeAPI 版本 zip。
從 SmokeAPI 檔案中解壓縮steam_api.dll
/ steam_api64.dll
,取決於遊戲位數,並將其放置在原始 steam_api DLL 檔案旁邊。
如果解鎖器未如預期運作,請先完整閱讀通用解鎖器安裝說明,然後再在 SmokeAPI 論壇主題中尋求支援。
筆記 | 本文檔描述了 SmokeAPI 版本 2 的配置。您可以在此處找到版本 1 文件。 |
SmokeAPI 不需要任何手動設定。預設情況下,它使用最合理的選項並嘗試解鎖所有可以解鎖的 DLC。但是,在某些情況下,您可能需要更多自訂行為,例如停用某些 DLC,或選擇性地僅啟用其中的幾個。在這種情況下,您可以使用設定檔 SmokeAPI.config.json,您可以在此儲存庫或發布 zip 中找到該檔案。要使用它,只需將其放在 SmokeAPI DLL 旁邊即可。每次啟動遊戲或商店時都會讀取該資訊。如果沒有配置文件,將使用下面指定的預設值。配置檔案應符合Json標準。
logging
切換SmokeAPI.log.log
檔案的產生。
類型 | 布林值 |
預設 |
|
unlock_family_sharing
僅限儲存模式。切換家庭共享旁路,使共享庫的借用者能夠在庫所有者也在玩遊戲時開始並繼續玩遊戲。
類型 | 布林值 |
預設 |
|
default_app_status
此選項設定預設的 DLC 解鎖行為。
可能的值 |
| ||||
類型 | 細繩 | ||||
預設 |
|
override_app_status
此選項會覆寫屬於指定應用程式 ID [2]的所有 DLC 的狀態。
可能的值 | 具有鍵值對的對象,其中鍵對應應用程式 ID,值對應應用程式狀態。可能的應用程式狀態值在 |
類型 | 目的 |
預設 |
|
override_dlc_status
此選項會覆寫各個 DLC 的狀態,無論對應的應用程式狀態為何。
可能的值 | 具有鍵值對的對象,其中鍵對應應用程式 ID,值對應應用程式狀態。可能的應用程式狀態值在 |
類型 | 目的 |
預設 |
|
auto_inject_inventory
當遊戲查詢用戶庫存時,切換 SmokeAPI 是否應自動注入所有已註冊庫存項目的列表
類型 | 布林值 |
預設 |
|
extra_inventory_items
除了自動注入的項目之外,還將新增庫存項目 ID [2]的清單。
類型 | 數組(整數) |
預設 |
|
$version
保留 GUI 設定編輯器等工具使用的技術領域。不要修改該值。
類型 | 整數 |
預設 |
|
extra_dlcs
請參閱 SmokeAPI 如何在具有大量 DLC 的遊戲中運作,以了解此選項的用例。
可能的值 | 具有鍵值對的對象,其中鍵對應於應用程式 ID,值對應於包含 DLC ID 的對象。格式與前面提到的 GitHub 配置中的格式相同。 |
類型 | 目的 |
預設 |
|
store_config
僅限儲存模式。指定儲存模式操作所需的偏移量的物件。它將覆蓋從遠端來源或本地快取獲取的配置。除非您知道自己在做什麼,否則請勿修改此值。
類型 | 目的 |
預設 | 查看線上配置 |
{
"$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
}
}
一些擁有大量 DLC 的遊戲透過查詢 Steamworks API 來取得所有可用 DLC 的清單來開始所有權驗證。一旦遊戲收到列表,它將檢查每個項目並檢查所有權。這個問題的根源在於 Steamworks SDK 的回應可能最多為 64,具體取決於用戶擁有多少無主 DLC。為了緩解這個問題,SmokeAPI 將向 Steam API 發出 Web 請求以獲取 DLC 的完整列表,這在大多數情況下都運作良好。不幸的是,即使是 Web API 也不能解決我們所有的問題,因為它只會返回 Steam 商店中可用的 DLC。這意味著沒有專門商店提供的 DLC(例如預購 DLC)將被排除在外。這就是extra_dlcs
配置選項發揮作用的地方。您可以在那裡指定那些缺少的 DLC ID,SmokeAPI 將使它們可供遊戲使用。然而,這引入了手動配置的需要,這違背了該專案的理想。為了解決這個問題,SmokeAPI 還將取得儲存在 GitHub 儲存庫中的手動維護的額外 DLC 清單。本文檔的目的是包含缺少 Steam 商店頁面的所有 DLC ID。這使得 SmokeAPI 無需任何設定檔即可解鎖所有 DLC。歡迎在 SmokeAPI 論壇主題遊戲中舉報擁有超過 64 個 DLC 的遊戲,以及擁有沒有專門商店頁面的 DLC 的遊戲。它們將被添加到缺少的 DLC ID 清單中,以促進無配置操作。
CMake v3.24(確保 cmake 可從 powershell 取得)
Visual Studio 2022 [3] 。
在 Windows 11 SDK (10.0.22621.0) [3]上測試。
建構專案
.build.ps1 <架構> <配置>
在哪裡
拱 |
|
配置 |
|
例如:
.build.ps1 32 調試
該專案利用了 KoalaBox 自述文件中指定的開源項目
該軟體根據 Unlicense 獲得許可,其條款可在 UNLICENSE.txt 中找到