Desbloqueador DLC legítimo para Steamworks
? Desbloqueio legítimo de DLC
? Emulação de inventário
Operação sem configuração
Vários métodos de instalação:
?️ Modo loja
? Modo de jogo
? Modo gancho
? Modo proxy
? Baixe a versão mais recente
Tópico do fórum SmokeAPI
SmokeAPI é um desbloqueador de DLC para jogos que pertencem legitimamente à sua conta Steam. Ele tenta falsificar jogos que usam o SDK do Steamworks, fazendo-os acreditar que você possui os DLCs desejados. No entanto, o SmokeAPI não modifica o restante do SDK do Steamworks, portanto, recursos como multijogador, conquistas, etc., permanecem totalmente funcionais.
SmokeAPI visa oferecer suporte a todas as versões SteamAPI lançadas. Quando encontrar uma versão de interface nova e sem suporte, ele recorrerá à versão mais recente com suporte. Abaixo está uma lista de versões de interface suportadas:
ISteamClient v6 — v20. (As versões anteriores à 6 não continham nenhuma interface relacionada ao DLC)
ISteamApps v2 — v8. (A versão 1 não continha nenhuma função relacionada ao DLC)
ISteamUser v12 — v21. (As versões anteriores à 12 não continham nenhuma função relacionada ao DLC)
ISteamInventory v1 — v3.
O inventário Steam não funciona em todos os jogos com inventário Steam devido à implementação personalizada e verificações online. Uma lista de jogos onde a emulação de inventário funciona é a seguinte:
Projeto Inverno
Simulador de caminhão europeu 2
Hero Siege (se você ignorar o EAC)
Aviso | Prossiga com a instalação por sua conta e risco. O uso deste desbloqueador implica a violação de um ou mais termos de serviço, o que pode resultar na perda permanente da sua conta. |
SmokeAPI suporta 2 modos principais de instalação: modo Loja e modo Jogo , que são descritos na próxima seção.
Observação | Vale a pena notar que as instruções a seguir descrevem um método de instalação manual . Você pode se beneficiar da instalação automática e da configuração da GUI usando o Koalageddon v2. |
Neste modo de instalação, o SmokeAPI é carregado no processo Steam, o que o torna capaz de afetar todos os jogos Steam.
Baixe o zip da versão mais recente do Koaloader em Koaloader Releases.
No arquivo Koaloader, descompacte version.dll
da version-32
e coloque-o no diretório Steam [1] .
No diretório Steam [1] crie o seguinte arquivo de configuração do Koaloader:
Koaloader.config.json
{
"auto_load" : false ,
"targets" : [
" Steam.exe "
],
"modules" : [
{
"path" : " SmokeAPI.dll " ,
"required" : true
}
]
}
Baixe o zip de versão mais recente do SmokeAPI em SmokeAPI Releases.
No arquivo SmokeAPI, descompacte steam_api.dll
, renomeie-o para SmokeAPI.dll
e coloque-o no diretório Steam [1] .
Neste modo de instalação, o SmokeAPI é carregado em um processo de jogo, o que o limita apenas a esse jogo específico. Este modo em si suporta 2 modos: modo gancho e modo proxy. Tente primeiro instalar o desbloqueador no modo gancho. Se não funcionar, tente instalá-lo em modo proxy.
Baixe o zip da versão mais recente do Koaloader em Koaloader Releases.
No arquivo Koaloader, descompacte version.dll
da versão 32/64, dependendo do número de bits do jogo, e coloque-o próximo ao arquivo exe do jogo.
Baixe o zip de lançamento mais recente do SmokeAPI em SmokeAPI Releases.
No arquivo SmokeAPI, descompacte steam_api.dll
/ steam_api64.dll
, dependendo do número de bits do jogo, renomeie-o para SmokeAPI.dll
e coloque-o próximo ao arquivo exe do jogo.
Encontre o arquivo steam_api.dll
/ steam_api64.dll
no diretório do jogo e renomeie-o para steam_api_o.dll
/ steam_api64_o.dll
.
Baixe o zip de lançamento mais recente do SmokeAPI em SmokeAPI Releases.
No arquivo SmokeAPI, descompacte steam_api.dll
/ steam_api64.dll
, dependendo do número de bits do jogo, e coloque-o próximo ao arquivo DLL steam_api original.
Se o desbloqueador não estiver funcionando conforme o esperado, leia completamente as instruções de instalação do desbloqueador genérico antes de procurar suporte no tópico do fórum SmokeAPI.
Observação | Este documento descreve a configuração da versão 2 do SmokeAPI. Você pode encontrar a documentação da versão 1 aqui. |
SmokeAPI não requer nenhuma configuração manual. Por padrão, ele usa as opções mais razoáveis e tenta desbloquear todos os DLCs que pode. No entanto, pode haver circunstâncias em que você precise de um comportamento mais personalizado, como desabilitar certos DLCs ou habilitar seletivamente apenas alguns deles. Neste caso você pode usar um arquivo de configuração SmokeAPI.config.json que você pode encontrar aqui neste repositório ou no zip de lançamento. Para utilizá-lo, basta colocá-lo próximo à DLL SmokeAPI. Ele será lido a cada lançamento de um jogo ou da loja. Na ausência do arquivo de configuração, os valores padrão especificados abaixo serão usados. Espera-se que o arquivo de configuração esteja em conformidade com o padrão Json.
logging
Alterna a geração de um arquivo SmokeAPI.log.log
.
Tipo | Booleano |
Padrão | |
unlock_family_sharing
Apenas modo de armazenamento . Alterna o desvio do Compartilhamento Familiar, que permite ao usuário de uma biblioteca compartilhada iniciar e continuar jogando quando o proprietário da biblioteca também estiver jogando.
Tipo | Booleano |
Padrão | |
default_app_status
Esta opção define o comportamento padrão de desbloqueio do DLC.
Valores possíveis |
| ||||
Tipo | Corda | ||||
Padrão | |
override_app_status
Esta opção substitui o status de todos os DLCs que pertencem a um ID de aplicativo especificado [2] .
Valores possíveis | Um objeto com pares chave-valor, onde a chave corresponde ao ID do aplicativo e o valor ao status do aplicativo. Os possíveis valores de status do aplicativo são definidos na opção |
Tipo | Objeto |
Padrão | |
override_dlc_status
Esta opção substitui o status de DLCs individuais, independentemente do status do aplicativo correspondente.
Valores possíveis | Um objeto com pares chave-valor, onde a chave corresponde ao ID do aplicativo e o valor ao status do aplicativo. Os possíveis valores de status do aplicativo são definidos na opção |
Tipo | Objeto |
Padrão | |
auto_inject_inventory
Alterna se o SmokeAPI deve injetar automaticamente uma lista de todos os itens de inventário registrados, quando um jogo consulta o inventário do usuário
Tipo | Booleano |
Padrão | |
extra_inventory_items
Uma lista de IDs de itens de inventário [2] que serão adicionados além dos itens injetados automaticamente.
Tipo | Matriz (de inteiros) |
Padrão | |
$version
Um campo técnico reservado para uso por ferramentas como editores de configuração de GUI. Não modifique este valor.
Tipo | Inteiro |
Padrão | |
extra_dlcs
Veja Como o SmokeAPI funciona em jogos com grande número de DLCs para entender o caso de uso desta opção.
Valores possíveis | Um objeto com pares chave-valor, onde a chave corresponde ao ID do aplicativo e o valor ao objeto que contém IDs de DLC. O formato é o mesmo da configuração do GitHub mencionada acima. |
Tipo | Objeto |
Padrão | |
store_config
Apenas modo de armazenamento . Um objeto que especifica os deslocamentos necessários para a operação no modo de armazenamento. Ele substituirá a configuração obtida da fonte remota ou do cache local. Não modifique esse valor a menos que você saiba o que está fazendo.
Tipo | Objeto |
Padrão | Veja a configuração on-line |
{
"$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
}
}
Alguns jogos que possuem um grande número de DLCs iniciam a verificação de propriedade consultando a API do Steamworks para obter uma lista de todos os DLCs disponíveis. Assim que o jogo receber a lista, ele examinará cada item e verificará a propriedade. O problema surge do fato de que a resposta do SDK do Steamworks pode atingir o máximo de 64, dependendo de quantos DLCs não proprietários o usuário possui. Para aliviar esse problema, a SmokeAPI fará uma solicitação web à API Steam para obter uma lista completa de DLCs, o que funciona bem na maioria das vezes. Infelizmente, mesmo a API web não resolve todos os nossos problemas, pois só retornará DLCs que estão disponíveis na loja Steam. Isso significa que DLCs sem oferta de loja dedicada, como DLCs pré-encomendados, ficarão de fora. É aí que a opção de configuração extra_dlcs
entra em ação. Você pode especificar os IDs de DLC ausentes e o SmokeAPI os disponibilizará para o jogo. Porém, isso introduz a necessidade de configuração manual, o que vai contra os ideais deste projeto. Para solucionar esse problema, o SmokeAPI também buscará uma lista mantida manualmente de DLCs extras armazenados em um repositório GitHub. O objetivo deste documento é conter todos os IDs de DLC que não possuem uma página da loja Steam. Isso permite que o SmokeAPI desbloqueie todos os DLCs sem nenhum arquivo de configuração. Sinta-se à vontade para relatar no tópico do fórum SmokeAPI jogos que possuem mais de 64 DLCs e que possuem DLCs sem uma página de loja dedicada. Eles serão adicionados à lista de IDs de DLC ausentes para facilitar a operação sem configuração.
CMake v3.24 (certifique-se de que o cmake esteja disponível no PowerShell)
Visual Studio 2022 [3] .
Testado no SDK do Windows 11 (10.0.22621.0) [3] .
Construa o projeto
.build.ps1 <arch> <config>
onde
arco | |
configuração | |
Por exemplo:
.build.ps1 32 Depurar
Este projeto faz uso dos projetos de código aberto especificados no Leiame do KoalaBox
Este software está licenciado sob Unlicense, cujos termos estão disponíveis em UNLICENSE.txt