我正试图从一些项目中获取标记,但找不到能给我这些标记的函数。。我正在使用来自steam web API的GetPlayerItems
来获取玩家物品,但它不会给我物品标签,我该怎么办?
有办法给我标签吗?
我还有一个问题,有没有一种快速的方法来提取物品的图像?而不是存储在我的服务器上?我的意思是通过steam服务器或其他什么来获取图像的URL。。
我已经尝试过GetSchema
来查找某个项目的信息,但我真的不知道它是如何工作的。
谢谢!
您需要组合两个单独的API调用,以将GetPlayerItems链接到数据的实际含义。
执行GetPlayerItems
调用并返回数据。在返回数据中,您将对result['items']
进行迭代,以获得玩家项目的列表。
这个数组中的一个项目可能看起来像这样:
{
"id": 493336261,
"original_id": 493336261,
"defindex": 5050,
"level": 50,
"quality": 6,
"inventory": 2147483948,
"quantity": 1,
"origin": 2,
"attributes": [
{
"defindex": 195,
"value": 1065353216,
"float_value": 1.000000
}
]
},
使用这些数据,您可以使用defindex
查看从GetSchema
调用返回的result['items']
数组。您将必须遍历这些项中的每一项,比较GetPlayerItems
定义索引和GetSchema
定义索引。当它匹配时,你已经知道项目是什么了。
在上述情况下,5050
是Backpack Expander
。您可以通过查看GetSchema
匹配中的image_url
或image_url_large
值来获取此项目的图像。
对于你提到的"标签",我假设你指的是attributes
。这些可以通过遵循类似的过程进行匹配,但可以针对GetSchema
result['attributes']
阵列进行匹配。同样,您必须遍历所有值并比较defindex
值。
对于上面的示例,具有defindex = 195
的属性与以下内容匹配:
{
"name": "always tradable",
"defindex": 195,
"attribute_class": "always_tradable",
"description_string": "#Attrib_Always_Tradable",
"description_format": "value_is_additive",
"effect_type": "negative",
"hidden": true,
"stored_as_integer": false
},
GetPlayerItems
属性中1.0
的float_value
表示该对象具有该属性。所以,这个背包扩展器总是可以交易的。