Вам нужно объединить два отдельных вызова 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
для просмотра массива result['items']
, возвращенного вашим вызовом GetSchema
. Вам придется перебирать каждый из этих элементов, сравнивая GetPlayerItems
defindex с GetSchema
defindex. Когда это совпадает, вы знаете, что это за предмет.
В приведенном выше случае 5050
является Backpack Expander
. Вы можете получить изображение для этого элемента, просмотрев значения image_url
или image_url_large
в совпадении GetSchema
.
Что касается «тегов», которые вы упомянули, я предполагаю, что вы имеете в виду 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
},
float_value
из 1.0
в атрибутах GetPlayerItems
указывает, что этот объект имеет этот атрибут. Таким образом, этот расширитель рюкзака всегда доступен для обмена.
person
Andy♦
schedule
22.08.2013