Ядро интерфейса игровых серверов Steam.
Функции-члены
Функции-члены
ISteamGameServer
вызываются с помощью глобальной функции доступа
SteamGameServer()
.
AssociateWithClan
SteamAPICall_t AssociateWithClan( CSteamID steamIDClan );
Название | Тип | Описание |
steamIDClan | CSteamID | SteamID группы, с которой вы хотите ассоциироваться. |
Ассоциирует игровой сервер с кланом для целей вычисления совместимости игроков.
Возвращает: SteamAPICall_t, который необходимо использовать с результатом вызова
AssociateWithClanResult_t.
BeginAuthSession
EBeginAuthSessionResult BeginAuthSession( const void *pAuthTicket, int cbAuthTicket, CSteamID steamID );
Название | Тип | Описание |
pAuthTicket | const void * | Билет аутентификации, который необходимо проверить. |
cbAuthTicket | int | Размер билета аутентификации в байтах. Размер должен соответствовать значению pcbTicket , предоставленному вызовом, во время которого создан этот билет. |
steamID | CSteamID | SteamID сущности, отправившей этот билет. |
Аутентифицирует билет, полученный от сущности со 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_tBUpdateUserData
bool BUpdateUserData( CSteamID steamIDUser, const char *pchPlayerName, uint32 uScore );
Название | Тип | Описание |
steamIDUser | CSteamID | SteamID пользователя. |
pchPlayerName | const char * | Имя пользователя. |
uScore | uint32 | Текущий счёт пользователя. |
Обновляет данные, которые отображаются в окне поиска серверов и интерфейсе подбора игр для пользователя, в данный момент подключённого к серверу.
ВНИМАНИЕ: этот вызов является частью старого API аутентификации пользователей, его не следует смешивать с новым API.
Возвращает: bool
true, если вызов успешен, в противном случае
false в случае, если произошла ошибка (к примеру,
steamIDUser
не является игроком на текущем сервере).
См. также: Аутентификация и проверка владенияCancelAuthTicket
void CancelAuthTicket( HAuthTicket hAuthTicket );
Название | Тип | Описание |
hAuthTicket | HAuthTicket | Активный билет аутентификации, который необходимо отменить. |
Отменяет билет аутентификации, полученный от
ISteamUser::GetAuthSessionTicket. Этот вызов необходимо отправить, когда больше не играем с указанной сущностью.
См. также: Аутентификация и проверка владенияClearAllKeyValues
void ClearAllKeyValues();
Целиком очищает список пар ключ-значение, отправляемых в очередь правил.
См. также: ISteamGameServer::SetKeyValue,
ISteamMatchmakingServers::ServerRulesComputeNewPlayerCompatibility
SteamAPICall_t ComputeNewPlayerCompatibility( CSteamID steamIDNewPlayer );
Название | Тип | Описание |
steamIDNewPlayer | CSteamID | SteamID игрока, который пытается присоединиться. |
Проверяет, если какой-то из текущих игроков не хочет играть с новым игроком, который пытается присоединиться, или наоборот. Основывается на системе «друг-враг».
Возвращает: SteamAPICall_t, который необходимо использовать с результатом вызова
ComputeNewPlayerCompatibilityResult_t.
CreateUnauthenticatedUserConnection
CSteamID CreateUnauthenticatedUserConnection();
Создаёт поддельного пользователя (к примеру, бот), который будет указан как играющий на сервере, но пропускает проверку.
ВНИМАНИЕ: этот вызов является частью старого API аутентификации пользователей, его не следует смешивать с новым API.
Возвращаемые значения: CSteamIDВозвращает SteamID для отслеживания бота.
Когда этот пользователь покидает сервер, вы должны вызвать
ISteamGameServer::SendUserDisconnect, как если бы это был реальный пользователь.
EnableHeartbeats
void EnableHeartbeats( bool bActive );
Название | Тип | Описание |
bActive | bool | Включить (true) или выключить (false) средство обновления мастер-сервера. |
Сообщает мастер-серверам Steam, хотите ли вы быть активным.
Если включено, сервер будет разговаривать с мастер-серверами, если нет, тогда входящие сообщения будут проигнорированы, а пульсирующие сигналы не будут отправляться.
См. также: ISteamGameServer::SetHeartbeatInterval,
ISteamGameServer::ForceHeartbeatEndAuthSession
void EndAuthSession( CSteamID steamID );
Название | Тип | Описание |
steamID | CSteamID | Сущность, для которой необходимо завершить активную сессию аутентификации. |
Завершает сессию, начатую с помощью
ISteamGameServer::BeginAuthSession. Этот вызов необходимо отправить, когда больше не играем с указанной сущностью.
См. также: Аутентификация и проверка владенияForceHeartbeat
void ForceHeartbeat();
Принудительно отправить пульсирующий сигнал к мастер-серверам Steam при следующей возможности.
Обычно вам это не требуется.
См. также: ISteamGameServer::EnableHeartbeats,
ISteamGameServer::SetHeartbeatIntervalGetAuthSessionTicket
HAuthTicket GetAuthSessionTicket( void *pTicket, int cbMaxTicket, uint32 *pcbTicket );
Название | Тип | Описание |
pTicket | void * | Буфер, куда будет скопирован новый билет аутентификации, если вызов удался. |
cbMaxTicket | int | Размер буфера, выделяемого для pTicket . Обязательно должен быть равен 1024. |
pcbTicket | uint32 * | Возвращает длину текущего билета. |
Получает билет аутентификации, который необходимо отправить сущности, которая желает вас аутентифицировать.
После этого вызова вы можете отправить билет сущности, которая сможет отправить вызов
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 );
Название | Тип | Описание |
pOut | void * | Возвращает пакет, который необходимо отправить, копируя его в этот буфер. Размер пакета может достигать 16 кибибайт, поэтому выделите достаточно места. |
cbMaxOut | int | Размер буфера, предоставленного в pOut , должен быть 16 * 1024. |
pNetAdr | uint32 * | Возвращает IP-адрес, по которому необходимо отправить этот пакет, в порядке узлов, к примеру, 127.0.0.1 == 0x7f000001. |
pPort | uint16 * | Возвращает порт, через который необходимо отправить этот пакет, в порядке узлов. |
Получает пакет, который средство обновления мастер-сервера должно отправить по 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 игрового сервера.
Возвращаемые значения: CSteamIDHandleIncomingPacket
bool HandleIncomingPacket( const void *pData, int cbData, uint32 srcIP, uint16 srcPort );
Название | Тип | Описание |
pData | const void * | Данные из входящего пакета. |
cbData | int | Размер pData в байтах. |
srcIP | uint32 | IP-адрес, по которому был отправлен этот пакет, в порядке узлов, к примеру, 127.0.0.1 == 0x7f000001. |
srcPort | uint16 | Порт, через который был отправлен этот пакет, в порядке узлов. |
Управляет пакетом мастер-сервера 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 );
Название | Тип | Описание |
unIP | uint32 | IP-адрес, к которому необходимо привязаться. (В порядке узлов, по существу, 127.0.0.1 == 0x7f000001). Вы можете использовать INADDR_ANY для привязки ко всем локальным IPv4-адресам. |
usGamePort | uint16 | Порт, к которому будут подключаться клиенты для игры. |
usQueryPort | uint16 | Порт, который будет управлять обязанностями, связанными с окном поиска серверов, и запросами информации от клиентов. |
unFlags | uint32 | Объединение одного или нескольких ServerFlags. |
nGameAppId | AppId_t | AppID игры, для которой предназначен данный сервер. |
pchVersionString | const 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 );
Название | Тип | Описание |
pszToken | const char * | |
Начинает процесс входа в аккаунт постоянного игрового сервера.
Возвращаемые значения: void
Активирует обратный вызов
SteamServerConnectFailure_t.
Активирует обратный вызов
SteamServersConnected_t.
Активирует обратный вызов
SteamServersDisconnected_t.
См. также: ISteamGameServer::LogOnAnonymousLogOnAnonymous
void LogOnAnonymous();
Начинает процесс входа в обычный, анонимный аккаунт.
Возвращает: void
Активирует обратный вызов
SteamServerConnectFailure_t.
Активирует обратный вызов
SteamServersConnected_t.
Активирует обратный вызов
SteamServersDisconnected_t.
См. также: ISteamGameServer::LogOnRequestUserGroupStatus
bool RequestUserGroupStatus( CSteamID steamIDUser, CSteamID steamIDGroup );
Название | Тип | Описание |
steamIDUser | CSteamID | Пользователь, статус которого необходимо проверить. |
steamIDGroup | CSteamID | Проверяемая группа. |
Проверяет, состоит ли пользователь в указанной группе Steam.
Возвращаемые значения: bool
Активирует обратный вызов
GSClientGroupStatus_t.
true, если вызов успешно отправлен на сервер Steam. В противном случае
false, если мы не соединены с серверами Steam, либо были предоставлены недействительный пользователь или группа.
SendUserConnectAndAuthenticate
bool SendUserConnectAndAuthenticate( uint32 unIPClient, const void *pvAuthBlob, uint32 cubAuthBlobSize, CSteamID *pSteamIDUser );
Название | Тип | Описание |
unIPClient | uint32 | IP-адрес соединяющегося клиента. (В порядке узлов, 127.0.0.1 == 0x7f000001). |
pvAuthBlob | const void * | Данные аутентификации, предоставленные пользователем при вызове ISteamUser::InitiateGameConnection. |
cubAuthBlobSize | uint32 | Размер pvAuthBlob в байтах. |
pSteamIDUser | CSteamID * | Возвращает SteamID пользователя. Не может быть равно NULL. |
Управляет получением нового соединения от пользователя Steam. Этот вызов попросит сервера Steam подтвердить идентичность пользователя, владение приложением и статус в системе VAC.
Если серверы Steam не в сети, система подтвердит кэшированный билет самостоятельно, что подтвердит владение приложением и идентичность пользователя.
ВНИМАНИЕ: этот вызов является частью старого API аутентификации пользователей, его не следует смешивать с новым API.
Возвращает: bool
true, если билет пользователя проходит основные проверки, в противном случае
false.
Если вызов был успешен, следует ожидать обратный вызов
GSClientApprove_t или
GSClientDeny_t, который сообщит, аутентифицирован пользователь или нет. SteamID в обратном вызове будет соответствовать возвращаемому данным вызовом.
SendUserDisconnect
void SendUserDisconnect( CSteamID steamIDUser );
Название | Тип | Описание |
steamIDUser | CSteamID | SteamID пользователя, который покинул игровой сервер. |
Этот вызов должен быть выполнен всякий раз, когда пользователь покидает игровой сервер.
Это позволяет Steam отслеживать, какие пользователи в текущий момент находятся на тех или иных серверах, чтобы не допустить ситуацию, когда один аккаунт зашёл не несколько серверов, а также чтобы показывать, кто находится на том или ином сервере в настоящий момент.
ВНИМАНИЕ: этот вызов является частью старого API аутентификации пользователей, его не следует смешивать с новым API.
SetBotPlayerCount
void SetBotPlayerCount( int cBotplayers );
Название | Тип | Описание |
cBotplayers | int | Число ботов или игроков с искусственным интеллектом на сервере. |
Задаёт число ботов или игроков с искусственным интеллектом на игровом сервере. По умолчанию равно 0.
SetDedicatedServer
void SetDedicatedServer( bool bDedicated );
Название | Тип | Описание |
bDedicated | bool | Это выделенный (true) или слушающий (false) сервер? |
Задаёт тип сервера: выделенный или слушающий. По умолчанию — слушающий.
ВНИМАНИЕ: задать тип сервера можно только до вызовов
ISteamGameServer::LogOn или
ISteamGameServer::LogOnAnonymous.
SetGameData
void SetGameData( const char *pchGameData );
Название | Тип | Описание |
pchGameData | const char * | Новое значение "gamedata", которое необходимо установить. Не может быть равно NULL или пустой строке (""). Не может быть длиннее, чем k_cbMaxGameServerGameData. |
Задаёт строковое определение "gamedata" для данного сервера. Это опционально, но если задано, это позволяет пользователям фильтровать серверы по данному значению при подборе игр или в окне поиска серверов.
Форматируется обычно как список с разделителем в виде запятой или точки с запятой.
Не нужно задавать это значение или значения, пока они действительно не изменятся: это отправляется на мастер только однажды, при подтверждении.
SetGameDescription
void SetGameDescription( const char *pszGameDescription );
Название | Тип | Описание |
pszGameDescription | const char * | Описание вашей игры. Не может быть равно NULL или пустой строке (""). Не может быть длиннее, чем k_cbMaxGameServerGameDescription. |
Задаёт описание игры. Рекомендуется указать здесь полное название вашей игры.
ВНИМАНИЕ: это необходимо для всех игровых серверов и может быть задано только до вызовов
ISteamGameServer::LogOn или
ISteamGameServer::LogOnAnonymous.
SetGameTags
void SetGameTags( const char *pchGameTags );
Название | Тип | Описание |
pchGameTags | const char * | Новое значение "gametags", которое необходимо установить. Не может быть равно NULL или пустой строке (""). Не может быть длиннее, чем k_cbMaxGameServerTags. |
Задаёт строковое определение "gametags" для данного сервера. Это опционально, но если задано, это позволяет пользователям фильтровать серверы по данному значению при подборе игр или в окне поиска серверов.
Форматируется обычно как список с разделителем в виде запятой или точки с запятой.
Не нужно задавать это значение или значения, пока они действительно не изменятся: это отправляется на мастер только однажды, при подтверждении.
SetHeartbeatInterval
void SetHeartbeatInterval( int iHeartbeatInterval );
Название | Тип | Описание |
iHeartbeatInterval | int | Интервал отправки пульсирующих сигналов в миллисекундах. Обычно в интервале между 250 и 1000. Чтобы использовать значение по умолчанию, укажите -1. |
Меняет частоту отправки пульсирующих сигналов на мастер-серверы Steam.
Обычно вам это не требуется.
См. также: ISteamGameServer::EnableHeartbeats,
ISteamGameServer::ForceHeartbeatSetKeyValue
void SetKeyValue( const char *pKey, const char *pValue );
Название | Тип | Описание |
pKey | const char * | |
pValue | const char * | |
Добавляет или обновляет пару ключ-значение правил.
См. также: ISteamGameServer::ClearAllKeyValues,
ISteamMatchmakingServers::ServerRulesSetMapName
void SetMapName( const char *pszMapName );
Название | Тип | Описание |
pszMapName | const char * | Новое название карты, которое необходимо задать. Не может быть равно NULL или пустой строке (""). Не может быть длиннее, чем k_cbMaxGameServerMapName. |
Задаёт название карты, сообщаемое в окне поиска серверов.
SetMaxPlayerCount
void SetMaxPlayerCount( int cPlayersMax );
Название | Тип | Описание |
cPlayersMax | int | Новый максимум игроков на данном сервере. |
Задаёт новый одновременный максимум игроков на данном сервере.
Это значение можно изменить в любое время.
SetModDir
void SetModDir( const char *pszModDir );
Название | Тип | Описание |
pszModDir | const char * | Папка с игрой, которую необходимо задать. Не может быть равно NULL или пустой строке (""). Не может быть длиннее, чем k_cbMaxGameServerGameDir. |
Задаёт папку с игрой.
Это должна быть та же папка, в которую устанавливается игра. Только имя папки, а не путь целиком, к примеру, Spacewar.
ВНИМАНИЕ: это необходимо для всех игровых серверов и может быть задано только до вызовов
ISteamGameServer::LogOn или
ISteamGameServer::LogOnAnonymous.
SetPasswordProtected
void SetPasswordProtected( bool bPasswordProtected );
Название | Тип | Описание |
bPasswordProtected | bool | Включить (true) или выключить (false) защиту с помощью пароля. |
Устанавливает, должен ли игровой сервер требовать пароль, когда пользователь пытается войти.
SetProduct
void SetProduct( const char *pszProduct );
Название | Тип | Описание |
pszProduct | const char * | Уникальный идентификатор вашей игры. Не может быть равно NULL или пустой строке (""). |
Задаёт идентификатор игрового продукта. Используется мастер-сервером для целей проверки версий.
Рекомендуется конвертировать AppID игры в строку.
ВНИМАНИЕ: это необходимо для всех игровых серверов и может быть задано только до вызовов
ISteamGameServer::LogOn или
ISteamGameServer::LogOnAnonymous.
SetRegion
void SetRegion( const char *pszRegion );
Название | Тип | Описание |
pszRegion | const char * | |
Идентификатор региона. Этот параметр необязателен. По умолчанию он равен пустой строке, что означает регион "world".
SetServerName
void SetServerName( const char *pszServerName );
Название | Тип | Описание |
pszServerName | const char * | Новое название сервера, которое необходимо задать. Не может быть равно NULL или пустой строке (""). Не может быть длиннее, чем k_cbMaxGameServerName. |
Задаёт название сервера, сообщаемое в окне поиска серверов.
SetSpectatorPort
void SetSpectatorPort( uint16 unSpectatorPort );
Название | Тип | Описание |
unSpectatorPort | uint16 | Порт, к которому необходимо подключиться зрителям. |
Задаёт, разрешены ли на сервере зрители, и к какому порту им следует подключаться. По умолчанию равно 0, что означает, что служба не используется.
SetSpectatorServerName
void SetSpectatorServerName( const char *pszSpectatorServerName );
Название | Тип | Описание |
pszSpectatorServerName | const char * | Новое название зрительского сервера, которое необходимо задать. Не может быть равно NULL или пустой строке (""). Не может быть длиннее, чем k_cbMaxGameServerMapName. |
Задаёт название зрительского сервера. Используется, только если зрительский порт не равен нулю.
UserHasLicenseForApp
EUserHasLicenseForAppResult UserHasLicenseForApp( CSteamID steamID, AppId_t appID );
Название | Тип | Описание |
steamID | CSteamID | SteamID пользователя, отправившего билет аутентификации. |
appID | AppId_t | AppID доп. контента, владение которым пользователем необходимо проверить. |
Проверяет, имеется ли у пользователя определённый элемент
доп. контента.
Может быть вызвано только после отправки билета аутентификации пользователя в
ISteamGameServer::BeginAuthSession.
Возвращаемые значения: EUserHasLicenseForAppResultСм. также: Аутентификация и проверка владенияWasRestartRequested
bool WasRestartRequested();
Проверяет, уведомил ли мастер-сервер вас о том, что ваш сервер устарел.
После выполнения этой функции возвращается к
false.
Возвращаемые значения: bool
true, если мастер-сервер требует от игрового сервера обновиться и перезапуститься. В противном случае
false.
Обратные вызовы
Далее приведён список обратных вызовов, которые могут быть получены при вызове
SteamAPI_RunCallbacks. Многие из них могут быть получены сразу в ответ на функции-члены
ISteamGameServer
.
AssociateWithClanResult_t
Отправляется, когда игровой сервер пытается привязаться к группе Steam.
Название | Тип | Описание |
m_eResult | EResult | Результат операции. Возможные значения:
|
Связанные функции: ISteamGameServer::AssociateWithClanComputeNewPlayerCompatibilityResult_t
Отправляется, когда игровой сервер проверяет, подходит ли новый игрок для сервера, основываясь на данных системы «друг-враг».
Название | Тип | Описание |
m_eResult | EResult | Результат операции. Возможные значения:
|
m_cPlayersThatDontLikeCandidate | int | Число текущих игроков, которым не нравится играть с указанным игроком. |
m_cPlayersThatCandidateDoesntLike | int | Число игроков на сервере, с которыми не нравится играть указанному игроку. |
m_cClanPlayersThatDontLikeCandidate | int | Число игроков в привязанной группе Steam, которые не хотят играть с указанным игроком. |
m_SteamIDCandidate | CSteamID | SteamID указанного пользователя. |
Связанные функции: ISteamGameServer::ComputeNewPlayerCompatibilityGSClientAchievementStatus_t
Устарело, вместо этого используйте
ISteamGameServerStats Название | Тип | Описание |
m_SteamID | uint64 | Устарело |
m_pchAchievement | char[128] | Устарело |
m_bUnlocked | bool | Устарело |
GSClientApprove_t
Соединение клиента с этим игровым сервером одобрено.
Название | Тип | Описание |
m_SteamID | CSteamID | SteamID пользователя, который хочет присоединиться. |
m_OwnerSteamID | CSteamID | SteamID того, кто владеет игрой. Отличается от m_SteamID в случае, если доступ к игре получен с помощью функции Family Sharing. |
GSClientDeny_t
Вызывается, когда пользователю не разрешено соединение с этим игровым сервером.
Название | Тип | Описание |
m_SteamID | CSteamID | SteamID пользователя, который пытался присоединиться. |
m_eDenyReason | EDenyReason | Причина, по которой соединение запрещено. |
m_rgchOptionalText | char[128] | Опциональное текстовое сообщение с причиной запрета. Обычно не используется, за исключением случаев ведения записей. |
GSClientGroupStatus_t
Вызывается, когда мы получили групповой статус пользователя.
Название | Тип | Описание |
m_SteamIDUser | CSteamID | Пользователь, чей групповой статус мы запросили. |
m_SteamIDGroup | CSteamID | Группа, которую мы запросили. |
m_bMember | bool | Является ли пользователь участником группы (если да — true, если нет — false)? |
m_bOfficer | bool | Является ли пользователь офицером группы (если да — true, если нет — false)? Это не может равняться true, если m_bMember равно false. |
Связанные функции: ISteamGameServer::RequestUserGroupStatusGSClientKick_t
Вызывается, когда игровой сервер должен выгнать пользователя.
Название | Тип | Описание |
m_SteamID | CSteamID | SteamID игрока, которого необходимо выгнать |
m_eDenyReason | EDenyReason | Причина, по которой пользователя необходимо выгнать. |
GSGameplayStats_t
Устарело. Вызывалось, когда с помощью
ISteamGameServer::GetGameplayStats запрашивалась информация о игровой статистике.
Название | Тип | Описание |
m_eResult | EResult | Результат операции. |
m_nRank | int32 | Общий ранг сервера (отсчёт начинается с 0). |
m_unTotalConnects | uint32 | Общее число клиентов, которые когда-либо подключались к серверу. |
m_unTotalMinutesPlayed | uint32 | Общее число минут, сыгранных на сервере. |
Связанные функции: ISteamGameServer::GetGameplayStatsGSPolicyResponse_t
Получается, когда игровой сервер запрашивает, чтобы он отображался как безопасный (под защитой системы VAC).
Название | Тип | Описание |
m_bSecure | uint8 | Сервер стал безопасным (true) или остался небезопасным (false)? |
GSReputation_t
Устарело. Вызывалось, когда запрашивалась репутация игрового сервера.
Блокировки со стороны мастер-сервера выдаются по IP, поэтому сервер может быть заблокированным, даже если он на хорошем счету, но на другом порте есть плохой сервер.
Информация используется для определения, какой сервер считается плохим.
Название | Тип | Описание |
m_eResult | EResult | Результат операции. |
m_unReputationScore | uint32 | Очки репутации игрового сервера. |
m_bBanned | bool | Сервер заблокирован мастер-серверами Steam (true) или нет (false)? |
m_unBannedIP | uint32 | IP заблокированного сервера. Задаётся, только если m_bBanned = true. |
m_usBannedPort | uint16 | Порт заблокированного сервера. Задаётся, только если m_bBanned = true. |
m_ulBannedGameID | uint64 | ID игры, которую обслуживает заблокированный сервер. Задаётся, только если m_bBanned = true. |
m_unBanExpires | uint32 | Время, когда истечёт срок блокировки, в формате UNIX-времени (секунды с 1 января 1970 года). Задаётся, только если m_bBanned = true. |
Связанные функции: ISteamGameServer::GetServerReputationКонстанты
Далее приведён список констант, которые определены для использования с ISteamGameServer.
Название | Тип | Значение | Описание |
k_unServerFlagActive | uint32 | 0x01 | На игровом сервер есть играющие пользователи. |
k_unServerFlagDedicated | uint32 | 0x04 | Игровой сервер является выделенным. |
k_unServerFlagLinux | uint32 | 0x08 | Игровой сервер запущен на Linux. |
k_unServerFlagNone | uint32 | 0x00 | У игрового сервера нет флагов. |
k_unServerFlagPassworded | uint32 | 0x10 | Игровой сервер защищён паролем. |
k_unServerFlagPrivate | uint32 | 0x20 | Игровой сервер не должен быть указан в списке серверов для мастер-сервера и не требует аутентификации пользователей. которые соединяются с ним. Используется, когда у вас есть сервер, где клиенты могут быть не подключены к сети, но вы хотите позволить им играть (к примеру, по LAN). |
k_unServerFlagSecure | uint32 | 0x02 | Игровой сервер желает быть под защитой VAC. |
MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE | int | ((uint16)-1) | Используется с SteamGameServer_Init для включения режима GameSocketShare. |
STEAMGAMESERVER_INTERFACE_VERSION | const char * | "SteamGameServer012" | |