1

我正在做一个项目,我知道我可以以某种方式将蒸汽交易网址获取到 steamid64 id,我想出了类似的东西

$split = explode(":", $steamid); // STEAM_?:?:??????? format

$x = substr($split[0], 6, 1);
$y = $split[1];
$z = $split[2];

$w = ($z * 2) + 0x0110000100000000 + $y;

此代码非常成功地将“steamid”id 转换为“steamid64”id。

一个示例交易网址如下

https://steamcommunity.com/tradeoffer/new/?partner=487364592&token=xxxxxxxx

“partner=487364592”这部分实际上是一个steamid3 id,我知道我们可以把这个id转换成steamid64

示例:[U:1:487364592]

我知道有不止一种方法可以做到这一点,但无论我尝试哪种方式,我都无法成功。数学运算太多了。

我的整个目标是在 php 上的交易 url 中使用合作伙伴 id 到达 steamid64 id

在 php 上执行此操作的最简单方法是什么?

4

1 回答 1

1

从 AccountID(合作伙伴 ID)计算 SteamID64 的公式是:

(universe << 56) | (type << 52) | (instance << 32) | account_id

在你的情况下:

(1 << 56) | (1 << 52) | (1 << 32) | 487364592

结果:

76561198447630320

对于交易报价(合作伙伴 ID), 和 的universetype始终instance1

其他可能的值可以在这里找到:https ://github.com/DoctorMcKay/node-steamid/blob/master/index.js#L2-L50

于 2022-01-21T09:05:03.633 回答