Документация Steamworks
Интерфейс ISteamGameServer
Ядро интерфейса игровых серверов Steam.

Функции-члены

Функции-члены ISteamGameServer вызываются с помощью глобальной функции доступа SteamGameServer().

AssociateWithClan

SteamAPICall_t AssociateWithClan( CSteamID steamIDClan );
НазваниеТипОписание
steamIDClanCSteamIDSteamID группы, с которой вы хотите ассоциироваться.

Ассоциирует игровой сервер с кланом для целей вычисления совместимости игроков.

Возвращает: SteamAPICall_t, который необходимо использовать с результатом вызова AssociateWithClanResult_t.

BeginAuthSession

EBeginAuthSessionResult BeginAuthSession( const void *pAuthTicket, int cbAuthTicket, CSteamID steamID );
НазваниеТипОписание
pAuthTicketconst void *Билет аутентификации, который необходимо проверить.
cbAuthTicketintРазмер билета аутентификации в байтах. Размер должен соответствовать значению pcbTicket, предоставленному вызовом, во время которого создан этот билет.
steamIDCSteamIDSteamID сущности, отправившей этот билет.

Аутентифицирует билет, полученный от сущности со SteamID, чтобы убедиться, что билет действителен и не используется повторно. Обратите внимание, что сущность не подтверждается, пока не получен обратный вызов ValidateAuthTicketResponse_t и не проверено возвращённое в нём значение.

Билет создаётся внутри сущности с помощью ISteamUser::GetAuthSessionTicket или ISteamGameServer::GetAuthSessionTicket, и затем его необходимо отправить по сети и получатель должен его проверить.

Этот вызов регистрируется для получения обратных вызовов ValidateAuthTicketResponse_t на случай, если сущность выйдет из сети или отменит билет. Дополнительную информацию см. в EAuthSessionResponse.

Когда сессия многопользовательской игры заканчивается, вы должны вызвать ISteamGameServer::EndAuthSession.

Возвращаемые значения: EBeginAuthSessionResult


См. также: Аутентификация и проверка владения

BLoggedOn

bool BLoggedOn();
Проверяет, залогинен ли игровой сервер.

Возвращаемые значения: bool
true, если да, в противном случае, false.

BSecure

bool BSecure();
Проверяет, находится ли игровой сервер в безопасном режиме.

Возвращает: bool
true, если да, в противном случае false.

См. также: EServerMode, GSPolicyResponse_t

BUpdateUserData

bool BUpdateUserData( CSteamID steamIDUser, const char *pchPlayerName, uint32 uScore );
НазваниеТипОписание
steamIDUserCSteamIDSteamID пользователя.
pchPlayerNameconst char *Имя пользователя.
uScoreuint32Текущий счёт пользователя.

Обновляет данные, которые отображаются в окне поиска серверов и интерфейсе подбора игр для пользователя, в данный момент подключённого к серверу.

ВНИМАНИЕ: этот вызов является частью старого API аутентификации пользователей, его не следует смешивать с новым API.

Возвращает: bool
true, если вызов успешен, в противном случае false в случае, если произошла ошибка (к примеру, steamIDUser не является игроком на текущем сервере).

См. также: Аутентификация и проверка владения

CancelAuthTicket

void CancelAuthTicket( HAuthTicket hAuthTicket );
НазваниеТипОписание
hAuthTicketHAuthTicketАктивный билет аутентификации, который необходимо отменить.

Отменяет билет аутентификации, полученный от ISteamUser::GetAuthSessionTicket. Этот вызов необходимо отправить, когда больше не играем с указанной сущностью.

См. также: Аутентификация и проверка владения

ClearAllKeyValues

void ClearAllKeyValues();
Целиком очищает список пар ключ-значение, отправляемых в очередь правил.

См. также: ISteamGameServer::SetKeyValue, ISteamMatchmakingServers::ServerRules

ComputeNewPlayerCompatibility

SteamAPICall_t ComputeNewPlayerCompatibility( CSteamID steamIDNewPlayer );
НазваниеТипОписание
steamIDNewPlayerCSteamIDSteamID игрока, который пытается присоединиться.

Проверяет, если какой-то из текущих игроков не хочет играть с новым игроком, который пытается присоединиться, или наоборот. Основывается на системе «друг-враг».

Возвращает: SteamAPICall_t, который необходимо использовать с результатом вызова ComputeNewPlayerCompatibilityResult_t.

CreateUnauthenticatedUserConnection

CSteamID CreateUnauthenticatedUserConnection();
Создаёт поддельного пользователя (к примеру, бот), который будет указан как играющий на сервере, но пропускает проверку.

ВНИМАНИЕ: этот вызов является частью старого API аутентификации пользователей, его не следует смешивать с новым API.

Возвращаемые значения: CSteamID
Возвращает SteamID для отслеживания бота.

Когда этот пользователь покидает сервер, вы должны вызвать ISteamGameServer::SendUserDisconnect, как если бы это был реальный пользователь.

EnableHeartbeats

void EnableHeartbeats( bool bActive );
НазваниеТипОписание
bActiveboolВключить (true) или выключить (false) средство обновления мастер-сервера.

Сообщает мастер-серверам Steam, хотите ли вы быть активным.

Если включено, сервер будет разговаривать с мастер-серверами, если нет, тогда входящие сообщения будут проигнорированы, а пульсирующие сигналы не будут отправляться.

См. также: ISteamGameServer::SetHeartbeatInterval, ISteamGameServer::ForceHeartbeat

EndAuthSession

void EndAuthSession( CSteamID steamID );
НазваниеТипОписание
steamIDCSteamIDСущность, для которой необходимо завершить активную сессию аутентификации.

Завершает сессию, начатую с помощью ISteamGameServer::BeginAuthSession. Этот вызов необходимо отправить, когда больше не играем с указанной сущностью.

См. также: Аутентификация и проверка владения

ForceHeartbeat

void ForceHeartbeat();
Принудительно отправить пульсирующий сигнал к мастер-серверам Steam при следующей возможности.

Обычно вам это не требуется.

См. также: ISteamGameServer::EnableHeartbeats, ISteamGameServer::SetHeartbeatInterval

GetAuthSessionTicket

HAuthTicket GetAuthSessionTicket( void *pTicket, int cbMaxTicket, uint32 *pcbTicket );
НазваниеТипОписание
pTicketvoid *Буфер, куда будет скопирован новый билет аутентификации, если вызов удался.
cbMaxTicketintРазмер буфера, выделяемого для pTicket. Обязательно должен быть равен 1024.
pcbTicketuint32 *Возвращает длину текущего билета.

Получает билет аутентификации, который необходимо отправить сущности, которая желает вас аутентифицировать.

После этого вызова вы можете отправить билет сущности, которая сможет отправить вызов ISteamUser::BeginAuthSession для проверки целостности сущности.

При создании билета для использования веб-API-функцией ISteamUserAuth/AuthenticateUserTicket, вызывающее приложение должно дождаться обратного вызова GetAuthSessionTicketResponse_t, сгенерированного вызовом, прежде чем пытаться использовать билет, чтобы убедиться, что билет дошёл до сервера. Если этот обратный вызов не вернулся своевременно (10—20 секунд), это означает, что ваш клиент не подключен к Steam, а вызов AuthenticateUserTicket не состоится, поскольку он не сможет аутентифицировать пользователя.

Возвращаемые значения: HAuthTicket
Активирует обратный вызов GetAuthSessionTicketResponse_t.
Дескриптор билета аутентификации. Когда общение с сущностью окончено, необходимо вызвать ISteamGameServer::CancelAuthTicket с этим дескриптором.

Возвращает k_HAuthTicketInvalid, если вызов не успешен.

См. также: Аутентификация и проверка владения

GetGameplayStats

void GetGameplayStats();
Устарело — будет удалено в будущих выпусках SDK.

Возвращаемые значения: void
Активирует обратный вызов GSGameplayStats_t.

GetNextOutgoingPacket

int GetNextOutgoingPacket( void *pOut, int cbMaxOut, uint32 *pNetAdr, uint16 *pPort );
НазваниеТипОписание
pOutvoid *Возвращает пакет, который необходимо отправить, копируя его в этот буфер. Размер пакета может достигать 16 кибибайт, поэтому выделите достаточно места.
cbMaxOutintРазмер буфера, предоставленного в pOut, должен быть 16 * 1024.
pNetAdruint32 *Возвращает IP-адрес, по которому необходимо отправить этот пакет, в порядке узлов, к примеру, 127.0.0.1 == 0x7f000001.
pPortuint16 *Возвращает порт, через который необходимо отправить этот пакет, в порядке узлов.

Получает пакет, который средство обновления мастер-сервера должно отправить по UDP в режиме GameSocketShare.

ВНИМАНИЕ: этот вызов может быть выполнен только ПОСЛЕ вызова ISteamGameServer::HandleIncomingPacket для всех пакетов, которые пришли в этом кадре.

ВНИМАНИЕ: в режиме GameSocketShare НЕОБХОДИМО повторно выполнять этот вызов каждый кадр, пока он не вернёт 0.

Режим GameSocketShare может быть включен во время вызова SteamGameServer_Init.

Возвращает: int
Длина пакета, который необходимо отправить, либо 0, если в этом кадре больше нет пакетов для отправки.

GetPublicIP

uint32 GetPublicIP();
Получает публичный IP сервера, известный Steam.

Это используется, когда сервер находится за NAT, а вы хотите рекламировать его IP в лобби, чтобы другие клиенты могли подключиться к нему напрямую.

Возвращает: uint32
Публичный IP-адрес в порядке узлов, к примеру, 127.0.0.1 == 0x7f000001.

Возвращает 0, если IP нельзя определить.

GetServerReputation

SteamAPICall_t GetServerReputation();
Устарело — будет удалено в будущих выпусках SDK.

Возвращает: SteamAPICall_t, который необходимо использовать с результатом вызова GSReputation_t.

GetSteamID

CSteamID GetSteamID();
Получает SteamID игрового сервера.

Возвращаемые значения: CSteamID

HandleIncomingPacket

bool HandleIncomingPacket( const void *pData, int cbData, uint32 srcIP, uint16 srcPort );
НазваниеТипОписание
pDataconst void *Данные из входящего пакета.
cbDataintРазмер pData в байтах.
srcIPuint32IP-адрес, по которому был отправлен этот пакет, в порядке узлов, к примеру, 127.0.0.1 == 0x7f000001.
srcPortuint16Порт, через который был отправлен этот пакет, в порядке узлов.

Управляет пакетом мастер-сервера Steam во время работы режима GameSocketShare.

Во время работы режима GameSocketShare вместо того, чтобы создавать собственный сокет для общения с мастер-сервером для ISteamGameServer, этот вызов позволяет игре использовать её сокет
для отправки сообщений. Это позволяет не требовать от владельцев серверов открытия дополнительных портов в их брандмауэрах.

Этот вызов должен быть выполнен всякий раз, когда входящий пакет начинается с 0xFFFFFFFF. Это означает, что он предназначен для нас.

Параметры IP-адрес и порт используются, когда вы решили мультиплексировать UDP-сокет игрового сервера вместо того, чтобы дать средству обновления мастер-сервера использовать собственные сокеты.

Игры на движке Source используют этот метод для того, чтобы упростить работу администраторов серверов, так что им не требуется открывать больше портов в брандмауэрах.

Только ПОСЛЕ выполнения данного вызова может быть выполнен вызов ISteamGameServer::GetNextOutgoingPacket.

Режим GameSocketShare может быть включен во время вызова SteamGameServer_Init.

Возвращаемые значения: bool

InitGameServer

bool InitGameServer( uint32 unIP, uint16 usGamePort, uint16 usQueryPort, uint32 unFlags, AppId_t nGameAppId, const char *pchVersionString );
НазваниеТипОписание
unIPuint32IP-адрес, к которому необходимо привязаться. (В порядке узлов, по существу, 127.0.0.1 == 0x7f000001). Вы можете использовать INADDR_ANY для привязки ко всем локальным IPv4-адресам.
usGamePortuint16Порт, к которому будут подключаться клиенты для игры.
usQueryPortuint16Порт, который будет управлять обязанностями, связанными с окном поиска серверов, и запросами информации от клиентов.
unFlagsuint32Объединение одного или нескольких ServerFlags.
nGameAppIdAppId_tAppID игры, для которой предназначен данный сервер.
pchVersionStringconst char *Строка с версией обычно представлена в формате x.x.x.x, она используется мастер-сервером для определения, что сервер устарел. (Будут перечислены только серверы с последней версией).

Инициализирует данный экземпляр ISteamGameServer. Вызывается SteamGameServer_Init, так что обычно напрямую выполнять этот вызов не требуется.

Если вы передадите MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE в usQueryPort, API игрового сервера будет использовать режим GameSocketShare, что будет означать, что игра несет ответственность за отправку и получение UDP-пакетов для средства обновления мастер-сервера.

Если используется режим GameSocketShare, для взаимодействия с мастер-сервером Steam необходимо использовать ISteamGameServer::HandleIncomingPacket и ISteamGameServer::GetNextOutgoingPacket.

Возвращаемые значения: bool
true, если игровой сервер успешно связался с предоставленным IP/портом. В случае неудачи false.

LogOff

void LogOff();
Начинает процесс выхода игрового сервера из Steam.

Возвращаемые значения: void
Активирует обратный вызов SteamServerConnectFailure_t.
Активирует обратный вызов SteamServersConnected_t.
Активирует обратный вызов SteamServersDisconnected_t.

LogOn

void LogOn( const char *pszToken );
НазваниеТипОписание
pszTokenconst char *

Начинает процесс входа в аккаунт постоянного игрового сервера.

Возвращаемые значения: void
Активирует обратный вызов SteamServerConnectFailure_t.
Активирует обратный вызов SteamServersConnected_t.
Активирует обратный вызов SteamServersDisconnected_t.


См. также: ISteamGameServer::LogOnAnonymous

LogOnAnonymous

void LogOnAnonymous();
Начинает процесс входа в обычный, анонимный аккаунт.

Возвращает: void
Активирует обратный вызов SteamServerConnectFailure_t.
Активирует обратный вызов SteamServersConnected_t.
Активирует обратный вызов SteamServersDisconnected_t.


См. также: ISteamGameServer::LogOn

RequestUserGroupStatus

bool RequestUserGroupStatus( CSteamID steamIDUser, CSteamID steamIDGroup );
НазваниеТипОписание
steamIDUserCSteamIDПользователь, статус которого необходимо проверить.
steamIDGroupCSteamIDПроверяемая группа.

Проверяет, состоит ли пользователь в указанной группе Steam.

Возвращаемые значения: bool
Активирует обратный вызов GSClientGroupStatus_t.
true, если вызов успешно отправлен на сервер Steam. В противном случае false, если мы не соединены с серверами Steam, либо были предоставлены недействительный пользователь или группа.

SendUserConnectAndAuthenticate

bool SendUserConnectAndAuthenticate( uint32 unIPClient, const void *pvAuthBlob, uint32 cubAuthBlobSize, CSteamID *pSteamIDUser );
НазваниеТипОписание
unIPClientuint32IP-адрес соединяющегося клиента. (В порядке узлов, 127.0.0.1 == 0x7f000001).
pvAuthBlobconst void *Данные аутентификации, предоставленные пользователем при вызове ISteamUser::InitiateGameConnection.
cubAuthBlobSizeuint32Размер pvAuthBlob в байтах.
pSteamIDUserCSteamID *Возвращает SteamID пользователя. Не может быть равно NULL.

Управляет получением нового соединения от пользователя Steam. Этот вызов попросит сервера Steam подтвердить идентичность пользователя, владение приложением и статус в системе VAC.

Если серверы Steam не в сети, система подтвердит кэшированный билет самостоятельно, что подтвердит владение приложением и идентичность пользователя.

ВНИМАНИЕ: этот вызов является частью старого API аутентификации пользователей, его не следует смешивать с новым API.

Возвращает: bool
true, если билет пользователя проходит основные проверки, в противном случае false.

Если вызов был успешен, следует ожидать обратный вызов GSClientApprove_t или GSClientDeny_t, который сообщит, аутентифицирован пользователь или нет. SteamID в обратном вызове будет соответствовать возвращаемому данным вызовом.

SendUserDisconnect

void SendUserDisconnect( CSteamID steamIDUser );
НазваниеТипОписание
steamIDUserCSteamIDSteamID пользователя, который покинул игровой сервер.

Этот вызов должен быть выполнен всякий раз, когда пользователь покидает игровой сервер.

Это позволяет Steam отслеживать, какие пользователи в текущий момент находятся на тех или иных серверах, чтобы не допустить ситуацию, когда один аккаунт зашёл не несколько серверов, а также чтобы показывать, кто находится на том или ином сервере в настоящий момент.

ВНИМАНИЕ: этот вызов является частью старого API аутентификации пользователей, его не следует смешивать с новым API.

SetBotPlayerCount

void SetBotPlayerCount( int cBotplayers );
НазваниеТипОписание
cBotplayersintЧисло ботов или игроков с искусственным интеллектом на сервере.

Задаёт число ботов или игроков с искусственным интеллектом на игровом сервере. По умолчанию равно 0.

SetDedicatedServer

void SetDedicatedServer( bool bDedicated );
НазваниеТипОписание
bDedicatedboolЭто выделенный (true) или слушающий (false) сервер?

Задаёт тип сервера: выделенный или слушающий. По умолчанию — слушающий.

ВНИМАНИЕ: задать тип сервера можно только до вызовов ISteamGameServer::LogOn или ISteamGameServer::LogOnAnonymous.

SetGameData

void SetGameData( const char *pchGameData );
НазваниеТипОписание
pchGameDataconst char *Новое значение "gamedata", которое необходимо установить. Не может быть равно NULL или пустой строке (""). Не может быть длиннее, чем k_cbMaxGameServerGameData.

Задаёт строковое определение "gamedata" для данного сервера. Это опционально, но если задано, это позволяет пользователям фильтровать серверы по данному значению при подборе игр или в окне поиска серверов.

Форматируется обычно как список с разделителем в виде запятой или точки с запятой.

Не нужно задавать это значение или значения, пока они действительно не изменятся: это отправляется на мастер только однажды, при подтверждении.

SetGameDescription

void SetGameDescription( const char *pszGameDescription );
НазваниеТипОписание
pszGameDescriptionconst char *Описание вашей игры. Не может быть равно NULL или пустой строке (""). Не может быть длиннее, чем k_cbMaxGameServerGameDescription.

Задаёт описание игры. Рекомендуется указать здесь полное название вашей игры.

ВНИМАНИЕ: это необходимо для всех игровых серверов и может быть задано только до вызовов ISteamGameServer::LogOn или ISteamGameServer::LogOnAnonymous.

SetGameTags

void SetGameTags( const char *pchGameTags );
НазваниеТипОписание
pchGameTagsconst char *Новое значение "gametags", которое необходимо установить. Не может быть равно NULL или пустой строке (""). Не может быть длиннее, чем k_cbMaxGameServerTags.

Задаёт строковое определение "gametags" для данного сервера. Это опционально, но если задано, это позволяет пользователям фильтровать серверы по данному значению при подборе игр или в окне поиска серверов.

Форматируется обычно как список с разделителем в виде запятой или точки с запятой.

Не нужно задавать это значение или значения, пока они действительно не изменятся: это отправляется на мастер только однажды, при подтверждении.

SetHeartbeatInterval

void SetHeartbeatInterval( int iHeartbeatInterval );
НазваниеТипОписание
iHeartbeatIntervalintИнтервал отправки пульсирующих сигналов в миллисекундах. Обычно в интервале между 250 и 1000. Чтобы использовать значение по умолчанию, укажите -1.

Меняет частоту отправки пульсирующих сигналов на мастер-серверы Steam.

Обычно вам это не требуется.

См. также: ISteamGameServer::EnableHeartbeats, ISteamGameServer::ForceHeartbeat

SetKeyValue

void SetKeyValue( const char *pKey, const char *pValue );
НазваниеТипОписание
pKeyconst char *
pValueconst char *

Добавляет или обновляет пару ключ-значение правил.

См. также: ISteamGameServer::ClearAllKeyValues, ISteamMatchmakingServers::ServerRules

SetMapName

void SetMapName( const char *pszMapName );
НазваниеТипОписание
pszMapNameconst char *Новое название карты, которое необходимо задать. Не может быть равно NULL или пустой строке (""). Не может быть длиннее, чем k_cbMaxGameServerMapName.

Задаёт название карты, сообщаемое в окне поиска серверов.

SetMaxPlayerCount

void SetMaxPlayerCount( int cPlayersMax );
НазваниеТипОписание
cPlayersMaxintНовый максимум игроков на данном сервере.

Задаёт новый одновременный максимум игроков на данном сервере.

Это значение можно изменить в любое время.

SetModDir

void SetModDir( const char *pszModDir );
НазваниеТипОписание
pszModDirconst char *Папка с игрой, которую необходимо задать. Не может быть равно NULL или пустой строке (""). Не может быть длиннее, чем k_cbMaxGameServerGameDir.

Задаёт папку с игрой.

Это должна быть та же папка, в которую устанавливается игра. Только имя папки, а не путь целиком, к примеру, Spacewar.

ВНИМАНИЕ: это необходимо для всех игровых серверов и может быть задано только до вызовов ISteamGameServer::LogOn или ISteamGameServer::LogOnAnonymous.

SetPasswordProtected

void SetPasswordProtected( bool bPasswordProtected );
НазваниеТипОписание
bPasswordProtectedboolВключить (true) или выключить (false) защиту с помощью пароля.

Устанавливает, должен ли игровой сервер требовать пароль, когда пользователь пытается войти.

SetProduct

void SetProduct( const char *pszProduct );
НазваниеТипОписание
pszProductconst char *Уникальный идентификатор вашей игры. Не может быть равно NULL или пустой строке ("").

Задаёт идентификатор игрового продукта. Используется мастер-сервером для целей проверки версий.

Рекомендуется конвертировать AppID игры в строку.

ВНИМАНИЕ: это необходимо для всех игровых серверов и может быть задано только до вызовов ISteamGameServer::LogOn или ISteamGameServer::LogOnAnonymous.

SetRegion

void SetRegion( const char *pszRegion );
НазваниеТипОписание
pszRegionconst char *

Идентификатор региона. Этот параметр необязателен. По умолчанию он равен пустой строке, что означает регион "world".

SetServerName

void SetServerName( const char *pszServerName );
НазваниеТипОписание
pszServerNameconst char *Новое название сервера, которое необходимо задать. Не может быть равно NULL или пустой строке (""). Не может быть длиннее, чем k_cbMaxGameServerName.

Задаёт название сервера, сообщаемое в окне поиска серверов.

SetSpectatorPort

void SetSpectatorPort( uint16 unSpectatorPort );
НазваниеТипОписание
unSpectatorPortuint16Порт, к которому необходимо подключиться зрителям.

Задаёт, разрешены ли на сервере зрители, и к какому порту им следует подключаться. По умолчанию равно 0, что означает, что служба не используется.

SetSpectatorServerName

void SetSpectatorServerName( const char *pszSpectatorServerName );
НазваниеТипОписание
pszSpectatorServerNameconst char *Новое название зрительского сервера, которое необходимо задать. Не может быть равно NULL или пустой строке (""). Не может быть длиннее, чем k_cbMaxGameServerMapName.

Задаёт название зрительского сервера. Используется, только если зрительский порт не равен нулю.

UserHasLicenseForApp

EUserHasLicenseForAppResult UserHasLicenseForApp( CSteamID steamID, AppId_t appID );
НазваниеТипОписание
steamIDCSteamIDSteamID пользователя, отправившего билет аутентификации.
appIDAppId_tAppID доп. контента, владение которым пользователем необходимо проверить.

Проверяет, имеется ли у пользователя определённый элемент доп. контента.

Может быть вызвано только после отправки билета аутентификации пользователя в ISteamGameServer::BeginAuthSession.

Возвращаемые значения: EUserHasLicenseForAppResult


См. также: Аутентификация и проверка владения

WasRestartRequested

bool WasRestartRequested();
Проверяет, уведомил ли мастер-сервер вас о том, что ваш сервер устарел.

После выполнения этой функции возвращается к false.

Возвращаемые значения: bool
true, если мастер-сервер требует от игрового сервера обновиться и перезапуститься. В противном случае false.

Обратные вызовы

Далее приведён список обратных вызовов, которые могут быть получены при вызове SteamAPI_RunCallbacks. Многие из них могут быть получены сразу в ответ на функции-члены ISteamGameServer.

AssociateWithClanResult_t

Отправляется, когда игровой сервер пытается привязаться к группе Steam.

НазваниеТипОписание
m_eResultEResultРезультат операции. Возможные значения:
  • k_EResultOK. Успешно.
  • k_EResultFail. Сервер не смог привязаться к указанной группе.

Связанные функции: ISteamGameServer::AssociateWithClan

ComputeNewPlayerCompatibilityResult_t

Отправляется, когда игровой сервер проверяет, подходит ли новый игрок для сервера, основываясь на данных системы «друг-враг».

НазваниеТипОписание
m_eResultEResultРезультат операции. Возможные значения:
m_cPlayersThatDontLikeCandidateintЧисло текущих игроков, которым не нравится играть с указанным игроком.
m_cPlayersThatCandidateDoesntLikeintЧисло игроков на сервере, с которыми не нравится играть указанному игроку.
m_cClanPlayersThatDontLikeCandidateintЧисло игроков в привязанной группе Steam, которые не хотят играть с указанным игроком.
m_SteamIDCandidateCSteamIDSteamID указанного пользователя.

Связанные функции: ISteamGameServer::ComputeNewPlayerCompatibility

GSClientAchievementStatus_t

Устарело, вместо этого используйте ISteamGameServerStats

НазваниеТипОписание
m_SteamIDuint64Устарело
m_pchAchievementchar[128]Устарело
m_bUnlockedboolУстарело

GSClientApprove_t

Соединение клиента с этим игровым сервером одобрено.

НазваниеТипОписание
m_SteamIDCSteamIDSteamID пользователя, который хочет присоединиться.
m_OwnerSteamIDCSteamIDSteamID того, кто владеет игрой. Отличается от m_SteamID в случае, если доступ к игре получен с помощью функции Family Sharing.

GSClientDeny_t

Вызывается, когда пользователю не разрешено соединение с этим игровым сервером.

НазваниеТипОписание
m_SteamIDCSteamIDSteamID пользователя, который пытался присоединиться.
m_eDenyReasonEDenyReasonПричина, по которой соединение запрещено.
m_rgchOptionalTextchar[128]Опциональное текстовое сообщение с причиной запрета. Обычно не используется, за исключением случаев ведения записей.

GSClientGroupStatus_t

Вызывается, когда мы получили групповой статус пользователя.

НазваниеТипОписание
m_SteamIDUserCSteamIDПользователь, чей групповой статус мы запросили.
m_SteamIDGroupCSteamIDГруппа, которую мы запросили.
m_bMemberboolЯвляется ли пользователь участником группы (если да — true, если нет — false)?
m_bOfficerboolЯвляется ли пользователь офицером группы (если да — true, если нет — false)? Это не может равняться true, если m_bMember равно false.

Связанные функции: ISteamGameServer::RequestUserGroupStatus

GSClientKick_t

Вызывается, когда игровой сервер должен выгнать пользователя.

НазваниеТипОписание
m_SteamIDCSteamIDSteamID игрока, которого необходимо выгнать
m_eDenyReasonEDenyReasonПричина, по которой пользователя необходимо выгнать.

GSGameplayStats_t

Устарело. Вызывалось, когда с помощью ISteamGameServer::GetGameplayStats запрашивалась информация о игровой статистике.

НазваниеТипОписание
m_eResultEResultРезультат операции.
m_nRankint32Общий ранг сервера (отсчёт начинается с 0).
m_unTotalConnectsuint32Общее число клиентов, которые когда-либо подключались к серверу.
m_unTotalMinutesPlayeduint32Общее число минут, сыгранных на сервере.

Связанные функции: ISteamGameServer::GetGameplayStats

GSPolicyResponse_t

Получается, когда игровой сервер запрашивает, чтобы он отображался как безопасный (под защитой системы VAC).

НазваниеТипОписание
m_bSecureuint8Сервер стал безопасным (true) или остался небезопасным (false)?

GSReputation_t

Устарело. Вызывалось, когда запрашивалась репутация игрового сервера.

Блокировки со стороны мастер-сервера выдаются по IP, поэтому сервер может быть заблокированным, даже если он на хорошем счету, но на другом порте есть плохой сервер.
Информация используется для определения, какой сервер считается плохим.

НазваниеТипОписание
m_eResultEResultРезультат операции.
m_unReputationScoreuint32Очки репутации игрового сервера.
m_bBannedboolСервер заблокирован мастер-серверами Steam (true) или нет (false)?
m_unBannedIPuint32IP заблокированного сервера. Задаётся, только если m_bBanned = true.
m_usBannedPortuint16Порт заблокированного сервера. Задаётся, только если m_bBanned = true.
m_ulBannedGameIDuint64ID игры, которую обслуживает заблокированный сервер. Задаётся, только если m_bBanned = true.
m_unBanExpiresuint32Время, когда истечёт срок блокировки, в формате UNIX-времени (секунды с 1 января 1970 года). Задаётся, только если m_bBanned = true.

Связанные функции: ISteamGameServer::GetServerReputation

Константы

Далее приведён список констант, которые определены для использования с ISteamGameServer.

НазваниеТипЗначениеОписание
k_unServerFlagActiveuint320x01На игровом сервер есть играющие пользователи.
k_unServerFlagDedicateduint320x04Игровой сервер является выделенным.
k_unServerFlagLinuxuint320x08Игровой сервер запущен на Linux.
k_unServerFlagNoneuint320x00У игрового сервера нет флагов.
k_unServerFlagPasswordeduint320x10Игровой сервер защищён паролем.
k_unServerFlagPrivateuint320x20Игровой сервер не должен быть указан в списке серверов для мастер-сервера и не требует аутентификации пользователей. которые соединяются с ним.
Используется, когда у вас есть сервер, где клиенты могут быть не подключены к сети, но вы хотите позволить им играть (к примеру, по LAN).
k_unServerFlagSecureuint320x02Игровой сервер желает быть под защитой VAC.
MASTERSERVERUPDATERPORT_USEGAMESOCKETSHAREint((uint16)-1)Используется с SteamGameServer_Init для включения режима GameSocketShare.
STEAMGAMESERVER_INTERFACE_VERSIONconst char *"SteamGameServer012"