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 );
Nome | Tipo | Descrição |
steamIDClan | CSteamID | O 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 );
Nome | Tipo | Descrição |
pAuthTicket | const void * | O ticket de autenticação que se pretende validar. |
cbAuthTicket | int | O tamanho (em bytes) do ticket de autenticação. Deve ser o tamanho de pcbTicket retornado pela chamada que criou este ticket. |
steamID | CSteamID | O 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: EBeginAuthSessionResultConsulte também: User Authentication and OwnershipBLoggedOn
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_tBUpdateUserData
bool BUpdateUserData( CSteamID steamIDUser, const char *pchPlayerName, uint32 uScore );
Nome | Tipo | Descrição |
steamIDUser | CSteamID | O SteamID do utilizador. |
pchPlayerName | const char * | O nome do utilizador. |
uScore | uint32 | A 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 OwnershipCancelAuthTicket
void CancelAuthTicket( HAuthTicket hAuthTicket );
Nome | Tipo | Descrição |
hAuthTicket | HAuthTicket | O 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 OwnershipClearAllKeyValues
void ClearAllKeyValues();
Limpa a lista inteira de pares de chave/valor que é enviada em consultas de regras.
Consulte também: ISteamGameServer::SetKeyValue,
ISteamMatchmakingServers::ServerRulesComputeNewPlayerCompatibility
SteamAPICall_t ComputeNewPlayerCompatibility( CSteamID steamIDNewPlayer );
Nome | Tipo | Descrição |
steamIDNewPlayer | CSteamID | O 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: CSteamIDRetorna 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 );
Nome | Tipo | Descrição |
bActive | bool | Ativa (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::ForceHeartbeatEndAuthSession
void EndAuthSession( CSteamID steamID );
Nome | Tipo | Descrição |
steamID | CSteamID | A 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 OwnershipForceHeartbeat
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::SetHeartbeatIntervalGetAuthSessionTicket
HAuthTicket GetAuthSessionTicket( void *pTicket, int cbMaxTicket, uint32 *pcbTicket );
Nome | Tipo | Descrição |
pTicket | void * | O buffer para onde o novo ticket de autenticação será copiado se a chamada for bem-sucedida. |
cbMaxTicket | int | O tamanho do buffer alocado para pTicket . O valor deve ser 1024. |
pcbTicket | uint32 * | 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: HAuthTicketAtiva 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 OwnershipGetGameplayStats
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 );
Nome | Tipo | Descrição |
pOut | void * | 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. |
cbMaxOut | int | O tamanho do buffer especificado em pOut . Deve ser 16 * 1024. |
pNetAdr | uint32 * | 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. |
pPort | uint16 * | 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: uint32O 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: CSteamIDHandleIncomingPacket
bool HandleIncomingPacket( const void *pData, int cbData, uint32 srcIP, uint16 srcPort );
Nome | Tipo | Descrição |
pData | const void * | Os dados do pacote recebido. |
cbData | int | O tamanho de pData , em bytes. |
srcIP | uint32 | O endereço IP ao qual este pacote de dados foi enviado, por ordem de anfitrião, ou seja, 127.0.0.1 == 0x7f000001. |
srcPort | uint16 | A 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.
Só
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 );
Nome | Tipo | Descrição |
unIP | uint32 | O 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. |
usGamePort | uint16 | A porta à qual os clientes ser ião conectar para jogar. |
usQueryPort | uint16 | A porta que irá gerir tarefas relacionadas com a lista de servidores e pings de clientes. |
unFlags | uint32 | Uma união de uma ou mais ServerFlags. |
nGameAppId | AppId_t | O AppID do jogo deste servidor. |
pchVersionString | const 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 );
Nome | Tipo | Descrição |
pszToken | const 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::LogOnAnonymousLogOnAnonymous
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::LogOnRequestUserGroupStatus
bool RequestUserGroupStatus( CSteamID steamIDUser, CSteamID steamIDGroup );
Nome | Tipo | Descrição |
steamIDUser | CSteamID | O utilizador cujo estado no grupo se pretende verificar. |
steamIDGroup | CSteamID | O 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 );
Nome | Tipo | Descrição |
unIPClient | uint32 | O endereço IP do cliente que se está a conectar (por ordem de anfitrião, ou seja, 127.0.0.1 == 0x7f000001). |
pvAuthBlob | const void * | Os dados de autenticação fornecidos pelo utilizador através de uma chamada à função ISteamUser::InitiateGameConnection. |
cubAuthBlobSize | uint32 | O tamanho de pvAuthBlob , em bytes. |
pSteamIDUser | CSteamID * | 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 );
Nome | Tipo | Descrição |
steamIDUser | CSteamID | O 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 );
Nome | Tipo | Descrição |
cBotplayers | int | O 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 );
Nome | Tipo | Descrição |
bDedicated | bool | Este é 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 );
Nome | Tipo | Descrição |
pchGameData | const 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 );
Nome | Tipo | Descrição |
pszGameDescription | const 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 );
Nome | Tipo | Descrição |
pchGameTags | const 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 );
Nome | Tipo | Descrição |
iHeartbeatInterval | int | O 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::ForceHeartbeatSetKeyValue
void SetKeyValue( const char *pKey, const char *pValue );
Nome | Tipo | Descrição |
pKey | const char * | |
pValue | const char * | |
Adiciona/atualiza um par de chave/valor de regras.
Consulte também: ISteamGameServer::ClearAllKeyValues,
ISteamMatchmakingServers::ServerRulesSetMapName
void SetMapName( const char *pszMapName );
Nome | Tipo | Descrição |
pszMapName | const 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 );
Nome | Tipo | Descrição |
cPlayersMax | int | O 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 );
Nome | Tipo | Descrição |
pszModDir | const 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 );
Nome | Tipo | Descrição |
bPasswordProtected | bool | Ativa (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 );
Nome | Tipo | Descrição |
pszProduct | const 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 );
Nome | Tipo | Descrição |
pszRegion | const 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 );
Nome | Tipo | Descrição |
pszServerName | const 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 );
Nome | Tipo | Descrição |
unSpectatorPort | uint16 | A 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 );
Nome | Tipo | Descrição |
pszSpectatorServerName | const 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 );
Nome | Tipo | Descrição |
steamID | CSteamID | O SteamID do utilizador que enviou o ticket de autenticação. |
appID | AppId_t | O 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: EUserHasLicenseForAppResultConsulte também: User Authentication and OwnershipWasRestartRequested
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.
Nome | Tipo | Descrição |
m_eResult | EResult | O resultado da operação. Valores possíveis:
|
Funções associadas: ISteamGameServer::AssociateWithClanComputeNewPlayerCompatibilityResult_t
Enviado quando o servidor está a verificar se o novo jogador é bem‑vindo no servidor de acordo com o sistema "frenemy".
Nome | Tipo | Descrição |
m_eResult | EResult | O resultado da operação. Valores possíveis:
|
m_cPlayersThatDontLikeCandidate | int | O número de jogadores atuais que não gostam de jogar com o jogador especificado. |
m_cPlayersThatCandidateDoesntLike | int | O número de jogadores no servidor com os quais o jogador especificado não gosta de jogar. |
m_cClanPlayersThatDontLikeCandidate | int | O número de jogadores no grupo Steam associado que não gostam de jogar com o jogador. |
m_SteamIDCandidate | CSteamID | O SteamID do jogador especificado. |
Funções associadas: ISteamGameServer::ComputeNewPlayerCompatibilityGSClientAchievementStatus_t
Obsoleto. Use
ISteamGameServerStats.
Nome | Tipo | Descrição |
m_SteamID | uint64 | Obsoleto. |
m_pchAchievement | char[128] | Obsoleto. |
m_bUnlocked | bool | Obsoleto. |
GSClientApprove_t
Um cliente foi aprovado para estabelecer ligação com este servidor.
Nome | Tipo | Descrição |
m_SteamID | CSteamID | O SteamID do utilizador que pretende estabelecer ligação. |
m_OwnerSteamID | CSteamID | O 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.
Nome | Tipo | Descrição |
m_SteamID | CSteamID | O SteamID do utilizador que tentou estabelecer ligação. |
m_eDenyReason | EDenyReason | O motivo pelo qual a ligação do utilizador foi negada. |
m_rgchOptionalText | char[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.
Nome | Tipo | Descrição |
m_SteamIDUser | CSteamID | O utilizador cujo estado no grupo se verificou. |
m_SteamIDGroup | CSteamID | O grupo que se verificou. |
m_bMember | bool | O utilizador é membro do grupo (true) ou não (false)? |
m_bOfficer | bool | O 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::RequestUserGroupStatusGSClientKick_t
Ocorre quando o servidor deve expulsar o utilizador.
Nome | Tipo | Descrição |
m_SteamID | CSteamID | O SteamID do jogador que deve ser expulso. |
m_eDenyReason | EDenyReason | O 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.
Nome | Tipo | Descrição |
m_eResult | EResult | O resultado da operação. |
m_nRank | int32 | A classificação geral do servidor (base 0). |
m_unTotalConnects | uint32 | O número total de clientes que alguma vez estabeleceram ligação com o servidor. |
m_unTotalMinutesPlayed | uint32 | O número total de minutos de jogo no servidor. |
Funções associadas: ISteamGameServer::GetGameplayStatsGSPolicyResponse_t
Ocorre quando o servidor pede para ser apresentado como protegido (pelo VAC).
Nome | Tipo | Descrição |
m_bSecure | uint8 | O 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.
Nome | Tipo | Descrição |
m_eResult | EResult | O resultado da operação. |
m_unReputationScore | uint32 | A pontuação de reputação do servidor. |
m_bBanned | bool | O servidor foi banido dos servidores mestres do Steam (true) ou não (false)? |
m_unBannedIP | uint32 | O endereço IP do servidor banido. Definido apenas se m_bBanned for true. |
m_usBannedPort | uint16 | A porta do servidor banido. Definido apenas se m_bBanned for true. |
m_ulBannedGameID | uint64 | O ID do jogo hospedado pelo servidor banido. Definido apenas se m_bBanned for true. |
m_unBanExpires | uint32 | A 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::GetServerReputationConstantes
Estas são as constantes definidas para uso com ISteamGameServer.
Nome | Tipo | Valor | Descrição |
k_unServerFlagActive | uint32 | 0x01 | O servidor tem utilizadores a jogar. |
k_unServerFlagDedicated | uint32 | 0x04 | Este servidor é dedicado. |
k_unServerFlagLinux | uint32 | 0x08 | Este servidor está a ser executado em Linux. |
k_unServerFlagNone | uint32 | 0x00 | Este servidor não tem flags. |
k_unServerFlagPassworded | uint32 | 0x10 | Este servidor é protegido por palavra-passe. |
k_unServerFlagPrivate | uint32 | 0x20 | Este 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_unServerFlagSecure | uint32 | 0x02 | Este servidor pretende ser protegido pelo VAC. |
MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE | int | ((uint16)-1) | Usado com SteamGameServer_Init para ativar o modo GameSocketShare. |
STEAMGAMESERVER_INTERFACE_VERSION | const char * | "SteamGameServer012" | |