Основа для инициализации API Steamworks и доступа к ним.
Все перечисленные здесь типы являются глобальными определениями и не связаны с каким-либо конкретным API.
Функции
Ниже приведены глобальные функции, которые не требуют настройки интерфейсов. Подробнее они описаны в
документации API Steamworks.
SteamAPI_Init
S_API bool S_CALLTYPE SteamAPI_Init();
Инициализирует API Steamworks.
Дополнительную информацию см. в разделе
«Инициализация и завершение работы».
Возвращает: bool
true означает, что все необходимые интерфейсы получены и доступны;
false указывает на одну из следующих ситуаций:
- Не запущен клиент Steam. Запуск клиента Steam обязателен для корректной работы интерфейсов Steamworks.
- Клиенту Steam не удалось определить App ID игры. Если вы запускаете приложение напрямую из исполняемого файла или отладчика, в папке игры должен находится файл
steam_appid.txt, в котором должен присутствовать исключительно номер приложения. Steam попытается найти этот файл в текущей папке. Если вы запускаете исполняемый файл из другой папки, вам может потребоваться переместить steam_appid.txt.
- Ваше приложение запущено не с тем же пользовательским контекстом в операционной системе, что и клиент Steam, к примеру, одно запущено под обычным пользователем, а второе — с правами администратора.
- Убедитесь, что активный аккаунт Steam владеет приложением. Игру должно быть видно в вашей библиотеке Steam.
- Приложение не настроено полностью, к примеру,
Release State: Unavailable, или в нём отсутствуют комплекты по умолчанию.
Пример:int main()
{
if ( SteamAPI_RestartAppIfNecessary( k_uAppIdInvalid ) ) // Замените на ваш AppID
{
return 1;
}
if ( !SteamAPI_Init() )
{
printf( "Fatal Error - Steam must be running to play this game (SteamAPI_Init() failed).\n" );
return 1;
}
return 0;
}
SteamAPI_ReleaseCurrentThreadMemory
S_API void S_CALLTYPE SteamAPI_ReleaseCurrentThreadMemory();
Высвобождает внутреннюю память API Steamworks, связанную с потоком вызовов.
Большинство функций API Steamworks выделяют небольшой и локальный по отношению к потоку объём памяти для хранения параметров. Вызов данной функции вручную его высвобождает. Она автоматически вызывается
SteamAPI_RunCallbacks, так что программе, которая получает доступ к API Steamworks из одного потока, не требуется явно её вызывать.
SteamAPI_RestartAppIfNecessary
S_API bool S_CALLTYPE SteamAPI_RestartAppIfNecessary( uint32 unOwnAppID );
| Название | Тип | Описание |
| unOwnAppID | uint32 | AppID данного продукта. |
Проверяет, запущен ли исполняемый файл через Steam, и если нет, перезапускает его в Steam.
Дополнительную информацию см. в разделе
«Инициализация и завершение работы».
Возвращает: bool
Если возвращается
true, будет запущен клиент Steam (если это необходимо), а оттуда — ваша игра. Вы должны завершить свой процесс как можно скорее. В этот момент запускается
steam://run/<AppId>, так что необязательно будет перезапущен тот же исполняемый файл, который вызвал эту функцию — всегда будет перезапускаться версия, установленная в папке с библиотекой Steam.
Значение
false означает, что игра была запущена клиентом, и никаких действий предпринимать не нужно. В то же время, при наличии файла
steam_appid.txt этот вызов всегда будет возвращать
false. Это позволяет разрабатывать и тестировать игру без необходимости запускать её из клиента. Не забудьте удалить
steam_appid.txt перед отправкой игры в хранилище Steam!
Пример:int main()
{
if ( SteamAPI_RestartAppIfNecessary( k_uAppIdInvalid ) ) // Замените на ваш AppID
{
return 1;
}
if ( !SteamAPI_Init() )
{
printf( "Fatal Error - Steam must be running to play this game (SteamAPI_Init() failed).\n" );
return 1;
}
return 0;
}
SteamAPI_RunCallbacks
S_API void S_CALLTYPE SteamAPI_RunCallbacks();
Отправляет обратные вызовы и результаты вызовов всем зарегистрированным слушателям.
Лучше всего выполнять вызовы с частотой 10 Гц, поскольку чем больше времени проходит между ними, тем больше возможная задержка между получением событий и результатов от API Steamworks. В большинстве игр этот вызов выполняется один раз за отрисовку кадра. Во время вызова будут активированы все функции, зарегистрированные как слушатели в контексте потока, откуда был отправлен вызов.
SteamAPI_RunCallbacks безопасно вызывать из нескольких потоков одновременно, но в таком случае код обратного вызова может быть выполнен в любом из потоков. Вместо этого можно вызывать SteamAPI_RunCallbacks только из главного потока, а из других потоков — регулярно вызывать
SteamAPI_ReleaseCurrentThreadMemory.
SteamAPI_SetMiniDumpComment
S_API void S_CALLTYPE SteamAPI_SetMiniDumpComment( const char *pchMsg );
| Название | Тип | Описание |
| pchMsg | const char * | Сообщение, прикрепляемое к минидампу. Нуль-терминированная строка. |
Создаёт произвольный комментарий для вставки в минидамп.
К примеру, вы можете включить в минидамп информацию об уровне, на котором находился игрок, числе игроков на сервере, объёме свободной памяти и т. д.
Эту функцию необходимо вызвать до
SteamAPI_WriteMiniDump.
Внимание: работает только на 32-битной Windows!
SteamAPI_Shutdown
S_API void S_CALLTYPE SteamAPI_Shutdown();
Закрывает API Steamworks, высвобождает память и указатели.
По возможности необходимо выполнить этот вызов при завершении процесса.
В этом случае
оверлей не будет отключён от приложения, поскольку ваш API рендеринга может продолжать его использовать.
SteamAPI_WriteMiniDump
S_API void S_CALLTYPE SteamAPI_WriteMiniDump( uint32 uStructuredExceptionCode, void* pvExceptionInfo, uint32 uBuildID );
| Название | Тип | Описание |
| uStructuredExceptionCode | uint32 | Структурированный код исключения. |
| pvExceptionInfo | void* | Указатели исключений, содержащие информацию об исключениях. |
| uBuildID | uint32 | ID сборки для отслеживания, какая версия приложения отправила данный минидамп. Это не тот же самый BuildID, который используется в Steam, он используется только для сообщений о сбоях. |
Записывает и отправляет минидампы с сообщениями о сбоях.
Дополнительная информация доступна в
этом разделе.
Вы можете добавить необязательный комментарий, вызвав
SteamAPI_SetMiniDumpComment до вызова этой функции.
Внимание: поддерживается только 32-битная версия Windows.
Пример:#ifdef _WIN32
#include <Windows.h>
void MiniDumpFunction( unsigned int nExceptionCode, EXCEPTION_POINTERS *pException )
{
// Здесь вы можете создать произвольный комментарий для вставки в минидамп.
// Это может быть уровень, на котором находился игрок, число игроков на сервере,
// размер свободной памяти и т. п.
SteamAPI_SetMiniDumpComment( "Minidump comment: SteamworksExample.exe/n" );
// Нулевое значение здесь — это ID сборки, мы его не устанавливаем
SteamAPI_WriteMiniDump( nExceptionCode, pException, 0 );
}
int RealMain( HINSTANCE hInstance, LPSTR lpCmdLine, int nCmdShow )
{
__debugbreak();
return 0;
}
int APIENTRY WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
// Здесь выполняется только вызов реальной основной функции после настройки SE translator,
// что позволяет обнаруживать исключения и передавать сообщения об ошибках в Steam.
//
// Обратите внимание, что для структурированной обработки исключений
// с помощью данного метода необходимо корректно настроить флаги компилятора.
if ( IsDebuggerPresent() )
{
// При отладке мы не хотим маскировать исключения (или отправлять их в Steam!)
// Если вы хотите пошагово пройти все строки обработчика исключений,
// подключите отладчик после запуски игры вне отладчика.
return RealMain( lpCmdLine, hInstance, nCmdShow );
}
_set_se_translator( MiniDumpFunction );
try // это обеспечит работу SE translator
{
return RealMain( hInstance, lpCmdLine, nCmdShow );
}
catch( ... )
{
return -1;
}
}
#endif
Структуры
Приведённые ниже структуры могут быть возвращены функциями steam_api, а также эти функции могут с ними взаимодействовать.
CGameID
Уникальный глобальный идентификатор игр Steam.
CSteamID
Уникальный глобальный идентификатор аккаунтов, групп, лобби и чатов в Steam.
См.
EAccountType и
EUniverse.
Перечисления
Далее приведён список перечислений, которые определены для использования с steam_api.
EAccountType
Типы аккаунта Steam. Используется для внутренних целей в
CSteamID.
| Название | Значение | Описание |
| k_EAccountTypeInvalid | 0 | Используется для недействительных Steam ID. |
| k_EAccountTypeIndividual | 1 | Обычный пользовательский аккаунт. |
| k_EAccountTypeMultiseat | 2 | Многопользовательский аккаунт (к примеру, интернет-кафе). |
| k_EAccountTypeGameServer | 3 | Аккаунт-постоянный игровой сервер (неанонимный). |
| k_EAccountTypeAnonGameServer | 4 | Аккаунт анонимного игрового сервера. |
| k_EAccountTypePending | 5 | На рассмотрении. |
| k_EAccountTypeContentServer | 6 | Внутренний аккаунт контент-сервера Valve. |
| k_EAccountTypeClan | 7 | Группа Steam (клан). |
| k_EAccountTypeChat | 8 | Групповой чат и лобби Steam. |
| k_EAccountTypeConsoleUser | 9 | Фиктивный SteamID для локального аккаунта PlayStation на PS3 или аккаунта Live на 360 и проч. |
| k_EAccountTypeAnonUser | 10 | Анонимный пользовательский аккаунт. (Используется для создания аккаунта или сброса пароля) |
| k_EAccountTypeMax | 11 | В этом поле не более 16 предметов. |
EAppOwnershipFlags
Флаги, представляющие информацию о владении приложением (используются только внутри Steam).
| Название | Значение | Описание |
| k_EAppOwnershipFlags_None | 0x0000 | Неизвестно. |
| k_EAppOwnershipFlags_OwnsLicense | 0x0001 | Пользователь владеет приложением. |
| k_EAppOwnershipFlags_FreeLicense | 0x0002 | Пользователь не заплатил за приложение. |
| k_EAppOwnershipFlags_RegionRestricted | 0x0004 | Владеет приложением, но не имеет права играть в данном регионе. |
| k_EAppOwnershipFlags_LowViolence | 0x0008 | Владеет версией с низким уровнем насилия. |
| k_EAppOwnershipFlags_InvalidPlatform | 0x0010 | Приложение не поддерживается на текущей платформе. |
| k_EAppOwnershipFlags_SharedLicense | 0x0020 | Общая лицензия получена на авторизованном устройстве с помощью функции Steam Family Sharing. |
| k_EAppOwnershipFlags_FreeWeekend | 0x0040 | Владение по лицензии «Бесплатные выходные». |
| k_EAppOwnershipFlags_RetailLicense | 0x0080 | Владеет розничной лицензией на игру (розничные ключи и проч.) (Устарело) |
| k_EAppOwnershipFlags_LicenseLocked | 0x0100 | Общая лицензия заблокирована (используется) другим пользователем. |
| k_EAppOwnershipFlags_LicensePending | 0x0200 | Владеет приложением, но транзакция по-прежнему рассматривается. Пользователь пока не может устанавливать игру и играть в неё. |
| k_EAppOwnershipFlags_LicenseExpired | 0x0400 | Больше не владеет приложением, поскольку истёк срок действия лицензии. |
| k_EAppOwnershipFlags_LicensePermanent | 0x0800 | Постоянная лицензия, не заимствованная, не гостевая, не «Бесплатные выходные» и проч. |
| k_EAppOwnershipFlags_LicenseRecurring | 0x1000 | Периодическая подписка, в рамках которой с пользователя время от времени списываются средства. |
| k_EAppOwnershipFlags_LicenseCanceled | 0x2000 | Лицензия помечена как отменённая, но может быть активной, если является периодической. |
| k_EAppOwnershipFlags_AutoGrant | 0x4000 | Владение является результатом автоматической выдачи. |
| k_EAppOwnershipFlags_PendingGift | 0x8000 | У пользователя есть неактивированный подарок. |
| k_EAppOwnershipFlags_RentalNotActivated | 0x10000 | Прокат не активирован. |
| k_EAppOwnershipFlags_Rental | 0x20000 | Выдано напрокат. |
| k_EAppOwnershipFlags_SiteLicense | 0x40000 | Получено на площадке Steam. |
EAppReleaseState
Состояние выпуска приложения (используется только внутри Steam).
| Название | Значение | Описание |
| k_EAppReleaseState_Unknown | 0 | Неизвестно, либо невозможно получить информацию о приложении, либо информация о лицензии отсутствует. |
| k_EAppReleaseState_Unavailable | 1 | Даже если пользователь владеет игрой, он её не видит. |
| k_EAppReleaseState_Prerelease | 2 | Можно купить, игра будет видна в списке игр, но ничего больше. |
| k_EAppReleaseState_PreloadOnly | 3 | Владельцы могут предзагрузить приложение, но не запустить его. |
| k_EAppReleaseState_Released | 4 | Владельцы могут загрузить приложение и запустить его. |
EAppType
Тип приложения. Больше информации можно найти в
этом разделе (только для внутреннего использования в Steam).
| Название | Значение | Описание |
| k_EAppType_Invalid | 0x000 | Тип приложения неизвестен или недействителен. |
| k_EAppType_Game | 0x001 | Игра, тип по умолчанию. |
| k_EAppType_Application | 0x002 | Программное обеспечение. |
| k_EAppType_Tool | 0x004 | Наборы средств разработки, редакторы и выделенные серверы. |
| k_EAppType_Demo | 0x008 | Демоверсия игры. |
| k_EAppType_Media_DEPRECATED | 0x010 | Использовалось для трейлеров игр. Сейчас это просто видео в сети. |
| k_EAppType_DLC | 0x020 | Дополнительный контент. |
| k_EAppType_Guide | 0x040 | Руководства к играм, PDF-файлы и проч. |
| k_EAppType_Driver | 0x080 | Средство обновления драйверов (ATI, Razor и проч.) |
| k_EAppType_Config | 0x100 | Скрытое приложение, используемое для настройки функций Steam (рюкзаки, скидки и проч.) |
| k_EAppType_Hardware | 0x200 | Устройство Steam (Steam Machine, Steam Controller, Steam Link и проч.) |
| k_EAppType_Franchise | 0x400 | Коллекции нескольких приложений, к примеру, фильмов, сериалов или игр. |
| k_EAppType_Video | 0x800 | Видеокомпонент фильма или сериала (полный метр, эпизод, предпросмотр, фильм о кулуарах и проч.) |
| k_EAppType_Plugin | 0x1000 | Подключаемые типы для других приложений. |
| k_EAppType_Music | 0x2000 | Музыкальные файлы. |
| k_EAppType_Series | 0x4000 | Приложение-контейнер для сериала. |
| k_EAppType_Shortcut | 0x40000000 | Просто ярлык, используется только на стороне клиента. |
| k_EAppType_DepotOnly | 0x80000000 | Заглушка. Используется, поскольку хранилища и приложения имеют общее пространство имён. |
EAuthSessionResponse
Значения обратных вызовов для
ValidateAuthTicketResponse_t, возвращаемые в ответ на
ISteamUser::BeginAuthSession и
ISteamGameServer::BeginAuthSession.
| Название | Значение | Описание |
| k_EAuthSessionResponseOK | 0 | Steam удостоверился, что пользователь в сети, билет действителен и не использовался ранее. |
| k_EAuthSessionResponseUserNotConnectedToSteam | 1 | Запрошенный пользователь не подключен к Steam. |
| k_EAuthSessionResponseNoLicenseOrExpired | 2 | У пользователя нет лицензии на приложение или истёк срок действия билета. |
| k_EAuthSessionResponseVACBanned | 3 | У пользователя есть блокировка VAC для данной игры. |
| k_EAuthSessionResponseLoggedInElseWhere | 4 | Пользователь вошёл в Steam в другом месте и сессия с игрой была отключена. |
| k_EAuthSessionResponseVACCheckTimedOut | 5 | Системе VAC не удалось выполнить античит-проверку данного пользователя. |
| k_EAuthSessionResponseAuthTicketCanceled | 6 | Билет отменён тем, кто его выпустил. |
| k_EAuthSessionResponseAuthTicketInvalidAlreadyUsed | 7 | Билет уже был использован, он недействителен. |
| k_EAuthSessionResponseAuthTicketInvalid | 8 | Билет не относится к пользователю, подключённому в данный момент к Steam. |
| k_EAuthSessionResponsePublisherIssuedBan | 9 | Пользователь заблокирован в данной игре. Блокировка выпущена с помощью веб-API, а не в системе VAC. |
| k_EAuthSessionResponseAuthTicketNetworkIdentityFailure | 10 | Идентификатор сети в билете не соответствует серверу аутентификации. |
EBeginAuthSessionResult
Результаты, возвращаемые при вызове
ISteamUser::BeginAuthSession и
ISteamGameServer::BeginAuthSession.
| Название | Значение | Описание |
| k_EBeginAuthSessionResultOK | 0 | Билет действителен для данной игры и данного SteamID. |
| k_EBeginAuthSessionResultInvalidTicket | 1 | Билет недействителен. |
| k_EBeginAuthSessionResultDuplicateRequest | 2 | Билет для этого SteamID уже отправлен. |
| k_EBeginAuthSessionResultInvalidVersion | 3 | Билет относится к несовместимой версии интерфейса. |
| k_EBeginAuthSessionResultGameMismatch | 4 | Билет не относится к данной игре. |
| k_EBeginAuthSessionResultExpiredTicket | 5 | Срок действия билета истёк. |
EBroadcastUploadResult
Результат отправки трансляции из
BroadcastUploadStop_t.
| Название | Значение | Описание |
| k_EBroadcastUploadResultNone | 0 | Состояние трансляции неизвестно. |
| k_EBroadcastUploadResultOK | 1 | Трансляция прошла удачно, проблем нет. |
| k_EBroadcastUploadResultInitFailed | 2 | Инициализация трансляции не удалась. |
| k_EBroadcastUploadResultFrameFailed | 3 | Не удалось выполнить отправку кадров трансляции. |
| k_EBroadcastUploadResultTimeout | 4 | Время на отправку трансляции истекло. |
| k_EBroadcastUploadResultBandwidthExceeded | 5 | Трансляция отправила слишком много данных. |
| k_EBroadcastUploadResultLowFPS | 6 | Число кадров трансляции в секунду слишком мало. |
| k_EBroadcastUploadResultMissingKeyFrames | 7 | Трансляция отправляет недостаточно ключевых кадров. |
| k_EBroadcastUploadResultNoConnection | 8 | Клиенту трансляции не удалось подключиться к узлу ретрансляции. |
| k_EBroadcastUploadResultRelayFailed | 9 | Узел ретрансляции остановил отправку. |
| k_EBroadcastUploadResultSettingsChanged | 10 | Клиент изменил настройки трансляции. |
| k_EBroadcastUploadResultMissingAudio | 11 | Клиенту не удалось отправить аудиоданные. |
| k_EBroadcastUploadResultTooFarBehind | 12 | Клиенты слишком медленно отправляли данные. |
| k_EBroadcastUploadResultTranscodeBehind | 13 | Серверу не удалось справиться с перекодировкой. |
EChatEntryType
Типы сообщений в чатах.
Возвращаются в результате вызова
ISteamFriends::GetFriendMessage,
ISteamFriends::GetClanChatMessage и
ISteamMatchmaking::GetLobbyChatEntry.
| Название | Значение | Описание |
| k_EChatEntryTypeInvalid | 0 | Недействительный тип. |
| k_EChatEntryTypeChatMsg | 1 | Нормальное текстовое сообщение от другого пользователя. |
| k_EChatEntryTypeTyping | 2 | Другой пользователь печатает, не используется в многопользовательских чатах. |
| k_EChatEntryTypeInviteGame | 3 | Приглашение от другого пользователя в его текущую игру. |
| k_EChatEntryTypeEmote | 4 | Текстовое сообщение с эмотиконом (устарело, используется как ChatMsg). |
| k_EChatEntryTypeLeftConversation | 6 | Пользователь покинул беседу (закрыл окно чата). |
| k_EChatEntryTypeEntered | 7 | Пользователь вошёл в беседу, используется в многопользовательских чатах и групповых чатах. |
| k_EChatEntryTypeWasKicked | 8 | Пользователь выгнан (данные: SteamID выгнавшего пользователя). |
| k_EChatEntryTypeWasBanned | 9 | Пользователь заблокирован (данные: SteamID заблокировавшего пользователя). |
| k_EChatEntryTypeDisconnected | 10 | Пользователь отсоединён. |
| k_EChatEntryTypeHistoricalChat | 11 | Сообщение в чате из истории пользователя или офлайн-сообщение. |
| k_EChatEntryTypeLinkBlocked | 14 | Ссылка удалена фильтром чата. |
EChatRoomEnterResponse
Ответ на попытку входа в чат.
| Название | Значение | Описание |
| k_EChatRoomEnterResponseSuccess | 1 | Готово! |
| k_EChatRoomEnterResponseDoesntExist | 2 | Чат не существует (скорее всего закрыт). |
| k_EChatRoomEnterResponseNotAllowed | 3 | Общий отказ: у пользователя нет разрешения на присоединение к чату. |
| k_EChatRoomEnterResponseFull | 4 | Чат достиг предельного размера. |
| k_EChatRoomEnterResponseError | 5 | Неожиданная ошибка. |
| k_EChatRoomEnterResponseBanned | 6 | Вы заблокированы в данном чате и не можете присоединиться. |
| k_EChatRoomEnterResponseLimited | 7 | Присоединение к данному чату запрещено, поскольку ваш аккаунт ограничен (нет средств). |
| k_EChatRoomEnterResponseClanDisabled | 8 | Попытка присоединиться к чату клана, когда клан заблокирован или отключен. |
| k_EChatRoomEnterResponseMemberBlockedYou | 10 | Присоединиться не удалось: пользователь в чате заблокировал присоединение. |
| k_EChatRoomEnterResponseYouBlockedMember | 11 | Присоединиться не удалось: вы заблокировали пользователя, находящегося в чате. |
| k_EChatRoomEnterResponseRatelimitExceeded | 15 | Присоединиться не удалось: слишком много попыток подключения за короткий период времени. |
EChatSteamIDInstanceFlags
Специальные флаги для аккаунтов чатов: они занимают 8 верхних битов «экземпляра» SteamID, оставляя 12 битов для реальных экземпляров.
| Название | Значение | Описание |
| k_EChatAccountInstanceMask | 0x00000FFF | 8 верхних битов являются флагами. |
| k_EChatInstanceFlagClan | ( k_unSteamAccountInstanceMask + 1 ) >> 1 | SteamID — для группы Steam. |
| k_EChatInstanceFlagLobby | ( k_unSteamAccountInstanceMask + 1 ) >> 2 | SteamID — для лобби. |
| k_EChatInstanceFlagMMSLobby | ( k_unSteamAccountInstanceMask + 1 ) >> 3 | SteamID — для лобби подбора игр. |
EDenyReason
Значения результатов, когда клиенту не удалось подключиться или он был выгнан с игрового сервера. Получаются из
GSClientDeny_t и
GSClientKick_t.
| Название | Значение | Описание |
| k_EDenyInvalid | 0 | Неизвестно. |
| k_EDenyInvalidVersion | 1 | Клиент и сервер не одной версии. |
| k_EDenyGeneric | 2 | Общего характера. |
| k_EDenyNotLoggedOn | 3 | Клиент не залогинен. |
| k_EDenyNoLicense | 4 | У клиента нет лицензии на данную игру. |
| k_EDenyCheater | 5 | Клиент заблокирован VAC. |
| k_EDenyLoggedInElseWhere | 6 | Этот аккаунт используется из другого места. |
| k_EDenyUnknownText | 7 | |
| k_EDenyIncompatibleAnticheat | 8 | |
| k_EDenyMemoryCorruption | 9 | |
| k_EDenyIncompatibleSoftware | 10 | |
| k_EDenySteamConnectionLost | 11 | Сервер потерял соединение со Steam. |
| k_EDenySteamConnectionError | 12 | При соединении сервера со Steam произошла ошибка общего характера. |
| k_EDenySteamResponseTimedOut | 13 | Истекло время ожидания при соединении сервера со Steam. |
| k_EDenySteamValidationStalled | 14 | Клиент пока не авторизован Steam. |
| k_EDenySteamOwnerLeftGuestUser | 15 | Владелец общей игры вышел, вызывается для каждого гостя. |
EGameIDType
Используется для описания типа
CGameID.
| Название | Значение | Описание |
| k_EGameIDTypeApp | 0 | GameID — обычное приложение Steam. |
| k_EGameIDTypeGameMod | 1 | GameID — модификация. |
| k_EGameIDTypeShortcut | 2 | GameID — ярлык. |
| k_EGameIDTypeP2P | 3 | GameID — ярлык. |
ELaunchOptionType
Коды определённых вариантов запуска. Соответствуют типам запуска в разделе «Варианты запуска» на странице
«Общие параметры установки» приложения.
Чтобы проверить, является ли тип запуска вариантом для виртуальной реальности, можно использовать специальную функцию BIsVRLaunchOptionType.
| Название | Значение | Описание |
| k_ELaunchOptionType_None | 0 | Не указано. |
| k_ELaunchOptionType_Default | 1 | Запускает приложение в режиме по умолчанию. |
| k_ELaunchOptionType_SafeMode | 2 | Запускает приложение в безопасном режиме. |
| k_ELaunchOptionType_Multiplayer | 3 | Запускает приложение в многопользовательском режиме. |
| k_ELaunchOptionType_Config | 4 | Запускает инструмент настройки для этой игры. |
| k_ELaunchOptionType_OpenVR | 5 | Запускает игру в режиме VR с использованием OpenVR. |
| k_ELaunchOptionType_Server | 6 | Запускает выделенный сервер для данной игры. |
| k_ELaunchOptionType_Editor | 7 | Запускает редактор игры. |
| k_ELaunchOptionType_Manual | 8 | Открывает руководство к игре. |
| k_ELaunchOptionType_Benchmark | 9 | Запускает тест производительности игры. |
| k_ELaunchOptionType_Option1 | 10 | Опция общего характера, использует поле описания для названия игры. |
| k_ELaunchOptionType_Option2 | 11 | Опция общего характера, использует поле описания для названия игры. |
| k_ELaunchOptionType_Option3 | 12 | Опция общего характера, использует поле описания для названия игры. |
| k_ELaunchOptionType_OculusVR | 13 | Запускает игру в режиме VR с использованием SDK Oculus. |
| k_ELaunchOptionType_OpenVROverlay | 14 | Запускает меню оверлея OpenVR. |
| k_ELaunchOptionType_OSVR | 15 | Запускает игру в режиме VR с использованием SDK OSVR. |
| k_ELaunchOptionType_Dialog | 1000 | Показать диалоговое окно с вариантами запуска. |
EMarketingMessageFlags
Внутренние флаги системы продвижения Steam, которые меняют способ их обработки клиентом.
| Название | Значение | Описание |
| k_EMarketingMessageFlagsNone | 0 | |
| k_EMarketingMessageFlagsHighPriority | 1 << 0 | |
| k_EMarketingMessageFlagsPlatformWindows | 1 << 1 | |
| k_EMarketingMessageFlagsPlatformMac | 1 << 2 | |
| k_EMarketingMessageFlagsPlatformLinux | 1 << 3 | |
| k_EMarketingMessageFlagsPlatformRestrictions | = | все флаги |
ENotificationPosition
Возможное положение уведомлений в оверлее. Используется с
ISteamUtils::SetOverlayNotificationPosition.
| Название | Значение | Описание |
| k_EPositionTopLeft | 0 | Левый верхний угол. |
| k_EPositionTopRight | 1 | Правый верхний угол. |
| k_EPositionBottomLeft | 2 | Левый нижний угол. |
| k_EPositionBottomRight | 3 | Правый нижний угол. |
EResult
Коды ошибок.
Эти коды возвращаются функциями, обратными вызовами, результатами вызовов как API Steamworks, так и веб-API. Вызовы API могут вернуть произвольный код ошибки EResult. Рекомендуем изучить документацию о конкретной функции или обратном вызове, чтобы понять, какие результаты могут возвращаться и что они означают в данном контексте.
Эти коды похожи на тип HRESULT в Win32 или errno в POSIX.
| Название | Значение | Описание |
| k_EResultOK | 1 | Готово! |
| k_EResultFail | 2 | Ошибка общего характера. |
| k_EResultNoConnection | 3 | Клиент Steam не подключен к серверу Steam. |
| k_EResultInvalidPassword | 5 | Пароль или билет недействителен. |
| k_EResultLoggedInElsewhere | 6 | Этот пользователь использует аккаунт из другого места. |
| k_EResultInvalidProtocolVer | 7 | Некорректная версия протокола. |
| k_EResultInvalidParam | 8 | Некорректный параметр. |
| k_EResultFileNotFound | 9 | Файл не найден. |
| k_EResultBusy | 10 | Вызванный метод занят, действие не предпринято. |
| k_EResultInvalidState | 11 | Вызванный объект находится в некорректном состоянии. |
| k_EResultInvalidName | 12 | Название некорректно. |
| k_EResultInvalidEmail | 13 | Указан неверный адрес эл. почты. |
| k_EResultDuplicateName | 14 | Название не является уникальным. |
| k_EResultAccessDenied | 15 | Доступ запрещён. |
| k_EResultTimeout | 16 | Время ожидания операции истекло. |
| k_EResultBanned | 17 | Этот пользователь заблокирован системой VAC. |
| k_EResultAccountNotFound | 18 | Аккаунт не найден. |
| k_EResultInvalidSteamID | 19 | Некорректный SteamID. |
| k_EResultServiceUnavailable | 20 | Запрошенная служба в данный момент недоступна. |
| k_EResultNotLoggedOn | 21 | Пользователь не залогинен. |
| k_EResultPending | 22 | Запрос рассматривается, он может быть в процессе обработки или ожидать ответа третьей стороны. |
| k_EResultEncryptionFailure | 23 | Шифрация или дешифрация не удалась. |
| k_EResultInsufficientPrivilege | 24 | Недостаточно полномочий. |
| k_EResultLimitExceeded | 25 | Лимит превышен. |
| k_EResultRevoked | 26 | Доступ отозван (используется для отзыва гостевого пропуска). |
| k_EResultExpired | 27 | Истек срок действия лицензии или гостевого пропуска, к которому пользователь пытается получить доступ. |
| k_EResultAlreadyRedeemed | 28 | Гостевой пропуск уже активирован на аккаунте, не может быть использован заново. |
| k_EResultDuplicateRequest | 29 | Этот запрос является дубликатом, действие уже произошло в прошлом, игнорируйте в этот раз. |
| k_EResultAlreadyOwned | 30 | Все игры, которые пользователь запросил по гостевому пропуску, уже есть на его аккаунте. |
| k_EResultIPNotFound | 31 | IP-адрес не найден. |
| k_EResultPersistFailed | 32 | Не удалось сохранить изменения в хранилище данных. |
| k_EResultLockingFailed | 33 | Не удалось получить блокировку доступа для данной операции. |
| k_EResultLogonSessionReplaced | 34 | Сеанс входа в систему был заменён. |
| k_EResultConnectFailed | 35 | Не удалось соединиться. |
| k_EResultHandshakeFailed | 36 | Не удалось подтвердить аутентификацию. |
| k_EResultIOFailure | 37 | Отказ устройства ввода-вывода общего характера. |
| k_EResultRemoteDisconnect | 38 | Соединение с удалённым сервером разорвано. |
| k_EResultShoppingCartNotFound | 39 | Не удалось найти запрошенную корзину. |
| k_EResultBlocked | 40 | Пользователь заблокировал действие. |
| k_EResultIgnored | 41 | Цель игнорирует отправляющего. |
| k_EResultNoMatch | 42 | Не найдено ничего, удовлетворяющего запросу. |
| k_EResultAccountDisabled | 43 | Аккаунт отключен. |
| k_EResultServiceReadOnly | 44 | В данный момент служба не принимает изменений. |
| k_EResultAccountNotFeatured | 45 | На аккаунте нет средств, поэтому функция недоступна. |
| k_EResultAdministratorOK | 46 | Действие позволено, но только потому, что запрос отправлен администратором. |
| k_EResultContentVersion | 47 | По протоколу Steam передано несоответствие версий контента. |
| k_EResultTryAnotherCM | 48 | Текущий сервер CM не может обслуживать пользователя, делающего запрос, пользователь должен попробовать другой. |
| k_EResultPasswordRequiredToKickSession | 49 | Вы уже вошли из другого места, этот кэшированный логин не удался. |
| k_EResultAlreadyLoggedInElsewhere | 50 | Этот пользователь использует аккаунт из другого места. (Используйте k_EResultLoggedInElsewhere вместо этого!) |
| k_EResultSuspended | 51 | Долго продолжающаяся операция прекращена/поставлена на паузу (например, загрузка контента). |
| k_EResultCancelled | 52 | Операция отменена, обычно пользователем (например, загрузка контента). |
| k_EResultDataCorruption | 53 | Операция отменена, поскольку данные неправильно сформированы или безвозвратно потеряны. |
| k_EResultDiskFull | 54 | Операция отменена, недостаточно места на диске |
| k_EResultRemoteCallFailed | 55 | Удалённый или межпроцессный вызов не удался. |
| k_EResultPasswordUnset | 56 | Не удалось проверить пароль, так как он не задан на сервере. |
| k_EResultExternalAccountUnlinked | 57 | Внешний аккаунт (PlayStation, Facebook и пр.) не привязан к аккаунту Steam. |
| k_EResultPSNTicketInvalid | 58 | Билет PlayStation недействителен. |
| k_EResultExternalAccountAlreadyLinked | 59 | Внешний аккаунт (PlayStation, Facebook и пр.) уже привязан к другому аккаунту, должен явно запросить заменить или удалить связь. |
| k_EResultRemoteFileConflict | 60 | Синхронизация не может быть возобновлена из-за конфликта локального и удалённого файлов. |
| k_EResultIllegalPassword | 61 | Запрошенный новый пароль недопустим. |
| k_EResultSameAsPreviousValue | 62 | Новое значение равно старому. Используется для секретного вопроса и ответа. |
| k_EResultAccountLogonDenied | 63 | Вход в аккаунт запрещён из-за ошибки во время двухфакторной аутентификации. |
| k_EResultCannotUseOldPassword | 64 | Запрошенный новый пароль незаконен. |
| k_EResultInvalidLoginAuthCode | 65 | Вход в аккаунт запрещён из-за недействительного кода авторизации. |
| k_EResultAccountLogonDeniedNoMail | 66 | Вход в аккаунт запрещён из-за ошибки во время двухфакторной аутентификации: не отправлено письмо. |
| k_EResultHardwareNotCapableOfIPT | 67 | Устройство пользователя не поддерживает технологию защиты конфиденциальности Intel (IPT). |
| k_EResultIPTInitError | 68 | Технологии защиты конфиденциальности Intel (IPT) не удалось провести инициализацию. |
| k_EResultParentalControlRestricted | 69 | Операция не удалась из-за ограничений родительского контроля, наложенных на текущего пользователя. |
| k_EResultFacebookQueryError | 70 | Запрос к Facebook вернул ошибку. |
| k_EResultExpiredLoginAuthCode | 71 | Вход в аккаунт запрещён из-за просроченного кода авторизации. |
| k_EResultIPLoginRestrictionFailed | 72 | Войти в аккаунт не удалось из-за ограничения по IP. |
| k_EResultAccountLockedDown | 73 | Использование текущего аккаунта в данный момент заблокировано. Это произошло из-за вероятного взлома, ожидается подтверждение владения. |
| k_EResultAccountLogonDeniedVerifiedEmailRequired | 74 | Вход не удался, поскольку эл. почта аккаунта не подтверждена. |
| k_EResultNoMatchingURL | 75 | Нет ссылки, соответствующей предоставленному значению. |
| k_EResultBadResponse | 76 | Некорректный ответ из-за сбоя чтения, отсутствующего поля и т.п. |
| k_EResultRequirePasswordReEntry | 77 | Пользователь не может завершить действие, пока не введёт пароль ещё раз. |
| k_EResultValueOutOfRange | 78 | Введённое значение находится за пределами допустимого диапазона. |
| k_EResultUnexpectedError | 79 | Произошло нечто, чего не должно было произойти. |
| k_EResultDisabled | 80 | Запрошенная служба настроена таким образом, что она недоступна. |
| k_EResultInvalidCEGSubmission | 81 | Отправленные на сервер CEG файлы недействительны. |
| k_EResultRestrictedDevice | 82 | Используемое устройство не позволяет выполнить данное действие. |
| k_EResultRegionLocked | 83 | Действие не может быть выполнено, поскольку оно ограничено регионом. |
| k_EResultRateLimitExceeded | 84 | Временное превышение лимита, попробуйте позже. Отличается от k_EResultLimitExceeded, который может быть постоянным. |
| k_EResultAccountLoginDeniedNeedTwoFactor | 85 | Для входа требуется двухфакторный код. |
| k_EResultItemDeleted | 86 | Сущность, к которой пытаемся получить доступ, удалена. |
| k_EResultAccountLoginDeniedThrottle | 87 | Ошибка при попытке входа, попытайтесь активировать реакцию на возможного злоумышленника. |
| k_EResultTwoFactorCodeMismatch | 88 | Неверный код двухфакторного аутентификатора (Steam Guard) |
| k_EResultTwoFactorActivationCodeMismatch | 89 | Код активации двухфакторного аутентификатора (Steam Guard) не совпадает с отправленным. |
| k_EResultAccountAssociatedToMultiplePartners | 90 | Текущий аккаунт связан с несколькими партнёрами. |
| k_EResultNotModified | 91 | Данные не изменились. |
| k_EResultNoMobileDevice | 92 | К данному аккаунту не привязано мобильное устройство. |
| k_EResultTimeNotSynced | 93 | Представленное время находится за пределами диапазона или в недопустимом формате. |
| k_EResultSmsCodeFailed | 94 | Ошибка SMS-кода: не совпадает, нет ожидания, и пр. |
| k_EResultAccountLimitExceeded | 95 | Слишком много аккаунтов пытаются получить доступ к данному ресурсу. |
| k_EResultAccountActivityLimitExceeded | 96 | Слишком много изменений в этом аккаунте. |
| k_EResultPhoneActivityLimitExceeded | 97 | Слишком много изменений для этого номера телефона. |
| k_EResultRefundToWallet | 98 | Невозможно вернуть средства на использованный способ оплаты, необходимо использовать кошелёк. |
| k_EResultEmailSendFailure | 99 | Невозможно отправить письмо. |
| k_EResultNotSettled | 100 | Невозможно выполнить операцию, пока платёж не прошёл. |
| k_EResultNeedCaptcha | 101 | Пользователю необходимо отправить действительную капчу. |
| k_EResultGSLTDenied | 102 | Токен входа на игровой сервер, принадлежащий владельцу этого билета, был заблокирован. |
| k_EResultGSOwnerDenied | 103 | Владелец игрового сервера заблокирован по какой-то другой причине: заблокирован аккаунт, получил блокировку в сообществе или в системе VAC, не указан номер телефона и проч. |
| k_EResultInvalidItemType | 104 | Тип объекта, в отношении которого запрошено действие, недействителен. |
| k_EResultIPBanned | 105 | IP-адресу запрещено выполнять данное действие. |
| k_EResultGSLTExpired | 106 | Из-за бездействия истек срок действия токен входа на игровой сервер (GSLT), его можно использовать заново после сброса. |
| k_EResultInsufficientFunds | 107 | У пользователя недостаточно средств для выполнения действия. |
| k_EResultTooManyPending | 108 | Слишком много запрошенного уже ожидает рассмотрения. |
ESteamUserStatType
Поля для внутреннего хранения пользовательской статистики.
| Название | Значение | Описание |
| k_ESteamUserStatTypeINVALID | 0 | Недействительный тип. |
| k_ESteamUserStatTypeINT | 1 | 32-битное целое число. |
| k_ESteamUserStatTypeFLOAT | 2 | 32-битное число с плавающей точкой. |
| k_ESteamUserStatTypeAVGRATE | 3 | Читается как число с плавающей точкой. Устанавливается вместе с длиной сессии. |
| k_ESteamUserStatTypeACHIEVEMENTS | 4 | Стандартное пользовательское достижение. |
| k_ESteamUserStatTypeGROUPACHIEVEMENTS | 5 | Устарело. |
| k_ESteamUserStatTypeMAX | 6 | Общее число типов пользовательских статистик, используется для проверки работоспособности. |
ETextFilteringContext
Параметр для
ISteamUtils::FilterText.
| Название | Значение | Описание |
| k_ETextFilteringContextUnknown | 0 | Неизвестный контекст. |
| k_ETextFilteringContextGameContent | 1 | Контент игры, выполняется только предписанная законом фильтрация. |
| k_ETextFilteringContextChat | 2 | Чат другого пользователя. |
| k_ETextFilteringContextName | 3 | Название символа или объекта. |
EUniverse
Среды Steam. Каждая среда является автономным экземпляром Steam.
| Название | Значение | Описание |
| k_EUniverseInvalid | 0 | Недействительный тип. |
| k_EUniversePublic | 1 | Стандартная общедоступная среда. |
| k_EUniverseBeta | 2 | Бета-среда, используемая внутри Valve. |
| k_EUniverseInternal | 3 | Внутренняя среда, используемая внутри Valve. |
| k_EUniverseDev | 4 | Среда для разработчиков, которая используется внутри Valve. |
| k_EUniverseMax | 5 | Общее число сред, используемых для проверки работоспособности. |
EUserHasLicenseForAppResult
Результат вызова
ISteamUser::UserHasLicenseForApp.
| Название | Значение | Описание |
| k_EUserHasLicenseResultHasLicense | 0 | У пользователя есть лицензия на указанное приложение. |
| k_EUserHasLicenseResultDoesNotHaveLicense | 1 | У пользователя нет лицензии на указанное приложение. |
| k_EUserHasLicenseResultNoAuth | 2 | Проверка подлинности пользователя не выполнена. |
EVoiceResult
Результаты для использования с функциями
голосового чата.
| Название | Значение | Описание |
| k_EVoiceResultOK | 0 | Вызов успешно завершён. |
| k_EVoiceResultNotInitialized | 1 | Интерфейс Steam Voice не инициализирован. |
| k_EVoiceResultNotRecording | 2 | В данный момент запись не ведётся. |
| k_EVoiceResultNoData | 3 | Голосовые данные недоступны. |
| k_EVoiceResultBufferTooSmall | 4 | Размера предоставленного буфера недостаточно для получения данных. |
| k_EVoiceResultDataCorrupted | 5 | Голосовые данные повреждены. |
| k_EVoiceResultRestricted | 6 | Этому пользователю запрещено пользоваться чатами. |
| k_EVoiceResultUnsupportedCodec | 7 | Параметр устарел. |
| k_EVoiceResultReceiverOutOfDate | 8 | Параметр устарел. |
| k_EVoiceResultReceiverDidNotAnswer | 9 | Параметр устарел. |
EVRHMDType
Кодовые точки для поставщиков и моделей гарнитур виртуальной реальности. Используйте специальные функции BIsOculusHMD и BIsViveHMD для проверки и определения бренда.
| Название | Значение | Описание |
| k_eEVRHMDType_None | -1 | Неизвестный поставщик и модель. |
| k_eEVRHMDType_Unknown | 0 | Неизвестный поставщик и модель. |
| k_eEVRHMDType_HTC_Dev | 1 | Оригинальный набор разработчика HTC. |
| k_eEVRHMDType_HTC_VivePre | 2 | Набор разработчика HTC Vive Pre. |
| k_eEVRHMDType_HTC_Vive | 3 | Пользовательский экземпляр HTC Vive. |
| k_eEVRHMDType_HTC_Unknown | 20 | Неизвестный шлем HTC. |
| k_eEVRHMDType_Oculus_DK1 | 21 | Набор разработчика Oculus Rift 1. |
| k_eEVRHMDType_Oculus_DK2 | 22 | Набор разработчика Oculus Rift 2. |
| k_eEVRHMDType_Oculus_Rift | 23 | Пользовательский экземпляр Oculus Rift 1. |
| k_eEVRHMDType_Oculus_Unknown | 40 | Неизвестный шлем Oculus. |
Typedefs
Далее приведён список объявлений typedef, которые определены для использования со steam_api.
| Название | Базовый тип | Описание |
| AccountID_t | uint32 | Используется для внутренних целей в CSteamID, представляет аккаунт конкретного пользователя вне зависимости от среды Steam, в которой он находится. |
| AppId_t | uint32 | Уникальный идентификатор приложения. Больше информации здесь. |
| AssetClassId_t | uint64 | Для внутреннего использования в Steam. |
| BREAKPAD_HANDLE | void * | Используется внутренними интерфейсами обработчиков сбоев Steam для обращения к конкретным установленным обработчиком сбоев. |
| BundleId_t | uint32 | Уникальный идентификатор набора. (Для внутреннего использования в Steam.) |
| CellID_t | uint32 | Для внутреннего использования в Steam. |
| DepotId_t | uint32 | Уникальный идентификатор хранилища. |
| GID_t | uint64 | Для внутреннего использования в Steam. |
| HAuthTicket | uint32 | Дескриптор билета аутентификации пользователя. Тип возвращаемого значения ISteamUser::GetAuthSessionTicket. |
| int16 | short | Версия 16-битного целого числа, используемая в Steam. Эквивалент int16_t. |
| int32 | int | Версия 32-битного целого числа, используемая в Steam. Эквивалент int32_t. |
| int64 | long long | Версия 64-битного целого числа, используемая в Steam. Эквивалент int64_t. |
| int8 | signed char | Версия 8-битного целого числа, используемая в Steam. Эквивалент int8_t. |
| intp | int/long long | Тип со знаком, используемый в Steam, который может хранить указатель. Эквивалент intptr_t. (Для внутреннего использования в Steam.) |
| JobID_t | uint64 | Для внутреннего использования в Steam. |
| lint64 | long int | Для внутреннего использования в Steam. |
| ManifestId_t | uint64 | Для внутреннего использования в Steam. |
| PackageId_t | uint32 | Для внутреннего использования в Steam. |
| PartnerId_t | uint32 | Для внутреннего использования в Steam. |
| PhysicalItemId_t | uint32 | Для внутреннего использования в Steam. |
| RTime32 | uint32 | Версия системы исчисления UNIX-времени, используемая Steam, отсчитывается по 1 секунде, начиная с 1970-01-01 00:00:00 +0000 (UTC) |
| SteamAPICall_t | uint64 | Уникальный дескриптор вызова API Steam. Если функция возвращает такой дескриптор, необходимо отслеживать его статус, используя систему результатов вызовов. |
| TxnID_t | GID_t | Для внутреннего использования в Steam. |
| uint16 | unsigned short | Версия 16-битного целого числа без знака, используемая в Steam. Эквивалент uint16_t. |
| uint32 | unsigned int | Версия 32-битного целого числа без знака, используемая в Steam. Эквивалент uint32_t. |
| uint64 | unsigned long long | Версия 64-битного целого числа без знака, используемая в Steam. Эквивалент uint64_t. |
| uint8 | unsigned char | Версия 8-битного целого числа без знака, используемая в Steam. Эквивалент uint8_t. |
| uintp | unsigned int/unsigned long long | Тип без знака, используемый в Steam, который может хранить указатель. Эквивалент uintptr_t. (Для внутреннего использования в Steam.) |
| ulint64 | unsigned long int | Для внутреннего использования в Steam. |
Константы
Далее приведён список констант, которые определены для использования со steam_api.
| Название | Тип | Значение | Описание |
| BREAKPAD_INVALID_HANDLE | int | (BREAKPAD_HANDLE)0 | |
| k_cubSaltSize | int | 8 | Для внутреннего использования в Steam. |
| k_GIDNil | GID_t | 0xffffffffffffffffull | Для внутреннего использования в Steam. |
| k_HAuthTicketInvalid | HAuthTicket | 0 | Недействительный билет аутентификации пользователя. |
| k_JobIDNil | JobID_t | 0xffffffffffffffffull | Для внутреннего использования в Steam. |
| k_steamIDLanModeGS | int | CSteamID( | Данный SteamID получен от пользовательского игрового соединения с игровым сервером типа sv_lan. |
| k_steamIDNil | int | CSteamID() | Общий недействительный CSteamID. |
| k_steamIDNonSteamGS | int | CSteamID( | Данный SteamID может быть получен от соединения пользователя с игровым сервером, который не использует систему аутентификации Steam, но поддерживает функцию «Присоединиться к игре» в списке друзей. |
| k_steamIDNotInitYetGS | int | CSteamID( | Данный SteamID может быть получен от соединения пользователя с игровым сервером, который был только что запущен, но ещё не инициализировал компонент steam3 и не начал вход в систему. |
| k_steamIDOutofDateGS | int | CSteamID( | Данный SteamID получен от пользовательского игрового соединения с устаревшим игровым сервером, который не внедрил протокол для передачи SteamID. |
| k_TxnIDNil | GID_t | k_GIDNil | Для внутреннего использования в Steam. |
| k_TxnIDUnknown | GID_t | 0 | Для внутреннего использования в Steam. |
| k_uAPICallInvalid | SteamAPICall_t | 0x0 | Недействительный дескриптор вызова API Steam. |
| k_uAppIdInvalid | AppId_t | 0x0 | Недействительный номер приложения. |
| k_uBundleIdInvalid | BundleId_t | 0 | Для внутреннего использования в Steam. |
| k_uCellIDInvalid | CellID_t | 0xFFFFFFFF | Для внутреннего использования в Steam. |
| k_uDepotIdInvalid | DepotId_t | 0x0 | Недействительный номер хранилища. |
| k_ulAssetClassIdInvalid | AssetClassId_t | 0x0 | Для внутреннего использования в Steam. |
| k_uManifestIdInvalid | ManifestId_t | 0 | Для внутреннего использования в Steam. |
| k_unSteamAccountIDMask | unsigned int | 0xFFFFFFFF | Используется в CSteamID для маскировки AccountID_t. |
| k_unSteamAccountInstanceMask | unsigned int | 0x000FFFFF | Используется в CSteamID для маскировки экземпляра аккаунта. |
| k_unSteamUserConsoleInstance | unsigned int | 2 | Используется в CSteamID для идентификации пользователей, вошедших через консоль. |
| k_unSteamUserDesktopInstance | unsigned int | 1 | Используется в CSteamID для идентификации пользователей, вошедших через настольный клиент. |
| k_unSteamUserWebInstance | unsigned int | 4 | Используется в CSteamID для идентификации пользователей, вошедших из сети. |
| k_uPackageIdFreeSub | PackageId_t | 0x0 | Для внутреннего использования в Steam. |
| k_uPackageIdInvalid | PackageId_t | 0xFFFFFFFF | Для внутреннего использования в Steam. |
| k_uPartnerIdInvalid | PartnerId_t | 0 | Для внутреннего использования в Steam. |
| k_uPhysicalItemIdInvalid | PhysicalItemId_t | 0x0 | Для внутреннего использования в Steam. |
| QUERY_PORT_ERROR | int | 0xFFFE | Не удалось получить порт запросов данного сервера. |
| QUERY_PORT_NOT_INITIALIZED | int | 0xFFFF | ----------------------------------------------------------------------------- Константы для портов запросов. ----------------------------------------------------------------------------- Текущее значение порта пока не запрошено у игрового сервера. |