Как получить имя пользователя Steam с помощью SteamWorks API?

Как я могу получить имя пользователя Steam используемой в данный момент (вошедшей в систему) учетной записи в моем приложении с помощью API Steam (который запущен и работает).

Идентификатор Steam можно (например) получить:

CSteamID id = SteamUser.GetSteamID();

Но я не могу найти способ получить имя пользователя.


person ares_games    schedule 08.02.2016    source источник


Ответы (2)


Название аккаунта

Получить имя учетной записи сложно, поскольку, насколько мне известно, функции API нет.
Но в папке <SteamInstallPath>/config есть файл SteamAppData.vdf, который выглядит примерно так:

"SteamAppData"
{
    "RememberPassword"  "<0|1>"
    "AutoLoginUser"     "<accountName>"
}

Вы можете получить путь установки Steam с помощью команды SteamAPI_GetSteamInstallPath(), определенной в steam_api.h.
Затем вы можете прочитать файл и извлечь из него имя учетной записи.

Имя игрока

Получить имя игрока очень просто:

В isteamfriends.h вы должны найти этот метод:

// returns the local players name - guaranteed to not be NULL.
// this is the same name as on the users community profile page
// this is stored in UTF-8 format
// like all the other interface functions that return a char *, it's important that this pointer is not saved
// off; it will eventually be free'd or re-allocated
virtual const char *GetPersonaName() = 0;

Итак, SteamFriends.GetPersonaName() должно дать вам имя игрока.

person David    schedule 14.02.2016
comment
Нам все еще нужно использовать этот метод для получения имени учетной записи, или у нас теперь есть функция API? - person Zarko Ristic; 10.04.2020

SteamFriends()->GetPersonaName();

person Jason Reskin    schedule 08.05.2020