最近我发现你可以通过在csgo.exchange和csgozone.net等网站上输入检查链接来检查Steam市场中物品的浮动价值。
经过一些研究,我弄清楚了检查链接的语法。
steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20S76561197973845818A3130594988D7956282211490500705
正常的检查链接由所有者的steamid和项目的assetid组成
steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20S
<STEAM_ID>
A
<ASSET_ID>
D7956282211490500705
Steam市场物品查看链接:
steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20M322366017503471651A4084214062D7521609830474722133
通过此信息,您可以获得该项目的浮点值。 但检查玩家库存中物品的链接和检查 Steam 市场上物品的链接之间存在差异。来自市场的检查链接包含市场listingid,而不是所有者的steamid。
如何通过市场检查链接的信息获得该物品的浮动价值?
为了完成一点答案,而不是仅仅指向我的npm模块,将检查链接转换为浮点值的整个过程被分解如下:
SteamClient
,为此,请提供您的登录信息。请注意,在此之前您可能会延迟几天(Steam 安全)。SteamGameCoordinator
将响应 4004 消息类型,基本上通过将 header.msg
与 ~0x80000000
按位进行检索。CMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockRequest
发送到 GC
,其中包含 4 个参数:param_s
、param_a
、param_d
、param_m
,可以通过分解检查链接来检索,在您的情况下为 S : 76561197973845818
,A:3130594988
和 D:7956282211490500705
,然后通过 0
表示 M。9157
消息,您可以通过创建 4 个字节的新 CMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockResponse
和 writeUInt32LE
Buffer
来使用 response.iteminfo.paintwear
进行解码。你现在已经有了漂浮物,恭喜!
csgo-float 正在抽象所有内容,让您只需提供登录信息,并发送将返回承诺的 Steam 检查链接,使其变得简单:
client.requestFloat('S76561197973845818A3130594988D7956282211490500705')
.then(floatValue => console.log(floatValue))
.catch(err => console.log(err))
Aperçu 有解决方案,并且正确地得到了公认的答案。但是,如果您想要更快地返回结果,可以使用 Chrome 扩展程序(Stmy 的 CS:GO 市场详细信息)来完成此操作。它自动返回整个页面的浮点值(以及所有其他项目信息)。它还允许根据不同的标准对多页结果进行排序。我使用了一些其他解决方案,但您被迫单击每个值和/或复制/粘贴到第三方网站。
你知道 d 参数代表什么吗?它是恒定的还是随时间变化? 对我来说,似乎有一些变化。 steam inv ui 返回另一个检查链接作为来自 steam 的库存端点,并且看起来来自 steam web ui 的检查链接也会随着时间(2-3 天)而变化。至少 d 参数