Proporciona el núcleo de las API de los servidores de juego de Steam.
Funciones miembro
Las funciones miembro para
ISteamGameServer
se llaman a través de la función de acceso global
SteamGameServer()
.
AssociateWithClan
SteamAPICall_t AssociateWithClan( CSteamID steamIDClan );
Nombre | Tipo | Descripción |
steamIDClan | CSteamID | Id. de Steam del grupo al que te quieres asociar. |
Asocia este servidor de juegos con este clan para calcular la compatibilidad entre jugadores.
Devuelve: SteamAPICall_t para usar con el resultado de la llamada a
AssociateWithClanResult_t.
BeginAuthSession
EBeginAuthSessionResult BeginAuthSession( const void *pAuthTicket, int cbAuthTicket, CSteamID steamID );
Nombre | Tipo | Descripción |
pAuthTicket | const void * | El ticket de autenticación para validar. |
cbAuthTicket | int | Tamaño en bytes del ticket de autenticación. Este debe ser el tamaño pcbTicket proporcionado por la llamada que creó este ticket. |
steamID | CSteamID | Id. de Steam de la entidad que envió el ticket. |
Autentica el ticket del id. de Steam de la entidad para garantizar que es válido y que no está siendo reutilizado. Ten en cuenta que la identidad no se confirma hasta que se recibe la función callback
ValidateAuthTicketResponse_t y se confirma que el valor devuelto es correcto.
El ticket se crea en la entidad con
ISteamUser::GetAuthSessionTicket o
ISteamGameServer::GetAuthSessionTicket y luego se debe proporcionar a través de la red para que el otro extremo lo valide.
Esto registra las funciones callback de
ValidateAuthTicketResponse_t si la entidad se desconecta o cancela el ticket. Consulta
EAuthSessionResponse para obtener más información.
Cuando la sesión multijugador termina, debes llamar a
ISteamGameServer::EndAuthSession.
Devuelve: EBeginAuthSessionResultVéase también: Autenticación de usuario y propiedadBLoggedOn
bool BLoggedOn();
Comprueba si el servidor del juego está conectado.
Devuelve: bool
true si el servidor del juego está conectado; de lo contrario,
false.
BSecure
bool BSecure();
Comprueba si el servidor de juego está en modo "Seguro".
Devuelve: bool
true si el servidor del juego es seguro; de lo contrario,
false.
Véase también: EServerMode,
GSPolicyResponse_tBUpdateUserData
bool BUpdateUserData( CSteamID steamIDUser, const char *pchPlayerName, uint32 uScore );
Nombre | Tipo | Descripción |
steamIDUser | CSteamID | Id. de Steam del usuario. |
pchPlayerName | const char * | El nombre del usuario. |
uScore | uint32 | La puntuación actual del usuario. |
Actualiza los datos que se muestran en las interfaces de emparejamiento y de navegación de servidores para un usuario conectado actualmente al servidor.
NOTA: Esto es parte de la API de autenticación de usuario antigua y no debe mezclarse con la nueva API.
Devuelve: bool
true si la llamada fue exitosa; de lo contrario,
false si se produjo un error (es decir,
steamIDUser
no es un jugador en el servidor actual).
Véase también: Autenticación de usuario y propiedadCancelAuthTicket
void CancelAuthTicket( HAuthTicket hAuthTicket );
Nombre | Tipo | Descripción |
hAuthTicket | HAuthTicket | Ticket de autenticación activo que se desea cancelar. |
Cancela un ticket de autenticación recibido de
ISteamUser::GetAuthSessionTicket. Debería llamarse cuando ya no se está jugando con la entidad especificada.
Véase también: Autenticación de usuario y propiedadClearAllKeyValues
void ClearAllKeyValues();
Borra la lista completa de pares clave-valor que se envían en las consultas de reglas.
Véase también: ISteamGameServer::SetKeyValue,
ISteamMatchmakingServers::ServerRulesComputeNewPlayerCompatibility
SteamAPICall_t ComputeNewPlayerCompatibility( CSteamID steamIDNewPlayer );
Nombre | Tipo | Descripción |
steamIDNewPlayer | CSteamID | Id. de Steam del jugador que está intentando unirse. |
Comprueba si alguno de los jugadores actuales no quieren jugar con este nuevo jugador que está intentando unirse o viceversa; basado en el sistema de amigos y enemigos.
Devuelve: SteamAPICall_t para usar con el resultado de la llamada
ComputeNewPlayerCompatibilityResult_t.
CreateUnauthenticatedUserConnection
CSteamID CreateUnauthenticatedUserConnection();
Crea un usuario falso (por ejemplo, un bot), que aparecerá en la lista como jugando en el servidor, pero omite la verificación.
NOTA: Esto es parte de la API de autenticación de usuario antigua y no debe mezclarse con la nueva API.
Devuelve: CSteamIDDevuelve el id. de Steam con el que se rastreará al bot.
Deberías llamar a
ISteamGameServer::SendUserDisconnect cuando este usuario abandone el servidor igual que si fuera un usuario real.
EnableHeartbeats
void EnableHeartbeats( bool bActive );
Nombre | Tipo | Descripción |
bActive | bool | Activa (true) o desactiva (false) el actualizador del servidor maestro. |
Les dice a los servidores maestros de Steam si deseas que estén activos o no.
Si se activa, el servidor se comunicará con los servidores maestros; si no, se ignorarán los mensajes entrantes y no se enviarán señales de monitorización.
Véase también: ISteamGameServer::SetHeartbeatInterval,
ISteamGameServer::ForceHeartbeatEndAuthSession
void EndAuthSession( CSteamID steamID );
Nombre | Tipo | Descripción |
steamID | CSteamID | Entidad con la que se finaliza la sesión de autenticación activa. |
Finaliza una sesión de autenticación que se inició con
ISteamGameServer::BeginAuthSession. Debería llamarse cuando ya no se está jugando con la entidad especificada.
Véase también: Autenticación de usuario y propiedadForceHeartbeat
void ForceHeartbeat();
Fuerza una señal de monitorización de los servidores maestros de Steam en cuanto sea posible.
Normalmente, no se necesita.
Véase también: ISteamGameServer::EnableHeartbeats,
ISteamGameServer::SetHeartbeatIntervalGetAuthSessionTicket
HAuthTicket GetAuthSessionTicket( void *pTicket, int cbMaxTicket, uint32 *pcbTicket );
Nombre | Tipo | Descripción |
pTicket | void * | Búfer en el que se copiará el nuevo ticket de autenticación si la llamada se completó. |
cbMaxTicket | int | El tamaño del búfer asignado para pTicket . Este debería ser 1024. |
pcbTicket | uint32 * | Devuelve la longitud del ticket actual. |
Recupera un ticket de autenticación para enviarlo a la entidad que desee realizar tu autenticación.
Después de llamar a esta función, se puede enviar el ticket a la entidad que podrá después llamar a
ISteamUser::BeginAuthSession para verificar su integridad.
Cuando se crea un ticket para que lo use la Web de API
ISteamUserAuth/AuthenticateUserTicket, la aplicación que realiza la llamada debería esperar a la respuesta de la función callback
GetAuthSessionTicketResponse_t, generada por la llamada a la API, antes de intentar usar el ticket para garantizar que se le ha comunicado el ticket al servidor. Si esta respuesta no llega a tiempo (10-20 segundos), indica que el cliente no está conectado a Steam y la llamada de AuthenticateUserTicket fallará porque no puede autenticar al usuario.
Devuelve: HAuthTicketActiva la función callback
GetAuthSessionTicketResponse_t.
Un handle para el ticket de autenticación. Cuando hayas terminado de interactuar con la entidad, debes llamar a
ISteamGameServer::CancelAuthTicket con este handle.
Devuelve
k_HAuthTicketInvalid si la llamada falla.
Véase también: Autenticación de usuario y propiedadGetGameplayStats
void GetGameplayStats();
Obsoleto. Se eliminará en una futura publicación del SDK.
Devuelve: nulo
Activa la función callback
GSGameplayStats_t.
GetNextOutgoingPacket
int GetNextOutgoingPacket( void *pOut, int cbMaxOut, uint32 *pNetAdr, uint16 *pPort );
Nombre | Tipo | Descripción |
pOut | void * | Devuelve el paquete que es necesario enviar copiándolo en este búfer. El paquete podrá tener hasta 16 KiB, de modo que a la hora de reservar memoria ha de tenerse en cuenta. |
cbMaxOut | int | La longitud del búfer asignado para pOut , debería ser 16x1024. |
pNetAdr | uint32 * | Devuelve la dirección IP a la que es necesario enviar este paquete conforme al orden del host, es decir, 127.0.0.1 == 0x7f000001. |
pPort | uint16 * | Devuelve el puerto a través del cual ha de enviarse este paquete, conforme al orden del host. |
Obtiene un paquete que el actualizador del servidor maestro necesita enviar vía UDP en modo GameSocketShare.
NOTA: ¡Esto solo debería llamarse DESPUÉS de llamar a
ISteamGameServer::HandleIncomingPacket para cualquier paquete que venga en esta trama!
NOTA: Esta función DEBE llamarse repetidamente para cada trama hasta que devuelva 0 en modo GameSocketShare.
El modo GameSocketShare se puede habilitar cuando se llama a
SteamGameServer_Init.
Devuelve: int
La longitud del paquete a enviar, o 0 si no hay más paquetes para enviar esta trama.
GetPublicIP
uint32 GetPublicIP();
Obtiene la IP pública del servidor conforme a Steam.
Sirve cuando el servidor opera tras NAT y quieres publicar su dirección IP en una sala de espera para que otros clientes se conecten directamente.
Devuelve: uint32La IP pública en el orden del host, es decir, 127.0.0.1 == 0x7f000001.
Devuelve
0 si no se pudo determinar la IP.
GetServerReputation
SteamAPICall_t GetServerReputation();
Obsoleto. Se eliminará en una futura publicación del SDK.
Devuelve: SteamAPICall_t para usar con el resultado de la llamada a
GSReputation_t.
GetSteamID
CSteamID GetSteamID();
Obtiene el id. de Steam del servidor de juego.
Devuelve: CSteamIDHandleIncomingPacket
bool HandleIncomingPacket( const void *pData, int cbData, uint32 srcIP, uint16 srcPort );
Nombre | Tipo | Descripción |
pData | const void * | Los datos del paquete entrante. |
cbData | int | El tamaño de pData in bytes. |
srcIP | uint32 | Dirección IP a la que se envió este paquete conforme al orden del host, es decir, 127.0.0.1 == 0x7f000001. |
srcPort | uint16 | Puerto a través del cual se envió este paquete, conforme al orden del host. |
Gestiona un paquete del servidor maestro de Steam en el modo GameSocketShare.
En el modo GameSocketShare, en vez de que ISteamGameServer cree su propio socket para comunicarse con el servidor maestro, permite al juego utilizar el suyo propio para enviar mensajes
de ida y vuelta. Esto evita que tengamos que pedir a los operadores de servidores que abran un puerto más en sus firewalls.
Se debería llamar a esta función cada vez que entre un paquete que comience por 0xFFFFFFFF. Eso significa que es para nosotros.
Los parámetros de IP y puerto se usan cuando se elige multiplexar el socket UDP del servidor de juego, en vez de hacer que el actualizador del servidor maestro utilice sus propios sockets.
Los juegos con motor Source usan esta técnica para simplificar el trabajo de los administradores de servidores, de modo que no tengan que abrir más puertos en sus firewalls.
Solo
DESPUÉS DE llamar a esto, debes llamar a
ISteamGameServer::GetNextOutgoingPacket.
El modo GameSocketShare se puede habilitar cuando se llama a
SteamGameServer_Init.
Devuelve: bool
InitGameServer
bool InitGameServer( uint32 unIP, uint16 usGamePort, uint16 usQueryPort, uint32 unFlags, AppId_t nGameAppId, const char *pchVersionString );
Nombre | Tipo | Descripción |
unIP | uint32 | Dirección IP a la que se va a realizar el enlace. (Debería ser conforme al orden del host, es decir, 127.0.0.1 == 0x7f000001). Puedes usar INADDR_ANY para enlazar a todas las direcciones IPv4 locales. |
usGamePort | uint16 | Puerto al que se conectarán los clientes para jugar. |
usQueryPort | uint16 | Puerto que gestionará las tareas relacionadas con el navegador del servidor y los pings de información procedentes de los clientes. |
unFlags | uint32 | Unión de uno o más ServerFlags. |
nGameAppId | AppId_t | Id. de aplicación del juego para el que es este servidor. |
pchVersionString | const char * | La cadena de versión suele tener el formato x.x.x.x y el servidor maestro la usa para detectar cuándo está desactualizado el servidor. (Solo se mostrarán los servidores con la versión más reciente). |
Inicializa la instancia de ISteamGameServer. Esta es llamada por
SteamGameServer_Init y generalmente no será necesario que la llames directamente.
Si pasas
MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE a
usQueryPort
, entonces la API del servidor de juegos usa el modo "GameSocketShare", lo que significa que el juego es responsable de enviar y recibir paquetes UDP para el actualizador del servidor maestro.
Si se utiliza el modo GameSocketShare, debes usar
ISteamGameServer::HandleIncomingPacket y
ISteamGameServer::GetNextOutgoingPacket para interactuar con el servidor maestro de Steam.
Devuelve: bool
true si el servidor del juego pudo enlazarse correctamente a la IP o al puerto proporcionados; en caso contrario,
false indica un fallo.
LogOff
void LogOff();
Inicia el proceso para desconectar de Steam del servidor del juego.
Devuelve: void
Activa la función callback
SteamServerConnectFailure_t.
Activa la función callback
SteamServersConnected_t.
Activa la función callback
SteamServersDisconnected_t.
LogOn
void LogOn( const char *pszToken );
Nombre | Tipo | Descripción |
pszToken | const char * | |
Comienza el proceso de iniciar sesión en una cuenta persistente del servidor del juego.
Devuelve: void
Activa la función callback
SteamServerConnectFailure_t.
Activa la función callback
SteamServersConnected_t.
Activa la función callback
SteamServersDisconnected_t.
Véase también: ISteamGameServer::LogOnAnonymousLogOnAnonymous
void LogOnAnonymous();
Inicia sesión en una cuenta genérica y anónima.
Devuelve: void
Activa la función callback
SteamServerConnectFailure_t.
Activa la función callback
SteamServersConnected_t.
Activa la función callback
SteamServersDisconnected_t.
Véase también: ISteamGameServer::LogOnRequestUserGroupStatus
bool RequestUserGroupStatus( CSteamID steamIDUser, CSteamID steamIDGroup );
Nombre | Tipo | Descripción |
steamIDUser | CSteamID | Usuario cuyo estado de grupo se va a comprobar. |
steamIDGroup | CSteamID | El grupo a comprobar. |
Comprueba si un usuario está en el grupo de Steam especificado.
Devuelve: bool
Activa la función callback
GSClientGroupStatus_t.
true si la llamada se envió correctamente a los servidores de Steam; en caso contrario,
false si no estamos conectados a los servidores de Steam o si se proporcionó un usuario o un grupo no válidos.
SendUserConnectAndAuthenticate
bool SendUserConnectAndAuthenticate( uint32 unIPClient, const void *pvAuthBlob, uint32 cubAuthBlobSize, CSteamID *pSteamIDUser );
Nombre | Tipo | Descripción |
unIPClient | uint32 | Dirección IP del cliente que se conecta. Debería ser conforme al orden del host, es decir, 127.0.0.1 == 0x7f000001. |
pvAuthBlob | const void * | Los datos de autenticación proporcionados por el usuario al llamar a ISteamUser::InitiateGameConnection. |
cubAuthBlobSize | uint32 | El tamaño de pvAuthBlob en bytes. |
pSteamIDUser | CSteamID * | Devuelve el id. de Steam del usuario. Esto no debería ser NULL. |
Gestiona la recepción de una nueva conexión de un usuario de Steam. Pide a los servidores de Steam que validen la identidad del usuario, la propiedad de la aplicación y el estado de VAC.
Si los servidores de Steam no tienen conexión, validará el ticket guardado en la caché, que validará la propiedad de la aplicación y la identidad.
NOTA: Esto es parte de la API de autenticación de usuario antigua y no debe mezclarse con la nueva API.
Devuelve: bool
true si el ticket del usuario pasa comprobaciones básicas; de lo contrario,
false.
Si esta llamada se ejecuta correctamente, las funciones callback
GSClientApprove_t o
GSClientDeny_t te dirán si la autenticación para el usuario se ha ejecutado correctamente o no. El id. de Steam en la función callback coincidirá con el id. devuelto por esta llamada.
SendUserDisconnect
void SendUserDisconnect( CSteamID steamIDUser );
Nombre | Tipo | Descripción |
steamIDUser | CSteamID | Id. de Steam del usuario que ha dejado el servidor del juego. |
Debería llamarse siempre que un usuario deja el servidor del juego.
Permite a Steam realizar un seguimiento interno de qué usuarios están actualmente en qué servidor con el fin de impedir que una misma cuenta inicie sesión en varios servidores y mostrar quién está en ese momento en el servidor, etc.
NOTA: Esto es parte de la API de autenticación de usuario antigua y no debe mezclarse con la nueva API.
SetBotPlayerCount
void SetBotPlayerCount( int cBotplayers );
Nombre | Tipo | Descripción |
cBotplayers | int | Número de jugadores bot/IA que están jugando en el servidor. |
Establece el número de jugadores bot/IA en el servidor del juego. El valor predeterminado es 0.
SetDedicatedServer
void SetDedicatedServer( bool bDedicated );
Nombre | Tipo | Descripción |
bDedicated | bool | ¿Es este un servidor dedicado (true) o un servidor de escucha (false)? |
Establece si este es un servidor dedicado o de escucha. El valor predeterminado es servidor de escucha.
NOTA: Esto solo debe configurarse antes de llamar a
ISteamGameServer::LogOn o a
ISteamGameServer::LogOnAnonymous.
SetGameData
void SetGameData( const char *pchGameData );
Nombre | Tipo | Descripción |
pchGameData | const char * | El nuevo valor "gamedata" a establecer. No debe ser NULL ni una cadena vacía (""). Esto no puede ser más largo que k_cbMaxGameServerGameData. |
Establece una cadena que define "gamedata" para este servidor. Es opcional, pero, si se establece, permite a los usuarios filtrar según este valor en las interfaces de matchmaking/navegación del servidor.
Suele tener el formato de una lista separada por comas o por punto y coma.
No debe establecerse, salvo que varíe, ya que se transfiere al maestro una única vez, cuando lo verifica.
SetGameDescription
void SetGameDescription( const char *pszGameDescription );
Nombre | Tipo | Descripción |
pszGameDescription | const char * | La descripción de tu juego. No debe ser NULL ni una cadena vacía (""). Esto no puede ser más largo que k_cbMaxGameServerGameDescription. |
Establece la descripción del juego. Se recomienda establecer como valor el nombre completo del juego.
NOTA: Esto es necesario para todos los servidores de juego y solo se puede configurar antes de llamar a
ISteamGameServer::LogOn o
ISteamGameServer::LogOnAnonymous.
SetGameTags
void SetGameTags( const char *pchGameTags );
Nombre | Tipo | Descripción |
pchGameTags | const char * | El nuevo valor "gametags" a establecer. No debe ser NULL ni una cadena vacía (""). Esto no puede ser más largo que k_cbMaxGameServerTags. |
Establece una cadena que define "gametags" para este servidor. Es opcional, pero, si se establece, permite a los usuarios filtrar según este valor en las interfaces de matchmaking/navegación del servidor.
Suele tener el formato de una lista separada por comas o por punto y coma.
No debe establecerse, salvo que varíe, ya que se transfiere al maestro una única vez, cuando lo verifica.
SetHeartbeatInterval
void SetHeartbeatInterval( int iHeartbeatInterval );
Nombre | Tipo | Descripción |
iHeartbeatInterval | int | El intervalo entre el envío de señales de monitorización en milisegundos. Suele estar entre 250 y 1000. Usa -1 para indicar el valor predeterminado. |
Cambia la frecuencia con que se envían señales de monitorización a los servidores maestros de Steam.
Normalmente, no se necesita.
Véase también: ISteamGameServer::EnableHeartbeats,
ISteamGameServer::ForceHeartbeatSetKeyValue
void SetKeyValue( const char *pKey, const char *pValue );
Nombre | Tipo | Descripción |
pKey | const char * | |
pValue | const char * | |
Agrega/actualiza un par de reglas clave/valor.
Véase también: ISteamGameServer::ClearAllKeyValues,
ISteamMatchmakingServers::ServerRulesSetMapName
void SetMapName( const char *pszMapName );
Nombre | Tipo | Descripción |
pszMapName | const char * | El nuevo nombre del mapa para establecer. No debe ser NULL ni una cadena vacía (""). Esto no puede ser más largo que k_cbMaxGameServerMapName. |
Establece el nombre del mapa que se quiere informar en el navegador del servidor.
SetMaxPlayerCount
void SetMaxPlayerCount( int cPlayersMax );
Nombre | Tipo | Descripción |
cPlayersMax | int | Nuevo número máximo de jugadores permitidos en este servidor. |
Establece el número máximo de jugadores permitidos al mismo tiempo en el servidor.
Este valor se puede cambiar en cualquier momento.
SetModDir
void SetModDir( const char *pszModDir );
Nombre | Tipo | Descripción |
pszModDir | const char * | El directorio del juego que se va a establecer. No debe ser NULL ni una cadena vacía (""). Esto no puede ser más largo que k_cbMaxGameServerGameDir. |
Establece el directorio del juego.
Debería ser el mismo directorio donde se instala el juego. Únicamente el nombre de la carpeta, no la ruta completa (p. ej., "Spacewar").
NOTA: Esto se requiere para todos los servidores de juegos y solo se puede establecer antes de llamar a
ISteamGameServer::LogOn o
ISteamGameServer::LogOnAnonymous.
SetPasswordProtected
void SetPasswordProtected( bool bPasswordProtected );
Nombre | Tipo | Descripción |
bPasswordProtected | bool | Activa (true) o desactiva (false) la protección de contraseña. |
Establece si el servidor del juego requerirá una contraseña cuando el usuario intente unirse.
SetProduct
void SetProduct( const char *pszProduct );
Nombre | Tipo | Descripción |
pszProduct | const char * | El identificador único para tu juego. No debe ser NULL ni una cadena vacía (""). |
Establece el id. de producto del juego. En estos momentos, el servidor maestro lo usa para comprobar la versión.
Se recomienda convertir el id. de la aplicación de juegos a una cadena para esto.
NOTA: Esto se requiere para todos los servidores de juegos y solo se puede establecer antes de llamar a
ISteamGameServer::LogOn o
ISteamGameServer::LogOnAnonymous.
SetRegion
void SetRegion( const char *pszRegion );
Nombre | Tipo | Descripción |
pszRegion | const char * | |
Identificador de región. Es un campo opcional cuyo valor predeterminado es una cadena vacía, lo que representa la región "mundo".
SetServerName
void SetServerName( const char *pszServerName );
Nombre | Tipo | Descripción |
pszServerName | const char * | El nuevo nombre del servidor para establecer. No debe ser NULL ni una cadena vacía (""). Esto no puede ser más largo que k_cbMaxGameServerName. |
Establece el nombre del servidor tal como aparecerá en el navegador del servidor.
SetSpectatorPort
void SetSpectatorPort( uint16 unSpectatorPort );
Nombre | Tipo | Descripción |
unSpectatorPort | uint16 | El puerto para que los espectadores se unan. |
Establece si el servidor del juego permite espectadores y a qué puerto deben conectarse. El valor predeterminado es 0, lo que significa que el servicio no está en uso.
SetSpectatorServerName
void SetSpectatorServerName( const char *pszSpectatorServerName );
Nombre | Tipo | Descripción |
pszSpectatorServerName | const char * | El nombre del servidor de espectadores que se va a establecer. No debe ser NULL ni una cadena vacía (""). Esto no puede ser más largo que k_cbMaxGameServerMapName. |
Establece el nombre del servidor de espectadores. Solo se utiliza si el puerto de espectadores es distinto de cero.
UserHasLicenseForApp
EUserHasLicenseForAppResult UserHasLicenseForApp( CSteamID steamID, AppId_t appID );
Nombre | Tipo | Descripción |
steamID | CSteamID | Id. de Steam del usuario que envió el ticket de autenticación. |
id. de aplicación | AppId_t | Id. de aplicación del DLC del que hay que comprobar si es propiedad del usuario. |
Comprueba si el usuario posee una parte específica del
Contenido descargable (DLC).
Esto solo se puede llamar después de enviar el ticket de autenticación de los usuarios a
ISteamGameServer::BeginAuthSession/
Devuelve: EUserHasLicenseForAppResultVéase también: Autenticación de usuario y propiedadWasRestartRequested
bool WasRestartRequested();
Comprueba si el servidor maestro nos ha alertado de que el servidor de juego que estamos usando está desactualizado.
Esto vuelve a
false después de llamar a esta función.
Devuelve: bool
true si el servidor maestro quiere que este servidor de juegos se actualice y reinicie; de lo contrario,
false.
Devoluciones de llamada
Estas son funciones callback que pueden activarse cuando se hace una llamada a
SteamAPI_RunCallbacks. Muchas de estas se activarán directamente en respuesta a las funciones miembro de
ISteamGameServer
.
AssociateWithClanResult_t
Se envía cuando el servidor del juego intenta asociarse con un grupo de Steam.
Nombre | Tipo | Descripción |
m_eResult | EResult | Resultado de la operación. Posibles valores:
|
Funciones asociadas: ISteamGameServer::AssociateWithClanComputeNewPlayerCompatibilityResult_t
Se envía cuando el servidor del juego comprueba si el nuevo jugador puede entrar al servidor en función del sistema de amigos y enemigos.
Nombre | Tipo | Descripción |
m_eResult | EResult | Resultado de la operación. Posibles valores:
|
m_cPlayersThatDontLikeCandidate | int | Número de jugadores actuales que no quieren jugar con el jugador especificado. |
m_cPlayersThatCandidateDoesntLike | int | Número de jugadores en el servidor con los que el jugador especificado no quiere jugar. |
m_cClanPlayersThatDontLikeCandidate | int | Número de jugadores en el grupo de Steam asociado que no quieren jugar con el jugador. |
m_SteamIDCandidate | CSteamID | Id. de Steam del jugador especificado. |
Funciones asociadas: ISteamGameServer::ComputeNewPlayerCompatibilityGSClientAchievementStatus_t
Obsoleto. En su lugar, utilíza
ISteamGameServerStats.
Nombre | Tipo | Descripción |
m_SteamID | uint64 | Obsoleto |
m_pchAchievement | char[128] | Obsoleto |
m_bUnlocked | bool | Obsoleto |
GSClientApprove_t
Se ha aprobado la conexión de un cliente a este servidor de juego.
Nombre | Tipo | Descripción |
m_SteamID | CSteamID | Id. de Steam del usuario que quiere conectarse. |
m_OwnerSteamID | CSteamID | Id. de Steam del propietario del juego. Será diferente a m_SteamID si se accede al juego a través del préstamo familiar de Steam. |
GSClientDeny_t
Se llama cuando se deniega a un usuario la conexión a este servidor de juego.
Nombre | Tipo | Descripción |
m_SteamID | CSteamID | Id. de Steam del usuario que intentó conectarse. |
m_eDenyReason | EDenyReason | Razón por la que se rechazó al jugador. |
m_rgchOptionalText | char[128] | Mensaje de texto opcional que explica el motivo de la denegación. Normalmente no se utiliza, excepto para el registro. |
GSClientGroupStatus_t
Se llama cuando recibimos el estado de grupo de un usuario.
Nombre | Tipo | Descripción |
m_SteamIDUser | CSteamID | Usuario cuyo estado de grupo solicitamos. |
m_SteamIDGroup | CSteamID | El grupo que se consultó. |
m_bMember | bool | ¿El usuario es miembro del grupo (true) o no (false)? |
m_bOfficer | bool | ¿El usuario es un oficial en el grupo (true) o no (false)? Nunca tendrá valor true si el valor de m_bMember es false. |
Funciones asociadas: ISteamGameServer::RequestUserGroupStatusGSClientKick_t
Se llama cuando el servidor de juego debe expulsar al usuario.
Nombre | Tipo | Descripción |
m_SteamID | CSteamID | Id. de Steam del jugador que se va a expulsar. |
m_eDenyReason | EDenyReason | Razón por la que se expulsa al jugador. |
GSGameplayStats_t
En desuso: se llama cuando se ha consultado información de estadísticas de juego usando
ISteamGameServer::GetGameplayStats.
Nombre | Tipo | Descripción |
m_eResult | EResult | Resultado de la operación. |
m_nRank | int32 | Clasificación general del servidor (desde la posición 0). |
m_unTotalConnects | uint32 | Número total de clientes que se han conectado al servidor. |
m_unTotalMinutesPlayed | uint32 | Número total de minutos jugados en el servidor. |
Funciones asociadas: ISteamGameServer::GetGameplayStatsGSPolicyResponse_t
Se recibe cuando el servidor de juego solicita aparecer como seguro (protegido mediante VAC).
Nombre | Tipo | Descripción |
m_bSecure | uint8 | ¿El servidor está configurado ahora como seguro (true) o inseguro (false)? |
GSReputation_t
Obsoleto. Se usa cuando se consulta la reputación del servidor del juego.
Las prohibiciones del servidor maestro son por IP, por lo que se puede prohibir incluso cuando la puntuación es buena si hay un servidor defectuoso en otro puerto.
Esta información se puede utilizar para determinar qué servidor es malo.
Nombre | Tipo | Descripción |
m_eResult | EResult | Resultado de la operación. |
m_unReputationScore | uint32 | Puntuación de reputación del servidor de juego. |
m_bBanned | bool | ¿Se ha bloqueado el servidor desde los servidores maestros de Steam (true) o no (false)? |
m_unBannedIP | uint32 | IP del servidor bloqueado. Solo se establece si m_bBanned es true. |
m_usBannedPort | uint16 | Puerto del servidor bloqueado. Solo se establece si m_bBanned es true. |
m_ulBannedGameID | uint64 | Id. del juego al que sirve el servidor bloqueado. Solo se establece si m_bBanned es true. |
m_unBanExpires | uint32 | Momento en que termina el bloqueo, expresado en formato de tiempo Unix (segundos transcurridos desde el 1 de enero de 1970). Solo se establece si m_bBanned es true. |
Funciones asociadas: ISteamGameServer::GetServerReputationConstantes
Estas son constantes definidas para usarse con ISteamGameServer.
Nombre | Tipo | Valor | Descripción |
k_unServerFlagActive | uint32 | 0x01 | El servidor de juego tiene usuarios que están jugando. |
k_unServerFlagDedicated | uint32 | 0x04 | Este servidor de juego es dedicado. |
k_unServerFlagLinux | uint32 | 0x08 | El servidor de juego se ejecuta en Linux. |
k_unServerFlagNone | uint32 | 0x00 | El servidor de juego no tiene marcas. |
k_unServerFlagPassworded | uint32 | 0x10 | El servidor de juego está protegido por contraseña. |
k_unServerFlagPrivate | uint32 | 0x20 | Este servidor de juegos no debe aparecer en la lista del servidor maestro y no impondrá la autenticación de los usuarios que se conectan al servidor. Esto es útil cuando ejecutas un servidor donde los clientes pueden no estar conectados a Internet, pero deseas que les permitan jugar (es decir, LAN). |
k_unServerFlagSecure | uint32 | 0x02 | Este servidor de juego quiere estar protegido por VAC. |
MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE | int | ((uint16)-1) | Se usa con SteamGameServer_Init para habilitar el modo GameSocketShare. |
STEAMGAMESERVER_INTERFACE_VERSION | const char * | "SteamGameServer012" | |