c# steam64 ID to steam32 ID

вопрос таков:
Как конвертировать steam64 ID в steam32 ID?
Ну или может где-то на копме лежит файл стима где можно узнать SteamID 32? Или можно написать конвертер на другом языке, только чтоб его можно было портировать в WPF C# и желательно с гайдом как его портировать )

Примеры:
steam64 ID - 76561198192371814
конвертировать в
steam32 ID - U:1:232106086

введите сюда описание изображения

id3 - то что нужно

steam32 ID - такой чтоб совпадал как Steam/userdata/...

Пробовал библиотеку steamkit2, но там нужно входить в аккаунт чтобы получить steam32 ID.
Пробовал SteamUserInfo, там можно получить всю информацию о некоторых аккаунтах, о каких точно я так и не понял. У меня аккаунтов около 200, библиотека показывает же только 9.

Облазил кучу сайтов, но там почему-то большинство это как 32 в 64 конвертировать.

И так. Можно как-то составить код чтобы можно было конвертировать id? Могу ответить на вопросы которые вы зададите.


Возможно это может помочь - https://developer.valvesoftware.com/wiki/SteamID


Ответы (1 шт):

Автор решения: tym32167

Я вообще не понимаю, что я творю, но, судя вот по этой ссылке https://developer.valvesoftware.com/wiki/SteamID

Another commonly used representation, referred to as a "Steam3 ID," is represented as: "[letter:1:W]". Many games will use this format for player SteamIDs (e.g., [U:1:1234]) when printed from a status command for example.

W=Z*2+Y

можно получить следующее

string ConvertToSteam3(long steamId)
{
    long acc = steamId >> 1 & 0b11111111111111111111111111111L;
    long y = steamId & 0b1;
    return $"U:1:{acc*2+y}";
}

Альтернативная, более короткая версия

string ConvertToSteam3(long steamId) => $"U:1:{steamId & 0x1FFFFFFF}";

Проверка

Console.WriteLine(ConvertToSteam3(76561198192371814));

Вывод

U:1:232106086

ЗЫ: я так понял, буковку U надо подбирать ещё в зависимости о типа аккаунта.

→ Ссылка