Тег получения предметов через веб-API Steam (TF2)

Я пытаюсь получить теги некоторых предметов, но не могу найти функцию, которая дает мне эти теги. Я использую GetPlayerItems из веб-API Steam, чтобы получить элементы игрока, но он не дает мне теги предметов, что мне делать ?

есть ли способ дать мне теги?

и у меня есть еще вопрос, есть ли быстрый способ вытащить изображение предмета? не сохраняя его на моем сервере? я имею в виду URL-адрес изображения через сервер Steam или что-то в этом роде..

я пытался GetSchema найти информацию об элементе, но я действительно не понимаю, как это работает.

Спасибо!


person Naor Hadar    schedule 22.08.2013    source источник


Ответы (1)


Вам нужно объединить два отдельных вызова 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
comment
Но если предмет сделан случайным, я имею в виду силы и прочее (например, огонь и т. Д.), Как я могу это узнать? Спасибо! - person Naor Hadar; 24.08.2013