SteamID

From Valve Developer Community
Jump to: navigation, search
English (en)中文 (zh)
... Icon-Important.png
Warning.pngWarning:该文章包含内容可能为错误的翻译,您可以帮助校正它。

SteamID是用于标识Steam帐户的唯一标识符,它也用于引用用户的Steam社区个人资料页面。

格式

以文本形式显示

当以文本形式显示时,SteamID遵循相当简单的格式:“STEAM_X:Y:Z”,其中X、Y和Z是整数。在某些情况下,会使用“STEAM_ID_PENDING(待定)”或“UNKNOWN(未知)”替代显示(有关更多详细信息,请参见“Steam帐户类型”部分)。

  • X代表Steam账户所属的“Universe(账号体系)”。
  • Y是帐户ID的一部分,值为0或1。
  • Z为“账号”。

在计算机程序内部显示

当在计算机程序内部显示时,X、Y和Z部分(参见“以文本形式显示”部分)都将被打包成64位数据结构。

  • Y占最低位的数值。
  • 接下来的31位代表帐号。
  • 接下来的20位代表帐户实例,用户帐户通常设置为1。
  • 接下来的4位代表帐户的类型。
  • 最后8位代表Steam账户所属的“Universe(账号体系)”。

Steam64ID转换至Steam社区ID的说明

适用于Steam账户的Universes(账号体系)

Steam账户有6种Universes(账号体系)类型。

数值 类型
0 个人/未指定
1 公共
2 测试
3 内部
4 开发
5 发行候选

Steam帐户类型

Steam帐户有10种已知的帐户类型,其中有4种仍然可以被创建。

数值 字母 类型 中文名称 能否使用 链接部分(默认/自定义) SteamID64标识符
0 I Invalid 无效
1 U Individual 个人 profiles / id 0x0110000100000000
2 M Multiseat 多用户
3 G GameServer 游戏服务器
4 A AnonGameServer 匿名游戏服务器
5 P Pending 待定
6 C ContentServer 内容服务器 未知
7 g Clan groups / gid 0x0170000000000000
8 T / L / c Chat 聊天室
9 P2P SuperSeeder P2P超级种子
10 a AnonUser 匿名用户

当拥有“个人”类型的账户连接Steam身份验证服务器时,账户将会被临时分配为“Pending(待定)”类型。这种账户的文本形式表示为“STEAM_ID_Pending(待定)”,直到他们的账户凭据通过Steam的身份验证服务器为止,这个过程通常在连接服务器时发生。类型为“Invalid(无效)”的帐户的文本形式表示为“UNKNOWN(未知)”,用于机器人与不属于其他类型的帐户。

对于聊天室,多用户聊天室使用“T”字符,Steam组(群组聊天)使用“c”字符,Steam大厅使用聊天ID与“L”字符。

Steam ID转换为Steam社区ID

每个Steam ID都可以被转换至用于Steam社区网站的 Steam社区 ID。

设三个函数:X,Y与Z,通常与SteamID的“STEAM_X:Y:Z”相同。

有两种ID系统,转换方式不同:

32位ID系统
使用W=Z*2+Y公式,一个SteamID可以被转换为如下链接:
http https://steamcommunity.com/路径/[字母:1:W]
在“Steam帐户类型”表中可以找到代表“字母”部分的“帐户类型”列,斜线后的“路径”部分也可以在表中的“链接部分”列找到。
例如: http://steamcommunity.com/gid/[g:1:4]
64位ID系统
设函数V,定义为SteamID64标识符(为16进制格式,可以在上方的“Steam帐户类型”表中找到)。
使用W=Z*2+V+Y公式,一个SteamID可以被转换为如下链接:
http https://steamcommunity.com/路径/W
与32位ID系统的转换方法类似,斜线后的“路径”部分可以在“Steam帐户类型”表中的“链接部分”列找到。
例如: http://steamcommunity.com/profiles/76561197960287930

Steam社区ID转换为Steam ID

使用逆运算方法,社区ID可以转换为常规的SteamID。Z的值可以通过检查W的奇偶性来获取:W如果是偶数,Y的值为0;W如果是奇数,Y的值为1(这个方法很快,Y是W除以2的余数,或者是转换为二进制后和1进行与运算的结果)。

Steam社区成员的SteamID64(64位SteamID)可以在以下几个地方找到:

  • 玩家:
    • 位于个人资料XML Schema的profile->steamID64元素中(可以在个人资料链接尾部添加?xml=1打开)。
    • 位于“添加到好友列表”链接中(不建议在使用用户名和密码登录的应用程序中使用)。
  • 组:位于“进入聊天室”链接中。

网吧账户注意事项

尽管Valve把所有网吧账户的SteamID放在网吧独立的Universe(账号体系)中,但这并没有完全做到。取而代之的是,网吧账户与普通的用户账户拥有同一个Universe(账号体系)的 SteamID,它们通常来自一个巨大的SteamID池。其中唯一的ID部分在7000000到8000000之间,但这一范围中不仅只有网吧账户,也有普通的用户账户。同样的,在这范围之外不仅只有普通的用户账户,也有网吧账户。

使用SteamID

除了能识别一个账户唯一性、账户类型与账户所属域(Universe/账号体系)的明显元素之外,SteamID还可以用来近似地确定与之相关联的Steam账户的创建时间。上述的格式中,“Z”(即“账号”)的值越低就代表创建账号的时间越早。例如,SteamID为“STEAM_0:0:1234”的账户就明显比SteamID为“STEAM_0:0:12341111”的账户注册时间要早得多。

在Valve的GoldSrc(金源)与Source Orange Box Engine(起源橙盒引擎)游戏(例如反恐精英:起源)中,“X”的值为0。但在“求生之路”、“求生之路2”与“异形丛生”这些较新的Valve游戏中,“X”值的为1。“Y”的值为0或1,是上述账户ID中的一部分。这一部分用来显示该账户所使用的身份验证服务器。

外部链接

  • SteamID.co.uk - 查找玩家、物品、游戏、好友、组以及更多的工具。
  • Legit-Proof.com - 从所有基于SteamID的游戏或其他项目中查找玩家和队伍的搜索引擎。
  • SteamIDFinder.com - 允许玩家不启动游戏,就能快速查找SteamID的工具。
  • Steam ID Finder - 允许查找与轻松复制SteamID(ID2,32位ID,64位ID)的工具。
  • getSteamID - 是一个独立的工具,允许用户在Windows系统上查找曾经在本地计算机上登录过用户的SteamID。
  • SteamID.com - 允许查找“反恐精英”游戏中匹配玩家SteamID的搜索引擎。
  • VACBanned.com - 查找SteamID的VAC状态,并将SteamID的封禁状态添加至数据库的搜索引擎。
  • SteamProfile.co.uk - 在多API站点生成指向个人资料链接的工具。