После дальнейших исследований и попыток следовать точной документации Steam Id вот решение, которое я придумал:
STEAM_X: Y: Z
Формула из документации: W = Z * 2 + V + Y
Используя STEAM_1: 1: 66138017 в качестве примера:
var steamId = "STEAM_1:1:66138017";
var match = Regex.Match(steamId, @"^STEAM_[0-5]:[01]:\d+$", RegexOptions.IgnoreCase);
if (!match.Success)
{
return null;
}
// Split it into 3 parts using ":"
var split = steamId.Split(":");
var v = 76561197960265728;
var y = long.Parse(split[1]);
var z = long.Parse(split[2]);
var w = (z * 2) + v + y;
return w;
Объяснение того, откуда взялся V:
В документации есть таблица, в которой перечислены все типы аккаунтов Steam. Наиболее распространенный тип учетной записи - Индивидуальный. Таблица показывает, что шестнадцатеричное значение для этого 0x0110000100000000. Используя шестнадцатеричный в десятичный преобразователь я получил 76561197960265728.