如何获取 CS:GO 市场项目的浮动价值?

How to get the float value of CS:GO market items?

最近我发现您可以通过在 csgo.exchange 和 csgozone.net.[=18= 等网站上输入检查 link 来检查 Steam 市场中物品的浮动价值]

经过一些研究,我弄清楚了 inspect link 的语法。

steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20S76561197973845818A3130594988D7956282211490500705

一个普通的inspectlink由拥有者的steamid和物品的assetid组成

steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20S<STEAM_ID>A<ASSET_ID>D7956282211490500705

Steam 市场项目检查link:

steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20M322366017503471651A4084214062D7521609830474722133

根据这些信息,您可以获得项目的浮点值。 但是从玩家库存中的物品检查 links 和从 Steam 市场上的物品检查 links 是有区别的。来自市场的检查 link 包含市场 listingid 而不是所有者的 steamid。

如何根据市场检验的信息得到商品的浮点值link?

为了完成一点答案,而不是只指向我的 npm module,将 inspect link 转换为 float 值的整个过程分解如下:

  • 您需要连接 SteamClient,为此,请提供您的登录信息。请注意,在此之前您可能会有几天的延迟(Steam 安全性)。
  • 成功的身份验证意味着 SteamGameCoordinator 将以 4004 消息类型响应,基本上是通过将 header.msg~0x80000000 按位检索得到的。
  • 之后,你可以有效地发送一个 CMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockRequestGC 有 4 个参数:param_s, param_a, param_d, param_m 可以通过分解检查 link 来检索,在您的情况下为 S:76561197973845818、A:3130594988 和 D:7956282211490500705,然后传递 0对于 M.
  • 然后您将收到一条 9157 消息,您可以使用 CMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockResponse 通过创建一个新的 4 字节 BufferwriteUInt32LE response.iteminfo.paintwear 对其进行解码.

恭喜,你现在有了花车!


csgo-float 将所有内容抽象化,让您只需提供登录信息,然后发送您的 Steam 检查 link,这将 return 一个承诺,让一切变得简单:

client.requestFloat('S76561197973845818A3130594988D7956282211490500705')
  .then(floatValue => console.log(floatValue))
  .catch(err => console.log(err))

Aperçu has the solution, and rightfully, the accepted answer. However, if you want something that returns results much quicker there is a Chrome extension (Stmy's CS:GO Market Details) 正是这样做的。它 returns 浮点值(以及所有其他项目信息)自动用于整个页面。它还允许根据不同的标准对多页结果进行排序。我使用了其他几种解决方案,但您必须为每个值 and/or copy/paste 单击到第 3 方网站。