Documentação do Steamworks
TradeSetOwned/v0001
Chamado quando o servidor de economia Steam precisa remover um ativo ou valor de uma moeda do inventário de um usuário, deixando-o sem proprietário. Cabe ao servidor de ativos verificar que esta é uma alteração permitida a este tipo de ativo ou moeda, verificando se o bem realmente não tem proprietário, que o ativo ou moeda é trocável e que o valor solicitado está presente.

Para ativos agrupáveis e moedas, é possível que a requisição informe um valor menor que o que foi definido como sem proprietário. Nesse caso, o ativo ou moeda sem proprietário deve ter o valor decrementado e um novo ativo deve ser criado.

Isso ocorrerá se tiver um item agrupável que pode ser anunciado no Mercado da Comunidade. Por exemplo, se alguém colocar um grande agrupamento de itens em um único anúncio do Mercado, então várias compras pequenas podem ser recebidas.

O servidor de bens receberá uma chamada ao método TradeSetUnowned quando o anúncio for criado e uma chamada ao método TradeSetOwned por cada compra. Quando alguém realizar a primeira compra do anúncio no Mercado, o valor do parâmetro audit_reference na chamada ao método TradeSetOwned será igual ao valor do parâmetro audit_reference da chamada ao método TradeSetUnowned. Compras futuras do anúncio terão valores diferentes para audit_reference, mas ainda farão referência ao mesmo assetid. Se o anúncio for cancelado, o valor do parâmetro audit_reference na chamada resultante ao método TradeSetOwned será diferente do usado em outras chamadas ao método TradeSetOwned, logo não necessariamente será igual ao valor usado na chamada ao método TradeSetUnowned no momento da criação do anúncio.

Chamado por: Sistema de trocas

Método HTTP: POST

Parâmetros:

NomeTipoObrigatórioDescrição
keystringEsta é a "Chave do servidor de ativos" fornecida nas "Configurações da economia Steam" do aplicativo do site do parceiro.
appiduint32O AppID de 32 bits do aplicativo associado aos ativos.
owneruint64O ID Steam de 64 bits do novo proprietário do ativo ou da moeda.
contextiduint64O ID de 64 bits do contexto no qual o ativo ou a moeda pode ser encontrado(a).
assetiduint64O ID de 64 bits do ativo a ser transferido. Se definido, assetid não deve ser definido para indicar qual tipo de objeto deve ter o proprietário adicionado.
currencyiduint32O ID de 32 bits da moeda a ser removida. Se definido, currencyid não deve ser definido para indicar qual tipo de objeto deve ter o proprietário adicionado.
amountuint32A quantidade do ativo ou da moeda a transferir. Sempre será 1 para ativos não agrupáveis.
Sempre será menor ou igual à quantidade que o servidor de Economia Steam acredita estar presente para o ativo/moeda neste contexto. Padrão: 1.
trade_start_timeuint32O horário de início da sessão de troca responsável pela ação. O horário é expressado como segundos desde 01/01/1970.
audit_actionuint32O ID de 32 bits que especifica o tipo de ação que está fazendo com que este ativo ou moeda tenha o proprietário adicionado.
audit_referenceuint64O ID de 64 bits que identifica o evento associado à ação. O servidor de ativos pode escolher armazenar este ID em um relatório de auditoria ou depuração.
leave_originalboolSe esse parâmetro booleano contiver o valor 1 (verdadeiro), então o servidor de ativos está sendo requisitado a duplicar o item e criar um item que é uma cópia do bem processado, com proprietário. Será verdadeiro apenas para reversões unilaterais de uma troca por um agente de suporte. Padrão: 0 (falso).
request_repeatedboolSe contiver o valor 1 (verdadeiro), então o servidor de economia está indicando que realizou uma requisição idêntica a esta no passado, mas não recebeu uma resposta clara de sucesso ou falha. Se parecer que o bem ou moeda já teve o proprietário adicionado para os parâmetros audit_action e audit_reference informados, o servidor de ativos deve retornar sucesso e definir new_assetid e new_contextid aos valores retornados na primeira requisição.
is_marketboolSe contiver o valor 1 (verdadeiro), então a requisição foi realizada em resposta a uma atividade no Mercado da Comunidade Steam. Se audit_action contiver o valor 101 (efetivação de troca), indica que o usuário comprou o item. Se audit_action contiver o valor 102, indica que o usuário está cancelando o anúncio no Mercado da Comunidade ou o item foi devolvido ao usuário devido a um erro durante a criação do anúncio.

Retorna

A saída deste método deve ser codificada no formato JSON.

Resposta:
  • result
    • success — True se bem-sucedida. Se o servidor de ativos está retornando false, o parâmetro error deve conter uma string com o motivo.
    • error — Uma string que descreve o motivo da falha da chamada. A mensagem será armazenada no relatório de erro, disponível na aba Economia do painel de administração de aplicativo no site do Steamworks.
    • new_assetid (opcional) — O ID de 64 bits da versão sem proprietário do ativo. Usado apenas em transferências de ativos. Pode conter um novo ID de ativo ou o mesmo ID de ativo especificado na requisição, dependendo da implementação do servidor de ativos.
      Padrão: O mesmo ID de ativo passado para o método.

      AVISO: Para o propósito de auditoria, recomendamos que implementações de servidores de ativos criem uma nova cópia do ativo e retornem o novo ID de ativo na resposta ao método TradeSetOwned. Descobrimos que isso também ajuda a evitar bugs, já que um ativo que é excluído/fica sem proprietário fica nesse estado para sempre. Ter alguma forma de associar os ativos novos e antigos (por exemplo, preservar o "ID do ativo original" de quando o ativo foi criado no jogo pela primeira vez) também pode ser útil. Nada disso é obrigatório, mas é algo que descobrimos ser útil.
    • new_contextid (opcional) — O ID de 64 bits do contexto que contém a nova versão com proprietário do ativo ou moeda. Pode ser um ID de contexto diferente ou o mesmo ID de contexto especificado na requisição, dependendo da implementação do servidor de ativos. Padrão: O mesmo ID de contexto passado para o método.

Ações de auditoria

A lista atual de ações de auditoria que podem ser passadas com esse método. Novos tipos de auditoria podem ser adicionados à lista a qualquer momento, então servidores de bens devem estar preparados para tratar qualquer número sem sinal de 32 bits como uma ação de auditoria.
  • 101 — Efetivação de troca — A requisição faz parte da efetivação de uma troca. audit_reference é o ID da troca.
  • 102 — Reversão de troca — A requisição faz parte da reversão de uma troca. audit_reference é o ID da troca.