Bla*_*ell 0 c# steam-web-api steam steamworks-api
我正在创建一个应用程序,用户可以在其中粘贴用户的Steam ID在搜索框中。在大多数情况下,它将是游戏控制台中的Steam ID,看起来像:STEAM_1:0:12345678
。我需要将其转换为64位版本,以便向该用户发出Steam API的请求。
这里有很多有用的信息:https : //developer.valvesoftware.com/wiki/SteamID
但是我仍然不知道如何转换为64位。
这是你的幸运日;我为你写了整件事。通常,我们希望您会首先在自己的实现中付出一些努力,即使这很艰难,我们也会帮助您解决该代码中的问题。
public static Int64 TranslateSteamID(string steamID)
{
Int64 result = 0;
var template = new Regex(@"STEAM_(\d):([0-1]):(\d+)");
var matches = template.Matches(steamID);
if (matches.Count <= 0) return 0;
var parts = matches[0].Groups;
if (parts.Count != 4) return 0;
Int64 x = Int64.Parse(parts[1].Value) << 24;
Int64 y = Int64.Parse(parts[2].Value);
Int64 z = Int64.Parse(parts[3].Value) << 1;
result = ((1 + (1 << 20) + x) << 32) | (y + z);
return result;
}
Run Code Online (Sandbox Code Playgroud)
它至少适用于链接页面上的样本值。您可以在这里尝试: