Documentação do Steamworks
Interface ISteamGameServer
Componente crucial da API de servidores de jogos do Steam.

Funções de membro

Funções de membro de ISteamGameServer são chamadas através da função de acesso global SteamGameServer().

AssociateWithClan

SteamAPICall_t AssociateWithClan( CSteamID steamIDClan );
NomeTipoDescrição
steamIDClanCSteamIDO SteamID do grupo ao qual se pretende realizar uma associação.

Associa este servidor ao grupo especificado para fins de computação de compatibilidade dos jogadores.

Retorna: SteamAPICall_t, a ser usado com um resultado de chamada AssociateWithClanResult_t.

BeginAuthSession

EBeginAuthSessionResult BeginAuthSession( const void *pAuthTicket, int cbAuthTicket, CSteamID steamID );
NomeTipoDescrição
pAuthTicketconst void *O ticket de autenticação que se pretende validar.
cbAuthTicketintO tamanho (em bytes) do ticket de autenticação. Deve ser o tamanho de pcbTicket retornado pela chamada que criou este ticket.
steamIDCSteamIDO SteamID da entidade que enviou este ticket.

Autentica o ticket de um SteamID para confirmar que é válido e que não foi reutilizado. Tenha em mente que a identidade não será confirmada enquanto o callback ValidateAuthTicketResponse_t não for recebido e o valor de retorno nesse callback não for verificado para determinar o sucesso da autenticação.

O ticket é criado na entidade com ISteamUser::GetAuthSessionTicket ou ISteamGameServer::GetAuthSessionTicket e tem de ser enviado pela rede para que seja validado do outro lado.

Este método regista callbacks ValidateAuthTicketResponse_t se a entidade ficar offline ou cancelar o ticket. Consulte EAuthSessionResponse para mais informações.

Quando a sessão multijogador terminar, deve chamar a função ISteamGameServer::EndAuthSession.

Retorna: EBeginAuthSessionResult


Consulte também: User Authentication and Ownership

BLoggedOn

bool BLoggedOn();
Verifica se o servidor tem sessão iniciada.

Retorna: bool
true se o servidor tiver sessão iniciada. Caso contrário, irá retornar false.

BSecure

bool BSecure();
Verifica se o servidor está no modo "Protegido".

Retorna: bool
true se o servidor estiver no modo protegido. Caso contrário, irá retornar false.

Consulte também: EServerMode, GSPolicyResponse_t

BUpdateUserData

bool BUpdateUserData( CSteamID steamIDUser, const char *pchPlayerName, uint32 uScore );
NomeTipoDescrição
steamIDUserCSteamIDO SteamID do utilizador.
pchPlayerNameconst char *O nome do utilizador.
uScoreuint32A pontuação atual do utilizador.

Atualiza os dados de um utilizador conectado ao servidor para apresentação na lista de servidores e em interfaces de matchmaking.

ATENÇÃO: esta função faz parte da antiga API de autenticação de utilizador e não deve usada com a nova API.

Retorna: bool
true se a chamada foi bem-sucedida; false no caso de uma falha (ou seja, se steamIDUser não for um jogador no servidor atual).

Consulte também: User Authentication and Ownership

CancelAuthTicket

void CancelAuthTicket( HAuthTicket hAuthTicket );
NomeTipoDescrição
hAuthTicketHAuthTicketO ticket de autenticação ativo que se pretende cancelar.

Cancela um ticket de autenticação recebido de ISteamUser::GetAuthSessionTicket. Esta função deve ser chamada quando já não estiver a jogar com a entidade especificada.

Consulte também: User Authentication and Ownership

ClearAllKeyValues

void ClearAllKeyValues();
Limpa a lista inteira de pares de chave/valor que é enviada em consultas de regras.

Consulte também: ISteamGameServer::SetKeyValue, ISteamMatchmakingServers::ServerRules

ComputeNewPlayerCompatibility

SteamAPICall_t ComputeNewPlayerCompatibility( CSteamID steamIDNewPlayer );
NomeTipoDescrição
steamIDNewPlayerCSteamIDO SteamID do jogador que está a tentar entrar.

Verifica se algum dos jogadores atuais não deseja jogar com este novo jogador que está a tentar entrar ou vice-versa com base no sistema "frenemy".

Retorna: SteamAPICall_t, a ser usado com um resultado de chamada ComputeNewPlayerCompatibilityResult_t.

CreateUnauthenticatedUserConnection

CSteamID CreateUnauthenticatedUserConnection();
Cria um utilizador falso (ou seja, um bot), que será listado como se estivesse a jogar no servidor, mas sem o passo de validação.

ATENÇÃO: esta função faz parte da antiga API de autenticação de utilizador e não deve usada com a nova API.

Retorna: CSteamID
Retorna o SteamID do bot para fins de acompanhamento.

Deve chamar ISteamGameServer::SendUserDisconnect quando este utilizador sair do servidor, tal como faria com um utilizador de verdade.

EnableHeartbeats

void EnableHeartbeats( bool bActive );
NomeTipoDescrição
bActiveboolAtiva (true) ou desativa (false) o atualizador do servidor mestre.

Indica aos servidores mestres se pretende ficar ativo ou não.

Se ativado, o servidor irá comunicar com os servidores mestres. Caso contrário, mensagens recebidas serão ignoradas e heartbeats não serão enviados.

Consulte também: ISteamGameServer::SetHeartbeatInterval, ISteamGameServer::ForceHeartbeat

EndAuthSession

void EndAuthSession( CSteamID steamID );
NomeTipoDescrição
steamIDCSteamIDA entidade com a qual terminar a sessão de autenticação ativa.

Termina uma sessão de autenticação que foi começada com ISteamGameServer::BeginAuthSession. Esta função deve ser chamada quando já não estiver a jogar com a entidade especificada.

Consulte também: User Authentication and Ownership

ForceHeartbeat

void ForceHeartbeat();
Força um heartbeat aos servidores mestres do Steam na próxima oportunidade.

Normalmente, não é necessário usar esta função.

Consulte também: ISteamGameServer::EnableHeartbeats, ISteamGameServer::SetHeartbeatInterval

GetAuthSessionTicket

HAuthTicket GetAuthSessionTicket( void *pTicket, int cbMaxTicket, uint32 *pcbTicket );
NomeTipoDescrição
pTicketvoid *O buffer para onde o novo ticket de autenticação será copiado se a chamada for bem-sucedida.
cbMaxTicketintO tamanho do buffer alocado para pTicket. O valor deve ser 1024.
pcbTicketuint32 *Retorna o tamanho do ticket.

Obtém um ticket de autenticação para ser enviado à entidade que deseja autenticar a sua conta.

Depois de chamar esta função, pode enviar o ticket para a entidade, que irá depois chamar a função ISteamUser::BeginAuthSession para confirmar a integridade desta entidade.

Ao criar um ticket para uso pela Web API ISteamUserAuth/AuthenticateUserTicket, a aplicação chamadora deve aguardar pelo callback GetAuthSessionTicketResponse_t gerado pela chamada à API antes de tentar usar o ticket para garantir que este foi comunicado ao servidor. Se este callback não ocorrer atempadamente (10-20 segundos), isso significa que o cliente não está conectado ao Steam e a chamada AuthenticateUserTicket irá falhar por não ser possível autenticar o utilizador.

Retorna: HAuthTicket
Ativa um callback GetAuthSessionTicketResponse_t.
Um handle do ticket de autenticação. Quando terminar de interagir com a entidade, deve chamar a função ISteamGameServer::CancelAuthTicket com o handle.

Retorna k_HAuthTicketInvalid se a chamada falhar.

Consulte também: User Authentication and Ownership

GetGameplayStats

void GetGameplayStats();
Obsoleto. Será removido numa versão futura do SDK.

Retorna: void
Ativa um callback GSGameplayStats_t.

GetNextOutgoingPacket

int GetNextOutgoingPacket( void *pOut, int cbMaxOut, uint32 *pNetAdr, uint16 *pPort );
NomeTipoDescrição
pOutvoid *Retorna o pacote de dados que precisa de ser enviado ao copiá-lo para este buffer. O pacote de dados pode ter até 16 KiB; faça a alocação de acordo.
cbMaxOutintO tamanho do buffer especificado em pOut. Deve ser 16 * 1024.
pNetAdruint32 *Retorna o endereço IP ao qual este pacote de dados deve ser enviado, por ordem de anfitrião, ou seja, 127.0.0.1 == 0x7f000001.
pPortuint16 *Retorna a porta pela qual este pacote de dados deve ser enviado, por ordem de anfitrião.

Obtém um pacote de dados que o atualizador do servidor mestre precisa de enviar por UDP quando estiver no modo GameSocketShare.

ATENÇÃO: apenas deve ser chamada DEPOIS de chamar ISteamGameServer::HandleIncomingPacket para quaisquer pacotes de dados que vieram naquela frame!

NOTA: esta função DEVE ser chamada repetidamente em cada frame até retornar 0 quando estiver no modo GameSocketShare.

O modo GameSocketShare pode ser ativado ao chamar a função SteamGameServer_Init.

Retorna: int
O tamanho do pacote de dados que precisa de ser enviado; 0 se não houver mais pacotes a enviar nesta frame.

GetPublicIP

uint32 GetPublicIP();
Obtém o endereço IP público do servidor segundo o Steam.

Útil quando o servidor estiver numa rede com NAT e necessita de publicitar o endereço IP num lobby para que outros clientes estabeleçam ligação diretamente.

Retorna: uint32
O endereço IP público por ordem de anfitrião, ou seja, 127.0.0.1 == 0x7f000001.

Retorna 0 se o endereço IP não pôde ser determinado.

GetServerReputation

SteamAPICall_t GetServerReputation();
Obsoleto. Será removido numa versão futura do SDK.

Retorna: SteamAPICall_t, a ser usado com um resultado de chamada GSReputation_t.

GetSteamID

CSteamID GetSteamID();
Obtém o SteamID do servidor.

Retorna: CSteamID

HandleIncomingPacket

bool HandleIncomingPacket( const void *pData, int cbData, uint32 srcIP, uint16 srcPort );
NomeTipoDescrição
pDataconst void *Os dados do pacote recebido.
cbDataintO tamanho de pData, em bytes.
srcIPuint32O endereço IP ao qual este pacote de dados foi enviado, por ordem de anfitrião, ou seja, 127.0.0.1 == 0x7f000001.
srcPortuint16A porta pela qual este pacote de dados foi enviado, por ordem de anfitrião.

Processa um pacote de dados do servidor mestre do Steam quando estiver no modo GameSocketShare.

Quando estiver no modo GameSocketShare, em vez de ISteamGameServer criar um socket próprio para comunicar com o servidor mestre, permite que o jogo use o respetivo socket para enviar e receber mensagens.
Assim, não temos de pedir a operadores de servidores para abrirem outra porta na firewall.

Esta função deve ser chamada sempre que um pacote começado por 0xFFFFFFFF chegar, o que significa que é para uso da Valve.

Os parâmetros de endereço IP e porta são usados quando decidiu multiplexar o socket UDP do servidor em vez de deixar o atualizador do servidor mestre usar sockets próprios.

Jogos no engine Source utilizam este processo para simplificar o trabalho de administradores de servidores, de modo que não tenham de abrir mais portas na firewall.

DEPOIS de chamar esta função é que deve chamar ISteamGameServer::GetNextOutgoingPacket.

O modo GameSocketShare pode ser ativado ao chamar a função SteamGameServer_Init.

Retorna: bool

InitGameServer

bool InitGameServer( uint32 unIP, uint16 usGamePort, uint16 usQueryPort, uint32 unFlags, AppId_t nGameAppId, const char *pchVersionString );
NomeTipoDescrição
unIPuint32O endereço IP ao qual se irá associar (por ordem de anfitrião, ou seja, 127.0.0.1 == 0x7f000001). Pode usar INADDR_ANY para associar a todos os endereços IPv4 locais.
usGamePortuint16A porta à qual os clientes ser ião conectar para jogar.
usQueryPortuint16A porta que irá gerir tarefas relacionadas com a lista de servidores e pings de clientes.
unFlagsuint32Uma união de uma ou mais ServerFlags.
nGameAppIdAppId_tO AppID do jogo deste servidor.
pchVersionStringconst char *A string de versão costuma estar no formato x.x.x.x e é usada pelo servidor mestre para detetar quando o servidor está desatualizado (apenas os servidores com a versão mais recente serão listados).

Inicializa a instância de ISteamGameServer. Esta função é chamada por SteamGameServer_Init e, na maioria dos casos, não irá precisar de a chamar diretamente.

Se passar MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE para usQueryPort, a API de servidores de jogos irá usar o modo "GameSocketShare", o que significa que o jogo é responsável pelo envio e receção de pacotes UDP para o atualizador do servidor mestre.

Se o modo "GameSocketShare", for usado, deve utilizar ISteamGameServer::HandleIncomingPacket e ISteamGameServer::GetNextOutgoingPacket para interagir com o servidor mestre do Steam.

Retorna: bool
true caso o servidor se tenha conseguido associar ao endereço IP e porta fornecidos. Caso contrário, irá retornar false, o que indica uma falha.

LogOff

void LogOff();
Inicia o processo de terminação do servidor no Steam.

Retorna: void
Ativa um callback SteamServerConnectFailure_t.
Ativa um callback SteamServersConnected_t.
Ativa um callback SteamServersDisconnected_t.

LogOn

void LogOn( const char *pszToken );
NomeTipoDescrição
pszTokenconst char *

Inicia o processo de inicialização de sessão com uma conta de servidor persistente.

Retorna: void
Ativa um callback SteamServerConnectFailure_t.
Ativa um callback SteamServersConnected_t.
Ativa um callback SteamServersDisconnected_t.


Consulte também: ISteamGameServer::LogOnAnonymous

LogOnAnonymous

void LogOnAnonymous();
Inicia sessão com uma conta genérica e anónima.

Retorna: void
Ativa um callback SteamServerConnectFailure_t.
Ativa um callback SteamServersConnected_t.
Ativa um callback SteamServersDisconnected_t.


Consulte também: ISteamGameServer::LogOn

RequestUserGroupStatus

bool RequestUserGroupStatus( CSteamID steamIDUser, CSteamID steamIDGroup );
NomeTipoDescrição
steamIDUserCSteamIDO utilizador cujo estado no grupo se pretende verificar.
steamIDGroupCSteamIDO grupo que se pretende verificar.

Verifica se um utilizador está no grupo Steam especificado.

Retorna: bool
Ativa um callback GSClientGroupStatus_t.
true se a chamada foi enviada com sucesso para os servidores do Steam; caso contrário, false se não houver uma ligação aos servidores do Steam ou se um utilizador ou grupo inválido foi fornecido.

SendUserConnectAndAuthenticate

bool SendUserConnectAndAuthenticate( uint32 unIPClient, const void *pvAuthBlob, uint32 cubAuthBlobSize, CSteamID *pSteamIDUser );
NomeTipoDescrição
unIPClientuint32O endereço IP do cliente que se está a conectar (por ordem de anfitrião, ou seja, 127.0.0.1 == 0x7f000001).
pvAuthBlobconst void *Os dados de autenticação fornecidos pelo utilizador através de uma chamada à função ISteamUser::InitiateGameConnection.
cubAuthBlobSizeuint32O tamanho de pvAuthBlob, em bytes.
pSteamIDUserCSteamID *Retorna o SteamID do utilizador. Não pode conter o valor NULL.

Processa a receção de uma nova ligação de um utilizador do Steam. Esta função irá pedir aos servidores do Steam que validem a identidade do utilizador, a posse da aplicação e o estado VAC.

Se os servidores do Steam estiverem offline, será validado o próprio ticket na cache, que irá validar a posse da aplicação e a identidade.

ATENÇÃO: esta função faz parte da antiga API de autenticação de utilizador e não deve usada com a nova API.

Retorna: bool
true se o ticket do utilizador passar por verificações básicas. Caso contrário, irá retornar false.

Se esta chamada for bem-sucedida, deverá ocorrer um callback GSClientApprove_t ou GSClientDeny_t, que indicará se a autenticação do utilizador teve sucesso ou falhou. O SteamID no callback será igual ao retornado nesta chamada.

SendUserDisconnect

void SendUserDisconnect( CSteamID steamIDUser );
NomeTipoDescrição
steamIDUserCSteamIDO SteamID do utilizador que saiu do servidor.

Esta função deve ser chamada sempre que um utilizador sair do servidor.

Permite que o Steam acompanhe internamente quais utilizadores estão em quais servidores, podendo assim evitar que uma conta esteja em vários servidores, mostrar os utilizadores que estão no servidor, etc.

ATENÇÃO: esta função faz parte da antiga API de autenticação de utilizador e não deve usada com a nova API.

SetBotPlayerCount

void SetBotPlayerCount( int cBotplayers );
NomeTipoDescrição
cBotplayersintO número de jogadores bot/IA a jogar no servidor.

Define o número de jogadores bot/IA no servidor. O valor predefinido é 0.

SetDedicatedServer

void SetDedicatedServer( bool bDedicated );
NomeTipoDescrição
bDedicatedboolEste é um servidor dedicado (true) ou um servidor de escuta/"listen" (false)?

Define se este é um servidor dedicado ou de escuta ("listen"). A predefinição é servidor de escuta ("listen").

ATENÇÃO: só deve ser definida antes de chamar a função ISteamGameServer::LogOn ou ISteamGameServer::LogOnAnonymous.

SetGameData

void SetGameData( const char *pchGameData );
NomeTipoDescrição
pchGameDataconst char *O novo valor de "gamedata" que se pretende definir. Não deve ser NULL ou uma string vazia (""). Não pode ser mais longo do que o especificado em k_cbMaxGameServerGameData.

Define uma string com o "gamedata" deste servidor. É opcional, mas permite que os utilizadores filtrem as interfaces de matchmaking/lista de servidores com base no valor.

Usa normalmente o formato de lista com separação por vírgula ou ponto e vírgula.

Não defina este valor a não ser que tenha de facto mudado. Só é enviado para o servidor mestre uma vez, após a confirmação.

SetGameDescription

void SetGameDescription( const char *pszGameDescription );
NomeTipoDescrição
pszGameDescriptionconst char *A descrição do seu jogo. Não deve ser NULL ou uma string vazia (""). Não pode ser mais longa do que o especificado em k_cbMaxGameServerGameDescription.

Define a descrição do jogo. Recomendamos que use o nome completo do seu jogo.

ATENÇÃO: este valor é obrigatório para todos os servidores de jogos e só deve ser definido antes de chamar as funções ISteamGameServer::LogOn ou ISteamGameServer::LogOnAnonymous.

SetGameTags

void SetGameTags( const char *pchGameTags );
NomeTipoDescrição
pchGameTagsconst char *O novo valor de "gametags" que se pretende definir. Não deve ser NULL ou uma string vazia (""). Não pode ser mais longo do que o especificado em k_cbMaxGameServerTags.

Define uma string com as "gametags" deste servidor. É opcional, mas permite que os utilizadores filtrem as interfaces de matchmaking/lista de servidores com base no valor.

Usa normalmente o formato de lista com separação por vírgula ou ponto e vírgula.

Não defina este valor a não ser que tenha de facto mudado. Só é enviado para o servidor mestre uma vez, após a confirmação.

SetHeartbeatInterval

void SetHeartbeatInterval( int iHeartbeatInterval );
NomeTipoDescrição
iHeartbeatIntervalintO intervalo entre envios de heartbeats, em milissegundos. O valor costuma situar-se entre 250 e 1000. Use -1 para utilizar o valor predefinido.

Altera a frequência de envio de heartbeats aos servidores mestres do Steam.

Normalmente, não é necessário usar esta função.

Consulte também: ISteamGameServer::EnableHeartbeats, ISteamGameServer::ForceHeartbeat

SetKeyValue

void SetKeyValue( const char *pKey, const char *pValue );
NomeTipoDescrição
pKeyconst char *
pValueconst char *

Adiciona/atualiza um par de chave/valor de regras.

Consulte também: ISteamGameServer::ClearAllKeyValues, ISteamMatchmakingServers::ServerRules

SetMapName

void SetMapName( const char *pszMapName );
NomeTipoDescrição
pszMapNameconst char *O nome do mapa que se pretende definir. Não deve ser NULL ou uma string vazia (""). Não pode ser mais longo do que o especificado em k_cbMaxGameServerMapName.

Define o nome do mapa indicado na lista de servidores.

SetMaxPlayerCount

void SetMaxPlayerCount( int cPlayersMax );
NomeTipoDescrição
cPlayersMaxintO novo número máximo de jogadores permitidos neste servidor.

Define o número máximo de jogadores permitidos em simultâneo no servidor.

Este valor pode ser alterado a qualquer momento.

SetModDir

void SetModDir( const char *pszModDir );
NomeTipoDescrição
pszModDirconst char *O diretório do jogo que se pretende definir. Não deve ser NULL ou uma string vazia (""). Não pode ser mais longo do que o especificado em k_cbMaxGameServerGameDir.

Define o diretório do jogo.

Deve ser o diretório onde o jogo foi instalado e apenas o nome da pasta, não o caminho completo (por exemplo, "Spacewar").

ATENÇÃO: este valor é obrigatório para todos os servidores de jogos e só deve ser definido antes de chamar as funções ISteamGameServer::LogOn ou ISteamGameServer::LogOnAnonymous.

SetPasswordProtected

void SetPasswordProtected( bool bPasswordProtected );
NomeTipoDescrição
bPasswordProtectedboolAtiva (true) ou desativa (false) a proteção por palavra-passe.

Define se o servidor irá pedir uma palavra-passe quando o utilizador tentar entrar.

SetProduct

void SetProduct( const char *pszProduct );
NomeTipoDescrição
pszProductconst char *O identificador único do seu jogo. Não deve ser NULL ou uma string vazia ("").

Define o identificador de produto do jogo. O identificador é usado pelo servidor mestre para fins de verificação de versão.

Recomendamos que converta o AppID do jogo numa string e que a use aqui.

ATENÇÃO: este valor é obrigatório para todos os servidores de jogos e só deve ser definido antes de chamar as funções ISteamGameServer::LogOn ou ISteamGameServer::LogOnAnonymous.

SetRegion

void SetRegion( const char *pszRegion );
NomeTipoDescrição
pszRegionconst char *

Identificador de região. Este campo é opcional. O valor predefinido é uma string vazia que significa a região "world" (mundo).

SetServerName

void SetServerName( const char *pszServerName );
NomeTipoDescrição
pszServerNameconst char *O nome do servidor que se pretende definir. Não deve ser NULL ou uma string vazia (""). Não pode ser mais longo do que o especificado em k_cbMaxGameServerName.

Define o nome do servidor indicado na lista de servidores.

SetSpectatorPort

void SetSpectatorPort( uint16 unSpectatorPort );
NomeTipoDescrição
unSpectatorPortuint16A porta pela qual os espectadores irão entrar.

Define se o servidor permite espectadores e a porta que deverão usar para estabelecer ligação. O valor predefinido é 0, o que significa que o serviço não é usado.

SetSpectatorServerName

void SetSpectatorServerName( const char *pszSpectatorServerName );
NomeTipoDescrição
pszSpectatorServerNameconst char *O nome do servidor para espectadores que se pretende definir. Não deve ser NULL ou uma string vazia (""). Não pode ser mais longo do que o especificado em k_cbMaxGameServerMapName.

Define o nome do servidor para espectadores. Usado apenas se a porta para espectadores não for zero.

UserHasLicenseForApp

EUserHasLicenseForAppResult UserHasLicenseForApp( CSteamID steamID, AppId_t appID );
NomeTipoDescrição
steamIDCSteamIDO SteamID do utilizador que enviou o ticket de autenticação.
appIDAppId_tO AppID do DLC, para fins de verificação de posse.

Verifica se o utilizador possui um DLC específico.

Esta função só pode ser chamada depois de se passar o ticket de autenticação do utilizador como argumento para a função ISteamGameServer::BeginAuthSession.

Retorna: EUserHasLicenseForAppResult


Consulte também: User Authentication and Ownership

WasRestartRequested

bool WasRestartRequested();
Verifica se o servidor mestre já alertou de que o servidor está desatualizado.

Reverte para o valor false depois da chamada a esta função.

Retorna: bool
true se o servidor mestre requer que este servidor seja atualizado e reiniciado. Caso contrário, irá retornar false.

Callbacks

Estes são os callbacks que podem ocorrer ao chamar SteamAPI_RunCallbacks. Muitos destes callbacks irão ocorrer diretamente como resposta às funções de membro de ISteamGameServer.

AssociateWithClanResult_t

Enviado quando o servidor se tentou associar a um grupo Steam.

NomeTipoDescrição
m_eResultEResultO resultado da operação. Valores possíveis:

Funções associadas: ISteamGameServer::AssociateWithClan

ComputeNewPlayerCompatibilityResult_t

Enviado quando o servidor está a verificar se o novo jogador é bem‑vindo no servidor de acordo com o sistema "frenemy".

NomeTipoDescrição
m_eResultEResultO resultado da operação. Valores possíveis:
m_cPlayersThatDontLikeCandidateintO número de jogadores atuais que não gostam de jogar com o jogador especificado.
m_cPlayersThatCandidateDoesntLikeintO número de jogadores no servidor com os quais o jogador especificado não gosta de jogar.
m_cClanPlayersThatDontLikeCandidateintO número de jogadores no grupo Steam associado que não gostam de jogar com o jogador.
m_SteamIDCandidateCSteamIDO SteamID do jogador especificado.

Funções associadas: ISteamGameServer::ComputeNewPlayerCompatibility

GSClientAchievementStatus_t

Obsoleto. Use ISteamGameServerStats.

NomeTipoDescrição
m_SteamIDuint64Obsoleto.
m_pchAchievementchar[128]Obsoleto.
m_bUnlockedboolObsoleto.

GSClientApprove_t

Um cliente foi aprovado para estabelecer ligação com este servidor.

NomeTipoDescrição
m_SteamIDCSteamIDO SteamID do utilizador que pretende estabelecer ligação.
m_OwnerSteamIDCSteamIDO SteamID que possui o jogo. Diferente de m_SteamID se o jogo for acedido via Partilha de Biblioteca Steam.

GSClientDeny_t

Ocorre quando a ligação de um utilizador a este servidor é negada.

NomeTipoDescrição
m_SteamIDCSteamIDO SteamID do utilizador que tentou estabelecer ligação.
m_eDenyReasonEDenyReasonO motivo pelo qual a ligação do utilizador foi negada.
m_rgchOptionalTextchar[128](Opcional) Uma mensagem de texto a explicar o motivo pelo qual a ligação foi negada. Normalmente não é usada, exceto para relatórios.

GSClientGroupStatus_t

Ocorre quando se recebe o estado de um utilizador num grupo.

NomeTipoDescrição
m_SteamIDUserCSteamIDO utilizador cujo estado no grupo se verificou.
m_SteamIDGroupCSteamIDO grupo que se verificou.
m_bMemberboolO utilizador é membro do grupo (true) ou não (false)?
m_bOfficerboolO utilizador tem o cargo de oficial no grupo (true) ou não (false)? Nunca será "true" se m_bMember for "false".

Funções associadas: ISteamGameServer::RequestUserGroupStatus

GSClientKick_t

Ocorre quando o servidor deve expulsar o utilizador.

NomeTipoDescrição
m_SteamIDCSteamIDO SteamID do jogador que deve ser expulso.
m_eDenyReasonEDenyReasonO motivo pelo qual o jogador está a ser expulso.

GSGameplayStats_t

Obsoleto. Ocorre quando as estatísticas de jogabilidade são consultadas através da função ISteamGameServer::GetGameplayStats.

NomeTipoDescrição
m_eResultEResultO resultado da operação.
m_nRankint32A classificação geral do servidor (base 0).
m_unTotalConnectsuint32O número total de clientes que alguma vez estabeleceram ligação com o servidor.
m_unTotalMinutesPlayeduint32O número total de minutos de jogo no servidor.

Funções associadas: ISteamGameServer::GetGameplayStats

GSPolicyResponse_t

Ocorre quando o servidor pede para ser apresentado como protegido (pelo VAC).

NomeTipoDescrição
m_bSecureuint8O servidor aparece agora como protegido (true) ou não protegido (false)?

GSReputation_t

Obsoleto. Ocorre quando a reputação do servidor é consultada.

Os banimentos do servidor mestre são emitidos por endereço IP, por isso, é possível que o servidor seja banido mesmo com uma boa pontuação se houver um servidor com má pontuação noutra porta.
Estas informações podem ser usadas para identificar o servidor problemático.

NomeTipoDescrição
m_eResultEResultO resultado da operação.
m_unReputationScoreuint32A pontuação de reputação do servidor.
m_bBannedboolO servidor foi banido dos servidores mestres do Steam (true) ou não (false)?
m_unBannedIPuint32O endereço IP do servidor banido. Definido apenas se m_bBanned for true.
m_usBannedPortuint16A porta do servidor banido. Definido apenas se m_bBanned for true.
m_ulBannedGameIDuint64O ID do jogo hospedado pelo servidor banido. Definido apenas se m_bBanned for true.
m_unBanExpiresuint32A data e a hora de expiração do banimento, fornecidas no formato de Era Unix (segundos desde 1 de janeiro de 1970). Definido apenas se m_bBanned for true.

Funções associadas: ISteamGameServer::GetServerReputation

Constantes

Estas são as constantes definidas para uso com ISteamGameServer.

NomeTipoValorDescrição
k_unServerFlagActiveuint320x01O servidor tem utilizadores a jogar.
k_unServerFlagDedicateduint320x04Este servidor é dedicado.
k_unServerFlagLinuxuint320x08Este servidor está a ser executado em Linux.
k_unServerFlagNoneuint320x00Este servidor não tem flags.
k_unServerFlagPasswordeduint320x10Este servidor é protegido por palavra-passe.
k_unServerFlagPrivateuint320x20Este servidor não deve ser listado no servidor mestre e não fará a autenticação de utilizadores que estabelecerem ligação com o servidor.
Útil se tiver um servidor com clientes sem ligação à internet, mas pretende que possam jogar (ou seja, em LAN).
k_unServerFlagSecureuint320x02Este servidor pretende ser protegido pelo VAC.
MASTERSERVERUPDATERPORT_USEGAMESOCKETSHAREint((uint16)-1)Usado com SteamGameServer_Init para ativar o modo GameSocketShare.
STEAMGAMESERVER_INTERFACE_VERSIONconst char *"SteamGameServer012"