如何获取 CS:GO 市场项目的浮动值?
Posted
技术标签:
【中文标题】如何获取 CS:GO 市场项目的浮动值?【英文标题】:How to get the float value of CS:GO market items? 【发布时间】:2016-02-06 05:21:55 【问题描述】:最近我发现你可以通过在 csgo.exchange 和 csgozone.net 等网站上输入检查链接来查看 Steam 市场上某件商品的浮动值。
经过一番研究,我弄清楚了检查链接的语法。
steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20S76561197973845818A3130594988D7956282211490500705
一个正常的inspect链接由所有者的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 市场上的物品的链接是有区别的。来自市场的检查链接包含市场列表 ID,而不是所有者的 steamid。
如何通过市场检查链接的信息获取商品的浮动值?
【问题讨论】:
你怎么知道它不一样?在我看来,该网站可能只有一个缓存版本,您将其称为“市场价值”,并且不会像您检查的那样频繁更新。您个人看到的版本是实际的实际当前值,我想您是在 Steam 上实时检查的。我做出这些假设是因为我不明白为什么它们会有不同的“玩家价值”。 【参考方案1】:为了完成一点答案,而不是只指向我的npm module,将inspect链接转换为float值的整个过程分解如下:
您需要连接SteamClient
,为此,请提供您的登录信息。请注意,在此之前您可能会有几天的延迟(Steam 安全性)。
成功的身份验证意味着SteamGameCoordinator
将以 4004 消息类型响应,基本上是通过将header.msg
与~0x80000000
进行按位运算来检索。
之后,您可以使用 4 个参数有效地将 CMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockRequest
发送到 GC
:param_s
、param_a
、param_d
、param_m
,可以通过在您的案例S:76561197973845818
,A:3130594988
和D:7956282211490500705
,通过0
为M。
然后您将收到一条9157
消息,您可以使用CMsgGCCStrike15_v2_Client2GCEconPreviewDataBlockResponse
通过创建一个新的4 字节Buffer
和writeUInt32LE response.iteminfo.paintwear
来解码。
恭喜,你现在有了花车!
csgo-float 将所有内容抽象化,让您只需提供登录信息,并发送您的 Steam 检查链接,该链接将返回一个承诺,让一切变得简单:
client.requestFloat('S76561197973845818A3130594988D7956282211490500705')
.then(floatValue => console.log(floatValue))
.catch(err => console.log(err))
【讨论】:
【参考方案2】:Aperçu 有解决方案,并且理所当然地接受了答案。但是,如果您想要更快地返回结果的东西,那么有一个 Chrome 扩展程序 (Stmy's CS:GO Market Details) 可以做到这一点。它会自动为整个页面返回浮点值(以及所有其他项目信息)。它还允许根据不同的标准对多页结果进行排序。我使用了其他几个解决方案,但您必须点击每个值和/或复制/粘贴到第 3 方网站。
【讨论】:
以上是关于如何获取 CS:GO 市场项目的浮动值?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 ListView setOnItemClickListener 获取项目值?
OnItemClick 如何从列表视图中获取单击项目的文本值